
    9iTw                    
   % S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJr  SSKJrJrJrJrJrJr  SSKrSSKrSSKJr  SSKJ r   SSK!J"r"J#r#J$r$J%r%  SSK&J'r'  SS	K(J)r)  SS
K*J+r+  SSK,J-r-  SSK.J/r/J0r0J1r1  SSK2J3r3J4r4  SSK5J6r6  SSK7J8r8  SSK9J:r:  SSK;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrD  SSKEJFrFJGrG  SSKHJIrI  SSKJJKrKJLrL  SSKMJNrN  SSKOJPrP  SSKQJRrRJSrSJTrTJUrUJVrV  SSKWJXrX  SSKYJZrZJ[r[J\r\  SSK]J^r^J_r_J`r`  SSKaJbrbJcrcJdrdJereJfrf  SSKgJhrh  SSKiJjrjJkrkJlrlJmrmJnrnJoroJprpJqrqJrrrJsrsJtrtJuruJvrvJwrwJxrxJyryJzrzJ{r{J|r|J}r}J~r~JrJrJrJrJrJrJr  SSKJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  S S!KJrJrJrJrJrJr  S S"KJr  S S#KJrJr  S S$KJrJrJrJrJrJrJrJr  S S%KJrJrJrJrJrJr  S S&KJrJrJrJrJr  S S'KJrJrJrJrJrJrJrJrJrJrJrJrJr  S S(KJr  S S)KJr  S S*KJr  S S+KJrJrJrJrJrJrJrJrJr  S S,KJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  S S-KJrGJ Gr GJGr  S S.GKGJGr  S S/GKGJGr  S S0GKGJGr  S S1GKGJ	Gr	GJ
Gr
GJGrGJGrGJGrGJGr  S S2KGJGrGJGrGJGrGJGr  S S3GKGJGrGJGrGJGr  S S4GKGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJ Gr GJ!Gr!GJ"Gr"GJ#Gr#   SSGK$Gr%\(       a  SS5GK'GJ(Gr(  SS6GK)GJ*Gr*  \
GRV                  " G\,5      Gr-\GR\                  GR_                  G\,S75      Gr0G\1Gr2S8 Gr3 " S9 S:5      Gr4\GRj                   " S; S<5      5       Gr6 " S= S>G\65      Gr7G\8" S? G\9" \	5      GRu                  5        5       5      Gr;G\8G\<   G\=S@'   G\>" 5       Gr?G\>G\<   G\=SA'   \GR                  GR                  GR                  GrC\GR                  GR                  GR                  GrE " SB SC5      GrFSD GrGSE GrH ShSF\4SG jjGrISH GrJ ShSI jGrK SiSJ jGrL ShSK jGrMSL GrNSM GrOSN GrPSO GrQSP GrRSGqS\G\>G\T      G\=SQ'   SGqU\G\<   G\=SR'   SFG\>G\T   4SS jGrVSTG\TSFG\W4SU jGrXSVSWSXG\TSY\GR                  SF\d4SZ jGrZSGq[\G\>G\T      G\=S['   SGq\\G\<   G\=S\'   SFG\>G\T   4S] jGr]STG\TSFG\W4S^ jGr^ SjSF\B4S_ jjGr_SS`.Sa\\   SbG\W4Sc jjGr` " Sd Se5      GraG\aGR                  5       G\aGlc         " Sf Sg5      Grdg! G\& a    SGr% GNDf = f)kaq  
This module contains classes and utilities for building variable trackers in Dynamo.
Variable trackers are used to convert Python values into symbolic representations
that can be traced and transformed during graph capture.

The key classes are:

- VariableBuilder: Handles source-tracked objects that need guards and proper
  reconstruction in the output graph. Used for inputs, module attributes, etc.

- SourcelessBuilder: Handles ephemeral objects created during tracing that don't
  need source tracking or guards. Used for temporary lists, intermediate values, etc.

Variable trackers enable Dynamo to track the flow of values through the program,
maintain guards for dynamic properties, and reconstruct values in the output graph.
The builders in this module handle converting Python values into appropriate
VariableTracker instances based on their type and usage context.
    N)MutableMapping)AnyCallable
NamedTupleOptionalTYPE_CHECKINGUnion)SymInt)enable_python_dispatcher)get_metrics_contextis_int_specialization_caseis_torch_symset_feature_use)TracingContext)
flat_apply)call_torchbind)HigherOrderOperator)
FakeTensoris_fakemaybe_get_fake_mode)is_sparse_any	safe_grad)justknobs_check)BackwardState)normalize_source_name)	_constrain_range_for_size_nested_int_aware_sort
DimDynamicRelaxedUnspecConstraintStatefulSymbolicContextSubclassSymbolicContextSymbolicContextSymIntSymbolicContextTrackedFake)immutable_dictimmutable_list)ExpandedWeight)is_traceable_wrapper_subclass"is_traceable_wrapper_subclass_type)ValueRanges)TensorWeakRef   )configgraph_break_hintsmutation_guardreplay_recordtrace_rules) get_registered_device_interfaces)InternalTorchDynamoErrorraise_observed_exceptionunimplemented_v2)GuardBuilderinstall_guardmake_dupe_guard)auto_dynamic
auto_unsetFrameStateSizeEntryInferStrideprocess_automatic_dynamic)SideEffects)AttrProxySource
AttrSourceCallMethodItemSourceChainedSourceConstDictKeySourceConvertIntSourceDictGetItemSourceDictSubclassGetItemSourceFloatTensorSourceGetItemSource
GradSourceis_constant_sourceis_from_closure_sourceis_from_global_sourceis_from_nonlocal_sourceis_from_optimizer_source&is_from_unspecialized_nn_module_sourceListGetItemSourceLocalSourceNonSerializableSetGetItemSourceNumpyTensorSourceOptimizerSourceRandomValueSourceSourceSubclassAttrListSourceTupleIteratorGetItemSource"UnspecializedBuiltinNNModuleSourceUnspecializedNNModuleSource) _extract_tensor_dictbuild_checkpoint_variablebuild_invoke_subgraph_variableclone_inputcommon_constant_types	dict_keysget_fake_valueget_items_from_dictget_locals_to_stealget_static_address_typeis_frozen_dataclassis_functionis_function_or_wrapperis_invoke_subgraphis_lru_cache_wrapped_functionis_namedtupleis_parameter_freezing	is_typingis_utils_checkpointis_wrapper_or_member_descriptoristypenamedtuple_fieldsodict_valuesproxy_args_kwargsrange_iteratorset_example_valuetensor_always_has_static_shapetuple_iteratortuple_iterator_getitemtuple_iterator_len unwrap_with_attr_name_if_wrapperwrap_fake_exception   )AttributeMutationNewtypestrValueMutationExistingValueMutationNewVariableTrackerVariableTrackerMeta)BuiltinVariable)ConstantVariableEnumVariable)AutocastModeVariableDynamoConfigPatchVariableErrorOnGraphBreakVariableEventVariableNullContextVariablePreserveVersionContextVariableStreamContextVariableStreamVariable)ConstDictVariableDefaultDictVariableDictKeySetVariableFrozensetVariableMappingProxyVariableSetVariable)DeviceMeshVariablePlacementClassVariablePlacementVariableProcessGroupVariableWorldMetaClassVariable)BuiltinMethodVariableCollectionsNamedTupleFunction!CollectiveFunctionRewriteVariable'CreateTMADescriptorExperimentalVariable!CreateTMADescriptorStableVariableFunctoolsPartialVariableFunctoolsWrapsVariableSysFunctionVariableTracebackVariableTritonKernelVariableUserFunctionVariableUserMethodVariableWrapperUserFunctionVariable) TorchHigherOrderOperatorVariable)ItertoolsVariable)LazyVariableTracker)	BaseListVariableListIteratorVariableListVariableNamedTupleVariableRangeVariableSizeVariableSliceVariableTupleIteratorVariableTupleVariable)AutogradEngineVariableAutogradFunctionContextVariableAutogradFunctionVariableComptimeVariableDebuggingVariableDelayGraphBreakVariableGetAttrVariableGetSetDescriptorVariableLambdaVariableLoggingLoggerVariableMethodWrapperVariableNumpyDTypeVariableNumpyTypeInfoVariableNumpyVariablePythonModuleVariableRandomClassVariableRandomVariableRegexPatternVariableSavedTensorBoxTorchVersionVariableTypingVariableWeakRefVariable)FSDPManagedNNModuleVariable$UnspecializedBuiltinNNModuleVariableUnspecializedNNModuleVariable)OptimizerVariable)TorchScriptObjectVariableSDPAParamsVariable)NumpyNdarrayVariable$supported_const_comparison_op_valuesSymNodeVariableTensorSubclassVariableTensorVariableUnspecializedPythonVariable)DispatchKeySetVariableFuncTorchInterpreterVariableTorchCtxManagerClassVariableTorchInGraphFunctionVariable)TensorWithTFOverrideVariable#torch_function_mode_stack_state_mgrTorchFunctionModeVariable)FrozenDataClassVariableIntWrapperVariableKeyedJaggedTensorVariableMutableMappingVariableSourcelessGraphModuleVariableUserDefinedClassVariableUserDefinedDictVariable!UserDefinedExceptionClassVariableUserDefinedListVariableUserDefinedObjectVariableUserDefinedSetVariableUserDefinedTupleVariable)	PyCodegen)InstructionTranslatorcudagraph_static_inputsc                     [         R                  R                  [         R                  R                  R                  5         [        U S5      sS S S 5        $ ! , (       d  f       g = f)Ngrad)torch_logginghide_warnings	_internalsafe_grad_filterhasattr)ts    _/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/torch/_dynamo/variables/builder.pysafe_has_gradr   6  s;    		%	%enn&>&>&O&O	Pq&! 
Q	P	Ps   A
A&c                       \ rS rSrSrg)_missingi;   N__name__
__module____qualname____firstlineno____static_attributes__r       r   r   r   ;  s    r   r   c                       \ rS rSr% \\S'   \\\R                  4   \S'   \
\S'   \\R                  R                  R                     \S'   Sr\
\S'   Sr\\R"                     \S	'   \S
 5       rS rSS jrS rS rSrg)GraphArgi?  source_examplepass_arg_as_tensorfake_tensorT	is_tensorNexample_strong_refc                     [        U R                  [        5      (       a  U R                  5       nUc   eU$ U R                  $ N)
isinstancer  r+   )selfrs     r   exampleGraphArg.examplec  s7    dmm]33A= =H== r   c                     [        U R                  [        R                  5      (       a7  [	        U R                  5      U l        [        U R                  5      (       d   eg g r  )r	  r  r   Tensorr+   r   r  r
  s    r   __post_init__GraphArg.__post_init__l  sC    dmmU\\22)$--8DM4++,,,, 3r   c                 (    U" U R                   5        g r  r  r
  codegens     r   reconstructGraphArg.reconstructq  s    r   c                      S U l         S U l        g r  r  r  r  s    r   eraseGraphArg.eraset  s    "&r   c                 l    U R                   R                  5       UR                   R                  5       :H  $ r  )r  name)r
  others     r   __eq__GraphArg.__eq__x  s'    {{!U\\%6%6%888r   r  r  r   )r   r   r   r   rV   __annotations__r	   r+   r   r
   boolr   _subclassesr  r   r  r  r  propertyr  r  r  r  r   r   r   r   r   r   r   ?  s    N M5<</00" %++77BBCC It 26.5! !-
'9r   r   c                   6   ^  \ rS rSrSU 4S jjrSS jrSrU =r$ )BackwardStateGraphArgi|  c                 8   > [         TU ]  S [        5       SS SS9  g )NF)r  r  r  r  r  )super__init__r   )r
  	__class__s    r   r+  BackwardStateGraphArg.__init__}  s&    "_$ 	 	
r   c                    ^ TR                   R                  R                  (       d   eTR                  U4S j5        TR	                  SS5        TR                  5         TR                  TR                   R                  R                  5        g )Nc                  D   > T R                  [        R                  S5      $ )Nr   )load_import_fromr   r   )r  s   r   <lambda>3BackwardStateGraphArg.reconstruct.<locals>.<lambda>  s    G,,]-E-EWr   r   F)txoutputbackward_state_varadd_push_nullcall_functiondup_topstorer  s    `r   r  !BackwardStateGraphArg.reconstruct  se    zz  3333W	
 	a'gjj''::;r   r   returnNr"  )r   r   r   r   r+  r  r   __classcell__r,  s   @r   r(  r(  |  s    
< <r   r(  c              #      #    U  HG  u  pUR                  S 5      (       a  M  [        R                  " U5      (       d  M:  [        U5      v   MI     g7f)_N)
startswithinspectisclassid).0r  members      r   	<genexpr>rG    s>      //??3 $+OOF$; BvJJ/s   AAAITERTOOLS_TYPE_IDSITERTOOLS_POLYFILLED_TYPE_IDSc                   t  ^  \ rS rSrSrS\SS4U 4S jjrS rS rS	 r	S
 r
\S 5       r\\R                  S 5       5       rS\R"                  4S jrS\R(                  4S jrS rS rS r\\R                  S\\\S \/\4   4   4S j5       5       rS rS\4S jr S\!\"\#\$\%4   4S jr&S\'4S jr(S\)4S jr*S\!\+\,4   4S jr-S\.R^                  S\04S jr1S\.Rd                  Rf                  4S jr4S r5S\.R^                  4S jr6S\.R^                  4S jr7S  r8  S'S!\9\:   S"\9\;   4S# jjr<S$ r=S% r>S&r?U =r@$ )(VariableBuilderi  z3Wrap a python value in a VariableTracker() instancer  r<  Nc                    > Uc   S5       e[         R                  " 5       c   S5       e[        TU ]  5         Xl        X l        UR                  5       U l        g )NzRConsider SourcelessBuilder for ephemeral objects, usually objects created locally.zExpected active TracingContext)r   try_getr*  r+  r3  r  r  )r
  r3  r  r,  s      r   r+  VariableBuilder.__init__  sZ    
 ! 	
`	
! %%'3U5UU3KKM	r   c                 l   XR                   R                  R                  ;   a]  U R                   R                  R                  U   n[        U R                  UR                  5      nU(       a  U R                  U5        U$ U R                   R                  R                  R                  XR                  5      nU(       a  U$ U R                  U5      nUR                  c  U R                  Ul        S nU R                  U5      (       d  U" X5      (       ab  XR                   R                  R                  ;  a?  [        U5      (       d/  U R                   R                  R                  R                  X5      nU R                   R                  R                  R                  XR                  U5        U$ )Nc                 F    [        U 5      =(       a    [        U[        5      $ r  )r   r	  r   )valuevts     r   _is_deduplicable_sym_variable?VariableBuilder.__call__.<locals>._is_deduplicable_sym_variable  s    
  &J:b/+JJr   )r3  r4  side_effectsr8   r  install_guardsvariable_tracker_cachelookup_wrap_can_lift_attrs_to_inputsrn   track_object_existingadd)r
  rQ  side_effect_result	dup_guard	cached_vtrR  rS  s          r   __call__VariableBuilder.__call__  s3   GGNN///!%!<!<U!C'5G5N5NOI##I.%%GGNN99@@T	ZZ99BI	K ..r220;;WW^^8883E::,,BB5MB--11%bI	r   c                 F    [        U5      [        [        [        [        1;   $ r  )typer   r   r   r   )r
  rR  s     r   rZ  )VariableBuilder._can_lift_attrs_to_inputs  s$    Bx(% 	
 
 	
r   c                     U R                   $ r  r  r  s    r   
get_sourceVariableBuilder.get_source  s    {{r   c                     U R                  5       n U Vs/ s H  o2R                  U5      PM     nn[        USS06  0 $ s  snf ! [         a     g f = f)Nskipr{   )rf  
make_guardNotImplementedErrorr7   )r
  guardsr  guardtmps        r   rV  VariableBuilder.install_guards  s\    "	9?@$$U+C@ 	s##		 A" 		s   A ?A A 
AAc                 @    U R                  [        R                  5      $ r  )_type_dispatch_implr-   trace_numpy)clss    r   _type_dispatchVariableBuilder._type_dispatch  s    &&v'9'9::r   c                 <   [         R                  [         R                  R                  [         R                  R
                  [         R                  R                  R                  4U R                  4[        [        [        [        R                  [         R                  4U R                  4[         U R"                  4[$        U R&                  4[(        [*        4U R,                  4[        [.        5      U R0                  4[2        R4                  U R6                  4[8        R:                  U R<                  4[         R>                  R@                  RB                  U RD                  4[         RF                  RH                  U RJ                  4[L        RN                  U RP                  4/nU(       a6  [R        (       a+  URU                  [R        RV                  U RX                  45        0 nU H1  u  pE[[        U[        5      (       a  UOU4 H  nXc;  d   eXSU'   M     M3     U$ r  ).r   r  nn	Parameterr%  r   functional_tensorFunctionalTensorwrap_tensortuplelistrq   collectionsdequeSizewrap_listlikerv   wrap_tuple_iteratorrs   wrap_range_iteratorslicerangewrap_slice_ranger_   wrap_literalrePatternwrap_regex_patternweakrefReferenceTypewrap_weakrefutilshooksRemovableHandlewrap_removable_handlejitScriptFunctionwrap_jit_functiontypesMappingProxyTypewrap_mapping_proxynpappendndarraywrap_numpy_ndarrayr	  )rs  rr  entriesresulttsfnr   s          r   rq  #VariableBuilder._type_dispatch_impl  s    LLHH&&%%00%%77HH	  lK,=,=uzzJ!! S445S445U^S112()3+;+;<ZZ//0""C$4$45[[..0I0IJYY%%s'<'<=##S%;%;<-
2 22NNBJJ(>(>?@FB%b%00Rre;&q	 < 
 r   rQ  c                 V    U R                  [        R                  5        [        U5      $ r  )rV  r6   ID_MATCHr   r
  rQ  s     r   r  "VariableBuilder.wrap_regex_pattern  s!    L112#E**r   c                     U R                  [        R                  5        [        R                  " U R
                  XR                  S9$ Nr  )rV  r6   
TYPE_MATCHr   buildr3  r  r  s     r   r  VariableBuilder.wrap_weakref  s1    L334$$TWWeKKHHr   c                     [        SSS/ S9  g )Nz3Attempted to represent unregistered RemovableHandle zDynamo attempted to build a representation of a torch.utils.hooks.RemovableHandle, which is not supported. This happens because the RemovableHandle was created in another frame.gb_typecontextexplanationhints)r5   r  s     r   r  %VariableBuilder.wrap_removable_handle   s    
 	Im	
r   c                 j    U R                  [        R                  5        [        USU R                  S9$ )N_torchdynamo_inliner  )rV  r6   r  r   r  r  s     r   r  !VariableBuilder.wrap_jit_function-  s/    L334*(
 	
r   c           
      ^  ^ ^ T R                  [        R                  5        T R                  [        R                  5        [	        S UR                  5        5       5      nU(       dL  [        SSUR                  5        Vs/ s H"  n[        R                  " U5      (       a  M   UPM$     sn 3SS/S9  U 4S jm[        U4S jUR                  5        5       5      n[        US S	9n[        UT R                  S	9nT R                  R                  R                   R#                  X5      $ s  snf )
Nc              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr  r   
is_literalrE  ks     r   rG  5VariableBuilder.wrap_mapping_proxy.<locals>.<genexpr>8  s     M1(33A66   #%znon-const keys in mappingproxynon-const keys: z1Dynamo expects mappingproxy keys to be constants.zFEnsure your mappingproxy keys are constants (e.g. int, float, strings)r  c                    > [         R                  " U 5      nU n[        TR                  5       U5      n[        R                  " X5      nX%4$ r  )r   createrH   rf  r   )r  vkey
source_keysource_value	res_valuer
  s         r   build_key_value;VariableBuilder.wrap_mapping_proxy.<locals>.build_key_valueD  sC    "))!,CJ():JGL+221CI>!r   c              3   8   >#    U  H  u  pT" X5      v   M     g 7fr  r   )rE  r  r  r  s      r   rG  r  M  s     E}tq_Q**}s   r  )rV  r6   r  MAPPING_KEYS_CHECKallkeysr5   r   r  dictitemsr   r   r  r3  r4  rU  track_mutable)r
  rQ  	all_constr  r  dict_vtr  r  s   `      @r   r  "VariableBuilder.wrap_mapping_proxy3  s    L334 	L;;<M

MM	8*uzz|+j|!K[KfKfghKiA|+j*klO\		" Eu{{}EE $E$7%gdkkBww~~**88GG+ ,ks   D*$D*c                     SSK J n  US 4[        R                  S 4[        R                  S 4/n0 nU H@  u  pE[        U[        [        45      (       a  UOU4 H  nXc;  d   eXS[        U5      '   M     MB     U$ )Nr,   )comptimec                     [        5       $ r  )r   r  s     r   r1  .VariableBuilder._id_dispatch.<locals>.<lambda>\  s    +;+=r   c                 t    [        [        4SU R                  0U R                  [        R
                  5      D6$ )Nr  )r   _dataclasses_fields_lambdar  rV  r6   FUNCTION_MATCHr  s     r   r1  r  _  s3    N.%;;% )),*E*EF%r   c                     [        5       $ r  )r   r  s     r   r1  r  e  s    4H4Jr   )	r  dataclassesfieldsr   __version__r	  r|  r}  rD  )rs  r  r  r  r  r  r   s          r   _id_dispatchVariableBuilder._id_dispatchT  s    
 	( =>""  JK
 FB%b5$-88RreC& "r!u D 
 r   c                 c  ^ ^9^: SSK JnJnJn  SSKJnJn  U" 5       (       a  SSKJn  SSK	J
n  O " S S5      n " S	 S
5      nS n	S n
 " S S5      nU" 5       (       a  SSKJn	Jn
  U" 5       (       a  SSKJn  T R!                  5       R#                  [%        U5      5      nUb	  U" T U5      $ T R'                  5       R#                  [)        U5      5      nUb	  U" T U5      $ [+        U[,        R.                  5      (       a  [%        U5      [,        R0                  R2                  R4                  [,        R0                  R2                  R6                  [8        4;  an  [%        U5      [:        R<                  ;  aQ  [%        U5      R>                  [,        R.                  R>                  L d  [A        U5      (       a  T RC                  U5      $ [E        U5      (       a  T RG                  [H        RJ                  5        [M        [%        U5      5       Vs/ s H5  n[N        RP                  " [S        X5      [U        T RV                  U5      S9PM7     nn[Y        U[%        U5      T RV                  S9nU$ [[        U[\        [^        R`                  [^        Rb                  45      (       Gat  T RG                  [H        Rd                  5        [g        S URi                  5        5       5      m9T9(       d9  T Rj                  Rl                  Rn                  Rq                  T RV                  5        U9U 4S jm:[]        U:4S j[s        [u        U5      5       5       5      n[[        U[^        R`                  5      (       aZ  [U        T RV                  S5      n[w        U[%        U5      [y        T Rj                  U5      " URz                  5      T RV                  S9nO[}        U[%        U5      T RV                  S9nT Rj                  Rl                  R~                  R                  UU5      $ [+        U[,        R0                  R                  5      (       a  T R                  U5      $ [        R                  " U5      (       a  T R                  U5      $ [+        U[,        R                  R                  5      (       aF  [        UT RV                  S9nT Rj                  Rl                  R~                  R                  UU5        U$ [[        U[        5      (       Ga  [        S U 5       5      (       a  [        SSSS/[        R                  QS9  T RG                  [H        Rd                  5        T RG                  [H        RJ                  5        [        U5      n[s        U5       VVs/ s H/  u  nn[N        RP                  " U[        T RV                  U5      S9PM1     nnn[        UT RV                  S9nT Rj                  Rl                  R~                  R                  UU5      $ [[        U[        5      (       az  [g        S U 5       5      (       ac  U Vs/ s H#  n[        RQ                  T Rj                  U5      PM%     nnT RG                  [H        R                  5        [        UT RV                  S9$ [+        U[        R                  [,        R                  [,        R                  R                  R                  45      (       a3  T RG                  [H        R                  5        [        UT RV                  S 9$ [        R                  " U5      (       a3  T RG                  [H        R                  5        [        UT RV                  S9$ [+        U[        R                  5      (       a3  T RG                  [H        R                  5        [        UT RV                  S9$ [        U5      (       a  [        T RV                  S9$ [        U5      (       a  [        T RV                  S9$ [+        U[        R                  5      (       Ga  [U        T R                  5       S!5      n[y        T Rj                  U5      " UR                  5      n/ n[U        T R                  5       S"5      n[s        UR                  5       H;  u  nnUR                  [y        T Rj                  [        UU5      5      " U5      5        M=     0 n[U        T R                  5       S#5      nUR                  R                  5        Hi  u  nn[        R                  " U5      (       d  [        S$S%U 3S&/ [        R                  QS9  [y        T Rj                  [        UU5      5      " U5      UU'   Mk     [        T R                  5       R                  [H        Rd                  5      UR                  [H        R                  5      UR                  [H        RJ                  5      5        [        UUU5      $ [        U5      (       a3  T RG                  [H        R                  5        [        UT RV                  S9$ [        bD  [+        U[        R                  5      (       a%  T R                  [        R                  " U5      5      $ [        R                  " U5      (       aa  [        (       d   eT RG                  [        U5      (       a  [H        R                  O[H        Rd                  5        G[        UT RV                  S9$ [        GR                  " U5      (       a4  T RG                  [H        R                  5        G[        UT RV                  S9$ [        GR                  " U5      (       a  [+        U[        GR                  5      (       a^  T RG                  [H        Rd                  5        [U        T RV                  S'5      n[        UR                  [H        R                  5      5        OT RG                  [H        R                  5        G[        UT RV                  S9$ G[        GR                  " U5      (       aJ  T RG                  [H        R                  5        G[        RP                  " T Rj                  UT RV                  S9$ [[        U[,        GR                  GR                  GR                  5      (       a4  T RG                  [H        R                  5        G[        UT RV                  S9$ [+        U[,        GR                  GR                  GR                  5      (       Ga6  S n  UGR                  n / n!T RV                  R                  [H        Rd                  5      /n"[+        U G[        5      (       a  [U        T RV                  S(5      n#U"R                  U#R                  [H        RJ                  5      5        [s        U 5       H;  u  nnU!R                  [y        T Rj                  [        U#U5      5      " U5      5        M=     [        U"6   T Rj                  Rl                  R~                  R                  UG[!        UT RV                  G[#        U!5      S)95      $ [+        UG[$        GR&                  5      (       a  [[        [S        US*S 5      [,        GR                  GR                  GR                  5      (       a  [S        US+S,5      S-:X  an  U[S        UGR(                  S-S 5      :X  aR  T RG                  [H        R                  5        G[+        G[        UGR(                  [U        T RV                  S*S.9S9S-5      $ [+        U[,        R                  GR,                  5      (       a4  T RG                  [H        R                  5        G[/        UT RV                  S9$ U[,        GR0                  GR2                  GR4                  GR6                  L a/  T RG                  [H        R                  5        G[9        U 4S/ j5      $ [+        X5      (       a  G[;        UGR<                  5      $ [+        X5      (       a  G[?        UGR@                  5      $ [        U5      (       a  [        GRB                  " U5      bg  [        GRD                  " U5      (       a  S0T Rj                  Rl                  l        [        GRB                  " U5      GRI                  UT RV                  S9$ [        (       a2  [+        U[        GRJ                  5      (       a  T GRM                  U5      $ [+        UG[N        5      (       a{  U[,        GRP                  GRR                  L a  [        S1S,S2/ S9  T RG                  [H        Rd                  [H        GRT                  5        G[V        GRX                  " UT RV                  S9$ [+        U[,        GRZ                  GR\                  5      (       a~  T RG                  [H        R                  5        [U        T RV                  S35      n$[y        T Rj                  U$5      " UGR^                  5      n%G[`        RP                  " T Rj                  U%5      $ [+        U[,        GRb                  5      (       a  T RG                  [H        R                  5        T Rj                  Rl                  GRe                  S4[%        U5      S5UGRf                  UGRh                  UGRj                  S6.5      n&G[m        U&GRn                  U5        G[q        U&UUGRr                  T RV                  S9$ [+        U[,        R                  GRt                  5      (       aL  T RG                  [H        Rd                  5        G[v        RP                  " T Rj                  UT RV                  5      $ [+        U[,        R                  GRx                  GRz                  5      (       a+  T RG                  [H        R                  5        G[}        U5      $ [+        U[,        GR~                  5      (       a  T RG                  [H        R                  5        [,        GR0                  GR                  GR                  U5        T Rj                  Rl                  GRe                  S4[,        GR0                  GR                  GR                  [)        U5      40 5      n'G[m        U'GRn                  U5        G[        U'UT RV                  S9$ [[        UG[        GR                  5      (       aN  G[        GR                  " US7S 5      c3  T RG                  [H        Rd                  5        G[        T RV                  S9$ G[        GR                  " U5      (       ad  T RG                  [H        Rd                  5        G[        UT RV                  S9nT Rj                  Rl                  R~                  R                  UU5      $ [+        U[,        GR                  GR                  5      (       aO  T RG                  [H        R                  5        G[        T RV                  5      T l+        G[        UT RV                  S9$ [+        U[,        GR                  5      (       a,  T RG                  [H        GR                  5        G[        U5      $ G[        GR                  " U5      (       a  G[        UT RV                  S9$ G[        GR                  " U5      (       a4  T RG                  [H        R                  5        G[        UT RV                  S9$ G[        GR                  " U5      (       a5  T RG                  [H        GR                  5        G[        UT RV                  S9$ G[        GR                  " U5      (       a4  T RG                  [H        R                  5        G[        UT RV                  S9$ G[        GR                  " U5      (       a5  T RG                  [H        GR                  5        G[        UT RV                  S9$ [)        U5      G[        ;   aH  [)        U5      G[        ;  a4  T RG                  [H        R                  5        G[        UT RV                  S9$ G[        U5      (       Gak  [+        U[,        GR                  5      (       a  T RV                  OG[        T RV                  5      n(UGRn                  GR                  5       (       ab  T Rj                  Rl                  GR                  GR                  G[        UGRn                  GR                  5      U(G[        GR                  S89n)Om[+        U[,        GR                  5      (       a1  T Rj                  Rl                  GR                  GR                  5       n)O[        S9S,S:/ [        R                  QS9  T Rj                  Rl                  GR                  GR                  G[        GR                  " S;S<T GR                  5      [%        W)5      U)U(S9n*G[        U(U)S=S S=U)S>9U*GRn                  GR                  S?'   U)GRn                  GR                  n+[+        U+G[        GR                  5      (       d
   U+ S@35       eT Rj                  Rl                  GR                  R                  G[        U)U(S 5      5        [+        U[,        GR                  5      (       a  U)OU)SA:H  n,G[        U*U,5      $ [+        XU45      (       a6  T RG                  [H        R                  5        G[        US S T RV                  S9$ XL a
  G[        SASB9$ XL a
  G[        SSB9$ XGR                  L a  G[        5       $ [+        U[,        GR                  GR                  GR                  5      (       ad  T RG                  [H        R                  5        G[        UGRr                  UGR                  UGR                  UGR                  /T RV                  SC9$ G[        GR
                  " U5      (       a4  T RG                  [H        R                  5        G[	        UT RV                  S9$ G[        GR                  " USDS=5      (       a5  T RG                  [H        Rd                  5        G[        USET RV                  S9$ G[        U5      (       a5  T RG                  [H        Rd                  5        G[        USFT RV                  S9$ UG[        GR                  L a  G[        T RV                  S9$ UG[        GR                  L d+  G[        GR                  SG:  a*  UG[        GR                  L a  G[        UT RV                  S9$ G[!        U5      (       aT  G[        GR                  " USHS=5      (       a5  T RG                  [H        Rd                  5        G[        USHT RV                  S9$ U[        GR"                  L a4  T RG                  [H        R                  5        G[%        UT RV                  S9$ U[^        GR&                  L a4  T RG                  [H        R                  5        G[)        UT RV                  S9$ [+        UG[$        GR*                  5      (       aQ  G[,        GR.                  " U5      (       a4  T RG                  [H        R                  5        G[-        UT RV                  S9$ G[1        U5      (       aw  UG[2        GR4                  G[2        GR6                  4;   aO  T RG                  [H        R                  5        G[+        G[9        G[2        T RV                  S9UGR:                  5      $ G[!        U5      (       a]  G[=        U5      u  nn-U-b  [U        T RV                  U-5      T l+        [        GR>                  " U5      GRI                  UT RV                  S9$ UG[@        GRB                  L a3  T RG                  [H        R                  5        G[E        T RV                  S9$ [[        UG[@        GRB                  5      (       a  G[F        GRH                  " U5      (       af  T RG                  [H        Rd                  5        G[G        UT RV                  S9nT Rj                  Rl                  R~                  R                  UU5        U$ [+        UG[$        GRJ                  G[L        GRN                  45      (       af  T RG                  [H        R                  5        G[Q        UT RV                  S9nT Rj                  Rl                  R~                  R                  UU5        U$ [+        UG[$        GR&                  5      (       a  [+        UGR(                  [,        R0                  R                  [,        GR                  GRR                  GRT                  45      (       a  [y        T Rj                  [U        T RV                  S*5      S9" UGR(                  5      n.U.(       a  [+        U.G[V        5      (       d   SI5       eT RG                  [H        R                  5        G[Y        UGRZ                  U.T RV                  S9$ [+        UG[$        GR\                  5      (       a  G[_        U5      $ [+        UG[$        GR`                  5      (       a  G[c        U5      $ G[e        [%        U5      [$        5      (       aB  G[e        UG[f        5      (       a+  T RG                  [H        R                  5        G[i        U5      $ G[e        [%        U5      [$        5      (       Ga  U[,        GR                  GRj                  GRl                  [,        R0                  GRn                  [,        R0                  GRp                  4;   a0  [        GR>                  " U5      GRI                  UT RV                  S9$ U[,        GR                  GRr                  L aA  T RG                  [H        R                  5        G[t        GRv                  " T Rj                  5      $ G[e        U[,        R.                  5      (       a`  U[,        R.                  LaM  UR>                  [,        R.                  R>                  L a&  G[y        U5      (       d  G[{        UT RV                  S9$ G[}        T RV                  5      (       d  T RG                  [H        R                  5        G[        UT RV                  S9$ G[        GR
                  " [%        U5      5      (       Ga  SSJK+GJAn/GJBn0  [,        GR                  GR                  GR                  U5      (       a  T Rj                  Rl                  GR                  GR                  G[        GR                  " S;S<T GR                  5      [%        U5      UT RV                  S9n1G[        T RV                  US=S S=U5      U1GRn                  GR                  S?'   G[        RP                  " U1UT RV                  S9$ G[        USK5      (       d  T GR                  U5      $ [N        GR                  " [y        T Rj                  U0" T RV                  5      5      " UGR                  5       GR                  5       5      5        [N        GR                  " [y        T Rj                  U/" T RV                  5      5      " UGR                  5       5      5        [,        GR                  GR                  GR                  T Rj                  Rl                  GR                  U5      n2T Rj                  Rl                  GR                  GR                  G[        GR                  " S;S<T GR                  5      [%        U5      U2T RV                  S9n1G[        T RV                  US=S S=U25      U1GRn                  GR                  S?'   G[        RP                  " U1U2T RV                  S9$ [+        U[\        [^        Rb                  45      (       Gam  [%        U5      GR                  [\        GR                  L GaD  T RG                  [H        Rd                  5        T RG                  [H        RJ                  5        T Rj                  Rl                  Rn                  Rq                  T RV                  5        U 4SL jm:[]        U:4SM j[s        [u        U5      5       5       5      n[}        U[+        U[^        Rb                  5      (       a  [^        Rb                  O[\        G[        5       T RV                  SN9n3S0U3GlP        G[        UU3T RV                  SO9nT Rj                  Rl                  R~                  R                  UU5      $ [+        UG[        5      (       Ga  T RG                  [H        Rd                  5        T RG                  [H        RJ                  5        G[        G[        GR                  U5      5       Vs/ s HF  n[N        RP                  " G[        GR                  UU5      [        T R                  5       U5      S9PMH     nnG[        UT RV                  G[        5       SP9n4G[        UU4T RV                  SQ9nT Rj                  Rl                  R~                  R                  UU5      $ [+        U[        5      (       Ga  T RG                  [H        Rd                  5        T RG                  [H        RJ                  5        G[        [        GR                  U5      5       Vs/ s HF  n[N        RP                  " [        GR                  UU5      G[        T R                  5       U5      S9PMH     nnG[        UT RV                  G[        5       SP9n5G[        UU5T RV                  SR9nT Rj                  Rl                  R~                  R                  UU5      $ [+        U[        [        45      (       GaO  T RG                  [H        Rd                  5        T RG                  [H        RJ                  5        [        [\        GR                  U5      5      nG[        [        GR                  U5      5       Vs/ s HE  n[N        RP                  " [        GR                  UU5      [        T R                  5       U5      S9PMG     nn[+        U[        5      (       a  [        O[        n6U6" UT RV                  G[        5       SP9n7G[        UU7T RV                  SS9nT Rj                  Rl                  R~                  R                  UU5      $ G[e        [%        U5      G[        5      (       ad  T RG                  [H        Rd                  5        G[        UT RV                  S9nT Rj                  Rl                  R~                  R                  UU5      $ G[        U5      (       az  T RG                  [H        Rd                  5        G[        RP                  " T Rj                  UT RV                  S9nT Rj                  Rl                  R~                  R                  UU5      $ [+        UG[        5      (       a  [g        ST U 5       5      (       a  U Vs/ s H#  n[        RQ                  T Rj                  U5      PM%     nn[        T R                  5       R                  [H        RJ                  5      T R                  5       R                  [H        GR                  5      5        G[        UT RV                  S9$ [        SUSVU Vs/ s H"  n[        R                  " U5      (       a  M   UPM$     sn 3SWSX/S9  g G[        GR                  " U5      (       Ga  SSYGKcGJdn8  UGR                  b&  UGR                  R$                  U8GR                  :X  a  T GR                  UGR                  5      $ UGR                  R$                  U8GR                  :X  a  G[        GR                  SZT RV                  GR                  5       G[        GR                  5        T GR                  UGR                  G[        GR                  G[        G[        S=S[9S\9S]9$ UGR                  R$                  U8GR                  :X  an  G[        GR                  SZT RV                  GR                  5       G[        GR                  5        T GR                  UGR                  G[        GR                  S^9$ G[        S_UGR                   35      eT GR                  U5      $ s  snf s  snnf s  snf ! G[         a     G$N=f = fs  snf s  snf s  snf s  snf s  snf )`Nr   )
has_triton has_triton_experimental_host_tma%has_triton_tensor_descriptor_host_tmar,   )DynamoConfigPatchProxy(ErrorOnGraphBreakDecoratorContextManager)	Autotuner)JITFunctionc                       \ rS rSrSrg)*VariableBuilder._wrap.<locals>.JITFunctioni  r   Nr   r   r   r   r  r        r   r  c                       \ rS rSrSrg)(VariableBuilder._wrap.<locals>.Autotuneri  r   Nr   r   r   r   r  r    r  r   r  c                      g r  r   r   r   r   create_1d_tma_descriptor7VariableBuilder._wrap.<locals>.create_1d_tma_descriptor      r   c                      g r  r   r   r   r   create_2d_tma_descriptor7VariableBuilder._wrap.<locals>.create_2d_tma_descriptor  r  r   c                   $    \ rS rSr\S 5       rSrg)/VariableBuilder._wrap.<locals>.TensorDescriptori  c                      g r  r   r   r   r   from_tensor;VariableBuilder._wrap.<locals>.TensorDescriptor.from_tensor  s    r   r   N)r   r   r   r   staticmethodr  r   r   r   r   TensorDescriptorr    s     r   r  )r  r  )r  r  )	tuple_clsr  c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr  r  r  s     r   rG  (VariableBuilder._wrap.<locals>.<genexpr>  s     QLq,77::Lr  c                    > T	R                  5       nT(       a  [        R                  " U5      nUnO![        X05      n[        R                  " X5      n[        X55      n[        R                  " X&5      nXG4$ r  )rf  r   r  rC   r   rE   )
ir  r  baser  r  r  r  r  r
  s
           r   r  .VariableBuilder._wrap.<locals>.build_key_value  sc    (*11!4C!"J!3D!<J-44QCC0B/66qG	~%r   c              3   @   >#    U  H  u  nu  p#T" XU5      v   M     g 7fr  r   rE  r  r  r  r  s       r   rG  r    (      !FIAv  a((!F   default_factory)r  r  )user_clsr  c              3   V   #    U  H  n[        U[        R                  5      v   M!     g 7fr  )r	  r   r  rE  xs     r   rG  r    s     >1:a..s   ')z$Attempted to wrap a set with tensorsz+Python set containing torch.Tensor elementszDynamo cannot trace sets of tensors. To get a stable ordering, Dynamo needs to convert the set into a list and the order might not be stable if the set contains tensors.z,Use a dictionary where the keys are tensors.r  c              3      #    U  Hd  n[        U5      [        R                  L =(       a    UR                  S :H  =(       d'    U[        R
                  R                  R                  ;   v   Mf     g7f)r   N)rc  r  BuiltinMethodTyper   r   r  _pytreeBUILTIN_TYPESr  s     r   rG  r  3  s\      	.
  aE333O8O 7 U[[((6667
 s   A,A.rQ  r  funcargskeywordsz,functools.partial() with non-literal keywordznon-literal keyword: z3functools.partial() expects literal/string keywordsdtypesaved_tensors)r  r  __self__r   r  apply)rF  c                    > [        [        R                  R                  R                  R
                  5      R                  T R                  T R                  R                  R                  R                  5       40 5      $ r  )r   r   _dynamoexternal_utilsFakeCompiledAutogradEngineexec_final_callbacksr7  r3  r4  rU  get_ca_final_callbacks_varr  s   r   r1  'VariableBuilder._wrap.<locals>.<lambda>  sZ    ,MM00KK``-GGWW^^00KKMOr   Tz9Attempted to wrap torch._higher_order_ops.invoke_subgraphzJDirectly using invoke_subgraph is not supported. Use nested_compile_regionstreamr7  r   )	stream_iddevice_indexdevice_typeenter_result)dynamic_dimz!Attempted to wrap unbacked SymIntz+Unbacked SymInt input is not supported yet.[^a-zA-Z0-9]+r@  F)r  r  grapharg is not a basic Symbol.r{   )rank)target_valuesr  __script_if_tracing_wrapper__original_fn__wrapped__)      r  z"Failed to produce a valid self obj)FlattenScriptObjectSourceScriptObjectQualifiedNameSource__obj_flatten__c                    > TR                  5       n[        X05      n[        R                  " X5      n[	        X45      n[        R                  " X&5      nXW4$ r  )rf  rC   r   r  rF   )	r  r  r  r  r  r  r  r  r
  s	           r   r  r    sK    (/8
)00?8J/66qG	~%r   c              3   @   >#    U  H  u  nu  p#T" XU5      v   M     g 7fr  r   r  s       r   rG  r    r  r  )r  mutation_typer  )r  r  )r  r1  )tuple_vtr  )list_vtr  )set_vtr  c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr  r  r  s     r   rG  r    s     A5a#..q115r  znon-const keys in dict_keysr  z.Dynamo expects dict_keys keys to be constants.zCEnsure your dict_keys keys are constants (e.g. int, float, strings))_DimHintTypez%s marked %s via IntWrapper	warn_only)
constraint)dynamismr  r:  zUndefined dynamism (n  torch.utils._tritonr  r  r  
decoratorsr  r  triton.runtime.autotunerr  triton.runtime.jitr  $triton.tools.experimental_descriptorr  r  triton.tools.tensor_descriptorr  rt  getrc  r  rD  r	  r   r  rw  	parameterUninitializedBufferUninitializedParameterr'   r-   nontraceable_tensor_subclasses__torch_dispatch__r(   r{  rj   rV  r6   SEQUENCE_LENGTHrp   r   r  getattrr@   r  r   ro   r  r~  defaultdictOrderedDictr  r  r  r3  r4  guard_on_key_orderr\  	enumeraterb   r   rK  r  r   rU  r  Modulewrap_moduler   r  r  	overridesTorchFunctionModer   r[  setanyr5   r.   SUPPORTABLEr}  rR   r   	frozensetSourcelessBuilderr  r   enumEnumDispatchKey_C
_functorchTransformTyper   r   is_reorderable_logging_functionBUILTIN_MATCHloggingLoggerr  r   rm   r\   rh   r]   	functoolspartialrf  r  r  r  rH   r  r  
USER_ERRORrE   r7   rj  DICT_KEYS_MATCHr   rl   r   r  genericr  asarrayr1   is_numpycallabler   is_numpy_dtyper   is_numpy_type_infoiinfor   r   can_rewriteautogradfunctionFunctionMetar   FunctionCtxr  RuntimeErrorr|  r   r   r  
MethodTyper  r   _ImperativeEnginer   r  r  r  _exec_final_callbacks_stubr   r   changesr   error_on_graph_breaklookup_callableis_callable_allowed!has_user_defined_allowed_in_graphcreate_with_sourcenumberwrap_unspecialized_primitiver   _higher_order_opsinvoke_subgraph
NAME_MATCHr   makecudaStreamContextr  r   Streamcreate_proxyr  r  r  rt   noder   device_SDPAParamsr   pyfunctorchFuncTorchInterpreterr   Eventr  store_user_object_weakrefget_user_object_from_idr   
contextlibnullcontextrB  getattr_staticr   r   is_matching_objectoptim	OptimizerrT   r   DispatchKeySetDISPATCH_KEY_SET_MATCHr   r   is_group_member_typer   is_process_groupr   is_device_meshEQUALS_MATCHr   is_placement_typer   is_placementrH  rI  r   r   r
   rD   has_hint	shape_env$create_unspecified_symint_and_symbolinthintr   DYNAMICSymBoolcreate_unbacked_symintroot_tracercreate_graph_inputr  subr  r   metaexprsympySymboltracked_fakesr$   r   r   r   r  r   ampautocast_modeautocastr   
fast_dtype_enabled_cache_enabledr   is_matching_clsr   ri   	tracebackclear_framesr   sysexc_infoversion_info	exceptionr   rg   wrapsr   
namedtupler   r
  r   is_supported_builtin_methodrf   floatfromhexhexr   r   ry   rX  randomRandomr   r   is_supported_random_obj
ModuleTyper0   DummyModuler   r  TreeSpecr   r   __func__GetSetDescriptorTyper   MethodWrapperTyper   
issubclassBaseExceptionr   r  BackwardHookrx  Buffer _unsafe_preserve_version_counterr   constructorr)   r   rK   r   r   r,  r-  _libraryfake_class_registrytracing_with_realr   wrap_user_definedrealize_all_typequalified_namer.  maybe_to_fake_obj	fake_mode__new__r~   should_reconstruct_allr   r  __len____getitem__r   r   rP   r   r   fromkeysr   r   r   re   r   r`   r   r   torch.export.dynamic_shapesr6  r:  STATICwrap_symintvallogdebugr#   r   AUTO);r
  rQ  r  r  r  r  r  r  r  r  r  r  type_dispatchid_dispatchr  r4  r  factory_sourcevarLr  r  r  func_srcfunc_objr  args_sourceargr  keywords_sourcer  	dt_sourceactual_saved_tensorsr  rl  saved_tensors_sourcestream_source
stream_varstream_proxyevent_proxyr  
new_symintsym_node_proxysym_exprtracing_symint	attr_nameself_objr,  r-  proxyfake_script_objr  r2  r3  
set_vt_clsr4  r6  r  r  s;   `                                                        @@r   rY  VariableBuilder._wrapp  sb$   	
 	
	

 <<:6  			 	
 ,-- 122G ++-11$u+>$ u-- '')--bi8"tU++ uell++U ""66""99	 U6#H#HH U..%,,2Q2QQ077''.. < <= .d5k:
 ;D	 $**E(%dkk48 ;   ($u+dkkF MED+"9"9;;R;RSTT 7 78QEJJLQQI " 1155dkkB&"  !*+>u+E!F F
 e[4455!+DKK9J!K,K$3DGG^$L--%  ;; +T%[ 77>>..<<UFKKuxx//##E**((//$$U++u@@AA+E$++FCGGNN''==eSIJE3>>>> BI>
 G*66  7 78 < <= UA
 &aL	 )DAq $**=dkk1M )	   !t{{;F77>>..DDUFSSE9%%# 	.
 	.
 	+
 	+
 DII5a&--dggq95EI 5 56$U4;;??DIIu00%((2E2E2S2ST
 
  5 56eDKK@@>>uEE  : :;$U4;;??w~~.. ; ;<(t{{CC '',DKK@@&&1EEy0011!$//"3V<H&tww9%**EHD$T__%6?K#EJJ/3#DGG];-JKCP 0
 H():JGO,,.1'22155$ N"7s ;$Y= 1 < <=	 .GG.B / !,,\-D-DE**<+G+GH&&|'C'CD
 ,HdHEEu 5 56!{{  ^
5"** = =**2::e+<==!!%((2I2E?? ++!,,
 !t{{;;''.. 5 56%eDKK@@++E22%**##L$;$;<&t{{G<	i22<3H3HIJ##L$9$9:(t{{CC.::5AA ; ;<4;;{{ 
 E5>>22??@@ ; ;<+{{  u~~66BBCC#' ',':':$ Mkk,,\-D-DEFF.66'1$++'O$(33L4P4PQ &&:;DAq!((' GG]3G%K < 6"77>>..DD/;;"0"?  ue..//z40%..2I2I2V2V  z2.'9$??  ; ;<"(NN:dkk*+U 	  uxx99:: 5 56)%DD}}++FFaab  ; ;<!  66,U]];;HH,U-G-GHHe__!<!<U!C!O..u55CG@..u5HHdkk I   RJubii0044U;;233//??? W l	  7 79P9PQ388t{{SSuzz7788 5 56&t{{H=M(-@NJ(//DDu||,, 5 5677>>66U!&$)$6$6#(#4#4		L l//7!{{	   4 466 7 78%,,TWWeT[[IIu//;;PPQQ 5 56/66u{{++ 5 56MM99%@''..55##;;E	K k..6 {{  5*0011&&undCK 7 78&dkk::&99%@@ 7 78.uT[[IF77>>..DDUFSSu{{4455 5 56)$++6DK$U4;;??u3344 C CD)%00#88??)%DD!22599 5 56'dkkBB..u55 9 9:%eDKK@@#55e<< 5 56)%DD++E22 9 9:${{ 
 uI++5	!>> ; ;<$U4;;??%   eU\\22 %dkk2 
 zz""$$GGNN,,QQEJJOO,$.$6$6 R   eU]]33!%!9!9!P!P!RJ % C "$Q> 1 = =>	 "WW^^77JJ'dii8Z 	 K N 4<#-4N$$Z0 "++Hh55 *345 GGNN((//JPT0UV )==
:QR?  #>>BBY788 5 56'{{	  .:BB.:BB222466uyy66??@@ 5 56'LL$$NN((	 {{  *99%@@ ; ;</dkkJJ##E+H%PP 7 78.t{{  +511 7 78.umDKKXXi,,,$DKK88cll"'ES]],B&uT[[AA#E**w/E/E(%0
 0
  7 78.,T[[  ioo% 5 56)%DDk,,, 5 560t{{KK5**
 
#??FF 5 56(t{{CCEemmUYY-G$G 5 56"dkk:  $E**?FE9 $(i@%%e,??dkk @   fmm# 5 56&dkk::E6==))n.T.T/
 /
  7 78#E$++>FGGNN''55eVDM  0 0-2K2KLMM ; ;<){{F GGNN''==eVLMu//00ZNNUXX__ekk.A.A.J.JK6
 6
 '
4;;
 CnnH 
8_ E E 4E  ; ;<%{{ 
 u99:: ,E22u6677
 )//UT**z%/O/O 5 564U;;UT**!!..""  #))%0CC$++ D   GGG##L$?$?@5AA$''JJ 5%,,//- ,,0O0OO
 ;5AA-eDKKHH)$++66 ##L$9$9:+{{  '66tE{CC 
 ~~11CCEJJ22EEFF+S$))<K;;	 F  /7KKtUE/


+ 177;;  5"344--e44  ++)H)UVKKM002  ++)B4;;)OP))+ $nn@@RR((%O GGNN..AA'dii8U{{	 B E +3UE4+EJJOOJ' -33{{  ut[%<%<=>>U##t||3  7 78 < <= GGNN--11$++>&  !*+>u+E!F F
 ( "%)@)@AA  ++35{{	G .2G*,UGDKKXF77>>..DDUFSSu%% 7 78 < <= u}}U34
 5A	 $**%%eQ/():A> 5   %t{{:O:QH .F 77>>..DDUFSSt$$ 7 78 < <= t||E23
 4A	 $**$$UA.,T__->B 4   #t{{:O:QG -UGDKKXF77>>..DDUFSSY/00 7 78 < <=T]]5)*A t||A/
 0A	 $**$$Q*:4??;LaP 0   )35#(>(>DUJt{{:O:QF ,E&UF77>>..DDUFSSU^44 7 78+E$++FF77>>..DDUFSS '' 7 78,33DGGU4;;WF77>>..DDUFSSy))A5AAA HMMu!*11$''1=uMOO%001M1MNOO%001J1JK *%DD 9.5/g5aHXHcHcdeHf5/g.hi P]	  22599@~~%)<)<@S@S)S''		22$$(<(<<		1KK$$&&&
 ''II'//1#:U#K (   $$(9(99		1KK$$&&&
 ''		J<N<N'OO"%88H#IJJ))%00a\, JD   z*"8 N 0hs_   <CE
6CE7*CE&CE" h
ACE4l4ACE9rACE>z*CF}CF}%CFE"CE1E0CE1c                    U R                  [        R                  5        [        XR                  S9n[
        R                  " [        U5      5      (       d  U$ U R                  R                  R                  R                  X5      $ r  )rV  r6   r  r   r  r>   "cls_supports_mutation_side_effectsrc  r3  r4  rU  r[  )r
  rQ  r  s      r   r  !VariableBuilder.wrap_user_defined/  s]    L334*5E==d5kJJMww~~**@@OOr   c                    U H  nX!L d  M	  [        SSSS/S9  M     [        R                  (       aO  [        U5      [        R
                  L a3  U R                  [        R                  5        [        R                  " US9$ U R                  [        R                  5        [        U[        5      (       a  [        S U 5       5      (       a|  U R                  R!                  5       R#                  5       (       aO  U R                  [        R                  5        [%        U Vs/ s H  n[        R                  " U5      PM     sn5      $ ['        U5       VVs/ s H2  u  p2[(        R                  " U[+        U R-                  5       U5      S9PM4     nnnU R.                  R0                  R2                  R5                  S	5      n[7        U R                  [8        5      (       Ga  U R                  R:                  [=        U5      ;   Ga  U R                  n[7        U[>        5      (       d   eU R.                  R0                  R@                  RC                  [D        RF                  " S
SU RH                  5      [        U5      UUS9nSURJ                  RL                  S'   [O        [P        U R.                  UUS US9n/ n	['        URR                  5       H  u  p:[+        XcSS9nXR.                  R0                  RT                  U'   [W        X   5      U
RX                  RJ                  RL                  S'   [Z        R\                  " [        R^                  [a        X   5      S9nU	Rc                  URe                  U5      5        M     [g        U	SS06  [i        UUSS SS9nXRJ                  RL                  S'   U H  nURk                  5         M     [l        Rn                  " U5      " X@R                  S9n[        U[>        [p        Rr                  45      (       a/  U R.                  R0                  Rt                  Rw                  X5      $ U$ s  snf s  snnf )Nz-list elements are pointing to the list itselfr  z=Dynamo does not support lists whose items reference to itselfz!Avoid using self referential listr  rQ  c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr  r  )rE  items     r   rG  0VariableBuilder.wrap_listlike.<locals>.<genexpr>N  s     H%$$//55%r  r  r
  r"  r@  T	steal_arg)
target_clsr3  r  example_valuesubclass_typer  Fr  indexindex_is_slicetensor_dictri  r{   )r  r  r  r#  )<r5   r-   specialize_intrc  r   r  rV  r6   CONSTANT_MATCHr   r  rH  ro   r|  r  r  guard_sourceis_unspecialized_nn_moduler   rM  r   rH   rf  r3  r4  local_scoperB  r	  rQ   
local_namerc   r}  r  r  r  r  r  r  r  wrap_fx_proxy_clsr   r  input_source_to_varr[   r  ra  rb  TENSOR_MATCHr+   r  rj  r7   r   realizer   cls_for_instancer~  r  rU  r  )r
  rQ  r  r  r4  maybe_gmr  tensor_list_proxylist_variablerl  tensor_variablesource_irm  r#  rR  r  s                   r   r  VariableBuilder.wrap_listlike7  s   D} K _>?	    T%[EJJ%> ; ;<#**77 	L889 5%  H%HHH((*EEGG ; ;< E!RED"2"9"9$"?E!RSS %U+

 ,	  &&$T__%6: , 	 
 77>>--11&9KK
 
kk$$(;H(EE [[FeT**** $ : : M M'dii8U	 !N ! 8<""''4-)77'#"M F&/0C0C&D"(feT?N228<AUHB%%**//> ")) --]585L h11%89 'E 6**#( H 7?""''
3( 

  "2259&U%$ 1 123377>>..<<UKKw "S
s   ! Q9Qc           
         U R                  [        R                  5        [        [	        U5      5       Vs/ s H@  n[        U R                  [        U R                  5       U5      5      " [        X5      5      PMB     nn[        X0R                  S9nU R                  R                  R                  R                  X5      $ s  snf r  )rV  r6   TUPLE_ITERATOR_LENr  rx   rK  r3  rX   rf  rw   r   r  r4  rU  r  )r
  rQ  r  r4  r  s        r   r  #VariableBuilder.wrap_tuple_iterator  s    L;;<
 -e45	
 6 DGG%?@QST%UV&u0 6	 	 
 'vkkBww~~**88GG
s   ACc                 B   U R                  [        R                  5        [        R                  " U5       Vs/ s H  n[
        R                  " U5      PM     nn[        X0R                  S9nU R                  R                  R                  R                  X5      $ s  snf r  )rV  r6   RANGE_ITERATOR_MATCHcopydeepcopyr   r  r   r  r3  r4  rU  r  )r
  rQ  r  r  r  s        r   r  #VariableBuilder.wrap_range_iterator  sv    L==> 6:]]55IJ5I!((+5IJ%eKK@ww~~**88GG Ks    Bc           
      Z   S Vs/ s H@  n[        U R                  [        U R                  5       U5      5      " [	        X5      5      PMB     nnU R                  [        R                  5        [        U[        5      (       a  [        X0R                  S9$ [        X0R                  S9$ s  snf )N)startstopstepr  )rK  r3  r@   rf  rI  rV  r6   r  r	  r  r   r  r   )r
  rQ  r  r  s       r   r   VariableBuilder.wrap_slice_range  s    
 /	
 / DGGZ0A1%EF! /	 	 
 	L334eU## {{;; {{;;
s   AB(rm  c                 z   SSK Jn  [        R                  SU R                  R                  5       [        U5      5        U" XS9  XR                  R                  R                  ;   aT  U R                  R                  R                  U   nUR                  UR                  R                  R                  S   S'   g g )Nr,   )mark_static_addressz Marking static input %s, id: %s)rm  r  _dynamo_static_input_type)r=  r,  static_inputs_logr  r  r  rD  r3  r4  rU  r.  r  r  r  )r
  rQ  rm  r,  r  s        r   mark_static_input!VariableBuilder.mark_static_input  s    4.0@0@0BBuI	
 	E/ GGNN///''..--e4C// IINN./JK 0r   c                    SSK Jn  [        UR                  5      S:X  a4  [	        S[        U5      S[        U5       S3/ [        R                  QSPS9  [        X5      (       a  [        R                  " UR                  S	S
5      (       a:  [        R                  " UR                  SS 5      n[        U R                  SU S3S9$ U R                  [        R                   5        [#        U R                  S5      U l        U R%                  UR&                  5      $ [)        U[*        R,                  R.                  [*        R,                  R0                  [*        R,                  R2                  45      (       a:  [4        R6                  (       d%  [	        S[9        U5      S/ [        R:                  QS9  [=        USS
5      (       a  [=        USS
5      (       d  [	        SSS/ S9  U R                  [        R                   5        [?        XRA                  5       S9n[B        RD                  " [G        U5      5      (       d  U$ U RH                  RJ                  RL                  RO                  X5      $ [P        RR                  " XRH                  RT                  5      (       Ga  [)        U[*        RV                  RX                  RZ                  R\                  5      (       a*  UR_                  5       n[a        U R                  5      U l        [*        Rb                  R4                  Rd                  (       a  [g        5       n[i        URj                  5      (       aF  URj                  Rl                  [n        L a)   URk                  5        H  u  pgU Rq                  XuS9  M     [i        URz                  5      (       aF  URz                  Rl                  [|        L a)   UR{                  5        H  u  piU Rq                  XS9  M     U(       a,  XRH                  RJ                  R~                  U R                  '   UR                  R                  S5      (       a   UR                  R                  S5      (       a  [=        UR                  SS
5      (       a  U R                  n
[4        Rd                  (       aO  U RH                  RJ                  RT                  (       a  [4        R                  (       a  [        U R                  5      n
[        XS9n[        U
R                  [        R                   5      5        OU R                  n
[4        Rd                  (       aO  U RH                  RJ                  RT                  (       a  [4        R                  (       a  [        U R                  5      n
[        XS9n[        U
R                  [        R                   5      5        [B        RD                  " [G        U5      5      (       d  U$ U RH                  RJ                  RL                  RO                  X5      $ [        UR                  [*        R,                  R                  R                  R                  5      (       a6  U R                  [        R                   5        [        XRA                  5       S9$ U RH                  RJ                  R                  UU R                  U RA                  5       S9$ ! [r         a<  n[u        [G        U5      U RH                  [w        URx                  5      S9   S nAGNS nAff = f! [r         a<  n[u        [G        U5      U RH                  [w        URx                  5      S9   S nAGNkS nAff = f)Nr,   )OptimizedModuler   zUninitialized nn.Modulez6Attempted to trace an uninitialized nn.Module of type .z?Ensure your nn.Module instance has called `super().__init__()`.r  _torchdynamo_disableF_torchdynamo_disable_msgzHOptimized `nn.Module` is wrapped with `torch.compiler.disable` (reason: ))r  msg	_orig_modz#Attempted to wrap RNN, GRU, or LSTMz*Dynamo does not support RNN, GRU, or LSTM._is_fsdp_managed_module_fsdp_use_orig_paramszFSDP with use_orig_params=Falser  z3Dynamo only supports FSDP with use_orig_params=Truer  r-  )r  )ztorch.nn.modulesz	torch.ao.ztorch.nn.modules.container_dynamo_marked_static)P
eval_framer3  len__dict__r5   r}   r.   rc  ro   rB  r  forwardr   r  rV  r6   r  r@   rO  r9  r	  r   rw  RNNGRULSTMr-   	allow_rnnstrrT  rI  r   rf  r>   r  rc  r3  r4  rU  r[  r/   is_dynamic_nn_moduleexportfxexperimentalproxy_tensor
_AttrProxyget_baser?   r  inline_inbuilt_nn_modulesrk   rh  named_parametersr  !og_module_named_parameters_fn_ptrr0  	TypeErrorr4   r}  r  named_buffersog_module_named_buffers_fn_ptr
nn_modulesr  r   rA  r,  install_free_tensorsrY   r   r7   rj  rZ   r   r  paralleldistributedDistributedDataParallelregister_attr_or_module)r
  rQ  r3  r8  r  freezingr@  peb
new_sources              r   rO  VariableBuilder.wrap_module  s]   0u~~!#1TU\]bUcTddef&11U	 %))%%emm5KUSS
 ,,MM#=t /;;bcfbgghi 
  7 78$T[[+>DK##EOO44 uuxx||UXX\\588==IJJ$$=E
H6)556	 53U;; 5"95AA = U	"  7 780?PQFAA$u+NN77>>..DDUSS00GG
 %!6!6!C!C!N!NOO(-dkk:}}##==02 U3344..7789V$)$:$:$<DA 2212E %= U0011++448VVV$)$7$7$9DA 2212E %:
  <AGGNN--dii8   ++,MNN((334PQQ*A5II![[
33--1L1L "DDKK!PJ=eWj33L4K4KLM![[
33--1L1L "=T[[!IJ6uPj33L4K4KLMAA$u+NN77>>..DDUSSOOUXX..::RR
 
  7 780?PQQ77>>99		( :  g % V0a$''QVVUUV % V0a$''QVVUUVs0   -([ (\ 
\ 1\\
]%)1]  ]%c                 *   [        U5      [        L Ga@  [        U R                  R	                  5       5      (       aL  [
        R                  SU R                  R	                  5       5        U R                  U[        R                  S9$ [        U R                  R	                  5       5      (       aL  [
        R                  SU R                  R	                  5       5        U R                  U[        R                  S9$ [        R                  (       Gd1  [        XR                  5      (       Ga  S nU R                  R                  5       R!                  5       (       d-  U R                  R                  5       R#                  5       (       a  Sn[%        U R&                  U R                  R	                  5       [(        R*                  " U5      U R                  R                  5       R#                  5       S9  U R-                  [.        R0                  " [2        R4                  US95        [6        R8                  " XR                  S9$ U R                  U5      $ [        R:                  (       d#  [        U5      [<        L a  U R?                  U5      $ U R-                  [2        R@                  5        [6        R8                  " XR                  S9n[C        U[D        [F        45      (       a/  U R&                  RH                  RJ                  RM                  X5      $ U$ )N&%s marked dynamic via source whitelistr;  '%s marked unbacked via source whitelista  torch.compile considers integer attributes of the nn.Module to be static. If you are observing recompilation, you might want to make this integer dynamic using torch._dynamo.config.allow_unspec_int_on_nn_module = True, or convert this integer into a tensor.r  )recompile_hintr  )'rc  r  is_dynamic_sourcer  r  r  r  r  r   r  is_unbacked_sourceSIZE_LIKE_UNBACKEDr-   r  r   r  "is_unspecialized_builtin_nn_moduler  r=   r3  r;   make_scalarrV  ra  rb  r6   r  r   r  specialize_floatr  wrap_symfloatr  r	  r}  rR  r4  rU  r  )r
  rQ  rc  r  s       r   r  VariableBuilder.wrap_literalz  s-   ;# !1!1!344		BDKKDTDTDVW''
8J8J'KK!$++"2"2"455		CT[[EUEUEWX''
8U8U'VV((( .e[[AA%)N002UUWW;;335PPRR5 ' .((*+77>37;;3K3K3M3h3h3j	 ''!))(55n
 ,22{{SS##E**((T%[E-A%%e,, ; ;<%,,5MF%$--ww~~22@@OOMr   c                     [        U5      (       a/  [        U5      U R                  R                  L a  [	        SS5      eg g )Nz*Cannot wrap a Tensor that has already beenz"wrapped by this instance of Dynamo)r   r   r3  r  r3   r  s     r    assert_not_wrapped_by_this_graph0VariableBuilder.assert_not_wrapped_by_this_graph  s=    5>>1%8DGG<M<MM*<4  N>r   c           	      P   U R                  5       nXR                  R                  R                  ;  d   e[	        U5      S Ln[
        R                  (       at  U(       dm  [        U[        R                  R                  5      (       d*  U(       a=  UR                  5       R                  5       (       a  U R                  U[        5       S9  Sn[
        R                  =(       a/    [!        U5      =(       d    [#        U5      =(       d    [%        U5      nU=(       aQ    [
        R                  (       + =(       d5    [        5       =(       d$    [        R&                  R
                  R(                  nU(       dM  UR                  5       R+                  5       (       d  U(       ab  UR                  5       R-                  5       (       d?  U R/                  U5        U R                  R                  R1                  XR2                  US9$ [	        U5      S:X  a^  U R5                  [6        R8                  5        U R/                  U5        U R                  R                  R1                  XR2                  US9$ [;        U5      (       aV  U R/                  U5        U R                  R                  R1                  U[<        R>                  " SSU R2                  5      US9$ X R                  R                  R@                  ;   nU(       a#  U R                  R                  R@                  U   $ 0 n[C        U5      nUb  U R5                  [6        RD                  5        [	        U5      S:X  a  U R5                  [6        R8                  5        U R/                  U5        [        U[        RF                  5      (       aZ  URH                  (       aI  [        U[        RJ                  RL                  RN                  RP                  5      (       d  [S        SSS	/ S
9  [        U[        RF                  5      (       a\  [U        U5      (       aL  U R                  RV                  (       a  [
        RX                  (       d  [S        SSS/ [Z        R\                  QS
9  [_        U5      (       an  [a        U5      bb  URb                  [a        U5      Rb                  :w  a?  [S        SSURb                   S[a        U5      Rb                   3S/ [Z        R\                  QS
9  [e        XR                  SUS9n	U R                  R                  Rf                  Ri                  [<        R>                  " SSU R2                  5      [k        U5      U	US9n
[m        U R                  X5        [o        SU R                  U
U	UUS.UD6nURq                  5       (       a*  [e        URr                  U R                  [u        US5      SS9  [6        Rv                  n[        U[x        5      (       a   [{        U5      (       a  [6        R|                  nU R5                  [~        R                  " U[        U[        5      (       a  UO
[        U5      S95        [        U5      (       a  U R5                  [6        R                  5        U R5                  [6        RD                  5        [        [        U5      R                  [6        R                  5      5        UR                  5       u  pU HT  n[        X5      n[u        U R                  U5      n[        R                  " [        U R                  U5      " U5      5        MV     XR                  R                  R@                  U'   SU
R                  R                  ;  d   e[        U5      U
R                  R                  S'   UR                  R                  R                  S   n[        U5      U R                  R                  La  [        S5      e[        X!SU5      nUU
R                  R                  S'   U$ )Nr-  Tr  guardedr"  r@  z&Attempted to wrap strided NestedTensorr  3torch.compile does not support strided NestedTensorr  zAttempted to wrap sparse Tensorz-torch.compile does not support sparse Tensorsz.dtype mismatch between tensor and its gradientztensor dtype: z; grad dtype: zmInconsistent dtype between tensor and its gradient. This can happen in FSDP and crashes meta tensor creation.r3  r  r  )r3  r  r  r  r  _base)r3  r  r  r  r  r  z(Wrapped Tensor must be this graph's fakeFr#  r   )Wrf  r3  r4  rU  rd   r-   rM  r	  r   rw  rx  r  r  r0  rk   rT  rL   rM   rO   r  prepare_freezingis_specialized_nn_moduleis_fsdp_modulerm  rX  r  rV  r6   r  rJ   r  r  r  infer_subclass_typer  r  	is_nestednestedr   nested_tensorNestedTensorr5   r   rG  capture_sparse_computer.   rT  r   r   r  wrap_to_fake_tensor_and_recordr  r  rc  cache_real_value_when_exportwrap_fx_proxy_is_viewrs  r@   r  rI   rN   NOT_NONE_MATCHra  rb  rS   r+   r(   TENSOR_SUBCLASS_METADATA_MATCHr7   rW   rj  r  __tensor_flatten__rI  r  r   r  rK  r  r  r[   r  r   r  r3   r   )r
  rQ  r  is_static_inputshould_install_free_tensormake_graph_attributeis_duplicate_tensoroptionsr  r  tensor_proxyr  
guard_typeattrsr@  attrinner_valueinner_sourcefake_tensor_valuer#  s                       r   r{  VariableBuilder.wrap_tensor  st   " GGNN777771%8D ,,#5%(("4"455 v224OOQQ ""50E0G"H"O &,%@%@ &
!&) >&v.>5f= 	#  /  
000 5$&5}}##44 	 &  ";;==AU'')88::11%877>>99yy :   #5)Y6  5 5611%877>>99yy :   f%%11%877>>99'dii8 :   %(J(JJ77>>55f==+E2$ 7 78"5)Y6 5 56 	--e4 uell++uell&<&<&J&J&W&WXX@Q	 uell++e$$WW^^6+H+H
 9K6)556	 %  % ,y/555H(^IeDTDZDZC[\L6)556" 7ggf
 ww~~11DDFF#S$))4K	 E 
 	%TWWlB' 
ww''
 
 >> +77!&'2	 "..
fj)).Fv.N.N%44J "&*;<< &u-		
 )// K KL 7 78&v.99,:S:ST //1HE%e2)$++t<#//#DGG\:;G  6E**62L$5$5$:$::::0DU0K}- ,1166;;OL019J9JJ*+UVVF52CD-5z*r   c           
      (   [         c   e[        U[         R                  5      (       d   e[        U R	                  5       5      nSSKJn  UR                  R                  (       + nU(       a   SUR                  l        [        R                  " 5           UR                  U5      nU(       a  SSKJn  U" U5      nS S S 5        [(        R*                  " [-        U R.                  U5      " W5      5        [1        UU R.                  SUS	9nU R.                  R2                  R4                  R7                  [8        R:                  " S
SU R<                  5      [?        U5      UUS9n	[A        U R.                  X5        SU0n
[C        S[D        U R.                  U	US.U
D6nXR.                  R2                  RF                  U'   URH                  RJ                  RL                  S   n[O        UUSUSUS9nXRJ                  RL                  S'   U RP                  Ul(        U$ ! [         a/    [        UR                  [         R                  5      (       d   e GNf = f! ["         a!  n[%        S['        U5      S/ US9   S nAGNS nAff = f! , (       d  f       GN= f)Nr   )_utilT)clone_preserve_stridesz)failed to convert numpy.ndarray to TensorzHException encountered when attempting to convert numpy.ndarray to Tensor)r  r  r  r  from_excFrr  r"  r@  r  r  r  r3  r  r  r  r  r  r  r  r#  r   ))r  r	  r  rS   rf  torch._numpyr  flags	writeable
ValueErrorr  nditerr   temp_restore_stack_try_convert_to_tensortorch._prims_commonr  rk  r5   rE  r   r  rK  r3  r}  r4  r  r  r  r  r  rc  r~  r  r   r  r  r  r  r   r  )r
  rQ  r  r  readonlytensor_valuer  r[  r  r  r  numpy_ndarray_variabler#  s                r   r  "VariableBuilder.wrap_numpy_ndarray  s@   ~~%,,,,"4??#45&{{,,,9(,% 1CCE$;;EBJ#9,#GL F* 	''(H(VW6ww	
 **==FF#S$))4	 > 
 	%TWWeBV$!2 "
+ww'	"

 "
 6L**62.4499>>O #%+
 '/


# )-%%%I  9 "%**bii88889 '  GJ j  FEsB   -H J&I5II
I?I:4J:I??J
Jr:  r  c           	         [        U5      [        L d   eU R                  U R                  R                  R
                  ;   a-  U R                  R                  R
                  U R                     $ U R                  R                  R                  n[        R                  " 5       R                  (       a`  UR                  5       n[        U5        U R                  R                  R                  R                  [        XPR                  S 5      5        GO[!        U R#                  5       5      (       Gd  Ucf  [$        R&                  R(                  R*                  (       a=  U R-                  [.        R0                  5        [2        R4                  " XR                  S9$ U R                  R                  5       n[7        U R                  U[8        R:                  " U5      U R                  R=                  5       R?                  5       S9n[A        U R                  R                  5       5      nU R                  n	[C        U	[D        5      (       a  U	RG                  5       n	Ub  Un
GO[(        RH                  (       a*  URJ                  [L        L a  [O        SS5        [Q        5       n
O[C        U	[R        5      (       a<  U	RT                  b/  [W        U	RT                  5      R                  USS05      S   (       d  [(        RX                  (       d  [Z        R\                  n
ORURJ                  [L        L a  [O        SS5        U R-                  [.        R0                  5        [2        R4                  " US9$ UR_                  UU R                  U
S9nU R                  R                  R                  R                  [        XPR                  U5      5        O][!        U R#                  5       5      (       d   eU R-                  [.        R0                  5        [2        R4                  " XR                  S9$ [C        U R#                  5       [`        5      (       a   e[c        U R#                  5       Re                  [.        Rf                  5      5        S	U R#                  5       0nU R                  R                  Rh                  Rk                  [l        Rn                  " S
SU R                  5      [        U5      UU R#                  5       S9nURp                  Rr                  n[C        U[t        Rv                  5      (       d
   U S35       eXR                  R                  Rh                  Rx                  U'   [{        X40 UD6nXR                  R                  R
                  U R                  '   [!        U R#                  5       5      (       d3  [}        U R#                  5       USS SUS9URp                  R~                  S'   U$ )Nr  rb  dynamo.automatic_dynamic_shapesTr   Fr  )r  r!  r  r"  r@  r  r$  r  r#  )@rc  r  r  r3  r4  unspec_variable_mapr  r   rB  #force_unspec_int_unbacked_size_liker  r   r  r  r$   r  rJ   rf  r   r  r-   r  rV  r6   r  r   r  r=   r;   rh  r  r  r   r	  rB   rL  automatic_dynamic_shapesscalarr9   r   $get_automatic_dynamic_shapes_mark_asrQ   r:  r  assume_static_by_defaultr   r  r  rU   r7   rj  r  r  r  r  r  r  r  r  r  bound_symbolsr   r   r  )r
  rQ  r:  r  r  wrapped_valuer  frame_state_entrynormalized_source_namebase_sourcer!  r  r  r  
unspec_vars                  r   r  VariableBuilder.wrap_symint  sR    E{c!!!99:::77>>55dii@@GGNN,,	CC%<<>M%m4GGNN((//M;;= $DOO$566EMM$8$8$G$G
 ##L$?$?@'..U;;OO;;##%D 9#//6+/;;+C+C+E+`+`+b	! &;4;;;K;K;M%N"++K+}55)224#&//%,,< A4HBD;44((4--.223IAu:V 44(00 %++|;#$EuM##L$?$?@'..U;;%JJ{{' K M GGNN((//M;;@ &doo&78888 ; ;<#**{{KKdoo/1BCCCCdoo'22<3J3JKLT__./**==FF#S$))4??$	 > 
 !%%**(ELL11WhZ?V3WW1=B""00:$UEWE
8B**4995!$//"344*2!#( #0+EJJOOJ' r   c           
         U R                   U R                  R                  R                  ;   a-  U R                  R                  R                  U R                      $ [	        U R                  U R
                  R                  5       [        R                  " U5      U R
                  R                  5       R                  5       S9n[        R                  R                  R                  (       d  [        U R                  5       5      (       d  [         R"                  " U5      (       d  [         R$                  " U5      (       dl  [        R&                  R                  R(                  R*                  (       d9  [-        SS5      (       d(  [        R.                  (       aP  UR0                  [2        La=  U R5                  [6        R8                  5        [:        R<                  " XR
                  S9$ [        R>                  " U[        R@                  S9n[        RB                  RD                  RG                  U5      (       a=  U R5                  [6        R8                  5        [:        R<                  " XR
                  S9$ [I        U R                  5       [J        5      (       a   e[M        U R                  5       RO                  [6        RP                  5      5        [S        U R                  5       5      nXAS.n[U        X0R                  SUS9nU R                  R                  RV                  RY                  [Z        R\                  " SS	U R                   5      [_        U5      UUS
9n[a        U R                  Xs5        [c        [d        4U R                  UUS.UD6n[I        U[d        5      (       d   eXR                  R                  R                  U R                   '   U R                  Rf                  (       aB  [I        U R                  5       [h        5      (       d  [k        SU SU R                  5        35      eS n	URl                  Rn                  Rp                  S   n[s        U5      (       d   eUn	U	Rt                  U R                  Rt                  L d   SU	Rt                   S35       e[w        U R                  5       USU	SUS9URn                  Rp                  S'   [y        U R                  U R                  R                  Rz                  " SS/[}        U/0 5      Q76 5      n
U R                  R                  R~                  R                  [        U
R                  U R
                  S 5      5        [        5       R                  SSSS9  U
$ )Nrb  z.pytorch/compiler:unspecialize_float_killswitchFr  )r  )r  	raw_valuerr  r"  r@  r  r3  r  r  =Dynamo attempts to add additional input during export: value=	, source=r  fake mode (^) from fake tensor metadata doesn't match mode({self.tx.fake_mode}) from InstructionTranslatorTr  r#  call_methodr  tensorify_float_attempt)	overwrite)Er  r3  r4  r  r=   r  r;   rh  r  r  r   r  r-   ri  rJ   rf  mathisnanisinf	_inductortriton
cudagraphsr   r  r  r9   rV  r6   r  r   r  tensorfloat64rZ  r[  is_gradtrackingtensorr	  rU   r7   rj  r  rG   r}  r  r  r  r  rc  r~  r  r   rG  rQ   AssertionErrorr  r  r  r   r  r   r  r  rr   r  r  r$   sym_numr   rR  )r
  rQ  r  r  r  r  r  r  r  r  r  s              r   rj  VariableBuilder.wrap_symfloat\	  s4    99:::77>>55dii@@5GGKK++E2'+{{'?'?'A'\'\'^	
 MM  11!$//"344zz%  zz%   %%,,77OQVWW//%,,L@  ; ;<#**{{KK U%--@
 8844]CC ; ;<#**{{KK doo/1BCCCCdoo'22<3J3JKL #4??#45#8 7ggv
 **==FF#S$))4	 > 
 	%TWWeC&'
ww'	

 

 *&ABBBB8B**499577>>*T__->"L"L OP]^ghlhwhwhygz{  !"((--22?C}%%%%) **dgg.?.?? 	
+556 7? ?	
?  '/OO#),'



# GGGGNN'' #J<4
 	$$++K		4;;PT,UV!!";TT!Rr   c           	      <   U R                   U R                  R                  R                  ;   a-  U R                  R                  R                  U R                      $ [        R
                  " U5      n[        U R                  5       [        5      (       d6  [        U R                  5       R                  [        R                  5      5        SU R                  5       0nUR                  SU05        [        X R                  SU R                  5       S9nU R                  R                  R                  R!                  ["        R$                  " SSU R                   5      ['        U5      UU R                  5       S9n[)        U R                  XR5        [+        [,        4U R                  UUS.UD6nX`R                  R                  R                  U R                   '   [/        U R                  5       5      (       Gd#  U R                  R0                  (       aB  [        U R                  5       [2        5      (       d  [5        S	U S
U R                  5        35      eS n[        U[6        5      (       a  UR8                  nO#UR:                  R<                  R>                  S   n[A        U5      (       d   eUnURB                  U R                  RB                  L d   SURB                   S35       e[E        U R                  5       USUSUS9UR<                  R>                  S'   U$ )Nr  r  Frr  r"  r@  r  r  r  r  r  r  r  Tr  r#  )#r  r3  r4  r  r   r  r	  rf  rU   r7   rj  r6   r  updater}  r  r  r  r  rc  r~  r  r   rJ   rG  rQ   r  r   rQ  r  r  r  r   r  r   )r
  rQ  r  r  r  r  r  r  s           r   r|  ,VariableBuilder.wrap_unspecialized_primitive	  s   99:::77>>55dii@@U+$//+->??$//+66|7N7NOPT__./U+,6ggt?P
 **==FF#S$))4??$	 > 
 	%TWWeC&'
ww'	

 

 9C**4995!$//"344ww~~j1BK&P&P$STaSbbklpl{l{l}k~  !%*&677 * 0 0 * 0 0 5 5 : :? K=)))) -$..$''2C2CC /99: ;C CC
 +3!#'-#0+EJJOOJ' r   )r  r  r3  NN)Ar   r   r   r   __doc__rV   r+  r`  rZ  rf  rV  classmethodrt  ra  cacherq  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r  rY  r  r	   r|  r}  rq   r   r  rv   r  rs   r  r  r  r  r   r  r$  r0  rw  rN  rO  r  rm  r{  r  r   r   r#   r  rj  r|  r   r=  r>  s   @r   rK  rK    s   =" " 
	"#J
 ; ; __$  $L+

 +
I'"7"7 I

HB __	c8.4oEFF	G  4}1~Ps Pv5lJ)N#O vp	H 	HH H<eE5L&9 <u|| D  Y Yv5nell Y YvP&j *.37	u :&u /0	unJX9 9r   rK  c           	         [        U [        5      (       a  U R                  nO[        SSU  S[	        U 5       3SU  S3/ S9  / n[
        R                  " W5       HY  nS nU R                  (       a+  [        U R                  S5      n[        XSR                  5      nUR                  [        X4S95        M[     [        U5      $ )	Nzdataclass fields failurezobj: z; variable type: z$Dataclass fields handling fails for z*. Expected it to be a user-defined object.r  __dataclass_fields__r  )r	  r   rQ  r5   rc  r  r  r  r@   rE   r  r  r   )objrQ  r  fieldr  base_srcs         r   r  r  $
  s    #011		.C5 1$s)=>seCmn		
 E##E*::!#**.DEH&x<F.uDE + r   c                     [        U [        R                  5      (       aZ  [        U [        5      (       dE  [        R                  " U 5      (       a  [        U 5      UL d  U R                  (       d  [        U 5      n U $ r  )r	  r   r  r   _is_functional_tensorr   rx  r^   )rQ  r  s     r   _clone_inputr  8
  sZ    %&& uj)) ++E22'.);  &ELr   r<  c                     U UUUS.UEnUc  [        SS[        0UD6$ [        SS[        0UD6nUR                  U 5        U$ )N)r3  r  r  r  r  r   )r  r   r   install_global)r3  r  r  r  r  kwargsr  s          r   r  r  J
  sb     &&	
 F  ENEfEE"U.JUfUb!r   c                    U R                   (       a^  [        R                  R                  5          [	        X R
                  5      UR                  R                  UR                  '   S S S 5        g g ! , (       d  f       g = fr  )	rG  r   rZ  DisableTorchFunctionSubclassr  r  tracerreal_value_cacher  r  s      r   r~  r~  \
  sU    	yy XX2248D||9ELL))%**5 54	  54s   7A11
A?c                     Uc  [        XX#U40 UD6$ [        U[        R                  5      (       a  [	        XX#U40 UD6$ [        X1X%X@5      $ r  )_wrap_fx_proxyr	  r   r  _wrap_fx_preexisting_tensorhandle_traced_outputr  r3  r  r  r  r  s         r   r  r  
  sk     E-
CJ
 	
 
M5<<	0	0*E-
CJ
 	
 $u}
 	
r   c                    SSK Jn  [        U[        R                  5      (       d   S[        U5       35       e[        X5      (       d   eSU;   a.  US   b(  UR                  R                  R                  US   5        UR                  R                  S:X  a&  SUR                  R                  ;   d   SU S35       eO9SUR                  R                  ;  d   UR                  R                  S    5       e[        R                  R                  R                  5          [        U5      UR                   L a  O[#        XU5        UR$                  (       a]  [        R&                  R)                  5          [+        X1R                   5      UR,                  R.                  UR                  '   S S S 5        S	U [0        [2        4;   0nS
U;   a  US
   c   eUS
   US
'   [5        U4SU0UD6nUR6                  R
                  S:w  a&  [        U5      UR                   La  [9        SU 35      eS S S 5        [;        XX#XE5      $ ! , (       d  f       N= f! , (       d  f       N,= f)Nr,   InstructionTranslatorBasez1_wrap_fx_preexisting_tensor expected tensor, got rl  placeholderr  zplaceholder z* doesn't have 'example_value' in node.metar  r  r3  r  zN`tensor` needs to be a `FakeTensor`wrapped by this instance of Dynamo. Found: )symbolic_convertr  r	  r   r  rc  r4  rl  r  r  opr  r  r  +_disable_saved_tensors_hooks_during_tracingr   r  r~  rG  rZ  r  r  r  r  r   r   r}  r  r3   construct_tensor_variable)r  r3  r  r  r  r  r  r  s           r   r  r  
  s&    =fell++ 
;DL>J+ b44447wx0<
		 12 zz}}%%**//1 	
5'!KL	
1 ejjoo5 	
zz/0	
5
 
			H	H	Jv&",,6(F;yy XX::<@LAELL11%**= = Z"$@ABF w&78+<+HHH&x0F83FLrLVLF==''r||;*>>DXG ; 
KD %} 1 =< 
K	Js&    AI57H>,A=I>
I	I
Ic                    SSK Jn  [        X5      (       d   eSU;   a.  US   b(  UR                  R                  R                  US   5        SUR                  R                  ;  d   UR                  R                  S    5       e[        R                  R                  R                  5          [        UR                  USS9nS S S 5        [        X1X%X@5      $ ! , (       d  f       N= f)Nr,   r  rl  r  T)allow_non_graph_fake)r  r  r	  r4  rl  r  r  r  r   r  r  r  ra   r  )r  r3  r  r  r  r  r  s          r   r  r  
  s     =b44447wx0<
		 12%**//1Xejjooo6V5WX1 
			H	H	J 'uzz2DQ	 
K  5=  
K	Js   .C
C'c                 \   SS K nSS KnSS Kn[        XR                  5      (       a7  [        XQX XC5      nUR                  R                  R                  X'[        S9  U$ [        UR                  R                  S5      (       ag  UR                  R                  R                  S:X  aC  [        UR                  R                  R                  UR                  R                   5      (       d.  UR                  R                  UR"                  R$                  :X  a  ['        UR                  R                  5      $ UR                  R                  UR                  R(                  :X  d.  UR                  R                  UR*                  R,                  :X  a  [/        U 5      $ [1        XR2                  5      (       aI  [5        S U  5       5      (       a2  U  Vs/ s H  n[6        R8                  " U5      PM     n	n[;        U	40 UD6$ [        U [<        [>        45      (       Ga  [A        UR                  U 5        / n
[C        U 5       H  u  pUc'  U
RE                  [6        R8                  " S!0 UD65        M/  URF                  RI                  S[J        RL                  X+40 S9nSU;   a:  [        U [>        5      (       d   eUS   nURO                  5       n[Q        XS	S
9US'   OUnU
RE                  [S        S"UUUUS.UD65        M     [        XR2                  5      (       a  [;        X40 UD6$ [1        U [<        5      (       a  [U        U
40 UD6$ [1        U [>        [V        45      (       a  [Y        U
40 UD6$ U RZ                  R\                  S:X  d;  [        U S5      (       d*   SU RZ                  R\                   S[_        U 5       35       e[a        XRZ                  40 UD6$ U b#  UR                  R                  URb                  L a  [6        R8                  " S!0 UD6$ [        XRd                  URf                  URh                  45      (       aG  UR                  Rj                  Rm                  X5        [A        UR                  U 5        [o        X 40 UD6$ [p        Rr                  " UR                  R                  5      (       a/  [u        UR                  R                  URv                  5      (       dB  UR                  R                  [y        5        VVs/ s H  u  nnURz                  PM     snn;   a-  [A        UR                  U 5        [}        X U R~                  40 UD6$ [p        Rr                  " UR                  R                  5      (       a/  [u        UR                  R                  UR                  5      (       dB  UR                  R                  [y        5        VVs/ s H  u  nnUR                  PM     snn;   a"  [A        UR                  U 5        [        X 40 UD6$ UR                  R                  S:X  a<  UR                  R                  S:X  a"  [A        UR                  U 5        [7        U 40 UD6$ U bp  [        XR                  5      (       aV  UR                  R                  S:X  a<  UR                  R                  S:X  a"  [A        UR                  U 5        [        X 40 UD6$ [        U [        5      (       Gae  UR                  R                  UR                  [        [J        RL                  UR                  R                  UR                  [J        R                  UR                  R                  R                  UR                  R                  R                  UR                  R                  R                  [        UR                  S[        5      [        UR                  S[        5      UR                  4;   d4  UR                  R                  S:X  aG  UR                  R                  S;   a-  [A        UR                  U 5        [6        R8                  " U 40 UD6$ [        XR                  R*                  R                  5      (       a%  SSKUJVn  [A        UR                  U 5        U" U40 UD6$ [        U [        5      (       a  UR                  R                  UR                  R                  UR                  R                  R                  UR                  R*                  R                  UR                  R*                  R                  UR                  R*                  R                  S/[?        [        R                  " 5       5      -   ;   a-  [A        UR                  U 5        [6        R8                  " U 40 UD6$ [        U [        [        [        45      (       a  UR                  R                  [        L dQ  UR                  R                  [        L d4  UR                  R                  S:X  aG  UR                  R                  S:X  a-  [A        UR                  U 5        [6        R8                  " U 40 UD6$ [        U [        5      (       d  UR                  R                  S;   a-  [A        UR                  U 5        [6        R8                  " U 40 UD6$ [        SS[        U 5       SUR                  R                   SUR                  R                   3S/ S 9  g s  snf s  snnf s  snnf )#Nr   )mutation_type_clsr   	set_statec              3   B   #    U  H  n[        U[        5      v   M     g 7fr  )r	  r  r  s     r   rG  'handle_traced_output.<locals>.<genexpr>$  s      3$1q
1cMs   r7  )kindtargetr  r  r  Fr	  r  ztorch.return_types_fieldsz	expected z. == torch.return_types or named tuple but got queryr  record_eventget_rankget_world_size)
bit_lengthr{   r   
is_integerr  )r  	__round__ztorch.* op returned non-Tensorzexample_value type: z; op: z
; target: zUtorch.* ops that return a non-Tensor cannot be traced into the Dynamo FX graph outputr  r  r   )dtorch._functorch.vmaptorch._subclasses.fake_tensortorch._utilsr	  r  r  r4  rU  
_track_objr|   r   r  r  r   r  rZ  	Generatorr  set_rng_stater   _DisableFuncTorchr  _is_in_bad_forkr   ro   r  r  r   r  r   r|  r}  rt   rM  r  r  r  operatorgetitemr#  rH   r  r   r&   r   r,  r   rc  r   manual_seedr
   SymFloatr  current_tracertrack_produced_symintsr   rB  rC  r  r  r2   current_streamr   r  r  r   r  r  sym_intrI  _utils_element_sizeseedmodr[  vmap_validate_and_get_batch_sizepredispatch_vmap_increment_nesting_vmap_decrement_nestingrV  r   _constrain_as_sizebackends
SDPAParamssdpar   r$   _are_functorch_transforms_activeis_batchedtensoris_flash_attention_availablecan_use_flash_attentioncan_use_efficient_attentionr   r  r  r   r   r5   r}   )r  r3  r  r  r  r  r   r  r  sizesunpackedr  r  proxy_ir  	options_ir@  device_interfacer   s                      r   r  r    s    (-..'E-
 			))*> 	* 	
 


!!:..JJ&&+5uzz((115883E3EFF:: : ::+EJJ,=,=>>

UXX777::

 : ::(77	zz	*	*s 3$13 0 0 6CC]!((+]CE-W--	ME4=	1	1%**m4.FA{$++<G<  ,,33(#++	 4  w& &mT::::$X.F 'I*7#U+Ih'
 !(I % #-%&)	
 $9 /J mZZ00  ;7;;M5)) 5W55MD.#9::4G44 ''226JJ=)44 M33>>??mnr  tA  oB  nC  D	5
 &h0G0GS7SS		%**"3"3u7H7H"H&&7w77	MLL%..%--#P	Q	Q
		  77M%**m4u?w??

))**uzz((%,,77			#C#E#EA 	''#E 
 	%**m4eM4H4HTGTT

))**uzz((%++66			#C#E#EA 	#E 
 	%**m4U=W==			g	%%**--=*H%**m4999!}kk22JJ/JJMM]*%**m4U=W==	M3	'	'

MMLL&&JJLL!!>>((@@((@@E%%z8<E%%'7B $$
	
( JJMM]*uzz/@/@N/R 	%**m4&&}@@@	M>>#6#6#A#A	B	B,%**m4!%3733	M4	(	(

HH55HH00NN<<NN77NN;;
 388:
;<		< 	%**m4&&}@@@	MC#5	6	6

^+::
*JJMM]*uzz/@/@F/J%**m4&&}@@@	M5	)	)UZZ->->BV-V%**m4&&}@@@4*7=+A*B&Wabgblblbsbsatuo		
k DFs    ll"l(c                 4   [        U 5      [        R                  [        R                  R                  [        R
                  R                  R                  [        R
                  R                  R                  4;   d  [        U 5      (       a  g [        U 5      $ r  )rc  r   r  rw  rx  r%  r  r   ry  rz  r(   r  s    r   rw  rw    sm    E{%%00++<<	 
 
'u	-	-$ E{r   c                    U R                  U5      n[        U[        R                  R                  R
                  5      (       a  UR                  UR                  L a  U(       a  UnO[        U[        R                  R                  5      (       a  [        R                  R                  nOT[        U[        R                  R                  5      (       a  [        R                  R                  nO[        R                  nXTS'   U$ )N
class_type)
specializer	  r   r%  r  r   r  rw  rx  r  r  )r  r3  r  r  specialized_propstensor_types         r   get_specialized_propsr)    s    "--m< 	=%"3"3"?"?"J"JKK##r||3'Kuxx'9'9::((,,Kuxx77((//K,,K*5,'r   c                    [        X1R                  5      n[        UR                  U5        UR                  R                  S:w  a%  UR
                  R                  R                  X25        UR                  [        XX45      5        U " U40 UD6$ )z
Actually construct a tensor variable after all the pre-processing from
wrapping a pre-existing or newly created tensor value.
r  )
r  r  rt   r  r  r4  r  r	  r  r)  r  s         r   r  r    sn     !=Mejj-0
 zz}}%
		  77MNN(VWe'w''r   c                     [         R                  S:X  a  [        R                  $ [         R                  S:X  a  [        R                  $ [         R                  S:X  a  [        R
                  $ [        S[         R                   35      e)Ndynamicunbacked	obliviousz+invalid automatic_dynamic_shapes_mark_as = )r-    automatic_dynamic_shapes_mark_asr   r  rf  OBLIVIOUS_SIZEr  r   r   r   r  r    sn    ..);!!!		0	0J	>,,,		0	0K	?(((9&:a:a9bc
 	
r   _DYNAMIC_SOURCES_DYNAMIC_SOURCES_CONFIG_HASHc                  ^   [        [        R                  R                  R                  5      n [
        b  [        U :X  a  [
        $ [        R                  R                  R                  R                  SS5      R                  S5       Vs1 s H  nU(       d  M  UiM     snqU q[
        $ s  snf N r  ,)	hashr   compilerr-   dynamic_sourcesr1  r2  replacesplitcurrent_hashss     r   get_dynamic_sourcesr?    s     --==>L #(D(T
 &&66>>sBGMMcRRA 	
R
 $0    
B*B*source_namec                     [        5       nU H<  nX :X  d  [        R                  " X 5      (       d  M%  [        R	                  SU U5          g   g)NzA%s was marked dynamic due to dynamic source allowlist pattern: %sTF)r?  r  matchr  r  )rA  r9  patterns      r   rd  rd  0  sG    )+O"!RXXg%C%CIIS
  # r   r3  r   r  r[  c           
         UR                  5       n[        U5      (       d  UR                  5       nUR                  5       nS /U-  n[	        U5       Vs/ s H
  otU   U* 4PM     nnUR                  [        S9  0 n	U H;  u  pU* nU	R                  X5      Xg'   U	R                  XU   -  [        U5      5        M=     O/ n[        X[        R                  " [        U5      [        U5      5      5      $ s  snf )N)r  )sizer   stridedimr  sortr   rB  
setdefaultr<   r=   r;   make_tensorr|  )r3  r  r[  ex_size	ex_striderH  rG  r  pending
candidatesi_strideneg_is               r   record_automatic_dynamicrR  =  s     ffhGHHJ	eeg#/4Sz:z!aL1"%z:/0
&OHA"x:FI!!(QZ"7QH  '
 $
%11%.%-P  ;s   C3_UNBACKED_SOURCES_UNBACKED_SOURCES_CONFIG_HASHc                  ^   [        [        R                  R                  R                  5      n [
        b  [        U :X  a  [
        $ [        R                  R                  R                  R                  SS5      R                  S5       Vs1 s H  nU(       d  M  UiM     snqU q[
        $ s  snf r4  )	r7  r   r8  r-   unbacked_sourcesrS  rT  r:  r;  r<  s     r   get_unbacked_sourcesrW  Z  s     -->>?L $)F,)V  
 &&77??RHNNsSSA 	
S
 %1!r@  c                     [        5       nU H<  nX :X  d  [        R                  " X 5      (       d  M%  [        R	                  SU U5          g   g)NzC%s was marked unbacked due to unbacked source allowlist pattern: %sTF)rW  r  rC  r  r  )rA  rV  rD  s      r   re  re  n  sH    +-#!RXXg%C%CIIU
  $ r   c                   ^0^1 U R                   (       aI  [        U [        R                  R                  R
                  R                  5      (       d  [        SSS/ S9  UR                  5       nUR                  R                  R                  R                  U S 5      nU(       a  UR                  OS nS nU R                  5       (       a#  [        US5      n	[!        U R"                  XU5      n[%        U 5      (       a  U(       d  [!        XX#SS9n
0 n['        U 5      R)                  U 5      u  pU H(  n[+        X5      n[        X.5      n[!        XUU5      X'   M*     [-        U
R.                  U
R0                  U
R2                  U
R4                  UU
R6                  U
R                  US9$ U(       a  [9        U5      (       ds  [;        [<        R>                  /U RA                  5       -  [<        RB                  /U RA                  5       -  S /U RA                  5       -  S /U RA                  5       -  UUUS	9$ S
SK"J#m1  [I        U14S jU RK                  5        5       5      (       a  [;        U RK                  5        Vs/ s H8  n[        U[L        5      (       a  [<        RN                  O[<        R>                  PM:     sn[<        RB                  /U RA                  5       -  S /U RA                  5       -  S /U RA                  5       -  UUUS	9$ [Q        XU 5      n[S        U 5      n0 m0U04S jnS
SK*J+n  UR                  RX                  (       aj  UR                  RX                   HP  n[        UU5      (       a  M  URZ                  U:X  d  M(  U" UR@                  UR\                  UR                  5        MR     / n/ n/ n/ n/ n[_        U RA                  5       5       GH  nU[+        U S[a        5       5      ;   nU[+        U S[a        5       5      ;   nU[+        U S[a        5       5      ;   nU[+        U S[a        5       5      ;   n U[+        U S[a        5       5      ;   n!URc                  [+        U S0 5      R                  U/ 5      5        [e        UR                  5       5      n"Un	[        U	[f        5      (       a  U	Ri                  5       n	U(       dQ  [        U	[j        5      (       a  U	Rl                  b}  [o        U	Rl                  5      R                  U"US05      U   (       aN  [p        Rs                  SU5        [t        /U RA                  5       -  n#[v        U#U'   U[x        Rz                  " U#S9-  n[|        R~                  =(       a    UR                  U5      n$[|        R~                  =(       a    UR                  U5      n%[9        U5      (       a  [p        Rs                  SU5        Sn$[        U5      (       a  [p        Rs                  SU5        Sn$U$=(       d    U%n&T0R                  U5      nUGcA  S n'S n(U(       a  [|        R                  (       d  S n([        U S5      (       a  U R                   V)s/ s H  n)U)R@                  U:X  d  M  U)PM     sn)R                  5       n*U*R                  c  U*R                  c
  [        SS9n'OS
SK"JJn+  U+" [        U*R                  U*R                  S9SS9n'O[        SS9n'OU(       a
  [        SS9n'OU!(       d4  U&(       a-  [        SS5        U$(       a	  [        SS9n'U%(       a	  [        SS9n(O_U!(       d!  [|        R~                  (       d  [        SS5        S n'S n(O2Uu  n'n,S n(U S U S!3n-U,UR                  R                  R                  U-'   URc                  U'5        URc                  U(5        U(       d  [        U5      (       a  [<        R                  n.OU'c,  U(       d%  U (       d  T1" U RK                  5       U   5      (       a#  U&(       a  [        5       n.OU[<        RN                  n.ODU(       d  [|        R                  (       d  U!(       a  [<        R>                  n.O[<        R                  n.U(b  [<        RN                  n/O[<        RB                  n/URc                  U.5        URc                  U/5        GM     [;        UUUUUUUUS"9$ s  snf s  sn)f )#NzGEncountered strided NestedTensor in automatic dynamic dim determinationr  rq  r  rs  T)
outer_only)dynamic_sizesdynamic_stridesconstraint_sizesconstraint_stridesview_base_contexttensor_source#shape_env_to_source_to_symbol_cacheinner_contexts)r[  r\  r]  r^  r_  r`  ra  r   )is_nested_intc              3   l   >#    U  H)  n[        U[        5      =(       a    T" U5      (       + v   M+     g 7fr  )r	  r
   )rE  r>  rc  s     r   rG  %_automatic_dynamic.<locals>.<genexpr>  s(     
L8a:a 9q)9%998s   14c                    > U T;   a=  SSK Jn  TU    u  pEU" UR                  UR                  -  SS9nU=(       d    UnXg4TU '   g X4TU '   g )Nr   StrictMinMaxConstraintFvrr8  )%torch.fx.experimental.symbolic_shapesrh  rj  )	rH  constraint_ranger  rh  old_constraint_rangeold_namenew_constraint_rangenew_namedim2constraints	           r   update_dim2constraint1_automatic_dynamic.<locals>.update_dim2constraint  se    . T-;C-@* #9#&&)=)@)@@$   '4H"6"@N3"2"8N3r   )_RelaxedConstraint_dynamo_strict_unbacked_indices_dynamo_unbacked_indices_dynamo_dynamic_indices_dynamo_weak_dynamic_indices_dynamo_static_indices_specialize_onFz#automatic dynamic %s marked dynamic)rF  r`  ra  _dynamo_dynamic_ranger7  rg  )lowerupperri  r  z.size()[])r[  r\  r]  r^  specialize_onr_  r`  ra  )Srx  r	  r   ry  r   rz  r{  r5   r  r4  tracing_contexttensor_to_contextrB  ra  r  r@   _automatic_dynamicrs  r(   rc  r  rI  r!   r[  r\  r]  r^  r`  rd  r    r   r  rH  INFER_STRIDErk  rc  rS  rF  r
   r  rR  rD  r  rt  export_constraintst_idrl  r  rR  r  r   rB   rL  rQ   r:  r  r  r  r:   r9   r;   	make_sizer-   r  is_size_dynamicis_stride_dynamicre  allow_ignore_mark_dynamicr   r{  popminmaxr   rh  r*   r   r  source_name_to_debug_namerf  r  r  DUCK)2r[  r3  r  static_shapesrZ  r  prior_policyra  r_  r  outer_contextrb  r  r@  r  inner_tensorr  r>  r  r  rr  rt  r9  r[  r\  r]  r^  r  r  marked_strict_unbackedmarked_unbackedmarked_dynamicmarked_weak_dynamicmarked_staticr  	mark_sizeautomatic_dynamic_sizeautomatic_dynamic_strideautomatic_dynamicconstraint_sizeconstraint_stridedr	dim_rangerh  name_dim_namedynamic_sizedynamic_striderq  rc  s2                                                   @@r   r  r  }  s    	{{:	5<<!!//<<  	]M		
 ;;=D99,,>>BB1dKL<H88d (
 48zz|| 1.qwwW$Q''
*6T

 7--a0D"1+L%f3L#5,$N   ''55)99*;;,??/'550=0a0a)	
 		
 .t44&%,,-7'445?"Vaeeg- $v// 0S
 	
 D

L1668
LLL& !A '1F&;&;
""ARARR! (445?"Vaeeg- $v// 0S
 	
 11= a5DN9  ?	yy##))66J*&899$&%NNJ$?$?	 7 MOM1557^!"g0#%'
 "
 wq*DceLLga)BCEJJ71.Lce#TTWQ(@#%HHWQ(8"=AA!RHI
 "7v{{}!Ek=11%..0K{K00$$0[))*../E5zRSTU II;TB#quuw.I'IaL!4!>!>I!NN ++T0A0Q0QRS0T 	 ++V0A0S0STU0V 	! T""II>E%)"d##II?F%)"2N6N
 $''*
"O $f&F&F$(!1566%&%<%<!%<r!%<!ce  !}},1F*AE*R +A*immT&++
 '>&NO'"9E"J"'8 A4H)&=&MO+(?$(O%$V-L-L#$EuM"&$(!%/"OU $xs!,HFKBII99(C0!!"34066%88L'"QVVXa[))
 !CE)11f==%,,L &??L('//N'44N\*~.E H ##')-#+,O	 	ql!s   5?cc7c)parent_contextr  r  c          
      D  ^ ^^^ [        T 5      [        R                  [        R                  R                  [
        4;   d0  [        T [        R                  5      (       d  [        T 5      (       Ga  Tc   e[        T UTS9u  pVU(       d  [        T TTU5      mO2[        T[        5      (       d   eTR                  nUR                  U   m[        R                  STR                  5       [!        T R"                  5      T[        T 5      5        [%        5          ['        U UUU4S j5      nS S S 5        Tb]  [        W[
        5      (       aH  UR(                  =n	b9  TR*                  R,                  R/                  [1        U	[3        T5      T5      5        [        W5      (       ac  UR5                  5       u  pU
 HK  n[7        X5      n[7        T U5      n[        TU5      n[9        UTU[        U[        R                  5      TS9  MM     TTR*                  R:                  R<                  T '   [?        U5      (       a  UR@                  (       a  URC                  5       OURE                  5       nURG                  5       SURH                  -  URG                  5       URK                  5       S.TR*                  RL                  T'   O8URG                  5       URK                  5       S.TR*                  RL                  T'   U(       a  U(       a  TRO                  5       (       dq  [Q        T5      (       da  TR*                  R,                  R/                  [1        UTT5      5        TR*                  RR                  [U        T 5         R/                  T5        U$ T $ ! , (       d  f       GNl= f)N)r`  zwrap_to_fake %s %s %s %sc                  :   > TR                   R                  T TTS9$ )N)r  symbolic_context)r  r  )r[  r  r  r3  s   r   r1  0wrap_to_fake_tensor_and_record.<locals>.<lambda>  s"    00!%5 1 r   )r  r  r  )r{   )rF  rG  values_sizevalues_stride)rF  rG  )+rc  r   r  rw  rx  r   r	  r(   ru   r  r@   rF  rb  r  r  r  r|  shaper   rz   	item_memor4  r  r  r$   rA   r  rI  r}  r  r  r   	is_sparse_valuesvaluesrF  ndimrG  input_source_to_sizes_stridesru  rJ   tracked_fakes_id_to_sourcerD  )r[  r3  r  r  r  r  _reasoninner_context_namefake_esym_valr  r@  r  
fake_innerinnerr  r  r  s   ```              @r   r}  r}    s    	QELL%(("4"4jAAa&&(++!!!!? "
 1!RO fj1111!'-<<=OP		&KKM!''NG	
 &'(F ( 6:..",,,9II##**G%9&%ACST )00002HE$V2
4()&$7.'(U\\B#3	  :J		!!33A6   *0)9)9V^^%v}}F ,%{{}!'?BII33F;  --/?BII33F; "v'F'F'H'H&v..II##**FF,<= II00A7>>vF} ('s   N
Nc                   ^    \ rS rSrSrSS jr\SSS\4S j5       r\S	 5       r	\S
 5       r
Srg)rV  i  a  
Like builder, but stateless and does not require a source. Useful for simple type->VT objects, or objects
that are being created/evaporated during inlining (ex: consider a locally made list of tensors we then iterate over
.), such a list should not show up as an artifact from inputs, nor in reconstruction, nor in the graph. However,
there may be reasons to represent it as a ListVariable internally.

NOTE - Objects produced here are born UNGUARDED due to the nature of sources!

NOTE - This class is very new! It will have some rough edges, but it was created to stem the bleeding of giant
if/else type->VariableTracker trees that were cropping up all over dynamo.
r<  Nc                     [        S5      e)NzUse SourcelessBuilder.create()r  r  s    r   r+  SourcelessBuilder.__init__   s    =>>r   r3  r   c           
         [        U5      n[        R                  R                  U5      nU(       a  U" X5      $ [	        U[
        5      (       a  U$ [	        U[        R                  5      (       a  [        U5      $ [        R                  " U5      (       a  [        R                  " U5      $ [        U5      (       a_  [        R                  " U5      bH  [        R                  " U5      (       a  SU R                   l        [        R                  " U5      " U5      $ [        U5      (       aW  [$        R&                  " U5      (       a<  [        R                  " UR(                  5      " UR(                  5      n[+        US5      $ [-        U5      (       a  [        R.                  " U5      " U5      $ [	        U[0        R2                  [4        R6                  [4        R8                  R:                  R<                  45      (       a  [?        U5      $ [	        U[         [@        RB                  45      (       a  [%        U5      $ [	        U[D        RF                  5      (       a  [I        U5      $ [	        U[D        RJ                  5      (       a  [	        UR(                  [         [@        RB                  45      (       au  [M        UR(                  URN                  RP                  5      U:X  d   e[        R                  XR(                  5      n URS                  XRN                  RP                  5      $ [	        U[4        RV                  RX                  RZ                  5      (       a  []        U5      $ [	        U[4        R^                  R`                  Rb                  [4        R^                  R`                  Rd                  45      (       a  [        U5      $ [f        Rh                  " U5      (       a  [g        U5      $ [j        Rl                  " U5      (       a  [k        U5      $ U[n        Rp                  L a  [s        U5      $ [	        U[t        Rv                  5      (       a  [y        U5      $ [	        U[4        Rz                  R|                  R~                  R                  5      (       a  [        R                  " [        U5      5      $ [	        U[        [4        R                  R                  5      5      (       a3  [4        Rz                  R|                  R                  R                  U5      $ [	        U[D        R                  5      (       a  [        U5      $ [        U5      (       aT  [        [        U5      5       Vs/ s H"  n[        R                  U [M        X5      5      PM$     nn[        U[        U5      S9$ [	        U[4        R                  5      (       aq  UR                  R                  U R                   R                  ;   aC  U R                   R                  UR                  R                     n[        R                  " X5      $ [        SUR                   SUR                   3SU 3/ [        R                  QS9  g ! [T         a     NEf = fs  snf )NTr  )r  z%Unexpected type in sourceless builderr4  z3SourcelessBuilder.create does not know how to wrap r  )Urc  rV  _type_handlersrB  r	  r   r  _HAS_DEFAULT_FACTORY_CLASSr   r   r  r  rh  r1   rw  rx  r4  ry  r   is_supported_new_methodr  r   rg   rX  rW  rX  r   rY  rZ  r[  r\  r   abcABCMetar  r  r   rr  rI  r  r   var_getattrrk  rH  graph_moduleGraphModuler   r  r  r  LeafSpecr   r  r   r  ra  r  r   r  r  r   r  	variableslazyLazySymNodeFormatStringrE  r}  flex_attention_backwardhigher_order_ops&FlexAttentionBackwardHighOrderVariableGenericAliasr   rj   rp   r   r
   r  r  r  r   r5   r   r   r.   
DYNAMO_BUG)	r3  rQ  
value_typefast_handlerr  
cls_obj_vtr  r4  r  s	            r   r  SourcelessBuilder.create  s   %[
(77;;JG**e_--L{EEFF,U33((//#**511e__!<!<U!C!O..u55>B		;..u5e<<e__!9!Q!Q"
 "
 --enn=ennMC"3	22#E**%%e,U33DIIu00%((2E2E2S2ST
 
  &&ckk233+E22u6677(//ue..// 5>>D#+++>?? 5>>5>>+B+BCuLLL*11"nnEJ!--b..2I2IJJ uxx44@@AA077EKK''00%++2E2E2N2NO
 
 -U33++E22$U++..u55%e,,ioo%)%00rzz**'..u}}66;;SSTT#**3u:66tE$;$;$S$STUU==**;;bb  u1122!%((5!! .d5k::D "((WU-AB:   &fUDDuell++

299#:#::II++EJJOO<E"))"44;!,,-Qz/F/F.GHMj\Z1%001		
I ' 2s   $Y4 -)Z4
Z Zc                 d    [         R                  " U 5      (       d   e[         R                  " U S9$ )Nr  )r   r  r  r  s    r   wrap_constant_literal'SourcelessBuilder.wrap_constant_literal[  s*    **51111&&U33r   c                  R  ^ [         R                  m0 n [         H  nS X'   M
     U4S jU [        '   U4S jU [        '   U4S jU [
        '   U4S jU [        '   U4S jU [        R                  '   U [           U [        R                  '   U [           U [        '   U [
           U [        '   S U [        R                  '   S U [        R                   '   S	 U [        R"                  '   S
 U [        R$                  R&                  R(                  '   S U [        R*                  R,                  R.                  '   S U [        R*                  R,                  R0                  '   S U [        R*                  R,                  R2                  '   SS jn[4        R6                   H  nX U'   M	     U $ )Nc                     [        U5      $ r  )r   r3  rQ  s     r   r1  6SourcelessBuilder.make_type_handlers.<locals>.<lambda>e  s
    ,<U,Cr   c           	      `   > [        U Vs/ s H  nT" X5      PM     sn[        5       S9$ s  snf N)r1  )r   r   r3  rQ  r  r  s      r   r1  r  f  s)    +$)*EqVB]E*:J:L+
*   +c                    > [        UR                  5        VVs0 s H  u  p#T" X5      T" X5      _M     snn[        U5      [        5       S9$ s  snnf r  )r   r  rc  r   )r3  rQ  r  r  r  s       r   r1  r  i  sB    +<6;kkmDmdaVB]F2M)mDK*,,
Ds   A
c           	      `   > [        U Vs/ s H  nT" X5      PM     sn[        5       S9$ s  snf r  )r   r   r  s      r   r1  r  n  s)    <$)*EqVB]E*:J:L,
*r  c           	      R   > [        U Vs/ s H  nT" X5      PM     sn5      $ s  snf r  )r   r  s      r   r1  r  q  s#    M$)*EqVB]E*-
*   $c           	      R   > [        U Vs/ s H  nT" X5      PM     sn5      $ s  snf r  )r   r  s      r   r1  r  t  s#    $)*EqVB]E*2
*r  c                     [        5       $ r  )r   r  s     r   r1  r  z  s    4G4Ir   c                     [        U5      $ r  )r   r  s     r   r1  r  {  s
    7KE7Rr   c                 &    [        U[        5       S9$ r  )r   r   r  s     r   r1  r  }  s    ;Q!1!3<
r   c                 &    [        U[        5       S9$ r  )r   r   r  s     r   r1  r    s    :%5%7r   c                 &    [        U[        5       S9$ r  r   r   r  s     r   r1  r        7%5%7r   c                 &    [        U[        5       S9$ r  r  r  s     r   r1  r    r  r   c                 &    [        U[        5       S9$ r  r  r  s     r   r1  r    r  r   c                     U$ r  r   r  s     r   passthrough9SourcelessBuilder.make_type_handlers.<locals>.passthrough  s    Lr   )r3  r   )rV  r  r_   rR  r  r}  r|  r   r  r~  rK  r%   r&   r  r  r  r  r  r[  r  r  distributionsconstraints_Real	_Interval
Constraintr   all_subclasses)handlersr   r  rs  r  s       @r   make_type_handlers$SourcelessBuilder.make_type_handlers`  si   "))&ACHK '




 
 -5TN(()#+D> #+D> "I%R!!"*
%%& 	!!--BBC 	$$00667 	$$00::; 	$$00;;<	 '55C'SM 6r   r   r;  )r   r   r   r   r  r+  r  r   r  r  r  r   r   r   r   rV  rV    s\    
? U
* U
o U
 U
n 4 4 : :r   rV  c                   >    \ rS rSrSrS
S jr\SSS\4S j5       rS	r	g)"SourcelessUserDefinedObjectBuilderi  z
SourceLessBuilder does not return a UserDefinedObjectVariable, but in some
cases it might be ok to return UserDefinedObjects. In such case, use this
builder.
r<  Nc                     [        S5      e)Nz/Use SourcelessUserDefinedObjectBuilder.create()r  r  s    r   r+  +SourcelessUserDefinedObjectBuilder.__init__  s    NOOr   r3  r   c                     [        U5      n[        U[        5      (       a  [        U[	        5       S9$ [        U[        R                  R                  5      (       a  [        U[	        5       S9$ [        U[	        5       S9$ r  )rc  r  r   r   r   r	  r   rw  rN  r   r   )r3  rQ  r  s      r   r  )SourcelessUserDefinedObjectBuilder.create  sg    %[
j.11)%?O?QRRuxx//0%5%7  -UBRBTUUr   r   r;  )
r   r   r   r   r  r+  r  r   r  r   r   r   r   r  r    s4    P 	V* 	Vo 	V 	Vr   r  r  r  )F(e  r  r  r~  r  r#  r  rW  ra  rB  	itertoolsr_  r  r  r  r  r  r  r  r  collections.abcr   typingr   r   r   r   r   r	   r  r   r
   torch._dispatch.pythonr   torch._dynamo.utilsr   r   r   r   torch._guardsr   "torch._higher_order_ops.flat_applyr   !torch._higher_order_ops.torchbindr   
torch._opsr   r  r   r   r   torch._subclasses.meta_utilsr   r   torch._utils_internalr   %torch.fx.experimental._backward_stater   torch.fx.experimental._dynamismr   rk  r   r   r   r   r    r!   r"   r#   r$   torch.fx.immutable_collectionsr%   r&    torch.nn.utils._expanded_weightsr'   torch.utils._python_dispatchr(   r)   torch.utils._sympy.value_rangesr*   torch.utils.weakr+   r  r-   r.   r/   r0   r1   r"  r2   excr3   r4   r5   rl  r6   r7   r8   pgor9   r:   r;   r<   r=   rU  r>   r  r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r  r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r  r|   r}   r~   r   r   r   builtinr   constantr   r   ctx_managerr   r   r   r   r   r   r   r   dictsr   r   r   r   r   r   rV  r   r   r   r   r   	functionsr   r   r   r   r   r   r   r   r   r   r   r   r   r  r   iterr   r  r   listsr   r   r   r   r   r   r   r   r   miscr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	nn_moduler   r   r   	optimizerr   script_objectr   r  r   r  r   r   r   r   r   r   r   r   r   r   torch_functionr   r   r   user_definedr   r   r   r   r   r   r   r   r   r   r   r   numpyr  ModuleNotFoundErrortorch._dynamo.codegenr   torch._dynamo.symbolic_convertr   	getLoggerr   r  r   getArtifactLoggerr/  r}  DimListr   r   	dataclassr   r(  rU  varsr  rH  r  r#  rR  rI  rw  rN  rQ  rR  rN  rO  rK  r  r  r  r~  r  r  r  r  rw  r)  r  r  r1  rE  r2  r?  r$  rd  r  rR  rS  rT  rW  re  r  r}  rV  r  r  r  r   r   r   <module>r(     s  &              	 
    * L L    ;  ) 9 < * R R A 1 ? A
 
 
 J ; 8 * T T ? V V A A  '       <! ! ! ! ! ! ! ! !D  % 4	 	 	      ? # %
 
 
     0 
 ) ( 4 4 $ $       
       
 //DD !NN44' 
 "
	 	 99 99 99x<H <, &/ /Y--// & IcN  +.% s3x /
 "'!>!> $)HHOO$D$D !@" @"FD (& 26$p >B
, 26=D >B0@
F:((,

 (, (3s8$ +.2 hsm 2SX (
3 
4 
'*/4||2 )- 8CH% ,/3 x} 3c#h (
C 
D 
  .3GGX IMhv&h37hVh hV $5#G#G#I   V V{k  	Bs   U 
U$#U$