Ë
    ÃÓ^jÐú  ã                   ó†  — d Z ddlZddlZddlZddlmZmZ ddlmZm	Z	m
Z
 ddlmZ ddlmZmZmZ ddlmZmZmZmZ dd	lmZmZmZ dd
lmZmZ ddlmZmZm Z m!Z! ddl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ ddl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2 ddl3m4Z4 ddl5m6Z6m7Z7m8Z8 ddl9m:Z: ddl;m<Z< e	rddl=m>Z> ddl?m@Z@ ddlAmBZB de2deCfd„ZDde2deCfd„ZE G d„ de2«      ZF G d„ de2«      ZG G d„ deF«      ZH G d „ d!e2«      ZI G d"„ d#eI«      ZJ G d$„ d%eI«      ZK G d&„ d'eI«      ZLe6eMz  ZN G d(„ d)ejž                  j                   eNe2f   «      ZQ G d*„ d+eF«      ZRy),aI  
Dictionary-related variable tracking classes for PyTorch Dynamo.

This module implements variable tracking for different types of dictionary-like objects:
- Regular Python dictionaries (dict)
- Ordered dictionaries (collections.OrderedDict)
- Default dictionaries (collections.defaultdict)
- Dictionary views (keys and values)

These classes are responsible for tracking dictionary operations during graph compilation,
maintaining proper guards for dictionary mutations and key existence checks. They handle
dictionary creation, modification, key/value access, and view operations while ensuring
correct behavior in the compiled code through appropriate guard installation.

The implementation uses a special HashableTracker wrapper to handle
dictionary keys while preserving proper aliasing semantics. Set-related classes live
in sets.py.
é    N)ÚCallableÚIterator)ÚAnyÚTYPE_CHECKINGÚUnion)Ú
MappingKeyé   )Úgraph_break_hintsÚ	polyfillsÚ	variables)Úcreate_call_functionÚcreate_call_methodÚcreate_dup_topÚcreate_instruction)Úraise_observed_exceptionÚraise_type_errorÚunimplemented)ÚGuardBuilderÚinstall_guard)Ú
AttrSourceÚDictGetItemSourceÚis_constant_sourceÚis_from_local_source)	Ú_item_debug_reprÚcmp_name_to_op_mappingÚ
dict_itemsÚ	dict_keysÚdict_valuesÚistypeÚraise_args_mismatchÚtracked_reprÚunpack_iterableé   )ÚAttributeMutationExistingÚAttributeMutationNewÚAttrMutationKindÚNO_SUCH_SUBOBJÚValueMutationNewÚVariableTracker)ÚConstantVariable)ÚHashableTrackerÚis_hashableÚraise_unhashable)Ú
vt_getitem)ÚSetVariable)Ú	PyCodegen)ÚInstructionTranslatorBase)ÚUserFunctionVariableÚobjÚreturnc                 ó>   — t        | j                  «       t        «      S ©N)Ú
issubclassÚpython_typeÚdict)r3   s    úh/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_dynamo/variables/dicts.pyÚpydict_checkr;   Q   s   € ä�c—o‘oÓ'¬Ó.Ð.ó    c                 ó‚   — 	 | j                  «       }t        |t        t        t
        t        f«      S # t        $ r Y yw xY w)z3PyAnySet_Check(other) || PyDictViewSet_Check(other)F)r8   ÚNotImplementedErrorr7   ÚsetÚ	frozensetr   r   )r3   Úts     r:   Ú_is_set_or_dictviewrB   V   s?   € ðØ�O‰OÓˆô �aœ#œy¬)´ZÐ@ÓAÐAøô ò Ùðús   ‚2 ²	>½>c                   ó   ‡ — e Zd ZeZej                  Zej                  Z	dhe
j                  £Zefdee
e
f   dededdfˆ fd„Zdedefd„Zdeeef   fd„Zdefd	„Zdeeef   fd
„Zddde
fd„Zdeee
f   fd„Zdefd„Zde
defd„Zddddde
dee
   deee
f   de
fd„Zddddde
dee
   deee
f   deedf   de
fd„Zdefd„Zdefd„Zde
dz  de
defd„Z d?d „Z!d?d!„Z"defd"„Z#ddd#e
de
fd$„Z$ddd#e
de
fd%„Z%d#e
de
dz  fd&„Z&d#e
ddfd'„Z'd@d(„Z(ddd)ee
   ddfd*„Z)ddd+e
de
fd,„Z*ddd-e
de
fd.„Z+ddde
fd/„Z,ddd0ed)ee
   deee
f   de
f
ˆ fd1„Z-dddee
   fd2„Z.	 dAdede
d3ede
fd4„Z/dede
de
fd5„Z0ddd+e
de
dz  de
fˆ fd6„Z1ddde
fd7„Z2ddd0ede3fd8„Z4dede
fˆ fd9„Z5defd:„Z6dddeeef   fd;„Z7ddde
d<ede
fd=„Z8ddd0efˆ fd>„Z9ˆ xZ:S )BÚConstDictVariableÚuser_clsÚitemsÚkwargsr4   Nc           	      ó0  •‡— d|v r|j                  d«       d|v r|j                  d«       t        ‰	| �  d
i |¤Ž t        Št	        ˆfd„|j                  «       D «       «      st        d«      ‚dt        t        df   ddfˆfd„}| j                  |«      } ||j                  «       D ��ci c]  \  }} ||«      |“Œ c}}«      | _        | j                  rt        | j                  «       nd	| _        |j                  «       | _        || _        y c c}}w )NÚoriginal_itemsÚshould_reconstruct_allc              3   ól   •K  — | ]+  \  }}t        |t        ‰f«      xr t        |t        «      –— Œ- y ­wr6   )Ú
isinstancer)   )Ú.0ÚxÚvÚHashables      €r:   ú	<genexpr>z-ConstDictVariable.__init__.<locals>.<genexpr>}   s?   øè ø€ ò 
ñ ��1ô �qœ?¨HÐ5Ó6ò /Ü˜1œoÓ.ó/ñ
ùs   ƒ14zZAll keys must be VariableTracker or HashableTracker and all values must be VariableTrackerÚkeyr+   r4   c                 ó0   •— t        | ‰«      r| S  ‰| «      S r6   )rL   )rR   rP   s    €r:   Úmake_hashablez1ConstDictVariable.__init__.<locals>.make_hashable‡   s   ø€ ô % S¨(Ô3�3ÐF¹À#»ÐFr<   T© )ÚpopÚsuperÚ__init__r+   ÚallrF   ÚAssertionErrorr   r)   Ú_get_dict_cls_from_user_clsÚsourcer   rJ   ÚcopyrI   rE   )
ÚselfrF   rE   rG   rT   Údict_clsrN   rO   rP   Ú	__class__s
           @€r:   rX   zConstDictVariable.__init__k   s  ù€ ð ˜vÑ%Ø�J‰JÐ'Ô(Ø# vÑ-Ø�J‰JÐ/Ô0ä‰ÑÑ"˜6Ò"ä"ˆô ó 
ð Ÿ™›ô
ô 
ô
 !ð9óð ð
	GÜ”Ð(9Ð9Ñ:ð	Gàõ	Gð
 ×3Ñ3°HÓ=ˆÙ¸u¿{¹{»}×M±t°q¸!™}¨QÓ/°Ñ2ÓMÓNˆŒ
ð 6:·[²[Ô$ T§[¡[Ó1Ñ1Àdð 	Ô#ð $Ÿj™j›lˆÔØ ˆ�ùó Ns   Â,D
c                 óð   ‡— t         t        j                  t        j                  fŠ|‰v r|}nt	        ˆfd„|j
                  D «       «      }|‰vrt        d|› �«      ‚|t        j                  u rt         }|S )Nc              3   ó,   •K  — | ]  }|‰v sŒ|–— Œ y ­wr6   rU   )rM   ÚbaseÚaccepted_dict_typess     €r:   rQ   z@ConstDictVariable._get_dict_cls_from_user_cls.<locals>.<genexpr>ž   s   øè ø€ ò Ø°TÐ=PÒ5P”ñùs   ƒ	�zUnexpected dict_cls: )r9   ÚcollectionsÚOrderedDictÚdefaultdictÚnextÚ__mro__rZ   )r^   rE   r_   rd   s      @r:   r[   z-ConstDictVariable._get_dict_cls_from_user_cls–   sƒ   ø€ Ü#¤[×%<Ñ%<¼k×>UÑ>UÐVÐð Ð*Ñ*Ø‰Hô ó Ø!)×!1Ñ!1ôó ˆHð Ð.Ñ.Ü Ð#8¸¸
Ð!CÓDÐDð ”{×.Ñ.Ñ.ÜˆHØˆr<   c                 ó¶   — | j                   j                  «       D ��ci c].  \  }}|j                  j                  «       |j                  «       “Œ0 c}}S c c}}w r6   )rF   ÚvtÚas_proxy©r^   ÚkrO   s      r:   rl   zConstDictVariable.as_proxyª   s<   € Ø:>¿*¹*×:JÑ:JÓ:L×M±$°!°Q�—‘—‘“ §¡£Ñ-ÓMÐMùÓMó   ž3Ac                 óä   — g }| j                   j                  «       D ];  \  }}t        |j                  «      }t        |«      }|j                  |› d|› �«       Œ= ddj	                  |«      z   dz   S ©Nú: ú{ú, ú})rF   r   rk   ÚappendÚjoin©r^   rF   rn   rO   Úkey_strÚval_strs         r:   Ú
debug_reprzConstDictVariable.debug_repr­   sq   € ØˆØ—J‘J×$Ñ$Ó&ò 	2‰DˆAˆqÜ& q§t¡tÓ,ˆGÜ& qÓ)ˆGØ�L‰L˜G˜9 B w iÐ0Õ1ð	2ð �T—Y‘Y˜uÓ%Ñ%¨Ñ+Ð+r<   c                 ó¶   — | j                   j                  «       D ��ci c].  \  }}|j                  j                  «       |j                  «       “Œ0 c}}S c c}}w r6   )rF   rk   Úas_python_constantrm   s      r:   r}   z$ConstDictVariable.as_python_constantµ   sP   € ð Ÿ
™
×(Ñ(Ó*÷
á��1ð �D‰D×#Ñ#Ó% q×';Ñ';Ó'=Ñ=ó
ð 	
ùó 
ro   Útxr1   c           
      ó  — | j                   j                  «       D ��cg c]*  \  }}t        ||j                  «      › dt        ||«      › �‘Œ, }}}t        j                  |ddj                  |«      z   dz   «      S c c}}w rq   )rF   r!   rk   r)   Úbuildrw   )r^   r~   rR   ÚvaluerF   s        r:   Ú	repr_implzConstDictVariable.repr_impl»   s~   € ð #Ÿj™j×.Ñ.Ó0÷
á��Uô ˜B §¡Ó'Ð(¨¬<¸¸EÓ+BÐ*CÒDð
ˆñ 
ô ×$Ñ$ R¨¨t¯y©y¸Ó/?Ñ)?À#Ñ)EÓFÐFùó	
s   ž/A;c                 óº   — | j                  «        | j                  j                  «       D ��ci c]   \  }}|j                  j                  «       |“Œ" c}}S c c}}w r6   )Úinstall_dict_keys_match_guardrF   rk   r}   rm   s      r:   Úkeys_as_python_constantz)ConstDictVariable.keys_as_python_constantÂ   sE   € Ø×*Ñ*Ô,Ø9=¿¹×9IÑ9IÓ9K×L±°°A�—‘×'Ñ'Ó)¨1Ñ,ÓLÐLùÓLs   ®%Ac                 ó   — | j                   S r6   ©rE   ©r^   s    r:   r8   zConstDictVariable.python_typeÆ   s   € Ø�}‰}Ðr<   rk   c                 óî   — t        |t        «      st        dt        |«      › �«      ‚t	        |«      syt        |«      }|| j                  v xr( t        | j                  |   t        j                  «       S )NzExpected VariableTracker, got F)	rL   r)   rZ   Útyper,   r+   rF   r   ÚDeletedVariable)r^   rk   rR   s      r:   Ú__contains__zConstDictVariable.__contains__É   sn   € Ü˜"œoÔ.Ü Ð#AÄ$ÀrÃ(ÀÐ!LÓMÐMô ˜2ŒØÜ˜bÓ!ˆØ�d—j‘jÐ ò 
¬Ø�J‰J�s‰OœY×6Ñ6ó*
ð &
ð 	
r<   Útree_map_fnr2   Úmap_fnÚrestÚtree_map_kwargsc           
      óÂ  — g }|D ]u  }|j                  «       }t        |t        «      r+t        |j                  «      t        | j                  «      k7  r| j                  |||||«      c S |j                  |«       Œw  t        | j                  «      «       }| j                  j	                  «       D ]E  \  }	}
g }|D ]!  }	 |j                  |j                  |	   «       Œ# |
j                  |||||«      ||	<   ŒG |D �	ci c]  }	|	j                  ||	   “Œ }}	| j                  ||dd t        «       ¬«      S # t        $ r | j                  |||||«      cY c c S w xY wc c}	w ©NT)rF   rI   rJ   r\   Úmutation_type)ÚrealizerL   rD   ÚlenrF   Ú_tree_map_fallbackrv   rŠ   ÚKeyErrorÚcall_tree_maprk   Úcloner(   )r^   r~   r�   rŽ   r�   r�   Úother_dictsÚ	candidateÚnew_items_hashedÚkey_trackerr�   Úsibling_leavesÚupdated_original_itemss                r:   Úcall_tree_map_branchz&ConstDictVariable.call_tree_map_branchÖ   s›  € ð 02ˆØò 	*ˆIØ!×)Ñ)Ó+ˆIÜ˜iÔ):Ô;¼sØ—‘ó@ä�T—Z‘Z“ò@!ð ×.Ñ.Ø˜ V¨T°?óò ð ×Ñ˜yÕ)ð	*ð ,œ4 §
¡
Ó+Ó-ÐØ"&§*¡*×"2Ñ"2Ó"4ò 	ÑˆK˜Ø46ˆNØ(ò �	ðØ"×)Ñ)¨)¯/©/¸+Ñ*FÕGðð -2×,?Ñ,?ØØØØØó-Ð˜[Ò)ð	ð&  0ö"
àð �N‰NÐ,¨[Ñ9Ñ9ð"
Ðð "
ð
 �z‰zØ"Ø1Ø#'ØÜ*Ó,ð ó 
ð 	
øô#  ò Ø×2Ñ2Ø˜K¨°°óö ðüò"
s   Â?D4Ã=EÄ4EÅEÚkeypath.c                 ó  — g }|D ]v  }|j                  «       }t        |t        «      r+t        |j                  «      t        | j                  «      k7  r| j                  ||||||«      c S |j                  |«       Œx  t        | j                  «      «       }	| j                  j	                  «       D ]o  \  }
}g }|D ]!  }	 |j                  |j                  |
   «       Œ# |
j                  j                  «       }|t        |«      fz   }|j                  ||||||«      |	|
<   Œq |	D �
ci c]  }
|
j                  |	|
   “Œ }}
| j                  |	|dd t        «       ¬«      S # t        $ r | j                  ||||||«      cY c c S w xY wc c}
w r’   )r”   rL   rD   r•   rF   Ú_tree_map_with_path_fallbackrv   rŠ   r—   rk   r}   r   Úcall_tree_map_with_pathr™   r(   )r^   r~   r�   rŽ   r�   r�   r¡   rš   r›   rœ   r�   r�   rž   Ú	key_constÚchild_keypathrŸ   s                   r:   Úcall_tree_map_with_path_branchz0ConstDictVariable.call_tree_map_with_path_branch  sÆ  € ð 02ˆØò 	*ˆIØ!×)Ñ)Ó+ˆIÜ˜iÔ):Ô;¼sØ—‘ó@ä�T—Z‘Z“ò@!ð ×8Ñ8Ø˜ V¨T°?ÀGóò ð ×Ñ˜yÕ)ð	*ð ,œ4 §
¡
Ó+Ó-ÐØ"&§*¡*×"2Ñ"2Ó"4ò 	ÑˆK˜Ø46ˆNØ(ò �	ðØ"×)Ñ)¨)¯/©/¸+Ñ*FÕGðð $Ÿ™×9Ñ9Ó;ˆIØ#¤z°)Ó'<Ð&>Ñ>ˆMØ,1×,IÑ,IØØØØØØó-Ð˜[Ò)ð	ð,  0ö"
àð �N‰NÐ,¨[Ñ9Ñ9ð"
Ðð "
ð
 �z‰zØ"Ø1Ø#'ØÜ*Ó,ð ó 
ð 	
øô)  ò Ø×<Ñ<Ø˜K¨°°Èóö ðüò"
s   Ã EÄ(FÅFÆFc                 óV   — t        d„ | j                  j                  «       D «       «      S )Nc              3   óR   K  — | ]  }t        |t        j                  «       –— Œ! y ­wr6   )rL   r   r‹   )rM   rN   s     r:   rQ   z(ConstDictVariable.len.<locals>.<genexpr>?  s%   è ø€ ò 
Ø=>”
˜1œi×7Ñ7Ó8Ô8ñ
ùs   ‚%')ÚsumrF   Úvaluesrˆ   s    r:   r•   zConstDictVariable.len>  s)   € Üñ 
ØBFÇ*Á*×BSÑBSÓBUô
ó 
ð 	
r<   c                 óx   ‡ — ‰ j                   xs, t        ˆ fd„‰ j                  j                  «       D «       «      S )Nc              3   óŽ   •K  — | ]<  \  }}‰j                  ‰j                  j                  |j                  «      |«      –— Œ> y ­wr6   )Úis_new_itemrI   Úgetrk   )rM   rR   r�   r^   s      €r:   rQ   z2ConstDictVariable.has_new_items.<locals>.<genexpr>D  s?   øè ø€ ò 2
á��Uð ×Ñ˜T×0Ñ0×4Ñ4°S·V±VÓ<¸e×Dñ2
ùs   ƒAA)rJ   ÚanyrF   rˆ   s   `r:   Úhas_new_itemszConstDictVariable.has_new_itemsC  s7   ø€ Ø×*Ñ*ò 
¬có 2
à"Ÿj™j×.Ñ.Ó0ô2
ó /
ð 	
r<   r�   Úotherc                 óÚ   — |rS|j                  «       rC|j                  «       r3t        |j                  «       «      t        |j                  «       «      k7  S t        |«      t        |«      k7  S r6   )Úis_realizedÚidr”   )r^   r�   r²   s      r:   r®   zConstDictVariable.is_new_itemI  sQ   € ñ �U×&Ñ&Ô(¨U×->Ñ->Ô-@Ü�e—m‘m“oÓ&¬"¨U¯]©]«_Ó*=Ñ=Ð=Ü�%‹yœB˜u›IÑ%Ð%r<   c                 óJ  — d}| j                   j                  «       D ]h  \  }}| j                  j                  |j                  «      }| j	                  ||«      s| j
                  sŒJ ||j                  «        ||«       |dz  }Œj |j                  t        d|¬«      «       y )Nr   r#   Ú	BUILD_MAP©Úarg)rF   rI   r¯   rk   r®   rJ   Úappend_outputr   )r^   ÚcodegenÚnum_argsrR   r�   Úitems         r:   Úreconstruct_kvs_into_new_dictz/ConstDictVariable.reconstruct_kvs_into_new_dictQ  sŒ   € àˆØŸ*™*×*Ñ*Ó,ò 	‰JˆC�à×&Ñ&×*Ñ*¨3¯6©6Ó2ˆDØ×Ñ  eÔ,°×0KÓ0KÙ˜Ÿ™”Ù˜”Ø˜A‘‘ð	ð 	×ÑÔ0°À(ÔKÕLr<   c                 ó"  ‡— | j                   t        j                  u rì‰j                  ˆfd„«       | j	                  «       r›‰j                  g t        dd«      ¢t        «       ‘«       ‰j                  | «       ‰j                  t        «       «       ‰j                  d«       | j                  ‰«       ‰j                  g t        d«      ¢t        d«      ‘«       y | j                  ‰«       ‰j                  t        dd«      «       y | j	                  «       re‰j                  t        dd¬«      t        «       g«       ‰j                  | «       | j                  ‰«       ‰j                  t        d	d¬«      «       y | j                  ‰«       y )
Nc                  ón   •— ‰ j                  ‰ j                  t        «      ‰ j                  d«      g«      S )Nrf   )Úextend_outputÚcreate_load_python_modulere   Úcreate_load_attr©r»   s   €r:   ú<lambda>z/ConstDictVariable.reconstruct.<locals>.<lambda>a  s3   ø€ ˜×-Ñ-à×9Ñ9¼+ÓFØ×0Ñ0°Ó?ðó€ r<   r   FÚupdater#   ÚPOP_TOPr·   r¸   ÚDICT_UPDATE)rE   re   rf   Úadd_push_nullÚ_contains_self_referencerÁ   r   r   Ú	add_cacherº   Úload_methodr¾   r   r   ©r^   r»   s    `r:   ÚreconstructzConstDictVariable.reconstruct]  sf  ø€ Ø�=‰=œK×3Ñ3Ñ3à×!Ñ!óôð ×,Ñ,Ô.Ø×%Ñ%ðÜ-¨a°Ó7ðä&Ó(ðôð ×!Ñ! $Ô'à×%Ñ%¤nÓ&6Ô7Ø×#Ñ# HÔ-Ø×2Ñ2°7Ô;Ø×%Ñ%ðÜ+¨AÓ.ðä*¨9Ó5ðõð ×2Ñ2°7Ô;Ø×%Ñ%Ô&:¸1¸eÓ&DÕEà×,Ñ,Ô.Ø×%Ñ%ä*¨;¸AÔ>Ü&Ó(ðôð ×!Ñ! $Ô'Ø×2Ñ2°7Ô;Ø×%Ñ%Ô&8¸ÈAÔ&NÕOð ×2Ñ2°7Õ;r<   c                 óä   ‡— t        | j                  t        j                  «      s| j	                  «       rt
        ‚ddj                  ˆfd„| j                  j                  «       D «       «      › d�S )Nrs   rt   c              3   ó‚   •K  — | ]6  \  }}|j                   j                  ‰«      › d |j                  ‰«      › �–— Œ8 y­w)rr   N)rk   Úreconstruct_pycode)rM   rn   rO   r»   s      €r:   rQ   z7ConstDictVariable.reconstruct_pycode.<locals>.<genexpr>’  sF   øè ø€ ò  EÑimÐijÐlm §¡×!8Ñ!8¸Ó!AÐ BÀ"ÀQ×EYÑEYÐZaÓEbÐDcÔdñ  Eùs   ƒ<?ru   )r7   rE   re   rf   rÊ   r>   rw   rF   rÍ   s    `r:   rÑ   z$ConstDictVariable.reconstruct_pycodeŒ  s{   ø€ ä�t—}‘}¤k×&=Ñ&=Ô>Ø×,Ñ,Ô.ä%Ð%Ø�D—I‘Ió  EÐqu×q{Ñq{÷  rBñ  rBó  rDô  Eó  Eð  Fð  FHð  Ið  	Ir<   r¹   c                 óx   — t        |«      }|| j                  vrt        t        ||g¬«       | j                  |   S )N©Úargs)r+   rF   r   r—   )r^   r~   r¹   rR   s       r:   Ú'getitem_const_raise_exception_if_absentz9ConstDictVariable.getitem_const_raise_exception_if_absent”  s6   € ô ˜cÓ"ˆØ�d—j‘jÑ Ü$¤X¨r¸¸Õ>Ø�z‰z˜#‰Ðr<   c                 óÌ   — t        |«      }|| j                  vr=d|j                  › d�}t        dd|j                  › �|dgt        j
                  ¢¬«       | j                  |   S )NzDictionary key z not found during tracingzkey not found in dictúKey z>Check if the key exists in the dictionary before accessing it.©Úgb_typeÚcontextÚexplanationÚhints)r+   rF   r�   r   r
   Ú
USER_ERROR)r^   r~   r¹   rR   Úmsgs        r:   Úgetitem_constzConstDictVariable.getitem_constœ  so   € ô ˜cÓ"ˆØ�d—j‘jÑ Ø# C§I¡I ;Ð.GÐHˆCÜØ/Ø˜sŸy™y˜kÐ*ØàTðä&×1Ñ1ðõ	ð �z‰z˜#‰Ðr<   c                 óT   — t        |«      }|| j                  vry | j                  |   S r6   )r+   rF   )r^   r¹   rR   s      r:   Úmaybe_getitem_constz%ConstDictVariable.maybe_getitem_const­  s)   € Ü˜cÓ"ˆØ�d—j‘jÑ ØØ�z‰z˜#‰Ðr<   c                 óF  — || vrt        d|› d�«      ‚t        |«      }t        | j                  j	                  «       «      j                  |«      }t        | j                  j	                  «       «      |   }t        |t        j                  «      r|j                  «        y y )Nr×   z not found in dict)rZ   r+   ÚtuplerF   ÚkeysÚindexrI   rL   r   ÚLazyVariableTrackerr”   )r^   r¹   rR   rå   Úoriginal_key_vts        r:   Úrealize_key_vtz ConstDictVariable.realize_key_vt³  sˆ   € à�d‰?Ü  4¨ uÐ,>Ð!?Ó@Ð@Ü˜cÓ"ˆÜ�d—j‘j—o‘oÓ'Ó(×.Ñ.¨sÓ3ˆÜ × 3Ñ 3× 8Ñ 8Ó :Ó;¸EÑBˆÜ�o¤y×'DÑ'DÔEØ×#Ñ#Õ%ð Fr<   c                 ón   — | j                   r)t        | j                  t        j                  «      «       y y r6   )r\   r   Ú
make_guardr   ÚDICT_KEYS_MATCHrˆ   s    r:   r„   z/ConstDictVariable.install_dict_keys_match_guard½  s%   € Ø�;Š;Ü˜$Ÿ/™/¬,×*FÑ*FÓGÕHð r<   rÔ   c           	      ó  — | j                   sy |j                  j                  j                  | «      ry |d   | v }|d   j                   €€|d   j	                  «       rm|rt        | «      j                  nt        | «      j                  }t        | j                  t        j                  ||d   j                  «       ¬«      «      «       y |d   j                   r(|r| j                  |d   «       y | j                  «        y y )Nr   )rR   )r\   ÚoutputÚside_effectsÚis_modifiedÚis_python_constantrŠ   ÚCONTAINS_GUARDÚNOT_CONTAINS_GUARDr   rê   Ú	functoolsÚpartialr}   rè   r„   )r^   r~   rÔ   ÚcontainsÚguard_fns        r:   Úinstall_dict_contains_guardz-ConstDictVariable.install_dict_contains_guardÁ  sÝ   € ð" �{Š{Øà�9‰9×!Ñ!×-Ñ-¨dÔ3Øà˜‘7˜d�?ˆØ�‰7�>‰>Ð! d¨1¡g×&@Ñ&@Ô&Bá-5”�T“
×)Ò)¼4À»:×;XÑ;Xð ô Ø—‘Ü×%Ñ%Ø Ø  ™G×6Ñ6Ó8ôóõð �!‰W�^Š^ÙØ×#Ñ# D¨¡GÕ,à×2Ñ2Õ4ð	 r<   rR   c                 ó&   — | j                  ||«      S r6   )rÕ   ©r^   r~   rR   s      r:   Úmp_subscript_implz#ConstDictVariable.mp_subscript_implë  s   € ð ×;Ñ;¸BÀÓDÐDr<   r½   c                 ó®   — t        |«      st        |d|j                  «       › d�«       | j                  ||g«       || v }t	        j
                  ||«      S )Núunhashable type: 'ú')r,   r   Úpython_type_namer÷   r)   r€   )r^   r~   r½   rõ   s       r:   Úsq_containszConstDictVariable.sq_containsô  sX   € ô ˜4Ô Ü˜RÐ#5°d×6KÑ6KÓ6MÐ5NÈaÐ!PÔQØ×(Ñ(¨¨d¨VÔ4Ø˜4�<ˆÜ×$Ñ$ R¨Ó2Ð2r<   c                 ó>  — ddl m} | j                  rlt        | j                  «      sWt	        | j                  t        j                  «      «       |j                  j                  j                  | j                  «        || j                  j                  «       «      S )Nr#   )ÚDictIterator)Úiterr  r\   r   r   rê   r   rë   rí   Úguard_on_key_orderÚaddrF   rä   )r^   r~   r  s      r:   Útp_iter_implzConstDictVariable.tp_iter_implþ  sa   € Ý&à�;Š;Ô1°$·+±+Ô>Ü˜$Ÿ/™/¬,×*FÑ*FÓGÔHØ�I‰I×(Ñ(×,Ñ,¨T¯[©[Ô9Ù˜DŸJ™JŸO™OÓ-Ó.Ð.r<   Únamec                 ó€  •— ddl m} t        }|dk(  rz |j                  |t        g|¢­i |¤Ž}|j
                  j                  j                  | «       | j                  j                  |j                  «       t        j                  d «      S |dk(  r€|s|r&t        ||dt        |«      › dt        |«      › d�«       | j                  «        | j                  r/|j
                  j                   j#                  | j                  «       t%        | «      S |dk(  r{t        |«      rt        ||d	t        |«      › d
�«       | j                  «        | j                  r/|j
                  j                   j#                  | j                  «       t'        | «      S |dk(  r×|s|r&t        ||dt        |«      › dt        |«      › d�«       | j                  «        | j                  r/|j
                  j                   j#                  | j                  «       t)        t+        | j                  j-                  «       «      «      D �cg c]  }|j.                  ‘Œ }	}t1        j2                  |	t5        «       ¬«      S |dk(  r”|s|r&t        ||dt        |«      › dt        |«      › d�«       | j                  «        | j                  r/|j
                  j                   j#                  | j                  «       |s|rt7        t8        |«       t;        | «      S |dk(  rn| j                  «        |s|r&t        ||dt        |«      › dt        |«      › d�«       | j=                  | j                  j?                  «       t5        «       d ¬«      S |dk(  r}t        |«      dvrt        ||dt        |«      › d
�«       |d   | vr:| jA                  ||«       t        |«      dk(  rt        j                  d «      S |d   S | jC                  ||d   «      S |dk(  rÃ| jE                  «       r³t        |«      dvrt        ||dt        |«      › d
�«       |d   | vr5| jA                  ||«       t        |«      dk(  rt7        tF        |«       |d   S d| _$        |j
                  j                  j                  | «       | j                  jK                   ||d   «      «      S |dk(  r°| jE                  «       r t        |«      rt        ||«       | j                  st7        tF        |dg¬«       | j                  jM                  «       \  }}
d| _$        |j
                  j                  j                  | «       t1        jN                  |j.                  |
g«      S |dk(  r…|s|r&t        ||dt        |«      › dt        |«      › d�«       d| _$        |j
                  j                  j                  | «       | j                  jQ                  «        t        j                  d «      S |dk(  �r| jE                  «       �r | j                  «        t        |«      dkD  rt        ||dt        |«      › d
�«       |s|r%|j
                  j                  j                  | «       |�rF|d   }tS        |tT        «      r6|j                  «        | j                  j                  |j                  «       nûtS        |t0        jV                  tX        f«      rf|j[                  |d«      j]                  «       rF|j_                  |dg i «      }ta        ||«      D ]"  }tc        |||«      | j                   ||«      <   Œ$ nute        ta        ||«      «      D ]]  \  }}ta        ||«      }t        |«      dk7  r#t7        tf        |d|› dt        |«      › d�g¬«       |d   | j                   ||d   «      <   Œ_ |j                  «       D ].  \  }}
|
| j                   |ti        jj                  ||«      «      <   Œ0 t        j                  d «      S |d k(  �r	| jE                  «       rùt        |«      dvr&t        ||d!t        |«      › dt        |«      › d�«       | j                  «        |st        |«      dkD  r&t        ||d"t        |«      › dt        |«      › d�«       | jm                  |d   «      }|�|S t        |«      dk(  rt        j                  d «      }n|d   }|j
                  j                  j                  | «       || j                   ||d   «      <   |S tn        ‰| �½  ||||«      S c c}w )#Nr#   )ÚDictBuiltinVariablerX   rF   ú0 args and 0 kwargsú
 args and ú kwargsrä   z0 argsz argsÚ__reversed__©r“   r«   r]   )rF   r“   r\   r¯   )r#   r	   z1 or 2 argsr   rV   TÚpopitemzpopitem(): dictionary is emptyrÓ   ÚclearrÆ   zat most 1 argsr	   z$dictionary update sequence element #z has length z; 2 is requiredÚ
setdefaultz1 or 2 args and 0 kwargszat most 2 args and 0 kwargs)8Ú r  r+   Úcall_custom_dictr9   rí   rî   ÚmutationrF   rÆ   r*   Úcreater    r•   r„   r\   r  r  ÚDictItemsVariableÚDictKeysVariableÚreversedÚlisträ   rk   r   ÚListIteratorVariabler(   r   Ú	TypeErrorÚDictValuesVariabler™   r]   r÷   rß   Ú
is_mutabler—   rJ   rV   r  ÚTupleVariabler  rL   rD   ÚUserDefinedObjectVariableÚMappingProxyVariableÚcall_obj_hasattrr}   Úcall_methodr"   r.   Ú	enumerateÚ
ValueErrorr)   r€   rá   rW   )r^   r~   r  rÔ   rG   r  rP   Útemp_dict_vtrn   Úreversed_keysrO   r²   rä   rR   Úidxr½   Úpairr�   rN   r`   s                      €r:   r!  zConstDictVariable.call_method  s?  ø€ õ 	*ä"ˆà�:ÒØ?Ð.×?Ñ?Ø”DðØòØ#)ñˆLð �I‰I×"Ñ"×+Ñ+¨DÔ1Ø�J‰J×Ñ˜l×0Ñ0Ô1Ü#×*Ñ*¨4Ó0Ð0Ø�WŠ_Ù‘vÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð ×.Ñ.Ô0Ø�{Š{Ø—	‘	×,Ñ,×0Ñ0°·±Ô=Ü$ TÓ*Ð*Ø�VŠ^Ü�4ŒyÜ# B¨¨h¼3¸t»9¸+ÀUÐ8KÔLØ×.Ñ.Ô0Ø�{Š{Ø—	‘	×,Ñ,×0Ñ0°·±Ô=Ü# DÓ)Ð)Ø�^Ò#ñ ‘vÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð ×.Ñ.Ô0Ø�{Š{Ø—	‘	×,Ñ,×0Ñ0°·±Ô=Ü+3´D¸¿¹¿¹Ó9JÓ4KÓ+LÖM a˜QŸT›TÐMˆMÐMÜ×1Ñ1ØÔ-=Ó-?ôð ð �XÒÙ‘vÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð ×.Ñ.Ô0Ø�{Š{Ø—	‘	×,Ñ,×0Ñ0°·±Ô=Ù‘vÜ(¬°BÔ7Ü% dÓ+Ð+Ø�VŠ^Ø×.Ñ.Ô0Ù‘vÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð —:‘:Ø—j‘j—o‘oÓ'Ô7GÓ7IÐRVð ó ð ð �UŠ]Ü�4‹y Ñ&Ü# B¨¨mÄÀDÃ	¸{È%Ð=PÔQà�A‰w˜dÑ"Ø×0Ñ0°°TÔ:Ü�t“9 ’>ä+×2Ñ2°4Ó8Ð8Ø˜A‘w�à×%Ñ% b¨$¨q©'Ó2Ð2Ø�UŠ]˜tŸ™Ô0Ü�4‹y Ñ&Ü# B¨¨mÄÀDÃ	¸{È%Ð=PÔQà�A‰w˜dÑ"à×0Ñ0°°TÔ:Ü�t“9 ’>ä,¬X°rÔ:Ø˜A‘w�à*.ˆDÔ'Ø�I‰I×"Ñ"×+Ñ+¨DÔ1Ø—:‘:—>‘>¡(¨4°©7Ó"3Ó4Ð4Ø�YÒ 4§?¡?Ô#4ô �4ŒyÜ# B¨Ô-à—:’:Ü(ÜØà8ðõð —:‘:×%Ñ%Ó'‰DˆAˆqØ*.ˆDÔ'Ø�I‰I×"Ñ"×+Ñ+¨DÔ1ä×*Ñ*¨A¯D©D°!¨9Ó5Ð5Ø�WŠ_Ù‘vÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð +/ˆDÔ'Ø�I‰I×"Ñ"×+Ñ+¨DÔ1Ø�J‰J×ÑÔÜ#×*Ñ*¨4Ó0Ð0Ø�XÓ $§/¡/Õ"3ð
 ×.Ñ.Ô0Ü�4‹y˜1Š}Ü# B¨Ð.>Ä3ÀtÃ9À+ÈUÐ@SÔTÙ‘vØ—	‘	×&Ñ&×/Ñ/°Ô5ÚØ˜Q™�Ü˜eÔ%6Ô7ð ×7Ñ7Ô9Ø—J‘J×%Ñ% e§k¡kÕ2äØÜ"×<Ñ<Ô>RÐSôð ×.Ñ.¨r°6Ó:×MÑMÔOà ×,Ñ,¨R°¸¸RÓ@�DÜ.¨r°4Ó8ò O˜Ü4>¸rÀ5È#Ó4N˜Ÿ
™
¡8¨C£=Ò1ñOô &/¬¸rÀ5Ó/IÓ%Jò @™	˜˜TÜ.¨r°4Ó8˜Ü˜t›9¨š>Ü4Ü *Ø "ð%(Ø(+ u¨L¼¸T»¸À?ð%Tð&"õð 9=¸Q¹˜Ÿ
™
¡8¨D°©GÓ#4Ò5ð@ð Ÿ™›ò G‘��1ØEF�—
‘
™8¤O×$9Ñ$9¸"¸aÓ$@ÓAÒBðGä#×*Ñ*¨4Ó0Ð0Ø�\Ó! d§o¡oÔ&7Ü�4‹y Ñ&Ü#ØØØ.Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð ×.Ñ.Ô0Ùœ˜T› QšÜ#ØØØ1Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð ×,Ñ,¨T°!©WÓ5ˆEØÐ Ø�ä�t“9 ’>Ü(×/Ñ/°Ó5‘Aà˜Q™�AØ—	‘	×&Ñ&×/Ñ/°Ô5Ø01�—
‘
™8 D¨¡GÓ,Ñ-Ø�ä‘7Ñ& r¨4°°vÓ>Ð>ùòC Ns   È:d;c                 ót   — | j                  «        | j                  D �cg c]  }|j                  ‘Œ c}S c c}w r6   )r„   rF   rk   )r^   r~   rN   s      r:   Úunpack_var_sequencez%ConstDictVariable.unpack_var_sequenceâ  s,   € ð 	×*Ñ*Ô,Ø"Ÿj™jÖ)˜�—“Ò)Ð)ùÒ)s   Ÿ5Úreversec                 óÐ   — |r|| fn| |f\  }}t        |«      r6t        |«      r+|j                  |dg i «      }|j                  |d|gi «       |S t        j                  t        «      S )Nr]   rÆ   )r;   r!  r*   r  ÚNotImplemented)r^   r~   r²   r*  Úself_Úother_Únews          r:   Ú
nb_or_implzConstDictVariable.nb_or_implè  sh   € ñ *1˜ ™°t¸U°m‰ˆˆvÜ˜Ô¤<°Ô#7Ø×#Ñ# B¨°°BÓ7ˆCØ�O‰O˜B ¨6¨(°BÔ7ØˆJÜ×&Ñ&¤~Ó6Ð6r<   c                 ó0   — | j                  |d|gi «       | S ©NrÆ   )r!  )r^   r~   r²   s      r:   Únb_inplace_or_implz$ConstDictVariable.nb_inplace_or_implö  s   € ð 	×Ñ˜˜X¨ w°Ô3Øˆr<   c                 óÈ  •— | j                  «       st        ‰| �	  |||«      S t        |«      st	        ||«       | j                  «        t        |«      }|j                  j                  j                  | «       |€D|| j                  vr!t        t        ||j                  «       g¬«       d| _        | j                  |= n|| j                  |<   t        j                   d «      S )NrÓ   T)r  rW   Úmp_ass_subscript_implr,   r-   r„   r+   rí   rî   r  rF   r   r—   r}   rJ   r*   r  )r^   r~   rR   r�   Úhkeyr`   s        €r:   r5  z'ConstDictVariable.mp_ass_subscript_implÿ  sÁ   ø€ ð �‰Ô Ü‘7Ñ0°°S¸%Ó@Ð@ô ˜3ÔÜ˜S "Ô%Ø×*Ñ*Ô,Ü˜sÓ#ˆØ
�	‰	×Ñ×'Ñ'¨Ô-Øˆ=Ø˜4Ÿ:™:Ñ%Ü(¬°2¸S×=SÑ=SÓ=UÐ<VÕWØ*.ˆDÔ'Ø—
‘
˜4Ñ à$ˆD�J‰J�tÑÜ×&Ñ& tÓ,Ð,r<   c                 ót   — | j                  «        t        j                  |t        | j                  «      «      S )z Mapping length for dict objects.)r„   r)   r€   r•   rF   ©r^   r~   s     r:   Ú	mp_lengthzConstDictVariable.mp_length  s)   € à×*Ñ*Ô,Ü×$Ñ$ R¬¨T¯Z©Z«Ó9Ð9r<   c                 ó’  ‡ — t        ˆ fd„t        t        j                  t        j                  fD «       «      rRt        ‰ j                  |«      rt        j                  d«      S ‰ j                  t        u rt        j                  d«      S d‰ j                  › d�}t        dd‰ j                  › �|dgt        j                  ¢¬	«       y )
Nc              3   ó:   •K  — | ]  }‰j                   |u –— Œ y ­wr6   r‡   )rM   rA   r^   s     €r:   rQ   z5ConstDictVariable.call_obj_hasattr.<locals>.<genexpr>"  s"   øè ø€ ò 
àð �M‰M˜QÔñ
ùs   ƒTFzhasattr on z is not supportedzunsupported hasattr operationzClass z+Consider using a regular dictionary insteadrØ   )r°   r9   re   rf   rg   ÚhasattrrE   r*   r  r   r
   ÚSUPPORTABLE)r^   r~   r  rÞ   s   `   r:   r   z"ConstDictVariable.call_obj_hasattr  s°   ø€ ô
 ó 
äœK×3Ñ3´[×5LÑ5LÐMô
ô 
ô �t—}‘} dÔ+Ü'×.Ñ.¨tÓ4Ð4Ø�}‰}¤Ñ$Ü'×.Ñ.¨uÓ5Ð5à˜DŸM™M˜?Ð*;Ð<ˆÜØ3Ø˜TŸ]™]˜OÐ,Øà=ðä"×.Ñ.ðö		
r<   c                 óB   •— | j                  «        t        ‰| �  di |¤ŽS )NrU   )r„   rW   r™   )r^   rG   r`   s     €r:   r™   zConstDictVariable.clone6  s!   ø€ Ø×*Ñ*Ô,Ü‰w‰}Ñ&˜vÑ&Ð&r<   c                  ó   — y©NFrU   rˆ   s    r:   r,   zConstDictVariable.is_hashable:  ó   € Ør<   c                 óF   — ddl m}  ||d| j                  «       › d�«       y ©Nr	   )r   rü   rý   ©Úexcr   rþ   ©r^   r~   r   s      r:   Ú	hash_implzConstDictVariable.hash_impl=  ó#   € Ý*á˜Ð1°$×2GÑ2GÓ2IÐ1JÈ!ÐLÕMr<   Úopc                 óÄ  — ddl m} ddlm} |dvrt	        j
                  t        «      S t        |t        «      sIt        ||«      r$|j                  €t        d«      ‚|j                  }nt	        j
                  t        «      S |j                  |t        j                  «      j                  || |gi «      }|dk(  r%t        j                  ||j!                  «        «      S |S )Nr#   ©ÚSourcelessBuilder)ÚUserDefinedDictVariable)Ú__eq__Ú__ne__zexpected _base_vt to be setrO  )ÚbuilderrL  Úuser_definedrM  r*   r  r,  rL   rD   Ú_base_vtrZ   r   Údict___eq__Úcall_functionr)   r€   r}   )r^   r~   r²   rI  rL  rM  Ú	eq_results          r:   Úrichcompare_implz"ConstDictVariable.richcompare_implB  sÈ   € õ
 	/Ý9àÐ)Ñ)Ü#×*Ñ*¬>Ó:Ð:Ü˜%Ô!2Ô3ô ˜%Ð!8Ô9Ø—>‘>Ð)Ü(Ð)FÓGÐGØŸ™‘ä'×.Ñ.¬~Ó>Ð>Ø%×,Ñ,¨R´×1FÑ1FÓG×UÑUØ��u�˜ró
ˆ	ð �Š>Ü"×(Ñ(¨°×1MÑ1MÓ1OÐ-OÓPÐPØÐr<   c                 óv   •— |dk(  r$t        j                  || j                  «       «      S t        ‰| �  ||«      S )Nr`   )r)   r€   r8   rW   Úvar_getattr©r^   r~   r  r`   s      €r:   rX  zConstDictVariable.var_getattr_  s9   ø€ Ø�;ÒÜ"×(Ñ(¨¨T×-=Ñ-=Ó-?Ó@Ð@Ü‰wÑ" 2 tÓ,Ð,r<   ©r»   r0   r4   N©r4   N©F);Ú__name__Ú
__module__Ú__qualname__r9   Ú_cpython_typer   ÚDICT_CONTAINSrñ   ÚDICT_NOT_CONTAINSrò   r)   Ú_nonvar_fieldsrŠ   r   rX   r[   rl   Ústrr{   r}   r‚   r…   r8   ÚboolrŒ   r  r    rã   r§   Úintr•   r±   r®   r¾   rÎ   rÑ   rÕ   rß   rá   rè   r„   r÷   rú   rÿ   r  r!  r)  r0  r3  r5  r9  r*   r   r™   r,   rG  rV  rX  Ú__classcell__©r`   s   @r:   rD   rD   _   s‡  ø„ à€Mà!×/Ñ/€NØ%×7Ñ7Ðð 	ðà	×	'Ñ	'ð€Nð ñ)!à�O _Ð4Ñ5ð)!ð ð)!ð ð	)!ð
 
õ)!ðV°Dð ¸Tó ð(N˜$˜s C˜x™.ó Nð,˜Có ,ð
 D¨¨c¨¡Nó 
ðGÐ7ð G¸Oó GðM¨¨c°?Ð.BÑ)Có Mð˜Tó ð
˜ð 
°4ó 
ð0
à'ð0
ð ,ð0
ð  ð	0
ð
 �?Ñ#ð0
ð ˜c ?Ð2Ñ3ð0
ð 
ó0
ðd4
à'ð4
ð ,ð4
ð  ð	4
ð
 �?Ñ#ð4
ð ˜c ?Ð2Ñ3ð4
ð �s˜C�x‘ð4
ð 
ó4
ðl
�Só 
ð

˜tó 
ð&Ø$ tÑ+ð&Ø4Cð&à	ó&ó
Mó-<ð^I¨Só IðØ-ðØ4Cðà	óðØ-ðØ4Cðà	óð" ð ¸?ÈTÑ;Qó ð& /ð &°dó &óIð(5Ø-ð(5Ø59¸/Ñ5Jð(5à	ó(5ðTEà'ðEð ðEð 
ó	Eð3Ø-ð3Ø5Dð3à	ó3ð/Ð:ð /¸ó /ðZ?à'ðZ?ð ðZ?ð �?Ñ#ð	Z?ð
 �S˜/Ð)Ñ*ðZ?ð 
õZ?ðx*Ø-ð*à	ˆoÑ	ó*ð ñ	7àð7ð ð7ð ð	7ð
 
ó7ðàðð ðð 
ó	ð-à'ð-ð ð-ð  Ñ%ð	-ð
 
õ-ð2:Ð7ð :¸Oó :ð

Ø-ð
Ø58ð
à	ó
ð2'˜cð ' oõ 'ð˜Tó ðNÐ7ð N¸EÀ#ÀtÀ)Ñ<Ló Nð
Ø-ðØ6EðØKNðà	óð:-Ð9ð -À÷ -ñ -r<   rD   c            
       ó4  ‡ — e Zd Zej                  Zdededdfˆ fd„Zde	fd„Z
dddeeef   fd	„Zdddee   fd
„Zdd„Zdd„Zdddedefd„Zdddedee   deeef   def
d„Zdddefd„Zdddedefd„Zdddefd„Zdddededefd„Zdddedefˆ fd„Zˆ xZS )r  Údv_dictrG   r4   Nc                 ó€   •— t        ‰| �  di |¤Ž t        |t        «      st	        dt        |«      › �«      ‚|| _        y )Nú Expected ConstDictVariable, got rU   )rW   rX   rL   rD   rZ   rŠ   rj  ©r^   rj  rG   r`   s      €r:   rX   zMappingProxyVariable.__init__j  s<   ø€ Ü‰ÑÑ"˜6Ò"Ü˜'Ô#4Ô5Ü Ð#CÄDÈÃMÀ?Ð!SÓTÐTØˆ�r<   c                 ó"   — t         j                  S r6   )ÚtypesÚMappingProxyTyperˆ   s    r:   r8   z MappingProxyVariable.python_typep  s   € Ü×%Ñ%Ð%r<   r~   r1   c                 ó8   — | j                   j                  |«      S r6   )rj  rG  r8  s     r:   rG  zMappingProxyVariable.hash_impls  s   € ð �|‰|×%Ñ% bÓ)Ð)r<   c                 ó8   — | j                   j                  |«      S r6   )rj  r)  r8  s     r:   r)  z(MappingProxyVariable.unpack_var_sequencex  s   € ð �|‰|×/Ñ/°Ó3Ð3r<   c                 ó  ‡— | j                   r=d| j                   › d�}t        dd| j                   › �|dgt        j                  ¢¬«       ‰j	                  ˆfd„«        ‰| j
                  «       ‰j                  t        dd	«      «       y )
Nz*Preexisting MappingProxyVariable (source: zS) cannot be reconstructed because the connection to the original dict will be lost.z%mapping proxy cannot be reconstructedúSource: zCUse a mapping proxy constructed in the same `torch.compile` region.rØ   c                  ón   •— ‰ j                  ‰ j                  t        «      ‰ j                  d«      g«      S )Nrp  )rÁ   rÂ   ro  rÃ   rÄ   s   €r:   rÅ   z2MappingProxyVariable.reconstruct.<locals>.<lambda>Ž  s4   ø€ �G×)Ñ)à×5Ñ5´eÓ<Ø×,Ñ,Ð-?Ó@ðó€ r<   r#   F)r\   r   r
   r=  rÉ   rj  rÁ   r   )r^   r»   rÞ   s    ` r:   rÎ   z MappingProxyVariable.reconstruct}  s”   ø€ à�;Š;à<¸T¿[¹[¸Mð JLð Lð ô Ø?Ø" 4§;¡; -Ð0ØàYðä&×2Ñ2ðõ	ð 	×Ñóô	
ñ 	�—‘ÔØ×ÑÔ2°1°eÓ<Õ=r<   c                 óª   — | j                   rG|j                  j                  j                  «       r"d}t	        dd| j                   › d�|ddg¬«       y y y )Na°  A dict has been modified while we have an existing mappingproxy object. A mapping proxy object, as the name suggest, proxies a mapping object (usually a dict). If the original dict object mutates, it is reflected in the proxy object as well. For an existing proxy object, we do not know the original dict it points to. Therefore, for correctness we graph break when there is dict mutation and we are trying to access a proxy object.z-mapping proxy affected by dictionary mutationrt  z, Dict mutation detectedzNAvoid modifying dictionaries that might be referenced by mapping proxy objectszROr avoid using the mapping proxy objects after modifying its underlying dictionaryrØ   )r\   rí   rî   Úhas_existing_dict_mutationr   )r^   r~   rÞ   s      r:   Ú_check_mutation_guardz*MappingProxyVariable._check_mutation_guard˜  s\   € Ø�;Š;˜2Ÿ9™9×1Ñ1×LÑLÔNð7ð ô ØGØ" 4§;¡; -Ð/GÐHØàdØhðö	ð Oˆ;r<   rR   c                 ó\   — | j                  |«       | j                  j                  ||«      S r6   )rx  rj  rú   rù   s      r:   rú   z&MappingProxyVariable.mp_subscript_impl®  s)   € ð 	×"Ñ" 2Ô&Ø�|‰|×-Ñ-¨b°#Ó6Ð6r<   r  rÔ   c                 ó`   — | j                  |«       | j                  j                  ||||«      S r6   )rx  rj  r!  )r^   r~   r  rÔ   rG   s        r:   r!  z MappingProxyVariable.call_method¸  s-   € ð 	×"Ñ" 2Ô&Ø�|‰|×'Ñ'¨¨D°$¸Ó?Ð?r<   c                 ó8   — | j                   j                  |«      S r6   )rj  r  r8  s     r:   r  z!MappingProxyVariable.tp_iter_implÂ  s   € Ø�|‰|×(Ñ(¨Ó,Ð,r<   r½   c                 ó:   — | j                   j                  ||«      S r6   ©rj  rÿ   ©r^   r~   r½   s      r:   rÿ   z MappingProxyVariable.sq_containsÅ  ó   € ð �|‰|×'Ñ'¨¨DÓ1Ð1r<   c                 ó8   — | j                   j                  |«      S r6   )rj  r9  r8  s     r:   r9  zMappingProxyVariable.mp_lengthË  s   € Ø�|‰|×%Ñ% bÓ)Ð)r<   r²   rI  c                 ó8   — ddl m}  ||| j                  ||«      S )Nr#   )Úgeneric_richcompare)Úobject_protocolr‚  rj  )r^   r~   r²   rI  r‚  s        r:   rV  z%MappingProxyVariable.richcompare_implÎ  s   € õ
 	9á" 2 t§|¡|°U¸BÓ?Ð?r<   c                 óÄ   •— | j                  «       t        j                  u r0t        j                  ||t        j                  j
                  v «      S t        ‰| �  ||«      S r6   )r8   ro  rp  r)   r€   Ú__dict__rW   r   rY  s      €r:   r   z%MappingProxyVariable.call_obj_hasattr×  sR   ø€ ð ×ÑÓ¤×!7Ñ!7Ñ7Ü"×(Ñ(¨¨T´U×5KÑ5K×5TÑ5TÐ-TÓUÐUÜ‰wÑ'¨¨DÓ1Ð1r<   rZ  )r~   r1   r4   N)r]  r^  r_  ro  rp  r`  rD   r   rX   rŠ   r8   rã   rf  re  rG  r  r)   r)  rÎ   rx  rú   rd  r9   r!  r  rÿ   r9  rV  r*   r   rg  rh  s   @r:   r  r  e  sr  ø„ à×*Ñ*€MðÐ 1ð ¸Sð ÀTõ ð&˜Tó &ð*Ð7ð *¸EÀ#ÀtÀ)Ñ<Ló *ð
4Ø-ð4à	ˆoÑ	ó4ó
>ó6ð,7à'ð7ð ð7ð 
ó	7ð@à'ð@ð ð@ð �?Ñ#ð	@ð
 �S˜/Ð)Ñ*ð@ð 
ó@ð-Ð:ð -¸ó -ð2Ø-ð2Ø5Dð2à	ó2ð*Ð7ð *¸Oó *ð@Ø-ð@Ø6Eð@ØKNð@à	ó@ð2Ø-ð2Ø58ð2à	÷2ñ 2r<   r  c                   ó.   — e Zd Zdd„Zdddee   ddfd„Zy)	ÚNNModuleHooksDictVariabler4   Nc                  ó   — y r6   rU   rˆ   s    r:   r„   z7NNModuleHooksDictVariable.install_dict_keys_match_guardá  ó   € Ør<   r~   r1   rÔ   c                  ó   — y r6   rU   ©r^   r~   rÔ   s      r:   r÷   z5NNModuleHooksDictVariable.install_dict_contains_guardä  ó   € ð 	r<   r[  )r]  r^  r_  r„   r  r)   r÷   rU   r<   r:   r‡  r‡  ß  s)   „ óðØ-ðØ59¸/Ñ5Jðà	ôr<   r‡  c            
       ó�  ‡ — e Zd ZU dZdZedz  ed<   dededdfˆ fd„Z	e
defd„«       Zdefd	„Zd
ddeeef   fd„Ze
dee   fd„«       Zd
ddee   fd„Zdd„Zd
ddedefd„Zd
ddefd„Zd
ddedee   deeef   def
ˆ fd„Zd
ddefd„Z	 dd
ddededefd„Z	 dd
ddededefd„Z	 dd
ddededefd„Z	 dd
ddededefd„Zˆ xZ S )ÚDictViewVariablezu
    Models _PyDictViewObject

    This is an "abstract" class. Subclasses will override kv and the items method
    NÚkvrj  rG   r4   c                 óÌ   •— t        ‰| �  di |¤Ž | j                  dvrt        d| j                  ›�«      ‚t	        |t
        «      st        dt        |«      › �«      ‚|| _        y )N)rä   r«   rF   z4Expected kv to be 'keys', 'values', or 'items', got rl  rU   )rW   rX   r�  rZ   rL   rD   rŠ   rj  rm  s      €r:   rX   zDictViewVariable.__init__ó  sf   ø€ Ü‰ÑÑ"˜6Ò"Ø�7‰7Ð5Ñ5Ü ØFÀtÇwÁwÀkÐRóð ô ˜'Ô#4Ô5Ü Ð#CÄDÈÃMÀ?Ð!SÓTÐTØˆ�r<   c                 óŽ   — | j                   €t        d«      ‚ t        | j                  j                  | j                   «      «       S )Nzkv must not be None)r�  rZ   Úgetattrrj  rF   rˆ   s    r:   Ú
view_itemszDictViewVariable.view_itemsý  s7   € à�7‰7ˆ?Ü Ð!6Ó7Ð7Ø3Œw�t—|‘|×)Ñ)¨4¯7©7Ó3Ó5Ð5r<   c                  ó   — yr@  rU   rˆ   s    r:   r,   zDictViewVariable.is_hashable  rA  r<   r~   r1   c                 óF   — ddl m}  ||d| j                  «       › d�«       y rC  rD  rF  s      r:   rG  zDictViewVariable.hash_impl  rH  r<   c                 ó   — t         ‚r6   )r>   rˆ   s    r:   Úview_items_vtzDictViewVariable.view_items_vt  s
   € ô "Ð!r<   c                 ó   — | j                   S r6   )r—  r8  s     r:   r)  z$DictViewVariable.unpack_var_sequence  s   € ð ×!Ñ!Ð!r<   c                 ó®   — | j                   €t        d«      ‚ || j                  «       |j                  | j                   «       |j	                  d«       y )Nz#kv must not be None for reconstructr   )r�  rZ   rj  rÌ   r!  rÍ   s     r:   rÎ   zDictViewVariable.reconstruct  sC   € Ø�7‰7ˆ?Ü Ð!FÓGÐGÙ�—‘ÔØ×Ñ˜DŸG™GÔ$Ø×Ñ˜AÕr<   r  c                 ó¼   — | j                   €t        d«      ‚|| j                  «       j                  v rt	        j
                  d«      S t	        j
                  d«      S )Nz(kv must not be None for call_obj_hasattrTF)r�  rZ   r8   r…  r*   r  )r^   r~   r  s      r:   r   z!DictViewVariable.call_obj_hasattr  sR   € ð �7‰7ˆ?Ü Ð!KÓLÐLØ�4×#Ñ#Ó%×.Ñ.Ñ.Ü#×*Ñ*¨4Ó0Ð0Ü×&Ñ& uÓ-Ð-r<   c                 ó´  ‡— | j                   dk(  r>dj                  ˆfd„| j                  D «       «      }t        j                  ‰d|› d�«      S | j                   dk(  r>dj                  ˆfd„| j                  D «       «      }t        j                  ‰d|› d�«      S dj                  ˆfd	„| j                  D «       «      }t        j                  ‰d
|› d�«      S )Nrä   rt   c              3   óJ   •K  — | ]  }t        ‰|j                  «      –— Œ y ­wr6   ©r!   rk   )rM   rR   r~   s     €r:   rQ   z-DictViewVariable.repr_impl.<locals>.<genexpr>(  s   øè ø€ ÒR¸3œl¨2¨s¯v©v×6ÑRùs   ƒ #údict_keys([ú])r«   c              3   ó6   •K  — | ]  }t        ‰|«      –— Œ y ­wr6   )r!   )rM   r�   r~   s     €r:   rQ   z-DictViewVariable.repr_impl.<locals>.<genexpr>+  s   øè ø€ ÒS¸%œl¨2¨u×5ÑSùs   ƒúdict_values([c              3   ór   •K  — | ].  \  }}d t        ‰|j                  «      › dt        ‰|«      › d�–— Œ0 y­w)ú(rt   ú)Nr�  )rM   rR   r�   r~   s      €r:   rQ   z-DictViewVariable.repr_impl.<locals>.<genexpr>-  s@   øè ø€ ò 
á��Uð ”˜R §¡Ó(Ð)¨¬L¸¸UÓ,CÐ+DÀAÔFñ
ùs   ƒ47údict_items([)r�  rw   r“  r)   r€   )r^   r~   rF   s    ` r:   r‚   zDictViewVariable.repr_impl&  sÀ   ø€ Ø�7‰7�fÒØ—I‘IÓRÀ$Ç/Á/ÔRÓRˆEÜ"×(Ñ(¨¨{¸5¸'ÀÐ-DÓEÐEØ�7‰7�hÒØ—I‘IÓSÀ4Ç?Á?ÔSÓSˆEÜ"×(Ñ(¨¨}¸U¸GÀ2Ð-FÓGÐGØ—	‘	ó 
à"Ÿo™oô
ó 
ˆô ×$Ñ$ R¨<¸°w¸bÐ)AÓBÐBr<   rÔ   c           
      óØ  •— |dk(  rÓ|s|r&t        ||dt        |«      › dt        |«      › d�«       | j                  j                  rXt	        | j                  j                  «      s9|j
                  j                  j                  | j                  j                  «       t        j                  t        t        | j                  «      «      t        «       ¬«      S t        ‰| �=  ||||«      S )Nr  r	  r
  r  r  )r    r•   rj  r\   r   rí   r  r  r   r  r  r  r—  r(   rW   r!  ©r^   r~   r  rÔ   rG   r`   s        €r:   r!  zDictViewVariable.call_method3  sÂ   ø€ ð �>Ò!á‘vÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð �|‰|×"Ò"Ô+=¸d¿l¹l×>QÑ>QÔ+RØ—	‘	×,Ñ,×0Ñ0°·±×1DÑ1DÔEÜ×1Ñ1Ü”X˜d×0Ñ0Ó1Ó2Ü.Ó0ôð ô ‰wÑ" 2 t¨T°6Ó:Ð:r<   c                 óT   — t        j                  |t        | j                  «      «      S )z&Sequence length for dict view objects.)r)   r€   r•   r“  r8  s     r:   Ú	sq_lengthzDictViewVariable.sq_lengthK  s   € ä×$Ñ$ R¬¨T¯_©_Ó)=Ó>Ð>r<   r²   r*  c                 óˆ   — t        j                  |t        «      j                  || gi «      }|j	                  |d|gi «       |S r2  ©r)   r€   r?   rT  r!  ©r^   r~   r²   r*  Úss        r:   r0  zDictViewVariable.nb_or_implO  s@   € ô ×!Ñ! "¤cÓ*×8Ñ8¸¸d¸VÀRÓHˆØ	�‰�b˜( U G¨RÔ0Øˆr<   c                 ó¢   — |r|| fn| |f\  }}t        j                  |t        «      j                  ||gi «      }|j	                  |d|gi «       |S )NÚdifference_updater«  )r^   r~   r²   r*  r-  r.  r­  s          r:   Únb_subtract_implz!DictViewVariable.nb_subtract_implZ  sV   € ñ *1˜ ™°t¸U°m‰ˆˆvÜ×!Ñ! "¤cÓ*×8Ñ8¸¸e¸WÀbÓIˆØ	�‰�bÐ-°¨x¸Ô<Øˆr<   c                 óˆ   — t        j                  |t        «      j                  || gi «      }|j	                  |d|gi «       |S )NÚintersection_updater«  r¬  s        r:   Únb_and_implzDictViewVariable.nb_and_implf  sA   € ô ×!Ñ! "¤cÓ*×8Ñ8¸¸d¸VÀRÓHˆØ	�‰�bÐ/°%°¸"Ô=Øˆr<   c                 óˆ   — t        j                  |t        «      j                  || gi «      }|j	                  |d|gi «       |S )NÚsymmetric_difference_updater«  r¬  s        r:   Únb_xor_implzDictViewVariable.nb_xor_implq  sA   € ô ×!Ñ! "¤cÓ*×8Ñ8¸¸d¸VÀRÓHˆØ	�‰�bÐ7¸%¸À"ÔEØˆr<   rZ  r\  )!r]  r^  r_  Ú__doc__r�  rd  Ú__annotations__rD   r   rX   Úpropertyr“  re  r,   rã   rf  rG  r  r)   r—  r)  rÎ   r*   r   r‚   r9   r!  r©  r0  r°  r³  r¶  rg  rh  s   @r:   rŽ  rŽ  ê  s  ø… ñð €Bˆˆd‰
ÓðÐ 1ð ¸Sð ÀTõ ð ð6˜Cò 6ó ð6ð
˜Tó ðNÐ7ð N¸EÀ#ÀtÀ)Ñ<Ló Nð
 ð"˜t OÑ4ò "ó ð"ð
"Ø-ð"à	ˆoÑ	ó"ó
ð.Ø-ð.Ø58ð.à	ó.ðCÐ7ð C¸Oó Cð;à'ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
õ;ð0?Ð7ð ?¸Oó ?ð ñ		à'ð	ð ð	ð ð		ð
 
ó	ð ñ	
à'ð
ð ð
ð ð	
ð
 
ó
ð  ñ		à'ð	ð ð	ð ð		ð
 
ó	ð ñ		à'ð	ð ð	ð ð		ð
 
÷	r<   rŽ  c            
       óØ   ‡ — e Zd ZeZdZedee   fd„«       Z	ede
e   fd„«       Zdefd„Zdddefd„Zdefd	„Zddd
edefd„Zdddededefd„Zdddede
e   deeef   def
ˆ fd„Zˆ xZS )r  rä   r4   c                 ó,   — t        | j                  «      S r6   )r?   r“  rˆ   s    r:   Ú	set_itemszDictKeysVariable.set_itemsƒ  s   € ä�4—?‘?Ó#Ð#r<   c                 óT   — | j                   D �cg c]  }|j                  ‘Œ c}S c c}w r6   )r“  rk   )r^   rN   s     r:   r—  zDictKeysVariable.view_items_vt‡  s    € ð #Ÿo™oÖ.˜�—“Ò.Ð.ùÒ.s   �%c                 ó   — t         S r6   )r   rˆ   s    r:   r8   zDictKeysVariable.python_typeŒ  s   € ÜÐr<   r~   r1   c                 ó"  — ddl m} | j                  j                  rXt	        | j                  j                  «      s9|j
                  j                  j                  | j                  j                  «        || j                  j                  «      S )Nr#   )ÚDictKeysIterator)	r  rÀ  rj  r\   r   rí   r  r  rF   )r^   r~   rÀ  s      r:   r  zDictKeysVariable.tp_iter_impl�  s[   € Ý*à�<‰<×ÒÔ'9¸$¿,¹,×:MÑ:MÔ'NØ�I‰I×(Ñ(×,Ñ,¨T¯\©\×-@Ñ-@ÔAÙ §¡× 2Ñ 2Ó3Ð3r<   c                 ó¼   — | j                   syg }| j                   D ](  }t        |j                  «      }|j                  |«       Œ* ddj	                  |«      z   dz   S )Nzdict_keys([])rž  rt   rŸ  ©r“  r   rk   rv   rw   )r^   rF   rn   ry   s       r:   r{   zDictKeysVariable.debug_repr–  sY   € Ø�ŠØ"à!ˆEØ—_‘_ò &�Ü*¨1¯4©4Ó0�Ø—‘˜WÕ%ð&ð ! 4§9¡9¨UÓ#3Ñ3°dÑ:Ð:r<   r½   c                 ó:   — | j                   j                  ||«      S r6   r}  r~  s      r:   rÿ   zDictKeysVariable.sq_contains   r  r<   r²   rI  c                 óì   — ddl m} t        |«      st        j                  t
        «      S |j	                  |t        j                  «      j                  ||j	                  |t        |   «      | |gi «      S ©Nr#   rK  ©
rP  rL  rB   r*   r  r,  r   Údictview_richcomparerT  r   ©r^   r~   r²   rI  rL  s        r:   rV  z!DictKeysVariable.richcompare_impl¦  óq   € õ 	/ä" 5Ô)Ü#×*Ñ*¬>Ó:Ð:Ø ×'Ñ'Ø”	×.Ñ.ó
ç
‰-Øà!×(Ñ(¨Ô-CÀBÑ-GÓHØØðð
 ó
ð
	
r<   r  rÔ   rG   c                 óœ   •— |dv r6t        | j                  |«      } ||d   j                  «      }t        |«      S t        ‰| �  ||||«      S ©N)Ú__and__Ú__iand__Ú__xor__Ú__ixor__r   ©r’  r¼  r/   rW   r!  )r^   r~   r  rÔ   rG   ÚmÚrr`   s          €r:   r!  zDictKeysVariable.call_method¾  sX   ø€ ð ð 
ñ 
ô ˜Ÿ™¨Ó-ˆAÙ�$�q‘'×#Ñ#Ó$ˆAÜ˜q“>Ð!Ü‰wÑ" 2 t¨T°6Ó:Ð:r<   )r]  r^  r_  r   r`  r�  r¹  r?   r)   r¼  r  r—  rŠ   r8   r  rd  r{   rÿ   rV  r9   r!  rg  rh  s   @r:   r  r  }  s  ø„ à€Mà	€Bàð$˜3˜Ñ/ò $ó ð$ð ð/˜t OÑ4ò /ó ð/ð˜Tó ð4Ð:ð 4¸ó 4ð;˜Có ;ð2Ø-ð2Ø5Dð2à	ó2ð
Ø-ð
Ø6Eð
ØKNð
à	ó
ð0;à'ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;ñ ;r<   r  c                   óÂ   ‡ — e Zd ZeZdZdZdZdZdZ	dZ
dZdZdZdefd„Zdddeeef   fˆ fd„Zedee   fd„«       Zdefd	„Zdddefd
„Zdddededefd„Zdefd„Zˆ xZS )r  r«   Nr4   c                  ó   — y)NTrU   rˆ   s    r:   r,   zDictValuesVariable.is_hashableð  s   € Ør<   r~   r1   c                 ó*   •— t         t        | �  |«      S r6   )rW   rŽ  rG  )r^   r~   r`   s     €r:   rG  zDictValuesVariable.hash_impló  s   ø€ ÜÔ% tÑ6°rÓ:Ð:r<   c                 ó,   — t        | j                  «      S r6   )r  r“  rˆ   s    r:   r—  z DictValuesVariable.view_items_vtö  s   € ä�D—O‘OÓ$Ð$r<   c                 ó   — t         S r6   )r   rˆ   s    r:   r8   zDictValuesVariable.python_typeú  s   € ÜÐr<   c                 ó"  — ddl m} | j                  j                  rXt	        | j                  j                  «      s9|j
                  j                  j                  | j                  j                  «        || j                  j                  «      S )Nr#   )ÚDictValuesIterator)	r  rÙ  rj  r\   r   rí   r  r  rF   )r^   r~   rÙ  s      r:   r  zDictValuesVariable.tp_iter_implý  s[   € Ý,à�<‰<×ÒÔ'9¸$¿,¹,×:MÑ:MÔ'NØ�I‰I×(Ñ(×,Ñ,¨T¯\©\×-@Ñ-@ÔAÙ! $§,¡,×"4Ñ"4Ó5Ð5r<   r²   rI  c                 ó$   — ddl m}  || |||«      S )Nr#   )Úobject_richcompare)rƒ  rÛ  )r^   r~   r²   rI  rÛ  s        r:   rV  z#DictValuesVariable.richcompare_impl  s   € õ 	8á! $¨¨E°2Ó6Ð6r<   c                 ó¨   — | j                   syg }| j                   D ]  }t        |«      }|j                  |«       Œ  ddj                  |«      z   dz   S )Nzdict_values([])r¡  rt   rŸ  )r“  r   rv   rw   )r^   rF   rO   rz   s       r:   r{   zDictValuesVariable.debug_repr  sU   € Ø�ŠØ$à!ˆEØ—_‘_ò &�Ü*¨1Ó-�Ø—‘˜WÕ%ð&ð # T§Y¡Y¨uÓ%5Ñ5¸Ñ<Ð<r<   )r]  r^  r_  r   r`  r�  r0  r3  r°  Únb_inplace_subtract_implr³  Únb_inplace_and_implr¶  Únb_inplace_xor_implre  r,   rã   rf  rG  r¹  r  r)   r—  rŠ   r8   r  rd  rV  r{   rg  rh  s   @r:   r  r  Ò  sØ   ø„ à€Mð  
€Bð €JØÐØÐØ#ÐØ€KØÐØ€KØÐð˜Tó ð;Ð7ð ;¸EÀ#ÀtÀ)Ñ<Lõ ;ð ð%˜t OÑ4ò %ó ð%ð˜Tó ð6Ð:ð 6¸ó 6ð7Ø-ð7Ø6Eð7ØKNð7à	ó7ð=˜C÷ =r<   r  c            
       óØ   ‡ — e Zd ZeZdZeded   fd„«       Zede	e
   fd„«       Zdefd„Zdefd„Zdd	d
e
de
fd„Zdd	de
dede
fd„Zdd	de
fd„Zdd	dede	e
   deee
f   de
f
ˆ fd„Zˆ xZS )r  rF   r4   r+   c           
      óœ   — | j                   D ��ch c]/  \  }}t        t        j                  |j                  |g«      «      ’Œ1 c}}S c c}}w r6   )r“  r+   r   r  rk   rm   s      r:   r¼  zDictItemsVariable.set_items  sD   € ð Ÿ™÷
á��1ô œI×3Ñ3°Q·T±T¸1°IÓ>Õ?ó
ð 	
ùó 
s   �4Ac                 óŠ   — | j                   D ��cg c]&  \  }}t        j                  |j                  |g«      ‘Œ( c}}S c c}}w r6   )r“  r   r  rk   rm   s      r:   r—  zDictItemsVariable.view_items_vt$  s5   € ð @D¿¹×O±t°q¸!”	×'Ñ'¨¯©¨q¨	Õ2ÓOÐOùÓOs   �+?c                 ó   — t         S r6   )r   rˆ   s    r:   r8   zDictItemsVariable.python_type)  s   € ÜÐr<   c                 óæ   — | j                   syg }| j                   D ]=  \  }}t        |j                  «      }t        |«      }|j                  d|› d|› d�«       Œ? ddj	                  |«      z   dz   S )Nzdict_items([])r£  rt   r¤  r¥  rŸ  rÂ  rx   s         r:   r{   zDictItemsVariable.debug_repr,  sv   € Ø�ŠØ#à!ˆEØŸ™ò 8‘��1Ü*¨1¯4©4Ó0�Ü*¨1Ó-�Ø—‘˜q  	¨¨G¨9°AÐ6Õ7ð8ð " D§I¡I¨eÓ$4Ñ4°tÑ;Ð;r<   r~   r1   r½   c                 óø  — ddl m} t        |«      st        |d|j	                  «       › d�«       t        |t        j                  «      ržt        |j                  «      dk(  r†|j                  \  }}t        |«      }|| j                  j                  vrt        j                  |d«      S | j                  j                  |   }t        j                  ||j                  |«      «      S  || j                  ||«      S )Nr	   )Úiter_containsrü   rý   F)Úutilsræ  r,   r   rþ   rL   r   r  r•   rF   r+   rj  r)   r€   Úis_python_equalr—  )r^   r~   r½   ræ  rR   ÚvalÚkey_htÚstoreds           r:   rÿ   zDictItemsVariable.sq_contains7  sÑ   € õ 	*ä˜4Ô Ü˜RÐ#5°d×6KÑ6KÓ6MÐ5NÈaÐ!PÔQô �dœI×3Ñ3Ô4¼¸T¿Z¹Z»ÈAÒ9MØ—z‘z‰HˆC�Ü$ SÓ)ˆFØ˜TŸ\™\×/Ñ/Ñ/Ü&×,Ñ,¨R°Ó7Ð7Ø—\‘\×'Ñ'¨Ñ/ˆFÜ"×(Ñ(¨¨S×-@Ñ-@ÀÓ-HÓIÐIá˜T×/Ñ/°°rÓ:Ð:r<   r²   rI  c                 óì   — ddl m} t        |«      st        j                  t
        «      S |j	                  |t        j                  «      j                  ||j	                  |t        |   «      | |gi «      S rÅ  rÆ  rÈ  s        r:   rV  z"DictItemsVariable.richcompare_implK  rÉ  r<   c                 ó"  — ddl m} | j                  j                  rXt	        | j                  j                  «      s9|j
                  j                  j                  | j                  j                  «        || j                  j                  «      S )Nr#   )ÚDictItemsIterator)	r  rî  rj  r\   r   rí   r  r  rF   )r^   r~   rî  s      r:   r  zDictItemsVariable.tp_iter_implc  s[   € Ý+à�<‰<×ÒÔ'9¸$¿,¹,×:MÑ:MÔ'NØ�I‰I×(Ñ(×,Ñ,¨T¯\©\×-@Ñ-@ÔAÙ  §¡×!3Ñ!3Ó4Ð4r<   r  rÔ   rG   c                 óœ   •— |dv r6t        | j                  |«      } ||d   j                  «      }t        |«      S t        ‰| �  ||||«      S rË  rÐ  )r^   r~   r  rÔ   rG   Úfn_hdlÚret_valr`   s          €r:   r!  zDictItemsVariable.call_methodj  sY   ø€ ð ð 
ñ 
ô ˜TŸ^™^¨TÓ2ˆFÙ˜T !™W×.Ñ.Ó/ˆGÜ˜wÓ'Ð'Ü‰wÑ" 2 t¨T°6Ó:Ð:r<   )r]  r^  r_  r   r`  r�  r¹  r?   r¼  r  r)   r—  rŠ   r8   rd  r{   rÿ   rV  r  r9   r!  rg  rh  s   @r:   r  r    s  ø„ à€Mà	€Bàð
˜3Ð0Ñ1ò 
ó ð
ð ðP˜t OÑ4ò Pó ðPð˜Tó ð	<˜Có 	<ð;Ø-ð;Ø5Dð;à	ó;ð(
Ø-ð
Ø6Eð
ØKNð
à	ó
ð05Ð:ð 5¸ó 5ð;à'ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;ñ ;r<   r  c            	       óø   — e Zd ZdZededeeef   fd„«       Z	edddedeeef   fd„«       Z
dedddd	fd
„Zdedefd„Zdeeef   fd„Zdedefd„Zdededd	fd„Zdedd	fd„Zdedefd„Zdefd„Zdee   fd„Zy	)ÚSideEffectsProxyDictzm
    A proxy dict that allows us to track mutations to the dict using side
    effects table as storage.
    rk   r4   c                 óÎ  — t        | t        j                  «      ri S t        | t        j                  «      rt
        j                  | j                  «      S | j                  «       }|t        urAt        | t        j                  «      r| j                  d«      S t        j                  |d«      S t        ddt        | «      › �dt        | «      › �g t         j"                  ¢¬«       y )Nr…  z-unsupported variable type for __dict__ accesszVariableTracker type: z.Dynamo does not know how to get __dict__ from rØ   )r   r   ÚNestedUserFunctionVariablerL   ÚLocalGeneratorFunctionVariableró  Úget_example_value_dictrk   Úget_real_python_backed_valuer'   r  Ú_getattr_staticÚobjectÚ__getattribute__r   rŠ   r
   Ú
DYNAMO_BUG)rk   r�   s     r:   r÷  z+SideEffectsProxyDict.get_example_value_dict‡  sÆ   € ä�"”i×:Ñ:Ô;ð ˆIÜ˜œI×DÑDÔEÜ'×>Ñ>¸r¿u¹uÓEÐEà×3Ñ3Ó5ˆEØœNÑ*Ü˜b¤)×"EÑ"EÔFØ×-Ñ-¨jÓ9Ð9ä!×2Ñ2°5¸*ÓEÐEäØKØ4´T¸"³X°JÐ?Ø"PÔQUÐVXÓQYÐPZÐ [ðÜ*×5Ñ5ðö	r<   r~   r1   c                 ót  — t        |t        j                  «      rã| j                  j                  j                  |dt        j                  «      r®| j                  j                  j                  |d«      }t        |t        «      rxi }|j                  j                  «       D ]W  \  }}	 |j                  j                  «       }t        t"        «      s"t        dd|›�dg t        j$                  ¢¬«       |||<   ŒY |S t&        j)                  |«      }|j                  «       D ��ci c]J  \  }}|t+        j,                  | ||j.                  xr  t1        t3        |j.                  d«      |«      ¬«      “ŒL c}}S # t        $ r/ t        dd|j                  › �dg t        j                   ¢¬«       Y Œíw xY wc c}}w )	Nr…  z#non-constant key in object __dict__zkey=z@Dynamo expects object __dict__ replacement keys to be constants.rØ   z!non-string key in object __dict__z2Dynamo expects object __dict__ keys to be strings.)r\   )rL   r   r  rí   rî   Úhas_pending_mutation_of_attrr&   ÚGENERIC_SETATTRÚ	load_attrrD   rF   rk   r}   r>   r   r
   r=  rd  rÝ   ró  r÷  r)   r€   r\   r   r   )r~   rk   Údict_vtÚresultrR   r�   Ú	key_valueÚexample_value_dicts           r:   Úget_value___dict__z'SideEffectsProxyDict.get_value___dict__¡  s   € ô Ø”	×3Ñ3ô
à�i‰i×$Ñ$×AÑAØ�
Ô,×<Ñ<ô
ð —i‘i×,Ñ,×6Ñ6°r¸:ÓFˆGÜ˜'Ô#4Ô5Ø�Ø")§-¡-×"5Ñ"5Ó"7ò .‘J�C˜ðØ$'§F¡F×$=Ñ$=Ó$?˜	ô & i´Ô5Ü%Ø$GØ&*¨9¨-Ð$8Ø(\Ø"AÔ$5×$@Ñ$@Ð"Aõ	ð ).�F˜9Ò%ð#.ð$ �ô
 2×HÑHÈÓLÐð 1×6Ñ6Ó8÷
ñ ��Uð ”×&Ñ&ØØØ—y‘yò NÜ%¤j°·±¸JÓ&GÈÓMô	ñ ó
ð 	
øô- /ò Ü%Ø$IØ&*¨3¯6©6¨( OØ(jØ"BÔ$5×$AÑ$AÐ"B÷	ðüó,
s   Â)E9Ä&AF4Å95F1Æ0F1r½   Nc                 óv   — || _         |j                  j                  | _        | j                  ||«      | _        y r6   )r½   rí   rî   r  Ú	item_dict)r^   r½   r~   s      r:   rX   zSideEffectsProxyDict.__init__Ó  s/   € ØˆŒ	ØŸI™I×2Ñ2ˆÔØ×0Ñ0°°TÓ:ˆ�r<   rR   c                 ó^   — t         }t        ||«      r|j                  j                  «       S |S r6   )r+   r   rk   r}   )r^   rR   ÚHashers      r:   Ú_maybe_unwrap_keyz&SideEffectsProxyDict._maybe_unwrap_keyØ  s(   € Ü ˆÜ.4°S¸&Ô.Aˆs�v‰v×(Ñ(Ó*ÐJÀsÐJr<   c           	      ó  — | j                   j                  j                  | j                  i «      j	                  «       D ��ci c]=  \  }}| j                   j                  | j                  |t        j                  «      r||“Œ? c}}S c c}}w r6   )rî   Ústore_attr_mutationsr¯   r½   rF   rþ  r&   ÚINSTANCE_DICT©r^   r  r�   s      r:   Úside_effects_tablez'SideEffectsProxyDict.side_effects_tableÜ  s{   € ð  $×0Ñ0×EÑE×IÑIØ—	‘	˜2ó ç‰e‹g÷	
á��eð × Ñ ×=Ñ=Ø—	‘	˜4Ô!1×!?Ñ!?ôð	 �%‰Kó
ð 	
ùó 
s   ÁABc                 óü   — | j                  |«      }| j                  j                  | j                  |t        j
                  «      r(| j                  j                  | j                  |d¬«      S | j                  |   S ©NT)Ú
deleted_ok)r
  rî   rþ  r½   r&   r  r   r  ©r^   rR   r  s      r:   Ú__getitem__z SideEffectsProxyDict.__getitem__ç  sk   € Ø×%Ñ% cÓ*ˆØ×Ñ×9Ñ9Ø�I‰I�tÔ-×;Ñ;ô
ð ×$Ñ$×.Ñ.¨t¯y©y¸$È4Ð.ÓPÐPØ�~‰~˜dÑ#Ð#r<   r�   c                 óÂ   — | j                  |«      }t        |t        «      st        dt	        |«      › �«      ‚| j
                  j                  | j                  ||«       y )NzExpected str key, got )r
  r   rd  rZ   rŠ   rî   Ústore_instance_dict_attrr½   )r^   rR   r�   r  s       r:   Ú__setitem__z SideEffectsProxyDict.__setitem__ï  sO   € à×%Ñ% cÓ*ˆÜ�dœCÔ Ü Ð#9¼$¸t»*¸Ð!FÓGÐGØ×Ñ×2Ñ2°4·9±9¸dÀEÕJr<   c                 ó˜   — | j                  |«      }| j                  j                  | j                  |t	        j
                  «       «       y r6   )r
  rî   r  r½   r   r‹   r  s      r:   Ú__delitem__z SideEffectsProxyDict.__delitem__ö  s:   € Ø×%Ñ% cÓ*ˆØ×Ñ×2Ñ2Ø�I‰I�tœY×6Ñ6Ó8õ	
r<   c                 ó0  — | j                  |«      }| j                  j                  | j                  |t        j
                  «      rC| j                  j                  | j                  |d¬«      }t        |t        j                  «       S || j                  v S r  )r
  rî   rþ  r½   r&   r  r   rL   r   r‹   r  )r^   rR   r  r�   s       r:   rŒ   z!SideEffectsProxyDict.__contains__ü  s€   € Ø×%Ñ% cÓ*ˆØ×Ñ×9Ñ9Ø�I‰I�tÔ-×;Ñ;ô
ð ×%Ñ%×/Ñ/°·	±	¸4ÈDÐ/ÓQˆEÜ! %¬×)BÑ)BÓCÐCÐCØ�t—~‘~Ð%Ð%r<   c                 ó&   — t        d„ | D «       «      S )Nc              3   ó    K  — | ]  }d –— Œ y­w)r#   NrU   )rM   Ú_s     r:   rQ   z/SideEffectsProxyDict.__len__.<locals>.<genexpr>  s   è ø€ Ò#˜”1Ñ#ùs   ‚)rª   rˆ   s    r:   Ú__len__zSideEffectsProxyDict.__len__  s   € ÜÑ#˜dÔ#Ó#Ð#r<   c              #   ó`  K  — t         }| j                  «       }|j                  «       D ]=  \  }}t        |t        j
                  «      rŒ! |t        j                  |«      «      –— Œ? | j                  j                  «       D ]'  \  }}||vsŒ |t        j                  |«      «      –— Œ) y ­wr6   )	r+   r  rF   rL   r   r‹   r*   r  r  )r^   r	  Údrn   rO   s        r:   Ú__iter__zSideEffectsProxyDict.__iter__  sœ   è ø€ Ü ˆØ×#Ñ#Ó%ˆØ—G‘G“Iò 	5‰DˆAˆqÜ˜!œY×6Ñ6Ô7ØÙÔ)×0Ñ0°Ó3Ó4Ó4ð	5ð
 —N‘N×(Ñ(Ó*ò 	9‰DˆAˆqØ˜ŠzÙÔ-×4Ñ4°QÓ7Ó8Ó8ñ	9ùs   ‚BB.Â B.)r]  r^  r_  r·  Ústaticmethodr)   r9   rd  rú  r÷  r  rX   ÚkVr
  r  r  r  r  re  rŒ   rf  r  r   r+   r!  rU   r<   r:   ró  ró  �  s%  „ ñð
 ð ?ð °t¸CÀ¸KÑ7Hò ó ðð2 ð/
Ø'ð/
Ø-<ð/
à	ˆc�?Ð"Ñ	#ò/
ó ð/
ðb;˜_ð ;Ð2Mð ;ÐRVó ;ð
K Rð K¨Có Kð	
 D¨¨oÐ)=Ñ$>ó 	
ð$˜rð $ oó $ðK˜rð K¨/ð K¸dó Kð
˜rð 
 dó 
ð& ð & tó &ð$˜ó $ð
9˜( ?Ñ3ô 
9r<   ró  c            
       ó  ‡ — e Zd ZdZedddedd fd„«       Zdedddeddfˆ fd	„Zd
e	deddfd„Z
d
e	ddfd„Zd
e	defd„Zd
e	defd„Zd
e	deg ef   defd„Zddd
e	dee   dee	ef   def
ˆ fd„Zdd„Zdddee   ddfd„Zˆ xZS )ÚDunderDictVariablezrepresents object.__dict__r~   r1   rk   r4   c                 ó¢   — |j                   r
t        «       n	t        «       }|j                   xr t        |j                   d«      } | ||||¬«      S )Nr…  )r~   r“   r\   )r\   r$   r%   r   )Úclsr~   rk   r  r\   s        r:   r  zDunderDictVariable.create  sK   € ð 35·)²)Ô,Ô.ÔAUÓAWˆØ—‘Ò@œz¨"¯)©)°ZÓ@ˆáØØØ"Øô	
ð 	
r<   rG   Nc                 óH   •— t        ‰| �  i fi |¤Ž t        ||«      | _        y r6   )rW   rX   ró  rF   )r^   rk   r~   rG   r`   s       €r:   rX   zDunderDictVariable.__init__(  s%   ø€ ô 	‰Ñ˜Ñ&˜vÒ&Ü)¨"¨bÓ1ˆ�
r<   r  r�   c                 ó"   — || j                   |<   y r6   ©rF   r  s      r:   ÚsetitemzDunderDictVariable.setitem1  s   € Ø ˆ�
‰
�4Òr<   c                 óV   — | j                  |«      st        |«      ‚| j                  |= y r6   )rõ   r—   rF   ©r^   r  s     r:   ÚdelitemzDunderDictVariable.delitem4  s$   € Ø�}‰}˜TÔ"Ü˜4“.Ð Ø�J‰J�tÑr<   c                 ó    — | j                   |   S r6   r*  r-  s     r:   ÚgetitemzDunderDictVariable.getitem9  s   € Ø�z‰z˜$ÑÐr<   c                 ó   — || j                   v S r6   r*  r-  s     r:   rõ   zDunderDictVariable.contains<  s   € Ø�t—z‘zÐ!Ð!r<   Údefaultc                 óv   — | j                  |«      r| j                  |«      S  |«       }|| j                  |<   |S r6   )rõ   r0  rF   )r^   r  r2  r�   s       r:   Úgetitem_or_defaultz%DunderDictVariable.getitem_or_default?  s9   € ð
 �=‰=˜ÔØ—<‘< Ó%Ð%á“IˆEØ$ˆD�J‰J�tÑØˆLr<   rÔ   c           
      óØ   •— |dk(  rS|s|r&t        ||dt        |«      › dt        |«      › d�«       t        t        | j                  «      t        «       d ¬«      S t        ‰| �  ||||«      S )Nr]   r	  r
  r  )r“   r\   )r    r•   rD   r9   rF   r(   rW   r!  r§  s        €r:   r!  zDunderDictVariable.call_methodK  su   ø€ ð �6Š>Ù‘vÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ô %Ü�T—Z‘ZÓ Ô0@Ó0BÈ4ôð ô ‰wÑ" 2 t¨T°6Ó:Ð:r<   c                  ó   — y r6   rU   rˆ   s    r:   r„   z0DunderDictVariable.install_dict_keys_match_guarda  r‰  r<   c                  ó   — y r6   rU   r‹  s      r:   r÷   z.DunderDictVariable.install_dict_contains_guardd  rŒ  r<   r[  )r]  r^  r_  r·  Úclassmethodr)   r  r   rX   rd  r+  r.  r0  re  rõ   r   r4  r  r9   r!  r„   r÷   rg  rh  s   @r:   r%  r%    sH  ø„ Ù$àð
à'ð
ð ð
ð 
ò	
ó ð
ð2àð2ð (ð2ð ð	2ð
 
õ2ð!˜Cð !¨ð !¸Dó !ð˜Cð  Dó ð
 ˜Cð   Oó  ð"˜Sð " Tó "ð
àð
ð ˜"˜oÐ-Ñ.ð
ð 
ó	
ð;à'ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
õ;ó,ðØ-ðØ59¸/Ñ5Jðà	÷r<   r%  )Sr·  re   ró   ro  Úcollections.abcr   r   Útypingr   r   r   Útorch.utils._pytreer   r  r
   r   r   Úbytecode_transformationr   r   r   r   rE  r   r   r   Úguardsr   r   r\   r   r   r   r   rç  r   r   r   r   r   r   r    r!   r"   rc   r$   r%   r&   r'   r(   r)   Úconstantr*   Úhashabler+   r,   r-   rƒ  r.   Úsetsr/   Útorch._dynamo.codegenr0   Útorch._dynamo.symbolic_convertr1   Ú	functionsr2   re  r;   rB   rD   r  r‡  rŽ  r  r  r  rd  r#  ÚabcÚMutableMappingró  r%  rU   r<   r:   ú<module>rF     sP  ðñó& Û Û ß .ß ,Ñ ,å *ç 6Ñ 6÷ó ÷ LÑ Kß 0÷ó ÷
÷ 
õ 
÷÷ õ 'ß DÑ DÝ 'Ý ñ Ý/ÝHå/ð/�oð /¨$ó /ð
B˜_ð B°ó BôC-˜ô C-ôLw2˜?ô w2ôtÐ 1ô ôP�ô PôfR;Ð'ô R;ôjB=Ð)ô B=ôJd;Ð(ô d;ðN �sÑ€ôQ9˜;Ÿ?™?×9Ñ9¸"¸oÐ:MÑNô Q9ôhRÐ*õ Rr<   