Ë
    øÿæi*¿  ã                  ó0  — 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 d dlmZ d dlZd d	lmZ  d d
l!m"Z" d dl#m$Z$ d dl%m&Z&m'Z' d dl(m)Z)  ejT                  e+«      Z,er,d dl-m.Z.m/Z/m0Z0 d dl1m2Z2 d dl3Z3d dl4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:m;Z; 	  ejx                  d«      Z= ejx                  d«      Z> eddd¬«       G d„ d«      «       Z? G d„ de«      Z@ G d„ dej‚                  «      ZB	  G d„ d«      ZC ej$                  d¬ «       G d!„ d"«      «       ZD G d#„ d$e«      ZE ej$                  d¬%«       G d&„ d'«      «       ZF ed(«      ZG	  ej$                  d¬ «       G d)„ d*«      «       ZH	  ej$                  d¬ «       G d+„ d,eH«      «       ZI	  ej$                  d¬ «       G d-„ d.eH«      «       ZJ	  G d/„ d0eeG   «      ZK G d1„ d2«      ZL G d3„ d4«      ZM G d5„ d6eKeM   «      ZN G d7„ d8«      ZO G d9„ d:eKeO   «      ZP G d;„ d<«      ZQ	  G d=„ d>eKeL   «      ZR G d?„ d@«      ZS G dA„ dBeS«      ZT G dC„ dD«      ZU ej¬                  «       ZW	  G dE„ dF«      ZXe G dG„ dH«      «       ZY G dI„ dJ«      ZZe	 	 	 	 dVdK„«       Z[e	 	 	 	 dWdL„«       Z\edXdM„«       Z]e	 dY	 	 	 	 	 dZdN„«       Z] e«       	 dY	 	 	 	 	 d[dO„«       Z] e]d¬ «       G dP„ dQ«      «       Z^ e]d¬ «       G dR„ dSe^«      «       Z_dYd\dT„Z`d]dU„Zay)^é    )ÚannotationsN)Úabstractmethod)Údefaultdict)Úcontextmanager)Ú	dataclass)ÚAnyÚGenericÚ
NamedTupleÚOptionalÚoverloadÚTYPE_CHECKINGÚTypeVar)Údataclass_transform)Ú_pytree)Ú
OrderedSet)Úis_traceable_wrapper_subclass)ÚCapturedTracebackÚformat_frame)ÚWeakTensorKeyDictionary)ÚCallableÚ	GeneratorÚIterator)ÚCodeType)ÚDDPOptimizerContext)Ú	PyCodegen)ÚViewAndMutationMeta©ÚFakeTensorModez-^(?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)ÚfrozenÚkw_onlyÚslotsc                  óJ   — e Zd ZU ded<   ded<   dZded<   dd„Zed	d„«       Zy)
Ú	CompileIdú
int | NoneÚframe_idÚframe_compile_idNÚcompiled_autograd_idc                óÄ  — | j                   �}| j                  d u | j                  d u k7  r%t        d| j                  › d| j                  › �«      ‚d}| j                  �d| j                  › d| j                  › �}d| j                   › |› �S | j                  �| j                  €%t        d| j                  › d| j                  › �«      ‚| j                  › d| j                  › �S )NzMframe_id and frame_compile_id must both be None or both be set, got frame_id=z, frame_compile_id=Ú Ú/Ú!z=frame_id and frame_compile_id must not be None, got frame_id=)r'   r%   r&   ÚAssertionError)ÚselfÚ	frame_strs     úb/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/torch/_guards.pyÚ__str__zCompileId.__str__S   s  € à×$Ñ$Ð0Ø—‘ Ð%¨4×+@Ñ+@ÀDÐ+HÒIÜ$ð$Ø$(§M¡M ?Ð2EÀd×F[ÑF[ÐE\ð^óð ð ˆIØ�}‰}Ð(Ø §¡˜¨a°×0EÑ0EÐ/FÐG�	à�t×0Ñ0Ð1°)°Ð=Ð=à�}‰}Ð$¨×(=Ñ(=Ð(EÜ$ð$Ø$(§M¡M ?Ð2EÀd×F[ÑF[ÐE\ð^óð ð —m‘m�_ A d×&;Ñ&;Ð%<Ð=Ð=ó    c                ó&  — |€y	 t         t        fD ]X  }|j                  |«      x}sŒ|j                  «       }|j	                  «       D ]  \  }}|€Œ	t        |«      ||<   Œ  | di |¤Žc S  t        ‚# 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)ÚclsÚ
compile_idÚpatternr7   ÚgroupsÚkÚvÚes           r/   Úfrom_stringzCompileId.from_stringh   s©   € ð ÐØð	JÜ.Ô0EÓF�Ø#ŸM™M¨*Ó5Ð5�5Ñ5Ø"Ÿ_™_Ó.�FØ &§¡¦™˜˜1Ø™=Ü(+¨A«˜F 1šIð !/ñ ™= ™=Ò(ð Gô !Ð øäò 	JÜÐ3°J°<¸qÐAÓBÈÐIûð	Jús(   …"A2 ¨(A2 ÁA2 Á+A2 Á2	BÁ;BÂB©ÚreturnÚstr)r>   ú
str | NonerF   úCompileId | None)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r'   r0   ÚclassmethodrD   r4   r1   r/   r#   r#   D   s8   … àÓð
 !Ó ð (,Ð˜*Ó+ó
>ð* òJó ñJr1   r#   c                  ó*   — e Zd ZU ded<   ded<   dd„Zy)ÚTraceIdr#   r>   r:   Úattemptc                ó€   — | j                   dk(  rt        | j                  «      S | j                  › d| j                   › �S )Nr   Ú_)rQ   rG   r>   ©r-   s    r/   r0   zTraceId.__str__…   s7   € à�<‰<˜1ÒÜ�t—‘Ó'Ð'à—o‘oÐ& a¨¯© ~Ð6Ð6r1   NrE   ©rJ   rK   rL   rM   r0   r4   r1   r/   rP   rP      s   … ØÓð ƒLô7r1   rP   c                  óx   — 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Zdd„Zdd„Zdd„Zdd„Zdd„Zy)ÚGuardSourcer   é   é   é   é   é   é   é   é   é	   é
   é   é   é   é   é   é   c                óF   — | t         j                  t         j                  fv S ©N)rW   ÚGLOBAL_FSDP_MODULEÚLOCAL_FSDP_MODULErT   s    r/   Úis_fsdp_modulezGuardSource.is_fsdp_module    s   € Øœ×6Ñ6¼×8UÑ8UÐVÐVÐVr1   c                óØ   — dd l mc m} |j                  r4| t        j
                  t        j                  fv xs | j                  «       S | t        j
                  t        j                  fv S )Nr   )Útorch._dynamo.configÚ_dynamoÚconfigÚ_unsafe_skip_fsdp_module_guardsrW   ÚGLOBAL_SPECIALIZED_NN_MODULEÚLOCAL_SPECIALIZED_NN_MODULErl   )r-   rp   s     r/   Úis_specialized_nn_modulez$GuardSource.is_specialized_nn_module£   sn   € ß-Ð-à×1Ò1àä×<Ñ<Ü×;Ñ;ððò )ð
 ×&Ñ&Ó(ðð Ü×4Ñ4Ü×3Ñ3ð
ð 
ð 	
r1   c                ó‚   — | t         j                  t         j                  t         j                  t         j                  fv S ri   )rW   ÚGLOBAL_UNSPECIALIZED_NN_MODULEÚLOCAL_UNSPECIALIZED_NN_MODULEÚ&GLOBAL_UNSPECIALIZED_BUILTIN_NN_MODULEÚ%LOCAL_UNSPECIALIZED_BUILTIN_NN_MODULErT   s    r/   Úis_unspecialized_nn_modulez&GuardSource.is_unspecialized_nn_module´   s8   € ØÜ×6Ñ6Ü×5Ñ5Ü×>Ñ>Ü×=Ñ=ð	
ð 
ð 	
r1   c                óF   — | t         j                  t         j                  fv S ri   )rW   rx   ry   rT   s    r/   Ú"is_unspecialized_builtin_nn_modulez.GuardSource.is_unspecialized_builtin_nn_module¼   s&   € ØÜ×>Ñ>Ü×=Ñ=ð
ð 
ð 	
r1   c                ó    — | t         j                  t         j                  t         j                  t         j                  t         j
                  fv S ri   )rW   ÚLOCALrs   rk   rw   ry   rT   s    r/   Úis_localzGuardSource.is_localÂ   sA   € ØÜ×ÑÜ×3Ñ3Ü×)Ñ)Ü×5Ñ5Ü×=Ñ=ð
ð 
ð 	
r1   N©rF   Úbool)rJ   rK   rL   r~   ÚGLOBALrs   rr   ÚCONSTANTÚRANDOM_VALUEÚ	SHAPE_ENVrk   rj   ÚBACKWARD_STATEÚ	EPHEMERALÚSYNTHETIC_LOCALrw   rv   ry   rx   Ú
TEMP_LOCALrl   rt   rz   r|   r   r4   r1   r/   rW   rW   �   sy   „ Ø€EØ€FØ"#ÐØ#$Ð Ø€HØ€LØ€IØÐØÐØ€NØ€IØ€OØ$&Ð!Ø%'Ð"Ø,.Ð)Ø-/Ð*Ø€JóWó
ó"
ó
ô
r1   rW   c                  ó   — e Zd Zy)ÚGuardBuilderBaseN©rJ   rK   rL   r4   r1   r/   r‹   r‹   Ú   s   „ Ør1   r‹   )r   c                  ó*   — e Zd ZU ded<   ded<   dd„Zy)ÚSLocz#traceback.FrameSummary | str | NoneÚframework_locrH   Úmaybe_user_locc                óÀ   — t        | j                  t        «      r| j                  nt        | j                  «      }| j                  �| j                  › d|› d�S d|› d�S )Nz (Ú)Ú()Ú
isinstancer�   rG   r   r�   )r-   Úflocs     r/   r0   zSLoc.__str__ã   sh   € ô ˜$×,Ñ,¬cÔ2ð ×Òä˜d×0Ñ0Ó1ð 	ð
 ×ÑÐ*Ø×)Ñ)Ð*¨"¨T¨F°!Ð4Ð4à�t�f˜A�;Ðr1   NrE   rU   r4   r1   r/   rŽ   rŽ   Þ   s   … à6Ó6ØÓô	r1   rŽ   c                  ó,   — e Zd ZU ded<   ded<   ded<   y)Ú
ShapeGuardzsympy.logic.boolalg.BooleanÚexprrŽ   Úslocr�   Úsize_obliviousN©rJ   rK   rL   rM   r4   r1   r/   r—   r—   ï   s   … Ø
%Ó%Ø
ƒJØÔr1   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ed<   d%d„Zd&d„Zd'd„Zd(d„Zed)d„«       Zed*d„«       Ze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y)/ÚGuardÚSourceÚoriginating_sourcez)Callable[[GuardBuilderBase, Guard], None]Ú	create_fnNzlist[str] | NoneÚguard_typesÚ	code_listzobject | NoneÚobj_weakrefú!weakref.ReferenceType[Any] | NoneÚguarded_class_weakrefzCapturedTraceback | NoneÚstackztraceback.StackSummary | NoneÚ
user_stackr$   Ú_hashFr�   Ú_unserializablec                ó¦   — | j                   €:t        | j                  | j                  t	        | j
                  «      f«      | _         | j                   S ri   )r¨   ÚhashÚnameÚsourceÚidr    rT   s    r/   Ú__hash__zGuard.__hash__  s:   € Ø�:‰:ÐÜ˜tŸy™y¨$¯+©+´r¸$¿.¹.Ó7IÐJÓKˆDŒJØ�z‰zÐr1   c                ó¦  — t        | j                  t        j                  «      xrD | j                  j                  t
        j                  j                  j                  j                  u }|| j                  r| j                  j                  ndt        | j                  «      | j                  | j                  «       j                  j                   fS )Néÿÿÿÿ)r”   r    Ú	functoolsÚpartialÚfuncÚtorchro   Ú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Ñ'8Ó9ò YØ—‘×#Ñ#¤u§}¡}×';Ñ';×'HÑ'H×'XÑ'XÐXð 	ð
 Ø!%§¢ˆD�K‰K×Ò°"Ü�—	‘	‹NØ�I‰IØ× Ñ Ó"×+Ñ+×:Ñ:ð
ð 	
r1   c                óD   — | j                  «       |j                  «       k  S ri   )r¿   ©r-   Úothers     r/   Ú__lt__zGuard.__lt__+  s   € Ø�}‰}‹ §¡Ó!1Ñ1Ð1r1   c                óŽ   — t        | j                  t        j                  «      r| j                  j                  S | j                  S ri   )r”   r    r²   r³   r´   rT   s    r/   r»   zGuard.inner_create_fn.  s0   € Ü�d—n‘n¤i×&7Ñ&7Ô8Ø—>‘>×&Ñ&Ð&à—>‘>Ð!r1   c                ó.   — | j                   j                  S ri   )rŸ   r¬   rT   s    r/   r¬   z
Guard.name4  s   € à×&Ñ&×+Ñ+Ð+r1   c                ó.   — | j                   j                  S ri   )rŸ   Úguard_sourcerT   s    r/   r­   zGuard.source8  s   € à×&Ñ&×3Ñ3Ð3r1   c           
     ó  — t        | t        j                  «      re | «       }|�Dd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__'
        z<weakref at z; to 'z' at Ú>z; dead>)r”   ÚweakrefÚReferenceTypeÚhexr®   Ú	__class__rJ   rG   )r£   Úobjs     r/   Úweakref_to_strzGuard.weakref_to_str<  s„   € ô  �k¤7×#8Ñ#8Ô9Ù“-ˆCØˆØ%¤c¬"¨[«/Ó&:Ð%;¸6À#Ç-Á-×BXÑBXÐAYÐY^Ô_bÔceÐfiÓcjÓ_kÐ^lÐlmÐnÐnà%¤c¬"¨[«/Ó&:Ð%;¸7ÐCÐCä�{Ó#Ð#r1   c                óZ  — d| j                   r$| j                   j                  j                  «       nd› dt        | j                  «      › d| j	                  «       j
                  › d| j                  › d| j                  › d| j                  | j                  «      › d| j                  › d�}|S )	Nz	
        r)   Ú z&
        {
            'guard_types': z,
            'code': z,
            'obj_weakref': z
            'guarded_class': z
        }
        )r­   r¬   ÚlowerÚreprr»   rJ   r¡   r¢   rÏ   r£   r¥   )r-   Úss     r/   Ú__repr__zGuard.__repr__U  s¯   € ð	Ø%)§[¢[ˆ�‰×	Ñ	×	Ñ	Ô	!°bÐ9¸¼4ÀÇ	Á	»?Ð:KÈ1ÈT×MaÑMaÓMc×MlÑMlÐLmð nà ×,Ñ,Ð-ð .Ø—^‘^Ð$ð %Ø ×/Ñ/°×0@Ñ0@ÓAÐBð CØ"×8Ñ8Ð9ð :	ðˆð ˆr1   c                ó¦  — dt        | j                  «      › d�}| j                  r$| j                  j                  j                  «       nd}|d|› d�z  }|d| j	                  «       j
                  › d�z  }|d| j                  › d�z  }|d| j                  › d�z  }|d| j                  | 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»   rJ   r¡   r¢   rÏ   r£   r¥   )r-   Úoutputr­   s      r/   r0   zGuard.__str__a  sé   € Øœ$˜tŸy™y›/Ð*¨"Ð-ˆØ-1¯[ª[�—‘×!Ñ!×'Ñ'Ô)¸bˆØ�L  ¨Ð+Ñ+ˆØÐ)¨$×*>Ñ*>Ó*@×*IÑ*IÐ)JÈ"ÐMÑMˆØÐ% d×&6Ñ&6Ð%7°rÐ:Ñ:ˆØ�O D§N¡NÐ#3°2Ð6Ñ6ˆØÐ(¨×)<Ñ)<¸T×=MÑ=MÓ)NÐ(OÈrÐRÑRˆØÐ/°×0JÑ0JÐ/KÈ2ÐNÑNˆØˆr1   c           	     óR  — 	 | j                  || «      S # t        $ r‰ t        j                  dt	        | «      j                  «       «       | j                  rNt        j                  ddj                  | j                  j                  «       dd  «      j                  «       «       ‚ w xY w)NzError while creating guard:
%szCreated at:
%sr)   éüÿÿÿ)
r    r<   ÚlogÚ	exceptionrG   Úrstripr¦   ÚerrorÚjoinÚformat)r-   Úbuilders     r/   ÚcreatezGuard.createl  s‚   € ð	Ø—>‘> '¨4Ó0Ð0øÜò 	Ü�M‰MÐ;¼SÀ»Y×=MÑ=MÓ=OÔPØ�zŠzÜ—	‘	Ð+¨R¯W©W°T·Z±Z×5FÑ5FÓ5HÈÈÐ5MÓ-N×-UÑ-UÓ-WÔXØð		ús
   ‚ ”BB&c                ó6   — | j                   j                  «       S ri   )r­   rt   rT   s    r/   rt   zGuard.is_specialized_nn_moduleu  s   € Ø�{‰{×3Ñ3Ó5Ð5r1   c                ó6   — | j                   j                  «       S ri   )r­   rl   rT   s    r/   rl   zGuard.is_fsdp_modulex  s   € Ø�{‰{×)Ñ)Ó+Ð+r1   c                ó6   — | j                   j                  «       S ri   )r­   r   rT   s    r/   r   zGuard.is_local{  s   € Ø�{‰{×#Ñ#Ó%Ð%r1   c                ó¾   — t        | j                  t        j                  «      r"| j                  j                  }|j
                  S | j                  }|j
                  S ri   )r”   r    r²   r³   r´   rJ   )r-   r    s     r/   Úcreate_fn_namezGuard.create_fn_name~  sJ   € Ü�d—n‘n¤i×&7Ñ&7Ô8ØŸ™×+Ñ+ˆIð ×!Ñ!Ð!ð Ÿ™ˆIØ×!Ñ!Ð!r1   c                óà  — | j                   sg | _         | j                   j                  |«       | j                  |d fvrt        d| j                  › d|› �«      ‚|| _        | j                  s|| _        n| j                  j                  |«       | j                  |d fv xs) t        | j                  «      xr | j                  «       d u }|st        d| j                  › d|› �«      ‚|| _        y )Nz1Guarded class id must be identical, or None, got z vs zHGuarded object must be identical, None or ephemeral (dead weakref), got )r¡   Úappendr¥   r,   r¢   Úextendr£   Úcallable)r-   Ú
guard_typeÚguarded_classr¢   r£   Úis_valids         r/   Úset_export_infozGuard.set_export_info…  s  € ð ×ÒØ!ˆDÔà×Ñ×Ñ 
Ô+à×%Ñ%¨m¸TÐ-BÑBÜ ðØ×1Ñ1Ð2°$°}°oðGóð ð &3ˆÔ"à�~Š~Ø&ˆD�Nà�N‰N×!Ñ! )Ô,ð ×Ñ ¨dÐ 3Ð3ò +Ü˜×(Ñ(Ó)ò +Ø× Ñ Ó" dÐ*ð 	ñ
 Ü ðØ×'Ñ'Ð(¨¨[¨Mð;óð ð 'ˆÕr1   ©rF   r:   )rF   ztuple[bool, int, int, str, int])rÂ   r�   rF   r�   )rF   z(Callable[[GuardBuilderBase, Guard], Any]rE   ©rF   rW   )r£   ÚobjectrF   rG   )rá   r‹   rF   r   r€   )
rì   rG   rí   r¤   r¢   ú	list[str]r£   rò   rF   ÚNone)rJ   rK   rL   rM   r¡   r¢   r£   r¥   r¦   r§   r¨   r©   r¯   r¿   rÃ   r»   Úpropertyr¬   r­   ÚstaticmethodrÏ   rÕ   r0   râ   rt   rl   r   rç   rï   r4   r1   r/   r�   r�   õ   s  … ð& ÓØ8Ó8ð %)€KÐ!Ó(Ø"&€IÐÓ&Ø!%€K�Ó%Ø?CÐÐ<ÓCà&*€EÐ#Ó*Ø04€JÐ-Ó4Ø€Eˆ:ÓØ!€O�TÓ!óó

ó 2ó"ð ò,ó ð,ð ò4ó ð4ð ò$ó ð$ó0
ó	óó6ó,ó&ó"ð&'àð&'ð 9ð&'ð ð	&'ð
 ð&'ð 
ô&'r1   r�   ÚTc                  ó   — e Zd Zy)ÚGuardEnvExprNrŒ   r4   r1   r/   rù   rù   ¸  s   „ àr1   rù   c                  ó*   — e Zd ZU ded<   ded<   dd„Zy)ÚDuplicateInputsrž   Úinput_source_aÚinput_source_bc                óf   — | j                   | j                  k(  rt        d| j                   › �«      ‚y )Nz9input_source_a and input_source_b must be different, got )rü   rý   r,   rT   s    r/   Ú__post_init__zDuplicateInputs.__post_init__È  s>   € Ø×Ñ $×"5Ñ"5Ò5Ü ðØ×*Ñ*Ð+ð-óð ð 6r1   N©rF   rô   )rJ   rK   rL   rM   rÿ   r4   r1   r/   rû   rû   Ã  s   … àÓØÓôr1   rû   c                  ó"   — e Zd ZU ded<   ded<   y)ÚStorageOverlapzlist[Source]Úoverlapping_sourcesÚnon_overlapping_sourcesNr›   r4   r1   r/   r  r  Þ  s   … à%Ó%Ø)Ô)r1   r  c                  ó0   — e Zd Zedd„«       Zedd„«       Zy)ÚCheckpointablec                 ó   — y ri   r4   rT   s    r/   Úcopy_graphstatezCheckpointable.copy_graphstateò  s   € Ø$'r1   c                 ó   — y ri   r4   ©r-   Ústates     r/   Úrestore_graphstatez!Checkpointable.restore_graphstateõ  s   € Ø47r1   N)rF   r÷   )r  r÷   rF   rô   )rJ   rK   rL   r   r  r  r4   r1   r/   r  r  ñ  s   „ ØÚ'ó Ø'àÚ7ó Ù7r1   r  c                  ó4   — e Zd ZU dZded<   dd„Zd	d„Zd
d„Zy)ÚGuardsCheckpointStatezW
    The GuardCheckpointState - it is the T of Checkpointable[T] for GuardsContext
    úOrderedSet[Guard]Údynamo_guardsc                ó   — || _         y ri   )r  )r-   r  s     r/   Ú__init__zGuardsCheckpointState.__init__   s
   € Ø*ˆÕr1   c                ón   — | j                   j                  |j                   «      }t        |«      dk(  ry|S )zÁ
        Produces a delta against another GuardsCheckpointState.

        Returns None if no delta is found, otherwise, return an OrderedSet() of mismatched
        Guard type objects.
        r   N)r  Ú
differencerº   ©r-   rÂ   Úrs      r/   ÚdiffzGuardsCheckpointState.diff  s3   € ð ×Ñ×)Ñ)¨%×*=Ñ*=Ó>ˆÜˆq‹6�QŠ;ØØˆr1   c                óJ   — t        |t        «      sy| j                  |«      d u S ©NF)r”   r  r  rÁ   s     r/   Ú__eq__zGuardsCheckpointState.__eq__  s$   € Ü˜%Ô!6Ô7ØØ�y‰y˜Ó 4Ð'Ð'r1   N)r  r  rF   rô   )rÂ   r  rF   úOptional[OrderedSet[Guard]]©rÂ   rò   rF   r�   )rJ   rK   rL   Ú__doc__rM   r  r  r  r4   r1   r/   r  r  ù  s   … ñð %Ó$ó+ó
ô(r1   r  c                  ó4   — e Zd ZU i Zded<   dd„Zdd„Zd	d„Zy)
ÚModuleContextCheckpointStateúdict[str, torch.nn.Module]Ú
nn_modulesc                ó   — || _         y ri   ©r!  )r-   r!  s     r/   r  z%ModuleContextCheckpointState.__init__  s	   € Ø$ˆ�r1   c                óÊ   — t        | j                  j                  «       «      j                  t        |j                  j                  «       «      «      }t	        |«      dk(  ry|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)Úsetr!  Úkeysr  rº   r  s      r/   r  z!ModuleContextCheckpointState.diff  sM   € ô �—‘×$Ñ$Ó&Ó'×2Ñ2´3°u×7GÑ7G×7LÑ7LÓ7NÓ3OÓPˆÜˆq‹6�QŠ;ØØˆr1   c                óJ   — t        |t        «      sy| j                  |«      d u S r  )r”   r  r  rÁ   s     r/   r  z#ModuleContextCheckpointState.__eq__'  ó$   € Ü˜%Ô!=Ô>ØØ�y‰y˜Ó 4Ð'Ð'r1   N)r!  r   rF   rô   )rÂ   r  rF   úset[str] | Noner  )rJ   rK   rL   r!  rM   r  r  r  r4   r1   r/   r  r    s   … Ø-/€JÐ*Ó/ó%ó
ô(r1   r  c                  ó$   — e Zd Zdd„Zdd„Zdd„Zy)ÚModuleContextc                ó   — i | _         y ri   r#  rT   s    r/   r  zModuleContext.__init__.  s	   € Ø*,ˆ�r1   c                ó>   — t        t        | j                  «      «      S ri   )r  Údictr!  rT   s    r/   r  zModuleContext.copy_graphstate1  s   € Ü+¬D°·±Ó,AÓBÐBr1   c                ót   — t        |t        «      st        dt        |«      › �«      ‚|j                  | _        y )Nz+expected ModuleContextCheckpointState, got )r”   r  r,   Útyper!  r
  s     r/   r  z ModuleContext.restore_graphstate4  s7   € Ü˜%Ô!=Ô>Ü Ø=¼dÀ5»k¸]ÐKóð ð  ×*Ñ*ˆ�r1   Nr   )rF   r  )r  r  rF   rô   ©rJ   rK   rL   r  r  r  r4   r1   r/   r+  r+  -  s   „ ó-óCô+r1   r+  c                  ó4   — e Zd ZU i Zded<   dd„Zdd„Zd	d„Zy)
ÚGlobalContextCheckpointStateúdict[str, tuple[Callable, Any]]Úglobal_statec                ó   — || _         y ri   ©r5  )r-   Úglobal_statess     r/   r  z%GlobalContextCheckpointState.__init__?  s
   € Ø)ˆÕr1   c                óÊ   — t        | j                  j                  «       «      j                  t        |j                  j                  «       «      «      }t	        |«      dk(  ry|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%  r5  r&  r  rº   r  s      r/   r  z!GlobalContextCheckpointState.diffB  sO   € ô �×!Ñ!×&Ñ&Ó(Ó)×4Ñ4´S¸×9KÑ9K×9PÑ9PÓ9RÓ5SÓTˆÜˆq‹6�QŠ;ØØˆr1   c                óJ   — t        |t        «      sy| j                  |«      d u S r  )r”   r3  r  rÁ   s     r/   r  z#GlobalContextCheckpointState.__eq__N  r(  r1   N)r8  r4  rF   rô   )rÂ   r3  rF   r)  r  )rJ   rK   rL   r5  rM   r  r  r  r4   r1   r/   r3  r3  <  s   … Ø46€LÐ1Ó6ó*ó
ô(r1   r3  c                  ó0   — e Zd ZdZh d£Zdd„Zdd„Zd	d„Zy)
Ú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_enabledc                ó   — i | _         y ri   r7  rT   s    r/   r  zGlobalContext.__init__c  s
   € Ø=?ˆÕr1   c                ó,   — t        | j                  «      S ri   )r3  r5  rT   s    r/   r  zGlobalContext.copy_graphstatef  s   € Ü+¨D×,=Ñ,=Ó>Ð>r1   c                óö  — t        |t        «      st        dt        |«      › �«      ‚|j                  | _        t        | j                  «      t        | j                  «      k(  r0t        | j                  j                  «       «      | j                  k(  s<t        dt        | j                  j                  «       «      › d| j                  › �«      ‚| j                  j                  «       D ]  \  }} ||«       Œ y )Nz+expected GlobalContextCheckpointState, got z Global state mismatch: got keys z, expected )
r”   r3  r,   r0  r5  rº   Ú_supported_global_statesr%  r&  Úvalues)r-   r  r´   Úargss       r/   r  z GlobalContext.restore_graphstatei  sÞ   € Ü˜%Ô!=Ô>Ü Ø=¼dÀ5»k¸]ÐKóð ð "×.Ñ.ˆÔä�×!Ñ!Ó"¤c¨$×*GÑ*GÓ&HÒHÜ�D×%Ñ%×*Ñ*Ó,Ó-°×1NÑ1NÒNä Ø2´3°t×7HÑ7H×7MÑ7MÓ7OÓ3PÐ2Qð RØ ×9Ñ9Ð:ð<óð ð ×+Ñ+×2Ñ2Ö4‰JˆD�$Ù��Jñ 5r1   Nr   )rF   r3  )r  r3  rF   rô   )rJ   rK   rL   r  rF  r  r  r  r4   r1   r/   r<  r<  T  s   „ ñò
 Ðó@ó?ôr1   r<  c                  ód   — e Zd Zddd„Zdd„Zdd„Zdd„Zdd„Zddd	œ	 	 	 	 	 	 	 dd
„Zdd„Z	dd„Z
y)Ú	GuardsSetNc                ó6   — |€t        «       | _        y || _        y ri   )r   Úinner)r-   rL  s     r/   r  zGuardsSet.__init__~  s   € Øˆ=Ü,6«LˆD�JàˆD�Jr1   c                ó,   — t        | j                  «      S ri   )ÚiterrL  rT   s    r/   Ú__iter__zGuardsSet.__iter__„  ó   € Ü�D—J‘JÓÐr1   c                ó,   — t        | j                  «      S ri   )rº   rL  rT   s    r/   Ú__len__zGuardsSet.__len__‡  s   € Ü�4—:‘:‹Ðr1   c                óF   — t        | j                  |j                  z
  «      S ri   )rJ  rL  rÁ   s     r/   Ú__sub__zGuardsSet.__sub__Œ  s   € Ü˜Ÿ™ e§k¡kÑ1Ó2Ð2r1   c                ó,   — t        | j                  «      S ri   )r�   rL  rT   s    r/   Ú__bool__zGuardsSet.__bool__�  rP  r1   Tr   )Úcollect_debug_stackÚskipc               óú   — || j                   v ry |r*|j                  €t        j                  d|z   ¬«      |_        |j                  €t
        j                  «       |_        | j                   j                  |«       y ©NrX   )rX  )rL  r¦   r   Úextractr§   ÚTracingContextÚextract_stackÚadd)r-   ÚguardrW  rX  s       r/   r^  zGuardsSet.add’  sc   € ð �D—J‘JÑØÙØ�{‰{Ð"Ü/×7Ñ7¸QÀ¹XÔF�”Ø×ÑÐ#Ü-×;Ñ;Ó=ˆEÔØ�
‰
�‰�uÕr1   c                óF   — |D ]  }|D ]  }| j                  |d¬«       Œ Œ y rZ  )r^  )r-   ÚothersÚoÚgs       r/   ÚupdatezGuardsSet.updatež  s&   € ÛˆAÛ�Ø—‘˜ �Õ#ñ ñ r1   c                ó\   ‡‡— ddl mŠ t        ˆˆfd„| j                  D «       «      | _        y)z.Delete all guards that contains a given sourcerX   )Úis_from_sourcec              3  óJ   •K  — | ]  } ‰|j                   ‰«      rŒ|–— Œ y ­wri   )rŸ   )Ú.0rc  rf  r­   s     €€r/   Ú	<genexpr>z6GuardsSet.remove_guards_with_source.<locals>.<genexpr>§  s$   øè ø€ ð  
Ù!�!©¸×8LÑ8LÈfÕ)UŒA‘zùs   ƒ#œ#N)Ú_dynamo.sourcerf  r   rL  )r-   r­   rf  s    `@r/   Úremove_guards_with_sourcez#GuardsSet.remove_guards_with_source£  s#   ù€ å2äô  
Ø—z’zó 
ó 
ˆ�
r1   ri   )rL  r  rF   rô   )rF   zIterator[Guard]rð   )rÂ   rJ  rF   rJ  r€   )r_  r�   rW  r�   rX  r:   rF   rô   )ra  z
set[Guard]rF   rô   )r­   rž   rF   rô   )rJ   rK   rL   r  rO  rR  rT  rV  r^  rd  rk  r4   r1   r/   rJ  rJ  }  sR   „ ôó óó
3ó ð <@ÈQñ
Øð
Ø48ð
ØGJð
à	ó
ó$ô

r1   rJ  c                  ó$   — e Zd Zdd„Zdd„Zdd„Zy)ÚGuardsContextc                ó0   — t        «       | _        g | _        y ri   )rJ  r  Úaotautograd_guardsrT   s    r/   r  zGuardsContext.__init__µ  s   € Ü(1«ˆÔØ68ˆÕr1   c                óR   — t        t        | j                  j                  «      «      S ri   )r  r   r  rL  rT   s    r/   r  zGuardsContext.copy_graphstate¹  s   € Ü$¤Z°×0BÑ0B×0HÑ0HÓ%IÓJÐJr1   c                ó†   — t        |t        «      st        dt        |«      › �«      ‚t	        |j
                  «      | _        y )Nz$expected GuardsCheckpointState, got )r”   r  r,   r0  rJ  r  r
  s     r/   r  z GuardsContext.restore_graphstate¼  s7   € ä˜%Ô!6Ô7Ü Ð#GÌÈUËÀ}Ð!UÓVÐVÜ& u×':Ñ':Ó;ˆÕr1   Nr   )rF   r  )r  r  rF   rô   r1  r4   r1   r/   rm  rm  ´  s   „ ó9óKô<r1   rm  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y	)ÚHopSubgraphCachec                 ó   — y ri   r4   ©r-   Úfn_idÚ
identifiers      r/   Úadd_dynamo_installed_submodulez/HopSubgraphCache.add_dynamo_installed_submoduleÄ  s   € ØSVr1   c                 ó   — y ri   r4   ©r-   rv  s     r/   Úget_dynamo_installed_submodulesz0HopSubgraphCache.get_dynamo_installed_submodulesÇ  ó   € ØHKr1   c                 ó   — y ri   r4   ©r-   rw  Úkeys      r/   Úadd_autograd_key_entryz'HopSubgraphCache.add_autograd_key_entryÊ  s   € ØNQr1   c                 ó   — y ri   r4   ©r-   rw  s     r/   Úget_autograd_key_entryz'HopSubgraphCache.get_autograd_key_entryÍ  s   € ØJMr1   c                 ó   — y ri   r4   r~  s      r/   Úadd_proxy_dispatch_entryz)HopSubgraphCache.add_proxy_dispatch_entryÐ  s   € ØPSr1   c                 ó   — y ri   r4   r‚  s     r/   Úget_proxy_dispatch_entryz)HopSubgraphCache.get_proxy_dispatch_entryÓ  s   € ØLOr1   c                 ó   — y ri   r4   )r-   rw  Útangent_metadataÚgmods       r/   Úadd_lazy_bwd_entryz#HopSubgraphCache.add_lazy_bwd_entryÖ  s   € ð r1   c                 ó   — y ri   r4   ©r-   rw  r‰  s      r/   Úget_lazy_bwd_entryz#HopSubgraphCache.get_lazy_bwd_entryÞ  s   € ð :=r1   N©rv  r:   rw  rG   rF   rô   ©rv  r:   rF   ró   ©rw  rG   r  r   rF   rô   ©rw  rG   rF   zCallable | None©rw  rG   r‰  útuple[object]rŠ  ztorch.fx.GraphModulerF   r:   ©rw  rG   r‰  r”  rF   z.tuple[torch.fx.GraphModule | None, int | None])rJ   rK   rL   r   rx  r{  r€  rƒ  r…  r‡  r‹  rŽ  r4   r1   r/   rs  rs  Ã  sº   „ ØÚVó ØVàÚKó ØKàÚQó ØQàÚMó ØMàÚSó ØSàÚOó ØOàðàðð (ðð #ð	ð
 
òó ðð ð=Øð=Ø1>ð=à	7ò=ó ñ=r1   rs  c                  ó€   — 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d
„Zdd„Zy)ÚInvokeSubgraphCachec                ó~   — i | _         i | _        t        t        «      | _        t        t
        «      | _        i | _        y ri   )Úautograd_cacheÚproxy_dispatch_cacher   ÚlistÚdynamo_installed_submodulesr.  Úlazy_bwd_cacheÚeffects_cacherT   s    r/   r  zInvokeSubgraphCache.__init__å  s>   € Ø35ˆÔØ9;ˆÔ!ÜALÌTÓARˆÔ(ô œÓð 	Ôð
 ð 	Õr1   c                ó@   — | j                   |   j                  |«       y ri   )rœ  ré   ru  s      r/   rx  z2InvokeSubgraphCache.add_dynamo_installed_submoduleð  s   € Ø×(Ñ(¨Ñ/×6Ñ6°zÕBr1   c                ó:   — | j                   j                  |g «      S ri   )rœ  Úgetrz  s     r/   r{  z3InvokeSubgraphCache.get_dynamo_installed_submodulesó  s   € Ø×/Ñ/×3Ñ3°E¸2Ó>Ð>r1   c                ó"   — || j                   |<   y ri   )r™  r~  s      r/   r€  z*InvokeSubgraphCache.add_autograd_key_entryö  s   € Ø*-ˆ×Ñ˜JÒ'r1   c                ó:   — | j                   j                  |d «      S ri   )r™  r¡  r‚  s     r/   rƒ  z*InvokeSubgraphCache.get_autograd_key_entryù  s   € Ø×"Ñ"×&Ñ& z°4Ó8Ð8r1   c                ó"   — || j                   |<   y ri   )rš  r~  s      r/   r…  z,InvokeSubgraphCache.add_proxy_dispatch_entryü  s   € Ø03ˆ×!Ñ! *Ò-r1   c                ó:   — | j                   j                  |d «      S ri   )rš  r¡  r‚  s     r/   r‡  z,InvokeSubgraphCache.get_proxy_dispatch_entryÿ  s   € Ø×(Ñ(×,Ñ,¨Z¸Ó>Ð>r1   c                ó^   — t        | j                  |   «      }||f| j                  |   |<   |S ri   )rº   r�  )r-   rw  r‰  rŠ  Ú	num_gmodss        r/   r‹  z&InvokeSubgraphCache.add_lazy_bwd_entry  s:   € ô ˜×+Ñ+¨JÑ7Ó8ˆ	Ø=AÀ9Ð<Mˆ×Ñ˜JÑ'Ð(8Ñ9ØÐr1   c                ó^   — || j                   vry| j                   |   j                  |d«      S )N)NN)r�  r¡  r�  s      r/   rŽ  z&InvokeSubgraphCache.get_lazy_bwd_entry  s4   € ð ˜T×0Ñ0Ñ0Øà×"Ñ" :Ñ.×2Ñ2Ð3CÀ\ÓRÐRr1   c           	     ó’   — | j                   j                  |d«      x}r||k7  rt        d|› d|› d|› d�«      ‚|| j                   |<   y)z>Store the effect types for a given invoke_subgraph identifier.NzPDifferent number of effects were found for invoke_subgraph call with identifier z,. 
Previously we had the following effects: z.
But now we have: Ú.)rž  r¡  r,   )r-   rw  ÚeffectsÚprev_effectss       r/   Úadd_effectszInvokeSubgraphCache.add_effects  sn   € à×-Ñ-×1Ñ1°*¸dÓCÐCˆ<ÐCØ˜,Ò&Ü$ð,Ø,6¨<ð 8@Ø@L¸~ð N(Ø(/ y°ð3óð ð *1ˆ×Ñ˜:Ò&r1   c                ó:   — | j                   j                  |d«      S )zARetrieve the effect types for a given invoke_subgraph identifier.N)rž  r¡  r‚  s     r/   Úget_effectszInvokeSubgraphCache.get_effects!  s   € à×!Ñ!×%Ñ% j°$Ó7Ð7r1   Nr   r�  r�  r‘  r’  r“  r•  )rw  rG   r«  r%  rF   rô   )rw  rG   rF   z
set | None)rJ   rK   rL   r  rx  r{  r€  rƒ  r…  r‡  r‹  rŽ  r­  r¯  r4   r1   r/   r—  r—  ä  s|   „ ó	óCó?ó.ó9ó4ó?ð	àð	ð (ð	ð #ð		ð
 
ó	ðSØðSØ1>ðSà	7óSó
1ô8r1   r—  c                  ó   — e Zd Zdd„Zdd„Zy)ÚHopDispatchSetCachec                ó2   — ddl m} |t        «       i| _        y )Nr   )Úinvoke_subgraph)Ú'torch._higher_order_ops.invoke_subgraphr³  r—  Úhop_cache_map)r-   r³  s     r/   r  zHopDispatchSetCache.__init__'  s   € åKà-Ô/BÓ/DÐEˆÕr1   c                ó>   — || j                   vry | j                   |   S ri   )rµ  )r-   Úops     r/   Ú	get_cachezHopDispatchSetCache.get_cache-  s$   € Ø�T×'Ñ'Ñ'ØØ×!Ñ! "Ñ%Ð%r1   Nr   )r·  ztorch._ops.HigherOrderOperatorrF   zHopSubgraphCache | None)rJ   rK   rL   r  r¸  r4   r1   r/   r±  r±  &  s   „ óFô&r1   r±  c                  ó\   — e Zd Zedd„«       Zedd„«       Zd	d„Zed
d„«       Zedd„«       Zy)ÚCompileContextc                 óX   — t         j                  €t        d«      ‚t         j                  S )Nzcompile_context is not set)Ú_TLSÚcompile_contextr,   r4   r1   r/   r¡  zCompileContext.getI  s&   € ä×ÑÐ'Ü Ð!=Ó>Ð>Ü×#Ñ#Ð#r1   c                 ó$   — t        t        dd «      S ©Nr½  ©Úgetattrr¼  r4   r1   r/   Útry_getzCompileContext.try_getO  ó   € ä”tÐ.°Ó5Ð5r1   c                ó€   — |�'t        |t        «      st        dt        |«      › �«      ‚|| _        d| _        g | _        y )Nz*compile_id must be None or CompileId, got r   )r”   r#   r,   r0  r>   rQ   Úshape_env_guards)r-   r>   s     r/   r  zCompileContext.__init__S  sF   € ØÐ!¬*°ZÄÔ*KÜ Ø<¼TÀ*Ó=MÐ<NÐOóð ð -7ˆŒØˆŒà+-ˆÕr1   c                 óH   — t         j                  «       } | €y | j                  S ri   )rº  rÂ  r>   rT   s    r/   Úcurrent_compile_idz!CompileContext.current_compile_id]  s"   € ä×%Ñ%Ó'ˆØˆ<ØØ�‰Ðr1   c                 óŠ   — t         j                  «       } | €y | j                  €y t        | j                  | j                  «      S ri   )rº  rÂ  r>   rP   rQ   rT   s    r/   Úcurrent_trace_idzCompileContext.current_trace_idd  s:   € ä×%Ñ%Ó'ˆØˆ<ØØ�?‰?Ð"ØÜ�t—‘¨¯©Ó5Ð5r1   N)rF   rº  )rF   úCompileContext | None)r>   rI   rF   rô   )rF   rI   )rF   zTraceId | None)	rJ   rK   rL   rö   r¡  rÂ  r  rÇ  rÉ  r4   r1   r/   rº  rº  H  sU   „ Øò$ó ð$ð
 ò6ó ð6ó.ð òó ðð ò6ó ñ6r1   rº  c                  ó0   — e Zd ZU dZded<   ded<   ded<   y)	ÚInlinedCodeCachez8Cache for code-object-derived data used during inlining.z	list[Any]Úinstructionszdict[Any, int]Úindexofúdict[str, Any]Úcode_optionsN)rJ   rK   rL   r  rM   r4   r1   r/   rÌ  rÌ  n  s   … áBàÓØÓØ Ô r1   rÌ  c                  ó6  — e Zd ZdZedd„«       Zedd„«       Zdd„Zdd„Zee	dd„«       «       Z
edd„«       Zdd„Zeej                  dd	„«       «       Zeej                  	 	 	 	 dd
„«       «       Zeej                  dd„«       «       Zedd„«       Zedd„«       Zy)r\  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.
    c                 ó$   — t        t        dd «      S )NÚtracing_contextrÀ  r4   r1   r/   rÂ  zTracingContext.try_get  rÃ  r1   c                 óH   — t         j                  «       x} r| S t        d«      ‚)Nz<TracingContext.get() must be called within an ongoing trace.)r\  rÂ  ÚRuntimeError)Úctxs    r/   r¡  zTracingContext.getƒ  s+   € ä ×(Ñ(Ó*Ð*ˆ3Ð*ØˆJÜØJó
ð 	
r1   c                óª  — t        «       | _        t        «       | _        t	        «       | _        t        «       | _        t        «       | _        t        «       | _	        || _
        g | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d| _        t+        «       | _        d| _        t1        «       | _        g | _        y r  )rm  Úguards_contextr+  Úmodule_contextr<  Úglobal_contextr.  Úpreviously_inlined_functionsÚpreviously_cleaned_instructionsÚinlined_code_cacheÚ	fake_modeÚframe_summary_stackÚloc_in_frameÚfw_metadataÚddp_optimizer_ctxÚ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ˆÔÜ<@»FˆÔ)Ü?C»vˆÔ,ä?C»vˆÔØ09ˆŒØACˆÔ ð :>ˆÔà7;ˆÔà=AˆÔà04ˆÔØ-1ˆÔØ?CˆÔ*Ø@DˆÔ+ð DHˆÔð 49ˆÔ0ä!8Ó!:ˆÔð
 "'ˆÔÜ&9Ó&;ˆÔ#à+-ˆÕr1   c                óÂ   — i | j                   _        | j                  j                  «        | j                  j                  «        | j
                  j                  «        y ri   )rÚ  r5  rÛ  ÚclearrÜ  rÝ  rT   s    r/   rî  zTracingContext.clearÀ  sH   € ð ,.ˆ×ÑÔ(Ø×)Ñ)×/Ñ/Ô1Ø×,Ñ,×2Ñ2Ô4Ø×Ñ×%Ñ%Õ'r1   c               +  óV  K  — i }t         j                  «       }| D ]  }t        ||«      ||<   Œ | j                  «       D ]  \  }}t	        |||«       Œ 	 d –— |j                  «       D ]  \  }}t	        |||«       Œ y # |j                  «       D ]  \  }}t	        |||«       Œ w xY w­wri   )r\  r¡  rÁ  r9   Úsetattr)ÚkwargsÚpriorrÖ  r  Úvals        r/   ÚpatchzTracingContext.patchÈ  sŸ   è ø€ ð ˆÜ× Ñ Ó"ˆãˆCä   cÓ*ˆE�#ŠJð ð Ÿ™ž‰HˆC�Ü�C˜˜cÕ"ð 'ð	'Ûà!ŸK™KžM‘��SÜ˜˜S #Õ&ñ *ø˜EŸK™KžM‘��SÜ˜˜S #Õ&ñ *üs   ‚AB)ÁA? Á&B)Á?'B&Â&B)c                 óì   — t         j                  «       } | €t        j                  «       S | j                  }| j
                  �|| j                  «       gz   }t        j                  j                  |«      S ri   )r\  rÂ  Ú	tracebackÚStackSummaryrß  rà  Ú_populate_loc_in_frame_summaryÚ	from_list)r-   r¦   s     r/   r]  zTracingContext.extract_stackÙ  sh   € ä×%Ñ%Ó'ˆØˆ<Ü×)Ñ)Ó+Ð+Ø×(Ñ(ˆØ×ÑÐ(Ø˜T×@Ñ@ÓBÐCÑCˆEÜ×%Ñ%×/Ñ/°Ó6Ð6r1   c                ó‚   — | j                   €t        d«      ‚| j                   \  }}}t        j                  |||d¬«      S )Nzloc_in_frame must not be NoneF)Úlookup_line)rà  r,   rö  ÚFrameSummary)r-   ÚfilenameÚlinenoÚ
frame_names       r/   rø  z-TracingContext._populate_loc_in_frame_summaryã  sD   € Ø×ÑÐ$Ü Ð!@ÓAÐAØ'+×'8Ñ'8Ñ$ˆ�&˜*Ü×%Ñ% h°¸
ÐPUÔVÐVr1   c               #  óŠ  K  — t         j                  «       } t        j                  j                  j                  | dg «      5  t        j                  j                  j                  | dd «      5  	 d –— 	 d d d «       d d d «       y # t        $ r}t        |d«      sd |_        ‚ d }~ww xY w# 1 sw Y   Œ7xY w# 1 sw Y   y xY w­w)Nrß  rà  Ú
real_stack)	r\  r¡  ÚunittestÚmockrô  rò   r<   Úhasattrr  )ÚtcrC   s     r/   Úclear_framezTracingContext.clear_frameë  s¡   è ø€ ô ×ÑÓ!ˆä�M‰M×Ñ×&Ñ& rÐ+@À"ÕEÜ�M‰M×Ñ×&Ñ& r¨>¸4Õ@ðÜ÷ A÷ FÐEøô
 ò ô$ ˜q ,Ô/Ø#'�A”LØûð)ú÷	 AÐ@ú÷ FÐEüsT   ‚A CÁ,B7Á.B+Á0BÁ5B7Á=	CÂ	B(ÂB#Â#B(Â(B+Â+B4	Â0B7Â7C Â<Cc              #  óœ  K  — t         j                  «       }| �|j                  j                  | «       |j                  }d |_        	 d –— 	 | �|j                  j                  «        ||_        y # t
        $ r'}t        |d«      s|j                  «       |_        ‚ d }~ww xY w# | �|j                  j                  «        ||_        w xY w­w)Nr  )
r\  r¡  rß  ré   rà  r<   r  r]  r  Úpop)Úframe_summaryr  ÚoldrC   s       r/   Úcurrent_framezTracingContext.current_frame  s¹   è ø€ ô ×ÑÓ!ˆØÐ$Ø×"Ñ"×)Ñ)¨-Ô8Ø�o‰oˆØˆŒð		"Üð Ð(Ø×&Ñ&×*Ñ*Ô,Ø!ˆB�Oøô ò 	Ü˜1˜lÔ+Ø!×/Ñ/Ó1�”Øûð	ûð
 Ð(Ø×&Ñ&×*Ñ*Ô,Ø!ˆB�Oüs6   ‚ACÁA1 Á$CÁ1	B!Á:"BÂB!Â!B$ Â$%C	Ã	Cc               #  ó¬   K  — t         j                  «       } | €d –— y | j                  }g | _        	 | j                  –— || _        y # || _        w xY w­wri   )r\  rÂ  rç  )r  Úold_output_stridess     r/   Úreport_output_stridesz$TracingContext.report_output_strides"  sY   è ø€ ô
 ×#Ñ#Ó%ˆØˆ:ØŠJØØ×.Ñ.ÐØˆÔð	3Ø×#Ñ#Ò#à 2ˆBÕøÐ 2ˆBÕüs   ‚/A²A Á AÁ	AÁAc                ó<   — | ||ft         j                  «       _        y ri   )r\  r¡  rà  )rý  rþ  rÿ  s      r/   Úset_current_loczTracingContext.set_current_loc2  s   € ð .6°v¸zÐ,JŒ×ÑÓÕ)r1   c                 óH   — t         j                  «       } | €y | j                  S ri   )r\  rÂ  rì  )r  s    r/   Úget_traced_codezTracingContext.get_traced_code8  s"   € ä×#Ñ#Ó%ˆØˆ:ØØ�~‰~Ðr1   N)rF   úTracingContext | None)rF   r\  )rÞ  úFakeTensorMode | NonerF   rô   r   )rñ  r   rF   úGenerator[None, None, None])rF   ztraceback.StackSummary)rF   ztraceback.FrameSummary)rF   r  )r	  ztraceback.FrameSummary | NonerF   r  )rF   z:Generator[list[tuple[int, ...] | None] | None, None, None])rý  rG   rþ  r:   rÿ  rG   rF   rô   )rF   zlist[CodeType] | None)rJ   rK   rL   r  rö   rÂ  r¡  r  rî  r   rô  r]  rø  Ú
contextlibr  r  r  r  r  r4   r1   r/   r\  r\  w  s  „ ñð ò6ó ð6ð ò
ó ð
ó3.ój(ð Øò'ó ó ð'ð ò7ó ð7óWð Ø×Ñòó ó ðð< Ø×Ñð"Ø4ð"à	$ò"ó ó ð"ð* Ø×Ñò3ó ó ð3ð òKó ðKð
 òó ñr1   r\  c              #  ó„   K  — t        t        dd «      }| t        _        	 | –— |t        _        y # |t        _        w xY w­wr¿  )rÁ  r¼  r½  )ÚcontextÚold_contexts     r/   r½  r½  @  s9   è ø€ ô œ$Ð 1°4Ó8€KØ"„DÔð+ØŠà*ŒÕø˜{ŒÕüs   ‚A  0 ¤A °=½A c              #  ó  K  — t        t        dd«      }| t        _        	 | –— 	 | �F| j                  �:| j                  j                  �$| j                  j                  j                  «        |t        _        y# t        $ r)}t	        |d«      s| �| j                  «       |_        ‚ d}~ww xY w# | �F| j                  �:| j                  j                  �$| j                  j                  j                  «        |t        _        w xY w­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Ó  r<   r  r]  r  rÞ  Ú	shape_envÚcleanup)r  r  rC   s      r/   Útracingr  L  sé   è ø€ ô œ$Ð 1°4Ó8€KØ"„DÔð+Ø‹ð ÐØ×!Ñ!Ð-Ø×!Ñ!×+Ñ+Ð7à×Ñ×'Ñ'×/Ñ/Ô1Ø*ŒÕøô ò Ü�q˜,Ô'¨GÐ,?Ø"×0Ñ0Ó2ˆAŒLØûðûð ÐØ×!Ñ!Ð-Ø×!Ñ!×+Ñ+Ð7à×Ñ×'Ñ'×/Ñ/Ô1Ø*ŒÕüs5   ‚D A9 ¥ADÁ9	B+Â$B&Â&B+Â+B. Â.ADÄDc                 ó   — y ri   r4   ©r=   rñ  s     r/   Údataclass_with_cached_hashr   i  r|  r1   c                 ó   — y ri   r4   r  s     r/   r   r   m  s   € ð $'r1   c                ó(   ‡— dˆfd„}| €|S  || «      S )Nc                ó|   •‡— t        j                  | fi ‰¤Ž}| j                  Šdˆfd„}d„ }||_        ||_        |S )Nc                ón   •— t        | d«      st        j                  | d ‰| «      «       | j                  S )Nr¨   )r  rò   Ú__setattr__r¨   )r-   Úold_hashs    €r/   r¯   z:dataclass_with_cached_hash.<locals>.wrap.<locals>.__hash__{  s-   ø€ Ü˜4 Ô)Ü×"Ñ" 4¨±(¸4³.ÔAØ—:‘:Ðr1   c                ór   ‡ — t        j                  ‰ «      }t        ˆ fd„|D «       «      }‰ j                  |fS )Nc              3  óJ   •K  — | ]  }t        ‰|j                  «      –— Œ y ­wri   )rÁ  r¬   )rh  Úfr-   s     €r/   ri  zOdataclass_with_cached_hash.<locals>.wrap.<locals>.__reduce__.<locals>.<genexpr>…  s   øè ø€ Ð GÁ¸1¤¨¨q¯v©v×!6Áùs   ƒ #)ÚdataclassesÚfieldsÚtuplerÍ   )r-   r+  Úfield_valuess   `  r/   Ú
__reduce__z<dataclass_with_cached_hash.<locals>.wrap.<locals>.__reduce__€  s4   ø€ ô !×'Ñ'¨Ó-ˆFÜ Ó GÁÓ GÓGˆLØ—N‘N LÐ1Ð1r1   rð   )r*  r   r¯   r.  )Ú	cls_innerÚnew_clsr¯   r.  r&  rñ  s       @€r/   Úwrapz(dataclass_with_cached_hash.<locals>.wrapw  sD   ù€ Ü×'Ñ'¨	Ñ<°VÑ<ˆØ×%Ñ%ˆõ	ò
	2ð $ˆÔØ'ˆÔØˆr1   )r/  útype[T]rF   r2  r4   )r=   rñ  r1  s    ` r/   r   r   s  s   ø€ õð* €{Øˆá�‹9Ðr1   c                  ó²   — e Zd Zdd„Zdd„Zdd„Zej                  dd„«       Ze	dd„«       Z
ej                  dd„«       Z	 	 	 	 	 	 	 	 dd„Zdd„Zdd	„Zdd
„Zy)rž   c                 ó   — yr  r4   rT   s    r/   Úis_dict_keyzSource.is_dict_key–  ó   € Ør1   c                 ó   — yr  r4   rT   s    r/   Úis_ephemeralzSource.is_ephemeral™  r6  r1   c                ó   — t         ‚ri   ©ÚNotImplementedError)r-   Úcodegens     r/   ÚreconstructzSource.reconstructœ  s   € Ü!Ð!r1   c                ó   — t         ‚ri   r:  rT   s    r/   rÇ   zSource.guard_sourceŸ  s   € ä!Ð!r1   c                ó   — t         ‚)aº  
        A template for the name of the source. Used to prevent code duplication between
        `name` and `get_value`.

        For non-ChainedSources, `name` and `get_value` use the returned string directly.

        For ChainedSources, `name` and `get_value` expect the return to be a format string
        with `{0}` present - `name` and `get_value` will apply different values to this function's
        returned format string.
        r:  rT   s    r/   Ú_name_templatezSource._name_template£  s
   € ô "Ð!r1   c                ó   — | j                   S ri   )r@  rT   s    r/   r¬   zSource.name±  s   € à×"Ñ"Ð"r1   c                óP   — | |v r||    S t        | j                  ||«      }||| <   |S ri   )Úevalr@  )r-   ÚglobalsÚlocalsÚcacher¹   s        r/   Ú	get_valuezSource.get_valueµ  s7   € ð �5‰=Ø˜‘;ÐÜ�T×(Ñ(¨'°6Ó:ˆØˆˆd‰Øˆr1   c                ó^   — | j                   t        j                  u rt        ‚t	        | |«      S ri   )rÇ   rW   rƒ   r;  r�   )r-   Úfns     r/   Ú
make_guardzSource.make_guardÁ  s(   € Ø×Ñ¤× 4Ñ 4Ñ4Ü%Ð%Ü�T˜2‹Ðr1   c                ó6   — | j                   j                  «       S ri   )rÇ   rt   rT   s    r/   rt   zSource.is_specialized_nn_moduleÆ  s   € Ø× Ñ ×9Ñ9Ó;Ð;r1   c                ó<   — | j                   t        j                  k7  S )z+True if you can guard on attributes of this)rÇ   rW   rˆ   rT   s    r/   Úsubguards_allowedzSource.subguards_allowedÉ  s   € à× Ñ ¤K×$?Ñ$?Ñ?Ð?r1   Nr€   )r<  r   rF   rô   rñ   rE   ©rD  rÏ  rE  rÏ  rF  z&weakref.WeakKeyDictionary[Source, Any]rF   r   )rI  zCallable[..., Any]rF   r�   )rJ   rK   rL   r5  r8  r=  r²   Úcached_propertyrÇ   rõ   r@  r¬   rG  rJ  rt   rM  r4   r1   r/   rž   rž   ”  s”   „ óóó"ð ×Ñò"ó ð"ð ò"ó ð"ð ×Ñò#ó ð#ð
àð
ð ð
ð 6ð	
ð
 
ó
óó
<ô@r1   rž   c                  ó”   — e Zd ZU ded<   d
d„Zd
d„Zej                  dd„«       Zdd„Z	ej                  dd„«       Z
	 	 	 	 	 	 	 	 dd„Zy	)ÚChainedSourcerž   Úbasec                ó6   — | j                   j                  «       S ri   )rR  r5  rT   s    r/   r5  zChainedSource.is_dict_keyÓ  s   € à�y‰y×$Ñ$Ó&Ð&r1   c                ó6   — | j                   j                  «       S ri   )rR  r8  rT   s    r/   r8  zChainedSource.is_ephemeral×  s   € Ø�y‰y×%Ñ%Ó'Ð'r1   c                ó.   — | j                   j                  S ri   )rR  rÇ   rT   s    r/   rÇ   zChainedSource.guard_sourceÚ  s   € à�y‰y×%Ñ%Ð%r1   c                ód   — | }t        |t        «      r|j                  }t        |t        «      rŒ|S ri   )r”   rQ  rR  )r-   Úcurrents     r/   Úget_basezChainedSource.get_baseÞ  s+   € ØˆÜ˜¤-Ô0Ø—l‘lˆGô ˜¤-Õ0àˆr1   c                ó`   — | j                   j                  | j                  j                  «      S ri   )r@  rà   rR  r¬   rT   s    r/   r¬   zChainedSource.nameä  s!   € à×"Ñ"×)Ñ)¨$¯)©)¯.©.Ó9Ð9r1   c                óâ   — | |v r||    S d}d}||v rd|› �}|dz  }||v rŒ| j                   j                  |||«      ||<   t        | j                  j	                  |«      ||«      }||= ||| <   |S )NÚtmpr   rX   )rR  rG  rC  r@  rà   )r-   rD  rE  rF  ÚtmpvarÚcounterr¹   s          r/   rG  zChainedSource.get_valueè  s—   € ð �5‰=Ø˜‘;ÐØˆØˆØ˜ÑØ˜7˜)�_ˆFØ�q‰LˆGð ˜Òð Ÿ™×,Ñ,¨W°f¸eÓDˆˆv‰Ü�T×(Ñ(×/Ñ/°Ó7¸À&ÓIˆØ�6ˆNØˆˆd‰Øˆr1   Nr€   rñ   )rF   rž   rE   rN  )rJ   rK   rL   rM   r5  r8  r²   rO  rÇ   rX  r¬   rG  r4   r1   r/   rQ  rQ  Ï  su   … à
ƒLó'ó(ð ×Ñò&ó ð&óð ×Ñò:ó ð:ðàðð ðð 6ð	ð
 
ôr1   rQ  c                óX  — ddl m}m}m} t        j                  «       x}r|j                  }|�|S g }ddlm} t        t         |«       «      «      D ]&  \  }}	t        |	|«      sŒ|j                  |	d|f«       Œ( t        j                  | «      }
t        |
«      D ]   \  }}t        ||«      r|j                  |j                  d|f«       t        |«      sŒ<g } |||¬«       |D �cg c]  }t        ||«      sŒ|‘Œ }}|j!                  t        |«      D ��cg c]  \  }}|j                  d|› �|f‘Œ c}}«       Œ¢ |r`|d   \  }}}|d	d D ]M  \  }	}}||	usŒt#        d
|› d|› d|› d|	› d|› d|› d|› d|› d|j$                  › d|› d|› d|	j$                  › �«      ‚ |S yc c}w c c}}w )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   )Ú
FakeTensorr   Úget_plain_tensorsN©Ú _get_current_dispatch_mode_stackzactive fake modezfake tensor input)Úoutzsubclass input rX   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   r`  r\  rÂ  rÞ  Útorch.utils._python_dispatchrb  Ú	enumerateÚreversedr”   ré   ÚpytreeÚtree_leavesr   rê   r,   r¦   )Úinputsr_  r   r`  r  rÞ  Ú
fake_modesrb  ÚiÚmÚflat_inputsÚ
flat_inputrc  ÚxÚfake_tensorsÚixÚtensorÚdesc1Úi1Údesc2Úi2s                        r/   Údetect_fake_moderx  ü  s  € ÷ñ ô !×(Ñ(Ó*Ð*€wÐ*Ø×%Ñ%ˆ	ØÐ ØÐà€JåMäœ(Ñ#CÓ#EÓFÖG‰ˆˆ1Ü�a˜Õ(Ø×Ñ˜qÐ"4°aÐ8Õ9ð Hô ×$Ñ$ VÓ,€KÜ" ;Ö/‰ˆˆ:Ü�j *Ô-Ø×Ñ˜z×3Ñ3Ð5HÈ!ÐLÔMÜ(¨Õ4Ø;=ˆCÙ˜j¨cÕ2áó.Ù�a¤*¨Q°
Õ";’˜3ð ð .ð ×Ñô '0°Ô&=ôá&=™
˜˜Fð ×%Ñ%¨¸¸Ð'<¸bÒAØ&=òõð 0ñ  Ø)¨!™}Ñˆ	�5˜"Ø& q r›N‰LˆAˆu�bØ Ò!Ü$Ø! ) ¨G°E°7¸!¸B¸4Ð?TÐUVÐTWÐW^Ð_dÐ^eÐefÐgiÐfjð k&Ø&+ W¨A¨b¨TÐ1AÀ)Ç/Á/ÐARð S&Ø&+ W¨A¨b¨TÐ1AÀ!Ç'Á'ÀðLóð ð +ð Ðàùò-.ùós   Ã'F!Ã9F!ÄF&c                 ó~   — ddl m}  ddlm} t	        t         |«       «      «      D ]  \  }}t        || «      sŒ|c S  y)z~
    Inspects the dispatch mode stack for an active fake mode and returns it.
    Returns None if no fake mode is active.
    r   r   ra  N)rd  r   re  rb  rf  rg  r”   )r   rb  rS   rm  s       r/   Úactive_fake_moderz  =  s;   € õ
 =ÝMäœ(Ñ#CÓ#EÓFÖG‰ˆˆ1Ü�a˜Õ(ØŠHð Hð r1   )r  rÊ  rF   z,Generator[CompileContext | None, None, None])r  r  rF   z,Generator[TracingContext | None, None, None])r=   r2  rñ  r   rF   r2  ri   )r=   rô   rñ  r   rF   zCallable[[type[T]], type[T]])r=   ztype[T] | Nonerñ  r   rF   z&type[T] | Callable[[type[T]], type[T]])rj  r   rF   r  )rF   r  )bÚ
__future__r   r  r*  Úenumr²   ÚloggingÚreÚ	threadingrö  Úunittest.mockr  rÊ   Úabcr   Úcollectionsr   r   r   Útypingr   r	   r
   r   r   r   r   Útyping_extensionsr   rµ   Útorch.utilsr   rh  Útorch.utils._ordered_setr   re  r   Útorch.utils._tracebackr   r   Útorch.utils.weakr   Ú	getLoggerrJ   rÛ   Úcollections.abcr   r   r   Útypesr   ÚsympyÚ"torch._dynamo.backends.distributedr   Útorch._dynamo.codegenr   Ú&torch._functorch._aot_autograd.schemasr   rd  r   Úcompiler5   r6   r#   rP   ÚEnumrW   r‹   rŽ   r—   r�   r÷   rù   rû   r  r  r  r  r+  r3  r<  rJ  rm  rs  r—  r±  Úlocalr¼  rº  rÌ  r\  r½  r  r   rž   rQ  rx  rz  r4   r1   r/   Ú<module>r“     s×  ðÝ "ã Û Û Û Û Û 	Û Û Û Û Ý Ý #Ý %Ý !ß W× WÑ WÝ 1ã Ý )Ý /Ý Fß BÝ 4ð €g×Ñ˜Ó!€ñ ß=Ñ=ÝãåFÝ/ÝJÝ<ðð  �R—Z‘ZÐ PÓQÐ Ø"˜Ÿ
™
ØXóÐ ñ" �$ ¨DÔ1÷7Jð 7Jó 2ð7Jôt7ˆjô 7ô<
�$—)‘)ô <
ð~÷	ñ 	ð €×Ñ˜dÔ#÷ð ó $ðô �ô ð €×Ñ˜TÔ"÷u'ð u'ó #ðu'ñp ˆCƒL€ðð €×Ñ˜dÔ#÷	ð 	ó $ð	ðð €×Ñ˜dÔ#ô	�ló 	ó $ð	ðð €×Ñ˜dÔ#ô*�\ó *ó $ð*ð

ô8�W˜Q‘Zô 8÷(ñ (÷8(ñ (ô0+�NÐ#?Ñ@ô +÷(ñ (ô0$�NÐ#?Ñ@ô $÷R,
ñ ,
ð^ô<�NÐ#8Ñ9ô <÷=ñ =ôB?8Ð*ô ?8÷D
&ñ 
&ð €y‡�Ó€ð÷&#6ñ #6ðL ÷!ð !ó ð!÷Fñ FðR ð+Ø"ð+à1ò+ó ð+ð ð+Ø"ð+à1ò+ó ð+ð8 
Ú Kó 
Ø Kð 
àð'Ø	ð'Ø #ð'à!ò'ó 
ð'ñ
 ÓàðØ	ðØ*-ðà+òó ðñ@  4Ô(÷6@ð 6@ó )ð6@ñt  4Ô(ô)�Fó )ó )ð)ôX>ôBr1   