data-color-mode="auto" data-light-theme="light" data-dark-theme="dark"
data-a11y-animated-images="system" data-a11y-link-underlines="true"
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-15839d47b75d.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-a5c85403da8c.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-4d11e88b2383.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-73fd10e24e0c.css" />
<meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I">
<meta name="user-login" content="">
<meta name="viewport" content="width=device-width">
<meta name="description" content="GitHub Gist: instantly share code, notes, and snippets.">
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch-gist.xml" title="Gist">
<link rel="fluid-icon" href="https://gist.github.com/fluidicon.png" title="GitHub">
<meta property="fb:app_id" content="1401488693436528">
<meta name="apple-itunes-app" content="app-id=1477376905, app-argument=https://gist.github.com/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6" />
<meta name="twitter:image" content="https://github.githubassets.com/assets/gist-og-image-54fd7dc0713e.png" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="Puch AI Hiring.MD" /><meta name="twitter:description" content="GitHub Gist: instantly share code, notes, and snippets." />
<meta name="hostname" content="gist.github.com">
<meta name="expected-hostname" content="gist.github.com">
<link href="/ArjitJ.atom" rel="alternate" title="atom" type="application/atom+xml">
<meta name="turbo-body-classes" content="logged-out env-production page-responsive">
<div class="position-relative header-wrapper js-header-wrapper ">
<a href="#start-of-content" data-skip-target-assigned="false" class="px-2 py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a>
<span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full">
<span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.c916beccff42f23950ab.module.css" />
<react-partial
partial-name="keyboard-shortcuts-dialog"
data-ssr="false"
data-attempted-ssr="false"
data-react-profiling="false"
<div class="Header js-details-container Details flex-wrap flex-md-nowrap p-responsive" role="banner" >
<nav aria-label="Global" class="d-flex flex-column flex-md-row flex-self-stretch flex-md-self-auto">
<a class="Header-link d-block d-md-none mr-0 mr-md-3 py-2 py-md-0 border-top border-md-top-0 border-white-fade" data-ga-click="Header, sign in" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"gist header","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://gist.github.com/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6","user_id":null}}" data-hydro-click-hmac="4ae289f2ce50e83b640e6669f8dd6c4be14dcf05e4da58eda62005451208068e" href="https://gist.github.com/auth/github?return_to=https%3A%2F%2Fgist.github.com%2FArjitJ%2Fcc7356bff1f782c03bf59a4f65a9d2d6">
Sign in
<div class="Header-item f4 mr-0" role="navigation" aria-label="Sign in or sign up">
<a class="Header-link no-underline mr-3" data-ga-click="Header, sign in" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"gist header","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://gist.github.com/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6","user_id":null}}" data-hydro-click-hmac="4ae289f2ce50e83b640e6669f8dd6c4be14dcf05e4da58eda62005451208068e" href="https://gist.github.com/auth/github?return_to=https%3A%2F%2Fgist.github.com%2FArjitJ%2Fcc7356bff1f782c03bf59a4f65a9d2d6">
Sign in
<div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
<path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.
<button id="icon-button-ac8ea095-55ea-44a2-9d25-8f96980c194b" aria-labelledby="tooltip-db02dd8f-b3ce-4370-92dc-525ce55d63af" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual">
<path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
<div id="js-flash-container" class="flash-container" data-turbo-replace>
Instantly share code, notes, and snippets.
<div class="note m-0">
Created
<relative-time tense="past" datetime="2025-06-16T05:41:37Z" data-view-component="true">June 16, 2025 05:41</relative-time>
</div>
</div>
</div>
<li>
<a id="gist-star-button" href="/login?return_to=https%3A%2F%2Fgist.github.com%2FArjitJ%2Fcc7356bff1f782c03bf59a4f65a9d2d6" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"gist star button","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://gist.github.com/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6","user_id":null}}" data-hydro-click-hmac="3f7f99e6c167fca6855bf6c4e2d06effa45081570ffc9b7b8b7b601e12bdd822" aria-label="You must be signed in to star a gist" data-view-component="true" class="btn-with-count Button--secondary Button--small Button"> <span class="Button-content">
<span class="Button-visual Button-leadingVisual">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star">
<path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path>
Star
55
(55 )
</li>
<li>
<a id="gist-fork-button" href="/login?return_to=https%3A%2F%2Fgist.github.com%2FArjitJ%2Fcc7356bff1f782c03bf59a4f65a9d2d6" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"gist fork button","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://gist.github.com/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6","user_id":null}}" data-hydro-click-hmac="8429ef7987234895f7d89ca22783d1c8fc0e05f9d920bb9b54499f6a7f190a46" aria-label="You must be signed in to fork a gist" data-view-component="true" class="btn-with-count Button--secondary Button--small Button"> <span class="Button-content">
<span class="Button-visual Button-leadingVisual">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked">
<path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path>
Fork
24
(24 )
</li>
</li>
<div class="ml-2">
<button href="https://desktop.github.com" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"OPEN_IN_DESKTOP","git_repository_type":"GIST","gist_id":138746839,"originating_url":"https://gist.github.com/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6","user_id":null}}" data-hydro-click-hmac="77c178586a437d99409d00c7ee69f0c5ae665a61fdf9775f436fbe2b1c2898e7" data-platforms="windows,mac" id="icon-button-3e367253-0aa7-4ad8-9e14-24ff0b033137" aria-labelledby="tooltip-ae7e1354-1666-4688-b3ad-381067fc76fb" type="button" data-view-component="true" class="Button Button--iconOnly Button--secondary Button--small js-remove-unless-platform"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-desktop-download Button-visual">
<path d="m4.927 5.427 2.896 2.896a.25.25 0 0 0 .354 0l2.896-2.896A.25.25 0 0 0 10.896 5H8.75V.75a.75.75 0 1 0-1.5 0V5H5.104a.25.25 0 0 0-.177.427Z"></path><path d="M1.573 2.573a.25.25 0 0 0-.073.177v7.5a.25.25 0 0 0 .25.25h12.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25h-3a.75.75 0 1 1 0-1.5h3A1.75 1.75 0 0 1 16 2.75v7.5A1.75 1.75 0 0 1 14.25 12h-3.727c.099 1.041.52 1.872 1.292 2.757A.75.75 0 0 1 11.25 16h-6.5a.75.75 0 0 1-.565-1.243c.772-.885 1.192-1.716 1.292-2.757H1.75A1.75 1.75 0 0 1 0 10.25v-7.5A1.75 1.75 0 0 1 1.75 1h3a.75.75 0 0 1 0 1.5h-3a.25.25 0 0 0-.177.073ZM6.982 12a5.72 5.72 0 0 1-.765 2.5h3.566a5.72 5.72 0 0 1-.765-2.5H6.982Z"></path>
</div>
<div class="ml-2">
<a class="btn btn-sm" rel="nofollow" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"DOWNLOAD_ZIP","git_repository_type":"GIST","gist_id":138746839,"originating_url":"https://gist.github.com/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6","user_id":null}}" data-hydro-click-hmac="69c7f9a6b76effbdc0389f9bf3dd420635750679abae616fcaf5e63951e4fee6" data-ga-click="Gist, download zip, location:gist overview" href="/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6/archive/42463de11a4593265e3752818dbbe950b3ef697b.zip">Download ZIP</a>
</div>
<div class="js-gist-file-update-container js-task-list-container">
🚀 MCP Server Setup Instructions
Follow the instructions below to set up your MCP server and complete the application process.
Use the provided starter code to spin up a local MCP server.
After running /apply <TWITTER/LINKEDIN REPLY URL> you will get a application key.
Now you need to create an mcp server using the starter code given in this gist to submit your resume.
Use this command to connect Puch with your mcp server /mcp connect <SERVER URL (should be publicly accesible)>/mcp <AUTH TOKEN>
🔑 Important: Replace the placeholder token in the code with your actual application key.
Puch will run a validation check against your Auth token (application key) and phone number
📞 Validation requires both the key and your phone number , formatted as {country_code}{number} — without the + symbol.
Example: 919876543210 for an Indian number.
Feed your resume to Puch: Create a tool that sends your resume in a format fit for an LLM
📎 Resume Tool Requirement:
Your server must include a resume tool that:
Accepts a local file (your resume).
Converts it to markdown text
Submits the data to the Puch AI MCP endpoint as a string.
from typing import Annotated
from fastmcp import FastMCP
from fastmcp.server.auth.providers.bearer import BearerAuthProvider, RSAKeyPair
import markdownify
from mcp import ErrorData, McpError
from mcp.server.auth.provider import AccessToken
from mcp.types import INTERNAL_ERROR, INVALID_PARAMS, TextContent
from openai import BaseModel
from pydantic import AnyUrl, Field
import readabilipy
from pathlib import Path
TOKEN = "<generated_token>"
MY_NUMBER = "9189XXXXXXXX" # Insert your number {91}{Your number}
class RichToolDescription(BaseModel):
description: str
use_when: str
side_effects: str | None
class SimpleBearerAuthProvider(BearerAuthProvider):
"""
A simple BearerAuthProvider that does not require any specific configuration.
It allows any valid bearer token to access the MCP server.
For a more complete implementation that can authenticate dynamically generated tokens,
please use BearerAuthProvider with your public key or JWKS URI.
"""
def __init__(self, token: str):
k = RSAKeyPair.generate()
super().__init__(
public_key=k.public_key, jwks_uri=None, issuer=None, audience=None
)
self.token = token
async def load_access_token(self, token: str) -> AccessToken | None:
if token == self.token:
return AccessToken(
token=token,
client_id="unknown",
scopes=[],
expires_at=None, # No expiration for simplicity
)
return None
class Fetch:
IGNORE_ROBOTS_TXT = True
USER_AGENT = "Puch/1.0 (Autonomous)"
@classmethod
async def fetch_url(
cls,
url: str,
user_agent: str,
force_raw: bool = False,
) -> tuple[str, str]:
"""
Fetch the URL and return the content in a form ready for the LLM, as well as a prefix string with status information.
"""
from httpx import AsyncClient, HTTPError
async with AsyncClient() as client:
try:
response = await client.get(
url,
follow_redirects=True,
headers={"User-Agent": user_agent},
timeout=30,
)
except HTTPError as e:
raise McpError(
ErrorData(
code=INTERNAL_ERROR, message=f"Failed to fetch {url}: {e!r}"
)
)
if response.status_code >= 400:
raise McpError(
ErrorData(
code=INTERNAL_ERROR,
message=f"Failed to fetch {url} - status code {response.status_code}",
)
)
page_raw = response.text
content_type = response.headers.get("content-type", "")
is_page_html = (
"<html" in page_raw[:100] or "text/html" in content_type or not content_type
)
if is_page_html and not force_raw:
return cls.extract_content_from_html(page_raw), ""
return (
page_raw,
f"Content type {content_type} cannot be simplified to markdown, but here is the raw content:\n",
)
@staticmethod
def extract_content_from_html(html: str) -> str:
"""Extract and convert HTML content to Markdown format.
Args:
html: Raw HTML content to process
Returns:
Simplified markdown version of the content
"""
ret = readabilipy.simple_json.simple_json_from_html_string(
html, use_readability=True
)
if not ret["content"]:
return "<error>Page failed to be simplified from HTML</error>"
content = markdownify.markdownify(
ret["content"],
heading_style=markdownify.ATX,
)
return content
mcp = FastMCP(
"My MCP Server",
auth=SimpleBearerAuthProvider(TOKEN),
)
ResumeToolDescription = RichToolDescription(
description="Serve your resume in plain markdown.",
use_when="Puch (or anyone) asks for your resume; this must return raw markdown,
no extra formatting.",
side_effects=None,
)
@mcp.tool(description=ResumeToolDescription.model_dump_json())
async def resume() -> str:
"""
Return your resume exactly as markdown text.
TODO: Implement this function to:
1. Find and read your resume.
2. Convert the resume to markdown format.
3. Handle any errors gracefully.
4. Return the resume as markdown text.
"""
# TODO: Implement resume fetching logic
raise NotImplementedError("Resume tool not implemented")
@mcp.tool
async def validate() -> str:
"""
NOTE: This tool must be present in an MCP server used by puch.
"""
return MY_NUMBER
FetchToolDescription = RichToolDescription(
description="Fetch a URL and return its content.",
use_when="Use this tool when the user provides a URL and asks for its content, or when the user wants to fetch a webpage.",
side_effects="The user will receive the content of the requested URL in a simplified format, or raw HTML if requested.",
)
@mcp.tool(description=FetchToolDescription.model_dump_json())
async def fetch(
url: Annotated[AnyUrl, Field(description="URL to fetch")],
max_length: Annotated[
int,
Field(
default=5000,
description="Maximum number of characters to return.",
gt=0,
lt=1000000,
),
] = 5000,
start_index: Annotated[
int,
Field(
default=0,
description="On return output starting at this character index, useful if a previous fetch was truncated and more context is required.",
ge=0,
),
] = 0,
raw: Annotated[
bool,
Field(
default=False,
description="Get the actual HTML content if the requested page, without simplification.",
),
] = False,
) -> list[TextContent]:
"""Fetch a URL and return its content."""
url_str = str(url).strip()
if not url:
raise McpError(ErrorData(code=INVALID_PARAMS, message="URL is required"))
content, prefix = await Fetch.fetch_url(url_str, Fetch.USER_AGENT, force_raw=raw)
original_length = len(content)
if start_index >= original_length:
content = "<error>No more content available.</error>"
else:
truncated_content = content[start_index : start_index + max_length]
if not truncated_content:
content = "<error>No more content available.</error>"
else:
content = truncated_content
actual_content_length = len(truncated_content)
remaining_content = original_length - (start_index + actual_content_length)
# Only add the prompt to continue fetching if there is still remaining content
if actual_content_length == max_length and remaining_content > 0:
next_start = start_index + actual_content_length
content += f"\n\n<error>Content truncated. Call the fetch tool with a start_index of {next_start} to get more content.</error>"
return [TextContent(type="text", text=f"{prefix}Contents of {url}:\n{content}")]
async def main():
await mcp.run_async(
"streamable-http",
host="0.0.0.0",
port=8085,
)
if name == "main ":
import asyncio
asyncio.run(main())
<a name="comments"></a>
<div class="js-quote-selection-container" data-quote-markdown=".js-comment-body">
<div class="js-discussion "
>
<div class="ml-md-6 pl-md-3 ml-0 pl-0">
</div>
<div class="edit-comment-hide">
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-comment-update" data-type="json" data-turbo="false" action="/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6/comments/5723193" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="put" autocomplete="off" /><input type="hidden" name="authenticity_token" value="KIi7SY-s21j8K_lC62d5ELHY_jAM_GzwaBjLdfh7RKwsH2XQrCVCnTexY6C3EnwCqCFViCHmJwOWxW7dU7oo-Q" autocomplete="off" />
<include-fragment loading="lazy" src="/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6/comments/5723193/edit_form?textarea_id=gistcomment-5723193-body&comment_context=discussion" data-nonce="v2:567ae7c8-292b-4bf4-12eb-9fee30d2acf9" data-view-component="true" class="previewable-comment-form js-comment-edit-form-deferred-include-fragment">
Sorry, something went wrong.
<h3 data-view-component="true" class="blankslate-heading"> Uh oh!
There was an error while loading. Please reload this page .
</div>
<div class="edit-comment-hide">
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-comment-update" data-type="json" data-turbo="false" action="/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6/comments/5723512" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="put" autocomplete="off" /><input type="hidden" name="authenticity_token" value="txRED81txLhDfg4J0aXxgdKzTRS-9jvdkmCf0-s7WMZEksQF1hsZ7l0HnjnbQDng_X5OSigF_gxbocE9GTPZbQ" autocomplete="off" />
<include-fragment loading="lazy" src="/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6/comments/5723512/edit_form?textarea_id=gistcomment-5723512-body&comment_context=discussion" data-nonce="v2:567ae7c8-292b-4bf4-12eb-9fee30d2acf9" data-view-component="true" class="previewable-comment-form js-comment-edit-form-deferred-include-fragment">
Sorry, something went wrong.
<h3 data-view-component="true" class="blankslate-heading"> Uh oh!
There was an error while loading. Please reload this page .
</div>
<div class="edit-comment-hide">
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-comment-update" data-type="json" data-turbo="false" action="/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6/comments/5729650" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="put" autocomplete="off" /><input type="hidden" name="authenticity_token" value="1NlSKEVJzXQjVQXu9ZjNkjQIs6j4nloCEimFrucazMDbFzHGTkUcaPAUHZAeQrwZZ41I4XbCVz3oz5e8cT0afQ" autocomplete="off" />
<include-fragment loading="lazy" src="/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6/comments/5729650/edit_form?textarea_id=gistcomment-5729650-body&comment_context=discussion" data-nonce="v2:567ae7c8-292b-4bf4-12eb-9fee30d2acf9" data-view-component="true" class="previewable-comment-form js-comment-edit-form-deferred-include-fragment">
Sorry, something went wrong.
<h3 data-view-component="true" class="blankslate-heading"> Uh oh!
There was an error while loading. Please reload this page .
</div>
<div class="edit-comment-hide">
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-comment-update" data-type="json" data-turbo="false" action="/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6/comments/5732133" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="put" autocomplete="off" /><input type="hidden" name="authenticity_token" value="2pWMVvPucjyt6ZzeZXEn_8HbdyZVpzrIgwN6Ss3MBWkOPsUxRHQvBuFEGd0bHviRuwK1QD5BaRupbUUBf5cZSg" autocomplete="off" />
<include-fragment loading="lazy" src="/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6/comments/5732133/edit_form?textarea_id=gistcomment-5732133-body&comment_context=discussion" data-nonce="v2:567ae7c8-292b-4bf4-12eb-9fee30d2acf9" data-view-component="true" class="previewable-comment-form js-comment-edit-form-deferred-include-fragment">
Sorry, something went wrong.
<h3 data-view-component="true" class="blankslate-heading"> Uh oh!
There was an error while loading. Please reload this page .
</div>
<div class="edit-comment-hide">
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-comment-update" data-type="json" data-turbo="false" action="/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6/comments/5765943" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="put" autocomplete="off" /><input type="hidden" name="authenticity_token" value="cHgcFSqvgGYrJezcVVEQmYLArC50aFTfSND9h4xQwV49RgXaLDeRUZxOFr8QQGX4PniyzmsebFm4NeOMzkjWkQ" autocomplete="off" />
<include-fragment loading="lazy" src="/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6/comments/5765943/edit_form?textarea_id=gistcomment-5765943-body&comment_context=discussion" data-nonce="v2:567ae7c8-292b-4bf4-12eb-9fee30d2acf9" data-view-component="true" class="previewable-comment-form js-comment-edit-form-deferred-include-fragment">
Sorry, something went wrong.
<h3 data-view-component="true" class="blankslate-heading"> Uh oh!
There was an error while loading. Please reload this page .
</div>
<div class="discussion-timeline-actions">
<div data-view-component="true" class="flash flash-warn mt-3">
<a rel="nofollow" class="btn btn-primary" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"signed out comment","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://gist.github.com/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6","user_id":null}}" data-hydro-click-hmac="487dda79f8158583887a174159da5d33e6445168a7e1574fd39b8b0e4c4434dd" href="/join?source=comment-gist">Sign up for free</a>
<strong>to join this conversation on GitHub</strong>.
Already have an account?
<a rel="nofollow" class="Link--inTextBlock" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"signed out comment","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://gist.github.com/ArjitJ/cc7356bff1f782c03bf59a4f65a9d2d6","user_id":null}}" data-hydro-click-hmac="c78addf130b33a232eb4e6ce2573d5b87bb124a75a996bab4b780e2205b8e7b9" data-test-selector="comments-sign-in-link" href="/login?return_to=https%3A%2F%2Fgist.github.com%2FArjitJ%2Fcc7356bff1f782c03bf59a4f65a9d2d6">Sign in to comment</a>
</main>
<footer class="footer pt-8 pb-6 f6 color-fg-muted p-responsive" role="contentinfo" >
© 2025 GitHub, Inc.
<nav aria-label="Footer">
<h3 class="sr-only" id="sr-footer-heading">Footer navigation</h3>
<ul class="list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0" aria-labelledby="sr-footer-heading">
<li class="mx-2">
<a data-analytics-event="{"category":"Footer","action":"go to Terms","label":"text:terms"}" href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-view-component="true" class="Link--secondary Link">Terms</a>
</li>
<li class="mx-2">
<a data-analytics-event="{"category":"Footer","action":"go to privacy","label":"text:privacy"}" href="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-view-component="true" class="Link--secondary Link">Privacy</a>
</li>
<li class="mx-2">
<a data-analytics-event="{"category":"Footer","action":"go to security","label":"text:security"}" href="https://github.com/security" data-view-component="true" class="Link--secondary Link">Security</a>
</li>
<li class="mx-2">
<a data-analytics-event="{"category":"Footer","action":"go to status","label":"text:status"}" href="https://www.githubstatus.com/" data-view-component="true" class="Link--secondary Link">Status</a>
</li>
<li class="mx-2">
<a data-analytics-event="{"category":"Footer","action":"go to community","label":"text:community"}" href="https://github.community/" data-view-component="true" class="Link--secondary Link">Community</a>
</li>
<li class="mx-2">
<a data-analytics-event="{"category":"Footer","action":"go to docs","label":"text:docs"}" href="https://docs.github.com/" data-view-component="true" class="Link--secondary Link">Docs</a>
</li>
<li class="mx-2">
<a data-analytics-event="{"category":"Footer","action":"go to contact","label":"text:contact"}" href="https://support.github.com?tags=dotcom-footer" data-view-component="true" class="Link--secondary Link">Contact</a>
</li>
<li class="mx-2" >
</ul>
</nav>
<ghcc-consent id="ghcc" class="position-fixed bottom-0 left-0" style="z-index: 999999"
data-locale="en"
data-initial-cookie-consent-allowed=""
data-cookie-consent-required="false"
></ghcc-consent>
You can’t perform that action at this time.
<template id="site-details-dialog">
<div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;">
<template id="snippet-clipboard-copy-button">
</div>
<div id="js-global-screen-reader-notice" class="sr-only mt-n1" aria-live="polite" aria-atomic="true" ></div>
<div id="js-global-screen-reader-notice-assertive" class="sr-only mt-n1" aria-live="assertive" aria-atomic="true"></div>
Sorry, something went wrong.
There was an error while loading. Please reload this page.