+
    –°³jJk  ã            	      óÐ  € R t ^ RIHt ^ RIHt ^ RIHtHt ^ RIH	t	H
t
Ht ^ RIt^ RIt^ RIt^ RIHtHtHtHtHtHtHtHt ^ RIHu Ht ^ RIHu Ht ^ RIHtHt ^RI H!t! ]
'       d   ^ RI"t"^ R	I#H$t$H%t%H&t& ^ R
I'H(t(H)t) ^ RIH*t* . RIOt+]! R4      t,]! R4      t-]! R4      t.]!! ]P^                  P`                  RR7      R R l4       t1Rt2R]3R]3R]3R]3R]3R]3R]3R]33 F)  w  t2t3]!! ]3RR7      ! ]3Ph                  4      ]5! 4       ]2&   A3K+  	  A2]!! ]Pl                  RR7      RJRRRR/R R  lll4       t6]!! ]Pn                  RR7      RJRRRR/R! R" lll4       t7]!! ]Pp                  RR7      RJRRRR/R# R$ lll4       t8 ! R% R&]94      t:]:! 4       t;A:]! RRRRRR'7       ! R( R)4      4       t<R* R+ lt=]!! ]P|                  RR7      RRRR/R, R- ll4       t>]!! ]P~                  RR7      RKRRRR/R. R/ lll4       t?]!! ]P€                  RR7      RKRRRR/R0 R1 lll4       t@]!! ]P‚                  RR7      RJRRRR/R2 R3 lll4       tA]!! ]P^                  P„                  RR7      RLR4 R5 ll4       tC]!! ]Pˆ                  RR7      RJRRRR/R6 R7 lll4       tD]!! ]P^                  PŠ                  RR7      RLR8 R9 ll4       tF]!! ]PŽ                  RR7      RJRRRR/R: R; lll4       tG]!! ]P�                  RR7      R< R= l4       tH]P’                  P•                  ]K! R4      4      tL]Lf	   ]M! R>4      h]!! ]LPœ                  RRR?7      R@ RA l4       tO]P                   ! RRBRC7      ;_uu_ 4        ]P’                  P•                  ]Q4      tR]Rf	   ]M! RD4      h RRR4       ]!! ]RP¦                  RRR?7      RE RF l4       tT]!! ]RPœ                  RRR?7      RG RH l4       tUR#   + '       g   i     LN; i)Mz)
Python polyfills for torch.utils.pytree
)Úannotations)Údeque)Ú	dataclassÚfield)ÚAnyÚTYPE_CHECKINGÚTypeVarN)Úis_namedtupleÚis_namedtuple_classÚis_namedtuple_instanceÚis_structseqÚis_structseq_classÚis_structseq_instanceÚnamedtuple_fieldsÚstructseq_fields)ÚBUILTIN_TYPESÚSTANDARD_DICT_TYPES)Úsubstitute_in_graph)ÚCallableÚIterableÚMapping)ÚSelfÚTypeIs)ÚPyTreer	   r
   r   r   r   r   r   r   Ú_TÚ_KTÚ_VTT)Úcan_constant_fold_throughc               ó$   € V ^8„  d   QhRRRRRR/# )é   Úargsr   ÚkwargsÚreturnÚbool© )Úformats   "Ú_/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_dynamo/polyfills/pytree.pyÚ__annotate__r'   I   s!   € ÷ ñ ˆSð ˜Cð  Dñ ó    c                 ó   € \        R 4      h)zeShould not be called directly because the original function will be called in the constant fold path.)Ú
ValueError)r    r!   s   *,r&   Ú_r+   E   s   € ô ð	Róð r(   Ú Únone_is_leafFÚ	namespacec          
     ó,   € V ^8„  d   QhRRRRRRRRR	R/# )
r   Úis_leafúCallable[[PyTree], bool] | NoneÚtreer   r-   r#   r.   Ústrr"   r$   )r%   s   "r&   r'   r'   f   s<   € ÷ ñ ð -ðØ
ðð
 ðð ðð 
ñr(   c              ó¢   € V f	   V'       g   Ve   V! V 4      '       d   R# \         P                  P                  \        V 4      VR7      f   R# R# )NT©r.   F)ÚoptreeÚregister_pytree_nodeÚgetÚtype©r2   r0   r-   r.   s   "&$$r&   Útree_is_leafr;   e   sA   € ð 	ŠŸ¨7Ò+>Á7È4Ç=Â=ÙÜ×"Ñ"×&Ñ&¤t¨D£z¸YÐ&ÓGÒOÙÙr(   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   r0   r1   r2   r   r-   r#   r.   r3   r"   úIterable[Any]r$   )r%   s   "r&   r'   r'   v   s<   € ÷ )ñ )ð -ð)Ø
ð)ð
 ð)ð ð)ð ñ)r(   c            #  óè   "  € V .pV'       dc   VP                  4       p\        VVVVR 7      '       d   Vx € K3  \        P                  ! VVVVR 7      vrgVP	                  \        V4      4       Kj  R# 5i)©r0   r-   r.   N)Úpopr;   r6   Útree_flatten_one_levelÚextendÚreversed)r2   r0   r-   r.   ÚstackÚnodeÚchildrenr+   s   "&$$    r&   Ú	tree_iterrG   u   su   é € ð ˆF€Eß
Ø�y‰y‹{ˆÜØØØ%Ø÷	
ó 
ð ŠJÙä×4Ò4ØØØ%Øô	
ˆˆð 	�‰”X˜hÓ'Ö(ñ# ùs   ‚A2ŽA$A2c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   r0   r1   r2   r   r-   r#   r.   r3   r"   ú	list[Any]r$   )r%   s   "r&   r'   r'   ”   s<   € ÷ ñ ð -ðØ
ðð
 ðð ðð ñr(   c         	     ó2   € \        \        V VVVR 7      4      # ©r?   )ÚlistrG   r:   s   "&$$r&   Útree_leavesrM   “   s%   € ô ÜØØØ%Øô		
óð r(   c                  ó>   a € ] tR t^¦tRtR V 3R lltR R ltRtV ;t# )Ú	_Asteriskc               ó   € V ^8„  d   QhRR/# )r   r"   r   r$   )r%   s   "r&   r'   Ú_Asterisk.__annotate__©   s   € ÷ )ñ )˜ñ )r(   c                	ó$   <€ \         SV `  V R 4      # ©Ú*)ÚsuperÚ__new__)ÚclsÚ	__class__s   &€r&   rV   Ú_Asterisk.__new__©   s   ø€ Ü‰w‰˜s CÓ(Ð(r(   c               ó   € V ^8„  d   QhRR/# ©r   r"   r3   r$   )r%   s   "r&   r'   rQ   ¬   s   € ÷ ñ ˜#ñ r(   c                	ó   € R # rS   r$   ©Úselfs   &r&   Ú__repr__Ú_Asterisk.__repr__¬   s   € Ùr(   r$   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú	__slots__rV   r_   Ú__static_attributes__Ú__classcell__)rX   s   @r&   rO   rO   ¦   s   ø† Ø€I÷)ð )÷ó r(   rO   )ÚfrozenÚreprÚeqÚunsafe_hashÚslotsc                  ót  € ] tR t^´t$ RtR]R&   R]R&   R]R&   R]R	&   R
]R&   R]R&   R]R&   ]! RR7      tR]R&   ]! RR7      tR]R&   ]! RR7      t	R]R&   R R lt
R R ltR R ltR R ltR R lt]R  R! l4       tR" R# ltR$ R% ltR& R' ltR( R) ltR* R+ ltR, R- ltR. R/ ltR0 R1 ltR2 R3 ltR4tR5# )6Ú
PyTreeSpecz0Analog for :class:`optree.PyTreeSpec` in Python.ztuple[PyTreeSpec, ...]Ú	_childrenúbuiltins.type | NoneÚ_typer   Ú	_metadataztuple[Any, ...]Ú_entriesz7Callable[[Any | None, Iterable[PyTree]], PyTree] | NoneÚ_unflatten_funcr#   r-   r3   r.   F)ÚinitÚintÚ	num_nodesÚ
num_leavesÚnum_childrenc               ó   € V ^8„  d   QhRR/# )r   r"   ÚNoner$   )r%   s   "r&   r'   ÚPyTreeSpec.__annotate__Ä   s   € ÷ ?ñ ? $ñ ?r(   c               	óŒ  € V P                   f{   \        V P                  4      ^ 8w  d   \        R4      hV P                  e   \        R4      hV P
                  R	8w  d   \        R4      hV P                  e   \        R4      h^p^p^ pMv\        V P                  4      '       g   \        R4      h^p^ pV P                   F'  pWP                  ,          pW$P                  ,          pK)  	  \        V P                  4      p\        P                  V RV4       \        P                  V RV4       \        P                  V RV4       R # )
NzLeaf node must have no childrenzLeaf node must have no metadatazLeaf node must have no entriesz%Leaf node must have no unflatten_funcú1Non-leaf node must have a callable unflatten_funcrw   rx   ry   r$   )rq   Úlenro   ÚAssertionErrorrr   rs   rt   Úcallablerw   rx   ÚobjectÚ__setattr__)r^   rw   rx   ry   Úchilds   "    r&   Ú__post_init__ÚPyTreeSpec.__post_init__Ä   s  € Ø�:‰:ÒÜ�4—>‘>Ó" aÔ'Ü$Ð%FÓGÐGØ�~‰~Ò)Ü$Ð%FÓGÐGØ�}‰} Ô"Ü$Ð%EÓFÐFØ×#Ñ#Ò/Ü$Ð%LÓMÐMØˆIØˆJØ‰Lä˜D×0Ñ0×1Ò1Ü$ØGóð ð ˆIØˆJØŸœ�ØŸ_™_Õ,�	Ø×.Ñ.Õ.’
ñ (ô ˜tŸ~™~Ó.ˆLä×Ñ˜4 ¨iÔ8Ü×Ñ˜4 ¨zÔ:Ü×Ñ˜4 °Ö>r(   c               ó   € V ^8„  d   QhRR/# r[   r$   )r%   s   "r&   r'   r|   á   s   € ÷ $1ñ $1˜Sñ $1r(   c               	ó¶   a a€ R  VV 3R llo\        S! S 4      4      .S P                  '       d   R.M. ORS P                  : 2NpRRP                  V4       R2# )c               ó    € V ^8„  d   QhRRRR/# )r   Útreespecrn   r"   r3   r$   )r%   s   "r&   r'   Ú)PyTreeSpec.__repr__.<locals>.__annotate__â   s   € ÷ 	ñ 	˜Zð 	¨Cñ 	r(   c                óü  <€ V P                  4       '       d    V P                  e   \        R4      h\        # V P                  f   \        R4      h\	        V P
                  4      '       g   \        R4      hV P                   Uu. uF  pS! V4      NK  	  ppV P                  \        9   gx   V P                  \        R 4      J d   SP                  '       dM   \        P                  ! V P                  4      '       g'   \        P                  ! V P                  4      '       d   V P                  V P                  V4      # RV P                  P                   RV P                  : RRP                  V4       R2# u upi )	Nz!Leaf treespec must have type Noneú"Non-leaf treespec must have a typez5Non-leaf treespec must have a callable unflatten_funczCustomTreeNode(Ú[z], [ú, z]))r0   r9   r€   Ú	_asteriskr�   rt   ro   r   r-   r6   r
   r   rr   ra   Újoin)rŠ   ÚsubspecÚchildren_representationsÚhelperr^   s   &  €€r&   r”   Ú#PyTreeSpec.__repr__.<locals>.helperâ   sH  ø€ Ø×Ñ×!Ò!Ø—=‘=Ò,Ü(Ð)LÓMÐMÜ Ð à�}‰}Ò$Ü$Ð%IÓJÐJÜ˜H×4Ñ4×5Ò5Ü$ØKóð ð 08×/AÒ/Aó(Ù/A G‘�w–Ñ/Að %ð (ð —‘¤Ô.Ø—M‘M¤T¨$£ZÓ/¸×8I×8IÐ8IÜ×-Ò-¨h¯m©m×<Ò<Ü×,Ò,¨X¯]©]×;Ò;à×/Ñ/Ø×&Ñ&Ø,óð ð
 " (§-¡-×"8Ñ"8Ð!9¸¸8×;MÑ;MÑ:Pð QØ—I‘IÐ6Ó7Ð8¸ð<ðùò(s   ÂE9Ú
NoneIsLeafz
namespace=zPyTreeSpec(r�   Ú))r3   r-   r.   r‘   )r^   Úinnerr”   s   b @r&   r_   ÚPyTreeSpec.__repr__á   sj   ù€ ÷	ñ 	ô> ‘�t“Óð
à $× 1× 1Ð 1ˆ|‰n°rð
ð ˜Ÿ™Ñ*Ð+ð
ˆð
 ˜TŸY™Y uÓ-Ð.¨aÐ0Ð0r(   c               ó   € V ^8„  d   QhRR/# ©r   r"   rv   r$   )r%   s   "r&   r'   r|     s   € ÷ ñ ˜Cñ r(   c               	ó   € V P                   # ©N)rx   r]   s   "r&   Ú__len__ÚPyTreeSpec.__len__  s   € Ø�‰Ðr(   c               ó    € V ^8„  d   QhRRRR/# )r   Úotherr   r"   r#   r$   )r%   s   "r&   r'   r|   
  s   € ÷ 1ñ 1˜Cð 1 tñ 1r(   c               	óþ  € \        V\        4      '       g   \        # V P                  VP                  8w  gl   V P                  VP                  8w  gQ   V P
                  VP
                  8w  g6   V P                  VP                  Jg   V P                  VP                  8w  d   R # V P                  '       d0   VP                  '       d   V P                  VP                  8w  d   R # V P                  VP                  8H  # )F)
Ú
isinstancern   ÚNotImplementedr-   rw   rx   rq   rr   r.   ro   )r^   r¡   s   ""r&   Ú__eq__ÚPyTreeSpec.__eq__
  s¦   € Ü˜%¤×,Ò,Ü!Ð!à×Ñ ×!3Ñ!3Ô3Ø�~‰~ §¡Ô0Ø�‰ %×"2Ñ"2Ô2Ø�z‰z §¡Ó,Ø�~‰~ §¡Ô0áð �>�>ˆ>˜eŸoŸo˜o°$·.±.ÀEÇOÁOÔ2SÙØ�~‰~ §¡Ñ0Ð0r(   c               ó   € V ^8„  d   QhRR/# r›   r$   )r%   s   "r&   r'   r|     s   € ÷ 
ñ 
˜Sñ 
r(   c               	óz  € V P                   pV\        9   d   \        V P                  4      pMVVeD   V\        9   g9   \
        P                  ! V4      '       g   \
        P                  ! V4      '       d   V P                  pMR p\        V P                  VV P                  V P                  VV P                  34      # r�   )rq   r   Útuplers   r   r6   r
   r   rr   Úhashr-   rx   rw   ro   )r^   Ú	node_typeÚ	node_datas   "  r&   Ú__hash__ÚPyTreeSpec.__hash__  sš   € Ø—J‘Jˆ	ØÔ+Ô+ä" 4§=¡=Ó1‰IàÒØœMÔ)Ü×)Ò)¨)×4Ò4Ü×(Ò(¨×3Ò3àŸ™‰Ið ˆIô à×!Ñ!ØØ—‘Ø—‘ØØ—‘ðó	
ð 		
r(   c               ó   € V ^8„  d   QhRR/# )r   r"   rp   r$   )r%   s   "r&   r'   r|   9  s   € ÷ ñ Ð-ñ r(   c               	ó   € V P                   # r�   )rq   r]   s   "r&   r9   ÚPyTreeSpec.type8  s   € à�z‰zÐr(   c               ó   € V ^8„  d   QhRR/# )r   r"   r#   r$   )r%   s   "r&   r'   r|   <  s   € ÷ <ñ <˜Dñ <r(   c               	óN   € V P                   ^8H  ;'       d    V P                  ^8H  # )é   )rw   rx   r]   s   "r&   r0   ÚPyTreeSpec.is_leaf<  s"   € Ø�~‰~ Ñ"×;Ð; t§¡¸!Ñ';Ð;r(   c               ó   € V ^8„  d   QhRR/# )r   r"   zlist[tuple[Any, ...]]r$   )r%   s   "r&   r'   r|   ?  s   € ÷ /ñ /Ð/ñ /r(   c               	óp   aa€ R  VV3R llo. oS! V . 4       S Uu. uF  p\        V4      NK  	  up# u upi )c               ó$   € V ^8„  d   QhRRRRRR/# )r   rŠ   rn   Úpath_prefixrI   r"   r{   r$   )r%   s   "r&   r'   Ú&PyTreeSpec.paths.<locals>.__annotate__@  s!   € ÷ 
	7ñ 
	7˜Zð 
	7°ið 
	7ÀDñ 
	7r(   c                óÐ   <€ V P                  4       '       d   SP                  V4       R # \        V P                  V P                  RR7       F  w  r#S! W1V.,           4       K  	  R # )NT©Ústrict)r0   ÚappendÚziprs   ro   )rŠ   r¹   Úentryr’   r”   Úpathss   &&  €€r&   r”   Ú PyTreeSpec.paths.<locals>.helper@  sX   ø€ Ø×Ñ×!Ò!Ø—‘˜[Ô)Ùä"%Ø×!Ñ!Ø×"Ñ"Ø÷#‘�ñ
 �w¨u¨gÕ 5Ö6ó#r(   )r©   )r^   Úpathr”   rÁ   s   " @@r&   rÁ   ÚPyTreeSpec.paths?  s:   ù€ ÷
	7ñ 
	7ð "$ˆÙˆt�RÔÙ(-Ó.© ”�d–©Ñ.Ð.ùÒ.s   œ3c               ó   € V ^8„  d   QhRR/# )r   r"   zlist[optree.PyTreeAccessor]r$   )r%   s   "r&   r'   r|   P  s   € ÷  Eñ  EÐ9ñ  Er(   c               	ó†   aa€ R  VV3R llo. oS! V . 4       S Uu. uF  p\         P                  ! V4      NK  	  up# u upi )c               ó$   € V ^8„  d   QhRRRRRR/# )r   rŠ   rn   Úentry_path_prefixzlist[optree.PyTreeEntry]r"   r{   r$   )r%   s   "r&   r'   Ú*PyTreeSpec.accessors.<locals>.__annotate__Q  s&   € ÷ 	ñ 	Ø ð	à7ð	ð ñ	r(   c           
     ó¼  <€ V P                  4       '       d   SP                  V4       R # V P                  pVf   \        R4      h\        P
                  P                  W P                  R7      pVf   \        RV 24      hVP                  pVP                  p\        V P                  V P                  RR7       F  w  rgS	! VW! WbV4      .,           4       K  	  R # )Nr�   r5   z!No pytree handler registered for Tr¼   )r0   r¾   r9   r€   r6   r7   r8   r.   ÚkindÚpath_entry_typer¿   rs   ro   )
rŠ   rÈ   r«   ÚhandlerrË   rÌ   rÀ   r’   Úentry_pathsr”   s
   &&      €€r&   r”   Ú$PyTreeSpec.accessors.<locals>.helperQ  sØ   ø€ ð ×Ñ×!Ò!Ø×"Ñ"Ð#4Ô5Ùà Ÿ™ˆIØÒ Ü$Ð%IÓJÐJÜ×1Ñ1×5Ñ5Ø×%7Ñ%7ð 6ó ˆGð ŠÜ$Ð'HÈÈÐ%TÓUÐUØ&-§l¡lˆDØ8?×8OÑ8OˆOä"%Ø×!Ñ!Ø×"Ñ"Ø÷#‘�ñ
 ØØ%¨¸È4Ó)PÐ(QÕQöó#r(   )r6   ÚPyTreeAccessor)r^   rÃ   rÎ   r”   s   " @@r&   Ú	accessorsÚPyTreeSpec.accessorsP  sA   ù€ ÷	ñ 	ð: 79ˆÙˆt�RÔÙ8CÓD¹°”×%Ò% dÖ+¹ÑDÐDùÒDs   œ>c               ó   € V ^8„  d   QhRR/# )r   r"   zlist[PyTreeSpec]r$   )r%   s   "r&   r'   r|   r  s   € ÷ $ñ $Ð-ñ $r(   c               	ó,   € \        V P                  4      # r�   )rL   ro   r]   s   "r&   rF   ÚPyTreeSpec.childrenr  s   € Ü�D—N‘NÓ#Ð#r(   c               ó    € V ^8„  d   QhRRRR/# )r   Úindexrv   r"   rn   r$   )r%   s   "r&   r'   r|   u  s   € ÷ %ñ %˜3ð % jñ %r(   c               	ó(   € V P                   V,          # r�   )ro   ©r^   r×   s   ""r&   r„   ÚPyTreeSpec.childu  s   € Ø�~‰~˜eÕ$Ð$r(   c               ó   € V ^8„  d   QhRR/# )r   r"   rI   r$   )r%   s   "r&   r'   r|   x  s   € ÷ #ñ #˜Iñ #r(   c               	ó,   € \        V P                  4      # r�   )rL   rs   r]   s   "r&   ÚentriesÚPyTreeSpec.entriesx  s   € Ü�D—M‘MÓ"Ð"r(   c               ó    € V ^8„  d   QhRRRR/# )r   r×   rv   r"   r   r$   )r%   s   "r&   r'   r|   {  s   € ÷ $ñ $˜3ð $ cñ $r(   c               	ó(   € V P                   V,          # r�   )rs   rÙ   s   ""r&   rÀ   ÚPyTreeSpec.entry{  s   € Ø�}‰}˜UÕ#Ð#r(   c               ó    € V ^8„  d   QhRRRR/# )r   r2   r   r"   úlist[PyTree]r$   )r%   s   "r&   r'   r|   ~  s   € ÷ Vñ V &ð V°ñ Vr(   c               	ó4   a a€ R  VV 3R llo. pS! S W4       V# )c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   rŠ   rn   rE   r   Úsubtreesrã   r"   r{   r$   )r%   s   "r&   r'   Ú.PyTreeSpec.flatten_up_to.<locals>.__annotate__  s6   € ÷ Q	3ñ Q	3Ø ðQ	3àðQ	3ð #ðQ	3ð ñ	Q	3r(   c           	     óò  <€ V P                  4       '       d   VP                  V4       R # \        V4      pV P                  \        9  dÉ   W0P                  8w  d   \	        RV P                  : RV: R24      h\
        P                  ! VSP                  SP                  R7      vrEp\        V4      V P                  8w  d&   \	        RV P                   R\        V4       R24      hWPP                  8w  d   \	        RV P                  : R24      hEMµV P                  \        9   ;'       d
    V\        9   pV'       g/   W0P                  8w  d   \	        RV P                  : RV: R24      h\        V4      V P                  8w  d&   \	        RV P                   R\        V4       R24      hV'       d    V P                  4       p\        V4      p	\        V4      p
Wš8w  d\   V
P                  V	4      pV	P                  V
4      pRpV'       d   VR	V 2,          pV'       d   VR
V 2,          p\	        RV R24      hV Uu. uF  qáV,          NK  	  ppMu\
        P                  ! VSP                  SP                  R7      vrEpV\         Jd=   WPP                  8w  d-   \	        RV P                  : RV P                  : RV: R24      h\#        W@P$                  RR7       F  w  ppS! VWò4       K  	  R # u upi )NzType mismatch; expected z
, but got Ú.©r-   r.   zNode arity mismatch; expected z+Node context mismatch for custom node type zNode type mismatch; expected r,   z; missing key(s): z; extra key(s): zNode keys mismatchz%Node metadata mismatch for node type z; expected Tr¼   )r0   r¾   r9   r   r*   r6   rA   r-   r.   r   ry   rr   r   rÝ   ÚsetÚ
differencer   r¿   ro   )rŠ   rE   ræ   r«   rF   Úmetadatar+   Úboth_standard_dictÚexpected_keysÚgot_key_setÚexpected_key_setÚmissing_keysÚ
extra_keysÚmessageÚkeyÚsubtreer’   r”   r^   s   &&&              €€r&   r”   Ú(PyTreeSpec.flatten_up_to.<locals>.helper  s  ø€ ð
 ×Ñ×!Ò!Ø—‘ Ô%Ùä˜T›
ˆIØ�}‰}¤MÔ1à§¡Ô-Ü$ð$Ø$,§M¡MÑ#4°J¸y¹mÈ1ðNóð ô
 *0×)FÒ)FØØ!%×!2Ñ!2Ø"Ÿn™nô*Ð&� Qô
 �x“= H×$9Ñ$9Ô9Ü$ð$Ø$,×$9Ñ$9Ð#:¸*ÄSÈÃ]ÀOÐSTðVóð ð ×1Ñ1Ô1Ü$ØEÀhÇmÁmÑEVÐVWÐXóð ñ 2ð —M‘MÔ%8Ñ8÷ 9ð 9Ø!Ô%8Ñ8ð #÷ *¨i¿=¹=Ô.HÜ$ð$Ø$,§M¡MÑ#4°J¸y¹mÈ1ðNóð ô �t“9 × 5Ñ 5Ô5Ü$ð$Ø$,×$9Ñ$9Ð#:¸*ÄSÈÃYÀKÈqðRóð ÷
 &à$,×$4Ñ$4Ó$6�MÜ"% d£)�KÜ'*¨=Ó'9Ð$Ø"Ô6Ø'7×'BÑ'BÀ;Ó'O˜Ø%0×%;Ñ%;Ð<LÓ%M˜
Ø"$˜ß'Ø#Ð);¸L¸>Ð'JÕJ˜Gß%Ø#Ð)9¸*¸Ð'FÕF˜GÜ(Ð+=¸g¸YÀaÐ)HÓIÐIÙ5BÓC±]¨c S§	 	±]�HÐC�Hô .4×-JÒ-JØØ%)×%6Ñ%6Ø"&§.¡.ô.Ð*�H¨ð "¬Ó.Ø"×&8Ñ&8Ô8Ü(ØCÀHÇMÁMÑCTð U(Ø(0×(:Ñ(:Ñ'=¸ZÈÁ|ÐSTðVóð ô
 %(¨×2DÑ2DÈT×$RÑ �˜Ù�w Ö2ó %Sùò!  Ds   È?K4r$   )r^   r2   ræ   r”   s   b" @r&   Úflatten_up_toÚPyTreeSpec.flatten_up_to~  s&   ù€ ÷Q	3ñ Q	3ðf "$ˆÙˆt�TÔ$Øˆr(   c               ó    € V ^8„  d   QhRRRR/# )r   Úleavesr=   r"   r   r$   )r%   s   "r&   r'   r|   Ö  s   € ÷ >ñ > ð >°Vñ >r(   c          	     	ó4  € \        V\        \        34      '       g   \        V4      p\        V4      V P                  8w  d)   \        R \        V4       RV P                   RV  R24      hV P                  4       '       d
   V^ ,          # ^ p^ p. pV P                   F9  pW5P                  ,          pVP                  VP                  WV 4      4       TpK;  	  \        V P                  4      '       g   \        R4      hV P                  V P                  V4      # )z0treespec.unflatten(leaves): `leaves` has length z, but the spec refers to a pytree that holds z items (z).r~   )r£   rL   r©   r   rx   r*   r0   ro   r¾   Ú	unflattenr�   rt   r€   rr   )r^   rû   ÚstartÚendræ   r’   s   ""    r&   rý   ÚPyTreeSpec.unflattenÖ  s  € Ü˜&¤4¬ -×0Ò0Ü˜&“\ˆFÜˆv‹;˜$Ÿ/™/Ô)ÜØBÄ3ÀvÃ;À-ð P>Ø>B¿o¹oÐ=Nð OØ˜˜rð#óð ð
 �<‰<�>Š>Ø˜!•9Ðð ˆØˆØˆØ—~”~ˆGØ×%Ñ%Õ%ˆCØ�O‰O˜G×-Ñ-¨f¸3Ð.?Ó@ÔAØŠEñ &ô
 ˜×,Ñ,×-Ò-Ü Ð!TÓUÐUØ×#Ñ# D§N¡N°HÓ=Ð=r(   r$   N)ra   rb   rc   rd   Ú__doc__Ú__annotations__r   rw   rx   ry   r…   r_   rž   r¥   r­   Úpropertyr9   r0   rÁ   rÑ   rF   r„   rÝ   rÀ   rø   rý   rf   r$   r(   r&   rn   rn   ´   s¾   ‡ á:à%Ó%ØÓØƒNØÓØLÓLØÓØƒNá Ô&€IˆsÓ&Ù Ô'€J�Ó'Ù 5Ô)€L�#Ó)õ?õ:$1õLõ1õ"
ð: ôó ðõ<õ/õ" EõD$õ%õ#õ$õV÷p>ñ >r(   rn   c               ó    € V ^8„  d   QhRRRR/# )r   Úobjr   r"   z+TypeIs[PyTreeSpec | python_pytree.TreeSpec]r$   )r%   s   "r&   r'   r'   ð  s   € ÷ Añ A ð AÐ,Wñ Ar(   c               óB   € \        V \        \        P                  34      # r�   )r£   rn   Úpython_pytreeÚTreeSpec)r  s   "r&   Ú_is_pytreespec_instancer	  ð  s   € Ü�cœJ¬×(>Ñ(>Ð?Ó@Ð@r(   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r-   r#   r.   r3   r"   rn   r$   )r%   s   "r&   r'   r'   ú  s(   € ÷ ñ àðð ðð ñ	r(   c           
     ó&   € \        RR R RR V RR7      # )Nr,   rê   r$   )rn   rê   s   $$r&   Útreespec_leafr  ô  s&   € ô Ø
ØØØ
ØØ!Øôð r(   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   ÚiterablezIterable[PyTreeSpec]r-   r#   r.   r3   r"   rn   r$   )r%   s   "r&   r'   r'     s2   € ÷ ñ Ø"ðð ð	ð
 ðð ñr(   c              óî  aa€ \        V 4      p\        ;QJ d    R  V 4       F  '       g   K   RM	  RM! R  V 4       4      '       d   \        RV: R24      h\        ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       d   \        RS RV: R24      h\        ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       d   \        R	S: RV: R24      h\        P                  P                  \         SR
7      pVf   \        R4      h\        \        V4      \         R\        \        \        V4      4      4      VP                  SSR7      # )c              3  óB   "  € T F  p\        V4      '       * x € K  	  R # 5ir�   ©r	  ©Ú.0r„   s   & r&   Ú	<genexpr>Ú!treespec_tuple.<locals>.<genexpr>  s   é € Ð
D¹8°%Ô& uÓ-×-Ñ-»8ùó   ‚TFz&Expected a tuple of PyTreeSpecs, got: ré   c              3  ó@   <"  € T F  qP                   S8g  x € K  	  R # 5ir�   ©r-   ©r  r„   r-   s   & €r&   r  r    s   øé € Ð
D¹8°%×Ñ Ö-»8ùó   ƒúYAll children PyTreeSpecs must have the same `none_is_leaf` value as the parent; expected ú, got: c              3  óD   <"  € T F  qP                   SR 39  x € K  	  R# 5i©r,   Nr5   ©r  r„   r.   s   & €r&   r  r    s   øé € Ð
H¹x°e�?‰? 9¨b /Ö1»xùó   ƒ úVAll children PyTreeSpecs must have the same `namespace` value as the parent; expected r5   Nz&No pytree handler registered for tuplerê   )r©   Úanyr*   r6   r7   r8   r€   rn   Úranger   Úunflatten_func)r  r-   r.   rF   rÍ   s   "dd  r&   Útreespec_tupler%  
  s:  ù€ ô �X‹€Hß
ƒsÑ
D¹8Ó
D‡s‡s‚sÑ
D¹8Ó
D×DÒDÜÐAÀ(ÁÈQÐOÓPÐPß
ƒsÔ
D¹8Ó
D‡s‡s‚sÔ
D¹8Ó
D×DÒDÜð'Ø'3 n°G¸H¹<ÀqðJó
ð 	
÷ ƒsÔ
H¹xÓ
H‡s‡s‚sÔ
H¹xÓ
H×HÒHÜð'Ø'0¡m°7¸8¹,ÀaðIó
ð 	
ô ×)Ñ)×-Ñ-¬e¸yÐ-ÓI€GØ‚ÜÐEÓFÐFÜÜˆh‹ÜØÜŒe”C˜“MÓ"Ó#Ø×ÑØ!Øôð r(   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R/# )
r   Úmappingz;Mapping[Any, PyTreeSpec] | Iterable[tuple[Any, PyTreeSpec]]r-   r#   r.   r3   r!   rn   r"   r$   )r%   s   "r&   r'   r'   8  s<   € ÷ (ñ (ØHð(ð ð	(ð
 ð(ð ð(ð ñ(r(   c         
     ó"  aa€ \        V 3/ VB p\        ;QJ d*    R  VP                  4        4       F  '       g   K   RM	  RM! R  VP                  4        4       4      '       d   \        RV: R24      h\        ;QJ d-    V3R lVP                  4        4       F  '       g   K   RM"	  RM! V3R lVP                  4        4       4      '       d   \        RS RV: R24      h\        ;QJ d-    V3R lVP                  4        4       F  '       g   K   RM"	  RM! V3R lVP                  4        4       4      '       d   \        R	S: RV: R24      h\        P
                  ! VSSR
7      w  pppp\        \        V4      \         VVVSSR
7      # )c              3  óB   "  € T F  p\        V4      '       * x € K  	  R # 5ir�   r  r  s   & r&   r  Ú treespec_dict.<locals>.<genexpr>A  s   é € Ð
H¹<°%Ô& uÓ-×-Ñ-»<ùr  TFz)Expected a dictionary of TreeSpecs, got: ré   c              3  ó@   <"  € T F  qP                   S8g  x € K  	  R # 5ir�   r  r  s   & €r&   r  r*  C  s   øé € Ð
H¹<°%×Ñ Ö-»<ùr  r  r  c              3  óD   <"  € T F  qP                   SR 39  x € K  	  R# 5ir  r5   r  s   & €r&   r  r*  H  s   øé € Ð
L¹|°e�?‰? 9¨b /Ö1»|ùr   r!  rê   )Údictr"  Úvaluesr*   r6   rA   rn   r©   )	r'  r-   r.   r!   ÚdctrF   rí   rÝ   r$  s	   "dd,     r&   Útreespec_dictr0  2  sN  ù€ ô ˆwÑ
!˜&Ñ
!€Cß
ƒsÑ
H¸3¿:¹:¼<Ó
H‡s‡s‚sÑ
H¸3¿:¹:¼<Ó
H×HÒHÜÐDÀSÁGÈ1ÐMÓNÐNß
ƒsÔ
H¸3¿:¹:¼<Ó
H‡s‡s‚sÔ
H¸3¿:¹:¼<Ó
H×HÒHÜð'Ø'3 n°G¸C¹7À!ðEó
ð 	
÷ ƒsÔ
L¸s¿z¹z¼|Ó
L‡s‡s‚sÔ
L¸s¿z¹z¼|Ó
L×LÒLÜð'Ø'0¡m°7¸3¹'ÀðDó
ð 	
ô 	×%Ò%ØØ!Øô	ñØØØØô Üˆh‹ÜØØØØ!Øôð r(   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   r0   r1   r2   r   r-   r#   r.   r3   r"   útuple[list[Any], PyTreeSpec]r$   )r%   s   "r&   r'   r'   i  s<   € ÷ 4ñ 4ð -ð4Ø
ð4ð
 ð4ð ð4ð "ñ4r(   c              ó<   aaaa€ R  VVVV3R llo. pS! W4      pWE3# )c               ó$   € V ^8„  d   QhRRRRRR/# )r   rE   r   rû   rI   r"   rn   r$   )r%   s   "r&   r'   Ú"tree_flatten.<locals>.__annotate__q  s!   € ÷ (
ñ (
�Vð (
 Yð (
°:ñ (
r(   c           
     óR  <a€ \        V SS
S	R 7      '       d$   SP                  V 4       \        RRRRRS
RR7      # \        P                  ! V SS
S	R 7      w  pppp\
        ;QJ d    . VV3R lV 4       F  NK  	  5M! VV3R lV 4       4      p\        V\        V 4      VVVS
S	R7      # )r?   Nr,   rê   c              3  ó6   <"  € T F  pS! VS4      x € K  	  R # 5ir�   r$   )r  r„   r”   rû   s   & €€r&   r  Ú/tree_flatten.<locals>.helper.<locals>.<genexpr>�  s   øé € ÐE¹H°5™  v×.Ð.»Hùs   ƒr$   )r;   r¾   rn   r6   rA   r©   r9   )rE   rû   rF   rí   rÝ   r$  Úsubspecsr”   r0   r.   r-   s   &f     €€€€r&   r”   Útree_flatten.<locals>.helperq  s¿   ù€ ÜØØØ%Ø÷	
ó 
ð �M‰M˜$ÔÜØØØØØØ)Øôð ô ×)Ò)ØØØ%Øô	
ñ	
ØØØØ÷ ”5ÕE¹HÓE—5‘5ÕE¹HÓEÓEˆÜØÜ�‹JØØØØ%Øô
ð 	
r(   r$   )r2   r0   r-   r.   rû   rŠ   r”   s   "fdd  @r&   Útree_flattenr;  c  s(   û€ ÷(
ó (
ðT €FÙ�dÓ#€HØÐÐr(   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   Úleaf_predicater1   r-   r#   r.   r3   r2   r   r"   r2  r$   )r%   s   "r&   r'   r'   ¦  s<   € ÷ ñ ð 4ðð ð	ð
 ðØ
ðð "ñr(   c               ó    € \        V VVVR 7      # rK   ©r;  ©r2   r=  r-   r.   s   "&&&r&   Ú
_C_flattenrA     s   € ô ØØØ!Øô	ð r(   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   r0   r1   r2   r   r-   r#   r.   r3   r"   ú3tuple[list[tuple[Any, ...]], list[Any], PyTreeSpec]r$   )r%   s   "r&   r'   r'   »  s<   € ÷ .ñ .ð -ð.Ø
ð.ð
 ð.ð ð.ð 9ñ.r(   c              óH   € \        V VVVR 7      w  rEVP                  4       WE3# rK   )r;  rÁ   )r2   r0   r-   r.   rû   rŠ   s   "&$$  r&   Útree_flatten_with_pathrE  µ  s1   € ô $ØØØ!Øô	Ñ€Fð �>‰>Ó˜VÐ-Ð-r(   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   r=  r1   r-   r#   r.   r3   r2   r   r"   rC  r$   )r%   s   "r&   r'   r'   Ò  s<   € ÷ ñ ð 4ðð ð	ð
 ðØ
ðð 9ñr(   c               ó    € \        V VVVR 7      # rK   )rE  r@  s   "&&&r&   Ú_C_flatten_with_pathrH  Ì  s   € ô "ØØØ!Øô	ð r(   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   r0   r1   r2   r   r-   r#   r.   r3   r"   rn   r$   )r%   s   "r&   r'   r'   ç  s<   € ÷ 	ñ 	ð -ð	Ø
ð	ð
 ð	ð ð	ð ñ	r(   c              ó.   € \        V VVVR 7      ^,          # rK   r?  r:   s   "&$$r&   Útree_structurerK  á  s'   € ô ØØØ!Øô	ð
 õ	ð 	r(   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rŠ   rn   rû   r=   r"   r   r$   )r%   s   "r&   r'   r'   ý  s!   € ÷ &ñ &˜Zð &°ð &À6ñ &r(   c                óv   € \        V 4      '       g   \        R \        V 4       R24      hV P                  V4      # )zIExpected `treespec` to be an instance of PyTreeSpec but got item of type ré   )r	  Ú	TypeErrorr9   rý   )rŠ   rû   s   &&r&   Útree_unflattenrO  ÷  sF   € ô # 8×,Ò,Üð/Ü/3°H«~Ð.>¸aðAó
ð 	
ð ×Ñ˜fÓ%Ð%r(   z)No pytree handler registered for NoneType)r   Úskip_signature_checkc               ó$   € V ^8„  d   QhRRRRRR/# )r   r+   r{   rF   zIterable[_T]r"   r$   )r%   s   "r&   r'   r'     s!   € ÷ ñ �dð  lð ¸$ñ r(   c               óN   € \        \        V4      4      ^ 8w  d   \        R4      hR# )é    zExpected no children.N)r   rL   r*   )r+   rF   s   ""r&   Únone_unflattenrT    s$   € ô Œ4�‹>Ó˜aÔÜÐ0Ó1Ð1Ùr(   Útorchr5   z%No pytree handler registered for dictc               ó    € V ^8„  d   QhRRRR/# )r   r/  údict[_KT, _VT]r"   z>tuple[list[_VT], tuple[list[_KT], list[_KT]], tuple[_KT, ...]]r$   )r%   s   "r&   r'   r'   !  s    € ÷ Dñ DØ	ðDàCñDr(   c               ó¬   € \         P                  P                  V 4      pV Uu. uF  q V,          NK  	  pp\        V 4      pW4V3\	        V4      3# u upi r�   )r6   ÚutilsÚtotal_order_sortedrL   r©   )r/  Úsorted_keysrõ   r.  Úoriginal_keyss   "    r&   Údict_flattenr]    sS   € ô —,‘,×1Ñ1°#Ó6€KÙ"-Ó.¡+˜3�#�hˆh¡+€FÐ.Ü˜“I€MØ ;Ð/´°{Ó1CÐCÐCùò /s   ¤Ac               ó$   € V ^8„  d   QhRRRRRR/# )r   rí   ztuple[list[_KT], list[_KT]]r.  zIterable[_VT]r"   rW  r$   )r%   s   "r&   r'   r'   /  s&   € ÷ ñ Ø)ðàðð ñ	r(   c               óp   € V w  r#\         P                  V4      pVP                  \        W1R R7      4       V# )Tr¼   )r-  ÚfromkeysÚupdater¿   )rí   r.  r\  r[  Úds   ""   r&   Údict_unflattenrc  *  s2   € ð "*Ñ€MÜ�‰�mÓ$€AØ‡H�HŒS�¨TÔ2Ô3Ø€Hr(   )r	   r
   r   r   r   r   r   r   r  r%  r0  r;   rG   rM   r;  rE  rK  rO  r�   )r$   )NFr,   )Vr  Ú
__future__r   Úcollectionsr   Údataclassesr   r   Útypingr   r   r   r6   Ú	optree._CÚoptree.utilsr	   r
   r   r   r   r   r   r   Útorch.utils._cxx_pytreerY  Ú_cxx_pytreeÚ
cxx_pytreeÚtorch.utils._pytreeÚ_pytreer  r   r   Ú
decoratorsr   ÚbuiltinsÚcollections.abcr   r   r   Útyping_extensionsr   r   r   Ú__all__r   r   r   Ú_CÚis_dict_insertion_orderedr+   Ú__nameÚ__funcÚ__python_implementation__Úglobalsr;   rG   rM   r3   rO   r�   rn   r	  r  r%  r0  r;  ÚflattenrA  rE  Úflatten_with_pathrH  rK  rO  r7   r8   r9   Ú_none_registrationr€   r$  rT  Údict_insertion_orderedr-  Ú_dict_registrationÚflatten_funcr]  rc  r$   r(   r&   Ú<module>r€     sý  ðñõ #å ß (ß .Ñ .ã Û Û ÷	÷ 	ó 	÷ -Ð ,ß +Ð +ß Bå ,÷ Ûß;Ñ;ß.å.ò€ñ, ˆTƒ]€Ùˆeƒn€Ùˆeƒn€ñ Ø
‡I�I×'Ñ'Ø"ôôó	ðð 
€à�mÐ$ØÐ/Ð0ØÐ5Ð6Ø�\Ð"ØÐ-Ð.ØÐ3Ð4ØÐ+Ð,ØÐ)Ð*ó	�N€FˆFñ ,ØØ"&õð ×&Ñ&ó(�GƒIˆfÑò 	ñ	ð ñ �V×(Ñ(ÀDÔIñð
 ðð ÷ó Jðñ �V×%Ñ%ÀÔGñ)ð
 ð)ð ÷)ó Hð)ñ: �V×'Ñ'À4ÔHñð
 ðð ÷ó Iðô$�ô ñ ‹K€	Øñ �$˜U u¸%ÀtÔL÷x>ð x>ó Mðx>õv	Añ Ø
×Ñð $ô	ðàðð öóðñ  Ø
×Ñð $ô	ñð ð	ð
 ÷óðñD Ø
×Ñð $ô	ñ(ð ð	(ð
 ÷(óð(ñV Ø
×Ñð $ô	ñ4ð
 ð4ð ÷4óð4ñn Ø
‡I�I×Ñð $ô	öóðñ Ø
×!Ñ!ð $ô	ñ.ð
 ð.ð ÷.óð.ñ" Ø
‡I�I×Ñð $ô	öóðñ Ø
×Ñð $ô	ñ	ð
 ð	ð ÷	óð	ñ  Ø
×Ñð $ô	ô&óð&ð ×0Ñ0×4Ñ4±T¸$³ZÓ@Ð ØÒÙ
ÐDÓ
EÐEñ Ø×%Ñ%Ø"Øôô
óð
ð ×"Ò" 5°G×<Ö<Ø×4Ñ4×8Ñ8¸Ó>ÐØÒ!ÙÐDÓEÐEð "÷ =ñ Ø×#Ñ#Ø"Øôô
Dóð
Dñ Ø×%Ñ%Ø"Øôô
óò
÷3 =×<ús   Í&(OÏO%	