§
    B�’j³
 ã                   ó¸  — U d Z ddlZddlZddlZddlZddlZddlmZmZm	Z	 ddlm
Z
mZ ddlmZmZ ddlZddlmZ ddlmZ ddlmZ d	d
lmZmZ d	dlmZ d	dlmZ d	dlmZm Z  d	dl!m"Z"m#Z# d	dl$m%Z%m&Z& ddl'm(Z( ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1 ddl2m3Z3 erddl4m5Z5 ddl6m7Z7  ej8        e9¦  «        Z: G d„ de(¦  «        Z; G d„ de3¦  «        Z< G d„ de<¦  «        Z= G d„ de<¦  «        Z> G d„ de;¦  «        Z? G d „ d!e;¦  «        Z@ G d"„ d#e;¦  «        ZA G d$„ d%e;¦  «        ZB G d&„ d'e;¦  «        ZC G d(„ d)e;¦  «        ZD G d*„ d+e;¦  «        ZE G d,„ d-e;¦  «        ZF G d.„ d/e;¦  «        ZG G d0„ d1e;¦  «        ZH G d2„ d3e;¦  «        ZI G d4„ d5eI¦  «        ZJ G d6„ d7eI¦  «        ZK G d8„ d9eI¦  «        ZLejM        jN        eJejO        jN        eKejP        jQ        eLiZReSeTeTeI         f         eUd:<   d;eTd<eTeI         d=dfd>„ZVd;eTd=eTeI         dz  fd?„ZW G d@„ dAe;¦  «        ZX G dB„ dCe;¦  «        ZY G dD„ dEe;¦  «        ZZ G dF„ dGe;¦  «        Z[ G dH„ dIe;¦  «        Z\ G dJ„ dKe;¦  «        Z] G dL„ dMe;¦  «        Z^ G dN„ dOe;¦  «        Z_ G dP„ dQe;¦  «        Z` G dR„ dSe;¦  «        Za G dT„ dUe;¦  «        Zb G dV„ dWe;¦  «        Zc G dX„ dYe;¦  «        Zd G dZ„ d[e(¦  «        Ze G d\„ d]e(¦  «        ZfdS )^a)  
This file contains a collection of context manager classes used by Dynamo for tracking
and managing various PyTorch runtime states during graph compilation. These context
managers handle different aspects of PyTorch's execution environment, including:

- Autograd states (grad mode, inference mode)
- CUDA streams and events
- Profiling contexts
- Deterministic algorithms
- Forward/backward AD modes
- SDPA (Scaled Dot Product Attention) kernels
- FSDP (Fully Sharded Data Parallel) states
- AMP (Automatic Mixed Precision) autocast states

The context managers ensure proper state transitions during graph compilation by
tracking enter/exit points and managing cleanup operations. They help maintain
consistency between eager execution and compiled graph behavior by capturing and
restoring state changes.
é    N)ÚCallableÚSequenceÚSized)ÚAbstractContextManagerÚ	ExitStack)ÚAnyÚTYPE_CHECKING)Úconfig)ÚGuard)Úwarning_onceé   )Úgraph_break_hintsÚ	variables)Úcreate_call_function)Úunimplemented)ÚGuardBuilderÚinstall_guard)Ú
AttrSourceÚGlobalStateSource)Ú_get_error_on_graph_breakÚ_set_error_on_graph_breaké   )ÚVariableTracker)ÚNestedUserFunctionVariableÚSkipFunctionVariableÚUserFunctionVariableÚUserMethodVariableÚ!WrappedNestedUserFunctionVariableÚWrappedSkipFunctionVariableÚWrappedUserFunctionVariableÚWrappedUserMethodVariable)ÚUserDefinedObjectVariable)Ú	PyCodegen)ÚInstructionTranslatorBasec            	       óB  ‡ — e Zd Zddddhej        £Z	 ddededz  deddfˆ fd„Zd	d
dededefd„Zd	d
defd„Z		 dd	d
de
def         dz  ddfd„Zd	d
dedefd„Zd d„Zd d„Zdefd„Zdefd„Zd	d
dee         deeef         defd„Zdefd„Zdefd„Zd!d„Zd!d„Zˆ xZS )"ÚContextWrappingVariableÚcm_objÚtarget_valuesÚinitial_valuesÚstateNÚkwargsÚreturnc                 óV   •—  t          ¦   «         j        di |¤Ž || _        || _        d S ©N© )ÚsuperÚ__init__r(   r)   ©Úselfr(   r)   r+   Ú	__class__s       €úQC:\Projects\DSCons\.venv\Lib\site-packages\torch\_dynamo\variables\ctx_manager.pyr1   z ContextWrappingVariable.__init__G   s8   ø€ ð 	�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ø*ˆÔØ,ˆÔÐÐó    Útxr$   ÚotherÚopc                 ó*   — ddl m}  || |||¦  «        S ©Nr   )Úobject_richcompare©Úobject_protocolr<   ©r3   r7   r8   r9   r<   s        r5   Úrichcompare_implz(ContextWrappingVariable.richcompare_implN   ó-   € ð 	8Ð7Ð7Ð7Ð7Ð7à!Ð! $¨¨E°2Ñ6Ô6Ð6r6   c                 óÀ   — t          | d¦  «        r|                      || j        ¦  «         |                      |¦  «         t          j                             d ¦  «        S ©NÚ
_call_func)ÚhasattrrD   r(   Úset_cleanup_hookr   ÚConstantVariableÚcreate©r3   r7   s     r5   ÚenterzContextWrappingVariable.enterU   sV   € Ý�4˜Ñ&Ô&ð 	4Ø�OŠO˜B Ô 2Ñ3Ô3Ð3Ø×Ò˜bÑ!Ô!Ð!ÝÔ)×0Ò0°Ñ6Ô6Ð6r6   Úfn.c                 óh   ‡ ‡— |€dˆ ˆfd„}|‰ _         ‰j                             ‰ j        ¦  «         d S )Nr,   c                  ób   •— t          ‰ d¦  «        r‰                      ‰‰ j        ¦  «         d S d S rC   )rE   rD   r)   rI   s   €€r5   rK   z4ContextWrappingVariable.set_cleanup_hook.<locals>.fn`   s<   ø€ Ý˜4 Ñ.Ô.ð =Ø—O’O B¨Ô(;Ñ<Ô<Ð<Ð<Ð<ð=ð =r6   ©r,   N©Ú
cleanup_fnÚoutputÚadd_cleanup_hookÚcleanup©r3   r7   rK   s   `` r5   rF   z(ContextWrappingVariable.set_cleanup_hook[   sU   øø€ ð ˆ:ð=ð =ð =ð =ð =ð =ð =ð 68ˆŒØ
Œ	×"Ò" 4¤<Ñ0Ô0Ð0Ð0Ð0r6   Úargsc                 óh   — |                       ¦   «          t          j                             d ¦  «        S ©N)Úcleanup_assertr   rG   rH   ©r3   r7   rU   s      r5   ÚexitzContextWrappingVariable.exitg   s-   € ð 	×ÒÑÔÐÝÔ)×0Ò0°Ñ6Ô6Ð6r6   Úcodegenr#   c                 ó°   —  |t          |j                             |                      ¦   «         ¦  «        |                      ¦   «         ¦  «        ¦  «         d S rW   )r   r7   Úimport_sourceÚmodule_nameÚfn_name©r3   r[   s     r5   Úreconstruct_typez(ContextWrappingVariable.reconstruct_typem   sQ   € ØˆÝ�w”z×/Ò/°×0@Ò0@Ñ0BÔ0BÑCÔCÀTÇ\Â\Á^Ä^ÑTÔTñ	
ô 	
ð 	
ð 	
ð 	
r6   c                 óô   ‡ ‡— ‰                      ˆˆ fd„¦  «         ‰ j        }|sd}‰                     ˆfd„|D ¦   «         ¦  «         ‰                     t          t	          |¦  «        d¦  «        ¦  «         d S )Nc                  ó.   •— ‰                      ‰ ¦  «        S rW   )ra   )r[   r3   s   €€r5   ú<lambda>z5ContextWrappingVariable.reconstruct.<locals>.<lambda>s   s   ø€  d×&;Ò&;¸GÑ&DÔ&D€ r6   r/   c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r/   )Úcreate_load_const)Ú.0Úvalr[   s     €r5   ú
<listcomp>z7ContextWrappingVariable.reconstruct.<locals>.<listcomp>w   s'   ø€ ÐWÐWÐWÀ#˜w×8Ò8¸Ñ=Ô=ÐWÐWÐWr6   F)Úadd_push_nullr(   Úextend_outputr   Úlen)r3   r[   r(   s   `` r5   Úreconstructz#ContextWrappingVariable.reconstructr   s�   øø€ Ø×ÒÐDÐDÐDÐDÐDÑEÔEÐEØÔ*ˆØð 	ØˆMØ×ÒÐWÐWÐWÐWÈÐWÑWÔWÑXÔXÐXØ×ÒÕ2µ3°}Ñ3EÔ3EÀuÑMÔMÑNÔNÐNÐNÐNr6   c                 ó    — t          d¦  «        ‚)Nzmodule_name called on base©ÚNotImplementedError©r3   s    r5   r^   z#ContextWrappingVariable.module_namez   s   € Ý!Ð">Ñ?Ô?Ð?r6   c                 ó    — t          d¦  «        ‚)Nzfn_name called on basero   rq   s    r5   r_   zContextWrappingVariable.fn_name}   s   € Ý!Ð":Ñ;Ô;Ð;r6   c                 ó²  — t          |¦  «        dk    rt          dt          |¦  «        › �¦  «        ‚t          |d         t          t          t
          t          f¦  «        s%t          dt          |d         ¦  «        › �¦  «        ‚t          |d         t          ¦  «        rt          |d         | ¦  «        S t          |d         t          ¦  «        rt          |d         | ¦  «        S t          |d         t
          ¦  «        rt          |d         | ¦  «        S t          |d         t          ¦  «        rt          |d         | ¦  «        S t          d¦  «        ‚)Nr   zexpected exactly 1 arg, got r   z"expected a function variable, got zUnexpected arg type)rl   ÚAssertionErrorÚ
isinstancer   r   r   r   Útyper   r   r!   r    ©r3   r7   rU   r+   s       r5   Úcall_functionz%ContextWrappingVariable.call_function€   s:  € õ ˆt‰9Œ9˜Š>ˆ>Ý Ð!KÅÀDÁ	Ä	Ð!KÐ!KÑLÔLÐLÝØ�ŒGå*Ý$Ý"Ý$ð	ñ
ô 
ð 		Wõ !Ð!UÅdÈ4ÐPQÌ7ÁmÄmÐ!UÐ!UÑVÔVÐVå�d˜1”gÕ9Ñ:Ô:ð 		8Ý4°T¸!´W¸dÑCÔCÐCÝ˜˜QœÕ!5Ñ6Ô6ð 	8Ý.¨t°A¬w¸Ñ=Ô=Ð=Ý˜˜QœÕ!3Ñ4Ô4ð 	8Ý,¨T°!¬W°dÑ;Ô;Ð;Ý˜˜QœÕ!5Ñ6Ô6ð 	8Ý.¨t°A¬w¸Ñ=Ô=Ð=å Ð!6Ñ7Ô7Ð7r6   c                 ó   — dS ©NTr/   rq   s    r5   Úsupports_graph_breaksz-ContextWrappingVariable.supports_graph_breaksž   ó   € Øˆtr6   c                 ó   — dS rz   r/   rq   s    r5   Úexit_on_graph_breakz+ContextWrappingVariable.exit_on_graph_break¡   r|   r6   c                 óN   — | j         �|                       ¦   «          d | _         d S d S rW   )rP   rq   s    r5   rS   zContextWrappingVariable.cleanup¤   s-   € ØŒ?Ð&Ø�OŠOÑÔÐØ"ˆDŒOˆOˆOð 'Ð&r6   c                 óZ   — | j         st          d¦  «        ‚|                      ¦   «          d S )Nzmultiple exits?)rP   rt   rS   rq   s    r5   rX   z&ContextWrappingVariable.cleanup_assert©   s,   € ØŒð 	4Ý Ð!2Ñ3Ô3Ð3Ø�Š‰Œˆˆˆr6   rW   ©r[   r#   r,   NrN   )Ú__name__Ú
__module__Ú__qualname__r   Ú_nonvar_fieldsr   r1   Ústrr@   rJ   r   rF   rZ   ra   rm   r^   r_   ÚlistÚdictrx   Úboolr{   r~   rS   rX   Ú__classcell__©r4   s   @r5   r&   r&   >   sd  ø€ € € € € àØØØð	ð
 
Ô	'ð€Nð @Dð-ð -Ø ð-Ø25¸±*ð-ØORð-à	ð-ð -ð -ð -ð -ð -ð7Ø-ð7Ø6Eð7ØKNð7à	ð7ð 7ð 7ð 7ð7Ð3ð 7¸ð 7ð 7ð 7ð 7ð PTð
1ð 
1Ø-ð
1Ø3;¸CÀ¸HÔ3EÈÑ3Lð
1à	ð
1ð 
1ð 
1ð 
1ð7Ø-ð7Ø6Eð7à	ð7ð 7ð 7ð 7ð
ð 
ð 
ð 
ð
Oð Oð Oð Oð@˜Sð @ð @ð @ð @ð<˜ð <ð <ð <ð <ð8à'ð8ð �?Ô#ð8ð �S˜/Ð)Ô*ð	8ð
 
ð8ð 8ð 8ð 8ð< tð ð ð ð ð Tð ð ð ð ð#ð #ð #ð #ð
ð ð ð ð ð ð ð r6   r&   c                   óŒ   ‡ — e Zd Zdee         deddfˆ fd„Zdefd„Zdefd„Zdd	de	fd
„Z
dd	de	de	fd„Zdefd„Zdefd„Zˆ xZS )ÚGenericContextWrappingVariabler'   r+   r,   Nc                 óz   •— |€t          d¦  «        ‚ t          ¦   «         j        d||j        dœ|¤Ž || _        d S )Nzcm_obj must not be None)ÚvalueÚ
value_typer/   )rt   r0   r1   r4   r'   )r3   r'   r+   r4   s      €r5   r1   z'GenericContextWrappingVariable.__init__²   s\   ø€ Øˆ>Ý Ð!:Ñ;Ô;Ð;Ø�‰ŒÔð 	
ØØÔ'ð	
ð 	
ð ð	
ð 	
ð 	
ð
 ˆŒˆˆr6   c                 ó   — | j         j        S rW   )r'   rƒ   rq   s    r5   r^   z*GenericContextWrappingVariable.module_name¼   s   € ØŒ{Ô%Ð%r6   c                 ó4   — t          | j        ¦  «        j        S rW   )rv   r'   r‚   rq   s    r5   r_   z&GenericContextWrappingVariable.fn_name¿   s   € Ý�D”KÑ Ô Ô)Ð)r6   r7   r$   c                 ó´   — | j         €d nt          | j         d¦  «        }t          j        | j        j        j        | |¬¦  «                             |g i ¦  «        S )NÚ	__enter__©Úsource)r–   r   r   r   r'   r”   Ú__func__rx   )r3   r7   r–   s      r5   rJ   z$GenericContextWrappingVariable.enterÂ   s\   € ØœÐ,��µ*¸T¼[È+Ñ2VÔ2VˆÝÔ+ØŒKÔ!Ô*ØØð
ñ 
ô 
÷ Š-˜˜B Ñ
#Ô
#ð		$r6   rU   c                 ó  — | j         €d nt          | j         d¦  «        }t          j        | j        j        j        | |¬¦  «                             |t          |¦  «        i ¦  «        }|j	         
                    ¦   «          |S )NÚ__exit__r•   )r–   r   r   r   r'   r™   r—   rx   r‡   Úactive_generic_context_managersÚpop)r3   r7   rU   r–   Úxs        r5   rZ   z#GenericContextWrappingVariable.exitÊ   s€   € ð œÐ,��µ*¸T¼[È*Ñ2UÔ2UˆÝÔ(ØŒKÔ Ô)ØØð
ñ 
ô 
÷ Š-˜�D ™JœJ¨Ñ
+Ô
+ð	 	
ð
 	Ô*×.Ò.Ñ0Ô0Ð0Øˆr6   c                 ó   — dS ©NFr/   rq   s    r5   r{   z4GenericContextWrappingVariable.supports_graph_breaksÖ   s   € Øˆur6   c                 ó   — dS rz   r/   rq   s    r5   r~   z2GenericContextWrappingVariable.exit_on_graph_breakÙ   r|   r6   )r‚   rƒ   r„   r   r   r1   r†   r^   r_   r   rJ   rZ   r‰   r{   r~   rŠ   r‹   s   @r5   r�   r�   ¯   s  ø€ € € € € ðÐ5°cÔ:ð Àcð Èdð ð ð ð ð ð ð&˜Sð &ð &ð &ð &ð*˜ð *ð *ð *ð *ð$Ð3ð $¸ð $ð $ð $ð $ð
Ø-ð
Ø6Eð
à	ð
ð 
ð 
ð 
ð tð ð ð ð ð Tð ð ð ð ð ð ð ð r6   r�   c                   óL   ‡ — e Zd Zdej        j        deddfˆ fd„Zd„ Zd„ Z	ˆ xZ
S )ÚRecordFunctionVariabler'   r+   r,   Nc                 ób  •—  t          ¦   «         j        |fi |¤Ž t          j                             |j        ¦  «        g}i }|j        r't          j                             |j        ¦  «        |d<   t          j        j                             t          | j
        ¦  «        ||¬¦  «        | _        d S )NrU   )ÚfuncÚrecord_argsÚrecord_kwargs)r0   r1   r   rG   rH   ÚnamerU   ÚtorchÚ%ProfilerRecordFunctionContextVariablerv   r'   Ú	record_fn)r3   r'   r+   rU   r¥   r4   s        €r5   r1   zRecordFunctionVariable.__init__Þ   s¡   ø€ Ø�‰ŒÔ˜Ð*Ð* 6Ð*Ð*Ð*ÝÔ*×1Ò1°&´+Ñ>Ô>Ð?ˆØˆØŒ;ð 	SÝ$-Ô$>×$EÒ$EÀfÄkÑ$RÔ$RˆM˜&Ñ!Ý"œÔN×UÒUÝ�d”kÑ"Ô"°ÀMð Vñ 
ô 
ˆŒˆˆr6   c                 ój   — |j                              | ¦  «         | j                             |¦  «        S rW   )rš   Úappendr©   rJ   rI   s     r5   rJ   zRecordFunctionVariable.enterè   s/   € Ø
Ô*×1Ò1°$Ñ7Ô7Ð7ØŒ~×#Ò# BÑ'Ô'Ð'r6   c                 óZ   — |j                              ¦   «           | j        j        |g|¢R Ž S rW   )rš   r›   r©   rZ   rY   s      r5   rZ   zRecordFunctionVariable.exitì   s4   € Ø
Ô*×.Ò.Ñ0Ô0Ð0Ø"ˆtŒ~Ô" 2Ð-¨Ð-Ð-Ð-Ð-r6   )r‚   rƒ   r„   r§   ÚprofilerÚrecord_functionr   r1   rJ   rZ   rŠ   r‹   s   @r5   r¡   r¡   Ý   sv   ø€ € € € € ð
˜uœ~Ô=ð 
Èð 
ÐQUð 
ð 
ð 
ð 
ð 
ð 
ð(ð (ð (ð.ð .ð .ð .ð .ð .ð .r6   r¡   c                   óV   — e Zd Zdededdfd„Zdddefd„Zddd	edefd
„Zde	defd„Z
dS )Ú$RepararametrizeModuleContextVariableÚctx_manager_vtÚmodr,   Nc                 ó"   — || _         || _        d S rW   )Úcm_vtr²   )r3   r±   r²   s      r5   r1   z-RepararametrizeModuleContextVariable.__init__ò   s   € Ø#ˆŒ
ØˆŒˆˆr6   r7   r$   c                 ó  — t           j        j        j                             |¦  «        5  | j                             |d¦  «                             ¦   «         | _        | j                             |d¦  «                             ¦   «         | _	        |j
        j                             | j        ¦  «         |j
        j                             | j	        ¦  «         | j                             |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )NÚ_parametersÚ_buffers)r§   Ú_dynamor   Úhigher_order_opsÚ dynamo_allow_side_effects_in_hopr²   Úvar_getattrÚrealizeÚold_parameters_varÚold_buffer_varrQ   Úside_effectsÚignore_mutations_onr´   rJ   rI   s     r5   rJ   z*RepararametrizeModuleContextVariable.enter÷   s"  € õ Œ]Ô$Ô5×VÒVØñ
ô 
ð 	(ð 	(ð '+¤h×&:Ò&:¸2¸}Ñ&MÔ&M×&UÒ&UÑ&WÔ&WˆDÔ#Ø"&¤(×"6Ò"6°r¸:Ñ"FÔ"F×"NÒ"NÑ"PÔ"PˆDÔØŒIÔ"×6Ò6°tÔ7NÑOÔOÐOØŒIÔ"×6Ò6°tÔ7JÑKÔKÐKØ”:×#Ò# BÑ'Ô'ð	(ð 	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s   ªCC=Ã=DÄDrU   c                 óB  — t           j        j        j                             |¦  «        5   | j        j        |g|¢R Ž }|j        j         	                    | j
        ¦  «         |j        j         	                    | j        ¦  «         |cd d d ¦  «         S # 1 swxY w Y   d S rW   )r§   r¸   r   r¹   rº   r´   rZ   rQ   r¿   Ústop_ignoring_mutations_onr¾   r½   )r3   r7   rU   rœ   s       r5   rZ   z)RepararametrizeModuleContextVariable.exit  sá   € õ
 Œ]Ô$Ô5×VÒVØñ
ô 
ð 	ð 	ð  �”
” Ð* TÐ*Ð*Ð*ˆAØŒIÔ"×=Ò=¸dÔ>QÑRÔRÐRØŒIÔ"×=Ò=¸dÔ>UÑVÔVÐVØð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ªABÂBÂBr¦   c                 ó,   — t          | j        |¦  «        S rW   )Úgetattrr´   )r3   r¦   s     r5   Ú__getattr__z0RepararametrizeModuleContextVariable.__getattr__  s   € å�t”z 4Ñ(Ô(Ð(r6   )r‚   rƒ   r„   r&   r   r1   r   rJ   rZ   r†   rÅ   r/   r6   r5   r°   r°   ñ   s¯   € € € € € ðÐ'>ð ÀSð ÈTð ð ð ð ð

(Ð3ð 
(¸ð 
(ð 
(ð 
(ð 
(ðØ-ðØ6Eðà	ðð ð ð ð) ð )¨ð )ð )ð )ð )ð )ð )r6   r°   c            	       ó^   — e Zd ZdZedddededd fd„¦   «         Zdddefd„Zddd	edefd
„Z	dS )Ú)GradInplaceRequiresGradCtxManagerVariablez#represents torch grad requires gradr7   r$   r(   r+   r,   c                 ó    — t          d|d dœ|¤ŽS ©N©r(   r)   r/   )rÇ   ©r7   r(   r+   s      r5   rH   z0GradInplaceRequiresGradCtxManagerVariable.create  s0   € õ 9ð 
Ø'Øð
ð 
ð ð
ð 
ð 	
r6   c                 óŒ  ‡ — ‰ j         \  }t          j        j                             ¦   «         ‰ _        t          j        j                             |¦  «         ‰                      |ˆ fd„¦  «         |j         	                    dt          j        j        j        |fi ¦  «        ‰ _
        t          j                             d ¦  «        S )Nc                  óV   •— t           j        j                             ‰ j        ¦  «        S rW   )r§   Ú_CÚ
_functorchÚ!set_inplace_requires_grad_allowedÚ
prev_staterq   s   €r5   rd   zAGradInplaceRequiresGradCtxManagerVariable.enter.<locals>.<lambda>)  s!   ø€ •E”HÔ'×IÒIØ”ñô € r6   rx   )r(   r§   rÎ   rÏ   Ú!get_inplace_requires_grad_allowedrÑ   rÐ   rF   rQ   Úcreate_nodeÚproxyr   rG   rH   )r3   r7   Úenableds   `  r5   rJ   z/GradInplaceRequiresGradCtxManagerVariable.enter#  s·   ø€ ØÔ&‰	ˆÝœ(Ô-×OÒOÑQÔQˆŒÝŒÔ×=Ò=¸gÑFÔFÐFØ×ÒØðð ð ð ñ	
ô 	
ð 	
ð ”Y×*Ò*ØÝŒHÔÔAØˆJØñ	
ô 
ˆŒ
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   rU   c                 óÖ   — |                       ¦   «          |j                             dt          j        j        j        | j        fi ¦  «         t          j	         
                    d ¦  «        S ©Nrx   )rS   rQ   rÓ   r§   rÎ   rÏ   rÐ   rÑ   r   rG   rH   rY   s      r5   rZ   z.GradInplaceRequiresGradCtxManagerVariable.exit5  s]   € ð 	�Š‰ŒˆØ
Œ	×ÒØÝŒHÔÔAØŒ_ÐØñ		
ô 	
ð 	
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   N©
r‚   rƒ   r„   Ú__doc__Ústaticmethodr   rH   r   rJ   rZ   r/   r6   r5   rÇ   rÇ     s§   € € € € € Ø-Ð-àð
Ø'ð
Ø8;ð
ØGJð
à	4ð
ð 
ð 
ñ „\ð
ð7Ð3ð 7¸ð 7ð 7ð 7ð 7ð$
7Ø-ð
7Ø6Eð
7à	ð
7ð 
7ð 
7ð 
7ð 
7ð 
7r6   rÇ   c            	       ó^   — e Zd ZdZedddededd fd„¦   «         Zdddefd„Zddd	edefd
„Z	dS )Ú0TemporarilyPopInterpreterStackCtxManagerVariablezJrepresents torch._functorch.pyfunction.temporarily_pop_interpreter_stack()r7   r$   r(   r+   r,   c                 ó    — t          d|d dœ|¤ŽS rÉ   )rÜ   rË   s      r5   rH   z7TemporarilyPopInterpreterStackCtxManagerVariable.createE  s1   € õ @ð 
Ø'Øð
ð 
ð ð
ð 
ð 	
r6   c                 ó0  ‡ — t           j        j                             ¦   «         ‰ _        ‰                      |ˆ fd„¦  «         |j                             dt           j        j        j        di ¦  «        ‰ _        t          j
                             d ¦  «        S )Nc                  óV   •— t           j        j                             ‰ j        ¦  «        S rW   )r§   rÎ   rÏ   Úpush_dynamic_layer_stackÚsavedrq   s   €r5   rd   zHTemporarilyPopInterpreterStackCtxManagerVariable.enter.<locals>.<lambda>S  s   ø€ •E”HÔ'×@Ò@ÀÄÑLÔL€ r6   rx   r/   )r§   rÎ   rÏ   Úpop_dynamic_layer_stackrá   rF   rQ   rÓ   rÔ   r   rG   rH   rI   s   ` r5   rJ   z6TemporarilyPopInterpreterStackCtxManagerVariable.enterO  sŠ   ø€ Ý”XÔ(×@Ò@ÑBÔBˆŒ
Ø×ÒØØLÐLÐLÐLñ	
ô 	
ð 	
ð ”Y×*Ò*ØÝŒHÔÔ7ØØñ	
ô 
ˆŒ
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   rU   c                 óÖ   — |                       ¦   «          |j                             dt          j        j        j        | j        fi ¦  «         t          j	         
                    d ¦  «        S r×   )rS   rQ   rÓ   r§   rÎ   rÏ   rà   rÔ   r   rG   rH   rY   s      r5   rZ   z5TemporarilyPopInterpreterStackCtxManagerVariable.exit]  s\   € ð 	�Š‰ŒˆØ
Œ	×ÒØÝŒHÔÔ8ØŒZˆMØñ		
ô 	
ð 	
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   NrØ   r/   r6   r5   rÜ   rÜ   B  s§   € € € € € ØTÐTàð
Ø'ð
Ø8;ð
ØGJð
à	;ð
ð 
ð 
ñ „\ð
ð7Ð3ð 7¸ð 7ð 7ð 7ð 7ð
7Ø-ð
7Ø6Eð
7à	ð
7ð 
7ð 
7ð 
7ð 
7ð 
7r6   rÜ   c                   óŒ   — e Zd ZdZ e e¦   «         ej        ¦  «        Ze	ddde
dd fd„¦   «         Zdddefd„Zdddedefd	„Zd
S )Ú%JvpIncrementNestingCtxManagerVariablez5represents torch.func.jvp increment/decrement nestingr7   r$   r+   r,   c                 ó$   — t          dd d dœ|¤Ž}|S rÉ   )rå   ©r7   r+   Úvars      r5   rH   z,JvpIncrementNestingCtxManagerVariable.createt  s4   € õ 4ð 
ØØð
ð 
ð ð
ð 
ˆð
 ˆ
r6   c                 óJ  — t          | j        ¦  «         t          j        j                             ¦   «         }|                      |d„ ¦  «         |j                             dt          j        j	        j
        di ¦  «        | _        t          j                             ||¦  «        S )Nc                  óH   — t           j        j                             ¦   «         S rW   )r§   rÏ   Úeager_transformsÚexit_jvp_nestingr/   r6   r5   rd   z=JvpIncrementNestingCtxManagerVariable.enter.<locals>.<lambda>ƒ  s   € �Ô(Ô9×JÒJÑLÔL€ r6   rx   r/   )r   Ú_guards_singletonr§   rÏ   rë   Úenter_jvp_nestingrF   rQ   rÓ   ÚpredispatchÚ_jvp_increment_nestingrÔ   r   r   Úbuild)r3   r7   Ú	jvp_levels      r5   rJ   z+JvpIncrementNestingCtxManagerVariable.enter  s–   € Ý�dÔ,Ñ-Ô-Ð-ÝÔ$Ô5×GÒGÑIÔIˆ	Ø×ÒØÐLÐLñ	
ô 	
ð 	
ð ”Y×*Ò*ØÝÔÔ(Ô?ØØñ	
ô 
ˆŒ
õ Ô(×.Ò.¨r°9Ñ=Ô=Ð=r6   rU   c                 óÊ   — |                       ¦   «          |j                             dt          j        j        j        di ¦  «         t          j         	                    d ¦  «        S ©Nrx   r/   )
rS   rQ   rÓ   r§   rÏ   rï   Ú_jvp_decrement_nestingr   rG   rH   rY   s      r5   rZ   z*JvpIncrementNestingCtxManagerVariable.exit�  sX   € ð 	�Š‰ŒˆØ
Œ	×ÒØ�UÔ-Ô9ÔPÐRTÐVXñ	
ô 	
ð 	
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   N©r‚   rƒ   r„   rÙ   r   r   r   ÚFUNCTORCH_STACK_MATCHrí   rÚ   r   rH   r   rJ   rZ   r/   r6   r5   rå   rå   j  sÀ   € € € € € Ø?Ð?ð ˜Ð/Ð/Ñ1Ô1°<Ô3UÑVÔVÐàðØ'ðØ36ðà	0ðð ð ñ „\ðð>Ð3ð >¸ð >ð >ð >ð >ð7Ø-ð7Ø6Eð7à	ð7ð 7ð 7ð 7ð 7ð 7r6   rå   c            	       ój   — e Zd ZdZedddededd fd„¦   «         Zdddefd„Zddd	edefd
„Z	de
fd„ZdS )ÚSetFwdGradEnabledContextManagerzWrepresents torch.autograd.forward_ad._set_fwd_grad_enabled() to enable/disable fwd gradr7   r$   r(   r+   r,   c                 ó    — t          d|d dœ|¤ŽS rÉ   )rù   rË   s      r5   rH   z&SetFwdGradEnabledContextManager.createš  s0   € õ /ð 
Ø'Øð
ð 
ð ð
ð 
ð 	
r6   c                 ón  ‡ — ‰ j         \  }t          j                             ¦   «         ‰ _        t          j                             |¦  «         ‰                      |ˆ fd„¦  «         |j                             dt          j        j        |fi ¦  «        ‰ _	        t          j                             d ¦  «        S )Nc                  óL   •— t           j                             ‰ j        ¦  «        S rW   )r§   rÎ   Ú_set_fwd_grad_enabledrÑ   rq   s   €r5   rd   z7SetFwdGradEnabledContextManager.enter.<locals>.<lambda>ª  s   ø€ •E”H×2Ò2°4´?ÑCÔC€ r6   rx   )r(   r§   rÎ   Ú_is_fwd_grad_enabledrÑ   rý   rF   rQ   rÓ   rÔ   r   rG   rH   )r3   r7   Úmodes   `  r5   rJ   z%SetFwdGradEnabledContextManager.enter¤  s¦   ø€ ØÔ#‰ˆÝœ(×7Ò7Ñ9Ô9ˆŒÝŒ×&Ò& tÑ,Ô,Ð,Ø×ÒØØCÐCÐCÐCñ	
ô 	
ð 	
ð ”Y×*Ò*ØÝŒHÔ*ØˆGØñ	
ô 
ˆŒ
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   rU   c                 óÌ   — |                       ¦   «          |j                             dt          j        j        | j        fi ¦  «         t          j         	                    d ¦  «        S r×   )
rS   rQ   rÓ   r§   rÎ   rý   rÑ   r   rG   rH   rY   s      r5   rZ   z$SetFwdGradEnabledContextManager.exit´  sZ   € ð 	�Š‰ŒˆØ
Œ	×ÒØÝŒHÔ*ØŒ_ÐØñ		
ô 	
ð 	
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   c                 ó.   — t           j        j        j        S rW   )r§   ÚautogradÚ
forward_adrý   rq   s    r5   Úpython_typez+SetFwdGradEnabledContextManager.python_typeÀ  s   € ÝŒ~Ô(Ô>Ð>r6   N)r‚   rƒ   r„   rÙ   rÚ   r   rH   r   rJ   rZ   rv   r  r/   r6   r5   rù   rù   —  sÂ   € € € € € ØaÐaàð
Ø'ð
Ø8;ð
ØGJð
à	*ð
ð 
ð 
ñ „\ð
ð7Ð3ð 7¸ð 7ð 7ð 7ð 7ð 
7Ø-ð
7Ø6Eð
7à	ð
7ð 
7ð 
7ð 
7ð?˜Tð ?ð ?ð ?ð ?ð ?ð ?r6   rù   c                   ó˜   — e Zd ZdZ e e¦   «         ej        ¦  «        Ze	ddde
dd fd„¦   «         Zdddefd„Zdddedefd	„Zdefd
„ZdS )ÚDualLevelContextManagerz;Represents torch.autograd.forward_ad.dual_level ctx managerr7   r$   r+   r,   c                 ó    — t          dd d dœ|¤ŽS rÉ   )r  )r7   r+   s     r5   rH   zDualLevelContextManager.createÉ  s0   € õ 'ð 
ØØð
ð 
ð ð
ð 
ð 	
r6   c                 ód  ‡ — t          ‰ j        ¦  «         t          j        j                             ¦   «         ‰ _        ‰                      |ˆ fd„¦  «         |j         	                    dt          j
        j        j        di ¦  «        ‰ _        t          j                             |‰ j        ¦  «        S )Nc                  óX   •— t           j        j                             ‰ j        ¬¦  «        S )N)Úlevel)r§   r  r  Úexit_dual_levelÚ	new_levelrq   s   €r5   rd   z/DualLevelContextManager.enter.<locals>.<lambda>×  s   ø€ �œÔ1×AÒAÈÌÐAÑWÔW€ r6   rx   r/   )r   rí   r§   r  r  Úenter_dual_levelr  rF   rQ   rÓ   rÏ   rï   Ú_enter_dual_levelrÔ   r   r   rñ   rI   s   ` r5   rJ   zDualLevelContextManager.enterÓ  s    ø€ Ý�dÔ,Ñ-Ô-Ð-ÝœÔ2×CÒCÑEÔEˆŒØ×ÒØÐWÐWÐWÐWñ	
ô 	
ð 	
ð ”Y×*Ò*ØÝÔÔ(Ô:ØØñ	
ô 
ˆŒ
õ Ô(×.Ò.¨r°4´>ÑBÔBÐBr6   rU   c                 óØ   — |                       ¦   «          |j                             dt          j        j        j        dd| j        i¦  «         t          j	         
                    d ¦  «        S )Nrx   r/   r
  )rS   rQ   rÓ   r§   rÏ   rï   Ú_exit_dual_levelr  r   rG   rH   rY   s      r5   rZ   zDualLevelContextManager.exitá  s`   € ð 	�Š‰ŒˆØ
Œ	×ÒØÝÔÔ(Ô9ØØ�d”nÐ%ñ		
ô 	
ð 	
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   c                 ó.   — t           j        j        j        S rW   )r§   r  r  Ú
dual_levelrq   s    r5   r  z#DualLevelContextManager.python_typeí  s   € ÝŒ~Ô(Ô3Ð3r6   N)r‚   rƒ   r„   rÙ   r   r   r   Ú
DUAL_LEVELrí   rÚ   r   rH   r   rJ   rZ   rv   r  r/   r6   r5   r  r  Ä  sß   € € € € € ØEÐEà˜Ð/Ð/Ñ1Ô1°<Ô3JÑKÔKÐàð
Ø'ð
Ø36ð
à	"ð
ð 
ð 
ñ „\ð
ðCÐ3ð C¸ð Cð Cð Cð Cð
7Ø-ð
7Ø6Eð
7à	ð
7ð 
7ð 
7ð 
7ð4˜Tð 4ð 4ð 4ð 4ð 4ð 4r6   r  c                   óŒ   — e Zd ZdZ e e¦   «         ej        ¦  «        Ze	ddde
dd fd„¦   «         Zdddefd„Zdddedefd	„Zd
S )Ú&GradIncrementNestingCtxManagerVariablez6represents torch.func.grad increment/decrement nestingr7   r$   r+   r,   c                 ó$   — t          dd d dœ|¤Ž}|S rÉ   )r  rç   s      r5   rH   z-GradIncrementNestingCtxManagerVariable.createû  s4   € õ 5ð 
ØØð
ð 
ð ð
ð 
ˆð
 ˆ
r6   c                 óJ  — t          | j        ¦  «         t          j        j                             ¦   «         }|                      |d„ ¦  «         |j                             dt          j        j        j        di ¦  «        | _	        t          j                             ||¦  «        S )Nc                  óH   — t           j        j                             ¦   «         S rW   )r§   rÎ   rÏ   Ú_grad_decrement_nestingr/   r6   r5   rd   z>GradIncrementNestingCtxManagerVariable.enter.<locals>.<lambda>	  ó   € ­%¬(Ô*=×*UÒ*UÑ*WÔ*W€ r6   rx   r/   )r   rí   r§   rÎ   rÏ   Ú_grad_increment_nestingrF   rQ   rÓ   rÔ   r   r   rñ   )r3   r7   Ú
grad_levels      r5   rJ   z,GradIncrementNestingCtxManagerVariable.enter  s‹   € Ý�dÔ,Ñ-Ô-Ð-Ý”XÔ(×@Ò@ÑBÔBˆ
Ø×Ò˜bÐ"WÐ"WÑXÔXÐXØ”Y×*Ò*ØÝŒHÔÔ7ØØñ	
ô 
ˆŒ
õ Ô(×.Ò.¨r°:Ñ>Ô>Ð>r6   rU   c                 óÊ   — |                       ¦   «          |j                             dt          j        j        j        di ¦  «         t          j         	                    d ¦  «        S rô   )
rS   rQ   rÓ   r§   rÎ   rÏ   r  r   rG   rH   rY   s      r5   rZ   z+GradIncrementNestingCtxManagerVariable.exit  sU   € ð 	�Š‰ŒˆØ
Œ	×ÒØ�UœXÔ0ÔHÈ"Èbñ	
ô 	
ð 	
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   Nrö   r/   r6   r5   r  r  ñ  sÀ   € € € € € Ø@Ð@ð ˜Ð/Ð/Ñ1Ô1°<Ô3UÑVÔVÐàðØ'ðØ36ðà	1ðð ð ñ „\ðð
?Ð3ð 
?¸ð 
?ð 
?ð 
?ð 
?ð7Ø-ð7Ø6Eð7à	ð7ð 7ð 7ð 7ð 7ð 7r6   r  c                   ó²   ‡ — e Zd ZdZedddeeef         dd fd„¦   «         Z	 	 ddeeef         de	dz  d	e	dz  d
e	ddf
ˆ fd„Z
dddefd„Zdd„Zdefd„Zˆ xZS )ÚCatchWarningsCtxManagerVariablez'Delay a call to warnings.catch_warningsr7   r$   Úcatch_warnings_argsr,   c                 ó&   — t          |d d ¬¦  «        S )N)r   r(   r)   )r  )r7   r   s     r5   rH   z&CatchWarningsCtxManagerVariable.create  s$   € õ /Ø 3ØØð
ñ 
ô 
ð 	
r6   Nr(   r)   r+   c                 óœ   •— t          |t          ¦  «        st          d|› �¦  «        ‚ t          ¦   «         j        d||dœ|¤Ž || _        d S )Nz(catch_warnings_args must be a dict, got rÊ   r/   )ru   rˆ   rt   r0   r1   r   )r3   r   r(   r)   r+   r4   s        €r5   r1   z(CatchWarningsCtxManagerVariable.__init__)  sz   ø€ õ Ð-­tÑ4Ô4ð 	Ý ØPÐ;NÐPÐPñô ð ð 	�‰ŒÔð 	
Ø'¸ð	
ð 	
ØJPð	
ð 	
ð 	
ð $7ˆÔ Ð Ð r6   c                 ó  ‡— d„ | j                              ¦   «         D ¦   «         }t          j        di |¤ŽŠ|                      |ˆfd„¦  «         t
          j                             |‰                     ¦   «         ¦  «        S )Nc                 ó>   — i | ]\  }}||                      ¦   «         “ŒS r/   )Úas_python_constant)rg   ÚkÚvs      r5   ú
<dictcomp>z9CatchWarningsCtxManagerVariable.enter.<locals>.<dictcomp>:  s7   € ð 
ð 
ð 
Ù*.¨!¨QˆAˆq×#Ò#Ñ%Ô%ð
ð 
ð 
r6   c                  ó2   •— ‰                       d d d ¦  «        S rW   )r™   )Úctx_vals   €r5   rd   z7CatchWarningsCtxManagerVariable.enter.<locals>.<lambda>>  s   ø€ ¨'×*:Ò*:¸4ÀÀtÑ*LÔ*L€ r6   r/   )	r   ÚitemsÚwarningsÚcatch_warningsrF   r   r   rñ   r”   )r3   r7   r+   r*  s      @r5   rJ   z%CatchWarningsCtxManagerVariable.enter9  s�   ø€ ð
ð 
Ø26Ô2J×2PÒ2PÑ2RÔ2Rð
ñ 
ô 
ˆõ Ô)Ð3Ð3¨FÐ3Ð3ˆØ×Ò˜bÐ"LÐ"LÐ"LÐ"LÑMÔMÐMÝÔ(×.Ò.¨r°7×3DÒ3DÑ3FÔ3FÑGÔGÐGr6   r[   r#   c                 óJ  ‡— ‰                      ˆfd„¦  «         ‰                     | j                             ¦   «         ¦  «         t	          | j                             ¦   «         ¦  «        }‰                     ‰                     t          |¦  «        |d¦  «        ¦  «         d S )Nc                  ó0   •— ‰                       dd¦  «        S )Nr,  r-  )Úload_import_from)r[   s   €r5   rd   z=CatchWarningsCtxManagerVariable.reconstruct.<locals>.<lambda>C  s   ø€ �G×,Ò,¨ZÐ9IÑJÔJ€ r6   F)	rj   Úforeachr   ÚvaluesÚtupleÚkeysrk   Úcreate_call_function_kwrl   )r3   r[   r4  s    ` r5   rm   z+CatchWarningsCtxManagerVariable.reconstructA  s˜   ø€ Ø×ÒØJÐJÐJÐJñ	
ô 	
ð 	
ð 	�Š˜Ô0×7Ò7Ñ9Ô9Ñ:Ô:Ð:Ý�TÔ-×2Ò2Ñ4Ô4Ñ5Ô5ˆØ×Ò˜g×=Ò=½cÀ$¹i¼iÈÈuÑUÔUÑVÔVÐVÐVÐVr6   c                 ó   — t           j        S rW   )r,  r-  rq   s    r5   r  z+CatchWarningsCtxManagerVariable.python_typeI  s   € ÝÔ&Ð&r6   ©NNr�   )r‚   rƒ   r„   rÙ   rÚ   rˆ   r†   r   rH   r   r1   rJ   rm   rv   r  rŠ   r‹   s   @r5   r  r    s.  ø€ € € € € Ø1Ð1àð
Ø'ð
Ø>BÀ3ÈÐCWÔ>Xð
à	*ð
ð 
ð 
ñ „\ð
ð %)Ø%)ð	7ð 7à! # Ð"6Ô7ð7ð ˜T‘zð7ð ˜d™
ð	7ð
 ð7ð 
ð7ð 7ð 7ð 7ð 7ð 7ð HÐ3ð H¸ð Hð Hð Hð HðWð Wð Wð Wð'˜Tð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'r6   r  c            	       óœ   — e Zd ZdZ e e¦   «         ej        ¦  «        Ze	ddde
e         dedd fd„¦   «         Zdddefd„Zddd	edefd
„ZdS )Ú&VmapIncrementNestingCtxManagerVariablez1represents torch VMap increment/decrement nestingr7   r$   r(   r+   r,   c                 ó$   — t          d|d dœ|¤Ž}|S rÉ   )r9  )r7   r(   r+   rè   s       r5   rH   z-VmapIncrementNestingCtxManagerVariable.createW  s4   € õ 5ð 
Ø'Øð
ð 
ð ð
ð 
ˆð
 ˆ
r6   c                 ó  — t          | j        ¦  «         | j        \  }}t          |t          j        ¦  «        r|j        }n|                     ¦   «         }|                     ¦   «         }t          j	        j
                             ||¦  «        }|                      |d„ ¦  «         |j                             dt          j
        j        j        |                     ¦   «         |fi ¦  «        | _        t          j                             ||¦  «        S )Nc                  óH   — t           j        j                             ¦   «         S rW   )r§   rÎ   rÏ   Ú_vmap_decrement_nestingr/   r6   r5   rd   z>VmapIncrementNestingCtxManagerVariable.enter.<locals>.<lambda>o  r  r6   rx   )r   rí   r(   ru   r   ÚSymNodeVariableÚsym_numr%  r§   rÎ   rÏ   Ú_vmap_increment_nestingrF   rQ   Úcreate_proxyrï   Úas_proxyrÔ   r   rñ   )r3   r7   Ú
batch_sizeÚ
randomnessÚbatch_size_valueÚ
vmap_levels         r5   rJ   z,VmapIncrementNestingCtxManagerVariable.enterd  sù   € Ý�dÔ,Ñ-Ô-Ð-Ø!%Ô!3Ñˆ
�JÝ�j¥)Ô";Ñ<Ô<ð 	?Ø)Ô1ÐÐà)×<Ò<Ñ>Ô>ÐØ×2Ò2Ñ4Ô4ˆ
Ý”XÔ(×@Ò@Ø˜jñ
ô 
ˆ
ð 	×Ò˜bÐ"WÐ"WÑXÔXÐXØ”Y×+Ò+ØÝÔÔ(Ô@Ø× Ò Ñ"Ô" JÐ/Øñ	
ô 
ˆŒ
õ Ô(×.Ò.¨r°:Ñ>Ô>Ð>r6   rU   c                 óÊ   — |                       ¦   «          |j                             dt          j        j        j        di ¦  «         t          j         	                    d ¦  «        S rô   )
rS   rQ   rÓ   r§   rÏ   rï   r=  r   rG   rH   rY   s      r5   rZ   z+VmapIncrementNestingCtxManagerVariable.exitx  sY   € ð 	�Š‰ŒˆØ
Œ	×ÒØÝÔÔ(Ô@ØØñ		
ô 	
ð 	
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   N)r‚   rƒ   r„   rÙ   r   r   r   r÷   rí   rÚ   r‡   r   r   rH   rJ   rZ   r/   r6   r5   r9  r9  M  sÑ   € € € € € Ø;Ð;ð ˜Ð/Ð/Ñ1Ô1°<Ô3UÑVÔVÐàð
Ø'ð
à˜OÔ,ð
ð ð
ð 
2ð	
ð 
ð 
ñ „\ð
ð?Ð3ð ?¸ð ?ð ?ð ?ð ?ð(
7Ø-ð
7Ø6Eð
7à	ð
7ð 
7ð 
7ð 
7ð 
7ð 
7r6   r9  c                   óF  ‡ — e Zd ZdZ e e¦   «         ej        ¦  «        Ze		 dddde
dede
dd f
d	„¦   «         Z	 	 dde
dee         d
z  dede
dd
f
ˆ fd„Zdddefd„Zdddedefd„Zdddee         deeef         defˆ fd„Zddde
dd
fd„Zdefd„Zdefd„Zdefd„Zˆ xZS )ÚGradModeVariablez6represents torch.{no_grad,enable_grad,set_grad_mode}()Fr7   r$   Útarget_valueÚinitializedr+   r,   c                 ó„   — t          d|gt          j        ¦   «         gdœ|¤Ž}|r|                     | |j        ¦  «         |S rÉ   )rI  r§   Úis_grad_enabledrD   r(   )r7   rJ  rK  r+   rè   s        r5   rH   zGradModeVariable.createŠ  sa   € õ ð 
Ø'˜.Ý!Ô1Ñ3Ô3Ð4ð
ð 
ð ð
ð 
ˆð
 ð 	2Ø�NŠN˜2˜sÔ0Ñ1Ô1Ð1Øˆ
r6   NTr(   r)   c                 óh   •—  t          ¦   «         j        d||dœ|¤Ž t          | j        ¦  «         d S rÉ   )r0   r1   r   rí   )r3   r(   r)   rK  r+   r4   s        €r5   r1   zGradModeVariable.__init__š  sP   ø€ ð 	�‰ŒÔð 	
Ø'¸ð	
ð 	
ØJPð	
ð 	
ð 	
õ 	�dÔ,Ñ-Ô-Ð-Ð-Ð-r6   c                 óv   — |                       || j        ¦  «         t          j                             d ¦  «        S rW   ©rD   r(   r   rG   rH   rI   s     r5   rJ   zGradModeVariable.enter¦  ó0   € Ø�Š˜˜DÔ.Ñ/Ô/Ð/ÝÔ)×0Ò0°Ñ6Ô6Ð6r6   rU   c                 óv   — |                       || j        ¦  «         t          j                             d ¦  «        S rW   ©rD   r)   r   rG   rH   rY   s      r5   rZ   zGradModeVariable.exitª  ó2   € ð 	�Š˜˜DÔ/Ñ0Ô0Ð0ÝÔ)×0Ò0°Ñ6Ô6Ð6r6   c                 ó€   •— |                       || j        ¦  «         t          ¦   «                              |||¦  «        S rW   ©rD   r)   r0   rx   ©r3   r7   rU   r+   r4   s       €r5   rx   zGradModeVariable.call_function°  s8   ø€ ð 	�Š˜˜DÔ/Ñ0Ô0Ð0Ý‰wŒw×$Ò$ R¨¨vÑ6Ô6Ð6r6   r2  c                 óD  — t          |¦  «        dk    rt          dt          |¦  «        › �¦  «        ‚|d         }t          j        ¦   «         |k    rN|j                             dt          j        j        |fi ¦  «         t          j                             |¦  «         d S d S )Nr   úexpected 1 value, got r   rx   )rl   rt   r§   rM  rQ   rÓ   rÎ   Ú_set_grad_enabled©r3   r7   r2  r�   s       r5   rD   zGradModeVariable._call_func¹  s�   € Ýˆv‰;Œ;˜!ÒÐÝ Ð!G½#¸f¹+¼+Ð!GÐ!GÑHÔHÐHØ�q”	ˆåÔ Ñ"Ô" eÒ+Ð+ØŒI×!Ò!Ø¥¤Ô!;¸e¸XÀrñô ð õ ŒH×&Ò& uÑ-Ô-Ð-Ð-Ð-ð	 ,Ð+r6   c                 ó   — dS ©Nr§   r/   rq   s    r5   r^   zGradModeVariable.module_nameÄ  ó   € Øˆwr6   c                 ó   — dS )NÚset_grad_enabledr/   rq   s    r5   r_   zGradModeVariable.fn_nameÇ  s   € Ø!Ð!r6   c                 ó   — t           j        S rW   )r§   r`  rq   s    r5   r  zGradModeVariable.python_typeÊ  s   € ÝÔ%Ð%r6   ©Frz   )r‚   rƒ   r„   rÙ   r   r   r   Ú	GRAD_MODErí   rÚ   r   r‰   rH   r   r1   r   rJ   rZ   r‡   rˆ   r†   rx   rD   r^   r_   rv   r  rŠ   r‹   s   @r5   rI  rI  …  s  ø€ € € € € Ø@Ð@à˜Ð/Ð/Ñ1Ô1°<Ô3IÑJÔJÐàð "ðð Ø'ðàðð ðð ð	ð
 
ðð ð ñ „\ðð$ 15Ø ð	
.ð 
.àð
.ð ! œ¨Ñ-ð
.ð ð	
.ð
 ð
.ð 
ð
.ð 
.ð 
.ð 
.ð 
.ð 
.ð7Ð3ð 7¸ð 7ð 7ð 7ð 7ð7Ø-ð7Ø6Eð7à	ð7ð 7ð 7ð 7ð7à'ð7ð �?Ô#ð7ð �S˜/Ð)Ô*ð	7ð
 
ð7ð 7ð 7ð 7ð 7ð 7ð	.Ð8ð 	.À#ð 	.È$ð 	.ð 	.ð 	.ð 	.ð˜Sð ð ð ð ð"˜ð "ð "ð "ð "ð&˜Tð &ð &ð &ð &ð &ð &ð &ð &r6   rI  c            	       óª   ‡ — e Zd Zedddededd fd„¦   «         Z	 dded	edz  deddfˆ fd
„Zdddedefd„Z	dddefd„Z
defd„Zdefd„Zdefd„Zˆ xZS )ÚInferenceModeVariabler7   r$   rJ  r+   r,   c                 óH   — t          |gfdt          j        ¦   «         i|¤Ž}|S )Nr)   )re  r§   Úis_inference_mode_enabled©r7   rJ  r+   rè   s       r5   rH   zInferenceModeVariable.createÏ  s=   € õ $ØˆNð
ð 
Ý+0Ô+JÑ+LÔ+Lð
ØPVð
ð 
ˆð ˆ
r6   Nr(   r)   c                 ój   •— |€t          j        ¦   «         } t          ¦   «         j        d||dœ|¤Ž d S rÉ   )r§   rg  r0   r1   r2   s       €r5   r1   zInferenceModeVariable.__init__Ø  sU   ø€ ð Ð!å"Ô<Ñ>Ô>ˆNØ�‰ŒÔð 	
Ø'¸ð	
ð 	
ØJPð	
ð 	
ð 	
ð 	
ð 	
r6   rU   c                 óÖ   — |                       ¦   «          |j                             dt          j        j        j        | j        fi ¦  «         t          j	         
                    d ¦  «        S r×   )rX   rQ   rÓ   r§   r  Ú	grad_modeÚ_exit_inference_moderÔ   r   rG   rH   rY   s      r5   rZ   zInferenceModeVariable.exitå  sa   € ð 	×ÒÑÔÐØ
Œ	×ÒØÝŒNÔ$Ô9ØŒZˆMØñ		
ô 	
ð 	
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   c                 óì  ‡‡‡— dŠt           j        j        j        rB| j        d         r5dŠt          j        ¦   «         Št           j                             d¦  «         nt          j        j	        j
        | j        Ž Šdˆˆˆfd„}|                      ||¦  «         |j                             dt           j        j	        j
        g | j        ¢R i ¦  «        | _        t          j                             d ¦  «        S )NFr   Tr,   c                  ó–   •— ‰r!t           j                             ‰¦  «         d S t           j        j                             ‰ ¦  «         d S rW   )r§   rÎ   rZ  r  rk  rl  )ÚctxÚ disabled_inference_mode_forciblyÚpriors   €€€r5   Úcleanup_hookz1InferenceModeVariable.enter.<locals>.cleanup_hook   sG   ø€ Ø/ð CÝ”×*Ò*¨5Ñ1Ô1Ð1Ð1Ð1å”Ô(×=Ò=¸cÑBÔBÐBÐBÐBr6   rx   rN   )r§   r¸   r
   Ú"fake_tensor_disable_inference_moder(   rM  rÎ   rZ  r  rk  Ú_enter_inference_moderF   rQ   rÓ   rÔ   r   rG   rH   )r3   r7   rr  ro  rp  rq  s      @@@r5   rJ   zInferenceModeVariable.enterñ  s
  øøø€ Ø+0Ð(åŒMÔ ÔCð	VàÔ" 1Ô%ð	Vð 04Ð,ÝÔ)Ñ+Ô+ˆEÝŒH×&Ò& uÑ-Ô-Ð-Ð-å”.Ô*Ô@À$ÔBTÐUˆCð	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	×Ò˜b ,Ñ/Ô/Ð/Ø”Y×*Ò*ØÝŒNÔ$Ô:Ø"ˆdÔ Ð"Ð"Øñ	
ô 
ˆŒ
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   c                 ó   — dS r]  r/   rq   s    r5   r^   z!InferenceModeVariable.module_name  r^  r6   c                 ó   — dS )NÚinference_moder/   rq   s    r5   r_   zInferenceModeVariable.fn_name  s   € ØÐr6   c                 ó   — t           j        S rW   )r§   rw  rq   s    r5   r  z!InferenceModeVariable.python_type  s   € ÝÔ#Ð#r6   rW   )r‚   rƒ   r„   rÚ   r   rH   r‰   r1   r   rZ   rJ   r†   r^   r_   rv   r  rŠ   r‹   s   @r5   re  re  Î  sO  ø€ € € € € ØðØ'ðØ7:ðØFIðà	 ðð ð ñ „\ðð '+ð
ð 
àð
ð ˜t™ð
ð ð	
ð
 
ð
ð 
ð 
ð 
ð 
ð 
ð
7Ø-ð
7Ø6Eð
7à	ð
7ð 
7ð 
7ð 
7ð7Ð3ð 7¸ð 7ð 7ð 7ð 7ð<˜Sð ð ð ð ð ˜ð  ð  ð  ð  ð$˜Tð $ð $ð $ð $ð $ð $ð $ð $r6   re  c            	       ó¢   — e Zd ZU dZeed<   eed<   eed<   edddeded	d fd
„¦   «         Zddded	efd„Z	ddd	efd„Z
d	efd„Zd	efd„Zd	efd„ZdS )ÚGenericDeviceVariablezLAbstract base for device context managers that swap the active device index.Ú_exchange_fnÚ_maybe_exchange_fnÚ_get_device_index_fnr7   r$   Údevicer+   r,   c                 óD   —  | d|                       |d¬¦  «        gd dœ|¤ŽS )NT)ÚoptionalrÊ   r/   )r}  )Úclsr7   r~  r+   s       r5   rH   zGenericDeviceVariable.create   sH   € ð ˆsð 
Ø×3Ò3°FÀTÐ3ÑJÔJÐKØð
ð 
ð ð
ð 
ð 	
r6   rU   c                 ó¸   — |                       ¦   «          |j                             d| j        | j        fi ¦  «         t
          j                             d¦  «        S )Nrx   F)rX   rQ   rÓ   r|  rÔ   r   rG   rH   rY   s      r5   rZ   zGenericDeviceVariable.exit*  s\   € ð 	×ÒÑÔÐØ
Œ	×ÒØØÔ#ØŒZˆMØñ		
ô 	
ð 	
õ Ô)×0Ò0°Ñ7Ô7Ð7r6   c                 óô   ‡ ‡—  ‰ j         ‰ j        Ž Š‰                      |ˆˆ fd„¦  «         |j                             d‰ j         g ‰ j        ¢R i ¦  «        ‰ _        t          j                             d ¦  «        S )Nc                  ó.   •— ‰                      ‰ ¦  «        S rW   )r|  )Úprev_idxr3   s   €€r5   rd   z-GenericDeviceVariable.enter.<locals>.<lambda>8  s   ø€ ¨$×*AÒ*AÀ(Ñ*KÔ*K€ r6   rx   )	r{  r(   rF   rQ   rÓ   rÔ   r   rG   rH   )r3   r7   r…  s   ` @r5   rJ   zGenericDeviceVariable.enter6  s…   øø€ Ø$�4Ô$ dÔ&8Ð9ˆØ×Ò˜bÐ"KÐ"KÐ"KÐ"KÐ"KÑLÔLÐLØ”Y×*Ò*ØØÔØ"ˆdÔ Ð"Ð"Øñ	
ô 
ˆŒ
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   c                 ó   — t           ‚rW   ro   rq   s    r5   r^   z!GenericDeviceVariable.module_nameA  ó   € Ý!Ð!r6   c                 ó   — dS )Nr~  r/   rq   s    r5   r_   zGenericDeviceVariable.fn_nameD  s   € Øˆxr6   c                 ó   — t           ‚rW   ro   rq   s    r5   r  z!GenericDeviceVariable.python_typeG  r‡  r6   N)r‚   rƒ   r„   rÙ   r   Ú__annotations__ÚclassmethodrH   r   rZ   rJ   r†   r^   r_   rv   r  r/   r6   r5   rz  rz    s  € € € € € € ØVÐVàÐÐÑØÐÐÑØÐÐÑàð
Ø,ð
Ø69ð
ØEHð
à	 ð
ð 
ð 
ñ „[ð
ð
8Ø-ð
8Ø6Eð
8à	ð
8ð 
8ð 
8ð 
8ð	7Ð3ð 	7¸ð 	7ð 	7ð 	7ð 	7ð"˜Sð "ð "ð "ð "ð˜ð ð ð ð ð"˜Tð "ð "ð "ð "ð "ð "r6   rz  c                   ó¨   — e Zd ZdZ eej        j        ¦  «        Z eej        j	        ¦  «        Z
 eej        j        ¦  «        Zdefd„Zdefd„ZdS )ÚCUDADeviceVariablezrepresents torch.cuda.devicer,   c                 ó   — dS )Nz
torch.cudar/   rq   s    r5   r^   zCUDADeviceVariable.module_nameR  ó   € Øˆ|r6   c                 ó$   — t           j        j        S rW   )r§   Úcudar~  rq   s    r5   r  zCUDADeviceVariable.python_typeU  s   € ÝŒzÔ Ð r6   N)r‚   rƒ   r„   rÙ   rÚ   r§   r‘  Ú_exchange_devicer{  Ú_maybe_exchange_devicer|  Ú_get_device_indexr}  r†   r^   rv   r  r/   r6   r5   r�  r�  K  sŽ   € € € € € Ø&Ð&à�< ¤
Ô ;Ñ<Ô<€LØ%˜ e¤jÔ&GÑHÔHÐØ'˜<¨¬
Ô(DÑEÔEÐð˜Sð ð ð ð ð!˜Tð !ð !ð !ð !ð !ð !r6   r�  c                   ó¨   — e Zd ZdZ eej        j        ¦  «        Z eej        j	        ¦  «        Z
 eej        j        ¦  «        Zdefd„Zdefd„ZdS )ÚXPUDeviceVariablezrepresents torch.xpu.devicer,   c                 ó   — dS )Nz	torch.xpur/   rq   s    r5   r^   zXPUDeviceVariable.module_name`  s   € Øˆ{r6   c                 ó$   — t           j        j        S rW   )r§   Úxpur~  rq   s    r5   r  zXPUDeviceVariable.python_typec  s   € ÝŒyÔÐr6   N)r‚   rƒ   r„   rÙ   rÚ   r§   r™  r’  r{  r“  r|  r”  r}  r†   r^   rv   r  r/   r6   r5   r–  r–  Y  sŽ   € € € € € Ø%Ð%à�< ¤	Ô :Ñ;Ô;€LØ%˜ e¤iÔ&FÑGÔGÐØ'˜<¨¬	Ô(CÑDÔDÐð˜Sð ð ð ð ð ˜Tð  ð  ð  ð  ð  ð  r6   r–  c                   ó¢   — e Zd ZdZ eej        j        ¦  «        Z eej        j	        ¦  «        Z
 ed„ ¦  «        Zdefd„Zdefd„Zdefd„ZdS )ÚAcceleratorDeviceIndexVariablez)represents torch.accelerator.device_indexc                 ó   — | S rW   r/   )r~  r+   s     r5   rd   z'AcceleratorDeviceIndexVariable.<lambda>l  s   € À€ r6   r,   c                 ó   — dS )Nztorch.acceleratorr/   rq   s    r5   r^   z*AcceleratorDeviceIndexVariable.module_namen  s   € Ø"Ð"r6   c                 ó   — dS )NÚdevice_indexr/   rq   s    r5   r_   z&AcceleratorDeviceIndexVariable.fn_nameq  s   € Øˆ~r6   c                 ó$   — t           j        j        S rW   )r§   ÚacceleratorrŸ  rq   s    r5   r  z*AcceleratorDeviceIndexVariable.python_typet  s   € ÝÔ Ô-Ð-r6   N)r‚   rƒ   r„   rÙ   rÚ   r§   rÎ   Ú_accelerator_exchangeDevicer{  Ú _accelerator_maybeExchangeDevicer|  r}  r†   r^   r_   rv   r  r/   r6   r5   r›  r›  g  s¨   € € € € € Ø3Ð3à�< ¤Ô DÑEÔE€LØ%˜ e¤hÔ&OÑPÔPÐØ'˜<Ð(GÐ(GÑHÔHÐð#˜Sð #ð #ð #ð #ð˜ð ð ð ð ð.˜Tð .ð .ð .ð .ð .ð .r6   r›  Ú_device_context_manager_mapÚdevice_contextÚvariable_clsr,   c                 óR   — | t           v rt          d| › d�¦  «        ‚|t           | <   dS )z�Register a Dynamo variable class for a device context manager type.

    Raises ``ValueError`` if ``device_context`` is already registered.
    zDevice context z) already has a registered context managerN)r¤  Ú
ValueError)r¥  r¦  s     r5   Úregister_device_context_managerr©    sC   € ð Õ4Ð4Ð4ÝØW˜nÐWÐWÐWñ
ô 
ð 	
ð 3?Õ Ñ/Ð/Ð/r6   c                 ó6   — t                                | ¦  «        S )zWReturn the Dynamo variable class for ``device_context``, or ``None`` if not registered.)r¤  Úget)r¥  s    r5   Úget_device_context_managerr¬  �  s   € õ '×*Ò*¨>Ñ:Ô:Ð:r6   c                   ó  ‡ — e Zd ZdZ e e¦   «         ej        ¦  «        Ze	ddde
dd fd„¦   «         Z	 	 dddd	ed
edz  dede
ddfˆ fd„Z	 ddddede
f         dz  ddfd„Zdddeddfd„Zdefd„Zdefd„Zdefd„Zˆ xZS )ÚTorchFunctionDisableVariablez>represents whether torch function overrides are enabled or notr7   r$   r+   r,   c                 ó&   — t          | fg g dœ|¤Ž}|S )NrÊ   )r®  rç   s      r5   rH   z#TorchFunctionDisableVariable.create™  s7   € õ +Øð
àØð
ð 
ð ð	
ð 
ˆð ˆ
r6   NTr(   r)   Úonly_subclassc                 ó¤  •— t          |¦  «        dk    rt          dt          |¦  «        › �¦  «        ‚|€t          d¦  «        ‚t          |¦  «        dk    rt          dt          |¦  «        › �¦  «        ‚|| _        |j        j        | _        |j        j        | _         t          ¦   «         j	        d||dœ|¤Ž t          | j        ¦  «         d S )Nr   zexpected 0 target_values, got zinitial_values must not be Nonezexpected 0 initial_values, got rÊ   r/   )rl   rt   r°  Úsymbolic_torch_function_stateÚtorch_function_subclass_enabledÚ'initial_torch_function_subclass_enabledÚtorch_function_mode_enabledÚ#initial_torch_function_mode_enabledr0   r1   r   rí   )r3   r7   r(   r)   r°  r+   r4   s         €r5   r1   z%TorchFunctionDisableVariable.__init__¥  sÿ   ø€ õ ˆ}ÑÔ Ò"Ð"Ý Ð!VÅ#ÀmÑBTÔBTÐ!VÐ!VÑWÔWÐWØÐ!Ý Ð!BÑCÔCÐCÝˆ~ÑÔ !Ò#Ð#Ý ØGµ#°nÑ2EÔ2EÐGÐGñô ð ð +ˆÔàÔ,ÔLð 	Ô4ð Ô,ÔHð 	Ô0ð 	�‰ŒÔð 	
Ø'¸ð	
ð 	
ØJPð	
ð 	
ð 	
õ 	�dÔ,Ñ-Ô-Ð-Ð-Ð-r6   rK   .c                 óh   ‡ ‡— |€dˆ ˆfd„}|‰ _         ‰j                             ‰ j        ¦  «         d S )Nr,   c                  ó^   •— ‰ j         ‰j        _        ‰ j        s‰ j        ‰j        _        d S d S rW   )r´  r²  r³  r°  r¶  rµ  rI   s   €€r5   rK   z9TorchFunctionDisableVariable.set_cleanup_hook.<locals>.fnÉ  sB   ø€ àÔ@ð Ô0ÔPð Ô)ð àÔ@ð Ô4ÔPÐPÐPðð r6   rN   rO   rT   s   `` r5   rF   z-TorchFunctionDisableVariable.set_cleanup_hookÂ  sU   øø€ ð
 ˆ:ðð ð ð ð ð ð ð ˆŒØ
Œ	×"Ò" 4¤<Ñ0Ô0Ð0Ð0Ð0r6   r2  c                 ó¬   — t          |¦  «        dk    rt          dt          |¦  «        › �¦  «        ‚d|j        _        | j        sd|j        _        d S d S )Nr   zexpected 0 values, got F)rl   rt   r²  r³  r°  rµ  ©r3   r7   r2  s      r5   rD   z'TorchFunctionDisableVariable._call_funcÕ  sd   € Ýˆv‰;Œ;˜!ÒÐÝ Ð!H½3¸v¹;¼;Ð!HÐ!HÑIÔIÐIØKPˆÔ(ÔHØÔ!ð 	QØKPˆBÔ,ÔHÐHÐHð	Qð 	Qr6   c                 ó   — dS )Nztorch._Cr/   rq   s    r5   r^   z(TorchFunctionDisableVariable.module_nameÜ  ó   € Øˆzr6   c                 ó   — | j         rdS dS )NÚDisableTorchFunctionSubclassÚDisableTorchFunction)r°  rq   s    r5   r_   z$TorchFunctionDisableVariable.fn_nameß  s   € ØÔð 	2Ø1Ð1Ø%Ð%r6   c                 óT   — | j         rt          j        j        S t          j        j        S rW   )r°  r§   rÎ   r¾  r¿  rq   s    r5   r  z(TorchFunctionDisableVariable.python_typeä  s#   € ØÔð 	9Ý”8Ô8Ð8ÝŒxÔ,Ð,r6   rz   rW   )r‚   rƒ   r„   rÙ   r   r   r   ÚTORCH_FUNCTION_STATErí   rÚ   r   rH   r   r‰   r1   r   rF   rD   r†   r^   r_   rv   r  rŠ   r‹   s   @r5   r®  r®  ”  s®  ø€ € € € € ØHÐHà˜Ð/Ð/Ñ1Ô1°<Ô3TÑUÔUÐàð	Ø'ð	Ø36ð	à	'ð	ð 	ð 	ñ „\ð	ð (,Ø"ð.ð .à'ð.ð ð.ð  ™ð	.ð
 ð.ð ð.ð 
ð.ð .ð .ð .ð .ð .ð@ )-ð1ð 1à'ð1ð �S˜#�XÔ Ñ%ð1ð 
ð	1ð 1ð 1ð 1ð&QÐ8ð QÀ%ð QÈDð Qð Qð Qð Qð˜Sð ð ð ð ð&˜ð &ð &ð &ð &ð
-˜Tð -ð -ð -ð -ð -ð -ð -ð -r6   r®  c            	       óê   ‡ — e Zd ZdZedddedz  dedd fd„¦   «         Z	 dd	eedz           d
eedz           dz  deddfˆ fd„Z	ddde
fd„Zdddeedz           ddfd„Zdefd„Zdefd„Zdefd„Zˆ xZS )Ú!DisabledSavedTensorsHooksVariablez;represents torch.autograd.graph.disable_saved_tensors_hook.r7   r$   rJ  Nr+   r,   c                 óÂ   — t          d|gt          j        j                             ¦   «         gdœ|¤Ž}|                     | |g¦  «         |                     | ¦  «         |S rÉ   )rÃ  r§   rÎ   Ú	_autogradÚ/_saved_tensors_hooks_get_disabled_error_messagerD   rF   rh  s       r5   rH   z(DisabledSavedTensorsHooksVariable.createí  sv   € õ 0ð 
Ø'˜.å”Ô"×RÒRÑTÔTðð
ð 
ð
 ð
ð 
ˆð 	�Š�r˜L˜>Ñ*Ô*Ð*Ø×Ò˜RÑ Ô Ð Øˆ
r6   r(   r)   c                 ó@   •—  t          ¦   «         j        d||dœ|¤Ž d S rÉ   ©r0   r1   r2   s       €r5   r1   z*DisabledSavedTensorsHooksVariable.__init__ü  óA   ø€ ð 	�‰ŒÔð 	
Ø'¸ð	
ð 	
ØJPð	
ð 	
ð 	
ð 	
ð 	
r6   c                 ó@   — t           j                             d ¦  «        S rW   ©r   rG   rH   rI   s     r5   rJ   z'DisabledSavedTensorsHooksVariable.enter  ó   € ÝÔ)×0Ò0°Ñ6Ô6Ð6r6   r2  c                 óÖ  — t          |¦  «        dk    rt          dt          |¦  «        › �¦  «        ‚|d         }|�X|j                             dt          j        j        j        |fi ¦  «         t          j        j                             |¦  «         d S |j                             dt          j        j        j        di ¦  «         t          j        j                             ¦   «          d S )Nr   rY  r   rx   r/   )	rl   rt   rQ   rÓ   r§   rÎ   rÅ  Ú_saved_tensors_hooks_disableÚ_saved_tensors_hooks_enabler[  s       r5   rD   z,DisabledSavedTensorsHooksVariable._call_func	  sâ   € õ ˆv‰;Œ;˜!ÒÐÝ Ð!G½#¸f¹+¼+Ð!GÐ!GÑHÔHÐHØ�q”	ˆØÐð ŒI×!Ò!ØÝ”Ô"Ô?Ø�Øñ	ô ð õ ŒHÔ×;Ò;¸EÑBÔBÐBÐBÐBð ŒI×!Ò!Ø¥¤Ô!3Ô!OÐQSÐUWñô ð õ ŒHÔ×:Ò:Ñ<Ô<Ð<Ð<Ð<r6   c                 ó   — dS )Nztorch.autograd.graphr/   rq   s    r5   r^   z-DisabledSavedTensorsHooksVariable.module_name!  ó   € Ø%Ð%r6   c                 ó   — dS )NÚdisable_saved_tensors_hooksr/   rq   s    r5   r_   z)DisabledSavedTensorsHooksVariable.fn_name$  s   € Ø,Ð,r6   c                 ó   — t           j        S rW   ©Ú
contextlibÚ_GeneratorContextManagerrq   s    r5   r  z-DisabledSavedTensorsHooksVariable.python_type'  ó   € ÝÔ2Ð2r6   rW   )r‚   rƒ   r„   rÙ   rÚ   r†   r   rH   r   r1   r   rJ   rD   r^   r_   rv   r  rŠ   r‹   s   @r5   rÃ  rÃ  ê  su  ø€ € € € € ØEÐEàðØ'ðØ7:¸T±zðØMPðà	,ðð ð ñ „\ðð" 7;ð
ð 
à  d¡
Ô+ð
ð !  t¡Ô,¨tÑ3ð
ð ð	
ð
 
ð
ð 
ð 
ð 
ð 
ð 
ð7Ð3ð 7¸ð 7ð 7ð 7ð 7ð=Ø-ð=Ø7?ÀÀdÁ
Ô7Kð=à	ð=ð =ð =ð =ð0&˜Sð &ð &ð &ð &ð-˜ð -ð -ð -ð -ð3˜Tð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3r6   rÃ  c            	       óð   ‡ — e Zd Zedej        j        j        dee	         de
ee	f         dd fd„¦   «         Z	 ddee	         de	dz  de	ddfˆ fd	„Zd
ddedefd„Zd
ddefd„Zdefd„Zdefd„Zdefd„Zˆ xZS )ÚAutocastModeVariabler£   rU   r+   r,   c                 óÊ  — | t           j        j        j        t           j        j        j        t           j        j        j        fvrt          d| › �¦  «        ‚ t          j        | ¦  «        j	        |i |¤Ž}| 
                    ¦   «          g }|                     ¦   «          dD ]²}|dk    rK| t           j        j        j        t           j        j        j        fv r| t           j        j        j        u rdnd}n|j        |         }t          |t          ¦  «        r(|                     |                     ¦   «         ¦  «         Œ�|                     |¦  «         Œ³t#          |fdd i|¤Ž}|S )Nzunexpected autocast function: )Údevice_typeÚdtyperÕ   Úcache_enabledrÜ  r‘  Úcpur)   )r§   ÚampÚautocast_modeÚautocastr‘  rß  rt   ÚinspectÚ	signatureÚbindÚapply_defaultsÚclearÚ	argumentsru   r   r«   r%  rÚ  )r£   rU   r+   Ú
bound_argsr(   ÚkeyÚargrè   s           r5   rH   zAutocastModeVariable.create,  sk  € ð ÝŒIÔ#Ô,ÝŒJŒNÔ#ÝŒIŒMÔ"ð
ð 
ð 
õ
 !Ð!HÀ$Ð!HÐ!HÑIÔIÐIð
 2•WÔ& tÑ,Ô,Ô1°4ÐB¸6ÐBÐBˆ
Ø×!Ò!Ñ#Ô#Ð#ØˆØ�Š‰ŒˆàGð 	*ð 	*ˆCØ�mÒ#Ð#¨Ý”
”Ô'Ý”	”Ô&ð1ð )ð )ð
 !%­¬
¬Ô(?Ð ?Ð ?�f�fÀU��à Ô*¨3Ô/�Ý˜#�Ñ/Ô/ð *Ø×$Ò$ S×%;Ò%;Ñ%=Ô%=Ñ>Ô>Ð>Ð>à×$Ò$ SÑ)Ô)Ð)Ð)å" =ÐPÐPÀÐPÈÐPÐPˆØˆ
r6   Nr(   r)   c                 ó@   •—  t          ¦   «         j        d||dœ|¤Ž d S rÉ   rÈ  r2   s       €r5   r1   zAutocastModeVariable.__init__R  rÉ  r6   r7   r$   c                 óÌ   — |                       ¦   «          |j                             dt          j        j        | j        fi ¦  «         t          j         	                    d ¦  «        S r×   )
rX   rQ   rÓ   r§   rà  Ú_exit_autocastrÔ   r   rG   rH   rY   s      r5   rZ   zAutocastModeVariable.exit\  s[   € ð 	×ÒÑÔÐØ
Œ	×ÒØ�UœYÔ5¸¼
°}Àbñ	
ô 	
ð 	
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   c                 ó  ‡— t          j        j        | j        Ž Š|                      |ˆfd„¦  «         |j                             dt           j        j        g | j        ¢R i ¦  «        | _        t          j	         
                    d ¦  «        S )Nc                  óB   •— t           j                             ‰ ¦  «        S rW   )r§   rà  rî  )ro  s   €r5   rd   z,AutocastModeVariable.enter.<locals>.<lambda>g  s   ø€ ­%¬)×*BÒ*BÀ3Ñ*GÔ*G€ r6   rx   )r§   rà  Ú_enter_autocastr(   rF   rQ   rÓ   rÔ   r   rG   rH   )r3   r7   ro  s     @r5   rJ   zAutocastModeVariable.entere  s‚   ø€ ÝŒiÔ'¨Ô);Ð<ˆØ×Ò˜bÐ"GÐ"GÐ"GÐ"GÑHÔHÐHØ”Y×*Ò*Ø�UœYÔ6Ð8N¸$Ô:LÐ8NÐ8NÐPRñ
ô 
ˆŒ
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   c                 ó   — dS )Nztorch.amp.autocast_moder/   rq   s    r5   r^   z AutocastModeVariable.module_namem  s   € Ø(Ð(r6   c                 ó   — dS )Nrâ  r/   rq   s    r5   r_   zAutocastModeVariable.fn_namep  r¼  r6   c                 ó.   — t           j        j        j        S rW   )r§   rà  rá  râ  rq   s    r5   r  z AutocastModeVariable.python_types  s   € ÝŒyÔ&Ô/Ð/r6   rW   )r‚   rƒ   r„   rÚ   r§   rà  rá  râ  r   r   rˆ   r†   rH   r1   r   rZ   rJ   r^   r_   rv   r  rŠ   r‹   s   @r5   rÚ  rÚ  +  sl  ø€ € € € € Øð#ØŒiÔ%Ô.ð#à�sŒmð#ð �S˜#�X”ð#ð 
 ð	#ð #ð #ñ „\ð#ðP &*ð
ð 
à ”}ð
ð ˜d™
ð
ð ð	
ð
 
ð
ð 
ð 
ð 
ð 
ð 
ð7Ø-ð7Ø6Eð7à	ð7ð 7ð 7ð 7ð7Ð3ð 7¸ð 7ð 7ð 7ð 7ð)˜Sð )ð )ð )ð )ð˜ð ð ð ð ð0˜Tð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0r6   rÚ  c                   ó€   ‡ — e Zd ZdZddedz  deddfˆ fd„Zdddefd	„Zddd
edefd„Zde	fd„Z
de	fd„Zdefd„Zˆ xZS )ÚNullContextVariablez>
    This class represents Python contextlib.nullcontext.
    Nr(   r+   r,   c                 ó>   •—  t          ¦   «         j        dd|i|¤Ž d S ©Nr(   r/   rÈ  )r3   r(   r+   r4   s      €r5   r1   zNullContextVariable.__init__|  s+   ø€ Ø�‰ŒÔÐ?Ð? }Ð?¸Ð?Ð?Ð?Ð?Ð?r6   r7   r$   c                 ó`   — t           j                             d ¦  «        }| j        r| j        n|S rW   )r   rG   rH   r(   )r3   r7   Únones      r5   rJ   zNullContextVariable.enter  s.   € ÝÔ)×0Ò0°Ñ6Ô6ˆØ%)Ô%7ÐAˆtÔ!Ð!¸TÐAr6   rU   c                 ó@   — t           j                             d ¦  «        S rW   rË  rY   s      r5   rZ   zNullContextVariable.exitƒ  ó   € õ Ô)×0Ò0°Ñ6Ô6Ð6r6   c                 ó   — dS ©NrÖ  r/   rq   s    r5   r^   zNullContextVariable.module_nameˆ  r�  r6   c                 ó   — dS ©NÚnullcontextr/   rq   s    r5   r_   zNullContextVariable.fn_name‹  ó   € Øˆ}r6   c                 ó   — t           j        S rW   )rÖ  r  rq   s    r5   r  zNullContextVariable.python_typeŽ  s   € ÝÔ%Ð%r6   rW   )r‚   rƒ   r„   rÙ   r   r1   r   rJ   rZ   r†   r^   r_   rv   r  rŠ   r‹   s   @r5   rö  rö  w  s  ø€ € € € € ðð ð@ð @ c¨D¡jð @À3ð @È4ð @ð @ð @ð @ð @ð @ðBÐ3ð B¸ð Bð Bð Bð Bð7Ø-ð7Ø6Eð7à	ð7ð 7ð 7ð 7ð
˜Sð ð ð ð ð˜ð ð ð ð ð&˜Tð &ð &ð &ð &ð &ð &ð &ð &r6   rö  c                   ó|   ‡ — e Zd ZdZdeddfˆ fd„Zdefd„Zdddefd	„Z	ddd
edefd„Z
defd„Zdefd„Zdd„Zˆ xZS )ÚProfilerContextVariablea~  
    This class represents a set of torch profiler context objects, where Dynamo
    ignores all the side-effects in the __init__, __enter__ and __exit__ methods
    by treating the object mostly as a `contextlib.nullcontext`, except for edge
    cases like the `__enter__` method which returns the object itself rather
    than `None`, per implementation of the torch objects.
    r+   r,   Nc                 ó>   •—  t          ¦   «         j        ddd i|¤Ž d S rø  rÈ  )r3   r+   r4   s     €r5   r1   z ProfilerContextVariable.__init__›  s+   ø€ Ø�‰ŒÔÐ6Ð6 tÐ6¨vÐ6Ð6Ð6Ð6Ð6r6   c                 ó$   — t           j        j        S rW   )r§   r­   Úprofilerq   s    r5   r  z#ProfilerContextVariable.python_typež  s   € ÝŒ~Ô%Ð%r6   r7   r$   c                 ó   — | S rW   r/   rI   s     r5   rJ   zProfilerContextVariable.enter¡  s   € Øˆr6   rU   c                 ó@   — t           j                             d ¦  «        S rW   rË  rY   s      r5   rZ   zProfilerContextVariable.exit¤  rü  r6   c                 ó   — dS rþ  r/   rq   s    r5   r^   z#ProfilerContextVariable.module_name©  r�  r6   c                 ó   — dS r   r/   rq   s    r5   r_   zProfilerContextVariable.fn_name¬  r  r6   r[   r#   c                 ó^   — t          dt          | ¦  «        dg t          j        ¢¬¦  «         d S )Nz2torch.profiler object escaped from compiled regionzXDynamo doesn't support compiling a region that returns a torch.profiler context manager.©Úgb_typeÚcontextÚexplanationÚhints©r   r†   r   ÚSUPPORTABLEr`   s     r5   rm   z#ProfilerContextVariable.reconstruct¯  sB   € ÝØHÝ˜‘I”IØrðÝ"Ô.ðð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r6   r�   )r‚   rƒ   r„   rÙ   r   r1   rv   r  r   rJ   rZ   r†   r^   r_   rm   rŠ   r‹   s   @r5   r  r  ’  s	  ø€ € € € € ðð ð7 ð 7¨ð 7ð 7ð 7ð 7ð 7ð 7ð&˜Tð &ð &ð &ð &ðÐ3ð ¸ð ð ð ð ð7Ø-ð7Ø6Eð7à	ð7ð 7ð 7ð 7ð
˜Sð ð ð ð ð˜ð ð ð ð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r6   r  c                   óà   ‡ — e Zd ZdZdhej        £Zededee	         dddedd f
d	„¦   «         Z
	 	 ddeded
z  dedd
fˆ fd„Zdefd„Zddde	fd„Zddde	de	fd„Zdefd„Zdefd„Zdˆ fd„Zˆ xZS )r¨   ac  
    This class represents torch profiler context objects.

    For record_function: emits torch.ops.profiler._record_function_enter_new
    to the graph on enter, and torch.ops.profiler._record_function_exit on exit.
    But if emit_profiler_ops=False, behaves like nullcontext.

    For profile: behaves like nullcontext, ignoring all side-effects.
    Úemit_profiler_opsr£   r¤   r¥   zdict[str, VariableTracker]r+   r,   c                 óÐ  — d }t           j        r´|r|d                              ¦   «         nD|                     dt          j                             d¦  «        ¦  «                             ¦   «         }d }t          |¦  «        dk    r|d                              ¦   «         }nd|v r|d                              ¦   «         }||g}nt          t          d| ¦  «         t          d|d dœ|¤ŽS )	Nr   r¦   Úunknownr   rU   z+Profiler record function %s will be ignoredrÊ   r/   )r
   Ú capture_profiler_record_functionr%  r«  r   rG   rH   rl   r   Úlogr¨   )r£   r¤   r¥   r+   r(   r¦   Úrecord_args_consts          r5   rH   z,ProfilerRecordFunctionContextVariable.createÊ  s  € ð ˆÝÔ2ð 	Sð
 ð'�˜A”×1Ò1Ñ3Ô3Ð3à"×&Ò&Ø�IÔ6×=Ò=¸iÑHÔHñô ç$Ò$Ñ&Ô&ð ð !%ÐÝ�;ÑÔ !Ò#Ð#Ø$/°¤N×$EÒ$EÑ$GÔ$GÐ!Ð!Ø˜=Ð(Ð(Ø$1°&Ô$9×$LÒ$LÑ$NÔ$NÐ!Ø!Ð#4Ð5ˆMˆMå�ÐKÈTÑRÔRÐRÝ4ð 
Ø'Øð
ð 
ð ð
ð 
ð 	
r6   Nr(   r)   c                 ó@   •—  t          ¦   «         j        d||dœ|¤Ž d S rÉ   rÈ  r2   s       €r5   r1   z.ProfilerRecordFunctionContextVariable.__init__ê  rÉ  r6   c                 ó.   — t           j        j        j        S rW   )r§   r  r­   r®   rq   s    r5   r  z1ProfilerRecordFunctionContextVariable.python_typeô  s   € ÝŒ~Ô&Ô6Ð6r6   r7   r$   c                 ó¢   — t           j        rB| j        \  }}|j                             dt
          j        j        j        ||fi ¦  «        | _	        | S r×   )
r
   r  r(   rQ   rÓ   r§   Úopsr­   Ú_record_function_enter_newrÔ   )r3   r7   r¦   rU   s       r5   rJ   z+ProfilerRecordFunctionContextVariable.enter÷  sQ   € ÝÔ2ð 	ØÔ+‰JˆD�$àœ×.Ò.ØÝ”	Ô"Ô=Ø�t�Øñ	ô ˆDŒJð ˆr6   rU   c                 óÐ   — t           j        r<|j                             dt          j        j        j        j        | j	        fi ¦  «         t          j                             d ¦  «        S r×   )r
   r  rQ   rÓ   r§   r  r­   Ú_record_function_exitÚ_RecordFunctionrÔ   r   rG   rH   rY   s      r5   rZ   z*ProfilerRecordFunctionContextVariable.exit  s]   € õ Ô2ð 	àŒI×!Ò!ØÝ”	Ô"Ô8ÔHØ”�Øñ	ô ð õ Ô)×0Ò0°Ñ6Ô6Ð6r6   c                 ó"   — t           j        rdndS )Nztorch.autograd.profilerrÖ  ©r
   r  rq   s    r5   r^   z1ProfilerRecordFunctionContextVariable.module_name  s   € õ Ô6ðÐ%Ð%àð	
r6   c                 ó"   — t           j        rdndS )Nr®   r  r%  rq   s    r5   r_   z-ProfilerRecordFunctionContextVariable.fn_name  s   € õ Ô6ðÐÐàð	
r6   r[   r#   c                 ó¾   •— t           j        r.t          dt          | ¦  «        dg t          j        ¢¬¦  «         d S t          ¦   «                              |¦  «         d S )Nz,record_function escaped from compiled regionzADynamo doesn't support graph break inside record_function region.r  )r
   r  r   r†   r   r  r0   ra   )r3   r[   r4   s     €r5   ra   z6ProfilerRecordFunctionContextVariable.reconstruct_type  sp   ø€ õ Ô2ð 	.ÝØFÝ˜D™	œ	Ø_ðÝ&Ô2ðð	ñ ô ð ð ð õ ‰GŒG×$Ò$ WÑ-Ô-Ð-Ð-Ð-r6   r7  r�   )r‚   rƒ   r„   rÙ   r&   r…   rÚ   r   r‡   r   rH   r1   rv   r  rJ   rZ   r†   r^   r_   ra   rŠ   r‹   s   @r5   r¨   r¨   º  s§  ø€ € € € € ðð ð 	ðà	 Ô	/ð€Nð
 ð
Øð
à˜/Ô*ð
ð 4ð
ð ð	
ð
 
1ð
ð 
ð 
ñ „\ð
ðB "Ø%)ð
ð 
àð
ð ˜d™
ð
ð ð	
ð
 
ð
ð 
ð 
ð 
ð 
ð 
ð7˜Tð 7ð 7ð 7ð 7ð
Ð3ð 
¸ð 
ð 
ð 
ð 
ð7Ø-ð7Ø6Eð7à	ð7ð 7ð 7ð 7ð
˜Sð 
ð 
ð 
ð 
ð
˜ð 
ð 
ð 
ð 
ð.ð .ð .ð .ð .ð .ð .ð .ð .ð .r6   r¨   c                   ó°   ‡ — e Zd ZdZedddedd fd„¦   «         Zedddefd„¦   «         Zdeded	edd
fˆ fd„Z	de
fd„Zdddefd„Zdddedefd„Zdd„Zˆ xZS )ÚPreserveVersionContextVariablez?
    Wraps torch.autograd._unsafe_preserve_version_counter
    r7   r$   Útensorsr,   c                 óz  ‡ — |                      ¦   «         r7t          j        ˆ fd„|fD ¦   «         ¦  «        }t          j        |g¦  «        }n`t          |t          j        ¦  «        st	          dt          |¦  «        › �¦  «        ‚t          j        ˆ fd„|j        D ¦   «         ¦  «        }|}t          ||¦  «        S )Nc                 ó<   •— g | ]}|                      ‰d ¦  «        ‘ŒS ©Ú_version©r»   ©rg   rœ   r7   s     €r5   ri   zNPreserveVersionContextVariable._create_lambda_from_tensors.<locals>.<listcomp><  s'   ø€ ÐBÐBÐB°1�—’˜r :Ñ.Ô.ÐBÐBÐBr6   z%tensors must be a TupleVariable, got c                 ó<   •— g | ]}|                      ‰d ¦  «        ‘ŒS r-  r/  r0  s     €r5   ri   zNPreserveVersionContextVariable._create_lambda_from_tensors.<locals>.<listcomp>E  s'   ø€ ÐFÐFÐF°1�—’˜r :Ñ.Ô.ÐFÐFÐFr6   )Ú	is_tensorr   ÚTupleVariableru   rt   rv   r+  r)  )r7   r*  ÚversionsÚtensors_tuples   `   r5   Ú_create_lambda_from_tensorsz:PreserveVersionContextVariable._create_lambda_from_tensors5  sÖ   ø€ ð
 ×ÒÑÔð 	$Ý Ô.ØBÐBÐBÐB¸¸	ÐBÑBÔBñô ˆHõ &Ô3°W°IÑ>Ô>ˆMˆMå˜g¥yÔ'>Ñ?Ô?ð Ý$ØK½DÀ¹M¼MÐKÐKñô ð õ !Ô.ØFÐFÐFÐF¸¼ÐFÑFÔFñô ˆHð $ˆMÝ-¨m¸XÑFÔFÐFr6   c                 ó2   ‡ — t          j        ˆ fd„¦  «        S )Nc                 ó:   •— t                                ‰| ¦  «        S rW   )r)  r6  )r*  r7   s    €r5   rd   z<PreserveVersionContextVariable.constructor.<locals>.<lambda>M  s   ø€ Õ:×VÒVØ�Gñô € r6   )r   ÚLambdaVariable)r7   s   `r5   Úconstructorz*PreserveVersionContextVariable.constructorJ  s,   ø€ åÔ'ðð ð ð ñ
ô 
ð 	
r6   Úprev_versionsr+   Nc                 óf  •— |                      dd ¦  «          t          ¦   «         j        di |¤Ž || _        || _        | j                             ¦   «         rt          j        | j        g¦  «        | _        | j                             ¦   «         r!t          j        | j        g¦  «        | _        d S d S rø  )	Ú
setdefaultr0   r1   r*  r;  r2  r   r3  Úis_symnode_like)r3   r*  r;  r+   r4   s       €r5   r1   z'PreserveVersionContextVariable.__init__R  s·   ø€ ð 	×Ò˜/¨4Ñ0Ô0Ð0Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆŒØ*ˆÔàŒ<×!Ò!Ñ#Ô#ð 	CÝ$Ô2°D´L°>ÑBÔBˆDŒLØÔ×-Ò-Ñ/Ô/ð 	OÝ!*Ô!8¸$Ô:LÐ9MÑ!NÔ!NˆDÔÐÐð	Oð 	Or6   c                 ó.   — t           j        j        j        S rW   )r§   r  rk  Ú _unsafe_preserve_version_counterrq   s    r5   r  z*PreserveVersionContextVariable.python_typeb  s   € ÝŒ~Ô'ÔHÐHr6   c                 ó@   — t           j                             d ¦  «        S rW   rË  rI   s     r5   rJ   z$PreserveVersionContextVariable.entere  rÌ  r6   rU   c                 óx   — ddl m} t          j        |¦  «                             || j        | j        gi ¦  «        S )Nr   )Ú_unsafe_set_version_counter)Útensor_version_oprC  r   ÚTorchInGraphFunctionVariablerx   r*  r;  )r3   r7   rU   rC  s       r5   rZ   z#PreserveVersionContextVariable.exith  sK   € ð 	DÐCÐCÐCÐCÐCåÔ5Ø'ñ
ô 
ç
Š-˜˜Tœ\¨4Ô+=Ð>ÀÑ
CÔ
Cð	Dr6   r[   r#   c                 ó^   — t          dt          | ¦  «        dg t          j        ¢¬¦  «         d S )NzLtorch.autograd._unsafe_preserve_version_counter escaped from compiled regionzyDynamo doesn't support compiling a region that returns a torch.autograd._unsafe_preserve_version_counter context manager.r  r  r`   s     r5   rm   z*PreserveVersionContextVariable.reconstructq  sE   € ÝØbÝ˜‘I”IðUðÝ"Ô.ðð
	
ñ 
	
ô 
	
ð 
	
ð 
	
ð 
	
r6   r�   )r‚   rƒ   r„   rÙ   rÚ   r   r6  r:  r   r1   rv   r  rJ   rZ   rm   rŠ   r‹   s   @r5   r)  r)  0  sq  ø€ € € € € ðð ð ðGØ'ðGà ðGð 
*ðGð Gð Gñ „\ðGð( ð
Ð3ð 
¸ð 
ð 
ð 
ñ „\ð
ðOà ðOð 'ðOð ð	Oð
 
ðOð Oð Oð Oð Oð Oð I˜Tð Ið Ið Ið Ið7Ð3ð 7¸ð 7ð 7ð 7ð 7ðDØ-ðDØ6EðDà	ðDð Dð Dð Dð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r6   r)  c                   óH  ‡ — e Zd Z e e¦   «         ej        ¦  «        Zeddde	de	de	dd f
d„¦   «         Z
	 dde	d	ee	         d
ee	         dz  de	ddf
ˆ fd„Zdddefd„Zdddedefd„Zdddee         deeef         defˆ fd„Zdddee	         ddfd„Zdefd„Zdefd„Zˆ xZS )Ú&FSDPParamGroupUseTrainingStateVariabler7   r$   Úparam_group_varrJ  r+   r,   c                 ó>   — t          d||g|j        j        gdœ|¤Ž}|S )N)rI  r(   r)   r/   )rH  r�   Ú_training_state)r7   rI  rJ  r+   rè   s        r5   rH   z-FSDPParamGroupUseTrainingStateVariable.create‚  sB   € õ 5ð 
Ø+Ø'˜.Ø+Ô1ÔAÐBð
ð 
ð ð	
ð 
ˆð ˆ
r6   Nr(   r)   c                 óv   •—  t          ¦   «         j        d||dœ|¤Ž || _        t          | j        ¦  «         d S rÉ   )r0   r1   rI  r   rí   )r3   rI  r(   r)   r+   r4   s        €r5   r1   z/FSDPParamGroupUseTrainingStateVariable.__init__‘  sX   ø€ ð 	�‰ŒÔð 	
Ø'¸ð	
ð 	
ØJPð	
ð 	
ð 	
ð  /ˆÔÝ�dÔ,Ñ-Ô-Ð-Ð-Ð-r6   c                 óv   — |                       || j        ¦  «         t          j                             d ¦  «        S rW   rP  rI   s     r5   rJ   z,FSDPParamGroupUseTrainingStateVariable.enterž  rQ  r6   rU   c                 óv   — |                       || j        ¦  «         t          j                             d ¦  «        S rW   rS  rY   s      r5   rZ   z+FSDPParamGroupUseTrainingStateVariable.exit¢  rT  r6   c                 ó€   •— |                       || j        ¦  «         t          ¦   «                              |||¦  «        S rW   rV  rW  s       €r5   rx   z4FSDPParamGroupUseTrainingStateVariable.call_function¨  s8   ø€ ð 	�Š˜˜DÔ/Ñ0Ô0Ð0Ý‰wŒw×$Ò$ R¨¨vÑ6Ô6Ð6r6   r2  c           	      ó€  — t          |¦  «        dk    rt          dt          |¦  «        › �¦  «        ‚|d         }| j        j        j        |k    rn| j                             |dt          j                             |d¦  «        t          j                             ||¦  «        fi ¦  «         || j        j        _        d S d S )Nr   rY  r   Ú__setattr__rK  )	rl   rt   rI  r�   rK  Úcall_methodr   r   rñ   r[  s       r5   rD   z1FSDPParamGroupUseTrainingStateVariable._call_func²  sÅ   € õ ˆv‰;Œ;˜!ÒÐÝ Ð!G½#¸f¹+¼+Ð!GÐ!GÑHÔHÐHØ�q”	ˆØÔÔ%Ô5¸Ò>Ð>ØÔ ×,Ò,ØØåÔ-×3Ò3°BÐ8IÑJÔJÝÔ-×3Ò3°B¸Ñ>Ô>ðð ñô ð ð :?ˆDÔ Ô&Ô6Ð6Ð6ð ?Ð>r6   c                 ó   — dS )NzDtorch.distributed.fsdp._fully_shard._fsdp_param_group.FSDPParamGroupr/   rq   s    r5   r^   z2FSDPParamGroupUseTrainingStateVariable.module_nameÄ  s   € ØUÐUr6   c                 ó   — dS )NÚuse_training_stater/   rq   s    r5   r_   z.FSDPParamGroupUseTrainingStateVariable.fn_nameÇ  ó   € Ø#Ð#r6   rW   )r‚   rƒ   r„   r   r   r   ÚFSDP_TRAINING_STATErí   rÚ   r   rH   r   r1   r   rJ   rZ   r‡   rˆ   r†   rx   rD   r^   r_   rŠ   r‹   s   @r5   rH  rH    sü  ø€ € € € € Ø˜Ð/Ð/Ñ1Ô1°<Ô3SÑTÔTÐàðØ'ðàðð ðð ð	ð
 
2ðð ð ñ „\ðð$ 04ð	.ð .àð.ð   ”}ð.ð ! œ¨Ñ,ð	.ð
 ð.ð 
ð.ð .ð .ð .ð .ð .ð7Ð3ð 7¸ð 7ð 7ð 7ð 7ð7Ø-ð7Ø6Eð7à	ð7ð 7ð 7ð 7ð7à'ð7ð �?Ô#ð7ð �S˜/Ð)Ô*ð	7ð
 
ð7ð 7ð 7ð 7ð 7ð 7ð?Ø-ð?Ø7?À´}ð?à	ð?ð ?ð ?ð ?ð$V˜Sð Vð Vð Vð Vð$˜ð $ð $ð $ð $ð $ð $ð $ð $r6   rH  c                   ó  ‡ — e Zd ZdZe	 ddddedededd f
d	„¦   «         Z	 	 ddee	j
        j        j                 dedededd
f
ˆ fd„Zedddee         dee         fd„¦   «         Zdddefd„Zdddedefd„Zdefd„Zdefd„Zdefd„Zˆ xZS )ÚSDPAKernelVariablez)represents torch.nn.attention.sdpa_kernelFr7   r$   ÚbackendsÚset_priorityr+   r,   c                 ót   — t          |t          j        j        j        ¦  «        r|g}t          d|d |dœ|¤Ž}|S )N)r(   r)   r[  r/   )ru   r§   ÚnnÚ	attentionÚ
SDPBackendrY  )r7   rZ  r[  r+   rè   s        r5   rH   zSDPAKernelVariable.createÎ  sX   € õ �h¥¤Ô 2Ô =Ñ>Ô>ð 	"Ø �zˆHÝ ð 
Ø"ØØ%ð
ð 
ð ð	
ð 
ˆð ˆ
r6   Nr(   r)   c                 óN   •—  t          ¦   «         j        d||dœ|¤Ž || _        d S rÉ   )r0   r1   r[  )r3   r(   r)   r[  r+   r4   s        €r5   r1   zSDPAKernelVariable.__init__ß  sG   ø€ ð 	�‰ŒÔð 	
Ø'¸ð	
ð 	
ØJPð	
ð 	
ð 	
ð )ˆÔÐÐr6   c                 ó$   ‡ — ˆ fd„|D ¦   «         }|S )Nc                 ó~   •— g | ]9}‰j                              d t          j        j        j        |j        fi ¦  «        ‘Œ:S )rx   )rQ   rÓ   r§   r]  r^  Ú_backend_from_stringr¦   )rg   Úbackendr7   s     €r5   ri   z9SDPAKernelVariable._backends_to_nodes.<locals>.<listcomp>ñ  sU   ø€ ð 
ð 
ð 
ð ð ŒI×!Ò!ØÝ”Ô"Ô7Ø”�Øñ	ô ð
ð 
ð 
r6   r/   )r7   rZ  Únodess   `  r5   Ú_backends_to_nodesz%SDPAKernelVariable._backends_to_nodesë  s4   ø€ ð
ð 
ð 
ð 
ð $ð
ñ 
ô 
ˆð ˆr6   c                 óò  ‡ — t           j        j                             ‰ j        ¬¦  «        ‰ _        ‰                      |ˆ fd„¦  «         t           j        j                             ‰ j        ‰ j        ¬¦  «         ‰  	                    |‰ j        ¦  «        }|j
                             dt           j        j        j        |t          ‰ j        ¦  «        fi ¦  «         t          j                             d ¦  «        S )N)Úwith_priorityc                  ód   •— t           j        j                             ‰ j        ‰ j        ¬¦  «        S )N©r[  )r§   r]  r^  Ú_sdpa_kernelÚprev_backendsr[  rq   s   €r5   rd   z*SDPAKernelVariable.enter.<locals>.<lambda>  s,   ø€ •E”HÔ&×3Ò3ØÔ"°Ô1Bð 4ñ ô € r6   rj  rx   )r§   r]  r^  Ú_cur_sdpa_kernel_backendsr[  rl  rF   rk  r(   rf  rQ   rÓ   r‰   r   rG   rH   )r3   r7   rë  s   `  r5   rJ   zSDPAKernelVariable.enterü  sý   ø€ Ý"œXÔ/×IÒIØÔ+ð Jñ 
ô 
ˆÔð 	×ÒØðð ð ð ñ	
ô 	
ð 	
õ 	ŒÔ×'Ò'ØÔ¨TÔ->ð 	(ñ 	
ô 	
ð 	
ð ×%Ò% b¨$Ô*<Ñ=Ô=ˆØ
Œ	×ÒØÝŒHÔÔ+Ø•$�tÔ(Ñ)Ô)Ð*Øñ		
ô 	
ð 	
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   rU   c                 ó(  — |                       ¦   «          |                      || j        ¦  «        }|j                             dt
          j        j        j        |t          | j
        ¦  «        fi ¦  «         t          j                             d ¦  «        S r×   )rX   rf  rl  rQ   rÓ   r§   r]  r^  rk  r‰   r[  r   rG   rH   )r3   r7   rU   rë  s       r5   rZ   zSDPAKernelVariable.exit  s…   € ð 	×ÒÑÔÐØ×%Ò% b¨$Ô*<Ñ=Ô=ˆØ
Œ	×ÒØÝŒHÔÔ+Ø•$�tÔ(Ñ)Ô)Ð*Øñ		
ô 	
ð 	
õ Ô)×0Ò0°Ñ6Ô6Ð6r6   c                 ó   — dS )Nztorch.nn.attentionr/   rq   s    r5   r^   zSDPAKernelVariable.module_name  rV  r6   c                 ó   — dS )NÚ_sdpa_kernel_variadicr/   rq   s    r5   r_   zSDPAKernelVariable.fn_name$  s   € Ø&Ð&r6   c                 ó   — t           j        S rW   rÕ  rq   s    r5   r  zSDPAKernelVariable.python_type'  rØ  r6   rb  rž   )r‚   rƒ   r„   rÙ   rÚ   r   r‰   rH   r‡   r§   r]  r^  r_  r1   rf  r   rJ   rZ   r†   r^   r_   rv   r  rŠ   r‹   s   @r5   rY  rY  Ë  sÅ  ø€ € € € € Ø3Ð3àð #ðð Ø'ðàðð ðð ð	ð
 
ðð ð ñ „\ðð& #Ø"ð	
)ð 
)à˜EœHÔ.Ô9Ô:ð
)ð ð
)ð ð	
)ð
 ð
)ð 
ð
)ð 
)ð 
)ð 
)ð 
)ð 
)ð ðØ'ðà�s”)ðð 
ˆcŒðð ð ñ „\ðð 7Ð3ð 7¸ð 7ð 7ð 7ð 7ð,7Ø-ð7Ø6Eð7à	ð7ð 7ð 7ð 7ð$˜Sð $ð $ð $ð $ð
'˜ð 'ð 'ð 'ð 'ð3˜Tð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3r6   rY  c            	       óx   ‡ — e Zd ZdZ	 ddedededdfˆ fd„Zdd	d
edefd„Zdefd„Z	defd„Z
defd„Zdd„Zˆ xZS )ÚFxTracebackAnnotateVariablea¶  
    fx.traceback.annotate is a context manager that allows users to annotate the
    fx graph nodes with custom metadata. In the context of Dynamo, we don't have
    to trace the body of the context manager. Instead we want to directly run
    the body of the context manager, so the Dynamo created Fx graphs have the
    right custom metadata. This variable tracker just runs __enter__ and
    __exit__ method (instead of tracing).
    Nr(   r)   r+   r,   c                 ó@   •—  t          ¦   «         j        d||dœ|¤Ž d S rÉ   rÈ  r2   s       €r5   r1   z$FxTracebackAnnotateVariable.__init__5  sA   ø€ ð 	�‰ŒÔð 	
Ø'¸ð	
ð 	
ØJPð	
ð 	
ð 	
ð 	
ð 	
r6   r7   r$   rU   c                 ót  ‡— t          ¦   «         Š‰                     t          j        j                             | j        ¦  «        ¦  «         ‰                     t          j        j                             ¦   «         ¦  «         |                      |ˆfd„¦  «         t          j
                             d ¦  «        S )Nc                  ó,   •— ‰                       ¦   «         S rW   )Úclose)Ústacks   €r5   rd   z3FxTracebackAnnotateVariable.enter.<locals>.<lambda>E  s   ø€ ¨%¯+ª+©-¬-€ r6   )r   Úenter_contextr§   ÚfxÚ	tracebackÚannotater(   Úpreserve_node_metarF   r   rG   rH   )r3   r7   rU   ry  s      @r5   rJ   z!FxTracebackAnnotateVariable.enter<  s”   ø€ õ ‘”ˆØ×Ò�EœHÔ.×7Ò7¸Ô8JÑKÔKÑLÔLÐLØ×Ò�EœHÔ.×AÒAÑCÔCÑDÔDÐDØ×Ò˜bÐ"7Ð"7Ð"7Ð"7Ñ8Ô8Ð8ÝÔ)×0Ò0°Ñ6Ô6Ð6r6   c                 ó   — dS )Nztorch.fx.tracebackr/   rq   s    r5   r^   z'FxTracebackAnnotateVariable.module_nameH  rV  r6   c                 ó   — dS )Nr}  r/   rq   s    r5   r_   z#FxTracebackAnnotateVariable.fn_nameK  r¼  r6   c                 ó   — t           j        S rW   rÕ  rq   s    r5   r  z'FxTracebackAnnotateVariable.python_typeN  rØ  r6   r[   r#   c                 ó^   — t          dt          | ¦  «        dg t          j        ¢¬¦  «         d S )Nz8torch.fx.traceback.annotate escaped from compiled regionzBDynamo doesn't support graph break on torch.fx.traceback.annotate.r  r  r`   s     r5   ra   z,FxTracebackAnnotateVariable.reconstruct_typeQ  sB   € ÝØNÝ˜‘I”IØ\ðÝ"Ô.ðð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r6   rW   r�   )r‚   rƒ   r„   rÙ   r   r1   r   rJ   r†   r^   r_   rv   r  ra   rŠ   r‹   s   @r5   rt  rt  +  s  ø€ € € € € ðð ð 9=ð
ð 
Ø ð
Ø25ð
ØHKð
à	ð
ð 
ð 
ð 
ð 
ð 
ð
7Ø-ð
7Ø6Eð
7à	ð
7ð 
7ð 
7ð 
7ð$˜Sð $ð $ð $ð $ð˜ð ð ð ð ð3˜Tð 3ð 3ð 3ð 3ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r6   rt  c                   óx   ‡ — e Zd ZdZdeeef         deddfˆ fd„Zddd	eddfd
„Zdefd„Z	defd„Z
defd„Zˆ xZS )ÚDynamoConfigPatchVariablez,represents torch._dynamo.patch_dynamo_configr(   r+   r,   Nc                 ó4  •— t          |                     ¦   «         ¦  «        } t          ¦   «         j        d|fd dœ|¤Ž i }|D ],\  }}t          j        j                             |¦  «        ||<   Œ-t          |                     ¦   «         ¦  «        f| _        d S rÉ   )	r3  r+  r0   r1   r§   r¸   r
   rÅ   r)   )r3   r(   r+   Útarget_values_tupleÚinitial_values_dictrê  Ú_r4   s          €r5   r1   z"DynamoConfigPatchVariable.__init__a  s¶   ø€ Ý# M×$7Ò$7Ñ$9Ô$9Ñ:Ô:ÐØ�‰ŒÔð 	
Ø.Ð0Àð	
ð 	
ØIOð	
ð 	
ð 	
ð !ÐØ)ð 	Mð 	M‰FˆC�Ý',¤}Ô';×'GÒ'GÈÑ'LÔ'LÐ Ñ$Ð$Ý$Ð%8×%>Ò%>Ñ%@Ô%@ÑAÔAÐCˆÔÐÐr6   r7   r$   r2  c                 óÔ   — t          |¦  «        dk    rt          dt          |¦  «        › �¦  «        ‚|d         }|D ]*\  }}t          j        j                             ||¦  «         Œ+d S ©Nr   rY  r   )rl   rt   r§   r¸   r
   rQ  )r3   r7   r2  r�   rê  rh   s         r5   rD   z$DynamoConfigPatchVariable._call_funcl  st   € Ýˆv‰;Œ;˜!ÒÐÝ Ð!G½#¸f¹+¼+Ð!GÐ!GÑHÔHÐHØ�q”	ˆàð 	7ð 	7‰HˆC�ÝŒMÔ ×,Ò,¨S°#Ñ6Ô6Ð6Ð6ð	7ð 	7r6   c                 ó   — dS ©Nztorch._dynamor/   rq   s    r5   r^   z%DynamoConfigPatchVariable.module_namex  ó   € Øˆr6   c                 ó   — dS )NÚpatch_dynamo_configr/   rq   s    r5   r_   z!DynamoConfigPatchVariable.fn_name{  ó   € Ø$Ð$r6   c                 ó   — ddl m} |S )Nr   )ÚDynamoConfigPatchProxy)Útorch._dynamo.decoratorsr’  )r3   r’  s     r5   r  z%DynamoConfigPatchVariable.python_type~  s   € ØCÐCÐCÐCÐCÐCà%Ð%r6   )r‚   rƒ   r„   rÙ   rˆ   r†   r   r1   rD   r^   r_   rv   r  rŠ   r‹   s   @r5   r„  r„  \  sä   ø€ € € € € Ø6Ð6ð	D d¨3°¨8¤nð 	DÀð 	DÈð 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð7Ð8ð 7À#ð 7È$ð 7ð 7ð 7ð 7ð˜Sð ð ð ð ð%˜ð %ð %ð %ð %ð&˜Tð &ð &ð &ð &ð &ð &ð &ð &r6   r„  c                   ót   ‡ — e Zd ZdZdededdfˆ fd„Zddd	ee         ddfd
„Zde	fd„Z
de	fd„Zdefd„Zˆ xZS )ÚErrorOnGraphBreakVariablez-represents torch._dynamo.error_on_graph_breakÚerror_on_graph_breakr+   r,   Nc                 ó\   •—  t          ¦   «         j        d|ft          ¦   «         fdœ|¤Ž d S rÉ   )r0   r1   r   )r3   r–  r+   r4   s      €r5   r1   z"ErrorOnGraphBreakVariable.__init__‡  sN   ø€ Ø�‰ŒÔð 	
Ø/Ð1Ý5Ñ7Ô7Ð9ð	
ð 	
ð ð	
ð 	
ð 	
ð 	
ð 	
r6   r7   r$   r2  c                 ó”   — t          |¦  «        dk    rt          dt          |¦  «        › �¦  «        ‚t          |d         ¦  «         d S rŠ  )rl   rt   r   rº  s      r5   rD   z$ErrorOnGraphBreakVariable._call_funcŽ  sJ   € õ ˆv‰;Œ;˜!ÒÐÝ Ð!G½#¸f¹+¼+Ð!GÐ!GÑHÔHÐHÝ! &¨¤)Ñ,Ô,Ð,Ð,Ð,r6   c                 ó   — dS rŒ  r/   rq   s    r5   r^   z%ErrorOnGraphBreakVariable.module_name•  r�  r6   c                 ó   — dS )Nr–  r/   rq   s    r5   r_   z!ErrorOnGraphBreakVariable.fn_name˜  rÑ  r6   c                 ó   — ddl m} |S )Nr   )Ú(ErrorOnGraphBreakDecoratorContextManager)r“  rœ  )r3   rœ  s     r5   r  z%ErrorOnGraphBreakVariable.python_type›  s   € ØUÐUÐUÐUÐUÐUà7Ð7r6   )r‚   rƒ   r„   rÙ   r‰   r   r1   r   rD   r†   r^   r_   rv   r  rŠ   r‹   s   @r5   r•  r•  „  sÙ   ø€ € € € € Ø7Ð7ð
¨Tð 
¸Sð 
ÀTð 
ð 
ð 
ð 
ð 
ð 
ð-Ø-ð-Ø7?À´~ð-à	ð-ð -ð -ð -ð˜Sð ð ð ð ð&˜ð &ð &ð &ð &ð8˜Tð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8r6   r•  c                   ó´   ‡ — e Zd ZdZdedz  dedz  deddfˆ fd„Zdˆ fd„Zdd	deedf         ddfd„Z	de
fd„Zde
fd„Zdefd„Zdefd„Zdd	dedd
fd„Zˆ xZS )ÚCudagraphOverrideVariablez,represents torch._dynamo.override_cudagraphsÚfwdNÚbwdr+   r,   c                 óD   •—  t          ¦   «         j        d||fd dœ|¤Ž d S rÉ   rÈ  )r3   rŸ  r   r+   r4   s       €r5   r1   z"CudagraphOverrideVariable.__init__¤  sF   ø€ Ø�‰ŒÔð 	
Ø ˜*Øð	
ð 	
ð ð	
ð 	
ð 	
ð 	
ð 	
r6   r7   r$   r   c                 ó˜   •— |j         j        }|�|j        |j        f| _        nd| _        t          ¦   «                              |¦  «        S )NrW   )rQ   Úcudagraph_annotationrŸ  r   r)   r0   rJ   )r3   r7   Úprevr4   s      €r5   rJ   zCudagraphOverrideVariable.enter«  sE   ø€ àŒyÔ-ˆØÐØ#'¤8¨T¬XÐ"6ˆDÔÐà")ˆDÔÝ‰wŒw�}Š}˜RÑ Ô Ð r6   r2  .c                 óH  — ddl m} t          |¦  «        dk    r'|d         €d |j        _        d |j        j        _        d S t          |¦  «        dk    rt          dt          |¦  «        › �¦  «        ‚|\  }} |||¬¦  «        }||j        _        ||j        j        _        d S )Nr   )Ú_CudagraphAnnotationr   r   zexpected 2 values, got )rŸ  r   )Útorch._inductorr¦  rl   rQ   r£  Útracing_contextrt   )r3   r7   r2  r¦  rŸ  r   Ú
annotations          r5   rD   z$CudagraphOverrideVariable._call_func´  s¶   € ð 	9Ð8Ð8Ð8Ð8Ð8åˆv‰;Œ;˜!ÒÐ  q¤	Ð 1à-1ˆBŒIÔ*Ø=AˆBŒIÔ%Ô:Ð:Ð:å�6‰{Œ{˜aÒÐÝ$Ð%L½sÀ6¹{¼{Ð%LÐ%LÑMÔMÐMØ‰HˆC�Ø-Ð-°#¸3Ð?Ñ?Ô?ˆJØ-7ˆBŒIÔ*Ø=GˆBŒIÔ%Ô:Ð:Ð:r6   c                 ó   — dS rŒ  r/   rq   s    r5   r^   z%CudagraphOverrideVariable.module_nameÅ  r�  r6   c                 ó   — dS )NÚoverride_cudagraphsr/   rq   s    r5   r_   z!CudagraphOverrideVariable.fn_nameÈ  r�  r6   c                 ó   — ddl m} |S )Nr   )ÚCudagraphOverrideContextManager)r“  r®  )r3   r®  s     r5   r  z%CudagraphOverrideVariable.python_typeË  s   € ØLÐLÐLÐLÐLÐLà.Ð.r6   c                 ó   — dS rž   r/   rq   s    r5   r~   z-CudagraphOverrideVariable.exit_on_graph_breakÐ  s	   € ð ˆur6   rU   c                 ó@   — t           j                             d ¦  «        S rW   rË  rY   s      r5   rZ   zCudagraphOverrideVariable.exitÕ  s   € õ Ô)×0Ò0°Ñ6Ô6Ð6r6   )r7   r$   r,   r   )r‚   rƒ   r„   rÙ   r‰   r   r1   rJ   r3  rD   r†   r^   r_   rv   r  r~   r   rZ   rŠ   r‹   s   @r5   rž  rž  ¡  sX  ø€ € € € € Ø6Ð6ð
˜D 4™Kð 
¨d°T©kð 
ÀSð 
ÈTð 
ð 
ð 
ð 
ð 
ð 
ð!ð !ð !ð !ð !ð !ðHØ-ðHØ7<¸SÀ#¸X´ðHà	ðHð Hð Hð Hð"˜Sð ð ð ð ð%˜ð %ð %ð %ð %ð/˜Tð /ð /ð /ð /ð
 Tð ð ð ð ð
7Ø-ð7Ø6Eð7à	ð7ð 7ð 7ð 7ð 7ð 7ð 7ð 7r6   rž  c                   ó’   ‡ — e Zd Zdeez  deddfˆ fd„Zddded	edefd
„Z	de
fd„Zdddee         deeef         defd„Zdd„Zˆ xZS )ÚWithEnterFunctionVariablero  r+   r,   Nc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r.   )r0   r1   ro  )r3   ro  r+   r4   s      €r5   r1   z"WithEnterFunctionVariable.__init__ß  s-   ø€ ð
 	�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆŒˆˆr6   r7   r$   r8   r9   c                 ó*   — ddl m}  || |||¦  «        S r;   r=   r?   s        r5   r@   z*WithEnterFunctionVariable.richcompare_implç  rA   r6   c                 ó   — t           j        S rW   ©ÚtypesÚ
MethodTyperq   s    r5   r  z%WithEnterFunctionVariable.python_typeî  ó   € ÝÔÐr6   rU   c                 ó†   — |rt          d¦  «        ‚|rt          d¦  «        ‚|                     | j        |j        ¦  «        S )Nz7WithEnterFunctionVariable.call_function expects no argsz9WithEnterFunctionVariable.call_function expects no kwargs)rt   Ú	enter_ctxro  Úcurrent_instructionrw   s       r5   rx   z'WithEnterFunctionVariable.call_functionñ  s[   € ð ð 	Ý ØIñô ð ð ð 	Ý ØKñô ð ð �|Š|˜DœH bÔ&<Ñ=Ô=Ð=r6   r[   r#   c                 óZ  — 	 | j                              ¦   «         › d| j                              ¦   «         › �}n1# t          $ r$ t	          t          | j         ¦  «        ¦  «        }Y nw xY wt          dt	          | j         ¦  «        d|› d�dgt          j        ¢t          j	        ¢¬¦  «         d S )Nú.z;Attempted to reconstruct context manager's __enter__ methodz)Attempted to reconstruct context manager z while tracing `with ...:`zžIt is likely there is a graph break while tracing `with ctx:` but outside the actual `ctx.__enter__()` method. `torch.compile` does not expect this to happen.r  )
ro  r^   r_   rp   r†   rv   r   r   Ú	DIFFICULTÚ
DYNAMO_BUG)r3   r[   Útype_strs      r5   rm   z%WithEnterFunctionVariable.reconstruct  sÎ   € ð	+Øœ(×.Ò.Ñ0Ô0ÐGÐG°4´8×3CÒ3CÑ3EÔ3EÐGÐGˆHˆHøÝ"ð 	+ð 	+ð 	+Ý�4 ¤™>œ>Ñ*Ô*ˆHˆHˆHð	+øøøåØQÝ˜œ‘M”MØhÀHÐhÐhÐhðBðõ #Ô,ð	õ
 #Ô-ðð		
ñ 	
ô 	
ð 	
ð 	
ð 	
s   ‚58 ¸+A&Á%A&r�   )r‚   rƒ   r„   r&   r�   r   r1   r   r†   r@   rv   r  r‡   rˆ   rx   rm   rŠ   r‹   s   @r5   r²  r²  Þ  s  ø€ € € € € ðà$Ð'EÑEðð ðð 
ð	ð ð ð ð ð ð7Ø-ð7Ø6Eð7ØKNð7à	ð7ð 7ð 7ð 7ð ˜Tð  ð  ð  ð  ð>à'ð>ð �?Ô#ð>ð �S˜/Ð)Ô*ð	>ð
 
ð>ð >ð >ð >ð&
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r6   r²  c                   óª   ‡ — e Zd Zdhej        £Zdddededefd„Zdeez  de	d	e	dd
fˆ fd„Z
defd„Zdddee         d	eeef         defd„Zdd„Zˆ xZS )ÚWithExitFunctionVariableÚtargetr7   r$   r8   r9   r,   c                 ó*   — ddl m}  || |||¦  «        S r;   r=   r?   s        r5   r@   z)WithExitFunctionVariable.richcompare_impl  rA   r6   ro  r+   Nc                 óÌ   •—  t          ¦   «         j        di |¤Ž t          |t          t          f¦  «        st          dt          |¦  «        › �¦  «        ‚|| _        || _        d S )NzMctx must be a ContextWrappingVariable or GenericContextWrappingVariable, got r/   )	r0   r1   ru   r&   r�   rt   rv   ro  rÄ  )r3   ro  rÄ  r+   r4   s       €r5   r1   z!WithExitFunctionVariable.__init__$  s}   ø€ ð 	�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ÝØÕ)Õ+IÐJñ
ô 
ð 	õ !ØkÕ`dÐehÑ`iÔ`iÐkÐkñô ð ð ˆŒØˆŒˆˆr6   c                 ó   — t           j        S rW   r¶  rq   s    r5   r  z$WithExitFunctionVariable.python_type4  r¹  r6   rU   c                 óJ   — |rt          d¦  «        ‚ | j        j        |g|¢R Ž S )Nz8WithExitFunctionVariable.call_function expects no kwargs)rt   ro  rZ   rw   s       r5   rx   z&WithExitFunctionVariable.call_function7  s?   € ð ð 	Ý ØJñô ð ð ˆtŒxŒ}˜RÐ' $Ð'Ð'Ð'Ð'r6   r[   r#   c                 ó:   — | j                              |¦  «         d S rW   )ro  ra   r`   s     r5   rm   z$WithExitFunctionVariable.reconstructC  s    € ð 	Œ×!Ò! 'Ñ*Ô*Ð*Ð*Ð*r6   r�   )r‚   rƒ   r„   r   r…   r†   r@   r&   r�   r   r1   rv   r  r‡   rˆ   rx   rm   rŠ   r‹   s   @r5   rÃ  rÃ    s*  ø€ € € € € àðà	Ô	'ð€Nð
7Ø-ð7Ø6Eð7ØKNð7à	ð7ð 7ð 7ð 7ðà$Ð'EÑEðð ðð ð	ð
 
ðð ð ð ð ð ð  ˜Tð  ð  ð  ð  ð
(à'ð
(ð �?Ô#ð
(ð �S˜/Ð)Ô*ð	
(ð
 
ð
(ð 
(ð 
(ð 
(ð+ð +ð +ð +ð +ð +ð +ð +r6   rÃ  )grÙ   rÖ  rã  Úloggingr·  r,  Úcollections.abcr   r   r   r   r   Útypingr   r	   Útorch._Cr§   Útorch._dynamor
   Útorch._guardsr   Útorch._loggingr   Ú r   r   Úbytecode_transformationr   Úexcr   Úguardsr   r   r–   r   r   Úutilsr   r   Úbaser   Ú	functionsr   r   r   r   r   r   r    r!   Úuser_definedr"   Útorch._dynamo.codegenr#   Útorch._dynamo.symbolic_convertr$   Ú	getLoggerr‚   r  r&   r�   r¡   r°   rÇ   rÜ   rå   rù   r  r  r  r9  rI  re  rz  r�  r–  r›  r‘  r~  r™  r¡  rŸ  r¤  rˆ   rv   rŠ  r©  r¬  r®  rÃ  rÚ  rö  r  r¨   r)  rH  rY  rt  r„  r•  rž  r²  rÃ  r/   r6   r5   ú<module>rÜ     sÅ  ððð ð ð( Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø €€€Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à €€€Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø :Ð :Ð :Ð :Ð :Ð :Ø Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ !Ð !Ð !Ð !Ð !Ð !ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 4Ð 3Ð 3Ð 3Ð 3Ð 3ð ð IØ/Ð/Ð/Ð/Ð/Ð/ØHÐHÐHÐHÐHÐHà€gÔ˜Ñ!Ô!€ðnð nð nð nð n˜oñ nô nð nðb+ð +ð +ð +ð +Ð%>ñ +ô +ð +ð\.ð .ð .ð .ð .Ð;ñ .ô .ð .ð(")ð ")ð ")ð ")ð ")Ð+Iñ ")ô ")ð ")ðJ)7ð )7ð )7ð )7ð )7Ð0Gñ )7ô )7ð )7ðX%7ð %7ð %7ð %7ð %7Ð7Nñ %7ô %7ð %7ðP*7ð *7ð *7ð *7ð *7Ð,Cñ *7ô *7ð *7ðZ*?ð *?ð *?ð *?ð *?Ð&=ñ *?ô *?ð *?ðZ*4ð *4ð *4ð *4ð *4Ð5ñ *4ô *4ð *4ðZ(7ð (7ð (7ð (7ð (7Ð-Dñ (7ô (7ð (7ðV.'ð .'ð .'ð .'ð .'Ð&=ñ .'ô .'ð .'ðb57ð 57ð 57ð 57ð 57Ð-Dñ 57ô 57ð 57ðpF&ð F&ð F&ð F&ð F&Ð.ñ F&ô F&ð F&ðRH$ð H$ð H$ð H$ð H$Ð3ñ H$ô H$ð H$ðV/"ð /"ð /"ð /"ð /"Ð3ñ /"ô /"ð /"ðd!ð !ð !ð !ð !Ð.ñ !ô !ð !ð ð  ð  ð  ð  Ð-ñ  ô  ð  ð.ð .ð .ð .ð .Ð%:ñ .ô .ð .ð$ 
„JÔÐ)Ø	„IÔÐ'Ø	ÔÔ"Ð$BðHÐ ˜T $¨Ð-BÔ(CÐ"CÔDð ð ñ ð?Øð?Ø(,Ð-BÔ(Cð?à	ð?ð ?ð ?ð ?ð;Øð;à	Ð
Ô  4Ñ'ð;ð ;ð ;ð ;ðS-ð S-ð S-ð S-ð S-Ð#:ñ S-ô S-ð S-ðl>3ð >3ð >3ð >3ð >3Ð(?ñ >3ô >3ð >3ðBI0ð I0ð I0ð I0ð I0Ð2ñ I0ô I0ð I0ðX&ð &ð &ð &ð &Ð1ñ &ô &ð &ð6%
ð %
ð %
ð %
ð %
Ð5ñ %
ô %
ð %
ðPs.ð s.ð s.ð s.ð s.Ð,Cñ s.ô s.ð s.ðlL
ð L
ð L
ð L
ð L
Ð%<ñ L
ô L
ð L
ð^I$ð I$ð I$ð I$ð I$Ð-Dñ I$ô I$ð I$ðX]3ð ]3ð ]3ð ]3ð ]3Ð0ñ ]3ô ]3ð ]3ð@.
ð .
ð .
ð .
ð .
Ð"9ñ .
ô .
ð .
ðb%&ð %&ð %&ð %&ð %&Ð 7ñ %&ô %&ð %&ðP8ð 8ð 8ð 8ð 8Ð 7ñ 8ô 8ð 8ð::7ð :7ð :7ð :7ð :7Ð 7ñ :7ô :7ð :7ðz6
ð 6
ð 6
ð 6
ð 6
 ñ 6
ô 6
ð 6
ðr0+ð 0+ð 0+ð 0+ð 0+˜ñ 0+ô 0+ð 0+ð 0+ð 0+r6   