ó
    CC˜jîÚ ã                   óâ  • S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKrSSKrSSKJrJr  SSK	Jr  SSKJr  SSKJrJrJrJr  SSKrSSKJr  SSKJs  J r!  SSK"J#r#  SSK$J%r%  SS	K&J'r'  S
SK(J)r)J*r*J+r+J,r,  S
SK-J.r.J/r/J0r0  S
SK1J2r2  S
SK3J4r4J5r5J6r6J7r7  S
SK8J9r9J:r:  S
SK;J<r<  S
SK=J>r>J?r?J@r@JArAJBrBJCrC  S
SKJDrDJErEJFrFJGrGJHrHJIrIJJrJJKrK  SSKLJMrMJNrNJOrOJPrPJQrQJRrRJSrS  SSKTJUrU  SSKVJWrWJXrX  SSKYJZrZ  SSK[J\r\J]r]J^r^  \(       a  SSK_J`r`  SSKaJbrb   " S S\S5      rc " S S\S5      rd " S S \S5      re " S! S"\S5      rf " S# S$\f5      rg " S% S&\f5      rh " S' S(\h5      ri " S) S*\h5      rj " S+ S,\S5      rk " S- S.\k5      rl " S/ S0\S5      rm " S1 S2\S5      rn " S3 S4\S5      roS5\S6\S7\4   4S8 jrp " S9 S:\S5      rq\Rä                   " S; S<5      5       rs " S= S>\^5      rt " S? S@\^5      ru " SA SB\S5      rv " SC SD\S5      rw " SE SF\S5      rx " SG SH\S5      ry " SI SJ\S5      rz\Rö                  " SSK9S6\|\R&                  \Rú                  4   4SL j5       r~\Rö                  " SSK9S6\|\Rú                  \R&                  4   4SM j5       r " SN SO\S5      r€ " SP SQ\S5      r� " SR SS\S5      r‚ " ST SU\S5      rƒ " SV SW\S5      r„\GR
                  SX:¼  a   " SY SZ\S5      r† " S[ S\\S5      r‡ " S] S^\S5      rˆ " S_ S`\S5      r‰ " Sa Sb\S5      rŠ " Sc Sd\Š5      r‹\GR                  \Š\GR                  \Š\GR                  \‹0r� " Se Sf\S5      r� " Sg Sh\S5      r‘ " Si Sj\S5      r’ " Sk Sl\S5      r“g)maÎ  
This module contains miscellaneous variable tracker implementations for various Python types
and features used in Dynamo's symbolic execution. These classes help track and propagate
information about different kinds of variables during graph capture.

Key classes include:
- SuperVariable: Handles super() calls and method resolution
- ExceptionVariable: Tracks exception objects
- RandomVariable: Manages random number generators
- GetAttrVariable: Tracks attribute access
- MethodWrapperVariable: Handles method wrappers
- PythonModuleVariable: Tracks Python modules
- NumpyVariable: Handles numpy functions and types
- StringFormatVariable: Manages string formatting
- DebuggingVariable: Handles print and logging
é    N)ÚCallableÚSequence)ÚRandom)ÚBuiltinFunctionType)ÚAnyÚTYPE_CHECKINGÚ	TypeGuardÚUnion)ÚMutationType©ÚTupleVariable)ÚSourceé   )ÚconfigÚgraph_break_hintsÚtrace_rulesÚ	variables)Úcreate_call_functionÚcreate_call_function_exÚcreate_instruction)Ú$do_not_convert_to_tracable_parameter)Úraise_observed_exceptionÚraise_type_errorÚraise_value_errorÚunimplemented)ÚGuardBuilderÚinstall_guard)Úunpatched_nn_module_init)Ú
AttrSourceÚGenericAttrSourceÚGetItemSourceÚTypeMROSourceÚ
TypeSourceÚWeakRefCallSource)Úcheck_positionalÚcheck_unspec_or_constant_argsÚidentityÚistypeÚno_keywordsÚproxy_args_kwargsÚraise_args_mismatchÚunpack_iterableé   )Ú#AsPythonConstantNotImplementedErrorÚgetset_buildÚgetset_readÚMemberÚMethodÚNO_SUCH_SUBOBJÚVariableTracker)ÚConstantVariable)ÚNestedUserFunctionVariableÚUserFunctionVariable)Úgeneric_str)Úcall_random_fnÚis_standard_setattrÚUserDefinedObjectVariable)Ú	PyCodegen)ÚInstructionTranslatorBasec            
       óö   ^ • \ rS rSr\r1 \R                  kr SS\S\S-  S\SS4U 4S jjjr	S\
4S jrSU 4S	 jjrS
SS\S\\\S-  4   4U 4S jjrS
SS\S\4S jrS
SS\S\\   S\\\4   S\4
S jrSrU =r$ )ÚSuperVariableéa   NÚtypevarÚobjvarÚkwargsÚreturnc                 ó>   >• [         TU ]  " S0 UD6  Xl        X l        g ©N© )ÚsuperÚ__init__rA   rB   )ÚselfrA   rB   rC   Ú	__class__s       €ÚªC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\torch/_dynamo/variables/misc.pyrI   ÚSuperVariable.__init__i   s#   ø€ ô 	‰ÒÑ"˜6Ò"ð Œð
 �ó    c                 ó"   • [         R                  $ ©N)ÚbuiltinsrH   ©rJ   s    rL   Úpython_typeÚSuperVariable.python_typez   s   € Ü�~‰~ÐrN   c                 ó  >^• TR                  UU4S j5        T" U R                  5        U R                  b.  T" U R                  5        TR                  [	        SS5      5        g TR                  [	        SS5      5        g )Nc                  óD   >• T" [         R                  " [        5      5      $ rP   )r   ÚBuiltinVariablerH   )rK   Úcodegens   €€rL   Ú<lambda>Ú+SuperVariable.reconstruct.<locals>.<lambda>~   s   ø€ ¡g¬i×.GÒ.GÌÓ.NÔ&OrN   r   Fr-   )Úadd_push_nullrA   rB   Úextend_outputr   ©rJ   rX   rK   s    `€rL   ÚreconstructÚSuperVariable.reconstruct}   s`   ù€ Ø×ÑÕOÔPÙ�—‘ÔØ�;‰;Ñ"Ù�D—K‘KÔ Ø×!Ñ!Ô"6°q¸%Ó"@ÕAà×!Ñ!Ô"6°q¸%Ó"@ÕArN   Útxr=   Únamec                 óò  >• U R                   (       d+  [        SSSU SU R                   SU R                    S3S/S9  U R                   c  [        S	5      eU R                  R	                  5       nU R                   R                  5       nU R                   R                  (       a  [        U R                   R                  5      OS n[        U[        5      (       a,  U R                   R                  nU R                   R                  nS nUR                  n UR                  U5      S
-   n[!        U[#        U5      5       Hb  n	Xy   R$                  R'                  U[(        5      =n
(       d  M.  U
[(        Ld  M9  U(       a  [+        [-        [/        U5      U	5      U5      nX¦4s  $    [        SSSU SU R                   SU R                    S3SS/S9  g ! [         a    [        [        X45      U5      S 4s $ f = f)Nz1-arg super not implementedÚ z"Dynamo failed to trace attribute `z$` accessed via `super()` (for type `z` and object `z4`) because one-argument of super() is not supported.z-Use two-argument super(type, object_or_type).©Úgb_typeÚcontextÚexplanationÚhintsz!super() requires objvar to be setr-   zUnable to resolve super getattrz8`) because the resolved attribute type is not supported.z0Ensure the attribute exists in the parent class.z(Check the arguments passed to `super()`.)rB   r   rA   ÚAssertionErrorÚas_python_constantrS   Úsourcer#   Ú
issubclassÚtypeÚvalueÚ__mro__ÚindexÚ
ValueErrorÚgetattrrH   ÚrangeÚlenÚ__dict__Úgetr3   r   r!   r"   )rJ   r`   ra   Úsearch_typeÚtype_to_useÚtype_to_use_sourcerk   Ú
search_mroÚstart_indexrp   Úresolved_getattrrK   s              €rL   Ú_resolved_getattr_and_sourceÚ*SuperVariable._resolved_getattr_and_source†   sñ  ø€ ð �{�{ÜØ5ØØ@ÀÀð G,Ø,0¯L©L¨>¸ÈÏÉÀ}ð UDðDð Dðò	ð �;‰;ÑÜ Ð!DÓEÐEØ—l‘l×5Ñ5Ó7ˆð —k‘k×-Ñ-Ó/ˆà.2¯k©k×.@×.@ŒJ�t—{‘{×)Ñ)Ô*Àdð 	ô �k¤4×(Ñ(ØŸ+™+×+Ñ+ˆKØ!%§¡×!3Ñ!3ÐàˆØ ×(Ñ(ˆ
ð	HØ$×*Ñ*¨;Ó7¸!Ñ;ˆKô ˜;¬¨J«Ö8ˆEà#-Ñ#4×#=Ñ#=×#AÑ#AÀ$ÌÓ#WÐWÐ×WØ#¬>Ô9æ)Ü!+Ü)¬-Ð8JÓ*KÈUÓSØ ó"˜ð ,Ð3Ò3ñ 9ô 	Ø5ØØ<¸T¸Fð C(Ø(,¯© ~°^ÀDÇKÁKÀ=ð QDðDð CØ:ðó
	
øô' ó 	Hô œ5 Ó:¸DÓAÀ4ÐGÒGð	Hús   ÄG Ç!G6Ç5G6c                 ó.  • U R                  X5      u  p4[        R                  R                  U5      (       d  [	        X[        U5      S9$ U(       a(  [        UR                  [        R                  5      5        [        R                  R                  X4S9$ )N©Úpy_type©rk   )r}   r   r5   Ú
is_literalÚGetAttrVariablerm   r   Ú
make_guardr   ÚCONSTANT_MATCHÚcreate)rJ   r`   ra   rn   rk   s        rL   Útp_getattro_implÚSuperVariable.tp_getattro_implË   st   € ð ×9Ñ9¸"ÓC‰ˆÜ×)Ñ)×4Ñ4°U×;Ñ;Ü" 4´t¸E³{ÑCÐCÞÜ˜&×+Ñ+¬L×,GÑ,GÓHÔIÜ×)Ñ)×0Ñ0°Ð0ÐFÐFrN   Úargsc                 óÀ  • U R                  X5      u  pVU R                  c  [        S5      eU[        R                  L a  [        [        5      $ U[        R                  R                  R                  L aÖ  U R                  nSSK
Jn  [        U[        R                  5      (       aw  [        UR                  U5      (       a\  U(       dU  U(       dN  [!        5          ["        R$                  " U[&        US9n	U	R)                  XR                  /U-   U5      sS S S 5        $ [+        SSU  SU SU SU 3SU S	3/ [,        R.                  QS
9  GO†U R                  R0                  (       aÊ  [3        US5      (       a¹  UR4                  S:X  a©  [        R6                  R9                  U5      (       a…  UR:                  n
[3        U
S5      (       a'  U
R<                  S:X  a  ["        R$                  " X5      nO.Uc  [        S5      eUR>                  n[        R6                  " X¬S9nURA                  USX45      $ [        U[B        5      (       a[  [        URD                  [F        RH                  5      (       a2  ["        R$                  " XRD                  USS9n	U	R)                  XU5      $ [        U[J        5      (       Ga  [        URD                  [F        RH                  5      (       aì  [        U R                  [        R6                  5      (       a  U R                  nOhS nU R                  R0                  (       a  [M        U R                  R0                  5      n["        R$                  " UU R                  RN                  U5      nUc  [        S5      e["        R$                  " UURD                  [Q        US5      SS9n	U	R)                  X/UQU5      $ [        U[F        RH                  5      (       a6  ["        R$                  " XUSS9n	U	R)                  XR                  /U-   U5      $ [        U[F        RR                  5      (       a:  [        RT                  " URD                  U R                  US9R)                  XU5      $ [W        U5      (       a?  [        U R                  [        5      (       a   U R                  RX                  " U/UQ70 UD6$ U[        RZ                  L Ga
  US   n UR]                  5       nUR`                  R                  Rc                  U R                  5      (       d1  [+        SSU  SU 3SU R                   S3S/[,        Rd                  QS
9  [        U[f        5      (       d  [        S[i        U5       35      eUR`                  R                  Rk                  U R                  U[        Rl                  " 5       5        [        Rn                  Rq                  S 5      $ [        U R                  [        R                  5      (       am  U R                  Rr                  bV  U R                  Rt                  b?  XPR                  Rt                  ;   a&  U R                  Rr                  RA                  XX45      $ U[        Rv                  L aÈ  US   Rx                  n[        U R                  [        5      (       a  U R                  R{                  UU5      $ S n [        Rw                  U R                  Rx                  U5      nS nU R                  R0                  b   [�        U R                  R0                  U5      n["        R$                  " UUU5      $ U[        R‚                  R„                  L a¨  US   n0 nUS   R†                  nUS   R†                  R‡                  5        H%  u  nnURˆ                  R]                  5       nUUU'   M'     URŠ                  RŒ                  nSURŠ                  lF         UR)                  UUU5      UURŠ                  lF        $ [        U[F        RŽ                  5      (       aO  U[�        R’                  " 5       ;   a6  ["        R$                  " XUSS 9nUR)                  XR                  /U-   U5      $ [        U[F        R”                  5      (       a(  ["        R$                  " XUSS9n	U	R)                  XU5      $ [+        S!SU  SU 3S"U S#U S$3S%/S
9  g ! , (       d  f       N)= f! [^         a  n[+        SSU  SU 3SS/US9   S nAGN/S nAff = f! [|         a    [        [|        U5         GN@f = f! UURŠ                  lF        f = f)&Nz2super() requires objvar to be set for method callsr   )ÚAttributeMutationNewr‚   z#Unsupported super().__init__() callúcall_method Ú z0Dynamo encountered a super().__init__() call on zK that resolved to a `torch.nn.Module.__init__()` call that we cannot trace.rd   Ú__name__Ú__new__Ú
__module__rQ   z.source must not be None for user-defined classT©rk   Úrealizez2source must not be None for classmethod resolutionÚ__func__r   z7Non-constant attribute given to `super().__delattr__()`zbDynamo requires the attribute name passed to `super().__delattr__(...)` to be a constant (string).zEEnsure the attribute name is a string literal or a constant variable.)re   rf   rg   rh   Úfrom_exczFAttempted super().__delattr__() on an object without mutation trackingzmDynamo needs to track mutations on an object before `super().__delattr__` can be used on it. But the object (z3) doesn't have attribute mutation tracking enabled.z<Ensure the object is tracked by Dynamo's side effect system.zattr must be a str, got é   F)r“   zFAttempted to call a super() attribute that is not a function or methodz4Dynamo does not know how to trace the call `super().z()` because `super().z(` is not a function or method attribute.zMEnsure the attribute accessed via `super()` is a standard method or function.)Kr}   rB   ri   ÚobjectrI   ÚLambdaVariabler'   ÚtorchÚnnÚModuleÚside_effectsrŒ   Ú
isinstancer   r;   Úmutation_typer   r4   Úbuildr   Úcall_functionr   r   Ú	DIFFICULTrk   Úhasattrr�   ÚUserDefinedClassVariableÚis_supported_new_methodÚ__self__r‘   ÚmemberÚcall_methodÚstaticmethodr”   ÚtypesÚFunctionTypeÚclassmethodr#   Ú
value_typer   Ú
MethodTypeÚUserMethodVariabler:   Úmethod_setattr_standardÚ__delattr__rj   ÚNotImplementedErrorÚoutputÚis_attribute_mutationÚ
DYNAMO_BUGÚstrrm   Ú
store_attrÚDeletedVariabler5   r‡   Ú_base_vtÚ_base_methodsÚ__getattribute__rn   Úgeneric_getattrÚAttributeErrorr   r    Ú_CÚ_disabled_torch_function_implÚitemsÚvtÚsymbolic_torch_function_stateÚtorch_function_subclass_enabledÚMethodDescriptorTyper   Úget_tensor_methodr   )rJ   r`   ra   rŠ   rC   Úinner_fnrk   rB   rŒ   Úfn_vtÚuser_clsÚuser_cls_vtÚuser_cls_sourceÚcls_variableÚ
cls_sourceÚattrÚexcÚ	attr_nameÚ
attr_valueÚattr_sourceÚfuncÚ	tf_kwargsÚtf_argsÚhash_key_vtÚvalue_vtÚkey_strÚtx_oldÚfn_vars                               rL   r§   ÚSuperVariable.call_methodÝ   s/  € ð  ×<Ñ<¸RÓFÑˆØ�;‰;ÑÜ Ð!UÓVÐVð ”v—‘Ò&Ü!¤(Ó+Ð+ØœŸ™Ÿ™×1Ñ1Ò1Ø—[‘[ˆFÝ;ô ˜6¤9×#FÑ#F×GÑGÜ˜v×3Ñ3Ð5I×JÑJÞ¦ä9Õ;Ü+×1Ò1ØÔ4¸Vñ�Eð !×.Ñ.¨r·K±K°=À4Ñ3GÈÓP÷	 <Ñ;ô ØAØ*¨4¨&°°$°°q¸¸¸aÀ¸xÐHð!Ø ˜ð "1ð!1ð 9Ô-×7Ñ7Ð8ôð �K‰K××Ü˜ *×-Ñ-Ø×!Ñ! YÓ.Ü×2Ñ2×JÑJÈ8×TÑTà×(Ñ(ˆHÜ�x ×.Ñ.°8×3FÑ3FÈ*Ó3TÜ/>×/DÒ/DÀRÓ/R‘à‘>Ü(ØHóð ð #)§-¡-�Ü'×@Ò@Øñ�ð ×*Ñ*¨2¨y¸$ÓGÐGÜ˜¤,×/Ñ/´JØ×Ñœu×1Ñ1÷5
ñ 5
ô $×)Ò)Ø×%Ñ%¨f¸dñˆEð ×&Ñ& r°Ó8Ð8Ü˜¤+×.Ò.´:Ø×Ñœu×1Ñ1÷4
ñ 4
ô ˜$Ÿ+™+¤y×'IÑ'I×JÑJð  $Ÿ{™{‘ð "�
Ø—;‘;×%×%Ü!+¨D¯K©K×,>Ñ,>Ó!?�JÜ.×4Ò4ØØ—K‘K×*Ñ*Øó �ð
 ‰~Ü$ØHóð ô $×)Ò)ØØ×!Ñ!Ü! &¨*Ó5Øñ	ˆEð ×&Ñ& rÐ+@¸4Ð+@À&ÓIÐIÜ˜¤%×"4Ñ"4×5Ñ5Ü#×)Ò)¨"¸vÈtÑTˆEØ×&Ñ& r¯K©K¨=¸4Ñ+?ÀÓHÐHÜ˜¤%×"2Ñ"2×3Ñ3Ü×/Ò/Ø×!Ñ! 4§;¡;°vñç‰m˜B fÓ-ð.ô ! ×*Ñ*¬zØ�K‰KÔ2÷0
ñ 0
ð —;‘;×6Ò6°rÐK¸DÒKÀFÑKÐKØœ×+Ñ+Ó+Ø˜‘7ˆDðØ×.Ñ.Ó0�ð —9‘9×)Ñ)×?Ñ?ÀÇÁ×LÑLÜØdØ*¨4¨&°°$°Ð8ð!à#Ÿ{™{˜mð ,(ð!(ð
 Wðä*×5Ñ5ðòô ˜d¤C×(Ñ(Ü$Ð'?ÄÀTÃ
¸|Ð%LÓMÐMØ�I‰I×"Ñ"×-Ñ-Ø—‘˜T¤9×#<Ò#<Ó#>ôô ×-Ñ-×4Ñ4°TÓ:Ð:ä�t—{‘{¤I×$GÑ$G×HÑHØ—‘×$Ñ$Ñ0Ø—‘×)Ñ)Ñ5ØŸK™K×5Ñ5Ó5à—;‘;×'Ñ'×3Ñ3°B¸dÓKÐKØœ×0Ñ0Ò0Ø˜Q™Ÿ™ˆIô ˜$Ÿ+™+Ô'@×AÑAØ—{‘{×2Ñ2°2°yÓAÐAàˆJð=Ü#×4Ñ4Ø—K‘K×%Ñ%Øó�
ð ˆKØ�{‰{×!Ñ!Ñ-Ü/°·±×0BÑ0BÀIÓN�Ü"×(Ò(¨¨Z¸ÓEÐEØœŸ™×?Ñ?Ò?ð
 ˜‘7ˆDàˆIØ˜1‘g—m‘mˆGà)-¨a©¯©×)<Ñ)<Ö)>Ñ%�˜XØ%Ÿ.™.×;Ñ;Ó=�Ø%-�	˜'Ó"ñ *?ð ×5Ñ5×UÑUˆFØOTˆB×,Ñ,ÔLðØ×)Ñ)¨"¨g°yÓAð ð ×0Ñ0ÕPô �x¤×!;Ñ!;×<Ñ<ØœK×9Ò9Ó;Ó;ô %×*Ò*¨2¸ÈÑNˆFØ×'Ñ'¨¯[©[¨M¸DÑ,@À&ÓIÐIÜ˜¤%×";Ñ";×<Ñ<Ü#×)Ò)¨"¸vÈtÑTˆEØ×&Ñ& r°Ó8Ð8äð'à" 4 &¨¨$¨Ð0ðØ�vÐ2°4°&ð 9,ð,ð `ðó
	
÷m <Õ;ûôt 'ó 
ÜØUØ*¨4¨&°°$°Ð8ð!Lð `ðð !÷	ð 	ûð
ûôf "ó =Ü(¬¸×<ð=ûð6 ð ×0Ñ0ÕPúsB   Ã:c,Ó"c= Û*d) ß8e
 ã,
c:ã=
d&äd!ä!d&ä)eåeå
e)rB   rA   rP   ©rX   r<   rD   N)r�   r‘   Ú__qualname__Ú__firstlineno__rH   Ú_cpython_typer4   Ú_nonvar_fieldsr   rI   rm   rS   r^   rµ   Útupler   r}   rˆ   ÚlistÚdictr§   Ú__static_attributes__Ú__classcell__©rK   s   @rL   r?   r?   a   s  ø† à€MðØ	×	'Ñ	'ð€Nð *.ñà ðð   $Ñ&ðð ð	ð
 
÷ð ð"˜Tô ÷BðC
Ø-ðC
Ø58ðC
à	ˆs�J Ñ%Ð%Ñ	&÷C
ðJGØ-ðGØ58ðGà	ôGð$]
à'ð]
ð ð]
ð �?Ñ#ð	]
ð
 �S˜/Ð)Ñ*ð]
ð 
÷]
ò ]
rN   r?   c                   óÐ   ^ • \ rS rSrS\R
                  S\SS4U 4S jjrS\4S jr	\
" \" S 5      5      \
" \" S	 5      5      \
" \" S
 5      5      \
" \" S 5      5      S.rSrU =r$ )ÚFrameSummaryVariablei½  Úframe_summaryrC   rD   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g rF   )rH   rI   rç   )rJ   rç   rC   rK   s      €rL   rI   ÚFrameSummaryVariable.__init__¾  s   ø€ Ü‰ÒÑ"˜6Ò"Ø*ÕrN   c                 ó"   • [         R                  $ rP   )Ú	tracebackÚFrameSummaryrR   s    rL   rS   Ú FrameSummaryVariable.python_typeÂ  s   € Ü×%Ñ%Ð%rN   c                 ó.   • U R                   R                  $ rP   )rç   Úlineno©Úss    rL   rY   ÚFrameSummaryVariable.<lambda>È  s   € °·±×0FÒ0FrN   c                 ó.   • U R                   R                  $ rP   )rç   Úfilenamerð   s    rL   rY   rò   É  s   € °!·/±/×2JÒ2JrN   c                 ó.   • U R                   R                  $ rP   )rç   ra   rð   s    rL   rY   rò   Ê  ó   € ¨a¯o©o×.BÒ.BrN   c                 ó.   • U R                   R                  $ rP   )rç   Úlinerð   s    rL   rY   rò   Ë  rö   rN   )rï   rô   ra   rø   )rç   )r�   r‘   rÛ   rÜ   rë   rì   r   rI   rm   rS   r1   r/   Ú
tp_membersrâ   rã   rä   s   @rL   ræ   ræ   ½  sq   ø† ð+ i×&<Ñ&<ð +Èð +ÐPT÷ +ð&˜Tô &ñ ™Ñ&FÓGÓHÙ™<Ñ(JÓKÓLÙ‘|Ñ$BÓCÓDÙ‘|Ñ$BÓCÓDñ	†JrN   ræ   c            
       óŒ  ^ • \ rS rSrS\S\S \4   S\SS4U 4S jjr\	S\
R                  S\S \4   SS 4S j5       r\S	\S\4S
 j5       rS\\
R                  \-     4S jrS\S\4S jrS\\R,                     4S jrSSS\S\S\4S jrSSS\S\4U 4S jjrSSSSS\SS4S jrSSS\S\\   S\\\4   S\4
U 4S jjrSrU =r$ )ÚTracebackVariableiÏ  rç   Útb_nextrC   rD   Nc                 óZ   >• [         TU ]  " S0 UD6  Xl        Uc  [        S5      eX l        g )Nztb_next must not be NonerG   )rH   rI   rç   ri   rü   )rJ   rç   rü   rC   rK   s       €rL   rI   ÚTracebackVariable.__init__Ð  s1   ø€ ô 	‰ÒÑ"˜6Ò"Ø*Ôà‰?Ü Ð!;Ó<Ð<Ø�rN   c                 ó"   • U " [        U5      US9$ )N)rü   )ræ   )Úclsrç   rü   s      rL   Úfrom_frame_summaryÚ$TracebackVariable.from_frame_summaryã  s   € ñ Ô'¨Ó6ÀÑHÐHrN   Úobjc                 óP   • [        U [        5      =(       d    U R                  5       $ rP   )r(   rû   Úis_constant_none©r  s    rL   Úis_valid_tracebackÚ$TracebackVariable.is_valid_tracebackë  s   € ä�cÔ,Ó-×G°×1EÑ1EÓ1GÐGrN   c                 óª   • [        U R                  [        5      (       a  U R                  /$ U R                  /U R                  R	                  5       -   $ rP   )r(   rü   r5   rç   Ú
extract_tbrR   s    rL   r
  ÚTracebackVariable.extract_tbï  sD   € Ü�$—,‘,Ô 0×1Ñ1Ø×&Ñ&Ð'Ð'Ø×"Ñ"Ð# d§l¡l×&=Ñ&=Ó&?Ñ?Ð?rN   Útbc                 ó‚   • U n[        U[        5      (       a(  X!L a  gUR                  n[        U[        5      (       a  M(  g)NTF)r(   rû   rü   )rJ   r  Úcurr_tbs      rL   Úhas_reference_cycleÚ%TracebackVariable.has_reference_cycleô  s;   € à8<ˆÜ�WÔ/×0Ñ0ØŠ}ØØ—o‘oˆGô �WÔ/×0Ó0ð rN   c                 ó"   • [         R                  $ rP   )r©   ÚTracebackTyperR   s    rL   rS   ÚTracebackVariable.python_typeý  s   € Ü×"Ñ"Ð"rN   r`   r=   Úname_varÚvalc                 óÊ  • UR                  5       nUS:X  a¯  U R                  U5      (       d  [        [        U5        [	        U[
        [        45      (       d  [        S[        U5       35      eU R                  U5      (       d+  [        U[
        5      (       a&  UR                  U 5      (       a  [        [        U5        X0l        [        R                  R                  S 5      $ )Nrü   z?tb_next val must be TracebackVariable or ConstantVariable, got )rj   r  r   Ú	TypeErrorr�   rû   r5   ri   rm   r  r(   rq   rü   r   r‡   )rJ   r`   r  r  ra   s        rL   Úcall_setattrÚTracebackVariable.call_setattr   s¿   € ð ×*Ñ*Ó,ˆØ�9ÓØ×*Ñ*¨3×/Ñ/Ü(¬°BÔ7Ü˜cÔ$5Ô7GÐ#H×IÑIÜ$ØUÔVZÐ[^ÓV_ÐU`Ðaóð ð ×'Ñ'¨×,Ñ,Ü�sÔ-×.Ñ.°3×3JÑ3JÈ4×3PÑ3Pä(¬°RÔ8ØŒLÜ×)Ñ)×0Ñ0°Ó6Ð6rN   ra   c                 óø   >• US:X  a  U R                   $ US:X  a  U R                  R                  US5      $ US:X  a  U R                  $ US:X  a  [        SU  S3S/ [        R
                  QS	9  [        TU ]	  X5      $ )
Nrü   Ú	tb_linenorï   rç   Útb_lastiz traceback.tb_lasti not supportedz accessing 'tb_lasti'zNDynamo does not support accessing the tb_lasti attribute of traceback objects.rd   )rü   rç   rˆ   r   r   ÚSUPPORTABLErH   ©rJ   r`   ra   rK   s      €rL   rˆ   Ú"TracebackVariable.tp_getattro_impl  sŽ   ø€ ð �9ÓØ—<‘<ÐØ�[Ó Ø×%Ñ%×6Ñ6°r¸8ÓDÐDØ�_Ó$Ø×%Ñ%Ð%Ø�ZÓÜØ:Ø˜&Ð 5Ð6ØlØ6Ô)×5Ñ5Ð6ò	ô ‰wÑ'¨Ó1Ð1rN   Úotherr4   Úopc                 ó    • SSK Jn  U" XX#5      $ ©Nr-   )Úobject_richcompare©Úobject_protocolr$  ©rJ   r`   r   r!  r$  s        rL   Útp_richcompare_implÚ%TracebackVariable.tp_richcompare_impl'  ó   € õ 	8á! $¨EÓ6Ð6rN   rŠ   c                 óV   >• US:X  a  U R                   " U/UQ76 $ [        TU ]	  XX45      $ )NÚ__setattr__)r  rH   r§   ©rJ   r`   ra   rŠ   rC   rK   s        €rL   r§   ÚTracebackVariable.call_method.  s5   ø€ ð �=Ó Ø×$Ò$ RÐ/¨$Ò/Ð/Ü‰wÑ" 2¨TÓ:Ð:rN   )rç   rü   ) r�   r‘   rÛ   rÜ   ræ   r
   r5   r   rI   r«   rë   rì   r  r¨   r4   Úboolr  rà   r
  r  rm   r©   r  rS   r  rµ   rˆ   r(  rá   r§   râ   rã   rä   s   @rL   rû   rû   Ï  s¦  ø† ðà+ðð Ð*Ð,<Ð<Ñ=ðð ð	ð
 
÷ð& ðIà ×-Ñ-ðIð Ð*Ð,<Ð<Ñ=ðIð 
ó	Ió ðIð ðH ð H°Dó Hó ðHð@˜D ×!7Ñ!7Ð:NÑ!NÑOô @ð
 oð ¸$ô ð#˜T %×"5Ñ"5Ñ6ô #ð7à'ð7ð "ð7ð ð	7ð
 
ô7ð*2Ø-ð2Ø58ð2à	÷2ð$7Ø-ð7Ø6Gð7ØMPð7à	ô7ð	;à'ð	;ð ð	;ð �?Ñ#ð		;ð
 �S˜/Ð)Ñ*ð	;ð 
÷	;õ 	;rN   rû   c                   óh  ^ • \ rS rSr\r   SS\S\\   S\	\
\4   S-  S\S-  S\S-  SS4U 4S	 jjjrS
\SS4S jrS S jrS\4S jrSSSSS\
SS4S jrSSS\
S\\   S\	\
\4   S\4
U 4S jjrSSS\
S\4U 4S jjrSSS\4S jrS\
4S jr\r\S\S\
4S j5       rS\
4S jrSSS\4S jrSrU =r$ )!ÚExceptionVariablei:  NÚexc_typerŠ   Úinit_kwargsrk   rž   rD   c                 ón  >• [         TU ]  XES9  Xl        X l        U(       a!  [	        SU  SU 3S/ [
        R                  QS9  [        R                  " S 5      U l	        [        R                  " S 5      U l
        [        R                  " S5      U l        [        R                  " S 5      U l        S U l        g )N)rk   rž   z,Keyword args passed to exception constructorz with kwargs zRDynamo does not know how to handle keyword args passed to an exception constructorrd   F)rH   rI   r2  rŠ   r   r   r  r5   r‡   Ú__context__Ú	__cause__Ú__suppress_context__Ú__traceback__Úpython_stack©rJ   r2  rŠ   r3  rk   rž   rK   s         €rL   rI   ÚExceptionVariable.__init__?  s§   ø€ ô 	‰Ñ ÐÑDØ ŒØŒ	ÞÜØFØ˜& ¨k¨]Ð;ØpØ6Ô)×5Ñ5Ð6ò	ô -=×,CÒ,CÀDÓ,IˆÔô +;×*AÒ*AÀ$Ó*GˆŒä5E×5LÒ5LÈUÓ5SˆÔ!ä.>×.EÒ.EÀdÓ.KˆÔð <@ˆÕrN   rf   c                 ó   • Xl         g rP   )r5  )rJ   rf   s     rL   Úset_contextÚExceptionVariable.set_context`  s   € Ø"ÕrN   c                 ó  ^ ^• TR                  UU 4S j5        TR                  T R                  5        TR                  [	        T R                  5      S5        S[
        SS 4UU 4S jjnU" S5        U" S5        U" S5        g )	Nc                  óP   >• T R                  STR                  R                  5      $ )NrQ   )Úload_import_fromr2  r�   ©rX   rJ   s   €€rL   rY   Ú/ExceptionVariable.reconstruct.<locals>.<lambda>e  s   ø€ �G×,Ñ,¨Z¸¿¹×9OÑ9OÔPrN   Fra   rD   c                 ó  >• [        TU 5      n[        U[        5      (       a  UR                  S;  a  [	        SU 35      eg TR                  5         T" U5        TR                  TR                  S5      5        TR                  U 5        g )N)TFNz-attr.value must be True, False, or None, got r   )	rr   r(   r5   rn   ri   Údup_topr\   Úrot_nr¶   )ra   rÌ   rX   rJ   s     €€rL   Úcodegen_attrÚ3ExceptionVariable.reconstruct.<locals>.codegen_attrj  s~   ø€ Ü˜4 Ó&ˆDÜ�dÔ,×-Ñ-Ø—:‘:Ð%8Ó8Ü(ØGÈÀvÐNóð ð 9ð
 —‘Ô!Ù˜”Ø×%Ñ% g§m¡m°AÓ&6Ô7Ø×"Ñ" 4Õ(rN   r5  r6  r7  )r[   ÚforeachrŠ   r    rt   rµ   )rJ   rX   rG  s   `` rL   r^   ÚExceptionVariable.reconstructc  sq   ù€ Ø×ÑÝPô	
ð 	�‰˜Ÿ	™	Ô"Ø×Ñœc $§)¡)›n¨eÔ4ð	)œsð 	) t÷ 	)ð 	)ñ 	�]Ô#Ù�[Ô!ÙÐ+Õ,rN   c                 ó   • U R                   $ rP   )r2  rR   s    rL   rS   ÚExceptionVariable.python_type{  s   € Ø�}‰}ÐrN   r`   r=   r   r4   r!  c                 ó    • SSK Jn  U" XX#5      $ r#  r%  r'  s        rL   r(  Ú%ExceptionVariable.tp_richcompare_impl~  r*  rN   ra   rC   c                 ó&  >• US:X  Ga  US   R                  5       nUS   nUS:X  ar  UR                  5       (       dJ  [        U[        R                  [        R
                  [        R                  45      (       d  [        US5        U R                  U5        GOjUS:X  aš  UR                  5       (       dM  [        U[        R                  [        R                  [        R
                  [        R                  45      (       a+  XPl
        [        R                  R                  S5      U l        O×[        US5        OÊUS	:X  a+  UR                  SS
5      (       a  XPl        O¦[        US5        O™US:X  a-  [        R!                  U5      (       d  [        US5        XPl        OfUS:X  a  [%        X5      U l        OOUR(                  R*                  nUR-                  U 5      (       d  UR/                  U 5        UR1                  XU5        [        R                  R                  S 5      $ US:X  aû  [3        U5      S:w  a  [        US[3        U5       S35        Uu  nUR                  5       (       a  [        R                  R                  S 5      $ [        U[        R4                  5      (       d  [        US5        UR7                  5       R9                  5        H/  u  p‰U R;                  US[        R                  " U5      U	/0 5        M1     [        R                  R                  S 5      $ US:X  aZ  [3        U5      S:w  a  [        US[3        U5       S35        Uu  n
[        R!                  U
5      (       d  [        US5        X l        U $ [<        TU ]u  XX45      $ )Nr,  r   r-   r5  z;exception context must be None or derive from BaseExceptionr6  Tz9exception cause must be None or derive from BaseExceptionr7  Fr8  z)__traceback__ must be a traceback or NonerŠ   Ú__setstate__z+__setstate__() takes exactly one argument (z given)zstate is not a dictionaryÚwith_tracebackz-with_traceback() takes exactly one argument ()rj   r  r�   r   r1  Ú!UserDefinedExceptionClassVariableÚ"UserDefinedExceptionObjectVariabler   r=  rW   r6  r5   r‡   r7  Úis_constant_matchrû   r  r8  r,   rŠ   r²   rœ   r³   Útrack_attribute_mutation_newÚstore_instance_dict_attrrt   ÚConstDictVariableÚkeys_as_python_constantr¿   r§   rH   )rJ   r`   ra   rŠ   rC   r  ÚseÚstateÚkeyrn   r  rK   s              €rL   r§   ÚExceptionVariable.call_method…  s$  ø€ ð �=Ô Ø˜‘7×-Ñ-Ó/ˆDØ�q‘'ˆCØ�}Ó$ð ×(Ñ(×*Ñ*Ü!Øä%×7Ñ7Ü%×GÑGÜ%×HÑHð÷ñ ô %ØØUôð × Ñ  Ö%Ø˜Ó$Ø×'Ñ'×)Ñ)¬ZØä!×1Ñ1Ü!×3Ñ3Ü!×CÑCÜ!×DÑDð	÷.ñ .ð &)”NÜ09×0JÑ0J×0QÑ0QÐRVÓ0W�DÕ-ä$ØÐWõð Ð/Ó/Ø×(Ñ(¨¨u×5Ñ5Ø03Õ-ä$ØÐWõð ˜Ó(Ü(×;Ñ;¸C×@Ñ@Ü$ RÐ)TÔUØ%(Õ"Ø˜“ä+¨BÓ4�•	ð —Y‘Y×+Ñ+�Ø×/Ñ/°×5Ñ5Ø×3Ñ3°DÔ9Ø×+Ñ+¨D¸Ô<Ü×-Ñ-×4Ñ4°TÓ:Ð:Ø�^Ó#Ü�4‹y˜A‹~Ü ØÐEÄcÈ$ÃiÀ[ÐPWÐXôð ‰GˆUà×%Ñ%×'Ñ'Ü ×1Ñ1×8Ñ8¸Ó>Ð>Ü˜e¤Y×%@Ñ%@×AÑAÜ  Ð%@ÔAØ#×;Ñ;Ó=×CÑCÖE‘
�Ø× Ñ Ø˜Ô(8×(?Ò(?ÀÓ(DÀeÐ'LÈböñ Fô ×-Ñ-×4Ñ4°TÓ:Ð:ØÐ%Ó%Ü�4‹y˜A‹~Ü ØØCÄCÈÃIÀ;ÈgÐVôð ‰DˆRÜ$×7Ñ7¸×;Ñ;Ü  Ð%PÔQØ!#ÔØˆKä‘7Ñ& r°Ó>Ð>rN   c           
      ó"  >• US:X  a   [         R                  " XR                  5      $ US:X  a  U R                  $ US:X  a  U R                  $ US:X  a  U R
                  $ US:X  a  U R                  $ US:X  aP  [         R                  " U[        U R                  5      U R                  =(       a    [        U R                  S5      S9$  [        TU ]1  X5      $ ! [         a.    [        [        USU R                  R                    S	U S3/S
9   g f = f)NrK   r5  r6  r7  r8  rŠ   r‚   Ú'z' object has no attribute '©rŠ   )r4   rŸ   r2  r5  r6  r7  r8  rß   rŠ   rk   r   rH   rˆ   r±   r   r¼   r�   r  s      €rL   rˆ   Ú"ExceptionVariable.tp_getattro_implå  s  ø€ ð �;ÓÜ"×(Ò(¨¯]©]Ó;Ð;Ø�]Ó"Ø×#Ñ#Ð#Ø�[Ó Ø—>‘>Ð!ØÐ+Ó+Ø×,Ñ,Ð,Ø�_Ó$Ø×%Ñ%Ð%Ø�V‹^Ü"×(Ò(ØÜ�d—i‘iÓ Ø—{‘{×F¤z°$·+±+¸vÓ'Fñð ð
	ô ‘7Ñ+¨BÓ5Ð5øÜ"ó 	Ü$ÜØØ˜$Ÿ-™-×0Ñ0Ð1Ð1LÈTÈFÐRSÐTÐUôð	ús   ÃC Ã5DÄDc                 ó  • [        U R                  5      S:X  a  [        R                  " US5      $ [        U R                  5      S:X  a  [	        XR                  S   5      $ SSKJn  U" [        U R                  5      5      n[	        X5      $ )Nr   rc   r-   r   )rt   rŠ   r4   rŸ   r8   rc   r   rà   )rJ   r`   r   Ú	tuple_vars       rL   Útp_str_implÚExceptionVariable.tp_str_impl  sh   € äˆt�y‰y‹>˜QÓÜ"×(Ò(¨¨RÓ0Ð0Ü�—‘‹^˜qÓ Ü˜r§9¡9¨Q¡<Ó0Ð0å'á%¤d¨4¯9©9£oÓ6ˆIÜ˜rÓ-Ð-rN   c                 óN   • U R                   R                   SU R                   S3$ )NÚ(Ú))rK   r�   r2  rR   s    rL   Ú__str__ÚExceptionVariable.__str__  s$   € Ø—.‘.×)Ñ)Ð*¨!¨D¯M©M¨?¸!Ð<Ð<rN   Úargc                 óv   •  [        U R                  5       5      $ ! [         a    U R                  5       s $ f = frP   )Úreprrj   Ú	ExceptionÚ
debug_repr©rj  s    rL   Ú_debug_format_argÚ#ExceptionVariable._debug_format_arg  s7   € ð	$Ü˜×.Ñ.Ó0Ó1Ð1øÜó 	$Ø—>‘>Ó#Ò#ð	$ús   ‚ ›8·8c                 óz   ^ • SR                  U 4S jT R                   5       5      nT R                  5        SU S3$ )Nú, c              3   óF   >#   • U  H  nTR                  U5      v •  M     g 7frP   )rp  )Ú.0rj  rJ   s     €rL   Ú	<genexpr>Ú/ExceptionVariable.debug_repr.<locals>.<genexpr>  s   øé € ÐJÂ	¸˜×/Ñ/°×4Ð4Â	ùó   ƒ!rf  rg  )ÚjoinrŠ   Úpython_type_name)rJ   rŠ   s   ` rL   rn  ÚExceptionVariable.debug_repr  s8   ø€ Ø�y‰yÔJÀÇ	Â	ÓJÓJˆØ×'Ñ'Ó)Ð*¨!¨D¨6°Ð3Ð3rN   c                 óJ   • [         R                  " XR                  5       5      $ rP   )r4   rŸ   rn  ©rJ   r`   s     rL   Útp_repr_implÚExceptionVariable.tp_repr_impl"  s   € ä×$Ò$ R¯©Ó):Ó;Ð;rN   )r6  r5  r7  r8  rŠ   r2  r9  ©NNNrÚ   )r�   r‘   rÛ   rÜ   ÚBaseExceptionrÝ   r   rà   r4   rá   rµ   r   r   rI   r=  r^   rm   rS   r(  r§   rˆ   rc  rh  Ú__repr__r¨   rp  rn  r~  râ   rã   rä   s   @rL   r1  r1  :  s›  ø† à!€Mð :>Ø $Ø-1ñ@àð@ð �?Ñ#ð@ð ˜#˜Ð.Ñ/°$Ñ6ð	@ð
 ˜‘ð@ð $ dÑ*ð@ð 
÷@ð @ðB# ?ð #°tô #ô-ð0˜Tô ð7Ø-ð7Ø6Gð7ØMPð7à	ô7ð^?à'ð^?ð ð^?ð �?Ñ#ð	^?ð
 �S˜/Ð)Ñ*ð^?ð 
÷^?ð@Ø-ðØ58ðà	÷ðB
.Ð9ð 
.¸oô 
.ð=˜ô =ð €Hàð$˜ð $°3ó $ó ð$ð4˜Cô 4ð<Ð:ð <¸÷ <ò <rN   r1  c                   óŒ   ^ • \ rS rSr   SS\S\\   S\\\4   S-  S\	S-  S\
S-  SS4U 4S	 jjjrS
SS\S\4U 4S jjrSrU =r$ )ÚStopIterationVariablei'  Nr2  rŠ   r3  rk   rž   rD   c                 óˆ   >• U(       a  US   O[         R                  R                  S 5      U l        [        TU ]  XX4U5        g ©Nr   )r   r5   r‡   rn   rH   rI   r:  s         €rL   rI   ÚStopIterationVariable.__init__(  s6   ø€ ö !%�T˜!’W¬)×*DÑ*D×*KÑ*KÈDÓ*QˆŒ
Ü‰Ñ˜¨¸mÕLrN   r`   r=   ra   c                 óF   >• US:X  a  U R                   $ [        TU ]	  X5      $ )Nrn   )rn   rH   rˆ   r  s      €rL   rˆ   Ú&StopIterationVariable.tp_getattro_impl3  s&   ø€ ð �7‹?Ø—:‘:ÐÜ‰wÑ'¨Ó1Ð1rN   ©rn   r€  )r�   r‘   rÛ   rÜ   r   rà   r4   rá   rµ   r   r   rI   rˆ   râ   rã   rä   s   @rL   r„  r„  '  s™   ø† ð
 :>Ø $Ø-1ñ	Màð	Mð �?Ñ#ð	Mð ˜#˜Ð.Ñ/°$Ñ6ð		Mð
 ˜‘ð	Mð $ dÑ*ð	Mð 
÷	Mð 	Mð2Ø-ð2Ø58ð2à	÷2õ 2rN   r„  c                   ó¶   ^ • \ rS rSr% Sr\\S4   \S'      SS\S\	\
   S\\\
4   S-  S	\S-  S
\S-  SS4U 4S jjjrSSS\S\
4U 4S jjrSU 4S jjrSrU =r$ )Ú_KwargAttrExceptionVariablei;  rG   .Ú_kwarg_attrsNr2  rŠ   r3  rk   rž   rD   c                 óú   >• U(       a  [        U5      O0 n[        R                  R                  S 5      nU R                   Vs0 s H  owUR                  Xv5      _M     snU l        [        TU ]!  XX4U5        g s  snf rP   )	rá   r   r5   r‡   r�  ÚpopÚ_attrsrH   rI   )	rJ   r2  rŠ   r3  rk   rž   Únonera   rK   s	           €rL   rI   Ú$_KwargAttrExceptionVariable.__init__B  sj   ø€ ö ,7”d˜;Ô'¸BˆÜ×)Ñ)×0Ñ0°Ó6ˆØEI×EVÒEVÓWÒEV¸T˜[Ÿ_™_¨TÓ8Ò8ÑEVÑWˆŒÜ‰Ñ˜¨¸mÕLùò Xs   ÁA8r`   r=   ra   c                 ó^   >• X R                   ;   a  U R                   U   $ [        TU ]	  X5      $ rP   )r�  rH   rˆ   r  s      €rL   rˆ   Ú,_KwargAttrExceptionVariable.tp_getattro_implO  s.   ø€ ð —;‘;ÓØ—;‘;˜tÑ$Ð$Ü‰wÑ'¨Ó1Ð1rN   c                 óD  >• [         TU ]  U5        U R                  R                  5        Hr  u  p#[	        U[
        5      (       a  UR                  c  M)  UR                  5         U" U5        UR                  UR                  S5      5        UR                  U5        Mt     g )Nr   )rH   r^   r�  r¿   r(   r5   rn   rE  r\   rF  r¶   )rJ   rX   ra   r  rK   s       €rL   r^   Ú'_KwargAttrExceptionVariable.reconstructV  sv   ø€ Ü‰Ñ˜GÔ$ØŸ™×*Ñ*Ö,‰IˆDÜ˜3Ô 0×1Ñ1°c·i±iÓ6GØ—‘Ô!Ù˜”Ø×%Ñ% g§m¡m°AÓ&6Ô7Ø×"Ñ" 4Ö(ò -rN   ©r�  r€  rÚ   )r�   r‘   rÛ   rÜ   r�  rß   rµ   Ú__annotations__r   rà   r4   rá   r   r   rI   rˆ   r^   râ   rã   rä   s   @rL   rŒ  rŒ  ;  s²   ø‡ ð
 %'€L�%˜˜S˜‘/Ó&ð :>Ø $Ø-1ñMàðMð �?Ñ#ðMð ˜#˜Ð.Ñ/°$Ñ6ð	Mð
 ˜‘ðMð $ dÑ*ðMð 
÷Mð Mð2Ø-ð2Ø58ð2à	÷2÷)õ )rN   rŒ  c                   óV   • \ rS rSrSr\" \" S 5      5      \" \" S 5      5      S.rSrg)ÚAttributeErrorVariablei`  )ra   r  c                 ó    • U R                   S   $ ©Nra   r—  rð   s    rL   rY   ÚAttributeErrorVariable.<lambda>d  s   € ¨Q¯X©X°fÒ-=rN   c                 ó    • U R                   S   $ )Nr  r—  rð   s    rL   rY   r�  e  s   € ¨A¯H©H°UªOrN   rG   N©	r�   r‘   rÛ   rÜ   r�  r1   r0   rù   râ   rG   rN   rL   rš  rš  `  s*   † à"€Lá‘{Ñ#=Ó>Ó?Ù‘kÑ";Ó<Ó=ñƒJrN   rš  c                   ó:   • \ rS rSrSrS\" \" S 5      5      0rSrg)ÚNameErrorVariableii  )ra   ra   c                 ó    • U R                   S   $ rœ  r—  rð   s    rL   rY   ÚNameErrorVariable.<lambda>l  s   € °q·x±xÀÒ7GrN   rG   NrŸ  rG   rN   rL   r¡  r¡  i  s   † à€LØ™&¡Ñ-GÓ!HÓIÐJƒJrN   r¡  c                   ó   • \ rS rSrSrSrg)ÚUnknownVariableio  z
It could be anything!
rG   N©r�   r‘   rÛ   rÜ   Ú__doc__râ   rG   rN   rL   r¥  r¥  o  s   † ôrN   r¥  c            	       ó„   ^ • \ rS rSrSr  SS\S-  S\\   S-  S\SS4U 4S jjjrS	S
S\\	   S\
\\	4   S\	4S jrSrU =r$ )ÚDelayGraphBreakVariableiu  zV
Used to insert a dummy variable in the stack to do the graph break at CALL_FUNCTION.
NÚmsgrh   rC   rD   c                 óR   >• [         TU ]  " S0 UD6  Xl        U=(       d    / U l        g rF   )rH   rI   rª  rh   )rJ   rª  rh   rC   rK   s       €rL   rI   Ú DelayGraphBreakVariable.__init__z  s%   ø€ ô 	‰ÒÑ"˜6Ò"ØŒØ—[˜bˆ�
rN   r`   r=   rŠ   c                 ó´   • U R                   c  SOU R                   R                  n[        SSU R                    3SU SU R                   3U R                  S9  g )Nrc   z#Unsupported function call (delayed)zsource: z@Dynamo determined that a graph break should occur when calling `z`. Reason: rd   )rk   ra   r   rª  rh   )rJ   r`   rŠ   rC   ra   s        rL   r    Ú%DelayGraphBreakVariable.call_function„  sW   € ð —[‘[Ñ(‰r¨d¯k©k×.>Ñ.>ˆÜØ9Ø˜tŸ{™{˜mÐ,ðØ!˜F +¨d¯h©h¨Zð9à—*‘*ó	
rN   )rh   rª  ©NN)r�   r‘   rÛ   rÜ   r§  rµ   rà   r   rI   r4   rá   r    râ   rã   rä   s   @rL   r©  r©  u  sŒ   ø† ñð Ø"&ñ!à�4‰Zð!ð �C‰y˜4Ñð!ð ð	!ð
 
÷!ð !ð
à'ð
ð �?Ñ#ð
ð �S˜/Ð)Ñ*ð	
ð
 
÷
ò 
rN   r©  c                   ób   • \ rS rSrSrSS jrSSS\S\4S	 jrSSS
\	\   S\
\\4   S\4S jrSrg)ÚComptimeVariablei”  zU
This variable is special, it lets you execute arbitrary code at
Dynamo compile time
rD   Nc                 ó   • [        S5      e)Nzcomptime is special form)r±   ©rJ   rX   s     rL   r^   ÚComptimeVariable.reconstructš  s   € Ü!Ð"<Ó=Ð=rN   r`   r=   ra   c                 ó¤   • SSK J n  U R                  c  [        S5      e[        R                  " U[        X25      [        U R                  U5      S9$ )Nr   )Úcomptimez"ComptimeVariable requires a sourcer‚   )r¶  rk   ri   r4   rŸ   rr   r   )rJ   r`   ra   r¶  s       rL   rˆ   Ú!ComptimeVariable.tp_getattro_impl�  sG   € õ 	(à�;‰;ÑÜ Ð!EÓFÐFä×$Ò$Ø”˜Ó'´
¸4¿;¹;ÈÓ0Mñ
ð 	
rN   rŠ   rC   c           
      óô  • SSK Jn  U(       d  [        U5      S:”  a&  [        USS[        U5       S[        U5       S35        US   n[	        U[
        5      (       a  UR                  5       " U" U5      5        Oá[	        U[        5      (       aµ  UR                  5       nUR                  (       a  [        USUR                   35        [        R                  " UUR                  UR                  R!                  5       UR"                  (       a  [%        UR"                  R&                  5      OS S	5      nU" U" U5      5        O[)        S
[+        U5       35      e[,        R.                  R1                  S 5      $ )Nr   )ÚComptimeContextz
comptime()zat most 2 args and 0 kwargsz
 args and ú kwargsr   zOcomptime function must not have free variables, but these variables were free: rG   z"unsupported argument to comptime: )r¶  r¹  rt   r+   r�   r7   Úget_functionr6   Úget_codeÚclosurer   Úco_freevarsr©   rª   Ú	f_globalsÚfn_namerj   Údefaultsrß   r¿   ÚRuntimeErrorrm   r   r5   r‡   )rJ   r`   rŠ   rC   r¹  ÚfnÚcoderÑ   s           rL   r    ÚComptimeVariable.call_function©  s1  € õ 	/ö ”S˜“Y “]ÜØØØ-Ü�t“9�+˜Z¬¨F« }°GÐ<ô	ð �!‰WˆÜ�bÔ.×/Ñ/Ø�O‰OÔ™o¨bÓ1Õ2Ü˜Ô6×7Ñ7à—;‘;“=ˆDØ�z�zÜ ØØeÐfj×fvÑfvÐewÐxôô ×%Ò%ØØ—‘Ø—
‘
×-Ñ-Ó/à,.¯K¯K”�b—k‘k×'Ñ'Ô(¸Tð óˆDñ ‘ Ó$Õ%äÐ!CÄDÈÃHÀ:ÐNÓOÐOä×)Ñ)×0Ñ0°Ó6Ð6rN   rG   rÚ   )r�   r‘   rÛ   rÜ   r§  r^   rµ   r4   rˆ   rà   rá   r    râ   rG   rN   rL   r±  r±  ”  sc   † ñô
>ð

Ø-ð

Ø58ð

à	ô

ð-7à'ð-7ð �?Ñ#ð-7ð �S˜/Ð)Ñ*ð	-7ð
 
÷-7rN   r±  c                   ó�   ^ • \ rS rSr% \R
                  r\S-  \S'   Sr	\
S-  \S'    S
S\S-  S\SS4U 4S jjjrS\4S jrS	rU =r$ )ÚCellVariableiÙ  NÚpre_existing_contentsÚ
local_namerC   rD   c                 ó2   >• [         TU ]  " S0 UD6  Xl        g rF   )rH   rI   rÈ  )rJ   rÈ  rC   rK   s      €rL   rI   ÚCellVariable.__init__é  s   ø€ ô 	‰ÒÑ"˜6Ò"Ø%:Õ"rN   c                 ó"   • [         R                  $ rP   )r©   ÚCellTyperR   s    rL   rS   ÚCellVariable.python_typeï  s   € Ü�~‰~ÐrN   )rÈ  rP   )r�   r‘   rÛ   rÜ   r©   rÍ  rÝ   r4   r˜  rÉ  rµ   r   rI   rm   rS   râ   rã   rä   s   @rL   rÇ  rÇ  Ù  sg   ø‡ à—N‘N€Mð +¨TÑ1Ó1ð "€J��d‘
Ó!ð ?Cñ;Ø%4°tÑ%;ð;ØNQð;à	÷;ð ;ð˜T÷ ò rN   rÇ  c                   ó4   ^ • \ rS rSrS\SS4U 4S jjrSrU =r$ )ÚNewGlobalVariableió  rC   rD   Nc                 ó&   >• [         TU ]  " S0 UD6  g rF   ©rH   rI   ©rJ   rC   rK   s     €rL   rI   ÚNewGlobalVariable.__init__ô  ó   ø€ Ü‰ÒÑ"˜6Ó"rN   rG   )r�   r‘   rÛ   rÜ   r   rI   râ   rã   rä   s   @rL   rÐ  rÐ  ó  s   ø† ð# ð #¨÷ #õ #rN   rÐ  Úfn_clsrD   .c                 óR   ^ • S[         S[         S[         4U 4S jjn[        Ul        U$ )NrŠ   rC   rD   c                  ó(   >• TR                   " U 0 UD6$ rP   )Úapply)rŠ   rC   rÖ  s     €rL   Útrampoline_autograd_applyÚDproduce_trampoline_autograd_apply.<locals>.trampoline_autograd_applyù  s   ø€ Ø�|Š|˜TÐ, VÑ,Ð,rN   )r   Ú!produce_trampoline_autograd_applyÚ_origin)rÖ  rÚ  s   ` rL   rÜ  rÜ  ø  s/   ø€ ð-¬ð -¼ð -Ä÷ -ô )JÐÔ%Ø$Ð$rN   c            
       óF  ^ • \ rS rSrSrS1\R                  krS\S\SS4U 4S jjrS\	4S jr
S	\\   S\\\4   S\\   S-  4S
 jrSSS	\\   S\\\4   S\4S jrSSS	\\   S\\\4   S\4S jrSSS	\\   S\\\4   SS 4S jrSSS\S	\\   S\\\4   S\4
S jrSrU =r$ )ÚAutogradFunctionVariablei  z-represents a torch.autograd.Function subclassrÖ  rC   rD   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g rF   )rH   rI   rÖ  )rJ   rÖ  rC   rK   s      €rL   rI   Ú!AutogradFunctionVariable.__init__	  ó   ø€ Ü‰ÒÑ"˜6Ò"Ø�rN   c                 ó   • [         $ rP   ©rm   rR   s    rL   rS   Ú$AutogradFunctionVariable.python_type  ó   € ÜˆrN   rŠ   c                 ó`  ^• SSK Jn  U R                  R                  nUR                  nU" U R                  R
                  5      (       + nU(       a  SOSn[        UR                  XuR                   5      mU H8  nUT;  a    gTR                  U5      [        U5      :  d  M+  [        SU S35      e   [        U4S jU 5       [        U5      S-
  S9n	[        U5      n
[        [        U5      U	S-   5       H2  nTU   nX‚;   a  U
R                  X(   5        M"  [        S	U S
U S35      e   U
$ )zéResolve kwargs to positional args using forward().__code__.

Uses co_varnames/co_argcount directly to match the C++
resolve_kwargs_to_positional in python_function.cpp.
Keyword-only args are not resolved; callers should graph break.
r   ©Ú_is_setup_context_definedr-   Nz,forward() got multiple values for argument 'r^  c              3   óF   >#   • U  H  nTR                  U5      v •  M     g 7frP   )rp   )ru  ra   Úparam_namess     €rL   rv  Ú;AutogradFunctionVariable._resolve_kwargs.<locals>.<genexpr>*  s   øé € Ð8²¨ˆ[×Ñ˜t×$Ð$²ùrx  )Údefaultz&forward() missing required argument: 'z' (position rg  )Útorch.autograd.functionré  rÖ  ÚforwardÚ__code__Úsetup_contextrà   Úco_varnamesÚco_argcountrp   rt   r  Úmaxrs   Úappend)rJ   rŠ   rC   ré  rÃ  rÄ  Úhas_ctxÚparam_offsetra   Úmax_idxÚresultÚirë  s               @rL   Ú_resolve_kwargsÚ(AutogradFunctionVariable._resolve_kwargs  s$  ø€ õ 	Fà�[‰[× Ñ ˆØ�{‰{ˆÙ/°·±×0IÑ0IÓJÔJˆÞ#‘q¨ˆÜ˜4×+Ñ+¨L×;KÑ;KÐLÓMˆãˆDØ˜;Ó&ÙØ× Ñ  Ó&¬¨T«Õ2ÜÐ"NÈtÈfÐTUÐ VÓWÐWñ	 ô Ü8±Ó8Ü˜“I ‘Mñ
ˆô
 )-¨T«
ˆÜ”s˜4“y '¨A¡+Ö.ˆAØ˜q‘>ˆDØ‹~Ø—‘˜f™lÖ+äØ<¸T¸FÀ,ÈqÈcÐQRÐSóð ñ /ð ˆrN   r`   r=   c           	      ó|	  ^^• U(       at  U R                  X#5      nUc\  [        SS[        U5      [        U R                  R                  R
                  R                  5      -
   3S/ [        R                  QS9  Un0 nSmS[        SS 4UU4S jjn[        R                  " XRU45        T(       Ga�  [        R                  " 5       (       Gat  U R                  nS	S
KJn  S	SKJn  U R                  R                  n	U" U R                  R$                  5      n
U
(       a3  U" U R                  R                  U R                  R$                  5      n	S nU R                  R&                  nU[        R(                  R*                  R&                  La'  [        SSU  SU SU 3SSS/[        R                  QS9  U R                  R,                  nU[        R(                  R*                  R,                  La&  [        SSU  SU SU 3SS/[        R                  QS9  SSKJn  UcJ  U
(       dC  [3        TR5                  U R                  R6                  5      U R                  R8                  5      nU=(       a
    [3        USS9nU" U	U R                  R:                  UUS9R=                  TX#5      nU R                  (       aƒ  U
(       a|  [3        U R                  S5      n[?        URA                  [B        RD                  5      5        [3        U R                  S5      n[?        URA                  [B        RD                  5      5        U$ U R                  (       a  [3        U R                  S5      nOS nU R                  R                  n[F        RI                  TX#5      nU/UQn[K        U[L        RN                  5      (       ai  [P        RR                  " U5      n[U        U5      S-
  [U        URV                  5      :X  a  USS  n[        RX                  " TUUSS9nUR=                  TX#5      $ [K        U[L        RZ                  5      (       aN  [\        R^                  " UR`                  [\        Rb                  " U R                  5      US9R=                  TX#5      $ [        SSU  SU SU 3S[e        U5      R8                   S 3S!/S9  g )"NÚautograd_function_kwonly_argsz!forward() has keyword-only args: zMautograd.Function.apply does not support keyword-only arguments in forward().rd   FrÀ   rD   c                 óÄ   >• U R                  5       (       a  U R                  SLa  Sm[        U [        R                  5      (       a  U R                  T5      (       a  Smg g g ©NFT)Ú	is_tensorÚrequires_gradr�   r   ÚNNModuleVariableÚis_training)rÀ   r  r`   s    €€rL   ÚvisitÚ2AutogradFunctionVariable.call_apply.<locals>.visitM  sR   ø€ à�|‰|�~‰~à×#Ñ#¨5Ò0Ø$(�MÜ˜"œi×8Ñ8×9Ñ9Ø—>‘> "×%Ñ%Ø$(‘Mð &ð :rN   r   )Ú#autograd_function_forward_rewrittenrè  zUnsupported custom vjpzcall_apply rŽ   zgDynamo does not support tracing `torch.autograd.Function` subclasses that define a custom `vjp` method.z+Remove the custom `vjp` method if possible.z.Use standard `backward` instead if applicable.zUnsupported custom jvpzgDynamo does not support tracing `torch.autograd.Function` subclasses that define a custom `jvp` method.z+Remove the custom `jvp` method if possible.r-   )ÚAutogradFunctionApplyVariablerÙ  )r¦   r‚   rï  rñ  Tr’   z=Non-function or method in subclass of torch.autograd.FunctionzˆDynamo requires the `forward` attribute of a `torch.autograd.Function` subclass to be a standard Python function or method. Found type `z
` instead.zPEnsure the `forward` method is defined as a regular function or instance method.)3rû  r   ÚsetrÖ  rï  rð  rò  r   r  r4   r  r™   Úis_grad_enabledrk   Ú"torch._functorch.autograd_functionr  rî  ré  rñ  ÚvjpÚautogradÚFunctionÚjvpÚhigher_order_opsr  r   Úimport_sourcer‘   r�   Úbackwardr    r   r…   r   ÚCLOSURE_MATCHÚAutogradFunctionContextVariabler‡   r�   r©   rª   ÚinspectÚ	signaturert   Ú
parametersrŸ   r­   r   r®   r”   r£   rm   )rJ   r`   rŠ   rC   Úresolvedr  rk   r  ré  Ú
forward_fnÚis_setup_ctx_definedÚvjp_fnÚjvp_fnr  Úapply_sourcer  Úfwd_srcÚsetup_ctx_srcrÃ  ÚctxÚsigrÆ   r  s    `                    @rL   Ú
call_applyÚ#AutogradFunctionVariable.call_apply9  s'  ù€ ö Ø×+Ñ+¨DÓ9ˆHØÑÜØ;Ø?ÄÀFÃÌcÐRV×R]ÑR]×ReÑRe×RnÑRn×RzÑRzÓN{Ñ@{Ð?|Ð}Ø oØ:Ô-×9Ñ9Ð:ò	ð ˆDØˆFàˆð	)”oð 	)¨$÷ 	)ð 	)ô 	×Ò˜e¨F ^Ô4çœU×2Ò2×4Ò4Ø—[‘[ˆFõõ JàŸ™×,Ñ,ˆJá#<¸T¿[¹[×=VÑ=VÓ#WÐ Þ#ñ AØ—K‘K×'Ñ'¨¯©×)BÑ)Bó�
ð �à—[‘[—_‘_ˆFØœUŸ^™^×4Ñ4×8Ñ8Ò8ÜØ4Ø)¨$¨¨q°°°a¸°xÐ@ð!-ð FØHðô +×6Ñ6ðòð —[‘[—_‘_ˆFØœUŸ^™^×4Ñ4×8Ñ8Ò8ÜØ4Ø)¨$¨¨q°°°a¸°xÐ@ð!-ð Fðä*×6Ñ6ðò
õ Hà‰~Ö&:Ü#Ø×$Ñ$ T§[¡[×%;Ñ%;Ó<¸d¿k¹k×>RÑ>Ró�ð "×H¤j°ÀÑ&HˆLÙ/ØØ—‘×$Ñ$ØØ#ñ	÷
 ‰m˜B Ó-ð ð �{�{Ö3Ü$ T§[¡[°)Ó<�Ü˜g×0Ñ0´×1KÑ1KÓLÔMÜ *¨4¯;©;¸Ó H�Ü˜m×6Ñ6´|×7QÑ7QÓRÔSàˆJà�;�;Ü §¡¨YÓ7‰FàˆFà�[‰[× Ñ ˆÜ-×4Ñ4°R¸ÓFˆØˆ|�dˆ|ˆÜ�bœ%×,Ñ,×-Ñ-Ü×#Ò# BÓ'ˆCÜ�4‹y˜1‰}¤ C§N¡NÓ 3Ó3Ø˜A˜B�x�Ü#×)Ò)¨"¨b¸ÈÑNˆEØ×&Ñ& r¨4Ó8Ð8Ü˜œE×,Ñ,×-Ñ-Ü×/Ò/Ø—‘Ü×2Ò2°4·;±;Ó?Øñ÷ ‰m˜B Ó-ð	.ô ØWØ% d V¨1¨T¨F°!°F°8Ð<ð3ä37¸³8×3DÑ3DÐ2EÀZðQð3ðó
rN   c                 ó  • U R                   R                  n[        US   R                  5      [        R
                  R                  R                  La$  [        S[        US   R                  5       35      e[        U[        R                  5      (       d  [        S[        U5       35      eU R                  c  [        S5      e[        U R                  S5      n[        R                  " XUSS9nUR!                  XU5      $ )Nr   z$Expected FakeBackwardCFunction, got zExpected FunctionType, got z*AutogradFunctionVariable requires a sourcer  Tr’   )rÖ  r  rm   rn   r™   Ú_dynamoÚexternal_utilsÚFakeBackwardCFunctionri   r�   r©   rª   rk   r   r4   rŸ   r    )rJ   r`   rŠ   rC   rÃ  Ú	fn_sourcerÆ   s          rL   Úcall_backwardÚ&AutogradFunctionVariable.call_backwardÂ  sÜ   € ð �[‰[×!Ñ!ˆä��a‘—‘ÓÜ—=‘=×/Ñ/×EÑEòFô !Ø6´t¸DÀ¹G¿M¹MÓ7JÐ6KÐLóð ô ˜"œe×0Ñ0×1Ñ1Ü Ð#>¼tÀB»x¸jÐ!IÓJÐJØ�;‰;ÑÜ Ð!MÓNÐNÜ˜tŸ{™{¨JÓ7ˆ	Ü×%Ò% b°YÈÑMˆØ×"Ñ" 2¨VÓ4Ð4rN   c                 ó,   • [        U R                  5      $ rP   )rß  rÖ  ©rJ   r`   rŠ   rC   s       rL   r    Ú&AutogradFunctionVariable.call_functionØ  s   € ô (¨¯©Ó4Ð4rN   ra   c           
      óÆ  • SSK Jn  US:X  ax  [        R                  " U R                  5      (       aA  [        U R                  5      nU" UUR                  R                  " SU/[        X45      Q76 S9$ U R                  XU5      $ US:X  a  U R                  XU5      $ U R                  b  [        U R                  U5      OS n [        R                  " U R                  U5      n[!        U["        5      (       a|  UR%                  U R                  5      n	[        R&                  " U	5      n
U
c  [)        SU	 35      eUb  U
R+                  X—S9R-                  XU5      $ U
" U	5      R-                  XU5      $ [!        U[.        5      (       a/  [0        R2                  " UR4                  XS9R-                  XU5      $ [7        S	S
U  SU 3SU S3S/S9  g ! [         a    S n Nûf = f)Nr-   )Úwrap_fx_proxyrÙ  r    )r`   Úproxyr  z%trace_rules.lookup returned None for r‚   z$Unsupported autograd.Function methodr�   rŽ   ú,Dynamo does not support calling the method `z‡` directly on the `torch.autograd.Function` instance. Supported methods include `apply`, `backward`, static methods, and class methods.znEnsure the method is decorated with `@staticmethod` or `@classmethod` if it's meant to be called on the class.rd   )Úbuilderr/  r   Úis_callable_allowedrÖ  rÜ  r²   Úcreate_proxyr*   r"  r)  rk   r   r  Úgetattr_staticr¼   r�   r¨   Ú__get__Úlookupri   Úcreate_with_sourcer    r«   r   r®   r”   r   )rJ   r`   ra   rŠ   rC   r/  rÚ  rk   r  rÑ   Útraceds              rL   r§   Ú$AutogradFunctionVariable.call_methodà  sì  € õ 	+à�7‹?Ü×.Ò.¨t¯{©{×;Ñ;Ü,MØ—K‘Kó-Ð)ñ %ØØŸ)™)×0Ò0Ø'Ø1ðô +¨4Ó8òñð ð —‘ r°Ó8Ð8à�ZÓØ×%Ñ% b°Ó7Ð7à6:·k±kÑ6M”Z §¡¨TÔ2ÐSWˆFðÜ×,Ò,¨T¯[©[¸$Ó?�ô ˜#œ|×,Ñ,Ø—{‘{ 4§;¡;Ó/�Ü$×+Ò+¨DÓ1�Ø‘>Ü(Ð+PÐQUÐPVÐ)WÓXÐXØÑ%ð ×1Ñ1°$Ð1ÐF×TÑTØ fóðñ " $›<×5Ñ5°bÀÓGÐGÜ˜C¤×-Ñ-Ü ×3Ò3Ø—L‘L $ñç‘- ¨&Ó1ð2ô ØBØ*¨4¨&°°$°Ð8ð!Ø�vð 9ð!9ð
Uðóøô/ "ó Ø’ðús   Ã!G ÇG ÇG )rÖ  )r�   r‘   rÛ   rÜ   r§  r4   rÞ   r   rI   rm   rS   rà   rá   rµ   rû  r"  r)  r    r§   râ   rã   rä   s   @rL   rß  rß    s…  ø† Ù7ð 	ðà	×	'Ñ	'ð€Nð
˜sð ¨cð °d÷ ð˜Tô ð'à�?Ñ#ð'ð �S˜/Ð)Ñ*ð'ð 
ˆoÑ	 Ñ	%ô	'ðRGà'ðGð �?Ñ#ðGð �S˜/Ð)Ñ*ð	Gð
 
ôGðR5à'ð5ð �?Ñ#ð5ð �S˜/Ð)Ñ*ð	5ð
 
ô5ð,5à'ð5ð �?Ñ#ð5ð �S˜/Ð)Ñ*ð	5ð
 
$ô5ðAà'ðAð ðAð �?Ñ#ð	Að
 �S˜/Ð)Ñ*ðAð 
÷Aò ArN   rß  c                   óF   • \ rS rSr% \R
                  " \S9r\\   \	S'   Sr
g)ÚSavedTensorBoxi$  )Údefault_factoryÚtensorsrG   N)r�   r‘   rÛ   rÜ   ÚdataclassesÚfieldrà   r>  r4   r˜  râ   rG   rN   rL   r<  r<  $  s   ‡ à%0×%6Ò%6ÀtÑ%L€GˆT�/Ñ"ÖLrN   r<  c                   óD  ^ • \ rS rSrSrSSS1\R                  kr     SS\S\S-  S\	S\S-  S	\S-  S
\
\   S-  S\SS4U 4S jjjr\  SSSS\
\   S-  S\\\4   S-  S\4S jj5       rS\4S jrSSS\S\
\   S\\\4   S\4
U 4S jjrSSS\S\4U 4S jjrSrU =r$ )r  i)  zR
Tracks an autograd.Function() context using mutation tracking in side_effects.py
r0  Ú	inferenceÚsaved_tensorsNrn   r¬   Únon_differentiableÚdirty_tensorsrC   rD   c                 óZ   >• [         TU ]  " SXS.UD6  X0l        X@l        XPl        X`l        g ©N)rn   r¬   rG   )rH   rI   rB  rC  rD  rE  )	rJ   rn   r¬   rB  rC  rD  rE  rC   rK   s	           €rL   rI   Ú(AutogradFunctionContextVariable.__init__5  s1   ø€ ô 	‰ÒÐF˜uÑF¸vÒFØ"ŒØ*ÔØ"4ÔØ*ÕrN   r`   r=   rŠ   c           
      ó�  • U R                   R                  R                  S [        R                  R
                  R                  [        R                  " [        S[        5       S90 5      nU(       aT  U(       dM  [        S U 5       5      nU R                   R                  R                  US[        R                  " U5      5        U$ )NT)rB  rC  c              3   óf   #   • U  H'  oR                  5       =(       a    UR                  v •  M)     g 7frP   )r  r  ©ru  Úxs     rL   rv  Ú9AutogradFunctionContextVariable.create.<locals>.<genexpr>Z  s"   é € Ð$UÒPTÈ1§[¡[£]×%F°q·±Ô%FÒPTùs   ‚/1Úneeds_input_grad)r²   rœ   Útrack_object_newr™   r  ÚfunctionÚFunctionCtxÚ	functoolsÚpartialr  r<  rß   rV  r5   r‡   )r`   rŠ   rC   ÚoutrN  s        rL   r‡   Ú&AutogradFunctionContextVariable.createE  s¢   € ð �i‰i×$Ñ$×5Ñ5ØÜ�N‰N×#Ñ#×/Ñ/Ü×ÒÜ/ØÜ,Ó.ñð
 ó	
ˆö žô
  %Ñ$UÑPTÓ$UÓUÐØ�I‰I×"Ñ"×;Ñ;ØÐ'Ô)9×)@Ò)@ÐAQÓ)Rôð ˆ
rN   c                 ór   • U R                   c  [        SSU  3S/ [        R                  QS9  U R                   $ )Nzproxy not setz	as_proxy zMDynamo requires the autograd.Function context to be initialized with a proxy.rd   )r0  r   r   r´   rR   s    rL   Úas_proxyÚ(AutogradFunctionContextVariable.as_proxy`  sA   € à�:‰:ÑÜØ'Ø# D 6Ð*ð2à5Ô)×4Ñ4Ð5òð �z‰zÐrN   ra   c                 óV  >• US:X  a  [         TU ]  XX45      $ US:X  aS  U(       a  [        XS[        U5       S35        [	        U0 5      S   U l        [        R                  R                  S 5      $ US:X  au  U(       a  [        XS[        U5       S35        [        U SS 5      c"  [        SS	U  S
U 3S/ [        R                  QS9  X0l        [        R                  R                  S 5      $ US:w  a&  [        SS	U  S
U 3SU S3/ [        R                  QS9  U R                  c  [        SS	U  S
U 3SS/S9  U R                  c  [        S5      eU R                   (       dI  U(       d  U R"                  (       d  [%        US5        UR&                  R(                  R+                  X5        [        U R                  R,                  5      S:”  a  / U R                  l        U H(  nU R                  R,                  R/                  U5        M*     [        R                  R                  S 5      $ )Nr,  Úmark_non_differentiablez0 kwargsrº  r   Ú
mark_dirtyr0  z2Unsupported autograd.Function context `mark_dirty`r�   rŽ   zKDynamo only supports tracing ctx.mark_dirty inside autograd.Function.apply.rd   Úsave_for_backwardz,Unsupported autograd.Function context methodr1  z�` on `autograd.Function` context objects. Supported methods are `__setattr__`, `save_for_backward`, `mark_dirty` and `mark_non_differentiable`.z9Unsupported autograd.Function context `save_for_backward`zjDynamo requires the `saved_tensors` attribute to be initialized on the `autograd.Function` context object.zÆEnsure that the `saved_tensors` attribute is properly initialized before calling `save_for_backward`. `save_for_backward` only supported on a newly constructed `torch.autograd.function.FunctionCtx`.z:saved_tensors must be initialized before save_for_backwardz>save_for_backward() requires a source and no keyword arguments)rH   r§   r+   rt   r*   rD  r   r5   r‡   rr   r   r   r  rE  rC  ri   rB  rk   r   r²   rœ   Útrack_save_for_backwardr>  rõ  )rJ   r`   ra   rŠ   rC   rj  rK   s         €rL   r§   Ú+AutogradFunctionContextVariable.call_methodm  s+  ø€ ð �=Ó Ü‘7Ñ& r°Ó>Ð>ØÐ.Ó.ÞÜ# B¨j¼SÀ»[¸MÈÐ:QÔRÜ&7¸¸bÓ&AÀ!Ñ&DˆDÔ#Ü×-Ñ-×4Ñ4°TÓ:Ð:Ø�\Ó!ÞÜ# B¨j¼SÀ»[¸MÈÐ:QÔRÜ�t˜W dÓ+Ñ3ÜØPØ*¨4¨&°°$°Ð8ð!6à:Ô-×9Ñ9Ð:òð "&ÔÜ×-Ñ-×4Ñ4°TÓ:Ð:àÐ&Ó&ÜØFØ& t f¨A¨d¨VÐ4ðØ�6ð >ð>ð 7Ô)×5Ñ5Ð6òð ×ÑÑ%ÜØSØ& t f¨A¨d¨VÐ4ðOðwðò
ð ×ÑÑ%Ü ØLóð ð �~�~Þ˜TŸ[Ÿ[Ü ØÐXôð �I‰I×"Ñ"×:Ñ:¸4ÔFô ˆt×!Ñ!×)Ñ)Ó*¨QÓ.à)+ˆD×ÑÔ&ÛˆCØ×Ñ×&Ñ&×-Ñ-¨cÖ2ñ ä×)Ñ)×0Ñ0°Ó6Ð6rN   c                 óš  >^ ^^• TS;   a  [        UU U4S j5      $ TS:X  aU  T R                  c  [        R                  R	                  S 5      $ [        R
                  " [        T R                  5      5      $ TS:X  a@  T R                  b3  [        R
                  " [        T R                  R                  5      5      $ [        TT ])  TT5      $ )N)r\  r[  rZ  c                  ó>   >• TR                  TT[        U 5      U5      $ rP   )r§   rà   )rŠ   rC   ra   rJ   r`   s     €€€rL   rY   ÚBAutogradFunctionContextVariable.tp_getattro_impl.<locals>.<lambda>·  s   ø€ ¨×(8Ñ(8¸¸TÄ4ÈÃ:ÈvÔ(VrN   rE  rC  )r˜   rE  r   r5   r‡   r   rà   rC  r>  rH   rˆ   r  s   ```€rL   rˆ   Ú0AutogradFunctionContextVariable.tp_getattro_impl²  s®   û€ ð ÐQÓQÜ!ÞVóð ð �?Ó"Ø×!Ñ!Ñ)Ü ×1Ñ1×8Ñ8¸Ó>Ð>Ü×*Ò*¬4°×0BÑ0BÓ+CÓDÐDØ�?Ó" t×'9Ñ'9Ñ'EÜ×*Ò*¬4°×0BÑ0B×0JÑ0JÓ+KÓLÐLä‰wÑ'¨¨DÓ1Ð1rN   )rE  rB  rD  rC  )NFNNNr¯  )r�   r‘   rÛ   rÜ   r§  r;   rÞ   r   rm   r/  rà   r4   rI   r¨   rá   rµ   r‡   rW  r§   rˆ   râ   rã   rä   s   @rL   r  r  )  s{  ø† ñð
 	ØØðð 
#×	1Ñ	1ð	€Nð #'ØØ$(Ø)-Ø6:ñ+àð+ð ˜4‘Kð+ð ð	+ð
 ˜T‘zð+ð   $™Jð+ð ˜OÑ,¨tÑ3ð+ð ð+ð 
÷+ð +ð  ð .2Ø48ñØ'ðà�?Ñ# dÑ*ðð �S˜/Ð)Ñ*¨TÑ1ðð 
ô	ó ðð4˜#ô ðC7à'ðC7ð ðC7ð �?Ñ#ð	C7ð
 �S˜/Ð)Ñ*ðC7ð 
÷C7ðJ2Ø-ð2Ø58ð2à	÷2õ 2rN   r  c            
       óÐ   ^ • \ rS rSrSr SS\R                  R                  S\\R                  R                     S-  S\	SS4U 4S jjjr
S	S
S\S\\   S\\\4   S\4
S jrSrU =r$ )ÚAutogradEngineVariableiÃ  z3
Represents a torch._C._ImperativeEngine instance.
Nrn   r¬   rC   rD   c                 ó*   >• [         TU ]  " SXS.UD6  g rG  rÒ  )rJ   rn   r¬   rC   rK   s       €rL   rI   ÚAutogradEngineVariable.__init__È  s   ø€ ô 	‰ÒÐF˜uÑF¸vÓFrN   r`   r=   ra   rŠ   c                 ó  • US:X  aå  [         R                  R                  R                  (       a©  UR                  (       d  UR
                  (       d  [        S5      e[        R                  " U[         R                  R                  R                  R                  5      nUR                  UUR                  R                  R                  5       /UQ7U5      $ [!        SSU  SU 3S/ S9  g [!        SSU  SU 3S	U S
3/ S9  g )NÚqueue_callbackzXqueue_callback() is only supported when Compiled Autograd is enabled with fullgraph=Truez7Unsupported torch._C._ImperativeEngine.queue_callback()r�   rŽ   zYqueue_callback() is only supported when Compiled Autograd is enabled with fullgraph=True.rd   z-Unsupported torch._C._ImperativeEngine methodzgDynamo only supports the `queue_callback` method on a torch._C._ImperativeEngine instance, but found: `z`.)r™   r%  Úcompiled_autogradÚin_compiled_autograd_regionÚ	one_graphÚerror_on_graph_breakri   r4   rŸ   r&  ÚFakeCompiledAutogradEnginerh  r    r²   rœ   Úget_ca_final_callbacks_varr   )rJ   r`   ra   rŠ   rC   rÆ   s         rL   r§   Ú"AutogradEngineVariable.call_methodÐ  sÿ   € ð Ð#Ó#Ü�}‰}×.Ñ.×J×JØŸŸ¨×(?×(?Ü(Øróð ô (×-Ò-ØÜ—M‘M×0Ñ0×KÑK×ZÑZó�ð ×*Ñ*ØØ—Y‘Y×+Ñ+×FÑFÓHÐPÈ4ÑPØóð ô ØUØ*¨4¨&°°$°Ð8ð!Hàóô ØGØ& t f¨A¨d¨VÐ4ðIØIMÈÈbðRàórN   rG   rP   )r�   r‘   rÛ   rÜ   r§  r™   r½   Ú_ImperativeEnginerm   r   rI   rµ   rà   r4   rá   r§   râ   rã   rä   s   @rL   rd  rd  Ã  s«   ø† ñð ?CñGà�x‰x×)Ñ)ðGð ˜Ÿ™×3Ñ3Ñ4°tÑ;ðGð ð	Gð
 
÷Gð Gð&à'ð&ð ð&ð �?Ñ#ð	&ð
 �S˜/Ð)Ñ*ð&ð 
÷&ò &rN   rd  c                   óz   ^ • \ rS rSrS\S\4   S\SS4U 4S jjrS\4S jr	S	S
S\
\   S\\\4   S\4S jrSrU =r$ )r˜   iù  rÃ  .rC   rD   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g rF   )rH   rI   rÃ  )rJ   rÃ  rC   rK   s      €rL   rI   ÚLambdaVariable.__init__û  s   ø€ Ü‰ÒÑ"˜6Ò"Ø�rN   c                 ó"   • [         R                  $ rP   )r©   rª   rR   s    rL   rS   ÚLambdaVariable.python_typeÿ  s   € Ü×!Ñ!Ð!rN   r`   r=   rŠ   c                 ó&   • U R                   " U0 UD6$ rP   ©rÃ  r,  s       rL   r    ÚLambdaVariable.call_function  s   € ð �wŠw˜Ð' Ñ'Ð'rN   rw  )r�   r‘   rÛ   rÜ   r   r4   r   rI   rm   rS   rà   rá   rµ   r    râ   rã   rä   s   @rL   r˜   r˜   ù  sr   ø† ð˜8 C¨Ð$8Ñ9ð ÀSð ÈT÷ ð"˜Tô "ð(à'ð(ð �?Ñ#ð(ð �S˜/Ð)Ñ*ð	(ð
 
÷(ò (rN   r˜   c                   óª  ^ • \ rS rSrSS1\R
                  kr S S\S\S\S-  S\SS4
U 4S jjjr	S\4U 4S	 jjr
S\4S
 jr\S\R                  R                  S\S\4S j5       rS\4S jrS\4S jrSSS\\\4   4S jrSSS\SS4U 4S jjrSSS\S\4S jrS!S jrSSSSS\SS4S jrSSS\\   S\\\4   S\4S jrSSS\S\4U 4S jjrSrU =r $ )"r„   i  ra   r�   Nr  rC   rD   c                 óú   >• [         TU ]  " S0 UD6  [        U[        5      (       d  [	        S[        U5       35      e[        U[        5      (       d  [	        S[        U5       35      eXl        X l        X0l	        g )Nz#obj must be a VariableTracker, got zname must be a str, got rG   )
rH   rI   r�   r4   ri   rm   rµ   r  ra   r�   )rJ   r  ra   r�   rC   rK   s        €rL   rI   ÚGetAttrVariable.__init__  sl   ø€ ô 	‰ÒÑ"˜6Ò"Ü˜#œ×/Ñ/Ü Ð#FÄtÈCÃyÀkÐ!RÓSÐSÜ˜$¤×$Ñ$Ü Ð#;¼DÀ»J¸<Ð!HÓIÐIØŒØŒ	Ø�rN   c                 óR   >• U R                   b  U R                   $ [        TU ]	  5       $ rP   )r�   rH   rS   ©rJ   rK   s    €rL   rS   ÚGetAttrVariable.python_type"  s%   ø€ Ø�<‰<Ñ#Ø—<‘<Ðä‘7Ñ&Ó(Ð(rN   c                 óh   • U R                   R                   SU R                   SU R                   S3$ ©Nrf  rs  rg  )rK   r�   r  ra   rR   s    rL   r‚  ÚGetAttrVariable.__repr__(  s.   € Ø—.‘.×)Ñ)Ð*¨!¨D¯H©H¨:°R¸¿	¹	°{À!ÐDÐDrN   Ú
base_proxyrÌ   c                 ó   • [        X5      $ rP   )rr   )r‚  rÌ   s     rL   Úcreate_getattr_proxyÚ$GetAttrVariable.create_getattr_proxy+  s   € ä�zÓ(Ð(rN   c                 ór   • [         R                  U R                  R                  5       U R                  5      $ rP   )r„   r„  r  rW  ra   rR   s    rL   rW  ÚGetAttrVariable.as_proxy/  s&   € Ü×3Ñ3°D·H±H×4EÑ4EÓ4GÈÏÉÓSÐSrN   c                 óœ   • U R                   R                  5       n [        XR                  5      $ ! [         a    [        U  S35      S ef = f)Nz is not a constant)r  rj   rr   ra   r¼   r±   )rJ   Úconstants     rL   rj   Ú"GetAttrVariable.as_python_constant2  sO   € Ø—8‘8×.Ñ.Ó0ˆð	MÜ˜8§Y¡YÓ/Ð/øÜó 	MÜ%¨¨Ð.@Ð&AÓBÈÐLð	Mús	   œ1 ±Ar`   r=   c                 ó¶   •  U R                  5       n[        W5      S4$ ! [        [        4 a)    SSKJn  U" SSU  3SU  S3/ [
        R                  QS9   NEf = f)	Nr   )r   z!Non-constant GetAttrVariable hashz
hash_impl zCannot hash zh because Dynamo doesn't know how to represent the type of the getattr() result, which is not a constant.rd   F)rj   r.   r±   rÍ   r   r   r  Úhash)rJ   r`   r  r   s       rL   Ú	hash_implÚGetAttrVariable.hash_impl9  sw   € ð	Ø×)Ñ)Ó+ˆCô �C‹y˜%ÐÐøô 4Ô5HÐIó 		Ý+áØ;Ø$ T FÐ+Ø*¨4¨&ð 1Mð Mà6Ô)×5Ñ5Ð6ôð		ús   ‚ Ÿ6AÁAr5   c                 óZ  >• [        U R                  [        5      (       a}  U R                  S:X  am  [	        U R                  R
                  SS5      (       aG  [        R                  R                  [        U R                  R
                  R                  U5      5      $ [        TU ]1  X5      $ )NrÙ  Úgenerate_vmap_ruleF)r�   r  rß  ra   rr   rÖ  r   r5   r‡   r¢   rÙ  rH   Úcall_obj_hasattrr  s      €rL   r‘  Ú GetAttrVariable.call_obj_hasattrJ  s~   ø€ ô �t—x‘xÔ!9×:Ñ:Ø—	‘	˜WÓ$Ü˜Ÿ™Ÿ™Ð)=¸u×EÑEä×-Ñ-×4Ñ4Ü˜Ÿ™Ÿ™×-Ñ-¨tÓ4óð ô ‰wÑ'¨Ó1Ð1rN   c                 ó”  • [        U R                  [        R                  5      (       d  [        eUR
                  R                  U R                  R                  5      nU R                  UR                  ;  a  [        e[        R                  " X0R                  5      nX$R                  ;  a  [        e[        R                  " XB5      $ rP   )r�   r  r   r  r±   r²   Úget_submoduleÚ
module_keyra   ru   r  r5  )rJ   r`   ra   Ústep1Ústep2s        rL   Úconst_getattrÚGetAttrVariable.const_getattrW  sˆ   € Ü˜$Ÿ(™(¤I×$>Ñ$>×?Ñ?Ü%Ð%Ø—	‘	×'Ñ'¨¯©×(;Ñ(;Ó<ˆØ�9‰9˜EŸN™NÓ*Ü%Ð%Ü×&Ò& u¯i©iÓ8ˆØ—~‘~Ó%Ü%Ð%Ü×%Ò% eÓ2Ð2rN   c                 ó|   • U" U R                   5        UR                  UR                  U R                  5      5        g rP   )r  r\   Úcreate_load_attrsra   r³  s     rL   r^   ÚGetAttrVariable.reconstructb  s+   € Ù�—‘ÔØ×Ñ˜g×7Ñ7¸¿	¹	ÓBÕCrN   r   r4   r!  c                 óÔ  • SSK Jn   U R                  R                  XR                  5      nUb  [        U[        5      (       aŠ  U R                  R                  5       (       aE  [        U R                  R                  5       U R                  5      n[        R                  " X5      nO&[        SSU  SU 3SU  S3/ [        R                  QS9  U" XX#5      $ ! [
         a    S n N¹f = f)	Nr-   ©Úgeneric_richcomparez%Unresolved GetAttrVariable comparisonztp_richcompare_impl rŽ   zCannot compare zA because the attribute could not be resolved to a concrete value.rd   )r&  rŸ  r  rˆ   ra   r±   r�   r„   Úis_python_constantrr   rj   r4   rŸ   r   r   r  )rJ   r`   r   r!  rŸ  r  r  s          rL   r(  Ú#GetAttrVariable.tp_richcompare_implf  sÚ   € õ 	9ð	Ø—x‘x×0Ñ0°·Y±YÓ?ˆHð Ñœz¨(´O×DÑDØ�x‰x×*Ñ*×,Ñ,Ü˜dŸh™h×9Ñ9Ó;¸T¿Y¹YÓG�Ü*×0Ò0°Ó9‘äØCØ2°4°&¸¸"¸Ð>Ø"1°$°ð 8Að !Bà:Ô-×9Ñ9Ð:òñ # 2°Ó;Ð;øô #ó 	ØŠHð	ús   ˆ%C ÃC'Ã&C'rŠ   c                 óN   • U R                   R                  XR                  X#5      $ rP   )r  r§   ra   r,  s       rL   r    ÚGetAttrVariable.call_function}  s   € ð �x‰x×#Ñ# B¯	©	°4Ó@Ð@rN   r[  c                 óÌ   >• U R                   S:X  aE  [        U R                  S5      (       a*  U R                  R                  U5      R	                  X5      $ [
        TU ]  X5      $ )Nru   Úget_dict_vt)ra   r¢   r  r¥  Úmp_subscript_implrH   )rJ   r`   r[  rK   s      €rL   r¦  Ú!GetAttrVariable.mp_subscript_impl…  sQ   ø€ ð
 �9‰9˜
Ó"¤w¨t¯x©x¸×'GÑ'GØ—8‘8×'Ñ'¨Ó+×=Ñ=¸bÓFÐFÜ‰wÑ(¨Ó1Ð1rN   )ra   r  r�   rP   rÚ   )!r�   r‘   rÛ   rÜ   r4   rÞ   rµ   rm   r   rI   rS   r‚  r¨   r™   ÚfxÚProxyr„  rW  rj   rß   Úintr/  r�  r‘  r˜  r^   r(  rà   rá   r    r¦  râ   rã   rä   s   @rL   r„   r„     s¯  ø† àØðð 
×	'Ñ	'ð€Nð  $ñ	àðð ðð ˜‘ð	ð
 ðð 
÷ð ð )˜T÷ )ðE˜#ô Eð ð)¨¯©¯©ð )¸sð )Àsó )ó ð)ðT˜#ô TðM Cô Mð Ð7ð  ¸EÀ#ÀtÀ)Ñ<Lô  ð"2Ø-ð2Ø58ð2à	÷2ð	3Ð ;ð 	3À3ð 	3È3ô 	3ôDð<Ø-ð<Ø6Gð<ØMPð<à	ô<ð.Aà'ðAð �?Ñ#ðAð �S˜/Ð)Ñ*ð	Að
 
ôAð2à'ð2ð ð2ð 
÷	2õ 2rN   r„   c                   óò   ^ • \ rS rSrSrS1\R                  krS\S\S\SS4U 4S jjr	S\4S	 jr
S\4S
 jrS\4S jrSSS\\\4   4S jrSSS\S\S\4S jrSSS\\   S\\\4   S\4S jrSS jrSrU =r$ )ÚCallMethodVariablei�  z‘A method bound to a VT instance.

Returned by object_generic_getattr when the MRO walk finds a method
on a VT that has custom call_method logic.
Úmethod_namer  rC   rD   Nc                 ó>   >• [         TU ]  " S0 UD6  Xl        X l        g rF   )rH   rI   r  r­  )rJ   r  r­  rC   rK   s       €rL   rI   ÚCallMethodVariable.__init__›  s    ø€ ô 	‰ÒÑ"˜6Ò"ØŒØ&ÕrN   c                 óh   • U R                   R                   SU R                   SU R                   S3$ r€  )rK   r�   r  r­  rR   s    rL   r‚  ÚCallMethodVariable.__repr__¥  s1   € Ø—.‘.×)Ñ)Ð*¨!¨D¯H©H¨:°R¸×8HÑ8HÐ7IÈÐKÐKrN   c                 ó‚   •  [        U R                  5       5      $ ! [        [        4 a    [        R
                  s $ f = frP   )rm   rj   r.   r¼   r©   r­   rR   s    rL   rS   ÚCallMethodVariable.python_type¨  s;   € ð	$Ü˜×/Ñ/Ó1Ó2Ð2øÜ3´^ÐDó 	$Ü×#Ñ#Ò#ð	$ús   ‚ › >½>c                 ó^   • [        U R                  R                  5       U R                  5      $ rP   )rr   r  rj   r­  rR   s    rL   rj   Ú%CallMethodVariable.as_python_constant®  s"   € Ü�t—x‘x×2Ñ2Ó4°d×6FÑ6FÓGÐGrN   r`   r=   c                 ót   •  [        U R                  5       5      S4$ ! [         a    [        U 5      S4s $ f = fr   )rŒ  rj   r.   Úidr}  s     rL   r�  ÚCallMethodVariable.hash_impl±  s=   € ð	"Ü˜×/Ñ/Ó1Ó2°EÐ9Ð9øÜ2ó 	"Ü�d“8˜T�>Ò!ð	"ús   ‚ �7¶7r   r!  c                 ó    • SSK Jn  U" XX#5      $ r#  r%  r'  s        rL   r(  Ú&CallMethodVariable.tp_richcompare_impl·  s   € õ 	8á! $¨EÓ6Ð6rN   rŠ   c                 óN   • U R                   R                  XR                  X#5      $ rP   )r  r§   r­  r,  s       rL   r    Ú CallMethodVariable.call_functionÁ  s!   € ð �x‰x×#Ñ# B×(8Ñ(8¸$ÓGÐGrN   c                 ó|   • U" U R                   5        UR                  UR                  U R                  5      5        g rP   )r  r\   r›  r­  r³  s     rL   r^   ÚCallMethodVariable.reconstructÉ  s-   € Ù�—‘ÔØ×Ñ˜g×7Ñ7¸×8HÑ8HÓIÕJrN   )r­  r  rÚ   )r�   r‘   rÛ   rÜ   r§  r4   rÞ   rµ   r   rI   r‚  rm   rS   rj   rß   rª  r/  r�  r(  rà   rá   r    r^   râ   rã   rä   s   @rL   r¬  r¬  �  s  ø† ñð 	ðà	×	'Ñ	'ð€Nð
'àð'ð ð'ð ð	'ð
 
÷'ðL˜#ô Lð$˜Tô $ðH Cô Hð"Ð7ð "¸EÀ#ÀtÀ)Ñ<Lô "ð7à'ð7ð ð7ð ð	7ð
 
ô7ðHà'ðHð �?Ñ#ðHð �S˜/Ð)Ñ*ð	Hð
 
ôH÷Kò KrN   r¬  c                   ó.  ^ • \ rS rSr\R
                  rSS1\R                  krS\R
                  S\	SS4U 4S jjr
S\\R
                     4S jrS\R
                  4S	 jrS\R
                  4S
 jrS\4S jrSSS\S\4S jrSSSSS\SS4S jrSrU =r$ )ÚPythonModuleVariableiÎ  rn   Úis_torchrC   rD   Nc                 ó¸   >• [         TU ]  " S0 UD6  Xl        U R                  [        L =(       d%    U R                  R                  R                  S5      U l        g )Nztorch.rG   )rH   rI   rn   r™   r�   Ú
startswithrÁ  ©rJ   rn   rC   rK   s      €rL   rI   ÚPythonModuleVariable.__init__Ø  sB   ø€ Ü‰ÒÑ"˜6Ò"ØŒ
ØŸ
™
¤eÐ+×W¨t¯z©z×/BÑ/B×/MÑ/MÈhÓ/Wˆ�rN   c                 ó"   • [         R                  $ rP   )r©   Ú
ModuleTyperR   s    rL   rS   Ú PythonModuleVariable.python_typeÝ  s   € Ü×ÑÐrN   c                 ó   • U R                   $ rP   rŠ  rR   s    rL   rj   Ú'PythonModuleVariable.as_python_constantà  ó   € Ø�z‰zÐrN   c                 ó   • U R                   $ rP   rŠ  rR   s    rL   Úget_real_python_backed_valueÚ1PythonModuleVariable.get_real_python_backed_valueã  rË  rN   c                 ó"   • SU R                    S3$ )NzPythonModuleVariable(rg  rŠ  rR   s    rL   r‚  ÚPythonModuleVariable.__repr__æ  s   € Ø& t§z¡z l°!Ð4Ð4rN   r`   r=   ra   c                 ó  • UR                   R                  R                  X5      (       a%  UR                   R                  R                  X5      $ S nU R                  (       d  X R
                  R                  ;  a   [        U R
                  U5      nOU R
                  R                  U   nU R                  =(       a    [        U R                  U5      n[        R                  " XU5      $ ! [         a    [        [        U5         N\f = frP   )r²   rœ   Úhas_pending_mutation_of_attrÚ	load_attrrÁ  rn   ru   rr   r¼   r   rk   r   r4   rŸ   )rJ   r`   ra   rÏ   rk   s        rL   rˆ   Ú%PythonModuleVariable.tp_getattro_implé  sÇ   € ð �9‰9×!Ñ!×>Ñ>¸t×JÑJØ—9‘9×)Ñ)×3Ñ3°DÓ?Ð?àˆ
Ø�=�=˜D¯
©
×(;Ñ(;Ó;ð=Ü$ T§Z¡Z°Ó6‘
ð Ÿ™×,Ñ,¨TÑ2ˆJà—‘×>¤¨D¯K©K¸Ó!>ˆÜ×$Ò$ R°VÓ<Ð<øô "ó =Ü(¬¸Ö<ð=ús   Á=C- Ã-D
Ä	D
r   r4   r!  c                 ó    • SSK Jn  U" XX#5      $ r#  r%  r'  s        rL   r(  Ú(PythonModuleVariable.tp_richcompare_implû  r*  rN   )rÁ  rn   )r�   r‘   rÛ   rÜ   r©   rÇ  rÝ   r4   rÞ   r   rI   rm   rS   rj   rÍ  rµ   r‚  rˆ   r(  râ   rã   rä   s   @rL   rÀ  rÀ  Î  sß   ø† à×$Ñ$€Mð 	Øðð 
×	'Ñ	'ð€NðX˜e×.Ñ.ð X¸#ð XÀ$÷ Xð
 ˜T %×"2Ñ"2Ñ3ô  ð E×$4Ñ$4ô ð¨e×.>Ñ.>ô ð5˜#ô 5ð=Ø-ð=Ø58ð=à	ô=ð$7Ø-ð7Ø6Gð7ØMPð7à	÷7ò 7rN   rÀ  c            
       ó  ^ • \ rS rSrS\S\SS4U 4S jjrSSS	\S\4S
 jrSSSSS\SS4S jr	SSS\S\
\   S\\\4   S\4
S jr SSSS\S\S\4S jjrSSS\S\4S jrS\4S jrSSS\\\4   4S jrS\4S jrSU 4S jjrSrU =r$ )ÚTypingVariablei  rn   rC   rD   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g rF   ©rH   rI   rn   rÄ  s      €rL   rI   ÚTypingVariable.__init__  ó   ø€ Ü‰ÒÑ"˜6Ò"Ø�
rN   r`   r=   r[  c                 óØ   • UR                  5       (       d.  [        SSU S3SU R                   S3/ [        R                  QS9  U R                  UR                  5          n[        U5      $ )Nznon-constant typing subscriptzTypingVariable[Ú]z"Cannot subscript typing construct z with a non-constant key.rd   )r   r   rn   r   r  rj   rØ  )rJ   r`   r[  Ú
new_typings       rL   r¦  Ú TypingVariable.mp_subscript_impl  sn   € ð ×%Ñ%×'Ñ'ÜØ7Ø)¨#¨¨aÐ0Ø@ÀÇÁÀÐLeÐfØ6Ô)×5Ñ5Ð6ò	ð —Z‘Z × 6Ñ 6Ó 8Ñ9ˆ
Ü˜jÓ)Ð)rN   r   r4   r!  c                 ó  • US;   ak  [        U[        5      (       a<  U R                  UR                  :H  nUS:X  a  U(       + n[        R                  " U5      $ [        R                  " [
        5      $ [        R                  " [
        5      $ )N©Ú__eq__Ú__ne__rä  )r(   rØ  rn   r5   r‡   ÚNotImplemented©rJ   r`   r   r!  rù  s        rL   r(  Ú"TypingVariable.tp_richcompare_impl  sm   € ð Ð%Ó%Ü�eœ^×,Ñ,ØŸ™ u§{¡{Ñ2�Ø˜“>Ø!'œZ�FÜ'×.Ò.¨vÓ6Ð6Ü#×*Ò*¬>Ó:Ð:Ü×&Ò&¤~Ó6Ð6rN   ra   rŠ   c                 ó®   • [        SSU R                   SU SU SU 3SU SU R                   S3S	U S
U R                   S3/[        R                  QS9  g )Nz,unsupported method call on `typing` variableztyping variable: z, method name: ú, args: ú
, kwargs: z.`torch.compile` does not support method call `z` on `typing` variable fÚ.zAvoid calling the z method on rd   )r   rn   r   r  ©rJ   r`   ra   rŠ   rC   s        rL   r§   ÚTypingVariable.call_method$  sy   € ô 	ØBØ'¨¯
©
 |°?À4À&ÈÐQUÐPVÐV`ÐagÐ`hÐiØHÈÈÐNfÐgk×gqÑgqÐfrÐrsÐtà$ T F¨+°d·j±j°\ÀÐCðä"×.Ñ.ðó		
rN   Úreversec                 óT  • UR                  5       (       d  [        R                  " U[        5      $ UR	                  5       n[        U R                  5      R                  U R                  U5      nU[        L a  [        R                  " U[        5      $ [        R                  " X5      $ rP   )r   r4   rŸ   rå  rj   rm   rn   Ú__or__)rJ   r`   r   rî  Ú	other_valrù  s         rL   Ú
nb_or_implÚTypingVariable.nb_or_impl5  s   € ð ×'Ñ'×)Ñ)Ü"×(Ò(¨¬^Ó<Ð<Ø×,Ñ,Ó.ˆ	ä�d—j‘jÓ!×(Ñ(¨¯©°YÓ?ˆØ”^Ò#Ü"×(Ò(¨¬^Ó<Ð<Ü×$Ò$ RÓ0Ð0rN   c                 óh  • SSK JnJn  UR                  R                  R                  X5      (       a%  UR                  R                  R                  X5      $ [        U R                  U5      nU R                  (       a$  [        U R                  U5      nU" X5      " U5      $ UR                  X5      $ )Nr-   )ÚSourcelessBuilderÚVariableBuilder)r2  rõ  rö  r²   rœ   rÒ  rÓ  rr   rn   rk   r   r‡   )rJ   r`   ra   rõ  rö  rn   rÐ   s          rL   rˆ   ÚTypingVariable.tp_getattro_implF  s†   € ÷ 	@à�9‰9×!Ñ!×>Ñ>¸t×JÑJØ—9‘9×)Ñ)×3Ñ3°DÓ?Ð?ä˜Ÿ
™
 DÓ)ˆØ�;�;Ü$ T§[¡[°$Ó7ˆKÙ" 2Ô3°EÓ:Ð:à$×+Ñ+¨BÓ6Ð6rN   c                 ó   • U R                   $ rP   rŠ  rR   s    rL   rj   Ú!TypingVariable.as_python_constantU  rË  rN   c                 ó0   • [        U R                  5      S4$ ©NF©rŒ  rn   r}  s     rL   r�  ÚTypingVariable.hash_implX  ó   € Ü�D—J‘JÓ Ð&Ð&rN   c                 ó   • U R                   $ rP   rŠ  rR   s    rL   rÍ  Ú+TypingVariable.get_real_python_backed_value[  rË  rN   c                 óÊ   >• [        U R                  [        R                  5      (       d  [        TU ]  U5      $ UR                  UR                  U R                  5      5        g rP   )r�   rn   r©   ÚGenericAliasrH   r^   Úappend_outputÚcreate_load_constr]   s     €rL   r^   ÚTypingVariable.reconstruct^  sI   ø€ Ü˜$Ÿ*™*¤e×&8Ñ&8×9Ñ9Ü‘7Ñ& wÓ/Ð/ð0 	×Ñ˜g×7Ñ7¸¿
¹
ÓCÕDrN   rŠ  )FrÚ   )r�   r‘   rÛ   rÜ   r   rI   r4   r¦  rµ   r(  rà   rá   r§   r/  rò  rˆ   rj   rß   rª  r�  rÍ  r^   râ   rã   rä   s   @rL   rØ  rØ    s5  ø† ð˜cð ¨Sð °T÷ ð*à'ð*ð ð*ð 
ô	*ð 
7Ø-ð
7Ø6Gð
7ØMPð
7à	ô
7ð
à'ð
ð ð
ð �?Ñ#ð	
ð
 �S˜/Ð)Ñ*ð
ð 
ô
ð* ñ	1à'ð1ð ð1ð ð	1ð
 
õ1ð"7Ø-ð7Ø58ð7à	ô7ð Cô ð'Ð7ð '¸EÀ#ÀtÀ)Ñ<Lô 'ð¨cô ÷Eõ ErN   rØ  )Úmaxsizec                  óä   • SSK Jn   0 nU R                  5        HS  u  p#UR                  R                  5        H0  u  pE[	        U5      (       d  M  [        X$S5      =n(       d  M,  XQU'   M2     MU     U$ )zX
This generates a mapping from numpy modules to their torch._numpy
modules equivalents.
r   )ÚNP_TO_TNP_MODULEN)Úutilsr  r¿   ru   Úcallablerr   )r  Únp_fn_to_tnp_fnÚnp_modÚtnp_modrÀ  Útnp_fnÚnp_fns          rL   Úget_np_to_tnp_mapr  {  sk   € õ )à€Oà+×1Ñ1Ö3‰ˆØ&×/Ñ/×5Ñ5Ö7‰OˆGÜ˜×Óô $ F°TÓ:Ð:�5×:Ø-3 EÓ*ó  8ñ 4ð ÐrN   c                  ól   • [        5       n U R                  5        VVs0 s H  u  pX!_M	     snn$ s  snnf )zs
This is just the reverse mapping of get_np_to_tnp_map() - mapping from
torch._numpy modules to numpy equivalents.
)r  r¿   )ÚmÚkÚvs      rL   Úget_tnp_to_np_mapr  �  s.   € ô 	Ó€AØŸW™WœYÔ'šY‘T�QˆAŠD™YÒ'Ð'ùÓ's   ž0c            
       óX  ^ • \ rS rSrSr\R                  4rS\S\SS4U 4S jjr	S\4S jr
S	S
S\S\S\4S jr\S\R                   S\4S j5       r\S\R                   S\4S j5       rS	S
S\\   S\\\4   S\4S jrS	S
S\S\\   S\\\4   S\4
S jrS\4S jrS\4U 4S jjrSrU =r$ )ÚNumpyVariableiš  zr
Wrapper around `numpy.*`. Currently, is able to trace a small subset of numpy functions as well as numpy dtypes.
rn   rC   rD   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g rF   rÚ  rÄ  s      €rL   rI   ÚNumpyVariable.__init__¡  rÜ  rN   c                 ó   • U R                   $ rP   rŠ  rR   s    rL   rÍ  Ú*NumpyVariable.get_real_python_backed_value¥  rË  rN   r`   r=   r   r!  c                 ó   • US;  d  [        US5      (       d  [        R                  " [        5      $ US:X  a  U R                  UR                  :H  OU R                  UR                  :g  n[        R                  " U5      $ )Nrâ  rn   rã  )r¢   r5   r‡   rå  rn   ræ  s        rL   r(  Ú!NumpyVariable.tp_richcompare_impl¨  sg   € ð Ð)Ó)´¸À×1HÑ1HÜ#×*Ò*¬>Ó:Ð:à)+¨x«ˆD�J‰J˜%Ÿ+™+Ò%¸T¿Z¹ZÈ5Ï;É;Ñ=Vð 	ô  ×&Ò& vÓ.Ð.rN   rÃ  c                 óä   • UR                   R                  S5      n[        U5      S:  a  [        SU 35      eUS S SS/:w  a   [        SSR	                  US S 5       35      eXR
                  ;   $ ©Nrë  r   z0Expected module path with at least 2 parts, got r™   Ú_numpyz"Expected torch._numpy module, got )r‘   Úsplitrt   ri   ry  Úconstant_fold_functions©r   rÃ  Úmods      rL   Úcan_constant_fold_throughÚ'NumpyVariable.can_constant_fold_through·  s…   € à�m‰m×!Ñ! #Ó&ˆÜˆs‹8�a‹<Ü ØBÀ3À%ÐHóð ð ˆr�ˆ7�w Ð)Ó)Ü Ø4°S·X±X¸cÀ"À1¸gÓ5FÐ4GÐHóð ð ×0Ñ0Ñ0Ð0rN   c                 óò   • UR                   R                  S5      n[        U5      S:  a  [        SU 35      eUS S SS/:w  a   [        SSR	                  US S 5       35      e[
        R                  U5      $ r  )r‘   r!  rt   ri   ry  Únp_constant_collections_maprv   r#  s      rL   Ú get_constant_collection_for_funcÚ.NumpyVariable.get_constant_collection_for_funcÄ  s‡   € à�m‰m×!Ñ! #Ó&ˆÜˆs‹8�a‹<Ü ØBÀ3À%ÐHóð ð ˆr�ˆ7�w Ð)Ó)Ü Ø4°S·X±X¸cÀ"À1¸gÓ5FÐ4GÐHóð ô +×.Ñ.¨rÓ2Ð2rN   rŠ   c                 ó0  • [         R                  (       d.  [        SSU R                   SU SU 3SU R                   S3S/S9  S	S
KJn  SSKJn  [        5       R                  U R                  5      nUcA  [        SSU R                   SU SU SU S3	SU R                   S3/ [        R                  QS9  Uc  [        SU R                   35      eU R                  U5      =n bh   U" U R                  " U Vs/ s H  oˆR                  5       PM     sn0 UR                  5        V	V
s0 s H  u  pšXšR                  5       _M     sn
n	D65      $ UR$                  S:X  aV  [         R&                  (       aA  [        SSU R                   SU SU SU S3	SU R                   S3SSU R                   S3/S9  UR)                  UR*                  X#5      u  p#U R-                  U5      (       aŠ  [/        X#5      (       az  [0        R2                  " UU R                  5       " U Vs/ s H  oˆR                  5       PM     sn0 UR                  5        V	V
s0 s H  u  pšXšR                  5       _M     sn
n	D65      $ UR4                  R6                  " SU" U5      /[9        X#5      Q76 nUR;                  X5      $ s  snf s  sn
n	f ! [          aD    [        SSU R                   SU SU SU S3	SU R                   S3/ [        R"                  QS9   g f = fs  snf s  sn
n	f )Nz?attempted to trace numpy function with config.trace_numpy=Falseúnumpy function: ré  rê  z"Attempted to trace numpy function z; while `torch._dynamo.config.trace_numpy` was set to False.zHSet `torch._dynamo.config.trace_numpy` to True to trace numpy functions.rd   r   )Únumpy_to_tensor_wrapperr-   )ÚNumpyNdarrayVariablez8attempted to trace numpy function unsupported by PyTorchz  (corresponding torch function: rg  z Can't find numpy numpy function z in torch._numpy.z+Could not find torch._numpy equivalent for zTnumpy function that produces a const collection type encountered non-const argumentsznumpy function zs that produces a const collection type (e.g. np.dtype, np.iinfo/np.finfo) received arguments that are not constant.ztorch._numpy.randomzXattempted to trace torch._numpy.random function with config.use_numpy_random_stream=TruezAttempted to trace zD when `torch._dynamo.config.use_numpy_random_stream` is set to True.z<Set `torch._dynamo.config.use_numpy_random_stream` to False.zAvoid calling rë  r    )r   Útrace_numpyr   rn   r	  r-  Útensorr.  r  rv   r   r  ri   r)  rj   r¿   r.   Ú
USER_ERRORr‘   Úuse_numpy_random_streamÚ
patch_argsr�   r%  r&   r4   rŸ   r²   r4  r*   r‡   )rJ   r`   rŠ   rC   r-  r.  rÑ   Úcollection_variable_typrL  r  r  r0  s               rL   r    ÚNumpyVariable.call_functionÑ  si  € ô ×!×!ÜØYØ*¨4¯:©:¨,°h¸t¸fÀJÈvÈhÐWØ@ÀÇÁÀð MMð Mð _ðòõ 	4Ý0ä Ó"×&Ñ& t§z¡zÓ2ˆØ‰<ÜØRØ*¨4¯:©:¨,°h¸t¸fÀJÈvÈhÐVvÐw{Ðv|Ð|}Ð~Ø>¸t¿z¹z¸lÐJ[Ð\ðÜ&×2Ñ2ðò	ð ‰<Ü Ø=¸d¿j¹j¸\ÐJóð ð (,×'LÑ'LÈTÓ'RÐRÐ#ØñðÙ.Ø—J’JÙ:>Ó?º$°Q×.Ñ.Ö0¹$Ñ?ðàAGÇÁÄÔPÂ¹¸˜1×2Ñ2Ó4Ò4ÁÒPñóð ð& —‘Ð#8Ó8Ü×2×2äØvØ.¨t¯z©z¨l¸(À4À&È
ÐSYÐRZÐZzÐ{ð  {Að  ABð  CØ"5°d·j±j°\ð B&ð !&ð WØ(¨¯©¨°AÐ6ðò	ð 0×:Ñ:¸4¿=¹=È$ÓW‰LˆDà×-Ñ-¨d×3Ñ3Ü-¨d×;Ñ;ô '×,Ò,ØØ×+Ñ+Ô-Ù:>Ó?º$°Q×.Ñ.Ö0¹$Ñ?ðàAGÇÁÄÔPÂ¹¸˜1×2Ñ2Ó4Ò4ÁÒPñóð ð —I‘I×*Ò*ØÙ'¨Ó-ðô # 4Ó0òˆEð
 (×.Ñ.¨rÓ9Ð9ùòg @ùÛPøô 7ó 
ÜØrØ.¨t¯z©z¨l¸(À4À&È
ÐSYÐRZÐZzÐ{ð  {Að  ABð  CØ"1°$·*±*°ð >@ð !@ðÜ*×5Ñ5ðô	ð
üòH @ùÛPs=   Ã(J< Ã:J1ÄJ< Ä)J6Å	J< ÈLÉLÊ1J< Ê<AL
Ì	L
ra   c           	      ób   • [        SSU R                   SU SU 3S/ [        R                  QS9  g )Nz/attempted to trace numpy.* function as a methodr,  ré  rê  z6Tracing numpy.* functions as methods is not supported.rd   )r   rn   r   r¡   rì  s        rL   r§   ÚNumpyVariable.call_method0  s?   € ô 	ØEØ& t§z¡z l°(¸4¸&À
È6È(ÐSØPðÜ"×,Ñ,ðó		
rN   c                 ó   • U R                   $ rP   rŠ  rR   s    rL   rj   Ú NumpyVariable.as_python_constant@  rË  rN   c                 ó  >• [         R                  (       aj  [        U R                  [        R
                  5      (       a  U R                  $ [        U R                  [        5      (       a  U R                  R                  $ [        TU ]%  5       $ rP   )
r   r/  r�   rn   ÚenumÚEnumMetarm   r�   rH   rW  r}  s    €rL   rW  ÚNumpyVariable.as_proxyC  s\   ø€ Ü××ä˜$Ÿ*™*¤d§m¡m×4Ñ4à—z‘zÐ!Ü˜$Ÿ*™*¤d×+Ñ+ð —z‘z×*Ñ*Ð*ä‰wÑÓ!Ð!rN   rŠ  )r�   r‘   rÛ   rÜ   r§  ÚtnpÚ
issubdtyper"  r   rI   rÍ  r4   rµ   r(  r«   r©   rª   r/  r%  r)  rà   rá   r    r§   r   rj   rW  râ   rã   rä   s   @rL   r  r  š  sZ  ø† ñð  #Ÿ~™~Ð/Ðð˜cð ¨Sð °T÷ ð¨cô ð/à'ð/ð ð/ð ð	/ð
 
ô/ð ð
1¨5×+=Ñ+=ð 
1À$ó 
1ó ð
1ð ð
3°%×2DÑ2Dð 
3Èó 
3ó ð
3ð]:à'ð]:ð �?Ñ#ð]:ð �S˜/Ð)Ñ*ð	]:ð
 
ô]:ð~
à'ð
ð ð
ð �?Ñ#ð	
ð
 �S˜/Ð)Ñ*ð
ð 
ô
ð Ð$7ô ð"˜#÷ "õ "rN   r  c                   ó^   ^ • \ rS rSrS\SS4U 4S jjrS\4S jrSS	 jrSSS\4S
 jr	Sr
U =r$ )ÚNullVariableiS  rC   rD   Nc                 ó&   >• [         TU ]  " S0 UD6  g rF   rÒ  rÓ  s     €rL   rI   ÚNullVariable.__init__T  rÕ  rN   c                 ó   • g)NrA  rG   rR   s    rL   r‚  ÚNullVariable.__repr__W  s   € ØrN   rX   r<   c                 ó˜   • [         R                  S:  a  [        SSS/ [        R                  QS9  UR                  [        S5      5        g )N)r–   é   z0cannot reconstruct NullVariable in Python < 3.11rc   zdAttempted to generate PUSH_NULL instruction in Python < 3.11; where this instruction does not exist.rd   Ú	PUSH_NULL)ÚsysÚversion_infor   r   r´   r  r   r³  s     rL   r^   ÚNullVariable.reconstructZ  sL   € Ü×Ñ˜gÓ%ÜØJØð9ðÜ&×1Ñ1ðòð 	×ÑÔ0°Ó=Õ>rN   c                 ó   • g)NÚNonerG   r³  s     rL   Úreconstruct_pycodeÚNullVariable.reconstruct_pycodeg  s   € ØrN   rG   rÚ   )r�   r‘   rÛ   rÜ   r   rI   rµ   r‚  r^   rN  râ   rã   rä   s   @rL   rA  rA  S  s?   ø† ð# ð #¨÷ #ð˜#ô ô?ð¨+ð ¸#÷ ò rN   rA  c                   ó   • \ rS rSrSrSrg)r·   ik  z"Marker used to implement delattr()rG   Nr¦  rG   rN   rL   r·   r·   k  s   † Ü,rN   r·   c            
       óö   ^ • \ rS rSrSrS1\R                  krS\4S jr\	S\
S\\   S\\
\4   S\4S j5       rS\
S\\   S\\
\4   S	\SS
4
U 4S jjrS\
4S jr\S\S\4S j5       rS\
4S jrSS jrSrU =r$ )ÚStringFormatVariableio  zS
Represents a call to str.format(), we delay calling format until after the graph.
Úformat_stringrD   c                 ó   • [         $ rP   )rµ   rR   s    rL   rS   Ú StringFormatVariable.python_typev  s   € Üˆ
rN   Úsym_argsÚ
sym_kwargsc                 ó¾  • [        S [        R                  " X#R                  5       5       5       5      (       a~  [        R
                  R                  UR                  " U Vs/ s H  oDR                  5       PM     sn0 UR                  5        VVs0 s H  u  pTXTR                  5       _M     snnD65      $ U " U[        U5      [        U5      5      $ s  snf s  snnf )Nc              3   óB   #   • U  H  nUR                  5       v •  M     g 7frP   )r   rK  s     rL   rv  Ú.StringFormatVariable.create.<locals>.<genexpr>€  s#   é € ð 
âC�ð × Ñ ×"Ð"ÚCùs   ‚)ÚallÚ	itertoolsÚchainÚvaluesr   r5   r‡   Úformatrj   r¿   rà   rá   )r   rS  rV  rW  r  r  s         rL   r‡   ÚStringFormatVariable.createy  sÅ   € ô ñ 
ä—_’_ X×/@Ñ/@Ó/BÔCó
÷ 
ñ 
ô ×-Ñ-×4Ñ4Ø×$Ò$Ù6>Ó?²h°×*Ñ*Ö,±hÑ?ðà=G×=MÑ=MÔ=OÔPÒ=O±T°Q�q×.Ñ.Ó0Ò0Ñ=OÒPñóð ñ �=¤$ x£.´$°zÓ2BÓCÐCùò	 @ùÛPs   Á#CÂCrC   Nc                 ó¢   >• [         TU ]  " S0 UD6  [        U[        5      (       d  [	        S[        U5       35      eXl        X l        X0l        g )Nz!format_string must be a str, got rG   )	rH   rI   r�   rµ   ri   rm   rS  rV  rW  )rJ   rS  rV  rW  rC   rK   s        €rL   rI   ÚStringFormatVariable.__init__Œ  sQ   ø€ ô 	‰ÒÑ"˜6Ò"Ü˜-¬×-Ñ-Ü Ø3´D¸Ó4GÐ3HÐIóð ð +ÔØ ŒØ$�rN   c                 óˆ   • U R                   R                   SU R                  < SU R                  < SU R                  < S3$ r€  )rK   r�   rS  rV  rW  rR   s    rL   r‚  ÚStringFormatVariable.__repr__œ  sB   € Ø—.‘.×)Ñ)Ð*¨!¨D×,>Ñ,>Ñ+AÀÀDÇMÁMÑCTÐTVÐW[×WfÑWfÑViÐijÐkÐkrN   rj  c                 ód   •  U R                  5       $ ! [         a    U R                  5       s $ f = frP   )rj   rm  rn  ro  s    rL   rp  Ú&StringFormatVariable._debug_format_argŸ  s2   € ð	$Ø×)Ñ)Ó+Ð+øÜó 	$Ø—>‘>Ó#Ò#ð	$ús   ‚ ’/®/c                 óh  •  U R                   R                  " U R                   Vs/ s H  oR                  U5      PM     sn0 U R                  R                  5        VVs0 s H  u  p#X R                  U5      _M     snnD6n[        U5      $ s  snf s  snnf ! [         a    [        U 5      s $ f = frP   )rS  r_  rV  rp  rW  r¿   rm  rl  )rJ   rj  r[  rn   Úrendereds        rL   rn  ÚStringFormatVariable.debug_repr¦  s­   € ð		Ø×)Ñ)×0Ò0Ø9=¿ºÓGº°#×(Ñ(¨Ö-¹ÑGðð '+§o¡o×&;Ñ&;Ô&=ôâ&=™
˜ð ×/Ñ/°Ó6Ò6Ù&=òñˆHô �H‹~Ðùò Hùóøô
 ó 	Ü˜“:Òð	ús.   ‚$B ¦BÁ  B Á BÁ=B ÂB ÂB1Â0B1c                 ó¢  ^ ^• TR                  UU 4S jSS9  T" [        R                  " [        T R                  5      5      5        T R
                  R                  5        VVs0 s H%  u  p#[        R                  R                  U5      U_M'     nnnT" [        R                  " U5      5        TR                  [        SS5      5        g s  snnf )Nc                  óz   >• T R                  T R                  TR                  5      T R                  S5      /5      $ )Nr_  )r\   r  rS  Úcreate_load_attrrB  s   €€rL   rY   Ú2StringFormatVariable.reconstruct.<locals>.<lambda>µ  s7   ø€ �G×)Ñ)à×-Ñ-¨d×.@Ñ.@ÓAØ×,Ñ,¨XÓ6ðôrN   T)Úcall_function_exF)r[   r   r   rà   rV  rW  r¿   r5   r‡   rW  r\   r   )rJ   rX   r  r  rC   s   ``   rL   r^   Ú StringFormatVariable.reconstruct³  s°   ù€ Ø×Ñõð "ð 	ñ 	
ñ 	”	×'Ò'¬¨T¯]©]Ó(;Ó<Ô=à@DÇÁ×@UÑ@UÔ@Wô
Ú@W¹¸ŒI×&Ñ&×-Ñ-¨aÓ0°!Ò3Ñ@Wð 	ñ 
ñ 	”	×+Ò+¨FÓ3Ô4Ø×ÑÔ5°d¸EÓBÕCùó	
s   Á$,C)rS  rV  rW  rÚ   )r�   r‘   rÛ   rÜ   r§  r4   rÞ   rm   rS   r«   rµ   rà   rá   r‡   r   rI   r‚  r¨   r—   rp  rn  r^   râ   rã   rä   s   @rL   rR  rR  o  s  ø† ñð &ÐG¨×(FÑ(FÐG€Nð˜Tô ð ðDàðDð �Ñ'ðDð ˜˜oÐ-Ñ.ð	Dð
 
óDó ðDð$%àð%ð �Ñ'ð%ð ˜˜oÐ-Ñ.ð	%ð
 ð%ð 
÷%ð l˜#ô lð ð$˜ð $°6ó $ó ð$ð˜Cô ÷Dò DrN   rR  c                   óx   ^ • \ rS rSr\rS\S\SS4U 4S jjrS\4S jrS\	\   4S jr
S	S
SSS\SS4S jrSrU =r$ )ÚObjectVariableiÅ  rn   rC   rD   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g rF   rÚ  rÄ  s      €rL   rI   ÚObjectVariable.__init__Ê  rÜ  rN   c                 ó   • U R                   $ rP   rŠ  rR   s    rL   rÍ  Ú+ObjectVariable.get_real_python_backed_valueÎ  rË  rN   c                 ó   • [         $ rP   )r—   rR   s    rL   rS   ÚObjectVariable.python_typeÑ  s   € ÜˆrN   r`   r=   r   r4   r!  c                 ó    • SSK Jn  U" XX#5      $ r#  r%  r'  s        rL   r(  Ú"ObjectVariable.tp_richcompare_implÔ  r*  rN   rŠ  )r�   r‘   rÛ   rÜ   r—   rÝ   r   rI   rÍ  rm   rS   rµ   r(  râ   rã   rä   s   @rL   rq  rq  Å  sh   ø† à€Mð˜fð °ð ¸÷ ð¨fô ð˜T &™\ô ð7Ø-ð7Ø6Gð7ØMPð7à	÷7ò 7rN   rq  )r–   é   c                   ó®   ^ • \ rS rSr\R
                  rS\R
                  S\SS4U 4S jjrS\R
                  4S jr	S\
\R
                     4S jrS	rU =r$ )
ÚSentinelVariableiÞ  rn   rC   rD   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g rF   rÚ  rÄ  s      €rL   rI   ÚSentinelVariable.__init__â  s   ø€ Ü‰GÒÑ&˜vÒ&Ø�JrN   c                 ó   • U R                   $ rP   rŠ  rR   s    rL   rÍ  Ú-SentinelVariable.get_real_python_backed_valueæ  s   € Ø—:‘:ÐrN   c                 ó   • U R                   $ rP   )rÝ   rR   s    rL   rS   ÚSentinelVariable.python_typeé  s   € Ø×%Ñ%Ð%rN   rŠ  )r�   r‘   rÛ   rÜ   rQ   ÚsentinelrÝ   r   rI   rÍ  rm   rS   râ   rã   rä   s   @rL   r|  r|  Þ  s\   ø† à ×)Ñ)ˆð	 (×"3Ñ"3ð 	¸sð 	Àt÷ 	ð	°(×2CÑ2Cô 	ð	&  h×&7Ñ&7Ñ!8÷ 	&ò 	&rN   r|  c            	       ó  ^ • \ rS rSrSrS\S\SS4U 4S jjrS\4S jr\	S	\S\
\R                  \R                  -     4S
 j5       rSSS\\   S\\\4   S\4S jrSS jr\	S\S\\   S\\\4   S\4S j5       rSrU =r$ )ÚDebuggingVariableií  zz
Represents a call to a debugging function like print(), or something
registered to config.reorderable_logging_functions.
rn   rC   rD   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g rF   rÚ  rÄ  s      €rL   rI   ÚDebuggingVariable.__init__ó  rÜ  rN   c                 ó,   • [        U R                  5      $ rP   ©rm   rn   rR   s    rL   rS   ÚDebuggingVariable.python_type÷  ó   € Ü�D—J‘JÓÐrN   r  c                 óÖ   • [        U 5      =(       aX    [        U [        R                  [        R                  45      =(       a'    U [
        R                  R                  R                  ;   $ rP   )	r
  r�   r©   rª   r   r™   r%  r   Úreorderable_logging_functionsr  s    rL   Úis_reorderable_logging_functionÚ1DebuggingVariable.is_reorderable_logging_functionú  sO   € ô
 �S‹M÷ JÜ˜3¤×!3Ñ!3´U×5NÑ5NÐ OÓP÷Jà”u—}‘}×+Ñ+×IÑIÑIð	
rN   r`   r=   rŠ   c           	      óf  • UR                   (       a  [        R                  " S 5      $ U R                  U R                  X#5      (       d.  [        SSU R                   SU SU 3SSU R                   S3/S9  UR                  R                  U [        U5      45        [        R                  " S 5      $ )	NzJattempted to reorder a debugging function that can't actually be reorderedzfn: ré  rê  z–`torch.compile` can only reorder functions that are called without keyword arguments and whose arguments are Tensors, constants, or string formatters.z#Avoid calling the logging function z" with args that are not supported.rd   )	Úexportr5   r‡   Úcan_reorder_logsrn   r   Údebug_localsrõ  rà   r,  s       rL   r    ÚDebuggingVariable.call_function	  s£   € ð �9�9ä#×*Ò*¨4Ó0Ð0à×$Ñ$ T§Z¡Z°×>Ñ>ÜØdØ˜tŸz™z˜l¨(°4°&¸
À6À(ÐKð(ð :¸$¿*¹*¸ÐEgÐhðò	ð 	�‰×Ñ ¤d¨4£jÐ1Ô2Ü×&Ò& tÓ,Ð,rN   c                 óh   • U R                   c  [        S5      eU R                   R                  U5      $ )Nz7DebugLocalVariable requires a source for reconstruction)rk   ri   r^   r³  s     rL   r^   ÚDebuggingVariable.reconstruct	  s3   € Ø�;‰;ÑÜ ØIóð ð �{‰{×&Ñ& wÓ/Ð/rN   rÃ  c                 óÀ   • U(       a  g[         R                  [         R                  [        4n[        R
                  " U5      nU H  n[        XS5      (       a  M    g   g)zU
Run some additional checks for what sort of function calls can we
actually reorder.
FT)r   ÚTensorVariabler5   rR  ÚpytreeÚtree_leavesr�   )rÃ  rŠ   rC   Úallowed_input_typesÚ	flat_argsrj  s         rL   r’  Ú"DebuggingVariable.can_reorder_logs$	  sX   € ö Øô ×$Ñ$Ü×&Ñ&Ü ð
Ðô ×&Ò& tÓ,ˆ	ÛˆCÜ˜c×7Ó7Ùñ ð rN   rŠ  rÚ   )r�   r‘   rÛ   rÜ   r§  r   rI   rm   rS   r¨   r	   r©   rª   r   rŽ  rà   r4   rá   rµ   r    r^   r   r/  r’  râ   rã   rä   s   @rL   r…  r…  í  sä   ø† ñð
˜cð ¨Sð °T÷ ð ˜Tô  ð ð
Øð
à	�5×%Ñ%¨×(AÑ(AÑAÑ	Bó
ó ð
ð-à'ð-ð �?Ñ#ð-ð �S˜/Ð)Ñ*ð	-ð
 
ô-ô20ð ð˜Sð ¨°©ð ¸tÀCÈÀH¹~ð ÐRVó ó örN   r…  c                   ó‚   ^ • \ rS rSrSrS\S\SS4U 4S jjrS\4S jrS\4S	 jr	S
SS\
\   S\\\4   S\4S jrSrU =r$ )ÚIgnoredFunctionVariablei=	  zD
Represents a call to an arbitrary function that should be ignored.
rn   rC   rD   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g rF   rÚ  rÄ  s      €rL   rI   Ú IgnoredFunctionVariable.__init__B	  rÜ  rN   c                 ó,   • [        U R                  5      $ rP   r‰  rR   s    rL   rS   Ú#IgnoredFunctionVariable.python_typeF	  r‹  rN   c                 ó   • U R                   $ rP   rŠ  rR   s    rL   rÍ  Ú4IgnoredFunctionVariable.get_real_python_backed_valueI	  rË  rN   r`   r=   rŠ   c                 ó@   • [         R                  R                  S 5      $ rP   )r   r5   r‡   r,  s       rL   r    Ú%IgnoredFunctionVariable.call_functionL	  s   € ô ×)Ñ)×0Ñ0°Ó6Ð6rN   rŠ  )r�   r‘   rÛ   rÜ   r§  r   rI   rm   rS   rÍ  rà   r4   rá   rµ   r    râ   rã   rä   s   @rL   rŸ  rŸ  =	  sy   ø† ñð˜cð ¨Sð °T÷ ð ˜Tô  ð¨cô ð7à'ð7ð �?Ñ#ð7ð �S˜/Ð)Ñ*ð	7ð
 
÷7ò 7rN   rŸ  c            
       ó®   ^ • \ rS rSrSrS\R                  S\SS4U 4S jjrS\	4S jr
S\R                  4S	 jrS
SS\S\\   S\\\4   S\4
S jrSrU =r$ )ÚLoggingLoggerVariableiU	  z2
Represents a call to any logging.Logger methods.
rn   rC   rD   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g rF   rÚ  rÄ  s      €rL   rI   ÚLoggingLoggerVariable.__init__Z	  rÜ  rN   c                 ó,   • [        U R                  5      $ rP   r‰  rR   s    rL   rS   Ú!LoggingLoggerVariable.python_type^	  r‹  rN   c                 ó   • U R                   $ rP   rŠ  rR   s    rL   rÍ  Ú2LoggingLoggerVariable.get_real_python_backed_valuea	  rË  rN   r`   r=   ra   rŠ   c                 ó  • UR                   (       a  [        R                  R                  S 5      $ [	        U R
                  US 5      n[	        USS 5      n[        R                  R                  R                  nXW;   d  Xg;   a  [        R                  R                  S 5      $ [        R                  R                  R                  nU R                  (       a:  XX;   d  Xh;   a0  [        U[        U R                  U5      S9n	U	R                  XU5      $ [        U R
                  5      n
U
R                    SU
R"                   3n[%        SSU R
                   SU SU SU 3SS	S
U SU SU SU SU S3SU SU S3SU S3/S9  g )Nr”   r‚   rë  z8logging.Logger method not supported for non-export caseszmethod: ré  rê  z‡For non-export cases, logging.Logger methods are only supported if the logger has a source and the method is registered as reorderable.z¯If you do not need this logging side effect, add the exact method being called to `torch._dynamo.config.ignore_logging_functions`. Dynamo will skip the call and return `None`.zFor example, for `logger.zF(...)`, use `torch._dynamo.config.ignore_logging_functions.add(logger.z)`. If `z8` is defined on the logger class, add the class method `z8` to ignore this method for all instances of that class.z`Dynamo does not trace into logging.Logger method bodies, so only the method you call directly (`z>`) is checked against the ignore set. Ignoring a method that `z!` calls internally has no effect.a  If you need the log side effect to run, then you can try one of (1) create the logger outside the compiled region and add the method to `torch._dynamo.config.reorderable_logging_functions` (e.g. `torch._dynamo.config.reorderable_logging_functions.add(logger.aY  )`) so that it runs after the compiled region, as long as it is called without kwargs and its arguments are tensors, constants, or string formatters, (2) `torch._higher_order_ops.print(...)`, (3) wrap the logging call in a custom op (marked as mutable), or (4) preserve the logging contents and move the logging call outside the compiled region.rd   )r‘  r   r5   r‡   rr   rn   r™   r%  r   Úignore_logging_functionsr�  rk   r…  r   r    rm   r‘   rÛ   r   )rJ   r`   ra   rŠ   rC   ÚmethodrP  Ú
ignore_setÚreorderablerØ   Ú
logger_clsÚlogger_cls_names               rL   r§   Ú!LoggingLoggerVariable.call_methodd	  sÛ  € ð �9�9ä×-Ñ-×4Ñ4°TÓ:Ð:ä˜Ÿ™ T¨4Ó0ˆÜ˜6 :¨tÓ4ˆô —]‘]×)Ñ)×BÑBˆ
àÓ 8Ó#9Ü×-Ñ-×4Ñ4°TÓ:Ð:ä—m‘m×*Ñ*×HÑHˆØ�;�;˜FÓ1°XÓ5LÜ& v´jÀÇÁÈdÓ6SÑTˆFØ×'Ñ'¨°&Ó9Ð9ä˜$Ÿ*™*Ó%ˆ
Ø'×2Ñ2Ð3°1°Z×5LÑ5LÐ4MÐNˆÜØNØ˜tŸz™z˜l¨!¨D¨6°¸$¸¸zÈ&ÈÐRðHð BØ+¨D¨6Ð1wÐx|Ðw}ð  ~Fð  GKð  FLð  LDð  ETð  DUð  UVð  W[ð  V\ð  \Tð  UØrÐswÐrxð  ywð  x|ð  w}ð  }^ð  _ð Uð  VZð  U[ð  [t	ð  u	ð	ó	
rN   rŠ  )r�   r‘   rÛ   rÜ   r§  ÚloggingÚLoggerr   rI   rm   rS   rÍ  rµ   rà   r4   rá   r§   râ   rã   rä   s   @rL   r©  r©  U	  s‹   ø† ñð˜gŸn™nð ¸ð À÷ ð ˜Tô  ð¨g¯n©nô ð&
à'ð&
ð ð&
ð �?Ñ#ð	&
ð
 �S˜/Ð)Ñ*ð&
ð 
÷&
ò &
rN   r©  c            
       ó2  ^ • \ rS rSrSr SSKJrJr	J
r  S\S\S	S
4U 4S jjr\S	\4S j5       rS	\4S jrSSS	\\\4   4S jrSSSSS\S	S4S jrSSS\S\\   S\\\4   S	\4
S jrSSS\S	\4S jrSrU =r$ ! \ a    \" SS0 5      r	\" SS0 5      r N€f = f)ÚConstantLikeVariablei�	  z8self.value is a compile-time constant, but not a literalr   )ÚdtypeÚfloatingÚgenericÚinvalid_typerG   rn   rC   rD   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g rF   rÚ  rÄ  s      €rL   rI   ÚConstantLikeVariable.__init__œ	  rÜ  rN   c                 óš   • [        U R                  5      nUR                  S:X  a  UR                  $ UR                   SUR                   3$ )z4Dynamically compute the prefix from the value's typerQ   rë  )rm   rn   r‘   rÛ   )rJ   Úts     rL   Ú_error_prefixÚ"ConstantLikeVariable._error_prefix 	  sD   € ô �—‘Óˆð �<‰<˜:Ó%Ø—>‘>Ð!à—,‘,�˜q §¡Ð 0Ð1Ð1rN   c                 ó   • U R                   $ rP   rŠ  rR   s    rL   rj   Ú'ConstantLikeVariable.as_python_constant«	  rË  rN   r`   r=   c                 ó0   • [        U R                  5      S4$ rû  rü  r}  s     rL   r�  ÚConstantLikeVariable.hash_impl®	  rþ  rN   r   r4   r!  c                 ó    • SSK Jn  U" XX#5      $ )Nr-   )Ú python_constant_richcompare_impl)r&  rË  )rJ   r`   r   r!  rË  s        rL   r(  Ú(ConstantLikeVariable.tp_richcompare_impl±	  s   € õ 	Fá/°¸%ÓDÐDrN   ra   rŠ   c                 óÞ  • / 0 pe U Vs/ s H  owR                  5       PM     nnUR                  5        VV	s0 s H  u  p‰X‰R                  5       _M     nnn	[        U R                  U5      " U0 UD6n
[        R                  R                  U
5      (       a  [        R                  " X5      $ [        U
[        R                  5      (       a  [        U
5      $ [        S
U R                   SU SU SU SU
 3	SU R                   SU SU
 S3/ [         R"                  QS	9  g s  snf s  sn	nf ! [         a8    [        SU R                   SU SU SU S3SU R                   SU S3S/S	9   GNf = f)Nz0constant-like method call with non-constant argsrë  z(*z, **rg  zAttempted to call z with non-constant args.zFEnsure that the args to the method call are constant (int, str, etc.).rd   z6constant-like method call with unsupported return typez) returned z, got unsupported return value )rj   r¿   r±   r   rÄ  rr   rn   r   r5   rƒ   r4   rŸ   r�   ÚreÚMatchr»  r   r  )rJ   r`   ra   rŠ   rC   ÚcargsÚckwargsrL  r  r  rù  s              rL   r§   Ú ConstantLikeVariable.call_method¸	  s„  € ð ˜Rˆwð	á59Ó:²T°×)Ñ)Ö+±TˆEÐ:Ø=C¿\¹\¼^ÔLº^±T°Q�q×.Ñ.Ó0Ò0¹^ˆGÑLô ˜Ÿ™ TÔ*¨EÐ=°WÑ=ˆä×%Ñ%×0Ñ0°×8Ñ8Ü"×(Ò(¨Ó4Ð4Ü�fœbŸh™h×'Ñ'Ü'¨Ó/Ð/äØLØ×)Ñ)Ð*¨!¨D¨6°°D°6¸¸f¸XÀ[ÐQWÐPXÐYØ,¨T×-?Ñ-?Ð,@ÀÀ$ÀÐGfÐgmÐfnÐnoÐpðÜ"×.Ñ.ðó		
ùò' ;ùÛLøÜ"ó 	ÜØJØ×-Ñ-Ð.¨a°¨v°R¸°v¸TÀ&ÀÈÐKØ0°×1CÑ1CÐ0DÀAÀdÀVÐKcÐdà\ðõ	ð	ús,   …D* ‰D¢D* ·D$ÁD* ÄD* Ä*>E,Å+E,c                 óÐ  • [        U R                  U5      n[        X0R                  5      (       a  [	        U5      n[        X0R
                  5      (       a  [        U5      $ [        U[        5      (       a%  [        X0R                  5      (       a  [        U5      $ [        R                  R                  U5      (       a  [        R                  " X5      $ [!        X[        U5      S9$ )Nr€   )rr   rn   r�   Únp_floatingÚfloatÚnp_dtypeÚNumpyDTypeVariablerm   rl   Ú
np_genericr  r   r5   rƒ   r4   rŸ   r„   )rJ   r`   ra   rù  s       rL   rˆ   Ú%ConstantLikeVariable.tp_getattro_implß	  s§   € ô ˜Ÿ™ TÓ*ˆÜ�f×.Ñ.×/Ñ/Ü˜6“]ˆFÜ�fŸm™m×,Ñ,Ü% fÓ-Ð-Ü�fœd×#Ñ#¬
°6¿?¹?×(KÑ(Kä  Ó(Ð(Ü×%Ñ%×0Ñ0°×8Ñ8Ü"×(Ò(¨Ó4Ð4Ü˜t´4¸³<Ñ@Ð@rN   rŠ  ) r�   r‘   rÛ   rÜ   r§  Únumpyr¼  rÖ  r½  rÔ  r¾  rØ  ÚImportErrorrm   r   rI   Úpropertyrµ   rÄ  rj   rß   rª  r/  r�  r(  rà   r4   rá   r§   rˆ   râ   rã   rä   s   @rL   r»  r»  �	  s7  ø† ÙBð
0÷	
ñ 	
ð˜cð ¨Sð °T÷ ð ð2˜só 2ó ð2ð Cô ð'Ð7ð '¸EÀ#ÀtÀ)Ñ<Lô 'ðEØ-ðEØ6GðEØMPðEà	ôEð%
à'ð%
ð ð%
ð �?Ñ#ð	%
ð
 �S˜/Ð)Ñ*ð%
ð 
ô%
ðNAØ-ðAØ58ðAà	÷Aò AøðS ó 0á˜>¨2¨rÓ2ˆá˜¨¨BÓ/Šð	0ús   ‹
A9 Á9BÂBr»  c                   ó"   • \ rS rSrS\4S jrSrg)r×  iï	  rD   c                 óB   • U R                   R                  R                  $ )a  Similar to how numpy dtype descriptors (e.g. np.float32 ) are handled by NumpyVariable:

np.dtype() objects are serialized as strings, torch._numpy wrappers will normalize to the torch dtype.
This also handles unsupported things nicely (i.e. structured arrays and object arrays).
)rn   rm   r�   rR   s    rL   rW  ÚNumpyDTypeVariable.as_proxyð	  s   € ð �z‰z�‰×'Ñ'Ð'rN   rG   N)r�   r‘   rÛ   rÜ   rµ   rW  râ   rG   rN   rL   r×  r×  ï	  s   † ð(˜#÷ (rN   r×  c            
       óö   ^ • \ rS rSrSrS1\R                  krS\R                  \	   S\	SS4U 4S jjr
S\4S jrS	S
S\SSSSSS4
U 4S jjr        SS jrS	S
S\S\	S\	4S jrS	S
S\SS4U 4S jjrSrU =r$ )ÚContextVarVariablei 
  z¬Wraps a contextvars.ContextVar for Dynamo tracing.

.get() is resolved at trace time with a guard that re-checks at cache time.
.set() and .reset() graph-break in Phase 1.
Úcv_objrC   rD   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g rF   )rH   rI   râ  )rJ   râ  rC   rK   s      €rL   rI   ÚContextVarVariable.__init__
  râ  rN   c                 ó"   • [         R                  $ rP   )ÚcontextvarsÚ
ContextVarrR   s    rL   rS   ÚContextVarVariable.python_type
  s   € Ü×%Ñ%Ð%rN   r`   r=   ra   rŠ   úlist[VariableTracker]údict[str, VariableTracker]r4   c           	      óÜ   >• US:X  a  U R                  XU5      $ US;   a>  [        SSU R                  R                   SU S3SU SU S	3/ [        R
                  QS
9  [        TU ]  XX45      $ )Nrv   )r	  Úresetz!ContextVar mutation not supportedúContextVar('z').z()zContextVar.z8() is not yet supported inside torch.compile. Move the .z$() call outside the compiled region.rd   )Ú_handle_getr   râ  ra   r   r  rH   r§   r-  s        €rL   r§   ÚContextVarVariable.call_method
  s�   ø€ ð �5‹=Ø×#Ñ# B¨fÓ5Ð5ØÐ%Ó%ÜØ;Ø& t§{¡{×'7Ñ'7Ð&8¸¸D¸6ÀÐDà! $ ð (0Ø04¨vð 6'ð(ð 7Ô)×5Ñ5Ð6ò	ô ‰wÑ" 2¨TÓ:Ð:rN   c                 ó4  • SSK Jn  SSKJn  SSKJn  U(       a  [        [        US/S9  [        U5      S:”  a  [        [        US[        U5       3/S9  U(       a  US	   OS nUS LnS n	U(       aU  UR                  5       n	X–L d  U" U	5      (       d4  [        S
SU R                  R                   S3S/ [        R                  QS9  U R                  XU	5      n
U R                   (       d  [!        S5      eU" U R                   UU	S9n["        R$                  " XUS9$ )Nr   )ÚContextVarGetSource)Úis_safe_constantr-   )r3   z+ContextVar.get() takes no keyword argumentsr_  z%get expected at most 1 argument, got r   z*ContextVar.get() with non-constant defaultrí  z').get(...)zWContextVar.get() default argument must be a compile-time constant inside torch.compile.rd   z/ContextVarVariable requires a source for .get())ÚbaseÚhas_defaultÚdefault_valuer‚   )rk   rñ  r	  rò  ró  r3   r   r  rt   rÍ  r   râ  ra   r   r  Ú
_get_valueri   r4   rŸ   )rJ   r`   rŠ   rC   rñ  rò  r3   Údefault_varrô  rõ  rn   Úvalue_sources               rL   rî  ÚContextVarVariable._handle_get)
  s  € õ 	1Ý,Ý(æÜ$Ü˜2Ð%RÐ$Sòô ˆt‹9�q‹=Ü$ÜØØ=¼cÀ$»i¸[ÐIÐJòö "&�d˜1’g¨4ˆØ!¨Ð-ˆØˆæØ'×DÑDÓFˆMØÒ.Ñ6FÀ}×6UÑ6UÜØHØ*¨4¯;©;×+;Ñ+;Ð*<¸KÐHðFð ;Ô-×9Ñ9Ð:òð —‘ °Ó?ˆà�{�{Ü Ð!RÓSÐSÙ*Ø—‘Ø#Ø'ñ
ˆô
 ×$Ò$ R°|ÑDÐDrN   rô  rõ  c                 óÒ   • U(       a  U R                   R                  U5      $  U R                   R                  5       $ ! [         a    [        [        XR                   < /S9   g f = f)Nr_  )râ  rv   ÚLookupErrorr   )rJ   r`   rô  rõ  s       rL   rö  ÚContextVarVariable._get_valueZ
  sU   € ö Ø—;‘;—?‘? =Ó1Ð1ð	QØ—;‘;—?‘?Ó$Ð$øÜó 	QÜ$¤[°"¿{¹{¹oÐ;OÔPð	Qús   ¤> ¾%A&Á%A&c                 ó‚   >• US:X  a*  [         R                  " U R                  R                  5      $ [        TU ]  X5      $ rœ  )r5   r‡   râ  ra   rH   rˆ   r  s      €rL   rˆ   Ú#ContextVarVariable.tp_getattro_implg
  s7   ø€ ð �6‹>Ü#×*Ò*¨4¯;©;×+;Ñ+;Ó<Ð<Ü‰wÑ'¨Ó1Ð1rN   )râ  )r`   r=   rŠ   ré  rC   rê  rD   r4   )r�   r‘   rÛ   rÜ   r§  r4   rÞ   ræ  rç  r   rI   rm   rS   rµ   r§   rî  r/  rö  rˆ   râ   rã   rä   s   @rL   rá  rá   
  s  ø† ñð 	ðà	×	'Ñ	'ð€Nð
˜{×5Ñ5°cÑ:ð Àcð Èd÷ ð&˜Tô &ð;à'ð;ð ð;ð &ð	;ð
 -ð;ð 
÷;ð,/Eà'ð/Eð &ð/Eð -ð	/Eð
 
ô/EðbQà'ðQð ðQð ð	Qð
 
ôQð2Ø-ð2Ø58ð2à	÷2õ 2rN   rá  c                   óp   ^ • \ rS rSrSrS\SS4U 4S jjrS\4S jrSS	S
\	\
   S\\\
4   SS4S jrSrU =r$ )ÚRandomClassVariableio
  zrandom.RandomrC   rD   Nc                 ó&   >• [         TU ]  " S0 UD6  g rF   rÒ  rÓ  s     €rL   rI   ÚRandomClassVariable.__init__r
  rÕ  rN   c                 ó   • [         $ rP   rä  rR   s    rL   rS   ÚRandomClassVariable.python_typeu
  ræ  rN   r`   r=   rŠ   ÚRandomVariablec                 ó$  • [        U5      S:”  d  U(       a"  [        SSU SU 3S/ [        R                  QS9  [        U5      S:X  a  [        R
                  R                  S 5      OUS   n[        U[        R                  R                  5       S9$ )	Nr-   z'random.Random() with improper argumentszargs: rê  z=random.Random() with > 1 arg or with kwargs is not supported.rd   r   )Úseedrž   )
rt   r   r   r1  r   r5   r‡   r  ró  ÚValueMutationNew)rJ   r`   rŠ   rC   r  s        rL   r    Ú!RandomClassVariable.call_functionx
  sŠ   € ô ˆt‹9�q‹=žFÜØAØ    j°°Ð9Ø[ðÜ&×1Ñ1ðò	ô ;>¸d»)Àq».Œy×)Ñ)×0Ñ0°Ô6ÈdÐSTÉgˆÜØ¤Y§^¡^×%DÑ%DÓ%Fñ
ð 	
rN   rG   )r�   r‘   rÛ   rÜ   r§  r   rI   rm   rS   rà   r4   rá   rµ   r    râ   rã   rä   s   @rL   r   r   o
  sd   ø† Ùð# ð #¨÷ #ð˜Tô ð
à'ð
ð �?Ñ#ð
ð �S˜/Ð)Ñ*ð	
ð
 
÷
ò 
rN   r   c                   óÂ  ^ • \ rS rSrSr\R                  rS1\R                  kr	1 Skr
  S$S\R                  S-  S\S-  S\S	S4U 4S
 jjjrS	\\R                     4S jrS	\R                  4S jr\S\S	\4S j5       r\S\\\\S4   \S-  4   S	S4S j5       r\S\\\\S4   \S-  4   S	\4S j5       r\S\S	\\\\S4   \S-  4   4S j5       rSSS\\   S\\\4   S	\4S jrSSS\\   S\\\4   S	\4S jrSSS\\   S\\\4   S	\4S jrSSS\\   S\\\4   S	\4S jr SSS\\   S\\\4   S	\4S jr!S r"SSS\\   S\\\4   S	\4S jr#SSS\\   S\\\4   S	\4S jr$SSS\\   S\\\4   S	\4S jr%SSS\\   S\\\4   S	\4S  jr&\'" \5      \'" \5      \'" \5      \'" \ 5      \'" \!5      \'" \#5      \'" \$5      \'" \%5      \'" \&5      S!.	r(S%S" jr)S#r*U =r+$ )&r  i�
  zêrandom.Random()

Implemented by wrapping a VariableTracker around a random.Random object.
The supported methods for the random.Random object cannot be overridden.
Assumes that random objects behave the same given a set seed or state.
Úrandom>   r  ÚrandintÚuniformÚ	randrangeNÚrandr  rC   rD   c                 óV  >• [         TU ]  " S0 UD6  Ube  U R                  U5      (       d  [        S5      e[        R
                  " 5       U l        U R                  R                  UR                  5       5        g Ub  UR                  5       OS n[        R
                  " U5      U l        g )Nz8Unsupported random.Random object with overridden methodsrG   )	rH   rI   Úis_supported_random_objri   r  r   ÚsetstateÚgetstaterj   )rJ   r  r  rC   rK   s       €rL   rI   ÚRandomVariable.__init__£
  sˆ   ø€ ô 	‰ÒÑ"˜6Ò"ØÑØ×/Ñ/°×5Ñ5Ü$ØNóð ô !Ÿ-š-›/ˆDŒKØ�K‰K× Ñ  §¡£Õ1à04Ñ0@�4×*Ñ*Ô,ÀdˆDÜ Ÿ-š-¨Ó-ˆD�KrN   c                 ó"   • [         R                  $ rP   )r  r   rR   s    rL   rS   ÚRandomVariable.python_typeµ
  s   € Ü�}‰}ÐrN   c                 ó   • U R                   $ rP   ©r  rR   s    rL   rj   Ú!RandomVariable.as_python_constant¸
  s   € Ø�{‰{ÐrN   r  c                 ó¼  • [        U 5      [        R                  La  g[        R                  " [
        R                  S5       H–  n[        X5      (       d    g[        X5      n[        R                  " U5      (       a1  U[        [        R                  U5      R                  U 5      :w  a    gMl  [        USS 5      [        [        R                  U5      Ld  M–    g   g)NF)r  r  r  r”   T)rm   r  r   r\  r]  r  Ú_supported_fn_namesr¢   rr   r  Ú	isbuiltinr6  )r  ra   Úmeths      rL   r  Ú&RandomVariable.is_supported_random_obj»
  s­   € ä�‹9œFŸM™MÒ)ØÜ—O’OÜ×.Ñ.Ð0Pö
ˆDô ˜3×%Ñ%ÙÜ˜3Ó%ˆDÜ× Ò  ×&Ñ&àœ7¤6§=¡=°$Ó7×?Ñ?ÀÓDÓDÙ ñ Eô ˜4 ¨TÓ2¼'Ä&Ç-Á-ÐQUÓ:VÔVÙ ñ
ð rN   rZ  .c                 óÈ  • [        U 5      [        La  [        S[        U 5       35      e[        U S   5      [        La  [        S[        U S   5       35      e[        U S   5      [        La  [        S[        U S   5       35      e[	        S U S    5       5      (       d  [        S5      eU S   b0  [        U S   5      [
        La  [        S	[        U S   5       35      eg g )
Nzstate must be a tuple, got r   zstate[0] must be an int, got r-   zstate[1] must be a tuple, got c              3   óD   #   • U  H  n[        U5      [        L v •  M     g 7frP   )rm   rª  rK  s     rL   rv  Ú-RandomVariable.check_state.<locals>.<genexpr>Ö
  s   é € Ð4ª8 a”4˜“7œc•>ª8ùs   ‚ z$all elements of state[1] must be intr   z$state[2] must be None or float, got )rm   rß   ri   rª  r[  rÕ  )rZ  s    rL   Úcheck_stateÚRandomVariable.check_stateÎ
  sà   € ä�‹;œeÒ#Ü Ð#>¼tÀE»{¸mÐ!LÓMÐMÜ��a‘‹>¤Ò$Ü Ð#@ÄÀeÈAÁhÃÐ@PÐ!QÓRÐRÜ��a‘‹>¤Ò&Ü Ð#AÄ$ÀuÈQÁxÃ.ÐAQÐ!RÓSÐSÜÑ4¨5°ª8Ó4×4Ñ4Ü Ð!GÓHÐHØ�‰8Ñ¤D¨¨q©£N¼%Ò$?Ü Ø6´t¸EÀ!¹H³~Ð6FÐGóð ð %@ÐrN   c                 ór  • [         R                  U 5        [        R                  " [        R                  R                  U S   5      [        R                  " U S    Vs/ s H"  n[        R                  R                  U5      PM$     sn5      [        R                  R                  U S   5      /5      $ s  snf )Nr   r-   r   )r  r"  r   r   r5   r‡   )rZ  rL  s     rL   Ú
wrap_stateÚRandomVariable.wrap_stateÝ
  s•   € ä×"Ñ" 5Ô)Ü×&Ò&ä×*Ñ*×1Ñ1°%¸±(Ó;Ü×'Ò'ØCHÈÂ8ÓLÂ8¸a”Y×/Ñ/×6Ñ6°qÖ9Á8ÑLóô ×*Ñ*×1Ñ1°%¸±(Ó;ðó
ð 	
ùò Ms   Á)B4c                 óP   • U R                  5       n[        R                  U5        U$ rP   )rj   r  r"  )rZ  Ú	state_objs     rL   Úunwrap_stateÚRandomVariable.unwrap_stateê
  s&   € ð ×,Ñ,Ó.ˆ	Ü×"Ñ" 9Ô-ØÐrN   r`   r=   rŠ   c                 óv  • UR                   R                  R                  U 5        U R                  R                  " U Vs/ s H  oDR                  5       PM     sn0 UR                  5        VVs0 s H  u  pVXVR                  5       _M     snnD6  [        R                  R                  S 5      $ s  snf s  snnf rP   )
r²   rœ   Úmutationr  r  rj   r¿   r   r5   r‡   )rJ   r`   rŠ   rC   rL  r[  r  s          rL   r  ÚRandomVariable.seedò
  s“   € ð 	�	‰	×Ñ×'Ñ'¨Ô-Ø�‰×ÒÙ.2Ó3ªd¨×"Ñ"Ö$©dÑ3ð	
à=C¿\¹\¼^ÔLº^±°ˆs×*Ñ*Ó,Ò,¹^ÒLò	
ô ×)Ñ)×0Ñ0°Ó6Ð6ùò 4ùÛLs   Á B0Á/B5c                 óT   • U R                  U R                  R                  5       5      $ rP   )r%  r  r  r,  s       rL   r  ÚRandomVariable.getstateÿ
  s    € ð �‰˜tŸ{™{×3Ñ3Ó5Ó6Ð6rN   c                 óä   • UR                   R                  R                  U 5        U R                  R	                  U R                  US   5      5        [        R                  R                  S 5      $ r†  )	r²   rœ   r,  r  r  r)  r   r5   r‡   r,  s       rL   r  ÚRandomVariable.setstate  sT   € ð 	�	‰	×Ñ×'Ñ'¨Ô-Ø�‰×Ñ˜T×.Ñ.¨t°A©wÓ7Ô8Ü×)Ñ)×0Ñ0°Ó6Ð6rN   c                 ób  • Sn[        X[        U5      SS5        [        XU5        US   R                  5       nUR                  R
                  R                  U 5        [        US5      (       d  [        S5      e[        [        [        UR                  5      5      5      nU R                  R                  U5        UR                  R
                  R                  U5        U Vs/ s H  ouR                  U   PM     snUR                  S S & [        R                  R!                  S 5      $ s  snf )NÚshuffler-   r   r¿   z4shuffle only supports ListVariable and TupleVariable)r%   rt   r)   r“   r²   rœ   r,  r¢   ri   rà   rs   r¿   r  r3  r   r5   r‡   )rJ   r`   rŠ   rC   ra   ÚseqÚpermrú  s           rL   r3  ÚRandomVariable.shuffle  sç   € ð ˆÜ˜¤3 t£9¨a°Ô3Ü�B˜fÔ%Ø�1‰g�o‰oÓˆØ
�	‰	×Ñ×'Ñ'¨Ô-ô �s˜G×$Ñ$Ü Ð!WÓXÐXÜ”Eœ#˜cŸi™i›.Ó)Ó*ˆØ�‰×Ñ˜DÔ!Ø
�	‰	×Ñ×'Ñ'¨Ô,Ù.2Ó3ªd¨Ÿ	™	 !œ©dÑ3ˆ�	‰	‘!ˆÜ×)Ñ)×0Ñ0°Ó6Ð6ùò 4s   Ã%D,c                 ó2  • Sn[        X[        U5      SS5        [        XU5        [        XS   5      nUS   R	                  5       n[        U[        5      (       a  US:  d  U[        U5      :”  a  [        US5        UR                  R                  R                  U 5        U R                  R                  [        [        U5      5      U5      n[        R                  " U Vs/ s H  o…U   PM	     sn[        R                   R#                  5       S9$ s  snf )NÚsampler   r   r-   z,Sample larger than population or is negative)rž   )r%   rt   r)   r,   rj   r�   rª  r   r²   rœ   r,  r  r8  rs   r   ÚListVariableró  r  )	rJ   r`   rŠ   rC   ra   Úelemsr  Úindicesrú  s	            rL   r8  ÚRandomVariable.sample'  så   € ð ˆÜ˜¤3 t£9¨a°Ô3Ü�B˜fÔ%Ü ¨¡GÓ,ˆØ�‰G×&Ñ&Ó(ˆÜ˜!œS×!Ñ! Q¨£U¨a´#°e³*«nÜØØ>ôð 	�	‰	×Ñ×'Ñ'¨Ô-ð —+‘+×$Ñ$¤U¬3¨u«:Ó%6¸Ó:ˆÜ×%Ò%Ù&Ó'šw˜!�1ŒX™wÑ'Ü#Ÿ.™.×9Ñ9Ó;ñ
ð 	
ùÚ's   Ã$Dc                 ó¾  ^^	• UR                   R                  R                  U 5        U R                  R	                  5       m	S[
        S[
        S[
        4UU	4S jjn[        U R                  T5      " U Vs/ s H  ofR                  5       PM     sn0 UR                  5        VVs0 s H  u  pxXxR                  5       _M     snnD6  [        XX45      $ s  snf s  snnf )NrŠ   rC   rD   c                  ót   >• [         R                  " 5       nUR                  T5        [        UT5      " U 0 UD6$ rP   )r  r   r  rr   )rŠ   rC   Úrra   rZ  s      €€rL   Úcall_random_methÚ5RandomVariable._call_random.<locals>.call_random_methE  s1   ø€ Ü—’“ˆAØ�J‰J�uÔÜ˜1˜dÔ# TÐ4¨VÑ4Ð4rN   )
r²   rœ   r,  r  r  r   rr   rj   r¿   r9   )
rJ   r`   ra   rŠ   rC   r@  rL  r  r  rZ  s
     `      @rL   Ú_call_randomÚRandomVariable._call_randomA  s¼   ù€ Ø
�	‰	×Ñ×'Ñ'¨Ô-Ø—‘×$Ñ$Ó&ˆð	5¤Cð 	5´3ð 	5¼3÷ 	5ð 	5ô 	�—‘˜TÔ"Ù.2Ó3ªd¨×"Ñ"Ö$©dÑ3ð	
à5;·\±\´^ÔD²^©T¨Qˆq×&Ñ&Ó(Ò(±^ÒDò	
ô
 ˜b°DÓAÐAùò	 4ùÛDs   Á7CÂ&Cc                 ó(   • U R                  USX#5      $ )Nr  ©rB  r,  s       rL   Ú_randomÚRandomVariable._randomS  s   € ð × Ñ   X¨tÓ<Ð<rN   c                 ó(   • U R                  USX#5      $ )Nr  rE  r,  s       rL   Ú_randintÚRandomVariable._randint[  ó   € ð × Ñ   Y°Ó=Ð=rN   c                 ó(   • U R                  USX#5      $ )Nr  rE  r,  s       rL   Ú
_randrangeÚRandomVariable._randrangec  s   € ð × Ñ   [°$Ó?Ð?rN   c                 ó(   • U R                  USX#5      $ )Nr  rE  r,  s       rL   Ú_uniformÚRandomVariable._uniformk  rK  rN   )	r  r  r  r3  r8  r  r  r  r  c                 ó8  ^• TR                  U4S j5        TR                  SS5        TR                  5         TR                  S5        T" U R	                  U R
                  R                  5       5      5        TR                  SS5        TR                  5         g )Nc                  ón   >• T R                  T R                  [        5      T R                  S5      /5      $ )Nr   )r\   Úcreate_load_python_moduler  rl  ©rX   s   €rL   rY   Ú,RandomVariable.reconstruct.<locals>.<lambda>�  s1   ø€ �G×)Ñ)à×5Ñ5´fÓ=Ø×,Ñ,¨XÓ6ðôrN   r   Fr  r-   T)r[   r    rE  rÓ  r%  r  r  Úpop_topr³  s    `rL   r^   ÚRandomVariable.reconstruct  sz   ø€ Ø×Ñôô	
ð 	×Ñ˜a Ô'ð 	�‰ÔØ×Ñ˜*Ô%Ù�—‘ §¡× 4Ñ 4Ó 6Ó7Ô8Ø×Ñ˜a Ô&Ø�‰ÕrN   r  r¯  rÚ   ),r�   r‘   rÛ   rÜ   r§  r  r   rÝ   r4   rÞ   r  r   rI   rm   rS   rj   r¨   r/  r  rß   rª  rÕ  r"  r   r%  r)  rà   rá   rµ   r  r  r  r3  r8  rB  rF  rI  rM  rP  r2   Ú
tp_methodsr^   râ   rã   rä   s   @rL   r  r  �
  sÞ  ø† ñð —M‘M€Mð 	ðà	×	'Ñ	'ð€Nò
Ðð &*Ø'+ñ.à�m‰m˜dÑ"ð.ð  Ñ$ð.ð ð	.ð
 
÷.ð .ð$˜T &§-¡-Ñ0ô ð F§M¡Mô ð ð Vð °ó ó ðð$ ð˜5  e¨C°¨H¡o°u¸t±|Ð!CÑDð Èó ó ðð ð

˜%  U¨3°¨8¡_°e¸d±lÐ BÑCð 

Èó 

ó ð

ð ðØðà	ˆs�E˜#˜s˜(‘O U¨T¡\Ð1Ñ	2óó ðð7à'ð7ð �?Ñ#ð7ð �S˜/Ð)Ñ*ð	7ð
 
ô7ð7à'ð7ð �?Ñ#ð7ð �S˜/Ð)Ñ*ð	7ð
 
ô7ð7à'ð7ð �?Ñ#ð7ð �S˜/Ð)Ñ*ð	7ð
 
ô7ð7à'ð7ð �?Ñ#ð7ð �S˜/Ð)Ñ*ð	7ð
 
ô7ð,
à'ð
ð �?Ñ#ð
ð �S˜/Ð)Ñ*ð	
ð
 
ô
ò4Bð$=à'ð=ð �?Ñ#ð=ð �S˜/Ð)Ñ*ð	=ð
 
ô=ð>à'ð>ð �?Ñ#ð>ð �S˜/Ð)Ñ*ð	>ð
 
ô>ð@à'ð@ð �?Ñ#ð@ð �S˜/Ð)Ñ*ð	@ð
 
ô@ð>à'ð>ð �?Ñ#ð>ð �S˜/Ð)Ñ*ð	>ð
 
ô>ñ �t“Ù˜8Ó$Ù˜8Ó$Ù˜'“?Ù˜“.Ù˜“/Ù˜(Ó#Ù˜JÓ'Ù˜(Ó#ñ
€J÷ò rN   r  c                   óü   ^ • \ rS rSrS\4S jr\SSS\R                  \	   S\
S-  S	\	SS 4
S
 j5       rS\S\S	\	SS4U 4S jjrSSS\\   S\\\4   S\4S jrSS jrSSS\\\4   4S jrSSSSS\SS4S jrSrU =r$ )ÚWeakRefVariablei’  rD   c                 ó"   • [         R                  $ rP   )ÚweakrefÚrefrR   s    rL   rS   ÚWeakRefVariable.python_type“  s   € Ü�{‰{ÐrN   r`   r=   Úweakref_valuerk   NÚoptionsc                 ó  • Uc  [        S5      eUR                  nU=(       a    [        US5      n[        R                  " XU5      nU" 5       nU=(       a    [        U5      n[        R                  " XU5      nX#S'   [        X†40 UD6$ )Nz'WeakRefVariable.build requires a sourceÚ__callback__rk   )ri   rc  r   r4   rŸ   r$   r[  )	r`   r`  rk   ra  ÚcallbackÚcallback_sourceÚcallback_vtÚreferentÚreferent_vts	            rL   rŸ   ÚWeakRefVariable.build–  s„   € ð ‰>Ü Ð!JÓKÐKØ ×-Ñ-ˆØ ×G¤Z°¸Ó%GˆÜ%×+Ò+¨B¸/ÓJˆÙ “?ˆØ×5Ô-¨fÓ5ˆÜ%×+Ò+¨B¸&ÓAˆØ"�ÑÜ˜{ÑC¸7ÑCÐCrN   rh  rf  c                 ó>   >• [         TU ]  " S0 UD6  Xl        X l        g rF   )rH   rI   rh  rf  )rJ   rh  rf  ra  rK   s       €rL   rI   ÚWeakRefVariable.__init__©  s!   ø€ ô 	‰ÒÑ#˜7Ò#Ø&ÔØ&ÕrN   rŠ   rC   c                 ó   • U R                   $ rP   )rh  r,  s       rL   r    ÚWeakRefVariable.call_function°  s   € ð ×ÑÐrN   c                 ó®   ^• TR                  U4S j5        T" U R                  5        T" U R                  5        TR                  [	        SS5      5        g )Nc                  ó(   >• T R                  SS5      $ )Nr]  r^  )rA  rU  s   €rL   rY   Ú-WeakRefVariable.reconstruct.<locals>.<lambda>¹  s   ø€  g×&>Ñ&>¸yÈ%Ô&PrN   r   F)r[   rh  rf  r\   r   r³  s    `rL   r^   ÚWeakRefVariable.reconstruct¸  sD   ø€ Ø×ÑÔPÔQÙ�× Ñ Ô!Ù�× Ñ Ô!Ø×ÑÔ2°1°eÓ<Õ=rN   c                 ó2   • SSK Jn  U" XR                  5      $ )Nr-   )Úgeneric_hash_impl)r&  rs  rh  )rJ   r`   rs  s      rL   r�  ÚWeakRefVariable.hash_impl¾  s   € õ 	7á  ×%5Ñ%5Ó6Ð6rN   r   r4   r!  c                 ó´   • SSK Jn  US;  d  [        U[        5      (       d  [        R
                  " [        5      $ U" XR                  UR                  U5      $ )Nr-   rž  râ  )r&  rŸ  r�   r[  r5   r‡   rå  rh  )rJ   r`   r   r!  rŸ  s        rL   r(  Ú#WeakRefVariable.tp_richcompare_implÅ  sJ   € õ 	9ð
 Ð)Ó)´¸EÄ?×1SÑ1SÜ#×*Ò*¬>Ó:Ð:Ù" 2×'7Ñ'7¸×9JÑ9JÈBÓOÐOrN   )rf  rh  rÚ   )r�   r‘   rÛ   rÜ   rm   rS   r¨   r]  ÚReferenceTyper   r   rŸ   r4   rI   rà   rá   rµ   r    r^   rß   rª  r/  r�  r(  râ   rã   rä   s   @rL   r[  r[  ’  s  ø† ð˜Tô ð ðDØ'ðDà×,Ñ,¨SÑ1ðDð ˜‘ðDð ð	Dð
 
óDó ðDð"'Ø*ð'Ø9Hð'ØUXð'à	÷'ð à'ð ð �?Ñ#ð ð �S˜/Ð)Ñ*ð	 ð
 
ô ô>ð7Ð7ð 7¸EÀ#ÀtÀ)Ñ<Lô 7ð
PØ-ð
PØ6Gð
PØMPð
Pà	÷
Pò 
PrN   r[  )”r§  rQ   ræ  r?  r;  rR  r  r\  r¸  r  rÎ  rI  rë   r©   r]  Úcollections.abcr   r   r   r   Útypingr   r   r	   r
   Útorch._Cr™   Útorch._numpyr   r>  Útorch.utils._pytreer	  Ú_pytreer™  Útorch._dynamo.variables.baser   Útorch._dynamo.variables.listsr   Útorch._guardsr   rc   r   r   r   r   Úbytecode_transformationr   r   r   Úcreate_parameter_opr   rÍ   r   r   r   r   Úguardsr   r   Úmutation_guardr   rk   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   ró  r.   r/   r0   r1   r2   r3   r4   r‰  r5   Ú	functionsr6   r7   r&  r8   Úuser_definedr9   r:   r;   Útorch._dynamo.codegenr<   Útorch._dynamo.symbolic_convertr=   r?   ræ   rû   r1  r„  rŒ  rš  r¡  r¥  r©  r±  rÇ  rÐ  rÜ  rß  Ú	dataclassr<  r  rd  r˜   r„   r¬  rÀ  rØ  Ú	lru_cacherá   rª   r  r  r  rA  r·   rR  rq  rJ  r|  r…  rŸ  r©  r»  r×  ÚfinfoÚiinfor¼  r(  rá  r   r  r[  rG   rN   rL   Ú<module>r�     s¦  ðñó" Û Û Û Û Û Û Û Û Û 	Û 
Û Û Û ß .Ý Ý %ß 7Ó 7ã Ý ß $Ð $Ý 5Ý 7Ý  ç @Ó @÷ñ õ
 G÷ó ÷ 1Ý 5÷÷ ÷	÷ 	ó 	÷÷ ñ õ 'ß GÝ (ß XÑ Xö Ý/ÝHôY
�Oô Y
ôx
˜?ô ô$h;˜ô h;ôVj<˜ô j<ôZ2Ð-ô 2ô(")Ð"3ô ")ôJÐ8ô ôKÐ3ô Kô�oô ô
˜oô 
ô>B7�ô B7ôJ�?ô ô4#˜ô #ð
%¨cð %°h¸sÀC¸xÑ6Hô %ô`˜ô `ðF	 ×Ñ÷Mð Mó ðMôW2Ð&?ô W2ôt3Ð6ô 3ôl(�_ô (ô$A2�oô A2ôH<K˜ô <Kô~27˜?ô 27ôjuE�_ô uEðp ×Ò˜QÑð˜4 × 9Ñ 9¸5×;MÑ;MÐ MÑNó ó  ðð( ×Ò˜QÑð(˜4 × 2Ñ 2°E×4MÑ4MÐ MÑNó (ó  ð(ôu"�Oô u"ôr�?ô ô0-�oô -ôSD˜?ô SDôl7�_ô 7ð. ×Ò�wÓô&˜?ô &ôM˜ô Mô`7˜oô 7ô05
˜Oô 5
ôp_A˜?ô _AôD(Ð-ô (ð ‡I‚IÐ#Ø‡I‚IÐ#Ø‡I‚IÐ!ðÐ ôl2˜ô l2ô^
˜/ô 
ô<B�_ô BôJ=P�oõ =PrN   