
    IЦiv                     B   S SK r S SKrS SKrS SKrS SKrS SKJrJrJrJ	r	  S SK
Jr  SSKJrJr  SSKJrJr  SSKJr  SSKJrJr  SS	KJrJr  SS
KJrJrJr  SSKJrJ r J!r!J"r"  SSK#J$r$J%r%  SSK&J'r'  \	(       a  S SK(J)r)  S r* " S S\%5      r+ " S S\+5      r, " S S\+5      r- " S S\-5      r. " S S\%5      r/ " S S\/5      r0 " S S\/5      r1S\24S  jr3S\24S! jr4S"S#S$\5SS%4S& jr6 " S' S(\+5      r7\Rp                  " S5      S) 5       r9 " S* S+\%5      r: " S, S-\%5      r;g).    N)DictListOptionalTYPE_CHECKING)is_fake   )	polyfills	variables)create_call_functioncreate_instruction)	skip_code)raise_observed_exceptionunimplemented)GuardBuilderinstall_guard)
AttrSourceGetItemSourceis_from_local_source)	dict_keysdict_valuesistypespecialize_symnode   )ValueMutationNewVariableTracker)ConstantVariable)InstructionTranslatorc                    [        U [        R                  5      (       a5  U R                  5       R                  R
                  R                  S5      S L$ [        U [        R                  5      (       a  [        S U R                   5       5      $ [        U [        R                  [        R                  [        R                  [        R                  [        R                  R                  [        R                   [        R"                  [        R$                  R&                  [        R(                  [        R*                  [        R,                  [        R.                  [        R0                  [        R2                  45      $ )Nexample_valuec              3   8   #    U  H  n[        U5      v   M     g 7fN)is_hashable).0es     \/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/torch/_dynamo/variables/dicts.py	<genexpr>is_hashable.<locals>.<genexpr>'   s     37a;q>>7s   )
isinstancer
   TensorVariableas_proxynodemetagetTupleVariableallitemsBuiltinVariableSymNodeVariabler   EnumVariableuser_definedUserDefinedClassVariableUserFunctionVariableSkipFunctionVariablemiscNumpyVariableNNModuleVariableUnspecializedNNModuleVariableMethodWrapperVariableTorchInGraphFunctionVariableTypingVariableFunctoolsPartialVariablexs    r%   r"   r"       s   !Y--.. zz|  %%))/:$FF	Ay..	/	/3177333))))**&&&&??....,,**77//66((22
 	
    c                     ^  \ rS rSrS1\R
                  kr " S S5      r\4S\\\4   SS4U 4S jjjr	S	 r
S
 rS rS rS rS\4S jrS rS rS rS rSSS\4S jrSSS\4S jrS\4S jr      SU 4S jjrS rS rSrU =r$ )ConstDictVariable>   user_clsc                   Z    \ rS rSrSrSS jr\S 5       rS r\	S 5       r
S	S S\4S
 jrSrg)"ConstDictVariable._HashableTrackerD   a"  
Auxiliary opaque internal class that wraps a VariableTracker and makes it hashable
This should not be seen or touched by anything outside of ConstDictVariable and its children
Note that it's also fine to put VTs into dictionaries and sets, but doing so does not take into account aliasing
returnNc                 z    [        U5      n[        U5      (       d  [        S[        U5       SU 35        Xl        g )NzDict key of type z. Key: )r   r"   r   typevt)selfrM   s     r%   __init__+ConstDictVariable._HashableTracker.__init__K   s6    #B'B r?? 1$r(72$GHGrB   c                 >  ^ [        U R                  [        R                  5      (       a3  U R                  R	                  5       R
                  R                  S   nU$ [        U R                  [        R                  5      (       a;  [        R                  m[        U4S jU R                  R                   5       5      nU$ [        U R                  [        R                  5      (       a  U R                  R                  $ [        U R                  [        R                  5      (       a  U R                  R                  $ [        U R                  [        R                   5      (       a  U R                  R#                  5       $ U R                  R%                  5       nU$ )Nr   c              3   H   >#    U  H  nT" U5      R                   v   M     g 7fr!   )underlying_value)r#   r$   Hashables     r%   r&   FConstDictVariable._HashableTracker.underlying_value.<locals>.<genexpr>Z   s     N1(1+66s   ")r(   rM   r
   r)   r*   r+   r,   r.   rD   _HashableTrackertupler0   r:   moduler;   valuer6   get_functionas_python_constant)rN   rA   rT   s     @r%   rS   3ConstDictVariable._HashableTracker.underlying_valueT   s   $''9#;#;<<GG$$&++00A H DGGY%<%<==,==NNN H DGGY%?%?@@ww~~%DGGY%L%LMMww}}$DGGY%C%CDDww++--GG..0HrB   c                 ,    [        U R                  5      $ r!   )hashrS   rN   s    r%   __hash__+ConstDictVariable._HashableTracker.__hash__e   s    --..rB   c                 &  ^ [        U 5      [        U5      :w  a  g[        U [        5      (       aL  [        R                  m[        U 5      [        U5      :H  =(       a    [        U4S j[        X5       5       5      $ [        U 5      (       a  XL $ X:H  $ )NFc              3   J   >#    U  H  u  pTR                  X5      v   M     g 7fr!   )_eq_impl)r#   uvrT   s      r%   r&   >ConstDictVariable._HashableTracker._eq_impl.<locals>.<genexpr>o   s$      08AH%%a++	s    #)	rL   r(   rW   rD   rV   lenr/   zipr   )abrT   s     @r%   rd   +ConstDictVariable._HashableTracker._eq_implh   s{     Aw$q'!Au%%,==1vQ' C 08;A	0 -  vvrB   otherc                 <   [         R                  n[        X5      (       d+  [        R                  " U5      (       d   [        U5      5       e[        X5      (       a&  UR                  U R                  UR                  5      $ UR                  U R                  U5      $ r!   )rD   rV   r(   r   
is_literalrL   rd   rS   )rN   rm   rT   s      r%   __eq__)ConstDictVariable._HashableTracker.__eq__w   s    (99He..2B2M2M3 3 E{  %**(()>)>@V@VWW $$T%:%:EBBrB   )rM   rJ   N)__name__
__module____qualname____firstlineno____doc__rO   propertyrS   r`   staticmethodrd   boolrp   __static_attributes__ rB   r%   rV   rH   D   sP    		 
	 
	 	/ 
	 
			C D 		C 		CrB   rV   r0   rJ   Nc                   >^ SU;   a  UR                  S5        SU;   a  UR                  S5        [        TU ]  " S0 UD6  [        R                  m[        U4S jUR                  5        5       5      (       d   eU4S jnUR                  5        VVs0 s H  u  pVU" U5      U_M     snnU l        [        U R                  5      (       + U l	        UR                  5       U l        X l        g s  snnf )Noriginal_itemsshould_reconstruct_allc              3   z   >#    U  H0  u  p[        U[        T45      =(       a    [        U[        5      v   M2     g 7fr!   )r(   r   )r#   rA   rf   rT   s      r%   r&   -ConstDictVariable.__init__.<locals>.<genexpr>   s<      
 & q?H56 /1o./%s   8;c                 :   > [        U T5      (       a  U $ T" U 5      $ r!   )r(   )keyrT   s    r%   make_hashable1ConstDictVariable.__init__.<locals>.make_hashable   s    $S(333F#FrB   r|   )popsuperrO   rD   rV   r/   r0   r   sourcer   copyr~   rF   )	rN   r0   rF   kwargsr   rA   rf   rT   	__class__s	          @r%   rO   ConstDictVariable.__init__   s     v%JJ'(#v-JJ/0"6"$55  
 
 
 
 	
 
	G 7<kkmDmdamA&)mD
 +?t{{*K&K##jjl  Es   C-c                     U R                   R                  5        VVs0 s H.  u  pUR                  R                  5       UR                  5       _M0     snn$ s  snnf r!   )r0   rM   r*   rN   krf   s      r%   r*   ConstDictVariable.as_proxy   s@    :>**:J:J:LM:L$!-:LMMM   5Ac                 n    SSR                  S U R                  R                  5        5       5      -   S-   $ )N{, c              3      #    U  H4  u  pUR                   R                  5        S UR                  5        3v   M6     g7f)z: NrM   
debug_repr)r#   r   rf   s      r%   r&   /ConstDictVariable.debug_repr.<locals>.<genexpr>   s4      EWTQ144??$%R'78EWs   <>})joinr0   r_   s    r%   r   ConstDictVariable.debug_repr   s?    ii EIZZEUEUEW  		
rB   c                     U R                   R                  5        VVs0 s H.  u  pUR                  R                  5       UR                  5       _M0     snn$ s  snnf r!   r0   rM   r[   r   s      r%   r[   $ConstDictVariable.as_python_constant   sS     

((*
* DD##%q';';'==*
 	
 
r   c                     U R                   R                  5        VVs0 s H   u  pUR                  R                  5       U_M"     snn$ s  snnf r!   r   r   s      r%   keys_as_python_constant)ConstDictVariable.keys_as_python_constant   s=    9=9I9I9KL9K'')1,9KLLLs   'A	c                     U R                   $ r!   )rF   r_   s    r%   python_typeConstDictVariable.python_type   s    }}rB   c                    [        U[        5      (       d   e[        R                  n[	        U5      =(       aN    U" U5      U R
                  ;   =(       a2    [        U R
                  U" U5         [        R                  5      (       + $ r!   )r(   r   rD   rV   r"   r0   r
   DeletedVariable)rN   rM   rT   s      r%   __contains__ConstDictVariable.__contains__   sh    "o....$55O T

*Ttzz(2,79R9RSS	
rB   c           	          [        U R                  R                  5        Vs/ s H&  n[        U[        R
                  5      (       a  M$  UPM(     sn5      $ s  snf r!   )rh   r0   valuesr(   r
   r   rN   rA   s     r%   rh   ConstDictVariable.len   sN     **,,A!!Y%>%>? ,
 	
s   #A	Ac                    ^  T R                   (       a  g[        U 4S jT R                  R                  5        5       5      $ )NTc              3      >#    U  H<  u  pTR                  TR                  R                  UR                  5      U5      v   M>     g 7fr!   )is_new_itemr~   r-   rM   )r#   r   rY   rN   s      r%   r&   2ConstDictVariable.has_new_items.<locals>.<genexpr>   s?      
0
 T0044SVV<eDD0s   AA)r   anyr0   r_   s   `r%   has_new_itemsConstDictVariable.has_new_items   s6    && 
"jj..0
 
 	
rB   c                     U(       a]  UR                  5       (       aH  UR                  5       (       a3  [        UR                  5       5      [        UR                  5       5      :g  $ [        U5      [        U5      :g  $ r!   )is_realizedidrealize)rN   rY   rm   s      r%   r   ConstDictVariable.is_new_item   sU    U&&((U->->-@-@emmo&"U]]_*===%yBuI%%rB   c                 H  ^ U R                   [        R                  L a  TR                  U4S j5        SnU R                  R	                  5        Hr  u  p4U R
                  R                  UR                  5      nU R                  XT5      (       d  U R                  (       d  MS  T" UR                  5        T" U5        US-  nMt     U R                   [        R                  L a'  TR                  [        SUS9/[        SS5      Q5        g TR                  [        SUS95        g )Nc                  n   > T R                  T R                  [        5      T R                  S5      /5      $ )NOrderedDict)extend_outputcreate_load_python_modulecollectionscreate_load_attrcodegens   r%   <lambda>/ConstDictVariable.reconstruct.<locals>.<lambda>   s1    --99+F00?rB   r   r   	BUILD_MAPargF)rF   r   r   add_push_nullr0   r~   r-   rM   r   r   r   r   r   append_output)rN   r   num_argsr   rY   items    `    r%   reconstructConstDictVariable.reconstruct   s    ==K333!! ****,JC&&**3662D,,0K0K0KA - ==K333!!&{A)!U3 !!"4[h"OPrB   txr   r   c                     [         R                  U5      nX0R                  ;  a  [        [        U5        U R                  U   $ r!   )rD   rV   r0   r   KeyErrorrN   r   r   r   s       r%   'getitem_const_raise_exception_if_absent9ConstDictVariable.getitem_const_raise_exception_if_absent   s6      005jj $Xr2zz#rB   c                     [         R                  U5      nX0R                  ;  a  [        SUR                   35        U R                  U   $ )Nzdict KeyError: )rD   rV   r0   r   rY   r   s       r%   getitem_constConstDictVariable.getitem_const  s=    005jj OCII;78zz#rB   c                 j    [         R                  U5      nX R                  ;  a  g U R                  U   $ r!   )rD   rV   r0   )rN   r   r   s      r%   maybe_getitem_const%ConstDictVariable.maybe_getitem_const  s-    005jj zz#rB   c           
        > SSK JnJnJnJnJn	Jn
  [        R                  nU=(       a    [        US   5      nUS:X  a%  [        U5      S:X  d   eU R                  XS   5      $ US:X  a  U(       d  U(       a   eU R                  (       a=  UR                  R                  R                  U R                  R!                  5       5        U	" U R"                  R#                  5        VVs/ s H  u  pU	" UR$                  U/5      PM     snn5      $ US:X  ai  U R                  (       a=  UR                  R                  R                  U R                  R!                  5       5        U(       d  U(       a   e['        U 5      $ US:X  ai  U R                  (       a=  UR                  R                  R                  U R                  R!                  5       5        U(       d  U(       a   e[)        U 5      $ US:X  aA  U(       d  U(       a   eU R+                  U R"                  R-                  5       [/        5       S S	9$ US
:X  a5  U(       d  U(       a   eUR0                  " [        U R"                  5      5      $ US:X  a  U(       a  U R3                  5       (       aj  U(       d  [        U5      S:X  d   eUR                  R4                  R7                  U 5        US   U R"                  U" US   5      '   UR0                  " S 5      $ US:X  a~  U(       aw  U R3                  5       (       ab  SU l        UR                  R4                  R7                  U 5        U R"                  R;                  U" US   5      5        UR0                  " S 5      $ US;   a4  [        U5      S;   a%  US   U ;  a  [        U5      S:X  a  U" S 5      $ US   $ US:X  al  U(       ae  U R3                  5       (       aP  SU l        UR                  R4                  R7                  U 5        U R"                  R=                  U" US   5      5      $ US:X  aX  SU l        UR                  R4                  R7                  U 5        U R"                  R?                  5         UR0                  " S 5      $ US:X  Ga  U R3                  5       (       Gav  [        U5      S:H  =(       a'    [A        US   [        UU	U[B        RD                  U
45      n[        U5      S:  =(       a    [        U5      S:H  nU(       d  U(       a  UR                  R4                  R7                  U 5        [        U5      S:X  a]  [A        US   [        5      (       a  US   nOURG                  U[H        US   5      nU R"                  RK                  UR"                  5        UR#                  5        VVs0 s H  u  pU" UR0                  " U5      5      U_M      nnnU R"                  RK                  U5        UR0                  " S 5      $ [L        TU ]  XX45      $ US;   a  US   U ;   a  U RQ                  XS   5      $ US:X  a'  [        U5      S:X  a  UR0                  " US   U ;   5      $ US:X  a  U(       a  U R3                  5       (       a  U(       a   e[        U5      S::  d   eU RS                  US   5      nUb  U$ [        U5      S:X  a  UR0                  " S 5      nOUS   nUR                  R4                  R7                  U 5        UU R"                  U" US   5      '   U$ [L        TU ]  XX45      $ s  snnf s  snnf )Nr   )r1   r   ListIteratorVariableListVariabler.   UserDefinedObjectVariabler   __getitem__r0   keysr   r   )r0   mutation_typer   __len____setitem__r   __delitem__T)r   r-   )r   r   r   clearupdate)r-   __getattr__r   
setdefault)* r1   r   r   r   r.   r   rD   rV   r"   rh   r   r   outputguard_on_key_orderaddnamer0   rM   DictKeys
DictValuescloner   r   create
is_mutableside_effectsmutationr   r   r   r   r(   r
   IteratorVariablecall_custom_dictdictr   r   call_methodr   r   )rN   r   r   argsr   r1   r   r   r   r.   r   rT   arg_hashabler   rf   is_args_supportedis_kwargs_supporteddict_vtrY   rA   r   s                       r%   r   ConstDictVariable.call_method  s   	
 	
 %554DG 4= t9>!>??GLLW_''{{		,,001A1A1CD 6:jj6F6F6HI6Hdaay)6HI  V^{{		,,001A1A1CD''D>!X{{		,,001A1A1CD''d##V^''::jjoo'7G7IRV    Y''#**3tzz?;;]"|8I8I#d)q.00II""++D1,0GDJJxQ()#**400]"|8I8I*.D'II""++D1JJ""8DG#45#**400^#D	V(;Qt@S4yA~'--AwU]|0A0A*.D'II""++D1::>>(47"344W_*.D'II""++D1JJ#**400X$//"3"3 #D	Q 
!:Q% !(..-
4 #&f+/"Dc$i1n $7		&&//5t9>!$q'+<=="&q'"1"B"B2tTRSW"UJJ%%gmm4 IOHVH-44Q78!;   

!!&)'..t44w*2TBB++Q4%%bq'22^#D	Q#**47d?;;\!lt7H7H:t9>!>,,T!W5E t9>(//5AQA		&&//501

8DG,-7&r>> JJs   ' \7
7%\=c                 t    U R                   R                  5        Vs/ s H  o"R                  PM     sn$ s  snf r!   )r0   r   rM   )rN   r   rA   s      r%   unpack_var_sequence%ConstDictVariable.unpack_var_sequence  s)    "jjoo/0//000s   5c                     U R                   [        L aE  X R                   R                  ;   a  [        R                  " S5      $ [        R                  " S5      $ [        SU R                    S35        g )NTFzhasattr on z is not supported)rF   r   __dict__r   r   r   rN   r   r   s      r%   call_hasattrConstDictVariable.call_hasattr  sX     ==D }}---'..t44#**511DMM?2CDErB   )r0   r~   r   rF   r   zList[VariableTracker]r   zDict[str, VariableTracker]rJ   r   )rs   rt   ru   rv   r   _nonvar_fieldsrV   r   r   rO   r*   r   r[   r   r   rz   r   rh   r   r   r   r   r   r   r   r   r  r{   __classcell__r   s   @r%   rD   rD   >   s    		'	'N
<C <CB  !O_45 !
 
 !  !DN

M
$ 


&QB)0? 7 o  {? &	{?
 -{? 
{?z1F FrB   rD   c                   t   ^  \ rS rSrSS	U 4S jjjrU 4S jrU 4S jr\S 5       r      S
U 4S jjr	Sr
U =r$ )DefaultDictVariablei  c                 ^   > [         TU ]  " X40 UD6  U[        R                  L d   eX0l        g r!   )r   rO   r   defaultdictdefault_factory)rN   r0   rF   r  r   r   s        r%   rO   DefaultDictVariable.__init__  s/    3F3;22222.rB   c                    > U R                   [        [        [        4;  a  U R                  (       d  g[
        TU ]  5       $ )NF)r  listrW   r   r0   r   is_python_constantrN   r   s    r%   r  &DefaultDictVariable.is_python_constant  s1     eT'::4::w)++rB   c                 ^   > SU R                   R                  5        S[        TU ]  5        S3$ )Nzdefaultdict(r   ))r  r   r   r  s    r%   r   DefaultDictVariable.debug_repr  s4    4//::<=R@R@T?UUVW	
rB   c                     [        U [        R                  5      (       a#  U R                  [        [
        [        [        4;   $ [        U [        R                  R                  5      $ r!   )
r(   r
   r1   fnr  rW   r   set	functionsBaseUserFunctionVariabler   s    r%   is_supported_arg$DefaultDictVariable.is_supported_arg  sF    c9445566dE4555c9#6#6#O#OPPrB   c                 0  > US:X  a  [        U5      S:X  d   eUS   U ;   a  U R                  XS   5      $ U R                  c  [        US    5      eU R                  R	                  U/ 0 5      n[
        TU ]  USUS   U4U5        U$ [
        TU ]  XX45      $ )Nr   r   r   r   )rh   r   r  r   call_functionr   r   )rN   r   r   r   r   default_varr   s         r%   r   DefaultDictVariable.call_method  s     = t9>!>Aw$))"1g66''/"d1gY00"&"6"6"D"DRR"PKG'MDG[+A6 '&7&r>>rB   )r  r!   rr   r  )rs   rt   ru   rv   rO   r  r   ry   r  r   r{   r  r  s   @r%   r
  r
    sU    / /
,

 Q Q? &	?
 -? 
? ?rB   r
  c                      ^  \ rS rSrSrS\\   SS4U 4S jjrS r\	S 5       r
\S	 5       rS
 rS rS rS rS\\   S\\\4   SS4U 4S jjrSSS\4S jrSrU =r$ )SetVariablei  z-We model a sets as dictonary with None valuesr0   rJ   Nc                 x   > [         R                  U[        R                  5       5      n[        TU ]  " U40 UD6  g r!   )r   fromkeysr#  _default_valuer   rO   rN   r0   r   r   s      r%   rO   SetVariable.__init__  s0    
 e[%?%?%AB)&)rB   c                     U R                   (       d  gSSR                  S U R                   R                  5        5       5      -   S-   $ )Nzset()r   ,c              3   T   #    U  H  oR                   R                  5       v   M      g 7fr!   r   r#   r   s     r%   r&   )SetVariable.debug_repr.<locals>.<genexpr>       !O=N$$//"3"3=N   &(r   r0   r   r   r_   s    r%   r   SetVariable.debug_repr  s7    zz!OTZZ__=N!OOORUUUrB   c                 H    [        U R                  R                  5       5      $ r!   )r  r0   r   r_   s    r%   	set_itemsSetVariable.set_items  s    4::??$%%rB   c                  .    [         R                  " S 5      $ r!   )r   r   r|   rB   r%   r&  SetVariable._default_value  s      &&t,,rB   c                 t    U R                    Vs1 s H  oR                  R                  5       iM     sn$ s  snf r!   )r3  rM   r*   rN   r   s     r%   r*   SetVariable.as_proxy  s&    )-8A888   #5c                     [         $ r!   )r  r_   s    r%   r   SetVariable.python_type  s    
rB   c                 t    U R                    Vs1 s H  oR                  R                  5       iM     sn$ s  snf r!   r3  rM   r[   r8  s     r%   r[   SetVariable.as_python_constant  )    37>>B>a'')>BBBr:  c                     UR                  U R                   Vs/ s H  o"R                  PM     sn5        UR                  [	        S[        U R                  5      S95        g s  snf )N	BUILD_SETr   )foreachr3  rM   r   r   rh   rN   r   rA   s      r%   r   SetVariable.reconstruct  sG    t~~6~!~670#dnnBUVW 7s   A#r   r   r   c                 &  > US:X  a7  U(       a   e[        U5      S:X  d   eSnUS   [        R                  5       4nGOUS:X  aJ  U(       a   eU(       a   eU R                  R	                  5       R
                  n[        TU ]  XU4U5        U$ US:X  aS  U(       a   e[        U5      S:X  d   e[        R                  " [        R                  5      R                  XUS   /0 5      $ US:X  aS  U(       a   e[        U5      S:X  d   e[        R                  " [        R                  5      R                  XUS   /0 5      $ US:X  aS  U(       a   e[        U5      S:X  d   e[        R                  " [        R                  5      R                  XUS   /0 5      $ US	:X  aS  U(       a   e[        U5      S:X  d   e[        R                  " [        R                  5      R                  XUS   /0 5      $ US
:X  aw  [        U5      S:X  ah  U R!                  5       (       aS  U(       a   e[        U5      S:X  d   e[        R                  " [        R"                  5      R                  XUS   /0 5      $ US:X  a?  U(       a   e[        U5      S:X  d   eUS   U ;  a  [%        S5        [        TU ]  USX45      $ US:X  aH  U(       a   e[        U5      S:X  d   eUS   U ;   a  [        TU ]  USX45      $ [&        R(                  " S S9$ [        TU ]  XX45      $ )Nr   r   r   r   r   
isdisjointintersectionunion
differencer   removezkey does not existdiscardrY   )rh   r#  r&  r3  r   rM   r   r   r
   r6   r	   set_isdisjointr  set_intersection	set_unionset_differencer   
set_updater   r   r   )rN   r   r   r   r   resultr   s         r%   r   SetVariable.call_method  s    5=:t9>!> DG[779:DU]:O8^^''),,FG6)V<M\!:t9>!>11((mBtAw45 ^#:t9>!>11**mBtAw45 W_:t9>!>11)2E2EFTT47OR  \!:t9>!>11((mBtAw45 X#d)q.T__5F5F:t9>!>11)2F2FGUU47OR  X:t9>!>Awd"237&r5$??Y:t9>!>Aw$w*2udCC'..T::w"2T::rB   r   r   r   c                     [        S5      e)NzIllegal to getitem on a set)RuntimeError)rN   r   r   s      r%   r   SetVariable.getitem_const8  s    899rB   r|   )rs   rt   ru   rv   rw   r   r   rO   r   rx   r3  ry   r&  r*   r   r[   r   r   strr   r   r{   r  r  s   @r%   r#  r#    s    7*O$* 
	*V & & - -9CX?; ?#	?;
 S/)*?; 
?;B: 7 :o : :rB   r#  c                      ^  \ rS rSrS\\   SS4U 4S jjrS r\S 5       r	S r
S	 rS
 rS\\   S\\\4   SS4U 4S jjrSrU =r$ )FrozensetVariablei<  r0   rJ   Nc                 (   > [         TU ]  " U40 UD6  g r!   )r   rO   r'  s      r%   rO   FrozensetVariable.__init__=  s    
 	)&)rB   c                     U R                   (       d  gSSR                  S U R                   R                  5        5       5      -   S-   $ )Nzfrozenset()r   r*  c              3   T   #    U  H  oR                   R                  5       v   M      g 7fr!   r   r,  s     r%   r&   /FrozensetVariable.debug_repr.<locals>.<genexpr>H  r.  r/  r   r0  r_   s    r%   r   FrozensetVariable.debug_reprD  s7    zz !OTZZ__=N!OOORUUUrB   c                 6    U R                   R                  5       $ r!   )r0   r   r_   s    r%   r3  FrozensetVariable.set_itemsJ  s    zz  rB   c                     [         $ r!   )	frozensetr_   s    r%   r   FrozensetVariable.python_typeN      rB   c                 t    U R                    Vs1 s H  oR                  R                  5       iM     sn$ s  snf r!   r>  r8  s     r%   r[   $FrozensetVariable.as_python_constantQ  r@  r:  c                    ^ TR                  U R                   Vs/ s H  o"R                  PM     sn5        TR                  U4S j5        TR	                  [        SS5      5        g s  snf )Nc                  F   > T R                  T R                  S5      /5      $ )Nrd  )r   create_load_globalr   s   r%   r   /FrozensetVariable.reconstruct.<locals>.<lambda>W  s#    G))..{;rB   r   F)rC  r3  rM   r   r   r   rD  s    ` r%   r   FrozensetVariable.reconstructT  sT    t~~6~!~67	
 	21e<= 7s   A(r   r   r   c                 N   > US;   a  [        SU S35      e[        TU ]	  XX45      $ )N)r   r   r   rK  rL  r   zIllegal call_method z on a frozenset)rV  r   r   rN   r   r   r   r   r   s        r%   r   FrozensetVariable.call_method_  s5     II!5dV?KLLw"2T::rB   r|   )rs   rt   ru   rv   r   r   rO   r   rx   r3  r   r[   r   r   rX  r   r{   r  r  s   @r%   rZ  rZ  <  s    *O$* 
	*V ! !C	>	; ?#		;
 S/)*	; 
	; 	;rB   rZ  c                      ^  \ rS rSr% SrSr\\   \S'   S\	SS4U 4S jjr
\S 5       r\S	 5       rS
 rS rS\S   S\\S4   SS4U 4S jjrSrU =r$ )DictViewik  zi
Models _PyDictViewObject

This is an "abstract" class. Subclasses will override kv and the items method
Nkvdv_dictrJ   c                    > [         TU ]  " S0 UD6  U R                  S;   d   e[        U[        5      (       d   eXl        g )N)r   r   r|   )r   rO   rs  r(   rD   rt  )rN   rt  r   r   s      r%   rO   DictView.__init__t  s?    "6"ww,,,,'#45555rB   c                 `    [        U R                  R                  U R                  5      " 5       $ r!   )getattrrt  r0   rs  r_   s    r%   
view_itemsDictView.view_itemsz  s     t||))477355rB   c                     [         er!   NotImplementedErrorr_   s    r%   view_items_vtDictView.view_items_vt~  s
     "!rB   c                 ^   ^  U 4S jnT R                    Vs/ s H
  o2" U5      PM     sn$ s  snf )Nc                 @   > TR                   S:X  a  U R                  $ U $ )Nr   )rs  rM   )rA   rN   s    r%   unwrap,DictView.unpack_var_sequence.<locals>.unwrap  s    77f,1443!3rB   )ry  )rN   r   r  rA   s   `   r%   r   DictView.unpack_var_sequence  s*    	4 $(??3?aq	?333s   *c                     U" U R                   5        UR                  U R                  5        UR                  S5        g )Nr   )rt  load_methodrs  r   rN   r   s     r%   r   DictView.reconstruct  s.    DGG$ArB   r   r   r   c                 h   > US:X  a  U R                   R                  XX45      $ [        TU ]  XX45      $ )Nr   rt  r   r   ro  s        r%   r   DictView.call_method  s6     9<<++BdCCw"2T::rB   )rt  )rs   rt   ru   rv   rw   rs  r   rX  __annotations__rD   rO   rx   ry  r~  r   r   r   r   r   r{   r  r  s   @r%   rr  rr  k  s     B 1   6 6 " "
4
	; $%		;
 S++,	; 
	; 	;rB   rr  c                   r   ^  \ rS rSrSr\S 5       r\S 5       rS rS\	S   S\
\S4   S	S4U 4S
 jjrSrU =r$ )r   i  r   c                 ,    [        U R                  5      $ r!   )r  ry  r_   s    r%   r3  DictKeys.set_items  s    4??##rB   c                 X    U R                    Vs/ s H  oR                  PM     sn$ s  snf r!   )ry  rM   r   s     r%   r~  DictKeys.view_items_vt  s"     #oo.oo...s   'c                     [         $ r!   )r   r_   s    r%   r   DictKeys.python_type  rf  rB   r   r   r   rJ   c                 h   > US:X  a  U R                   R                  XX45      $ [        TU ]  XX45      $ )Nr   r  ro  s        r%   r   DictKeys.call_method  s6     >!<<++BdCCw"2T::rB   r|   )rs   rt   ru   rv   rs  rx   r3  r~  r   r   r   rX  r   r{   r  r  s   @r%   r   r     sl    	B$ $ / /	; $%		;
 S++,	; 
	; 	;rB   r   c                   .    \ rS rSrSr\S 5       rS rSrg)r   i  r   c                 ,    [        U R                  5      $ r!   )r  ry  r_   s    r%   r~  DictValues.view_items_vt  s    DOO$$rB   c                     [         $ r!   )r   r_   s    r%   r   DictValues.python_type  s    rB   r|   N)	rs   rt   ru   rv   rs  rx   r~  r   r{   r|   rB   r%   r   r     s    	B% %rB   r   rJ   c                     [         R                  R                  S5      nUc  [         R                  R                  S5      nUS L=(       a    [        XR                  5      $ )Nztransformers.file_utilsztransformers.utils.generic)sysmodulesr-   
issubclassModelOutputclsmods     r%   _is_matching_transformers_clsr    sE    
++//3
4C
{kkoo:;d??z#??rB   c                     [         R                  R                  S5      nUS L=(       a    [        XR                  5      $ )Nzdiffusers.utils)r  r  r-   r  
BaseOutputr  s     r%   _is_matching_diffusers_clsr    s-    
++//+
,Cd?>z#~~>>rB   r   r   r   r   c           
         UR                   R                  R                  U 5      (       aa   UR                   R                  R                  XSS9n[        R
                  R                  [        U[        R                  5      (       + 5      $ X R                  ;   d  [        U R                  U5      (       a  [        S5      $ [        U R                  [        5      (       a  U R                   c  [        S5      $ U R                   (       a   UR                   R"                  R%                  U R                   5      n['        [)        U R                   U5      R+                  [,        R.                  5      5        [        [        XB5      5      $ [1        SU R2                  R4                   SU SU R                   SU R                    35        g! [         a     GNJf = f! [         a     N]f = f)	zXShared method between DataClassVariable and CustomizedDictVariable where items are attrsT)
deleted_okNFzhasattr(r   z)  )r   r   is_attribute_mutation	load_attrr
   r   r   r(   r   r   r0   hasattrrF   r   r   r   r   root_txget_example_valuer   r   
make_guardr   HASATTRr   r   rs   )rN   r   r   rS  examples        r%   _call_hasattr_customobjr    s    
yy33D99	YY++55dT5RF--44vy'@'@AA 
 zzWT]]D99%%	""$4	5	5$++:M&&		ii''99$++FG4;;-889M9MN $GG$:;; 
4>>**+2dV2d6H6H5I4;;-X#  		  		s%   AG	 
A>G 	
GG
G'&G'c                      ^  \ rS rSr\S 5       r\S 5       r\S 5       r\S 5       r	\S 5       r
SU 4S jjrS	 rS
 r      SU 4S jjrSSS\SS4U 4S jjr\rSrU =r$ )CustomizedDictVariablei  c                 <    [        U 5      =(       d    [        U 5      $ r!   )r  r  r  s    r%   is_matching_cls_hf)CustomizedDictVariable.is_matching_cls_hf  s    ,S1T5OPS5TTrB   c                    [        U [        R                  5      (       aL  U [        R                  La9  U R                  [        R                  R                  L a  [	        U S5      (       d  g[
        R                  U 5      $ )N__post_init__T)r  r   r   rO   r  r  r  r  s    r%   is_matching_cls&CustomizedDictVariable.is_matching_cls  s`     sK3344;222 7 7 @ @@C11 &88==rB   c                 6    U R                  [        U5      5      $ r!   r  rL   r  objs     r%   is_matching_object)CustomizedDictVariable.is_matching_object      ""49--rB   c                     S Hb  n[        X5      (       d  M  [        X5      n[        U5      (       d
   SU 35       e[        US5      (       d  MM  [        UR                  5        Md     [
        R                  " U5      (       a  [        R                  " U5      R                  " U0 UD6nUR                  5         S n0 n	U R                  U5      (       aO  UR                  R                  5        H0  u  p[        U[        5      (       a  UR                   b  Uc  M,  XU
'   M2     OUR                  n	U	R                  5        V
Vs0 s H"  u  p[        R"                  " U
5      U" U5      _M$     nn
nOU(       d:  UR                  5        V
Vs0 s H  u  p[        R"                  " U
5      U_M     nn
nOI[%        U5      S:X  a/  [        US   [&        5      (       a  U(       d  US   R                  nO[)        S5        U " WU40 UD6$ s  snn
f s  snn
f )N)rO   r  __setattr__r   zexpect callable attr __code__c                     [        U [        5      (       a  U $ [        R                  " U 5      (       a  [        R                  " U 5      $ [        S5        g )Nz5expect VariableTracker or ConstantVariable.is_literal)r(   r   r   ro   r   r   r@   s    r%   make_var/CustomizedDictVariable.create.<locals>.make_var  sA    a11H%0033+22155!OrB   r   r   z/custom dict init with args/kwargs unimplemented)r  rx  callabler   r  dataclassesis_dataclassinspect	signaturebindapply_defaultsr  	argumentsr0   r(   r   rY   r   rh   rD   r   )r  rF   r   r   options	attr_namer  boundr  
bound_argsr   rf   r0   s                r%   r   CustomizedDictVariable.create  s    UIx++X1||H'<YK%HH|2z**bkk* U ##H--%%h/44dEfEE  " J%%h//!OO113DA!!%566177?ai $%qM 4
 #__
 EODTDTDVDVDA ''*HQK7DV  E ?E||~N~tq%,,Q/2~ENEY!^
474E F FvGMMEKL5(.g..
 Os   )H
#H
c                 f   [        U5      nU R                  U5      (       d  [        S5        UR                  UR                  UR
                  S9" [        R                  " U5      5      R                  n[        R                  " U5       Vs/ s H  oUR                  PM     nnU Hs  n[        X'5      (       d  M  [        X'5      nUR                  UR                  [        UR
                  U5      S9" U5      n	Uc  MY  [        R                   " U5      nXU'   Mu     U " XCUR
                  S9$ s  snf )Nz.custom non-hf dict subclass wrap unimplemented)r   r   r   )rL   r  r   r   r   r   r   r   r0   r  fieldsr   r  rx  r   r   r   )
r  builderr  rF   r0   fr   r   valvars
             r%   wrapCustomizedDictVariable.wrap:  s   9%%h//JK!!WZZ!G##C(

% 	 !, 2 28 <= <1 <=Cs  c'''zz*W^^S*I (  ?*11#6C!$#J  57>>:: >s   D.rJ   c                 X   > [         TU ]  " X40 UD6  U R                  U5      (       d   eg r!   )r   rO   r  )rN   r0   rF   r  r   s       r%   rO   CustomizedDictVariable.__init__R  s,    4G4##H----rB   c                     [         er!   r|  r_   s    r%   r*   CustomizedDictVariable.as_proxyV  s    !!rB   c                 X  ^ ^^ T R                  T R                  5      mUUU 4S jnTR                  U5        T R                  5       nTR	                  UR                  5       5        [        UR                  5       5      nTR                  TR                  [        U5      US5      5        g )Nc                     > T(       a  U4S jn TR                  U 5        TR                  TR                  TR                  5      /5        T(       a  TR                  [	        SS5      5        g g )Nc                     > T R                  T R                  SSS95        T R                  T R                  S5      5        T R                  T R                  S5      5        g )NtorchT)r   _dynamodisable)r   rk  r   r   s   r%   gen_fn2DCustomizedDictVariable.reconstruct.<locals>.gen_fn1.<locals>.gen_fn2h  sT    ))'*D*DWRV*D*WX))'*B*B9*MN))'*B*B9*MNrB   r   F)r   r   create_load_const_uncheckedrF   r   )r  r   is_hf_model_outputrN   s    r%   gen_fn13CustomizedDictVariable.reconstruct.<locals>.gen_fn1^  s\     "O
 %%g.!!7#F#Ft}}#U"VW!%%&:1e&DE "rB   F)r  rF   r   r   rC  r   rW   r   r   create_call_function_kwrh   )rN   r   r  dr   r  s   ``   @r%   r   "CustomizedDictVariable.reconstruct[  s    !44T]]C	F. 	g& ((*
#QVVXg==c$iuUVrB   r   c                   > [        U R                  U5      nU R                  c  S O[        U R                  U5      n[	        US5      (       a4  UR
                  [        [        R                  4;   a  [        TU ])  XX45      $ US;   a2  UR                  [        R                  " XVS9U /[        U5      -   U5      $ U[        [        R                  US 5      L a  [        TU ])  XX45      $ [        SU 35        g )N__objclass__)r   to_tupler   r  r  r  z,custom dict: call_method unimplemented name=)rx  rF   r   r   r  r  r   r   r   r   r   inline_user_function_returnr
   r6   r  r   )rN   r   r   r   r   r  r   r   s          r%   r   "CustomizedDictVariable.call_method}  s     T]]D),*T[[$2O2~&&2??##?
 ,

 7&r>> 
 
 11..rAd# 
 7;22D$??7&r>>DTFKLrB   r   r   r   c                   > [         R                  " U5      nX0;   a  U R                  USU/0 5      $ [        R                  " U R
                  5      (       a  [        R                  " U R
                  5       Vs0 s H  oDR                  UR                  _M     nnX%;   aI  [        R                   R                  XR   5      (       d   e[        R                   R                  XR   5      $ [        TU ]1  X5      $ s  snf )Nr   )r   r   r   r  r  rF   r  r   defaultr
   ro   r   var_getattr)rN   r   r   name_vtr  defaultsr   s         r%   r  "CustomizedDictVariable.var_getattr  s    "))$/?##By"EE##DMM223>3E3Edmm3TU3Ta		)3THU 11<<X^LLLL 1188HHw"2,,	 Vs   9 C8r|   rr   r  )rs   rt   ru   rv   ry   r  r  classmethodr  r   r  rO   r*   r   r   rX  r  r  r  r{   r  r  s   @r%   r  r    s    U U > > . .
 ./ ./b ; ;.."
 WD M &	 M
 - M 
 MD	-5 	-S 	-EV 	- +LrB   r  c                  |    [         R                  R                  S5      n U c   S5       eS nXR                  l        g )N transformers.configuration_utilsz4Caller is responsible for ensuring this was importedc                 X    [        US5      (       d  gU R                  UR                  :H  $ )Nr  F)r  r  )rN   rm   s     r%   !_dynamo_overriden_transformers_eqJ_install_PretrainedConfig_patch.<locals>._dynamo_overriden_transformers_eq  s%    uj))}}..rB   )r  r  r-   PretrainedConfigrp   )r  r  s     r%   _install_PretrainedConfig_patchr    s9    
++//<
=C?RRR?
/
 #DrB   c                   |   ^  \ rS rSrSr\S 5       r\S 5       rSU 4S jjr	SSS	\
SS
4S jrSSS	\
SS
4S jrSrU =r$ )HFPretrainedConfigVariablei  z'
Hack for HuggingFace PretrainedConfig
c                     [         R                  R                  S5      nUS L=(       a    [        XR                  5      nU(       a
  [        5         U$ )Nr   )r  r  r-   r  r  r  )r  r  is_matchs      r%   r  *HFPretrainedConfigVariable.is_matching_cls  s>    kkoo@Ad?Lz#7K7K'L +-rB   c                 6    U R                  [        U5      5      $ r!   r  r  s     r%   r  -HFPretrainedConfigVariable.is_matching_object  r  rB   rJ   c                 t   > [         TU ]  " S0 UD6  Xl        U R                  [	        U5      5      (       d   eg )Nr|   )r   rO   r  r  rL   )rN   r  r   r   s      r%   rO   #HFPretrainedConfigVariable.__init__  s3    "6"##DI....rB   r   r   r   r   c                     [        U R                  U5      nU R                  =(       a    [        U R                  U5      n[        R
                  " XU5      $ ! [         a    [        SU R                   SU S35         g f = f)Nzgetattr(r   r  )	rx  r  r   r   r   buildAttributeErrorr   rY   )rN   r   r   
attr_valuer   s        r%   r  &HFPretrainedConfigVariable.var_getattr  sm    	< 40J[[BZT%BF"((@@ 	<HTZZL4&:;	<s   AA &B Bc                 h    [         R                  R                  [        U R                  U5      5      $ r!   )r
   r   r   r  r  r  s      r%   r  'HFPretrainedConfigVariable.call_hasattr  s$    ))0041HIIrB   )r  rr   )rs   rt   ru   rv   rw   ry   r  r  r  rO   rX  r  r  r{   r  r  s   @r%   r  r    sw       . ./
<5 <S <EV <J6 Jc JFW J JrB   r  c                       \ rS rSrSrS rS rSSS\\   S\	\
\4   4S	 jrSSS
\4S jrSSS
\4S jr SSSS
\S\\   4S jjrSSS
\4S jrSrg)PythonSysModulesVariablei  zSpecial case for sys.modules.

Without this we will guard on the exact set of modules imported in the
lifetime of the python program.
c                     [         $ r!   )r   r_   s    r%   r   $PythonSysModulesVariable.python_type  s    rB   c                 0   ^ TR                  U4S j5        g )Nc                  n   > T R                  T R                  [        5      T R                  S5      /5      $ )Nr  )r   r   r  r   r   s   r%   r   6PythonSysModulesVariable.reconstruct.<locals>.<lambda>  s1    G))55c:,,Y7rB   )r   r  s    `r%   r   $PythonSysModulesVariable.reconstruct  s    	
rB   r   r   r   r   c           	          US:X  a  U R                   " U/UQ70 UD6$ US:X  a  U R                  " U/UQ70 UD6$ US:X  a  U R                  " U/UQ70 UD6$ [        SU SU SU S35        g )Nr   r-   r   zsys.modules.z(*z, **r  )call_getitemcall_getcall_containsr   )rN   r   r   r   r   s        r%   r   $PythonSysModulesVariable.call_method  s     = $$R9$9&99U]==5d5f55^#%%b:4:6::TF"TF$vha@ArB   r   c           
          UR                  5       nU[        R                  ;   n[        U R	                  [
        R                  " [        R                  X4(       + S95      5        X44$ )N)r   invert)	r[   r  r  r   r  	functoolspartialr   DICT_CONTAINSrN   r   r   r   has_keys        r%   _contains_helper)PythonSysModulesVariable._contains_helper  sT    ""$s{{"OO!!,"<"<!KX	

 zrB   c                 P    U R                  X5      u  p4[        R                  " US9$ NrM  )r*  r   r   r(  s        r%   r!  &PythonSysModulesVariable.call_contains  s%    **23
&&W55rB   Nr  c                    U R                  X5      u  pEU(       aR  U R                  =(       a    [        U R                  U5      n[        R                  " U[
        R                  U   U5      $ Ub  U$ [        R                  " S S9$ r-  )	r*  r   r   r   r  r  r  r   r   )rN   r   r   r  r   r)  r   s          r%   r   !PythonSysModulesVariable.call_get  sk     **23
[[B]4;;%BF"((S[[^VDDN&&T22rB   c                     U R                  X5      u  p4U R                  =(       a    [        U R                  U5      n[        R                  " U[
        R                  U   U5      $ r!   )r*  r   r   r   r  r  r  )rN   r   r   r   r)  r   s         r%   r  %PythonSysModulesVariable.call_getitem$  sJ    **23
>t{{A!>$$RQ@@rB   r|   r!   )rs   rt   ru   rv   rw   r   r   r   r   r   rX  r   r*  r!  r   r   r  r{   r|   rB   r%   r  r    s    
B#B ?#	B
 S/)*B#:  6 7 6o 6 .2	3#3 3 /*	3"A6 A_ ArB   r  )<r   r  r%  r  r  typingr   r   r   r   torch._subclasses.fake_tensorr   r   r	   r
   bytecode_transformationr   r   
eval_framer   excr   r   guardsr   r   r   r   r   r   utilsr   r   r   r   baser   r   constantr   torch._dynamo.symbolic_convertr   r"   rD   r
  r#  rZ  rr  r   r   rz   r  r  rX  r  r  	lru_cacher  r  r  r|   rB   r%   <module>r>     s6       
 6 6 1 # N " 9 0 D D F F 3 & D
<ZF ZFz
/?+ /?ji:# i:X,; ,;^-; -;`;x ;6	 	@$ @?t ?
%-0@|+. |+~ TD D"J "JJEA EArB   