ó
    Eñi ã                   ó$  • % 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JrJr  SSKJrJrJrJr  SSK
JrJrJrJrJ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!  S
SK"J#r#J$r$J%r%J&r&  S
SK'J(r(J)r)J*r*J+r+J,r,J-r-J.r.  S
SK/J0r0J1r1  S
SK2J3r3  S
SK4J5r5J6r6J7r7J8r8J9r9J:r:  S
SK;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrIJJrJJKrKJLrLJMrMJNrN  SSKOJPrPJQrQJRrR  SSKSJTrTJUrUJVrV  SSKWJXrXJYrYJZrZJ[r[J\r\J]r]J^r^J_r_  SSK`JaraJbrbJcrcJdrdJereJfrfJgrg  SSKhJiriJjrj  SSKkJlrlJmrmJnrnJoroJprp  SSKqJrrrJsrsJtrtJuru  \(       a  SSKvJwrw  SSKxJyry  \Rô                  " \{5      r|\Rú                  \Rü                  \Rþ                  \GR                   \GR                  \GR                  \GR                  \GR                  \GR
                  \GR                  \GR                  \GR                  \GR                  \GR                  \GR                  \GR                  \GR                  \GR                  \GR                  \GR                  \GR                   \GR"                  \GR$                  \GR&                  \GR(                  \GR*                  0r–\S\
R(                  \
R(                  /\RS-  4   r—\\˜\R   \™\˜\R   S4   4   rš\GR6                  \%GR8                  \GR:                  \%GR<                  \GR>                  \%GR@                  \GRB                  \%GRD                  \GRF                  \%GRH                  \GRJ                  \%GRL                  0r§\GR                  \GR                  \GRP                  \GR                  \GR                  \GR                  \Rü                  \GR>                  \GRF                  \GRJ                  \GRB                  \GR:                  \GR6                  \GR                   \GR                  \GR                  \GR                  \GR                  \GR
                  \GR                  \Rú                  \Rþ                  4r©\GR"                  \GR&                  \GR*                  \GR                   \GR(                  \GR$                  4rª\GRV                  4r¬\GR                  \GR                  \GR                  \GR                  \GRZ                  4r®\GR^                  \GR`                  \GRb                  \GRd                  \GRf                  4r´0 qµ\¶\S\4   \S\4   4   \·S'   0 q¸\¶\S\4   \S\4   4   \·S'   S%S  jr¹ " S! S"\R5      rº\GRv                  S#SS\
GRx                  S   4S$ j5       r½g)&a\  
Built-in function and type variable tracking for TorchDynamo's symbolic execution.

This module contains variable tracker classes for Python built-in functions, types,
and operations during graph compilation. It handles symbolic execution of:

- Built-in functions (len, getattr, isinstance, etc.)
- Type constructors (int, float, str, list, dict, etc.)
- Built-in operators and methods
- Special Python constructs (super, hasattr, etc.)

Key classes:
- BuiltinVariable: Tracks built-in functions and handles their execution
- TypeVariable: Manages type constructor calls and type checking
- SuperVariable: Handles super() calls in class hierarchies

These variable trackers ensure that built-in Python operations are correctly
handled during symbolic execution, either by executing them directly when safe
or by creating appropriate graph nodes when needed.
é    N)ÚdefaultdictÚOrderedDict)ÚCallableÚIterableÚKeysViewÚSequence)ÚAnyÚcastÚLiteralÚTYPE_CHECKINGÚUnion)Ú	sym_floatÚsym_int)Úis_sparse_any)ÚBaseTorchFunctionMode)Úis_traceable_wrapper_subclassé   )ÚconfigÚgraph_break_hintsÚ	polyfillsÚ	variables)ÚObservedAttributeErrorÚObservedUserStopIterationÚraise_observed_exceptionÚunimplementedÚUnsupportedÚ	UserErrorÚUserErrorType)ÚGuardBuilderÚinstall_guard)ÚDummyModule)Ú
AttrSourceÚGetItemSourceÚGlobalSourceÚis_constant_sourceÚSourceÚ
TypeSource)Úcheck_constant_argsÚcheck_numpy_ndarray_argsÚcheck_unspec_or_constant_argsÚcheck_unspec_python_argsÚcmp_name_to_op_mappingÚdict_methodsÚextract_fake_example_valueÚfrozenset_methodsÚget_fake_valueÚguard_if_dynÚis_tensor_getset_descriptorÚis_wrapper_or_member_descriptorÚistypeÚnumpy_operator_wrapperÚproxy_args_kwargsÚraise_args_mismatchÚset_methodsÚstr_methodsÚtensortype_to_dtypeé   )Ú#AsPythonConstantNotImplementedErrorÚValueMutationNewÚVariableTracker)ÚCONSTANT_VARIABLE_NONEÚConstantVariableÚEnumVariable)ÚConstDictVariableÚDefaultDictVariableÚDictKeysVariableÚDictViewVariableÚFrozensetVariableÚis_hashableÚOrderedSetClassVariableÚSetVariable)ÚBaseListVariableÚListIteratorVariableÚListVariableÚRangeVariableÚSizeVariableÚTupleIteratorVariableÚTupleVariable)ÚEventVariableÚStreamVariable)ÚFakeItemVariableÚsupported_comparison_opsÚSymNodeVariableÚTensorVariableÚUnspecializedPythonVariable)ÚMutableMappingVariableÚUserDefinedDictVariableÚUserDefinedObjectVariableÚUserDefinedVariable)Ú	PyCodegen)ÚInstructionTranslatorr]   .ÚBUILTIN_TO_TENSOR_FN_MAPÚBUILTIN_TO_TENSOR_RFN_MAPÚreturnc                  ór  ^^^	^
^• [        [        5      S:”  a  g S m " U4S jS[        5      n [        R                  " S5      m[        R                  " S5      m	[        R                  " S[        R
                  S9m[        R                  " S[        R
                  S9m
U " 5          U4S j[        4U4S j[        4UU	4S j[        4UU
4S	 j[        4U4S
 j[        4/nU H$  u  p#U H  nU" U5        Tc   eT[        U'   M     M&     U	4S j[        4U
4S j[        4U4S j[        4/n[        R                  [        R                  [        R                  1nU H:  u  p#U H/  nXF;   a  M
  U" U5        Tc   eT[        U   :w  d  M&  T[        U'   M1     M<     S S S 5        g ! , (       d  f       g = f)Nr   c                   óf   >• \ rS rSrSr  SS\S\4   S\S\\   S	\\	\4   S-  S
\4
U 4S jjjr
Srg)Ú8populate_builtin_to_tensor_fn_map.<locals>.GetMethodModeéå   z‚
Mode to extract the correct methods from torch function invocations
(Used to get the correct torch.Tensor methods from builtins)
© NÚfunc.ÚtypesÚargsÚkwargsr`   c                 ó.   >• U=(       d    0 nUmU" U0 UD6$ ©Nre   )Úselfrf   rg   rh   ri   Úmost_recent_funcs        €Ú\/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_dynamo/variables/builtin.pyÚ__torch_function__ÚKpopulate_builtin_to_tensor_fn_map.<locals>.GetMethodMode.__torch_function__ë   s$   ø€ ð —\˜rˆFà#ÐÙ˜Ð( Ñ(Ð(ó    )re   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r	   r   ÚdictÚstrro   Ú__static_attributes__)rm   s   €rn   ÚGetMethodModerc   å   sd   ø† ñ	ð #%Ø,0ñ
	)à˜3 ˜8Ñ$ð
	)ð ð
	)ð ˜3‘-ð	
	)ð
 ˜˜c˜‘N TÑ)ð
	)ð ÷
	)ó 
	)rq   rz   r;   )Údtypec                 ó   >• U " T5      $ rk   re   )ÚoÚinp0s    €rn   Ú<lambda>Ú3populate_builtin_to_tensor_fn_map.<locals>.<lambda>ý   s	   ø€ ‘q˜”wrq   c                 ó   >• U " T5      $ rk   re   ©r}   Úinp0_ints    €rn   r   r€   þ   s	   ø€ ‘q˜”{rq   c                 ó   >• U " TT5      $ rk   re   )r}   r~   Úinp1s    €€rn   r   r€   ÿ   s   ø€ ‘q˜˜t”}rq   c                 ó   >• U " TT5      $ rk   re   )r}   rƒ   Úinp1_ints    €€rn   r   r€      s   ø€ ‘q˜ 8Ô,rq   c                 ó   >• U " TS5      $ ©Nr   re   r‚   s    €rn   r   r€     s   ø€ ‘q˜ 1”~rq   c                 ó   >• U " ST5      $ ©Nr;   re   )r}   r…   s    €rn   r   r€     s   ø€ ™!˜A˜tœ*rq   c                 ó   >• U " ST5      $ r‹   re   )r}   r‡   s    €rn   r   r€     ó   ø€ ‘q˜˜H”~rq   c                 ó   >• U " ST5      $ r‰   re   r‚   s    €rn   r   r€     r�   rq   )Úlenr^   r   ÚtorchÚonesÚint32Úun_opsÚ
un_int_opsÚbin_opsÚbin_int_opsÚtensor_and_int_opsÚoperatorÚmatmulÚimatmulÚgetitemr_   )rz   Úsetups_and_oplistsÚsetup_fnÚop_listÚopÚrsetups_and_oplistsÚrskipsr~   rƒ   r…   r‡   rm   s          @@@@@rn   Ú!populate_builtin_to_tensor_fn_mapr¢   Ý   sw  ü€ ä
Ô#Ó$ qÓ(ð 	Ø26Ð÷)Ô-ô )ô$ �:Š:�a‹=€DÜ�:Š:�a‹=€DÜ�zŠz˜!¤5§;¡;Ñ/€HÜ�zŠz˜!¤5§;¡;Ñ/€HÙ	�ä¤Ð'Ü"¤JÐ/Ý$¤gÐ.Ý,¬kÐ:Ü%Ô'9Ð:ðN
Ðó "4ÑˆHÛ�Ù˜”Ø'Ñ3Ð3Ð3Ø/?Ô(¨Ó,ó ñ "4ô %Üðô &¤{Ð3Ü%Ô'9Ð:ðO
Ðô —/‘/¤8×#3Ñ#3´X×5EÑ5EÐFˆÛ!4ÑˆHÛ�Ø“<ÙÙ˜”Ø'Ñ3Ð3Ð3Ø#Ô'?ÀÑ'CÕCØ4DÔ-¨bÓ1ó ñ "5÷3 
�Žús   Â'C#F(ÆF(Æ(
F6c                   ó¨  ^ • \ rS rSr% Sr\" 5       rS1\R                  kr\	S\
S\SS 4S j5       r\\R                  S\\S\
4      4S	 j5       5       rS\4S
 jr\\R                  S\\S\
4      4S j5       5       r\\R                  S\\S\4   \\\   \S\4   4   4   4S j5       5       r\\R                  S\\S\4   \\\\\   \4   \4      4   4S j5       5       r\S\S\
4   S\\   S\S\\   S-  4S j5       rS\4S jr S\
S\
SS4U 4S jjr!S\4S jr"S\
4S jr#S\
4U 4S jjr$S‚S jr%S\S\S\4S jr&S\S\4S jr'S\\   S\4S jr(S\S\S\4S jr)\S\*\   S\\\4   S\\\
   \\\
4   4   4S  j5       r+S\*\   S\\\4   S\4S! jr,\S\S\
4   S\\   S"\S\S#\\S4   \\\4   /\S-  4   4S$ j5       r-S%S#S\
S\4S& jr.S%S#S\*\   S\\\4   S\S-  4S' jr/0 r0\\\S4   \S#\*\   \\\4   /\4   4   \1S('   S%S#S\*\   S\\\4   S\4S) jr2S%S#S*\S\\   S\\\4   S\4
U 4S+ jjr3S%S#S,\S\S-  4S- jr4\4r5\4r6S%S#S,\S\S-  4S. jr7S%S#S,\S\S-  4S/ jr8S%S#S,\S\S-  4S0 jr9S%S#S\S\S-  4S1 jr:S%S#S2\*\   S\4S3 jr;S%S#S4\S-  S5\S-  S\S-  4S6 jr<\:r=\:r>S%S#S,\S\4S7 jr?S%S#S,\S\4S8 jr@S%S#S,\S\4S9 jrAS%S#S,\S\S\S\4
S: jrBS%S#S\S\S-  4S; jrCS\S\S\4S< jrDS%S#S\S\4S= jrES%S#S\
S\
S\4S> jrF SƒS%S#S?\S-  S\S\S\S-  4
S@ jjrGS%S#S?\S\S\S\4
SA jrH SƒS%S#S?\S-  S\S\S\S-  4
SB jjrIS%S#S?\S\S\S\4
SC jrJ\IrK\IrLS%S#S,\S\S-  4SD jrMSE\
S\S\S\S-  4SF jrNS%S#S,\S\S-  4SG jrOS%S#S\S\S\4SH jrP\S%S#SI\S\S\S\4
SJ j5       rQ\S%S#SI\S\S\S\4
SK j5       rRS%S#S\S\S\4SL jrSS%S#S\S\S\4SM jrTS%S#S\S\S\4SN jrUS%S#S\S\S\4SO jrVS%S#S\S\S\4SP jrWS%S#S,\SQ\S\4SR jrXS%S#SS\ST\S\4SU jrYS%S#S4\S5\S\4SV jrZS%S#S\S\4SW jr[S%S#S?\SX\S\S-  4SY jr\S%S#S\SZ\S\S\4
S[ jr]S%S#S\S\\S\4S] jr^S%S#S*\S\4S^ jr_ SƒS%S#S?\S_\S`\S-  S\S-  4
Sa jjr`S%S#S?\S_\Sb\S\S-  4
Sc jraS%S#S?\S_\S\4Sd jrbS%S#S?\S\4Se jrcS%S#S?\S\S-  4Sf jrdS%S#S?\S\S\S-  4Sg jreS%S#S4\S\S-  4Sh jrfS%S#Si\S\S\S\4
Sj jrgS%S#S\S\4Sk jrhS%S#Sl\S\4Sm jriS%S#Sn\So\S\4Sp jrjS%S#Sn\So\S\4Sq jrkS%S#S4\S5\S\S-  4Sr jrlS%S#S4\S5\S\S-  4Ss jrmS%S#S4\S5\S\S-  4St jrnS%S#S4\S5\S\S-  4Su jroS%S#S4\S5\S\S-  4Sv jrpS%S#S4\S5\S\S-  4Sw jrqS%S#S4\S5\S\S-  4Sx jrrS%S#S4\S5\S\S-  4Sy jrsS%S#S4\S\S-  4Sz jrtS%S#S4\S5\S\4S{ jruS\vS|   4S} jrwS\x4S~ jryS\S\4S€ jrzS�r{U =r|$ )„ÚBuiltinVariablei  aÔ  
A VariableTracker that represents a built-in value (functions and operators).
A lot of the code here assumes it will be a function object.

The BuiltinVariable class wraps Python built-in functions (like len, isinstance, etc.)
and operators (like +, -, *, etc.) to enable symbolic execution during tracing. This allows
Dynamo to properly handle these operations when converting Python code to FX graphs while
maintaining correct semantics and enabling optimizations.
ÚfnÚvalueÚsourcer`   c                 ó^   • [        UR                  [        R                  5      5        U " XS9$ ©N©r§   )r    Ú
make_guardr   ÚBUILTIN_MATCH)Úclsr¦   r§   s      rn   Úcreate_with_sourceÚ"BuiltinVariable.create_with_source/  s&   € ä�f×'Ñ'¬×(BÑ(BÓCÔDÙ�5Ñ(Ð(rq   .c                  ó:  • 1 [         i[        i[        i[        i[        i[
        i[        i[        i[        i[        i[        i[        i[        i[        i[        i[        i[         i["        i[$        i[$        R&                  i[(        i[*        i[,        R                   i[,        R.                  i[,        R0                  i[,        R2                  i[,        R4                  i[,        R6                  i[,        R                  i[,        R8                  i[,        R:                  i[,        R<                  i[,        R>                  i[,        R@                  i[,        RB                  i[,        RD                  i[,        RF                  i[,        RH                  i[,        RJ                  i[,        RL                  i[,        RN                  i[,        RP                  i[,        RR                  i[,        RT                  i[,        RV                  i[,        RX                  i[,        RZ                  i[,        R\                  i[,        R^                  i[,        R`                  i[,        Rb                  i[,        Rd                  i[,        Rf                  i[,        Rh                  i[,        Rj                  i[,        Rl                  i[,        Rn                  in SSK8J9n  U Ru                  URv                  " 5       5        U Ru                  S [x        Rz                  Rw                  5        5       5        U $ )Nr;   )rT   c              3   óz   #   • U  H1  n[        U[        [        R                  5      5      (       d  M-  Uv •  M3     g 7frk   )Ú
isinstanceÚtypeÚmathÚsqrt©Ú.0Úxs     rn   Ú	<genexpr>Ú;BuiltinVariable._constant_fold_functions.<locals>.<genexpr>u  s%   é € ÐWÒ4˜¼
À1ÄdÌ4Ï9É9Ão×8V—1‘1Ò4ùs   ‚,;²	;)>ÚabsÚallÚanyÚboolÚcallableÚchrÚcomplexÚdivmodÚfloatÚgetattrÚintr�   ÚmaxÚminÚordÚpowÚreprÚroundrx   ÚformatÚsumr³   r˜   ÚposÚnegÚnot_ÚtruthÚinvertÚmulr™   ÚfloordivÚtruedivÚmodÚaddÚsubr›   Úlength_hintÚlshiftÚrshiftÚand_Úor_ÚxorÚipowÚimulrš   Ú	ifloordivÚitruedivÚimodÚiaddÚisubÚilshiftÚirshiftÚiandÚixorÚiorÚindexÚtensorrT   ÚupdateÚvaluesr´   Ú__dict__)ÚfnsrT   s     rn   Ú_constant_fold_functionsÚ(BuiltinVariable._constant_fold_functions4  sU  € ð:(
Üð:(
äð:(
ô ð:(
ô ð	:(
ô
 ð:(
ô ð:(
ô ð:(
ô ð:(
ô ð:(
ô ð:(
ô ð:(
ô ð:(
ô ð:(
ô ð:(
ô ð:(
ô  ð!:(
ô" ð#:(
ô$ ð%:(
ô& ð':(
ô( �J‰Jð):(
ô* ð+:(
ô, ð-:(
ô. �L‰Lð/:(
ô0 �L‰Lð1:(
ô2 �L‰Lð3:(
ô4 �M‰Mð5:(
ô6 �N‰Nð7:(
ô8 �O‰Oð9:(
ô: �L‰Lð;:(
ô< �L‰Lð=:(
ô> �O‰Oð?:(
ô@ ×ÑðA:(
ôB ×ÑðC:(
ôD �L‰LðE:(
ôF �L‰LðG:(
ôH �L‰LðI:(
ôJ ×ÑðK:(
ôL × Ñ ðM:(
ôN �O‰OðO:(
ôP �O‰OðQ:(
ôR �M‰MðS:(
ôT �L‰LðU:(
ôV �L‰LðW:(
ôX �M‰MðY:(
ôZ �M‰Mð[:(
ô\ ×Ñð]:(
ô^ ×Ñð_:(
ô` ×Ñða:(
ôb �M‰Mðc:(
ôd �M‰Mðe:(
ôf �M‰Mðg:(
ôh ×Ñði:(
ôj ×Ñðk:(
ôl �M‰Mðm:(
ôn �M‰Mðo:(
ôp �L‰Lðq:(
ôr �N‰Nðs:(
ˆõv 	5à�
‰
Ð+×2Ò2Ó4Ô5Ø�
‰
ÑWœdŸm™m×2Ñ2Ô4ÓWÔWØˆ
rq   c                 ó<   • U R                   U R                  5       ;   $ rk   )r¥   rñ   ©rl   s    rn   Úcan_constant_fold_throughÚ)BuiltinVariable.can_constant_fold_throughx  s   € Ø�w‰w˜$×7Ñ7Ó9Ñ9Ð9rq   c                  óê  • 1 [         R                  i[         R                  i[         R                  i[         R                  i[         R
                  i[         R                  i[         R                  i[         R                  i[         R                  i[         R                  i[         R                  i[         R                  i[         R                  i[         R                  i[         R                  i[         R                   i[         R"                  i[         R$                  i[         R&                  i[         R(                  i[         R*                  i[         R,                  i[         R.                  i[         R0                  i[         R2                  i[         R4                  i[         R6                  i[         R8                  i[         R:                  i[         R<                  i[         R>                  i[         R@                  i[         RB                  i[         RD                  i[         RF                  i[         RH                  i[         RJ                  i[         RL                  i[         RN                  in U $ rk   )(r˜   r»   rÎ   rÏ   rÐ   rÒ   rÉ   rÓ   r™   rÔ   rÕ   rÖ   r×   ÚltÚgtÚgeÚleÚneÚeqrØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rà   rš   rá   râ   r›   rã   rä   rå   ræ   rç   rè   ré   rê   ©rð   s    rn   Ú_fx_graph_functionsÚ#BuiltinVariable._fx_graph_functions{  sQ  € ð(
Ü�L‰Lð(
ä�L‰Lð(
ô �L‰Lð(
ô �M‰Mð	(
ô
 �O‰Oð(
ô �L‰Lð(
ô �L‰Lð(
ô �O‰Oð(
ô ×Ñð(
ô ×Ñð(
ô �L‰Lð(
ô �L‰Lð(
ô �K‰Kð(
ô �K‰Kð(
ô �K‰Kð(
ô  �K‰Kð!(
ô" �K‰Kð#(
ô$ �K‰Kð%(
ô& �L‰Lð'(
ô( × Ñ ð)(
ô* �O‰Oð+(
ô, �O‰Oð-(
ô. �M‰Mð/(
ô0 �L‰Lð1(
ô2 �L‰Lð3(
ô4 �M‰Mð5(
ô6 �M‰Mð7(
ô8 ×Ñð9(
ô: ×Ñð;(
ô< ×Ñð=(
ô> ×Ñð?(
ô@ �M‰MðA(
ôB �M‰MðC(
ôD �M‰MðE(
ôF ×ÑðG(
ôH ×ÑðI(
ôJ �M‰MðK(
ôL �M‰MðM(
ôN �L‰LðO(
ˆðR ˆ
rq   c                  óâ  • [         R                  / SQ[         R                  4[         R                  / SQ[         R                  4[         R
                  / SQ[         R                  4[         R                  / SQ[         R                  4[         R                  / SQ[         R                  4[         R                  / SQ[         R                  4[        / SQ[         R                  4[         R                  / SQ[         R                  4[         R                  / SQ[         R                   4[         R"                  / S	Q[         R$                  4[         R&                  / S
Q[         R&                  40n U $ )N)Ú__add__Ú__radd__Ú__iadd__)Ú__sub__Ú__rsub__Ú__isub__)Ú__mul__Ú__rmul__Ú__imul__)Ú__truediv__Ú__rtruediv__Ú__itruediv__)Ú__floordiv__Ú__rfloordiv__Ú__ifloordiv__)Ú__mod__Ú__rmod__Ú__imod__)Ú__pow__Ú__rpow__Ú__ipow__)Ú
__lshift__Ú__rlshift__Ú__ilshift__)Ú
__rshift__Ú__rrshift__Ú__irshift__)Ú__xor__Ú__rxor__Ú__ixor__)r˜   r×   rä   rØ   rå   rÓ   rà   rÕ   râ   rÔ   rá   rÖ   rã   rÉ   rß   rÚ   ræ   rÛ   rç   rÞ   rþ   s    rn   Ú_binopsÚBuiltinVariable._binops©  s   € ô �L‰LÒ>ÄÇÁÐNÜ�L‰LÒ>ÄÇÁÐNÜ�L‰LÒ>ÄÇÁÐNÜ×ÑÚ?Ü×!Ñ!ðô ×ÑÚBÜ×"Ñ"ð ô �L‰LÒ>ÄÇÁÐNÜÒ5´x·}±}ÐEÜ�L‰LÒ>ÄÇÁÐNÜ�O‰OÚ<Ü× Ñ ðô �O‰OÚ<Ü× Ñ ðô �L‰LÒ>ÄÇÁÐMð/U
ˆð> ˆ
rq   c                  óî  ^^^^^^^^• SSK JmJm  SSKJm  SSKJm  SSKJm  SSK	J
mJmJm  0 n [        R                  5       R                  5        GHz  u  nu  p#/ X'   / X'   Uu  pEnUUS.SS	S
[         S[         S["        S["        S[         4U4S jjjnX   R%                  T[         4U45        X   R%                  [         T4U45        US.SS	S
[         S[         S["        S[         4
S jjnX   R%                  T[         4U45        X   R%                  [         T4U45        US.SS	S
[         S[         S[&        S[(        4   S[         4
S jjn	X   R%                  [*        [         4U	45        X   R%                  [         [*        4U	45        X   R%                  [*        [         4U	45        X   R%                  [         [*        4U	45        GM}     SS	S
[,        S[         S[         4S jn
SS	S
[,        S[         S[         4S jn[.        [.        4U4[.        [0        4U4[0        [.        4U4[0        [0        4U
4[0        [2        4U
4[2        [0        4S 4[4        [,        [2        [6        44S 4[,        [,        4S 4/nU [8        R:                     R=                  U5        SS	S
[,        S[         S[(        4S jn[4        [         4U4[0        [0        4U
4[0        [2        4U
4/nU [8        R>                     R=                  U5        SS	S[         S[         S[         4S jn[4        [2        4U4[0        [2        4U4[2        [4        4U4[2        [0        4U4/nU [8        R@                     R=                  U5        S[&        S[(        4   S[B        [D        [D        [F        [F        4   [H        4      4UUUUUUUU4S  jjn[J        RL                  " 5        H&  n[O        U5      (       d   eX;  d   eU" U5      X'   M(     U $ )!Nr;   )ÚBaseUserFunctionVariableÚUserFunctionVariable©ÚNNModuleVariable)Úsupported_const_comparison_ops)ÚBaseTorchVariable)ÚUserDefinedClassVariablerZ   r[   )Úforward_nameÚreverse_nameÚtxr]   ÚaÚbr*  r+  r`   c                óv   >• [        UT5      (       a  UR                  XU/0 5      $ UR                  XU/0 5      $ rk   )r²   Úcall_method)r,  r-  r.  r*  r+  r[   s        €rn   Úuser_defined_handlerÚ=BuiltinVariable._binop_handlers.<locals>.user_defined_handlerø  s=   ø€ ô, ˜aÐ!4×5Ñ5ØŸ=™=¨¸A¸3ÀÓCÐCàŸ=™=¨¸A¸3ÀÓCÐCrq   )r*  c                ó*   • UR                  XU/0 5      $ rk   ©r0  )r,  r-  r.  r*  s       rn   Úuser_defined_inplace_handlerÚEBuiltinVariable._binop_handlers.<locals>.user_defined_inplace_handler  s   € ð —}‘} R¸°s¸BÓ?Ð?rq   ©r¥   r¥   .c          
      ón   • SSK Jn  U" U U R                  R                  " SU/[	        X/0 5      Q76 5      $ ©Nr;   ©Úwrap_fx_proxyÚcall_function)Úbuilderr;  ÚoutputÚcreate_proxyr6   )r,  r-  r.  r¥   r;  s        rn   Údynamic_handlerÚ8BuiltinVariable._binop_handlers.<locals>.dynamic_handler+  s?   € õ 3á$ØØ—I‘I×*Ò*Ø'¨ðÜ.?ÀÀÈÓ.Kòóð rq   c                 óR   • [        / UR                  QUR                  U 5      Q5      $ rk   )rP   ÚitemsÚunpack_var_sequence©r,  r-  r.  s      rn   Útuple_add_handlerÚ:BuiltinVariable._binop_handlers.<locals>.tuple_add_handlerM  s)   € ô !Ð!G 1§7¡7Ð!G¨Q×-BÑ-BÀ2Ó-FÐ!GÓHÐHrq   c                 óR   • [        / UR                  QUR                  U 5      Q5      $ rk   )rN   rC  rD  rE  s      rn   Úsize_add_handlerÚ9BuiltinVariable._binop_handlers.<locals>.size_add_handlerR  s)   € ô  Ð F !§'¡'Ð F¨A×,AÑ,AÀ"Ó,EÐ FÓGÐGrq   c                 óR   • [        / UR                  U 5      QUR                  Q5      $ rk   )rP   rD  rC  rE  s      rn   r   Ú1BuiltinVariable._binop_handlers.<locals>.<lambda>y  s-   € ¤ðØ×.Ñ.¨rÓ2ðàŸ™ðô"rq   c                 ó`   • [        / UR                  QUR                  U 5      Q[        5       S9$ ©N©Úmutation_type)rL   rC  rD  r=   rE  s      rn   r   rL  …  s+   € ¤Ø:�a—g‘gÐ: × 5Ñ 5°bÓ 9Ð:Ü"2Ó"4ò"rq   c                 óT   • [        U5      " / UR                  QUR                  Q5      $ rk   )r³   rC  rE  s      rn   r   rL  Œ  s*   € ¤ a¤ðØŸ™ðàŸ™ðô"rq   c                 ó   • UR                  5       (       d  UR                  U 5      (       d  g UR                  U 5      nU R                  R                  R                  U5        UR                  R                  U5        U$ rk   )Úis_immutableÚhas_unpack_var_sequencerD  r>  Úside_effectsÚmutationrC  Úextend)r,  r-  r.  Úseqs       rn   Úlist_iadd_handlerÚ:BuiltinVariable._binop_handlers.<locals>.list_iadd_handler–  sa   € ð �~‰~×Ñ q×'@Ñ'@À×'DÑ'Dàà×'Ñ'¨Ó+ˆCØ�I‰I×"Ñ"×+Ñ+¨AÔ.Ø�G‰G�N‰N˜3ÔØˆHrq   ÚlstÚconstc                 óœ  • [        U[        5      (       d  UR                  5       (       a  X!p! [        U[        5      (       d   eUR                  UR                  UR                  5       -  [        5       S9$ ! [         aI  n[        [        U5      U [        [        [        R                  UR                  5      5      S9   S nAg S nAff = f)N)rC  rP  ©rh   )r²   rJ   Úis_python_constantÚ	__class__rC  Úas_python_constantr=   ÚMemoryErrorr   r³   ÚlistÚmapr@   Úcreaterh   )r,  r[  r\  Úexcs       rn   Úexpand_list_likeÚ9BuiltinVariable._binop_handlers.<locals>.expand_list_like³  s­   € ô ˜cÔ#3×4Ñ4¸×9OÑ9O×9QÑ9QØ"�UðÜ! #Ô'7×8Ñ8Ð8Ð8Ø—}‘}ØŸ)™) e×&>Ñ&>Ó&@Ñ@Ü"2Ó"4ð %ð ð øô ó Ü(Ü˜“IØÜœcÔ"2×"9Ñ"9¸3¿8¹8ÓDÓE÷ûðús   ®A	A8 Á8
CÂ?CÃCrŸ   c                 ó  >^ ^
• SSS[         S[         S[         4U 4S jjn[        [        4U4/nT [        ;   a¡  [        [        4U4[        [        4U4/n[	        T 5      nUR                  [        [         4UR                  4[         [        4UR                  4/5        SSS[         S[         S[         4U 4S jjnUR                  [         [         4U45        U$ [        [        4U4/nT TR                  5       ;   GaŽ  T R                  R                  S5      (       Gam  T " [        5       S 5      m
SSS[         S[         S[         4U
4S	 jjnUnUn[        [        T[        TT[        T4nUR                  U[        4U4[        U4U4/5        [	        T 5      nUR                  T[        4T[        44U 4S
 j4TT4U 4S j4TT4U4TT4U4[         ["        [        4[         ["        [        44U4[        [         4UR$                  4[         [        4UR$                  4[        [         4UR                  4[         [        4UR                  4/	5        SSS[         S[         S[         S -  4U 4S jjn	UR                  [         [         4U	45        U$ )Nr,  r]   r-  r.  r`   c                 óþ   >•  [        T" UR                  UR                  5      5      $ ! [         aI  n[        [	        U5      U [        [        [         R                  UR                  5      5      S9   S nAg S nAff = f)Nr^  )	r@   r¦   Ú	TypeErrorr   r³   rc  rd  re  rh   )r,  r-  r.  rf  rŸ   s       €rn   Úcompare_by_valueÚYBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.compare_by_valueÕ  s^   ø€ ðÜ+©B¨q¯w©w¸¿¹Ó,@ÓAÐAøÜ ó Ü,Ü˜S›	ØÜ!¤#Ô&6×&=Ñ&=¸s¿x¹xÓ"HÓI÷ûðús   ƒ%) ©
A<³?A7Á7A<c                 ód   >• U R                  [        R                  " U [        T   5      X/0 5      $ rk   )Úinline_user_function_returnr>   ÚbuildÚpolyfill_fn_mapping©r,  r-  r.  rŸ   s      €rn   ÚhandlerÚPBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.handler  s5   ø€ ð ×9Ñ9Ü'×-Ò-¨bÔ2EÀbÑ2IÓJÈQÈFÐTVóð rq   Úis_c                 ó   >• [        T5      $ rk   )r@   )r,  r-  r.  Únone_results      €rn   ÚneverÚNBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.never  s   ø€ ô ,¨KÓ8Ð8rq   c                 óP   >• [        T" UR                  UR                  5      5      $ rk   )r@   r¥   rr  s      €rn   r   ÚQBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.<lambda><  s   ø€ Ô-=¹bÀÇÁÀqÇtÁt»nÔ-Mrq   c                 ó´   >• [        T" U R                  R                  UR                  5      U R                  R                  UR                  5      5      5      $ rk   )r@   r>  Úget_submoduleÚ
module_keyrr  s      €rn   r   r{  C  s?   ø€ Ô-=Ù "Ø$&§I¡I×$;Ñ$;¸A¿L¹LÓ$IØ$&§I¡I×$;Ñ$;¸A¿L¹LÓ$Ió!"ô.rq   ÚleftÚrightc                 ó‚  >• [        U5      [        U5      La#  [        R                  " TR                  S:g  5      $ XL a  [        R                  " T" X5      5      $ [	        U[
        R                  5      (       aP  [	        U[
        R                  5      (       a1  [        R                  " T" UR                  UR                  5      5      $ [	        U[
        R                  5      (       aV  [	        U[
        R                  5      (       a6  UR                  UR                  La  [        R                  " T" X5      5      $ g g g )Nru  )
r³   r@   re  rr   r4   r   ÚObjectVariabler¦   ÚExceptionVariableÚexc_type)r,  r  r€  rŸ   s      €rn   Ú	handle_isÚRBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.handle_isl  sô   ø€ ô ˜D“z¬¨e«Ò4Ü/×6Ò6°r·{±{ÀeÑ7KÓLÐLØ’}Ü/×6Ò6±r¸$³ÓGÐGÜ˜d¤I×$<Ñ$<×=Ñ=Ä&Øœy×7Ñ7÷Cñ Cô  0×6Ò6±r¸$¿*¹*ÀeÇkÁkÓ7RÓSÐSä˜t¤Y×%@Ñ%@×AÑAÜ" 5¬)×*EÑ*E×FÑFØ ŸM™M°·±Ò?ä/×6Ò6±r¸$³ÓGÐGð @ð Gð Brq   )r>   r@   rq  rA   r¤   rW  rU   Ú_comparison_with_symnodeÚappendrî   rr   Ú
startswithÚobjectrV   rJ   rB   rR   rQ   Ú_comparison_with_tensor)rŸ   rl  ÚresultÚop_varrs  rx  Úobj_op_noneÚnone_op_objÚtypes_that_are_never_noner…  rw  r(  r#  r&  r)  rZ   r[   r$  r'  s   `         @€€€€€€€€rn   Úcreate_cmp_op_handlersÚ?BuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlersÒ  s3  ú€ ð
Ø+ð
Ü0?ð
ÜDSð
ä ÷
ô( $Ô%5Ð6Ð8HÐIÐJð ð Ô(Ó(ô
 'Ô(8Ð9Ð;KÐLÜ"¤LÐ1Ð3CÐDð�ô
 )¨Ó,�à—‘ô -¬oÐ>Ø"×;Ñ;ðô
 -¬oÐ>Ø"×;Ñ;ðð	ôðØ/ðÜ4CðÜHWðä$÷ð —‘¤´ÐAÀ7ÐKÔLØ�ä(Ô*:Ð;Ð=MÐNÐOˆFàÐ3×:Ñ:Ó<Ô<ÀÇÁ×AWÑAWØ÷Bò Bñ !¤£¨4Ó0�ð9Ø/ð9Ü4Cð9ÜHWð9ä$÷9ð
 $�Ø#�ô #Ü#Ø$Ü$Ø'Ø,Ü%Ø%ð	-Ð)ð —‘ð 7Ô8HÐIØ'ðô
 .Ð/HÐIØ'ðð	ôô )¨Ó,�Ø—‘ð "6´Ð GØ!5´Ð Gðô Nðð !1Ø 0ðôðð 7Ð8QÐRØ,ðð
 6Ð7OÐPØ,ðô "0´Ô@PÐ QÜ!/´Ô@PÐ Qðð -ðô ,¬_Ð=Ø"×:Ñ:ðô
 -¬nÐ=Ø"×:Ñ:ðô
 -¬oÐ>Ø"×;Ñ;ðô
 -¬oÐ>Ø"×;Ñ;ðð_3ô5ðnHØ/ðHä)ðHô +ðHô % tÑ+÷	Hð, —‘¤´ÐAÀ9ÐMÔNàˆMrq   )(Ú	functionsr#  r$  Ú	nn_moduler&  rì   r'  r�   r(  Úuser_definedr)  rZ   r[   r¤   r   rC  r>   rx   rˆ  r   r	   rU   rJ   rN   rP   r@   rL   rK   r˜   r×   rW  rä   rÓ   rc  ÚtupleÚ_TrackersTypeÚ_HandlerCallbackrT   rî   r¿   )Úop_handlersrŸ   Úmagic_method_namesÚin_place_opr*  r+  Úinplace_namer1  r5  r@  rF  rI  Úlist_like_addition_handlersrY  Úlist_like_iadd_handlersrg  Úlist_like_expansion_handlersr‘  r(  r#  r&  r)  rZ   r[   r$  r'  s                     @@@@@@@@rn   Ú_binop_handlersÚBuiltinVariable._binop_handlersÐ  sá  ÿ€ ÷$ 	NÝ/Ý:Ý,÷	
ñ 	
ð -/ˆô ×$Ñ$Ó&×,Ñ,×.ñ
ØÙ-Ðà ˆK‰OØ')ˆKÑ$à7IÑ4ˆL¨ð %1Ø$0òDØ+ðDä"ðDô #ðDô
 "ðDô "ðDô !÷Dð Dð6 ‰O×"Ñ"Ø%¤Ð7Ð9MÐNôð ‰O×"Ñ"Ü!Ð#6Ð7Ð9MÐNôð %1ò@Ø+ð@ä"ð@ô #ð@ô
 "ð@ô !õ@ð Ñ$×+Ñ+Ø%¤Ð7Ð9UÐVôð Ñ$×+Ñ+Ü!Ð#6Ð7Ð9UÐVôð *,òØ+ðä"ðô #ðô
 ˜S¤#˜XÑ&ðô !õð  ‰O×"Ñ"Ü!¤?Ð3°_ÐEôð ‰O×"Ñ"Ü!¤?Ð3°_ÐEôð
 Ñ$×+Ñ+Ü!¤?Ð3°_ÐEôð Ñ$×+Ñ+Ü!¤?Ð3°_ÐE÷ñk /ðx	IØ'ð	IÜ,<ð	IÜAPð	Iäô	Ið
	HØ'ð	HÜ,<ð	HÜAPð	Häô	Hô$ œ|Ð,Ø ðô
 œ}Ð-Ø ðô
 ¤Ð-Ø ðô
 ¤Ð.Ø!ðô
 Ô 0Ð1Ø!ðô
 "¤=Ð1ñðô !Ü%Ô'7Ô9MÐNðñð	ô "Ô#3Ð4ñððW4
ð 	$ðz 	”H—L‘LÑ!×(Ñ(Ð)DÔEð
	Ø'ð
	Ü,<ð
	ÜAPð
	äô
	ô œÐ/Ø!ðô
 ¤Ð.Ø!ðô
 Ô 0Ð1Ø!ðð.
Ðð 	”H—M‘MÑ"×)Ñ)Ð*AÔBð	Ø'ð	Ü.=ð	ÜFUð	äô	ô0 Ô,Ð-Ð/?Ð@ÜÔ-Ð.Ð0@ÐAÜ¤Ð-Ð/?Ð@Ü¤Ð.Ð0@ÐAð	
ð 	%ð 	”H—L‘LÑ!×(Ñ(Ð)EÔFðr	Ü˜œc˜Ñ"ðr	ä”%œœm¬]Ð:Ñ;Ô=MÐMÑNÑO÷r	ö r	ôh +×1Ò1Ö3ˆBÜ˜B—<‘<Ð�<ØÓ(Ð(Ð(Ù4°RÓ8ˆK‹Oñ 4ð
 Ðrq   rŸ   Úa_typeÚb_typeNc                 óÞ   • [         R                  5       R                  U 5      nUc  g / nU H=  u  u  pVn[        X5      (       d  M  [        X&5      (       d  M,  UR	                  U5        M?     U$ rk   )r¤   r   ÚgetÚ
issubclassrˆ  )rŸ   r¢  r£  ÚhandlersÚmatchesÚtype1Útype2rs  s           rn   Ú_find_binop_handlerÚ#BuiltinVariable._find_binop_handler�  sd   € ô #×2Ñ2Ó4×8Ñ8¸Ó<ˆØÑØàˆÛ'/Ñ#‰NˆU˜GÜ˜&×(Ó(¬Z¸×-FÓ-FØ—‘˜wÖ'ñ (0ð ˆrq   c                 ó<   • U R                   U R                  5       ;   $ rk   )r¥   rÿ   rô   s    rn   Úcan_insert_in_graphÚ#BuiltinVariable.can_insert_in_graph›  s   € Ø�w‰w˜$×2Ñ2Ó4Ñ4Ð4rq   ri   c                 ó2   >• [         TU ]  " S0 UD6  Xl        g )Nre   )ÚsuperÚ__init__r¥   )rl   r¥   ri   r`  s      €rn   r²  ÚBuiltinVariable.__init__ž  s   ø€ Ü‰ÒÑ"˜6Ò"Ø�rq   c                 ó†   • U R                   c  SnOU R                   R                  nU R                  R                   SU S3$ )NÚNoneÚ(Ú))r¥   rr   r`  )rl   Únames     rn   Ú__repr__ÚBuiltinVariable.__repr__¢  s=   € Ø�7‰7‰?Ø‰Dà—7‘7×#Ñ#ˆDà—.‘.×)Ñ)Ð*¨!¨D¨6°Ð3Ð3rq   c                 ó   • U R                   $ rk   r7  rô   s    rn   ra  Ú"BuiltinVariable.as_python_constantª  s   € Ø�w‰wˆrq   c                 óØ   >• [         [        R                   [        [        R                  [        [        R
                  0nU R                  U;   a  XR                     $ [        TU ]!  5       $ rk   )	r¾   r�   rÅ   Úint64rÃ   Úfloat64r¥   r±  Úas_proxy)rl   ÚDTYPEr`  s     €rn   rÀ  ÚBuiltinVariable.as_proxy­  sM   ø€ ä”%—*‘*Ü”—‘Ü”5—=‘=ð
ˆð
 �7‰7�eÓØŸ™‘>Ð!Ü‰wÑÓ!Ð!rq   c                 óæ   • U R                   R                  nU R                   R                  S:X  d   eX!R                  R                  ;  d   S5       eUR                  UR                  USS95        g )NÚbuiltinszshadowed globalT)r×   )r¥   rr   rs   r,  Ú	f_globalsÚappend_outputÚcreate_load_global)rl   Úcodegenr¸  s      rn   ÚreconstructÚBuiltinVariable.reconstruct·  sc   € Ø�w‰w×ÑˆØ�w‰w×!Ñ! ZÓ/Ð/Ð/ØŸ:™:×/Ñ/Ó/ÐBÐ1BÓBÐ/Ø×Ñ˜g×8Ñ8¸À4Ð8ÐHÕIrq   rh   c                 ó   • [        X5      $ rk   )r(   ©rl   rh   ri   s      rn   Úconstant_argsÚBuiltinVariable.constant_args½  s   € Ü" 4Ó0Ð0rq   c                 ó�   • SnU H=  n[        U[        R                  5      (       a    gU=(       d    UR                  5       nM?     U$ ©NF)r²   r   ÚGetAttrVariableÚ	is_tensor)rl   rh   Ú
any_tensorÚargs       rn   Útensor_argsÚBuiltinVariable.tensor_argsÀ  s?   € Øˆ
ÛˆCÜ˜#œy×8Ñ8×9Ñ9ÙØ#×6 s§}¡}£ŠJñ ð Ðrq   Ú	arg_typesc                 ó¤   • SnU HG  n[        U[        R                  5      (       a    gU=(       d    [        U[        R                  5      nMI     U$ rÐ  )r¦  r   rÑ  rV   )rl   r×  rÓ  Úarg_types       rn   Útensor_args_typeÚ BuiltinVariable.tensor_args_typeÈ  sF   € Øˆ
Û!ˆHÜ˜(¤I×$=Ñ$=×>Ñ>ÙØ#×U¤z°(¼I×<TÑ<TÓ'UŠJñ "ð Ðrq   c                 ó"  • / n/ n[         R                  " XR                  5       5       H<  nUR                  5       (       a  UR	                  U5        M+  UR	                  U5        M>     [        S U 5       5      =(       a    U R                  " U6 $ )Nc              3   ój   #   • U  H)  nUR                   b  [        UR                   5      OSv •  M+     g 7frÐ  )r§   r%   )r·   Úts     rn   r¹   ÚBBuiltinVariable.python_and_tensor_constant_only.<locals>.<genexpr>Ú  s/   é € ð 
â �ð -.¯H©HÑ,@Ô˜qŸx™xÔ(ÀeÔKÚ ùs   ‚13)Ú	itertoolsÚchainrî   rÒ  rˆ  r¼   rÍ  )rl   rh   ri   rÕ  Únon_tensor_argsÚis         rn   Úpython_and_tensor_constant_onlyÚ/BuiltinVariable.python_and_tensor_constant_onlyÐ  s   € ð ˆØˆÜ—’ §}¡}£Ö7ˆAØ�{‰{�}‰}Ø×"Ñ" 1Ö%à×&Ñ& qÖ)ñ	 8ô
 ñ 
á ó
ó 
÷ 3ð × Ò  /Ð2ð	3rq   c                 ó¾   • U  Vs/ s H  o"R                  5       PM     snUR                  5        VVs0 s H  u  p4X4R                  5       _M     snn4$ s  snf s  snnf rk   )ra  rC  )rh   ri   r¸   ÚkÚvs        rn   Úunwrap_unspec_args_kwargsÚ)BuiltinVariable.unwrap_unspec_args_kwargsß  sZ   € ñ 15Ó5²¨1×$Ñ$Ö&±Ñ5Ø28·,±,´.ô8
Ú2@©$¨!ˆA×#Ñ#Ó%Ò%±.ò8
ð 
ð 	
ùÒ5ùó 8
s
   …A³Ac                 óF   • U R                  5       =(       a    [        X5      $ rk   )rõ   r*   rÌ  s      rn   Úhas_constant_handlerÚ$BuiltinVariable.has_constant_handlerç  s%   € ð ×-Ñ-Ó/÷ 
Ô4QØó5
ð 	
rq   Ú
has_kwargsr]   c           	      ó  ^ ^^^^	^
^^^^^• SSK Jm  [        T 5      m/ m[        U4S jT 5       5      (       a  U4S j$ [        R
                  " T 5      (       aR  [        T [        5      (       d	  T [        L a4  SSS[        [        S4   S	[        [        [        4   S
[        4U 4S jjnU$ TR                  5       (       ay  T [        R                  L a"  [        TS   [         R"                  5      (       aD  TR%                  T5      (       a  TR&                  $ T(       a  TR)                  TR&                  5        [+        T5      S:X  a|  T(       du  [        R,                  " T /TQ76 m
T
(       d  OV[+        T
5      S:X  a  T
u  m	TR)                  U	4S j5        O-SSS[.        S[.        S
[.        4U
4S jjnTR)                  U5        [1        TST R2                   3S 5      mT(       aF  SSS[4        [           S	[        [        [        4   S
[        S -  4U UU4S jjnTR)                  U5        TR7                  5       (       a–  [9        S T 5       5      (       a;  T(       d4  SSS[4        [           S	[        [        [        4   S
[        S -  4U 4S jjnO3SSS[4        [           S	[        [        [        4   S
[        S -  4U 4S jjnTR)                  U5        S[4        [           S
S 4UU U4S jjm[+        T5      S:X  a  U4S j$ [+        T5      S:X  a:  Tu  mSSS[4        [           S	[        [        [        4   S
[        S -  4UU4S jjnU$ SSS[4        [           S	[        [        [        4   S
[        S -  4UU4S jjnU$ )Nr;   )ÚLazyVariableTrackerc              3   ó<   >#   • U  H  n[        UT5      v •  M     g 7frk   )r¦  )r·   rÞ  rð  s     €rn   r¹   Ú0BuiltinVariable._make_handler.<locals>.<genexpr>þ  s   øé € ÐEº9°aŒz˜!Ð0×1Ð1º9ùs   ƒc                 ón   >• TR                  X Vs/ s H  o3R                  5       PM     snU5      $ s  snf rk   )r<  Úrealize)r,  rh   ri   rè  Úobjs       €rn   r   Ú/BuiltinVariable._make_handler.<locals>.<lambda>ÿ  s-   ø€ ¨C×,=Ñ,=Ø¨$Ó/ª$ Q—Y‘Y–[©$Ñ/°ô-ùÚ/s   ‘2
r,  r]   rh   .ri   r`   c                 ó¼   >• T[         L a<  [        S U 5       5      (       d%  [        S[        U5      S/ [        R
                  QS9  [        R                  " TX5      $ )Nc              3   óŒ   #   • U  H:  nUR                  5       =(       a    [        UR                  5       [        5      v •  M<     g 7frk   )r_  r²   ra  rx   r¶   s     rn   r¹   ÚWBuiltinVariable._make_handler.<locals>.create_exception_class_object.<locals>.<genexpr>  s9   é € ð 4â!˜ð ×(Ñ(Ó*×V¬z¸!×:NÑ:NÓ:PÔRUÓ/VÔVÚ!ùs   ‚AAzassert with non-string messagez1Dynamo only supports asserts with string messages©Úgb_typeÚcontextÚexplanationÚhints)ÚAssertionErrorr¼   r   rx   r   ÚSUPPORTABLEr   rƒ  )r,  rh   ri   r¥   s      €rn   Úcreate_exception_class_objectÚDBuiltinVariable._make_handler.<locals>.create_exception_class_object  sa   ø€ ð
 œÒ'´ñ 4á!ó4÷ 1ñ 1ô "Ø @Ü # D£	Ø$WØ>Ô 1× =Ñ =Ð>ò	ô !×2Ò2°2°tÓDÐDrq   r   r   c                 ó   >• T" U /UQ76 $ rk   re   )r,  rh   Ú_Úbinop_handlers      €rn   r   rö  2  s   ø€ ±MÀ"Ð4LÀtÓ4Lrq   r  c                 ó@   >• T H  nU" U /UQ76 nU(       d  M  Us  $    g rk   re   )r,  rh   r  r¥   ÚrvÚbinop_handlerss        €rn   Úcall_binop_handlersÚ:BuiltinVariable._make_handler.<locals>.call_binop_handlers5  s+   ø€ ó -˜Ù ˜] Tš]˜ß˜2Ø#%šIñ -ð  rq   Úcall_c                 óú  >•  T" U /UQ70 UD6$ ! [          a¦     [        R                  " T5      R                  " U /UQ70 UD6  e ! [          al  nTR	                  X5      nU(       dI  [
        R                  STU5        [        SST SU SU 3STR                   3/ [        R                  QS9   S nA g S nAff = f[         a3  nTR	                  X5      nU(       d  e UR                  5          S nAg S nAff = f)Nz1incorrect arg count %s %s and no constant handlerz"invalid call to builtin op handlerzinvalid args to z: Ú z/Encountered TypeError when trying to handle op rú  )rk  ÚinspectÚ	signatureÚbindrì  ÚlogÚwarningr   rr   r   Ú	DIFFICULTr   Úremove_from_stats)	r,  rh   ri   Úerì  rf  r¥   rõ  Úself_handlers	         €€€rn   Úcall_self_handlerÚ8BuiltinVariable._make_handler.<locals>.call_self_handlerD  s  ø€ ð
,á'¨Ð<¨TÒ<°VÑ<Ð<øÜ ó ðä×)Ò)¨,Ó7×<Ò<¸RÐQÀ$ÒQÈ&ÒQð  øô %ó Ø/2×/GÑ/GÈÓ/UÐ,Þ3ÜŸK™KØ SØ ,Ø !ôô
 *Ø(LØ*:¸<¸.ÈÈ4È&ÐPQÐRXÐQYÐ(ZØ.]Ð^`×^iÑ^iÐ]jÐ,kØ&DÔ(9×(CÑ(CÐ&Dò	üð ûð-úô  #ó ,Ø+.×+CÑ+CÀDÓ+QÐ(Þ/Øà×)Ñ)×+Ð+Øûð,ús?   ƒ �
C:š*AÁC:Á
B;ÁA!B6Â0C:Â6B;Â;C:Ã)C5Ã5C:c              3   óB   #   • U  H  n[        U[        5      v •  M     g 7frk   )r¦  r@   r¶   s     rn   r¹   rò  n  s   é € ÐGºY¸”J˜qÔ"2×3Ð3ºYùó   ‚c                 óš  >•  T" U Vs/ s H  o3R                  5       PM     sn6 n[        R                  " U W5      $ s  snf ! [         aI  n[        [        U5      U [	        [        [        R                  UR                  5      5      S9   S nANjS nAf[         a-  n[        SST SU 3S/ [        R                  QUS9   S nANŸS nAff = f)Nr^  úconstant fold exceptionúattempted to run function ú with arguments ú7Encountered exception when attempting to constant fold.©rû  rü  rý  rþ  Úfrom_exc)ra  Ú	Exceptionr   r³   rc  rd  r@   re  rh   r<   r   r   Ú
DYNAMO_BUGr>   rp  )r,  rh   ri   r¸   Úresrf  r¥   s         €rn   Úconstant_fold_handlerÚ<BuiltinVariable._make_handler.<locals>.constant_fold_handlerr  sÀ   ø€ ðÙ Ù>BÓCºd¸×2Ñ2Ö4¹dÑCð˜ô$ +×0Ò0°°SÓ9Ð9ùò# Døä$ó Ü0Ü  ›IØÜ!%¤cÔ*:×*AÑ*AÀ3Ç8Á8Ó&LÓ!M÷ûô
 ?ó Ü%Ø$=Ø&@ÀÀÐDTÐUYÐTZÐ$[Ø(aØ"AÔ$5×$@Ñ$@Ð"AØ%(÷ûðús1   ƒA ‰=¢A ½A Á
C
Á?BÂC
Â#CÃC
c                 ó0  >• [        X5      (       ao   T" U Vs/ s H  o3R                  5       PM     sn0 UR                  5        VVs0 s H  u  pEXER                  5       _M     snnD6n[        R                   " U W5      $ g s  snf s  snnf ! [         a-  n[	        SST SU 3S/ [
        R                  QUS9   S nANUS nAf[         aI  n[        [        U5      U [        [        [        R                  UR                  5      5      S9   S nAN¦S nAff = f)Nr  r  r  r  r   r^  )r*   ra  rC  r<   r   r   r#  r"  r   r³   rc  rd  r@   re  rh   r>   rp  )	r,  rh   ri   r¸   rç  rè  r$  rf  r¥   s	           €rn   r%  r&  �  s  ø€ ô 5°T×BÑBðÙ"$ÙBFÓ!GÂ$¸Q×"6Ñ"6Ö"8Á$Ñ!Gð#ð KQÏ,É,Ì.ô#"ÚJXÁ$À! A×';Ñ';Ó'=Ò$=É.ò#"ñ#˜Cô*  /×4Ò4°R¸Ó=Ð=Øùò+ "Hùó#"øô  Có Ü)Ø(AØ*DÀRÀDÐHXÐY]ÐX^Ð(_Ø,eØ&EÔ(9×(DÑ(DÐ&EØ),÷ûô  )ó Ü4Ü $ S£	Ø "Ü%)¬#Ô.>×.EÑ.EÀsÇxÁxÓ*PÓ%Q÷ûðús?   “B ™B²B ÁBÁ$B ÂB Â
DÂ#B?Â?DÃ?DÄDc                 óö   >• U  Vs/ s H  oR                  5       PM     nn[        SSTR                   ST ST 3STR                   SU ST S3STR                   SU S	TR                   S
3SS/S9  g s  snf )Nz Failed to trace builtin operatorzbuiltin r  z4Dynamo does not know how to trace builtin operator `z` with argument types z (has_kwargs r·  zAvoid calling builtin `z?. Consider using an equivalent alternative function/method to `z`.z�If you are attempting to call a logging function (e.g. `print`), you can try adding it to `torch._dynamo.config.reorderable_logging_functions`.z"Please report an issue to PyTorch.rú  )Úpython_type_namer   rr   )rh   rÔ  Úreal_arg_typesr×  r¥   rî  s      €€€rn   Úcall_unimplementedÚ9BuiltinVariable._make_handler.<locals>.call_unimplemented±  s²   ø€ Ù@DÓEÂ¸×2Ñ2Ö4ÁˆNÐEÜØ:Ø" 2§;¡; -¨q°°¸1¸Z¸LÐIØRÐSU×S^ÑS^ÐR_ð `'Ø'5Ð&6°mÀJÀ<ÈqðRð .¨b¯k©k¨]Ð:PÐQ_ÐP`ð aTØTV×T_ÑT_ÐS`Ð`bðdðeà8ðóùò Fs   †A6c                 ó   >• T" U5      $ rk   re   )r,  rh   ri   r+  s      €rn   r   rö  Â  s   ø€ Ñ,>¸tÔ,Drq   c                 ó<   >• T" XU5      nU(       a  U$ T" U5        U$ rk   re   )r,  rh   ri   r  r+  rs  s       €€rn   Úbuiltin_dispatchÚ7BuiltinVariable._make_handler.<locals>.builtin_dispatchÆ  s&   ø€ ñ
 ˜R vÓ.�ÞØ�IÙ" 4Ô(Ø�	rq   c                 óV   >• S nT H  nU" XU5      nU(       d  M  Us  $    T" U5        U$ rk   re   )r,  rh   ri   r  r¥   r+  r§  s        €€rn   r/  r0  Ó  s9   ø€ ð
 �Û"�BÙ˜B fÓ-�Bß�rØ!š	ñ #ñ # 4Ô(Ø�	rq   )Úlazyrð  r¤   r½   r  Úisclassr¦  ÚBaseExceptionÚGeneratorExitr–  r>   rw   rx   r®  r˜   r›   r   rV   rÚ  Ú_handle_insert_op_in_graphrˆ  r�   r«  r	   rÄ   rr   r   rõ   r¼   )r¥   r×  rî  r  r	  r  r%  r/  rð  r  r  r+  rs  r§  rõ  r  s   ```     @@@@@@@@rn   Ú_make_handlerÚBuiltinVariable._make_handlerî  s„  ÿú€ õ 	.ä˜bÓ!ˆØ+-ˆäÔE¹9ÓE×EÑEôð ô �?Š?˜2×ÑÜ�rœ=×)Ñ)ð ”]Ò"ðEØ+ðEäœO¨SÐ0Ñ1ðEô œS¤/Ð1Ñ2ðEô !÷	Eð$ 1Ð0à×"Ñ"×$Ñ$Ø”(×"Ñ"Ò"Ü˜y¨™|¬Y×-EÑ-E×FÑFà×#Ñ# I×.Ñ.Ø×5Ñ5Ð5Þà—‘ × >Ñ >Ô?ô ˆy‹>˜QÓ¦zä,×@Ò@ÀÐPÀiÒPˆNÞ!ØÜ�^Ó$¨Ó)Ø#1Ñ �Ø—‘Ô LÕMð Ø/ð Ü7:ð Ü?Bð ä÷ ð —‘Ð 3Ô4ä˜s e¨B¯K©K¨=Ð$9¸4Ó@ˆÞð$Ø+ð$äœÑ/ð$ô œS¤/Ð1Ñ2ð$ô ! 4Ñ'÷	$ñ $ðL �O‰OÐ-Ô.à×(Ñ(×*Ñ*äÑG¹YÓG×GÑGÞ"ð:Ø/ð:ä"¤?Ñ3ð:ô !¤¤oÐ!5Ñ6ð:ô % tÑ+÷	:ð :ð: Ø/ð ä"¤?Ñ3ð ô !¤¤oÐ!5Ñ6ð ô % tÑ+÷	 ð@ �O‰OÐ1Ô2ð	¤X¬oÑ%>ð 	À4÷ 	ñ 	ô  ˆx‹=˜AÓÜDÐDÜ�‹]˜aÓØ!‰JˆWð	Ø+ð	äœÑ/ð	ô œS¤/Ð1Ñ2ð	ô ! 4Ñ'÷		ð 	ð4  ÐðØ+ðäœÑ/ðô œS¤/Ð1Ñ2ðô ! 4Ñ'÷	ð ð  Ðrq   r,  c                 ó  • [        U5      S:X  a0  [        SSU  SU 3SU R                   S3/ [        R                  QS9  [        U5      S:X  d   e US   R                  US	5      $ ! [         a    [        [        U5         g f = f)
Nr   z1unimplemented builtin op vars() with no argumentszvars: r  ú3Dynamo does not know how to trace builtin operator z with no argumentsrú  r;   rï   )	r�   r   r¥   r   r   Úvar_getattrr   r   rk  ©rl   r,  rh   s      rn   Ú	call_varsÚBuiltinVariable.call_varsâ  s“   € Üˆt‹9˜‹>ÜØKØ    a¨ vÐ.ØQÐRV×RYÑRYÐQZÐZlÐmØ6Ô)×5Ñ5Ð6ò	ô �4‹y˜A‹~Ðˆ~ð	4Ø˜‘7×&Ñ& r¨:Ó6Ð6øÜ%ó 	4Ü$¤Y°Ö3ð	4ús   ÁA' Á'BÂBc           
      óœ  • SSK JnJn  U(       a(  U R                  " / UQUR	                  5       Q76 (       d  g SSK Jn  SSKJnJn  U" XU5      (       aº  UR                  (       dƒ  [        5         US   R                  5       (       dM  U R                  [        ;   a  [        U R                     n	O[        U R                     n	US   n
US   US'   X¢S'   O [        U R                     n	OU R                  n	UR                  X5      nU" XX#5      $ U R                  n U R                   " U0 UD6(       a&  SSKJn  SSKJn  U" XU" UR*                  5      X#5      $ U[,        ;   a5  [/        US   [0        R2                  5      (       a  [,        U   nUS   US   /nU[4        R6                  L aP  [/        US   [8        5      (       a8  [:        R<                  nUS   [0        R2                  R                  S5      US   /n[?        X#5      (       a^  [A        S	 U 5       5      (       dG  URB                  RD                  " S
[G        U5      /[I        X#5      Q76 nU" [0        RJ                  X5      $ U[4        RL                  L aJ  [O        U5      S:X  a;  US   R                  5       (       a#  US   RQ                  US[S        USS  5      U5      $ URB                  RD                  " S
U/[I        X#5      Q76 n[A        S U 5       5      (       a  U" [T        UU5      $ [W        X#5      (       a^  U RY                  X#5      u  nnU" U0 UD6n[A        S [Z        R\                  " X#R	                  5       5       5       5      nU" [^        UUUUS9$ [a        S U 5       5      (       a  [8        R                  " XS 5      $ U[4        Rb                  L aC  [/        US   [0        R^                  5      (       a!  [S        U5      nUS   Re                  5       US'   U" X5      $ ! [f         a6    [i        SSU  SU SU 3SU R                   S3/ [j        Rl                  QS9   g f = f)Nr;   )r;  Úwrap_fx_proxy_cls©ÚSourcelessBuilder)Úcan_dispatch_torch_functionÚdispatch_torch_functionr   r   )Ú	unique_id)Úinvoke_and_store_as_constantc              3   óD   #   • U  H  n[        U5      [        L v •  M     g 7frk   )r³   rV   ©r·   rÔ  s     rn   r¹   Ú=BuiltinVariable._handle_insert_op_in_graph.<locals>.<genexpr>A  s   é € ð BÚ7;°”�S“	œ^Õ+²tùs   ‚ r<  Ú__eq__c              3   óB   #   • U  H  n[        U[        5      v •  M     g 7frk   ©r²   rS   rH  s     rn   r¹   rI  V  s   é € ÐEÂ¸”:˜cÔ#3×4Ð4Âùr  c              3   ó|   #   • U  H2  n[        U[        R                  5      (       d  M$  UR                  v •  M4     g 7frk   ©r²   r   rW   Úneed_unwrapr¶   s     rn   r¹   rI  `  s-   é € ð "âC˜Ü! !¤Y×%JÑ%J×Kó "�A—M–MÚCùó   ‚#<©<)Ú	raw_valuerO  c              3   óB   #   • U  H  n[        U[        5      v •  M     g 7frk   ©r²   rU   r¶   s     rn   r¹   rI  m  s   é € ÐBºT¸”Z ¤?×3Ð3ºTùr  z,unimplemented builtin op on tensor argumentszpartial tensor op: r  r:  z with tensor argumentsrú  )7r=  r;  r@  rÕ  rî   rB  Útorch_functionrC  rD  Úexportr¢   rÒ  r¥   r_   r^   re  rä  Úbytecode_transformationrE  r“  rF  rr   ÚIN_PLACE_DESUGARING_MAPr²   r   r@   r˜   r›   rU   r�   Úselectr)   r½   r>  r?  r5   r6   ÚNumpyNdarrayVariablerý   r�   r0  rc  rS   r+   ré  rà  rá  rW   r¼   rÕ   ra  ÚNotImplementedErrorr   r   r   )rl   r,  rh   ri   r;  r@  rB  rC  rD  rf   ÚtmpÚfn_varr¥   rE  rF  ÚproxyÚ_argsÚ_kwargsrQ  rO  s                       rn   r6  Ú*BuiltinVariable._handle_insert_op_in_graphñ  s  € ÷ 	>æ˜$×*Ò*ÐC¨DÐC°6·=±=³?×CÐCØõ 	/ßXñ ' r°×8Ñ8ð —9—9ä1Ô3à˜A‘w×(Ñ(×*Ñ*Ø—w‘wÔ";Ó;Ü8¸¿¹ÑA™ä7¸¿¹Ñ@˜à˜q™'�Cà" 1™g�D˜‘GØ!˜’Gä3°D·G±GÑ<‘Dà—w‘w�à&×-Ñ-¨bÓ7ˆFá*¨2°tÓDÐDà�W‰Wˆðc	à×3Ò3°TÐD¸V×DÝ?ÝCá3Ø™I b§k¡kÓ2°Dóð ð Ô,Ó,´Ø�Q‘œ×3Ñ3÷2ñ 2ô -¨RÑ0�Ø˜Q™  a¡Ð)�à”X×%Ñ%Ò%¬*°T¸!±W¼o×*NÑ*Nô —\‘\�à˜‘GÜ×.Ñ.×5Ñ5°aÓ8Ø˜‘Gð�ô (¨×5Ñ5¼cñ BÙ7;óB÷ ?ñ ?ð Ÿ	™	×.Ò.Ø#Ü*¨2Ó.ðô ' tÓ4ò�ñ )¬×)GÑ)GÈÓSÐSà”X—[‘[Ò ¤S¨£Y°!£^¸¸Q¹×8IÑ8I×8KÑ8Kð ˜A‘w×*Ñ*¨2¨x¼¸dÀ1À2¸h»ÈÓPÐPØ—I‘I×*Ò*ØØðô # 4Ó0òˆEô
 ÑEÁÓE×EÑEÙ(Ü$ØØóð ô
 *¨$×7Ñ7Ø!%×!?Ñ!?ÀÓ!M‘��wÙ Ð1¨Ñ1�	ä!ñ "ä&Ÿ_š_¨T·=±=³?ÔCó"ó �ñ )Ü/ØØØ'Ø +ñð ô ÑB¹TÓB×BÑBÜ&×-Ò-¨b¸Ó>Ð>ð œ×)Ñ)Ò)¬jØ˜‘GœY×BÑB÷/ñ /ô   ›:�DØ" 1™g×8Ñ8Ó:�D˜‘GÙ$ RÓ/Ð/øä"ó 	ÜØFØ-¨d¨V°1°T°F¸!¸F¸8ÐDØQÐRV×RYÑRYÐQZÐZpÐqØ6Ô)×5Ñ5Ð6ô	ð	ús;   Ä<P ÅDP É(AP ËAP ÌA-P Í?-P Î-AP Ð=QÑ
QÚcall_function_handler_cachec           	      óê  • U(       aL  UR                  5        VVs0 s H  u  pEXER                  5       _M     nnnU R                  /S U 5       QSP7nOU R                  /S U 5       Q7nU R                  R	                  U5      nU(       dO  U R                  U R                  U Vs/ s H  n[        U5      PM     sn[        U5      5      =U R                  U'   nUc   eU" XU5      $ s  snnf s  snf )Nc              3   ó8   #   • U  H  n[        U5      v •  M     g 7frk   ©r³   r¶   s     rn   r¹   Ú0BuiltinVariable.call_function.<locals>.<genexpr>–  ó   é € Ð4ªt¨!œd 1Ÿg˜gªtùó   ‚Tc              3   ó8   #   • U  H  n[        U5      v •  M     g 7frk   rd  r¶   s     rn   r¹   re  ˜  rf  rg  )rC  rô  r¥   ra  r¥  r7  r³   r¾   )	rl   r,  rh   ri   rç  rè  Úkeyrs  r¸   s	            rn   r<  ÚBuiltinVariable.call_function�  sá   € ö Ø17·±´Ô@²©¨�aŸ™›’n±ˆFÑ@Ø—7‘7Ð;Ñ4©tÓ4Ð;°dÑ;‰Cà—7‘7Ð5Ñ4©tÓ4Ñ5ˆCà×2Ñ2×6Ñ6°sÓ;ˆÞØ>B×>PÑ>PØ—‘©4Ó0ª4 aœ$˜qž'©4Ñ0´$°v³,ó?ð ˆD×,Ñ,¨SÑ1°Gð Ñ"Ð"Ð"Ù�r Ó(Ð(ùó Aùò 1s   ›C*Â'C0
r¸  c                 ó°  >• U R                   [        L a£  US:X  a�  [        U5      S:X  d   e[        U5      S:X  d   eUu  pVnUR                  5       n[	        U[
        5      (       aQ  UR                  R                  R                  U5      (       a'  UR                  5       (       a  UR                  XU5      $ US:X  GaL  U R                   [        L aL  [        U5      S:X  a=  [        U5      S:X  d   eUR                  R                  R                  XS   USS  5      $ U R                   [        L aŠ  [        U5      S:X  a{  U(       dt  [        0 [        [        5       S9n[	        US   [        5      (       a  US   R                   [        L a  U$ UR                  R                  R                  U US   USS  5      $ U R                   [         L a»  [        U5      S:X  a¬  US   R#                  U5      (       a“  U(       dŒ  [	        US   [        5      (       aG  US   R                   [         L a1  US   R%                  U5      n	[&        R(                  " U	[        5       S9$ UR                  R                  R                  U US   USS  5      $ U R                   [*        L ao  [-        / [        5       S9n
[	        US   [        5      (       a  US   R                   [*        L a  U
$ UR                  R                  R                  U US   USS  5      $ U R                   [.        [0        4;   a©  [        U5      S:X  aš  U R                   [.        L a  US;   d  US	:X  a{  [2        R4                  S
:¼  ag  US   R                  5       (       aO   [7        U R                   U5      nU" US   R9                  5       5      n[&        R:                  R=                  U5      $ U R                   [        L a  US:X  a  [&        RJ                  $ U R                   [        L a%  US:X  a  [        RL                  " U[        /UQ70 UD6$ U R                   [        L a   [7        U R                   U5      nU[N        ;   a€  [	        US   [&        RP                  5      (       a#  US   RR                  RU                  XUSS  U5      $ [	        US   [&        R                  5      (       a  US   RU                  XUSS  U5      $ U R                   [V        L a   [7        U R                   U5      nU[X        ;   a€  [	        US   [&        RZ                  5      (       a#  US   R\                  RU                  XUSS  U5      $ [	        US   [&        R^                  5      (       a  US   RU                  XUSS  U5      $ U R                   [`        L a[  [7        U R                   U5      nU[b        ;   a;  [	        US   [&        Rd                  5      (       a  US   RU                  XUSS  U5      $ U R                   [f        L a`  [        U5      S:¼  aQ  [7        U R                   U5      nU[h        ;   a1  [	        US   [:        5      (       a  US   RU                  XUSS  U5      $ U R                   [.        L ab  [        U5      S:¼  aS  [	        US   [:        5      (       a;  [:        R<                  " [7        [.        U5      " US   R9                  5       5      5      $ [j        TU ]©  XX45      $ ! [>        [@        4 aJ  n[C        [E        U5      U[+        [G        [:        R<                  URH                  5      5      S9   S nAGN‚S nAff = f)NÚ__setattr__é   r   Ú__new__r;   rO  r   )ÚfromhexÚhexÚfrom_number©rm  é   r^  r²  Úfromkeys)6r¥   rŠ  r�   rô  r²   rZ   r>  rU  Úis_attribute_mutationr_  Úmethod_setattr_standardÚtrack_new_user_defined_objectrw   rB   r=   r¤   r–  Úhas_force_unpack_var_sequenceÚforce_unpack_var_sequencer   rP   rc  rL   rÃ   rÁ   ÚsysÚversion_inforÄ   ra  r@   re  ÚOverflowErrorÚ
ValueErrorr   r³   rd  rh   r?   Úcall_custom_dict_fromkeysr-   rY   Ú_dict_vtr0  Úsetr8   ÚUserDefinedSetVariableÚ_set_vtrI   Ú	frozensetr/   rF   rx   r9   r±  )rl   r,  r¸  rh   ri   rõ  Úname_varÚvalÚdict_vtÚ	init_argsÚlist_vtr¥   r$  r  Úresolved_fnr`  s                  €rn   r0  ÚBuiltinVariable.call_method¢  s"  ø€ ð �7‰7”fÒ ¨Ó!6Ü�t“9 “>Ð!�>Ü�v“; !Ó#Ð#Ð#Ø!%ÑˆC˜3Ø—+‘+“-ˆCä˜3Ô 9×:Ñ:Ø—I‘I×*Ñ*×@Ñ@À×EÑEØ×/Ñ/×1Ñ1à×2Ñ2°2ÀÓEÐEà�9Ôà�w‰wœ&Ò ¤S¨£Y°!£^Ü˜6“{ aÓ'Ð'Ð'Ø—y‘y×-Ñ-×KÑKØ˜q™' 4¨¨ 8óð ð �w‰wœ$Š¤3 t£9°£>¾&Ü+¨B´ÔDTÓDVÑW�Ü˜d 1™g¤×7Ñ7¸DÀ¹G¿J¹JÌ$Ò<NØ"�Nð —y‘y×-Ñ-×KÑKØØ˜‘GØ˜˜�Hóð ð —‘œ5Ò Ü˜“I “NØ˜‘G×9Ñ9¸"×=Ñ=Þä˜d 1™g¤×7Ñ7¸DÀ¹G¿J¹JÌ%Ò<OØ $ Q¡× AÑ AÀ"Ó E�IÜ$×2Ò2Ø!Ô1AÓ1Cñð ð —y‘y×-Ñ-×KÑKØØ˜‘GØ˜˜�Hóð ð �w‰wœ$ŠÜ& rÔ9IÓ9KÑL�Ü˜d 1™g¤×7Ñ7¸DÀ¹G¿J¹JÌ$Ò<NØ"�NØ—y‘y×-Ñ-×KÑKØØ˜‘GØ˜˜�Hóð ð �G‰GœœwÐ'Ó'Ü�D“	˜Q“à—‘œEÒ! dÐ.@Ó&@Ø˜MÓ)¬c×.>Ñ.>À'Ó.Ið �A‰w×)Ñ)×+Ñ+ð	Ü  §¡¨$Ó/�BÙ˜T !™W×7Ñ7Ó9Ó:�CÜ$×5Ñ5×<Ñ<¸SÓAÐAð �7‰7”fÒ ¨Ó!3ä×3Ñ3Ð3à�7‰7”dŠ?˜t zÓ1Ü"×<Ò<¸RÄÐWÈÒWÐPVÑWÐWà�7‰7”dŠ?Ü! $§'¡'¨4Ó0ˆKØœlÓ*Ü˜d 1™g¤y×'HÑ'H×IÑIØ ™7×+Ñ+×7Ñ7¸À$ÀqÀrÀ(ÈFÓSÐSÜ  Q¡¬×)DÑ)D×EÑEØ ™7×.Ñ.¨r¸¸a¸b¸À6ÓJÐJà�7‰7”cŠ>Ü! $§'¡'¨4Ó0ˆKØœkÓ)Ü˜d 1™g¤y×'GÑ'G×HÑHØ ™7Ÿ?™?×6Ñ6°rÀÀaÀbÀÈ6ÓRÐRÜ  Q¡¬×)>Ñ)>×?Ñ?Ø ™7×.Ñ.¨r¸¸a¸b¸À6ÓJÐJà�7‰7”iÒÜ! $§'¡'¨4Ó0ˆKØÔ/Ó/Ü˜d 1™g¤y×'BÑ'B×CÑCØ ™7×.Ñ.¨r¸¸a¸b¸À6ÓJÐJà�7‰7”cŠ>œc $›i¨1›nÜ! $§'¡'¨4Ó0ˆKØœkÓ)ä˜d 1™gÔ'7×8Ñ8Ø ™7×.Ñ.¨r¸¸a¸b¸À6ÓJÐJà�7‰7”eÒ¤ D£	¨Q£ä˜$˜q™'Ô#3×4Ñ4Ü'×.Ò.ÜœE 4Ô(¨¨a©×)CÑ)CÓ)EÓFóð ô ‰wÑ" 2¨TÓ:Ð:øôe &¤zÐ2ó Ü,Ü˜Q›ØÜ!¤#Ô&6×&=Ñ&=¸q¿v¹vÓ"FÓG÷ð ûðús   Î A[; Û;]Ü?]Ý]rÔ  c           	      ó^  • UR                  5       (       d  [        U[        5      (       aƒ  UR                  5       (       a  UR                  US/ 0 5      nOUnU R                  [
        L a  [        O[        nSSKJ	n  U" UUR                  R                  SUUR                  5       40 5      S9$ g )NÚitemr   r:  r<  ©r,  r]  )rÒ  r²   rU   r0  r¥   rÅ   r   r   Útorch._dynamo.variables.builderr;  r>  r?  rÀ  )rl   r,  rÔ  rŒ  Úfn_r;  s         rn   Ú_call_int_floatÚBuiltinVariable._call_int_float'  s�   € ð
 �=‰=�?‰?œj¨¬o×>Ñ>Ø�}‰}�‰Ø—‘ r¨6°2°rÓ:‘à�Ø!ŸW™W¬š^•'´ˆCÝEá ØØ—i‘i×,Ñ,Ø#ØØ—]‘]“_Ð&Øó	ñð ð rq   c                 ó
  • UR                  5       (       aÌ  UR                  US/ 0 5      n[        U[        5      (       a+  [        UR                  [
        R                  5      (       a  U$ [        U[        R                  5      (       a2  [        R                  R                  [        UR                  5      5      $ [        R                  " XR                  5       S:g  5      $ [        U[        5      (       a�  [        UR                  [
        R                  5      (       a  U$ [        UR                  [
        R                  [
        R                  45      (       d   e[        R                  " XR                  5       S:g  5      $ g )NrŒ  r   )rÒ  r0  r²   rU   Úsym_numr�   ÚSymBoolr   r@   re  r¾   r¦   rÀ  r4   ÚSymIntÚSymFloat)rl   r,  rÔ  rŒ  s       rn   Ú	call_boolÚBuiltinVariable.call_boolB  s  € ð �=‰=�?‰?Ø—?‘? 2 v¨r°2Ó6ˆDÜ˜$¤×0Ñ0´ZØ—‘œeŸm™m÷6ñ 6ð �Ü˜$¤	× :Ñ :×;Ñ;Ü ×1Ñ1×8Ñ8¼¸d¿j¹jÓ9IÓJÐJÜ"×)Ò)¨"¯m©m«oÀÑ.BÓCÐCô �cœ?×+Ñ+ô ˜#Ÿ+™+¤u§}¡}×5Ñ5Ø�
ô
 ˜#Ÿ+™+¬¯©´e·n±nÐ'E×FÑFÐFÐFÜ"×)Ò)¨"¯l©l«nÀÑ.AÓBÐBð rq   c                 ó¢  • [        U[        R                  5      (       aØ  UR                  R                  n[        UR                  5      R                  [        R                  L a)  [        R                  " X5      nUR                  U/ 0 5      $ [        U5      (       a$  [        SS[        UR                  5       S3S/S9  O5UR                  n[        R                  " X5      nUR                  X/0 5      $ [        U[        R                  5      (       ab  [        UR                  5      R                  [
        R                  L a2  [        R                  R                  [!        UR                  5      5      $ [        U["        [$        [&        [(        [*        45      (       a-  [        R                  R                  UR-                  5       5      $ g)z&Handle repr() on user defined objects.z4Attempted to call repr() method implemented in C/C++Ú z6 has a C/C++ based repr method. This is not supported.zWrite the repr method in Pythonrú  N)r²   r   rZ   r¦   r¹  r³   rŠ  r>   rp  r<  r3   r   Ú__func__r)  r@   re  rÊ   rM   rB   rC   rH   rE   Ú
debug_repr)rl   r,  rÔ  Úrepr_methodÚfn_vtÚbound_methods         rn   Ú	call_reprÚBuiltinVariable.call_repr`  s]  € ô �cœ9×>Ñ>×?Ñ?ØŸ)™)×,Ñ,ˆKä�C—I‘I‹×'Ñ'¬6¯?©?Ò:ä'×-Ò-¨bÓ>�Ø×*Ñ*¨2¨r°2Ó6Ð6Ü0°×=Ñ=ÜØRØÜ#'¨¯	©	£?Ð"3Ð3iÐ jØ<Ð=ó	ð  +×3Ñ3�Ü'×-Ò-¨bÓ?�Ø×*Ñ*¨2¨u°bÓ9Ð9Ü�cœ9×=Ñ=×>Ñ>Ü�C—I‘I‹×'Ñ'¬4¯=©=Ò8Ü ×1Ñ1×8Ñ8¼¸c¿i¹i»ÓIÐIÜØäÜ!Ü#Ü'Ü ð÷	
ñ 	
ô ×-Ñ-×4Ñ4°S·^±^Ó5EÓFÐFØrq   c                 óâ  • [        U[        R                  5      (       a0  [        R                  R	                  [        UR                  5      S9$ [        U[        R                  5      (       GaF  [        UR                  S5      (       a  UR                  R                  nOW[        UR                  S5      (       a  UR                  R                  nO%[        S[        U5      S/ [        R                  QS9  [        UR                  5      R                  [         R                  L a#   [        R                  R	                  W" 5       S9$ [%        W5      (       a$  [        SS[        UR                  5       S	3S
/S9  g UR&                  n [(        R*                  " X5      nUR3                  X/0 5      $ [        U[        R4                  45      (       af  [7        UR8                  5      S:X  a  UR:                   nO"SR=                  S UR8                   5       5      n[        R                  R	                  US9$ g ! ["         a     g f = f! [,         a    [.        R1                  SSS9   g f = f)N)r¦   Ú__str__r¹  z+failed to call str() on user defined objectz5User defined object has no __str__ or __repr__ methodrú  z0Attempted to a str() method implemented in C/C++rš  z5 has a C/C++ based str method. This is not supported.zWrite the str method in Pythonz%Failed to create UserFunctionVariableT)Úexc_infor   ú, c              3   ó@   #   • U  H  oR                  5       v •  M     g 7frk   )ra  )r·   r-  s     rn   r¹   Ú+BuiltinVariable.call_str.<locals>.<genexpr>¾  s   é € Ð!KÂ(¸Q×"6Ñ"6×"8Ð"8Â(ùs   ‚)r²   r   r$  r@   re  rx   r¥   rZ   Úhasattrr¦   r£  r¹  r   r   Ú
USER_ERRORr³   rŠ  ÚAttributeErrorr3   r›  r>   rp  rÿ  r  r  r<  rƒ  r�   rh   r„  Újoin)rl   r,  rÔ  Ú
str_methodrŸ  Úuser_func_variabler¦   s          rn   Úcall_strÚBuiltinVariable.call_str†  s  € ô �cœI×:Ñ:×<Ñ<Ü×-Ñ-×4Ñ4¼3¸s¿v¹v»;Ð4ÐGÐGÜ˜œi×AÑA×CÒCä�s—y‘y )×,Ñ,Ø ŸY™Y×.Ñ.‘
Ü˜Ÿ™ J×/Ñ/à ŸY™Y×/Ñ/‘
äØIÜ ›HØ WØ9Ô-×8Ñ8Ð9ò	ô �C—I‘I‹×&Ñ&¬&¯.©.Ò8ð ä$×5Ñ5×<Ñ<Á:Ã<Ð<ÐPÐPô
 1°×<Ñ<ÜØNØÜ#'¨¯	©	£?Ð"3Ð3hÐ iØ;Ð<ò	ð6 ð%  *×2Ñ2�ð ä)8×)>Ò)>¸rÓ)PÐ&ð *×7Ñ7¸¸EÀ2ÓFÐFÜ˜œi×9Ñ9Ð;×<Ñ<Ü�3—8‘8‹} Ó!ØŸ<™<˜.‘àŸ	™	Ñ!KÀ#Ç(Â(Ó!KÓK�Ü×-Ñ-×4Ñ4¸5Ð4ÐAÐAØøôA &ó  áð ûô& &ó  ä—K‘KÐ GÐRV�KÑWÙð ús$   Ä*!H= ÆI È=
I
É	I
ÉI.É-I.c                 ó,  • [        U5      S:X  a>  US   R                  U5      (       a%  US   R                  U5      nU R                  X5      $ [        U5      S:X  a  U R	                  XS   US   5      $ [        U5      S:”  a  U R                  X5      $ g )Nr;   r   r   )r�   rx  ry  Ú_call_min_max_seqÚ_call_min_max_binary)rl   r,  rh   rC  s       rn   Ú_call_min_maxÚBuiltinVariable._call_min_maxÂ  s�   € ô ˆt‹9˜‹>˜d 1™g×CÑCÀB×GÑGØ˜‘G×5Ñ5°bÓ9ˆEØ×)Ñ)¨"Ó4Ð4Ü�‹Y˜!‹^Ø×,Ñ,¨R°a±¸$¸q¹'ÓBÐBÜ�‹Y˜‹]Ø×)Ñ)¨"Ó3Ð3Ørq   rC  c                 ó¸   • [        U5      S:”  d   e[        U5      S:X  a  US   $ [        R                  " [        R                  " U R                  U5      U5      $ ©Nr   r;   )r�   Ú	functoolsÚreduceÚpartialr²  )rl   r,  rC  s      rn   r±  Ú!BuiltinVariable._call_min_max_seqÎ  sO   € ô �5‹z˜A‹~Ðˆ~Üˆu‹:˜‹?Ø˜‘8ˆOä×Ò¤	× 1Ò 1°$×2KÑ2KÈRÓ PÐRWÓXÐXrq   r-  r.  c                 ó	  • Ub  Uc  g U R                  X#5      (       GaW  UR                  5       (       d  X2p2UR                  5       (       d   e[        U[        5      (       a5  [        R
                  " [        R                  5      R                  X/0 5      n[        U[        5      (       d  [        U[        5      (       aH  SSK
Jn  U" [        U5      UUR                  R                  " SU R                  /[!        X#/0 5      Q76 S9$ UR#                  5       (       a—  [        U[        R$                  5      (       a%  SS Kn[        R(                  " UR*                  5      nO$[        R
                  " [        R,                  5      nU R                  [.        L a  SU0OSU0nUR                  X/U5      nOÊ[        U[        R$                  5      (       aJ  SS Kn[.        UR0                  [2        UR4                  0U R                     n	[        R(                  " U	5      nOM[.        [        R0                  [2        [        R4                  0U R                     n
[        R
                  " U
5      nUR                  XU/0 5      n[7        S X#4 5       5      (       aÝ  [9        S	 X#4 5       5      (       a  [        R                  R;                  U5      $ UR#                  5       (       a  UR=                  5       nOUR>                  nU R                  [.        L a  [/        UR>                  U5      nO[3        UR>                  U5      n[9        S
 X#4 5       5      n[        R@                  R;                  UUU5      $ U$ [        U[        5      (       d  [        U[        5      (       as  U R                  [.        L a  [        RB                  O[        RD                  nUR                  R                  " SU/[!        X#/0 5      Q76 n[        RF                  " XS 5      $ [        U[H        5      (       aY  [        U[H        5      (       aD  U R                  UR=                  5       UR=                  5       5      n[H        RF                  " U5      $ g )Nr;   ©r@  r<  r�  r   rÇ   rÆ   c              3   óv   #   • U  H/  n[        U[        R                  [        R                  45      v •  M1     g 7frk   )r²   r   rW   r@   )r·   rã  s     rn   r¹   Ú7BuiltinVariable._call_min_max_binary.<locals>.<genexpr>  s?   é € ð 	ò  �Aô Øä!×=Ñ=Ü!×2Ñ2ð÷ð ò  ùs   ‚79c              3   óB   #   • U  H  n[        U[        5      v •  M     g 7frk   rL  )r·   r…  s     rn   r¹   r¾    s   é € ÐKÂF¸S”z #Ô'7×8Ð8ÂFùr  c              3   ó|   #   • U  H2  n[        U[        R                  5      (       d  M$  UR                  v •  M4     g 7frk   rN  r¶   s     rn   r¹   r¾  (  s-   é € ð "â#˜Ü! !¤Y×%JÑ%J×Kó "�A—M–MÚ#ùrP  )%rÕ  rÒ  r²   rS   r   ÚTorchInGraphFunctionVariabler�   rì   r<  rU   r=  r@  r³   r>  r?  r¥   r6   r_  rY  ÚnumpyÚNumpyVariableÚclipÚclamprÆ   ÚmaximumrÇ   Úminimumr¼   r½   Úfrom_tensor_variablera  rQ  rW   Úsym_maxÚsym_minre  r@   )rl   r,  r-  r.  r@  Únpr¥   ri   rŒ  Únp_fnÚtorch_fnÚraw_bÚraw_resrO  Úpy_fnr]  r¦   s                    rn   r²  Ú$BuiltinVariable._call_min_max_binary×  sŒ  € ð ‰9˜™	ð Ø×Ñ˜A×!Ò!Ø—;‘;—=‘=Ø�1Ø—;‘;—=‘=Ð �=ô ˜!Ô-×.Ñ.Ü×:Ò:¼5¿<¹<ÓH×VÑVØ˜˜Ró�ô
 ˜!œ_×-Ñ-´¸A¼×1OÑ1OÝ6á(Ü˜“GØØŸ)™)×0Ò0Ø'ØŸ™ðô +¨A¨6°2Ó6òñð ð ×#Ñ#×%Ñ%ä˜a¤×!?Ñ!?×@Ñ@Û&ä"×0Ò0°·±Ó9‘Bä"×?Ò?ÄÇÁÓL�BØ(,¯©´3ª˜% ™¸eÀQ¸Z�Ø×)Ñ)¨"¨c°6Ó:‘ä˜a¤×!?Ñ!?×@Ñ@Û&ä  "§*¡*¬c°2·:±:Ð>¸t¿w¹wÑG�EÜ"×0Ò0°Ó7‘Bä #¤U§]¡]´C¼¿¹ÐGÈÏÉÑP�HÜ"×?Ò?ÀÓI�BØ×)Ñ)¨"°!¨f°bÓ9�ô ñ 	ð ™ó	÷ 	ñ 	ô ÑKÀQÁFÓK×KÑKä$×5Ñ5×JÑJÈ6ÓRÐRà×'Ñ'×)Ñ)Ø×0Ñ0Ó2‘EàŸK™K�EØ—7‘7œc’>Ü! !§+¡+¨uÓ5‘Gä! !§+¡+¨uÓ5�Gä!ñ "à™Vó"ó �ô
 !×<Ñ<×QÑQØØØóð ð �Ü˜œ?×+Ñ+¬z¸!¼_×/MÑ/MØ%)§W¡W´¢^”E—M’M¼¿¹ˆEØ—I‘I×*Ò*Ø ðÜ):¸A¸6À2Ó)FòˆEô #×)Ò)¨"°TÓ:Ð:Ü˜Ô+×,Ñ,´¸AÔ?O×1PÑ1PØ—G‘GØ×$Ñ$Ó&Ø×$Ñ$Ó&óˆEô $×*Ò*¨5Ó1Ð1Ørq   c                 ó¬   • SSK Jn  UR                  U[        5      R	                  X[
        R                  " S5      /0 5      nUR	                  U/ 0 5      $ )Nr;   rA  Ú__abs__©r=  rB  re  rÄ   r<  r@   )rl   r,  rÔ  rB  Ú
abs_methods        rn   Úcall_absÚBuiltinVariable.call_absF  óS   € õ 	/ð '×-Ñ-¨b´'Ó:×HÑHØÔ&×-Ò-¨iÓ8Ð9¸2ó
ˆ
ð ×'Ñ'¨¨B°Ó3Ð3rq   c                 ó¬   • SSK Jn  UR                  U[        5      R	                  X[
        R                  " S5      /0 5      nUR	                  U/ 0 5      $ )Nr;   rA  Ú__pos__rÔ  )rl   r,  rÔ  rB  Ú
pos_methods        rn   Úcall_posÚBuiltinVariable.call_posQ  rØ  rq   c                 óÄ   • UR                  5       (       a  [        SSS/ S9  [        U5      n[        R                  " U5      n[
        R                  R                  U5      $ )Nzunsupported index(Tensor)rš  z;Dynamo does not support tracing builtin index() on a Tensorrú  )rÒ  r   r1   r˜   rë   r   r@   re  )rl   r,  rÔ  Úconstant_values       rn   Ú
call_indexÚBuiltinVariable.call_index\  sT   € ð �=‰=�?‰?ÜØ3ØØYØò	ô ˜3ÓˆÜ!Ÿš¨Ó,ˆÜ×)Ñ)×0Ñ0°Ó@Ð@rq   c                 óª   • SSK Jn  UR                  U[        5      R	                  X[
        R                  " S5      /0 5      nUR	                  XU5      $ )Nr;   rA  Ú	__round__rÔ  )rl   r,  rÔ  rh   ri   rB  Úround_methods          rn   Ú
call_roundÚBuiltinVariable.call_roundk  sQ   € õ 	/ð )×/Ñ/°´GÓ<×JÑJØÔ&×-Ò-¨kÓ:Ð;¸Ró
ˆð ×)Ñ)¨"°FÓ;Ð;rq   c                 óÊ   • [        U0 5      (       a  [        R                  " U5      $ U R                  " U6 (       a(  [	        S U 5       5      n[        R                  " U5      $ g )Nc              3   ór   #   • U  H-  n[         R                  R                  [        U5      5      v •  M/     g 7frk   )r   r@   re  r1   rH  s     rn   r¹   Ú-BuiltinVariable.call_range.<locals>.<genexpr>€  s-   é € ð ÚPTÈ”	×*Ñ*×1Ñ1´,¸sÓ2C×DÐDÒPTùs   ‚57)r*   r   rM   Ú_dynamic_argsr–  r<  s      rn   Ú
call_rangeÚBuiltinVariable.call_rangez  s]   € ô )¨¨r×2Ñ2Ü×*Ò*¨4Ó0Ð0Ø×Ò Ö&Üñ ÙPTóó ˆDô ×*Ò*¨4Ó0Ð0àrq   c                 ót   • [        S U 5       5      =(       d     [        S UR                  5        5       5      $ )Nc              3   óB   #   • U  H  n[        U[        5      v •  M     g 7frk   rS  r¶   s     rn   r¹   Ú0BuiltinVariable._dynamic_args.<locals>.<genexpr>ˆ  s   é € Ð@º4°a”:˜a¤×1Ð1º4ùr  c              3   óB   #   • U  H  n[        U[        5      v •  M     g 7frk   rS  r¶   s     rn   r¹   rï  ˆ  s   é € ð H
Ú4C¨qŒJ�qœ/×*Ð*²Oùr  )r½   rî   rÌ  s      rn   rê  ÚBuiltinVariable._dynamic_args‡  s7   € ÜÑ@¹4Ó@Ó@÷ 
ÄCñ H
Ø4:·M±M´OóH
ó E
ð 	
rq   c                 ó.   • [         R                  " X!5      $ rk   )r   ÚSliceVariabler<  s      rn   Ú
call_sliceÚBuiltinVariable.call_sliceŒ  s   € ô ×&Ò& tÓ0Ð0rq   c           
      ó~   • SSK Jn  U" UUR                  R                  " SU R                  /[        X#5      Q76 5      $ r9  )r=  r;  r>  r?  r¥   r6   )rl   r,  rh   ri   r;  s        rn   Ú
_dyn_proxyÚBuiltinVariable._dyn_proxy‘  s?   € õ 	+áØØ�I‰I×"Ò"Ø §¡ðÜ+<¸TÓ+Jòó
ð 	
rq   rõ  c                 ó¦  • [        U[        R                  5      (       a   eU R                  " U0 UD6(       a  U R                  " U/UQ70 UD6$ [        R
                  R                  U R                  5      nUc  U" / [        5       S9$ UR                  U5      (       Ga±  UR                  (       Gax  [        UR                  5      (       Gd]  [        U[        5      (       a4  [        UR                  R                  [        R                   5      5        GO[#        USS5      (       a_  [        U[$        5      (       aJ  ['        U[(        [*        45      (       d/  UR,                  R.                  R1                  UR                  5        [        U[        R2                  5      (       a3  [        UR                  R                  [        R4                  5      5        OQ[        U[        R6                  5      (       d2  [        UR                  R                  [        R8                  5      5        U" [;        UR=                  U5      5      [        5       S9$ g )NrO  r§   F)r²   r   ÚIteratorVariablerê  r÷  rJ   Úcls_forr¥   r=   rT  r§   r%   rO   r    r«   r   ÚTUPLE_ITERATOR_LENrÄ   rB   r4   rI   rF   r>  Úguard_on_key_orderr×   ÚMappingProxyVariableÚMAPPING_KEYS_CHECKÚUnspecializedNNModuleVariableÚSEQUENCE_LENGTHrc  rD  ©rl   r,  rõ  rh   ri   r­   s         rn   Ú_call_iter_tuple_listÚ%BuiltinVariable._call_iter_tuple_listž  s¾  € ô ˜c¤9×#=Ñ#=×>Ñ>Ð>Ð>à×Ò˜tÐ. v×.Ø—?’? 2Ð7¨Ò7°Ñ7Ð7ä×(Ñ(×0Ñ0°·±Ó9ˆØ‰;ÙØÜ.Ó0ñð ð ×(Ñ(¨×,Ò,Ø�z�zˆzÔ"4°S·Z±Z×"@Ò"@Ü˜cÔ#8×9Ñ9Ü!ØŸ
™
×-Ñ-¬l×.MÑ.MÓNöô
    X¨u×5Ñ5Ü& sÔ,=×>Ñ>Ü & s¬[Ô:KÐ,L× MÑ MàŸ	™	×4Ñ4×8Ñ8¸¿¹ÔDä! #¤y×'EÑ'E×FÑFô &ØŸJ™J×1Ñ1´,×2QÑ2QÓRõô (¨¬Y×-TÑ-T×UÑUô &ØŸJ™J×1Ñ1´,×2NÑ2NÓOôñ Ü�S×,Ñ,¨RÓ0Ó1Ü.Ó0ñð ð rq   c                 ó¢   • [         R                  R                  U R                  5      nU" [	        UR                  U5      5      [        5       S9$ rN  )r   rJ   rû  r¥   rc  ry  r=   r  s         rn   Ú_call_iter_tuple_generatorÚ*BuiltinVariable._call_iter_tuple_generatorÑ  sD   € ô ×(Ñ(×0Ñ0°·±Ó9ˆÙÜ�×.Ñ.¨rÓ2Ó3Ü*Ó,ñ
ð 	
rq   c                 óÌ  • [        U[        R                  5      (       aP  [        R                  R	                  U R
                  5      nU" [        UR                  U5      5      [        5       S9$ [        U[        R                  5      (       d+  [        U[        5      (       a,  UR                  U5      (       a  U R                  " X/UQ70 UD6$ U R                  " X/UQ70 UD6$ rN  )r²   r   rú  rJ   rû  r¥   rc  ry  r=   ÚLocalGeneratorObjectVariablerZ   rx  r  r  r  s         rn   Ú_call_tuple_listÚ BuiltinVariable._call_tuple_listÞ  sÁ   € ô �cœ9×5Ñ5×6Ñ6Ü×,Ñ,×4Ñ4°T·W±WÓ=ˆCÙÜ�S×2Ñ2°2Ó6Ó7Ü.Ó0ñð ô ˜œY×CÑC×DÑDÜ�sÔ5×6Ñ6Ø×1Ñ1°"×5Ñ5à×2Ò2°2ÐL¸TÒLÀVÑLÐLà×-Ò-¨bÐG¸ÒGÀÑGÐGrq   c                 óè  • [        U[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        45      (       a  UR                  US/ 0 5      $ [        R                  " [        R                  R                  5      R                  X/UQ0 5      nU(       a  [        R                   " U5      nU$ )NÚ__iter__)r²   r   rL   rM   rú  rB   r&  rV   rP   rE   r0  r$  r   rÄ  Úiter_r<  ÚObjectIteratorVariable)rl   r,  rõ  rh   ri   Úrets         rn   Ú	call_iterÚBuiltinVariable.call_iteró  sÄ   € ô Øä×&Ñ&Ü×'Ñ'Ü×*Ñ*Ü×+Ñ+Ü×*Ñ*Ü×(Ñ(Ü×'Ñ'Ü ð	÷
ñ 
ð —?‘? 2 z°2°rÓ:Ð:ô ×0Ò0Ü×"Ñ"×(Ñ(óç‰m˜B  t ¨bÓ1ð ö ô
  ×6Ò6°sÓ;�ØˆJrq   c           	      óÎ  • SSK JnJn  SSKJn  [        U[        R                  UUU45      (       a  [        R                  R                  S5      $ [        U[        5      (       a2  [        R                  R                  [        UR                  5      5      $ [        U[        [        [        [        [         ["        45      (       a  [        R                  R                  S5      $ g )Nr;   )r#  ÚFunctoolsPartialVariabler%  TF)r“  r#  r  r”  r&  r²   r   r)  r@   re  r[   r¿   r¦   rU   rV   rL   rP   rK   )rl   r,  rÔ  r#  r  r&  s         rn   Úcall_callableÚBuiltinVariable.call_callable  s¼   € ÷ 	RÝ/äØä×2Ñ2Ø(Ø(Ø ð	÷
ñ 
ô ×-Ñ-×4Ñ4°TÓ:Ð:Ü˜Ô0×1Ñ1Ü×-Ñ-×4Ñ4´X¸c¿i¹iÓ5HÓIÐIÜØä ÜÜÜÜÜ$ð÷

ñ 

ô ×-Ñ-×4Ñ4°UÓ;Ð;àrq   r  c                 óR   • [        U5      S:X  a  US   $ [        SSU SU 3SS/S9  g )	Nr   r;   zbad args to builtin cast()z	got args r  z0Dynamo expects exactly 2 args to builtin cast().z3Ensure your call to cast() has exactly 2 arguments.rú  )r�   r   )rl   r  rh   ri   s       rn   Ú	call_castÚBuiltinVariable.call_cast?  s<   € ô ˆt‹9˜‹>Ø˜‘7ˆNäØ0Ø ˜v Q v hÐ/ØJØHÐIó		
rq   c                 ó  • [        U[        R                  5      (       a*  [        R                  " U[        UR                  5      5      $ [        U[        5      (       a*  [        R                  " U[        UR                  5      5      $ g rk   )	r²   r   r)  r>   rp  Údirr¦   r¤   r¥   )rl   r,  rÔ  s      rn   Úcall_dirÚBuiltinVariable.call_dirL  s]   € ô �cœ9×=Ñ=×>Ñ>Ü"×(Ò(¨¬S°·±«^Ó<Ð<Ü�cœ?×+Ñ+Ü"×(Ò(¨¬S°·±«[Ó9Ð9Ørq   c                ó@   • [         R                  " U[        /UQ70 UD6$ rk   )r¤   Úcall_custom_dictrw   ©rl   r,  rh   ri   s       rn   Ú	call_dictÚBuiltinVariable.call_dictU  s!   € ô ×/Ò/°´DÐJ¸4ÒJÀ6ÑJÐJrq   Úuser_clsc                ó  • [        U5      n[        U5      S:X  aœ  [        US   [        R                  5      (       az  [        US   R
                  [        R                  5      (       aN  U R                  R                  R                  US   R
                  5      (       d  US   R                  U 5      US'   U R                  [        R                  " U [        R                  5      [        R                  " X5      /UQU5      $ )Nr;   r   )rc  r�   r²   r   rÑ  rõ  r)  r>  rU  Úhas_pending_mutationÚget_forwarded_dictro  r>   rp  r   Úconstruct_dict)r,  r#  rh   ri   Ú	args_lists        rn   r  Ú BuiltinVariable.call_custom_dict^  sÎ   € ô ˜“Jˆ	ä�	‹N˜aÓÜ˜9 Q™<¬×)BÑ)B×CÑCÜ˜9 Q™<×+Ñ+¬Y×-OÑ-O×PÑPØ—I‘I×*Ñ*×?Ñ?À	È!Á×@PÑ@P×QÑQð
 % Q™<×:Ñ:¸2Ó>ˆI�a‰LØ×-Ñ-Ü×!Ò! "¤i×&>Ñ&>Ó?Ü×"Ò" 2Ó0Ð=°9Ð=Øó
ð 	
rq   c          
      óÚ  • U[         [        [        1;  aH  [        SUR                   SU SU 3SUR                   SUR                   S3SUR                   S3/S	9  U(       av  U[        Ld$  [        U5      S
:w  d  [        U5      S
:w  d  SU;  a3  [        U UR                   S3S[        U5       S[        U5       S35        / UQUR                  S5      P7n[        U5      S:X  a'  [        U UR                   S3S[        U5       S35        [        U5      S
:X  a  / UQ[        P7n[        U5      S:w  a'  [        U UR                   S3S[        U5       S35        Uu  pEU[        La  [        O[        n[        U[         5      (       aI  U Vs/ s H  n[        R                  " U5      PM     nnU" [         R                  X…5      U[        5       S9$ UR!                  U 5      (       aK  UR#                  U 5      n	[%        S U	 5       5      (       a#  U" [         R                  X•5      U[        5       S9$ [        SUR                   SU SU 3SUR                   S3SS/S	9  g s  snf )Nz$Unsupported dict type for fromkeys()z.fromkeys(): r  zFailed to call z.fromkeys() because z5 is not any type of dict, OrderedDict, or defaultdictzEnsure z0 is a type of dict, OrderedDict, or defaultdict.rú  r;   r¦   z	.fromkeysz1 args and 1 kwargs (`value`)z
 args and ú kwargsr   zat least 1 argsz argsr   z2 argsrO  c              3   ó8   #   • U  H  n[        U5      v •  M     g 7frk   )rG   )r·   rè  s     rn   r¹   Ú<BuiltinVariable.call_custom_dict_fromkeys.<locals>.<genexpr>·  s   é € Ð0ª4 a”;˜q—>�>ª4ùrg  zfailed to call dict.fromkeys()zo.fromkeys() because arguments could not be automatically converted to a list, or some dict key is not hashable.z(Manually convert the argument to a list.zEnsure all keys are hashable.)rw   r   r   r   rr   r�   r7   Úpopr?   rB   rC   r²   r@   re  rt  r=   rx  ry  r¼   )
r,  r#  rh   ri   rÔ  r¦   ÚDictVariableTyperç  Úarg_listÚkeyss
             rn   r~  Ú)BuiltinVariable.call_custom_dict_fromkeysw  sœ  € ð œD¤+¬{Ð;Ó;ÜØ>Ø#×,Ñ,Ð-¨]¸4¸&ÀÀ&ÀÐJØ-¨h×.?Ñ.?Ð-@Ð@TØ×$Ñ$Ð%Ð%Zð\ð ˜h×/Ñ/Ð0Ð0`Ðaðòö ð ¤Ò+Ü�t“9 “>Ü�v“; !Ó#Ø &Ó(ä#ØØ×(Ñ(Ð)¨Ð3Ø3Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð 0�TÐ/˜6Ÿ:™: gÓ.Ñ/ˆDÜˆt‹9˜‹>ÜØØ×$Ñ$Ð% YÐ/Ø!Ü�t“9�+˜UÐ#ô	ô ˆt‹9˜‹>Ø2�TÐ2Ô1Ñ2ˆDÜˆt‹9˜‹>ÜØØ×$Ñ$Ð% YÐ/ØÜ�t“9�+˜UÐ#ô	ð ‰
ˆà!)´Ò!<ÕÔBUð 	ô �cœ4× Ñ Ù<?Ó@ºC°qÔ(×/Ò/°Ö2¹CˆHÐ@Ù#Ü—‘˜hÓ.ØÜ.Ó0ñð ð
 ×.Ñ.¨r×2Ñ2Ø×0Ñ0°Ó4ˆDÜÑ0©4Ó0×0Ñ0Ù'Ü—M‘M $Ó.ØÜ"2Ó"4ñð ô 	Ø4Ø×(Ñ(Ð)¨°t°f¸A¸f¸XÐFØ)¨(×*;Ñ*;Ð)<ð =0ð 0ð ;Ø/ðó
	
ùò As   Æ I(c           
      ó~  • SSK Jn  U(       a   eU(       d  [        / [        5       S9$ [	        U5      S:w  a1  [        [        U[        R                  " S[	        U5       S35      /S9  US   n[        U[        R                  5      (       a  UR                  [        5       S9$ UR                  U5      (       a#  UR                  U5      n[        U[        5       S9$ [        U[        R                  5      (       až  [        UR                   ["        5      (       a  UR%                  US5      n[        U[        R&                  5      (       aN  UR)                  XrU5      n[        U[        5      (       a  U$ UR                  U[*        5      R-                  X5      $ [        [        U[        R                  " S	5      /S9  g )
Nr;   rA  rO  z&set() takes 1 positional argument but ú were givenr^  r   r  z!failed to construct builtin set())r=  rB  rI   r=   r�   r   rk  r@   re  r4   r   Úclonerx  ry  r²   rZ   r¦   r   r;  ÚUserMethodVariablero  r€  Úcall_set)	rl   r,  rh   ri   rB  rÔ  rC  Úiter_fnÚouts	            rn   r7  ÚBuiltinVariable.call_setÊ  sw  € õ 	/ö ÐˆzÞÜ˜rÔ1AÓ1CÑDÐDÜˆt‹9˜‹>Ü$ÜØä$×+Ò+Ø@ÄÀTÃÀÈ;ÐWóðòð �1‰gˆÜ�#”y×,Ñ,×-Ñ-Ø—9‘9Ô+;Ó+=�9Ð>Ð>Ø×.Ñ.¨r×2Ñ2Ø×1Ñ1°"Ó5ˆEÜ˜uÔ4DÓ4FÑGÐGÜ˜œY×@Ñ@×AÑAÄjØ�I‰I”x÷G
ñ G
ð —o‘o b¨*Ó5ˆGÜ˜'¤9×#?Ñ#?×@Ñ@Ø×4Ñ4°WÀFÓK�Ü˜c¤;×/Ñ/Ø�JØ(×/Ñ/°´CÓ8×AÑAÀ"ÓJÐJÜ ÜØÜ"×)Ò)Ð*MÓNÐOó	
rq   c           
      ó  • U(       a   eU(       d  [        / 5      $ [        U5      S:w  a1  [        [        U[        R
                  " S[        U5       S35      /S9  US   n[        U[        R                   5      (       a/  [        UR                   Vs/ s H  oUR                  PM     sn5      $ UR                  U5      (       a  UR                  U5      n[        U5      $ [        [        U[        R
                  " S5      /S9  g s  snf )Nr;   z,frozenset() takes 1 positional argument but r4  r^  r   z'failed to construct builtin frozenset())rF   r�   r   rk  r@   re  r4   r   Ú	set_itemsÚvtrx  ry  )rl   r,  rh   ri   rÔ  r¸   rC  s          rn   Úcall_frozensetÚBuiltinVariable.call_frozensetõ  sç   € ö ÐˆzÞÜ$ RÓ(Ð(Üˆt‹9˜‹>Ü$ÜØä$×+Ò+ØFÄsÈ4ÃyÀkÐQ\Ð]óðòð �1‰gˆÜ�#”y×2Ñ2×3Ñ3Ü$°C·M²MÓ%B²M¨q§d¤d±MÑ%BÓCÐCØ×.Ñ.¨r×2Ñ2Ø×1Ñ1°"Ó5ˆEÜ$ UÓ+Ð+Ü ÜØÜ"×)Ò)Ð*SÓTÐUó	
ùò	 &Cs   ÂDc                 ó–  • SSK Jn  U(       a/  [        U5      S:X  a  SU;   d  [        USS[        U5       S35        UR	                  S[
        R                  " S5      5      nU Vs/ s H*  nUR                  U[        5      R                  X/0 5      PM,     nn[        R                  " UUR                  5       [        5       S9$ s  snf )	Nr;   rA  ÚstrictÚzipú1 kwargs (`strict`)r+  F©rA  rP  )r=  rB  r�   r7   r.  r@   re  Úiterr<  r   ÚZipVariablera  r=   )rl   r,  rh   ri   rB  rA  rÔ  Ú	iter_argss           rn   Úcall_zipÚBuiltinVariable.call_zip	  sÇ   € õ 	/æÜ˜“K 1Ó$¨°VÓ);Ü#ØØØ)Ü˜6“{�m 7Ð+ô	ð —‘˜HÔ&6×&=Ò&=¸eÓ&DÓEˆñ ó
â�ð ×$Ñ$ R¬Ó.×<Ñ<¸RÀÈÖKÙð 	ð 
ô ×$Ò$ØØ×,Ñ,Ó.Ü*Ó,ñ
ð 	
ùò	
s   Á'1Cc           	      óÆ   •  US   R                  US[        USS  5      U5      $ ! [         a1  n[        [	        U5      U[        UR
                  5      S9   S nAg S nAff = f)Nr   Ú__len__r;   r^  )r0  rc  rª  r   r³   rh   )rl   r,  rh   ri   r  s        rn   Úcall_lenÚBuiltinVariable.call_len/	  sW   € ð	EØ˜‘7×&Ñ& r¨9´d¸4ÀÀ¸8³nÀfÓMÐMøÜó 	EÜ$¤T¨!£W¨b´t¸A¿F¹F³|×Dûð	Eús   ‚"% ¥
A ¯'AÁA c           	      óH   • US   R                  US[        USS  5      U5      $ )Nr   Ú__getitem__r;   )r0  rc  r   s       rn   Úcall_getitemÚBuiltinVariable.call_getitem:	  s)   € ð �A‰w×"Ñ" 2 }´d¸4ÀÀ¸8³nÀfÓMÐMrq   Úisinstance_type_varc           	      ó˜  ^•  TR                  5       nUR                  5       n[        T[        R                  5      (       aM  TR                  b@  S[        S[        S	[        4U4S
 jjn[        R                  R                  U" TU5      5      $ [        T[        R                  5      (       aL  [        TR                   ["        R$                  5      (       a#  [        SST SU S3S/ [        R&                  QS9  [        T[        R                  5      (       a]  SUR(                  R*                  ;   aC  [        R                  R                  UR(                  R-                  UTR                   5      5      $ [        T[        R.                  5      (       a   [        R                  " [        WU5      5      $ [        U[0        5      (       d  [3        [5        USS 5      5      (       a  U4nOk[        U["        R6                  5      (       a  UR8                  nO?[        U[:        5      (       a  [=        S U 5       5      (       a  UnO[?        [@        US/S9   [C        WW5      n[        R                  R                  U5      $ ! [         a*    [        SST SU S3ST 3/ [        R                  QS9   GN f = f! [@         a    WW;   n Ngf = f)Nz6builtin isinstance() cannot determine type of argumentzisinstance(r¥  r·  z=Dynamo doesn't have a rule to determine the type of argument rú  Ú
tensor_varÚtensor_typer`   c                 óŒ   >^• S[         S[        4U4S jjm[        U5      [        L a  [	        U4S jU 5       5      $ T" U5      $ )NÚtyr`   c                 óN  >• U [         ;  aƒ  TR                  5       R                  R                  S   n[	        U5      (       a2  U [
        R                  R                  R                  L a  [        X5      $ [        TR                  5       U 5      $ [         U    nTR                  U;   $ )NÚexample_value)r:   rÀ  ÚnodeÚmetar   r�   ÚnnÚ	parameterÚ	Parameterr²   r¦  Úpython_typer{   )rW  Úexample_valÚdtypesrÔ  s      €rn   Ú
check_typeÚOBuiltinVariable.call_isinstance.<locals>._tensor_isinstance.<locals>.check_typeW	  s…   ø€ ØÔ!4Ó4Ø&)§l¡l£n×&9Ñ&9×&>Ñ&>¸Ñ&O˜ä9¸+×FÑFØ "¤e§h¡h×&8Ñ&8×&BÑ&BÒ Bô
 $.¨kÓ#>Ð>ä#-¨c¯o©oÓ.?ÀÓ#DÐDä0°Ñ4�FàŸ9™9¨Ñ.Ð.rq   c              3   ó4   >#   • U  H  nT" U5      v •  M     g 7frk   re   )r·   rW  rb  s     €rn   r¹   ÚNBuiltinVariable.call_isinstance.<locals>._tensor_isinstance.<locals>.<genexpr>j	  s   øé € ÐDº°"™z¨"Ÿ~˜~ºùs   ƒ)r	   r¾   r³   r–  r½   )rT  rU  rb  rÔ  s     @€rn   Ú_tensor_isinstanceÚ;BuiltinVariable.call_isinstance.<locals>._tensor_isinstanceT	  sA   ù€ ð/¤3ð /¬4÷ /ô$ ˜Ó$¬Ò-ÜÔD¹ÓDÓDÐDá% kÓ2Ð2rq   z<isinstance() called on user defined object with C extensionszeUser-defined object with C extensions can have torch.Tensor attributes; intentionally graph breaking.Ú__instancecheck__c              3   ó|   #   • U  H2  n[        U[        5      =(       d    [        [        US S5      5      v •  M4     g7f)rh  N)r²   r³   r¿   rÄ   )r·   Útps     rn   r¹   Ú2BuiltinVariable.call_isinstance.<locals>.<genexpr>’	  s5   é € ð 8
â%�ô �rœ4Ó ×T¤H¬W°RÐ9LÈdÓ-SÓ$TÔTÚ%ùs   ‚:<z?isinstance() arg 2 must be a type, a tuple of types, or a unionr^  )"r_  rZ  r   r   r#  ra  r²   r   rV   r{   r>   r	   r¾   r@   re  rZ   r¦   rg   ÚMemberDescriptorTyper   r`  rï   rh  Ú!UserDefinedExceptionClassVariabler³   r¿   rÄ   Ú	UnionTypeÚ__args__r–  r¼   r   rk  r¦  )	rl   r,  rÔ  rR  rÙ  Úisinstance_typerf  Úisinstance_type_tupler…  s	     `      rn   Úcall_isinstanceÚBuiltinVariable.call_isinstanceB	  sš  ø€ ð	Ø—‘Ó(ˆHð .×@Ñ@ÓBˆÜ�cœ9×3Ñ3×4Ñ4¸¿¹Ñ9Nð3Ü+ð3Ü:=ð3ä÷3ô4 ×-Ñ-×4Ñ4Ù" 3¨Ó8óð ô
 �cœ9×>Ñ>×?Ñ?ÄJØ�I‰I”u×1Ñ1÷E
ñ E
ô ØVØ% c U¨"¨_Ð,=¸QÐ?ð<à6Ô)×5Ñ5Ð6òô �sœI×?Ñ?×@Ñ@Ø# ×'@Ñ'@×'IÑ'IÓIä×-Ñ-×4Ñ4Ø×)Ñ)×;Ñ;¸OÈSÏYÉYÓWóð ô �cœ9×FÑF×GÑGä#×*Ò*¬:°hÀÓ+PÓQÐQô �o¤t×,Ñ,´ä�OÐ%8¸$Ó?÷1
ñ 1
ð &5Ð$6Ñ!Ü˜¬¯©×9Ñ9Ø$3×$<Ñ$<Ñ!Ü˜¬×/Ñ/´Cñ 8
á%ó8
÷ 5
ñ 5
ð %4Ñ!ä$ÜØàUðòð	4ô ˜XÐ'<Ó=ˆCô ×)Ñ)×0Ñ0°Ó5Ð5øôG #ó 	ÜØPØ% c U¨"Ð-@Ð,AÀÐCØ[Ð\_Ð[`ÐaØ5Ô)×4Ñ4Ð5õ	ð	ûô@ ó 	4àÐ3Ñ3ŠCð	4ús#   ƒJ  ÉJ7 Ê 0J4Ê3J4Ê7K	ËK	Úleft_tyÚright_tyc           	      óì   •  UR                  5       nUR                  5       n[
        R                  " [        WW5      5      $ ! [         a'    [        SSU SU S3SS/[        R                  QS9   NPf = f)z,Checks if first arg is subclass of right argz(issubclass() with non-constant argumentszissubclass(r¥  r·  z7issubclass() with non-constant arguments not supported.z#Make sure your arguments are types.rú  )ra  rZ  r   r   r©  r   r@   r¦  )rl   r,  rt  ru  Ú
left_ty_pyÚright_ty_pys         rn   Úcall_issubclassÚBuiltinVariable.call_issubclass¯	  s„   € ð	Ø ×3Ñ3Ó5ˆJØ"×5Ñ5Ó7ˆKô ×)Ò)¬*°ZÀÓ*MÓNÐNøô #ó 		ÜØBØ% g Y¨b°°
¸!Ð<ØUà9ðä&×1Ñ1ðô	ð		ús   ‚ A Á.A3Á2A3c                 ó.   • [         R                  " X#5      $ rk   )r   ÚSuperVariable©rl   r,  r-  r.  s       rn   Ú
call_superÚBuiltinVariable.call_superÉ	  s   € ô ×&Ò& qÓ,Ð,rq   c                 ó  • US   n UR                  U5      $ ! [         a    [        U5      S:X  a  US   s $ e [         aI  n[	        U[
        R                  5      (       a$  UR                  5         UR                  S   s S nA$ e S nAff = f)Nr   r   r;   )	Únext_variabler   r�   r   r²   r   rJ   r  rC  )rl   r,  rh   rÔ  Úexs        rn   Ú	call_nextÚBuiltinVariable.call_nextÎ	  s‚   € ð �1‰gˆð
	Ø×$Ñ$ RÓ(Ð(øÜ(ó 	Ü�4‹y˜A‹~Ø˜A‘w’ØÜó 	Ü˜#œy×9Ñ9×:Ñ:Ø×$Ñ$Ô&Ø—y‘y ‘|Õ#Øûð		ús&   ‡ ˜B¸
BÁ=BÁ?BÂBÂBÚattrc                 ó  • UR                  5       (       aj  UR                  5       n[        U[        R                  5      (       a*  [        R
                  " [        UR                  U5      5      $ UR                  X5      $ g rk   )	r_  ra  r²   r   r¤   r@   r¨  r¥   Úcall_obj_hasattr)rl   r,  rõ  r…  r¸  s        rn   Úcall_hasattrÚBuiltinVariable.call_hasattrÞ	  sd   € ð ×"Ñ"×$Ñ$Ø×*Ñ*Ó,ˆDÜ˜#œy×8Ñ8×9Ñ9Ü ×1Ò1´'¸#¿&¹&À$Ó2GÓHÐHØ×'Ñ'¨Ó1Ð1Ørq   Úseqsc                 ó  • [         R                  " S5      nU(       a„  [        R                  S:¼  aV  [	        U5      S:X  a  SU;   d  [        USS[	        U5       S35        UR                  S[         R                  " S5      5      nO[        USS[	        U5       S35        U Vs/ s H,  nUR                  U5      (       a  UR                  U5      OUPM.     nn[        R                  " UUUR                  5       [        5       S	9$ s  snf )
NFrr  r;   rA  rd  rC  r+  z0 kwargsrD  )r@   re  rz  r{  r�   r7   r.  rT  rD  r   ÚMapVariablera  r=   )rl   r,  r¥   rŠ  ri   rA  rX  Úseq_lists           rn   Úcall_mapÚBuiltinVariable.call_mapè	  s	  € ô "×(Ò(¨Ó/ˆÞÜ×Ñ 7Ó*Ü˜F› qÓ(¨X¸Ó-?Ü'ØØØ-Ü˜v›;˜- wÐ/ô	ð  Ÿ™ HÔ.>×.EÒ.EÀeÓ.LÓM‘ä#ØØØÜ˜6“{�m 7Ð+ô	ñ ó
â�ð ,/×+FÑ+FÀr×+JÑ+JˆC×#Ñ# BÔ'ÐPSÒSÙð 	ð 
ô ×$Ò$ØØØ×,Ñ,Ó.Ü*Ó,ñ	
ð 	
ùò	
s   Â&3DrX  c                 ó�   • UR                  U5      (       a  UR                  U5      OUn[        R                  " UU[	        5       S9$ rN  )rT  rD  r   ÚFilterVariabler=   )rl   r,  r¥   rX  Úseq_or_lists        rn   Úcall_filterÚBuiltinVariable.call_filter
  sK   € ð ,/×+FÑ+FÀr×+JÑ+JˆC×#Ñ# BÔ'ÐPSð 	ô ×'Ò'ØØÜ*Ó,ñ
ð 	
rq   c                 ó`  • U R                   =(       a    [        U R                   U5      nU R                  [        L a>   [	        U R                  U5      n[        W5      (       d  [        R                  " XU5      $ [        R                  " XUS9$ ! [
         a    [        [
        U5         NXf = fr©   )r§   r"   r¥   rŠ  rÄ   rª  r   r¿   r>   rp  r   rÑ  )rl   r,  r¸  r§   r¦   s        rn   r;  ÚBuiltinVariable.var_getattr
  sˆ   € Ø—‘×>¤¨D¯K©K¸Ó!>ˆØ�7‰7”fÒð=Ü §¡¨Ó.�ô ˜E—?‘?ä&×,Ò,¨R¸Ó?Ð?Ü×(Ò(¨¸FÑCÐCøô "ó =Ü(¬¸Ö<ð=ús   ¾B ÂB-Â,B-r„  Údefaultc                 óì  • UR                  5       (       d  [        SSU SU SU S3SS/S9  UR                  5       nUR                  5       (       a  US:X  a  S	nUR                  R
                  R                  U5      (       av  [        U[        R                  5      (       aW  US
;   aQ  UR                  (       a@  UR                  R
                  R                  U5      (       a  [        SSU SU SU S3S/ S9  UR                  R
                  R                  X%5      (       a%  UR                  R
                  R                  X%5      $ UbH  U R                  XU5      nUb1  UR                  SS5      (       d   eUR                  5       (       d  U$ OU$ UR                   =(       a    [#        UR                   U5      nUS;   aÝ   UR                  5       n[        U[$        5      (       a·  US:X  ad  ['        UR(                  5       V	V
s/ s H.  u  pš[*        R,                  " XU=(       a    [/        Xy5      5      PM0     nn	n
[        R0                  " X·S9$ US:X  a!  [*        R,                  " XR2                  U5      $ US:X  a   [4        R6                  " UR8                  5      $ [        U[        R<                  5      (       a  UR?                  X5      $ [        U[        R@                  [        RB                  [        R4                  [        RD                  [        RF                  [        RH                  [        RJ                  45      (       GaD  [        U[        RJ                  5      (       af  [M        URN                  RP                  [R        RT                  5      (       a3  [V        RX                  (       a  US;   a  [        SSU 3SU S3SU S3/S9  UR                  5       (       a˜  UR[                  5       R\                  R^                  S   n[        U[`        Rb                  5      (       aR  [e        U5      (       aB  URf                  (       a  [V        Rh                  (       d  [        SSS/ [j        Rl                  QS9   UR?                  X5      $ [        U[        Rr                  5      (       a»  [u        URN                  U5      n[        U[`        Rv                  Rx                  [`        Rv                  Rz                  45      (       aB  [`        R|                  R~                  R�                  U5      (       a  [        Rr                  " X×S9$ U[‚        ;   a  [        Rp                  " X%US9$ g [        U[„        5      (       a¬  UR†                  (       d  XRRN                  Rˆ                  ;  a  [u        URN                  U5      nOURN                  Rˆ                  U   n[V        RŠ                  (       a&  URŒ                  R�                  URN                  X]5        [*        R,                  " XU5      $ [‘        U[        R’                  5      (       a0  US;   a*  [4        R6                  " [u        UR”                  U5      5      $  UR?                  X5      $ s  sn
n	f ! [:         a     GNþf = f! [n         a    e [:         a    [        Rp                  " X%US9s $ f = f! [:         a    [        Rp                  " X%US9s $ f = f) Nz)getattr() with non-constant name argumentzgetattr(r¥  r·  z:getattr() with non-constant name argument is not supportedz1Ensure the name argument of getattr() is a stringrú  Ú_gradÚgrad)Únamed_parametersÚ
parametersÚnamed_buffersÚbuffersÚnamed_modulesÚmodulesz,getattr() on nn.Module with pending mutationzPIntentionally graph breaking on getattr() on a nn.Module with a pending mutationTF>   Ú__base__Ú	__bases__Ú	__flags__r¢  rª   r¡  r£  )ÚassertRaisesRegexÚassertNotWarnsÚassertWarnsRegexÚassertWarnszFailed to trace unittest methodzfunction: unittest.TestCase.z3Dynamo does not know how to trace unittest method `z` zAvoid calling `TestCase.z%`. Please report an issue to PyTorch.rY  zAttempted to wrap sparse Tensorrš  z-torch.compile does not support sparse Tensors)rr   rs   )Kr_  r   ra  rÒ  r>  rU  ru  r²   r   r   Úis_state_mutatedr%  Úhas_pending_mutation_of_attrÚ	load_attrrˆ  Úis_constant_matchr§   r"   r³   Ú	enumerater¢  r>   rp  r#   rP   r¡  r@   re  r£  rZ  r&  r;  rV   ÚNamedTupleVariablerC   ÚDistributedVariabler)  rZ   r¦  r¦   r`  ÚunittestÚTestCaser   Úenable_trace_unittestrÀ  rZ  r[  r�   ÚTensorr   rU  Úcapture_sparse_computer   ÚSPARSE_TENSORr<   rÑ  rÁ  rÄ   Ú_opsÚOpOverloadPacketÚ
OpOverloadÚ_dynamoÚtrace_rulesÚis_aten_op_or_tensor_methodr,   r!   Úis_torchrï   Úreplay_record_enabledÚexec_recorderÚrecord_module_accessr4   r$  r¥   )rl   r,  rõ  r„  r—  r¸  Úhasattr_varr§   r¦   rã  r.  Ú
tuple_argsÚfake_valÚmembers                 rn   Úcall_getattrÚBuiltinVariable.call_getattr'
  sË  € ð ×*Ñ*×,Ñ,ÜØCØ" 3 % r¨(¨°2°g°Y¸aÐ@ØXØJÐKò	ð ×*Ñ*Ó,ˆð �=‰=�?‰?˜t w›ØˆDà�9‰9×!Ñ!×7Ñ7¸×<Ñ<Ü˜#œy×FÑF×GÑGàðóð ×,×,ØŸ	™	×.Ñ.×CÑCÀC×HÑHä!Ø NØ"*¨3¨%¨r°$°°r¸'¸À!Ð Dð%2à òð �9‰9×!Ñ!×>Ñ>¸s×IÑIØ—9‘9×)Ñ)×3Ñ3°CÓ>Ð>àÑØ×+Ñ+¨B°XÓ>ˆKØÑ&Ø"×4Ñ4°T¸5×AÑAÐAÐAØ"×5Ñ5×7Ñ7Ø"�Nð 8ð �à—‘×<¤
¨3¯:©:°tÓ <ˆØÐ9Ó9ðØ×.Ñ.Ó0�Ü˜e¤T×*Ñ*Ø˜{Ó*ô
 )2°%·/±/Ô(Bô	&ò )C¡ ô ,×1Ò1Ø " v×'J´-ÀÓ2Jöñ )Cð	 #ñ &ô  )×6Ò6°zÑQÐQØ˜zÓ)Ü.×4Ò4°R¿¹ÈÓPÐPØ˜{Ó*Ü/×6Ò6°u·±ÓGÐGô �cœ9×5Ñ5×6Ñ6Ø—?‘? 2Ó,Ð,ÜØä×(Ñ(Ü×,Ñ,Ü×*Ñ*Ü×-Ñ-Ü×-Ñ-Ü×2Ñ2Ü×3Ñ3ð÷
ò 
ô ˜3¤	× CÑ C×DÑDÜ˜sŸy™y×2Ñ2´H×4EÑ4E×FÑFÜ×0×0Øðóô Ø=Ø:¸4¸&ÐAØ"UÐVZÐU[Ð[]Ð ^à2°4°&ð 9=ð =ðò	ð �}‰}�‰àŸ<™<›>×.Ñ.×3Ñ3°OÑD�ä˜x¬¯©×6Ñ6Ü% h×/Ñ/ØŸYŸY¬f×.K×.Kä!Ø AØ "Ø$SØ@Ô 1× ?Ñ ?Ð@ò	ðKØ—‘ rÓ0Ð0ô ˜œY×CÑC×DÑDä˜SŸY™Y¨Ó-ˆFÜØœŸ™×4Ñ4´e·j±j×6KÑ6KÐL÷ñ ä—-‘-×+Ñ+×GÑGÈ×OÑOÜ ×=Ò=¸fÑTÐTØÔ/Ó/Ü ×0Ò0°À6ÑJÐJàÜ˜œ[×)Ñ)à�|�|˜t¯9©9×+=Ñ+=Ó=Ü  §¡¨DÓ1‘àŸ™×+Ñ+¨DÑ1�ä×+×+Ø× Ñ ×5Ñ5°c·i±iÀÔNÜ"×(Ò(¨°VÓ<Ð<ä�Cœ×7Ñ7×8Ñ8¸Tð F
ó >
ô $×*Ò*¬7°3·6±6¸4Ó+@ÓAÐAðKØ—‘ rÓ0Ð0ùóK&øô 'ó Úðûôn 7ó ð Ü&ó KÜ ×0Ò0°À6ÑJÒJðKûô@ 'ó KÜ ×0Ò0°À6ÑJÒJðKúsU   ÇAZ È5ZÈ<Z É&Z É:%Z Ñ>Z" Ù:[ ÚZ Ú
ZÚZÚ")[Û[Û[3Û2[3r…  c                 ó
  • [        U[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  45      (       a  UR                  USX4/0 5      $ UR                  R                  R                  U5      (       Ga“  UR                  5       (       Ga}  UR                  5       nUR                  5       (       Ga/  SSKJn  US:X  a(  [%        SSU SU SU S3S	/ [&        R(                  QS
9  GOûUS:X  GaÀ  UR*                  c  [%        SSU SU SU S3SS/S
9  O1UR,                  UR,                  :w  a  [%        SSU SU SU S3SS/S
9  UR                  R.                   Vs/ s H   owR*                  UR*                  :X  d  M  UPM"     nnU H(  nUR                  R.                  R1                  U5        M*     [3        U5         [4        R6                  " 5          U" UUR                  R8                  " S[4        R:                  R<                  /[?        X$/0 5      Q76 5      n	S S S 5        S S S 5        S[4        R:                  S[4        R:                  4S jn
UR                  R9                  SU
W	RA                  5       40 5        U
" URA                  5       RB                  RD                  S   5        U	$ US;   a  SnO+[G        U5      (       a  [%        SSU SU SU S3SSU S3/S
9  UR                  R                  RI                  X%U5        U$ [        U[        RJ                  5      (       GaR  UR                  RM                  5       (       d   [%        SSU 3SS/[&        RN                  QS
9  UR                  5       (       aí  [        U[        RP                  5      (       aÎ  [S        URA                  5       RB                  U5      n URU                  XR                  5       5      nUb‡  UR                  5       (       ar  [S        URA                  5       RB                  U5      n[Z        R\                  " UR^                  S5      nXÛL a)  U[4        R`                  Rb                  Rd                  L a  U$ URg                  U5        g s  snf ! , (       d  f       GNl= f! , (       d  f       GNv= f! [V        [X        4 a    S n NÙf = f) Nrl  r;   r:  Úrequires_gradz!setattr() on Tensor.requires_gradzsetattr(r¥  r·  zÑsetattr() on Tensor.requires_grad not supported. Mutating requires_grad can introduce a new leaf from non-leaf or vice versa in the middle of the graph, which AOTAutograd does not currently know how to handle.rú  Údataz&Failed to mutate tensor data attributezVDyanmo only supports mutating `.data` of tensor created outside `torch.compile` regionzWDon't mutate `.data` on this tensor, or move the mutation out of `torch.compile` regionz9Failed to mutate tensor data attribute to different dtypezPDyanmo only supports mutating `.data` of tensor to a new one with the same dtyper<  r¸   r`   c                 óŒ   • U R                   nUS:”  a  US-
  n[        R                  R                  R	                  U 4U45        U $ r¶  )Ú_versionr�   Ú_CÚ	_autogradÚ_unsafe_set_version_counter)r¸   Úversions     rn   Ú_lower_version_count_by_1Ú?BuiltinVariable.call_setattr.<locals>._lower_version_count_by_1*  s>   € Ø"#§*¡*˜Ø" Q›;Ø&-°¡k˜GÜŸ™×*Ñ*×FÑFÈÀtÈgÈZÔXØ ˜rq   rY  )r™  rš  rš  zFailed to set tensor attributez6Dyanmo doesn't support setting these tensor attributeszDon't mutate attribute 'z@' on tensors, or move the mutation out of `torch.compile` regionz#nn.Module mutation in HigherOrderOpznn.Module: zPInplace modifying nn.Module params/buffers inside HigherOrderOps is not allowed.z<Remove the mutation or move it outside of the HigherOrderOp.)4r²   r   rC   ÚPlacementVariabler­  rZ   ÚNestedUserFunctionVariablerƒ  ÚTracebackVariabler0  r>  rU  ru  r_  ra  rÒ  r=  r;  r   r   r   r§   r{   Útracked_fakesÚremoveÚdynamo_disable_gradr�   Úno_gradr?  r²  Úset_r6   rÀ  rZ  r[  r2   Ú
store_attrr&  Úis_root_tracerÚFUNDAMENTALrV   r0   r;  rª  r   r  Úgetattr_staticÚmodule_typer\  ÚModulerl  Úconvert_to_unspecialized)rl   r,  rõ  r„  r…  r¸  r;  ÚtfÚ	to_remover9  rÎ  Úassigning_fake_valÚgetattr_varÚexisting_fake_attrÚmod_setattrs                  rn   Úcall_setattrÚBuiltinVariable.call_setattrÎ
  sŒ  € ô Øä×-Ñ-Ü×+Ñ+Ü×,Ñ,Ü×3Ñ3Ü×4Ñ4Ü×+Ñ+Ü×+Ñ+ð÷
ñ 
ð —?‘? 2 }°x°oÀrÓJÐJà�I‰I×"Ñ"×8Ñ8¸×=Ò=Ø×+Ñ+×-Ò-à×.Ñ.Ó0ˆDØ�}‰}�ŠÝ2ð ˜?Ó*ä!Ø CØ"*¨3¨%¨r°$°°r¸#¸¸aÐ @ð%lð ?Ô 1× =Ñ =Ð>ôð ˜V”^ð —z‘zÑ)Ü%Ø$LØ&.¨s¨e°2°d°V¸2¸c¸UÀ!Ð$Dð)Pð!Mð#ó	ð Ÿ™ c§i¡iÓ/Ü%Ø$_Ø&.¨s¨e°2°d°V¸2¸c¸UÀ!Ð$Dð)Jð!Mð#ò	ð" &(§Y¡Y×%<Ò%<ó!Ú%<˜rÇ	Á	ÈSÏZÉZÑ@WŸÑ%<ð ð !ó (˜ØŸ	™	×/Ñ/×6Ñ6°rÖ:ñ (ô -¨RÕ0´%·-²-µ/á+ØØŸI™I×2Ò2Ø /Ü %§¡× 1Ñ 1ðô "3°C°:¸rÓ!Bòó˜÷ 3B×0ð!´U·\±\ð !ÄeÇlÁlô !ð —I‘I×*Ñ*Ø'Ø1ØŸ™›Ð)Øô	ñ .¨c¯l©l«n×.AÑ.A×.FÑ.FÀÑ.WÔXð �JØÐ.Ó.ð "‘DÜ0°×6Ñ6ô "Ø @Ø"*¨3¨%¨r°$°°r¸#¸¸aÐ @Ø$\à6°t°fð =Nð Nðò	ð �I‰I×"Ñ"×-Ñ-¨c¸Ô=ØˆJÜ˜œY×7Ñ7×8Ò8Ø—9‘9×+Ñ+×-Ñ-ÜØAØ)¨#¨Ð/Ø ràVðä*×6Ñ6ðò	ð ×*Ñ*×,Ñ,´Ø”Y×-Ñ-÷2ñ 2ô &4°C·L±L³N×4GÑ4GÈÓ%LÐ"ð'Ø"%§/¡/°"×6QÑ6QÓ6SÓ"T�Kð Ñ*¨{×/DÑ/D×/FÑ/Fä)7¸×8LÑ8LÓ8N×8SÑ8SÐUWÓ)XÐ&ô #*×"8Ò"8¸¿¹È-Ó"X�Kà*Ò@Ø'¬5¯8©8¯?©?×+FÑ+FÒFà*Ð*à×(Ñ(¨Ô,ØùòA!÷ 3B¶/ú×0Ö0ûôR 'Ô(>Ð?ó 'Ø"&’Kð'úsC   Æ SÇSÈSÈA	SÉ!SÐS* Ó
S	ÓSÓ
S'Ó*S?Ó>S?c                 ó,   • UR                  USU/0 5      $ )NÚ__delattr__r4  )rl   r,  rõ  r„  s       rn   Úcall_delattrÚBuiltinVariable.call_delattrv  s   € ð �‰˜r =°8°*¸bÓAÐArq   c                 ó  •  UR                  5       nUR                  =(       a    [        UR                  5      nUc<  [        U[        R                  5      (       a  UR                  (       a  UR                  nU[        R                  L a5  UR                  R                  S[        5      n[!        [#        U5      S5      n[$        R&                  " XU5      $ ! [         a(  n[        [        R                  [        U5      SS9S eS nAff = f)NÚunknown_python_type)Ú	case_namerš  r²  )r_  rZ  r   r   ÚINVALID_INPUTrx   r§   r'   r²   r   rZ   Ú
cls_sourcer�   r²  r>  Úinstall_global_by_idr"   r$   r>   rp  )rl   r,  rõ  Úpy_typeÚerrorr§   r¸  s          rn   Ú	call_typeÚBuiltinVariable.call_type~  sÑ   € ð	Ø—o‘oÓ'ˆGð —‘×6¤
¨3¯:©:Ó 6ˆà‰NÜ˜3¤	× CÑ C×DÑDØ——à—^‘^ˆFØ”e—l‘lÒ"à—9‘9×1Ñ1°"´eÓ<ˆDÜ¤¨TÓ 2°HÓ=ˆFä×$Ò$ R°&Ó9Ð9øô' #ó 	ÜÜ×+Ñ+Ü�E“
Ø/ñð ð	ûð	ús   ‚C Ã
D
Ã"#DÄD
c                 ó¢   • UR                  U5      (       a9  [        [        UR                  U5      5      5      n[        R
                  " U5      $ g rk   )rT  rc  ÚreversedrD  r   rP   )rl   r,  rõ  rC  s       rn   Úcall_reversedÚBuiltinVariable.call_reversed˜  sC   € ð ×&Ñ& r×*Ñ*Üœ #×"9Ñ"9¸"Ó"=Ó>Ó?ˆEÜ×*Ò*¨5Ó1Ð1Ørq   c                 óò   • UR                  U5      (       aa  [        U[        R                  5      (       dB  [        R                  " UR                  U5      [        5       S9nUR                  US/ U5        U$ g )NrO  Úsort)rx  r²   r   rV   rL   ry  r=   r0  )rl   r,  rõ  ri   Úlist_vars        rn   Úcall_sortedÚBuiltinVariable.call_sorted   sp   € ð ×,Ñ,¨R×0Ñ0¼Ø”×)Ñ)÷:
ñ :
ô !×-Ò-Ø×-Ñ-¨bÓ1Ü.Ó0ñˆHð × Ñ   V¨R°Ô8ØˆOØrq   c                 ó2  • [        U[        5      (       a8  [        R                  " U[        R                  " UR                  5       5      S S9$ [        U[        5      (       a5  UR                  US5      R                  (       a  UR                  US/ 0 5      $ g )N©r“  Ú__neg__)
r²   rU   re  r˜   rÏ   rÀ  rZ   r‡  r¦   r0  ©rl   r,  r-  s      rn   Úcall_negÚBuiltinVariable.call_neg²  s|   € ô �aœ×)Ñ)Ü"×)Ò)ØÜ—’˜qŸz™z›|Ó,Øñð ô �qÔ3×4Ñ4Ø×"Ñ" 2 yÓ1×7×7à—=‘=  Y°°BÓ7Ð7ð rq   Ú_format_stringc                 óx   • UR                  5       n[        U5      n[        R                  R	                  XSU5      $ rk   )ra  rx   r   ÚStringFormatVariablere  )rl   r,  r  rh   ri   Úformat_strings         rn   Úcall_formatÚBuiltinVariable.call_formatÅ  s5   € ð '×9Ñ9Ó;ˆÜ˜MÓ*ˆÜ×-Ñ-×4Ñ4°]È&ÓQÐQrq   c                 ó0  • [        U5      S:”  at  [        US   [        R                  5      (       aR  US   nUR                  R                  UR                  5      n[        R                  R                  [        U5      5      $ [        U5      S:X  Ga
  [        US   [        R                  [        R                  45      (       aØ  US   R                  (       a�  [        US   [        R                  5      (       a6  [        US   R                  R                  [        R                   5      5        O5[        US   R                  R                  [        R"                  5      5        [        US   R$                  5      n[        R                  R                  U5      $ [        U5      S:X  a<  US   R'                  5       (       a$  [)        [*        US   5      nUR-                  U5      $ [/        US   [        R0                  5      (       a5  [        R                  R                  [        US   R2                  5      5      $ [/        US   [        R4                  5      (       a5  [        R                  R                  [        US   R$                  5      5      $ [/        US   [        R6                  5      (       a5  [        R                  R                  [        US   R8                  5      5      $ [;        S[=        U5      SU 3S/[>        R@                  QS9  g )Nr   r;   zid() with unsupported argsz5Dynamo doesn't know how to trace id() call with args zkSupported args are Tensors, and functions/nn.Modules/user-defined objects from outside the compiled region.rú  )!r�   r²   r   r&  r>  r}  r~  r@   re  Úidr)  rZ   r§   r    r«   r   ÚCLASS_MATCHÚID_MATCHr¦   rÒ  r
   rV   Úcall_idr4   r$  r¥   ÚSkipFunctionVariabler  Ú
fake_valuer   rx   r   r   )rl   r,  rh   Únn_mod_variablerÖ   Úconstant_resultÚtensor_variables          rn   r  ÚBuiltinVariable.call_idÐ  sL  € ô ˆt‹9�q‹=œZ¨¨Q©´×1KÑ1K×LÑLØ" 1™gˆOØ—)‘)×)Ñ)¨/×*DÑ*DÓEˆCÜ×-Ñ-×4Ñ4´R¸³WÓ=Ð=Ü�‹Y˜!Œ^¤
Ø�‰GÜ×/Ñ/´×1TÑ1TÐU÷!
ñ !
ð �A‰w�~�~Ü˜d 1™g¤y×'IÑ'I×JÑJÜ! $ q¡'§.¡.×";Ñ";¼L×<TÑ<TÓ"UÕVä! $ q¡'§.¡.×";Ñ";¼L×<QÑ<QÓ"RÔSÜ   a¡§¡Ó/ˆOÜ×-Ñ-×4Ñ4°_ÓEÐEÜ�‹Y˜!‹^  Q¡× 1Ñ 1× 3Ñ 3Ü"¤>°4¸±7Ó;ˆOØ"×*Ñ*¨2Ó.Ð.Ü�D˜‘GœY×;Ñ;×<Ñ<Ü×-Ñ-×4Ñ4´R¸¸Q¹¿
¹
³^ÓDÐDÜ�D˜‘GœY×;Ñ;×<Ñ<Ü×-Ñ-×4Ñ4´R¸¸Q¹¿¹Ó5FÓGÐGÜ�D˜‘GœY×?Ñ?×@Ñ@Ü×-Ñ-×4Ñ4´R¸¸Q¹×8JÑ8JÓ5KÓLÐLäØ4Ü˜D›	ØSÐTXÐSYÐZð8ðô '×2Ñ2ðó		rq   r¸   c                 óF   • [        SSU S3SS/[        R                  QS9  g )Nzcopy.deepcopy()zcopy.deepcopy(r·  z'Dynamo does not support copy.deepcopy()zAvoid calling copy.deepcopy()rú  )r   r   r   )rl   r,  r¸   s      rn   Úcall_deepcopyÚBuiltinVariable.call_deepcopy÷  s4   € ô 	Ø%Ø$ Q C qÐ)ØAà/ðä"×.Ñ.ðó		
rq   r  r€  c                 ó2  • SSK Jn  SSKJn  U R                  nU[
        R                  [
        R                  4;   aË  UR                  5       =(       ap    UR                  5       =(       aY    [        [        UR                  5       R                  5      5      [        [        UR                  5       R                  5      5      :H  nU[
        R                  L a  [        R                  " U5      $ [        R                  " U(       + 5      $ Xe;  aB  [        SUR                    SU SU S3SUR                    S	U SU 3/ ["        R$                  QS
9  ['        U[(        5      (       a{  ['        U[(        5      (       af  UR*                  =(       a    UR*                  bF  UR*                  UR*                  :w  a,   [,        R.                  " UR*                  UR*                  5        UR                  5       (       a  UOUnUR4                  R7                  SXbR                  5       UR                  5       40 5      n	U" [9        U5      UU	5      $ ! [0         aF    [        SUR                    SU SU S3SU SU SUR                    S3/ ["        R2                  QS
9   N¶f = f)Nr;   r¼  ©Ú%supported_tensor_comparison_op_valuesz unsupported Tensor comparison opr¶  r¥  r·  ú*Dynamo does not support the comparison op z with Tensor arguments rú  z8failed to broadcast when attempting Tensor comparison opz.Dynamo was unable to broad cast the arguments z, when attempting to trace the comparison op Ú.r<  )r=  r@  rì   r  r¥   r˜   ru  Úis_notrÒ  r  r.   rÀ  rZ  r@   re  r   rr   r   r   r²   rV   Úsizer�   Úbroadcast_shapesÚRuntimeErrorr©  r>  r?  r³   )
rl   r,  r  r€  r@  r  rŸ   Ú	is_resultÚ
tensor_clsr]  s
             rn   r‹  Ú'BuiltinVariable._comparison_with_tensor  s?  € õ 	/ÝAà�W‰Wˆà”(—,‘,¤§¡Ð0Ó0à—‘Ó ÷ IØ—O‘OÓ%÷IäÔ1°$·-±-³/×2FÑ2FÓGÓHÜÔ0°·±Ó1A×1FÑ1FÓGÓHñIð ð ”X—\‘\Ò!Ü'×.Ò.¨yÓ9Ð9ä'×.Ò.°9¬}Ó=Ð=àÓ:ÜØ:ØŸ;™;˜- q¨¨¨b°°°qÐ9ØHÈÏÉÈð V)Ø)-¨¨b°°ð9à6Ô)×5Ñ5Ð6òô �tœ^×,Ñ,Ü˜5¤.×1Ñ1Ø—‘×)˜uŸz™zÑ6Ø—	‘	˜UŸZ™ZÓ'ð
Ü×&Ò& t§y¡y°%·*±*Ô=ð "Ÿ^™^×-Ñ-‘T°5ˆ
Ø—	‘	×&Ñ&Ø˜R§-¡-£/°5·>±>Ó3CÐ!DÀbó
ˆñ !Ü�ÓØØó
ð 	
øô  ó äØVØ!Ÿ{™{˜m¨1¨T¨F°"°U°G¸1Ð=Ø"PÐQUÐPVÐVXÐY^ÐX_ð `BØBDÇ+Á+ÀÈað!Qà9Ô-×8Ñ8Ð9ôðús   Æ4+I ÉAJÊJc           
      óÞ  • SSK Jn  U R                  nXT;  aB  [        SUR                   SU SU S3SUR                   SU SU 3/ [
        R                  QS	9  [        U[        R                  5      (       a%  [        R                  " U" [        5       S 5      5      $ UR                  R                  S
XRR                  5       UR                  5       40 5      n[        R                   " UUS S9$ )Nr;   r  z!unsupported SymNode comparison opr¶  r¥  r·  r  z with SymNode arguments rú  r<  rÿ  )rì   r  r¥   r   rr   r   r   r²   r   r)  r@   rŠ  r>  r?  rÀ  rU   re  )rl   r,  r  r€  r  rŸ   r]  s          rn   r‡  Ú(BuiltinVariable._comparison_with_symnode;  sæ   € õ 	Bà�W‰WˆàÓ:ÜØ;ØŸ;™;˜- q¨¨¨b°°°qÐ9ØHÈÏÉÈð V*Ø*.¨¨r°%°ð:à6Ô)×5Ñ5Ð6òô �eœY×?Ñ?×@Ñ@Ü×-Ò-©b´³¸4Ó.@ÓAÐAà—	‘	×&Ñ&Ø˜R§-¡-£/°5·>±>Ó3CÐ!DÀbó
ˆô ×%Ò%ØØØñ
ð 	
rq   c           
      ó®  • [        U[        5      (       a  [        U[        5      (       a  g UR                  5       (       a`  UR                  5       (       aK  [        R                  " UUR
                  R                  " S[        R                  /[        X#/0 5      Q76 S S9$ [        U[        [        [        45      (       a  UR                  USU/0 5      $ g )Nr<  rÿ  r  )r²   r@   Úis_symnode_likerU   re  r>  r?  r˜   rÞ   r6   rD   rI   rZ   r0  r}  s       rn   Úcall_xorÚBuiltinVariable.call_xorX  s¿   € ô �aÔ)×*Ñ*¬z¸!Ô=M×/NÑ/NØØ×Ñ×Ñ 1×#4Ñ#4×#6Ñ#6Ü"×)Ò)ØØ—	‘	×&Ò&Ø#¤X§\¡\ðÜ4EÀqÀfÈbÓ4Qòð ñð ô ØÜœ{Ô,EÐF÷
ñ 
ð —=‘=  Y°°°RÓ8Ð8Ørq   c                 ón   • [        U[        [        [        45      (       a  UR	                  USU/0 5      $ g )Nr  ©r²   rD   rI   rZ   r0  r}  s       rn   Ú	call_ixorÚBuiltinVariable.call_ixorn  ó4   € ô �aÔ*¬KÔ9RÐS×TÑTØ—=‘=  Z°!°°bÓ9Ð9Ørq   c                 ón   • [        U[        [        [        45      (       a  UR	                  USU/0 5      $ g )Nr  r+  r}  s       rn   Úcall_subÚBuiltinVariable.call_subu  s4   € ô �aÔ*¬KÔ9RÐS×TÑTØ—=‘=  Y°°°RÓ8Ð8Ørq   c                 ón   • [        U[        [        [        45      (       a  UR	                  USU/0 5      $ g )Nr  r+  r}  s       rn   Ú	call_isubÚBuiltinVariable.call_isub|  r.  rq   c           
      ó®  • [        U[        5      (       a  [        U[        5      (       a  g UR                  5       (       a`  UR                  5       (       aK  [        R                  " UUR
                  R                  " S[        R                  /[        X#/0 5      Q76 S S9$ [        U[        [        [        45      (       a  UR                  USU/0 5      $ g )Nr<  rÿ  Ú__and__)r²   r@   r'  rU   re  r>  r?  r˜   rÜ   r6   rD   rI   rZ   r0  r}  s       rn   Ú	call_and_ÚBuiltinVariable.call_and_ƒ  s¸   € ô �aÔ)×*Ñ*¬z¸!Ô=M×/NÑ/NØØ×Ñ×Ñ 1×#4Ñ#4×#6Ñ#6Ü"×)Ò)ØØ—	‘	×&Ò&Ø#¤X§]¡]ðÜ5FÈÀvÈrÓ5Ròð ñð ô �aÔ*¬KÔ9RÐS×TÑTØ—=‘=  Y°°°RÓ8Ð8àrq   c           
      ó®  • [        U[        5      (       a  [        U[        5      (       a  g UR                  5       (       a`  UR                  5       (       aK  [        R                  " UUR
                  R                  " S[        R                  /[        X#/0 5      Q76 S S9$ [        U[        [        [        45      (       a  UR                  USU/0 5      $ g )Nr<  rÿ  Ú__iand__)r²   r@   r'  rU   re  r>  r?  r˜   rè   r6   rD   rI   rZ   r0  r}  s       rn   Ú	call_iandÚBuiltinVariable.call_iand–  s¸   € ô �aÔ)×*Ñ*¬z¸!Ô=M×/NÑ/NØØ×Ñ×Ñ 1×#4Ñ#4×#6Ñ#6Ü"×)Ò)ØØ—	‘	×&Ò&Ø#¤X§]¡]ðÜ5FÈÀvÈrÓ5Ròð ñð ô �aÔ*¬KÔ9RÐS×TÑTØ—=‘=  Z°!°°bÓ9Ð9Ørq   c           
      óÌ  • [        U[        5      (       a  [        U[        5      (       a  g UR                  5       (       a`  UR                  5       (       aK  [        R                  " UUR
                  R                  " S[        R                  /[        X#/0 5      Q76 S S9$ [        U[        [        [        [        [        [        45      (       a  UR!                  USU/0 5      $ g )Nr<  rÿ  Ú__or__)r²   r@   r'  rU   re  r>  r?  r˜   rÝ   r6   rB   rD   rX   rI   rY   rZ   r0  r}  s       rn   Úcall_or_ÚBuiltinVariable.call_or_¨  sÍ   € ô �aÔ)×*Ñ*¬z¸!Ô=M×/NÑ/NØØ×Ñ×Ñ 1×#4Ñ#4×#6Ñ#6Ü"×)Ò)ØØ—	‘	×&Ò&Ø#¤X§\¡\ðÜ4EÀqÀfÈbÓ4Qòð ñð ô Øä!Ü Ü&ÜÜ'Ü)ð÷

ñ 

ð —=‘=  X°¨s°BÓ7Ð7ð rq   c           
      óÂ  • [        U[        5      (       a  [        U[        5      (       a  g UR                  5       (       a`  UR                  5       (       aK  [        R                  " UUR
                  R                  " S[        R                  /[        X#/0 5      Q76 S S9$ [        U[        [        [        [        [        45      (       a  UR                  USU/0 5      $ g )Nr<  rÿ  Ú__ior__)r²   r@   r'  rU   re  r>  r?  r˜   rê   r6   rB   rD   rX   rI   rZ   r0  r}  s       rn   Úcall_iorÚBuiltinVariable.call_iorÊ  sÊ   € ô �aÔ)×*Ñ*¬z¸!Ô=M×/NÑ/NØØ×Ñ×Ñ 1×#4Ñ#4×#6Ñ#6Ü"×)Ò)ØØ—	‘	×&Ò&Ø#¤X§\¡\ðÜ4EÀqÀfÈbÓ4Qòð ñð ô Øä!Ü Ü&ÜÜ)ð÷	
ñ 	
ð —=‘=  Y°°°RÓ8Ð8ð rq   c           
      ó”  • [        U[        5      (       aK  [        R                  " UUR                  R                  " S[
        R                  /[        U/0 5      Q76 S S9$ [        U[        5      (       a  UR                  n[        U[        [        45      (       a,  [        R                  " [        UR                  5      S:H  5      $ g )Nr<  rÿ  r   )r²   rU   re  r>  r?  r˜   rÐ   r6   rE   Údv_dictrL   rB   r@   r�   rC  r  s      rn   Ú	call_not_ÚBuiltinVariable.call_not_é  s¥   € ô �aœ×)Ñ)Ü"×)Ò)ØØ—	‘	×&Ò&Ø#¤X§]¡]ðÜ5FÈÀsÈBÓ5Oòð ñð ô �aÔ)×*Ñ*Ø—	‘	ˆAÜ�aœ,Ô(9Ð:×;Ñ;Ü#×*Ò*¬3¨q¯w©w«<¸1Ñ+<Ó=Ð=àrq   c                 ó,   • UR                  USU/0 5      $ )NÚ__contains__r4  r}  s       rn   Úcall_containsÚBuiltinVariable.call_containsý  s   € ð �}‰}˜R °!°°bÓ9Ð9rq   Tc                 ó   • g)NTre   rô   s    rn   Úis_python_hashableÚ"BuiltinVariable.is_python_hashable  s   € Ørq   c                 ó,   • [        U R                  5      $ rk   )Úhashr¥   rô   s    rn   Úget_python_hashÚBuiltinVariable.get_python_hash  s   € Ü�D—G‘G‹}Ðrq   Úotherc                 ót   • [        U[        R                  5      =(       a    U R                  UR                  L $ rk   )r²   r   r¤   r¥   )rl   rT  s     rn   Úis_python_equalÚBuiltinVariable.is_python_equal  s'   € Ü˜%¤×!:Ñ!:Ó;×SÀÇÁÈ5Ï8É8Ð@SÐSrq   r7  )rÈ  r\   r`   Nrk   )}rr   rs   rt   ru   rv   rŠ  Ú	_SENTINELr>   Ú_nonvar_fieldsÚclassmethodr	   r&   r®   Ústaticmethodr·  Úcacher€  r   rñ   r¾   rõ   rÿ   rw   r–  rc  rx   r   r³   r—  r˜  r   r«  r®  r²  r¹  ra  rÀ  rÉ  rÍ  rÕ  rÚ  rä  r   ré  rì  r7  r=  r6  ra  Ú__annotations__r<  r0  r�  Úcall_intÚ
call_floatr—  r   r®  r³  r±  r²  Úcall_minÚcall_maxrÖ  rÜ  rà  rå  rë  rê  rô  r÷  r  r  r
  r  Ú
call_tupleÚ	call_listr  r  r  r!  r  r~  r7  r>  rH  rL  rP  rr  ry  r~  rƒ  rˆ  rŽ  r“  r;  rÃ  rå  ré  ró  r÷  rü  r  r  r  r  r‹  r‡  r(  r,  r0  r3  r7  r;  r?  rC  rG  rK  r   rN  rÅ   rR  rV  ry   Ú__classcell__)r`  s   @rn   r¤   r¤     sB  ø‡ ññ “€Iàðà	×	'Ñ	'ð€Nð
 ð) sð )°Fð )Ð?Pó )ó ð)ð Ø‡_�_ð@ c¨(°3¸°8Ñ*<Ñ&=ó @ó ó ð@ðD:¨4ô :ð Ø‡_�_ð*  X¨c°3¨hÑ%7Ñ!8ó *ó ó ð*ðX Ø‡_�_ð#�TØ��f�Ñ˜u T¨#¡Y°¸¸f¸Ñ0EÐ%EÑFÐFñó #ó ó ð#ðJ Ø‡_�_ðy˜TØ��f�ÑØØØØ˜Ñ)Ø!ð#ñð !ð	"ññ	
ð		ñó yó ó ðyðv ðØ�S˜#�XÑðØ(,¨_Ñ(=ðØGKðà	ÐÑ	 $Ñ	&óó ðð5 Tô 5ð˜3ð ¨#ð °$÷ ð4˜#ô 4ð Cô ð"˜#÷ "ôJð1 ?ð 1¸oð 1ÐRVô 1ð ð °Tô ð¨$¨t©*ð ¸ô ð3Ø$ð3Ø0?ð3à	ô3ð ð
Ø�Ñ'ð
Ø15°c¸?Ð6JÑ1Kð
à	ˆt�C‰y˜$˜s C˜x™.Ð(Ñ	)ó
ó ð
ð
Ø˜_Ñ-ð
Ø7;¸CÀÐ<PÑ7Qð
à	ô
ð ðq Ø�S˜#�XÑðq Ø+/°©:ðq ØCGðq à	à#Ø�/ 3Ð&Ñ'Ø��oÐ%Ñ&ð	
ð
 	˜$Ñð	 ñ
óq ó ðq ðf4Ð3ð 4¸Cð 4ÀOô 4ðNà#ðNð �Ñ'ðNð �S˜/Ð)Ñ*ð	Nð
 
˜4Ñ	ôNðt 	ð   Øˆf�cˆkÑØà'Ø˜Ñ)Ø�S˜/Ð)Ñ*ðð
 ðñ	
ð	ñ
"ó 
ð)à#ð)ð �Ñ'ð)ð �S˜/Ð)Ñ*ð	)ð
 
ô)ð*C;à#ðC;ð ðC;ð �?Ñ#ð	C;ð
 �S˜/Ð)Ñ*ðC;ð 
÷C;ðJØ)ðØ0?ðà	˜4Ñ	ôð0 €HØ €JðØ)ðØ0?ðà	˜4Ñ	ôð<$Ø)ð$Ø0?ð$à	˜4Ñ	ô$ðL:Ø)ð:Ø0?ð:à	˜4Ñ	ô:ðx
Ø)ð
Ø2Að
à	˜4Ñ	ô
ðYØ)ðYØ2:¸?Ñ2KðYà	ôYðjà#ðjð ˜TÑ!ðjð ˜TÑ!ð	jð
 
˜4Ñ	ôjðX €HØ€Hð	4Ø)ð	4Ø0?ð	4à	ô	4ð	4Ø)ð	4Ø0?ð	4à	ô	4ðAØ)ðAØ0?ðAà	ôAð<à#ð<ð ð<ð ð	<ð
 "ð<ð 
ô<ðØ)ðØ2Aðà	˜4Ñ	ôð
 ?ð 
¸oð 
ÐRVô 
ð
1Ø)ð1Ø2Að1à	ô1ð


Ø)ð

Ø25ð

ØADð

à	ô

ð  '+ñ1à#ð1ð ˜tÑ#ð1ð ð	1ð
 "ð1ð 
˜4Ñ	õ1ðf
à#ð
ð ð
ð ð	
ð
 "ð
ð 
ô
ð  '+ñHà#ðHð ˜tÑ#ðHð ð	Hð
 "ðHð 
˜4Ñ	õHð*&à#ð&ð ð&ð ð	&ð
 "ð&ð 
ô&ðP "€JØ €IðØ)ðØ0?ðà	˜4Ñ	ôðB
Øð
Ø,ð
Ø8Gð
à	˜4Ñ	ô
ðØ)ðØ0?ðà	˜4Ñ	ôðKà#ðKð ð	Kð
 "ðKð 
ôKð ð
Ø#ð
àð
ð ð	
ð
 "ð
ð 
ó
ó ð
ð0 ðP
Ø#ðP
àðP
ð ð	P
ð
 "ðP
ð 
óP
ó ðP
ðd)
à#ð)
ð ð)
ð "ð	)
ð
 
ô)
ðV
à#ð
ð ð
ð "ð	
ð
 
ô
ð>
à#ð
ð ð
ð "ð	
ð
 
ô
ð6	Eà#ð	Eð ð	Eð "ð		Eð
 
ô	EðNà#ðNð ðNð "ð	Nð
 
ôNðk6à#ðk6ð ðk6ð -ð	k6ð
 
ôk6ðZOà#ðOð !ðOð "ð	Oð
 
ôOð4-Ø)ð-Ø.=ð-ØBQð-à	ô-ð
Ø)ðØ2Aðà	ôð Ø)ðØ0?ðØGVðà	˜4Ñ	ôð#
à#ð#
ð ð#
ð ð	#
ð
 "ð#
ð 
ô#
ðJ

Ø)ð

Ø/>ð

ØETð

à	ô

ðDÐ5ð D¸Sð DÀ_ô Dð& +/ñeKà#ðeKð ðeKð "ð	eKð
 ! 4Ñ'ðeKð 
˜4Ñ	õeKðNfà#ðfð ðfð "ð	fð
 ðfð 
˜4Ñ	ôfðPBà#ðBð ðBð "ð	Bð
 
ôBð:Ø)ð:Ø0?ð:à	ô:ð4Ø)ðØ0?ðà	˜4Ñ	ôðà#ðð ðð "ð	ð
 
˜4Ñ	ôð$Ø)ðØ.=ðà	˜4Ñ	ôð&	Rà#ð	Rð (ð	Rð ð		Rð
 "ð	Rð 
ô	Rð%Ø)ð%Ø2Að%à	ô%ðN
Ø)ð
Ø.=ð
à	ô
ð5
Ø)ð5
Ø1@ð5
ØIXð5
à	ô5
ðn
Ø)ð
Ø1@ð
ØIXð
à	ô
ð:Ø)ðØ.=ðØBQðà	˜4Ñ	ôð,Ø)ðØ.=ðØBQðà	˜4Ñ	ôðØ)ðØ.=ðØBQðà	˜4Ñ	ôðØ)ðØ.=ðØBQðà	˜4Ñ	ôðØ)ðØ.=ðØBQðà	˜4Ñ	ôð&Ø)ðØ.=ðØBQðà	˜4Ñ	ôð$ Ø)ð Ø.=ð ØBQð à	˜4Ñ	ô ðDØ)ðØ.=ðØBQðà	˜4Ñ	ôð>Ø)ðØ.=ðà	˜4Ñ	ôð(:Ø)ð:Ø.=ð:ØBQð:à	ô:ð
 G¨D¡Mô ð ô ðT Vð T°÷ Tò Trq   r¤   r,  c              #   ó¶   #   • SSK Jn  UR                  U S5      n UR                  U 5        S v •  UR	                  U 5        g ! UR	                  U 5        f = f7f)Nr;   )ÚGradModeVariableF)rš  rf  re  ÚenterÚexit)r,  rf  Úgmvs      rn   rÕ  rÕ    sC   é € å"à
×
!Ñ
! " eÓ
,€CðØ�	‰	�"ŒÛà�‰��øˆ�‰��üs   ‚AœA ±AÁAÁA)r`   N)¾rv   Ú
contextlibr·  r  rà  Úloggingr´   r˜   rz  rg   Útypingr¯  Úcollectionsr   r   Úcollections.abcr   r   r   r   r	   r
   r   r   r   r�   r   r   Útorch._subclasses.meta_utilsr   Útorch.overridesr   Útorch.utils._python_dispatchr   rš  r   r   r   r   rf  r   r   r   r   r   r   r   Úguardsr   r    Úreplay_recordr!   r§   r"   r#   r$   r%   r&   r'   Úutilsr(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   Úbaser<   r=   r>   Úconstantr?   r@   rA   ÚdictsrB   rC   rD   rE   rF   rG   rH   rI   ÚlistsrJ   rK   rL   rM   rN   rO   rP   ÚstreamsrQ   rR   rì   rS   rT   rU   rV   rW   r•  rX   rY   rZ   r[   Útorch._dynamo.codegenr\   Útorch._dynamo.symbolic_convertr]   Ú	getLoggerrr   r  rä   r×   rå   rØ   rà   rÓ   rá   rÔ   râ   rÕ   rã   rÖ   rš   ræ   rÚ   rç   rÛ   rß   rÉ   rè   rÜ   rê   rÝ   ré   rÞ   rW  r˜  r³   r–  r—  rý   Úcmp_eqrü   Úcmp_nerø   Úcmp_ltrû   Úcmp_lerù   Úcmp_gtrú   Úcmp_gerq  r™   r•   r–   rÒ   r”   r›   r—   r»   rÎ   rÏ   rÐ   rÙ   r“   r^   rw   r]  r_   r¢   r¤   ÚcontextmanagerÚIteratorrÕ  re   rq   rn   Ú<module>r…     sT  ðòó* Û Û Û Û Û Û Û 
Û Û Û ß 0ß BÓ Bß ;Õ ;ã ß $Ý 6Ý 1Ý Fç >Ó >÷÷ ñ ÷ 1Ý '÷÷ ÷÷ ÷ ÷ ÷ ñ ÷* YÑ Xß LÑ L÷	÷ 	ó 	÷÷ ñ ÷ 3÷õ ÷ó ö å/ÝDà×Ò˜Ó!€ð ‡M�M�8—<‘<Ø‡M�M�8—<’<Ø‡M‚M�8—<’<Ø×Ò˜×)Ò)Ø×Ò�x×'Ò'Ø‡M‚M�8—<’<Ø×Ò�h×&Ò&Ø×Ò�h—o’oØ×Ò�h—o’oØ‡M‚M�8—<’<Ø‡M‚M�8—=’=Ø‡L‚L�(—,’,Ø‡M‚M�8—<’<ðÐ ð" Ø˜fŸj™j¨&¯*©*Ð5°ÈÑ7MÐMñÐ ð �d˜?Ñ+¨U°4¸Ñ3HÈ#Ð3MÑ-NÐNÑO€à‡K‚K�×!Ò!Ø‡K‚K�×!Ò!Ø‡K‚K�×!Ò!Ø‡K‚K�×!Ò!Ø‡K‚K�×!Ò!Ø‡K‚K�×!Ò!ðÐ ð ‡L‚LØ‡L‚LØ‡O‚OØ×ÒØ×ÒØ‡L‚LØ‡L�LØ‡K‚KØ‡K‚KØ‡K‚KØ‡K‚KØ‡K‚KØ‡K‚KØ‡L‚LØ‡M‚MØ‡M‚MØ×ÒØ×ÒØ×ÒØ‡M‚MØ‡M�MØ‡M�Mð-€ð4 ‡M‚MØ‡L‚LØ‡L‚LØ‡M‚MØ‡M‚MØ‡L‚Lð€ð �oŠoÐ€
ð ‡O‚OØ‡O‚OØ×ÒØ×ÒØ×ÒðÐ ð ‡L‚LØ‡L‚LØ‡L‚LØ‡M‚MØ×Òð
€ð JLÐ ˜$˜x¨¨S¨Ñ1°8¸CÀ¸HÑ3EÐEÑFÓ Kð KMÐ ˜4 ¨¨c¨Ñ 2°H¸SÀ#¸XÑ4FÐ FÑGÓ Lô>EôBk/T�oô k/Tð\_ ×ÒðÐ3ð ¸¿ºÈÑ8Mó ó ñrq   