§
    ­˜ºh]˜  ã                  ó.  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Zd dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZ d dlZd dlmZ d d	l m!Z! d d
l"m#Z#m$Z$ d dl%m&Z&  ej'        e(¦  «        Z)er
d dl*m+Z+ d dl,Z,	  ej-        d¦  «        Z. ej-        d¦  «        Z/ ed¬¦  «         G d„ d¦  «        ¦   «         Z0 G d„ de¦  «        Z1 G d„ dej2        ¦  «        Z3	  G d„ d¦  «        Z4 ej        d¬¦  «         G d„ d¦  «        ¦   «         Z5 G d„ de¦  «        Z6e!ej         G d„ d¦  «        ¦   «         ¦   «         Z7 ed¦  «        Z8	  ej        d¬¦  «         G d „ d!¦  «        ¦   «         Z9	  ej        d¬¦  «         G d"„ d#e9¦  «        ¦   «         Z:	  ej        d¬¦  «         G d$„ d%e9¦  «        ¦   «         Z;	  G d&„ d'ee8         ¦  «        Z< G d(„ d)¦  «        Z= G d*„ d+¦  «        Z> G d,„ d-e<e>         ¦  «        Z? G d.„ d/¦  «        Z@ G d0„ d1e<e@         ¦  «        ZA G d2„ d3¦  «        ZB	  G d4„ d5e<e=         ¦  «        ZC G d6„ d7¦  «        ZD G d8„ d9eD¦  «        ZE G d:„ d;¦  «        ZF ejG        ¦   «         ZH	  G d<„ d=¦  «        ZI G d>„ d?¦  «        ZJedMdB„¦   «         ZKedNdD„¦   «         ZL ej        d¬¦  «         G dE„ dF¦  «        ¦   «         ZM ej        d¬¦  «         G dG„ dHeM¦  «        ¦   «         ZNdOdPdK„ZOdL„ ZPdS )Qé    )ÚannotationsN)Úabstractmethod)Údefaultdict)Úcontextmanager)Ú	dataclass)ÚAnyÚCallableÚGenericÚ
NamedTupleÚOptionalÚTYPE_CHECKINGÚTypeVarÚUnion)Ú_pytree)Údataclass_slots)ÚCapturedTracebackÚformat_frame)ÚWeakTensorKeyDictionary)ÚCodeTypez-^(?P<frame_id>\d+)/(?P<frame_compile_id>\d+)$zQ^!(?P<compiled_autograd_id>\d+)(?:/(?P<frame_id>\d+)/(?P<frame_compile_id>\d+))?$T)Úfrozenc                  óP   — e Zd ZU ded<   ded<   dZded<   d„ Zed
d	„¦   «         ZdS )Ú	CompileIdúOptional[int]Úframe_idÚframe_compile_idNÚcompiled_autograd_idc                óÌ   — | j         �=| j        d u | j        d u k    sJ ‚d}| j        �d| j        › d| j        › �}d| j         › |› �S | j        �| j        €J ‚| j        › d| j        › �S )NÚ ú/ú!)r   r   r   )ÚselfÚ	frame_strs     úU/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/torch/_guards.pyÚ__str__zCompileId.__str__V   s—   € àÔ$Ð0Ø”M TÐ)¨tÔ/DÈÐ/LÒMÐMÐMÐMØˆIØŒ}Ð(ØG ¤ÐGÐG°Ô0EÐGÐG�	à=�tÔ0Ð=°)Ð=Ð=Ð=à”=Ð,°Ô1FÐ1RÐ1RÐ1RØ”mÐ=Ð= dÔ&;Ð=Ð=Ð=ó    Ú
compile_idúOptional[str]c                óN  — |€dS 	 t           t          fD ]e}|                     |¦  «        x}rL|                     ¦   «         }|                     ¦   «         D ]\  }}|�t          |¦  «        ||<   Œ | di |¤Žc S Œft          ‚# t          $ r}t          d|› d�¦  «        |‚d}~ww xY w)zŒ
        Factory method that creates a CompileId from its string representation.
        Keep this in sync with the __str__ method.
        NzInvalid compile_id 'ú'© )ÚCOMPILE_ID_PATTERNÚCA_COMPILE_ID_PATTERNÚmatchÚ	groupdictÚitemsÚintÚ
ValueErrorÚ	Exception)Úclsr&   Úpatternr-   ÚgroupsÚkÚvÚes           r#   Úfrom_stringzCompileId.from_stringc   sæ   € ð ÐØ�4ð	JÝ.Õ0EÐFð !ð !�Ø#ŸMšM¨*Ñ5Ô5Ð5�5ð )Ø"Ÿ_š_Ñ.Ô.�FØ &§¢¡¤ð /ð /™˜˜1Ø˜=Ý(+¨A©¬˜F 1™IøØ˜3˜=˜= ˜=˜=Ð(Ð(Ð(ð)õ !Ð øåð 	Jð 	Jð 	JÝÐA°JÐAÐAÐAÑBÔBÈÐIøøøøð	Jøøøs   †A2B Á9B Â
B$ÂBÂB$)r&   r'   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r   r$   Úclassmethodr9   r*   r%   r#   r   r   G   sy   € € € € € € àÐÐÑð
 $Ð#Ð#Ñ#ð +/ÐÐ.Ð.Ð.Ñ.ð
>ð >ð >ð ðJð Jð Jñ „[ðJð Jð Jr%   r   c                  ó*   — e Zd ZU ded<   ded<   d„ ZdS )ÚTraceIdr   r&   r0   Úattemptc                ób   — | j         dk    rt          | j        ¦  «        S | j        › d| j         › �S )Nr   Ú_)rA   Ústrr&   ©r!   s    r#   r$   zTraceId.__str__€   s7   € àŒ<˜1ÒÐÝ�t”Ñ'Ô'Ð'à”oÐ6Ð6¨¬Ð6Ð6Ð6r%   N©r:   r;   r<   r=   r$   r*   r%   r#   r@   r@   z   s<   € € € € € € ØÐÐÑð €L€L�Lð7ð 7ð 7ð 7ð 7r%   r@   c                  ót   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdd„Zdd„Zdd„Zdd„Zd„ ZdS )ÚGuardSourcer   é   é   é   é   é   é   é   é   é	   é
   é   é   é   é   é   ÚreturnÚboolc                ó6   — | t           j        t           j        fv S ©N)rH   ÚGLOBAL_FSDP_MODULEÚLOCAL_FSDP_MODULErE   s    r#   Úis_fsdp_modulezGuardSource.is_fsdp_moduleš   s   € Ø�Ô6½Ô8UÐVÐVÐVr%   c                ó²   — dd l mc m} |j        r.| t          j        t          j        fv p|                      ¦   «         S | t          j        t          j        fv S ©Nr   )Útorch._dynamo.configÚ_dynamoÚconfigÚ_unsafe_skip_fsdp_module_guardsrH   ÚGLOBAL_SPECIALIZED_NN_MODULEÚLOCAL_SPECIALIZED_NN_MODULEr^   )r!   rc   s     r#   Úis_specialized_nn_modulez$GuardSource.is_specialized_nn_module�   s|   € Ø-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-àÔ1ð 	àåÔ<ÝÔ;ððð )ð
 ×&Ò&Ñ(Ô(ðð ÝÔ4ÝÔ3ð
ð 
ð 	
r%   c                ób   — | t           j        t           j        t           j        t           j        fv S r[   )rH   ÚGLOBAL_UNSPECIALIZED_NN_MODULEÚLOCAL_UNSPECIALIZED_NN_MODULEÚ&GLOBAL_UNSPECIALIZED_BUILTIN_NN_MODULEÚ%LOCAL_UNSPECIALIZED_BUILTIN_NN_MODULErE   s    r#   Úis_unspecialized_nn_modulez&GuardSource.is_unspecialized_nn_module®   s,   € ØÝÔ6ÝÔ5ÝÔ>ÝÔ=ð	
ð 
ð 	
r%   c                ó6   — | t           j        t           j        fv S r[   )rH   rk   rl   rE   s    r#   Ú"is_unspecialized_builtin_nn_modulez.GuardSource.is_unspecialized_builtin_nn_module¶   s    € ØÝÔ>ÝÔ=ð
ð 
ð 	
r%   c                óx   — | t           j        t           j        t           j        t           j        t           j        fv S r[   )rH   ÚLOCALrf   r]   rj   rl   rE   s    r#   Úis_localzGuardSource.is_local¼   s2   € ØÝÔÝÔ3ÝÔ)ÝÔ5ÝÔ=ð
ð 
ð 	
r%   N©rX   rY   )r:   r;   r<   rq   ÚGLOBALrf   re   ÚCONSTANTÚRANDOM_VALUEÚ	SHAPE_ENVr]   r\   ÚBACKWARD_STATEÚ	EPHEMERALÚSYNTHETIC_LOCALrj   ri   rl   rk   r^   rg   rm   ro   rr   r*   r%   r#   rH   rH   ˆ   sÏ   € € € € € Ø€EØ€FØ"#ÐØ#$Ð Ø€HØ€LØ€IØÐØÐØ€NØ€IØ€OØ$&Ð!Ø%'Ð"Ø,.Ð)Ø-/Ð*ðWð Wð Wð Wð
ð 
ð 
ð 
ð"
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
r%   rH   c                  ó   — e Zd ZdS )ÚGuardBuilderBaseN©r:   r;   r<   r*   r%   r#   r|   r|   Ô   s   € € € € € Ø€Dr%   r|   c                  ó*   — e Zd ZU ded<   ded<   d„ ZdS )ÚSLocz,Optional[Union[traceback.FrameSummary, str]]Úframework_locr'   Úmaybe_user_locc                ó    — t          | j        t          ¦  «        r| j        nt          | j        ¦  «        }| j        �| j        › d|› d�S d|› d�S )Nz (ú)ú()Ú
isinstancer€   rD   r   r�   )r!   Úflocs     r#   r$   zSLoc.__str__Ý   sg   € õ ˜$Ô,­cÑ2Ô2ð2ˆDÔÐå˜dÔ0Ñ1Ô1ð 	ð
 ÔÐ*ØÔ)Ð4Ð4¨TÐ4Ð4Ð4Ð4à�t�;�;�;Ðr%   NrF   r*   r%   r#   r   r   Ø   s=   € € € € € € à?Ð?Ð?Ñ?Ø!Ð!Ð!Ñ!ð	ð 	ð 	ð 	ð 	r%   r   c                  ó.   — e Zd ZU ded<   ded<   ded<   dS )Ú
ShapeGuardzsympy.logic.boolalg.BooleanÚexprr   ÚslocrY   Úsize_obliviousN©r:   r;   r<   r=   r*   r%   r#   rˆ   rˆ   é   s3   € € € € € € Ø%Ð%Ð%Ñ%Ø€J€J�JØÐÐÑÐÐr%   rˆ   c                  ó  — e Zd ZU ded<   ded<   dZded<   dZded<   dZd	ed
<   dZded<   dZded<   dZ	ded<   dZ
ded<   d„ Zd„ Zd„ Zd„ Zed&d„¦   «         Zed'd„¦   «         Zed„ ¦   «         Zd„ Zd„ Zd(d!„Zd"„ Zd#„ Zd$„ Zd%„ ZdS ))ÚGuardÚSourceÚoriginating_sourcez)Callable[[GuardBuilderBase, Guard], None]Ú	create_fnNzOptional[list[str]]Úguard_typesÚ	code_listzOptional[object]Úobj_weakrefzOptional[type]Úguarded_class_weakrefzOptional[CapturedTraceback]Ústackz Optional[traceback.StackSummary]Ú
user_stackr   Ú_hashc                ó„   — | j         €3t          | j        | j        t	          | j        ¦  «        f¦  «        | _         | j         S r[   )r˜   ÚhashÚnameÚsourceÚidr‘   rE   s    r#   Ú__hash__zGuard.__hash__  s6   € ØŒ:ÐÝ˜tœy¨$¬+µr¸$¼.Ñ7IÔ7IÐJÑKÔKˆDŒJØŒzÐr%   c                ó(  — t          | j        t          j        ¦  «        o&| j        j        t
          j        j        j        j	        u }|| j
        r| j
        j        ndt          | j        ¦  «        | j        |                      ¦   «         j        j        fS )Néÿÿÿÿ)r…   r‘   Ú	functoolsÚpartialÚfuncÚtorchrb   ÚguardsÚGuardBuilderÚDUPLICATE_INPUTrœ   ÚvalueÚlenr›   Úinner_create_fnÚ__code__Úco_firstlineno)r!   Úis_duplicate_inputs     r#   Úsort_keyzGuard.sort_key  s�   € õ
 �t”~¥yÔ'8Ñ9Ô9ð YØ”Ô#¥u¤}Ô';Ô'HÔ'XÐXð 	ð
 Ø!%¤Ð4ˆDŒKÔÐ°"Ý�”	‰NŒNØŒIØ× Ò Ñ"Ô"Ô+Ô:ð
ð 	
r%   c                óV   — |                       ¦   «         |                      ¦   «         k     S r[   )r®   ©r!   Úothers     r#   Ú__lt__zGuard.__lt__%  s   € Ø�}Š}‰Œ §¢Ñ!1Ô!1Ò1Ð1r%   c                óf   — t          | j        t          j        ¦  «        r| j        j        S | j        S r[   )r…   r‘   r¡   r¢   r£   rE   s    r#   rª   zGuard.inner_create_fn(  s,   € Ý�d”n¥iÔ&7Ñ8Ô8ð 	"Ø”>Ô&Ð&à”>Ð!r%   rX   rD   c                ó4   — | j                              ¦   «         S r[   )r�   r›   rE   s    r#   r›   z
Guard.name.  s   € àÔ&×+Ò+Ñ-Ô-Ð-r%   rH   c                ó4   — | j                              ¦   «         S r[   )r�   Úguard_sourcerE   s    r#   rœ   zGuard.source2  s   € àÔ&×3Ò3Ñ5Ô5Ð5r%   c           
     ó@  — t          | t          j        ¦  «        rv | ¦   «         }|�Jdt          t	          | ¦  «        ¦  «        › d|j        j        › dt          t	          |¦  «        ¦  «        › d�S dt          t	          | ¦  «        ¦  «        › d�S t          | ¦  «        S )aÔ  
        This is a workaround of a Python weakref bug.

        `obj_weakref` is instance returned by `weakref.ref`,
        `str(obj_weakref)` is buggy if the original obj overrides __getattr__, e.g:

            class MyConfig(dict):
                def __getattr__(self, x):
                    return self[x]

            obj = MyConfig(offset=5)
            obj_weakref = weakref.ref(obj)
            str(obj_weakref)  # raise error: KeyError: '__name__'
        Nz<weakref at z; to 'z' at ú>z; dead>)r…   ÚweakrefÚReferenceTypeÚhexr�   Ú	__class__r:   rD   )r”   Úobjs     r#   Úweakref_to_strzGuard.weakref_to_str6  s�   € õ  �k¥7Ô#8Ñ9Ô9ð 	$Ø�+‘-”-ˆCØˆØn¥c­"¨[©/¬/Ñ&:Ô&:ÐnÐnÀ#Ä-ÔBXÐnÐnÕ_bÕceÐfiÑcjÔcjÑ_kÔ_kÐnÐnÐnÐnàC¥c­"¨[©/¬/Ñ&:Ô&:ÐCÐCÐCÐCå�{Ñ#Ô#Ð#r%   c                ó   — d| j         r| j         j                             ¦   «         nd› dt          | j        ¦  «        › d|                      ¦   «         j        › d| j        › d| j        › d|                      | j	        ¦  «        › d| j
        › d�}|S )	Nz	
        r   ú z&
        {
            'guard_types': z,
            'code': z,
            'obj_weakref': z
            'guarded_class': z
        }
        )rœ   r›   ÚlowerÚreprrª   r:   r’   r“   r¾   r”   r•   )r!   Úss     r#   Ú__repr__zGuard.__repr__O  sÅ   € ðØ%)¤[Ð	8ˆŒÔ	×	Ò	Ñ	!Ô	!Ð	!°bðð Ý;?ÀÄ	¹?¼?ðð ØMQ×MaÒMaÑMcÔMcÔMlðð ð !Ô,ðð ð ”^ð	ð ð
 !×/Ò/°Ô0@ÑAÔAðð ð #Ô8ðð ð ˆð ˆr%   c                ól  — dt          | j        ¦  «        › d�}| j        r| j        j                             ¦   «         nd}|d|› d�z  }|d|                      ¦   «         j        › d�z  }|d| j        › d�z  }|d| j        › d�z  }|d|                      | j	        ¦  «        › d�z  }|d	| j
        › d�z  }|S )
NzName: ú
r   z    Source: z    Create Function: z    Guard Types: z    Code List: z    Object Weakref: z    Guarded Class Weakref: )rÂ   r›   rœ   rÁ   rª   r:   r’   r“   r¾   r”   r•   )r!   Úoutputrœ   s      r#   r$   zGuard.__str__[  sí   € Ø-�$˜tœy™/œ/Ð-Ð-Ð-ˆØ-1¬[Ð@�”Ô!×'Ò'Ñ)Ô)Ð)¸bˆØÐ+ Ð+Ð+Ð+Ñ+ˆØÐM¨$×*>Ò*>Ñ*@Ô*@Ô*IÐMÐMÐMÑMˆØÐ: dÔ&6Ð:Ð:Ð:Ñ:ˆØÐ6 D¤NÐ6Ð6Ð6Ñ6ˆØÐR¨×)<Ò)<¸TÔ=MÑ)NÔ)NÐRÐRÐRÑRˆØÐN°Ô0JÐNÐNÐNÑNˆØˆr%   Úbuilderr|   c           	     óŽ  — 	 |                       || ¦  «        S # t          $ r¢ t                               dt	          | ¦  «                             ¦   «         ¦  «         | j        r_t                               dd                     | j         	                    ¦   «         dd …         ¦  «                             ¦   «         ¦  «         ‚ w xY w)NzError while creating guard:
%szCreated at:
%sr   éüÿÿÿ)
r‘   r2   ÚlogÚ	exceptionrD   Úrstripr–   ÚerrorÚjoinÚformat)r!   rÈ   s     r#   ÚcreatezGuard.createf  s¯   € ð	Ø—>’> '¨4Ñ0Ô0Ð0øÝð 	ð 	ð 	Ý�MŠMÐ;½SÀ¹Y¼Y×=MÒ=MÑ=OÔ=OÑPÔPÐPØŒzð YÝ—	’	Ð+¨R¯WªW°T´Z×5FÒ5FÑ5HÔ5HÈÈÈÔ5MÑ-NÔ-N×-UÒ-UÑ-WÔ-WÑXÔXÐXØð		øøøs
   ‚ ˜B,Cc                ó4   — | j                              ¦   «         S r[   )rœ   rg   rE   s    r#   rg   zGuard.is_specialized_nn_moduleo  s   € ØŒ{×3Ò3Ñ5Ô5Ð5r%   c                ó4   — | j                              ¦   «         S r[   )rœ   r^   rE   s    r#   r^   zGuard.is_fsdp_moduler  s   € ØŒ{×)Ò)Ñ+Ô+Ð+r%   c                ó4   — | j                              ¦   «         S r[   )rœ   rr   rE   s    r#   rr   zGuard.is_localu  s   € ØŒ{×#Ò#Ñ%Ô%Ð%r%   c                óh  — | j         sg | _         | j                              |¦  «         | j        |d fv s
J d¦   «         ‚|| _        | j        s|| _        n| j                             |¦  «         | j        |d fv s2t          | j        ¦  «        r|                      ¦   «         �
J d¦   «         ‚|| _        d S )Nz+Guarded class id must be identical, or NonezBGuarded object must be identical, None or ephemeral (dead weakref))r’   Úappendr•   r“   Úextendr”   Úcallable)r!   Ú
guard_typeÚguarded_classr“   r”   s        r#   Úset_export_infozGuard.set_export_infox  sì   € ØÔð 	"Ø!ˆDÔàÔ×Ò 
Ñ+Ô+Ð+àÔ)ØØð.
ð 
ð 
ð 
ð 9ñ
ô 
ð 
ð &3ˆÔ"àŒ~ð 	-Ø&ˆDŒNˆNàŒN×!Ò! )Ñ,Ô,Ð,ð Ô ¨dÐ 3Ð3Ð3Ý˜Ô(Ñ)Ô)ð 4à× Ò Ñ"Ô"Ð*Ð*ØOñ +Ô*Ð*à&ˆÔÐÐr%   ©rX   rD   ©rX   rH   )rÈ   r|   )r:   r;   r<   r=   r’   r“   r”   r•   r–   r—   r˜   rž   r®   r²   rª   Úpropertyr›   rœ   Ústaticmethodr¾   rÄ   r$   rÑ   rg   r^   rr   rÛ   r*   r%   r#   rŽ   rŽ   ï   s¯  € € € € € € ð( ÐÐÑØ8Ð8Ð8Ñ8ð (,€KÐ+Ð+Ð+Ñ+Ø%)€IÐ)Ð)Ð)Ñ)Ø$(€KÐ(Ð(Ð(Ñ(Ø,0ÐÐ0Ð0Ð0Ñ0à)-€EÐ-Ð-Ð-Ñ-Ø37€JÐ7Ð7Ð7Ñ7Ø€EÐÐÐÑðð ð ð

ð 
ð 
ð 2ð 2ð 2ð"ð "ð "ð ð.ð .ð .ñ „Xð.ð ð6ð 6ð 6ñ „Xð6ð ð$ð $ñ „\ð$ð0
ð 
ð 
ð	ð 	ð 	ðð ð ð ð6ð 6ð 6ð,ð ,ð ,ð&ð &ð &ð'ð 'ð 'ð 'ð 'r%   rŽ   ÚTc                  ó   — e Zd ZdS )ÚGuardEnvExprNr}   r*   r%   r#   râ   râ   Ÿ  s   € € € € € à€Dr%   râ   c                  ó*   — e Zd ZU ded<   ded<   d„ ZdS )ÚDuplicateInputsr�   Úinput_source_aÚinput_source_bc                ó*   — | j         | j        k    sJ ‚d S r[   )rå   ræ   rE   s    r#   Ú__post_init__zDuplicateInputs.__post_init__¯  s   € ØÔ" dÔ&9Ò9Ð9Ð9Ð9Ð9Ð9r%   N)r:   r;   r<   r=   rè   r*   r%   r#   rä   rä   ª  s=   € € € € € € àÐÐÑØÐÐÑð:ð :ð :ð :ð :r%   rä   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚStorageOverlapzlist[Source]Úoverlapping_sourcesÚnon_overlapping_sourcesNrŒ   r*   r%   r#   rê   rê   Á  s*   € € € € € € à%Ð%Ð%Ñ%Ø)Ð)Ð)Ñ)Ð)Ð)r%   rê   c                  ó>   — e Zd Zedd„¦   «         Zedd„¦   «         ZdS )	ÚCheckpointablerX   rà   c                ó   — d S r[   r*   rE   s    r#   Úcopy_graphstatezCheckpointable.copy_graphstateÕ  s   € Ø$' Cr%   Ústatec                ó   — d S r[   r*   ©r!   rñ   s     r#   Úrestore_graphstatez!Checkpointable.restore_graphstateØ  s   € Ø,/¨Cr%   N)rX   rà   )rñ   rà   )r:   r;   r<   r   rð   rô   r*   r%   r#   rî   rî   Ô  s<   € € € € € ØØ'Ð'Ð'ñ „^Ø'àØ/Ð/Ð/ñ „^Ø/Ð/Ð/r%   rî   c                  óD   — e Zd ZU dZ e¦   «         Zded<   d„ Zd„ Zd„ Z	dS )ÚGuardsCheckpointStatezW
    The GuardCheckpointState - it is the T of Checkpointable[T] for GuardsContext
    ú
set[Guard]Údynamo_guardsc                ó   — || _         d S r[   )rø   )r!   rø   s     r#   Ú__init__zGuardsCheckpointState.__init__ã  s   € Ø*ˆÔÐÐr%   c                ón   — | j                              |j         ¦  «        }t          |¦  «        dk    rdS |S )z¹
        Produces a delta against another GuardsCheckpointState.

        Returns None if no delta is found, otherwise, return a set() of mismatched
        Guard type objects.
        r   N)rø   Ú
differencer©   ©r!   r±   Úrs      r#   ÚdiffzGuardsCheckpointState.diffæ  s6   € ð Ô×)Ò)¨%Ô*=Ñ>Ô>ˆÝˆq‰6Œ6�QŠ;ˆ;Ø�4Øˆr%   c                ó0   — |                       |¦  «        d u S r[   ©rÿ   r°   s     r#   Ú__eq__zGuardsCheckpointState.__eq__ò  ó   € Ø�yŠy˜ÑÔ 4Ð'Ð'r%   N)
r:   r;   r<   Ú__doc__Úsetrø   r=   rú   rÿ   r  r*   r%   r#   rö   rö   Ü  sf   € € € € € € ðð ð !$ ¡¤€MÐ%Ð%Ð%Ñ%ð+ð +ð +ð
ð 
ð 
ð(ð (ð (ð (ð (r%   rö   c                  ó0   — e Zd ZU i Zded<   d„ Zd„ Zd„ ZdS )ÚModuleContextCheckpointStatezdict[str, torch.nn.Module]Ú
nn_modulesc                ó   — || _         d S r[   ©r  )r!   r  s     r#   rú   z%ModuleContextCheckpointState.__init__ù  s   € Ø$ˆŒˆˆr%   c                óê   — t          | j                             ¦   «         ¦  «                             t          |j                             ¦   «         ¦  «        ¦  «        }t	          |¦  «        dk    rdS |S )z¾
        Produces a delta against another ModuleContextCheckpointState.

        Returns None if no delta is found, otherwise, return a set() of mismatched
        module key names.
        r   N)r  r  Úkeysrü   r©   rý   s      r#   rÿ   z!ModuleContextCheckpointState.diffü  s]   € õ �”×$Ò$Ñ&Ô&Ñ'Ô'×2Ò2µ3°uÔ7G×7LÒ7LÑ7NÔ7NÑ3OÔ3OÑPÔPˆÝˆq‰6Œ6�QŠ;ˆ;Ø�4Øˆr%   c                ó0   — |                       |¦  «        d u S r[   r  r°   s     r#   r  z#ModuleContextCheckpointState.__eq__  r  r%   N)r:   r;   r<   r  r=   rú   rÿ   r  r*   r%   r#   r  r  ö  sT   € € € € € € Ø-/€JÐ/Ð/Ð/Ñ/ð%ð %ð %ð
ð 
ð 
ð(ð (ð (ð (ð (r%   r  c                  ó"   — e Zd Zdd„Zd„ Zd„ ZdS )ÚModuleContextrX   ÚNonec                ó   — i | _         d S r[   r
  rE   s    r#   rú   zModuleContext.__init__  s   € Ø*,ˆŒˆˆr%   c                óD   — t          t          | j        ¦  «        ¦  «        S r[   )r  Údictr  rE   s    r#   rð   zModuleContext.copy_graphstate  s   € Ý+­D°´Ñ,AÔ,AÑBÔBÐBr%   c                óL   — t          |t          ¦  «        sJ ‚|j        | _        d S r[   )r…   r  r  ró   s     r#   rô   z ModuleContext.restore_graphstate  s'   € Ý˜%Õ!=Ñ>Ô>Ð>Ð>Ð>ØÔ*ˆŒˆˆr%   N©rX   r  ©r:   r;   r<   rú   rð   rô   r*   r%   r#   r  r    sI   € € € € € ð-ð -ð -ð -ðCð Cð Cð+ð +ð +ð +ð +r%   r  c                  ó0   — e Zd ZU i Zded<   d„ Zd„ Zd„ ZdS )ÚGlobalContextCheckpointStatezdict[str, tuple[Callable, ...]]Úglobal_statec                ó   — || _         d S r[   ©r  )r!   Úglobal_statess     r#   rú   z%GlobalContextCheckpointState.__init__  s   € Ø)ˆÔÐÐr%   c                óê   — t          | j                             ¦   «         ¦  «                             t          |j                             ¦   «         ¦  «        ¦  «        }t	          |¦  «        dk    rdS |S )z¾
        Produces a delta against another GlobalContextCheckpointState.

        Returns None if no delta is found, otherwise, return a set() of mismatched
        global key names.
        r   N)r  r  r  rü   r©   rý   s      r#   rÿ   z!GlobalContextCheckpointState.diff  s^   € õ �Ô!×&Ò&Ñ(Ô(Ñ)Ô)×4Ò4µS¸Ô9K×9PÒ9PÑ9RÔ9RÑ5SÔ5SÑTÔTˆÝˆq‰6Œ6�QŠ;ˆ;Ø�4Øˆr%   c                ó0   — |                       |¦  «        d u S r[   r  r°   s     r#   r  z#GlobalContextCheckpointState.__eq__*  r  r%   N)r:   r;   r<   r  r=   rú   rÿ   r  r*   r%   r#   r  r    sT   € € € € € € Ø46€LÐ6Ð6Ð6Ñ6ð*ð *ð *ð
ð 
ð 
ð(ð (ð (ð (ð (r%   r  c                  ó.   — e Zd ZdZh d£Zd	d„Zd„ Zd„ ZdS )
ÚGlobalContextzz
    This keeps track of the global torch state during tracing of a function.
    For example, torch.is_grad_enabled.
    >   Úgrad_enabledÚautocast_enabledÚautocast_cpu_dtypeÚautocast_gpu_dtypeÚautocast_cpu_enabledÚautocast_cache_enabledrX   r  c                ó   — i | _         d S r[   r  rE   s    r#   rú   zGlobalContext.__init__=  s   € Ø=?ˆÔÐÐr%   c                óD   — t          t          | j        ¦  «        ¦  «        S r[   )r  r  r  rE   s    r#   rð   zGlobalContext.copy_graphstate@  s   € Ý+­D°Ô1BÑ,CÔ,CÑDÔDÐDr%   c                óf  — t          |t          ¦  «        sJ ‚|j        | _        t          | j        ¦  «        t          | j        ¦  «        k    r/t          | j                             ¦   «         ¦  «        | j        k    s
J d¦   «         ‚| j                             ¦   «         D ]\  }} ||¦  «         Œd S )NzGlobal state mismatch)r…   r  r  r©   Ú_supported_global_statesr  r  Úvalues)r!   rñ   r£   Úargss       r#   rô   z GlobalContext.restore_graphstateC  s·   € Ý˜%Õ!=Ñ>Ô>Ð>Ð>Ð>Ø!Ô.ˆÔå�Ô!Ñ"Ô"¥c¨$Ô*GÑ&HÔ&HÒHÐHÝ�DÔ%×*Ò*Ñ,Ô,Ñ-Ô-°Ô1NÒNÐNÐNØ"ñ OÔNÐNàÔ+×2Ò2Ñ4Ô4ð 	ð 	‰JˆD�$ØˆD�‰JŒJˆJˆJð	ð 	r%   Nr  )r:   r;   r<   r  r*  rú   rð   rô   r*   r%   r#   r   r   .  si   € € € € € ðð ð
 ð  ð  Ðð@ð @ð @ð @ðEð Eð Eðð ð ð ð r%   r   c                  óL   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zddd	œdd„Zdd„Z	d„ Z
dS )Ú	GuardsSetNc                ó4   — |€t          ¦   «         }|| _        d S r[   )r  Úinner)r!   r0  s     r#   rú   zGuardsSet.__init__Q  s   € Øˆ=Ý‘E”EˆEØˆŒ
ˆ
ˆ
r%   c                ó*   — t          | j        ¦  «        S r[   )Úiterr0  rE   s    r#   Ú__iter__zGuardsSet.__iter__V  ó   € Ý�D”JÑÔÐr%   c                ó*   — t          | j        ¦  «        S r[   )r©   r0  rE   s    r#   Ú__len__zGuardsSet.__len__Y  s   € Ý�4”:‰ŒÐr%   c                ó:   — t          | j        |j        z
  ¦  «        S r[   )r.  r0  r°   s     r#   Ú__sub__zGuardsSet.__sub__^  s   € Ý˜œ e¤kÑ1Ñ2Ô2Ð2r%   c                ó*   — t          | j        ¦  «        S r[   )rY   r0  rE   s    r#   Ú__bool__zGuardsSet.__bool__a  r4  r%   Tr   )Úcollect_debug_stackÚskipÚguardrŽ   c               óæ   — || j         v rd S |rI|j        €t          j        d|z   ¬¦  «        |_        |j        €t
                               ¦   «         |_        | j                              |¦  «         d S ©NrI   )r<  )r0  r–   r   Úextractr—   ÚTracingContextÚextract_stackÚadd)r!   r=  r;  r<  s       r#   rC  zGuardsSet.addd  su   € Ø�D”JÐÐØˆFØð 	BØŒ{Ð"Ý/Ô7¸QÀ¹XÐFÑFÔF�”ØÔÐ'Ý#1×#?Ò#?Ñ#AÔ#A�Ô ØŒ
�Š�uÑÔÐÐÐr%   Úothersr÷   c                óH   — |D ]}|D ]}|                       |d¬¦  «         ŒŒd S r?  )rC  )r!   rD  ÚoÚgs       r#   ÚupdatezGuardsSet.updaten  sH   € Øð 	$ð 	$ˆAØð $ð $�Ø—’˜ �Ñ#Ô#Ð#Ð#ð$ð	$ð 	$r%   c                óH   ‡‡— ddl mŠ ˆˆfd„| j        D ¦   «         | _        dS )z.Delete all guards that contains a given sourcerI   )Úis_from_sourcec                ó6   •— h | ]} ‰|j         ‰¦  «        °|’ŒS r*   )r�   )Ú.0rG  rJ  rœ   s     €€r#   ú	<setcomp>z6GuardsSet.remove_guards_with_source.<locals>.<setcomp>w  s=   ø€ ð 
ð 
ð 
Ø¨¨¸Ô8LÈfÑ)UÔ)Uð
Øð
ð 
ð 
r%   N)Ú_dynamo.sourcerJ  r0  )r!   rœ   rJ  s    `@r#   Úremove_guards_with_sourcez#GuardsSet.remove_guards_with_sources  sK   øø€ à2Ð2Ð2Ð2Ð2Ð2ð
ð 
ð 
ð 
ð 
Ø”zð
ñ 
ô 
ˆŒ
ˆ
ˆ
r%   r[   )r=  rŽ   )rD  r÷   )r:   r;   r<   rú   r3  r6  r8  r:  rC  rH  rO  r*   r%   r#   r.  r.  P  s¬   € € € € € ðð ð ð ð
 ð  ð  ðð ð ð
3ð 3ð 3ð ð  ð  ð 8<À!ð ð ð ð ð ð ð$ð $ð $ð $ð

ð 
ð 
ð 
ð 
r%   r.  c                  ó"   — e Zd Zdd„Zd„ Zd„ ZdS )ÚGuardsContextrX   r  c                ó:   — t          ¦   «         | _        g | _        d S r[   )r.  rø   Úaotautograd_guardsrE   s    r#   rú   zGuardsContext.__init__…  s   € Ý(1©¬ˆÔØ68ˆÔÐÐr%   c                óN   — t          t          | j        j        ¦  «        ¦  «        S r[   )rö   r  rø   r0  rE   s    r#   rð   zGuardsContext.copy_graphstate‰  s   € Ý$¥S¨Ô);Ô)AÑ%BÔ%BÑCÔCÐCr%   c                óf   — t          |t          ¦  «        sJ ‚t          |j        ¦  «        | _        d S r[   )r…   rö   r.  rø   ró   s     r#   rô   z GuardsContext.restore_graphstateŒ  s2   € å˜%Õ!6Ñ7Ô7Ð7Ð7Ð7Ý& uÔ':Ñ;Ô;ˆÔÐÐr%   Nr  r  r*   r%   r#   rQ  rQ  „  sI   € € € € € ð9ð 9ð 9ð 9ðDð Dð Dð<ð <ð <ð <ð <r%   rQ  c                  óÎ   — e Zd Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Z	edd„¦   «         Z
edd„¦   «         ZdS )ÚHopSubgraphCacheÚfn_idr0   Ú
identifierrD   c                ó   — d S r[   r*   ©r!   rX  rY  s      r#   Úadd_dynamo_installed_submodulez/HopSubgraphCache.add_dynamo_installed_submodule“  s   € ØKNÈ3r%   rX   ú	list[str]c                ó   — d S r[   r*   ©r!   rX  s     r#   Úget_dynamo_installed_submodulesz0HopSubgraphCache.get_dynamo_installed_submodules–  ó   € ØHKÈr%   Úkeyr	   c                ó   — d S r[   r*   ©r!   rY  rb  s      r#   Úadd_autograd_key_entryz'HopSubgraphCache.add_autograd_key_entry™  s   € ØFIÀcr%   c                ó   — d S r[   r*   ©r!   rY  s     r#   Úget_autograd_key_entryz'HopSubgraphCache.get_autograd_key_entryœ  s   € Ø7:°sr%   c                ó   — d S r[   r*   rd  s      r#   Úadd_proxy_dispatch_entryz)HopSubgraphCache.add_proxy_dispatch_entryŸ  ra  r%   c                ó   — d S r[   r*   rg  s     r#   Úget_proxy_dispatch_entryz)HopSubgraphCache.get_proxy_dispatch_entry¢  s   € Ø9<¸r%   Útangent_metadataútuple[object]Úgmodútorch.fx.GraphModulec                ó   — d S r[   r*   )r!   rY  rm  ro  s       r#   Úadd_lazy_bwd_entryz#HopSubgraphCache.add_lazy_bwd_entry¥  s	   € ð €sr%   c                ó   — d S r[   r*   ©r!   rY  rm  s      r#   Úget_lazy_bwd_entryz#HopSubgraphCache.get_lazy_bwd_entry­  s	   € ð ˆcr%   N©rX  r0   rY  rD   ©rX  r0   rX   r]  ©rY  rD   rb  r	   ©rY  rD   ©rY  rD   rm  rn  ro  rp  )rY  rD   rm  rn  rX   r0   )r:   r;   r<   r   r\  r`  re  rh  rj  rl  rr  ru  r*   r%   r#   rW  rW  ’  sÖ   € € € € € ØØNÐNÐNñ „^ØNàØKÐKÐKñ „^ØKàØIÐIÐIñ „^ØIàØ:Ð:Ð:ñ „^Ø:àØKÐKÐKñ „^ØKàØ<Ð<Ð<ñ „^Ø<àðð ð ñ „^ðð ðð ð ñ „^ðð ð r%   rW  c                  óV   — e Zd Zdd„Zdd„Zdd
„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd„ZdS )ÚInvokeSubgraphCacherX   r  c                ó†   — i | _         i | _        t          t          ¦  «        | _        t          t
          ¦  «        | _        d S r[   )Úautograd_cacheÚproxy_dispatch_cacher   ÚlistÚdynamo_installed_submodulesr  Úlazy_bwd_cacherE   s    r#   rú   zInvokeSubgraphCache.__init__´  s=   € Ø35ˆÔØ9;ˆÔ!ÝALÍTÑARÔARˆÔ(õ �ÑÔð 	ÔÐÐr%   rX  r0   rY  rD   c                óF   — | j         |                              |¦  «         d S r[   )r�  rÖ   r[  s      r#   r\  z2InvokeSubgraphCache.add_dynamo_installed_submodule¼  s$   € ØÔ(¨Ô/×6Ò6°zÑBÔBÐBÐBÐBr%   r]  c                ó8   — | j                              |g ¦  «        S r[   )r�  Úgetr_  s     r#   r`  z3InvokeSubgraphCache.get_dynamo_installed_submodules¿  s   € ØÔ/×3Ò3°E¸2Ñ>Ô>Ð>r%   rb  r	   c                ó   — || j         |<   d S r[   )r~  rd  s      r#   re  z*InvokeSubgraphCache.add_autograd_key_entryÂ  s   € Ø*-ˆÔ˜JÑ'Ð'Ð'r%   c                ó8   — | j                              |d ¦  «        S r[   )r~  r…  rg  s     r#   rh  z*InvokeSubgraphCache.get_autograd_key_entryÅ  s   € ØÔ"×&Ò& z°4Ñ8Ô8Ð8r%   c                ó   — || j         |<   d S r[   )r  rd  s      r#   rj  z,InvokeSubgraphCache.add_proxy_dispatch_entryÈ  s   € Ø03ˆÔ! *Ñ-Ð-Ð-r%   c                ó8   — | j                              |d ¦  «        S r[   )r  r…  rg  s     r#   rl  z,InvokeSubgraphCache.get_proxy_dispatch_entryË  s   € ØÔ(×,Ò,¨Z¸Ñ>Ô>Ð>r%   rm  rn  ro  rp  c                ó^   — t          | j        |         ¦  «        }||f| j        |         |<   |S r[   )r©   r‚  )r!   rY  rm  ro  Ú	num_gmodss        r#   rr  z&InvokeSubgraphCache.add_lazy_bwd_entryÎ  s7   € õ ˜Ô+¨JÔ7Ñ8Ô8ˆ	Ø=AÀ9Ð<MˆÔ˜JÔ'Ð(8Ñ9ØÐr%   c                óZ   — || j         vrdS | j         |                              |d¦  «        S )N)NN)r‚  r…  rt  s      r#   ru  z&InvokeSubgraphCache.get_lazy_bwd_entryÙ  s4   € Ø˜TÔ0Ð0Ð0Ø�<àÔ" :Ô.×2Ò2Ð3CÀ\ÑRÔRÐRr%   Nr  rv  rw  rx  ry  rz  )rY  rD   rm  rn  )r:   r;   r<   rú   r\  r`  re  rh  rj  rl  rr  ru  r*   r%   r#   r|  r|  ³  sÒ   € € € € € ðð ð ð ðCð Cð Cð Cð?ð ?ð ?ð ?ð.ð .ð .ð .ð9ð 9ð 9ð 9ð4ð 4ð 4ð 4ð?ð ?ð ?ð ?ð	ð 	ð 	ð 	ðSð Sð Sð Sð Sð Sr%   r|  c                  ó   — e Zd Zd	d„Zd
d„ZdS )ÚHopDispatchSetCacherX   r  c                ó<   — ddl m} |t          ¦   «         i| _        d S )Nr   )Úinvoke_subgraph)Ú'torch._higher_order_ops.invoke_subgraphr�  r|  Úhop_cache_map)r!   r�  s     r#   rú   zHopDispatchSetCache.__init__á  s.   € àKÐKÐKÐKÐKÐKà-Õ/BÑ/DÔ/DÐEˆÔÐÐr%   Úopútorch._ops.HigherOrderOperatorúOptional[HopSubgraphCache]c                ó2   — || j         vrd S | j         |         S r[   )r’  )r!   r“  s     r#   Ú	get_cachezHopDispatchSetCache.get_cacheç  s%   € ð �TÔ'Ð'Ð'Ø�4ØÔ! "Ô%Ð%r%   Nr  )r“  r”  rX   r•  )r:   r;   r<   rú   r—  r*   r%   r#   rŽ  rŽ  à  s@   € € € € € ðFð Fð Fð Fð&ð &ð &ð &ð &ð &r%   rŽ  c                  óp   — e Zd Zed	d„¦   «         Zed
d„¦   «         Zd„ Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚCompileContextrX   c                 ó6   — t           j        €J ‚t           j        S r[   )Ú_TLSÚcompile_contextr*   r%   r#   r…  zCompileContext.get  s   € åÔ#Ð/Ð/Ð/ÝÔ#Ð#r%   úOptional[CompileContext]c                 ó.   — t          t          dd ¦  «        S ©Nrœ  ©Úgetattrr›  r*   r%   r#   Útry_getzCompileContext.try_get
  ó   € å•tÐ.°Ñ5Ô5Ð5r%   c                ób   — |�t          |t          ¦  «        sJ ‚|| _        d| _        g | _        d S r`   )r…   r   r&   rA   Úshape_env_guards)r!   r&   s     r#   rú   zCompileContext.__init__  s9   € ØÐ!¥Z°
½IÑ%FÔ%FÐ!Ð!Ð!Ø/9ˆŒØˆŒà+-ˆÔÐÐr%   c                 óJ   — t                                ¦   «         } | €d S | j        S r[   )r™  r¢  r&   rE   s    r#   Úcurrent_compile_idz!CompileContext.current_compile_id  s%   € å×%Ò%Ñ'Ô'ˆØˆ<Ø�4ØŒÐr%   c                 ó‚   — t                                ¦   «         } | €d S | j        €d S t          | j        | j        ¦  «        S r[   )r™  r¢  r&   r@   rA   rE   s    r#   Úcurrent_trace_idzCompileContext.current_trace_id  s>   € å×%Ò%Ñ'Ô'ˆØˆ<Ø�4ØŒ?Ð"Ø�4Ý�t”¨¬Ñ5Ô5Ð5r%   N)rX   r™  )rX   r�  )	r:   r;   r<   rß   r…  r¢  rú   r§  r©  r*   r%   r#   r™  r™    s—   € € € € € Øð$ð $ð $ñ „\ð$ð ð6ð 6ð 6ñ „\ð6ð.ð .ð .ð ðð ñ „\ðð ð6ð 6ñ „\ð6ð 6ð 6r%   r™  c                  óL  — e Zd ZdZedd„¦   «         Zedd„¦   «         Zd„ Zd„ Zee	d„ ¦   «         ¦   «         Z
ed	„ ¦   «         Zd
„ Zeej	        d„ ¦   «         ¦   «         Zeej	        d„ ¦   «         ¦   «         Zeej	        d„ ¦   «         ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )rA  zÅ
    Provides the currently installed TracingContext, or None.

    Note that it is a staticmethod, and invocations outside of `with tracing()` (see below), are valid but
    will return None.
    rX   úOptional[TracingContext]c                 ó.   — t          t          dd ¦  «        S )NÚtracing_contextr   r*   r%   r#   r¢  zTracingContext.try_get.  r£  r%   c                 óZ   — t                                ¦   «         x} r| S t          d¦  «        ‚)Nz<TracingContext.get() must be called within an ongoing trace.)rA  r¢  ÚRuntimeError)Úctxs    r#   r…  zTracingContext.get2  s5   € å ×(Ò(Ñ*Ô*Ð*ˆ3ð 	ØˆJÝØJñ
ô 
ð 	
r%   c                ó¸  — t          ¦   «         | _        t          ¦   «         | _        t	          ¦   «         | _        t          ¦   «         | _        t          ¦   «         | _        || _	        g | _
        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d| _        t'          ¦   «         | _        d| _        t-          ¦   «         | _        g | _        d S ©NF)rQ  Úguards_contextr  Úmodule_contextr   Úglobal_contextr  Úpreviously_inlined_functionsÚpreviously_cleaned_instructionsÚ	fake_modeÚframe_summary_stackÚloc_in_frameÚfw_metadataÚaot_graph_nameÚparams_flatÚparams_flat_unwrap_subclassesÚparams_unwrapped_to_flat_indexÚoutput_stridesÚ#force_unspec_int_unbacked_size_liker   Útensor_to_contextÚfakify_first_callrŽ  Úhop_dispatch_set_cacheÚtraced_code)r!   r¸  s     r#   rú   zTracingContext.__init__:  sÉ   € Ý+™oœoˆÔÝ+™oœoˆÔÝ+™oœoˆÔÝ,0©F¬FˆÔ)Ý/3©v¬vˆÔ,Ø"ˆŒØ#%ˆÔ ð !ˆÔàˆÔà"ˆÔØˆÔØ-1ˆÔ*Ø.2ˆÔ+ð JNˆÔð 49ˆÔ0å!8Ñ!:Ô!:ˆÔð
 "'ˆÔÝ&9Ñ&;Ô&;ˆÔ#à+-ˆÔÐÐr%   c                ó‚   — i | j         _        | j                             ¦   «          | j                             ¦   «          d S r[   )rµ  r  r¶  Úclearr·  rE   s    r#   rÇ  zTracingContext.cleark  s?   € ð ,.ˆÔÔ(ØÔ)×/Ò/Ñ1Ô1Ð1ØÔ,×2Ò2Ñ4Ô4Ð4Ð4Ð4r%   c               +  óª  K  — i }t                                ¦   «         }|                      ¦   «         D ]}t          ||¦  «        ||<   Œ|                      ¦   «         D ]\  }}t          |||¦  «         Œ	 d V — |                     ¦   «         D ]\  }}t          |||¦  «         Œd S # |                     ¦   «         D ]\  }}t          |||¦  «         Œw xY wr[   )rA  r…  r  r¡  r/   Úsetattr)ÚkwargsÚpriorr°  rb  Úvals        r#   ÚpatchzTracingContext.patchr  sú   è è € ð ˆÝ× Ò Ñ"Ô"ˆà—;’;‘=”=ð 	+ð 	+ˆCå   cÑ*Ô*ˆE�#‰JˆJØŸš™œð 	#ð 	#‰HˆC�Ý�C˜˜cÑ"Ô"Ð"Ð"ð	'ØˆEˆEˆEà!ŸKšK™MœMð 'ð '‘��SÝ˜˜S #Ñ&Ô&Ð&Ð&ð'ð 'ø˜EŸKšK™MœMð 'ð '‘��SÝ˜˜S #Ñ&Ô&Ð&Ð&ð'øøøs   Á4B% Â%-Cc                 óè   — t                                ¦   «         } | €t          j        ¦   «         S | j        }| j        �||                      ¦   «         gz   }t          j                             |¦  «        S r[   )rA  r¢  Ú	tracebackÚStackSummaryr¹  rº  Ú_populate_loc_in_frame_summaryÚ	from_list)r!   r–   s     r#   rB  zTracingContext.extract_stackƒ  sh   € å×%Ò%Ñ'Ô'ˆØˆ<ÝÔ)Ñ+Ô+Ð+ØÔ(ˆØÔÐ(Ø˜T×@Ò@ÑBÔBÐCÑCˆEÝÔ%×/Ò/°Ñ6Ô6Ð6r%   c                óZ   — | j         €J ‚| j         \  }}}t          j        |||d¬¦  «        S )NF)Úlookup_line)rº  rÏ  ÚFrameSummary)r!   ÚfilenameÚlinenoÚ
frame_names       r#   rÑ  z-TracingContext._populate_loc_in_frame_summary�  s;   € ØÔ Ð,Ð,Ð,Ø'+Ô'8Ñ$ˆ�&˜*ÝÔ% h°¸
ÐPUÐVÑVÔVÐVr%   c               #  ó˜  K  — t                                ¦   «         } t          j        j                             | dg ¦  «        5  t          j        j                             | dd ¦  «        5  	 d V — n*# t          $ r}t          |d¦  «        sd |_        ‚ d }~ww xY w	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr¹  rº  Ú
real_stack)	rA  r…  ÚunittestÚmockrÍ  Úobjectr2   ÚhasattrrÚ  )Útcr8   s     r#   Úclear_framezTracingContext.clear_frame”  s_  è è € õ ×ÒÑ!Ô!ˆåŒMÔ×&Ò& rÐ+@À"ÑEÔEð	ð 	åŒMÔ×&Ò& r¨>¸4Ñ@Ô@ð	ð 	ðØ����øÝð ð ð õ$ ˜q ,Ñ/Ô/ð (Ø#'�A”LØøøøøð)øøøð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	sZ   Á'B?Á)B'Á+A0Á/B'Á0
BÁ:BÂBÂB'ÂB?Â'B+	Â+B?Â.B+	Â/B?Â?CÃCc              #  ó¨  K  — t                                ¦   «         }| �|j                             | ¦  «         |j        }d |_        	 d V — n<# t
          $ r/}t          |d¦  «        s|                     ¦   «         |_        ‚ d }~ww xY w	 | �|j         	                    ¦   «          ||_        d S # | �|j         	                    ¦   «          ||_        w xY w)NrÚ  )
rA  r…  r¹  rÖ   rº  r2   rÞ  rB  rÚ  Úpop)Úframe_summaryrß  Úoldr8   s       r#   Úcurrent_framezTracingContext.current_frame´  sù   è è € õ
 ×ÒÑ!Ô!ˆØÐ$ØÔ"×)Ò)¨-Ñ8Ô8Ð8ØŒoˆØˆŒð		"ØˆEˆEˆEˆEøÝð 	ð 	ð 	Ý˜1˜lÑ+Ô+ð 2Ø!×/Ò/Ñ1Ô1�”Øøøøøð	øøøð ð Ð(ØÔ&×*Ò*Ñ,Ô,Ð,Ø!ˆBŒOˆOˆOøð Ð(ØÔ&×*Ò*Ñ,Ô,Ð,Ø!ˆBŒOÐ!Ð!Ð!Ð!s*   ÁA ÁB- Á
BÁ*B Â BÂB- Â-$Cc               #  ó¢   K  — t                                ¦   «         } | €d V — d S | j        }g | _        	 | j        V — || _        d S # || _        w xY wr[   )rA  r¢  rÀ  )rß  Úold_output_stridess     r#   Úreport_output_stridesz$TracingContext.report_output_stridesÉ  st   è è € õ ×#Ò#Ñ%Ô%ˆØˆ:ØˆJˆJˆJØˆFØÔ.ÐØˆÔð	3ØÔ#Ð#Ð#Ð#à 2ˆBÔÐÐøÐ 2ˆBÔÐ2Ð2Ð2Ð2s   ³	A Á	Ac                óH   — | ||ft                                ¦   «         _        d S r[   )rA  r…  rº  )rÖ  r×  rØ  s      r#   Úset_current_loczTracingContext.set_current_loc×  s%   € ð .6°v¸zÐ,J�×ÒÑÔÔ)Ð)Ð)r%   c                 óJ   — t                                ¦   «         } | €d S | j        S r[   )rA  r¢  rÅ  )rß  s    r#   Úget_traced_codezTracingContext.get_traced_codeÝ  s%   € å×#Ò#Ñ%Ô%ˆØˆ:Ø�4ØŒ~Ðr%   N)rX   r«  )rX   rA  )r:   r;   r<   r  rß   r¢  r…  rú   rÇ  r   rÍ  rB  rÑ  Ú
contextlibrà  rå  rè  rê  rì  r*   r%   r#   rA  rA  &  sƒ  € € € € € ðð ð ð6ð 6ð 6ñ „\ð6ð ð
ð 
ð 
ñ „\ð
ð/.ð /.ð /.ðb5ð 5ð 5ð Øð'ð 'ñ „^ñ „\ð'ð ð7ð 7ñ „\ð7ðWð Wð Wð ØÔðð ñ Ôñ „\ðð< ØÔð"ð "ñ Ôñ „\ð"ð& ØÔð
3ð 
3ñ Ôñ „\ð
3ð ðKð Kñ „\ðKð
 ðð ñ „\ðð ð r%   rA  Úcontextr�  c              #  ó’   K  — t          t          dd ¦  «        }| t          _        	 | V — |t          _        d S # |t          _        w xY wrŸ  )r¡  r›  rœ  )rî  Úold_contexts     r#   rœ  rœ  å  sP   è è € å�$Ð 1°4Ñ8Ô8€KØ"…DÔð+Øˆˆˆà*�ÔÐÐø˜{�ÔÐ*Ð*Ð*Ð*s	   ¦8 ¸Ar«  c              #  óÞ  K  — t          t          dd¦  «        }| t          _        	 | V — n># t          $ r1}t	          |d¦  «        s| �|                      ¦   «         |_        ‚ d}~ww xY w	 | �1| j        �*| j        j        �| j        j         	                    ¦   «          |t          _        dS # | �1| j        �*| j        j        �| j        j         	                    ¦   «          |t          _        w xY w)zË
    This function installs the passed in tracing context as a dynamic scoped
    global variable.

    Calls to TracingContext.get() while not under a `with tracing()` context
    will return None.
    r­  NrÚ  )
r¡  r›  r­  r2   rÞ  rB  rÚ  r¸  Ú	shape_envÚcleanup)rî  rð  r8   s      r#   Útracingrô  ï  s  è è € õ �$Ð 1°4Ñ8Ô8€KØ"…DÔð+ØˆˆˆˆøÝð ð ð Ý�q˜,Ñ'Ô'ð 	3¨GÐ,?Ø"×0Ò0Ñ2Ô2ˆAŒLØøøøøðøøøð 	ð ÐØÔ!Ð-ØÔ!Ô+Ð7àÔÔ'×/Ò/Ñ1Ô1Ð1Ø*�ÔÐÐøð ÐØÔ!Ð-ØÔ!Ô+Ð7àÔÔ'×/Ò/Ñ1Ô1Ð1Ø*�ÔÐ*Ð*Ð*Ð*s&   ¦+ ªB+ «
A&µ,A!Á!A&Á&B+ Â+AC,c                  óF   — e Zd Zd„ Zd„ Zd„ Zdd„Zdd„Zdd
„Zdd„Z	d„ Z
dS )r�   c                ó   — dS r²  r*   rE   s    r#   Úis_dict_keyzSource.is_dict_key  ó   € Øˆur%   c                ó   — dS r²  r*   rE   s    r#   Úis_ephemeralzSource.is_ephemeral  rø  r%   c                ó   — t           ‚r[   ©ÚNotImplementedError)r!   Úcodegens     r#   ÚreconstructzSource.reconstruct  ó   € Ý!Ð!r%   rX   rH   c                ó   — t           ‚r[   rü  rE   s    r#   r¶   zSource.guard_source  r   r%   rD   c                ó   — t           ‚r[   rü  rE   s    r#   r›   zSource.name  r   r%   rŽ   c                óp   — |                       ¦   «         t          j        u rt          ‚t	          | |¦  «        S r[   )r¶   rH   ru   rý  rŽ   )r!   Úfns     r#   Ú
make_guardzSource.make_guard  s0   € Ø×ÒÑÔ¥+Ô"6Ð6Ð6Ý%Ð%Ý�T˜2‰ŒÐr%   rY   c                óN   — |                       ¦   «                              ¦   «         S r[   )r¶   rg   rE   s    r#   rg   zSource.is_specialized_nn_module"  s    € Ø× Ò Ñ"Ô"×;Ò;Ñ=Ô=Ð=r%   c                óF   — |                       ¦   «         t          j        k    S )z+True if you can guard on attributes of this)r¶   rH   rz   rE   s    r#   Úsubguards_allowedzSource.subguards_allowed%  s   € à× Ò Ñ"Ô"¥kÔ&AÒAÐAr%   NrÝ   rÜ   )rX   rŽ   rs   )r:   r;   r<   r÷  rú  rÿ  r¶   r›   r  rg   r  r*   r%   r#   r�   r�     s¥   € € € € € ðð ð ðð ð ð"ð "ð "ð"ð "ð "ð "ð"ð "ð "ð "ðð ð ð ð
>ð >ð >ð >ðBð Bð Bð Bð Br%   r�   c                  ó.   — e Zd ZU ded<   d„ Zd„ Zdd„ZdS )	ÚChainedSourcer�   Úbasec                ó4   — | j                              ¦   «         S r[   )r  r÷  rE   s    r#   r÷  zChainedSource.is_dict_key/  s   € àŒy×$Ò$Ñ&Ô&Ð&r%   c                ó4   — | j                              ¦   «         S r[   )r  rú  rE   s    r#   rú  zChainedSource.is_ephemeral3  s   € ØŒy×%Ò%Ñ'Ô'Ð'r%   rX   c                ól   — | }t          |t          ¦  «        r|j        }t          |t          ¦  «        °|S r[   )r…   r
  r  )r!   Úcurrents     r#   Úget_basezChainedSource.get_base6  s9   € ØˆÝ˜¥-Ñ0Ô0ð 	#Ø”lˆGõ ˜¥-Ñ0Ô0ð 	#àˆr%   N)rX   r�   )r:   r;   r<   r=   r÷  rú  r  r*   r%   r#   r
  r
  +  sQ   € € € € € € à€L€L�Lð'ð 'ð 'ð(ð (ð (ðð ð ð ð ð r%   r
  Úinputsr   c                ó¨  — ddl m}m} g }t                               ¦   «         x}r!|j        }|�|                     |ddf¦  «         ddlm} t          t           |¦   «         ¦  «        ¦  «        D ]-\  }}t          ||¦  «        r|                     |d|f¦  «         Œ.t          j        | ¦  «        }	t          |	¦  «        D ]2\  }}
t          |
|¦  «        r|                     |
j        d|f¦  «         Œ3|r[|d         \  }}}|dd…         D ]B\  }}}||u s8J d	|› d
|› d|› d|› d
|› d|› d|› d|› d|j        › d|› d|› d|j        › �¦   «         ‚ŒC|S dS )a˜  
    Attempts to "detect" what the current fake mode is.  If there is one ambiently
    available from TracingContext, we preferentially use that.  Otherwise, we
    heuristically detect the fake mode via the following sources, in order of
    priority:

        - Currently active fake mode on stack
        - Fake mode associated with passed in tensors (inputs does not
          have to be flattened)
    r   )Ú
FakeTensorÚFakeTensorModeNztracing context©Ú _get_current_dispatch_mode_stackzactive fake modezfake tensor inputrI   zfake mode (z) from rÀ   z doesn't match mode (z

fake mode from z allocated at:
z
fake mode from )Útorch._subclasses.fake_tensorr  r  rA  r¢  r¸  rÖ   Útorch.utils._python_dispatchr  Ú	enumerateÚreversedr…   ÚpytreeÚtree_leavesr–   )r  r  r  Ú
fake_modesrî  r¸  r  ÚiÚmÚflat_inputsÚ
flat_inputÚdesc1Úi1Údesc2Úi2s                  r#   Údetect_fake_moder&  =  sG  € ð IÐHÐHÐHÐHÐHÐHÐHà€Jå ×(Ò(Ñ*Ô*Ð*€wð AØÔ%ˆ	ØÐ Ø×Ò˜yÐ*;¸QÐ?Ñ@Ô@Ð@àMÐMÐMÐMÐMÐMå�(Ð#CÐ#CÑ#EÔ#EÑFÔFÑGÔGð :ð :‰ˆˆ1Ý�a˜Ñ(Ô(ð 	:Ø×Ò˜qÐ"4°aÐ8Ñ9Ô9Ð9øåÔ$ VÑ,Ô,€KÝ" ;Ñ/Ô/ð Nð N‰ˆˆ:Ý�j *Ñ-Ô-ð 	NØ×Ò˜zÔ3Ð5HÈ!ÐLÑMÔMÐMøàð 
Ø)¨!œ}Ñˆ	�5˜"Ø& q r rœNð 	ð 	‰LˆAˆu�bØ �>�>�>ðH˜ið Hð H°ð Hð H¸ð Hð HÐQRð Hð HÐ[`ð Hð HÐceð Hð HØ"'ðHð HØ*,ðHð HØ>G¼oðHð Hà"'ðHð Hà*,ðHð Hà>?¼gðHð Hñ "”>�>�>ð
 Ðàˆtr%   c                 óš   — ddl m}  ddlm} t	          t           |¦   «         ¦  «        ¦  «        D ]\  }}t          || ¦  «        r|c S ŒdS )z~
    Inspects the dispatch mode stack for an active fake mode and returns it.
    Returns None if no fake mode is active.
    r   )r  r  N)r  r  r  r  r  r  r…   )r  r  rC   r  s       r#   Úactive_fake_moder(  i  s|   € ð
 =Ð<Ð<Ð<Ð<Ð<ØMÐMÐMÐMÐMÐMå�(Ð#CÐ#CÑ#EÔ#EÑFÔFÑGÔGð ð ‰ˆˆ1Ý�a˜Ñ(Ô(ð 	ØˆHˆHˆHð	ð ˆ4r%   )rî  r�  )rî  r«  r[   )r  r   )QÚ
__future__r   rí  ÚdataclassesÚenumr¡   ÚloggingÚreÚ	threadingrÏ  Úunittest.mockrÛ  r¹   Úabcr   Úcollectionsr   r   r   Útypingr   r	   r
   r   r   r   r   r   r¤   Útorch.utilsr   r  Útorch.utils._backport_slotsr   Útorch.utils._tracebackr   r   Útorch.utils.weakr   Ú	getLoggerr:   rË   Útypesr   ÚsympyÚcompiler+   r,   r   r@   ÚEnumrH   r|   r   rˆ   rŽ   rà   râ   rä   rê   rî   rö   r  r  r  r   r.  rQ  rW  r|  rŽ  Úlocalr›  r™  rA  rœ  rô  r�   r
  r&  r(  r*   r%   r#   ú<module>r=     sÒ  ðà "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %Ø !Ð !Ð !Ð !Ð !Ð !ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð €€€Ø )Ð )Ð )Ð )Ð )Ð )Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ 4Ð 4Ð 4Ð 4Ð 4Ð 4ð €gÔ˜Ñ!Ô!€ð ð ØÐÐÐÐÐà€L€L€Lðð  �R”ZÐ PÑQÔQÐ Ø"˜œ
ØXñô Ð ð$ €�$ÐÑÔð/Jð /Jð /Jð /Jð /Jñ /Jô /Jñ Ôð/Jðd7ð 7ð 7ð 7ð 7ˆjñ 7ô 7ð 7ð;
ð ;
ð ;
ð ;
ð ;
�$”)ñ ;
ô ;
ð ;
ð|ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð €Ô˜dÐ#Ñ#Ô#ðð ð ð ð ñ ô ñ $Ô#ðð ð ð ð ð �ñ ô ð ð ØÔða'ð a'ð a'ð a'ð a'ñ a'ô a'ñ Ôñ „ða'ðH €GˆC�L„L€ðð €Ô˜dÐ#Ñ#Ô#ð	ð 	ð 	ð 	ð 	ñ 	ô 	ñ $Ô#ð	ðð €Ô˜dÐ#Ñ#Ô#ð:ð :ð :ð :ð :�lñ :ô :ñ $Ô#ð:ðð €Ô˜dÐ#Ñ#Ô#ð*ð *ð *ð *ð *�\ñ *ô *ñ $Ô#ð*ð

ð0ð 0ð 0ð 0ð 0�W˜Q”Zñ 0ô 0ð 0ð(ð (ð (ð (ð (ñ (ô (ð (ð4(ð (ð (ð (ð (ñ (ô (ð (ð,	+ð 	+ð 	+ð 	+ð 	+�NÐ#?Ô@ñ 	+ô 	+ð 	+ð(ð (ð (ð (ð (ñ (ô (ð (ð,ð ð ð ð �NÐ#?Ô@ñ ô ð ðD)
ð )
ð )
ð )
ð )
ñ )
ô )
ð )
ðXð<ð <ð <ð <ð <�NÐ#8Ô9ñ <ô <ð <ðð ð ð ð ñ ô ð ðB*Sð *Sð *Sð *Sð *SÐ*ñ *Sô *Sð *SðZ&ð &ð &ð &ð &ñ &ô &ð &ð €y„ÑÔ€ðð&6ð 6ð 6ð 6ð 6ñ 6ô 6ð 6ðD|ð |ð |ð |ð |ñ |ô |ð |ð~ ð+ð +ð +ñ „ð+ð ð+ð +ð +ñ „ð+ð8 €Ô˜dÐ#Ñ#Ô#ðBð Bð Bð Bð Bñ Bô Bñ $Ô#ðBð< €Ô˜dÐ#Ñ#Ô#ðð ð ð ð �Fñ ô ñ $Ô#ðð")ð )ð )ð )ð )ðXð ð ð ð r%   