<!DOCTYPE html> <html class="with-header with-top-bar " lang="en"> <head prefix="og: http://ogp.me/ns#"> <meta charset="utf-8"> <meta content="IE=edge" http-equiv="X-UA-Compatible"> <meta content="width=device-width, initial-scale=1" name="viewport"> <title>static/favicon.ico · master · Vinay Keshava / vinay-keshava.gitlab.io · GitLab</title> <script nonce="KET0imdVRnOQ4uMmzpsLCw=="> //<![CDATA[ window.gon={};gon.features={"highlightJsWorker":false,"explainCodeChat":false,"remoteDevelopmentFeatureFlag":true};gon.licensed_features={"remoteDevelopment":true}; //]]> </script> <script nonce="KET0imdVRnOQ4uMmzpsLCw=="> //<![CDATA[ var gl = window.gl || {}; gl.startup_calls = {"/vinay-keshava/vinay-keshava.gitlab.io/-/blob/master/static/favicon.ico?format=json\u0026ref_type=heads\u0026viewer=rich":{}}; gl.startup_graphql_calls = [{"query":"query getBlobInfo(\n $projectPath: ID!\n $filePath: String!\n $ref: String!\n $refType: RefType\n $shouldFetchRawText: Boolean!\n) {\n project(fullPath: $projectPath) {\n __typename\n id\n repository {\n __typename\n empty\n blobs(paths: [$filePath], ref: $ref, refType: $refType) {\n __typename\n nodes {\n __typename\n id\n webPath\n name\n size\n rawSize\n rawTextBlob @include(if: $shouldFetchRawText)\n fileType\n language\n path\n blamePath\n editBlobPath\n gitpodBlobUrl\n ideEditPath\n forkAndEditPath\n ideForkAndEditPath\n codeNavigationPath\n projectBlobPathRoot\n forkAndViewPath\n environmentFormattedExternalUrl\n environmentExternalUrlForRouteMap\n canModifyBlob\n canCurrentUserPushToBranch\n archived\n storedExternally\n externalStorage\n externalStorageUrl\n rawPath\n replacePath\n pipelineEditorPath\n simpleViewer {\n fileType\n tooLarge\n type\n renderError\n }\n richViewer {\n fileType\n tooLarge\n type\n renderError\n }\n }\n }\n }\n }\n}\n","variables":{"projectPath":"vinay-keshava/vinay-keshava.gitlab.io","ref":"master","refType":"heads","filePath":"static/favicon.ico","shouldFetchRawText":false}}]; if (gl.startup_calls && window.fetch) { Object.keys(gl.startup_calls).forEach(apiCall => { gl.startup_calls[apiCall] = { fetchCall: fetch(apiCall, { // Emulate XHR for Rails AJAX request checks headers: { 'X-Requested-With': 'XMLHttpRequest' }, // fetch won’t send cookies in older browsers, unless you set the credentials init option. // We set to `same-origin` which is default value in modern browsers. // See https://github.com/whatwg/fetch/pull/585 for more information. credentials: 'same-origin' }) }; }); } if (gl.startup_graphql_calls && window.fetch) { const headers = {"X-CSRF-Token":"SYDyFq2bY1fIewekhc2tV-rQYlZVy51Xfg2mzOwesI03P5YDj7k3j64udGVQbR3kIj8_fcX1_3ey1ax-LiGEnw","x-gitlab-feature-category":"source_code_management"}; const url = `https://gitlab.com/api/graphql` const opts = { method: "POST", headers: { "Content-Type": "application/json", ...headers, } }; gl.startup_graphql_calls = gl.startup_graphql_calls.map(call => ({ ...call, fetchCall: fetch(url, { ...opts, credentials: 'same-origin', body: JSON.stringify(call) }) })) } //]]> </script> <link rel="prefetch" href="/assets/webpack/monaco.0272a49d.chunk.js"> <link rel="stylesheet" href="/assets/themes/theme_light_gray-3709fdfdb1600922d90063efdcf592c5e03aeccf4bfff84771ee72cd6ea73a58.css" /> <link rel="stylesheet" href="/assets/application-c10b409df4222d166bfe9b34b787e05a671f9116b47ee10265029bfda6c5305b.css" media="all" /> <link rel="stylesheet" href="/assets/page_bundles/tree-7eb97b0bf23760737864cc9c5cd5c9f23c3de24178d1b9393cea9f64caca3bcd.css" media="all" /> <link rel="stylesheet" href="/assets/application_utilities-2531e4e6ef42e4af0a1b836590e0b362055984d2fa233ae3c5b07d7c4a2761fd.css" media="all" /> <link rel="stylesheet" href="/assets/fonts-171e1863d044918ea3bbaacf2a559ccaac603904aa851c3add5b714fa7066468.css" media="all" /> <link rel="stylesheet" href="/assets/highlight/themes/white-0163ec1ff3033e0ebaf2e7700680941596e39d73535518445a42947430b7d452.css" media="all" /> <script src="/assets/webpack/runtime.36e94899.bundle.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/main.ef7886bd.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/tracker.167e16c1.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/analytics.77d1fc84.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script nonce="KET0imdVRnOQ4uMmzpsLCw=="> //<![CDATA[ window.snowplowOptions = {"namespace":"gl","hostname":"snowplow.trx.gitlab.net","cookieDomain":".gitlab.com","appId":"gitlab","formTracking":true,"linkClickTracking":true} gl = window.gl || {}; gl.snowplowStandardContext = {"schema":"iglu:com.gitlab/gitlab_standard/jsonschema/1-0-9","data":{"environment":"production","source":"gitlab-rails","plan":"free","extra":{"new_nav":true},"user_id":null,"is_gitlab_team_member":null,"namespace_id":13499088,"project_id":43301504,"context_generated_at":"2023-09-21T07:39:00.421Z"}} gl.snowplowPseudonymizedPageUrl = "https://gitlab.com/namespace13499088/project43301504/-/blob/:repository_path?ref_type=masked_ref_type"; //]]> </script> <link rel="preload" href="/assets/application_utilities-2531e4e6ef42e4af0a1b836590e0b362055984d2fa233ae3c5b07d7c4a2761fd.css" as="style" type="text/css" nonce="f0fCEEg3gqdLP7r/64VFsg=="> <link rel="preload" href="/assets/application-c10b409df4222d166bfe9b34b787e05a671f9116b47ee10265029bfda6c5305b.css" as="style" type="text/css" nonce="f0fCEEg3gqdLP7r/64VFsg=="> <link rel="preload" href="/assets/highlight/themes/white-0163ec1ff3033e0ebaf2e7700680941596e39d73535518445a42947430b7d452.css" as="style" type="text/css" nonce="f0fCEEg3gqdLP7r/64VFsg=="> <link crossorigin="" href="https://snowplow.trx.gitlab.net" rel="preconnect"> <link as="font" crossorigin="" href="/assets/gitlab-sans/GitLabSans-1e0a5107ea3bbd4be93e8ad2c503467e43166cd37e4293570b490e0812ede98b.woff2" rel="preload"> <link as="font" crossorigin="" href="/assets/gitlab-mono/GitLabMono-08d2c5e8ff8fd3d2d6ec55bc7713380f8981c35f9d2df14e12b835464d6e8f23.woff2" rel="preload"> <link as="font" crossorigin="" href="/assets/gitlab-mono/GitLabMono-Italic-38e58d8df29485a20c550da1d0111e2c2169f6dcbcf894f2cd3afbdd97bcc588.woff2" rel="preload"> <link rel="preload" href="/assets/fonts-171e1863d044918ea3bbaacf2a559ccaac603904aa851c3add5b714fa7066468.css" as="style" type="text/css" nonce="f0fCEEg3gqdLP7r/64VFsg=="> <script src="/assets/webpack/sentry.4108e3de.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/commons-pages.search.show-super_sidebar.73f908cb.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/super_sidebar.b3fac077.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/shortcutsBundle.5aa143c0.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/commons-pages.groups.boards-pages.groups.details-pages.groups.epic_boards-pages.groups.show-pages.gr-abad4194.dee07de1.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/commons-pages.admin.runners.show-pages.groups.achievements-pages.groups.analytics.dashboards-pages.g-a4437111.fa452e74.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/commons-pages.admin.subscriptions.show-pages.groups.security.policies.edit-pages.groups.security.pol-6bfecbfa.19191d6d.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/commons-pages.projects.blob.show-pages.projects.show-pages.projects.snippets.edit-pages.projects.sni-42df7d4c.ea7c5d62.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/101.f8b5f00d.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/commons-pages.projects.blob.show-pages.projects.show-pages.projects.snippets.show-pages.projects.tre-c684fcf6.f39a290e.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/119.5e0bffe2.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/commons-pages.groups.show-pages.projects.blob.show-pages.projects.show-pages.projects.tree.show.70426d18.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/commons-pages.projects.blob.show-pages.projects.show-pages.projects.tree.show.29f3cb59.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/commons-pages.projects.blob.show-pages.projects.tree.show-treeList.9f41420a.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <script src="/assets/webpack/pages.projects.blob.show.682a2a9b.chunk.js" defer="defer" nonce="KET0imdVRnOQ4uMmzpsLCw=="></script> <meta content="object" property="og:type"> <meta content="GitLab" property="og:site_name"> <meta content="static/favicon.ico · master · Vinay Keshava / vinay-keshava.gitlab.io · GitLab" property="og:title"> <meta content="GitLab.com" property="og:description"> <meta content="https://gitlab.com/assets/twitter_card-570ddb06edf56a2312253c5872489847a0f385112ddbcd71ccfa1570febab5d2.jpg" property="og:image"> <meta content="64" property="og:image:width"> <meta content="64" property="og:image:height"> <meta content="https://gitlab.com/vinay-keshava/vinay-keshava.gitlab.io/-/blob/master/static/favicon.ico?ref_type=heads" property="og:url"> <meta content="summary" property="twitter:card"> <meta content="static/favicon.ico · master · Vinay Keshava / vinay-keshava.gitlab.io · GitLab" property="twitter:title"> <meta content="GitLab.com" property="twitter:description"> <meta content="https://gitlab.com/assets/twitter_card-570ddb06edf56a2312253c5872489847a0f385112ddbcd71ccfa1570febab5d2.jpg" property="twitter:image"> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="OJ642yZHItiCItogWO9yE-l9HJLg9JGUzgXyc9JHbCpGIdzOBGV2AOR3qeGNT8KgIZJBuXDK87QC3fjBEHhYOA" /> <meta name="csp-nonce" content="KET0imdVRnOQ4uMmzpsLCw==" /> <meta name="action-cable-url" content="/-/cable" /> <link href="/-/manifest.json" rel="manifest"> <link rel="icon" type="image/png" href="/assets/favicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.png" id="favicon" data-original-href="/assets/favicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.png" /> <link rel="apple-touch-icon" type="image/x-icon" href="/assets/apple-touch-icon-b049d4bc0dd9626f31db825d61880737befc7835982586d015bded10b4435460.png" /> <link href="/search/opensearch.xml" rel="search" title="Search GitLab" type="application/opensearchdescription+xml"> <meta content="GitLab.com" name="description"> <meta content="#ececef" name="theme-color"> </head> <body class="ui-light-gray tab-width-8 gl-browser-generic gl-platform-other" data-find-file="/vinay-keshava/vinay-keshava.gitlab.io/-/find_file/master" data-namespace-id="13499088" data-page="projects:blob:show" data-page-type-id="master/static/favicon.ico" data-project="vinay-keshava.gitlab.io" data-project-id="43301504"> <script nonce="KET0imdVRnOQ4uMmzpsLCw=="> //<![CDATA[ gl = window.gl || {}; gl.client = {"isGeneric":true,"isOther":true}; //]]> </script> <header class="navbar navbar-gitlab super-sidebar-logged-out" data-testid="navbar"> <a class="gl-sr-only gl-accessibility" href="#content-body">Skip to content</a> <div class="container-fluid"> <div class="header-content gl-displax-flex"> <div class="title-container gl-display-flex gl-align-items-stretch gl-pt-0 gl-mr-3"> <div class="title"> <span class="gl-sr-only">GitLab</span> <a title="Homepage" id="logo" class="has-tooltip" data-track-label="main_navigation" data-track-action="click_gitlab_logo_link" data-track-property="navigation_top" href="/"><svg role="img" class="tanuki-logo" width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path class="tanuki-shape tanuki" d="m24.507 9.5-.034-.09L21.082.562a.896.896 0 0 0-1.694.091l-2.29 7.01H7.825L5.535.653a.898.898 0 0 0-1.694-.09L.451 9.411.416 9.5a6.297 6.297 0 0 0 2.09 7.278l.012.01.03.022 5.16 3.867 2.56 1.935 1.554 1.176a1.051 1.051 0 0 0 1.268 0l1.555-1.176 2.56-1.935 5.197-3.89.014-.01A6.297 6.297 0 0 0 24.507 9.5Z" fill="#E24329"/> <path class="tanuki-shape right-cheek" d="m24.507 9.5-.034-.09a11.44 11.44 0 0 0-4.56 2.051l-7.447 5.632 4.742 3.584 5.197-3.89.014-.01A6.297 6.297 0 0 0 24.507 9.5Z" fill="#FC6D26"/> <path class="tanuki-shape chin" d="m7.707 20.677 2.56 1.935 1.555 1.176a1.051 1.051 0 0 0 1.268 0l1.555-1.176 2.56-1.935-4.743-3.584-4.755 3.584Z" fill="#FCA326"/> <path class="tanuki-shape left-cheek" d="M5.01 11.461a11.43 11.43 0 0 0-4.56-2.05L.416 9.5a6.297 6.297 0 0 0 2.09 7.278l.012.01.03.022 5.16 3.867 4.745-3.584-7.444-5.632Z" fill="#FC6D26"/> </svg> </a><div class="gl-display-flex gl-align-items-center"> </div> </div> <ul class="nav navbar-sub-nav gl-align-items-center gl-display-flex gl-flex-direction-row gl-flex-grow-1"> <li class="nav-item dropdown gl-mr-3 gl-md-display-none"> <button data-toggle="dropdown" type="button"> <span class="gl-sr-only"> Menu </span> <svg class="s16" data-testid="hamburger-icon"><use href="/assets/icons-3591e1b0dc5b9091969f4b703f7bdaffa0ca7b2c7953b0f3a7e7dc1e71c3e43d.svg#hamburger"></use></svg> </button> <div class="dropdown-menu"> <ul> <li> <a href="https://about.gitlab.com/why-gitlab">Why GitLab </a></li> <li> <a href="https://about.gitlab.com/pricing">Pricing </a></li> <li> <a href="https://about.gitlab.com/sales">Contact Sales </a></li> <li> <a href="/explore">Explore</a> </li> </ul> </div> </li> <li class="nav-item gl-mr-3 gl-display-none gl-md-display-inline-block"> <a href="https://about.gitlab.com/why-gitlab">Why GitLab </a></li> <li class="nav-item gl-mr-3 gl-display-none gl-md-display-inline-block"> <a href="https://about.gitlab.com/pricing">Pricing </a></li> <li class="nav-item gl-mr-3 gl-display-none gl-md-display-inline-block"> <a href="https://about.gitlab.com/sales">Contact Sales </a></li> <li class="nav-item gl-display-none gl-md-display-inline-block"> <a class="" href="/explore">Explore</a> </li> </ul> </div> <ul class="nav navbar-nav gl-align-items-center gl-justify-content-end gl-flex-direction-row"> <li class="nav-item gl-mr-3"> <a href="/users/sign_in?redirect_to_referer=yes">Sign in</a> </li> <li> <a class="gl-button btn btn-md btn-confirm " href="/users/sign_up"><span class="gl-button-text"> Get free trial </span> </a></li> </ul> </div> </div> </header> <div class="layout-page hide-when-top-nav-responsive-open page-with-super-sidebar"> <aside class="js-super-sidebar super-sidebar super-sidebar-loading" data-command-palette="{"project_files_url":"/vinay-keshava/vinay-keshava.gitlab.io/-/files/master?format=json","project_blob_url":"/vinay-keshava/vinay-keshava.gitlab.io/-/blob/master"}" data-force-desktop-expanded-sidebar="" data-root-path="/" data-sidebar="{"is_logged_in":false,"context_switcher_links":[{"title":"Explore","link":"/explore","icon":"compass"}],"current_menu_items":[{"id":"project_overview","title":"vinay-keshava.gitlab.io","icon":null,"avatar":null,"entity_id":43301504,"link":"/vinay-keshava/vinay-keshava.gitlab.io","pill_count":null,"link_classes":"shortcuts-project rspec-project-link","is_active":false},{"title":"Manage","icon":"users","avatar":null,"avatar_shape":"rect","entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/activity","is_active":false,"pill_count":null,"items":[{"id":"activity","title":"Activity","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/activity","pill_count":null,"link_classes":"shortcuts-project-activity","is_active":false},{"id":"members","title":"Members","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/project_members","pill_count":null,"link_classes":null,"is_active":false},{"id":"labels","title":"Labels","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/labels","pill_count":null,"link_classes":null,"is_active":false}],"separated":false},{"title":"Plan","icon":"planning","avatar":null,"avatar_shape":"rect","entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/issues","is_active":false,"pill_count":null,"items":[{"id":"project_issue_list","title":"Issues","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/issues","pill_count":"0","link_classes":"shortcuts-issues has-sub-items","is_active":false},{"id":"boards","title":"Issue boards","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/boards","pill_count":null,"link_classes":"shortcuts-issue-boards","is_active":false},{"id":"milestones","title":"Milestones","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/milestones","pill_count":null,"link_classes":null,"is_active":false},{"id":"project_wiki","title":"Wiki","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/wikis/home","pill_count":null,"link_classes":"shortcuts-wiki","is_active":false}],"separated":false},{"title":"Code","icon":"code","avatar":null,"avatar_shape":"rect","entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/merge_requests","is_active":true,"pill_count":null,"items":[{"id":"project_merge_request_list","title":"Merge requests","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/merge_requests","pill_count":"0","link_classes":"shortcuts-merge_requests","is_active":false},{"id":"files","title":"Repository","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/tree/master","pill_count":null,"link_classes":"shortcuts-tree","is_active":true},{"id":"branches","title":"Branches","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/branches","pill_count":null,"link_classes":null,"is_active":false},{"id":"commits","title":"Commits","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/commits/master?ref_type=heads","pill_count":null,"link_classes":"shortcuts-commits","is_active":false},{"id":"tags","title":"Tags","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/tags","pill_count":null,"link_classes":null,"is_active":false},{"id":"graphs","title":"Repository graph","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/network/master?ref_type=heads","pill_count":null,"link_classes":"shortcuts-network","is_active":false},{"id":"compare","title":"Compare revisions","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/compare?from=master\u0026to=master","pill_count":null,"link_classes":null,"is_active":false},{"id":"project_snippets","title":"Snippets","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/snippets","pill_count":null,"link_classes":"shortcuts-snippets","is_active":false}],"separated":false},{"title":"Build","icon":"rocket","avatar":null,"avatar_shape":"rect","entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/pipelines","is_active":false,"pill_count":null,"items":[{"id":"pipelines","title":"Pipelines","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/pipelines","pill_count":null,"link_classes":"shortcuts-pipelines","is_active":false},{"id":"jobs","title":"Jobs","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/jobs","pill_count":null,"link_classes":"shortcuts-builds","is_active":false},{"id":"pipeline_schedules","title":"Pipeline schedules","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/pipeline_schedules","pill_count":null,"link_classes":"shortcuts-builds","is_active":false},{"id":"artifacts","title":"Artifacts","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/artifacts","pill_count":null,"link_classes":"shortcuts-builds","is_active":false}],"separated":false},{"title":"Deploy","icon":"deployments","avatar":null,"avatar_shape":"rect","entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/releases","is_active":false,"pill_count":null,"items":[{"id":"releases","title":"Releases","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/releases","pill_count":null,"link_classes":"shortcuts-deployments-releases","is_active":false},{"id":"packages_registry","title":"Package Registry","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/packages","pill_count":null,"link_classes":"shortcuts-container-registry","is_active":false},{"id":"container_registry","title":"Container Registry","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/container_registry","pill_count":null,"link_classes":null,"is_active":false}],"separated":false},{"title":"Operate","icon":"cloud-pod","avatar":null,"avatar_shape":"rect","entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/environments","is_active":false,"pill_count":null,"items":[{"id":"environments","title":"Environments","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/environments","pill_count":null,"link_classes":"shortcuts-environments","is_active":false},{"id":"infrastructure_registry","title":"Terraform modules","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/infrastructure_registry","pill_count":null,"link_classes":null,"is_active":false}],"separated":false},{"title":"Monitor","icon":"monitor","avatar":null,"avatar_shape":"rect","entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/incidents","is_active":false,"pill_count":null,"items":[{"id":"incidents","title":"Incidents","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/incidents","pill_count":null,"link_classes":null,"is_active":false},{"id":"service_desk","title":"Service Desk","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/issues/service_desk","pill_count":null,"link_classes":null,"is_active":false}],"separated":false},{"title":"Analyze","icon":"chart","avatar":null,"avatar_shape":"rect","entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/value_stream_analytics","is_active":false,"pill_count":null,"items":[{"id":"cycle_analytics","title":"Value stream analytics","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/value_stream_analytics","pill_count":null,"link_classes":"shortcuts-project-cycle-analytics","is_active":false},{"id":"contributors","title":"Contributor statistics","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/graphs/master?ref_type=heads","pill_count":null,"link_classes":null,"is_active":false},{"id":"ci_cd_analytics","title":"CI/CD analytics","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/pipelines/charts","pill_count":null,"link_classes":null,"is_active":false},{"id":"repository_analytics","title":"Repository analytics","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/graphs/master/charts","pill_count":null,"link_classes":"shortcuts-repository-charts","is_active":false},{"id":"model_experiments","title":"Model experiments","icon":null,"avatar":null,"entity_id":null,"link":"/vinay-keshava/vinay-keshava.gitlab.io/-/ml/experiments","pill_count":null,"link_classes":null,"is_active":false}],"separated":false}],"current_context_header":"Project","support_path":"https://about.gitlab.com/get-help/","display_whats_new":true,"whats_new_most_recent_release_items_count":5,"whats_new_version_digest":"4ecbf57547986d3149a533d5ec774acc5c461a1f1c1675d73c8b48d00bc27827","show_version_check":null,"gitlab_version":{"major":16,"minor":4,"patch":0,"suffix_s":""},"gitlab_version_check":{"latest_stable_versions":[],"latest_version":"16.3.4","severity":"success","critical_vulnerability":false,"details":""},"search":{"search_path":"/search","issues_path":"/dashboard/issues","mr_path":"/dashboard/merge_requests","autocomplete_path":"/search/autocomplete","search_context":{"project":{"id":43301504,"name":"vinay-keshava.gitlab.io"},"project_metadata":{"mr_path":"/vinay-keshava/vinay-keshava.gitlab.io/-/merge_requests","issues_path":"/vinay-keshava/vinay-keshava.gitlab.io/-/issues"},"code_search":true,"ref":"master","scope":null,"for_snippets":null}},"panel_type":"project","shortcut_links":[{"title":"Snippets","href":"/explore/snippets","css_class":"dashboard-shortcuts-snippets"},{"title":"Groups","href":"/explore/groups","css_class":"dashboard-shortcuts-groups"},{"title":"Projects","href":"/explore/projects","css_class":"dashboard-shortcuts-projects"}]}" data-toggle-new-nav-endpoint="/-/profile/preferences"></aside> <div data-version-digest="4ecbf57547986d3149a533d5ec774acc5c461a1f1c1675d73c8b48d00bc27827" id="whats-new-app"></div> <div class="content-wrapper"> <div class="mobile-overlay"></div> <div class="alert-wrapper gl-force-block-formatting-context"> <div class="top-bar-fixed container-fluid" data-testid="top-bar"> <div class="top-bar-container gl-display-flex gl-align-items-center gl-gap-2"> <button class="gl-button btn btn-icon btn-md btn-default btn-default-tertiary js-super-sidebar-toggle-expand super-sidebar-toggle gl-ml-n3" title="Expand sidebar" aria-controls="super-sidebar" aria-expanded="false" aria-label="Navigation sidebar" type="button"><svg class="s16 gl-icon gl-button-icon " data-testid="sidebar-icon"><use href="/assets/icons-3591e1b0dc5b9091969f4b703f7bdaffa0ca7b2c7953b0f3a7e7dc1e71c3e43d.svg#sidebar"></use></svg> </button> <nav aria-label="Breadcrumbs" class="breadcrumbs" data-qa-selector="breadcrumb_links_content" data-testid="breadcrumb-links"> <ul class="list-unstyled breadcrumbs-list js-breadcrumbs-list"> <li><a href="/vinay-keshava">Vinay Keshava</a><svg class="s8 breadcrumbs-list-angle" data-testid="chevron-lg-right-icon"><use href="/assets/icons-3591e1b0dc5b9091969f4b703f7bdaffa0ca7b2c7953b0f3a7e7dc1e71c3e43d.svg#chevron-lg-right"></use></svg></li> <li><a href="/vinay-keshava/vinay-keshava.gitlab.io"><span class="breadcrumb-item-text js-breadcrumb-item-text">vinay-keshava.gitlab.io</span></a><svg class="s8 breadcrumbs-list-angle" data-testid="chevron-lg-right-icon"><use href="/assets/icons-3591e1b0dc5b9091969f4b703f7bdaffa0ca7b2c7953b0f3a7e7dc1e71c3e43d.svg#chevron-lg-right"></use></svg></li> <li data-qa-selector="breadcrumb_current_link" data-testid="breadcrumb-current-link"> <a href="/vinay-keshava/vinay-keshava.gitlab.io/-/blob/master/static/favicon.ico?ref_type=heads">Repository</a> </li> </ul> <script type="application/ld+json"> {"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Vinay Keshava","item":"https://gitlab.com/vinay-keshava"},{"@type":"ListItem","position":2,"name":"vinay-keshava.gitlab.io","item":"https://gitlab.com/vinay-keshava/vinay-keshava.gitlab.io"},{"@type":"ListItem","position":3,"name":"Repository","item":"https://gitlab.com/vinay-keshava/vinay-keshava.gitlab.io/-/blob/master/static/favicon.ico?ref_type=heads"}]} </script> </nav> </div> </div> </div> <div class="container-fluid container-limited project-highlight-puc"> <main class="content" id="content-body" itemscope itemtype="http://schema.org/SoftwareSourceCode"> <div class="flash-container flash-container-page sticky" data-qa-selector="flash_container"> </div> <div class="js-signature-container" data-signatures-path="/vinay-keshava/vinay-keshava.gitlab.io/-/commits/f00237fced9ea6ad5b4c9282beec4c4360d8aa25/signatures?limit=1"></div> <div class="tree-holder gl-pt-4" id="tree-holder"> <div class="nav-block"> <div class="tree-ref-container"> <div class="tree-ref-holder gl-max-w-26"> <div data-project-id="43301504" data-project-root-path="/vinay-keshava/vinay-keshava.gitlab.io" data-ref="master" data-ref-type="heads" id="js-tree-ref-switcher"></div> </div> <ul class="breadcrumb repo-breadcrumb"> <li class="breadcrumb-item"> <a href="/vinay-keshava/vinay-keshava.gitlab.io/-/tree/master?ref_type=heads">vinay-keshava.gitlab.io </a></li> <li class="breadcrumb-item"> <a href="/vinay-keshava/vinay-keshava.gitlab.io/-/tree/master/static?ref_type=heads">static</a> </li> <li class="breadcrumb-item"> <a href="/vinay-keshava/vinay-keshava.gitlab.io/-/blob/master/static/favicon.ico?ref_type=heads"><strong>favicon.ico</strong> </a></li> </ul> </div> <div class="tree-controls gl-children-ml-sm-3"><a class="gl-button btn btn-md btn-default shortcuts-find-file" rel="nofollow" href="/vinay-keshava/vinay-keshava.gitlab.io/-/find_file/master"><span class="gl-button-text"> Find file </span> </a><a class="gl-button btn btn-md btn-default " href="/vinay-keshava/vinay-keshava.gitlab.io/-/commits/master/static/favicon.ico"><span class="gl-button-text"> History </span> </a><a class="gl-button btn btn-md btn-default js-data-file-blob-permalink-url" href="/vinay-keshava/vinay-keshava.gitlab.io/-/blob/4138cdad80ccfafae4ad2352f27b44d3ebb9c157/static/favicon.ico"><span class="gl-button-text"> Permalink </span> </a></div> </div> <div class="info-well d-none d-sm-block"> <div class="well-segment"> <ul class="blob-commit-info"> <li class="commit flex-row js-toggle-container" id="commit-f00237fc"> <div class="avatar-cell d-none d-sm-block"> <a href="/vinay-keshava"><img alt="Vinay Keshava's avatar" src="/uploads/-/system/user/avatar/9816600/avatar.png?width=40" class="avatar s40 d-none d-sm-inline-block" title="Vinay Keshava"></a> </div> <div class="commit-detail flex-list gl-display-flex gl-justify-content-space-between gl-align-items-center gl-flex-grow-1 gl-min-w-0"> <div class="commit-content" data-qa-selector="commit_content"> <a class="commit-row-message item-title js-onboarding-commit-item " href="/vinay-keshava/vinay-keshava.gitlab.io/-/commit/f00237fced9ea6ad5b4c9282beec4c4360d8aa25">added favicons of mine and other images</a> <span class="commit-row-message d-inline d-sm-none"> · f00237fc </span> <div class="committer"> <a class="commit-author-link js-user-link" data-user-id="9816600" href="/vinay-keshava">Vinay Keshava</a> authored <time class="js-timeago" title="Feb 7, 2023 4:45pm" datetime="2023-02-07T16:45:46Z" data-toggle="tooltip" data-placement="bottom" data-container="body">Feb 07, 2023</time> </div> </div> <div class="commit-actions flex-row"> <div class="js-commit-pipeline-status" data-endpoint="/vinay-keshava/vinay-keshava.gitlab.io/-/commit/f00237fced9ea6ad5b4c9282beec4c4360d8aa25/pipelines?ref=master"></div> <div class="commit-sha-group btn-group d-none d-sm-flex"> <div class="label label-monospace monospace"> f00237fc </div> <button class="gl-button btn btn-icon btn-md btn-default " title="Copy commit SHA" aria-label="Copy commit SHA" aria-live="polite" data-toggle="tooltip" data-placement="bottom" data-container="body" data-category="primary" data-size="medium" data-clipboard-text="f00237fced9ea6ad5b4c9282beec4c4360d8aa25" type="button"><svg class="s16 gl-icon gl-button-icon " data-testid="copy-to-clipboard-icon"><use href="/assets/icons-3591e1b0dc5b9091969f4b703f7bdaffa0ca7b2c7953b0f3a7e7dc1e71c3e43d.svg#copy-to-clipboard"></use></svg> </button> </div> </div> </div> </li> </ul> </div> </div> <div class="blob-content-holder js-per-page" data-blame-per-page="1000" id="blob-content-holder"> <div data-blob-path="static/favicon.ico" data-explain-code-available="false" data-new-workspace-path="/-/remote_development/workspaces/new" data-original-branch="master" data-project-path="vinay-keshava/vinay-keshava.gitlab.io" data-ref-type="heads" data-resource-id="gid://gitlab/Project/43301504" data-target-branch="master" data-user-id="" id="js-view-blob-app"> <div class="gl-spinner-container" role="status"><span aria-label="Loading" class="gl-spinner gl-spinner-md gl-spinner-dark gl-vertical-align-text-bottom!"></span></div> </div> </div> </div> <script nonce="KET0imdVRnOQ4uMmzpsLCw=="> //<![CDATA[ window.gl = window.gl || {}; window.gl.webIDEPath = '/-/ide/project/vinay-keshava/vinay-keshava.gitlab.io/edit/master/-/static/favicon.ico' //]]> </script> </main> </div> </div> </div> <div class="top-nav-responsive layout-page"> <div class="cloak-startup"> <div data-view-model="{"primary":[{"type":"header","title":"Explore"},{"id":"project","type":"item","title":"Projects","active":true,"icon":"project","href":"/explore","view":"","css_class":null,"data":{"testid":"menu_item_link","qa_title":"Projects"},"partial":null,"component":null},{"id":"groups","type":"item","title":"Groups","active":false,"icon":"group","href":"/explore/groups","view":"","css_class":null,"data":{"testid":"menu_item_link","qa_title":"Groups"},"partial":null,"component":null},{"id":"topics","type":"item","title":"Topics","active":false,"icon":"labels","href":"/explore/projects/topics","view":"","css_class":null,"data":{"testid":"menu_item_link","qa_title":"Topics"},"partial":null,"component":null},{"id":"snippets","type":"item","title":"Snippets","active":false,"icon":"snippet","href":"/explore/snippets","view":"","css_class":null,"data":{"testid":"menu_item_link","qa_title":"Snippets"},"partial":null,"component":null}],"secondary":[],"views":{"search":{"id":"search","type":"item","title":"Search","active":false,"icon":"search","href":"/search?project_id=43301504","view":"","css_class":null,"data":{"testid":"menu_item_link","qa_title":"Search"},"partial":null,"component":null}},"shortcuts":[{"id":"project-shortcut","type":"item","title":"Projects","active":false,"icon":"","href":"/explore","view":"","css_class":"dashboard-shortcuts-projects","data":{"testid":"menu_item_link","qa_title":"Projects"},"partial":null,"component":null},{"id":"groups-shortcut","type":"item","title":"Groups","active":false,"icon":"","href":"/explore/groups","view":"","css_class":"dashboard-shortcuts-groups","data":{"testid":"menu_item_link","qa_title":"Groups"},"partial":null,"component":null},{"id":"topics-shortcut","type":"item","title":"Topics","active":false,"icon":"","href":"/explore/projects/topics","view":"","css_class":"dashboard-shortcuts-topics","data":{"testid":"menu_item_link","qa_title":"Topics"},"partial":null,"component":null},{"id":"snippets-shortcut","type":"item","title":"Snippets","active":false,"icon":"","href":"/explore/snippets","view":"","css_class":"dashboard-shortcuts-snippets","data":{"testid":"menu_item_link","qa_title":"Snippets"},"partial":null,"component":null}],"menuTooltip":"Main menu"}" id="js-top-nav-responsive"></div> </div> </div> <script nonce="KET0imdVRnOQ4uMmzpsLCw=="> //<![CDATA[ if ('loading' in HTMLImageElement.prototype) { document.querySelectorAll('img.lazy').forEach(img => { img.loading = 'lazy'; let imgUrl = img.dataset.src; // Only adding width + height for avatars for now if (imgUrl.indexOf('/avatar/') > -1 && imgUrl.indexOf('?') === -1) { const targetWidth = img.getAttribute('width') || img.width; imgUrl += `?width=${targetWidth}`; } img.src = imgUrl; img.removeAttribute('data-src'); img.classList.remove('lazy'); img.classList.add('js-lazy-loaded'); img.dataset.testid = 'js_lazy_loaded_content'; }); } //]]> </script> <script nonce="KET0imdVRnOQ4uMmzpsLCw=="> //<![CDATA[ gl = window.gl || {}; gl.experiments = {}; //]]> </script> </body> </html>