Ë
    P/æj¦Ò  ã                   óæ  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlmZmZmZmZ d dlZd dlZd dlmZ d dlmZ ddlmZmZ ddlmZ ddlmZ dd	lmZm Z m!Z!m"Z" dd
l#m$Z$m%Z% ddl&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z, ddl-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z; ddl<m=Z=m>Z> ddl?m@Z@ 	 d dlAZB	 d dlDmEZE erd dlHmIZI d„ ZJd„ ZK G d„ de>«      ZL G d„ deL«      ZM G d„ d«      ZNd„ ZO G d„ deL«      ZP G d„ deP«      ZQ G d„ d eP«      ZR G d!„ d"eP«      ZS G d#„ d$eP«      ZT G d%„ d&«      ZU G d'„ d(e>«      ZV G d)„ d*eP«      ZW G d+„ d,eP«      ZXy# eC$ r dZBY Œ¤w xY w# eF$ r  eGd«      ZEY Œ°w xY w)-é    N)ÚDictÚGenericÚListÚTYPE_CHECKING)ÚTracingContext)Ú"is_traceable_wrapper_subclass_typeé   )Ú	polyfillsÚ	variables)Úcreate_call_function)Ú$do_not_convert_to_tracable_parameter)Úhandle_observed_exceptionÚObservedAttributeErrorÚraise_observed_exceptionÚunimplemented)ÚGuardBuilderÚinstall_guard)Ú
AttrSourceÚGetItemSourceÚODictGetItemSourceÚRandomValueSourceÚUnspecializedParamBufferSourceÚWeakRefCallSource)Úbuild_checkpoint_variableÚcheck_constant_argsÚget_custom_getattrÚhas_torch_functionÚis_frozen_dataclassÚis_namedtuple_clsÚis_utils_checkpointÚis_wrapper_or_member_descriptorÚistypeÚnamedtuple_fieldsÚobject_has_getattributeÚproxy_args_kwargsÚtensortype_to_dtypeÚunpatched_nn_module_getattré   )ÚMutableLocalÚVariableTracker)ÚDefaultDictVariable)Ú
PyTreeSpec)ÚInstructionTranslatorc                 ó(   — | t         j                  fv S ©N)ÚobjectÚ__setattr__)Úvals    úg/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/torch/_dynamo/variables/user_defined.pyÚis_standard_setattrr4   J   s   € Ø”6×%Ñ%Ð'Ð'Ð'ó    c                 ó  — g }	 ddl m} ddlm} ddlm} |j                  |«       |j                  |«       |j                  |«       	 ddlm	} |j                  |«       | |v S # t        $ r Y Œ'w xY w# t        $ r Y | |v S w xY w)Nr   )ÚRaisesContext)ÚWarningsChecker)ÚBaseTorchFunctionMode)Ú&_AssertRaisesRegexWithHighlightContext)
Ú_pytest.python_apir7   Ú_pytest.recwarnr8   Útorch.overridesr9   ÚappendÚImportErrorÚ!torch.testing._internal.jit_utilsr:   )ÚctxÚf_ctxsr7   r8   r9   r:   s         r3   Úis_forbidden_context_managerrC   N   s’   € Ø€FðÝ4Ý3õ 	:à�‰Ð+Ô,Ø�‰�mÔ$Ø�‰�oÔ&ðõ	
ð 	�‰Ð<Ô=ð �&ˆ=Ðøô ò Ùðûô ò Øà�&ˆ=Ððús$   „AA% Á
A4 Á%	A1Á0A1Á4	BÂBc                   ó   — e Zd Zy)ÚUserDefinedVariableN©Ú__name__Ú
__module__Ú__qualname__© r5   r3   rE   rE   k   ó   „ Ør5   rE   c                   ó8  ‡ — e Zd Zdˆ fd„Zd„ Zd„ Zdefd„Ze e	j                  d«      d„ «       «       Ze e	j                  d«      d„ «       «       Zd	„ Zdd„Zd
ddeddfˆ fd„Zdd„Z	 	 	 	 	 	 dˆ fd„Z	 	 	 	 	 	 	 	 dˆ fd„Zd„ Zd
ddeddfˆ fd„Zdˆ fd„Zˆ xZS )ÚUserDefinedClassVariableÚreturnNc                 ó2   •— t        ‰| �  di |¤Ž || _        y ©NrJ   )ÚsuperÚ__init__Úvalue©ÚselfrS   ÚkwargsÚ	__class__s      €r3   rR   z!UserDefinedClassVariable.__init__p   s   ø€ Ü‰ÑÑ"˜6Ò"Øˆ�
r5   c                 ó   — | j                   S r/   ©rS   ©rU   s    r3   Úas_python_constantz+UserDefinedClassVariable.as_python_constantt   ó   € Ø�z‰zÐr5   c                 ó   — | j                   S r/   rY   rZ   s    r3   Úas_proxyz!UserDefinedClassVariable.as_proxyw   r\   r5   c                 ó"   — d| j                   › d�S )NzUserDefinedClassVariable(ú)rY   rZ   s    r3   Ú__str__z UserDefinedClassVariable.__str__z   s   € Ø*¨4¯:©:¨,°aÐ8Ð8r5   c                  ó~   — t         j                  t         j                  t         j                  t         j                  hS r/   )ÚtorchÚdeviceÚfinfoÚiinfoÚSizerJ   r5   r3   Ú_constant_fold_classesz/UserDefinedClassVariable._constant_fold_classes}   s*   € ô �L‰LÜ�K‰KÜ�K‰KÜ�J‰Jð	
ð 	
r5   c                  ón  — t         j                  t         j                  j                  t         j                  j                  h} t        t         d«      rC| j                  t         j                  j                  t         j                  j                  h«       t        t        j                  «       «      | z  S )NÚhpu)rc   ÚTensorÚcudaÚStreamÚEventÚhasattrÚupdaterj   Úsetr&   Úkeys)Ú_in_graph_class_lists    r3   Ú_in_graph_classesz*UserDefinedClassVariable._in_graph_classes‡   s�   € ô �L‰LÜ�J‰J×ÑÜ�J‰J×Ñð 
Ðô
 ”5˜%Ô Ø ×'Ñ'ä—I‘I×$Ñ$Ü—I‘I—O‘Oðôô Ô&×+Ñ+Ó-Ó.Ð1EÑEÐEr5   c                 ó:   — | j                   | j                  «       v S r/   )rS   rh   rZ   s    r3   Úcan_constant_fold_throughz2UserDefinedClassVariable.can_constant_fold_through™   s   € Ø�z‰z˜T×8Ñ8Ó:Ð:Ð:r5   Útxr-   c                 ó  — |j                   j                  j                  | |«      rC|j                   j                  j                  | |d¬«      }t	        |t
        j                  «       S || j                  j                  v S ©NT©Ú
deleted_ok)	ÚoutputÚside_effectsÚhas_pending_mutation_of_attrÚ	load_attrÚ
isinstancer   ÚDeletedVariablerS   Ú__dict__©rU   rw   ÚkeyÚmutated_attrs       r3   Úhas_key_in_generic_dictz0UserDefinedClassVariable.has_key_in_generic_dictœ   si   € Ø�9‰9×!Ñ!×>Ñ>¸tÀSÔIØŸ9™9×1Ñ1×;Ñ;¸DÀ#ÐRVÐ;ÓWˆLÜ! ,´	×0IÑ0IÓJÐJÐJà�d—j‘j×)Ñ)Ð)Ð)r5   Únamer*   c                 óv  •— ddl m}m} ddlm}m} | j                  �t        | j                  |«      nd }|dk(  r%|j                  | j                  j                  «      S |dk(  r%|j                  | j                  j                  «      S |dk(  rd|i}t        j                  | |fi |¤ŽS | j                  t        j                  t        j                   hv r|dk(  rt"        ‰| �I  ||«      S 	 t'        j(                  | j                  |«      }	t-        |	t.        «      r>|	j1                  | j                  «      }
|�  |||«      |
«      S |j                  ||
«      S t-        |	t2        «      r"t        j4                  |	j6                  | |¬	«      S t-        |	t8        j:                  «      r?|	j1                  d | j                  «      }
|�  |||«      |
«      S |j                  ||
«      S |rUt'        j<                  |	«      st>        j@                  d
k\  r-|dk(  r(  |||«      |	j1                  | j                  «      «      S |jC                  |	«      r|j                  |	«      S t-        |	tD        jF                  «      r ||	«      S |tI        | j                  di «      v s>| j                  jJ                  jM                  d«      s| j                  jJ                  dk(  r|r  |||«      |	«      S |r/t'        jN                  |	«      stQ        |	«      s  |||«      |	«      S t"        ‰| �I  ||«      S # t*        $ r d }	Y �Œ+w xY w)Nr(   )ÚConstantVariableÚEnumVariable©ÚSourcelessBuilderÚVariableBuilderrG   rI   r‚   ÚsourceÚfromkeys©rŽ   )é   é   Ú__mro__ztorch.rc   ))Ú r‰   rŠ   ÚbuilderrŒ   r�   rŽ   r   ÚcreaterS   rG   rI   r   ÚGetAttrVariableÚcollectionsÚOrderedDictÚdefaultdictrQ   Úvar_getattrÚinspectÚgetattr_staticÚAttributeErrorr€   ÚstaticmethodÚ__get__ÚclassmethodÚUserMethodVariableÚ__func__ÚtypesÚClassMethodDescriptorTypeÚismemberdescriptorÚsysÚversion_infoÚ
is_literalÚenumÚEnumÚgetattrrH   Ú
startswithÚismethoddescriptorr!   )rU   rw   r‡   r‰   rŠ   rŒ   r�   rŽ   ÚoptionsÚobjÚfuncrW   s              €r3   r›   z$UserDefinedClassVariable.var_getattr£   sÖ  ø€ ß4ß?à26·+±+Ð2I”˜DŸK™K¨Ô.Ètˆà�:ÒØ#×*Ñ*¨4¯:©:×+>Ñ+>Ó?Ð?Ø�^Ò#Ø#×*Ñ*¨4¯:©:×+BÑ+BÓCÐCØ�ZÒØ Ð(ˆGÜ×,Ñ,¨T°4ÑC¸7ÑCÐCð �J‰Jœ;×2Ñ2´K×4KÑ4KÐLÑLØ˜
Ò"ä‘7Ñ& r¨4Ó0Ð0ð	Ü×(Ñ(¨¯©°TÓ:ˆCô �cœ<Ô(Ø—;‘;˜tŸz™zÓ*ˆDØÐ!Ø2‘ r¨6Ó2°4Ó8Ð8à(×/Ñ/°°DÓ9Ð9Ü˜œ[Ô)Ü×/Ñ/°·±¸dÈ6ÔRÐRÜ˜œU×<Ñ<Ô=ð —;‘;˜t T§Z¡ZÓ0ˆDØÐ!Ø2‘ r¨6Ó2°4Ó8Ð8à(×/Ñ/°°DÓ9Ð9Ùä×)Ñ)¨#Ô.Ü× Ñ  GÒ+°¸	Ò0Aà2‘ r¨6Ó2°3·;±;¸t¿z¹zÓ3JÓKÐKà×&Ñ& sÔ+Ø#×*Ñ*¨3Ó/Ð/Ü˜œTŸY™YÔ'Ù Ó$Ð$Ø”W˜TŸZ™Z¨°RÓ8Ñ8Ø�J‰J×!Ñ!×,Ñ,¨XÔ6Ø�z‰z×$Ñ$¨Ò/áØ2‘ r¨6Ó2°3Ó7Ð7ñ Ü×.Ñ.¨sÔ3Ü3°CÔ8à.‘? 2 vÓ.¨sÓ3Ð3Ü‰wÑ" 2 tÓ,Ð,øôW ò 	Ø‹Cð	ús   Ã, L) Ì)L8Ì7L8c                 óB  ‡‡‡‡	‡
‡‡— ddl m} |j                  d«      |j                  d«      |j                  d«      |j                  d«      |j                  d«      |j                  d«      fd„} ||i |¤Ž\  ŠŠŠŠ	Š
Šˆˆˆ	ˆ
ˆˆˆfd„}t        j                  |«      S )	aj  
        functional: input, target, weight=None, size_average=None, ignore_index=- 100, reduce=None, reduction='mean',
        label_smoothing=0.0

        non functional ctor: weight=None, size_average=None, ignore_index=- 100, reduce=None, reduction='mean',
        label_smoothing=0.0

        non functional loss call: input, target, optional_output
        r(   ©r‰   NiœÿÿÿÚmeang        c                 ó   — | |||||fS r/   rJ   )ÚweightÚsize_averageÚignore_indexÚreduceÚ	reductionÚlabel_smoothings         r3   Únormalize_argszIUserDefinedClassVariable._call_cross_entropy_loss.<locals>.normalize_args÷   s    € ð ØØØØØðð r5   c                 óÄ   •— ddl m}  |‰ ‰j                  j                  dt        j
                  j                  j                  gt        | |‰	‰‰‰‰‰gi «      ¢­Ž ¬«      S )Nr(   )Úwrap_fx_proxyÚcall_function©rw   Úproxy)	r•   r¾   r|   Úcreate_proxyrc   ÚnnÚ
functionalÚcross_entropyr%   )
ÚinputÚtargetr¾   r¸   r»   Ú
reduce_argrº   r·   rw   r¶   s
      €€€€€€€r3   Úfake_cross_entropy_losszRUserDefinedClassVariable._call_cross_entropy_loss.<locals>.fake_cross_entropy_loss  sq   ø€ Ý.á ØØ,�b—i‘i×,Ñ,Ø#Ü—H‘H×'Ñ'×5Ñ5ðô 'à!Ø"Ø"Ø(Ø(Ø&Ø%Ø+ð	ð óòôð r5   )r”   r‰   r–   r   ÚLambdaVariable)rU   rw   ÚargsrV   r‰   r¼   rÉ   r¸   r»   rÈ   rº   r·   r¶   s    `     @@@@@@r3   Ú_call_cross_entropy_lossz1UserDefinedClassVariable._call_cross_entropy_lossë   s§   þ€ õ 	'ð $×*Ñ*¨4Ó0Ø)×0Ñ0°Ó6Ø)×0Ñ0°Ó6Ø#×*Ñ*¨4Ó0Ø&×-Ñ-¨fÓ5Ø,×3Ñ3°CÓ8ó	ñ0 ˜DÐ+ FÑ+ñ	
ØØØØØØ÷	ò 	ô0 ×'Ñ'Ð(?Ó@Ð@r5   c                 ó¦  •— |dk(  rÀt        |«      dk(  r²|s°d| j                  j                  vr˜dt        «       i}g }| j                  j	                  «       D ]W  }t        |j                  |j                  «      |j                  «      }|j                  t        j                  ||¬«      «       ŒY t        j                  |fi |¤ŽS | j                  t        j                  t        j                  hv r,|dk(  r'ddlm}	  |	j$                  || j                  g|¢­i |¤ŽS |dk(  rLt        |«      dk(  r>t'        |d   d	«      r/t        j(                  | j                  |d   j                  k(  «      S |d
k(  rLt        |«      dk(  r>t'        |d   d	«      r/t        j(                  | j                  |d   j                  k7  «      S t*        ‰
| �Y  ||||«      S )NÚ__subclasses__r   Úmutable_localr�   r�   r(   ©ÚBuiltinVariableÚ__eq__rS   Ú__ne__)ÚlenrS   r‚   r)   rÎ   r   Úimport_sourcerH   rG   r>   r   rM   ÚListVariabler˜   r™   rš   ÚbuiltinrÑ   Úcall_custom_dict_fromkeysro   r‰   rQ   Úcall_method)rU   rw   r‡   rË   rV   r¯   Úsubs_as_varsÚsubrŽ   rÑ   rW   s             €r3   rÙ   z$UserDefinedClassVariable.call_method+  s   ø€ ð Ð$Ò$Ü�D“	˜Q’ÙØ ¨¯
©
×(;Ñ(;Ñ;à&¬«Ð7ˆGØ24ˆLØ—z‘z×0Ñ0Ó2ò �Ü# B×$4Ñ$4°S·^±^Ó$DÀcÇlÁlÓS�Ø×#Ñ#Ü×6Ñ6°sÀ6ÔJõðô ×)Ñ)¨,ÑB¸'ÑBÐBà�J‰Jœ;×2Ñ2´K×4KÑ4KÐLÑLØ˜
Ò"å0à<�?×<Ñ<Ø�D—J‘JðØ!%òØ)/ñð ð �XÒ¤# d£)¨q¢.´W¸TÀ!¹WÀgÔ5NÜ×-Ñ-¨d¯j©j¸DÀ¹G¿M¹MÑ.IÓJÐJØ�XÒ¤# d£)¨q¢.´W¸TÀ!¹WÀgÔ5NÜ×-Ñ-¨d¯j©j¸DÀ¹G¿M¹MÑ.IÓJÐJä‰wÑ" 2 t¨T°6Ó:Ð:r5   c                 ó  •— ddl m} ddlm}m} ddlm} t        ||«      }| j                  «       r�|rt        j                  j                   | j                  «       |D �	cg c]  }	|	j                  «       ‘Œ c}	i |j                  «       D �
�ci c]  \  }
}|
|j                  «       “Œ c}}
¤Ž«      S | j                  t        j                   j"                  u r| j%                  |||«      S | j                  t&        j(                  u rddlm}  |«       S | j                  t.        j0                  u r% |j2                  |t.        j0                  g|¢­i |¤ŽS | j                  t.        j4                  u rNt7        |«      dk  r@t9        j:                  |d   «      r(t9        i t.        j4                  |d   t=        «       ¬«      S | j                  t.        j>                  u r~|s|t7        |«      dk(  rg }nBt7        |«      dk(  r)|d   jA                  |«      r|d   jC                  |«      }ntE        d	«       t        jF                  jI                  t=        «       ¬«      S | j                  tJ        jL                  u r9|stE        d
«       |d   }|dd  }t        jN                  jQ                  |||¬«      S | j                  tR        jT                  u r"|s t        jV                  j                  ||«      S | j                  t        jX                  jZ                  u rV|sTt7        |«      dk(  rF|d   j]                  «       sJ ‚t        j^                  j                  ||d   j                  «       «      S ta        tc        | j                  «      tb        «      rÐte        | j                  d«      rºte        | j                  d«      r¤| jg                  «       r”|ji                  | j                  «      ry| jj                  rmtm        | j                  «      sXddlm7} |jp                  j                   js                  | jj                  | j                  |i «      }|ju                  |d||«       |S tw        | j                  «      �rEty        | j                  «      }| j                  jz                  dk(  r#t}        t        ||d   j                  «      «      }n| j                  j€                  }tƒ        |«      }|j…                  d gt7        |«      t7        |«      z
  z  «       i }t        ||«      D ]2  \  }}|�Œ	||v r||   }n||v sJ ‚|j                  |||   «      }|||<   Œ4 |j                  «       D ]  \  }}||v sJ ‚|||j‡                  |«      <   Œ! t‰        d„ |D «       «      sJ ‚t        jŠ                  || j                  «      S t�        | j                  «      �r�| jg                  «       �rddlm} t�        j�                  | j                  «      }tƒ        |«      }|j…                  d gt7        |«      t7        |«      z
  z  «       i }t        ||«      D ]È  \  }}|�Œ	|j’                  |v r||j’                     }n“|j”                  sŒ4|j–                  tŽ        j˜                  ur|j                  ||j–                  «      }nM|jš                  tŽ        j˜                  ur0|j                  ||jš                  «      }|j�                  |g i «      }nŒº|||j’                  <   ŒÊ |jŸ                  |«       |jp                  j                   j¡                  | «      }|ju                  |d||«       |S | jg                  «       rv|ji                  | j                  «      r[| jj                  rO|jp                  j                   j¡                  | «      }t£        «       5  |ju                  |d||«       |cd d d «       S t        j¤                  j§                  | j                  «      r8dt=        «       i}t        j¤                  j                  | j                  |||«      S t        j¨                  j§                  | j                  «      rs| jj                  rgt        j¨                  t        j                  t‚        «      j�                  |||«      j                  | j                  | jj                  t=        «       ¬«      S | j                  | j«                  «       v st­        | j                  «      rút®        r¸| j                  t°        v r¦t7        |«      dk(  r˜t³        |d   t        j´                  «      r{t7        |d   j                  «      dkD  r`t‰        d„ |d   j                  D «       «      rA || |jp                  j¶                  dt        j¸                  gt»        ||«      ¢­Ž ¬«      }|g} || |jp                  j¶                  d| j                  gt»        ||«      ¢­Ž ¬«      } | S ta        | j                  t¼        j¾                  «      rJt7        |«      dk(  r<|s:dt=        «       i}t        jÀ                  j                  | j                  |d   |«      S | j                  tÂ        jÄ                  u r]t7        |«      dk(  r-t³        |d   t        j                  «      r|d   j                  }!nd }!tÃ        jÄ                  |!«      }"tÇ        |"«      S | jg                  «       s[|ji                  | j                  «      r@| jj                  r4|jÉ                  |j                  |tÊ        jÌ                  «      | g|¢|«      S tÎ        ‰#| ��9  |||«      S c c}	w c c}}
w # 1 sw Y   Œ&xY w)Nr	   )ÚSideEffectsr(   )rŒ   r¾   rÐ   )ÚNullContextVariabler   )rÏ   z*deque() with more than 1 arg not supportedzfunctools.partial malformed)rË   ÚkeywordsÚ	__enter__Ú__exit__)ÚGenericContextWrappingVariablerR   ztorch.return_typesc              3   ó$   K  — | ]  }|d u–— Œ
 y ­wr/   rJ   ©Ú.0Úxs     r3   ú	<genexpr>z9UserDefinedClassVariable.call_function.<locals>.<genexpr>Å  s   è ø€ Ò4¨�q ”}Ñ4ùs   ‚©rŒ   rÏ   )Úuser_clsÚuser_cls_sourcerÏ   c              3   óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wr/   )r€   r   ÚTensorVariablerä   s     r3   rç   z9UserDefinedClassVariable.call_function.<locals>.<genexpr>  s   è ø€ ÒWÀAœ
 1¤i×&>Ñ&>×?ÑWùs   ‚$&r¿   rÀ   )hr}   rÝ   r•   rŒ   r¾   r×   rÑ   r   rv   r   r‰   r–   r[   ÚitemsrS   rc   rÃ   ÚCrossEntropyLossrÌ   Ú
contextlibÚnullcontextÚctx_managerrÞ   r˜   r™   Úcall_custom_dictrš   rÔ   r+   Úis_supported_argr)   ÚdequeÚhas_force_unpack_var_sequenceÚforce_unpack_var_sequencer   ÚlistsÚDequeVariableÚ	functoolsÚpartialÚ	functionsÚFunctoolsPartialVariableÚwarningsÚcatch_warningsÚCatchWarningsCtxManagerVariablerl   rd   Úis_python_constantÚCUDADeviceVariableÚ
issubclassÚtypero   Úis_standard_newÚ"cls_supports_mutation_side_effectsrŽ   rC   râ   r|   Útrack_object_newrÙ   r   r#   rH   ÚdictÚzipÚ_field_defaultsÚlistÚextendÚindexÚallÚNamedTupleVariabler   ÚdataclassesÚfieldsr‡   ÚinitÚdefaultÚMISSINGÚdefault_factoryr¿   rp   Ú(track_object_new_from_user_defined_classr   ÚCustomizedDictVariableÚis_matching_clsÚRestrictedListSubclassVariablert   r   Únpr&   r€   rÖ   rÂ   Ústackr%   rª   r«   rŠ   ÚrandomÚRandomÚRandomVariableÚinline_user_function_returnr
   Ú%instantiate_user_defined_class_objectrQ   )$rU   rw   rË   rV   rÝ   rŒ   r¾   rÑ   Úconstant_argsræ   ÚkÚvrÞ   rí   ÚfnÚ	rest_argsrâ   Úcm_objr  Úfield_defaultsÚvar_tracker_kwargsÚ
field_nameÚvar_trackerÚ	field_varr‡   rS   Údefault_kwargsÚfieldÚ
factory_fnÚvarr¯   ÚstackedÚtensor_variableÚseedÚrandom_objectrW   s$                                      €r3   r¿   z&UserDefinedClassVariable.call_functionQ  s£	  ø€ õ 	/ß=Ý,ä+¨D°&Ó9ˆà×)Ñ)Ô+±ä×-Ñ-×4Ñ4Ø)�×'Ñ'Ó)Ø6:Ö;°�a×*Ñ*Õ,Ò;ðà=C¿\¹\»^×L±T°Q¸�q˜!×.Ñ.Ó0Ñ0ÓLñóð ð �Z‰Zœ5Ÿ8™8×4Ñ4Ñ4Ø×0Ñ0°°T¸6ÓBÐBØ�Z‰Zœ:×1Ñ1Ñ1å8á&Ó(Ð(Ø�Z‰Zœ;×2Ñ2Ñ2Ø3�?×3Ñ3Ø”K×+Ñ+ðØ.2òØ6<ñð ð �J‰Jœ+×1Ñ1Ñ1Ü�D“	˜Q’Ü#×4Ñ4°T¸!±WÔ=ä&ØÜ×'Ñ'Ø�Q‘Ü*›nô	ð ð �Z‰Zœ;×,Ñ,Ñ,±VÜ�4‹y˜AŠ~Ø‘Ü�T“˜a’ D¨¡G×$IÑ$IÈ"Ô$MØ˜Q™×9Ñ9¸"Ó=‘äÐJÔKÜ—?‘?×0Ñ0°ÄlÃnÐ0ÓUÐUØ�Z‰Zœ9×,Ñ,Ñ,ÙÜÐ;Ô<à�a‘ˆBØ˜Q˜R˜ˆIô ×&Ñ&×?Ñ?Ø˜¨Vð @ó ð ð �Z‰Zœ8×2Ñ2Ñ2¹4Ü×<Ñ<×CÑCÀBÈÓOÐOØ�Z‰Zœ5Ÿ:™:×,Ñ,Ñ,±VÄÀDÃ	ÈQÂØ˜‘7×-Ñ-Ô/Ð/Ð/Ü×/Ñ/×6Ñ6°r¸4À¹7×;UÑ;UÓ;WÓXÐXä”t˜DŸJ™JÓ'¬Ô.ÜØ—
‘
˜Kôô Ø—
‘
˜Jôð ×$Ñ$Ô&Ø×>Ñ>¸t¿z¹zÔJØ—’Ü0°·±Ô<õ Dà—Y‘Y×+Ñ+×<Ñ<Ø—‘˜TŸZ™ZÐ)GÈóˆFð ×Ñ˜r :¨t°VÔ<ØˆMä˜tŸz™zÕ*Ü& t§z¡zÓ2ˆFà�z‰z×$Ñ$Ð(<Ò<ä!%¤c¨&°$°q±'·-±-Ó&@Ó!A‘à!%§¡×!;Ñ!;�ä˜“JˆEØ�L‰L˜$˜¤3 v£;´°U³Ñ#;Ñ<Ô=à!#ÐÜ+.¨v°uÓ+=ò 	?Ñ'�
˜KØÑ&Ø! VÑ+Ø$*¨:Ñ$6™	à)¨^Ñ;Ð;Ð;Ø$5×$<Ñ$<Ø ¨zÑ :ó%˜	ð 6?Ð& zÒ2ð	?ð  2×7Ñ7Ó9ò 2‘��eØ˜v‘~Ð%�~Ø,1��f—l‘l 4Ó(Ò)ð2ô Ñ4¨eÔ4Ô4Ð4Ð4Ü×/Ñ/°°t·z±zÓBÐBÜ  §¡Õ,°×1EÑ1EÕ1GÝ2ä ×'Ñ'¨¯
©
Ó3ˆFÜ˜“JˆEØ�L‰L˜$˜¤3 v£;´°U³Ñ#;Ñ<Ô=àˆNÜ&)¨&°%Ó&8ò =Ñ"��{ØÑ&Ø—z‘z VÑ+Ø&,¨U¯Z©ZÑ&8™à$ŸzšzØ$à Ÿ=™=´×0CÑ0CÑCØ*;×*BÑ*BÀ2ÀuÇ}Á}Ó*U™KØ"×2Ñ2¼+×:MÑ:MÑMØ):×)AÑ)AØ " E×$9Ñ$9ó*˜Jð +5×*BÑ*BÀ2ÀrÈ2Ó*N™Kð %à1<�N 5§:¡:Ò.ð)=ð* �M‰M˜.Ô)à—)‘)×(Ñ(×QÑQÐRVÓWˆCØ�O‰O˜B 
¨D°&Ô9ØˆJà× Ñ Ô"Ø×>Ñ>¸t¿z¹zÔJØ—’à—)‘)×(Ñ(×QÑQÐRVÓWˆCÜ5Ó7ñ Ø—‘  J°°fÔ=Ø÷ñ ô ×-Ñ-×=Ñ=¸d¿j¹jÔIØ&¬«Ð7ˆGÜ×3Ñ3×:Ñ:Ø—
‘
˜D &¨'óð ô ×4Ñ4×DÑDÀTÇZÁZÔPØ—’ä×;Ñ;Ü×)Ñ)¬$Ó/×=Ñ=¸bÀ$ÈÓO×UÑUØŸ™Ø $§¡Ü*›nô	ð ð �J‰J˜$×0Ñ0Ó2Ñ2Ü1°$·*±*Ô=õ
 Ø—J‘JÔ"5Ñ5Ü˜“I ’NÜ˜t A™w¬	×(>Ñ(>Ô?Ü˜˜Q™Ÿ™Ó&¨Ò*ÜÑWÈÈaÉÏÉÔWÔWñ (ØØ0˜"Ÿ)™)×0Ñ0Ø'ÜŸ™ðô +¨4°Ó8òô�ð  �y�á+ØØ,�b—i‘i×,Ñ,Ø#Ø—J‘Jðô ' t¨VÓ4òôˆOð #Ð"Ü˜Ÿ
™
¤D§I¡IÔ.´3°t³9À²>É&Ø&¬«Ð7ˆGÜ×)Ñ)×0Ñ0°·±¸TÀ!¹WÀgÓNÐNØ�Z‰Zœ6Ÿ=™=Ñ(Ü�4‹y˜AŠ~¤*¨T°!©W´i×6PÑ6PÔ"QØ˜A‘w—}‘}‘à�Ü"ŸM™M¨$Ó/ˆMÜ! -Ó0Ð0à×$Ñ$Ô&Ø×>Ñ>¸t¿z¹zÔJØ—’à×1Ñ1Ø!×(Ñ(Øœ	×GÑGóð �˜�Øóð ô ‰wÒ$ R¨¨vÓ6Ð6ùòu <ùÛL÷Zð ús   Á!m/Âm4ßm:í:nc                 óÀ   — t        j                  | j                  dd«      }t        |t        «      r|j
                  }|t        j                  t        j                  fv S )z"Check for __new__ being overriddenÚ__new__N)	rœ   r�   rS   r€   rŸ   r£   r0   r4  r   )rU   Únew_fns     r3   r  z(UserDefinedClassVariable.is_standard_new=  sE   € ä×'Ñ'¨¯
©
°I¸tÓDˆÜ�fœlÔ+Ø—_‘_ˆFØœ&Ÿ.™.¬'¯/©/Ð:Ð:Ð:r5   c                 ó
  •— | j                   rgt        | j                   |«      }t        |j                  t        j
                  «      «       t        j                  t        | j                  |«      «      S t        ‰| �-  ||«      S r/   )rŽ   r   r   Ú
make_guardr   ÚHASATTRr   r‰   ro   rS   rQ   Úcall_hasattr)rU   rw   r‡   rŽ   rW   s       €r3   r9  z%UserDefinedClassVariable.call_hasattrD  sa   ø€ Ø�;Š;Ü §¡¨TÓ2ˆFÜ˜&×+Ñ+¬L×,@Ñ,@ÓAÔBÜ×-Ñ-¬g°d·j±jÀ$Ó.GÓHÐHÜ‰wÑ# B¨Ó-Ð-r5   c                 óZ   •— |dk(  r| j                   j                  S t        ‰| �  ||«      S )NrG   )rS   rG   rQ   Úconst_getattr©rU   rw   r‡   rW   s      €r3   r;  z&UserDefinedClassVariable.const_getattrK  s-   ø€ Ø�:ÒØ—:‘:×&Ñ&Ð&Ü‰wÑ$ R¨Ó.Ð.r5   ©rN   N©rw   r-   ©rË   úList[VariableTracker]rV   úDict[str, VariableTracker]rN   r*   ©rw   r-   rË   r@  rV   rA  rN   r*   )rG   rH   rI   rR   r[   r^   Ústrra   rŸ   rù   Ú	lru_cacherh   rt   rv   r†   r›   rÌ   rÙ   r¿   r  r9  r;  Ú__classcell__©rW   s   @r3   rM   rM   o   s$  ø„ õòòð9˜ó 9ð Ø€Y×Ñ˜Óñ
ó ó ð
ð Ø€Y×Ñ˜ÓñFó ó ðFò ;ó*ðF-Ð5ð F-¸Sð F-ÐEVõ F-óP>Að@$;ð &ð	$;ð
 -ð$;ð 
õ$;ðLj7à#ðj7ð &ðj7ð -ð	j7ð
 
õj7òX;ð.Ð6ð .¸cð .ÐFWõ .÷/ñ /r5   rM   c                   ó   — e Zd Zy)ÚNO_SUCH_SUBOBJNrF   rJ   r5   r3   rH  rH  Q  rK   r5   rH  c                 ó¤  — ddl m} |D �cg c]  }|j                  «       ‘Œ }}|j                  «       D ��ci c]  \  }}||j                  «       “Œ }}}t	        | j
                  j                  «      } ||i |¤Ž}	t        |«      }
| j
                  j                  j                  |||f«        || |
«      j                  |	«      S c c}w c c}}w )Nr(   ©r�   )
r•   r�   r[   rí   rÔ   r|   Úrandom_callsr   r>   Úwrap_unspecialized_primitive)rw   r#  rË   rV   r�   ræ   r!  r"  Úrandom_call_indexÚexample_valuerŽ   s              r3   Úcall_random_fnrO  U  s¼   € Ý(à,0Ö1 qˆA× Ñ Õ"Ð1€DÐ1Ø4:·L±L³N×C©D¨A¨qˆa�×%Ñ%Ó'Ñ'ÐC€FÑCÜ˜BŸI™I×2Ñ2Ó3ÐÙ˜Ð' Ñ'€MÜÐ0Ó1€FØ‡I�I×Ñ×!Ñ! 2 t¨VÐ"4Ô5ñ ˜2˜vÓ&×CÑCÀMÓRÐRùò 2ùÛCs
   ‹C·Cc                   ód  ‡ — e Zd ZdZddhej
                  £Zd$d%ˆ fd„Zdefd„Zdefd„Z	d	„ Z
ˆ fd
„Zd„ Zd„ Zd&d„Ze ej"                  d«      d„ «       «       Zd„ Z	 	 	 	 	 	 d'ˆ fd„Zd&d„Zd„ Zˆ fd„Zd„ Zd„ Z	 	 	 	 	 	 	 	 d(ˆ fd„Zd„ Zd„ Zd„ Zd„ Zd&d„Zd„ Z d&d „Z!ddd!eddfd"„Z"d&d#„Z#ˆ xZ$S ))ÚUserDefinedObjectVariablez_
    Mostly objects of defined type.  Catch-all for something where we only know the type.
    rS   Ú
value_typeNrN   c                 óš   •— t        ‰| �  di |¤Ž || _        |xs t        |«      | _        t        |«      | j                  u sJ ‚|| _        y rP   )rQ   rR   rS   r  rR  Ú
cls_source)rU   rS   rR  rT  rV   rW   s        €r3   rR   z"UserDefinedObjectVariable.__init__k  sG   ø€ Ü‰ÑÑ"˜6Ò"ØˆŒ
Ø$Ò3¬¨U«ˆŒÜ�E‹{˜dŸo™oÑ-Ð-Ð-à$ˆ�r5   c                 ó®   — | j                   j                  }|dv r t        t        | j                  dd «      «      }| j
                  j                  › d|› d�S )N)Úbuiltin_function_or_methodÚgetset_descriptorÚmethod_descriptorÚmethodrG   ú(r`   )rR  rG   rC  r¬   rS   rW   )rU   Úinners     r3   ra   z!UserDefinedObjectVariable.__str__s  sU   € Ø—‘×(Ñ(ˆØð 
ñ 
ô œ §
¡
¨J¸Ó=Ó>ˆEØ—.‘.×)Ñ)Ð*¨!¨E¨7°!Ð4Ð4r5   c                 ób   — | j                   j                  › d| j                  j                  › d�S ©NrZ  r`   ©rW   rG   rR  rZ   s    r3   Ú__repr__z"UserDefinedObjectVariable.__repr__~  ó+   € Ø—.‘.×)Ñ)Ð*¨!¨D¯O©O×,DÑ,DÐ+EÀQÐGÐGr5   c                 ó   — | j                   S r/   )rR  rZ   s    r3   Úpython_typez%UserDefinedObjectVariable.python_type�  s   € Ø�‰Ðr5   c                 ó´   •— | j                   r>t        | j                   j                  t        j                  «      «       | j
                  S t        ‰| �  «       S r/   )rŽ   r   r7  r   ÚID_MATCHrS   rQ   Úguard_as_python_constant)rU   rW   s    €r3   re  z2UserDefinedObjectVariable.guard_as_python_constant„  s?   ø€ Ø�;Š;Ü˜$Ÿ+™+×0Ñ0´×1FÑ1FÓGÔHØ—:‘:ÐÜ‰wÑ/Ó1Ð1r5   c                 ó.   — t        | «      s
J d| › �«       ‚y )Nz<calling torch function on object without __torch_function__ )r   rZ   s    r3   Útorch_function_checkz.UserDefinedObjectVariable.torch_function_checkŠ  s(   € Ü!Øô
ð 	QàIÈ$ÈÐPó	Qñ 
r5   c                 ój   — | j                  «        ddlm}  ||| j                  | j                  «      S )Nr(   )Úbuild_torch_function_fn)rg  Útorch_functionri  rS   rŽ   )rU   rw   ri  s      r3   Úget_torch_fnz&UserDefinedObjectVariable.get_torch_fn�  s(   € Ø×!Ñ!Ô#Ý;á& r¨4¯:©:°t·{±{ÓCÐCr5   rw   r-   c           	      óz   — | j                  «        ddlm}m}  || ||| «      | j	                  |«      ||||«      S )Nr(   )Ú_get_subclass_type_varÚcall_torch_function)rg  rj  rm  rn  rk  )rU   rw   r#  r¤   rË   rV   rm  rn  s           r3   rn  z-UserDefinedObjectVariable.call_torch_function•  sE   € Ø×!Ñ!Ô#çOá"ØÙ" 2 tÓ,Ø×Ñ˜bÓ!ØØØØó
ð 	
r5   c                  ó‚   — t         j                   t         j                  t         j                  t         j                  h} | S r/   )r  ÚrandintÚ	randrangeÚuniform)Úfnss    r3   Ú_supported_random_functionsz5UserDefinedObjectVariable._supported_random_functions¤  s0   € ô �M‰MÜ�N‰NÜ×ÑÜ�N‰Nð	
ˆð ˆ
r5   c                 ó¨   — |t        | j                  di «      vr*	 t        j                  t	        | j                  «      |«      S y # t
        $ r Y y w xY w)Nr‚   )r¬   rS   rœ   r�   r  rž   )rU   r‡   s     r3   Ú_maybe_get_baseclass_methodz5UserDefinedObjectVariable._maybe_get_baseclass_method¯  sT   € Ø”w˜tŸz™z¨:°rÓ:Ñ:ðÜ×-Ñ-¬d°4·:±:Ó.>ÀÓEÐEð øô "ò ØØðús   ›(A Á	AÁAr*   c           
      ó’
  •— ddl m}m}m}m} | j                  |«      }	|	��|	t        j                  u r|j                  d «      S t        |	«      r | j                  |g|¢­i |¤ŽS |	t        j                  j                  u rì|s|rJ ‚| j                  sJ ‚t        | j                   j                  «       «      }
t#        t%        |j&                  |
«      «      sJ ‚t)        | j                  j+                  t,        j.                  «      «       |j0                  j2                  j5                  | j                  j7                  «       «        ||
D �cg c]  }|j                  |«      ‘Œ c}«      S |	t        j                  j8                  t:        j8                  fv rät=        |«      dk(  rÖt?        |d   ||f«      rÅtA        jB                  tE        | j                   «      d«      t        j                  j                  t:        j                  fv rr|rJ ‚| j                  sJ ‚t)        | j                  j+                  t,        j.                  «      «       |j                  |d   jG                  «       | j                   v «      S |	t        j                  jH                  u rÒt?        | j                   t        j                  «      r®| j                  sJ ‚|s|rJ ‚g }| jK                  |dg i «      }
|
jM                  |«      D ]+  }|jO                   ||| jQ                  ||«      g«      «       Œ- |j0                  j2                  j5                  | j                  j7                  «       «        ||«      S |	t        j                  jR                  u r5t=        |«      dk(  r'|rJ ‚| j                  sJ ‚| jQ                  ||d   «      S |	t        jT                  t        jV                  fv rRt=        |«      dk(  rD|sBtY        |d   d«      r3 || j                   |d   j                   u |	t        jV                  u u «      S t?        |	tZ        j\                  «      rx| j                  €d nt_        t_        | j                  d«      |«      }ddl0m1} |	td        jf                  jh                  j                  u r|}	 ||	| |¬	«      jk                  |||«      S |	t        jl                  u r]| j                  rQ|sO|sMt)        | j                  j+                  t,        jn                  «      «        |t=        | j                   «      «      S tp        ‰| �•  ||||«      S c c}w )
Nr(   )rÑ   r‰   ÚTupleVariabler¢   r   rr   rS   rW   r	   )Úunpatched_nn_module_initr�   )9r”   rÑ   r‰   rx  r¢   rv  r0   rR   r–   r4   Úmethod_setattr_standardr˜   r™   rr   rŽ   r
  rS   r  Úmapr©   r   r7  r   ÚDICT_CONST_KEYSr|   Úguard_on_key_orderÚaddr‡   Ú__contains__r  rÔ   r€   rœ   r�   r  r[   rí   rÙ   rö   r>   Úodict_getitemÚ__getitem__rÓ   rÒ   ro   r¤   ÚFunctionTyper   Úmutation_guardry  rc   rÃ   ÚModuler¿   Ú__len__ÚSEQUENCE_LENGTHrQ   )rU   rw   r‡   rË   rV   rÑ   r‰   rx  r¢   rY  rr   r!  rí   r„   rŽ   ry  rW   s                   €r3   rÙ   z%UserDefinedObjectVariable.call_method·  sf  ø€ ÷	
ó 	
ð ×1Ñ1°$Ó7ˆØÑØœŸ™Ñ(Ø'×.Ñ.¨tÓ4Ð4ä" 6Ô*Ø3�t×3Ñ3°BÐH¸ÒHÀÑHÐHð œ×0Ñ0×5Ñ5Ñ5á ¡FÐ+Ð+Ø—{’{Ð"�{Ü˜DŸJ™JŸO™OÓ-Ó.�Üœ3Ð/×:Ñ:¸DÓAÔBÐBÐBÜ˜dŸk™k×4Ñ4´\×5QÑ5QÓRÔSØ—	‘	×,Ñ,×0Ñ0°·±×1AÑ1AÓ1CÔDÙ$È$Ö%OÀQÐ&6×&=Ñ&=¸aÕ&@Ò%OÓPÐPð œ;×2Ñ2×?Ñ?Ä×ARÑARÐSÑSÜ˜“I ’NÜ˜t A™wÐ)9¸?Ð(KÔLÜ×*Ñ*¬4°·
±
Ó+;¸VÓDÜ×+Ñ+×0Ñ0´$·)±)Ð<ñ=ñ "Ð!�zØ—{’{Ð"�{ô ˜dŸk™k×4Ñ4´\×5QÑ5QÓRÔSØ'×.Ñ.Ø˜‘G×.Ñ.Ó0°D·J±JÐ>óð ð œ×0Ñ0×6Ñ6Ñ6¼:Ø—
‘
œK×3Ñ3ô<ð —{’{Ð"�{Ù ¡FÐ+Ð+Ø�Ø×'Ñ'¨¨F°B¸Ó;�Ø×9Ñ9¸"Ó=ò �CØ—L‘LÙ%Ø  $×"4Ñ"4°R¸Ó"=Ð>óõðð —	‘	×,Ñ,×0Ñ0°·±×1AÑ1AÓ1CÔDÙ$ UÓ+Ð+àœ×0Ñ0×<Ñ<Ñ<ÄÀTÃÈaÂÙ!Ð!�zØ—{’{Ð"�{Ø×)Ñ)¨"¨d°1©gÓ6Ð6ð œ6Ÿ=™=¬&¯-©-Ð8Ñ8Ü˜“I ’NÙÜ˜D ™G WÔ-á'Ø—Z‘Z 4¨¡7§=¡=Ð0°fÄÇÁÐ6MÐNóð ô
 ˜&¤%×"4Ñ"4Ô5ð —{‘{Ð*ñ ä#¤J¨t¯{©{¸KÓ$HÈ$ÓOð õ FàœUŸX™XŸ_™_×5Ñ5Ñ5Ø5�FÙ)¨&°$¸vÔF×TÑTØ˜˜fóð ð œŸ™Ñ%¨$¯+ª+¹tÁvÜ˜dŸk™k×4Ñ4´\×5QÑ5QÓRÔSÙ'¬¨D¯J©J«Ó8Ð8ä‰wÑ" 2 t¨T°6Ó:Ð:ùòK &Ps   ÅUc                 óD  — 	 |j                  «       }|j                  j                  j                  | «      st        d| › d|› d�«       |j                  j                  j                  | ||«       t        j                  d «      S # t        $ r t        d|› �«       Y ŒŒw xY w)Nznon-const setattr name: zsetattr(z, z, ...))	r[   ÚNotImplementedErrorr   r|   r}   Úis_attribute_mutationÚ
store_attrr   r‰   )rU   rw   r‡   rS   s       r3   rz  z1UserDefinedObjectVariable.method_setattr_standard  s”   € ð	=Ø×*Ñ*Ó,ˆDð �y‰y×%Ñ%×;Ñ;¸DÔAÜ˜H T F¨"¨T¨F°&Ð9Ô:à
�	‰	×Ñ×)Ñ)¨$°°eÔ<Ü×)Ñ)¨$Ó/Ð/øô #ò 	=ÜÐ4°T°FÐ;Ö<ð	=ús   ‚B ÂBÂBc                 óX   — t        t        j                  | j                  dd «      «       S )Nr1   )r4   rœ   r�   rS   rZ   s    r3   Úneeds_slow_setattrz,UserDefinedObjectVariable.needs_slow_setattr)  s*   € Ü&Ü×"Ñ" 4§:¡:¨}¸dÓCó
ð 
ð 	
r5   c           
      óH  •— | j                   �r| j                  d«      t        j                  u rà| j                  d«      t        j                  u r¿| j                  d«      t        j
                  u ržt        | j                   j                  t        j                  «      «       t        t        | j                  «      «      D �cg c]D  }t        j                  j                  | j                  |   t!        | j                   |«      ¬«      ‘ŒF c}S t"        ‰| �I  |«      S c c}w )NÚ__iter__r…  r�  r�   )rŽ   rv  r
  rŽ  r…  r�  r   r7  r   r†  ÚrangerÔ   rS   r   ÚLazyVariableTrackerr–   r   rQ   Úunpack_var_sequence)rU   rw   r!  rW   s      €r3   r‘  z-UserDefinedObjectVariable.unpack_var_sequence.  sà   ø€ à�K‹KØ×0Ñ0°Ó<ÄÇÁÑMØ×0Ñ0°Ó;¼t¿|¹|ÑKØ×0Ñ0°Ó?Ä4×CSÑCSÑSä˜$Ÿ+™+×0Ñ0´×1MÑ1MÓNÔOô œs 4§:¡:›Ó/öð
 ô	 ×-Ñ-×4Ñ4Ø—J‘J˜q‘MÜ(¨¯©°aÓ8ð 5õ òð ô ‰wÑ*¨2Ó.Ð.ùòs   ÃA	Dc                 ó*   — | j                  |dg i «      S )NÚ__next__)rÙ   )rU   rw   s     r3   Únext_variablez'UserDefinedObjectVariable.next_variable?  s   € Ø×Ñ  J°°BÓ7Ð7r5   c                 óZ   — 	 | j                   | j                  «       v S # t        $ r Y yw xY w©NF)rS   rt  Ú	TypeErrorrZ   s    r3   Úis_supported_randomz-UserDefinedObjectVariable.is_supported_randomB  s1   € ð	Ø—:‘: ×!AÑ!AÓ!CÐCÐCøÜò 	áð	ús   ‚ ž	*©*c                 ó   •— ddl m} ddlm} | j	                  «       rJt        d„ |D «       «      r8t        d„ |j                  «       D «       «      rt        || j                  ||«      S t        | j                  t        j                  «      �rá| j                  j                  }| j                  j                  }|t        j                  j                   j"                  j$                  u r]t&        j(                  j+                  |j,                  «      r4|s2|s0t'        j(                  |j,                  «      j/                  |||«      S |t        j0                  j2                  j4                  j$                  u r€|j,                  t        j0                  j2                  j4                  u rPt'        j6                  |j8                  «      }t'        j(                  |j,                  «      j/                  ||g|«      S | j:                  €t=        d«       t?        | j:                  d«      }	  |||	«      |«      }
t?        | j:                  d	«      }  |||«      |«      }|
j/                  ||g|z   |«      S t        | j                  t@        jB                  «      �rj|jE                  | j                  jF                  «      t&        jH                  k(  �r3t        d
„ tK        jL                  | j                  jN                  | j                  jP                  j                  «       «      D «       «      �rÖ| j:                  r tS        t?        | j:                  d«      jU                  tV        jX                  «      t?        | j:                  d«      jU                  tV        jZ                  «      t?        | j:                  d«      jU                  tV        jZ                  «      «       | j                  jN                  D �cg c]!  }t&        j6                  j]                  |«      ‘Œ# }}|j_                  |«       | j                  jP                  ja                  «       D ��ci c]%  \  }}|t&        j6                  j]                  |«      “Œ' }}}|jc                  |«       te        | j                  jF                  «      rtg        «       j/                  |||«      S t'        jH                  | j                  jF                  «      j/                  |||«      S ti        | j                  «      rR| j:                  r2tS        | j:                  jU                  tV        jj                  «      «       | jm                  |d||«      S tn        ‰| �]  |||«      S c c}w c c}}w )Nr	   ©Útrace_rulesr(   rJ  c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr/   ©r   )rå   r!  s     r3   rç   z:UserDefinedObjectVariable.call_function.<locals>.<genexpr>T  s   è ø€ Ò9¨q�A×(Ñ(×*Ñ9ùó   ‚c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr/   r�  ©rå   r"  s     r3   rç   z:UserDefinedObjectVariable.call_function.<locals>.<genexpr>U  s   è ø€ ÒD¨q�A×(Ñ(×*ÑDùrž  z9Sourceless UserDefinedObjectVariable method not supportedr£   Ú__self__c              3   óZ   K  — | ]#  }t         j                  j                  |«      –— Œ% y ­wr/   )r   r‰   r©   r   s     r3   rç   z:UserDefinedObjectVariable.call_function.<locals>.<genexpr>}  s)   è ø€ ò àô ×*Ñ*×5Ñ5°a×8ñùs   ‚)+r±   rË   rß   Ú__call__)8r”   r›  r•   r�   r˜  r  ÚvaluesrO  rS   r"   r¤   Ú
MethodTyper£   r¡  rc   ÚutilsÚ_contextlibÚ_DecoratorContextManagerÚcloner   ÚTorchCtxManagerClassVariabler  rW   r¿   ÚautogradÚ	grad_modeÚinference_moder‰   ÚmoderŽ   r   r   rù   rú   Úlookupr±   ÚTorchInGraphFunctionVariableÚ	itertoolsÚchainrË   rß   r   r7  r   rd  ÚCONSTANT_MATCHr–   r  rí   rp   r    r   ÚcallableÚFUNCTION_MATCHrÙ   rQ   )rU   rw   rË   rV   r›  r�   r±   r°   r.  Úfunc_srcÚfunc_varÚobj_srcÚobj_varr"  Úpartial_argsr!  Úpartial_kwargsrW   s                    €r3   r¿   z'UserDefinedObjectVariable.call_functionI  s.  ø€ õ 	#Ý,ð ×$Ñ$Ô&ÜÑ9°DÔ9Ô9ÜÑD°F·M±M³OÔDÔDä! " d§j¡j°$¸Ó?Ð?Ü�D—J‘J¤× 0Ñ 0Õ1Ø—:‘:×&Ñ&ˆDØ—*‘*×%Ñ%ˆCàœŸ™×/Ñ/×HÑH×NÑNÑNÜ×:Ñ:×JÑJØ—M‘Môñ ¡ä ×=Ñ=Ø—M‘Móç‘-  D¨&Ó1ð2ð
 œŸ™×0Ñ0×?Ñ?×EÑEÑEØ—M‘M¤U§^¡^×%=Ñ%=×%LÑ%LÑLô  ×0Ñ0°·±Ó:�Ü ×=Ñ=Ø—M‘Móç‘-  S E¨6Ó2ð3ð �{‰{Ð"ÜØOôô " $§+¡+¨zÓ:ˆHØ4‘ r¨8Ó4°TÓ:ˆHÜ  §¡¨jÓ9ˆGØ2‘o b¨'Ó2°3Ó7ˆGØ×)Ñ)¨"¨w¨i¸$Ñ.>ÀÓGÐGä�4—:‘:œy×0Ñ0Õ1Ø×"Ñ" 4§:¡:§?¡?Ó3Ü×5Ñ5ó6äñ ä"Ÿ™¨¯©¯©¸$¿*¹*×:MÑ:M×:TÑ:TÓ:VÓWôõ ð
 �{Š{ÜÜ˜tŸ{™{¨FÓ3×>Ñ>¼|×?TÑ?TÓUÜ˜tŸ{™{¨FÓ3×>Ñ>Ü$×3Ñ3óô ˜tŸ{™{¨JÓ7×BÑBÜ$×3Ñ3óôð ?C¿j¹j¿o¹oöØ9:”	×*Ñ*×1Ñ1°!Õ4ðˆLð ð ×Ñ Ô%ð !ŸJ™J×/Ñ/×5Ñ5Ó7÷á�A�qð ”9×-Ñ-×4Ñ4°QÓ7Ñ7ðˆNñ ð ×!Ñ! &Ô)Ü" 4§:¡:§?¡?Ô3Ü0Ó2×@Ñ@Ø˜ nóð ô ×9Ñ9Ø—
‘
—‘óç‰m˜B ¨nÓ=ð>ô �d—j‘jÔ!Ø�{Š{Ü˜dŸk™k×4Ñ4´\×5PÑ5PÓQÔRØ×#Ñ# B¨
°D¸&ÓAÐAä‰wÑ$ R¨¨vÓ6Ð6ùò+ùós   Ï+&U5Ñ*U:c                 óF   — t        | j                  «      rt        d«       y y )Nz6UserDefinedObjectVariable with custom __getattribute__)r$   rS   r   rZ   s    r3   Ú_check_for_getattributez1UserDefinedObjectVariable._check_for_getattribute¤  s   € Ü" 4§:¡:Ô.ÜÐRÕSð /r5   c                 ó,   — t        | j                  «      S r/   )r   rS   rZ   s    r3   Ú_check_for_getattrz,UserDefinedObjectVariable._check_for_getattr¨  s   € Ü! $§*¡*Ó-Ð-r5   c                 óê   — t        |t        «      syt        |j                  t        j                  «      xs= t
        j                  j                  j                  j                  |j                  «      S r–  )
r€   ÚpropertyÚfgetr¤   ÚBuiltinFunctionTyperc   Ú_CÚ_dynamor¦  Úis_instancemethod)rU   Úsubobjs     r3   Ú_is_c_defined_propertyz0UserDefinedObjectVariable._is_c_defined_property«  sV   € Ü˜&¤(Ô+Øô Ø�K‰Kœ×2Ñ2ó
ò Cä�X‰X×Ñ×#Ñ#×5Ñ5°f·k±kÓBð	Cr5   c                 óF  — t        j                  | j                  |t        «      }dd l}|t        u sTt        ||j                  «      s>t        j                  |«      r|| j                  j                  v s| j                  |«      r| j                  j                  |«      }|S )Nr   )rœ   r�   rS   rH  Ú_collectionsr€   Ú_tuplegetterr¦   Ú	__slots__rÈ  Ú__getattribute__)rU   r‡   rÇ  rÊ  s       r3   Ú_getattr_staticz)UserDefinedObjectVariable._getattr_static·  s„   € Ü×'Ñ'¨¯
©
°D¼.ÓIˆÛð
 ”nÑ$ÜØ˜×1Ñ1ôô ×*Ñ*¨6Ô2°t¸t¿z¹z×?SÑ?SÑ7Sà×*Ñ*¨6Ô2ð —Z‘Z×0Ñ0°Ó6ˆFàˆr5   c                 ó$  — | j                  «        |j                  j                  j                  | |«      rC|j                  j                  j	                  | |d¬«      }t        |t        j                  «       S || j                  j                  v S ry   )
r½  r|   r}   r~   r   r€   r   r�   rS   r‚   rƒ   s       r3   r†   z1UserDefinedObjectVariable.has_key_in_generic_dictÍ  su   € Ø×$Ñ$Ô&Ø�9‰9×!Ñ!×>Ñ>¸tÀSÔIØŸ9™9×1Ñ1×;Ñ;¸DÀ#ÐRVÐ;ÓWˆLÜ! ,´	×0IÑ0IÓJÐJÐJà�d—j‘j×)Ñ)Ð)Ð)r5   c                 óœ   — t         j                  j                  j                  xr' |t         j                  j
                  j                  fv S r/   )rc   rÅ  ÚconfigÚinline_inbuilt_nn_modulesrÃ   r„  Ú
parameters)rU   rY  s     r3   Úis_supported_nn_module_methodz7UserDefinedObjectVariable.is_supported_nn_module_methodÕ  s>   € Ü�}‰}×#Ñ#×=Ñ=ò 
À&Ü�H‰H�O‰O×&Ñ&ðM
ð C
ð 	
r5   c                 ór  — ddl m} ddl m} ddlm}m} | j                  rt        | j                  |«      nd }| j                  «        |j                  j                  j                  | |«      rU|j                  j                  j                  | |d¬«      }t        |t        j                  «      rt!        t"        || «       |S |dk(  rd	|i}	t        j$                  | |fi |	¤ŽS |d
k(  r3|}
|
€| j&                  }
d	|
i}	t)        t+        | j,                  «      fi |	¤ŽS 	 | j/                  |«      }t        |tT        «      rk| j                  r,t        t        | j                  d
«      |«      }t        |d«      }t        j>                  |jV                  | |¬«      jA                  |g i «      S t        |tX        «      rV|j[                  | j,                  «      }|�"|j]                  |«      j_                  ||¬«      S  |j]                  |«      |«      S t        |t`        «      r2t        j>                  |jb                  | je                  |d
«      |¬«      S t        |t4        jf                  «      r?|j[                  | j,                  d «      }|�  |||«      |«      S |jC                  ||«      S ti        jj                  |«      r®tm        |jZ                  «      s™to        ||¬«      }| j                  }| j                  rt        | j                  d«      }t)        t+        | j,                  «      «      }t        j>                  |jZ                  jb                  ||¬«      jA                  ||| |gi «      S t        |t4        j6                  «      sJt        |t4        jp                  «      �r©t        | j,                  tD        jF                  jH                  «      �rz| js                  |«      rt        j$                  | ||¬«      S tu        | j,                  |«      }||u r;tw        |d«      r/|jx                  }|}|rt        |d«      nd }||u rtw        |d«      rŒ/t        |t4        jp                  «      r0|jz                  | j,                  urtS        d«       |jb                  }nt        |t4        j6                  «      sJ ‚|}ti        j|                  |«      rt        j>                  || |¬«      S ti        j~                  |«      rRt�        |«      rtƒ        |¬«      S |�"|j]                  |«      j_                  ||¬«      S  |j]                  |«      |«      S tD        j„                  j†                  jˆ                  st        | t        jŠ                  «      r]|r[t        | t        j:                  «      rA|j                  jŒ                  s+|dv rt�        | j                  |«      }| j‘                  |«      }|t0        urÏtm        |«      rd	|i}	t        j$                  | |fi |	¤ŽS |r t        j’                  jC                  ||«      S | j&                  �iti        j”                  | j,                  j–                  |t0        «      }||u r6t        | j&                  |«      }t        j’                  jC                  ||«      S |jC                  ||«      S t!        t"        || «       y # t"        $ �r] t0        }| j3                  «       }t        |t4        j6                  «      �r|t8        u r-t        | t        j:                  «      r| j=                  ||«      }n]d }| j                  rt        | j                  d«      }t        j>                  || |¬«      jA                  ||jC                  |«      gi «      }| j                  ry|tD        jF                  jH                  jJ                  u rSt        |t        j:                  t        jL                  f«      r)|jO                  t        | jQ                  «       |«      «       |cY S |�tS        d«       Y �Œw xY w)Nr	   rš  r(   r³   r‹   Trz   r‚   rŽ   rW   Ú__getattr__r�   z)UserDefined with non-function __getattr__rÂ  r    Ú_torchdynamo_inlinez"__self__ mismatch for bound method)Ú_buffersÚ_parameters)Lr”   r›  r‰   r•   rŒ   r�   rŽ   r   r½  r|   r}   r~   r   r€   r   r�   r   rž   r—   rT  rM   r  rS   rÎ  rH  r¿  r¤   r‚  r'   ÚUnspecializedNNModuleVariableÚ manually_trace_nn_module_getattrr¢   r¿   r–   rc   rÃ   r„  rÖ  ÚNNModuleVariableÚset_nn_module_stack_sourceÚget_nn_module_stack_sourcer   rÁ  rÂ  rŸ   r    r¯  Úcreate_with_sourcer¡   r£   r›   r¥   rœ   r®   r!   rQ  r¥  rÔ  r¬   ro   r×  r¡  ÚismethodÚ
isfunctionr    r   rÅ  rÑ  rÒ  ÚFSDPManagedNNModuleVariableÚexportr   Ú_wrap_sourcer�  r�   rW   )rU   rw   r‡   r›  r‰   rŒ   r�   rŽ   Úresultr¯   rT  rÇ  Ú
getattr_fnÚoutÚ
new_sourcer±   Údescriptor_varÚ
get_sourceÚ	owner_varÚdynamic_subobjÚsubobj_from_classÚsrc_from_classs                         r3   r›   z%UserDefinedObjectVariable.var_getattrÚ  s  € Ý"Ý&ß?à26·+²+”˜DŸK™K¨Ô.À4ˆØ×$Ñ$Ô&à�9‰9×!Ñ!×>Ñ>¸tÀTÔJØ—Y‘Y×+Ñ+×5Ñ5°d¸DÈTÐ5ÓRˆFÜ˜&¤)×";Ñ";Ô<Ü(¬¸¸TÔBØˆMà�:ÒØ Ð(ˆGÜ×,Ñ,¨T°4ÑC¸7ÑCÐCð
 �;ÒØˆJØÐ!Ø!Ÿ_™_�
Ø Ð,ˆGÜ+¬D°·±Ó,<ÑHÀÑHÐHð&	KØ×)Ñ)¨$Ó/ˆFôN �fœhÔ'Ø�{Š{ä#¤J¨t¯{©{¸KÓ$HÈ$ÓO�ä# F¨FÓ3�Ü×/Ñ/Ø—‘˜T¨&ôç‰m˜B  BÓ'ð(ô ˜¤Ô-Ø—>‘> $§*¡*Ó-ˆDØÐ!Ø"×)Ñ)¨$Ó/×BÑBÀ4ÐPVÐBÓWÐWà/�{×)Ñ)¨$Ó/°Ó5Ð5Ü˜¤Ô,Ü×/Ñ/Ø—‘ ×!1Ñ!1°"°kÓ!BÈ6ôð ô ˜¤× ?Ñ ?Ô@à—>‘> $§*¡*¨dÓ3ˆDØÐ!Ø2‘ r¨6Ó2°4Ó8Ð8à(×/Ñ/°°DÓ9Ð9Ü×'Ñ'¨Ô/Ô8WØ�N‰Nô9
ô
 7°vÀfÔMˆNàŸ™ˆJØ�{Š{Ü'¨¯©°YÓ?�
ô 1´°d·j±jÓ1AÓBˆIÜ×/Ñ/Ø—‘×'Ñ'¨À
ôç‰m˜B °°yÐ AÀ2ÓFðGô ˜¤× 2Ñ 2Ô3Ü�vœu×/Ñ/Õ0Ü˜4Ÿ:™:¤u§x¡x§¡Õ7à×1Ñ1°&Ô9Ü ×0Ñ0°°tÀFÔKÐKô
 % T§Z¡Z°Ó6ˆNà  FÑ*¬w°vÐ?TÔ/UØ×3Ñ3�Ø!'�ÙFLœ FÐ,AÔBÐRV�ð ! FÑ*¬w°vÐ?TÕ/Uô
 ˜&¤%×"2Ñ"2Ô3Ø!×*Ñ*°$·*±*Ñ<Ü!Ð"FÔGØ—‘‘ä! &¬%×*<Ñ*<Ô=Ð=Ð=Ø�ä×Ñ Ô/Ü ×3Ñ3°D¸$ÀvÔNÐNÜ×#Ñ# NÔ3Ü& tÔ,Ü4¸FÔCÐCØÐ'Ø&×-Ñ-¨dÓ3×FÑFØ Vð Gó ð ð 4˜;×-Ñ-¨dÓ3°DÓ9Ð9ô —‘×$Ñ$×>Ò>Ü˜d¤I×$IÑ$IÔJáÜ˜4¤×!HÑ!HÔIð —I‘I×$Ò$ð Ð2Ñ2Ü7¸¿¹ÀTÓJ�Ø×&Ñ& vÓ.ˆFàœÑ'Ü.¨vÔ6Ø# VÐ,�Ü ×0Ñ0°°tÑG¸wÑGÐGÙÜ ×4Ñ4×;Ñ;¸FÀFÓKÐKð —?‘?Ð.Ü(/×(>Ñ(>ØŸ
™
×,Ñ,¨d´Nó)Ð%ð )¨FÑ2Ü)3°D·O±OÀTÓ)J˜Ü(×<Ñ<×CÑCØ-¨~ó ð ð )×/Ñ/°°FÓ;Ð;ô 	!¤°°TÕ:øôC ó $	KÜ#ˆFØ×0Ñ0Ó2ˆJÜ˜*¤e×&8Ñ&8Õ9ð Ô!<Ñ<ÄØœ)×AÑAôBð ×?Ñ?ÀÀDÓI‘Cà!%�JØ—{’{Ü%/°·±¸]Ó%K˜
Ü#×6Ñ6Ø" D°ôç#‘m BÐ)9×)@Ñ)@ÀÓ)FÐ(GÈÓLð ð —;’; :´·±·±×1LÑ1LÑ#LÜ!Øä%×CÑCÜ%×6Ñ6ðôð ×6Ñ6Ü& t×'FÑ'FÓ'HÈ$ÓOôð ’
àÐ'ÜÐIÔJúðI$	Kús   Ä[ ÛE`6à%`6à5`6r‡   c                 óÐ  — | j                  «       rt        d«       | j                  r<t        t	        | j                  |«      j                  t        j                  «      «       	 | j                  ||«      }t        j                  j                  t        |t        j                  «       «      S # t        $ r- t        |«       t        j                  j                  d«      cY S w xY w)Nz$hasattr with custom __getattribute__F)r½  r   rŽ   r   r   r7  r   r8  r›   r   r‰   r–   r€   r�   r   r   )rU   rw   r‡   Úvar_vts       r3   r9  z&UserDefinedObjectVariable.call_hasattr›  s¸   € Ø×'Ñ'Ô)ÜÐ@ÔAà�;Š;ÜÜ˜4Ÿ;™;¨Ó-×8Ñ8¼×9MÑ9MÓNôð	<Ø×%Ñ% b¨$Ó/ˆFÜ×-Ñ-×4Ñ4Ü˜v¤y×'@Ñ'@ÓAÐAóð øô &ò 	<Ü% bÔ)Ü×-Ñ-×4Ñ4°UÓ;Ò;ð	<ús   Á%A	B/ Â/3C%Ã$C%c                 ó,  — ddl m} ddlm}  ||«      r|j                  �|j                  n|j                  «       }  ||t        | j                  |«      «      t        j                  j                  | j                  |j                  «       «      «      S )Nr(   rJ  )Úis_hashable)r•   r�   Údictsrò  rŽ   r[   r   r˜   r™   r�  rS   )rU   rw   r„   r�   rò  r  s         r3   r€  z'UserDefinedObjectVariable.odict_getitem­  sƒ   € Ý,Ý&ñ ˜3Ô C§J¡JÐ$:ð �JŠJà×'Ñ'Ó)ð 	ð
‰ØÜ˜tŸ{™{¨EÓ2ó
ô ×
!Ñ
!×
-Ñ
-¨d¯j©j¸#×:PÑ:PÓ:RÓ
SóUð 	Ur5   ©NNr=  r>  r?  rB  )%rG   rH   rI   Ú__doc__rE   Ú_nonvar_fieldsrR   rC  ra   r_  rb  re  rg  rk  rn  rŸ   rù   rD  rt  rv  rÙ   rz  rŒ  r‘  r”  r˜  r¿   r½  r¿  rÈ  rÎ  r†   rÔ  r›   r9  r€  rE  rF  s   @r3   rQ  rQ  d  sC  ø„ ñð ˜|ÐQÐ.A×.PÑ.PÐQ€Nö%ð	5˜ó 	5ðH˜#ó Hòô2òQò
Dó
ð Ø€Y×Ñ˜Óñó ó ðòðe;ð &ð	e;ð
 -ðe;ð 
õe;óN	0ò
ô
/ò"8òðY7à#ðY7ð &ðY7ð -ð	Y7ð
 
õY7òvTò.ò
Còó,*ò
ó
;ðB<Ð6ð <¸cð <ÐFWó <÷$Ur5   rQ  c                   óP   ‡ — e Zd Zed„ «       Zddˆ fd„Zd„ Zd	ˆ fd„Zdefd„Z	ˆ xZ
S )
ÚFrozenDataClassVariablec           	      ó$  — ddl m} t        |«      sJ ‚ddlm} i } ||«      D ]]  }t        ||j                  «      sŒ  || t        ||j                  «      «      t        ||j                  «      «      ||j                  <   Œ_ t        |||¬«      S )Nr   ©r  r(   rJ  )r  rŽ   )
r  r  r   r•   r�   ro   r‡   r   r¬   rø  )rw   rS   rŽ   r  r�   Ú	field_mapr,  s          r3   r–   zFrozenDataClassVariable.createÀ  s‡   € å&ä" 5Ô)Ð)Ð)å,àˆ	Ù˜E“]ò 	.ˆEÜ�u˜eŸj™jÕ)ð)©Øœ
 6¨5¯:©:Ó6ó)ä˜% §¡Ó,ó).�	˜%Ÿ*™*Ò%ð	.ô ' u°YÀvÔNÐNr5   rN   c                 ó<   •— t        ‰| �  |fi |¤Ž |€i }|| _        y r/   )rQ   rR   r  )rU   rS   r  rV   rW   s       €r3   rR   z FrozenDataClassVariable.__init__Ñ  s&   ø€ Ü‰Ñ˜Ñ) &Ò)Øˆ>ØˆFØˆ�r5   c                 ó0  — ddl m} g }i } || j                  «      D ]b  }| j                  |j                     j	                  «       }t        |d«      r|j                  r|||j                  <   ŒR|j                  |«       Œd  | j                  «       |i |¤ŽS )Nr   rú  Úkw_only)	r  r  rS   r‡   r^   ro   rþ  r>   rb  )rU   r  rË   rV   r,  rÁ   s         r3   r^   z FrozenDataClassVariable.as_proxy×  s‰   € Ý&àˆØˆÙ˜DŸJ™JÓ'ò 	#ˆEØ—K‘K §
¡
Ñ+×4Ñ4Ó6ˆEÜ�u˜iÔ(¨U¯]ª]Ø%*��u—z‘zÒ"à—‘˜EÕ"ð	#ð "ˆt×ÑÓ! 4Ð2¨6Ñ2Ð2r5   c                 ó`   •— || j                   |j                  «       <   t        ‰| �  |||«      S r/   )r  r[   rQ   rz  )rU   rw   r‡   rS   rW   s       €r3   rz  z/FrozenDataClassVariable.method_setattr_standardç  s.   ø€ Ø16ˆ�‰�D×+Ñ+Ó-Ñ.Ü‰wÑ.¨r°4¸Ó?Ð?r5   c                 ób   — | j                   j                  › d| j                  j                  › d�S r]  r^  rZ   s    r3   r_  z FrozenDataClassVariable.__repr__ë  r`  r5   r/   r=  r>  )rG   rH   rI   rŸ   r–   rR   r^   rz  rC  r_  rE  rF  s   @r3   rø  rø  ¿  s5   ø„ ØñOó ðOö ò3õ @ðH˜#÷ Hr5   rø  c                   ó8   ‡ — e Zd Z	 	 dˆ fd„Z	 	 	 	 	 	 dd„Zˆ xZS )ÚSourcelessGraphModuleVariablec                 ó&   •— t        ‰| �  |fi |¤Ž y r/   ©rQ   rR   rT   s      €r3   rR   z&SourcelessGraphModuleVariable.__init__ð  s   ø€ ô
 	‰Ñ˜Ñ) &Ó)r5   c                 óš   — t        j                  | j                  j                  j                  «      }| g|z   }|j                  |||«      S r/   )r   ÚUserFunctionVariablerS   Úforwardr£   r  )rU   rw   r‡   rË   rV   Úfn_variables         r3   rÙ   z)SourcelessGraphModuleVariable.call_method÷  sK   € ô  ×4Ñ4°T·Z±Z×5GÑ5G×5PÑ5PÓQˆØˆv˜‰}ˆØ×-Ñ-ØØØó
ð 	
r5   r=  r?  )rG   rH   rI   rR   rÙ   rE  rF  s   @r3   r  r  ï  s5   ø„ ð*ð 
õ	*ð
ð &ð	
ð
 -ð
ð 
÷
r5   r  c                   óP   ‡ — e Zd Zej                  Zdˆ fd„Z	 	 	 	 	 	 	 	 dd„Zˆ xZS )ÚWeakRefVariablec                 ó&   •— t        ‰| �  |fi |¤Ž y r/   r  rT   s      €r3   rR   zWeakRefVariable.__init__
  ó   ø€ Ü‰Ñ˜Ñ) &Ó)r5   c                 óÂ   — d }| j                  «       }| j                  r*ddlm} t	        | j                  «      }  |||«      |«      S ddlm} |j                  ||«      S )Nr(   rJ  rè   )rS   rŽ   r•   r�   r   rŒ   r–   )rU   rw   rË   rV   Úcall_sourceÚreferentr�   rŒ   s           r3   r¿   zWeakRefVariable.call_function  sV   € ð ˆØ—:‘:“<ˆà�;Š;Ý0ä+¨D¯K©KÓ8ˆKØ3‘? 2 {Ó3°HÓ=Ð=å2à$×+Ñ+¨B°Ó9Ð9r5   r=  rB  )rG   rH   rI   rQ  rö  rR   r¿   rE  rF  s   @r3   r
  r
    s>   ø„ Ø.×=Ñ=€Nõ*ð:à#ð:ð &ð:ð -ð	:ð
 
÷:r5   r
  c                   ó<   ‡ — e Zd Zed„ «       Zdˆ fd„Zdˆ fd„Zˆ xZS )ÚKeyedJaggedTensorVariablec                 óz   — t         j                  j                  d«      }|d uxr t        | «      |j                  u S )Nztorchrec.sparse.jagged_tensor)r§   ÚmodulesÚgetr  ÚKeyedJaggedTensor)r°   Úmods     r3   Úis_matching_objectz,KeyedJaggedTensorVariable.is_matching_object"  s3   € ä�k‰k�o‰oÐ=Ó>ˆØ˜$ˆÒE¤4¨£9°×0EÑ0EÐ#EÐEr5   c                 óP   •— ddl m} t        |«      |u sJ ‚t        ‰| �  |fi |¤Ž y )Nr   )r  )Útorchrec.sparse.jagged_tensorr  r  rQ   rR   )rU   rS   rV   r  rW   s       €r3   rR   z"KeyedJaggedTensorVariable.__init__'  s+   ø€ ÝCä�E‹{Ð/Ñ/Ð/Ð/Ü‰Ñ˜Ñ) &Ó)r5   c                 ó  •— t         j                  j                  j                  r@| j                  �4|dv r0t        j                  d¬«      5  t        ‰| �!  ||«      cd d d «       S t        ‰| �!  ||«      S # 1 sw Y   ŒxY w)N)Ú_length_per_keyÚ_offset_per_keyT)Ú#force_unspec_int_unbacked_size_like)	rc   rÅ  rÑ  Ú3force_unspec_int_unbacked_size_like_on_torchrec_kjtrŽ   r   ÚpatchrQ   r›   r<  s      €r3   r›   z%KeyedJaggedTensorVariable.var_getattr-  sr   ø€ ä�M‰M× Ñ ×TÒTØ—‘Ð'ØÐ>Ñ>ä×%Ñ%È$ÔOñ 5Ü‘wÑ*¨2¨tÓ4÷5ñ 5ä‰wÑ" 2 tÓ,Ð,÷5ð 5ús   ÁA6Á6A?r=  r>  )rG   rH   rI   rŸ   r  rR   r›   rE  rF  s   @r3   r  r  !  s&   ø„ ØñFó ðFõ*÷-ñ -r5   r  c                   ó   — e Zd Zy)ÚRemovableHandleClassNrF   rJ   r5   r3   r!  r!  8  s   „ ð 	r5   r!  c                   óH   ‡ — e Zd ZdZ	 	 d	 dˆ fd„Zdˆ fd„Zˆ fd„Zd„ Zˆ xZS )	ÚRemovableHandleVariableéÿÿÿÿc                 ó@   •— t        ‰| �  di |¤Ž || _        || _        y rP   )rQ   rR   rÏ   Úidx)rU   rÏ   r&  rV   rW   s       €r3   rR   z RemovableHandleVariable.__init__A  s$   ø€ ô 	‰ÑÑ"˜6Ò"Ø*ˆÔØˆ�r5   c                 ó$  •— |dk(  rx| j                   | j                  k7  r@|j                  j                  j	                  | j                   «       | j                  | _         t
        j                  j                  d «      S t        ‰| �%  ||||«       y )NÚremove)
r&  ÚREMOVEDr|   r}   Úremove_hookr   r‰   r–   rQ   rÙ   )rU   rw   Úmethod_namerË   rV   rW   s        €r3   rÙ   z#RemovableHandleVariable.call_methodL  sl   ø€ Ø˜(Ò"Ø�x‰x˜4Ÿ<™<Ò'Ø—	‘	×&Ñ&×2Ñ2°4·8±8Ô<ØŸ<™<�”Ü×-Ñ-×4Ñ4°TÓ:Ð:Ü‰Ñ˜B ¨T°6Õ:r5   c                 ó¸   •‡— | j                   | j                  k(  r0‰j                  ˆfd„«       ‰j                  t	        dd«      «       y t
        ‰| �  ‰«       y )Nc                  ó(   •— ‰ j                  dd«      S )Nztorch._dynamo.utilsÚinvalid_removeable_handle)Úload_import_from)Úcodegens   €r3   ú<lambda>z5RemovableHandleVariable.reconstruct.<locals>.<lambda>X  s   ø€ ˜×0Ñ0Ø)Ð+Fó€ r5   r   F)r&  r)  Úadd_push_nullÚextend_outputr   rQ   Úreconstruct)rU   r0  rW   s    `€r3   r4  z#RemovableHandleVariable.reconstructT  sN   ù€ Ø�8‰8�t—|‘|Ò#à×!Ñ!óôð
 ×!Ñ!Ô"6°q¸%Ó"@ÔAØä‰Ñ˜GÕ$r5   c                 ó   — t         S r/   )r!  rZ   s    r3   rb  z#RemovableHandleVariable.python_typea  s   € Ü#Ð#r5   rô  r=  r>  )	rG   rH   rI   r)  rR   rÙ   r4  rb  rE  rF  s   @r3   r#  r#  >  s.   ø„ Ø€Gð àð		ð 
õ	õ;ô%ö$r5   r#  c                   óN   ‡ — e Zd Zej                  Zˆ fd„Zdddeddfˆ fd„Zˆ xZS )ÚMutableMappingVariablec                 ó&   •— t        ‰| �  |fi |¤Ž y r/   r  rT   s      €r3   rR   zMutableMappingVariable.__init__h  r  r5   rw   r-   r‡   rN   r*   c                 óü   •— |dk(  rgt        | j                  «      j                  t        j                  j
                  j                  u r$t        j                  t        j                  | «      S t        ‰| �-  ||«      S )Nr  )r  rS   r  r˜   ÚabcÚMappingr   r¢   r
   Úmapping_getrQ   r›   r<  s      €r3   r›   z"MutableMappingVariable.var_getattrk  s[   ø€ Ø�5Š=œT $§*¡*Ó-×1Ñ1´[·_±_×5LÑ5L×5PÑ5PÑPÜ×/Ñ/´	×0EÑ0EÀtÓLÐLä‘7Ñ& r¨4Ó0Ð0r5   )	rG   rH   rI   rQ  rö  rR   rC  r›   rE  rF  s   @r3   r7  r7  e  s4   ø„ Ø.×=Ñ=€Nô*ð1Ð5ð 1¸Sð 1ÐEV÷ 1ñ 1r5   r7  c                   ó   — e Zd Zy)r  NrF   rJ   r5   r3   r  r  r  rK   r5   r  )Yr˜   rï   r  rª   rù   rœ   r±  r  r§   r¤   rý   Útypingr   r   r   r   Útorch._dynamo.configrc   Útorch.nnÚtorch._guardsr   Útorch.utils._python_dispatchr   r”   r
   r   Úbytecode_transformationr   Úcreate_parameter_opr   Úexcr   r   r   r   Úguardsr   r   rŽ   r   r   r   r   r   r   r¦  r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   Úbaser)   r*   ró  r+   Únumpyr  ÚModuleNotFoundErrorÚtorch.utils._cxx_pytreer,   r?   r  Útorch._dynamo.symbolic_convertr-   r4   rC   rE   rM   rH  rO  rQ  rø  r  r
  r  r!  r#  r7  r  rJ   r5   r3   ú<module>rL     sp  ðó Û Û Û Û Û Û Û Û 
Û Û ß 5Ó 5ã Û Ý (Ý Kç #Ý :Ý F÷ó ÷ 1÷÷ ÷÷ ÷ ÷ ÷  0Ý &ðÛðÝ2ñ
 ÝDò(òô:	˜/ô 	ô_/Ð2ô _/÷D	ñ 	òSôX	UÐ 3ô X	Uôv-HÐ7ô -Hô`
Ð$=ô 
ô0:Ð/ô :ô4-Ð 9ô -÷.	ñ 	ô$$˜oô $$ôN
1Ð6ô 
1ô	Ð.õ 	øðk) ò Ø	‚Bðûð
 ò Ù�d“‚Jðús$   Â4E Â9E  ÅEÅEÅ E0Å/E0