ó
    CC˜j# ã                   ó&  • % S r SSKrSSKrSSKrSSKrSSKrSSKJrJrJ	r	  SSKJ
r
Jr  SSKJrJr  SSKrSSKJr  SSKJr  SSKJr  S	S
KJrJr  S	SKJr  S	SKJr  S	SKJrJ r   S	SK!J"r"J#r#  S	SK$J%r%J&r&  SSK'J(r(  SSK)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1  SSK2J3r3  \(       a  SSK4J5r5  SSK6J7r7  \Rp                  " \95      r: " S S\(5      r; " S S\35      r< " S S\<5      r= " S S\<5      r> " S S\;5      r? " S  S!\;5      r@ " S" S#\;5      rA " S$ S%\;5      rB " S& S'\;5      rC " S( S)\;5      rD " S* S+\;5      rE " S, S-\;5      rF " S. S/\;5      rG " S0 S1\;5      rH " S2 S3\;5      rI " S4 S5\I5      rJ " S6 S7\I5      rK " S8 S9\I5      rL\Rš                  Rœ                  \J\Rž                  Rœ                  \K\R                   R¢                  \L0rR\S\T\T\I   4   \US:'   S;\TS<\T\I   S=S4S> jrVS;\TS=\T\I   S-  4S? jrW " S@ SA\;5      rX " SB SC\;5      rY " SD SE\;5      rZ " SF SG\;5      r[ " SH SI\;5      r\ " SJ SK\;5      r] " SL SM\;5      r^ " SN SO\;5      r_ " SP SQ\;5      r` " SR SS\;5      ra " ST SU\;5      rb " SV SW\;5      rc " SX SY\;5      rd " SZ S[\(5      re " S\ S]\(5      rfg)^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            	       ód  ^ • \ rS rSrSSSS1\R
                  kr SS\S\S-  S\SS4U 4S	 jjjrS
SS\S\S\4S jr	S
SS\4S jr
 SS
SS\S\4   S-  SS4S jjrS
SS\S\4S jrS S jrS S jrS\4S jrS\4S jrS
SS\\   S\\\4   S\4S jrS\4S jrS\4S jrS!S jrS!S jrSrU =r$ )"ÚContextWrappingVariableé>   Úcm_objÚtarget_valuesÚinitial_valuesÚstateNÚkwargsÚreturnc                 ó²   >• [         TU ]  " S0 UD6  Xl        X l        Ub7  [	        U[
        5      (       d!  [        S[        U5      R                   35      eg g )NzFContextWrappingVariable.target_values must be None or a Sequence, got © )	ÚsuperÚ__init__r)   r*   Ú
isinstancer   Ú	TypeErrorÚtypeÚ__name__©Úselfr)   r*   r,   Ú	__class__s       €Ú±C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\torch/_dynamo/variables/ctx_manager.pyr1   Ú ContextWrappingVariable.__init__G   sg   ø€ ô 	‰ÒÑ"˜6Ò"Ø*ÔØ,Ôð Ñ%¬°MÄ8×)LÑ)LÜð!Ü!% mÓ!4×!=Ñ!=Ð >ð@óð ð *MÐ%ó    Útxr$   ÚotherÚopc                 ó    • SSK Jn  U" XX#5      $ ©Nr   )Úobject_richcompare©Úobject_protocolrA   ©r7   r<   r=   r>   rA   s        r9   Útp_richcompare_implÚ+ContextWrappingVariable.tp_richcompare_implU   ó   € õ 	8á! $¨EÓ6Ð6r;   c                 óº   • [        U S5      (       a  U R                  XR                  5        U R                  U5        [        R
                  R                  S 5      $ ©NÚ
_call_func)ÚhasattrrJ   r)   Úset_cleanup_hookr   ÚConstantVariableÚcreate©r7   r<   s     r9   ÚenterÚContextWrappingVariable.enter\   sF   € Ü�4˜×&Ñ&Ø�O‰O˜B× 2Ñ 2Ô3Ø×Ñ˜bÔ!Ü×)Ñ)×0Ñ0°Ó6Ð6r;   Úfn.c                 óx   ^ ^• Uc	  SU U4S jjnUT l         TR                  R                  T R                  5        g )Nc                  ób   >• [        T S5      (       a  T R                  TT R                  5        g g rI   )rK   rJ   r*   rO   s   €€r9   rR   Ú4ContextWrappingVariable.set_cleanup_hook.<locals>.fng   s)   ø€ Ü˜4 ×.Ñ.Ø—O‘O B¨×(;Ñ(;Õ<ð /r;   ©r-   N©Ú
cleanup_fnÚoutputÚadd_cleanup_hookÚcleanup©r7   r<   rR   s   `` r9   rL   Ú(ContextWrappingVariable.set_cleanup_hookb   s3   ù€ ð ‰:÷=ð =ð 68ˆŒØ
�	‰	×"Ñ" 4§<¡<Õ0r;   Úargsc                 ó`   • U R                  5         [        R                  R                  S 5      $ ©N)Úcleanup_assertr   rM   rN   ©r7   r<   r^   s      r9   ÚexitÚContextWrappingVariable.exitn   s'   € ð 	×ÑÔÜ×)Ñ)×0Ñ0°Ó6Ð6r;   c                 ó’   • U" [        UR                  R                  U R                  5       5      U R	                  5       5      5        g r`   )r   r<   Úimport_sourceÚmodule_nameÚfn_name©r7   Úcodegens     r9   Úreconstruct_typeÚ(ContextWrappingVariable.reconstruct_typet   s2   € ÙÜ�w—z‘z×/Ñ/°×0@Ñ0@Ó0BÓCÀTÇ\Á\Ã^ÓTõ	
r;   c                 ó  ^ ^• TR                  UU 4S j5        T R                  nU(       d  SnTR                  U Vs/ s H  nTR                  U5      PM     sn5        TR                  [	        [        U5      S5      5        g s  snf )Nc                  ó&   >• TR                  T 5      $ r`   )rk   )rj   r7   s   €€r9   Ú<lambda>Ú5ContextWrappingVariable.reconstruct.<locals>.<lambda>z   s   ø€  d×&;Ñ&;¸GÔ&Dr;   r/   F)Úadd_push_nullr)   Úextend_outputÚcreate_load_constr   Úlen)r7   rj   r)   Úvals   ``  r9   ÚreconstructÚ#ContextWrappingVariable.reconstructy   sn   ù€ Ø×ÑÕDÔEØ×*Ñ*ˆÞØˆMØ×ÑÉÓWÊÀ#˜w×8Ñ8¸Ö=ÉÑWÔXØ×ÑÔ2´3°}Ó3EÀuÓMÕNùò Xs   ½Bc                 ó   • [        S5      e)Nzmodule_name called on base©ÚNotImplementedError©r7   s    r9   rg   Ú#ContextWrappingVariable.module_name�   s   € Ü!Ð">Ó?Ð?r;   c                 ó   • [        S5      e)Nzfn_name called on basery   r{   s    r9   rh   ÚContextWrappingVariable.fn_name„   s   € Ü!Ð":Ó;Ð;r;   c                 ó   • [        U5      S:w  a  [        S[        U5       35      e[        US   [        [        [
        [        45      (       d  [        S[        US   5       35      e[        US   [        5      (       a  [        US   U 5      $ [        US   [        5      (       a  [        US   U 5      $ [        US   [
        5      (       a  [        US   U 5      $ [        US   [        5      (       a  [        US   U 5      $ [        S5      e)Nr   zexpected exactly 1 arg, got r   z"expected a function variable, got zUnexpected arg type)rt   ÚAssertionErrorr2   r   r   r   r   r4   r   r   r!   r    ©r7   r<   r^   r,   s       r9   Úcall_functionÚ%ContextWrappingVariable.call_function‡   s  € ô ˆt‹9˜‹>Ü Ð#?ÄÀDÃ	¸{Ð!KÓLÐLÜØ�‰Gä*Ü$Ü"Ü$ð	÷
ñ 
ô !Ð#EÄdÈ4ÐPQÉ7ÃmÀ_Ð!UÓVÐVä�d˜1‘gÔ9×:Ñ:Ü4°T¸!±W¸dÓCÐCÜ˜˜Q™Ô!5×6Ñ6Ü.¨t°A©w¸Ó=Ð=Ü˜˜Q™Ô!3×4Ñ4Ü,¨T°!©W°dÓ;Ð;Ü˜˜Q™Ô!5×6Ñ6Ü.¨t°A©w¸Ó=Ð=ä Ð!6Ó7Ð7r;   c                 ó   • g©NTr/   r{   s    r9   Úsupports_graph_breaksÚ-ContextWrappingVariable.supports_graph_breaks¥   ó   € Ør;   c                 ó   • gr…   r/   r{   s    r9   Úexit_on_graph_breakÚ+ContextWrappingVariable.exit_on_graph_break¨   rˆ   r;   c                 óN   • U R                   b  U R                  5         S U l         g g r`   )rX   r{   s    r9   r[   ÚContextWrappingVariable.cleanup«   s"   € Ø�?‰?Ñ&Ø�O‰OÔØ"ˆD�Oð 'r;   c                 ó\   • U R                   (       d  [        S5      eU R                  5         g )Nzmultiple exits?)rX   r€   r[   r{   s    r9   ra   Ú&ContextWrappingVariable.cleanup_assert°   s   € Ø��Ü Ð!2Ó3Ð3Ø�‰�r;   )rX   r*   r)   r`   ©rj   r#   r-   NrV   )r5   Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú_nonvar_fieldsr   r1   ÚstrrE   rP   r   rL   rc   rk   rv   rg   rh   ÚlistÚdictr‚   Úboolr†   rŠ   r[   ra   Ú__static_attributes__Ú__classcell__©r8   s   @r9   r&   r&   >   si  ø† àØØØð	ð
 
×	'Ñ	'ð€Nð @DñØ ðØ25¸±*ðØORðà	÷ð ð7Ø-ð7Ø6Eð7ØKNð7à	ô7ð7Ð3ð 7¸ô 7ð PTñ
1Ø-ð
1Ø3;¸CÀ¸HÑ3EÈÑ3Lð
1à	õ
1ð7Ø-ð7Ø6Eð7à	ô7ô
ô
Oð@˜Sô @ð<˜ô <ð8à'ð8ð �?Ñ#ð8ð �S˜/Ð)Ñ*ð	8ð
 
ô8ð< tô ð Tô ô#÷
ò r;   r&   c                   óž   ^ • \ rS rSrS\\   S\SS4U 4S jjrS\4S jrS\4S jr	S	S
S\
4S jrS	S
S\
S\
4S jrS\4S jrS\4S jrSrU =r$ )ÚGenericContextWrappingVariableé¶   r(   r,   r-   Nc                 óh   >• Uc  [        S5      e[        TU ]  " SUUR                  S.UD6  Xl        g )Nzcm_obj must not be None)ÚvalueÚ
value_typer/   )r€   r0   r1   r8   r(   )r7   r(   r,   r8   s      €r9   r1   Ú'GenericContextWrappingVariable.__init__¹   sC   ø€ Ø‰>Ü Ð!:Ó;Ð;Ü‰Òð 	
ØØ×'Ñ'ñ	
ð ò	
ð
 �r;   c                 ó.   • U R                   R                  $ r`   )r(   r‘   r{   s    r9   rg   Ú*GenericContextWrappingVariable.module_nameÃ   s   € Ø�{‰{×%Ñ%Ð%r;   c                 ó@   • [        U R                  5      R                  $ r`   )r4   r(   r5   r{   s    r9   rh   Ú&GenericContextWrappingVariable.fn_nameÆ   s   € Ü�D—K‘KÓ ×)Ñ)Ð)r;   r<   r$   c                 óÖ   • U R                   c  S O[        U R                   S5      n[        R                  " U R                  R
                  R                  U US9R                  U/ 0 5      $ )NÚ	__enter__©Úsource)rª   r   r   r   r(   r¨   Ú__func__r‚   )r7   r<   rª   s      r9   rP   Ú$GenericContextWrappingVariable.enterÉ   sY   € ØŸ™Ñ,‘´*¸T¿[¹[È+Ó2VˆÜ×+Ò+Ø�K‰K×!Ñ!×*Ñ*ØØñ
÷ ‰-˜˜B Ó
#ð		$r;   r^   c                 ó   • U R                   c  S O[        U R                   S5      n[        R                  " U R                  R
                  R                  U US9R                  U[        U5      0 5      nUR                  R                  5         U$ )NÚ__exit__r©   )rª   r   r   r   r(   r®   r«   r‚   r–   Úactive_generic_context_managersÚpop)r7   r<   r^   rª   Úxs        r9   rc   Ú#GenericContextWrappingVariable.exitÑ   sx   € ð Ÿ™Ñ,‘´*¸T¿[¹[È*Ó2UˆÜ×(Ò(Ø�K‰K× Ñ ×)Ñ)ØØñ
÷ ‰-˜œD ›J¨Ó
+ð	 	
ð
 	×*Ñ*×.Ñ.Ô0Øˆr;   c                 ó   • g©NFr/   r{   s    r9   r†   Ú4GenericContextWrappingVariable.supports_graph_breaksÝ   s   € Ør;   c                 ó   • gr…   r/   r{   s    r9   rŠ   Ú2GenericContextWrappingVariable.exit_on_graph_breakà   rˆ   r;   )r(   )r5   r‘   r’   r“   r   r   r1   r•   rg   rh   r   rP   rc   r˜   r†   rŠ   r™   rš   r›   s   @r9   r�   r�   ¶   s‰   ø† ðÐ5°cÑ:ð Àcð Èd÷ ð&˜Sô &ð*˜ô *ð$Ð3ð $¸ô $ð
Ø-ð
Ø6Eð
à	ô
ð tô ð T÷ ò r;   r�   c                   ól   ^ • \ rS rSrS\R
                  R                  S\SS4U 4S jjrS r	S r
S	rU =r$ )
ÚRecordFunctionVariableéä   r(   r,   r-   Nc                 óz  >• [         TU ]  " U40 UD6  [        R                  R	                  UR
                  5      /n0 nUR                  (       a,  [        R                  R	                  UR                  5      US'   [        R                  R                  R	                  [        U R                  5      X4S9U l        g )Nr^   )ÚfuncÚrecord_argsÚrecord_kwargs)r0   r1   r   rM   rN   Únamer^   ÚtorchÚ%ProfilerRecordFunctionContextVariabler4   r(   Ú	record_fn)r7   r(   r,   r^   r¾   r8   s        €r9   r1   ÚRecordFunctionVariable.__init__å   s�   ø€ Ü‰Ò˜Ñ* 6Ò*Ü×*Ñ*×1Ñ1°&·+±+Ó>Ð?ˆØˆØ�;�;Ü$-×$>Ñ$>×$EÑ$EÀfÇkÁkÓ$RˆM˜&Ñ!Ü"Ÿ™×NÑN×UÑUÜ�d—k‘kÓ"°ð Vð 
ˆ�r;   c                 ón   • UR                   R                  U 5        U R                  R                  U5      $ r`   )r¯   ÚappendrÂ   rP   rO   s     r9   rP   ÚRecordFunctionVariable.enterï   s+   € Ø
×*Ñ*×1Ñ1°$Ô7Ø�~‰~×#Ñ# BÓ'Ð'r;   c                 óp   • UR                   R                  5         U R                  R                  " U/UQ76 $ r`   )r¯   r°   rÂ   rc   rb   s      r9   rc   ÚRecordFunctionVariable.exitó   s.   € Ø
×*Ñ*×.Ñ.Ô0Ø�~‰~×"Ò" 2Ð-¨Ò-Ð-r;   )rÂ   )r5   r‘   r’   r“   rÀ   ÚprofilerÚrecord_functionr   r1   rP   rc   r™   rš   r›   s   @r9   r¹   r¹   ä   s7   ø† ð
˜uŸ~™~×=Ñ=ð 
Èð 
ÐQU÷ 
ò(÷.ð .r;   r¹   c                   ód   • \ rS rSrS\S\SS4S jrSSS\4S	 jrSSS
\S\4S jr	S\
S\4S jrSrg)Ú$RepararametrizeModuleContextVariableéø   Úctx_manager_vtÚmodr-   Nc                 ó   • Xl         X l        g r`   )Úcm_vtrÏ   )r7   rÎ   rÏ   s      r9   r1   Ú-RepararametrizeModuleContextVariable.__init__ù   s   € Ø#Œ
Ø�r;   r<   r$   c                 óL  • [         R                  R                  R                  R	                  U5         U R
                  R                  US5      R                  5       U l        U R
                  R                  US5      R                  5       U l	        UR                  R                  R                  U R                  5        UR                  R                  R                  U R                  5        U R                  R                  U5      sS S S 5        $ ! , (       d  f       g = f)NÚ_parametersÚ_buffers)rÀ   Ú_dynamor   Úhigher_order_opsÚ dynamo_allow_side_effects_in_hoprÏ   Útp_getattro_implÚrealizeÚold_parameters_varÚold_buffer_varrY   Úside_effectsÚignore_mutations_onrÑ   rP   rO   s     r9   rP   Ú*RepararametrizeModuleContextVariable.enterþ   sÏ   € ô �]‰]×$Ñ$×5Ñ5×VÑVØõ
ð '+§h¡h×&?Ñ&?Ø�Mó'ç‰g‹ið Ô#ð #'§(¡(×";Ñ";¸BÀ
Ó"K×"SÑ"SÓ"UˆDÔØ�I‰I×"Ñ"×6Ñ6°t×7NÑ7NÔOØ�I‰I×"Ñ"×6Ñ6°t×7JÑ7JÔKØ—:‘:×#Ñ# BÓ'÷
÷ 
÷ 
ús   ´CDÄ
D#r^   c                 ó˜  • [         R                  R                  R                  R	                  U5         U R
                  R                  " U/UQ76 nUR                  R                  R                  U R                  5        UR                  R                  R                  U R                  5        UsS S S 5        $ ! , (       d  f       g = fr`   )rÀ   rÖ   r   r×   rØ   rÑ   rc   rY   rÝ   Ústop_ignoring_mutations_onrÜ   rÛ   )r7   r<   r^   r±   s       r9   rc   Ú)RepararametrizeModuleContextVariable.exit  s�   € ô
 �]‰]×$Ñ$×5Ñ5×VÑVØõ
ð —
‘
—’ Ð* TÒ*ˆAØ�I‰I×"Ñ"×=Ñ=¸d×>QÑ>QÔRØ�I‰I×"Ñ"×=Ñ=¸d×>UÑ>UÔVØ÷
÷ 
÷ 
ús   ´A=B;Â;
C	r¿   c                 ó.   • [        U R                  U5      $ r`   )ÚgetattrrÑ   )r7   r¿   s     r9   Ú__getattr__Ú0RepararametrizeModuleContextVariable.__getattr__  s   € ä�t—z‘z 4Ó(Ð(r;   )rÑ   rÏ   rÜ   rÛ   )r5   r‘   r’   r“   r&   r   r1   r   rP   rc   r•   rå   r™   r/   r;   r9   rÌ   rÌ   ø   sa   † ðÐ'>ð ÀSð ÈTô ð
(Ð3ð (¸ô (ðØ-ðØ6Eðà	ôð) ð )¨÷ )r;   rÌ   c            	       ód   • \ rS rSrSr\SSS\S\SS 4S j5       rSSS\4S	 jr	SSS
\S\4S jr
Srg)Ú)GradInplaceRequiresGradCtxManagerVariablei  z#represents torch grad requires gradr<   r$   r)   r,   r-   c                 ó   • [        SUS S.UD6$ ©N©r)   r*   r/   )rè   ©r<   r)   r,   s      r9   rN   Ú0GradInplaceRequiresGradCtxManagerVariable.create"  s&   € ô 9ð 
Ø'Øñ
ð ñ
ð 	
r;   c                 óÂ  ^ • T R                   u  n[        R                  R                  R	                  5       T l        [        R                  R                  R                  U5        T R                  UU 4S j5        UR                  R                  S[        R                  R                  R                  U40 5      T l
        [        R                  R                  S 5      $ )Nc                  ój   >• [         R                  R                  R                  T R                  5      $ r`   )rÀ   Ú_CÚ
_functorchÚ!set_inplace_requires_grad_allowedÚ
prev_stater{   s   €r9   ro   ÚAGradInplaceRequiresGradCtxManagerVariable.enter.<locals>.<lambda>2  s!   ø€ ”E—H‘H×'Ñ'×IÑIØ—‘ôr;   r‚   )r)   rÀ   rð   rñ   Ú!get_inplace_requires_grad_allowedró   rò   rL   rY   Úcreate_nodeÚproxyr   rM   rN   )r7   r<   Úenableds   `  r9   rP   Ú/GradInplaceRequiresGradCtxManagerVariable.enter,  s§   ø€ Ø×&Ñ&‰	ˆÜŸ(™(×-Ñ-×OÑOÓQˆŒÜ�‰×Ñ×=Ñ=¸gÔFØ×ÑØôô	
ð —Y‘Y×*Ñ*ØÜ�H‰H×Ñ×AÑAØˆJØó	
ˆŒ
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   r^   c                 óö   • U R                  5         UR                  R                  S[        R                  R
                  R                  U R                  40 5        [        R                  R                  S 5      $ ©Nr‚   )r[   rY   rö   rÀ   rð   rñ   rò   ró   r   rM   rN   rb   s      r9   rc   Ú.GradInplaceRequiresGradCtxManagerVariable.exit>  s[   € ð 	�‰ŒØ
�	‰	×ÑØÜ�H‰H×Ñ×AÑAØ�_‰_ÐØô		
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   ©ró   r÷   N©r5   r‘   r’   r“   Ú__doc__Ústaticmethodr   rN   r   rP   rc   r™   r/   r;   r9   rè   rè     sh   † Ù-àð
Ø'ð
Ø8;ð
ØGJð
à	4ó
ó ð
ð7Ð3ð 7¸ô 7ð$
7Ø-ð
7Ø6Eð
7à	÷
7r;   rè   c            	       ód   • \ rS rSrSr\SSS\S\SS 4S j5       rSSS\4S	 jr	SSS
\S\4S jr
Srg)Ú0TemporarilyPopInterpreterStackCtxManagerVariableiK  zJrepresents torch._functorch.pyfunction.temporarily_pop_interpreter_stack()r<   r$   r)   r,   r-   c                 ó   • [        SUS S.UD6$ rê   )r  rì   s      r9   rN   Ú7TemporarilyPopInterpreterStackCtxManagerVariable.createN  s'   € ô @ð 
Ø'Øñ
ð ñ
ð 	
r;   c                 óR  ^ • [         R                  R                  R                  5       T l        T R                  UU 4S j5        UR                  R                  S[         R                  R                  R                  S0 5      T l        [        R                  R                  S 5      $ )Nc                  ój   >• [         R                  R                  R                  T R                  5      $ r`   )rÀ   rð   rñ   Úpush_dynamic_layer_stackÚsavedr{   s   €r9   ro   ÚHTemporarilyPopInterpreterStackCtxManagerVariable.enter.<locals>.<lambda>\  s   ø€ ”E—H‘H×'Ñ'×@Ñ@ÀÇÁÔLr;   r‚   r/   )rÀ   rð   rñ   Úpop_dynamic_layer_stackr  rL   rY   rö   r÷   r   rM   rN   rO   s   ` r9   rP   Ú6TemporarilyPopInterpreterStackCtxManagerVariable.enterX  s~   ø€ Ü—X‘X×(Ñ(×@Ñ@ÓBˆŒ
Ø×ÑØÜLô	
ð —Y‘Y×*Ñ*ØÜ�H‰H×Ñ×7Ñ7ØØó	
ˆŒ
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   r^   c                 óö   • U R                  5         UR                  R                  S[        R                  R
                  R                  U R                  40 5        [        R                  R                  S 5      $ rû   )r[   rY   rö   rÀ   rð   rñ   r  r÷   r   rM   rN   rb   s      r9   rc   Ú5TemporarilyPopInterpreterStackCtxManagerVariable.exitf  sZ   € ð 	�‰ŒØ
�	‰	×ÑØÜ�H‰H×Ñ×8Ñ8Ø�Z‰ZˆMØô		
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   )r÷   r  Nrþ   r/   r;   r9   r  r  K  sh   † ÙTàð
Ø'ð
Ø8;ð
ØGJð
à	;ó
ó ð
ð7Ð3ð 7¸ô 7ð
7Ø-ð
7Ø6Eð
7à	÷
7r;   r  c                   ó�   • \ rS rSrSr\" \" 5       \R                  5      r	\
SSS\SS 4S j5       rSSS\4S jrSSS	\S\4S
 jrSrg)Ú%JvpIncrementNestingCtxManagerVariableis  z5represents torch.func.jvp increment/decrement nestingr<   r$   r,   r-   c                 ó"   • [        SS S S.UD6nU$ rê   )r  ©r<   r,   Úvars      r9   rN   Ú,JvpIncrementNestingCtxManagerVariable.create}  s*   € ô 4ð 
ØØñ
ð ñ
ˆð
 ˆ
r;   c                 ój  • [        U R                  5        [        R                  R                  R                  5       nU R                  US 5        UR                  R                  S[        R                  R                  R                  S0 5      U l        [        R                  R                  X5      $ )Nc                  óR   • [         R                  R                  R                  5       $ r`   )rÀ   rñ   Úeager_transformsÚexit_jvp_nestingr/   r;   r9   ro   Ú=JvpIncrementNestingCtxManagerVariable.enter.<locals>.<lambda>Œ  s   € œ×(Ñ(×9Ñ9×JÑJÔLr;   r‚   r/   )r   Ú_guards_singletonrÀ   rñ   r  Úenter_jvp_nestingrL   rY   rö   ÚpredispatchÚ_jvp_increment_nestingr÷   r   r   Úbuild)r7   r<   Ú	jvp_levels      r9   rP   Ú+JvpIncrementNestingCtxManagerVariable.enterˆ  s�   € Ü�d×,Ñ,Ô-Ü×$Ñ$×5Ñ5×GÑGÓIˆ	Ø×ÑØÑLô	
ð —Y‘Y×*Ñ*ØÜ×Ñ×(Ñ(×?Ñ?ØØó	
ˆŒ
ô ×(Ñ(×.Ñ.¨rÓ=Ð=r;   r^   c                 óà   • U R                  5         UR                  R                  S[        R                  R
                  R                  S0 5        [        R                  R                  S 5      $ ©Nr‚   r/   )
r[   rY   rö   rÀ   rñ   r  Ú_jvp_decrement_nestingr   rM   rN   rb   s      r9   rc   Ú*JvpIncrementNestingCtxManagerVariable.exit–  sU   € ð 	�‰ŒØ
�	‰	×ÑØœU×-Ñ-×9Ñ9×PÑPÐRTÐVXô	
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   ©r÷   N©r5   r‘   r’   r“   rÿ   r   r   r   ÚFUNCTORCH_STACK_MATCHr  r   r   rN   r   rP   rc   r™   r/   r;   r9   r  r  s  sy   † Ù?ñ Ñ/Ó1°<×3UÑ3UÓVÐàðØ'ðØ36ðà	0óó ðð>Ð3ð >¸ô >ð7Ø-ð7Ø6Eð7à	÷7r;   r  c            	       ór   • \ rS rSrSr\SSS\S\SS 4S j5       rSSS\4S	 jr	SSS
\S\4S jr
S\4S jrSrg)ÚSetFwdGradEnabledContextManageri   zWrepresents torch.autograd.forward_ad._set_fwd_grad_enabled() to enable/disable fwd gradr<   r$   r)   r,   r-   c                 ó   • [        SUS S.UD6$ rê   )r(  rì   s      r9   rN   Ú&SetFwdGradEnabledContextManager.create£  s&   € ô /ð 
Ø'Øñ
ð ñ
ð 	
r;   c                 ó†  ^ • T R                   u  n[        R                  R                  5       T l        [        R                  R                  U5        T R                  UU 4S j5        UR                  R                  S[        R                  R
                  U40 5      T l	        [        R                  R                  S 5      $ )Nc                  óV   >• [         R                  R                  T R                  5      $ r`   )rÀ   rð   Ú_set_fwd_grad_enabledró   r{   s   €r9   ro   Ú7SetFwdGradEnabledContextManager.enter.<locals>.<lambda>³  s   ø€ ”E—H‘H×2Ñ2°4·?±?ÔCr;   r‚   )r)   rÀ   rð   Ú_is_fwd_grad_enabledró   r-  rL   rY   rö   r÷   r   rM   rN   )r7   r<   Úmodes   `  r9   rP   Ú%SetFwdGradEnabledContextManager.enter­  s“   ø€ Ø×#Ñ#‰ˆÜŸ(™(×7Ñ7Ó9ˆŒÜ�‰×&Ñ& tÔ,Ø×ÑØÜCô	
ð —Y‘Y×*Ñ*ØÜ�H‰H×*Ñ*ØˆGØó	
ˆŒ
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   r^   c                 óâ   • U R                  5         UR                  R                  S[        R                  R
                  U R                  40 5        [        R                  R                  S 5      $ rû   )
r[   rY   rö   rÀ   rð   r-  ró   r   rM   rN   rb   s      r9   rc   Ú$SetFwdGradEnabledContextManager.exit½  sU   € ð 	�‰ŒØ
�	‰	×ÑØÜ�H‰H×*Ñ*Ø�_‰_ÐØô		
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   c                 óJ   • [         R                  R                  R                  $ r`   )rÀ   ÚautogradÚ
forward_adr-  r{   s    r9   Úpython_typeÚ+SetFwdGradEnabledContextManager.python_typeÉ  s   € Ü�~‰~×(Ñ(×>Ñ>Ð>r;   rý   N)r5   r‘   r’   r“   rÿ   r   r   rN   r   rP   rc   r4   r7  r™   r/   r;   r9   r(  r(     st   † Ùaàð
Ø'ð
Ø8;ð
ØGJð
à	*ó
ó ð
ð7Ð3ð 7¸ô 7ð 
7Ø-ð
7Ø6Eð
7à	ô
7ð?˜T÷ ?r;   r(  c                   óž   • \ rS rSrSr\" \" 5       \R                  5      r	\
SSS\SS 4S j5       rSSS\4S jrSSS	\S\4S
 jrS\4S jrSrg)ÚDualLevelContextManageriÍ  z;Represents torch.autograd.forward_ad.dual_level ctx managerr<   r$   r,   r-   c                 ó   • [        SS S S.UD6$ rê   )r:  )r<   r,   s     r9   rN   ÚDualLevelContextManager.createÒ  s&   € ô 'ð 
ØØñ
ð ñ
ð 	
r;   c                 ó’  ^ • [        T R                  5        [        R                  R                  R                  5       T l        T R                  UU 4S j5        UR                  R                  S[        R                  R                  R                  S0 5      T l        [        R                  R!                  UT R                  5      $ )Nc                  óf   >• [         R                  R                  R                  T R                  S9$ )N)Úlevel)rÀ   r5  r6  Úexit_dual_levelÚ	new_levelr{   s   €r9   ro   Ú/DualLevelContextManager.enter.<locals>.<lambda>à  s!   ø€ œŸ™×1Ñ1×AÑAÈÏÉÐAÑWr;   r‚   r/   )r   r  rÀ   r5  r6  Úenter_dual_levelrA  rL   rY   rö   rñ   r  Ú_enter_dual_levelr÷   r   r   r  rO   s   ` r9   rP   ÚDualLevelContextManager.enterÜ  s”   ø€ Ü�d×,Ñ,Ô-ÜŸ™×2Ñ2×CÑCÓEˆŒØ×ÑØÔWô	
ð —Y‘Y×*Ñ*ØÜ×Ñ×(Ñ(×:Ñ:ØØó	
ˆŒ
ô ×(Ñ(×.Ñ.¨r°4·>±>ÓBÐBr;   r^   c                 óø   • U R                  5         UR                  R                  S[        R                  R
                  R                  SSU R                  05        [        R                  R                  S 5      $ )Nr‚   r/   r?  )r[   rY   rö   rÀ   rñ   r  Ú_exit_dual_levelrA  r   rM   rN   rb   s      r9   rc   ÚDualLevelContextManager.exitê  s_   € ð 	�‰ŒØ
�	‰	×ÑØÜ×Ñ×(Ñ(×9Ñ9ØØ�d—n‘nÐ%ô		
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   c                 óJ   • [         R                  R                  R                  $ r`   )rÀ   r5  r6  Ú
dual_levelr{   s    r9   r7  Ú#DualLevelContextManager.python_typeö  s   € Ü�~‰~×(Ñ(×3Ñ3Ð3r;   )rA  r÷   N)r5   r‘   r’   r“   rÿ   r   r   r   Ú
DUAL_LEVELr  r   r   rN   r   rP   rc   r4   r7  r™   r/   r;   r9   r:  r:  Í  s†   † ÙEáÑ/Ó1°<×3JÑ3JÓKÐàð
Ø'ð
Ø36ð
à	"ó
ó ð
ðCÐ3ð C¸ô Cð
7Ø-ð
7Ø6Eð
7à	ô
7ð4˜T÷ 4r;   r:  c                   ó�   • \ rS rSrSr\" \" 5       \R                  5      r	\
SSS\SS 4S j5       rSSS\4S jrSSS	\S\4S
 jrSrg)Ú&GradIncrementNestingCtxManagerVariableiú  z6represents torch.func.grad increment/decrement nestingr<   r$   r,   r-   c                 ó"   • [        SS S S.UD6nU$ rê   )rN  r  s      r9   rN   Ú-GradIncrementNestingCtxManagerVariable.create  s*   € ô 5ð 
ØØñ
ð ñ
ˆð
 ˆ
r;   c                 ój  • [        U R                  5        [        R                  R                  R                  5       nU R                  US 5        UR                  R                  S[        R                  R                  R
                  S0 5      U l	        [        R                  R                  X5      $ )Nc                  óR   • [         R                  R                  R                  5       $ r`   )rÀ   rð   rñ   Ú_grad_decrement_nestingr/   r;   r9   ro   Ú>GradIncrementNestingCtxManagerVariable.enter.<locals>.<lambda>  ó   € ¬%¯(©(×*=Ñ*=×*UÑ*UÔ*Wr;   r‚   r/   )r   r  rÀ   rð   rñ   Ú_grad_increment_nestingrL   rY   rö   r÷   r   r   r  )r7   r<   Ú
grad_levels      r9   rP   Ú,GradIncrementNestingCtxManagerVariable.enter  s„   € Ü�d×,Ñ,Ô-Ü—X‘X×(Ñ(×@Ñ@ÓBˆ
Ø×Ñ˜bÑ"WÔXØ—Y‘Y×*Ñ*ØÜ�H‰H×Ñ×7Ñ7ØØó	
ˆŒ
ô ×(Ñ(×.Ñ.¨rÓ>Ð>r;   r^   c                 óà   • U R                  5         UR                  R                  S[        R                  R
                  R                  S0 5        [        R                  R                  S 5      $ r!  )
r[   rY   rö   rÀ   rð   rñ   rS  r   rM   rN   rb   s      r9   rc   Ú+GradIncrementNestingCtxManagerVariable.exit  sQ   € ð 	�‰ŒØ
�	‰	×ÑØœUŸX™X×0Ñ0×HÑHÈ"Èbô	
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   r$  Nr%  r/   r;   r9   rN  rN  ú  sy   † Ù@ñ Ñ/Ó1°<×3UÑ3UÓVÐàðØ'ðØ36ðà	1óó ðð
?Ð3ð 
?¸ô 
?ð7Ø-ð7Ø6Eð7à	÷7r;   rN  c                   ó¶   ^ • \ rS rSrSr\SSS\\\4   SS 4S j5       r	  SS\\\4   S	\
S-  S
\
S-  S\
SS4
U 4S jjjrSSS\4S jrSS jrS\4S jrSrU =r$ )ÚCatchWarningsCtxManagerVariablei%  z'Delay a call to warnings.catch_warningsr<   r$   Úcatch_warnings_argsr-   c                 ó   • [        US S S9$ )N)r]  r)   r*   )r\  )r<   r]  s     r9   rN   Ú&CatchWarningsCtxManagerVariable.create(  s   € ô /Ø 3ØØñ
ð 	
r;   Nr)   r*   r,   c                 ó|   >• [        U[        5      (       d  [        SU 35      e[        TU ]  " SX#S.UD6  Xl        g )Nz(catch_warnings_args must be a dict, got rë   r/   )r2   r—   r€   r0   r1   r]  )r7   r]  r)   r*   r,   r8   s        €r9   r1   Ú(CatchWarningsCtxManagerVariable.__init__2  sS   ø€ ô Ð-¬t×4Ñ4Ü Ø:Ð;NÐ:OÐPóð ô 	‰Òð 	
Ø'ñ	
ØJPò	
ð $7Õ r;   c                 ó<  ^• U R                   R                  5        VVs0 s H  u  p#X#R                  5       _M     nnn[        R                  " S0 UD6mU R                  UU4S j5        [        R                  R                  UTR                  5       5      $ s  snnf )Nc                  ó*   >• T R                  S S S 5      $ r`   )r®   )Úctx_vals   €r9   ro   Ú7CatchWarningsCtxManagerVariable.enter.<locals>.<lambda>G  s   ø€ ¨'×*:Ñ*:¸4ÀÀtÔ*Lr;   r/   )
r]  ÚitemsÚas_python_constantÚwarningsÚcatch_warningsrL   r   r   r  r¨   )r7   r<   ÚkÚvr,   rd  s        @r9   rP   Ú%CatchWarningsCtxManagerVariable.enterB  sŠ   ø€ à26×2JÑ2J×2PÑ2PÔ2Rô
Ú2R©$¨!ˆA×#Ñ#Ó%Ò%Ñ2Rð 	ñ 
ô ×)Ò)Ñ3¨FÑ3ˆØ×Ñ˜bÔ"LÔMÜ×(Ñ(×.Ñ.¨r°7×3DÑ3DÓ3FÓGÐGùó
s   ŸBc                 ó  ^• TR                  U4S j5        TR                  U R                  R                  5       5        [	        U R                  R                  5       5      nTR                  TR                  [        U5      US5      5        g )Nc                  ó(   >• T R                  SS5      $ )Nrh  ri  )Úload_import_from)rj   s   €r9   ro   Ú=CatchWarningsCtxManagerVariable.reconstruct.<locals>.<lambda>L  s   ø€ �G×,Ñ,¨ZÐ9IÔJr;   F)	rq   Úforeachr]  ÚvaluesÚtupleÚkeysrr   Úcreate_call_function_kwrt   )r7   rj   rt  s    ` r9   rv   Ú+CatchWarningsCtxManagerVariable.reconstructJ  sk   ø€ Ø×ÑÜJô	
ð 	�‰˜×0Ñ0×7Ñ7Ó9Ô:Ü�T×-Ñ-×2Ñ2Ó4Ó5ˆØ×Ñ˜g×=Ñ=¼cÀ$»iÈÈuÓUÕVr;   c                 ó"   • [         R                  $ r`   )rh  ri  r{   s    r9   r7  Ú+CatchWarningsCtxManagerVariable.python_typeR  s   € Ü×&Ñ&Ð&r;   )r]  ©NNr�   )r5   r‘   r’   r“   rÿ   r   r—   r•   r   rN   r   r1   rP   rv   r4   r7  r™   rš   r›   s   @r9   r\  r\  %  s¼   ø† Ù1àð
Ø'ð
Ø>BÀ3ÈÐCWÑ>Xð
à	*ó
ó ð
ð %)Ø%)ñ	7à! # Ð"6Ñ7ð7ð ˜T‘zð7ð ˜d™
ð	7ð
 ð7ð 
÷7ð 7ð HÐ3ð H¸ô HôWð'˜T÷ 'ò 'r;   r\  c            	       óš   • \ rS rSrSr\" \" 5       \R                  5      r	\
SSS\\   S\SS 4S j5       rSSS\4S	 jrSSS
\S\4S jrSrg)Ú&VmapIncrementNestingCtxManagerVariableiV  z1represents torch VMap increment/decrement nestingr<   r$   r)   r,   r-   c                 ó"   • [        SUS S.UD6nU$ rê   )r{  )r<   r)   r,   r  s       r9   rN   Ú-VmapIncrementNestingCtxManagerVariable.create`  s*   € ô 5ð 
Ø'Øñ
ð ñ
ˆð
 ˆ
r;   c                 ó@  • [        U R                  5        U R                  u  p#[        U[        R
                  5      (       a  UR                  nOUR                  5       nUR                  5       n[        R                  R                  R                  XC5      nU R                  US 5        UR                  R                  S[        R                  R                  R                  UR!                  5       U40 5      U l        [        R$                  R'                  X5      $ )Nc                  óR   • [         R                  R                  R                  5       $ r`   )rÀ   rð   rñ   Ú_vmap_decrement_nestingr/   r;   r9   ro   Ú>VmapIncrementNestingCtxManagerVariable.enter.<locals>.<lambda>x  rU  r;   r‚   )r   r  r)   r2   r   ÚSymNodeVariableÚsym_numrg  rÀ   rð   rñ   Ú_vmap_increment_nestingrL   rY   Úcreate_proxyr  Úas_proxyr÷   r   r  )r7   r<   Ú
batch_sizeÚ
randomnessÚbatch_size_valueÚ
vmap_levels         r9   rP   Ú,VmapIncrementNestingCtxManagerVariable.enterm  så   € Ü�d×,Ñ,Ô-Ø!%×!3Ñ!3Ñˆ
Ü�j¤)×";Ñ";×<Ñ<Ø)×1Ñ1Ñà)×<Ñ<Ó>ÐØ×2Ñ2Ó4ˆ
Ü—X‘X×(Ñ(×@Ñ@Øó
ˆ
ð 	×Ñ˜bÑ"WÔXØ—Y‘Y×+Ñ+ØÜ×Ñ×(Ñ(×@Ñ@Ø× Ñ Ó" JÐ/Øó	
ˆŒ
ô ×(Ñ(×.Ñ.¨rÓ>Ð>r;   r^   c                 óà   • U R                  5         UR                  R                  S[        R                  R
                  R                  S0 5        [        R                  R                  S 5      $ r!  )
r[   rY   rö   rÀ   rñ   r  r€  r   rM   rN   rb   s      r9   rc   Ú+VmapIncrementNestingCtxManagerVariable.exit�  sV   € ð 	�‰ŒØ
�	‰	×ÑØÜ×Ñ×(Ñ(×@Ñ@ØØô		
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   r$  N)r5   r‘   r’   r“   rÿ   r   r   r   r&  r  r   r–   r   r   rN   rP   rc   r™   r/   r;   r9   r{  r{  V  sŠ   † Ù;ñ Ñ/Ó1°<×3UÑ3UÓVÐàð
Ø'ð
à˜OÑ,ð
ð ð
ð 
2ó	
ó ð
ð?Ð3ð ?¸ô ?ð(
7Ø-ð
7Ø6Eð
7à	÷
7r;   r{  c                   óN  ^ • \ rS rSrSr\" \" 5       \R                  5      r	\
 SSSS\S\S\SS 4
S	 jj5       r  SS\S\\   S
-  S\S\SS
4
U 4S jjjrSSS\4S jrSSS\S\4S jrSSS\\   S\\\4   S\4U 4S jjrSSS\SS
4S jrS\4S jrS\4S jrS\4S jrSrU =r$ )ÚGradModeVariableiŽ  z6represents torch.{no_grad,enable_grad,set_grad_mode}()r<   r$   Útarget_valueÚinitializedr,   r-   c                 ó�   • [        SU/[        R                  " 5       /S.UD6nU(       a  UR                  XR                  5        U$ rê   )r�  rÀ   Úis_grad_enabledrJ   r)   )r<   r�  r‘  r,   r  s        r9   rN   ÚGradModeVariable.create“  sM   € ô ð 
Ø'˜.Ü!×1Ò1Ó3Ð4ñ
ð ñ
ˆö
 Ø�N‰N˜2×0Ñ0Ô1Øˆ
r;   Nr)   r*   c                 óT   >• [         TU ]  " SXS.UD6  [        U R                  5        g rê   )r0   r1   r   r  )r7   r)   r*   r‘  r,   r8   s        €r9   r1   ÚGradModeVariable.__init__£  s2   ø€ ô 	‰Òð 	
Ø'ñ	
ØJPò	
ô 	�d×,Ñ,Õ-r;   c                 óv   • U R                  XR                  5        [        R                  R	                  S 5      $ r`   ©rJ   r)   r   rM   rN   rO   s     r9   rP   ÚGradModeVariable.enter¯  ó+   € Ø�‰˜×.Ñ.Ô/Ü×)Ñ)×0Ñ0°Ó6Ð6r;   r^   c                 óv   • U R                  XR                  5        [        R                  R	                  S 5      $ r`   ©rJ   r*   r   rM   rN   rb   s      r9   rc   ÚGradModeVariable.exit³  ó-   € ð 	�‰˜×/Ñ/Ô0Ü×)Ñ)×0Ñ0°Ó6Ð6r;   c                 óZ   >• U R                  XR                  5        [        TU ]  XU5      $ r`   ©rJ   r*   r0   r‚   ©r7   r<   r^   r,   r8   s       €r9   r‚   ÚGradModeVariable.call_function¹  s)   ø€ ð 	�‰˜×/Ñ/Ô0Ü‰wÑ$ R¨vÓ6Ð6r;   rr  c                 ó:  • [        U5      S:w  a  [        S[        U5       35      eUS   n[        R                  " 5       U:w  aW  UR                  R                  S[        R                  R                  U40 5        [        R                  R                  U5        g g )Nr   úexpected 1 value, got r   r‚   )rt   r€   rÀ   r“  rY   rö   rð   Ú_set_grad_enabled©r7   r<   rr  r    s       r9   rJ   ÚGradModeVariable._call_funcÂ  s   € Üˆv‹;˜!ÓÜ Ð#9¼#¸f»+¸Ð!GÓHÐHØ�q‘	ˆä× Ò Ó" eÓ+Ø�I‰I×!Ñ!Ø¤§¡×!;Ñ!;¸e¸XÀrôô �H‰H×&Ñ& uÕ-ð	 ,r;   c                 ó   • g©NrÀ   r/   r{   s    r9   rg   ÚGradModeVariable.module_nameÍ  ó   € Ør;   c                 ó   • g)NÚset_grad_enabledr/   r{   s    r9   rh   ÚGradModeVariable.fn_nameÐ  s   € Ø!r;   c                 ó"   • [         R                  $ r`   )rÀ   r­  r{   s    r9   r7  ÚGradModeVariable.python_typeÓ  s   € Ü×%Ñ%Ð%r;   r/   ©Fr…   )r5   r‘   r’   r“   rÿ   r   r   r   Ú	GRAD_MODEr  r   r   r˜   rN   r   r1   r   rP   rc   r–   r—   r•   r‚   rJ   rg   rh   r4   r7  r™   rš   r›   s   @r9   r�  r�  Ž  s\  ø† Ù@áÑ/Ó1°<×3IÑ3IÓJÐàð "ñØ'ðàðð ðð ð	ð
 
ôó ðð$ 15Ø ñ	
.àð
.ð ! ™¨Ñ-ð
.ð ð	
.ð
 ð
.ð 
÷
.ð 
.ð7Ð3ð 7¸ô 7ð7Ø-ð7Ø6Eð7à	ô7ð7à'ð7ð �?Ñ#ð7ð �S˜/Ð)Ñ*ð	7ð
 
÷7ð	.Ð8ð 	.À#ð 	.È$ô 	.ð˜Sô ð"˜ô "ð&˜T÷ &ò &r;   r�  c            	       ó¾   ^ • \ rS rSr\SSS\S\SS 4S j5       r SS	\S
\S-  S\SS4U 4S jjjrSSS\	S\	4S jr
SSS\	4S jrS\4S jrS\4S jrS\4S jrSrU =r$ )ÚInferenceModeVariablei×  r<   r$   r�  r,   r-   c                 óJ   • [        U/4S[        R                  " 5       0UD6nU$ )Nr*   )r´  rÀ   Úis_inference_mode_enabled©r<   r�  r,   r  s       r9   rN   ÚInferenceModeVariable.createØ  s3   € ô $ØˆNñ
Ü+0×+JÒ+JÓ+Lð
ØPVñ
ˆð ˆ
r;   Nr)   r*   c                 óZ   >• Uc  [         R                  " 5       n[        TU ]  " SXS.UD6  g rê   )rÀ   r¶  r0   r1   r6   s       €r9   r1   ÚInferenceModeVariable.__init__á  s6   ø€ ð Ñ!ä"×<Ò<Ó>ˆNÜ‰Òð 	
Ø'ñ	
ØJPó	
r;   r^   c                 óö   • U R                  5         UR                  R                  S[        R                  R
                  R                  U R                  40 5        [        R                  R                  S 5      $ rû   )ra   rY   rö   rÀ   r5  Ú	grad_modeÚ_exit_inference_moder÷   r   rM   rN   rb   s      r9   rc   ÚInferenceModeVariable.exitî  s]   € ð 	×ÑÔØ
�	‰	×ÑØÜ�N‰N×$Ñ$×9Ñ9Ø�Z‰ZˆMØô		
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   c                 ón  ^^^• Sm[         R                  R                  R                  (       aK  U R                  S   (       a7  Sm[         R
                  " 5       m[         R                  R                  S5        O1[         R                  R                  R                  " U R                  6 mSUUU4S jjnU R                  X5        UR                  R                  S[         R                  R                  R                  / U R                  Q70 5      U l        [        R                   R#                  S 5      $ )NFr   Tc                  ó¦   >• T(       a   [         R                  R                  T5        g [         R                  R                  R                  T 5        g r`   )rÀ   rð   r¥  r5  r¼  r½  )ÚctxÚ disabled_inference_mode_forciblyÚpriors   €€€r9   Úcleanup_hookÚ1InferenceModeVariable.enter.<locals>.cleanup_hook	  s0   ø€ Þ/Ü—‘×*Ñ*¨5Õ1ä—‘×(Ñ(×=Ñ=¸cÕBr;   r‚   rV   )rÀ   rÖ   r
   Ú"fake_tensor_disable_inference_moder)   r“  rð   r¥  r5  r¼  Ú_enter_inference_moderL   rY   rö   r÷   r   rM   rN   )r7   r<   rÄ  rÁ  rÂ  rÃ  s      @@@r9   rP   ÚInferenceModeVariable.enterú  sä   ú€ Ø+0Ð(ä�M‰M× Ñ ×C×CØ×"Ñ" 1×%ð
 04Ð,Ü×)Ò)Ó+ˆEÜ�H‰H×&Ñ& uÕ-ä—.‘.×*Ñ*×@Ò@À$×BTÑBTÐUˆC÷	Cñ 	Cð 	×Ñ˜bÔ/Ø—Y‘Y×*Ñ*ØÜ�N‰N×$Ñ$×:Ñ:Ø"ˆd× Ñ Ñ"Øó	
ˆŒ
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   c                 ó   • gr©  r/   r{   s    r9   rg   Ú!InferenceModeVariable.module_name  r«  r;   c                 ó   • g)NÚinference_moder/   r{   s    r9   rh   ÚInferenceModeVariable.fn_name  s   € Ør;   c                 ó"   • [         R                  $ r`   )rÀ   rÌ  r{   s    r9   r7  Ú!InferenceModeVariable.python_type  s   € Ü×#Ñ#Ð#r;   r$  r`   )r5   r‘   r’   r“   r   r   rN   r˜   r1   r   rc   rP   r•   rg   rh   r4   r7  r™   rš   r›   s   @r9   r´  r´  ×  sÈ   ø† ØðØ'ðØ7:ðØFIðà	 óó ðð '+ñ
àð
ð ˜t™ð
ð ð	
ð
 
÷
ð 
ð
7Ø-ð
7Ø6Eð
7à	ô
7ð7Ð3ð 7¸ô 7ð<˜Sô ð ˜ô  ð$˜T÷ $ò $r;   r´  c            	       ó®   • \ rS rSr% Sr\\S'   \\S'   \\S'   \SSS\S	\S
S 4S j5       rSSS\	S
\	4S jr
SSS
\	4S jrS
\4S jrS
\4S jrS
\4S jrSrg)ÚGenericDeviceVariablei"  zLAbstract base for device context managers that swap the active device index.Ú_exchange_fnÚ_maybe_exchange_fnÚ_get_device_index_fnr<   r$   Údevicer,   r-   c                 ó6   • U " SU R                  USS9/S S.UD6$ )NT)Úoptionalrë   r/   )rÔ  )Úclsr<   rÕ  r,   s       r9   rN   ÚGenericDeviceVariable.create)  s9   € ñ ð 
Ø×3Ñ3°FÀTÐ3ÐJÐKØñ
ð ñ
ð 	
r;   r^   c                 óÆ   • U R                  5         UR                  R                  SU R                  U R                  40 5        [
        R                  R                  S5      $ )Nr‚   F)ra   rY   rö   rÓ  r÷   r   rM   rN   rb   s      r9   rc   ÚGenericDeviceVariable.exit3  sS   € ð 	×ÑÔØ
�	‰	×ÑØØ×#Ñ#Ø�Z‰ZˆMØô		
ô ×)Ñ)×0Ñ0°Ó7Ð7r;   c                 ó  ^ ^• T R                   " T R                  6 mT R                  UUU 4S j5        UR                  R	                  ST R                   / T R                  Q70 5      T l        [        R                  R                  S 5      $ )Nc                  ó&   >• TR                  T 5      $ r`   )rÓ  )Úprev_idxr7   s   €€r9   ro   Ú-GenericDeviceVariable.enter.<locals>.<lambda>A  s   ø€ ¨$×*AÑ*AÀ(Ô*Kr;   r‚   )	rÒ  r)   rL   rY   rö   r÷   r   rM   rN   )r7   r<   rÞ  s   ` @r9   rP   ÚGenericDeviceVariable.enter?  sv   ù€ Ø×$Ò$ d×&8Ñ&8Ð9ˆØ×Ñ˜bÕ"KÔLØ—Y‘Y×*Ñ*ØØ×ÑØ"ˆd× Ñ Ñ"Øó	
ˆŒ
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   c                 ó   • [         er`   ry   r{   s    r9   rg   Ú!GenericDeviceVariable.module_nameJ  ó   € Ü!Ð!r;   c                 ó   • g)NrÕ  r/   r{   s    r9   rh   ÚGenericDeviceVariable.fn_nameM  s   € Ør;   c                 ó   • [         er`   ry   r{   s    r9   r7  Ú!GenericDeviceVariable.python_typeP  rã  r;   r$  N)r5   r‘   r’   r“   rÿ   r   Ú__annotations__ÚclassmethodrN   r   rc   rP   r•   rg   rh   r4   r7  r™   r/   r;   r9   rÑ  rÑ  "  sž   ‡ ÙVàÓØÓØÓàð
Ø,ð
Ø69ð
ØEHð
à	 ó
ó ð
ð
8Ø-ð
8Ø6Eð
8à	ô
8ð	7Ð3ð 	7¸ô 	7ð"˜Sô "ð˜ô ð"˜T÷ "r;   rÑ  c                   óÜ   • \ rS rSrSr\" \R                  R                  5      r	\" \R                  R                  5      r\" \R                  R                  5      rS\4S jrS\4S jrSrg)ÚCUDADeviceVariableiT  zrepresents torch.cuda.devicer-   c                 ó   • g)Nz
torch.cudar/   r{   s    r9   rg   ÚCUDADeviceVariable.module_name[  ó   € Ør;   c                 ó6   • [         R                  R                  $ r`   )rÀ   ÚcudarÕ  r{   s    r9   r7  ÚCUDADeviceVariable.python_type^  s   € Ü�z‰z× Ñ Ð r;   r/   N)r5   r‘   r’   r“   rÿ   r   rÀ   rð  Ú_exchange_devicerÒ  Ú_maybe_exchange_devicerÓ  Ú_get_device_indexrÔ  r•   rg   r4   r7  r™   r/   r;   r9   rë  rë  T  s[   † Ù&á §
¡
× ;Ñ ;Ó<€LÙ% e§j¡j×&GÑ&GÓHÐÙ'¨¯
©
×(DÑ(DÓEÐð˜Sô ð!˜T÷ !r;   rë  c                   óÜ   • \ rS rSrSr\" \R                  R                  5      r	\" \R                  R                  5      r\" \R                  R                  5      rS\4S jrS\4S jrSrg)ÚXPUDeviceVariableib  zrepresents torch.xpu.devicer-   c                 ó   • g)Nz	torch.xpur/   r{   s    r9   rg   ÚXPUDeviceVariable.module_namei  s   € Ør;   c                 ó6   • [         R                  R                  $ r`   )rÀ   ÚxpurÕ  r{   s    r9   r7  ÚXPUDeviceVariable.python_typel  s   € Ü�y‰y×ÑÐr;   r/   N)r5   r‘   r’   r“   rÿ   r   rÀ   rú  rò  rÒ  ró  rÓ  rô  rÔ  r•   rg   r4   r7  r™   r/   r;   r9   rö  rö  b  s[   † Ù%á §	¡	× :Ñ :Ó;€LÙ% e§i¡i×&FÑ&FÓGÐÙ'¨¯	©	×(CÑ(CÓDÐð˜Sô ð ˜T÷  r;   rö  c                   óÄ   • \ rS rSrSr\" \R                  R                  5      r	\" \R                  R                  5      r\" S 5      rS\4S jrS\4S jrS\4S jrSrg	)
ÚAcceleratorDeviceIndexVariableip  z)represents torch.accelerator.device_indexc                 ó   • U $ r`   r/   )rÕ  r,   s     r9   ro   Ú'AcceleratorDeviceIndexVariable.<lambda>u  s   € Ár;   r-   c                 ó   • g)Nztorch.acceleratorr/   r{   s    r9   rg   Ú*AcceleratorDeviceIndexVariable.module_namew  s   € Ø"r;   c                 ó   • g)NÚdevice_indexr/   r{   s    r9   rh   Ú&AcceleratorDeviceIndexVariable.fn_namez  s   € Ør;   c                 ó6   • [         R                  R                  $ r`   )rÀ   Úacceleratorr  r{   s    r9   r7  Ú*AcceleratorDeviceIndexVariable.python_type}  s   € Ü× Ñ ×-Ñ-Ð-r;   r/   N)r5   r‘   r’   r“   rÿ   r   rÀ   rð   Ú_accelerator_exchangeDevicerÒ  Ú _accelerator_maybeExchangeDevicerÓ  rÔ  r•   rg   rh   r4   r7  r™   r/   r;   r9   rý  rý  p  s^   † Ù3á §¡× DÑ DÓE€LÙ% e§h¡h×&OÑ&OÓPÐÙ'Ñ(GÓHÐð#˜Sô #ð˜ô ð.˜T÷ .r;   rý  Ú_device_context_manager_mapÚdevice_contextÚvariable_clsr-   c                 óH   • U [         ;   a  [        SU  S35      eU[         U '   g)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     r9   Úregister_device_context_managerr  ˆ  s5   € ð Ô4Ó4ÜØ˜nÐ-Ð-VÐWó
ð 	
ð 3?Ô Ò/r;   c                 ó,   • [         R                  U 5      $ )zWReturn the Dynamo variable class for ``device_context``, or ``None`` if not registered.)r
  Úget)r  s    r9   Úget_device_context_managerr  –  s   € ô '×*Ñ*¨>Ó:Ð:r;   c                   ó  ^ • \ rS rSrSr\" \" 5       \R                  5      r	\
SSS\SS 4S j5       r  SSSS	\S
\S-  S\S\SS4U 4S jjjr SSSS\S\4   S-  SS4S jjrSSS\SS4S jrS\4S jrS\4S jrS\4S jrSrU =r$ )ÚTorchFunctionDisableVariablei�  z>represents whether torch function overrides are enabled or notr<   r$   r,   r-   c                 ó$   • [        U 4/ / S.UD6nU$ )Nrë   )r  r  s      r9   rN   Ú#TorchFunctionDisableVariable.create¢  s-   € ô +Øð
àØñ
ð ñ	
ˆð ˆ
r;   Nr)   r*   Úonly_subclassc                 ó€  >• [        U5      S:w  a  [        S[        U5       35      eUc  [        S5      e[        U5      S:w  a  [        S[        U5       35      eX@l        UR                  R                  U l        UR                  R                  U l        [        TU ]$  " SX#S.UD6  [        U R                  5        g )Nr   zexpected 0 target_values, got zinitial_values must not be Nonezexpected 0 initial_values, got rë   r/   )rt   r€   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  )r7   r<   r)   r*   r  r,   r8   s         €r9   r1   Ú%TorchFunctionDisableVariable.__init__®  sÎ   ø€ ô ˆ}Ó Ó"Ü Ð#AÄ#ÀmÓBTÐAUÐ!VÓWÐWØÑ!Ü Ð!BÓCÐCÜˆ~Ó !Ó#Ü Ø1´#°nÓ2EÐ1FÐGóð ð +Ôà×,Ñ,×LÑLð 	Ô4ð ×,Ñ,×HÑHð 	Ô0ô 	‰Òð 	
Ø'ñ	
ØJPò	
ô 	�d×,Ñ,Õ-r;   rR   .c                 óx   ^ ^• Uc	  SU U4S jjnUT l         TR                  R                  T R                  5        g )Nc                  ó–   >• T R                   TR                  l        T R                  (       d  T R                  TR                  l        g g r`   )r  r  r  r  r  r  rO   s   €€r9   rR   Ú9TorchFunctionDisableVariable.set_cleanup_hook.<locals>.fnÒ  sA   ø€ à×@Ñ@ð ×0Ñ0ÔPð ×)×)à×@Ñ@ð ×4Ñ4ÕPð *r;   rV   rW   r\   s   `` r9   rL   Ú-TorchFunctionDisableVariable.set_cleanup_hookË  s3   ù€ ð
 ‰:÷ð ð ˆŒØ
�	‰	×"Ñ" 4§<¡<Õ0r;   rr  c                 ó¸   • [        U5      S:w  a  [        S[        U5       35      eSUR                  l        U R                  (       d  SUR                  l        g g )Nr   zexpected 0 values, got F)rt   r€   r  r  r  r  ©r7   r<   rr  s      r9   rJ   Ú'TorchFunctionDisableVariable._call_funcÞ  sO   € Üˆv‹;˜!ÓÜ Ð#:¼3¸v»;¸-Ð!HÓIÐIØKPˆ×(Ñ(ÔHØ×!×!ØKPˆB×,Ñ,ÕHð "r;   c                 ó   • g)Nztorch._Cr/   r{   s    r9   rg   Ú(TorchFunctionDisableVariable.module_nameå  ó   € Ør;   c                 ó(   • U R                   (       a  gg)NÚDisableTorchFunctionSubclassÚDisableTorchFunction)r  r{   s    r9   rh   Ú$TorchFunctionDisableVariable.fn_nameè  s   € Ø××Ø1Ø%r;   c                 óŒ   • U R                   (       a  [        R                  R                  $ [        R                  R                  $ r`   )r  rÀ   rð   r*  r+  r{   s    r9   r7  Ú(TorchFunctionDisableVariable.python_typeí  s+   € Ø××Ü—8‘8×8Ñ8Ð8Ü�x‰x×,Ñ,Ð,r;   )rX   r  r  r  r…   r`   )r5   r‘   r’   r“   rÿ   r   r   r   ÚTORCH_FUNCTION_STATEr  r   r   rN   r   r˜   r1   r   rL   rJ   r•   rg   rh   r4   r7  r™   rš   r›   s   @r9   r  r  �  s  ø† ÙHáÑ/Ó1°<×3TÑ3TÓUÐàð	Ø'ð	Ø36ð	à	'ó	ó ð	ð (,Ø"ñ.à'ð.ð ð.ð  ™ð	.ð
 ð.ð ð.ð 
÷.ð .ð@ )-ñ1à'ð1ð �S˜#�XÑ Ñ%ð1ð 
õ	1ð&QÐ8ð QÀ%ð QÈDô Qð˜Sô ð&˜ô &ð
-˜T÷ -ò -r;   r  c            	       óì   ^ • \ rS rSrSr\SSS\S-  S\SS 4S	 j5       r SS
\	\S-     S\	\S-     S-  S\SS4U 4S jjjr
SSS\4S jrSSS\	\S-     SS4S jrS\4S jrS\4S jrS\4S jrSrU =r$ )Ú!DisabledSavedTensorsHooksVariableió  z;represents torch.autograd.graph.disable_saved_tensors_hook.r<   r$   r�  Nr,   r-   c                 ó¸   • [        SU/[        R                  R                  R	                  5       /S.UD6nUR                  X/5        UR                  U 5        U$ rê   )r1  rÀ   rð   Ú	_autogradÚ/_saved_tensors_hooks_get_disabled_error_messagerJ   rL   r·  s       r9   rN   Ú(DisabledSavedTensorsHooksVariable.createö  s`   € ô 0ð 
Ø'˜.ä—‘×"Ñ"×RÑRÓTðñ
ð
 ñ
ˆð 	�‰�r˜>Ô*Ø×Ñ˜RÔ Øˆ
r;   r)   r*   c                 ó*   >• [         TU ]  " SXS.UD6  g rê   ©r0   r1   r6   s       €r9   r1   Ú*DisabledSavedTensorsHooksVariable.__init__  ó"   ø€ ô 	‰Òð 	
Ø'ñ	
ØJPó	
r;   c                 ó@   • [         R                  R                  S 5      $ r`   ©r   rM   rN   rO   s     r9   rP   Ú'DisabledSavedTensorsHooksVariable.enter  ó   € Ü×)Ñ)×0Ñ0°Ó6Ð6r;   rr  c                 ó  • [        U5      S:w  a  [        S[        U5       35      eUS   nUbk  UR                  R                  S[        R
                  R                  R                  U40 5        [        R
                  R                  R                  U5        g UR                  R                  S[        R
                  R                  R                  S0 5        [        R
                  R                  R                  5         g )Nr   r¤  r   r‚   r/   )	rt   r€   rY   rö   rÀ   rð   r3  Ú_saved_tensors_hooks_disableÚ_saved_tensors_hooks_enabler¦  s       r9   rJ   Ú,DisabledSavedTensorsHooksVariable._call_func  sÉ   € ô ˆv‹;˜!ÓÜ Ð#9¼#¸f»+¸Ð!GÓHÐHØ�q‘	ˆØÑð �I‰I×!Ñ!ØÜ—‘×"Ñ"×?Ñ?Ø�Øô	ô �H‰H×Ñ×;Ñ;¸EÕBð �I‰I×!Ñ!Ø¤§¡×!3Ñ!3×!OÑ!OÐQSÐUWôô �H‰H×Ñ×:Ñ:Õ<r;   c                 ó   • g)Nztorch.autograd.graphr/   r{   s    r9   rg   Ú-DisabledSavedTensorsHooksVariable.module_name*  ó   € Ø%r;   c                 ó   • g)NÚdisable_saved_tensors_hooksr/   r{   s    r9   rh   Ú)DisabledSavedTensorsHooksVariable.fn_name-  s   € Ø,r;   c                 ó"   • [         R                  $ r`   ©Ú
contextlibÚ_GeneratorContextManagerr{   s    r9   r7  Ú-DisabledSavedTensorsHooksVariable.python_type0  ó   € Ü×2Ñ2Ð2r;   r/   r`   )r5   r‘   r’   r“   rÿ   r   r•   r   rN   r   r1   r   rP   rJ   rg   rh   r4   r7  r™   rš   r›   s   @r9   r1  r1  ó  së   ø† ÙEàðØ'ðØ7:¸T±zðØMPðà	,óó ðð" 7;ñ
à  d¡
Ñ+ð
ð !  t¡Ñ,¨tÑ3ð
ð ð	
ð
 
÷
ð 
ð7Ð3ð 7¸ô 7ð=Ø-ð=Ø7?ÀÀdÁ
Ñ7Kð=à	ô=ð0&˜Sô &ð-˜ô -ð3˜T÷ 3ò 3r;   r1  c            	       ó  ^ • \ rS rSr\S\R                  R                  R                  S\	\
   S\\\
4   SS 4S j5       r SS\	\
   S	\
S-  S\
SS4U 4S
 jjjrSSS\S\4S jrSSS\4S jrS\4S jrS\4S jrS\4S jrSrU =r$ )ÚAutocastModeVariablei4  r¼   r^   r,   r-   c                 óf  • U [         R                  R                  R                  [         R                  R                  R                  [         R
                  R                  R                  4;  a  [        SU  35      e[        R                  " U 5      R                  " U0 UD6nUR                  5         / nUR                  5         S H×  nUS:X  ax  U [         R                  R                  R                  [         R
                  R                  R                  4;   a,  U [         R                  R                  R                  L a  SOSnOUR                  U   n[        U[        5      (       a!  UR                  UR!                  5       5        MÆ  UR                  U5        MÙ     [#        U4SS 0UD6nU$ )Nzunexpected autocast function: )Údevice_typeÚdtyperø   Úcache_enabledrQ  rð  Úcpur*   )rÀ   ÚampÚautocast_modeÚautocastrð  rT  r€   ÚinspectÚ	signatureÚbindÚapply_defaultsÚclearÚ	argumentsr2   r   rÅ   rg  rO  )r¼   r^   r,   Ú
bound_argsr)   ÚkeyÚargr  s           r9   rN   ÚAutocastModeVariable.create5  sS  € ð Ü�I‰I×#Ñ#×,Ñ,Ü�J‰J�N‰N×#Ñ#Ü�I‰I�M‰M×"Ñ"ð
ó 
ô
 !Ð#AÀ$ÀÐ!HÓIÐIô
 ×&Ò& tÓ,×1Ò1°4ÐB¸6ÑBˆ
Ø×!Ñ!Ô#ØˆØ�‰ŒãGˆCØ�mÓ#¨Ü—
‘
—‘×'Ñ'Ü—	‘	—‘×&Ñ&ð1ó )ð
 !%¬¯
©
¯©×(?Ñ(?Ò ?‘fÀU‘à ×*Ñ*¨3Ñ/�Ü˜#œ×/Ñ/Ø×$Ñ$ S×%;Ñ%;Ó%=Ö>à×$Ñ$ SÖ)ñ Hô # =ÑPÀÐPÈÑPˆØˆ
r;   Nr)   r*   c                 ó*   >• [         TU ]  " SXS.UD6  g rê   r7  r6   s       €r9   r1   ÚAutocastModeVariable.__init__[  r9  r;   r<   r$   c                 óâ   • U R                  5         UR                  R                  S[        R                  R
                  U R                  40 5        [        R                  R                  S 5      $ rû   )
ra   rY   rö   rÀ   rU  Ú_exit_autocastr÷   r   rM   rN   rb   s      r9   rc   ÚAutocastModeVariable.exite  sT   € ð 	×ÑÔØ
�	‰	×ÑØœUŸY™Y×5Ñ5¸¿
¹
°}Àbô	
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   c                 óL  ^• [         R                  R                  " U R                  6 mU R	                  UU4S j5        UR
                  R                  S[         R                  R                  / U R                  Q70 5      U l        [        R                  R                  S 5      $ )Nc                  óB   >• [         R                  R                  T 5      $ r`   )rÀ   rU  re  ©rÁ  s   €r9   ro   Ú,AutocastModeVariable.enter.<locals>.<lambda>p  s   ø€ ¬%¯)©)×*BÑ*BÀ3Ô*Gr;   r‚   )rÀ   rU  Ú_enter_autocastr)   rL   rY   rö   r÷   r   rM   rN   )r7   r<   rÁ  s     @r9   rP   ÚAutocastModeVariable.entern  s}   ø€ Ü�i‰i×'Ò'¨×);Ñ);Ð<ˆØ×Ñ˜bÔ"GÔHØ—Y‘Y×*Ñ*ØœUŸY™Y×6Ñ6Ð8N¸$×:LÑ:LÑ8NÐPRó
ˆŒ
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   c                 ó   • g)Nztorch.amp.autocast_moder/   r{   s    r9   rg   Ú AutocastModeVariable.module_namev  s   € Ø(r;   c                 ó   • g)NrW  r/   r{   s    r9   rh   ÚAutocastModeVariable.fn_namey  r(  r;   c                 óJ   • [         R                  R                  R                  $ r`   )rÀ   rU  rV  rW  r{   s    r9   r7  Ú AutocastModeVariable.python_type|  s   € Ü�y‰y×&Ñ&×/Ñ/Ð/r;   r$  r`   )r5   r‘   r’   r“   r   rÀ   rU  rV  rW  r   r   r—   r•   rN   r1   r   rc   rP   rg   rh   r4   r7  r™   rš   r›   s   @r9   rO  rO  4  sí   ø† Øð#Ø�i‰i×%Ñ%×.Ñ.ð#à�s‰mð#ð �S˜#�X‘ð#ð 
 ó	#ó ð#ðP &*ñ
à ‘}ð
ð ˜d™
ð
ð ð	
ð
 
÷
ð 
ð7Ø-ð7Ø6Eð7à	ô7ð7Ð3ð 7¸ô 7ð)˜Sô )ð˜ô ð0˜T÷ 0ò 0r;   rO  c                   óš   ^ • \ rS rSrSr SS\S-  S\SS4U 4S jjjrSS	S\4S
 jrSS	S\S\4S jr	S\
4S jrS\
4S jrS\4S jrSrU =r$ )ÚNullContextVariablei€  z6
This class represents Python contextlib.nullcontext.
NÚenter_resultr,   r-   c                 ó6   >• Xl         [        TU ]  " SSS0UD6  g ©Nr)   r/   )ru  r0   r1   )r7   ru  r,   r8   s      €r9   r1   ÚNullContextVariable.__init__…  s    ø€ ð )ÔÜ‰ÒÑ4 rÐ4¨VÓ4r;   r<   r$   c                 ór   • U R                   c  [        R                  R                  S 5      $ U R                   $ r`   )ru  r   rM   rN   rO   s     r9   rP   ÚNullContextVariable.enter‹  s1   € Ø×ÑÑ$Ü×-Ñ-×4Ñ4°TÓ:Ð:Ø× Ñ Ð r;   r^   c                 ó@   • [         R                  R                  S 5      $ r`   r;  rb   s      r9   rc   ÚNullContextVariable.exit�  ó   € ô ×)Ñ)×0Ñ0°Ó6Ð6r;   c                 ó   • g©NrJ  r/   r{   s    r9   rg   ÚNullContextVariable.module_name•  rî  r;   c                 ó   • g©NÚnullcontextr/   r{   s    r9   rh   ÚNullContextVariable.fn_name˜  ó   € Ør;   c                 ó"   • [         R                  $ r`   )rJ  rƒ  r{   s    r9   r7  ÚNullContextVariable.python_type›  s   € Ü×%Ñ%Ð%r;   )ru  r`   )r5   r‘   r’   r“   rÿ   r   r   r1   rP   rc   r•   rg   rh   r4   r7  r™   rš   r›   s   @r9   rt  rt  €  sŽ   ø† ñð
 6:ñ5Ø+¨dÑ2ð5ØEHð5à	÷5ð 5ð!Ð3ð !¸ô !ð
7Ø-ð7Ø6Eð7à	ô7ð
˜Sô ð˜ô ð&˜T÷ &ò &r;   rt  c                   ó”   ^ • \ rS rSrSrS\SS4U 4S jjrS\4S jrSS	S\	4S
 jr
SS	S\	S\	4S jrS\4S jrS\4S jrSS jrSrU =r$ )ÚProfilerContextVariableiŸ  af  
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U ]  " SSS 0UD6  g rw  r7  )r7   r,   r8   s     €r9   r1   Ú ProfilerContextVariable.__init__¨  s   ø€ Ü‰ÒÑ6 tÐ6¨vÓ6r;   c                 ó6   • [         R                  R                  $ r`   )rÀ   rÉ   Úprofiler{   s    r9   r7  Ú#ProfilerContextVariable.python_type«  s   € Ü�~‰~×%Ñ%Ð%r;   r<   r$   c                 ó   • U $ r`   r/   rO   s     r9   rP   ÚProfilerContextVariable.enter®  s   € Øˆr;   r^   c                 ó@   • [         R                  R                  S 5      $ r`   r;  rb   s      r9   rc   ÚProfilerContextVariable.exit±  r}  r;   c                 ó   • gr  r/   r{   s    r9   rg   Ú#ProfilerContextVariable.module_name¶  rî  r;   c                 ó   • gr‚  r/   r{   s    r9   rh   ÚProfilerContextVariable.fn_name¹  r…  r;   c                 óN   • [        S[        U 5      S/ [        R                  QS9  g )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   ÚSUPPORTABLEri   s     r9   rv   Ú#ProfilerContextVariable.reconstruct¼  s*   € ÜØHÜ˜“IØrðÜ"×.Ñ.ðó		
r;   r/   r�   )r5   r‘   r’   r“   rÿ   r   r1   r4   r7  r   rP   rc   r•   rg   rh   rv   r™   rš   r›   s   @r9   r‰  r‰  Ÿ  sz   ø† ñð7 ð 7¨÷ 7ð&˜Tô &ðÐ3ð ¸ô ð7Ø-ð7Ø6Eð7à	ô7ð
˜Sô ð˜ô ÷
ò 
r;   r‰  c                   óü   ^ • \ rS rSrSrS1\R                  kr\S\S\	\
   SSS\S	S 4
S
 j5       r  SS\S\S-  S\S	S4U 4S jjjrS	\4S jrSSS	\
4S jrSSS\
S	\
4S jrS	\4S jrS	\4S jrSU 4S jjrSrU =r$ )rÁ   iÇ  aK  
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                 ó   • S n[         R                  (       a™  U(       a  US   R                  5       O<UR                  S[        R
                  R                  S5      5      R                  5       nS n[        U5      S:”  a  US   R                  5       nOSU;   a  US   R                  5       nXV/nO[        [        SU 5        [        SUS S.UD6$ )	Nr   r¿   Úunknownr   r^   z+Profiler record function %s will be ignoredrë   r/   )r
   Ú capture_profiler_record_functionrg  r  r   rM   rN   rt   r   ÚlogrÁ   )r¼   r½   r¾   r,   r)   r¿   Úrecord_args_consts          r9   rN   Ú,ProfilerRecordFunctionContextVariable.create×  sÖ   € ð ˆÜ×2×2ö
 ð ˜A‘×1Ñ1Ô3à"×&Ñ&ØœI×6Ñ6×=Ñ=¸iÓHóç$Ñ$Ó&ð ð !%ÐÜ�;Ó !Ó#Ø$/°¡N×$EÑ$EÓ$GÑ!Ø˜=Ó(Ø$1°&Ñ$9×$LÑ$LÓ$NÐ!Ø!Ð5‰MäœÐKÈTÔRÜ4ð 
Ø'Øñ
ð ñ
ð 	
r;   Nr)   r*   c                 ó*   >• [         TU ]  " SXS.UD6  g rê   r7  r6   s       €r9   r1   Ú.ProfilerRecordFunctionContextVariable.__init__÷  r9  r;   c                 óJ   • [         R                  R                  R                  $ r`   )rÀ   r5  rÉ   rÊ   r{   s    r9   r7  Ú1ProfilerRecordFunctionContextVariable.python_type  s   € Ü�~‰~×&Ñ&×6Ñ6Ð6r;   r<   r$   c                 óØ   • [         R                  (       aT  U R                  u  p#UR                  R	                  S[
        R                  R                  R                  X#40 5      U l	        U $ rû   )
r
   r¤  r)   rY   rö   rÀ   ÚopsrÉ   Ú_record_function_enter_newr÷   )r7   r<   r¿   r^   s       r9   rP   Ú+ProfilerRecordFunctionContextVariable.enter  sS   € Ü×2×2Ø×+Ñ+‰JˆDàŸ™×.Ñ.ØÜ—	‘	×"Ñ"×=Ñ=Ø�Øó	ˆDŒJð ˆr;   r^   c                 ó  • [         R                  (       aU  UR                  R                  S[        R
                  R                  R                  R                  U R                  40 5        [        R                  R                  S 5      $ rû   )r
   r¤  rY   rö   rÀ   r­  rÉ   Ú_record_function_exitÚ_RecordFunctionr÷   r   rM   rN   rb   s      r9   rc   Ú*ProfilerRecordFunctionContextVariable.exit  s`   € ô ×2×2à�I‰I×!Ñ!ØÜ—	‘	×"Ñ"×8Ñ8×HÑHØ—‘�Øô	ô ×)Ñ)×0Ñ0°Ó6Ð6r;   c                 ó4   • [         R                  (       a  S$ S$ )Nztorch.autograd.profilerrJ  ©r
   r¤  r{   s    r9   rg   Ú1ProfilerRecordFunctionContextVariable.module_name  s!   € ô ×6×6ð &ð	
ð ð	
r;   c                 ó4   • [         R                  (       a  S$ S$ )NrÊ   rƒ  rµ  r{   s    r9   rh   Ú-ProfilerRecordFunctionContextVariable.fn_name$  s!   € ô ×6×6ð ð	
ð ð	
r;   c                 óš   >• [         R                  (       a&  [        S[        U 5      S/ [        R
                  QS9  g [        TU ]  U5        g )Nz,record_function escaped from compiled regionzADynamo doesn't support graph break inside record_function region.r˜  )r
   r¤  r   r•   r   rž  r0   rk   )r7   rj   r8   s     €r9   rk   Ú6ProfilerRecordFunctionContextVariable.reconstruct_type+  sE   ø€ ô ×2×2ÜØFÜ˜D›	Ø_ðÜ&×2Ñ2ðó	ô ‰GÑ$ WÕ-r;   r$  ry  r�   )r5   r‘   r’   r“   rÿ   r&   r”   r   r   r–   r   rN   r1   r4   r7  rP   rc   r•   rg   rh   rk   r™   rš   r›   s   @r9   rÁ   rÁ   Ç  s  ø† ñð 	ðà	 ×	/Ñ	/ð€Nð
 ð
Øð
à˜/Ñ*ð
ð 4ð
ð ð	
ð
 
1ó
ó ð
ðB "Ø%)ñ
àð
ð ˜d™
ð
ð ð	
ð
 
÷
ð 
ð7˜Tô 7ð
Ð3ð 
¸ô 
ð7Ø-ð7Ø6Eð7à	ô7ð
˜Sô 
ð
˜ô 
÷.õ .r;   rÁ   c                   ó¼   ^ • \ rS rSrSr\SSS\SS 4S j5       r\SSS\4S j5       rS\S	\S
\	SS4U 4S jjr
S\4S jrSSS\4S jrSSS\S\4S jrSS jrSrU =r$ )ÚPreserveVersionContextVariablei=  z7
Wraps torch.autograd._unsafe_preserve_version_counter
r<   r$   Útensorsr-   c           	      óä  • UR                  5       (       aO  [        R                  " U4 Vs/ s H  o"R                  U S5      PM     sn5      n[        R                  " U/5      nOx[	        U[        R                  5      (       d  [        S[        U5       35      e[        R                  " UR                   Vs/ s H  o"R                  U S5      PM     sn5      nUn[        XC5      $ s  snf s  snf )NÚ_versionz%tensors must be a TupleVariable, got )	Ú	is_tensorr   ÚTupleVariablerÙ   r2   r€   r4   rf  r¼  )r<   r½  r±   ÚversionsÚtensors_tuples        r9   Ú_create_lambda_from_tensorsÚ:PreserveVersionContextVariable._create_lambda_from_tensorsB  sÕ   € ð
 ×Ñ×ÑÜ ×.Ò.Ø>E¹YÓGºY¸×#Ñ# B¨
Ö3¹YÑGóˆHô &×3Ò3°W°IÓ>‰Mä˜g¤y×'>Ñ'>×?Ñ?Ü$Ø;¼DÀ»M¸?ÐKóð ô !×.Ò.Ø=D¿]º]ÓKº]¸×#Ñ# B¨
Ö3¹]ÑKóˆHð $ˆMÜ-¨mÓFÐFùò Hùò Ls   «C(Â9C-c                 ó8   ^ • [         R                  " U 4S j5      $ )Nc                 ó0   >• [         R                  TU 5      $ r`   )r¼  rÄ  )r½  r<   s    €r9   ro   Ú<PreserveVersionContextVariable.constructor.<locals>.<lambda>Z  s   ø€ Ô:×VÑVØ�Gôr;   )r   ÚLambdaVariable)r<   s   `r9   ÚconstructorÚ*PreserveVersionContextVariable.constructorW  s   ø€ ä×'Ò'ôó
ð 	
r;   Úprev_versionsr,   Nc                 óx  >• UR                  SS 5        [        TU ]  " S0 UD6  Xl        X l        U R                  R                  5       (       a&  [        R                  " U R                  /5      U l        U R                  R                  5       (       a'  [        R                  " U R                  /5      U l        g g rw  )	Ú
setdefaultr0   r1   r½  rÌ  rÀ  r   rÁ  Úis_symnode_like)r7   r½  rÌ  r,   r8   s       €r9   r1   Ú'PreserveVersionContextVariable.__init___  s‘   ø€ ð 	×Ñ˜/¨4Ô0Ü‰ÒÑ"˜6Ò"ØŒØ*Ôà�<‰<×!Ñ!×#Ñ#Ü$×2Ò2°D·L±L°>ÓBˆDŒLØ×Ñ×-Ñ-×/Ñ/Ü!*×!8Ò!8¸$×:LÑ:LÐ9MÓ!NˆDÕð 0r;   c                 óJ   • [         R                  R                  R                  $ r`   )rÀ   r5  r¼  Ú _unsafe_preserve_version_counterr{   s    r9   r7  Ú*PreserveVersionContextVariable.python_typeo  s   € Ü�~‰~×'Ñ'×HÑHÐHr;   c                 ó@   • [         R                  R                  S 5      $ r`   r;  rO   s     r9   rP   Ú$PreserveVersionContextVariable.enterr  r=  r;   r^   c                 ó†   • SSK Jn  [        R                  " U5      R	                  XR
                  U R                  /0 5      $ )Nr   )Ú_unsafe_set_version_counter)Útensor_version_opr×  r   ÚTorchInGraphFunctionVariabler‚   r½  rÌ  )r7   r<   r^   r×  s       r9   rc   Ú#PreserveVersionContextVariable.exitu  s:   € õ 	Dä×5Ò5Ø'ó
ç
‰-˜Ÿ\™\¨4×+=Ñ+=Ð>ÀÓ
Cð	Dr;   c                 óN   • [        S[        U 5      S/ [        R                  QS9  g )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�  ri   s     r9   rv   Ú*PreserveVersionContextVariable.reconstruct~  s-   € ÜØbÜ˜“IðUðÜ"×.Ñ.ðó
	
r;   )rÌ  r½  r�   )r5   r‘   r’   r“   rÿ   r   r   rÄ  rÊ  r   r1   r4   r7  rP   rc   rv   r™   rš   r›   s   @r9   r¼  r¼  =  sÛ   ø† ñð ðGØ'ðGà ðGð 
*óGó ðGð( ð
Ð3ð 
¸ó 
ó ð
ðOà ðOð 'ðOð ð	Oð
 
÷Oð I˜Tô Ið7Ð3ð 7¸ô 7ðDØ-ðDØ6EðDà	ôD÷
ò 
r;   r¼  c                   ó@  ^ • \ rS rSr\" \" 5       \R                  5      r\	SSS\
S\
S\
SS 4
S j5       r SS\
S
\\
   S\\
   S	-  S\
SS	4
U 4S jjjrSSS\4S jrSSS\S\4S jrSSS\\   S\\\4   S\4U 4S jjrSSS\\
   SS	4S jrS\4S jrS\4S jrSrU =r$ )Ú&FSDPParamGroupUseTrainingStateVariableiŒ  r<   r$   Úparam_group_varr�  r,   r-   c                 óP   • [        SUU/UR                  R                  /S.UD6nU$ )N)rß  r)   r*   r/   )rÞ  r    Ú_training_state)r<   rß  r�  r,   r  s        r9   rN   Ú-FSDPParamGroupUseTrainingStateVariable.create�  s>   € ô 5ð 
Ø+Ø'˜.Ø+×1Ñ1×AÑAÐBñ
ð ñ	
ˆð ˆ
r;   Nr)   r*   c                 ó`   >• [         TU ]  " SX#S.UD6  Xl        [        U R                  5        g rê   )r0   r1   rß  r   r  )r7   rß  r)   r*   r,   r8   s        €r9   r1   Ú/FSDPParamGroupUseTrainingStateVariable.__init__ž  s8   ø€ ô 	‰Òð 	
Ø'ñ	
ØJPò	
ð  /ÔÜ�d×,Ñ,Õ-r;   c                 óv   • U R                  XR                  5        [        R                  R	                  S 5      $ r`   r˜  rO   s     r9   rP   Ú,FSDPParamGroupUseTrainingStateVariable.enter«  rš  r;   r^   c                 óv   • U R                  XR                  5        [        R                  R	                  S 5      $ r`   rœ  rb   s      r9   rc   Ú+FSDPParamGroupUseTrainingStateVariable.exit¯  rž  r;   c                 óZ   >• U R                  XR                  5        [        TU ]  XU5      $ r`   r   r¡  s       €r9   r‚   Ú4FSDPParamGroupUseTrainingStateVariable.call_functionµ  s)   ø€ ð 	�‰˜×/Ñ/Ô0Ü‰wÑ$ R¨vÓ6Ð6r;   rr  c           	      óŽ  • [        U5      S:w  a  [        S[        U5       35      eUS   nU R                  R                  R                  U:w  av  U R                  R                  US[        R                  R                  US5      [        R                  R                  X5      40 5        X0R                  R                  l        g g )Nr   r¤  r   Ú__setattr__rá  )	rt   r€   rß  r    rá  Úcall_methodr   r   r  r¦  s       r9   rJ   Ú1FSDPParamGroupUseTrainingStateVariable._call_func¿  s²   € ô ˆv‹;˜!ÓÜ Ð#9¼#¸f»+¸Ð!GÓHÐHØ�q‘	ˆØ×Ñ×%Ñ%×5Ñ5¸Ó>Ø× Ñ ×,Ñ,ØØä×-Ñ-×3Ñ3°BÐ8IÓJÜ×-Ñ-×3Ñ3°BÓ>ðð ôð :?× Ñ ×&Ñ&Õ6ð ?r;   c                 ó   • g)NzDtorch.distributed.fsdp._fully_shard._fsdp_param_group.FSDPParamGroupr/   r{   s    r9   rg   Ú2FSDPParamGroupUseTrainingStateVariable.module_nameÑ  s   € ØUr;   c                 ó   • g)NÚuse_training_stater/   r{   s    r9   rh   Ú.FSDPParamGroupUseTrainingStateVariable.fn_nameÔ  ó   € Ø#r;   )rß  r`   )r5   r‘   r’   r“   r   r   r   ÚFSDP_TRAINING_STATEr  r   r   rN   r   r1   r   rP   rc   r–   r—   r•   r‚   rJ   rg   rh   r™   rš   r›   s   @r9   rÞ  rÞ  Œ  sQ  ø† ÙÑ/Ó1°<×3SÑ3SÓTÐàðØ'ðàðð ðð ð	ð
 
2óó ðð$ 04ñ	.àð.ð   ‘}ð.ð ! ™¨Ñ,ð	.ð
 ð.ð 
÷.ð .ð7Ð3ð 7¸ô 7ð7Ø-ð7Ø6Eð7à	ô7ð7à'ð7ð �?Ñ#ð7ð �S˜/Ð)Ñ*ð	7ð
 
÷7ð?Ø-ð?Ø7?À±}ð?à	ô?ð$V˜Sô Vð$˜÷ $ò $r;   rÞ  c                   ó:  ^ • \ rS rSrSr\ SSSS\S\S\SS 4
S	 jj5       r  SS\	\
R                  R                  R                     S\S\S\SS
4
U 4S jjjr\SSS\	\   S\	\   4S j5       rSSS\4S jrSSS\S\4S jrS\4S jrS\4S jrS\4S jrSrU =r$ )ÚSDPAKernelVariableiØ  z)represents torch.nn.attention.sdpa_kernelr<   r$   ÚbackendsÚset_priorityr,   r-   c                 ó�   • [        U[        R                  R                  R                  5      (       a  U/n[        SUS US.UD6nU$ )N)r)   r*   rù  r/   )r2   rÀ   ÚnnÚ	attentionÚ
SDPBackendr÷  )r<   rø  rù  r,   r  s        r9   rN   ÚSDPAKernelVariable.createÛ  sQ   € ô �h¤§¡× 2Ñ 2× =Ñ =×>Ñ>Ø �zˆHÜ ð 
Ø"ØØ%ñ
ð ñ	
ˆð ˆ
r;   Nr)   r*   c                 ó6   >• [         TU ]  " SXS.UD6  X0l        g rê   )r0   r1   rù  )r7   r)   r*   rù  r,   r8   s        €r9   r1   ÚSDPAKernelVariable.__init__ì  s*   ø€ ô 	‰Òð 	
Ø'ñ	
ØJPò	
ð )Õr;   c           	      óÆ   • U Vs/ s HN  nU R                   R                  S[        R                  R                  R
                  UR                  40 5      PMP     nnU$ s  snf rû   )rY   rö   rÀ   rû  rü  Ú_backend_from_stringr¿   )r<   rø  ÚbackendÚnodess       r9   Ú_backends_to_nodesÚ%SDPAKernelVariable._backends_to_nodesø  se   € ñ $ó
ò $�ð �I‰I×!Ñ!ØÜ—‘×"Ñ"×7Ñ7Ø—‘�Øö	ñ $ð 	ð 
ð ˆùò
s   …AAc                 ó4  ^ • [         R                  R                  R                  T R                  S9T l        T R                  UU 4S j5        [         R                  R                  R                  T R                  T R                  S9  T R                  UT R                  5      nUR                  R                  S[         R                  R                  R                  U[        T R                  5      40 5        [        R                  R                  S 5      $ )N)Úwith_priorityc                  ó|   >• [         R                  R                  R                  T R                  T R
                  S9$ )N©rù  )rÀ   rû  rü  Ú_sdpa_kernelÚprev_backendsrù  r{   s   €r9   ro   Ú*SDPAKernelVariable.enter.<locals>.<lambda>  s0   ø€ ”E—H‘H×&Ñ&×3Ñ3Ø×"Ñ"°×1BÑ1Bð 4ñ r;   r
  r‚   )rÀ   rû  rü  Ú_cur_sdpa_kernel_backendsrù  r  rL   r  r)   r  rY   rö   r˜   r   rM   rN   )r7   r<   r`  s   `  r9   rP   ÚSDPAKernelVariable.enter	  sè   ø€ Ü"ŸX™X×/Ñ/×IÑIØ×+Ñ+ð Jð 
ˆÔð 	×ÑØôô	
ô 	�‰×Ñ×'Ñ'Ø×Ñ¨T×->Ñ->ð 	(ñ 	
ð ×%Ñ% b¨$×*<Ñ*<Ó=ˆØ
�	‰	×ÑØÜ�H‰H×Ñ×+Ñ+Ø”$�t×(Ñ(Ó)Ð*Øô		
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   r^   c                 ó@  • U R                  5         U R                  XR                  5      nUR                  R	                  S[
        R                  R                  R                  U[        U R                  5      40 5        [        R                  R                  S 5      $ rû   )ra   r  r  rY   rö   rÀ   rû  rü  r  r˜   rù  r   rM   rN   )r7   r<   r^   r`  s       r9   rc   ÚSDPAKernelVariable.exit  s}   € ð 	×ÑÔØ×%Ñ% b×*<Ñ*<Ó=ˆØ
�	‰	×ÑØÜ�H‰H×Ñ×+Ñ+Ø”$�t×(Ñ(Ó)Ð*Øô		
ô ×)Ñ)×0Ñ0°Ó6Ð6r;   c                 ó   • g)Nztorch.nn.attentionr/   r{   s    r9   rg   ÚSDPAKernelVariable.module_name,  rô  r;   c                 ó   • g)NÚ_sdpa_kernel_variadicr/   r{   s    r9   rh   ÚSDPAKernelVariable.fn_name1  s   € Ø&r;   c                 ó"   • [         R                  $ r`   rI  r{   s    r9   r7  ÚSDPAKernelVariable.python_type4  rM  r;   )r  rù  r±  r´   )r5   r‘   r’   r“   rÿ   r   r   r˜   rN   r–   rÀ   rû  rü  rý  r1   r  r   rP   rc   r•   rg   rh   r4   r7  r™   rš   r›   s   @r9   r÷  r÷  Ø  s2  ø† Ù3àð #ñØ'ðàðð ðð ð	ð
 
ôó ðð& #Ø"ñ	
)à˜EŸH™H×.Ñ.×9Ñ9Ñ:ð
)ð ð
)ð ð	
)ð
 ð
)ð 
÷
)ð 
)ð ðØ'ðà�s‘)ðð 
ˆc‰óó ðð 7Ð3ð 7¸ô 7ð,7Ø-ð7Ø6Eð7à	ô7ð$˜Sô $ð
'˜ô 'ð3˜T÷ 3ò 3r;   r÷  c            	       ó¸   ^ • \ rS rSrSrS1\R                  kr SS\\\	4   S\	S\	SS4U 4S jjjr
S	S
S\S\4S jrS\4S jrS\4S jrS\4S jrSS jrSrU =r$ )ÚFxTracebackAnnotateVariablei8  aš  
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).
Ú
annotationNr*   r,   r-   c                 ó8   >• Xl         [        TU ]  " SSUS.UD6  g )Nr/   rë   )r  r0   r1   )r7   r  r*   r,   r8   s       €r9   r1   Ú$FxTracebackAnnotateVariable.__init__G  s!   ø€ ð %ŒÜ‰ÒÐS r¸.ÑSÈFÓSr;   r<   r$   r^   c                 ót  ^• [        5       mTR                  [        R                  R                  R                  U R                  5      5        TR                  [        R                  R                  R                  5       5        U R                  UU4S j5        [        R                  R                  S 5      $ )Nc                  ó$   >• T R                  5       $ r`   )Úclose)Ústacks   €r9   ro   Ú3FxTracebackAnnotateVariable.enter.<locals>.<lambda>V  s   ø€ ¨%¯+©+¬-r;   )r   Úenter_contextrÀ   ÚfxÚ	tracebackÚannotater  Úpreserve_node_metarL   r   rM   rN   )r7   r<   r^   r!  s      @r9   rP   Ú!FxTracebackAnnotateVariable.enterM  s|   ø€ ô “ˆØ×ÑœEŸH™H×.Ñ.×7Ñ7¸¿¹ÓHÔIØ×ÑœEŸH™H×.Ñ.×AÑAÓCÔDØ×Ñ˜bÔ"7Ô8Ü×)Ñ)×0Ñ0°Ó6Ð6r;   c                 ó   • g)Nztorch.fx.tracebackr/   r{   s    r9   rg   Ú'FxTracebackAnnotateVariable.module_nameY  rô  r;   c                 ó   • g)Nr&  r/   r{   s    r9   rh   Ú#FxTracebackAnnotateVariable.fn_name\  r(  r;   c                 ó"   • [         R                  $ r`   rI  r{   s    r9   r7  Ú'FxTracebackAnnotateVariable.python_type_  rM  r;   c                 óN   • [        S[        U 5      S/ [        R                  QS9  g )Nz8torch.fx.traceback.annotate escaped from compiled regionzBDynamo doesn't support graph break on torch.fx.traceback.annotate.r˜  r�  ri   s     r9   rk   Ú,FxTracebackAnnotateVariable.reconstruct_typeb  s*   € ÜØNÜ˜“IØ\ðÜ"×.Ñ.ðó		
r;   )r  r`   r�   )r5   r‘   r’   r“   rÿ   r&   r”   r—   r•   r   r1   r   rP   rg   rh   r4   r7  rk   r™   rš   r›   s   @r9   r  r  8  s¬   ø† ñð 	ðà	 ×	/Ñ	/ð€Nð AEñTØ˜s C˜x™.ðTØ:=ðTØPSðTà	÷Tð Tð
7Ø-ð
7Ø6Eð
7à	ô
7ð$˜Sô $ð˜ô ð3˜Tô 3÷
ò 
r;   r  c                   ó†   ^ • \ rS rSrSrS\\\4   S\SS4U 4S jjrSS	S
\SS4S jr	S\4S jr
S\4S jrS\4S jrSrU =r$ )ÚDynamoConfigPatchVariableim  z,represents torch._dynamo.patch_dynamo_configr)   r,   r-   Nc                 ó  >• [        UR                  5       5      n[        TU ]  " SU4S S.UD6  0 nU H0  u  pV[        R
                  R                  R                  U5      XE'   M2     [        UR                  5       5      4U l        g rê   )	rs  rf  r0   r1   rÀ   rÖ   r
   rå   r*   )r7   r)   r,   Útarget_values_tupleÚinitial_values_dictr_  Ú_r8   s          €r9   r1   Ú"DynamoConfigPatchVariable.__init__r  s…   ø€ Ü# M×$7Ñ$7Ó$9Ó:ÐÜ‰Òð 	
Ø.Ð0Àñ	
ØIOò	
ð !ÐÛ)‰FˆCÜ',§}¡}×';Ñ';×'GÑ'GÈÓ'LÐÓ$ñ *ä$Ð%8×%>Ñ%>Ó%@ÓAÐCˆÕr;   r<   r$   rr  c                 óÂ   • [        U5      S:w  a  [        S[        U5       35      eUS   nU H.  u  pE[        R                  R                  R                  XE5        M0     g ©Nr   r¤  r   )rt   r€   rÀ   rÖ   r
   rì  )r7   r<   rr  r    r_  ru   s         r9   rJ   Ú$DynamoConfigPatchVariable._call_func}  sR   € Üˆv‹;˜!ÓÜ Ð#9¼#¸f»+¸Ð!GÓHÐHØ�q‘	ˆã‰HˆCÜ�M‰M× Ñ ×,Ñ,¨SÖ6ò r;   c                 ó   • g©Nztorch._dynamor/   r{   s    r9   rg   Ú%DynamoConfigPatchVariable.module_name‰  ó   € Ør;   c                 ó   • g)NÚpatch_dynamo_configr/   r{   s    r9   rh   Ú!DynamoConfigPatchVariable.fn_nameŒ  ó   € Ø$r;   c                 ó   • SSK Jn  U$ )Nr   )ÚDynamoConfigPatchProxy)Útorch._dynamo.decoratorsrD  )r7   rD  s     r9   r7  Ú%DynamoConfigPatchVariable.python_type�  s   € ÝCà%Ð%r;   ©r*   )r5   r‘   r’   r“   rÿ   r—   r•   r   r1   rJ   rg   rh   r4   r7  r™   rš   r›   s   @r9   r2  r2  m  sp   ø† Ù6ð	D d¨3°¨8¡nð 	DÀð 	DÈ÷ 	Dð7Ð8ð 7À#ð 7È$ô 7ð˜Sô ð%˜ô %ð&˜T÷ &ò &r;   r2  c                   ó‚   ^ • \ rS rSrSrS\S\SS4U 4S jjrSS	S
\\   SS4S jr	S\
4S jrS\
4S jrS\4S jrSrU =r$ )ÚErrorOnGraphBreakVariablei•  z-represents torch._dynamo.error_on_graph_breakÚerror_on_graph_breakr,   r-   Nc                 ó@   >• [         TU ]  " SU4[        5       4S.UD6  g rê   )r0   r1   r   )r7   rJ  r,   r8   s      €r9   r1   Ú"ErrorOnGraphBreakVariable.__init__˜  s.   ø€ Ü‰Òð 	
Ø/Ð1Ü5Ó7Ð9ñ	
ð ó	
r;   r<   r$   rr  c                 ól   • [        U5      S:w  a  [        S[        U5       35      e[        US   5        g r9  )rt   r€   r   r$  s      r9   rJ   Ú$ErrorOnGraphBreakVariable._call_funcŸ  s3   € ô ˆv‹;˜!ÓÜ Ð#9¼#¸f»+¸Ð!GÓHÐHÜ! &¨¡)Õ,r;   c                 ó   • gr<  r/   r{   s    r9   rg   Ú%ErrorOnGraphBreakVariable.module_name¦  r>  r;   c                 ó   • g)NrJ  r/   r{   s    r9   rh   Ú!ErrorOnGraphBreakVariable.fn_name©  rD  r;   c                 ó   • SSK Jn  U$ )Nr   )Ú(ErrorOnGraphBreakDecoratorContextManager)rE  rT  )r7   rT  s     r9   r7  Ú%ErrorOnGraphBreakVariable.python_type¬  s   € ÝUà7Ð7r;   r/   )r5   r‘   r’   r“   rÿ   r˜   r   r1   r   rJ   r•   rg   rh   r4   r7  r™   rš   r›   s   @r9   rI  rI  •  sj   ø† Ù7ð
¨Tð 
¸Sð 
ÀT÷ 
ð-Ø-ð-Ø7?À±~ð-à	ô-ð˜Sô ð&˜ô &ð8˜T÷ 8ò 8r;   rI  c                   óÊ   ^ • \ rS rSrSrS\S-  S\S-  S\SS4U 4S jjrSU 4S jjrS	S
S\	\S4   SS4S jr
S\4S jrS\4S jrS\4S jrS\4S jrS	S
S\SS4S jrSrU =r$ )ÚCudagraphOverrideVariablei²  z,represents torch._dynamo.override_cudagraphsÚfwdNÚbwdr,   r-   c                 ó.   >• [         TU ]  " SX4S S.UD6  g rê   r7  )r7   rX  rY  r,   r8   s       €r9   r1   Ú"CudagraphOverrideVariable.__init__µ  s'   ø€ Ü‰Òð 	
Ø˜*Øñ	
ð ó	
r;   r<   r$   r   c                 óž   >• UR                   R                  nUb  UR                  UR                  4U l        OSU l        [
        TU ]  U5      $ )Nr`   )rY   Úcudagraph_annotationrX  rY  r*   r0   rP   )r7   r<   Úprevr8   s      €r9   rP   ÚCudagraphOverrideVariable.enter¼  sD   ø€ à�y‰y×-Ñ-ˆØÑØ#'§8¡8¨T¯X©XÐ"6ˆDÕà")ˆDÔÜ‰w‰}˜RÓ Ð r;   rr  .c                 óH  • SSK Jn  [        U5      S:X  a3  US   c-  S UR                  l        S UR                  R
                  l        g [        U5      S:w  a  [        S[        U5       35      eUu  pEU" XES9nXaR                  l        XaR                  R
                  l        g )Nr   )Ú_CudagraphAnnotationr   r   zexpected 2 values, got )rX  rY  )Útorch._inductorra  rt   rY   r]  Útracing_contextr€   )r7   r<   rr  ra  rX  rY  r  s          r9   rJ   Ú$CudagraphOverrideVariable._call_funcÅ  sˆ   € õ 	9äˆv‹;˜!Ó  q¡	Ñ 1à-1ˆB�I‰IÔ*Ø=AˆB�I‰I×%Ñ%Õ:ä�6‹{˜aÓÜ$Ð'>¼sÀ6»{¸mÐ%LÓMÐMØ‰HˆCÙ-°#Ñ?ˆJØ-7�I‰IÔ*Ø=G�I‰I×%Ñ%Õ:r;   c                 ó   • gr<  r/   r{   s    r9   rg   Ú%CudagraphOverrideVariable.module_nameÖ  r>  r;   c                 ó   • g)NÚoverride_cudagraphsr/   r{   s    r9   rh   Ú!CudagraphOverrideVariable.fn_nameÙ  rB  r;   c                 ó   • SSK Jn  U$ )Nr   )ÚCudagraphOverrideContextManager)rE  rk  )r7   rk  s     r9   r7  Ú%CudagraphOverrideVariable.python_typeÜ  s   € ÝLà.Ð.r;   c                 ó   • gr´   r/   r{   s    r9   rŠ   Ú-CudagraphOverrideVariable.exit_on_graph_breaká  s   € ð r;   r^   c                 ó@   • [         R                  R                  S 5      $ r`   r;  rb   s      r9   rc   ÚCudagraphOverrideVariable.exitæ  s   € ô ×)Ñ)×0Ñ0°Ó6Ð6r;   rG  )r<   r$   r-   r   )r5   r‘   r’   r“   rÿ   r˜   r   r1   rP   rs  rJ   r•   rg   rh   r4   r7  rŠ   r   rc   r™   rš   r›   s   @r9   rW  rW  ²  s¯   ø† Ù6ð
˜D 4™Kð 
¨d°T©kð 
ÀSð 
ÈT÷ 
÷!ðHØ-ðHØ7<¸SÀ#¸X±ðHà	ôHð"˜Sô ð%˜ô %ð/˜Tô /ð
 Tô ð
7Ø-ð7Ø6Eð7à	÷7ò 7r;   rW  c                   óš   ^ • \ rS rSrS\\-  S\SS4U 4S jjrSSS	\S
\	S\4S jr
S\4S jrSSS\\   S\\	\4   S\4S jrSS jrSrU =r$ )ÚWithEnterFunctionVariableiï  rÁ  r,   r-   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g )Nr/   )r0   r1   rÁ  )r7   rÁ  r,   r8   s      €r9   r1   Ú"WithEnterFunctionVariable.__init__ð  s   ø€ ô
 	‰ÒÑ"˜6Ò"Ø�r;   r<   r$   r=   r>   c                 ó    • SSK Jn  U" XX#5      $ r@   rB   rD   s        r9   rE   Ú-WithEnterFunctionVariable.tp_richcompare_implø  rG   r;   c                 ó"   • [         R                  $ r`   ©ÚtypesÚ
MethodTyper{   s    r9   r7  Ú%WithEnterFunctionVariable.python_typeÿ  ó   € Ü×ÑÐr;   r^   c                 ó–   • U(       a  [        S5      eU(       a  [        S5      eUR                  U R                  UR                  5      $ )Nz7WithEnterFunctionVariable.call_function expects no argsz9WithEnterFunctionVariable.call_function expects no kwargs)r€   Ú	enter_ctxrÁ  Úcurrent_instructionr�   s       r9   r‚   Ú'WithEnterFunctionVariable.call_function  sI   € ö Ü ØIóð ö Ü ØKóð ð �|‰|˜DŸH™H b×&<Ñ&<Ó=Ð=r;   c                 óX  •  U R                   R                  5        SU R                   R                  5        3n[        S[	        U R                   5      SU S3S/[        R                  Q[        R                  QS9  g ! [         a!    [	        [        U R                   5      5      n Nof = f)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˜  )
rÁ  rg   rh   rz   r•   r4   r   r   Ú	DIFFICULTÚ
DYNAMO_BUG)r7   rj   Útype_strs      r9   rv   Ú%WithEnterFunctionVariable.reconstruct  s¦   € ð	+ØŸ(™(×.Ñ.Ó0Ð1°°4·8±8×3CÑ3CÓ3EÐ2FÐGˆHô 	ØQÜ˜Ÿ™“MØCÀHÀ:ÐMgÐhðBðô #×,Ñ,ð	ô
 #×-Ñ-ðó		
øô #ó 	+Üœ4 §¡›>Ó*ŠHð	+ús   ‚7A> Á>(B)Â(B)ri  r�   )r5   r‘   r’   r“   r&   r�   r   r1   r   r•   rE   r4   r7  r–   r—   r‚   rv   r™   rš   r›   s   @r9   rr  rr  ï  sŸ   ø† ðà$Ð'EÑEðð ðð 
÷	ð7Ø-ð7Ø6Eð7ØKNð7à	ô7ð ˜Tô  ð>à'ð>ð �?Ñ#ð>ð �S˜/Ð)Ñ*ð	>ð
 
ô>÷&
ò 
r;   rr  c                   ó¼   ^ • \ rS rSrS1\R
                  krSSS\S\S\4S jrS	\\	-  S\
S
\
SS4U 4S jjrS\4S jrSSS\\   S
\\\4   S\4S jrSS jrSrU =r$ )ÚWithExitFunctionVariablei(  Útargetr<   r$   r=   r>   r-   c                 ó    • SSK Jn  U" XX#5      $ r@   rB   rD   s        r9   rE   Ú,WithExitFunctionVariable.tp_richcompare_impl.  rG   r;   rÁ  r,   Nc                 ó¢   >• [         TU ]  " S0 UD6  [        U[        [        45      (       d  [        S[        U5       35      eXl        X l        g )NzMctx must be a ContextWrappingVariable or GenericContextWrappingVariable, got r/   )	r0   r1   r2   r&   r�   r€   r4   rÁ  r‰  )r7   rÁ  r‰  r,   r8   s       €r9   r1   Ú!WithExitFunctionVariable.__init__5  s[   ø€ ô 	‰ÒÑ"˜6Ò"ÜØÔ)Ô+IÐJ÷
ñ 
ô !Ø_Ô`dÐehÓ`iÐ_jÐkóð ð ŒØ�r;   c                 ó"   • [         R                  $ r`   rx  r{   s    r9   r7  Ú$WithExitFunctionVariable.python_typeE  r|  r;   r^   c                 ó`   • U(       a  [        S5      eU R                  R                  " U/UQ76 $ )Nz8WithExitFunctionVariable.call_function expects no kwargs)r€   rÁ  rc   r�   s       r9   r‚   Ú&WithExitFunctionVariable.call_functionH  s1   € ö Ü ØJóð ð �x‰x�}Š}˜RÐ' $Ò'Ð'r;   c                 ó:   • U R                   R                  U5        g r`   )rÁ  rk   ri   s     r9   rv   Ú$WithExitFunctionVariable.reconstructT  s   € ð 	�‰×!Ñ! 'Õ*r;   )rÁ  r‰  r�   )r5   r‘   r’   r“   r   r”   r•   rE   r&   r�   r   r1   r4   r7  r–   r—   r‚   rv   r™   rš   r›   s   @r9   rˆ  rˆ  (  sÁ   ø† àðà	×	'Ñ	'ð€Nð
7Ø-ð7Ø6Eð7ØKNð7à	ô7ðà$Ð'EÑEðð ðð ð	ð
 
÷ð  ˜Tô  ð
(à'ð
(ð �?Ñ#ð
(ð �S˜/Ð)Ñ*ð	
(ð
 
ô
(÷+ò +r;   rˆ  )grÿ   rJ  rX  Úloggingry  rh  Ú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$   Ú	getLoggerr5   r¥  r&   r�   r¹   rÌ   rè   r  r  r(  r:  rN  r\  r{  r�  r´  rÑ  rë  rö  rý  rð  rÕ  rú  r  r  r
  r—   r4   rè  r  r  r  r1  rO  rt  r‰  rÁ   r¼  rÞ  r÷  r  r2  rI  rW  rr  rˆ  r/   r;   r9   Ú<module>r¦     sä  ðòó( Û Û Û Û ß 5Ñ 5ß 8ß %ã Ý  Ý Ý 'ç +Ý :Ý ß 0ß 2ß HÝ !÷	÷ 	ó 	õ 4ö Ý/ÝHà×Ò˜Ó!€ôu˜oô uôp+Ð%>ô +ô\.Ð;ô .ô($)Ð+Iô $)ôN)7Ð0Gô )7ôX%7Ð7Nô %7ôP*7Ð,Cô *7ôZ*?Ð&=ô *?ôZ*4Ð5ô *4ôZ(7Ð-Dô (7ôV.'Ð&=ô .'ôb57Ð-Dô 57ôpF&Ð.ô F&ôRH$Ð3ô H$ôV/"Ð3ô /"ôd!Ð.ô !ô Ð-ô  ô.Ð%:ô .ð$ 
‡J�J×ÑÐ)Ø	‡I�I×ÑÐ'Ø	×Ñ×"Ñ"Ð$BðHÐ ˜T $¨Ð-BÑ(CÐ"CÑDó ð?Øð?Ø(,Ð-BÑ(Cð?à	ô?ð;Øð;à	Ð
Ñ  4Ñ'ô;ôS-Ð#:ô S-ôl>3Ð(?ô >3ôBI0Ð2ô I0ôX&Ð1ô &ô>%
Ð5ô %
ôPs.Ð,Cô s.ôlL
Ð%<ô L
ô^I$Ð-Dô I$ôX]3Ð0ô ]3ô@2
Ð"9ô 2
ôj%&Ð 7ô %&ôP8Ð 7ô 8ô::7Ð 7ô :7ôz6
 ô 6
ôr0+˜õ 0+r;   