§
    C�’j‚µ ã                   óŒ  — U d Z ddlZddlZddlZddlZddlZddlZddlmZm	Z	 ddl
mZ ddlmZmZmZmZmZ ddlmZ ddlZddlZddlZddlZddlmc mZ ddlmZ ddlmZ dd	lm Z  dd
l!m"Z" ddl#m$Z$m%Z%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z.m/Z/m0Z0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6m7Z7 ddl8m9Z9 ddl:m;Z;m<Z<m=Z=m>Z>m?Z? ddl@mAZAmBZB ddlCmDZDmEZEmFZFmGZGmHZH ddlmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZR ddlSmTZTmUZU ddlVmWZWmXZXmYZYmZZZ ddl[m\Z\ ddl]m^Z^m_Z_m`Z` ddlambZbmcZc ddldmeZe ddlfmgZg dd lhmiZimjZjmkZkmlZl dd!lmmnZn 	 ddloZpn# eq$ r dZpY nw xY w	 dd"lrmsZs n# eq$ r dZsY nw xY werdd#ltmuZu dd$lvmwZw dd%lmxZx  ed&¦  «        Zy ed'¦  «        Zz ej{        e|¦  «        Z}e~                     ej€        j€        j�        ej‚        jƒ        j„        ej‚        jƒ        j…        ej‚        j€        j�        ej‚        j€        j†        ej‡        jˆ        ej‡        j‰        ejŠ        j‹        jŒ        ejŠ        j�        jŽ        ejŠ        j�        j�        ejŠ        j�        j�        ej‘        j’        j“        ej‚        j”        j•        ej‚        j”        j–        ej‚        j”        j—        ej‚        j”        j˜        ej‚        j™        jš        ej›        j‘        j’        j“        ejœ        j‘        j’        j“        ej�        jž        jŸ        ej�        jž        jŸ        j         ej¡        j¢        j£        j         g¦  «        Z¤e~                     ej¥        g¦  «        Z¦ej‡        jŠ        j§        ej¨        j©        ej¨        jª        ejœ        j«        ejœ        j¬        ej­        j«        ej­        j¬        ej®        j¯        gZ°ej±        ej²        j³        ej‡        j´        ej‡        jµ        ej¨        j¶        ejœ        j·        ejœ        j¶        ej[        j¶        ej¸        ej¹        ejº        ej»        ej¼        ej½        ej¾        ej¿        ej¡        jÀ        jÁ        jÂ        ejÃ        ej‡        jÄ        ej‚        jÅ        ej­        j·        ej­        j¶        ge°z   ZÆej[         ¶                    ¦   «         r6eÆ Ç                    ej[        j¬        ej[        jÈ        ej[        jÉ        g¦  «         e~                     e°¦  «        Z°e~                     eÆ¦  «        ZÆ eÊh ejË        ’ejÌ        ’ejÍ        ’ejÎ        ’ejÏ        ’ejÐ        ’ejÑ        ’ejÒ        ’ejÓ        ’ejÔ        ’ejÕ        ’ejÖ        ’ej×        ’ejØ        ’ejÙ        ’ejÚ        ’ejÛ        ’ejÜ        ’ejÝ        ’ejÞ        ’ejß        ’ejà        ’ejá        ’ejâ        ’ejã        ’ejä        ’ejå        ’ejæ        ’ejç        ’ejè        ’ejé        ’ejê        ’ejë        ’¦  «        ZìeÊed(ef                  eíd)<    eÊd*„ eìD ¦   «         ¦  «        ZîeÊeï         eíd+<   ejð        d,e~eg ef         eñdz  f         fd-„¦   «         Zòe~                     g d.¢¦  «        Zóej‡        jô        ej‡        jõ        ej‡        jö        hZ÷d/eUd0eïd,dfd1„Zød2ejù        d,eúej‚        j™        jû                 fd3„Züd/eUd,eýeþejù        eïdz  f                  fd4„Zÿd/d5d,eýej�        jû                 fd6„�Z ejð        d,eúed(ef                  fd7„¦   «         �Z G d8„ d9eU¦  «        �Z G d:„ d;�e¦  «        �Z G d<„ d=e�j        ¦  «        �Z G d>„ d?�e¦  «        �Z G d@„ dA�e¦  «        �Z G dB„ dC�e¦  «        �ZdS )Dak  
This module implements variable tracking for torch functions and operations during Dynamo tracing.

It provides classes to handle different types of torch operations:

TorchInGraphFunctionVariable: Handles torch.* functions that should be captured in the FX graph.
Provides special handling for constant folding, tensor methods, and torch function overrides.
Manages complex cases like out= variants and parameter construction.

TorchCtxManagerClassVariable: Handles torch context managers like torch.no_grad(), autocast, etc.
Provides implementations for entering/exiting these contexts during tracing.

DispatchKeySetVariable: Represents torch.DispatchKeySet for managing dispatch keys and
device-specific operations during tracing.

The module includes special handling for:
- Constant folding of pure functions
- Tensor method calls
- torch.nn.Parameter construction
- __torch_function__ overrides
- Context manager state tracking
- Device and dtype management

This is a core part of Dynamo's tracing system, translating torch operations into
traceable graph nodes while preserving correct semantics and handling edge cases.
é    N)ÚCallableÚIterable)Únullcontext)ÚAnyÚNoReturnÚTYPE_CHECKINGÚTypeVarÚUnion)ÚTypeIs)ÚDispatchKeySet©ÚConstantVariable)ÚStreamVariable)ÚTorchFunctionModeVariable)ÚGuardÚSourceÚTracingContext)Úwarning_once)ÚGradientEdge)Ú"is_traceable_wrapper_subclass_typeé   )ÚconfigÚgraph_break_hintsÚ	polyfillsÚ	variables)Ú	PyCodegen)Ú!can_convert_to_tracable_parameterÚnew_parameter_placeholderÚtracable_create_parameter)Ú get_registered_device_interfaces)Úraise_observed_exceptionÚraise_type_errorÚunimplementedÚ	UserErrorÚUserErrorType)ÚGuardBuilderÚinstall_guard)Ú
AttrSourceÚCallFunctionNoArgsSourceÚGlobalStateSourceÚImportSourceÚSyntheticLocalSource)
Ú_is_tensorify_enabledÚcheck_unspec_or_constant_argsÚguard_if_dynÚhas_torch_functionÚhashableÚis_wrapper_or_member_descriptorÚproductÚproxy_args_kwargsÚunpack_iterableÚunwrap_if_wrapperé   )ÚtypestrÚVariableTracker)ÚAutocastModeVariableÚProfilerContextVariableÚ%ProfilerRecordFunctionContextVariableÚTorchFunctionDisableVariable)ÚDistributedVariable)Úbind_args_cachedÚClosureConversionErrorÚNestedUserFunctionVariable)ÚListVariableÚTupleVariable)Úvt_is_iterable)ÚTorchScriptObjectVariable)Úcan_dispatch_torch_functionÚdispatch_torch_functionÚTensorWithTFOverrideVariableÚTorchFunctionModeStackVariable)ÚUserDefinedTupleVariable)Ú_fsdp_param_group)ÚInstructionTranslatorBase)Ú
OpaqueBase)ÚTreeSpecÚVÚT.Úops_consuming_unbacked_scalarsc              #   óv   K  — | ]4}|j         |j         d z   fD ] }t          t          j        |¦  «        ¯|V — Œ!Œ5dS )Ú_N)Ú__name__ÚhasattrÚtorchÚTensor)Ú.0ÚfnÚnames      úKC:\Projects\DSCons\.venv\Lib\site-packages\torch\_dynamo\variables\torch.pyú	<genexpr>r\     sm   è è € ð ?ð ?à
Ø”˜bœk¨CÑ/Ð0ð?ð ?ð 	Ý�uŒ|˜TÑ"Ô"ð	?Øð?ð ?ð ?ð ?ð ?ð ?ð ?ó    Ú"methods_consuming_unbacked_scalarsÚreturnc                  óü  — t           j        j        dt           j        j        dt           j        j        d t           j        j        j        dt           j        j        j	        dt           j
        j        dt           j        j        j        dt           j        j        dt           j        j        dt           j        j        dt           j        j        dt           j        j        j        dt           j        j        j        j        diS )NFT)rV   ÚjitÚis_scriptingÚ
is_tracingÚ_CÚ_get_tracing_stateÚfxÚ_symbolic_traceÚis_fx_tracingÚis_fx_symbolic_tracingÚonnxÚis_in_onnx_exportÚ_dynamoÚexternal_utilsÚis_compilingÚ_utilsÚcompilerÚis_dynamo_compilingÚis_exportingÚ
eval_frameÚ_is_in_optimized_moduleÚnnÚmodulesÚ
activationÚ_is_make_fx_tracing© r]   r[   Útracing_state_functionsrz     s¤   € õ 	Œ	Ô ÝŒ	Ô˜eÝŒÔ# TÝŒÔ Ô.°ÝŒÔ Ô7¸ÝŒ
Ô$ eåŒÔ$Ô1°4åŒÔ! 4ÝŒÔ# TÝŒÔ*¨DÝŒÔ# TÝŒÔ Ô8¸$õ 	ŒÔÔ#Ô7¸ð#ð r]   )ÚaddÚsubÚmulÚdivÚsqrtÚvarÚarg_namec                 óÆ  — ddl m} ddlm} t	          | t
          ¦  «        rbt          | j        ¦  «        t          u rG| j	        r| j	        j
        nd}d|› �}|r|d|› �z  }t          d|dd	d
gt          j        ¢¬¦  «         dS t	          | |¦  «        r2t          | j        ¦  «        D ]\  }}t!          ||› d|› d�¦  «         ŒdS t	          | |¦  «        r‰| j                             ¦   «         D ]q\  }}|j                             ¦   «         s"t          dd|› �dg t          j        ¢¬¦  «         |j                             ¦   «         }	t!          ||› d|	›d�¦  «         ŒpdS dS )z¸Check if var contains a GradientEdge from outside the compiled region.

    Used by handle_autograd_grad to reject external GradientEdge objects that
    cannot be traced through.
    r7   ©ÚConstDictVariable©ÚBaseListVariableNzGradientEdge in z: z(autograd.grad with external GradientEdgea  torch.autograd.grad() cannot be used with GradientEdge inputs passed from outside the compiled region. The GradientEdge contains a reference to an autograd node that was created before torch.compile started tracing, so Dynamo cannot trace through its computation.z?Move the autograd.grad() call outside the torch.compile region.z>Or use tensor inputs directly instead of GradientEdge objects.©Úgb_typeÚcontextÚexplanationÚhintsú[ú]z(autograd.grad with non-constant dict keyznon-constant key in z;autograd.grad/backward dict inputs must have constant keys.)Údictsr„   Úlistsr†   Ú
isinstancerJ   ÚtypeÚvaluer   ÚsourcerZ   r#   r   ÚSUPPORTABLEÚ	enumerateÚitemsÚ_check_for_gradient_edgeÚvtÚis_python_constantÚas_python_constant)
r€   r�   r„   r†   Úsource_infor‰   ÚiÚitemÚhash_keyÚkey_reprs
             r[   r—   r—   =  s  € ð )Ð(Ð(Ð(Ð(Ð(Ø'Ð'Ð'Ð'Ð'Ð'å�#Õ/Ñ0Ô0ð #HµT¸#¼)±_´_ÍÐ5TÐ5Tà),¬Ð=�c”j”o�o¸ˆØ/ XÐ/Ð/ˆØð 	*ØÐ)˜KÐ)Ð)Ñ)ˆGåØ>ØðSð RØPðõ #Ô.ðð	
ñ 	
ô 	
ð 	
ð 	
ð 	
õ 
�CÐ)Ñ	*Ô	*ð HÝ  ¤Ñ+Ô+ð 	?ð 	?‰GˆAˆtÝ$ T¨hÐ+=Ð+=¸Ð+=Ð+=Ð+=Ñ>Ô>Ð>Ð>ð	?ð 	?å	�CÐ*Ñ	+Ô	+ð 
HØ!œiŸošoÑ/Ô/ð 		Hð 		H‰NˆH�dØ”;×1Ò1Ñ3Ô3ð ÝØFØ=°8Ð=Ð=Ø ]Ø:Õ-Ô9Ð:ð	ñ ô ð ð  ”{×5Ò5Ñ7Ô7ˆHÝ$ T¨hÐ+FÐ+F¸Ð+FÐ+FÐ+FÑGÔGÐGÐGð
Hð 
Hð		Hð 		Hr]   Útensorc                 ó€  — ddl m} ddlm} t	          ¦   «         }g } || ¦  «        r || |¬¦  «         n|                     | ¦  «         |D ]p}t          |t          j        ¦  «        sŒ|j	        �| 
                    |j	        ¦  «         |j        �+|j        j	        �| 
                    |j        j	        ¦  «         Œq|S )Nr   )Úget_plain_tensors©Úis_traceable_wrapper_subclass©Úout)Útorch._subclasses.fake_tensorr¢   Útorch.utils._python_dispatchr¤   ÚsetÚappendr�   rV   rW   Úgrad_fnr{   Ú_base)r    r¢   r¤   Úgrad_fnsÚplain_tensorsÚts         r[   Ú_collect_all_grad_fnsr°   l  så   € Ø?Ð?Ð?Ð?Ð?Ð?ØJÐJÐJÐJÐJÐJå/2©u¬u€HàJL€Mà$Ð$ VÑ,Ô,ð %ØÐ˜& mÐ4Ñ4Ô4Ð4Ð4à×Ò˜VÑ$Ô$Ð$àð 	*ð 	*ˆÝ˜!�Uœ\Ñ*Ô*ð 	ØàŒ9Ð Ø�LŠL˜œÑ#Ô#Ð#ð Œ7Ð 1¤7¤?Ð#>Ø�LŠL˜œœÑ)Ô)Ð)øà€Or]   c                 ó  — ddl m} ddlm} ddlm} ddlm} ddlm	} g }t          | |¦  «        �rE|                      ¦   «         j        j                             d¦  «        }t          |t          j        ¦  «        st#          d	t%          |¦  «        › �¦  «        ‚t          |t          j        j        j        ¦  «        rnˆ ||¦  «        r^g }t          j        j                             ||¬
¦  «         t/          d„ |D ¦   «         ¦  «        st#          dd„ |D ¦   «         › �¦  «        ‚nt#          dt%          |¦  «        › �¦  «        ‚| j        r| j        j        nd}	|                     ||	f¦  «         �nt          | |¦  «        r5|                     t9          |                      ¦   «         ¦  «        ¦  «         nËt          | |¦  «        r-| j        D ]$}
|                     t9          |
¦  «        ¦  «         Œ%nŽt          | |¦  «        r?| j                             ¦   «         D ]$}
|                     t9          |
¦  «        ¦  «         Œ%n?tA          ddt%          | ¦  «        j!        › �dt%          | ¦  «        j!        › d�dg¬¦  «         |S )zÇExtract (fake_tensor, source_name) pairs from a VariableTracker.

    Used by handle_autograd_grad to collect tensors from the outputs and inputs
    arguments for grad_fn reachability analysis.
    r   r£   r7   rƒ   ©ÚLazyVariableTrackerr…   ©ÚTensorVariableÚexample_valueú/Expected fake_tensor to be a torch.Tensor, got r¥   c              3   ó’   K  — | ]B}t          |t          j        ¦  «        ¯t          |t          j        j        j        ¦  «        V — ŒCd S ©N)r�   rV   rW   Ú_subclassesÚfake_tensorÚ
FakeTensor©rX   r¯   s     r[   r\   z0_collect_tensors_with_sources.<locals>.<genexpr>¨  s[   è è € ð ð àÝ˜a¥¤Ñ.Ô.ðÝ˜1�eÔ/Ô;ÔFÑGÔGðð ð ð ð ð r]   z2Expected all plain tensors to be FakeTensors, got c                 ó,   — g | ]}t          |¦  «        ‘ŒS ry   )r‘   r½   s     r[   ú
<listcomp>z1_collect_tensors_with_sources.<locals>.<listcomp>®  s   € ÐIaÐIaÐIaÐVWÍ$ÈqÉ'Ì'ÐIaÐIaÐIar]   z%Expected FakeTensor or subclass, got Nz,autograd.grad with unsupported argument typeúgot z3torch.autograd.grad() received an argument of type ú@ which is not supported. Expected tensor or sequence of tensors.úHEnsure outputs and inputs arguments are tensors or sequences of tensors.r‡   )"r¨   r¤   rŽ   r„   Úlazyr³   r�   r†   r    rµ   r�   Úas_proxyÚnodeÚmetaÚgetrV   rW   ÚAssertionErrorr‘   rº   r»   r¼   r¢   Úallr“   rZ   rª   ÚextendÚ_collect_tensors_with_sourcesÚrealizer–   Úvaluesr#   rT   )r€   r¤   r„   r³   r†   rµ   Úresultsr»   ÚplainÚsource_namer�   s              r[   rË   rË   ‡  s,  € ð KÐJÐJÐJÐJÐJà(Ð(Ð(Ð(Ð(Ð(Ø)Ð)Ð)Ð)Ð)Ð)Ø'Ð'Ð'Ð'Ð'Ð'Ø&Ð&Ð&Ð&Ð&Ð&à57€GÝ�#�~Ñ&Ô&ñ 3
Ø—l’l‘n”nÔ)Ô.×2Ò2°?ÑCÔCˆÝ˜+¥u¤|Ñ4Ô4ð 	Ý ØUÅ$À{ÑBSÔBSÐUÐUñô ð õ �k¥5Ô#4Ô#@Ô#KÑLÔLð 	ØØ*Ð*¨;Ñ7Ô7ð 	ð #%ˆEÝÔÔ)×;Ò;ØØð <ñ ô ð õ ð ð àðñ ô ñ ô ð õ
 %ØcÐIaÐIaÐ[`ÐIaÑIaÔIaÐcÐcñô ð ðõ !ØK½¸[Ñ8IÔ8IÐKÐKñô ð ð *-¬Ð=�c”j”o�o¸ˆØ�Š˜ [Ð1Ñ2Ô2Ð2Ñ2Ý	�CÐ,Ñ	-Ô	-ð 
à�ŠÕ4°S·[²[±]´]ÑCÔCÑDÔDÐDÐDÝ	�CÐ)Ñ	*Ô	*ð 
Ø”Ið 	@ð 	@ˆDØ�NŠNÕ8¸Ñ>Ô>Ñ?Ô?Ð?Ð?ð	@å	�CÐ*Ñ	+Ô	+ð 
Ø”I×$Ò$Ñ&Ô&ð 	@ð 	@ˆDØ�NŠNÕ8¸Ñ>Ô>Ñ?Ô?Ð?Ð?ð	@õ 	ØBØ/�4 ™9œ9Ô-Ð/Ð/ðRÅdÈ3ÁiÄiÔFXð Rð Rð Rð [ðð
	
ñ 
	
ô 
	
ð 
	
ð €Nr]   r9   c                 óD  — ddl m} ddlm} ddlm} g }t          | |¦  «        r:|                      ¦   «         j        }|j	        dk    r| 
                    |¦  «         nÁt          | |¦  «        r5|                     t          |                      ¦   «         ¦  «        ¦  «         n|t          | |¦  «        r-| j        D ]$}|                     t          |¦  «        ¦  «         Œ%n?t          ddt!          | ¦  «        j        › �dt!          | ¦  «        j        › d	�d
g¬¦  «         |S )ud  Recursively collect FX placeholder nodes from a VariableTracker.

    The returned placeholder nodes carry grapharg.example (real tensor) and
    example_value (FakeTensor) metadata â€” comparing these reveals lost
    autograd linkage (e.g., grad_fn dropped during tracing).
    See NOTE [Detecting lost autograd linkage in closure-captured tensors].
    r7   r²   r…   r´   Úplaceholderz-_autograd_grad with unsupported argument typerÀ   z._autograd_grad() received an argument of type rÁ   rÂ   r‡   )rÃ   r³   r�   r†   r    rµ   r�   rÄ   rÅ   Úoprª   rÊ   Ú_collect_placeholder_nodesrÌ   r–   r#   r‘   rT   )r€   r³   r†   rµ   ÚresultrÅ   r�   s          r[   rÔ   rÔ   Î  sf  € ð *Ð)Ð)Ð)Ð)Ð)Ø'Ð'Ð'Ð'Ð'Ð'Ø&Ð&Ð&Ð&Ð&Ð&à"$€FÝ�#�~Ñ&Ô&ð 
Ø�|Š|‰~Œ~Ô"ˆØŒ7�mÒ#Ð#Ø�MŠM˜$ÑÔÐøÝ	�CÐ,Ñ	-Ô	-ð 
Ø�ŠÕ0°·²±´Ñ?Ô?Ñ@Ô@Ð@Ð@Ý	�CÐ)Ñ	*Ô	*ð 
Ø”Ið 	<ð 	<ˆDØ�MŠMÕ4°TÑ:Ô:Ñ;Ô;Ð;Ð;ð	<õ 	ØCØ/�4 ™9œ9Ô-Ð/Ð/ðRÅÀcÁÄÔASð Rð Rð Rð [ðð
	
ñ 
	
ô 
	
ð 
	
ð €Mr]   c                  ób  — ddl m}  ddlm} ddlm} t          |                       |¦   «                              ¦   «         ¦  «        ¦  «        }| 	                     |¦   «         ¦  «         t          j        t          j        t          j        t          j        h}| 	                    |¦  «         |S )Nr   )Úchain)Úget_overridable_functions)Ú_device_constructors)Ú	itertoolsr×   Útorch.overridesrØ   Útorch.utils._devicerÙ   r©   Úfrom_iterablerÍ   ÚupdaterV   Ú	ones_likeÚ
zeros_likeÚ
empty_likeÚ	full_like)r×   Úget_overridable_functions_rÙ   ÚfuncsÚmores        r[   rØ   rØ   ó  s»   € àÐÐÐÐÐàWÐWÐWÐWÐWÐWØ8Ð8Ð8Ð8Ð8Ð8å�×#Ò#Ð$>Ð$>Ñ$@Ô$@×$GÒ$GÑ$IÔ$IÑJÔJÑKÔK€EØ	‡L‚LÐ%Ð%Ñ'Ô'Ñ(Ô(Ð(åŒÝÔÝÔÝŒð	%€Dð 
‡L‚L�ÑÔÐØ€Lr]   c                   ó0  ‡ — e Zd ZdZedededd fd„¦   «         Zdededdfˆ fd„Zdd„Z	defd„Z
defd„Zdefd„Z	 d dddededefd„Z	 d dddededefd„Zdddededededefd„Zdedeeef         fd„Zdddededefd„Zdddedefd„Zdefd„Zˆ xZS )!ÚBaseTorchVariablezHcommon base for all torch.* functions, classes, modules and other thingsr’   r“   r_   c                 óH  — t          j        |¦  «        r.t          |                     t          j        ¦  «        ¦  «         �nTt          j        |¦  «        r.t          |                     t          j        ¦  «        ¦  «         �nt          j        |¦  «        r-t          |                     t          j	        ¦  «        ¦  «         nÑt          j
        |¦  «        s0t          |t          j        j        t          j        j        f¦  «        r-t          |                     t          j        ¦  «        ¦  «         n`t#          |¦  «        s$t          |t          j        j        j        ¦  «        rn,t          |                     t          j        ¦  «        ¦  «          | ||¬¦  «        S ©N©r“   )ÚinspectÚisclassr'   Ú
make_guardr&   ÚCLASS_MATCHÚismoduleÚMODULE_MATCHÚ
isfunctionÚCLOSURE_MATCHÚ	isbuiltinr�   rV   Ú_opsÚ
OpOverloadÚOpOverloadPacketÚBUILTIN_MATCHr2   rl   Úcompiled_autogradÚOpÚFUNCTION_MATCH©Úclsr’   r“   s      r[   Úcreate_with_sourcez$BaseTorchVariable.create_with_source	  sj  € åŒ?˜5Ñ!Ô!ð 	JÝ˜&×+Ò+­LÔ,DÑEÔEÑFÔFÐFÑFÝÔ˜eÑ$Ô$ð 	JÝ˜&×+Ò+­LÔ,EÑFÔFÑGÔGÐGÑGÝÔ Ñ&Ô&ð 	JÝ˜&×+Ò+­LÔ,FÑGÔGÑHÔHÐHÐHÝÔ˜uÑ%Ô%ð 
	J­Ø•E”JÔ)­5¬:Ô+FÐGñ*
ô *
ð 
	Jõ ˜&×+Ò+­LÔ,FÑGÔGÑHÔHÐHÐHÝ,¨UÑ3Ô3ð 	JµzØ•5”=Ô2Ô5ñ8
ô 8
ð 	Jð å˜&×+Ò+­LÔ,GÑHÔHÑIÔIÐIØˆs�5 Ð(Ñ(Ô(Ð(r]   ÚkwargsNc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S )Nry   )ÚsuperÚ__init__r’   )Úselfr’   rþ   Ú	__class__s      €r[   r  zBaseTorchVariable.__init__  s+   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆŒ
ˆ
ˆ
r]   Úcodegenr   c                 ó  — 	 | j         j        › d| j         j        › �}n'# t          $ r dt	          | j         ¦  «        › �}Y nw xY wdt          j        dd|¦  «        z   }|                     |                     || j         ¦  «        ¦  «         d S )Nú.Ú
torch_obj_Ú__z[^a-zA-Z0-9_]+rS   )	r’   Ú
__module__rT   Ú	ExceptionÚidÚrer|   Úextend_outputÚsetup_globally_cached)r  r  rZ   Úunique_var_names       r[   ÚreconstructzBaseTorchVariable.reconstruct"  sª   € ð	1Ø”jÔ+ÐCÐC¨d¬jÔ.AÐCÐCˆDˆDøÝð 	1ð 	1ð 	1Ø0¥ 4¤:¡¤Ð0Ð0ˆDˆDˆDð	1øøøà¥¤Ð(9¸3ÀÑ!EÔ!EÑEˆØ×ÒØ×)Ò)¨/¸4¼:ÑFÔFñ	
ô 	
ð 	
ð 	
ð 	
s   ‚ ž!AÁAc                 ó   — | j         S r¹   ©r’   ©r  s    r[   rÄ   zBaseTorchVariable.as_proxy,  ó
   € ØŒzÐr]   c                 ó   — | j         S r¹   r  r  s    r[   rš   z$BaseTorchVariable.as_python_constant/  r  r]   c                 ó   — | j         S r¹   r  r  s    r[   Úget_real_python_backed_valuez.BaseTorchVariable.get_real_python_backed_value2  r  r]   FÚtxrL   ÚotherÚreversec                 ó4   — |                       ||dd|¦  «        S )NÚ__or__Ú__ror__©Ú_nb_binop_impl©r  r  r  r  s       r[   Ú
nb_or_implzBaseTorchVariable.nb_or_impl5  s    € ð ×"Ò" 2 u¨h¸	À7ÑKÔKÐKr]   c                 ó4   — |                       ||dd|¦  «        S )NÚ__sub__Ú__rsub__r  r   s       r[   Únb_subtract_implz"BaseTorchVariable.nb_subtract_impl=  s    € ð ×"Ò" 2 u¨i¸ÀWÑMÔMÐMr]   ÚforwardÚreverse_dunderc                 óž  — |r|n|}t          t          | j        ¦  «        |d ¦  «        }|€t          j        |t
          ¦  «        S 	 |                     ¦   «         }n*# t          $ r t          j        |t
          ¦  «        cY S w xY w || j        |¦  «        }	|	t
          u rt          j        |t
          ¦  «        S t          j        ||	¦  «        S r¹   )Úgetattrr‘   r’   r9   ÚbuildÚNotImplementedrš   ÚNotImplementedError)
r  r  r  r&  r'  r  ÚdunderÚmethodÚ	other_valrÕ   s
             r[   r  z BaseTorchVariable._nb_binop_implE  sÕ   € ð $+Ð7��°ˆÝ�˜dœjÑ)Ô)¨6°4Ñ8Ô8ˆØˆ>Ý"Ô(¨­^Ñ<Ô<Ð<ð	=Ø×0Ò0Ñ2Ô2ˆIˆIøÝ"ð 	=ð 	=ð 	=Ý"Ô(¨­^Ñ<Ô<Ð<Ð<Ð<ð	=øøøà�˜œ
 IÑ.Ô.ˆØ•^Ð#Ð#Ý"Ô(¨­^Ñ<Ô<Ð<ÝÔ$ R¨Ñ0Ô0Ð0s   ÁA Á$BÂBc                 ó.   — t          | j        ¦  «        dfS ©NF)Úhashr’   ©r  r  s     r[   Ú	hash_implzBaseTorchVariable.hash_implZ  s   € Ý�D”JÑÔ Ð&Ð&r]   rÓ   c                 ó*   — ddl m}  || |||¦  «        S )Nr7   )Úobject_richcompare)Úobject_protocolr6  )r  r  r  rÓ   r6  s        r[   Úrichcompare_implz"BaseTorchVariable.richcompare_impl]  s-   € ð 	8Ð7Ð7Ð7Ð7Ð7à!Ð! $¨¨E°2Ñ6Ô6Ð6r]   rZ   c                 óV   — t          | j        |¦  «        }t          j        ||¦  «        S r¹   )rU   r’   r9   r*  )r  r  rZ   rÕ   s       r[   Úcall_obj_hasattrz"BaseTorchVariable.call_obj_hasattrd  s(   € õ ˜œ TÑ*Ô*ˆÝÔ$ R¨Ñ0Ô0Ð0r]   c                 ó¢   — | j         t          v rdS | j         t          j        j        u rt
          j        rdS t          | j         dd ¦  «        dk    S )NTr	  Úmath)r’   Úconstant_fold_functionsrV   ÚautogradÚ_profiler_enabledr   Ú'constant_fold_autograd_profiler_enabledr)  r  s    r[   Úcan_constant_fold_throughz+BaseTorchVariable.can_constant_fold_throughj  sT   € ØŒ:Õ0Ð0Ð0Ø�4ð ŒJ�%œ.Ô:Ð:Ð:ÝÔ>ð ;ð  �4å�t”z <°Ñ6Ô6¸&Ò@Ð@r]   )r  r   r_   N©F)rT   r	  Ú__qualname__Ú__doc__Úclassmethodr   r   rý   r  r  rÄ   rš   r  r9   Úboolr!  r%  Ústrr  ÚtupleÚintr4  r8  r   r:  rA  Ú__classcell__©r  s   @r[   rç   rç     sˆ  ø€ € € € € ØRÐRàð) sð )°Fð )Ð?Rð )ð )ð )ñ „[ð)ð(˜cð ¨Sð °Tð ð ð ð ð ð ð
ð 
ð 
ð 
ð˜#ð ð ð ð ð Cð ð ð ð ð¨cð ð ð ð ð ð	Lð Là'ðLð ðLð ð	Lð
 
ðLð Lð Lð Lð ð	Nð Nà'ðNð ðNð ð	Nð
 
ðNð Nð Nð Nð1à'ð1ð ð1ð ð	1ð
 ð1ð ð1ð 
ð1ð 1ð 1ð 1ð*'˜Cð ' E¨#¨t¨)Ô$4ð 'ð 'ð 'ð 'ð7Ø-ð7Ø6Eð7ØKNð7à	ð7ð 7ð 7ð 7ð1Ø-ð1Ø58ð1à	ð1ð 1ð 1ð 1ðA¨4ð Að Að Að Að Að Að Að Ar]   rç   c                   ól   ‡ — e Zd ZdZdefd„Zededefd„¦   «         Z	ddde
e         d	d
ddfˆ fd„Zˆ xZS )ÚTorchCtxManagerClassVariablezLPoints to a context manager class in torch.* that dynamo has implementationsr_   c                 ó   — d| j         › d�S )NzTorchCtxManagerClassVariable(ú)r  r  s    r[   Ú__repr__z%TorchCtxManagerClassVariable.__repr__‡  s   € Ø<¨t¬zÐ<Ð<Ð<Ð<r]   r’   c                 ón   — t          | ¦  «        } t          | ¦  «        ot          | ¦  «        o| t          v S r¹   )r6   Úcallabler1   Úsupported_ctx_manager_classesr  s    r[   Úis_matching_clsz,TorchCtxManagerClassVariable.is_matching_clsŠ  s=   € õ " %Ñ(Ô(ˆõ �U‰OŒOð å˜‘”ð ;ØÕ:Ð:ð	
r]   r  rL   Úargsrþ   údict[str, VariableTracker]r9   c           
      ó"  •— ddl m}m}m}m}m}m}	m}
m}m	}m
}m}m}m} | j        t          j        u r{t#          |¦  «        dk    rRt%          |d         t&          j        j        ¦  «        r-|
                     |d¦  «        }|                     |||¦  «        S |
                     |d¦  «        S | j        t          j        u r{t#          |¦  «        dk    rRt%          |d         t&          j        j        ¦  «        r-|
                     |d¦  «        }|                     |||¦  «        S |
                     |d¦  «        S | j        t          j        u rCt#          |¦  «        dk    r0|
                     ||d                              ¦   «         d¬¦  «        S | j        t          j        u r©t#          |¦  «        dk    rt9          dt#          |¦  «        › �¦  «        ‚t#          |¦  «        dk    rt9          dt#          |¦  «        › �¦  «        ‚t#          |¦  «        dk    r|d                              ¦   «         nd}|                     ||¦  «        S | j        t          j        j        j        t          j        j        j        j         fv rŽt#          |¦  «        dk    rt9          d	t#          |¦  «        › �¦  «        ‚t#          |¦  «        dk    rt9          d
t#          |¦  «        › �¦  «        ‚ ||d                              ¦   «         | j!        ¬¦  «        S tE          j#        | j        ¦  «        rRtI          | j        t          j%        ¦  «        r3ddl&m'}  ||||j(         )                    d| j        di ¦  «        ¦  «        S | j        t          j*        j+        j,        t          j-        j*        j,        t          j.        j*        j,        fv rt_          j        | j        ||¦  «        S | j        t          j0        j1        t          j2        j0        j1        fv rtg          j        | j        ||¬¦  «        S | j        t          j0        j4        t          j2        j0        j4        fv r)tk          tl          d| j        ¦  «         to          ¦   «         S | j        t          j8        j9        u s| j        t          j8        j:        u r?|s|rt9          d¦  «        ‚tw          j        || j        t          j8        j9        u ¬¦  «        S | j        t          j<        j=        j>        u rHt#          |¦  «        dk    rt9          dt#          |¦  «        › �¦  «        ‚|                     ||¦  «        S | j        t          j<        j?        j@        u rGt#          |¦  «        dk    rt9          dt#          |¦  «        › �¦  «        ‚|                     |¦  «        S | j        t          j2        jA        jB        u rRt#          |¦  «        dk    rt9          dt#          |¦  «        › �¦  «        ‚|                     |d„ |D ¦   «         ¦  «        S | j        t          j2        jA        jC        u rGt#          |¦  «        dk    rt9          dt#          |¦  «        › �¦  «        ‚|                     |¦  «        S | j        t          j<        j?        jD        u rGt#          |¦  «        dk    rt9          dt#          |¦  «        › �¦  «        ‚|                     |¦  «        S | j        t          j<        j?        jE        u rRt#          |¦  «        dk    rt9          dt#          |¦  «        › �¦  «        ‚|	                     |d„ |D ¦   «         ¦  «        S | j        t          j2        jF        jG        u r`t#          |¦  «        dk    rt9          dt#          |¦  «        › �¦  «        ‚|                     ||d                              ¦   «         ¦  «        S t�          �| j        t�          jI        jJ        u rgt#          |¦  «        dk    rt9          dt#          |¦  «        › �¦  «        ‚|                     ||d         |d                              ¦   «         ¦  «        S | j        t          jK        jL        jM        j         u rht�          | j        || j!        ||¦  «        }|d                              ¦   «         }|d                              ¦   «         }|                     |||¦  «        S tŸ          ¦   «                              |||¦  «        S ) Nr7   )Ú!DisabledSavedTensorsHooksVariableÚDualLevelContextManagerÚ&FSDPParamGroupUseTrainingStateVariableÚFxTracebackAnnotateVariableÚ&GradIncrementNestingCtxManagerVariableÚ)GradInplaceRequiresGradCtxManagerVariableÚGradModeVariableÚInferenceModeVariableÚ%JvpIncrementNestingCtxManagerVariableÚSDPAKernelVariableÚSetFwdGradEnabledContextManagerr   Ú&VmapIncrementNestingCtxManagerVariabler   FT)Úinitializedz0torch.inference_mode expects at most 1 arg, got z,torch.inference_mode expects no kwargs, got z7torch.fx.traceback.annotate expects at most 1 arg, got z3torch.fx.traceback.annotate expects no kwargs, got rê   )Úwrap_fx_proxy_clsÚcall_functionry   )ÚfuncÚrecord_argsÚrecord_kwargsz$Profiler function %s will be ignoredzKDisableTorchFunctionSubclass/DisableTorchFunction expects no args or kwargs)Úonly_subclassr   z+vmap_increment_nesting expects 2 args, got z*jvp_increment_nesting expects 0 args, got z)_set_fwd_grad_enabled expects 1 arg, got c                 ó,   — g | ]}t          |¦  «        ‘ŒS ry   ©r/   ©rX   Úxs     r[   r¿   z>TorchCtxManagerClassVariable.call_function.<locals>.<listcomp>  ó   € Ð/Ð/Ð/ Q•˜a‘”Ð/Ð/Ð/r]   zdual_level expects 0 args, got z+grad_increment_nesting expects 0 args, got z0enable_inplace_requires_grad expects 1 arg, got c                 ó,   — g | ]}t          |¦  «        ‘ŒS ry   rl  rm  s     r[   r¿   z>TorchCtxManagerClassVariable.call_function.<locals>.<listcomp>4  ro  r]   z/disable_saved_tensors_hooks expects 1 arg, got z6FSDPParamGroup.use_training_state expects 2 args, got ÚbackendsÚset_priority)PÚ rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  r   rc  r’   rV   Úno_gradÚlenr�   r   Ú	functionsÚBaseUserFunctionVariableÚcreaterf  Úenable_gradÚset_grad_enabledrš   Úinference_moderÈ   rf   Ú	tracebackÚannotateÚ__wrapped__r“   rë   rì   Ú
issubclassÚStreamÚtorch._dynamo.variables.builderre  ÚoutputÚcreate_proxyÚampÚautocast_modeÚautocastÚcudaÚcpur:   ÚprofilerÚrecord_functionr>  r<   Úprofiler   Úlogr;   rd   ÚDisableTorchFunctionSubclassÚDisableTorchFunctionr=   Ú
_functorchÚvmapÚvmap_increment_nestingÚeager_transformsÚjvp_increment_nestingÚ
forward_adÚ_set_fwd_grad_enabledÚ
dual_levelÚgrad_increment_nestingÚenable_inplace_requires_gradÚgraphÚdisable_saved_tensors_hooksrK   ÚFSDPParamGroupÚuse_training_stateru   Ú	attentionÚsdpa_kernelr?   r   )r  r  rU  rþ   rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  r   rc  ÚctxÚinf_modere  Úname_to_arg_maprq  rr  r  s                          €r[   rf  z*TorchCtxManagerClassVariable.call_functionš  sQ	  ø€ ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð  Œ:�œÐ&Ð&Ý�4‰yŒy˜AŠ~ˆ~¥*Ø�Q”�Ô,ÔEñ#ô #ˆ~ð '×-Ò-¨b°%Ñ8Ô8�Ø×(Ò(¨¨T°6Ñ:Ô:Ð:à'×.Ò.¨r°5Ñ9Ô9Ð9ØŒZ�5Ô,Ð,Ð,Ý�4‰yŒy˜AŠ~ˆ~¥*Ø�Q”�Ô,ÔEñ#ô #ˆ~ð '×-Ò-¨b°$Ñ7Ô7�Ø×(Ò(¨¨T°6Ñ:Ô:Ð:Ø#×*Ò*¨2¨tÑ4Ô4Ð4ØŒZ�5Ô1Ð1Ð1µc¸$±i´iÀ1²n°nØ#×*Ò*Ø�D˜”G×.Ò.Ñ0Ô0¸dð +ñ ô ð ð ŒZ�5Ô/Ð/Ð/Ý�4‰yŒy˜1Š}ˆ}Ý$ØRÅsÈ4ÁyÄyÐRÐRñô ð õ �6‰{Œ{˜aÒÐÝ$ØPÅ3ÀvÁ;Ä;ÐPÐPñô ð õ 8;¸4±y´yÀA²~°~�t˜A”w×1Ò1Ñ3Ô3Ð3È4ˆHØ(×/Ò/°°HÑ=Ô=Ð=ØŒZÝŒHÔÔ'ÝŒHÔÔ'Ô3ð
ð 
ð 
õ �4‰yŒy˜1Š}ˆ}Ý$ØYÍcÐRVÉiÌiÐYÐYñô ð õ �6‰{Œ{˜aÒÐÝ$ØWÍ#ÈfÉ+Ì+ÐWÐWñô ð ð /Ð.Ø�Q”×*Ò*Ñ,Ô,°T´[ðñ ô ð õ Œ_˜TœZÑ(Ô(ð v	I­Z¸¼
ÅEÄLÑ-QÔ-Qð v	IØIÐIÐIÐIÐIÐIà$Ð$ØØØ”	×&Ò&Ø#Ø”JØØñ	ô ñ	ô 	ð 	ð ŒZÝŒIÔ#Ô,ÝŒJŒNÔ#ÝŒIŒMÔ"ð
ð 
ð 
õ (Ô.¨t¬z¸4ÀÑHÔHÐHØŒZÝŒNÔ*ÝŒNÔ#Ô3ð
ð 
ð 
õ 9Ô?Ø”Z¨TÀðñ ô ð ð ŒZÝŒNÔ"ÝŒNÔ#Ô+ð
ð 
ð 
õ �ÐDÀdÄjÑQÔQÐQÝ*Ñ,Ô,Ð,àŒJ�%œ(Ô?Ð?Ð?ØŒz�UœXÔ:Ð:Ð:àð �vð Ý$Øañô ð õ 0Ô6Ø $¤*µ´Ô0UÐ"Uðñ ô ð ð ŒZ�5Ô+Ô0ÔGÐGÐGÝ�4‰yŒy˜AŠ~ˆ~Ý$ØMÅ#ÀdÁ)Ä)ÐMÐMñô ð ð :×@Ò@ØØñô ð ð ŒZ�5Ô+Ô<ÔRÐRÐRÝ�4‰yŒy˜AŠ~ˆ~Ý$ØLÅÀTÁÄÐLÐLñô ð ð 9×?Ò?ÀÑCÔCÐCØŒZ�5œ>Ô4ÔJÐJÐJÝ�4‰yŒy˜AŠ~ˆ~Ý$ØKÅÀDÁ	Ä	ÐKÐKñô ð ð 3×9Ò9ØØ/Ð/¨$Ð/Ñ/Ô/ñô ð ð ŒZ�5œ>Ô4Ô?Ð?Ð?Ý�4‰yŒy˜AŠ~ˆ~Ý$Ð%RÅsÈ4ÁyÄyÐ%RÐ%RÑSÔSÐSØ*×1Ò1°"Ñ5Ô5Ð5ØŒZ�5Ô+Ô<ÔSÐSÐSÝ�4‰yŒy˜AŠ~ˆ~Ý$ØMÅ#ÀdÁ)Ä)ÐMÐMñô ð ð :×@Ò@ÀÑDÔDÐDàŒJ�%Ô*Ô;ÔXÐXÐXå�4‰yŒy˜AŠ~ˆ~Ý$ØRÅsÈ4ÁyÄyÐRÐRñô ð ð =×CÒCØØ/Ð/¨$Ð/Ñ/Ô/ñô ð ð ŒZ�5œ>Ô/ÔKÐKÐKÝ�4‰yŒy˜AŠ~ˆ~Ý$ØQÅcÈ$ÁiÄiÐQÐQñô ð ð 5×;Ò;Ø�D˜”G×.Ò.Ñ0Ô0ñô ð õ Ð)Ø”
Õ/Ô>ÔQÐQÐQå�4‰yŒy˜AŠ~ˆ~Ý$ØXÍSÐQUÉYÌYÐXÐXñô ð ð :×@Ò@Ø�D˜”G˜T !œW×7Ò7Ñ9Ô9ñô ð ð ŒZ�5œ8Ô-Ô9ÔEÐEÐEÝ.Ø”
ØØ”ØØñô ˆOð ' zÔ2×EÒEÑGÔGˆHØ*¨>Ô:×MÒMÑOÔOˆLØ%×,Ò,¨R°¸<ÑHÔHÐHå‰wŒw×$Ò$ R¨¨vÑ6Ô6Ð6r]   )rT   r	  rC  rD  rG  rP  Ústaticmethodr   rF  rT  Úlistr9   rf  rJ  rK  s   @r[   rM  rM  „  sÅ   ø€ € € € € ØVÐVð=˜#ð =ð =ð =ð =ð ð
˜sð 
 tð 
ð 
ð 
ñ „\ð
ð{7à'ð{7ð �?Ô#ð{7ð -ð	{7ð
 
ð{7ð {7ð {7ð {7ð {7ð {7ð {7ð {7ð {7ð {7r]   rM  c                   ó   — e Zd ZdZdZdZdS )ÚAllowInGraphKindÚdefaultÚnonstrict_traceÚleaf_functionN)rT   r	  rC  ÚDEFAULTÚNONSTRICT_TRACEÚLEAF_FUNCTIONry   r]   r[   r¥  r¥  X  s   € € € € € Ø€GØ'€OØ#€M€M€Mr]   r¥  c            
       ó°  ‡ — e Zd ZdZ	 d dedef         dedz  deddfˆ fd„Zdefd	„Z	dedef         fd
„Z
eej        deedef         edef         f         fd„¦   «         ¦   «         Zdddee         ddddfd„Zdddee         dddefd„Zdddee         deeef         deeef         fd„Zdddee         deeef         defd„Zdddee         deeef         defd„Ze	 	 d!dddedz  dedefd„¦   «         Zedddededefd„¦   «         Zdddee         deeef         defd„Zdefd„Zdddee         deeef         defd„Zde defd„Z!ˆ xZ"S )"ÚTorchInGraphFunctionVariablez@Points to a torch function/method that should be put in FX graphNr’   .Úkindrþ   r_   c                 óÖ   •—  t          ¦   «         j        |fi |¤Ž ddlm}m} |€< ||¦  «        rt
          j        }n$ ||¦  «        rt
          j        }nt
          j        }|| _	        d S )Nr   )Úis_leaf_functionÚis_nonstrict_trace_callable)
r   r  Útrace_rulesr°  r±  r¥  r«  rª  r©  r®  )r  r’   r®  rþ   r°  r±  r  s         €r[   r  z%TorchInGraphFunctionVariable.__init__a  sŽ   ø€ ð 	�‰ŒÔ˜Ð)Ð) &Ð)Ð)Ð)ØOÐOÐOÐOÐOÐOÐOÐOàˆ<ØÐ Ñ&Ô&ð 0Ý'Ô5��Ø,Ð,¨UÑ3Ô3ð 0Ý'Ô7��å'Ô/�àˆŒ	ˆ	ˆ	r]   c                 ó(   — d| j         › d| j        › d�S )NzTorchInGraphFunctionVariable(z, kind=rO  )r’   r®  r  s    r[   rP  z%TorchInGraphFunctionVariable.__repr__t  s   € ØN¨t¬zÐNÐNÀ$Ä)ÐNÐNÐNÐNr]   c                 ó   — | j         S r¹   r  r  s    r[   Úget_functionz)TorchInGraphFunctionVariable.get_functionw  r  r]   c                  óÊ,  ‡_‡`‡a‡b‡c‡d‡e‡f‡g‡h‡i‡j‡k‡l— i Šjdt           dt          f         dt           t           dt          f         gt           dt          f         f         fˆjfd„} ddlm} ddlmŠ_mŠ`mŠamŠbm	Šcm
ŠdmŠe dd	lmŠkmŠl  | t          ¦   «         Ž d
ddt           dt           dt           fd„¦   «         } | t"          Ž d
ddt           dt           dt           fd„¦   «         } | t$          j        j        j        ¦  «        d
ddt           dt           dt           fd„¦   «         } | t$          j        j        j        j        ¦  «        d
ddt           dt           dt           fˆ_fd„¦   «         } | t4          j        ¦  «        d
ddt           dt           dt           dz  fd„¦   «         }t9          t4          d¦  «        r9 | t4          j        ¦  «        d
ddt           dt           dt           dz  fd„¦   «         } | t$          j        ¦  «        d
ddt>          fd„¦   «         } | t$          j         t$          j        j!        ¦  «        d
ddt           dt           fˆ_ˆefd„¦   «         }	 | t$          j"        t$          j#        ¦  «        d
ddt          dt           dz  fd„¦   «         }
 | t$          j$        ¦  «        d
ddt          dt           dz  fd„¦   «         } | t$          j%        ¦  «        d
ddt           dt           dt           fd„¦   «         } | t$          j&        j'        t$          j(        j)        ¦  «        d
ddt           dt           dt           fd„¦   «         } | tT          Ž d
ddt           dt           fd„¦   «         } | t$          j+        j,        j-        j.        t$          j+        j,        j-        j/        t$          j+        j,        j-        j0        t$          j+        j,        j-        j1        t$          j+        j,        j-        j2        ¦  «        d
ddt           dt           dt           fd„¦   «         } | t$          j3        ¦  «        d
dd‰_fˆ`fd „¦   «         } | t$          j4        j5        j6        ¦  «        d
dd!t           d‰afˆafd"„¦   «         } | t$          j4        j5        j7        ¦  «        d
dd!‰adt           fd#„¦   «         } | t$          j8        ¦  «        	 d’d
dd!t          d%t           tr          z  dt           fˆ_fd&„¦   «         } | t$          j:        ¦  «        d
ddt           fd'„¦   «         } | t$          j;        ¦  «        d
ddt           fd(„¦   «         } | t$          j<        ¦  «        d
dd)t           d*t           dt           fˆ_fd+„¦   «         } | t$          j=        ¦  «        d
dd*t           dt           fˆ_fd,„¦   «         } | t$          j>        j?        j@        ¦  «        d
ddt           fd-„¦   «         } | t$          j>        j?        jA        ¦  «        d
ddt           fd.„¦   «         } | t$          j>        j?        jB        ¦  «        d
ddt           fd/„¦   «         } | t$          j>        j?        jC        ¦  «        d
dd0t           dt           fˆ_fd1„¦   «         } | t$          jD        j>        jE        ¦  «        d
ddt           fd2„¦   «         } | t$          jD        j>        jF        ¦  «        d
ddt           fd3„¦   «         } | t$          jD        j>        jG        ¦  «        d
dd4t           dt           fˆ_fd5„¦   «         } | t$          jH        ¦  «        d
dd‰_fd6„¦   «         } | t$          jD        jI        ¦  «        d
dd‰_fd7„¦   «         }  | t$          jD        jJ        ¦  «        d
dd‰_fd8„¦   «         }! | t$          jD        jK        ¦  «        d
dd‰_fd9„¦   «         }" | t$          j        jL        t$          j        jM        t$          j        jN        ¦  «        d
ddt           d‰_fd:„¦   «         }# | t$          jD        jO        ¦  «        d
dd;t           d<t           dt           dt           dt           fd=„¦   «         }$ | t            Q                    d>„ t¥          ¦   «         D ¦   «         ¦  «        Ž d
dd?d@d‰bfˆbfdA„¦   «         }% | t$          jS        ¦  «        d
ddt           d‰dfˆdˆlfdB„¦   «         }& | t$          jT        jU        ¦  «        d
ddCt          dDt¬          dt¬          fdE„¦   «         }' | t$          jW        jX        jY        ¦  «        d
ddFt          dGt          d‰_fdH„¦   «         }( | t$          j-        jZ        j[        ¦  «        d
ddt           dt           dt           fdI„¦   «         }) | t$          j+        j\        ¦  «        d
ddt           dt           dt           fdJ„¦   «         }* | t$          j        j]        j^        t$          j        j]        j^        j_        ¦  «        	 d“dKt          d
ddLt          dz  dt           dz  fdM„¦   «         }+ | t$          j        j]        j`        t$          j        j]        j`        j_        ¦  «        	 d“dKt          d
ddLt          dz  dt           dz  fdN„¦   «         }, | t$          ja        ¦  «        d
ddt           dt           dt           dz  fdO„¦   «         }- | t$          jb        ¦  «        d
ddPt           dQt           dt           dt           dz  f
dR„¦   «         }. | t$          jc        ¦  «        dSt          d
ddt           dt           dt           dz  f
dT„¦   «         }/ | t$          jd        ¦  «        dSt          d
ddt           dt           dt           dz  f
dU„¦   «         }0 | t$          jD        je        ¦  «        dSt          d
ddt           dt           dt           f
dV„¦   «         }1 | t$          jf        ¦  «        d
ddWt           dXt           dt           dz  fˆ_fdY„¦   «         }2 | |¦  «        d
ddt           dt           dt           fˆkfdZ„¦   «         }3tÏ          jh        ¦   «         rDdd[limj}4mk}5ml}6mm}7mn}8mo}9mp}:  | |4|5|6|8|7|9|:¦  «        d
ddt           dt           dt           fd\„¦   «         }; | t$          jq        jr        ¦  «        	 d“dd]œd
dd^t           dz  dt           d_t          dz  dt           ddfd`„¦   «         }< | t$          j+        js        jt        ¦  «        d
ddt           dt           ddfda„¦   «         }= | t$          ju        jv        jw        jx        ¦  «        d
ddbt           dt           dz  fˆcfdc„¦   «         }> | t$          ju        jv        jw        jy        ¦  «        	 d“d
ddbt           ddt           dz  dt           dz  fˆcfde„¦   «         }? | t$          ju        jv        jw        jz        ¦  «        d
ddbt           dt           dz  fˆcfdf„¦   «         }@ | t$          ju        jv        jw        j{        ¦  «        d
ddbt           dt           dz  fˆcfdg„¦   «         }A | t$          ju        jv        jw        j|        ¦  «        d
ddbt           dt           dz  fˆcfdh„¦   «         }B | t$          ju        jv        jw        j}        ¦  «        d
ddbt           dt           dz  fˆcfdi„¦   «         }C | t$          ju        jv        jw        j~        ¦  «        d
ddjt           dt           dz  fdk„¦   «         }D | t$          ju        jv        jw        j        ¦  «        d
ddbt           dt           fˆcfdl„¦   «         }E | t$          ju        jv        jw        j€        ¦  «        d
ddbt           dt           dz  fˆcfdm„¦   «         }F | t$          ju        jv        jw        j�        ¦  «        d
ddnt           dt           dz  fˆcfdo„¦   «         }G | t$          ju        jv        jw        j‚        ¦  «        d
ddnt           dt           dz  fˆcfdp„¦   «         }H | t$          ju        jv        jw        jƒ        ¦  «        d
ddbt           dt           dz  fˆcfdq„¦   «         }I | t$          jD        j„        j…        ¦  «        d
ddt           dt           dt           fdr„¦   «         }J | t$          jD        j>        j†        ¦  «        d
ddt           dt           d‰efˆefds„¦   «         }K | t$          j>        j‡        jˆ        ¦  «        d
ddt           dt           d�t          fdt„¦   «         }L | t$          jŠ        ¦  «        d
ddt           dt           dt           dz  fˆcfdu„¦   «         }M | t$          jD        j‹        ¦  «        d
ddt           dt           d�t          fdv„¦   «         }N | t$          jD        j�        ¦  «        d
ddt           dt           dt           fˆ_fdw„¦   «         }O | t$          jD        jŽ        ¦  «        d
ddt           dt           dt           fdx„¦   «         }P | t$          jD        j�        ¦  «        d
ddt           dt           d�t          fdy„¦   «         }Q | t$          j�        j        ¦  «        d
ddt           dt           dt           fdz„¦   «         }R | t$          j‘        j’        t$          j“        j’        t$          j”        j’        ¦  «        d
ddt           dt           d�t*          fd{„¦   «         }St$          j“        j–        d|t$          j”        j–        d}t$          j—        j–        d~t$          j˜        j–        diŠf | t$          j‘        j–        t$          j“        j–        t$          j”        j–        t$          j—        j–        t$          j˜        j–        ¦  «        d
ddt           dt           dt           fˆ_ˆffd€„¦   «         }T | t$          j™        ¦  «        d
ddt           dt           dt           fˆ_fd�„¦   «         }Udd‚lšm›Šh  | ‰h¦  «        d
ddt           dt           dt           fˆdˆhfdƒ„¦   «         }V�t8          fd
dd„t           dz  d…t           dz  d†�t:          �t<                   dt           f
ˆ_ˆkfd‡„Šg | t$          jŸ        ¦  «        d
ddt           dt           dt           fˆgfdˆ„¦   «         }W | t$          j         t$          j¡        t$          j¢        t$          j£        t$          j¤        ¦  «        d
ddt           dt           dt           fˆgfd‰„¦   «         }X | t$          j¥        t$          j¦        ¦  «        d
ddt           dt           dt           fˆgfdŠ„¦   «         }Yd
dd�tN          t                    dt           �tP          t           f         d‹t           t¾          gt¾          dz  f         dt           f
dŒ„Ši | t$          j“        j©        ¦  «        d
ddt           dt           dt           fˆifd�„¦   «         }Z | t$          j“        jª        ¦  «        d
ddt           dt           dt           fˆifdŽ„¦   «         }[ | t$          j«        j¬        j­        ¦  «        d
ddt           dt           dt           fd�„¦   «         }\ | t$          j4        j®        ¦  «        	 	 d”d�„¦   «         }] | t$          j>        j¯        j°        ¦  «        d
ddt           dt           dt           dz  fd‘„¦   «         }^‰jS )•z‡Build a dict from function -> method to handle it so that we are O(1)
        in terms of the number of function with special handling.Úfns.r_   c                  óÜ   •‡ — dt           dt          f         dt           dt          f         fˆ ˆfd„}t          ‰ d         ¦  «        s%t          dt	          ‰ d         ¦  «        › �¦  «        ‚|S )NÚhandler.r_   c                 óH   •— ‰D ]}|‰v rt          d|› �¦  «        ‚| ‰|<   Œ| S )NzHandler already registered for ©rÈ   )r¹  rY   r·  Úhandlerss     €€r[   Ú	_registerzOTorchInGraphFunctionVariable._get_handlers.<locals>.register.<locals>._register…  sB   ø€ Øð +ð +�BØ˜X�~�~Ý,Ð-SÈrÐ-SÐ-SÑTÔTÐTØ#*�H˜R‘L�LØ�r]   r   z,Expected first argument to be callable, got )r   r   rR  rÈ   r‘   )r·  r½  r¼  s   ` €r[   Úregisterz<TorchInGraphFunctionVariable._get_handlers.<locals>.register‚  sŒ   øø€ ð¥8¨Cµ¨HÔ#5ð ½(À3ÍÀ8Ô:Lð ð ð ð ð ð ð õ ˜C œFÑ#Ô#ð Ý$ØQÅ4ÈÈAÌÁ<Ä<ÐQÐQñô ð ð Ðr]   r   )Ú
SDPAParamsr7   )r   r^  r_  ÚStreamContextVariableÚSymNodeVariablerµ   ÚUserDefinedObjectVariable)Úwrap_fx_proxyre  r  rL   rU  rþ   c                 ód  — |rt          dt          |¦  «        › �¦  «        ‚|rt          dt          |¦  «        › �¦  «        ‚| j        t          j        j        t          j        j        j        t          j        j        t          j        j	        t          j        j
        t          j        j        j        fv r|                     ¦   «          | j        t          j        j
        u r$t          j        |t          j        j        ¦  «        S t          j        |t#          ¦   «         | j                 ¦  «        S )Nz,Tracing state functions expect no args, got z.Tracing state functions expect no kwargs, got )rÈ   ru  r’   rV   ro   rn   rl   rm   rp   rq   rr   rs   rt   Úmark_inconsistent_side_effectsr9   r*  Ú_is_exporting_flagrz   ©r  r  rU  rþ   s       r[   Úhandle_tracing_state_functionszRTorchInGraphFunctionVariable._get_handlers.<locals>.handle_tracing_state_functionsŸ  s	  € ð ð Ý$ØNÅ3ÀtÁ9Ä9ÐNÐNñô ð ð ð Ý$ØRÅSÈÁ[Ä[ÐRÐRñô ð ð Œzå”Ô)å”Ô,Ô9Ý”Ô+Ý”Ô2Ý”Ô+Ý”Ô(Ô@ð	ð 	ð 	ð ×1Ò1Ñ3Ô3Ð3ð Œz�Uœ^Ô8Ð8Ð8Ý&Ô,¨Rµ´Ô1RÑSÔSÐSÝ"Ô(¨Õ-DÑ-FÔ-FÀtÄzÔ-RÑSÔSÐSr]   c                 óp  — |rt          dt          |¦  «        › �¦  «        ‚| j        t          j        j        u �r0t          |¦  «        dk    rt          dt          |¦  «        › �¦  «        ‚|d                              ¦   «         st          d¦  «        ‚|d         j        j        j	        d         }|                      |¦  «        }t          |t          j        j        ¦  «        rj|t          j                             t          j        j        j        ¦  «        z
  t          j                             t          j        j        j        ¦  «        z
  }t"                               |¦  «        S |rt          dt          |¦  «        › �¦  «        ‚t"                               |                      ¦   «         ¦  «        S )Nz1Dispatch key set functions expect no kwargs, got r7   z"_dispatch_keys expects 1 arg, got r   z8Expected first argument to _dispatch_keys to be a tensorr¶   z/Dispatch key set function expects no args, got )rÈ   ru  r’   rV   rd   Ú_dispatch_keysÚ	is_tensorÚproxyrÅ   rÆ   r�   rº   r¼   r   ÚDispatchKeyÚPythonÚPythonTLSSnapshotÚDispatchKeySetVariablerx  )r  r  rU  rþ   r¶   Údkss         r[   Ú!handle_dispatch_key_set_functionszUTorchInGraphFunctionVariable._get_handlers.<locals>.handle_dispatch_key_set_functionsÀ  s”  € ð ð Ý$ØUÍÈFÉÌÐUÐUñô ð ð Œz�UœXÔ4Ð4Ñ4Ý�t‘9”9 ’>�>Ý(ØH½SÀ¹Y¼YÐHÐHñô ð ð ˜A”w×(Ò(Ñ*Ô*ð Ý(ØRñô ð ð !% Q¤¤Ô 2Ô 7¸Ô H�Ø—j’j Ñ/Ô/�õ ˜m­UÔ->Ô-IÑJÔJð àÝœ(×1Ò1µ%´(Ô2FÔ2MÑNÔNñOåœ(×1Ò1Ý!œHÔ0ÔBñô ñð õ .×4Ò4°SÑ9Ô9Ð9àð Ý(ØUÍ#ÈdÉ)Ì)ÐUÐUñô ð õ .×4Ò4°T·Z²Z±\´\ÑBÔBÐBr]   c                 ód   — t          j        |t          j                             ¦   «         ¦  «        S r¹   )r9   r*  rV   Ú	overridesÚget_default_nowrap_functionsrÇ  s       r[   Ú#handle_get_default_nowrap_functionszWTorchInGraphFunctionVariable._get_handlers.<locals>.handle_get_default_nowrap_functionsì  s,   € õ #Ô(Ø•E”O×@Ò@ÑBÔBñô ð r]   c                 ó<  •— t          |¦  «        dk    rí|së|\  }}t          |t          j        ¦  «        r|                     ¦   «         }|                     ¦   «         st          d¦  «        ‚|                     |d¦  «        }|                     t          j
        |t          j        ¦  «        |||g|¦  «        }|                     d d ¬¦  «        }|j        j                             |d|¦  «          ‰j        d ¦  «        S t          |¦  «        dk    rÈ|sÆ|\  }}}t          |t          j        ¦  «        r|                     ¦   «         }|                     ¦   «         st          d¦  «        ‚|                     t          j
        |t          j        ¦  «        |||g|¦  «        }|j        j                             |d|                     d d ¬¦  «        ¦  «         |S |                     t          j
        |t          j        ¦  «        t'          |¦  «        |¦  «        S )Nr   z:Expected first argument to accumulate_grad_ to be a tensorÚgrad)r“   Úmutation_typeé   )ru  r�   r   r³   rÌ   rË  rÈ   Úvar_getattrÚinline_user_function_returnr9   r*  r   Úaccumulate_gradÚcloner‚  Úside_effectsÚ
store_attrrx  Úaccumulate_grad_no_aliasr£  )	r  r  rU  rþ   ÚvariableÚnew_gradÚvariable_gradÚupdated_gradr   s	           €r[   Úhandle_accumulate_grad_zKTorchInGraphFunctionVariable._get_handlers.<locals>.handle_accumulate_grad_û  s'  ø€ õ �4‰yŒy˜AŠ~ˆ~ fˆ~Ø%)Ñ"�˜(Ý˜h­	Ô(EÑFÔFð 2Ø'×/Ò/Ñ1Ô1�HØ×)Ò)Ñ+Ô+ð Ý(ØTñô ð ð !)× 4Ò 4°R¸Ñ @Ô @�Ø!×=Ò=Ý#Ô)¨"­iÔ.GÑHÔHØ˜}¨hÐ7Øñ ô  �ð
  ,×1Ò1¸ÈTÐ1ÑRÔR�Ø”	Ô&×1Ò1°(¸FÀLÑQÔQÐQØ.Ð'Ô.¨tÑ4Ô4Ð4Ý�4‰yŒy˜AŠ~ˆ~ fˆ~Ø48Ñ1�˜-¨Ý˜h­	Ô(EÑFÔFð 2Ø'×/Ò/Ñ1Ô1�HØ×)Ò)Ñ+Ô+ð Ý(ØTñô ð ð  "×=Ò=Ý#Ô)¨"­iÔ.PÑQÔQØ˜}¨hÐ7Øñ ô  �ð
 ”	Ô&×1Ò1ØØØ ×&Ò&¨dÀ$Ð&ÑGÔGñô ð ð
 $Ð#Ø×1Ò1ÝÔ% b­)Ô*LÑMÔMÝ�T‘
”
Øñô ð r]   Nc                 ó¨   — t          ||¦  «        sA|                     t          j        |t          j        ¦  «        t          |¦  «        |¦  «        S d S r¹   )r.   rÜ  r9   r*  r   Úradiansr£  rÇ  s       r[   Úhandle_radianszBTorchInGraphFunctionVariable._get_handlers.<locals>.handle_radians,  sW   € õ 1°°vÑ>Ô>ð à×5Ò5Ý#Ô)¨"­iÔ.?Ñ@Ô@Ý˜‘J”JØñô ð ðð r]   Úfmac                 óØ   — t          |¦  «        dk    s|rd S t          d„ |D ¦   «         ¦  «        r9|\  }}}t          t          j        ¦  «        }|                     ||||gi ¦  «        S d S )NrÚ  c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r¹   )rË  ©rX   Úargs     r[   r\   zQTorchInGraphFunctionVariable._get_handlers.<locals>.handle_fma.<locals>.<genexpr>G  s*   è è € Ð7Ð7¨3�s—}’}‘”Ð7Ð7Ð7Ð7Ð7Ð7r]   )ru  rÉ   r­  rV   Úaddcmulrf  )r  r  rU  rþ   rn  ÚyÚzÚ
addcmul_fns           r[   Ú
handle_fmaz>TorchInGraphFunctionVariable._get_handlers.<locals>.handle_fma=  s{   € õ �t‘9”9 ’>�> V�>Ø˜4åÐ7Ð7°$Ð7Ñ7Ô7Ñ7Ô7ð GØ"‘G�A�q˜!Ý!=½e¼mÑ!LÔ!L�JØ%×3Ò3°B¸¸A¸q¸	À2ÑFÔFÐFð �tr]   c                 ó\   — t          dddg t          j        ¢t          j        ¢¬¦  «         d S )Nz:Encountered torch.is_inference_mode_enabled during tracingrs  z2torch.is_inference_mode_enabled() is not supportedr‡   )r#   r   ÚFUNDAMENTALÚINFERENCE_MODEr3  s     r[   Ú handle_is_inference_mode_enabledzTTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_inference_mode_enabledO  sI   € õ ØTØØPðÝ&Ô2ðå&Ô5ðð	ñ ô ð ð ð r]   rî  c                 óæ   •— |                      ¦   «         s=| j        t          j        j        u r5t          |‰¦  «        r%t          |j        d¦  «        r ‰j        d¦  «        S  ‰j        d¦  «        S )NÚ__torch_function__TF)rË  r’   rV   rÔ  Úis_tensor_liker�   rU   rx  )r  r  rî  r   rÂ  s      €€r[   Úhandle_is_tensorzDTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_tensor]  sy   ø€ ð �}Š}‰Œð 6Ø”
�eœoÔ<Ð<Ð<Ý˜sÐ$=Ñ>Ô>ð =å˜CœIÐ';Ñ<Ô<ð =ð /Ð'Ô.¨tÑ4Ô4Ð4à.Ð'Ô.¨uÑ5Ô5Ð5r]   Úinputc                 ó6  — |}|                      ¦   «         r‚|j        �{| j        t          j        u rt          j        ||j        j        ¦  «        S | j        t          j        u rt          j        ||j        j        ¦  «        S t          d| j        › �¦  «        ‚d S )Nzcalling )	rË  Údtyper’   rV   Úis_floating_pointr9   r*  Ú
is_complexrÈ   )r  r  rü  Ú	input_args       r[   Úhandle_is_floating_pointzLTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_floating_pointj  s“   € ð ˆIØ×"Ò"Ñ$Ô$ð B¨¬Ð)DØ”:¥Ô!8Ð8Ð8Ý*Ô0°°Y´_Ô5VÑWÔWÐWØ”Z¥5Ô#3Ð3Ð3Ý*Ô0°°Y´_Ô5OÑPÔPÐPå(Ð)@°D´JÐ)@Ð)@ÑAÔAÐAØ�4r]   c                 óü   — |                      ¦   «         r;|                     ¦   «         r't          j        |t	          |j        ¦  «        ¦  «        S |                      ¦   «         r|                     |dg i ¦  «        S d S )NÚnumel)rË  Ú
valid_sizer9   r*  r3   ÚsizeÚcall_method©r  r  rü  s      r[   Úhandle_numelz@TorchInGraphFunctionVariable._get_handlers.<locals>.handle_numel{  sw   € ð �ŠÑ Ô ð > U×%5Ò%5Ñ%7Ô%7ð >Ý&Ô,¨Rµ¸¼Ñ1DÔ1DÑEÔEÐEØ—’Ñ"Ô"ð >à×(Ò(¨¨W°b¸"Ñ=Ô=Ð=Ø�4r]   c                 óˆ   — t          |¦  «        dk    r|d         S t          dd|› d|› �ddgt          j        ¢¬¦  «         d S )	Nr7   r   z torch.compile call with > 1 argsúargs=ú	, kwargs=zNAttempted to call `torch.compile` with > 1 args. Dynamo does not support this.z5Remove the torch.compile call or its additional args.r‡   ©ru  r#   r   r”   rÇ  s       r[   Úhandle_torch_compilezHTorchInGraphFunctionVariable._get_handlers.<locals>.handle_torch_compile†  si   € õ �4‰yŒy˜AŠ~ˆ~à˜A”w�åØ:Ø7 Ð7Ð7¨vÐ7Ð7ØlàKðå&Ô2ðð	ñ ô ð ð ð r]   c                 óˆ   — t          |¦  «        dk    r|d         S t          dd|› d|› �ddgt          j        ¢¬¦  «         d S )	Nr7   r   z,torch.library.wrap_triton call with > 1 argsr  r  z]Attempted to call `wrap_triton`/`capture_triton` with > 1 args. Dynamo does not support this.zBRemove the wrap_triton/capture_triton call or its additional args.r‡   r  rÇ  s       r[   Úhandle_wrap_tritonzFTorchInGraphFunctionVariable._get_handlers.<locals>.handle_wrap_triton›  so   € õ �4‰yŒy˜AŠ~ˆ~à˜A”w�åØFØ7 Ð7Ð7¨vÐ7Ð7ð@ð Yðå&Ô2ðð	ñ 	ô 	ð 	ð 	ð 	r]   c                 óx   — |                      ¦   «         st          d¦  «        ‚|                     |dg i ¦  «        S )Nz4Expected input to tensor size rewrite to be a tensorr  )rË  rÈ   r  r  s      r[   Úhandle_tensor_size_rewriteszOTorchInGraphFunctionVariable._get_handlers.<locals>.handle_tensor_size_rewrites±  sG   € ð —?’?Ñ$Ô$ð Ý$ØJñô ð ð ×$Ò$ R¨°°RÑ8Ô8Ð8r]   c                 ó0   — |                       |||¦  «        S r¹   )Ú_call_ntuplerÇ  s       r[   Úhandle_ntuplezATorchInGraphFunctionVariable._get_handlers.<locals>.handle_ntuple»  s   € ð ×$Ò$ R¨¨vÑ6Ô6Ð6r]   c                 óx   •— t          ‰j        ¦  «         t          j        |t	          j        ¦   «         ¦  «        S r¹   )r'   Ú_guards_singletonr9   r*  rV   Úis_grad_enabled)r  r  r^  s     €r[   Úhandle_is_grad_enabledzJTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_grad_enabledÊ  s3   ø€ õ Ð*Ô<Ñ=Ô=Ð=Ý"Ô(¨­UÔ-BÑ-DÔ-DÑEÔEÐEr]   Úmodec                 ó‚   •— ‰                      ||                     ¦   «         ¦  «        }|                     |¦  «         |S r¹   )rx  rš   Úenter)r  r  r  rŸ  r_  s       €r[   Úhandle_enter_inference_modezOTorchInGraphFunctionVariable._get_handlers.<locals>.handle_enter_inference_modeÑ  s:   ø€ ð (×.Ò.¨r°4×3JÒ3JÑ3LÔ3LÑMÔMˆCØ�IŠI�b‰MŒMˆMØˆJr]   c                 ó,   — |                      |¦  «        S r¹   )Úexit)r  r  r  s      r[   Úhandle_exit_inference_modezNTorchInGraphFunctionVariable._get_handlers.<locals>.handle_exit_inference_modeÙ  s   € ð —9’9˜R‘=”=Ð r]   FÚ	warn_onlyc                 óB  •— |                      ¦   «         }t          |t          ¦  «        r|                      ¦   «         n|}|j                             dt
          j        j        |fd|i¦  «         t
          j                             ||¬¦  «          ‰j        d ¦  «        S )Nrf  r!  )r!  )	rš   r�   r9   r‚  Úcreate_noderV   rd   Ú_set_deterministic_algorithmsrx  )r  r  r  r!  r’   Úwarn_only_valuer   s         €r[   Ú#handle_use_deterministic_algorithmszWTorchInGraphFunctionVariable._get_handlers.<locals>.handle_use_deterministic_algorithmsß  s¨   ø€ ð ×+Ò+Ñ-Ô-ˆEõ ˜i­Ñ9Ô9ð�	×,Ò,Ñ.Ô.Ð.àð ð
 ŒI×!Ò!ØÝ”Ô6Ø�Ø˜oÐ.ñ	ô ð õ ŒH×2Ò2°5ÀOÐ2ÑTÔTÐTØ*Ð#Ô*¨4Ñ0Ô0Ð0r]   c                 óÖ   — |j                              dt          j        di ¦  «         t          j        ¦   «         }|j                              d„ ¦  «         t          j        ||¦  «        S )Nrf  ry   c                  ó(   — t          j        ¦   «         S r¹   )rV   Úautocast_decrement_nestingry   r]   r[   ú<lambda>zgTorchInGraphFunctionVariable._get_handlers.<locals>.handle_autocast_increment_nesting.<locals>.<lambda>ý  ó   € ­uÔ/OÑ/QÔ/Q€ r]   )r‚  r#  rV   Úautocast_increment_nestingÚadd_cleanup_hookr9   r*  ©r  r  Úprevs      r[   Ú!handle_autocast_increment_nestingzUTorchInGraphFunctionVariable._get_handlers.<locals>.handle_autocast_increment_nestingõ  óg   € ð ŒI×!Ò!Ø¥Ô!AÀ2Àrñô ð õ Ô3Ñ5Ô5ˆDØŒI×&Ò&Ð'QÐ'QÑRÔRÐRÝ"Ô(¨¨TÑ2Ô2Ð2r]   c                 óÖ   — |j                              dt          j        di ¦  «         t          j        ¦   «         }|j                              d„ ¦  «         t          j        ||¦  «        S )Nrf  ry   c                  ó(   — t          j        ¦   «         S r¹   )rV   r,  ry   r]   r[   r*  zgTorchInGraphFunctionVariable._get_handlers.<locals>.handle_autocast_decrement_nesting.<locals>.<lambda>  r+  r]   )r‚  r#  rV   r)  r-  r9   r*  r.  s      r[   Ú!handle_autocast_decrement_nestingzUTorchInGraphFunctionVariable._get_handlers.<locals>.handle_autocast_decrement_nesting   r1  r]   Údevice_typeÚenabledc                 óš  •‡‡— |j                              dt          j        |                     ¦   «         |                     ¦   «         f¦  «         |                     ¦   «         Št          j        ‰¦  «        Št          j        ‰|                     ¦   «         ¦  «         |j                              ˆˆfd„¦  «          ‰j        d ¦  «        S )Nrf  c                  ó.   •— t          j        ‰ ‰¦  «        S r¹   )rV   Úset_autocast_enabled)Údev_py_constr/  s   €€r[   r*  zaTorchInGraphFunctionVariable._get_handlers.<locals>.handle_set_autocast_enabled.<locals>.<lambda>  s   ø€ �Ô2°<ÀÑFÔF€ r]   )	r‚  r#  rV   r9  rÄ   rš   Úis_autocast_enabledr-  rx  )r  r  r5  r6  r:  r/  r   s       @@€r[   Úhandle_set_autocast_enabledzOTorchInGraphFunctionVariable._get_handlers.<locals>.handle_set_autocast_enabled  sË   øøø€ ð ŒI×!Ò!ØÝÔ*Ø×%Ò%Ñ'Ô'¨×)9Ò)9Ñ);Ô);Ð<ñô ð ð
 '×9Ò9Ñ;Ô;ˆLÝÔ,¨\Ñ:Ô:ˆDÝÔ& |°W×5OÒ5OÑ5QÔ5QÑRÔRÐRØŒI×&Ò&ØFÐFÐFÐFÐFñô ð ð +Ð#Ô*¨4Ñ0Ô0Ð0r]   c                 óD  •‡— |j                              dt          j        |                     ¦   «         f¦  «         t          j        ¦   «         Št          j        |                     ¦   «         ¦  «         |j                              ˆfd„¦  «          ‰j        d ¦  «        S )Nrf  c                  ó,   •— t          j        ‰ ¦  «        S r¹   )rV   Úset_autocast_cache_enabled©r/  s   €r[   r*  zgTorchInGraphFunctionVariable._get_handlers.<locals>.handle_set_autocast_cache_enabled.<locals>.<lambda>(  s   ø€ ­uÔ/OÐPTÑ/UÔ/U€ r]   )	r‚  r#  rV   r?  rÄ   Úis_autocast_cache_enabledrš   r-  rx  )r  r  r6  r/  r   s      @€r[   Ú!handle_set_autocast_cache_enabledzUTorchInGraphFunctionVariable._get_handlers.<locals>.handle_set_autocast_cache_enabled  sš   øø€ ð ŒI×!Ò!Ø¥Ô!AÀG×DTÒDTÑDVÔDVÐCXñô ð õ Ô2Ñ4Ô4ˆDÝÔ,¨W×-GÒ-GÑ-IÔ-IÑJÔJÐJØŒI×&Ò&Ð'UÐ'UÐ'UÐ'UÑVÔVÐVØ*Ð#Ô*¨4Ñ0Ô0Ð0r]   c                 ó,  — |j                              dt          j        j        j        ¦  «         t          j        j                             ¦   «         }|j                              t          j        j        j        ¦  «         t          j	        ||¦  «        S ©Nrf  )
r‚  r#  rV   r�  ÚpredispatchÚ_jvp_increment_nestingr-  Ú_jvp_decrement_nestingr9   r*  ©r  r  Úlevels      r[   Úhandle_jvp_increment_nestingzPTorchInGraphFunctionVariable._get_handlers.<locals>.handle_jvp_increment_nesting+  ó€   € ð ŒI×!Ò!Ø¥Ô!1Ô!=Ô!Tñô ð õ Ô$Ô0×GÒGÑIÔIˆEØŒI×&Ò&ÝÔ Ô,ÔCñô ð õ #Ô(¨¨UÑ3Ô3Ð3r]   c                 ó,  — |j                              dt          j        j        j        ¦  «         t          j        j                             ¦   «         }|j                              t          j        j        j        ¦  «         t          j	        ||¦  «        S rD  )
r‚  r#  rV   r�  rE  rG  r-  rF  r9   r*  rH  s      r[   Úhandle_jvp_decrement_nestingzPTorchInGraphFunctionVariable._get_handlers.<locals>.handle_jvp_decrement_nesting8  rK  r]   c                 ó  ‡— |j                              dt          j        j        j        ¦  «         t          j        j                             ¦   «         Š|j                              ˆfd„¦  «         t          j        |‰¦  «        S )Nrf  c                  óN   •— t           j        j                             ‰ ¬¦  «        S )N©rI  )rV   r�  rE  Ú_exit_dual_levelrP  s   €r[   r*  z]TorchInGraphFunctionVariable._get_handlers.<locals>.handle_enter_dual_level.<locals>.<lambda>N  s   ø€ �Ô(Ô4×EÒEÈEÐEÑRÔR€ r]   )	r‚  r#  rV   r�  rE  Ú_enter_dual_levelr-  r9   r*  rH  s     @r[   Úhandle_enter_dual_levelzKTorchInGraphFunctionVariable._get_handlers.<locals>.handle_enter_dual_levelE  s�   ø€ ð ŒI×!Ò!Ø¥Ô!1Ô!=Ô!Oñô ð õ Ô$Ô0×BÒBÑDÔDˆEØŒI×&Ò&ØRÐRÐRÐRñô ð õ #Ô(¨¨UÑ3Ô3Ð3r]   rI  c                 ó<  •‡— |                      ¦   «         Š|j                             dt          j        j        j        dd‰i¦  «         t          j        j                             ‰¬¦  «         ˆfd„}|j                             |¦  «          ‰j        d ¦  «        S )Nrf  ry   rI  rP  c                  óx   •— t           j        j                             ¦   «         } | ‰k    rt	          d¦  «        ‚d S )NzInvalid _exit_dual_level)rV   r�  rE  rR  rÈ   )Ú	new_levelÚlevel_consts    €r[   Úcleanupz[TorchInGraphFunctionVariable._get_handlers.<locals>.handle_exit_dual_level.<locals>.cleanupa  s<   ø€ Ý!Ô,Ô8×JÒJÑLÔL�	Ø Ò+Ð+Ý(Ð)CÑDÔDÐDð ,Ð+r]   )	rš   r‚  r#  rV   r�  rE  rQ  r-  rx  )r  r  rI  rX  rW  r   s       @€r[   Úhandle_exit_dual_levelzJTorchInGraphFunctionVariable._get_handlers.<locals>.handle_exit_dual_levelR  s¶   øø€ ð  ×2Ò2Ñ4Ô4ˆKØŒI×!Ò!ØÝÔ Ô,Ô=Øà˜[ðñ	ô ð õ ÔÔ(×9Ò9ÀÐ9ÑLÔLÐLðEð Eð Eð Eð Eð
 ŒI×&Ò& wÑ/Ô/Ð/Ø*Ð#Ô*¨4Ñ0Ô0Ð0r]   c                 ó,  — |j                              dt          j        j        j        ¦  «         t          j        j                             ¦   «         }|j                              t          j        j        j        ¦  «         t          j	        ||¦  «        S rD  )
r‚  r#  rV   rd   r�  Ú_grad_increment_nestingr-  Ú_grad_decrement_nestingr9   r*  rH  s      r[   Úhandle_grad_increment_nestingzQTorchInGraphFunctionVariable._get_handlers.<locals>.handle_grad_increment_nestingi  ót   € ð ŒI×!Ò!Ø¥¤Ô!4Ô!Lñô ð õ ”HÔ'×?Ò?ÑAÔAˆEØŒI×&Ò&¥u¤xÔ':Ô'RÑSÔSÐSÝ"Ô(¨¨UÑ3Ô3Ð3r]   c                 ó,  — |j                              dt          j        j        j        ¦  «         t          j        j                             ¦   «         }|j                              t          j        j        j        ¦  «         t          j	        ||¦  «        S rD  )
r‚  r#  rV   rd   r�  r\  r-  r[  r9   r*  rH  s      r[   Úhandle_grad_decrement_nestingzQTorchInGraphFunctionVariable._get_handlers.<locals>.handle_grad_decrement_nestingt  r^  r]   Úallowedc                 ó˜  •‡— |j                              dt          j        j        j        |                     ¦   «         f¦  «         t          j        j                             ¦   «         Št          j        j                             |                     ¦   «         ¦  «         |j          	                    ˆfd„¦  «          ‰j
        d ¦  «        S )Nrf  c                  óL   •— t           j        j                             ‰ ¦  «        S r¹   )rV   rd   r�  Ú!set_inplace_requires_grad_allowedr@  s   €r[   r*  znTorchInGraphFunctionVariable._get_handlers.<locals>.handle_set_inplace_requires_grad_allowed.<locals>.<lambda>�  s   ø€ �œÔ+×MÒMÈdÑSÔS€ r]   )r‚  r#  rV   rd   r�  rd  rÄ   Ú!get_inplace_requires_grad_allowedrš   r-  rx  )r  r  ra  r/  r   s      @€r[   Ú(handle_set_inplace_requires_grad_allowedz\TorchInGraphFunctionVariable._get_handlers.<locals>.handle_set_inplace_requires_grad_allowed  sÂ   øø€ ð ŒI×!Ò!ØÝ”Ô#ÔEØ×!Ò!Ñ#Ô#Ð%ñô ð õ
 ”8Ô&×HÒHÑJÔJˆDÝŒHÔ×AÒAØ×*Ò*Ñ,Ô,ñô ð ð ŒI×&Ò&ØSÐSÐSÐSñô ð ð +Ð#Ô*¨4Ñ0Ô0Ð0r]   c                 ó¸   — t          t          ¦   «         t          j        ¦  «        }t	          |¦  «         t          j        |t          j        ¦   «         ¦  «        S r¹   )	r   r*   r&   ÚDETERMINISTIC_ALGORITHMSr'   r9   r*  rV   Ú$are_deterministic_algorithms_enabled)r  r  Úguards      r[   Ú+handle_are_deterministic_algorithms_enabledz_TorchInGraphFunctionVariable._get_handlers.<locals>.handle_are_deterministic_algorithms_enabled‘  sU   € õ Ý!Ñ#Ô#ÝÔ5ñô ˆEõ ˜%Ñ Ô Ð Ý"Ô(Ø•EÔ>Ñ@Ô@ñô ð r]   c                 ór   — t          t          j        ¦  «         t          j        ||j        j        ¦  «        S r¹   )r'   r=   r  r9   r*  Úsymbolic_torch_function_stateÚtorch_function_subclass_enabledr3  s     r[   Ú handle_is_torch_function_enabledzTTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_torch_function_enabledž  s8   € õ Õ6ÔHÑIÔIÐIõ #Ô(Ø�BÔ4ÔTñô ð r]   c                 ót   — t          t          j        ¦  «         t          j        ||j        j         ¦  «        S r¹   )r'   r=   r  r9   r*  rm  Útorch_function_mode_enabledr3  s     r[   Ú%handle_is_torch_function_all_disabledzYTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_torch_function_all_disabled©  s9   € õ Õ6ÔHÑIÔIÐIÝ"Ô(Ø˜Ô8ÔTÐTñô ð r]   c                 ó¤   — t          t          j        ¦  «         t          j        ||j        j        o|j                             ¦   «         ¦  «        S r¹   )r'   r=   r  r9   r*  rm  rq  Úin_torch_function_moder3  s     r[   Ú%handle_is_torch_function_mode_enabledzYTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_torch_function_mode_enabled²  sQ   € õ Õ6ÔHÑIÔIÐIõ #Ô(ØØÔ0ÔLð NØÔ4×KÒKÑMÔMñô ð r]   c                 ó:  — |j         }|j        rd|_        t          j        |d¦  «        S t	          |¦  «        dk    r1t          |d         t          ¦  «        rt          ||d         ¦  «        n|}t          j        |t          d„ |D ¦   «         ¦  «        ¦  «        S )NFr7   r   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r¹   )r0   rm  s     r[   r\   z`TorchInGraphFunctionVariable._get_handlers.<locals>.handle_has_torch_function.<locals>.<genexpr>Ñ  s+   è è € Ð0VÐ0VÈ1Õ1CÀAÑ1FÔ1FÐ0VÐ0VÐ0VÐ0VÐ0VÐ0Vr]   )	rm  Ú	skip_nextr9   r*  ru  r�   rC   r5   Úany)r  r  rU  Útf_stateÚelemss        r[   Úhandle_has_torch_functionzMTorchInGraphFunctionVariable._get_handlers.<locals>.handle_has_torch_functionÀ  s    € ð Ô7ˆHØÔ!ð 8Ø%*�Ô"Ý&Ô,¨R°Ñ7Ô7Ð7õ �t‘9”9 ’>�>¥j°°a´½-Ñ&HÔ&H�>õ    D¨¤GÑ,Ô,Ð,àð õ
 #Ô(¨­SÐ0VÐ0VÐPUÐ0VÑ0VÔ0VÑ-VÔ-VÑWÔWÐWr]   rg  Útypesc                 óV  — |j         }|j        rddlm}  |t          |dg¬¦  «         d|_        |xj        dz  c_        	 |                     |t          ||¦  «        |                     ¦   «         ¦  «        |xj        dz  c_        d|_        S # |xj        dz  c_        d|_        w xY w)Nr   )r!   z‚you cannot skip two levels of __torch_function__, you need to run one level of __torch_function__ before being able to skip again.©rU  Tr7   F)	rm  rx  Útorch._dynamo.excr!   ÚRuntimeErrorÚ!skip_one_hop_torch_function_depthrf  r5   Úkeys_as_python_constant)r  r  rg  r}  rU  rþ   rz  r!   s           r[   Ú"handle_skip_one_hop_torch_functionzVTorchInGraphFunctionVariable._get_handlers.<locals>.handle_skip_one_hop_torch_functionÓ  sô   € ð Ô7ˆHØÔ!ð ØFÐFÐFÐFÐFÐFà(Ð(Ý Øð;ððñ ô ð ð "&ˆHÔØÐ0Ô0°AÑ5Ð0Ô0ð+Ø×)Ò)ØÝ# B¨Ñ-Ô-Ø×2Ò2Ñ4Ô4ñô ð Ð4Ô4¸Ñ9Ð4Ô4Ø%*�Ô"Ð"øð Ð4Ô4¸Ñ9Ð4Ô4Ø%*�Ô"Ð*Ð*Ð*Ð*s   Á6B ÂB(c              3   ó*   K  — | ]\  }}|j         V — Œd S r¹   )Ústream)rX   rS   Údevice_interfaces      r[   r\   z=TorchInGraphFunctionVariable._get_handlers.<locals>.<genexpr>ö  s>   è è € ð ð á'�AÐ'ð !Ô'ðð ð ð ð ð r]   r†  r   c                 ó0   •— ‰                      ||¦  «        S r¹   )rx  )r  r  r†  rÀ  s      €r[   Úhandle_device_interface_streamzRTorchInGraphFunctionVariable._get_handlers.<locals>.handle_device_interface_streamõ  s   ø€ ð )×/Ò/°°FÑ;Ô;Ð;r]   c                 ó  •— t           j        s!t          ddt           j        › �ddg¬¦  «         t          s t          dddd	gt          j        ¢¬¦  «          ‰‰| |j        j        d
t          j	        gt          |i ¦  «        ¢R Ž d ¬¦  «        S )NzEcall `torch.from_numpy` with `torch._dynamo.config.trace_numpy=False`ztrace_numpy=zcAttempted to call `torch.from_numpy` with config `torch._dynamo.config.trace_numpy` set to `False`.z4Change `torch._dynamo.config.trace_numpy` to `True`.r‡   z)`torch.from_numpy` with NumPy unavailablers  z@Attempted to call `torch.numpy` but NumPy could not be imported.z9Check NumPy version and installation in your environment.rf  )Ú
target_clsr  rÌ  r¶   )r   Útrace_numpyr#   Únpr   Ú
USER_ERRORr‚  rƒ  rV   Ú	as_tensorr4   )r  r  rU  rµ   re  s      €€r[   Úhandle_from_numpyzETorchInGraphFunctionVariable._get_handlers.<locals>.handle_from_numpy   sâ   ø€ õ Ô%ð ÝØcØ?­6Ô+=Ð?Ð?ðMð Oðð
ñ 
ô 
ð 
õ ð 	ÝØGØØ bàSðå*Ô5ðð	ñ ô ð ð %Ð$Ø)ØØ,�b”iÔ,Ø#Ý”Oðõ ' t¨RÑ0Ô0ðð ð ð
 #ð	ñ 	ô 	ð 	r]   Úthe_typeÚ	the_valuec                 ó   — |S r¹   ry   )r  r  r‘  r’  s       r[   Úhandle_jit_annotatezGTorchInGraphFunctionVariable._get_handlers.<locals>.handle_jit_annotate%  s
   € ð Ðr]   r    Úextrac                 ó  — |rt          d¦  «        ‚|                     ¦   «         st          d¦  «        ‚t          j        d|j        |j        ¬¦  «        }t          j        |t          j        j	         
                    |¦  «        ¦  «        S )Nz%Expect 1 input to cudnn.is_acceptablez2Expect input to cudnn.is_acceptable to be a tensorr   )rþ  Údevice)rÈ   rË  rV   r    rþ  r—  r9   r*  rq  ÚcudnnÚis_acceptable)r  r  r    r•  Ú
tensor_inps        r[   Úhandle_cudnn_is_acceptablezNTorchInGraphFunctionVariable._get_handlers.<locals>.handle_cudnn_is_acceptable+  sŽ   € ð ð NÝ$Ð%LÑMÔMÐMØ×#Ò#Ñ%Ô%ð Ý$ØHñô ð õ œ a¨v¬|ÀFÄMÐRÑRÔRˆJÝ"Ô(Ø•E”NÔ(×6Ò6°zÑBÔBñô ð r]   c                 ó6   — t          j        j        |g|¢R i |¤ŽS r¹   )r   ÚBackwardHookVariablerx  rÇ  s       r[   Úhandle_backward_hookzHTorchInGraphFunctionVariable._get_handlers.<locals>.handle_backward_hook?  s(   € õ Ô1Ô8¸ÐM¸dÐMÐMÐMÀfÐMÐMÐMr]   c                 ó$   —  | j         |g|¢R i |¤ŽS r¹   )Úcall_nn_parameterrÇ  s       r[   Úhandle_parameterzDTorchInGraphFunctionVariable._get_handlers.<locals>.handle_parameterH  s'   € ð *�4Ô)¨"Ð>¨tÐ>Ð>Ð>°vÐ>Ð>Ð>r]   Úself_Údimc                 ó<   — |�|                      |d|gi ¦  «        S d S )Nr  ©r  ©r¢  r  r  r£  s       r[   Úhandle_sym_sizezCTorchInGraphFunctionVariable._get_handlers.<locals>.handle_sym_sizeQ  s*   € ð
 ˆØ×'Ò'¨¨F°S°E¸2Ñ>Ô>Ð>Ø�4r]   c                 ó<   — |�|                      |d|gi ¦  «        S d S )NÚstrider¥  r¦  s       r[   Úhandle_sym_stridezETorchInGraphFunctionVariable._get_handlers.<locals>.handle_sym_strideZ  s*   € ð ˆØ×'Ò'¨¨H°s°e¸RÑ@Ô@Ð@Ø�4r]   c                 ó¢  — t          |¦  «        dk    r»d|v r·t          |¦  «        dk    r¤t          t          j        ¦  «                             |g |dd …         ¢i ¦  «        }t          t          j        ¦  «                             |||d         gi ¦  «        }t          t          j        ¦  «                             ||d         |gi ¦  «        S d S )NrÚ  r’   r7   r   )ru  r­  rV   r~   rf  r}   r{   )r  r  rU  rþ   rÕ   s        r[   Úhandle_addcdivzBTorchInGraphFunctionVariable._get_handlers.<locals>.handle_addcdivb  sÍ   € õ �4‰yŒy˜AŠ~ˆ~ '¨VÐ"3Ð"3½¸F¹¼ÀqÒ8HÐ8Hõ 6µe´iÑ@Ô@×NÒNØ˜˜$˜q˜r˜rœ(˜ Rñô �õ 6µe´iÑ@Ô@×NÒNØ˜ ¨¤Ð1°2ñô �õ 4µE´IÑ>Ô>×LÒLØ˜˜aœ &Ð)¨2ñô ð ð �4r]   r  Ú
fill_valuec                 ó   — |                      ¦   «         ryt          |                     ¦   «         t          j        j        ¦  «        sHt          t          j        ¦  «                             ||g|¦  «        }| 	                    |d|gi ¦  «        S d S )NÚfill_)
rË  r  Úpython_typerV   ru   Ú	Parameterr­  Úemptyrf  r  )r  r  r  r­  rþ   Úempty_results         r[   Úhandle_fullz?TorchInGraphFunctionVariable._get_handlers.<locals>.handle_fullw  sŽ   € ð ×#Ò#Ñ%Ô%ð 	O­jØ×&Ò&Ñ(Ô(­%¬(Ô*<ñ/ô /ð 	Oõ
  <½E¼KÑHÔH×VÒVØ˜˜ ñ ô  �ð $×/Ò/°°G¸j¸\È2ÑNÔNÐNØ�4r]   rS   c                 óè   — t          |¦  «        dk    r^t          |d         t          ¦  «        sC|sA|                     t	          j        |t          j        ¦  «        t          |¦  «        |¦  «        S d S )NrÚ  r   )	ru  r�   rB   rÜ  r9   r*  r   Úforeach_lerp_inplacer£  ©rS   r  rU  rþ   s       r[   Ú"handle_inplace_foreach_lerp_scalarzVTorchInGraphFunctionVariable._get_handlers.<locals>.handle_inplace_foreach_lerp_scalar‹  sh   € õ �4‰yŒy˜AŠ~ˆ~¥j°°a´½,Ñ&GÔ&Gˆ~ÐPVˆ~Ø×5Ò5Ý#Ô)¨"­iÔ.LÑMÔMÝ˜‘J”JØñô ð ð
 �4r]   c                 ó  — t           j        sd S t          |¦  «        dk    r]|d                              ¦   «         rC|sA|                     t          j        |t          j        ¦  «        t          |¦  «        |¦  «        S d S )Nr   r   )
r   Úenable_dynamo_decompositionsru  rË  rÜ  r9   r*  r   Úforeach_pow_scalarr£  r·  s       r[   Úhandle_foreach_pow_scalarzMTorchInGraphFunctionVariable._get_handlers.<locals>.handle_foreach_pow_scalar�  s{   € õ Ô6ð Ø�tõ �4‰yŒy˜AŠ~ˆ~ $ q¤'×"3Ò"3Ñ"5Ô"5ˆ~¸fˆ~Ø×5Ò5Ý#Ô)¨"­iÔ.JÑKÔKÝ˜‘J”JØñô ð ð
 �4r]   c                 ó„   — |                      t          j        |t          j        ¦  «        t          |¦  «        |¦  «        S r¹   )rÜ  r9   r*  r   Ú!group_tensors_by_device_and_dtyper£  r·  s       r[   Ú(handle_group_tensors_by_device_and_dtypez\TorchInGraphFunctionVariable._get_handlers.<locals>.handle_group_tensors_by_device_and_dtype±  s;   € ð ×1Ò1ÝÔ% b­)Ô*UÑVÔVÝ�T‘
”
Øñô ð r]   Ú	conditionÚmessagec                 óÔ   •— |                      ¦   «         r|                     ¦   «         s.t          |t          j        ¦  «        r$|                     ¦   «         r ‰j        d ¦  «        S d S r¹   )r™   rš   r�   r   rÁ  Úevaluate_exprrx  )r  r  rÀ  rÁ  r   s       €r[   Úhandle_assertzATorchInGraphFunctionVariable._get_handlers.<locals>.handle_assert¾  sp   ø€ ð ×,Ò,Ñ.Ô.ð 5°9×3OÒ3OÑ3QÔ3Qð 5Ý˜9¥iÔ&?Ñ@Ô@ð5à×+Ò+Ñ-Ô-ð5ð /Ð'Ô.¨tÑ4Ô4Ð4Ø�4r]   c           
      ó~   •—  ‰| |j         j        dt          j        j        gt          ||¦  «        ¢R Ž |¬¦  «        S )Nrf  )rÌ  Ú
param_vars)r‚  rƒ  rV   rd   Ú_SDPAParamsr4   )r  r  rU  rþ   rÃ  s       €r[   Úhandle_sdpa_paramszFTorchInGraphFunctionVariable._get_handlers.<locals>.handle_sdpa_paramsÌ  s^   ø€ ð !�=ØØ,�b”iÔ,Ø#Ý”HÔ(ðõ ' t¨VÑ4Ô4ðð ð ð
  ðñ ô ð r]   )Ú_get_group_size_by_nameÚ_get_group_tagÚ_rank_not_in_groupÚ$_resolve_group_name_by_ranks_and_tagÚget_process_group_ranksÚget_rankÚget_world_sizec                 óÔ  ‡— t          |¦  «        dk    rt          |¦  «        dk    r�n^t          |¦  «        dk    rwt          |¦  «        dk    rd|d                              ¦   «         sIt          |d         t          ¦  «        r|d         j        j        dk    st          d|d         › �¦  «        ‚nÔt          |¦  «        dk    r}t          |¦  «        dk    rjt          |d         t          ¦  «        s%t          dt          |d         ¦  «        › �¦  «        ‚|d                              ¦   «         st          d¦  «        ‚nDt          |¦  «        dk    rt          |¦  «        dk    rnt          d|› d	|› d
| j        › �¦  «        ‚dt          dt          fd„Šˆfd„|D ¦   «         }ˆfd„|                     ¦   «         D ¦   «         } | j        |i |¤Ž}t          j        ||¦  «        S )Nr   r7   z/torch.distributed.distributed_c10d.ProcessGroupz@Expected group arg to be a python constant or ProcessGroup, got r   z5Expected first arg to be a ListVariable (ranks), got z1Expected second arg (tag) to be a python constantzInvalid group value (ú, z) for constant pg function rî  r_   c                 ól   — t          | t          ¦  «        r| j        j        S |                      ¦   «         S r¹   )r�   rE   r’   Úreal_objrš   )rî  s    r[   Úget_arg_valuezqTorchInGraphFunctionVariable._get_handlers.<locals>.handle_constant_processgroup_functions.<locals>.get_arg_value  s4   € õ " #Õ'@ÑAÔAð 2Ø"œyÔ1Ð1Ø×1Ò1Ñ3Ô3Ð3r]   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS ry   ry   )rX   rî  rÔ  s     €r[   r¿   znTorchInGraphFunctionVariable._get_handlers.<locals>.handle_constant_processgroup_functions.<locals>.<listcomp>%  s#   ø€ Ð DÐ DÐ D¸  ¨sÑ!3Ô!3Ð DÐ DÐ Dr]   c                 ó.   •— i | ]\  }}| ‰|¦  «        “ŒS ry   ry   )rX   ÚkÚvrÔ  s      €r[   ú
<dictcomp>znTorchInGraphFunctionVariable._get_handlers.<locals>.handle_constant_processgroup_functions.<locals>.<dictcomp>&  s)   ø€ Ð"RÐ"RÐ"R¹4¸1¸a 1 m m°AÑ&6Ô&6Ð"RÐ"RÐ"Rr]   )ru  r™   r�   rE   r’   Úscript_class_namerÈ   rB   r‘   r9   r   r–   r*  )r  r  rU  rþ   Úargs_as_valueÚkwargs_as_valueÚinvocation_resultrÔ  s          @r[   Ú&handle_constant_processgroup_functionszZTorchInGraphFunctionVariable._get_handlers.<locals>.handle_constant_processgroup_functionsè  sF  ø€ õ" �t‘9”9 ’>�>¥c¨&¡k¤k°QÒ&6Ð&6áÝ˜‘Y”Y !’^�^­¨F©¬°qÒ(8Ð(8ð ˜Qœ×2Ò2Ñ4Ô4ðõ ' t¨A¤wÕ0IÑJÔJðð !%Ø !ô!ä#Ô$5ØPò!Qð !Qõ -ØhÐ_cÐdeÔ_fÐhÐhñô ð øõ ˜‘Y”Y !’^�^­¨F©¬°qÒ(8Ð(8å% d¨1¤g­|Ñ<Ô<ð Ý,ØcÕTXÐY]Ð^_ÔY`ÑTaÔTaÐcÐcñô ð ð   œ7×5Ò5Ñ7Ô7ð Ý,ØOñô ð ðõ ˜‘Y”Y !’^�^­¨F©¬°aª¨àå(ð1°ð 1ð 1¸ð 1ð 1Ø$(¤Jð1ð 1ñô ð ð
4¥ð 4½3ð 4ð 4ð 4ð 4ð !EÐ DÐ DÐ D¸tÐ DÑ DÔ D�Ø"RÐ"RÐ"RÐ"RÀ6Ç<Â<Á>Ä>Ð"RÑ"RÔ"R�Ø$. D¤J°Ð$QÀÐ$QÐ$QÐ!õ
 'Ô,¨RÐ1BÑCÔCÐCr]   )ÚlayoutÚtensor_listrß  c                ó   — ddl m} |rB|                     t          j        ¦  «        r#t          dd|› �ddgt          j        ¢¬¦  «         t          ||¦  «        s#t          dd	|› �dd
gt          j	        ¢¬¦  «         d S )Nr7   r…   z%Attempted to use strided NestedTensorzlayout=úDynamo does not support this.zChange layout=torch.jagged.r‡   z4Attempted to use `nested_tensor` with non-list inputztensor_list=z'Change `nested_tensor` with list input.)
r�   r†   Úis_constant_matchrV   Ústridedr#   r   r”   r�   rŽ  )r  r  rà  rß  rU  rþ   r†   s          r[   Úhandle_nested_tensorzHTorchInGraphFunctionVariable._get_handlers.<locals>.handle_nested_tensor.  sÇ   € ð 0Ð/Ð/Ð/Ð/Ð/àð 	˜&×2Ò2µ5´=ÑAÔAð 	ÝØCØ. fÐ.Ð.Ø ?à5ðå*Ô6ðð	ñ ô ð õ ˜kÐ+;Ñ<Ô<ð 	ÝØRØ8¨;Ð8Ð8Ø ?àAðå*Ô5ðð	ñ ô ð ð �4r]   c                 óÜ   — t          |¦  «        t          |¦  «        z   dk    s.t          |¦  «        dk    r5|d                              d¦  «        rt          dd|› d|› �ddg¬	¦  «         d S )
Nr7   r   éÿÿÿÿzOAttempted to use `torch.nn.functional.one_hot` with data-dependent output shaper  r  râ  zuExplicitly set the `num_classes` param of the function call `torch.nn.functional.one_hot` to something other than -1.r‡   )ru  rã  r#   rÇ  s       r[   Úhandle_one_hotzBTorchInGraphFunctionVariable._get_handlers.<locals>.handle_one_hotO  s‡   € õ �4‰yŒy�3˜v™;œ;Ñ&¨!Ò+Ð+Ý�D‘	”	˜Q’� 4¨¤7×#<Ò#<¸RÑ#@Ô#@�åØmØ; DÐ;Ð;°6Ð;Ð;Ø ?ðTðð	ñ ô ð ð �4r]   Úexprc                 óÖ   •— t          |‰¦  «        rAt          j        |t          j        j        j                             |j        ¦  «        ¦  «        S | 	                    ¦   «         r|S d S r¹   )
r�   r9   r*  rV   rf   ÚexperimentalÚsymbolic_shapesÚguarding_hint_or_throwÚsym_numr™   ©r  r  ré  rÁ  s      €r[   Úhandle_guarding_hint_or_throwzQTorchInGraphFunctionVariable._get_handlers.<locals>.handle_guarding_hint_or_throwd  so   ø€ õ ˜$ Ñ0Ô0ð 
Ý&Ô,ØÝ”HÔ)Ô9×PÒPØœñô ñô ð ð ×(Ò(Ñ*Ô*ð Ø�à�tr]   Úfallbackc                 ó  •— |r|                      ¦   «         nd }t          |‰¦  «        rBt          j        |t          j        j        j                             |j	        |¦  «        ¦  «        S | 
                    ¦   «         r|S d S r¹   )rš   r�   r9   r*  rV   rf   rë  rì  Úoptimization_hintrî  r™   )r  r  ré  rñ  Úfallback_intrÁ  s        €r[   Úhandle_optimization_hintzLTorchInGraphFunctionVariable._get_handlers.<locals>.handle_optimization_hintv  s�   ø€ ð =EÐN˜8×6Ò6Ñ8Ô8Ð8È$ˆLÝ˜$ Ñ0Ô0ð 
Ý&Ô,ØÝ”HÔ)Ô9×KÒKØœ lñô ñô ð ð ×(Ò(Ñ*Ô*ð Ø�à�tr]   c                 óÖ   •— t          |‰¦  «        rAt          j        |t          j        j        j                             |j        ¦  «        ¦  «        S | 	                    ¦   «         r|S d S r¹   )
r�   r9   r*  rV   rf   rë  rì  Úguard_size_obliviousrî  r™   rï  s      €r[   Úhandle_guard_size_obliviouszOTorchInGraphFunctionVariable._get_handlers.<locals>.handle_guard_size_obliviousŠ  sq   ø€ õ ˜$ Ñ0Ô0ð õ 'Ô,ØÝ”HÔ)Ô9×NÒNØœñô ñô ð ð ×(Ò(Ñ*Ô*ð Ø�à�tr]   c                 óÖ   •— t          |‰¦  «        rAt          j        |t          j        j        j                             |j        ¦  «        ¦  «        S | 	                    ¦   «         r|S d S r¹   )
r�   r9   r*  rV   rf   rë  rì  Úguard_or_truerî  r™   rï  s      €r[   Úhandle_guard_or_truezHTorchInGraphFunctionVariable._get_handlers.<locals>.handle_guard_or_trueœ  sl   ø€ õ ˜$ Ñ0Ô0ð 
õ 'Ô,ØÝ”HÔ)Ô9×GÒGÈÌÑUÔUñô ð ð ×(Ò(Ñ*Ô*ð Ø�à�tr]   c                 óÖ   •— t          |‰¦  «        rAt          j        |t          j        j        j                             |j        ¦  «        ¦  «        S | 	                    ¦   «         r|S d S r¹   )
r�   r9   r*  rV   rf   rë  rì  Úguard_or_falserî  r™   rï  s      €r[   Úhandle_guard_or_falsezITorchInGraphFunctionVariable._get_handlers.<locals>.handle_guard_or_false¬  sl   ø€ õ ˜$ Ñ0Ô0ð 
õ 'Ô,ØÝ”HÔ)Ô9×HÒHÈÌÑVÔVñô ð ð ×(Ò(Ñ*Ô*ð Ø�à�tr]   c                 óÖ   •— t          |‰¦  «        rAt          j        |t          j        j        j                             |j        ¦  «        ¦  «        S | 	                    ¦   «         r|S d S r¹   )
r�   r9   r*  rV   rf   rë  rì  Ústatically_known_falserî  r™   rï  s      €r[   Úhandle_statically_known_falsezQTorchInGraphFunctionVariable._get_handlers.<locals>.handle_statically_known_false¼  so   ø€ õ ˜$ Ñ0Ô0ð 
Ý&Ô,ØÝ”HÔ)Ô9×PÒPØœñô ñô ð ð ×(Ò(Ñ*Ô*ð Ø�à�tr]   rn  c                 ó$  — ddl m} t          ||¦  «        ry|                     ¦   «         j        j                             d¦  «        }|�Ft          j         	                    t          j        j        j                             |¦  «        ¦  «        S d S )Nr7   r´   r¶   )r    rµ   r�   rÄ   rÅ   rÆ   rÇ   r   r   rx  rV   rf   rë  rì  Úhas_free_unbacked_symbols)r  r  rn  rµ   r¶   s        r[   Ú handle_has_free_unbacked_symbolszTTorchInGraphFunctionVariable._get_handlers.<locals>.handle_has_free_unbacked_symbolsÌ  s�   € ð /Ð.Ð.Ð.Ð.Ð.å˜!˜^Ñ,Ô,ð Ø !§
¢
¡¤Ô 1Ô 6× :Ò :¸?Ñ KÔ K�Ø Ð,Ý$Ô5×<Ò<ÝœÔ-Ô=×WÒWØ)ñô ñô ð ð
 �4r]   c                 ó*  •— t          |‰¦  «        r|j        }n?|                     ¦   «         r|                     ¦   «         }nt	          dd|› �dg ¬¦  «         t          j        |t          j        j	        j
                             |¦  «        ¦  «        S )NzGtorch.fx.experimental.symbolic_shapes.guard_scalar branch not supportedzexpr: z6Expected `expr` to be a symbolic variable or constant.r‡   )r�   rî  r™   rš   r#   r9   r*  rV   rf   rë  rì  Úguard_scalar©r  r  ré  ÚvalrÁ  s       €r[   r  z@TorchInGraphFunctionVariable._get_handlers.<locals>.guard_scalarÜ  s£   ø€ õ ˜$ Ñ0Ô0ð 
Ø”l��Ø×(Ò(Ñ*Ô*ð Ø×-Ò-Ñ/Ô/��åØeØ+ T˜O˜OØ XØð	ñ ô ð õ #Ô(Øå”Ô%Ô5×BÒBÀ3ÑGÔGñô ð r]   c                 óÖ   •— t          |‰¦  «        rAt          j        |t          j        j        j                             |j        ¦  «        ¦  «        S | 	                    ¦   «         r|S d S r¹   )
r�   r9   r*  rV   rf   rë  rì  Ústatically_known_truerî  r™   rï  s      €r[   Úhandle_statically_known_truezPTorchInGraphFunctionVariable._get_handlers.<locals>.handle_statically_known_trueñ  so   ø€ õ ˜$ Ñ0Ô0ð 
Ý&Ô,ØÝ”HÔ)Ô9×OÒOØœñô ñô ð ð ×(Ò(Ñ*Ô*ð Ø�à�tr]   Útermsc                 ó¸   •— t          ˆfd„|D ¦   «         ¦  «        r=‰                     |t          j        j        j        j        d„ |D ¦   «         Ž d ¬¦  «        S d S )Nc              3   ó8   •K  — | ]}t          |‰¦  «        V — Œd S r¹   ©r�   ©rX   rn  rÁ  s     €r[   r\   zUTorchInGraphFunctionVariable._get_handlers.<locals>.handle_sym_and.<locals>.<genexpr>  ó-   øè è € ÐAÐA°a•:˜a Ñ1Ô1ÐAÐAÐAÐAÐAÐAr]   c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r¹   ©rÄ   rm  s     r[   r\   zUTorchInGraphFunctionVariable._get_handlers.<locals>.handle_sym_and.<locals>.<genexpr>	  ó*   è è € Ð6Ð6¨1˜!Ÿ*š*™,œ,Ð6Ð6Ð6Ð6Ð6Ð6r]   ©rî  )rÉ   rx  rV   rf   rë  rì  Úsym_and©r  r  r  rÁ  s      €r[   Úhandle_sym_andzBTorchInGraphFunctionVariable._get_handlers.<locals>.handle_sym_and  sz   ø€ õ ÐAÐAÐAÐA¸5ÐAÑAÔAÑAÔAð Ø&×-Ò-ØÝ”HÔ)Ô9ÔAØ6Ð6°Ð6Ñ6Ô6ðð !ð .ñ ô ð ð �4r]   c                 ó¸   •— t          ˆfd„|D ¦   «         ¦  «        r=‰                     |t          j        j        j        j        d„ |D ¦   «         Ž d ¬¦  «        S d S )Nc              3   ó8   •K  — | ]}t          |‰¦  «        V — Œd S r¹   r  r  s     €r[   r\   zTTorchInGraphFunctionVariable._get_handlers.<locals>.handle_sym_or.<locals>.<genexpr>  r  r]   c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r¹   r  rm  s     r[   r\   zTTorchInGraphFunctionVariable._get_handlers.<locals>.handle_sym_or.<locals>.<genexpr>  r  r]   r  )rÉ   rx  rV   rf   rë  rì  Úsym_orr  s      €r[   Úhandle_sym_orzATorchInGraphFunctionVariable._get_handlers.<locals>.handle_sym_or  sz   ø€ õ ÐAÐAÐAÐA¸5ÐAÑAÔAÑAÔAð Ø&×-Ò-ØÝ”HÔ)Ô9Ô@Ø6Ð6°Ð6Ñ6Ô6ðð !ð .ñ ô ð ð �4r]   c                 ó  •— t          |‰¦  «        r|j        }n+|                     ¦   «         r|                     ¦   «         }nd S t	          j        |t          j        j        j	         
                    |¦  «        ¦  «        S r¹   )r�   rî  r™   rš   r9   r*  rV   rf   rë  rì  Úhas_static_valuer  s       €r[   Úhandle_has_static_valuezKTorchInGraphFunctionVariable._get_handlers.<locals>.handle_has_static_value  s|   ø€ õ ˜$ Ñ0Ô0ð Ø”l��Ø×(Ò(Ñ*Ô*ð Ø×-Ò-Ñ/Ô/��à�tå"Ô(Ø•E”HÔ)Ô9×JÒJÈ3ÑOÔOñô ð r]   c                 óZ   — ddl m} t          |¦  «                             |g |¢|¦  «        S )Nr   )Ú_unsafe_set_version_counter)Útensor_version_opr"  r­  rf  )r  r  rU  rþ   r"  s        r[   Ú!handle_unsafe_set_version_counterzUTorchInGraphFunctionVariable._get_handlers.<locals>.handle_unsafe_set_version_counter,  sA   € ð HÐGÐGÐGÐGÐGå/Ø+ñô çŠm˜B  $ ¨Ñ0Ô0ð1r]   c                 ó\   •—  ‰t           j        j                             ¦   «         ¦  «        S r¹   )rV   rd   r�  Úpeek_interpreter_stack)r  r  rU  rþ   rÂ  s       €r[   Ú'handle_functorch_peek_interpreter_stackz[TorchInGraphFunctionVariable._get_handlers.<locals>.handle_functorch_peek_interpreter_stack9  s.   ø€ ð -Ð,Ý”Ô#×:Ò:Ñ<Ô<ñô ð r]   c                 ó~   — |d         j         }t          t          j        j                             |¦  «        ¦  «        S ©Nr   )r’   ÚFuncTorchInterpreterVariablerV   r�  ÚpyfunctorchÚcoerce_cinterpreter)r  r  rU  rþ   Úcinterpreters        r[   Ú0handle_functorch_pyfunctorch_coerce_cinterpreterzdTorchInGraphFunctionVariable._get_handlers.<locals>.handle_functorch_pyfunctorch_coerce_cinterpreterF  s8   € ð   œ7œ=ˆLÝ/ÝÔ Ô,×@Ò@ÀÑNÔNñô ð r]   c                 ó  •‡— dt           dt          fˆˆfd„Šd }|r	|d         }nd|v r|d         }|�T|                     ¦   «         s@ ‰|¦  «        r5t          t          j        j        ¦  «                             |g |¢|¦  «        S d S )Nrn  r_   c                 óÌ   •— |                       ¦   «         st          | ‰¦  «        rdS t          | t          t          f¦  «        r t	          ˆfd„| j        D ¦   «         ¦  «        S dS )NTc              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S r¹   ry   )rX   rð  Úcheck_any_unspecs     €r[   r\   ztTorchInGraphFunctionVariable._get_handlers.<locals>.handle_torch_tensor.<locals>.check_any_unspec.<locals>.<genexpr>_  s/   øè è € ÐDÐD°qÐ/Ð/°Ñ2Ô2ÐDÐDÐDÐDÐDÐDr]   F)rË  r�   rB   rC   ry  r–   )rn  rÁ  r2  s    €€r[   r2  zaTorchInGraphFunctionVariable._get_handlers.<locals>.handle_torch_tensor.<locals>.check_any_unspecZ  sl   ø€ à—;’;‘=”=ð !¥J¨q°/Ñ$BÔ$Bð !Ø˜4Ý ¥Lµ-Ð#@ÑAÔAð !ÝÐDÐDÐDÐD¸A¼GÐDÑDÔDÑDÔDÐDð !˜5r]   r   Údata)r9   rF  rË  r­  rV   Ú_refsr    rf  )r  r  rU  rþ   Údata_argr2  rÁ  s        @€r[   Úhandle_torch_tensorzGTorchInGraphFunctionVariable._get_handlers.<locals>.handle_torch_tensorS  sË   øø€ ð	!¥Oð 	!½ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð ˆHØð *Ø œ7��Ø˜6Ð!Ð!Ø! &œ>�ð Ð$Ø ×*Ò*Ñ,Ô,ð %à$Ð$ XÑ.Ô.ð %õ 4µE´KÔ4FÑGÔG×UÒUØ˜˜$˜ ñô ð ð �tr]   c                 ó8  — |rt          dt          |¦  «        › �¦  «        ‚|rt          dt          |¦  «        › �¦  «        ‚|j        j        s t	          ddddgt
          j        ¢¬¦  «         t          j        |¦  «         |j         	                    ¦   «         S )Nz/_pop_torch_function_stack expects no args, got z1_pop_torch_function_stack expects no kwargs, got z5Attempted to pop from empty torch function mode stackrs  zTCalled `torch._C._pop_torch_function_stack` when torch function mode stack is empty.z0Do not pop from empty torch function mode stack.r‡   )
rÈ   ru  rm  Ú
mode_stackr#   r   rŽ  rI   Úregister_mutationÚpop_torch_function_moderÇ  s       r[   Úhandle_pop_torch_functionzMTorchInGraphFunctionVariable._get_handlers.<locals>.handle_pop_torch_functiony  sÇ   € ð ð Ý$ØQÅcÈ$ÁiÄiÐQÐQñô ð ð ð Ý$ØUÍÈFÉÌÐUÐUñô ð ð Ô3Ô>ð 	ÝØSØØ vàJðå*Ô5ðð	ñ ô ð õ +Ô<¸RÑ@Ô@Ð@ØÔ3×KÒKÑMÔMÐMr]   c                 óø   •— t          |¦  «        dk    s|r!t          |dt          |¦  «        › d�¦  «         t          j        |¦  «         |j                             |d         ¦  «          ‰j        d ¦  «        S )Nr7   z0push_torch_function takes exactly one argument (ú given)r   )ru  r"   rI   r9  rm  Úpush_torch_function_moderx  ©r  r  rU  rþ   r   s       €r[   Úhandle_push_torch_functionzNTorchInGraphFunctionVariable._get_handlers.<locals>.handle_push_torch_function•  sƒ   ø€ õ �4‰yŒy˜AŠ~ˆ~ ˆ~Ý ØØYÅsÈ4ÁyÄyÐYÐYÐYñô ð õ +Ô<¸RÑ@Ô@Ð@àÔ,×EÒEÀdÈ1ÄgÑNÔNÐNØ*Ð#Ô*¨4Ñ0Ô0Ð0r]   c                 ó‚   — |s|rt          |d¦  «         t          j        |t          |j        j        ¦  «        ¦  «        S )Nz+len_torch_function_stack takes no arguments)r"   r9   r*  ru  rm  r8  rÇ  s       r[   Úhandle_len_torch_functionzMTorchInGraphFunctionVariable._get_handlers.<locals>.handle_len_torch_function¦  sN   € ð ð T�vð TÝ  Ð%RÑSÔSÐSÝ"Ô(Ø•C˜Ô8ÔCÑDÔDñô ð r]   c                 óˆ  — t          |¦  «        dk    s|r!t          |dt          |¦  «        › d�¦  «         |d                              ¦   «         }|dk     rt          d|› �¦  «        ‚|t          |j        j        ¦  «        k    r,t          d|› dt          |j        j        ¦  «        › �¦  «        ‚|j        j        |         S )Nr7   z2get_function_stack_at takes exactly one argument (r=  r   z;Expected non-negative index for get_function_stack_at, got zIndex z6 out of range for torch function mode stack of length )ru  r"   rš   rÈ   rm  r8  )r  r  rU  rþ   Úinds        r[   Úhandle_get_stack_atzGTorchInGraphFunctionVariable._get_handlers.<locals>.handle_get_stack_at³  sï   € õ �4‰yŒy˜AŠ~ˆ~ ˆ~Ý ØØ[ÍÈTÉÌÐ[Ð[Ð[ñô ð ð �q”'×,Ò,Ñ.Ô.ˆCØ�QŠwˆwÝ$ØWÐRUÐWÐWñô ð ð •c˜"Ô:ÔEÑFÔFÒFÐFÝ$ðT˜Sð Tð TÝ!$ RÔ%EÔ%PÑ!QÔ!QðTð Tñô ð ð Ô3Ô>¸sÔCÐCr]   c                 óæ  — t          |¦  «        t          |¦  «        z   dk    s|r)d|vr%t          dd|› d|› �dg t          j        ¢¬¦  «         	 |r|d                              ¦   «         }n|r|d                              ¦   «         }nd }t          j        |¦  «        }n=# t          $ r0}t          d	d|› d|› �d
g t          j        ¢|¬¦  «         Y d }~nd }~ww xY w|€@t          | j	        ¦  «        }t          |                     t          j        ¦  «        ¦  «         t          t          d¦  «        |j                             dd¬¦  «        d         ¦  «        }t%          j        |||¦  «        S )Nr7   r—  z*improper torch.get_device_module argumentsr  r  z<torch.get_device_module accepts 1 optional argument `device`r‡   r   z.bad device argument to torch.get_device_moduleúAExpected valid string/torch.device argument ('cpu', 'cuda', etc.)©rˆ   r‰   rŠ   r‹   Úfrom_excrV   r  )Úmaxsplitrç  )ru  r#   r   rŽ  rš   rV   Úget_device_moduler
  r)   r“   r'   rí   r&   ÚID_MATCHr(   r+   rT   Úrsplitr9   r*  )	r  r  rU  rþ   r—  ÚmoduleÚer“   Ú
new_sources	            r[   Úhandle_get_device_modulezLTorchInGraphFunctionVariable._get_handlers.<locals>.handle_get_device_moduleË  sÄ  € õ �4‰yŒy�3˜v™;œ;Ñ&¨Ò*Ð*¨vÐ*¸(È&Ð:PÐ:PÝØHØ; DÐ;Ð;°6Ð;Ð;Ø ^ðÝ*Ô5ðð	ñ ô ð ðØð "Ø# HÔ-×@Ò@ÑBÔB�F�FØð "Ø! !œW×7Ò7Ñ9Ô9�F�Fà!�FÝÔ0°Ñ8Ô8��øÝð ð ð ÝØLØ; DÐ;Ð;°6Ð;Ð;Ø cØ9Õ-Ô8Ð9Øðñ ô ð ð ð ð ð ð øøøøðøøøð ˆ~Ý1°$´+Ñ>Ô>�Ý˜f×/Ò/µÔ0EÑFÔFÑGÔGÐGå#Ý˜WÑ%Ô%Ø”×&Ò& s°QÐ&Ñ7Ô7¸Ô;ñô ˆJõ #Ô(¨¨V°ZÑ@Ô@Ð@s   ÁAB! Â!
CÂ+&CÃCc                 óª  — ddl m} t          |¦  «        t          |¦  «        z   dk    s|r)d|vr%t          dd|› d|› �dg t          j        ¢¬¦  «         	 |r-t          j        |d                              ¦   «         ¦  «        }n1|r-t          j        |d	                              ¦   «         ¦  «        }nd }|j	         
                    |¦  «        } || j        ¦  «        }|�3t          ||¦  «        s# ||j        |j        |j        |j        ¬
¦  «        }|S # t           $ r1}t          dd|› d|› �dg t          j        ¢|¬¦  «         Y d }~d S d }~ww xY w)Nr7   )Ú_get_stream_variable_clsr—  z9unsupported arguments to torch.accelerator.current_streamr  r  zGtorch.accelerator.current_stream accepts one optional argument `device`r‡   r   rê   z7bad device argument to torch.accelerator.current_streamrG  rH  )ÚstreamsrS  ru  r#   r   rŽ  rV   r—  rš   Úsymbolic_stream_stateÚ
cur_streamr’   r�   rÌ  Úuser_object_indexr“   r
  )	r  r  rU  rþ   rS  r—  Ú
stream_varÚstream_variable_clsrO  s	            r[   Úhandle_current_streamzITorchInGraphFunctionVariable._get_handlers.<locals>.handle_current_stream÷  s×  € ð :Ð9Ð9Ð9Ð9Ð9å�4‰yŒy�3˜v™;œ;Ñ&¨Ò*Ð*¨vÐ*¸(È&Ð:PÐ:PÝØWØ; DÐ;Ð;°6Ð;Ð;Ø iðÝ*Ô5ðð	ñ ô ð ðØð "Ý"œ\¨&°Ô*:×*MÒ*MÑ*OÔ*OÑPÔP�F�FØð "Ý"œ\¨$¨q¬'×*DÒ*DÑ*FÔ*FÑGÔG�F�Fà!�FàÔ5×@Ò@ÀÑHÔH�
Ø&>Ð&>¸t¼zÑ&JÔ&JÐ#Ø&Ð2½:ØÐ 3ñ<ô <Ð2ð "5Ð!4Ø"Ô(Ø"Ô(Ø"Ô4Ø)Ô0ð	"ñ "ô "�Jð "Ð!øÝð ð ð ÝØUØ; DÐ;Ð;°6Ð;Ð;Ø cØ9Õ-Ô8Ð9Øðñ ô ð ð ð ð ð ð ð øøøøðøøøs   ÁC D Ä
EÄ!&EÅEr‡  ÚxpuÚmpsrˆ  c                 ón  •— d }|r1d|v r-t          j        |d                              ¦   «         ¦  «        }n.|r,t          j        |d                              ¦   «         ¦  «        }|€f‰                     | j        ¦  «        }|€6t           j                             ¦   «         }|€t          d¦  «        ‚|j        }t          j        |¦  «        }|j        dk    r ‰j	        d ¦  «        S |j
                             dt           j        j        j        |j        |j        pdfi ¦  «          ‰j	        d ¦  «        S )Nr—  r   z:No accelerator available for torch.accelerator.synchronizerˆ  rf  )rV   r—  rš   rÇ   r’   ÚacceleratorÚcurrent_acceleratorrÈ   r‘   rx  r‚  rƒ  ÚopsrT  Úsynchronize_deviceÚindex)	r  r  rU  rþ   r—  r5  r^  r   Ú_synchronize_fn_to_device_types	          €€r[   Úhandle_synchronizezFTorchInGraphFunctionVariable._get_handlers.<locals>.handle_synchronize1	  sD  ø€ ð ˆFØð D˜( fÐ,Ð,Ýœ f¨XÔ&6×&IÒ&IÑ&KÔ&KÑLÔL��Øð DÝœ d¨1¤g×&@Ò&@Ñ&BÔ&BÑCÔC�àˆ~Ø<×@Ò@ÀÄÑLÔL�ØÐ&å"'Ô"3×"GÒ"GÑ"IÔ"I�KØ"Ð*Ý,ØXñô ð ð #.Ô"2�KÝœ kÑ2Ô2�ð Œ{˜eÒ#Ð#Ø.Ð'Ô.¨tÑ4Ô4Ð4àŒI×"Ò"ØÝ”	Ô!Ô4Ø”˜fœlÐ/¨aÐ0Øñ	ô ð ð +Ð#Ô*¨4Ñ0Ô0Ð0r]   c                 óÒ   •— t          j        |¦  «         |d                              ¦   «         rt          j        |¦  «         nt          j        |¦  «          ‰j        d ¦  «        S r)  )rI   r9  Úis_constant_noneÚclear_default_deviceÚ!register_device_context_insertionrx  r?  s       €r[   Úhandle_set_default_devicezMTorchInGraphFunctionVariable._get_handlers.<locals>.handle_set_default_device\	  si   ø€ õ +Ô<¸RÑ@Ô@Ð@Ø�AŒw×'Ò'Ñ)Ô)ð UÝ.ÔCÀBÑGÔGÐGÐGå.ÔPÐQSÑTÔTÐTà*Ð#Ô*¨4Ñ0Ô0Ð0r]   )Úelementwise_dtypesc           	      ó  •— ddl m} |d                              ¦   «         }g }|D ]Ç}t          |‰	¦  «        r8|                     |                     ¦   «         j        j        d         ¦  «         ŒJ|                     ¦   «         r(|                     |                     ¦   «         ¦  «         Œ†t          dt          |¦  «        dt          |¦  «        j        › �g t          j        ¢¬¦  «         ŒÈ ‰
|d|iŽ}|                     ||¦  «        S )Nr7   )ÚSourcelessBuilderÚtype_promotion_kindr¶   z'elementwise_dtypes unsupported arg typez>elementwise_dtypes requires tensor or constant arguments, got r‡   )Úbuilderrl  rš   r�   rª   rÄ   rÅ   rÆ   r™   r#   rG  r‘   rT   r   r”   rx  )r  r  rU  rþ   rl  rm  Ú	real_argsrî  rÕ   rµ   rj  s            €€r[   Úhandle_elementwise_dtypeszMTorchInGraphFunctionVariable._get_handlers.<locals>.handle_elementwise_dtypest	  s>  ø€ ð 3Ð2Ð2Ð2Ð2Ð2à"(Ð)>Ô"?×"RÒ"RÑ"TÔ"TÐØˆIØð ð �Ý˜c >Ñ2Ô2ð Ø×$Ò$ S§\¢\¡^¤^Ô%8Ô%=¸oÔ%NÑOÔOÐOÐOØ×+Ò+Ñ-Ô-ð Ø×$Ò$ S×%;Ò%;Ñ%=Ô%=Ñ>Ô>Ð>Ð>å!Ø IÝ # C¡¤ð8Ý#'¨¡9¤9Ô#5ð8ð 8ð ?Õ 1Ô =Ð>ðñ ô ð ð ð (Ð'ØðØ0Cðð ˆFð %×+Ò+¨B°Ñ7Ô7Ð7r]   Úpredicate_vtÚ
message_vtÚ
error_typec           	      óF  •— |€t          || j        j        › d�¦  «         |                     ¦   «         rt          |d¦  «         d }d }|�¯t	          |t
          ¦  «        s,t          dt          |¦  «        dg t          j	        ¢¬¦  «         	 | 
                    ¦   «         }n=# t          $ r0 t          dt          |¦  «        ddgt          j	        ¢¬¦  «         Y nw xY w|j                             d	|¦  «        }|                     ¦   «         rE|                     ¦   «         r ‰
j        d ¦  «        S |�
 |¦   «         nd
}t#          |||g¬¦  «         |                     ¦   «         }|€|f}	n||f}	 ‰||j                             dt(          j        |	i ¦  «        ¬¦  «        S )Nz1() missing 1 required positional argument: 'cond'z�cond must be a bool, but got a Tensor. For tensor conditions, use torch._check_tensor_all() to assert that all elements are true.z*Can't extract message from torch._check*()zcThe message argument of torch._check*() must be a function defined within the torch.compile region.r‡   z-Can't convert torch._check*() message closurezhThe message argument of torch._check*() must be a function whose closure variables are Python constants.z‚Remove closure variables that reference non-constant values, e.g. remove references to tensor `x` in `lambda: f'{x} failed check'`Ú_check_messagez(Expected cond to be True, but got False.r  rf  ©r  rÌ  )r"   r’   rT   rË  r�   rA   r#   rG  r   r”   rµ  r@   r‚  Ú%register_static_attr_and_return_proxyr™   rš   rx  r!   rÄ   rƒ  rV   Ú_check)r  r  rq  rr  rs  Úmessage_eagerÚmessage_graph_proxyÚmsgÚpredicate_proxyÚ
proxy_argsr   rÃ  s             €€r[   Ú
check_implz>TorchInGraphFunctionVariable._get_handlers.<locals>.check_impl“	  s?  ø€ ð Ð#Ý ØØ”zÔ*Ð]Ð]Ð]ñô ð ð
 ×%Ò%Ñ'Ô'ð Ý Øð<ñô ð ð !ˆMØ"&ÐØÐ%Ý! *Õ.HÑIÔIð Ý!Ø LÝ # J¡¤ðGðÝ.Ô:ðð
ñ 
ô 
ð 
ðØ$.×$;Ò$;Ñ$=Ô$=�M�MøÝ-ð ð ð Ý!Ø OÝ # J¡¤ðLð_ðõ /Ô:ððñ ô ð ð ð ðøøøð ')¤i×&UÒ&UØ$ mñ'ô 'Ð#ð ×.Ò.Ñ0Ô0ð EØ×2Ò2Ñ4Ô4ð 9Ø2Ð+Ô2°4Ñ8Ô8Ð8ð %Ð0ð "�M‘O”O�OàDð õ
 )¨°R¸s¸eÐDÑDÔDÐDà*×3Ò3Ñ5Ô5ˆOð #Ð*Ø-Ð/�
�
à-Ð/BÐC�
à �=ØØ”i×,Ò,Ø#Ý”LØØñ	ô ðñ ô ð s   ÂB" Â"7CÃCc                 ó¸   •— |r|d         n|                      d¦  «        }|r
|dd …         nd}|r|d         n|                      d¦  «        } ‰| |||¦  «        S )Nr   Úcondr7   ry   rÁ  )rÇ   )r  r  rU  rþ   rq  Ú	rest_argsrr  r~  s          €r[   Úhandle_checkz@TorchInGraphFunctionVariable._get_handlers.<locals>.handle_checkè	  sm   ø€ ð '+ÐB˜4 œ7˜7°·
²
¸6Ñ0BÔ0BˆLØ$(Ð0˜˜Q˜R˜Rœ˜¨bˆIØ)2ÐM˜ 1œ˜¸¿
º
À9Ñ8MÔ8MˆJØ�:˜d B¨°jÑAÔAÐAr]   c                 ó<  •— | j         t          j        u r.|r|d         n|                     d¦  «        }|r
|dd …         nd}nd }|}t          j        t
          t          j        t          t          j        t          t          j
        t          i}|�|                     ¦   «         n|                     | j         t          ¦  «        }|r|d         n|                     d¦  «        }|r
|dd …         nd}|r|d         n|                     d¦  «        }	 ‰
| |||	|¦  «        S )Nr   rs  r7   ry   r€  rÁ  )r’   rV   Ú_check_withrÇ   Ú_check_indexÚ
IndexErrorÚ_check_valueÚ
ValueErrorÚ_check_typeÚ	TypeErrorÚ_check_not_implementedr,  rš   r�  )r  r  rU  rþ   Úerror_type_vtr�  Ú_CHECK_ERROR_TYPESrs  rq  rr  r~  s             €r[   Úhandle_check_withzETorchInGraphFunctionVariable._get_handlers.<locals>.handle_check_withô	  s#  ø€ ð Œz�UÔ.Ð.Ð.Ø+/Ð M  Q¤ °V·Z²ZÀÑ5MÔ5M�Ø(,Ð4˜D   œH˜H°"�	�	à $�Ø �	õ Ô"¥JÝÔ"¥JÝÔ!¥9ÝÔ,Õ.Að	AÐð !Ð,ð ×0Ò0Ñ2Ô2Ð2à'×+Ò+¨D¬J½ÑEÔEð ð ,5ÐL˜9 Qœ<˜<¸&¿*º*ÀVÑ:LÔ:LˆLØ)2Ð:˜	 ! " "œ˜¸ˆIØ)2ÐM˜ 1œ˜¸¿
º
À9Ñ8MÔ8MˆJØ�:˜d B¨°jÀ*ÑMÔMÐMr]   c                 ó  •— | j         t          j        u rK|r|d         n|                     d¦  «        }|r
|dd …         nd}|�|                     ¦   «         nt
          }n	|}t
          }|r|d         n|                     d¦  «        }|r
|dd …         nd}|r|d         n|                     d¦  «        }|€ ‰
| |d ||¦  «        S |                     |dg i ¦  «                             |dg i ¦  «        }	 ‰
| ||	||¦  «        S )	Nr   rs  r7   ry   r€  rÁ  Ú_is_all_truer�   )r’   rV   Ú_check_tensor_all_withrÇ   rš   r�  r  )r  r  rU  rþ   rŒ  r�  rs  Úcond_vtrr  Ú	scalar_vtr~  s             €r[   Úhandle_check_tensor_allzKTorchInGraphFunctionVariable._get_handlers.<locals>.handle_check_tensor_all
  s6  ø€ ð Œz�UÔ9Ð9Ð9Ø+/Ð M  Q¤ °V·Z²ZÀÑ5MÔ5M�Ø(,Ð4˜D   œH˜H°"�	ð %Ð0ð "×4Ò4Ñ6Ô6Ð6å%ð �
ð !�	Ý)�
à&/ÐG�i ”l�l°V·Z²ZÀÑ5GÔ5GˆGØ)2Ð:˜	 ! " "œ˜¸ˆIØ)2ÐM˜ 1œ˜¸¿
º
À9Ñ8MÔ8MˆJàˆØ!�z $¨¨D°*¸jÑIÔIÐIà×+Ò+¨B°ÀÀBÑGÔG×SÒSØ�F˜B ñô ˆIð �:˜d B¨	°:¸zÑJÔJÐJr]   rY   c           	      ó0  ‡— t          |¦  «        dk    s|r(t          | |j        › dt          |¦  «        › d�¦  «         t          t	          t	          t          d¦  «        d¦  «        d¦  «        ¦  «        }t          |                     t          j	        ¦  «        ¦  «         |d          
                    ¦   «         } ||¦  «        Š| j                             d||fi ¦  «         | j                             ˆfd	„¦  «         t          j        | ‰¦  «        S )
Nr7   z takes exactly one argument (r=  rV   r‡  Úcurrent_devicer   rf  c                  óB   •— t           j                             ‰ ¦  «        S r¹   )rV   r‡  Ú
set_devicer@  s   €r[   r*  z\TorchInGraphFunctionVariable._get_handlers.<locals>.exchange_device_helper.<locals>.<lambda>T
  s   ø€ ­u¬z×/DÒ/DÀTÑ/JÔ/J€ r]   )ru  r"   rT   r)   r(   r+   r'   rí   r&   ÚEQUALS_MATCHrš   r‚  r#  r-  r9   r*  )r  rU  rþ   rY   Úcurrent_device_sourcerî  r/  s         @r[   Úexchange_device_helperzJTorchInGraphFunctionVariable._get_handlers.<locals>.exchange_device_helper=
  s  ø€ õ �4‰yŒy˜AŠ~ˆ~ ˆ~Ý ØØ”{ÐSÐSÅÀTÁÄÐSÐSÐSñô ð õ %=Ý�:¥l°7Ñ&;Ô&;¸VÑDÔDÐFVÑWÔWñ%ô %Ð!õ Ð/×:Ò:½<Ô;TÑUÔUÑVÔVÐVØ�q”'×,Ò,Ñ.Ô.ˆCØ�2�c‘7”7ˆDØŒI×!Ò!ØØØ�Øñ	ô ð ð ŒI×&Ò&Ð'JÐ'JÐ'JÐ'JÑKÔKÐKÝ"Ô(¨¨TÑ2Ô2Ð2r]   c                 óX   •—  ‰|t          |¦  «        |t          j        j        ¦  «        S r¹   )r£  rV   r‡  Ú_exchange_device©r  r  rU  rþ   r›  s       €r[   Úhandle_exchange_devicezJTorchInGraphFunctionVariable._get_handlers.<locals>.handle_exchange_deviceW
  s.   ø€ ð *Ð)Ø•D˜‘J”J ­¬
Ô(Cñô ð r]   c                 óX   •—  ‰|t          |¦  «        |t          j        j        ¦  «        S r¹   )r£  rV   r‡  Ú_maybe_exchange_devicerž  s       €r[   Úhandle_maybe_exchange_devicezPTorchInGraphFunctionVariable._get_handlers.<locals>.handle_maybe_exchange_deviceb
  s.   ø€ ð *Ð)Ø•D˜‘J”J ­¬
Ô(Iñô ð r]   c                 ó
  — ddl m} ddlm} |d         }|d         }|                     ¦   «         }|                     ¦   «         rGt          j        j         	                    |                     ¦   «         |¦  «          |j
        d ¦  «        S t          ||¦  «        r:t          j        j         	                    |j        |¦  «          |j
        d ¦  «        S t          t          j        dt!          |¦  «        j        › �¦  «        ‚)Nr7   r   ©rÁ  r   zAoverride_optimization_hint expects a SymInt or int argument, got )Úconstantr   r    rÁ  rš   r™   rV   rl   Ú
decoratorsÚoverride_optimization_hintrx  r�   rî  r$   r%   ÚINVALID_INPUTr‘   rT   )	r  r  rU  rþ   r   rÁ  Úx_vtÚval_vtr  s	            r[   Ú!handle_override_optimization_hintzUTorchInGraphFunctionVariable._get_handlers.<locals>.handle_override_optimization_hintm
  s  € ð 3Ð2Ð2Ð2Ð2Ð2Ø/Ð/Ð/Ð/Ð/Ð/à˜”7ˆDØ˜!”WˆFØ×+Ò+Ñ-Ô-ˆCà×&Ò&Ñ(Ô(ð 5Ý”Ô(×CÒCØ×+Ò+Ñ-Ô-¨sñô ð ð /Ð'Ô.¨tÑ4Ô4Ð4å˜$ Ñ0Ô0ð 5Ý”Ô(×CÒCÀDÄLÐRUÑVÔVÐVØ.Ð'Ô.¨tÑ4Ô4Ð4åÝÔ+ð-Ý˜D‘z”zÔ*ð-ð -ñô ð r]   c           	      ó2  ‡'— ddl m}m} ddlm} ddlm} ddlm} ddl	m
}	 ddlm}
 |j        st          d	d
|j        › �ddg¬¦  «         |j        j        rN|j        j        }|rd                     |¦  «        nd}t          dd|› �d|› �|rd|d         › d�nddg¬¦  «         |j        rt          dddg d¢¬¦  «         t)          |¦  «        dk    rt+          |d         d¦  «         t)          |¦  «        dk    rt+          |d         d¦  «         t-          ¦   «         }i Š'|j        j                             ¦   «         D ]»}t5          ||
¦  «        r©|                     ¦   «         j        j                             d¦  «        }t5          |t>          j         ¦  «        stC          dtE          |¦  «        › �¦  «        ‚tG          |¦  «        }| $                    |¦  «         |j%        �|D ]}|j%        j&        ‰'|<   ŒŒ¼dd!l'm(} t)          |¦  «        dk    rtS          |d         ¦  «        ng }t)          |¦  «        dk    rtS          |d         ¦  «        ng }t-          ¦   «         }|D ]@\  }}t5          |t>          j         ¦  «        r!|j*        �| +                    |j*        ¦  «         ŒA |||¬"¦  «        }||z  }|r8ˆ'fd#„|D ¦   «         }|rd$|› �nd%}t          d&|d'd(d)gtX          j-        ¢¬¦  «         |                     d*¦  «        }|                     d+¦  «        }t5          ||¦  «        o|j.        d,u pt5          ||¦  «        o|j.        d,u }|sbd-„ |D ¦   «         }|j        j/        } || z  }!|!r$t          d.d/t)          |!¦  «        › �d0d1g¬¦  «         |j        j/         $                    |¦  «         t)          |¦  «        dk    r|d         n|                     d¦  «        }"t5          |"|¦  «        rdta          tc          |"j2                             ¦   «         ¦  «        ¦  «        }#t)          |¦  «        dk    r|d         |#g|dd …         ¢R }ni |¥d|#i¥}t>          j3        j4         5                    ¦   «         5  t>          j3        j4         6                    ¦   «         5   |j        j7        d2t>          j8        j9        gtu          ||¦  «        ¢R Ž }$d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y    |||$¬3¦  «        }%t5          |"|¦  «        r{t5          |%|	¦  «        stC          d4tE          |%¦  «        › �¦  «        ‚tw          ty          |"j2         =                    ¦   «         |%j2        d,¬5¦  «        ¦  «        }& ||&tv          ¦  «        S |%S )6a™	  
            Handle torch.autograd.grad() calls within compiled regions.

            NOTE [Tracing autograd.grad in dynamo]

            We validate two things:

            1. External grad_fns cannot be consumed: The grad_fn on external inputs
               could change at runtime, so we would need to guard on it if we wanted
               to trace through it. For now, we reject this case.
               We compute "consumed" grad_fns (reachable from outputs, excluding
               autograd.grad inputs parameter) and verify no graph input's grad_fn is in this set.

            2. Returned tensors cannot have consumed grad_fns: If autograd.grad
               consumes a grad_fn and we return a tensor connected to it, the user
               would get "backward through graph a second time" error. We track
               consumed grad_fns and check at output time. If violated, we retry
               with a graph break at autograd.grad.

            Safe vs Unsafe Cases:

            Case 1 - Safe (external tensor is autograd.grad input):
                x = torch.randn(4, requires_grad=True)
                external = x * 2  # has external grad_fn

                @torch.compile
                def fn(external_input):
                    loss = external_input.sum()
                    return torch.autograd.grad(loss, external_input)

                Safe because autograd.grad stops at external_input, never consuming
                its external grad_fn.

            Case 2 - Unsafe (external grad_fn in path):
                @torch.compile
                def fn(external_input):
                    loss = mod(external_input).sum()
                    return torch.autograd.grad(loss, mod.weight)

                Unsafe because autograd.grad must traverse through external_input's
                grad_fn to reach mod.weight. The external grad_fn could change at
                runtime, so we would need to guard on it (like AOTAutograd does).
                For now, we reject this case.

            Case 3 - Unsafe (returning tensor with consumed grad_fn):
                @torch.compile
                def fn(x):
                    y = x * 2
                    grad = torch.autograd.grad(y.sum(), x)
                    return y, grad  # y's grad_fn was consumed!

                Unsafe because y's grad_fn was consumed by autograd.grad. Trying to
                backward through y later would error.
            r   )rø   r   r7   ©rÃ  r   rƒ   r…   r´   zPusing `torch.autograd.grad` with `torch._dynamo.config.trace_autograd_ops=False`ztrace_autograd_ops=zmAttempted to call `torch.autograd.grad` with config `torch._dynamo.config.trace_autograd_ops` set to `False`.z;Change `torch._dynamo.config.trace_autograd_ops` to `True`.r‡   rÑ  Úunknownz0autograd.grad consumed returned tensor's grad_fnzLeaked output tensors: zâtorch.autograd.grad() consumes grad_fns that are needed by tensors returned from this compiled function. This would cause 'backward through graph a second time' errors.
  The following returned tensors have consumed grad_fns: z9Detach the problematic tensor(s) before returning: e.g. `r   z
.detach()`z.Call .detach() on the tensor before returning.z^If you need to backward through the returned tensor, use retain_graph=True in autograd.grad().z$autograd.grad with compiled autogradz&compiled_autograd is currently enabledzµtorch.autograd.grad() inside torch.compile is not supported when compiled autograd is enabled. These two features have conflicting requirements for how the autograd graph is traced.)zLDisable compiled autograd by removing the compiled_autograd context manager.zBOr move the autograd.grad() call outside the torch.compile region.zPOr restructure your code so autograd.grad() and compiled_autograd don't overlap.ÚoutputsÚinputsr¶   r·   N)Úcollect_reachable_grad_fns)Ústop_atc                 ó(   •— g | ]}|‰v ¯‰|         ‘ŒS ry   ry   )rX   ÚgfÚgrad_fn_to_sources     €r[   r¿   z\TorchInGraphFunctionVariable._get_handlers.<locals>.handle_autograd_grad.<locals>.<listcomp>F  s4   ø€ ð ð ð àØÐ.Ð.Ð.ð & bÔ)à.Ð.Ð.r]   zinputs with external grad_fn: rs  z#autograd.grad with external grad_fna	  torch.autograd.grad() cannot trace through the autograd graph because it's output depends on a tensor that was created outside the compiled region and has a grad_fn attached. The autograd graph extends beyond the compiled region boundary, which Dynamo cannot trace.z–If you don't need gradients to flow back to the original tensor outside the compiled region, detach the input: `tensor.detach().requires_grad_(True)`.zEOtherwise, move the autograd.grad() call outside the compiled region.Úretain_graphÚcreate_graphTc                 óB   — h | ]}t          |¦  «        j        d k    ¯|’ŒS )ÚAccumulateGrad)r‘   rT   )rX   r´  s     r[   ú	<setcomp>z[TorchInGraphFunctionVariable._get_handlers.<locals>.handle_autograd_grad.<locals>.<setcomp>n  s7   € ð %ð %ð %àÝ˜B‘x”xÔ(Ð,<Ò<Ð<ð à<Ð<Ð<r]   z+autograd.grad with already consumed grad_fnzdouble consumed grad_fns: z½torch.autograd.grad() is trying to consume grad_fns that were already consumed by a previous autograd.grad() call. This would cause 'backward through graph a second time' errors at runtime.zUse retain_graph=True in the first autograd.grad() call if you need to compute gradients through the same graph multiple times.rf  rv  zCExpected BaseListVariable from autograd.grad with dict inputs, got )Ústrict)>rs  rø   r   rn  rÃ  r¥  r   rŽ   r„   r�   r†   r    rµ   Útrace_autograd_opsr#   Úspeculation_logÚgraph_break_on_autograd_gradÚautograd_grad_leaked_tensorsÚjoinÚcompiled_autograd_enabledru  r—   r©   r‚  Úinput_source_to_varrÍ   r�   rÄ   rÅ   rÆ   rÇ   rV   rW   rÈ   r‘   r°   rÞ   r“   rZ   Úoutput_graphr±  rË   r«   r{   r   r”   r’   Úautograd_grad_consumed_grad_fnsrC   r£  r–   rf   r|  Úpreserve_node_metaÚ_set_autograd_backwardrƒ  r>  rØ  r4   ÚdictÚzipÚkeys)(r  r  rU  rþ   rø   r   rÃ  r   r„   r†   rµ   ÚleakedÚ
leaked_strÚexternal_grad_fnsr€   r»   Útensor_grad_fnsr´  r±  Úoutputs_with_sourcesÚinputs_with_sourcesÚinputs_grad_fnsr    rS   Úconsumed_grad_fnsÚexternal_in_consumedÚsourcesr‰   r¶  r·  Úgraph_preservedÚnon_leaf_consumedÚalready_consumedÚdouble_consumedÚ
inputs_varÚinputs_as_tuplerÌ  rÕ   r–   rµ  s(                                          @r[   Úhandle_autograd_gradzHTorchInGraphFunctionVariable._get_handlers.<locals>.handle_autograd_grad‹
  sÕ  ø€ ðt 5Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ø.Ð.Ð.Ð.Ð.Ð.Ø2Ð2Ð2Ð2Ð2Ð2Ø0Ð0Ð0Ð0Ð0Ð0Ø/Ð/Ð/Ð/Ð/Ð/Ø.Ð.Ð.Ð.Ð.Ð.àÔ,ð ÝØnØM°&Ô2KÐMÐMðTð Vðð
ñ 
ô 
ð 
ð Ô!Ô>ð ØÔ+ÔH�Ø28ÐG˜TŸYšY vÑ.Ô.Ð.¸i�
ÝØNØB°jÐBÐBðað U_ðað að "ðNÐiÐTZÐ[\ÔT]ÐiÐiÐiÐiàMØxð	ðñ ô ð ð( !Ô:ð ÝØBØDðMðð ð ðñ ô ð õ" �4‰yŒy˜AŠ~ˆ~Ý(¨¨a¬°)Ñ<Ô<Ð<Ý�4‰yŒy˜AŠ~ˆ~Ý(¨¨a¬°(Ñ;Ô;Ð;õ ADÁÄÐàFHÐØ”yÔ4×;Ò;Ñ=Ô=ð Dð D�Ý˜c >Ñ2Ô2ð DØ"%§,¢,¡.¤.Ô"5Ô":×">Ò">¸Ñ"OÔ"O�KÝ% kµ5´<Ñ@Ô@ð Ý,ØaÍdÐS^ÑN_ÔN_ÐaÐañô ð õ '<¸KÑ&HÔ&H�OØ%×,Ò,¨_Ñ=Ô=Ð=à”zÐ-Ø"1ð Dð D˜BØ47´J´OÐ-¨bÑ1Ð1øð BÐAÐAÐAÐAÐAõ ;>¸d¹)¼)Àqº.¸.Õ-¨d°1¬gÑ6Ô6Ð6Èbð !õ ;>¸d¹)¼)Àqº.¸.Õ-¨d°1¬gÑ6Ô6Ð6Èbð  õ ?B¹e¼eˆOØ0ð 8ð 8‘	�˜Ý˜f¥e¤lÑ3Ô3ð 8¸¼Ð8RØ#×'Ò'¨¬Ñ7Ô7Ð7øð !;Ð :Ø$¨oð!ñ !ô !Ðð $5Ð7HÑ#HÐ à#ð ðð ð ð à2ðñ ô �ð
 IPÐWÐD¸7ÐDÐDÐDÐUW�ÝØAØ#ðbðià_ðõ +Ô6ð	ðñ ô ð ð* "Ÿ:š: nÑ5Ô5ˆLØ!Ÿ:š: nÑ5Ô5ˆLå˜<Ð)9Ñ:Ô:ð /Ø Ô&¨$Ð.ðõ ˜<Ð)9Ñ:Ô:ð /Ø Ô&¨$Ð.ð ð #ð Tð%ð %à/ð%ñ %ô %Ð!ð $&¤9Ô#LÐ Ø"3Ð6FÑ"F�Ø"ð Ý!Ø MØ S½SÀÑ=QÔ=QÐ SÐ Sð^ð
_ððñ ô ð ð ”	Ô9×@Ò@ÐARÑSÔSÐSõ %(¨¡I¤I°¢N N˜˜aœ˜¸¿
º
À8Ñ8LÔ8LˆJÝ˜*Ð&7Ñ8Ô8ð CÝ"/µ°ZÔ5E×5LÒ5LÑ5NÔ5NÑ0OÔ0OÑ"PÔ"P�Ý�t‘9”9 ’>�>Ø  œG _Ð@°t¸A¸B¸B´xÐ@Ð@�D�DàB ÐB¨°/ÐBÐB�Fõ ”Ô"×5Ò5Ñ7Ô7ðð å”Ô"×9Ò9Ñ;Ô;ðð ð /˜œ	Ô.Ø#Ý”NÔ'ðõ ' t¨VÑ4Ô4ðð ð �ð	ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð #�] b°Ð6Ñ6Ô6ˆFå˜*Ð&7Ñ8Ô8ð 6Ý! &Ð*:Ñ;Ô;ð Ý(ð.Ý# F™|œ|ð.ð .ñô ð õ AEÝØ"Ô(×-Ò-Ñ/Ô/ØœØ#ðñ ô ñAô A�ð )Ð(¨µÑ5Ô5Ð5ØˆMs6   Ñ;$S4Ò2SÓS4ÓS!	Ó!S4Ó$S!	Ó%S4Ó4S8Ó;S8c                 ó  — t          |¦  «        dk    r|d         nd}t          |¦  «        dk    r|d         nd}|�|€dS t          |¦  «        }t          |¦  «        }|r¦|r¤|D ]¡}|j                             d¦  «        }	|j                             d¦  «        }
|
�it	          |	t
          j        ¦  «        rO|	j        €H|
j        }t	          |t
          j        ¦  «        r'|j        � t          ddd	d
gt          j        ¢¬¦  «         Œ¢dS )aë  Graph-break when closure-captured tensors lose their grad_fn.

            NOTE [Detecting lost autograd linkage in closure-captured tensors]

            Functorch transforms (vjp, grad, jacrev) return closures that capture
            tensors with grad_fn. When such a closure is compiled separately, those
            tensors become graph placeholders whose FakeTensors lose grad_fn,
            causing _autograd_grad to silently return zeros.

            _collect_placeholder_nodes gathers placeholder nodes from the
            outputs/inputs args. For each, we compare grapharg.example (the real
            tensor, retains grad_fn) against example_value (FakeTensor, grad_fn
            is None). A mismatch means autograd linkage was lost, so we
            graph-break.

            This is a pre-check only: kwargs (retain_graph, create_graph,
            grad_outputs) don't affect linkage detection and are handled by
            the default proxy path when this returns None.
            r7   r   Nr   r¶   Úgraphargz(_autograd_grad with lost grad_fn linkagez,outputs lost autograd linkage during tracingzp_autograd_grad() received tensors whose grad_fn was lost during tracing - this silently produces zero gradients.ziCompile the full transform instead of the returned closure: torch.compile(lambda x: torch.func.vjp(f, x))r‡   )ru  rÔ   rÆ   rÇ   r�   rV   rW   r«   Úexampler#   r   r”   )r  r  rU  rþ   Úoutputs_varrØ  Úoutput_placeholder_nodesÚinput_placeholder_nodesrÅ   ÚfakerÜ  Úreals               r[   Úhandle_functorch_autograd_gradzRTorchInGraphFunctionVariable._get_handlers.<locals>.handle_functorch_autograd_grad­  s2  € õ4 &)¨¡Y¤Y°!¢^ ^˜$˜qœ'˜'¸ˆKÝ$'¨¡I¤I°¢N N˜˜aœ˜¸ˆJàÐ" jÐ&8Ø�tå'AÀ+Ñ'NÔ'NÐ$Ý&@ÀÑ&LÔ&LÐ#à'ð Ð,Cð Ø4ð ð �DØœ9Ÿ=š=¨Ñ9Ô9�DØ#œyŸ}š}¨ZÑ8Ô8�Hà Ð,Ý& t­U¬\Ñ:Ô:ð -à œLÐ0à'Ô/˜Ý% d­E¬LÑ9Ô9ð ¸d¼lÐ>VÝ)Ø(RØ(Vð%6ð
%]ð'"õ &7Ô%Bð'"ðñ ô ð øð �4r]   rB  r¹   )r  rL   )±r   r   Útorch.backends.cudar¿  rs  r   r^  r_  rÀ  rÁ  rµ   rÂ  rn  rÃ  re  rz   r9   Údispatch_key_set_functionsrV   rÔ  rÕ  r~  r`  ÚinductorÚaccumulate_grad_r¦  r<  rè  rU   rê  Úis_inference_mode_enabledr   rË  rú  rÿ  r   r  ÚcompileÚlibraryÚwrap_tritonÚ_libraryÚcapture_tritonÚ!REWRITE_OPS_TO_TENSOR_SIZE_METHODru   rv   ÚutilsÚ_singleÚ_pairÚ_tripleÚ
_quadrupleÚ_ntupler  r>  Ú	grad_modeÚ_enter_inference_modeÚ_exit_inference_modeÚuse_deterministic_algorithmsrF  r,  r)  r9  r?  r�  rE  rF  rG  rR  rQ  rd   r[  r\  rd  ri  Ú_is_torch_function_enabledÚ_is_torch_function_all_disabledÚ_is_torch_function_mode_enabledr0   Úhas_torch_function_variadicÚhas_torch_function_unaryÚ_skip_one_hop_torch_functionrÇ  Úfromkeysr    Ú
from_numpyra   r}  rO   rq  r˜  r™  ÚhooksÚBackwardHookr±  ÚatenÚsym_sizerI  Ú
sym_strideÚaddcdivÚfullÚ_foreach_lerp_Ú_foreach_powÚ"_group_tensors_by_device_and_dtypeÚ_assertr>   Úis_availableÚ"torch.distributed.distributed_c10drÉ  rÊ  rË  rÌ  rÍ  rÎ  rÏ  ÚnestedÚnested_tensorÚ
functionalÚone_hotrf   rë  rì  rí  ró  r÷  rú  rý  r   r  r  r
  r  r  r  Ú	_autogradr"  r&  r+  r,  r*  r    Ú_pop_torch_function_stackr   Ú_push_on_torch_function_stackÚ_len_torch_function_stackÚ_get_function_stack_atrK  r^  Úcurrent_streamr‡  r[  r   Úsynchronizer\  rˆ  Úset_default_deviceÚtorch._prims_commonrj  r�  r‘   r
  rx  r„  r…  r‡  r‰  r‹  r‘  Ú_check_tensor_allr£  rG  r�  r¡  rl   r¦  r§  rØ  r’  Ú_autograd_grad)mr¾  r¿  rÈ  rÒ  rÖ  ræ  ré  ró  r÷  rû  r  r	  r  r  r  r  r  r  r   r&  r0  r4  r<  rB  rJ  rM  rS  rY  r]  r`  rf  rk  ro  rr  ru  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å  rè  rð  rõ  rø  rû  rþ  r  r  r  r  r  r  r   r$  r'  r.  r6  r;  r@  rB  rE  rQ  rZ  rd  ri  rp  r‚  rŽ  r”  rŸ  r¢  r«  rÚ  rã  r   r^  r_  rÀ  rÁ  rµ   rÂ  rc  r~  rj  r›  r¼  rÃ  re  sm                                                                                                  @@@@@@@@@@@@@@r[   Ú_get_handlersz*TorchInGraphFunctionVariable._get_handlersz  s‚!  øøøøøøøøøøøøøø€ ð ˆð	Ý˜3¥˜8Ô$ð	å•x ¥S Ô)Ð*­H°S½#°XÔ,>Ð>Ô?ð	ð 	ð 	ð 	ð 	ð 	ð  	3Ð2Ð2Ð2Ð2Ð2ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	>Ð=Ð=Ð=Ð=Ð=Ð=Ð=à	ˆÕ*Ñ,Ô,Ð	-ð	Tà+ð	Tõ #ð	Tõ &ð		Tõ
 ð	Tð 	Tð 	Tñ 
.Ô	-ð	Tð@ 
ˆÕ-Ð	.ð)	Cà+ð)	Cõ #ð)	Cõ &ð	)	Cõ
 ð)	Cð )	Cð )	Cñ 
/Ô	.ð)	CðV 
ˆ•%”/Ô>ÔJÑ	KÔ	Kð	à+ð	õ #ð	õ &ð		õ
 ð	ð 	ð 	ñ 
LÔ	Kð	ð 
ˆ•%”)Ô$Ô5Ô=Ñ	>Ô	>ð.	à+ð.	õ #ð.	õ &ð	.	õ
 ð.	ð .	ð .	ð .	ð .	ñ 
?Ô	>ð.	ð` 
ˆ•$”,Ñ	Ô	ð	à+ð	õ #ð	õ &ð		õ
 ˜tÑ#ð	ð 	ð 	ñ 
 Ô	ð	õ •4˜ÑÔð 	àˆX•d”hÑÔðà/ðõ 'ðõ *ð	õ
 ! 4Ñ'ðð ð ñ  Ôðð" 
ˆ•%Ô1Ñ	2Ô	2ð	Ø1ð	åð	ð 	ð 	ñ 
3Ô	2ð	ð 
ˆ•%”/¥5¤?Ô#AÑ	BÔ	Bð
	6Ø1ð
	6Ý8Gð
	6åð
	6ð 
	6ð 
	6ð 
	6ð 
	6ð 
	6ñ 
CÔ	Bð
	6ð 
ˆÝÔ#ÝÔñ

ô 

ð	Ø1ð	Ý:=ð	å˜tÑ#ð	ð 	ð 	ñ	

ô 

ð	ð 
ˆ•%”+Ñ	Ô	ð	Ø1ð	Ý:=ð	å˜tÑ#ð	ð 	ð 	ñ 
Ô	ð	ð 
ˆ•%”-Ñ	 Ô	 ð	à+ð	õ #ð	õ &ð		õ
 ð	ð 	ð 	ñ 
!Ô	 ð	ð( 
ˆ•%”-Ô+­U¬^Ô-JÑ	KÔ	Kð	à+ð	õ #ð	õ &ð		õ
 ð	ð 	ð 	ñ 
LÔ	Kð	ð* 
ˆÕ4Ð	5ð	9Ø1ð	9Ý:Ið	9åð	9ð 	9ð 	9ñ 
6Ô	5ð	9ð 
ˆÝŒHÔÔ"Ô*ÝŒHÔÔ"Ô(ÝŒHÔÔ"Ô*ÝŒHÔÔ"Ô-ÝŒHÔÔ"Ô*ñ

ô 

ð	7à+ð	7õ #ð	7õ &ð		7õ
 ð	7ð 	7ð 	7ñ

ô 

ð	7ð 
ˆ•%Ô'Ñ	(Ô	(ð	FØ1ð	Fàð	Fð 	Fð 	Fð 	Fð 	Fñ 
)Ô	(ð	Fð 
ˆ•%”.Ô*Ô@Ñ	AÔ	Að	Ø1ð	Ý9Hð	à"ð	ð 	ð 	ð 	ð 	ñ 
BÔ	Að	ð 
ˆ•%”.Ô*Ô?Ñ	@Ô	@ð	!Ø1ð	!Ø9Nð	!åð	!ð 	!ð 	!ñ 
AÔ	@ð	!ð
 
ˆ•%Ô4Ñ	5Ô	5ð
 16ð		1ð 	1à+ð	1õ ð	1õ '­Ñ-ð		1õ
 ð	1ð 	1ð 	1ð 	1ð 	1ñ 
6Ô	5ð	1ð* 
ˆ•%Ô2Ñ	3Ô	3ð	3Ø1ð	3åð	3ð 	3ð 	3ñ 
4Ô	3ð	3ð 
ˆ•%Ô2Ñ	3Ô	3ð	3Ø1ð	3åð	3ð 	3ð 	3ñ 
4Ô	3ð	3ð 
ˆ•%Ô,Ñ	-Ô	-ð	1à+ð	1õ )ð	1õ %ð		1õ
 ð	1ð 	1ð 	1ð 	1ð 	1ñ 
.Ô	-ð	1ð& 
ˆ•%Ô2Ñ	3Ô	3ð		1Ø1ð		1Ý<Kð		1åð		1ð 		1ð 		1ð 		1ð 		1ñ 
4Ô	3ð		1ð 
ˆ•%Ô"Ô.ÔEÑ	FÔ	Fð
	4Ø1ð
	4åð
	4ð 
	4ð 
	4ñ 
GÔ	Fð
	4ð 
ˆ•%Ô"Ô.ÔEÑ	FÔ	Fð
	4Ø1ð
	4åð
	4ð 
	4ð 
	4ñ 
GÔ	Fð
	4ð 
ˆ•%Ô"Ô.Ô@Ñ	AÔ	Að
	4Ø1ð
	4åð
	4ð 
	4ð 
	4ñ 
BÔ	Að
	4ð 
ˆ•%Ô"Ô.Ô?Ñ	@Ô	@ð	1Ø1ð	1Ý:Ið	1åð	1ð 	1ð 	1ð 	1ð 	1ñ 
AÔ	@ð	1ð, 
ˆ•%”(Ô%Ô=Ñ	>Ô	>ð	4Ø1ð	4åð	4ð 	4ð 	4ñ 
?Ô	>ð	4ð 
ˆ•%”(Ô%Ô=Ñ	>Ô	>ð	4Ø1ð	4åð	4ð 	4ð 	4ñ 
?Ô	>ð	4ð 
ˆ•%”(Ô%ÔGÑ	HÔ	Hð	1Ø1ð	1Ý<Kð	1åð	1ð 	1ð 	1ð 	1ð 	1ñ 
IÔ	Hð	1ð" 
ˆ•%Ô<Ñ	=Ô	=ð
	Ø1ð
	àð
	ð 
	ð 
	ñ 
>Ô	=ð
	ð 
ˆ•%”(Ô5Ñ	6Ô	6ð	Ø1ð	àð	ð 	ð 	ñ 
7Ô	6ð	ð 
ˆ•%”(Ô:Ñ	;Ô	;ð	Ø1ð	àð	ð 	ð 	ñ 
<Ô	;ð	ð 
ˆ•%”(Ô:Ñ	;Ô	;ð	Ø1ð	àð	ð 	ð 	ñ 
<Ô	;ð	ð 
ˆÝŒOÔ.ÝŒOÔ7ÝŒOÔ4ñ

ô 

ð
	XØ1ð	XÝ:Ið	Xàð	Xð 	Xð 	Xñ

ô 

ð
	Xð 
ˆ•%”(Ô7Ñ	8Ô	8ð	+à+ð	+õ "ð	+õ #ð		+õ
 "ð	+õ $ð	+õ ð	+ð 	+ð 	+ñ 
9Ô	8ð	+ðB 
ˆÝ�]Š]ð ð å+KÑ+MÔ+Mðñ ô ñ ô ð

ð	<Ø1ð	<Ø;Kð	<à"ð	<ð 	<ð 	<ð 	<ð 	<ñ

ô 

ð	<ð
 
ˆ•%Ô"Ñ	#Ô	#ð"	Ø1ð"	Ý:Ið"	àð"	ð "	ð "	ð "	ð "	ð "	ñ 
$Ô	#ð"	ðH 
ˆ•%”)Ô$Ñ	%Ô	%ð	Ø1ð	Ý=@ð	ÝMNð	åð	ð 	ð 	ñ 
&Ô	%ð	ð
 
ˆ•%”.Ô&Ô4Ñ	5Ô	5ð	Ø1ð	Ý;>ð	ÝHKð	àð	ð 	ð 	ñ 
6Ô	5ð	ð& 
ˆ•%”+Ô#Ô0Ñ	1Ô	1ð	Nà+ð	Nõ #ð	Nõ &ð		Nõ
 ð	Nð 	Nð 	Nñ 
2Ô	1ð	Nð 
ˆ•%”(Ô$Ñ	%Ô	%ð	?à+ð	?õ #ð	?õ &ð		?õ
 ð	?ð 	?ð 	?ñ 
&Ô	%ð	?ð 
ˆ•%”)”.Ô)­5¬9¬>Ô+BÔ+FÑ	GÔ	GàQUð	ð 	Ýð	Ø7ð	ÝDGÈ$ÁJð	å˜tÑ#ð	ð 	ð 	ñ 
HÔ	Gð	ð 
ˆ•%”)”.Ô+­U¬Y¬^Ô-FÔ-JÑ	KÔ	KàQUð	ð 	Ýð	Ø7ð	ÝDGÈ$ÁJð	å˜tÑ#ð	ð 	ð 	ñ 
LÔ	Kð	ð 
ˆ•%”-Ñ	 Ô	 ð	à+ð	õ #ð	õ &ð		õ
 ˜tÑ#ð	ð 	ð 	ñ 
!Ô	 ð	ð( 
ˆ•%”*Ñ	Ô	ð	à+ð	õ "ð	õ (ð		õ
 &ð	õ ˜tÑ#ð	ð 	ð 	ñ 
Ô	ð	ð& 
ˆ•%Ô&Ñ	'Ô	'ð	Ýð	à+ð	õ #ð	õ &ð		õ
 ˜tÑ#ð	ð 	ð 	ñ 
(Ô	'ð	ð" 
ˆ•%Ô$Ñ	%Ô	%ð	Ýð	à+ð	õ #ð	õ &ð		õ
 ˜tÑ#ð	ð 	ð 	ñ 
&Ô	%ð	ð& 
ˆ•%”(Ô=Ñ	>Ô	>ð
	Ýð
	à+ð
	õ #ð
	õ &ð	
	õ
 ð
	ð 
	ð 
	ñ 
?Ô	>ð
	ð 
ˆ•%”-Ñ	 Ô	 ð	à+ð	õ 'ð	õ %ð		õ
 ˜tÑ#ð	ð 	ð 	ð 	ð 	ñ 
!Ô	 ð	ð 
ˆ�*Ñ	Ô	ð	à+ð	õ #ð	õ &ð		õ
 ð	ð 	ð 	ð 	ð 	ñ 
Ô	ð	õ  Ô+Ñ-Ô-ð O	Dðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ˆXØ'ØØ"Ø'Ø4ØØñô ð;Dà/ð;Dõ 'ð;Dõ *ð	;Dõ
 !ð;Dð ;Dð ;Dñô ð;Dðz 
ˆ•%”,Ô,Ñ	-Ô	-ð 37ð	ð
 "&ð	ð 	ð 	à+ð	õ )¨4Ñ/ð	õ #ð		õ
 ˜$‘Jð	õ &ð	ð ð	ð 	ð 	ñ 
.Ô	-ð	ð@ 
ˆ•%”(Ô%Ô-Ñ	.Ô	.ð	à+ð	õ #ð	õ &ð		ð
 ð	ð 	ð 	ñ 
/Ô	.ð	ð( 
ˆ•%”(Ô'Ô7ÔNÑ	OÔ	Oð	à+ð	õ "ð	õ ˜tÑ#ð		ð 	ð 	ð 	ð 	ñ 
PÔ	Oð	ð" 
ˆ•%”(Ô'Ô7ÔIÑ	JÔ	Jð
 04ð		ð 	à+ð	õ "ð	õ &¨Ñ,ð		õ
 ˜tÑ#ð	ð 	ð 	ð 	ð 	ñ 
KÔ	Jð	ð& 
ˆ•%”(Ô'Ô7ÔLÑ	MÔ	Mð	Ø1ð	Ý9Hð	å˜tÑ#ð	ð 	ð 	ð 	ð 	ñ 
NÔ	Mð	ð" 
ˆ•%”(Ô'Ô7ÔEÑ	FÔ	Fð	Ø1ð	Ý9Hð	å˜tÑ#ð	ð 	ð 	ð 	ð 	ñ 
GÔ	Fð	ð 
ˆ•%”(Ô'Ô7ÔFÑ	GÔ	Gð	Ø1ð	Ý9Hð	å˜tÑ#ð	ð 	ð 	ð 	ð 	ñ 
HÔ	Gð	ð 
ˆ•%”(Ô'Ô7ÔNÑ	OÔ	Oð	Ø1ð	Ý9Hð	å˜tÑ#ð	ð 	ð 	ð 	ð 	ñ 
PÔ	Oð	ð 
ˆ•%”(Ô'Ô7ÔQÑ	RÔ	Rð	Ø1ð	Ý6Eð	å˜tÑ#ð	ð 	ð 	ñ 
SÔ	Rð	ð 
ˆ•%”(Ô'Ô7ÔDÑ	EÔ	Eð	Ø1ð	Ý9Hð	åð	ð 	ð 	ð 	ð 	ñ 
FÔ	Eð	ð( 
ˆ•%”(Ô'Ô7ÔMÑ	NÔ	Nð	Ø1ð	Ý9Hð	å˜tÑ#ð	ð 	ð 	ð 	ð 	ñ 
OÔ	Nð	ð 
ˆ•%”(Ô'Ô7Ô?Ñ	@Ô	@ð	Ø1ð	Ý;Jð	å˜tÑ#ð	ð 	ð 	ð 	ð 	ñ 
AÔ	@ð	ð 
ˆ•%”(Ô'Ô7Ô>Ñ	?Ô	?ð	Ø1ð	Ý;Jð	å˜tÑ#ð	ð 	ð 	ð 	ð 	ñ 
@Ô	?ð	ð 
ˆ•%”(Ô'Ô7ÔHÑ	IÔ	Ið	Ø1ð	Ý9Hð	å˜tÑ#ð	ð 	ð 	ð 	ð 	ñ 
JÔ	Ið	ð 
ˆ•%”(Ô$Ô@Ñ	AÔ	Að
	1à+ð
	1õ #ð
	1õ &ð	
	1õ
 ð
	1ð 
	1ð 
	1ñ 
BÔ	Að
	1ð 
ˆ•%”(Ô%Ô<Ñ	=Ô	=ð
	à+ð
	õ #ð
	õ &ð	
	ð
 'ð
	ð 
	ð 
	ð 
	ð 
	ñ 
>Ô	=ð
	ð 
ˆ•%Ô"Ô.ÔBÑ	CÔ	Cð
	à+ð
	õ #ð
	õ &ð	
	ö
 *ð
	ð 
	ð 
	ñ 
DÔ	Cð
	ð 
ˆ•%”,Ñ	Ô	ð#	à+ð#	õ #ð#	õ &ð	#	õ
 ˜tÑ#ð#	ð #	ð #	ð #	ð #	ñ 
 Ô	ð#	ðJ 
ˆ•%”(Ô4Ñ	5Ô	5ð	Nà+ð	Nõ #ð	Nõ &ð		Nö
 'ð	Nð 	Nð 	Nñ 
6Ô	5ð	Nð6 
ˆ•%”(Ô8Ñ	9Ô	9ð	1à+ð	1õ #ð	1õ &ð		1õ
 ð	1ð 	1ð 	1ð 	1ð 	1ñ 
:Ô	9ð	1ð  
ˆ•%”(Ô4Ñ	5Ô	5ð
	à+ð
	õ #ð
	õ &ð	
	õ
 ð
	ð 
	ð 
	ñ 
6Ô	5ð
	ð 
ˆ•%”(Ô1Ñ	2Ô	2ð	Dà+ð	Dõ #ð	Dõ &ð		Dö
 'ð	Dð 	Dð 	Dñ 
3Ô	2ð	Dð. 
ˆ•%Ô)Ô5Ñ	6Ô	6ð)	Aà+ð)	Aõ #ð)	Aõ &ð	)	Aõ
 ð)	Að )	Að )	Añ 
7Ô	6ð)	AðV 
ˆÝÔÔ,ÝŒJÔ%ÝŒIÔ$ñ

ô 

ð
,	à+ð,	õ #ð,	õ &ð	,	ö
 ð,	ð ,	ð ,	ñ

ô 

ð
,	õ^ ŒJÔ" FÝŒIÔ! 5ÝŒIÔ! 5ÝŒIÔ! 5ð	*
Ð&ð 
ˆÝÔÔ)ÝŒJÔ"ÝŒIÔ!ÝŒIÔ!ÝŒIÔ!ñ

ô 

ð"	1à+ð"	1õ #ð"	1õ &ð	"	1õ
 ð"	1ð "	1ð "	1ð "	1ð "	1ð "	1ñ

ô 

ð"	1ðH 
ˆ•%Ô*Ñ	+Ô	+ð	1à+ð	1õ #ð	1õ &ð		1õ
 ð	1ð 	1ð 	1ð 	1ð 	1ñ 
,Ô	+ð	1ð* 	;Ð:Ð:Ð:Ð:Ð:à	ˆÐ$Ñ	%Ô	%ð	8à+ð	8õ #ð	8õ &ð		8õ
 ð	8ð 	8ð 	8ð 	8ð 	8ð 	8ñ 
&Ô	%ð	8öF +7ðS	ð S	à+ðS	õ *¨DÑ0ðS	õ (¨$Ñ.ð	S	ö
 žYœðS	õ ðS	ð S	ð S	ð S	ð S	ð S	ð S	ðj 
ˆ•%”,Ñ	Ô	ð		Bà+ð		Bõ #ð		Bõ &ð			Bõ
 ð		Bð 		Bð 		Bð 		Bð 		Bñ 
 Ô	ð		Bð 
ˆÝÔÝÔÝÔÝÔÝÔ(ñ

ô 

ð	Nà+ð	Nõ #ð	Nõ &ð		Nõ
 ð	Nð 	Nð 	Nð 	Nð 	Nñ

ô 

ð	Nð> 
ˆÝÔ(ÝÔ#ñ

ô 

ð	Kà+ð	Kõ #ð	Kõ &ð		Kõ
 ð	Kð 	Kð 	Kð 	Kð 	Kñ	

ô 

ð	Kð>	3Ø+ð	3æ•Ô'ð	3õ ž�oÐ-Ô.ð	3õ �#˜¥ d¡
Ð*Ô+ð		3õ
 ð	3ð 	3ð 	3ð 	3ð4 
ˆ•%”*Ô-Ñ	.Ô	.ð	à+ð	õ #ð	õ &ð		õ
 ð	ð 	ð 	ð 	ð 	ñ 
/Ô	.ð	ð 
ˆ•%”*Ô3Ñ	4Ô	4ð	à+ð	õ #ð	õ &ð		õ
 ð	ð 	ð 	ð 	ð 	ñ 
5Ô	4ð	ð 
ˆ•%”-Ô*ÔEÑ	FÔ	Fð	à+ð	õ #ð	õ &ð		õ
 ð	ð 	ð 	ñ 
GÔ	Fð	ð: 
ˆ•%”.Ô%Ñ	&Ô	&ð_	Ø1ð_	ð _	ð _	ñ 
'Ô	&ð_	ðB	 
ˆ•%Ô"Ô3ÔBÑ	CÔ	Cð;	à+ð;	õ #ð;	õ &ð	;	õ
 ˜tÑ#ð;	ð ;	ð ;	ñ 
DÔ	Cð;	ðz ˆr]   r  rL   rU  rV  r9   c                 óø  ‡— ddl mŠ ddlm} | j        t
          j        k    r|                      |||¦  «        S | j        t
          j        k    r|  	                    |||¦  «        S |  
                    |||¦  «        rt          || ||¦  «        S |                      ¦   «         �rt          ||¦  «        �r| j        t          v rV| j        €t#          d¦  «        ‚t%          | j        ¦  «        }t'          |                     t*          j        ¦  «        ¦  «         	 t/          j        | |                      ¦   «         d„ |D ¦   «         i d„ |                     ¦   «         D ¦   «         ¤Ž¦  «        S # t6          t8          t:          f$ r;}t=          t?          |¦  «        |tA          |j!        ¦  «        ¬¦  «         Y d }~nd }~ww xY w|  "                    ¦   «         �rG| j        j#        }|�r|d          $                    ¦   «         rú|d         }|j        �ëtK          tL          j'        j(        |¦  «        rÌtS          tL          j'        j(        |¦  «        }	tK          |	d	¦  «        r�tK          |	|	 *                    ¦   «         d         ¦  «        rutL          j+        j,        tS          |	|	 *                    ¦   «         d         ¦  «        j-        v r7t]          d
ddt_          | j        ¦  «        › d�g t`          j1        ¢d‘¬¦  «         |  2                    |tA          |¦  «        |¦  «        S |  3                    ¦   «          4                    | j        ¦  «        }
|
r |
| |g|¢R i |¤Ž}|r|S tk          ˆfd„|D ¦   «         ¦  «        }tm          ˆfd„|D ¦   «         ¦  «        }tS          | j        dd¦  «        dk    rš| j        j#        tn          v r‡|r…|rƒtq          ¦   «         sudts          | j        ¦  «        › d�}tt           ;                    |¦  «         t]          dd| j        › d|› d|› �dts          | j        ¦  «        › d�g t`          j1        ¢¬¦  «         | j        }|rSd| j        j#        › �}tS          | j        dd ¦  «        dk    r*tK          tL          |¦  «        rtS          tL          |¦  «        }d }d }d|v rÂ|d         }ty          |tz          t|          f¦  «        rag }|j        D ]W}| $                    ¦   «         r*| ?                    ¦   «         j@        jA        d         jB        }nd }| C                    |¦  «         ŒX| $                    ¦   «         r)| ?                    ¦   «         j@        jA        d         jB        }tˆ          }|tŠ          v r$|jF        r|jF        jG        r|jF        jG        jH        } |¦   «         5   || |jI        jJ        d |gt—          ||¦  «        ¢R Ž ¬!¦  «        }d d d ¦  «         n# 1 swxY w Y   | $                    ¦   «         rMd"|v rI|d"                              ¦   «         r/t]          d#d| j        › d|› d|› �d$d%d&gt`          j1        ¢¬¦  «         |��&ty          |t@          ¦  «        ròt™          |j        |¦  «        D ]Ú\  }}|€Œ| $                    ¦   «         st#          d'¦  «        ‚|jM        j@        jA        d         }||jB        k    rAt]          d(d| j        › d|› d|› �d)| j        › d*|› d+|jB        › d�g t`          j1        ¢¬¦  «         tL          jN         O                    |¦  «        s-t]          d,d-| j        › d|› d|› �d$g t`          j1        ¢¬¦  «         ŒÛ�n|€t#          d.¦  «        ‚| $                    ¦   «         st#          d/¦  «        ‚d| ?                    ¦   «         j@        jA        vrt#          d0¦  «        ‚| ?                    ¦   «         j@        jA        d         }||jB        k    rAt]          d1d| j        › d|› d|› �d)| j        › d*|› d+|jB        › d�g t`          j1        ¢¬¦  «         tL          jN         P                    |¦  «        s-t]          d2d-| j        › d|› d|› �d$g t`          j1        ¢¬¦  «         |S )3Nr7   r¤  r­  zCExpected source to be set for constant fold function needing guardsc                 ó6   — g | ]}|                      ¦   «         ‘ŒS ry   ©rš   rm  s     r[   r¿   z>TorchInGraphFunctionVariable.call_function.<locals>.<listcomp>  s$   € Ð?Ð?Ð?°Q˜!×.Ò.Ñ0Ô0Ð?Ð?Ð?r]   c                 ó>   — i | ]\  }}||                      ¦   «         “ŒS ry   r   ©rX   r×  rØ  s      r[   rÙ  z>TorchInGraphFunctionVariable.call_function.<locals>.<dictcomp>  s*   € ÐPÐPÐP¹¸¸A˜1˜a×2Ò2Ñ4Ô4ÐPÐPÐPr]   r  r   Ú	overloadszInplace op on input tensorrs  z6Attempted to trace an inplace view op on input tensor r  z/Ensure you do not modify input tensor in place.r‡   c              3   ó8   •K  — | ]}t          |‰¦  «        V — Œd S r¹   r  r  s     €r[   r\   z=TorchInGraphFunctionVariable.call_function.<locals>.<genexpr>9  s-   øè è € Ð&TÐ&TÈ!¥z°!°_Ñ'EÔ'EÐ&TÐ&TÐ&TÐ&TÐ&TÐ&Tr]   c              3   ó`   •K  — | ](}t          |‰¦  «        p|                     ¦   «         V — Œ)d S r¹   )r�   r™   r  s     €r[   r\   z=TorchInGraphFunctionVariable.call_function.<locals>.<genexpr>;  sO   øè è € ð !
ð !
ØIJ�J�q˜/Ñ*Ô*ÐD¨a×.BÒ.BÑ.DÔ.Dð!
ð !
ð !
ð !
ð !
ð !
r]   r	  rV   zCalling zí on only torch.SymInt arguments is not yet supported.
To support this behavior, we need to allow const-propping tensors that store symint data.
For now, dynamo will explicitly graph break when it encounters user code with this behavior.
zHAttempted to call torch in-graph function on only torch.SymInt argumentszfn=z, args=r  zAttempted to call zc (that should be put in the FX graph) on only torch.SymInt arguments. Dynamo does not support this.Ú_sym_r<  r¦   r¶   rf  rv  Úrequires_gradzAAttempted to use tensor creation function with requires_grad=Truerâ  z.Create the tensor outside the compiled region.z Do not set `requires_grad=True`.z)Expected out= list element to be a tensorz0Shape mismatch with out= list of tensor variantszShape mismatch when calling z% with `out=`. Provided `out=` shape: z. Actual shape: z?Attempted to call op with non-contiguous `out=` list of tensorszself.value=zExpected out= kwarg to be setz"Expected out= kwarg to be a tensorz=Expected out= kwarg proxy node to have example_value metadataz'Shape mismatch with out= tensor variantz6Attempted to call op with non-contiguous `out=` tensor)Qrs  rÁ  rn  rÃ  r®  r¥  rª  Ú"_call_nonstrict_traceable_functionr«  Ú_call_leaf_functionÚtorch_function_override_enabledrG   rA  r.   r’   Ú#constant_fold_functions_need_guardsr“   rÈ   r)   r'   rí   r&   r™  r9   r*  rš   r–   ÚOverflowErrorrŠ  rˆ  r!   r‘   r£  rU  Úis_tensor_methodrT   rË  rU   rV   r`  r  r)  r#  ÚTagÚinplace_viewÚtagsr#   r8   r   r”   Úcall_tensor_methodr  rÇ   ry  rÉ   Úbin_opsr-   rG  rŒ  Úwarningr�   rC   rB   rÄ   rÅ   rÆ   Úshaperª   r   rQ   Ú	fake_modeÚ	shape_envÚignore_fresh_unbacked_symbolsr‚  rƒ  r4   rÈ  rÌ  Ú_prims_commonÚis_contiguousÚis_contiguous_or_false)r  r  rU  rþ   rÃ  r“   ÚexcrZ   Ú
tensor_varrY   Úspecial_handlerrÕ   Úany_symints_or_symfloatsÚall_ints_or_floatsr{  Úfn_Útorch_sym_opÚsaved_out_shapesÚout_kwarg_vtr˜   r4  rŸ  Útensor_variableÚout_tensor_vtÚsaved_out_shapeÚfake_outrÁ  s                             @r[   rf  z*TorchInGraphFunctionVariable.call_functioní  s±
  ø€ ð 	&Ð%Ð%Ð%Ð%Ð%Ø*Ð*Ð*Ð*Ð*Ð*àŒ9Õ(Ô8Ò8Ð8Ø×:Ò:¸2¸tÀVÑLÔLÐLàŒ9Õ(Ô6Ò6Ð6Ø×+Ò+¨B°°fÑ=Ô=Ð=à×/Ò/°°D¸&ÑAÔAð 	CÝ*¨2¨t°T¸6ÑBÔBÐBà×)Ò)Ñ+Ô+ñ 	Õ0MØ�&ñ1
ô 1
ñ 	ð ŒzÕ@Ð@Ð@Ø”;Ð&Ý(Ø]ñô ð õ 2°$´+Ñ>Ô>�Ý˜f×/Ò/µÔ0IÑJÔJÑKÔKÐKðÝ&Ô,ØØ-�D×+Ò+Ñ-Ô-Ø?Ð?¸$Ð?Ñ?Ô?ðàPÐPÀÇÂÁÄÐPÑPÔPðð ñô ð øõ "¥9­jÐ9ð ð ð Ý(Ý˜‘I”IØÝ˜cœh™œðñ ô ð ð ð ð ð ð øøøøðøøøð × Ò Ñ"Ô"ñ 	CØ”:Ô&ˆDàñ ˜˜Qœ×)Ò)Ñ+Ô+ð Ø! !œW�
àÔ$Ð0µW½U¼Y¼^ÈTÑ5RÔ5RÐ0Ý ¥¤¤°Ñ6Ô6�Bå  KÑ0Ô0ðå# B¨¯ª©¬°qÔ(9Ñ:Ô:ðõ "œIÔ2Ý" 2 r§|¢|¡~¤~°aÔ'8Ñ9Ô9Ô>ð?ð ?õ &Ø$@Ø$&Ø(wÕahÐimÔisÑatÔatÐ(wÐ(wÐ(wð#Ý!2Ô!>ð#à Qð#ð	ñ ô ð ð ×*Ò*¨2­t°D©z¬z¸6ÑBÔBÐBà×,Ò,Ñ.Ô.×2Ò2°4´:Ñ>Ô>ˆØð 	Ø$�_ T¨2Ð?°Ð?Ð?Ð?¸Ð?Ð?ˆFØð Ø�å#&Ð&TÐ&TÐ&TÐ&TÈtÐ&TÑ&TÔ&TÑ#TÔ#TÐ å ð !
ð !
ð !
ð !
ØNRð!
ñ !
ô !
ñ 
ô 
Ðõ �D”J ¨bÑ1Ô1°WÒ<Ð<Ø”
Ô#¥wÐ.Ð.Ø(ð /à"ð /õ *Ñ+Ô+ð /ð
Ý	ˆTŒZ‰Œðð ð ˆCõ
 �KŠK˜ÑÔÐÝØbØH˜dœjÐHÐH°ÐHÐHÀÐHÐHð4­¨T¬Z©¬ð 4ð 4ð 4ðÝ&Ô2ðð
ñ 
ô 
ð 
ð ŒjˆØ#ð 	3Ø8 4¤:Ô#6Ð8Ð8ˆLÝ�t”z <°Ñ6Ô6¸&Ò@Ð@ÅWÝ�|ñFô FÐ@õ �e \Ñ2Ô2�ð  ÐØˆØ�Fˆ?ˆ?Ø! %œ=ˆLõ ˜,­½Ð(EÑFÔFð 3Ø#%Ð Ø&Ô,ð 3ð 3�BØ—|’|‘~”~ð %Ø "§¢¡¤Ô 2Ô 7¸Ô HÔ N˜˜à $˜Ø$×+Ò+¨EÑ2Ô2Ð2Ð2ð ×%Ò%Ñ'Ô'ð à ×)Ò)Ñ+Ô+Ô0Ô5°oÔFÔLð !õ ˆØÕ0Ð0Ð0ØŒ|ð K ¤Ô 6ð KØ”lÔ,ÔJ�àˆS‰UŒUð 	ð 	Ø+˜mØØ,�b”iÔ,Ø#Øðõ ' t¨VÑ4Ô4ðð ð ðñ ô ˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ×%Ò%Ñ'Ô'ð	à 6Ð)Ð)Ø�Ô'×:Ò:Ñ<Ô<ð *õ Ø[ØH˜dœjÐHÐH°ÐHÐHÀÐHÐHØ;àDØ6ðõ 'Ô2ðð		ñ 	ô 	ð 	ð Ñ'õ Ð*­DÑ1Ô1ð KÝ69Ø Ô&Ø$ñ7ô 7ð 'ð 'Ñ2�M ?ð 'Ð.ð !à(×2Ò2Ñ4Ô4ð Ý,ØGñô ð ð  -Ô2Ô7Ô<¸_ÔM�HØ&¨(¬.Ò8Ð8õ &Ø$VØ$T¨$¬*Ð$TÐ$T¸TÐ$TÐ$TÈFÐ$TÐ$Tð!m¸t¼zð !mð !mØ:Ið!mð !mØ[cÔ[ið!mð !mð !mð#Ý!2Ô!>ð#ð
ñ 
ô 
ð 
õ !Ô.×<Ò<¸XÑFÔFð 
õ &Ø$eØ$\°$´*Ð$\Ð$\ÀTÐ$\Ð$\ÐTZÐ$\Ð$\Ø(Gð#Ý!2Ô!>ð#ð	ñ ô ð øñA'ðR  Ð'Ý(Ð)HÑIÔIÐIØ#×-Ò-Ñ/Ô/ð OÝ(Ð)MÑNÔNÐNØ"¨,×*?Ò*?Ñ*AÔ*AÔ*FÔ*KÐKÐKÝ(ØWñô ð ð (×0Ò0Ñ2Ô2Ô7Ô<¸_ÔM�Ø# x¤~Ò5Ð5õ "Ø IØ P d¤jÐ PÐ P¸Ð PÐ PÈÐ PÐ Pðj¸4¼:ð jð jØ6Fðjð jØX`ÔXfðjð jð jðÝ.Ô:ðð
ñ 
ô 
ð 
õ Ô*×AÒAÀ(ÑKÔKð 
õ "Ø XØ X¨d¬jÐ XÐ XÀÐ XÐ XÐPVÐ XÐ XØ$CðÝ.Ô:ðð	ñ ô ð ð Ðs+   ÄAE- Å-F?Æ1F:Æ:F?Ö+.W%×%W)×,W)c           
      ój  ‡!‡"‡#‡$‡%‡&— ddl m} ddlmŠ#m}mŠ%mŠ& ddlm} ddl	m
Š" ddlm} ddlm} dd	lm}	m}
 |                      |||¦  «        \  }}t'          |  |||¦  «        t)          j        |||f¦  «        ¦  «        ¦  «        \  }}t-          |t.          ¦  «        st1          d
t3          |¦  «        › �¦  «        ‚|j        D ]R}|                     ¦   «         } ||¦  «        s1|                     ¦   «         j        }t;          dd|› d�ddg¬¦  «         ŒSd„ |j        D ¦   «         }	 |                     ¦   «         }n®# |$ r¦}|j                             ¦   «         }|j        }dd lm c m!} | "                    |¦  «        r-t;          dd|› d|› d�d|› d�dgtF          j$        ¢|¬¦  «         n1t;          dd|› d|› d�d|› d�dd|› d�gtF          j$        ¢|¬¦  «         Y d }~nd }~ww xY w| j%        Š$dt(          d t(          d!t(          fˆ"ˆ$fd"„} ||¦  «        }|j&         '                    ‰$j(        › d#�|¦  «        }|j&         '                    ‰$j(        d$z   |¦  «        }t3          |¦  «        |j)        _        t3          |¦  «        |j)        _        ||g|¢R }d Š!dtT          d!tV          tX                   fˆ!ˆ#ˆ%ˆ&fd%„}|j&         -                    d&||i ¦  «        }	  |
||¦  «        }ni# t\          j/        j0        j1        t\          j/        j0        j2        f$ r7 t;          d'd(‰$j(        › �d)g tF          j$        ¢¬¦  «         t1          d*¦  «        ‚w xY w‰!€t1          d+¦  «        ‚t)          j        |‰!¦  «        }|	 3                    |tB          j4        ¦  «         5                    |||gi ¦  «        } | S ),Nr   ©Ú_make_inlined)Ú
flat_applyÚis_graphable_typeÚis_valid_outputÚto_graphable)Ú_LeafCallable)Úfake_tensor_tls)Útree_flattenr7   )Ú#AsPythonConstantNotImplementedError)rl  rÃ  z1Expected flat_args_vts to be a ListVariable, got z2Invalid input type for nonstrict_trace-ed functionzEncountered input of type <z>.z¾For `nonstrict_trace`-ed functions, only basic types (e.g., torch.Tensor, int, float) or pytree containers of those are allowed as inputs. The provided argument contains an unsupported type.z¼Use one of the following to register the type with pytree:
* `torch.utils._pytree.register_constant`
* `torch.utils._pytree.register_dataclass`
* `torch.utils._pytree.register_pytree_node`r‡   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS ry   r  )rX   Úflat_arg_vts     r[   r¿   zSTorchInGraphFunctionVariable._call_nonstrict_traceable_function.<locals>.<listcomp>C  s1   € ð 
ð 
ð 
Ø'2ˆK× Ò Ñ"Ô"ð
ð 
ð 
r]   zVInput marked with `pytree.register_constant` constructed in the `torch.compile` regionzInput=z, offending type <zWCalling a `nonstrict_trace`-ed function with an input that contains an object of type <z”>, which was marked with `pytree.register_constant`. However, the object was constructed _inside_ the `torch.compile` region. This is not supported.zXConstruct the object _outside_ the `torch.compile` region, or submit an issue to GitHub.rH  z>Invalid use of pytree_flatten with nonstrict_trace-ed functionz‹Calling a `nonstrict_trace`-ed function where one of the inputs has been registered with a `pytree_flatten` that places an object of type <z> into the context.zLModifying the `pytree_flatten` to avoid placing the object into the context.zApply one of the following to <z„>:
* `torch.utils._pytree.register_constant`
* `torch.utils._pytree.register_dataclass`
* `torch.utils._pytree.register_pytree_node`rU  rþ   r_   c                  ó^   •— ‰j         }d‰_         	  ‰| i |¤Ž}|‰_         n# |‰_         w xY w|S ©NT)Úallow_non_fake_inputs_override)rU  rþ   Úold_valÚresrP  rY   s       €€r[   Ú
patched_fnzSTorchInGraphFunctionVariable._call_nonstrict_traceable_function.<locals>.patched_fnv  sS   ø€ ð &ÔDˆGØ=AˆOÔ:ðIØ�b˜$Ð) &Ð)Ð)�àAH�Ô>Ð>øÀ�Ô>ÐHÐHÐHÐHØˆJs   ‘! ¡	*Ú	_callableÚ_input_specc                  ó¨   •—  ‰| ddiŽ} ‰|¦  «        \  }}‰€|Šn‰|k    rt          d|›d‰›�¦  «        ‚ ‰|¦  «        st          d¦  «        ‚|S )NÚchecked_outputFzTError: nonstrict-traced functions must return the same output shape every time. got z vs but expected z1Nonstrict-traced function returned invalid outputr»  )rU  r¦   Úflat_outÚspecÚcaptured_specrK  rM  rN  s       €€€€r[   Úflat_apply_capturez[TorchInGraphFunctionVariable._call_nonstrict_traceable_function.<locals>.flat_apply_captureŸ  sª   ø€ à�*˜dÐ9°5Ð9Ð9ˆCð
 *˜\¨#Ñ.Ô.‰NˆH�dØÐ$Ø $��à  DÒ(Ð(Ý(ðcØ8<ðcð cØQ^ðcð cñô ð ð #�? 8Ñ,Ô,ð Ý$ØGñô ð ð ˆOr]   rf  z7Unsupported output type for nonstrict_trace-ed functionz
Function: z¡For `nonstrict_trace`-ed functions, only basic types (e.g., torch.Tensor, int, list) are allowed as output. The result of this call contains an unsupported type.Úunreachablez0captured_spec was not set during nonstrict trace)6Útorch._dynamo.utilsrJ  Ú"torch._higher_order_ops.flat_applyrK  rL  rM  rN  Ú,torch._higher_order_ops.invoke_leaf_functionrO  r§   rP  Útorch.utils._pytreerQ  ÚbaserR  rn  rl  rÃ  Ú_extract_nn_module_statesr5   r9   r*  r�   rB   rÈ   r‘   r–   r°  rC  r#   rš   r˜   rï  Ú_pytreeÚis_constant_classr   r”   r’   r‚  rw  rT   rÅ   r   r£  Úobjectrƒ  rV   rl   r;  ÚUnsupportedÚTorchRuntimeErrorrx  Útree_unflattenrf  )'r  r  rU  rþ   rJ  rL  rO  rQ  rR  rl  rÃ  Úargs_with_statesÚkwargs_with_statesÚflat_args_vtsÚinput_spec_vtrT  Úarg_typeÚ	type_nameÚproxified_flat_argsÚ
input_specrO  ÚtypÚpytreerZ  Ú
f_callableÚf_callable_proxyÚinput_spec_proxyÚall_argsrb  rÌ  Úproxy_list_vtÚout_spec_vtÚout_vtra  rP  rK  rY   rM  rN  s'                                    @@@@@@r[   r(  z?TorchInGraphFunctionVariable._call_nonstrict_traceable_function  sÎ  øøøøøø€ ð 	6Ð5Ð5Ð5Ð5Ð5ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	OÐNÐNÐNÐNÐNØAÐAÐAÐAÐAÐAØ4Ð4Ð4Ð4Ð4Ð4à=Ð=Ð=Ð=Ð=Ð=Ø=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ð 04×/MÒ/MØ��fñ0
ô 0
Ñ,ÐÐ,õ (7ØØ+ˆMˆM˜"˜lÑ+Ô+ÝÔ% bÐ+;Ð=OÐ*PÑQÔQñô ñ(
ô (
Ñ$ˆ�}õ ˜-­Ñ6Ô6ð 	Ý ØYÅDÈÑDWÔDWÐYÐYñô ð ð
 )Ô.ð 	ð 	ˆKØ"×.Ò.Ñ0Ô0ˆHØ$Ð$ XÑ.Ô.ð Ø'×3Ò3Ñ5Ô5ÔB�	ÝØPØG¸)ÐGÐGÐGð/ð
Gððñ ô ð øð$
ð 
Ø6CÔ6Ið
ñ 
ô 
Ðð'	Ø&×9Ò9Ñ;Ô;ˆJˆJøØ2ð %	ð %	ð %	Ø”$×"Ò"Ñ$Ô$ˆCØÔ(ˆIØ0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0à×'Ò'¨Ñ,Ô,ð  ÝØtØS ]ÐSÐSÀiÐSÐSÐSðfØ$-ðfð fð fð
 sðå*Ô6ðð ðñ ô ð ð õ Ø\ØS ]ÐSÐSÀiÐSÐSÐSðqØR[ðqð qð qð gðG¸)ð Gð Gð Gðõ +Ô6ðð ðñ ô ð øøøøøøøøøð+%	øøøðN ŒZˆð	Ý"ð	Ý.=ð	åð	ð 	ð 	ð 	ð 	ð 	ð 	ð #�] :Ñ.Ô.ˆ
àœ9×JÒJØŒ{Ð%Ð%Ð% zñ
ô 
Ðð œ9×JÒJØŒK˜-Ñ'àñ
ô 
Ðõ
 &*¨*Ñ%5Ô%5ÐÔÔ"å%)¨*Ñ%5Ô%5ÐÔÔ"Ø$Ð&6ÐMÐ9LÐMÐMˆð *.ˆð	¥cð 	­dµ6¬lð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð, ”	×&Ò&ØÐ/°¸2ñ
ô 
ˆð	0Ø)˜M¨"¨eÑ4Ô4ˆMˆMøõ ŒMÔÔ)åŒMÔÔ/ð	
ð 	0ð 	0ð 	0õ ØQØ2 R¤[Ð2Ð2ðdð 7Õ)Ô5Ð6ðñ ô ð õ ! Ñ/Ô/Ð/ð!	0øøøð$ Ð Ý Ð!SÑTÔTÐTÝ%Ô+¨B°Ñ>Ô>ˆð #×)Ò)¨"­gÔ.DÑEÔE×SÒSØ� Ð,¨bñ
ô 
ˆð ˆs&   Ä.E ÅG.ÅBG)Ç)G.Ë K- Ë-A&Mc           
      ó`  ‡‡— ddl mc m} ddlm} ddlm} ddlm} ddl	m
ŠmŠ dt          d	t          t          d                  fˆˆfd
„}t          |  |||j        ¦  «        t          j        |||f¦  «        ¦  «        ¦  «        \  }	}
i }t          ||	¦  «        D ]„} ||¦  «        rw|j        €/t'          ddt)          |j        ¦  «        j        › �dddg¬¦  «         |j        €t/          d¦  «        ‚ ||j        |j        ¦  «        |t1          |j        ¦  «        <   Œ…|s;t          j        |t3          |¦  «        ¦  «        }t          j        ||¦  «        }||fS t          j        ||¦  «        }  |||¦  «        t          j        |||f¦  «        |¦  «        }t          ||¦  «        S )zð
        Extract nn.Module states from arguments for leaf function invocation.

        Replaces nn.Module arguments with LeafModuleState objects containing
        the module's index (for later retrieval), parameters, and buffers.
        r   N)Úregister_user_objectrI  )Úconvert_modules_to_statesr7   )ÚNNModuleVariableÚUnspecializedNNModuleVariabler€   r_   c                 ó(   •— t          | ‰‰f¦  «        S r¹   r  )r€   r„  r…  s    €€r[   Úis_module_variablezRTorchInGraphFunctionVariable._extract_nn_module_states.<locals>.is_module_variableó  s   ø€ õ ˜cÐ$4Ð6SÐ#TÑUÔUÐUr]   z0leaf_function: nn.Module argument without sourcezmodule type: z°leaf_function received an nn.Module argument that cannot be traced back to its origin. This typically happens when the module is created dynamically inside the compiled region.zXEnsure the nn.Module is created outside the compiled function and passed as an argument.zCIf the module is a class attribute, access it via self.module_name.r‡   zExpected arg.source to be set)rg  rï  rj  Ú#torch._dynamo.graph_bytecode_inputsr‚  rd  rJ  rf  rƒ  Ú	nn_moduler„  r…  r9   r   r
   r5   rQ  r*  r“   r#   r‘   r’   rT   rÈ   r  rH  )r  r  rU  rþ   ry  r‚  rJ  rƒ  r‡  Úflat_args_varÚtree_spec_varÚmodule_to_indexrî  Úargs_varÚ
kwargs_varÚmodule_to_index_varÚ
result_varr„  r…  s                    @@r[   ri  z6TorchInGraphFunctionVariable._extract_nn_module_statesÞ  si  øø€ ð 	-Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ØLÐLÐLÐLÐLÐLØ5Ð5Ð5Ð5Ð5Ð5ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	OÐNÐNÐNÐNÐNÐNÐNð	VÝ ð	Vå•EÐMÔNÔOð	Vð 	Vð 	Vð 	Vð 	Vð 	Vð 	Võ
 (7ØØ2ˆMˆM˜"˜fÔ1Ñ2Ô2ÝÔ% b¨4°¨.Ñ9Ô9ñô ñ(
ô (
Ñ$ˆ�}ð +-ˆÝ" 2 }Ñ5Ô5ð 	ð 	ˆCØ!Ð! #Ñ&Ô&ð Ø”:Ð%Ý!Ø RØ Jµ°S´Y±´Ô0HÐ JÐ JðXð
9àaððñ ô ð ð ”:Ð%Ý(Ð)HÑIÔIÐIØ1EÐ1EØ”I˜sœzñ2ô 2�¥ 3¤9¡¤Ñ.øð ð 	(Ý&Ô,¨Rµ°t±´Ñ=Ô=ˆHÝ(Ô.¨r°6Ñ:Ô:ˆJØ˜ZÐ'Ð'å-Ô3°B¸ÑHÔHÐàA�]�] 2Ð'@ÑAÔAÝÔ! " t¨V nÑ5Ô5Ð7Jñ
ô 
ˆ
õ ˜r :Ñ.Ô.Ð.r]   c           
      óÐ  ‡— dd l mc m} ddlm} ddlm}m}m} ddl	m
}	 | j        }
|
j        }|
j        }|
j        }|€"t          dt!          |
d|
¦  «        › d�¦  «        ‚|                      ‰||¦  «        \  }}t%          ‰  |‰|j        ¦  «        t)          j        ‰||f¦  «        ¦  «        ¦  «        \  }}d	„ t%          ‰|¦  «        D ¦   «         }|                     ¦   «         }d
}|r]ddlm} 	  |||t1          |¦  «        |¦  «        }n:# t          $ r-}t3          t4          j        t9          |¦  «        ¦  «        |‚d }~ww xY wd g} ||||¦  «        \  }} ||¦  «        } ||¦  «        }t!          |
dd ¦  «        }|�t!          |
dd ¦  «        }||_        ||_        dt8          dt>          dt>          fˆfd„} |d|¦  «        } |d|¦  «        }  |d|¦  «        }!|| |!|g|¢R }"‰j          !                    d||"i ¦  «        }# |	‰|#¦  «        }$|d         €tE          d¦  «        ‚t)          j        ‰|d         ¦  «        }%  |‰t          j#        ¦  «        |$|%¦  «        S )Nr   rI  )rO  Úinvoke_leaf_functionÚmake_leaf_function_wrappersr7   r­  zleaf_function 'rT   zŒ' requires a fake implementation. Please provide one using the @<func>.register_fake decorator. See the leaf_function docstring for details.c                 ó6   — g | ]}|                      ¦   «         ‘ŒS ry   r  rí  s     r[   r¿   zDTorchInGraphFunctionVariable._call_leaf_function.<locals>.<listcomp>I  s-   € ð 
ð 
ð 
Ø"ˆC�LŠL‰NŒNð
ð 
ð 
r]   rs  )Ú_resolve_mutated_flat_indicesÚ_torchdynamo_leaf_hook_fnÚ_torchdynamo_leaf_hook_fake_fnrZ   r`  r_   c                 óp   •— ‰j                              | |¦  «        }t          |¦  «        |j        _        |S r¹   )r‚  rw  r‘   rÅ   )rZ   r`  rÌ  r  s      €r[   Úmake_callable_proxyzMTorchInGraphFunctionVariable._call_leaf_function.<locals>.make_callable_proxyj  s.   ø€ Ø”I×CÒCÀDÈ$ÑOÔOˆEÝ" 4™jœjˆEŒJŒOØˆLr]   Úreal_fnÚfake_fnrw  rf  zjOutput spec was not captured during fake tensor propagation. This should not happen - please report a bug.)$rg  rï  rj  rd  rJ  rf  rO  r’  r“  rn  rÃ  r’   Ú_torchdynamo_leaf_real_fnÚ_torchdynamo_leaf_fake_fnÚ_torchdynamo_leaf_mutates_argsrˆ  r)  ri  r5   rQ  r9   r*  rš   r•  ru  r$   r%   r¨  rG  Ú_leaf_hook_real_fnÚ_leaf_hook_fake_fnr   r‚  rƒ  rÈ   ro  )&r  r  rU  rþ   ry  rJ  rO  r’  r“  rÃ  Údecorated_fnÚ	real_implÚ	fake_implÚmutates_argsrp  rq  rŠ  Úinput_spec_varÚflat_arg_proxiesrw  Úmutated_flat_indicesr•  rO  Úcaptured_out_specÚwrapped_real_implÚwrapped_fake_implÚreal_impl_callableÚfake_impl_callableÚhook_fnÚhook_fake_fnr™  Úreal_impl_proxyÚfake_impl_proxyr|  Úinvoke_argsÚresult_proxyÚflat_output_vtr  s&    `                                    r[   r)  z0TorchInGraphFunctionVariable._call_leaf_function#  sÒ  ø€ ð 	-Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ø5Ð5Ð5Ð5Ð5Ð5ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	+Ð*Ð*Ð*Ð*Ð*à”zˆØ Ô:ˆ	Ø Ô:ˆ	Ø#ÔBˆàÐÝðJ¥'¨,¸
ÀLÑ"QÔ"Qð Jð Jð Jñô ð ð 04×/MÒ/MØ��fñ0
ô 0
Ñ,ÐÐ,õ )8ØØ2ˆMˆM˜"˜fÔ1Ñ2Ô2ÝÔ% bÐ+;Ð=OÐ*PÑQÔQñô ñ)
ô )
Ñ%ˆ�~ð
ð 
Ý&5°b¸-Ñ&HÔ&Hð
ñ 
ô 
Ðð $×6Ò6Ñ8Ô8ˆ
à!ÐØð 
	Lðð ð ð ð ð ðLØ'DÐ'DØ˜|­SÐ1AÑ-BÔ-BÀJñ(ô (Ð$Ð$øõ ð Lð Lð LÝ¥Ô ;½SÀ¹V¼VÑDÔDÈ!ÐKøøøøðLøøøð
 <@¸&ÐØ/JÐ/JØ�yÐ"3ñ0
ô 0
Ñ,ÐÐ,ð +˜]Ð+<Ñ=Ô=ÐØ*˜]Ð+<Ñ=Ô=ÐÝ˜,Ð(CÀTÑJÔJˆØÐÝ" <Ð1QÐSWÑXÔXˆLØ4;ÐÔ1Ø4@ÐÔ1ð	¥cð 	µð 	½ð 	ð 	ð 	ð 	ð 	ð 	ð
 .Ð-¨iÐ9KÑLÔLˆØ-Ð-¨iÐ9KÑLÔLˆØ.Ð.¨|¸ZÑHÔHÐð ØØØ ð	
ð
 ð
ð 
ˆð ”y×-Ò-ØÐ1°;Àñ
ô 
ˆð '˜ r¨<Ñ8Ô8ˆà˜QÔÐ'Ý ð@ñô ð õ &Ô+¨BÐ0AÀ!Ô0DÑEÔEˆØ8ˆ}ˆ}˜R¥Ô!7Ñ8Ô8¸ÈÑUÔUÐUs   Ã4D Ä
EÄ(EÅEc                 ó  ‡‡— | j         t          j        j        j        j        u r|d                              ¦   «         Šn| j         j        d         j        Št          ‰t          ¦  «        st          dt          ‰¦  «        › �¦  «        ‚|rt          dt          |¦  «        › �¦  «        ‚dt          dt          fˆˆfd„}| j         t          j        j        j        j        u rt          j        |¦  «        S  ||d         ¦  «        S )z1inline behavior of torch.nn.modules.utils._ntupler   z,Expected count to be an int in _ntuple, got z_ntuple expects no kwargs, got r’   r_   c                 ól  •— t          | ¦  «        r"t          j        t          ‰| ¦  «        ¦  «        S |                      ¦   «         rVt          j        ‰t          j        j	        j
                             ‰¦  «        |                      ¦   «         ¦  «        ¦  «        S t          dd| › �ddg¬¦  «         d S )NzPAttempted to use `torch.nn.modules.utils._ntuple` with unsupported argument typezvalue=râ  z:Change use of _ntuple with argument as constant or tensor.r‡   )rD   r   rC   r5   r™   r9   r*  rV   ru   rv   rï  rô  rš   r#   )r’   Úcountr  s    €€r[   r  z@TorchInGraphFunctionVariable._call_ntuple.<locals>.handle_ntupleš  sÃ   ø€ Ý˜eÑ$Ô$ð Ý Ô.­¸rÀ5Ñ/IÔ/IÑJÔJÐJØ×)Ò)Ñ+Ô+ð å&Ô,ØÝ”HÔ$Ô*×2Ò2°5Ñ9Ô9¸%×:RÒ:RÑ:TÔ:TÑUÔUñô ð õ
 ØnØ, UÐ,Ð,Ø ?àTðð	ñ ô ð ð ð r]   )r’   rV   ru   rv   rï  rô  rš   Ú__closure__Úcell_contentsr�   rI  rÈ   r‘   ru  r9   r   ÚLambdaVariable)r  r  rU  rþ   r  r¶  s    `   @r[   r  z)TorchInGraphFunctionVariable._call_ntupleˆ  s  øø€ ð Œ:�œÔ)Ô/Ô7Ð7Ð7Ø˜”G×.Ò.Ñ0Ô0ˆEˆEà”JÔ*¨1Ô-Ô;ˆEÝ˜%¥Ñ%Ô%ð 	Ý ØL½tÀE¹{¼{ÐLÐLñô ð ð ð 	RÝ Ð!PÅ3ÀvÁ;Ä;Ð!PÐ!PÑQÔQÐQð	¥ð 	µ_ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð& Œ:�œÔ)Ô/Ô7Ð7Ð7ÝÔ+¨MÑ:Ô:Ð:à �=  a¤Ñ)Ô)Ð)r]   Tr3  r'  c           
      ó®  — |j         r t          ddddgt          j        ¢¬¦  «         t	          |t
          j        ¦  «        rI	 |                     ¦   «         }n3# t          $ r& t          dd|› �ddgt          j	        ¢¬¦  «         Y nw xY w|�| 
                    ¦   «         s#t          d
d|› �ddgt          j	        ¢¬¦  «         |j        r|                      |||¦  «        S t          j        r!t          dddddgt          j        ¢¬¦  «         t	          |t          ¦  «        st!          |j        ¦  «        r,t          dt%          |¦  «        dg t          j        ¢¬¦  «         t'          ¦   «         s t          ddddgt          j        ¢¬¦  «         	 t+          |                     |d¦  «                             ¦   «         ¦  «        }|                     |d¦  «                             ¦   «         }|                     |d¦  «                             ¦   «         }n;# t          $ r.}t          dd|› �ddgt          j	        ¢|¬¦  «         Y d	}~nd	}~ww xY w|j                             t2          ||||f¦  «        }|j        r|                     |dg i ¦  «        }ddlm}	  |	||j                             dt>          |                      ¦   «         |                      ¦   «         fi ¦  «        |j        ¬ ¦  «        }
|
 
                    ¦   «         stC          d!¦  «        ‚tD          j#        j$        |
_        d"|
_%        |j        j&         '                    |
¦  «         |
S )#z>A call to torch.nn.Parameter() gets lifted to before the graphz3Attempted to use `torch.nn.Parameter()` with exportrs  râ  z.Do not use `torch.nn.Parameter()` with export.r‡   z=non-constant `requires_grad` argument to `torch.nn.Parameter`zrequires_grad=z$Change `requires_grad` to be a bool.Nz1`torch.nn.Parameter()` with unsupported data typezdata=z7Called `torch.nn.Parameter()` with non-Tensor argument.zBEnsure the argument to `torch.nn.Parameter()` is a `torch.Tensor`.z?Attempted to use `torch.nn.Parameter()` constructor with DynamozDynamo does not support thiszDTry to construct `torch.nn.Parameter()` outside the compiled region.z@If this is not possible, turn `graph_break_on_nn_param_ctor` offzDAttempted to use torch.nn.Parameter constructor with tensor subclassz:`torch.nn.Parameter`: cannot convert to traceable tracablez+convert_tracable_parameter is set to False.zDCheck usage of context manager: do_not_convert_to_tracable_parameterr4  rþ  r—  z8`torch.nn.Parameter` with non-constant Tensor attributeszBEnsure the Tensor argument's shape, dtype, and device are correct.rH  Údetachr7   r­  rf  rê   z<Expected result of traceable_create_parameter to be a tensorF)(Úexportr#   r   r”   r�   r   r9   rš   r,  rŽ  rË  r“   Ú_nn_param_via_prefix_insertr   Úgraph_break_on_nn_param_ctorrH   r   Ú
class_typerG  r   Ú	DIFFICULTrH  rÛ  r‚  Úsynthetic_graph_inputr   r'  r  rn  rÃ  rƒ  r   rÄ   rÈ   rV   ru   r±  Úhas_grad_fnÚleaf_var_creation_orderrª   )rü   r  r3  r'  r4  rþ  r—  rO  rÒ   rÃ  rÕ   s              r[   r   z.TorchInGraphFunctionVariable.call_nn_parameter²  s8  € ð Œ9ð 		ÝØMØØ;àDðå&Ô2ðð	ñ ô ð õ �m¥YÔ%>Ñ?Ô?ð 	ðØ -× @Ò @Ñ BÔ B��øÝ&ð 	ð 	ð 	ÝØ[Ø<¨]Ð<Ð<Ø ?à>ðå*Ô5ðð	ñ ô ð ð ð ð	øøøð ˆ<˜tŸ~š~Ñ/Ô/ˆ<ÝØKØ& ˜˜ØUàXðå&Ô1ðð	ñ ô ð ð Œ;ð 	LØ×2Ò2°2°t¸]ÑKÔKÐKåÔ.ð 	åØYØØ:àZØVðõ 'Ô2ðð		ñ 	ô 	ð 	õ ØÝ(ñ
ô 
ð 	õ 0°´Ñ@Ô@ð	õ Ø^Ý˜D™	œ	Ø;ðÝ&Ô2ðð	ñ ô ð õ 1Ñ2Ô2ð 		ÝØTØØIàZðå&Ô0ðð	ñ ô ð ð	Ý˜$×*Ò*¨2¨wÑ7Ô7×JÒJÑLÔLÑMÔMˆEØ×$Ò$ R¨Ñ1Ô1×DÒDÑFÔFˆEØ×%Ò% b¨(Ñ3Ô3×FÒFÑHÔHˆFˆFøÝ"ð 
	ð 
	ð 
	ÝØRØ& ˜˜Ø;àXðå&Ô1ðð ð	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøøð
	øøøð ”i×5Ò5Ý%Ø�E˜6 =Ð1ñ
ô 
ˆð Ôð 	:Ø×#Ò# B¨°"°bÑ9Ô9ˆDà*Ð*Ð*Ð*Ð*Ð*à�ØØŒI×"Ò"ØÝ)Ø—’‘” +×"6Ò"6Ñ"8Ô"8Ð9Øñ	ô ð Ô%ð
ñ 
ô 
ˆð ×ÒÑ!Ô!ð 	Ý ØNñô ð õ "œHÔ.ˆÔð #ˆÔð
 	Œ	Ô)×0Ò0°Ñ8Ô8Ð8ð ˆs+   ÁA Á-BÂBÆBH È
IÈ#$IÉIc                 óê  ‡— | j                              ¦   «         }| j         j        €t          d¦  «        ‚t	          | j         j        ¦  «        Š‰                     ˆfd„¦  «          ‰|j        ¦  «          ‰t          j        | |¦  «        ¦  «         ‰ 	                    dd¦  «         ‰ 
                    |¦  «         | j         j                             ‰                     ¦   «         ¦  «         |                     ¦   «         j        }|j        dvr't#          dd|j        › �dg t$          j        ¢¬	¦  «         t)          |¦  «        }t*          j                             | j                              |                     ¦   «         j        ¦  «        |¬
¦  «        }t          j        | ||¦  «        }|                     ¦   «         }t5          j        ¦   «         j        j                             |¦  «         |S )Nz$Expected tx.output.root_tx to be setc                  ó0   •— ‰                       dd¦  «        S )Nztorch.nnr±  )Úload_import_from)Úcgs   €r[   r*  zJTorchInGraphFunctionVariable._nn_param_via_prefix_insert.<locals>.<lambda>M  s   ø€  ×!4Ò!4°ZÀÑ!MÔ!M€ r]   r   F)rÒ   Úget_attrzAUnexpected type of data placeholder op for parameter constructionzdata_node.op=z/Data node op should be placeholder or get_attr.r‡   )r'  )r‚  Únew_varÚroot_txrÈ   r   Úadd_push_nullr“   r9   r*  rf  ÚstoreÚpregraph_bytecoderÊ   Úget_instructionsrÄ   rÅ   rÓ   r#   r   rÀ  r,   rV   ru   r±  Úexample_value_from_input_noderÌ   r   rÇ   Úguards_contextÚdynamo_guardsÚremove_guards_with_source)	r  r3  r'  ÚvarnameÚ	data_noder“   r¶   rÕ   rÇ  s	           @r[   r½  z8TorchInGraphFunctionVariable._nn_param_via_prefix_insertB  sÙ  ø€ ð
 ”)×#Ò#Ñ%Ô%ˆð Œ9ÔÐ$Ý Ð!GÑHÔHÐHÝ�r”yÔ(Ñ)Ô)ˆØ
×ÒÐMÐMÐMÐMÑNÔNÐNØ
ˆˆ4Œ;‰ŒˆØ
ˆ�?Ô   ]Ñ3Ô3Ñ4Ô4Ð4Ø
×Ò˜˜EÑ"Ô"Ð"Ø
�Š�ÑÔÐØ
Œ	Ô#×*Ò*¨2×+>Ò+>Ñ+@Ô+@ÑAÔAÐAà—M’M‘O”OÔ(ˆ	ØŒ<Ð:Ð:Ð:ÝØ[Ø6¨	¬Ð6Ð6ØMðÝ&Ô0ðð	ñ ô ð õ & gÑ.Ô.ˆÝœ×*Ò*ØŒI×3Ò3°D·M²M±O´OÔ4HÑIÔIØ'ð +ñ 
ô 
ˆõ !Ô& r¨=¸&ÑAÔAˆà—’Ñ!Ô!ˆõ 	ÔÑÔÔ+Ô9×SÒSØñ	
ô 	
ð 	
ð ˆr]   c                 ó|   — |d                               ||                      ¦   «         j        |dd …         |¦  «        S )Nr   r7   )r  rµ  rT   rÇ  s       r[   r1  z/TorchInGraphFunctionVariable.call_tensor_methodo  s9   € ð �AŒw×"Ò" 2 t×'8Ò'8Ñ':Ô':Ô'CÀTÈ!È"È"ÄXÈvÑVÔVÐVr]   c                 ó2  — ddl m} t          j        |                      ¦   «         ¦  «        oMt          |                      ¦   «         d¦  «        o+|                      ¦   «         j        t          j        j	        k    p|                      ¦   «          |¦   «         v S )Nr   )Úget_tensor_methodÚ__objclass__)
r²  r×  rë   Úismethoddescriptorrµ  rU   rØ  rV   rd   Ú
TensorBase)r  r×  s     r[   r-  z-TorchInGraphFunctionVariable.is_tensor_methodw  s�   € Ø3Ð3Ð3Ð3Ð3Ð3õ Ô& t×'8Ò'8Ñ':Ô':Ñ;Ô;ð HÝ˜×)Ò)Ñ+Ô+¨^Ñ<Ô<ðHð ×!Ò!Ñ#Ô#Ô0µE´HÔ4GÒGð	8ð
 ×ÒÑ Ô Ð$5Ð$5Ñ$7Ô$7Ð7ð	8r]   c                 óì   — |                       ¦   «         t          ¦   «         v pAt          |                       ¦   «         t          j        j        t          j        j        f¦  «        ot          |||¦  «        S r¹   )rµ  rØ   r�   rV   rô   rõ   rö   rF   rÇ  s       r[   r*  z<TorchInGraphFunctionVariable.torch_function_override_enabled�  sm   € ð ×ÒÑÔÕ#<Ñ#>Ô#>Ð>ð ÝØ×!Ò!Ñ#Ô#Ý”Ô&­¬
Ô(CÐDñô ð<õ *¨"¨d°FÑ;Ô;ð	<r]   r  c                 ó„   — t          |t          ¦  «        sdS |                      ¦   «         |                     ¦   «         k    S r1  )r�   r9   rš   )r  r  s     r[   Úis_python_equalz,TorchInGraphFunctionVariable.is_python_equal�  s<   € Ý˜%¥Ñ1Ô1ð 	Ø�5Ø×&Ò&Ñ(Ô(¨E×,DÒ,DÑ,FÔ,FÒFÐFr]   r¹   rV  )#rT   r	  rC  rD  r   r   r¥  r  rG  rP  rµ  r¢  Ú	functoolsÚcacherÇ  r  r£  r9   rf  r(  rH  ri  r)  r  rE  rF  r   r½  r1  r-  r   r*  rl  rÝ  rJ  rK  s   @r[   r­  r­  ^  s+  ø€ € € € € ØJÐJð
 )-ðð à˜˜S˜Ô!ðð  Ñ%ðð ð	ð
 
ðð ð ð ð ð ð&O˜#ð Oð Oð Oð Oð˜h s¨C xÔ0ð ð ð ð ð Ø„_ðo!˜4 ¨¨c¨Ô 2°H¸SÀ#¸XÔ4FÐ FÔGð o!ð o!ð o!ñ „_ñ „\ðo!ðbCUà'ðUð �?Ô#ðUð -ð	Uð
 
ðUð Uð Uð UðnXà'ðXð �?Ô#ðXð -ð	Xð
 
ðXð Xð Xð XðtC/à'ðC/ð �?Ô#ðC/ð �S˜/Ð)Ô*ð	C/ð
 
ˆ Ð/Ô	0ðC/ð C/ð C/ð C/ðJcVà'ðcVð �?Ô#ðcVð �S˜/Ð)Ô*ð	cVð
 
ðcVð cVð cVð cVðJ(*à'ð(*ð �?Ô#ð(*ð �S˜/Ð)Ô*ð	(*ð
 
ð(*ð (*ð (*ð (*ðT ð  Ø"ð	Mð Mà'ðMð �D‰jðMð ð	Mð
 
ðMð Mð Mñ „[ðMð^ ð*Ø'ð*Ø/2ð*ØCGð*à	ð*ð *ð *ñ „\ð*ðXWà'ðWð �?Ô#ðWð �S˜/Ð)Ô*ð	Wð
 
ðWð Wð Wð Wð8 $ð 8ð 8ð 8ð 8ð<à'ð<ð �sŒmð<ð �S˜#�X”ð	<ð
 
ð<ð <ð <ð <ðG Vð G°ð Gð Gð Gð Gð Gð Gð Gð Gr]   r­  c            
       óÄ   ‡ — e Zd ZdZedededd fd„¦   «         Zedede	dd fd„¦   «         Z
dd	d
ededefd„Zdedefd„Zdd	dedee         deeef         ddf
ˆ fd„Zˆ xZS )rÐ  zrepresents torch.DispatchKeySetr’   rþ   r_   c                 ó   — t          | fi |¤ŽS r¹   )rÐ  )r’   rþ   s     r[   rx  zDispatchKeySetVariable.create˜  s   € å% eÐ6Ð6¨vÐ6Ð6Ð6r]   r“   c                 ót   — t          |                     t          j        ¦  «        ¦  «          | ||¬¦  «        S ré   )r'   rí   r&   ÚDISPATCH_KEY_SET_MATCHrû   s      r[   rý   z)DispatchKeySetVariable.create_with_sourceœ  s8   € õ 	�f×'Ò'­Ô(KÑLÔLÑMÔMÐMØˆs�5 Ð(Ñ(Ô(Ð(r]   r  rL   r  rÓ   c                 ó*   — ddl m}  || |||¦  «        S )Nr7   )Ú python_constant_richcompare_impl)r7  rå  )r  r  r  rÓ   rå  s        r[   r8  z'DispatchKeySetVariable.richcompare_impl£  s.   € ð 	FÐEÐEÐEÐEÐEà/Ð/°°b¸%ÀÑDÔDÐDr]   rZ   c                 ó   — |dk    S )NÚhasry   )r  rZ   s     r[   Úis_constant_fold_methodz.DispatchKeySetVariable.is_constant_fold_methodª  s   € Ø�uŠ}Ðr]   rU  r9   c           
      ó¦  •— |                       |¦  «        rft          ||¦  «        rVt          | j        |¦  «        }t	          j        | |d„ |D ¦   «         i d„ |                     ¦   «         D ¦   «         ¤Ž¦  «        S |dk    r,t	          j        || j                             ¦   «         ¦  «        S t          ¦   «          	                    ||||¦  «        S )Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS ry   r   rm  s     r[   r¿   z6DispatchKeySetVariable.call_method.<locals>.<listcomp>»  s$   € Ð;Ð;Ð;°�a×*Ò*Ñ,Ô,Ð;Ð;Ð;r]   c                 ó>   — i | ]\  }}||                      ¦   «         “ŒS ry   r   r"  s      r[   rÙ  z6DispatchKeySetVariable.call_method.<locals>.<dictcomp>¼  s*   € ÐLÐLÐL±T°Q¸�q˜!×.Ò.Ñ0Ô0ÐLÐLÐLr]   ÚhighestPriorityTypeId)
rè  r.   r)  r’   r9   r*  r–   rì  r   r  )r  r  rZ   rU  rþ   r.  r  s         €r[   r  z"DispatchKeySetVariable.call_method­  sê   ø€ ð ×'Ò'¨Ñ-Ô-ð 	QÕ2OØ�&ñ3
ô 3
ð 	Qõ ˜TœZ¨Ñ.Ô.ˆFÝ"Ô(ØØ�Ø;Ð;°dÐ;Ñ;Ô;ðàLÐL¸V¿\º\¹^¼^ÐLÑLÔLðð ñô ð ð Ð,Ò,Ð,Ý"Ô(¨¨T¬Z×-MÒ-MÑ-OÔ-OÑPÔPÐPÝ‰wŒw×"Ò" 2 t¨T°6Ñ:Ô:Ð:r]   )rT   r	  rC  rD  r¢  r   r   rx  rE  r   rý   r9   rG  r8  rF  rè  r£  rÇ  r  rJ  rK  s   @r[   rÐ  rÐ  •  sL  ø€ € € € € Ø)Ð)àð7�nð 7°ð 7Ð8Pð 7ð 7ð 7ñ „\ð7ð ð)Ø"ð)Ø,2ð)à	!ð)ð )ð )ñ „[ð)ðEØ-ðEØ6EðEØKNðEà	ðEð Eð Eð Eð¨Cð °Dð ð ð ð ð;à'ð;ð ð;ð �?Ô#ð	;ð
 �S˜/Ð)Ô*ð;ð 
ð;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;r]   rÐ  c            
       óx   ‡ — e Zd ZdZedededd fd„¦   «         Zddded	e	e
         d
eee
f         ddf
ˆ fd„Zˆ xZS )r*  z<represents torch._functorch.pyfunctorch.FuncTorchInterpreterr’   r“   r_   c                 ót   — t          |                     t          j        ¦  «        ¦  «          | ||¬¦  «        S ré   )r'   rí   r&   rL  rû   s      r[   rý   z/FuncTorchInterpreterVariable.create_with_sourceÇ  s8   € õ 	�f×'Ò'­Ô(=Ñ>Ô>Ñ?Ô?Ð?Øˆs�5 Ð(Ñ(Ô(Ð(r]   r  rL   rZ   rU  rþ   r9   c                 ón  •— |dk    r,t          j        || j                             ¦   «         ¦  «        S |dk    r=|                     t          j        || j        j        j        ¦  «        | g|z   |¦  «        S |dv r0t          j        | t          | j        |¦  «        ¦   «         ¦  «        S |dk    rb|rt          dt          |¦  «        › �¦  «        ‚|rt          dt          |¦  «        › �¦  «        ‚t          j                             |d ¦  «        S t          ¦   «                              ||||¦  «        S )NÚkeyÚprocess)rI  Ú
batch_sizeÚ
randomnessÚlowerzlower() expects no args, got zlower() expects no kwargs, got )r9   r*  r’   rð  rÜ  rñ  Ú__func__r)  rÈ   ru  r   Ú0TemporarilyPopInterpreterStackCtxManagerVariablerx  r   r  )r  r  rZ   rU  rþ   r  s        €r[   r  z(FuncTorchInterpreterVariable.call_methodÎ  s?  ø€ ð �5Š=ˆ=Ý"Ô(¨¨T¬Z¯^ª^Ñ-=Ô-=Ñ>Ô>Ð>Ø�YÒÐØ×1Ò1ÝÔ% b¨$¬*Ô*<Ô*EÑFÔFØ�˜‘Øñô ð ð
 Ð:Ð:Ð:Ý"Ô(¨Ð-F­W°T´ZÀÑ-FÔ-FÑ-HÔ-HÑIÔIÐIØ�WŠ_ˆ_Øð RÝ$Ð%PÅSÈÁYÄYÐ%PÐ%PÑQÔQÐQØð VÝ$Ð%TÅsÈ6Á{Ä{Ð%TÐ%TÑUÔUÐUÝÔM×TÒTØ�Dñô ð õ ‰wŒw×"Ò" 2 t¨T°6Ñ:Ô:Ð:r]   )rT   r	  rC  rD  rE  r   r   rý   rG  r£  r9   rÇ  r  rJ  rK  s   @r[   r*  r*  Ä  s¸   ø€ € € € € ØFÐFàð)Øð)Ø!'ð)à	'ð)ð )ð )ñ „[ð)ð;à'ð;ð ð;ð �?Ô#ð	;ð
 �S˜/Ð)Ô*ð;ð 
ð;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;r]   r*  (	  rD  ÚenumrÞ  rë   Úloggingr<  r  Úcollections.abcr   r   Ú
contextlibr   Útypingr   r   r   r	   r
   Útyping_extensionsr   Útorch._CrV   Útorch._refsÚtorch.fxÚtorch.nnrg  rï  rj  r   Ú torch._dynamo.variables.constantr   Útorch._dynamo.variables.streamsr   Ú&torch._dynamo.variables.torch_functionr   Útorch._guardsr   r   r   Útorch._loggingr   Útorch.autograd.graphr   r¨   r   rs  r   r   r   r   r  r   Úcreate_parameter_opr   r   r   r‡  r    r;  r!   r"   r#   r$   r%   Úguardsr&   r'   r“   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   rh  r8   r9   Úctx_managerr:   r;   r<   r=   Údistributedr>   rv  r?   r@   rA   r�   rB   rC   r7  rD   Úscript_objectrE   Útorch_functionrF   rG   rH   rI   Úuser_definedrJ   Únumpyr�  ÚModuleNotFoundErrorÚ#torch.distributed.fsdp._fully_shardrK   Útorch._dynamo.symbolic_convertrL   Útorch._opaque_baserM   rN   rO   rP   Ú	getLoggerrT   rŒ  rÇ  rÿ  r‰  r‹  r>  r”  r•  r–  rŠ  rd   r�  rŽ  r�  r�  r‘  r’  r—  r“  r˜  r„  r…  r†  rõ  ry  r{  rt  rz  r™  rš  rˆ  r‡  rf   r|  r}  r~  ru   r�  rž  rS  Ú_shape_as_tensorrî  Úget_dynamic_layer_stack_depthr^  Úcurrent_device_indexr_  r–  Úis_initializedr[  Ú
__future__Ú)get_overwrite_module_params_on_conversionr+  r  ro   Ú_get_device_indexÚ_get_cublas_allow_tf32Ú_is_any_autocast_enabledr  Úget_device_propertiesÚget_autocast_dtypeÚget_autocast_gpu_dtypeÚget_default_dtyperA  Úis_autocast_cpu_enabledr;  r   rÿ  r  Ú
_ReductionÚget_enumÚpromote_typesÚ_get_privateuse1_backend_nameÚ_is_checkpoint_validr=  rÊ   rÎ  rÏ  Ú	frozensetr{   r|   ÚaddmmÚaddmvÚaddrÚaddbmmÚbaddbmmrï  r  Ú_foreach_addÚ_foreach_add_Ú_foreach_subÚ_foreach_sub_Ú_foreach_mulÚ_foreach_mul_Ú_foreach_divÚ_foreach_div_Ú_foreach_clamp_maxÚ_foreach_clamp_max_Ú_foreach_clamp_minÚ_foreach_clamp_min_Ú_foreach_maximumÚ_foreach_maximum_Ú_foreach_minimumÚ_foreach_minimum_r	  Ú_foreach_pow_Ú_foreach_lerpr  Ú_foreach_addcmulÚ_foreach_addcmul_Ú_foreach_addcdivÚ_foreach_addcdiv_rQ   Ú__annotations__r^   rG  rß  rF  rz   r2  rÊ  Ú_dispatch_tls_local_include_setÚ_dispatch_tls_local_exclude_setrå  r—   rW   r©   ÚNoder°   r£  rH  rË   rÔ   rØ   rç   rM  ÚEnumr¥  r­  rÐ  r*  ry   r]   r[   ú<module>rH     sÝ  ððð ð ð6 €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø 	€	€	€	Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø "Ð "Ð "Ð "Ð "Ð "Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø $Ð $Ð $Ð $Ð $Ð $à €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø #Ð #Ð #Ð #Ð #Ð #Ø =Ð =Ð =Ð =Ð =Ð =Ø :Ð :Ð :Ð :Ð :Ð :Ø LÐ LÐ LÐ LÐ LÐ LØ 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø -Ð -Ð -Ð -Ð -Ð -Ø KÐ KÐ KÐ KÐ KÐ Kà >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð
 @Ð ?Ð ?Ð ?Ð ?Ð ?ðð ð ð ð ð ð ð ð ð ð ð ð ð ð 1Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ð ð ð ð ð ð ð ð -Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð
 /Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø +Ð +Ð +Ð +Ð +Ð +Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð ð ð ð ð ð ð 3Ð 2Ð 2Ð 2Ð 2Ð 2ðØÐÐÐÐøØð ð ð Ø	€B€B€BðøøøðØEÐEÐEÐEÐEÐEÐEøØð ð ð ØÐÐÐðøøøð ð -ØHÐHÐHÐHÐHÐHØ-Ð-Ð-Ð-Ð-Ð-Ø,Ð,Ð,Ð,Ð,Ð,ð €GˆC�L„L€Ø€GˆC�L„L€à€gÔ˜Ñ!Ô!€à $§¢àŒÔÔ'ØŒÔ!Ô7ØŒÔ!Ô,ØŒÔÔ'ØŒÔÔ/ØŒÔ-ØŒÔ%ØÔÔÔ4ØÔÔ)Ô@ØÔÔ)Ô?ØÔÔ)ÔFØŒ	ÔÔ(ØŒÔ Ô,ØŒÔ Ô/ØŒÔ Ô(ØŒÔ Ô1ØŒÔÔ8ØŒ	ŒÔ#Ô,ØŒ
ŒÔ$Ô-ØŒÔÔ#ØŒÔÔ#Ô/ð 	ŒÔÔ&Ô2ð;ñ !ô  !Ð ðF %)§M¢MàÔðñ%ô %Ð !ð 
„HÔÔ5Ø	ÔÔ*Ø	ÔÔ)Ø	„JÔØ	„JÔØ	„IÔØ	„IÔØ	ÔÔ>ð	'Ð #ð 
„MØ	„LÔ"Ø	„HÔ#Ø	„HÔ%Ø	ÔÔ"Ø	„JÔ$Ø	„JÔØ	ÔÔ"Ø	ÔØ	Ô Ø	ÔØ	Ô#Ø	Ô!Ø	ÔØ	ÔØ	ÔØ	„HÔÔ"Ô+Ø	ÔØ	„HÔ*Ø	„NÔ'Ø	„IÔ#Ø	„IÔð-ð. (ñ/(Ð ð0 	Ô×!Ò!Ñ#Ô#ð Ø×"Ò"àÔÔ,ØÔÔ&ØÔÔ,ð	
ñô ð ð '+§m¢mÐ4WÑ&XÔ&XÐ #ØŸ-š-Ð(?Ñ@Ô@Ð ð AJÀ	ð$àŒ	ð$ð 	Œ	ð$ð 	Œð	$ð
 	Œð$ð 	Œ
ð$ð 	Œð$ð 	Œð$ð 	Œð$ð 	Œð$ð 	Ôð$ð 	Ôð$ð 	Ôð$ð 	Ôð$ð  	Ôð!$ð" 	Ôð#$ð$ 	Ôð%$ð& 	Ôð'$ð( 	Ô ð)$ð* 	Ô!ð+$ð, 	Ô ð-$ð. 	Ô!ð/$ð0 	Ôð1$ð2 	Ôð3$ð4 	Ôð5$ð6 	Ôð7$ð8 	Ôð9$ð: 	Ôð;$ð< 	Ôð=$ð> 	Ôð?$ð@ 	ÔðA$ðB 	ÔðC$ðD 	ÔðE$ðF 	ÔðG$ñ&Aô &AÐ  	¨(°3¸°8Ô*<Ô =ð &ð &ñ &ðX 6?°Yð ?ð ?à,ð?ñ ?ô ?ñ 6ô 6Ð " I¨c¤Nð ð ñ ð „ð  h¨r°3¨wÔ&7¸À¹Ð&DÔ!Eð ð ð ñ „ðð. �-Š-Ð<Ð<Ð<Ñ
=Ô
=€ð 
„HÔØ	„HÔ,Ø	„HÔ,ðÐ ð,H /ð ,H¸Sð ,HÀTð ,Hð ,Hð ,Hð ,Hð^ %¤,ð °3°u´~Ô7KÔ7PÔ3Qð ð ð ð ð6DØ	ðDà	ˆ%�”˜c D™jÐ(Ô
)Ô*ðDð Dð Dð DðN"Ð$5ð "¸$¸u¼x¼}Ô:Mð "ð "ð "ñ "ðJ „ð 3 x°°S°Ô'9Ô#:ð ð ð ñ „ñð${Að {Að {Að {Að {A˜ñ {Aô {Añ {Að|Q7ð Q7ð Q7ð Q7ð Q7Ñ#4ñ Q7ô Q7ñ Q7ðh$ð $ð $ð $ð $�t•yñ $ô $ñ $ðt0Gð t0Gð t0Gð t0Gð t0GÑ#4ñ t0Gô t0Gñ t0Gðna,;ð ,;ð ,;ð ,;ð ,;Ñ.ñ ,;ô ,;ñ ,;ð^#;ð #;ð #;ð #;ð #;Ñ#4ñ #;ô #;ñ #;ð #;ð #;s$   Ä4D9 Ä9EÅEÅE ÅEÅE