+
    –°³j 9  ã                   ó@  a € R, t20 t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ RIHtHt ^ RIHtHt ^ RIHtHt ^ R	IHtHt ]P:                  ! ]4      t] ^ k R
t ] ^k ]! RR7       ! R R4      4       t!]! RR7       ! R R4      4       t"]! RR7       ! R R4      4       t# ! R R]	4      t$R R lt%R R lt&R-R R llt'R R lt(R R lt)Rt*R t+R!t, ! R" R#4      t- ! R$ R%]4      t. ! R& R']4      t/ ! R( R)4      t0R.R* R+ llt1R# )/é    N)ÚABCÚabstractmethod)ÚCallable)ÚThreadPoolExecutor)Ú	dataclass)ÚBaseHTTPRequestHandlerÚThreadingHTTPServer)Úparse_qsÚurlparse)Ú
DictLoaderÚEnvironment)Úget_world_sizeÚtcpstore_clientç      N@T)Úslotsc                   ó8   a € ] tR t^t o R tR tV 3R ltRtV tR# )ÚResponsec                ór   € V P                   ^È8w  d&   \        RV P                    RV P                   24      hR# )éÈ   zHTTP ú: N)Ústatus_codeÚRuntimeErrorÚtext©Úselfs   &Úb/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/distributed/debug/_frontend.pyÚraise_for_statusÚResponse.raise_for_status#   s8   € Ø×Ñ˜sÔ"Ü  t×'7Ñ'7Ð&8¸¸4¿9¹9¸+ÐFÓGÐGñ #ó    c                óB   € \         P                  ! V P                  4      # ©N)ÚjsonÚloadsr   r   s   &r   r"   ÚResponse.json'   s   € Ü�zŠz˜$Ÿ)™)Ó$Ð$r   c                ó2   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   # )é   r   r   )ÚintÚstr)ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚResponse.__annotate__   s   ø‡ ‚ áÑñ ñ �Iò r   © N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r"   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r*   s   @r   r   r      s   ø‡ € ò
Hò%÷ ƒ r   r   c                   ó,   a € ] tR t^+t o V 3R ltRtV tR# )ÚNavLinkc                ó2   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   # )r&   ÚpathÚlabel©r(   )r)   r*   s   "€r   r+   ÚNavLink.__annotate__+   s   ø‡ ‚ á
�Iñ ñ �Jò r   r-   N©r.   r/   r0   r1   r2   r3   r4   r5   s   @r   r7   r7   +   ó   ø‡ ‡ „ r   r7   c                   ó,   a € ] tR t^1t o V 3R ltRtV tR# )ÚRoutec                óH   <€ V ^8„  d   Qh/ S[ ;R&   S[R.S[3,          ;R&   # )r&   r9   ÚHTTPRequestHandlerÚhandler)r(   r   Úbytes)r)   r*   s   "€r   r+   ÚRoute.__annotate__1   s*   ø‡ ‚ á
�Iñ ñ Ð+Ð,©eÐ3Õ4Ñ4ò r   r-   Nr=   r5   s   @r   r@   r@   1   r>   r   r@   c                   óž   a € ] tR t^7t o ]t]V 3R lR l4       t]V 3R lR l4       tV 3R lR lt	V 3R lR lt
V 3R	 lR
 ltV 3R ltRtV tR# )ÚDebugHandlerc                ó0   <€ V ^8„  d   QhRS[ S[,          /# ©r&   Úreturn)Úlistr@   )r)   r*   s   "€r   r+   ÚDebugHandler.__annotate__;   s   ø€ ×(Ñ(™™U�Ñ(r   c                ó   € R # r!   r-   r   s   &r   ÚroutesÚDebugHandler.routes:   s   € Ù%(r   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# rI   )rK   r7   )r)   r*   s   "€r   r+   rL   >   s   ø€ ×-Ñ-™4¡�=Ñ-r   c                ó   € R # r!   r-   r   s   &r   Ú	nav_linksÚDebugHandler.nav_links=   s   € Ù*-r   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# rI   )Údictr(   )r)   r*   s   "€r   r+   rL   @   s   ø€ ÷ ñ ™4¡¡S �>ñ r   c                ó   € / # r!   r-   r   s   &r   Ú	templatesÚDebugHandler.templates@   s   € Øˆ	r   c                ó.   <€ V ^8„  d   QhRS[ R,          /# ©r&   rJ   Nr;   )r)   r*   s   "€r   r+   rL   C   s   ø€ ÷ ñ ‘c˜D•jñ r   c                ó   € R # r!   r-   r   s   &r   ÚdumpÚDebugHandler.dumpC   s   € Ùr   c                ó    <€ V ^8„  d   QhRS[ /# rI   r;   )r)   r*   s   "€r   r+   rL   F   s   ø€ ÷ +ñ +™sñ +r   c                óH   € \        V 4      P                  P                  4       # r!   )Útyper.   Úlowerr   s   &r   Údump_filenameÚDebugHandler.dump_filenameF   s   € Ü�D‹z×"Ñ"×(Ñ(Ó*Ð*r   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )r&   Úfetch_timeout)Úfloat)r)   r*   s   "€r   r+   rL   7   s   ø‡ ‚ ÙÑ1ò r   r-   N)r.   r/   r0   r1   Ú_DEFAULT_FETCH_TIMEOUTre   r   rN   rR   rW   r\   rb   r2   r3   r4   r5   s   @r   rG   rG   7   sK   ø‡ € Ø1€Màß(ó Ø(àß-ó Ø-÷ð ÷ð ÷+ð +÷ ƒ r   rG   c                óh   € V ^8„  d   QhR\         \        ,          R\        R\         \        ,          /# ©r&   ÚurlsÚtimeoutrJ   ©rK   r(   rf   r   )r)   s   "r   r+   r+   O   s)   € ÷ ñ œD¤�Ið ´ð ¼$¼x½.ñ r   c                 óÀ   aa€ ^ RI o^pR VV3R llp\        VR7      ;_uu_ 4       p\        VP                  W04      4      pRRR4       V#   + '       g   i     X# ; i)r   Nc                ó0   € V ^8„  d   QhR\         R\        /# )r&   ÚurlrJ   )r(   r   )r)   s   "r   r+   Ú'fetch_thread_pool.<locals>.__annotate__U   s   € ÷ 	=ñ 	=”ð 	=œñ 	=r   c                 ó¬  <€  SP                  V SR 7      p\        VP                  VP                  4      #   SP                  P
                   d   p\        RRT 24      u Rp?# Rp?iSP                  P                   d   p\        RRT 24      u Rp?# Rp?i\         d/   p\        R\        T4      P                   RT 24      u Rp?# Rp?ii ; i)©rk   é˜  z	Timeout: Né÷  zConnectionError: éö  r   )
Úpostr   r   r   Ú
exceptionsÚTimeoutÚConnectionErrorÚ	Exceptionr`   r.   )ro   ÚrespÚeÚrequestsrk   s   &  €€r   ÚgetÚfetch_thread_pool.<locals>.getU   s¶   ø€ ð	=Ø—=‘= ¨g�=Ó6ˆDÜ˜D×,Ñ,¨d¯i©iÓ8Ð8øØ×"Ñ"×*Ñ*ô 	2Ü˜C 9¨Q¨C Ó1Õ1ûØ×"Ñ"×2Ñ2ô 	:Ü˜CÐ#4°Q°CÐ!8Ó9Õ9ûÜô 	=Ü˜C¤D¨£G×$4Ñ$4Ð#5°R¸°sÐ!;Ó<Õ<ûð	=úsK   ƒ26 ¶CÁA%ÁCÁ%CÂCÂBÂCÂCÂ$CÂ%#CÃCÃC)Úmax_workers)r}   r   rK   Úmap)rj   rk   r€   r~   ÚexecutorÚrespsr}   s   &f    @r   Úfetch_thread_poolr„   O   sS   ù€ ãà€K÷	=ñ 	=ô 
¨×	4Õ	4¸Ü�X—\‘\ #Ó,Ó-ˆ÷ 
5ð €L÷ 
5Ö	4ð €Lús   §AÁA	c                óh   € V ^8„  d   QhR\         \        ,          R\        R\         \        ,          /# ri   rl   )r)   s   "r   r+   r+   f   s)   € ÷ %ñ %œœS�	ð %¬Eð %´d¼8µnñ %r   c                 óv   aaa€ ^ RI oV3R lV3R lloR VVV3R llp\        P                  ! V! V 4      4      # )r   Nc                óJ   <€ V ^8„  d   QhRSP                   R\        R\        /# )r&   Úsessionro   rJ   )ÚClientSessionr(   r   )r)   Úaiohttps   "€r   r+   Ú#fetch_aiohttp.<locals>.__annotate__k   s(   ø€ ÷ 
=ñ 
=˜W×2Ñ2ð 
=¼ð 
=Äñ 
=r   c              “   ób  <"  €  V P                  V4      ;_uu_4       GR j  x€L
 pVP                  4       G R j  x€L
 p\        VP                  V4      uuR R R 4      GR j  x€L
  #  LD L. L	  + GR j  x€L 
 '       g   i     R # ; i  \        P
                   d   p\        RRT 24      u R p?# R p?iSP                   d/   p\        R\        T4      P                   RT 24      u R p?# R p?i\         d/   p\        R\        T4      P                   RT 24      u R p?# R p?ii ; i5i)Nrs   zTimeoutError: rt   r   ru   )
rv   r   r   ÚstatusÚasyncioÚTimeoutErrorÚClientErrorr`   r.   rz   )rˆ   ro   r{   r   r|   rŠ   s   &&   €r   ÚfetchÚfetch_aiohttp.<locals>.fetchk   sà   øé € ð		=Ø—|‘| C×(×(Ô(¨DØ!ŸY™Y›[×(�Ü §¡¨TÓ2÷ )×(Ô(Ù(÷ )×(×(Ó(ûô ×#Ñ#ô 	7Ü˜C >°!°Ð!5Ó6Õ6ûØ×"Ñ"ô 	=Ü˜C¤D¨£G×$4Ñ$4Ð#5°R¸°sÐ!;Ó<Õ<ûÜô 	=Ü˜C¤D¨£G×$4Ñ$4Ð#5°R¸°sÐ!;Ó<Õ<ûð	=üs×   ƒD/…B
 ¢A'£B
 ¦A-ºA)»A-ÁB
 Á!A+Á"B
 Á&D/Á'B
 Á)A-Á+B
 Á-B	Á3A6Á4
B	Á?B	ÂB
 ÂD/ÂB
 Â
D,ÂB3Â-D,Â.D/Â3D,ÃD,Ã#C0Ã*D,Ã+D/Ã0D,Ã=D,Ã>#D'Ä!D,Ä"D/Ä'D,Ä,D/c                ó\   € V ^8„  d   QhR\         \        ,          R\         \        ,          /# )r&   rj   rJ   ©rK   r(   r   )r)   s   "r   r+   r‹   w   s&   € ÷ Vñ Vœ4¤�9ð V¬¬h­ñ Vr   c              “   ó`  <"  € SP                  SR 7      pSP                  VR7      ;_uu_4       GRj  x€L
 p\        \        P                  ! V  Uu. uF  pS! W#4      NK  	  up!  G Rj  x€L
 4      uuRRR4      GRj  x€L
  #  LQu upi  L! L  + GRj  x€L 
 '       g   i     R# ; i5i))Útotalrr   N)ÚClientTimeoutr‰   rK   rŽ   Úgather)rj   Úclient_timeoutrˆ   ro   rŠ   r‘   rk   s   &   €€€r   r˜   Úfetch_aiohttp.<locals>.gatherw   s{   øé € Ø ×.Ñ.°WÐ.Ó=ˆØ×(Ñ(°Ð(×@×@Ô@ÀGÜœgŸnšnÉdÓ.SÉdÀs©u°WÖ/BÉdÑ.SÑT×TÓU÷ A×@Ô@ùÚ.SÑT÷ A×@×@Ó@üsh   ƒ1B.´BµB.¸BÁBÁ#BÁ+BÁ,BÁ3B.Â BÂB.ÂBÂB.ÂB+	ÂBÂ
B+	Â#B+	Â%	B.)rŠ   rŽ   Úrun)rj   rk   r˜   rŠ   r‘   s   &f @@r   Úfetch_aiohttprœ   f   s3   ú€ ó ÷
=ó 
=÷Vò Vô
 �;Š;‘v˜d“|Ó$Ð$r   c                ó–   € V ^8„  d   QhR\         R\         R\        R\        \        \         ,          \        \        ,          3,          /# )r&   ÚendpointÚargsrk   rJ   )r(   rf   ÚtuplerK   r   )r)   s   "r   r+   r+      s>   € ÷ ñ ÜðÜðÜ/4ðä
Œ4”�9”dœ8•nÐ$Õ%ñr   c                ó@  € \        4       p\        \        4       4       Uu. uF  pR V 2NK
  	  ppVP                  V4      pV Uu. uF  qwP	                  4        RV  RV 2NK  	  pp \        WbR7      pWh3# u upi u upi   \         d    \        YbR7      p Yh3# i ; i)Úrankz	/handler/Ú?rr   )r   Úranger   Ú	multi_getÚdecoderœ   ÚImportErrorr„   )	rž   rŸ   rk   ÚstoreÚrÚkeysÚaddrsÚaddrrƒ   s	   &&$      r   Ú	fetch_allr­      s«   € ô Ó€EÜ %¤nÓ&6Ô 7Ó8Ñ 7˜1ˆd�1�#‹JÑ 7€DÐ8Ø�O‰O˜DÓ!€EÙFKÓLÁe¸d—‘“ˆ˜i¨ z°°4°&Ó9Áe€EÐLð:Ü˜eÔ5ˆð ˆ<Ðùò 9ùâLøô ô :Ü! %Ô9‰àˆ<Ðð:ús    A7Á A<Á(B ÂBÂBc                ó$   € V ^8„  d   QhR\         /# )r&   Úblobr;   )r)   s   "r   r+   r+   �   s   € ÷ (ñ (”cñ (r   c                 ó^   € \         P                  ! V 4      p\         P                  ! V^R7      # )r&   )Úindent)r"   r#   Údumps)r¯   Úparseds   & r   Úformat_jsonr´   �   s!   € Ü�ZŠZ˜Ó€FÜ�:Š:�f QÔ'Ð'r   c                óv   € V ^8„  d   QhR\         \        ,          R\         \        ,          R\        R,          /# )r&   r«   rƒ   rJ   Nr”   )r)   s   "r   r+   r+   ”   s-   € ÷ 
ñ 
¤¤S¥	ð 
´$´xµ.ð 
ÄSÈ4ÅZñ 
r   c                óN  € \        V4       UUu. uF  w  r#VP                  ^È8w  g   K  W#3NK  	  pppV'       g   R# \        V 4      pV\        V4      ,
          pRV RV R2.pV F&  w  r‰VP                  RV RV	P                   24       K(  	  RP                  V4      # u uppi )zHReturn a summary string if any workers failed, or None if all succeeded.NzPARTIAL DATA: Ú/z workers respondedz  Rank r   Ú
)Ú	enumerater   ÚlenÚappendr   Újoin)
r«   rƒ   Úir©   Úfailedr–   ÚokÚlinesr¢   r{   s
   &&        r   Úformat_fetch_summaryrÁ   ”   s¡   € ä!*¨5Ô!1ÔJÑ!1™˜°Q·]±]ÀcÑ5IŒfˆq‹fÑ!1€FÑJßÙÜ�‹J€EØ	”�V“Õ	€BØ˜b˜T  5 'Ð);Ð<Ð=€EÛ‰
ˆØ�‰�w˜t˜f B t§y¡y kÐ2Ö3ñ à�9‰9�UÓÐùó Ks
   �B!©B!ac  
<!doctype html>
<head>
    <title>{% block title %}{% endblock %} - PyTorch Distributed</title>
    <link rel="shortcut icon" type="image/x-icon" href="https://pytorch.org/favicon.ico?">

    <style>
        body {
            margin: 0;
            font-family:
                -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,
                "Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji",
                "Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
            font-size: 1rem;
            font-weight: 400;
            line-height: 1.5;
            color: #212529;
            text-align: left;
            background-color: #fff;
        }
        h1, h2, h2, h4, h5, h6, .h1, .h2, .h2, .h4, .h5, .h6 {
            margin-bottom: .5rem;
            font-weight: 500;
            line-height: 1.2;
        }
        nav {
            background-color: rgba(0, 0, 0, 0.17);
            padding: 10px;
            display: flex;
            align-items: center;
            padding: 16px;
            justify-content: flex-start;
        }
        nav h1 {
            display: inline-block;
            margin: 0;
        }
        nav a {
           margin: 0 8px;
        }
        section {
            max-width: 1280px;
            padding: 16px;
            margin: 0 auto;
        }
        pre {
            white-space: pre-wrap;
            max-width: 100%;
        }
    </style>
</head>

<nav>
    <h1>Torch Distributed Debug Server</h1>

    {{ nav_links | safe }}
</nav>

<section class="content">
  {% block header %}{% endblock %}
  {% block content %}{% endblock %}
</section>
    aó  
{% extends "base.html" %}
{% block header %}
    <h1>{% block title %}{{title}}{% endblock %}</h1>
{% endblock %}
{% block content %}
    {% for i, (addr, resp) in enumerate(zip(addrs, resps)) %}
        <h2>Rank {{ i }}: {{ addr }}</h2>
        {% if resp.status_code != 200 %}
            <p>Failed to fetch: status={{ resp.status_code }}</p>
            <pre>{{ resp.text }}</pre>
        {% else %}
            <pre>{{ resp.text }}</pre>
        {% endif %}
    {% endfor %}
{% endblock %}
    a  
{% extends "base.html" %}
{% block header %}
    <h1>{% block title %}{{ title }}{% endblock %}</h1>
{% endblock %}
{% block content %}
    {% for i, (addr, resp) in enumerate(zip(addrs, resps)) %}
        <h2>Rank {{ i }}: {{ addr }}</h2>
        {% if resp.status_code != 200 %}
            <p>Failed to fetch: status={{ resp.status_code }}</p>
            <pre>{{ resp.text }}</pre>
        {% else %}
            <pre>{{ format_json(resp.text) }}</pre>
        {% endif %}
    {% endfor %}
{% endblock %}
    c                   ól   a € ] tR tRt o RV 3R lR lltV 3R lR ltV 3R lR ltV 3R lR	 ltR
tV t	R# )ÚPeriodicDumperi  c                ó@   <€ V ^8„  d   QhRS[ S[,          RS[RS[RR/# )r&   ÚhandlersÚ
output_dirÚinterval_secondsrJ   N)rK   rG   r(   rf   )r)   r*   s   "€r   r+   ÚPeriodicDumper.__annotate__  s8   ø€ ÷ 
5ñ 
5á‘|Õ$ð
5ñ ð
5ñ  ð	
5ð
 
ñ
5r   c                ól   € Wn         W n        W0n        \        P                  ! 4       V n        R V n        R # r!   )Ú	_handlersÚ_output_dirÚ_interval_secondsÚ	threadingÚEventÚ_stop_eventÚ_thread)r   rÅ   rÆ   rÇ   s   &&&&r   Ú__init__ÚPeriodicDumper.__init__  s+   € ð "ŒØ%ÔØ!1ÔÜ$Ÿ?š?Ó,ˆÔØ04ˆŽr   c                ó   <€ V ^8„  d   QhRR/# rZ   r-   )r)   r*   s   "€r   r+   rÈ     s   ø€ ÷ ñ �tñ r   c                óÎ   € \         P                  ! V P                  R R7       \        P                  ! V P
                  R RR7      V n        V P                  P                  4        R# )T)Úexist_okz distributed.debug.PeriodicDumper)ÚtargetÚdaemonÚnameN)ÚosÚmakedirsrË   rÍ   ÚThreadÚ_runrÐ   Ústartr   s   &r   rÝ   ÚPeriodicDumper.start  sG   € Ü
�Š�D×$Ñ$¨tÕ4Ü ×'Ò'Ø—9‘9ØØ3ô
ˆŒð
 	�‰×ÑÖr   c                ó   <€ V ^8„  d   QhRR/# rZ   r-   )r)   r*   s   "€r   r+   rÈ   &  s   ø€ ÷  ñ  �dñ  r   c                óŽ   € V P                   P                  4        V P                  e   V P                  P                  4        R # R # r!   )rÏ   ÚsetrÐ   r¼   r   s   &r   ÚstopÚPeriodicDumper.stop&  s3   € Ø×Ñ×ÑÔØ�<‰<Ò#Ø�L‰L×ÑÖñ $r   c                ó   <€ V ^8„  d   QhRR/# rZ   r-   )r)   r*   s   "€r   r+   rÈ   +  s   ø€ ÷ :ñ :�dñ :r   c                óÚ  € V P                   P                  4       '       g×   V P                   FŸ  p VP                  4       pTf   K  \        P                  ! R4      pTP                  4        RT R2p\        P                  P                  T P                  T4      p \        TR4      ;_uu_ 4       pTP                  T4       RRR4       K¡  	  V P                   P!                  V P"                  4       Kö  R#   \         d)    \
        P                  R TP                  4       4        Kþ  i ; i  + '       g   i     EK  ; i  \         d    \
        P                  RT4        EK<  i ; i)zFailed to dump %sNz%Y%m%d_%H%M%SÚ_z.txtÚwzFailed to write dump to %s)rÏ   Úis_setrÊ   r\   rz   ÚloggerÚ	exceptionrb   ÚtimeÚstrftimerÙ   r9   r¼   rË   ÚopenÚwriteÚwaitrÌ   )r   rC   ÚcontentÚ	timestampÚfilenamer9   Úfs   &      r   rÜ   ÚPeriodicDumper._run+  s&  € Ø×"Ñ"×)Ñ)×+Ò+ØŸ>œ>�ðØ%Ÿl™l›n�Gð ’?ÙÜ ŸMšM¨/Ó:�	Ø%×3Ñ3Ó5Ð6°a¸	°{À$ÐG�Ü—w‘w—|‘| D×$4Ñ$4°hÓ?�ðIÜ˜d CŸœ¨AØŸ™ Ô(÷ )™ñ *ð  ×Ñ×!Ñ! $×"8Ñ"8Ö9ñ# ,øô !ô Ü×$Ñ$Ð%8¸'×:OÑ:OÓ:QÔRÚðú÷ )Ÿ™ûä ô IÜ×$Ñ$Ð%AÀ4×HÐHðIúsA   ±C9ÂEÂ2D/ÃEÃ9/D,Ä+D,Ä/EÄ:EÅEÅ!E*Å)E*)rÊ   rÌ   rË   rÏ   rÐ   N©r   )
r.   r/   r0   r1   rÑ   rÝ   râ   rÜ   r3   r4   r5   s   @r   rÃ   rÃ     s-   ø‡ € ÷
5ò 
5÷ð ÷ ð  ÷
:ö :r   rÃ   c                   óH   a € ] tR tRt o ]P
                  tRtV 3R ltRt	V t
R# )Ú_IPv6HTTPServeriE  i   c                óF   <€ V ^8„  d   Qh/ S[ P                  ;R&   S[;R&   # )r&   Úaddress_familyÚrequest_queue_size)ÚsocketÚAddressFamilyr'   )r)   r*   s   "€r   r+   Ú_IPv6HTTPServer.__annotate__E  s!   ø‡ ‚ Ù×(Ñ(Ñ:ñ áÑ"ò r   r-   N)r.   r/   r0   r1   rû   ÚAF_INET6rù   rú   r2   r3   r4   r5   s   @r   r÷   r÷   E  s   ø‡ € Ø+1¯?©?€NØ"Ð÷ ƒ r   r÷   c                   óˆ   a € ] tR tRt o R tR tV 3R lR ltV 3R lR ltV 3R lR	 ltR
]	3V 3R lR llt
V 3R ltRtV tR
# )rB   iJ  c                ób   € \         P                  R V P                  ^ ,          W,          4       R# )z%s %sN)ré   ÚinfoÚclient_address)r   r)   rŸ   s   &&*r   Úlog_messageÚHTTPRequestHandler.log_messageM  s$   € Ü�‰ØØ×Ñ Õ"Ø�Mö	
r   c                ó<   € V P                   P                  V 4       R # r!   )ÚfrontendÚ_handle_requestr   s   &r   Údo_GETÚHTTPRequestHandler.do_GETT  s   € Ø�‰×%Ñ% dÖ+r   c                ó    <€ V ^8„  d   QhRS[ /# rI   r;   )r)   r*   s   "€r   r+   ÚHTTPRequestHandler.__annotate__W  s   ø€ ÷ (ñ (™#ñ (r   c                ó@   € \        V P                  4      P                  # r!   )r   r9   r   s   &r   Úget_pathÚHTTPRequestHandler.get_pathW  s   € Ü˜Ÿ	™	Ó"×'Ñ'Ð'r   c                óF   <€ V ^8„  d   QhRS[ S[S[S[,          3,          /# rI   )rU   r(   rK   )r)   r*   s   "€r   r+   r  Z  s!   ø€ ÷ .ñ .™4¡¡T©#¥Y Õ/ñ .r   c                ó4   € \        V P                  4       4      # r!   )r
   Úget_raw_queryr   s   &r   Ú	get_queryÚHTTPRequestHandler.get_queryZ  s   € Ü˜×*Ñ*Ó,Ó-Ð-r   c                ó    <€ V ^8„  d   QhRS[ /# rI   r;   )r)   r*   s   "€r   r+   r  ]  s   ø€ ÷ )ñ )™sñ )r   c                ó@   € \        V P                  4      P                  # r!   )r   r9   Úqueryr   s   &r   r  Ú HTTPRequestHandler.get_raw_query]  s   € Ü˜Ÿ	™	Ó"×(Ñ(Ð(r   Nc                ó2   <€ V ^8„  d   QhRS[ RS[RS[RS[/# )r&   rØ   Údefaultr`   rJ   )r(   Úobjectr`   )r)   r*   s   "€r   r+   r  `  s-   ø€ ÷ $ñ $Ùð$Ù"(ð$Ù7;ð$á	ñ$r   c                ó\   € V P                  4       pW9  d   V# V! WA,          ^ ,          4      # )r   )r  )r   rØ   r  r`   r  s   &&&& r   Úget_query_argÚ HTTPRequestHandler.get_query_arg`  s,   € ð —‘Ó ˆØÔØˆNÙ�E•K •NÓ#Ð#r   c                ó$   <€ V ^8„  d   Qh/ R;R&   # )r&   ÚFrontendServerr  r-   )r)   r*   s   "€r   r+   r  J  s   ø‡ ‚ ØÑò r   r-   )r.   r/   r0   r1   r  r  r  r  r  r(   r  r2   r3   r4   r5   s   @r   rB   rB   J  sE   ø‡ € ò
ò,÷(ð (÷.ð .÷)ð )ð ,0¸c÷$ò $÷- ƒ r   rB   c                   ó~   a € ] tR tRt o RV 3R lR lltV 3R lR ltV 3R lR ltV 3R	 lR
 ltV 3R lR ltRt	V t
R# )r  ii  Nc                óD   <€ V ^8„  d   QhRS[ RS[S[,          R,          /# )r&   ÚportrÅ   N)r'   rK   rG   )r)   r*   s   "€r   r+   ÚFrontendServer.__annotate__j  s)   ø€ ÷ ;ñ ;áð;ñ ‘|Õ$ tÕ+ñ;r   c                óê  € Vf   ^ RI Hp V! 4       pRP                  R V 4       4      pR\        R\        R\
        /pV F"  pVP                  VP                  4       4       K$  	  \        V4      p\        VRR7      V n
        V P                  P                  P                  \        \        \        VR	7       / V n        V F=  pVP!                  4        F&  pVP"                  V P                  VP$                  &   K(  	  K?  	  W n        \)        R
\*        3RV /4      p	RV3p
\-        W©4      V n        \0        P2                  ! V P4                  RRRR7      V n        V P6                  P9                  4        R # )N)Údefault_handlersr¸   c              3   óŠ   "  € T F9  pVP                  4        F"  pR VP                   RVP                   R2x € K$  	  K;  	  R# 5i)z    <a href="z">z</a> <!--@lint-ignore-->N)rR   r9   r:   )Ú.0rC   Úlinks   &  r   Ú	<genexpr>Ú*FrontendServer.__init__.<locals>.<genexpr>u  sF   é € ð 
á#�Ø×)Ñ)Ö+�ð ˜DŸI™I˜; b¨¯©¨Ð4LÕMá+ñ NÛ#ùs   ‚AAz	base.htmlzraw_resp.htmlzjson_resp.htmlT)ÚloaderÚenable_async)Úzipr´   r¹   rR   rB   r  Ú z distributed.debug.FrontendServer)rÖ   rŸ   r×   rØ   r-   )Ú'torch.distributed.debug._debug_handlersr%  r¼   ÚBASE_TEMPLATEÚRAW_RESP_TEMPLATEÚJSON_RESP_TEMPLATEÚupdaterW   r   r   Ú
_jinja_envÚglobalsr-  r´   r¹   Ú_routesrN   rC   r9   rÊ   r`   rB   r÷   Ú_serverrÍ   rÛ   Ú_serverÐ   rÝ   )r   r"  rÅ   r%  Únav_htmlÚall_templatesrC   r+  ÚrouteÚRequestHandlerClassÚserver_addresss   &&&        r   rÑ   ÚFrontendServer.__init__j  s^  € ð
 ÒÝPá'Ó)ˆHð —9‘9ñ 
á#ó
ó 
ˆð œØÔ.ØÔ0ð)
ˆó
  ˆGØ× Ñ  ×!2Ñ!2Ó!4Ö5ñ  ô ˜MÓ*ˆÜ%¨VÀ$ÔGˆŒØ�‰×Ñ×&Ñ&ÜÜ#ÜØð	 	'ô 	
ð JLˆŒÛˆGØ Ÿ™Ö)�Ø+0¯=©=�—‘˜UŸZ™ZÓ(ó *ñ  ð "Œô #Ø ÜÐ!Ø˜Ðó
Ðð ˜d˜ˆÜ& ~ÓKˆŒä ×'Ò'Ø—;‘;ØØØ3ô	
ˆŒð 	�‰×ÑÖr   c                ó   <€ V ^8„  d   QhRR/# rZ   r-   )r)   r*   s   "€r   r+   r#  §  s   ø€ ÷ Añ A˜ñ Ar   c                óŠ   €  V P                   P                  4        R#   \         d    \        P	                  R 4        R# i ; i)z got exception in frontend serverN)r7  Úserve_foreverrz   ré   rê   r   s   &r   r8  ÚFrontendServer._serve§  s8   € ð	AØ�L‰L×&Ñ&Ö(øÜô 	AÜ×ÑÐ?×@ð	Aús   ‚ ž AÁAc                ó   <€ V ^8„  d   QhRR/# rZ   r-   )r)   r*   s   "€r   r+   r#  ­  s   ø€ ÷ ñ �dñ r   c                ó:   € V P                   P                  4        R # r!   )rÐ   r¼   r   s   &r   r¼   ÚFrontendServer.join­  s   € Ø�‰×ÑÖr   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r&   ÚreqrJ   N)rB   )r)   r*   s   "€r   r+   r#  °  s   ø€ ÷ ñ Ñ#5ð ¸$ñ r   c                óî  € VP                  4       pW P                  9  d   VP                  R RV 24       R# V P                  V,          p V! V4      pTP                  ^È4       TP                  RR4       TP                  4        TP                  P                  T4       R#   \        \        3 d@   p\
        P                  RT4       TP                  RR\        T4       24        Rp?R# Rp?ii ; i)i”  zHandler not found: Nz-Exception in frontend server when handling %siô  zException: zContent-typez	text/html)r  r6  Ú
send_errorrz   Ú
SystemExitré   rê   ÚreprÚsend_responseÚsend_headerÚend_headersÚwfilerî   )r   rG  r9   rC   r{   r|   s   &&    r   r  ÚFrontendServer._handle_request°  sÍ   € Ø�|‰|‹~ˆØ—|‘|Ô#Ø�N‰N˜3Ð"5°d°VÐ <Ô=Ùà—,‘,˜tÕ$ˆð		Ù˜3“<ˆDð 	×Ñ˜#ÔØ�‰˜¨Ô4Ø�‰ÔØ�	‰	�‰˜Öøô œ:Ð&ô 	Ü×ÑØ?Øôð �N‰N˜3 +¬d°1«g¨YÐ 7Ô8Ýûð	ús   ÁB$ Â$C4Â54C/Ã/C4c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# )r&   ÚtemplateÚkwargsrJ   )r(   r  rD   )r)   r*   s   "€r   r+   r#  Ç  s'   ø€ ÷ Pñ P©ð P±vð PÁ%ñ Pr   c                ót   € V P                   P                  V4      P                  ! R/ VB P                  4       # )Nr-   )r4  Úget_templateÚrenderÚencode)r   rR  rS  s   &&,r   Úrender_templateÚFrontendServer.render_templateÇ  s.   € Ø�‰×+Ñ+¨HÓ5×<Ò<ÑF¸vÑF×MÑMÓOÐOr   )rÊ   r4  r6  r7  rÐ   r!   )r.   r/   r0   r1   rÑ   r8  r¼   r  rX  r3   r4   r5   s   @r   r  r  i  s<   ø‡ € ÷;ò ;÷zAð A÷ð ÷ð ÷.Pö Pr   r  c                óž   € V ^8„  d   QhR\         R\        R,          R\        R\        \        ,          R\
        \        ,          R\        RR/# )	r&   r"  Údump_dirNÚdump_intervalrÅ   Úenabled_dumpsre   rJ   )r'   r(   rf   rK   rG   rá   )r)   s   "r   r+   r+   Ë  s[   € ÷ &ñ &Ü
ð&ä�D�jð&ô ð&ô ”<Õ ð	&ô
 ”s•8ð&ô ð&ð 
ñ&r   c                 ó$  € V F	  pWVn         K  	  \        P                  \        P                  4       \        WR 7      p\        P                  RVP                  P                  4       RpVe\   \        V Uu. uF  pVP                  4       V9   g   K  VNK  	  upVV4      pVP                  4        \        P                  RVV4        VP                  4        Ve   VP                  4        R# R# u upi   Te   TP                  4        i i ; i))r"  rÅ   z"Frontend server started on port %dNz2Periodic dumper started, writing to %s every %.0fs)re   ré   ÚsetLevelÚloggingÚINFOr  r  r7  Úserver_portrÃ   rb   rÝ   r¼   râ   )	r"  r[  r\  rÅ   r]  re   rC   ÚserverÚdumpers	   &&&&&&   r   Úmainre  Ë  sõ   € ó ˆØ -Öñ ô ‡O�O”G—L‘LÔ!ä Ô9€FÜ
‡K�KÐ4°f·n±n×6PÑ6PÔQà$(€FØÒÜñ  (óá'�GØ×(Ñ(Ó*¨mÑ;÷ �Ù'ñð
 Øó
ˆð 	�‰ŒÜ�‰Ø@ØØô	
ðØ�‰ŒàÒØ�K‰KŽMñ ùò%øð$ ÒØ�K‰K�Mð ús   Á8C3ÂC3ÃC8 Ã8Dc                ó|   € V ^8„  d   Qh/ ^ \         9   d   \        P                  ;R&   ^\         9   d
   \        ;R&   # )r&   ré   rg   )Ú__conditional_annotations__r`  ÚLoggerrf   )r)   s   "r   r+   r+      s.   € ‡�÷& 5Ò 4Œ�‰Ñ 4ñ' ÷* %Ò $œÑ $ò+ r   )r.  rõ   )3rg  rŽ   r"   r`  rÙ   rû   rÍ   rë   Úabcr   r   Úcollections.abcr   Úconcurrent.futuresr   Údataclassesr   Úhttp.serverr   r	   Úurllib.parser
   r   Újinja2r   r   Útorch.distributed.debug._storer   r   Ú	getLoggerr.   ré   rg   r   r7   r@   rG   r„   rœ   r­   r´   rÁ   r0  r1  r2  rÃ   r÷   rB   r  re  r+   )rg  s   @r   Ú<module>rr     s(  øðß €Û Û Û 	Û Û Û ß #Ý $Ý 1Ý !ß Cß +ç *ç Jð !×*Ò*¨8Ó4€Ó 4à $Ð Ó $ñ �Ô÷	%ð 	%ó ð	%ñ �Ô÷ð ó ðñ
 �Ô÷5ð 5ó ð5ô
+�3ô +õ0õ.%÷2õ (õ

ð$>€ð@Ð ð$Ð ÷0-:ñ -:ôj#Ð)ô #ô
$Ð/ô $÷>_Pñ _P÷D&ñ &r   