Ë
    ÄÓ^jŽˆ  ã                   óÊ  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dl	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  e«       Ze�eZd dlZd dlmc mZ d dlmZ d dl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( d dl)m*Z* d dl+m,Z, d dl-m.Z.  edej^                  ej`                  «      Z1de2de3fd„Z4de2de3fd„Z5ejl                   G d„ d«      «       Z7d?d„Z8de9dejt                  e9   fd„Z;de
g df   fd„Z<e jz                  ded   fd„«       Z> G d„ dej~                  «      Z@ G d„ d«      ZA ed e9«      ZB G d!„ d"ej†                  «      ZD G d#„ d$«      ZE G d%„ d&«      ZF G d'„ d(«      ZG G d)„ d*«      ZH G d+„ d,«      ZI G d-„ d.«      ZJ G d/„ d0«      ZK G d1„ d2eK«      ZL G d3„ d4eK«      ZM G d5„ d6eK«      ZN G d7„ d8eK«      ZO G d9„ d:eK«      ZP G d;„ d<«      ZQ G d=„ d>«      ZRy)@é    N)Úabstractmethod)ÚCallableÚ	Generator)ÚAnyÚNewTypeÚTypeVar)ÚoverrideÚSelf)Úimport_dill)ÚTracingContext)ÚAOTCompiledArtifact)ÚFakeScriptObject)Ú
FakeTensorÚFakeTensorModeÚTensor)ÚMetaConverterÚMetaTensorDescÚMetaTensorDescriber)ÚSymNode)ÚShapeEnv)Úno_dispatchÚ	_SymNodeTÚnameÚreturnc                 ó$   — | j                  d«      S )z£
    An ops filter which allows pickle-safe ops. Pickle-safe ops are built-in
    ones where it will be possible to unpickle on any machine which has PyTorch.
    )ztorch.ops.atenztorch.ops.fbgemm)Ú
startswith©r   s    úb/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/fx/_graph_pickler.pyÚ_ops_filter_safer   '   s   € ð �?‰?ð	
óð ó    Úkeyc                 ó
   — | dvS )z§
    A metadata filter which allows pickle-safe node metadata. These often times contain
    stacks with pointers to unserializable objects, so we clear them out.
    )Úsource_fn_stackÚnn_module_stackÚfwd_source_fn_stack© )r!   s    r   Ú_node_metadata_key_filter_safer'   5   s   € ð
 ÐSÐSÐSr    c                   ó\   — e Zd ZU eZeegef   dz  ed<   e	Z
eegef   dz  ed<   dZeed<   y)ÚOptionsNÚ
ops_filterÚnode_metadata_key_filterFÚignore_raw_node)Ú__name__Ú
__module__Ú__qualname__r   r*   r   ÚstrÚboolÚ__annotations__r'   r+   r,   r&   r    r   r)   r)   =   sJ   … ð 0@€J�˜#˜ ˜Ñ%¨Ñ,Ó?à&ð ˜h¨ u¨d {Ñ3°dÑ:ó ð
 "€O�TÔ!r    r)   c                   ó   — y ©Nr&   r&   r    r   Ú_unpickle_as_noner5   J   s   € Ør    Úreferentc                 ó,   — t        j                  | «      S r4   )ÚweakrefÚref)r6   s    r   Ú_unpickle_as_weakrefr:   N   s   € Ü�;‰;�xÓ Ð r    c                  ó   — d„ S )Nc                   ó   — y r4   r&   r&   r    r   ú<lambda>z+_unpickle_as_dead_weakref.<locals>.<lambda>S   s   � r    r&   r&   r    r   Ú_unpickle_as_dead_weakrefr>   R   s   € ÙÐr    c               #   óô   K  — t         t        j                  v rd –— y t        j                  t         d„ d„ «       	 d –— t        j                  t         «       y # t        j                  t         «       w xY w­w)Nc                 óL   — | j                   | j                  | j                  gd fS r4   )ÚstartÚstopÚstep)Úxs    r   r=   z-patch_pytree_map_over_slice.<locals>.<lambda>]   s   € ˜1Ÿ7™7 A§F¡F¨A¯F©FÐ3°TÐ:€ r    c                 ó   — t        | Ž S r4   )Úslice)rD   Úcs     r   r=   z-patch_pytree_map_over_slice.<locals>.<lambda>]   s   € ÌÐPQÈ€ r    )rF   ÚpytreeÚSUPPORTED_NODESÚ_private_register_pytree_nodeÚ_deregister_pytree_noder&   r    r   Úpatch_pytree_map_over_slicerL   V   sU   è ø€ ä”×&Ñ&Ñ&ÛØä
×(Ñ(ÜÑ:Ñ<Rôð.Ûä×&Ñ&¤uÕ-øŒ×&Ñ&¤uÕ-üs   ‚9A8¼A Á A8ÁA5Á5A8c                   óN  ‡ — e Zd ZdZddej
                  dedz  ddfˆ fd„Z ee	e
eee ed«      h«      Zededeedef   eedf   f   fd	„«       Zedededz  fd
„«       Zeddededz  defd„«       Zedededefd„«       Ze	 dddddœdeddde	de	dededz  fd„«       Zˆ xZS )ÚGraphPicklerzb
    GraphPickler is a Pickler which helps pickling fx graph - in particular
    GraphModule.
    NÚfileÚoptionsr   c                 óÌ   •— t         �t        ‰| �	  |d¬«       nt        ‰| �	  |«       |xs
 t        «       | _        t        t        «       «      | _        t        d¬«      | _	        y )NT)ÚbyrefF)Ú	copy_data)
ÚdillÚsuperÚ__init__r)   rP   Ú_UnpickleStateTokenÚobjectÚ_unpickle_stater   Ú_meta_tensor_describer)ÚselfrO   rP   Ú	__class__s      €r   rV   zGraphPickler.__init__m   sV   ø€ ÜÐÜ‰GÑ˜T¨ÐÕ.ä‰GÑ˜TÔ"ØÒ+¤'£)ˆŒô  3´6³8Ó<ˆÔô ':ÀEÔ&JˆÕ#r    Úobj.c                 ó   — t        |«      | j                  v rt        S t        |t        «      rt
        j                  | |«      S t        |t        j                  j                  «      rt        j                  | |«      S t        |t        j                  j                  t        j                  j                  f«      rt        j                  | |«      S t        |t        «      rt         j                  | |«      S t        |t        j"                  «      rt$        j                  | |«      S t        |t        j&                  j(                  «      rt*        j                  | |«      S t        |t,        «      r=ddlm} t2        j5                  |d«      }|� |t        |«      «      rt        S t6        dfS t        |t8        j:                  «      r |«       }|�	t<        |ffS t>        dfS t        |t        j                  j@                  «      r)| jB                  jD                  rt6        dfS tG        d«      ‚tH        j                  | |«      x}r|S t        S )Nr   )Úis_opaque_value_typeÚreal_objr&   z#Unexpected raw Node during pickling)%ÚtypeÚ_PASSTHROUGH_TYPESÚNotImplementedÚ
isinstancer   Ú_TensorPickleDataÚreduce_helperÚtorchÚfxÚGraphModuleÚ_GraphModulePickleDataÚ_opsÚOperatorBaseÚOpOverloadPacketÚ_OpPickleDatar   Ú_ShapeEnvPickleDataÚSymIntÚ_SymNodePickleDataÚ_guardsr   Ú_TracingContextPickleDatar   Útorch._library.opaque_objectr_   rX   Ú__getattribute__r5   r8   r9   r:   r>   ÚNoderP   r,   ÚAssertionErrorÚ_TorchNumpyPickleData)r[   r]   r_   r`   r6   Úreduces         r   Úreducer_overridezGraphPickler.reducer_override€   sÐ  € ô, �‹9˜×/Ñ/Ñ/Ü!Ð!ä�cœ:Ô&Ü$×2Ñ2°4¸Ó=Ð=Ü˜œUŸX™X×1Ñ1Ô2Ü)×7Ñ7¸¸cÓBÐBÜ˜œeŸj™j×5Ñ5´u·z±z×7RÑ7RÐSÔTÜ ×.Ñ.¨t°SÓ9Ð9Ü˜œXÔ&Ü&×4Ñ4°T¸3Ó?Ð?Ü˜œUŸ\™\Ô*Ü%×3Ñ3°D¸#Ó>Ð>Ü˜œUŸ]™]×9Ñ9Ô:Ü,×:Ñ:¸4ÀÓEÐEÜ˜Ô-Ô.ÝIä×.Ñ.¨s°JÓ?ˆHØÐ#Ñ(<¼TÀ(»^Ô(Lä%Ð%ä% rÐ*Ð*Ü˜œWŸ[™[Ô)ñ “uˆHØÐ#Ü,¨x¨kÐ:Ð:ä1°2Ð6Ð6ô ˜#œuŸx™xŸ}™}Ô-Ø—<‘<×/Ò/Ü-¨rÐ2Ð2Ü$Ð%JÓKÐKÜ.×<Ñ<¸TÀ3ÓGÐGˆvÐGØ�ô "Ð!r    c                 ó"   — || j                   u ryy )NÚunpickle_state)rY   )r[   r]   s     r   Úpersistent_idzGraphPickler.persistent_idÄ   s   € ð �$×&Ñ&Ñ&Ø#àr    c                 óü   — t        «       5  t        j                  «       5 } | ||«      }|j                  |«       |j	                  «       cddd«       cddd«       S # 1 sw Y   nxY wddd«       y# 1 sw Y   yxY w)z#
        Pickle an object.
        N)rL   ÚioÚBytesIOÚdumpÚgetvalue)Úclsr]   rP   ÚstreamÚpicklers        r   ÚdumpszGraphPickler.dumpsÌ   se   € ô
 )Ó*ñ 	%¬B¯J©J«Lð 	%¸FÙ˜& 'Ó*ˆGØ�L‰L˜ÔØ—?‘?Ó$÷	%÷ 	%÷ 	%ó 	%ú÷ 	%÷ 	%ñ 	%ús"   ‹A2 *AÁ
	A2ÁA&	Á"A2Á2A;ÚdataÚ	fake_modec                 óT  — ddl m} t        «       5   |d«      5  t        |«      }t	        j
                  | «      5 }t        ||«      }|j                  «       cddd«       cddd«       cddd«       S # 1 sw Y   nxY w	 ddd«       n# 1 sw Y   nxY wddd«       y# 1 sw Y   yxY w)z%
        Unpickle an object.
        r   )Údynamo_timedzGraphPickler.loadsN)Útorch._dynamo.utilsrŠ   rL   Ú_UnpickleStater   r€   Ú_GraphUnpicklerÚload)r‡   rˆ   rŠ   Ústater„   Ú	unpicklers         r   ÚloadszGraphPickler.loadsÖ   s›   € õ
 	5ä(Ó*ñ 	(©LÐ9MÓ,Nñ 	(Ü" 9Ó-ˆEÜ—‘˜DÓ!ð ( VÜ+¨F°EÓ:�	Ø —~‘~Ó'÷(ð (÷	(÷ 	(ò 	(÷(ð (úð (÷	(÷ 	(ñ 	(ú÷ 	(÷ 	(ñ 	(ús?   ‘	Bš!B	»A3Á	B	Á 	BÁ3A<Á8B	Â 	BÂ	B	ÂBÂB'éP   é2   T)Ú	max_depthÚmax_iter_itemsÚverbosezOptions | Noner”   r•   r–   c          	      ó*  ‡ ‡‡‡‡‡‡‡	‡
‡— ‰xs
 t        «       Š ‰ t        j                  «       ‰«      Š	t        «       Š
dt        ddfˆfd„Šdt
        dt        dz  fˆ ˆfd„Šdt
        dt        dt        dt        dz  fˆˆˆˆˆ	ˆ
ˆfd	„Š ‰|d
d«      }|S )a´  
        Find the first leaf that GraphPickler.dumps cannot serialize and return its path.

        This is GraphPickler-aware and avoids infinite loops by:
          - Traversing builtin containers directly (dict/list/tuple/set) instead of
            exploring their __reduce_ex__ tuples.
          - Only using __reduce_ex__ / __reduce__ for "opaque" objects.
          - Bounding recursion depth and iterator expansion.

        Args:
            obj: The object to attempt to pickle and debug.
            options: Optional Options instance for the GraphPickler.
            max_depth: Maximum recursion depth before stopping traversal.
            max_iter_items: Maximum number of items to materialize from iterators.
            verbose: If True, prints detailed traversal information.

        Returns:
            A string representing the path to the first unpicklable leaf,
            or None if the object is fully picklable.
        Úmsgr   Nc                 ó"   •— ‰rt        | «       y y r4   )Úprint)r˜   r–   s    €r   Úlogz%GraphPickler.debug_dumps.<locals>.log  s   ø€ ÙÜ�c•
ð r    Úoc                 ó\   •— 	 ‰j                  | ‰«       y # t        $ r}|cY d }~S d }~ww xY wr4   )r†   Ú	Exception)rœ   Úerƒ   rP   s     €€r   Úfail_excz*GraphPickler.debug_dumps.<locals>.fail_exc
  s.   ø€ ðØ—	‘	˜!˜WÔ%ØøÜò Ø•ûðús   ƒ –	+Ÿ& +¦+ÚpathÚdepthc           	      ó`
  •— |‰kD  r" ‰d|z  › d|› dt        | «      › d�«       |dz   S t        | «      }|‰v ry ‰j                  |«       d|z  } ‰|› d|› dt        | «      › d�«        ‰| «      }|€ ‰|› d�«       y  ‰|› dt        | «      › d	|› �«       t        | t        «      r3| j                  «       D ]  \  }} ‰||› d
|›d�|dz   «      }|sŒ|c S  |S t        | t        t        f«      r.t        | «      D ]  \  }	} ‰||› d
|	› d�|dz   «      }|sŒ|c S  |S t        | t        t        f«      r.t        | «      D ]  \  }	} ‰||› d
|	› d�|dz   «      }|sŒ|c S  |S t        | d«      r£t        | «      j                  j                  d«      r	 t        t        j                  t!        | «      ‰dz   «      «      }
|
�Qt%        |
«      ‰kD  r ‰|› d‰› d‰› �«       |
d ‰ }
t        |
«      D ]  \  }	} ‰||› d
|	› d�|dz   «      }|sŒ|c S  |S 	 ‰j'                  | «      } ‰|› dt        |«      › �«       |t(        urG|\  }} ‰|› dt%        |«      › �«       t        |«      D ]  \  }	} ‰||› d|	› d�|dz   «      }|sŒ|c S  t+        j,                  | «      rUt+        j.                  | «      D ];  }	 t1        | |j2                  «      } ‰||› d|j2                  › �|dz   «      }|sŒ9|c S  |S t1        | dd «      }t5        |«      r2	  |«       } ‰|› dt        |«      › �«        ‰||dz   |dz   «      }|r|S t        | d«      r;t7        | «      j                  «       D ]  \  }} ‰||› d|› �|dz   «      }|sŒ|c S  |S t        | d«      rB| j8                  D ]1  }t        | |«      sŒ ‰t1        | |«      |› d|› �|dz   «      }|sŒ/|c S  |S d }	 t        | d«      r6| j;                  t<        j>                  «      } ‰|› dt        |«      › �«       n2t        | d«      r&| jA                  «       } ‰|› dt        |«      › �«       t        |t        «      r/t        |«      D ]!  \  }	}|€Œ	 ‰||› d!|	› d�|dz   «      }|sŒ|c S  |S # t"        $ r d }
Y �ŒÙw xY w# t"        $ r} ‰|› d|› �«       |cY d }~S d }~ww xY w# t"        $ r |› d|j2                  › �cY c S w xY w# t"        $ r} ‰|› d|› �«       |dz   cY d }~S d }~ww xY w# t"        $ r} ‰|› d |› �«       |cY d }~S d }~ww xY w)"Nz  zDepth limit at z (ú)z (depth_limit)z	Walking: u   âœ“ Pickles fine alonez[FAIL pickle] z -> ú[ú]é   Ú__iter__Úiteratoru   âš  Iterator has more than z items, only checking first zreducer_override -> u   ðŸ’¥ reducer_override crashed: zUsing custom reduce, args=z.reduce_args[ú.Ú__getstate__z__getstate__ -> u   ðŸ’¥ __getstate__ failed: z.__getstate__()Ú__dict__Ú	__slots__Ú__reduce_ex__z__reduce_ex__ -> Ú
__reduce__z__reduce__ -> u   ðŸ’¥ reduce protocol failed: z.__reduce__[)!ra   ÚidÚaddrd   ÚdictÚitemsÚlistÚtupleÚ	enumerateÚsetÚ	frozensetÚhasattrr-   ÚendswithÚ	itertoolsÚisliceÚiterrž   Úlenrz   rc   ÚdataclassesÚis_dataclassÚfieldsÚgetattrr   ÚcallableÚvarsr­   r®   ÚpickleÚHIGHEST_PROTOCOLr¯   ) rœ   r¡   r¢   r!   ÚindentrŸ   ÚkÚvÚbadÚiÚprefixÚredÚe2Ú_ÚargsÚaÚfÚgetstater�   Úe3r   ÚslotÚreduce_tupleÚe4Úpartr    r›   r”   r•   r…   ÚvisitedÚwalks                             €€€€€€€r   rÚ   z&GraphPickler.debug_dumps.<locals>.walk  s,  ø€ Ø�yÒ Ù�t˜e‘|�n O°D°6¸¼DÀ»G¸9ÀAÐFÔGØÐ.Ñ.Ð.ä�Q“%ˆCØ�g‰~ØØ�K‰K˜Ôà˜E‘\ˆFÙ�6�(˜) D 6¨¬D°«G¨9°AÐ6Ô7á˜“ˆAØˆyÙ�v�hÐ4Ð5Ô6ØÙ�6�(˜.¬¨a«¨	°°a°SÐ9Ô:ô ˜!œTÔ"ØŸG™G›Iò #‘D�A�qÙ˜q T F¨!¨A¨5°Ð"2°E¸A±IÓ>�CÚØ"š
ð#ð �ä˜!œd¤E˜]Ô+Ü% a›Lò #‘D�A�qÙ˜q T F¨!¨A¨3¨a .°%¸!±)Ó<�CÚØ"š
ð#ð �ä˜!œc¤9Ð-Ô.Ü% a›Lò #‘D�A�qÙ˜q T F¨!¨A¨3¨a .°%¸!±)Ó<�CÚØ"š
ð#ð �ô �q˜*Ô%¬$¨q«'×*:Ñ*:×*CÑ*CÀJÔ*Oð"Ü!¤)×"2Ñ"2´4¸³7¸NÈQÑ<NÓ"OÓP�Fð Ð%Ü˜6“{ ^Ò3ÙØ%˜hÐ&AÀ.ÐAQð R3Ø3AÐ2BðDôð "(¨¨Ð!8˜Ü )¨&Ó 1ò '™˜˜1Ù" 1¨¨¨a°¨s°! n°e¸a±iÓ@˜ÚØ#&šJð'ð  �KðØ×.Ñ.¨qÓ1�Ù�v�hÐ2´4¸³9°+Ð>Ô?ð
 œ.Ñ(Ø‘��4Ù�v�hÐ8¼¸T»¸ÐDÔEÜ% d›Oò #‘D�A�qÙ˜q T F¨-¸°s¸!Ð"<¸eÀa¹iÓH�CÚØ"š
ð#ô ×'Ñ'¨Ô*Ü$×+Ñ+¨AÓ.ò #�Að2Ü# A q§v¡vÓ.˜ñ ˜q T F¨!¨A¯F©F¨8Ð"4°e¸a±iÓ@�CÚØ"š
ð#ð �ô ˜q .°$Ó7ˆHÜ˜Ô!ð4Ù$›J�EÙ˜6˜(Ð"2´4¸³;°-Ð@ÔAñ ˜5 $Ð):Ñ":¸EÀA¹IÓF�ÙØ�Jä�q˜*Ô%Ü# A›wŸ}™}›ò #‘G�D˜!Ù˜q T F¨!¨D¨6Ð"2°E¸A±IÓ>�CÚØ"š
ð#ð �ä�q˜+Ô&ØŸK™Kò '�DÜ˜q $Õ'Ù"¤7¨1¨dÓ#3¸°v¸Q¸t¸fÐ5EÀuÈqÁyÓQ˜ÚØ#&šJð	'ð
 �ð  ˆLð	Ü˜1˜oÔ.Ø#$§?¡?´6×3JÑ3JÓ#K�LÙ˜6˜(Ð"3´D¸Ó4FÐ3GÐHÕIÜ˜Q Ô-Ø#$§<¡<£>�LÙ˜6˜( .´°lÓ1CÐ0DÐEÔFô
 ˜,¬Ô.Ü(¨Ó6ò #‘G�A�tØ�|Ø Ù˜t¨ v¨\¸!¸¸AÐ%>ÀÈÁ	ÓJ�CÚØ"š
ð#ð ˆKøôy !ò "Ø!“Fð"ûô& ò Ù�v�hÐ=¸b¸TÐBÔCØ•ûðûô" %ò 2Ø"&  q¨¯©¨Ð1Ô1ð2ûô !ò 4Ù˜6˜(Ð"<¸R¸DÐAÔBØÐ"3Ñ3Õ3ûð4ûô> ò Ù�v�hÐ;¸B¸4Ð@ÔAØ•ûðús   Æ+R
 È'R Ê7SÌS# ÏA4T Ò
RÒRÒ	R>Ò%R9Ò3R>Ò9R>ÓS ÓS Ó#	TÓ,TÓ=TÔTÔ	T-ÔT(Ô"T-Ô(T-Úrootr   )r)   r   r€   r·   r0   r   ÚBaseExceptionÚint)rƒ   r]   rP   r”   r•   r–   rÊ   r    r›   r…   rÙ   rÚ   s   ` ```` @@@@@r   Údebug_dumpszGraphPickler.debug_dumpsã   sœ   ÿù€ ð< Ò&œW›YˆÙ”b—j‘j“l GÓ,ˆä›Eˆð	”Sð 	˜Tõ 	ð	œð 	¤°Ñ 4ö 	ðI	”Cð I	œsð I	¬3ð I	´3¸±:÷ I	ó I	ñV �3˜ Ó"ˆØˆ
r    r4   )r-   r.   r/   Ú__doc__r   r€   r)   rV   r¸   rÝ   Úfloatr0   Úbytesr1   ra   rb   r	   rX   rµ   r   r   rz   r}   Úclassmethodr†   Ústaticmethodr   r‘   rÞ   Ú__classcell__©r\   s   @r   rN   rN   g   sz  ø„ ññ
K˜RŸZ™Zð K°'¸D±.ð KÈDõ Kñ" # C¨°°U¸DÁ$ÀtÃ*Ð#MÓNÐàð@"Øð@"à	ˆx˜˜S˜Ñ! 5¨¨c¨¡?Ð2Ñ	3ò@"ó ð@"ðD ð ð ¨C°$©Jò ó ðð ñ%˜ð %¨°4©ð %À5ò %ó ð%ð ð
(�Eð 
( nð 
(¸ò 
(ó ð
(ð ð %)ðyð
 Ø Øòyàðyð "ðyð
 ðyð ðyð ðyð 
ˆt‰òyó ôyr    rN   c                   ó   — e Zd Zdeddfd„Zy)rŒ   rˆ   r   Nc                 ó0   — || _         t        «       | _        y r4   )rˆ   r   Úmeta_converter)r[   rˆ   s     r   rV   z_UnpickleState.__init__¡  s   € Ø"ˆŒÜ9F»ˆÕr    )r-   r.   r/   r   rV   r&   r    r   rŒ   rŒ      s   „ ðI .ð I°Tô Ir    rŒ   rW   c                   óZ   ‡ — e Zd Zdej                  deddfˆ fd„Zededefd„«       Z	ˆ xZ
S )r�   r„   r|   r   Nc                 ó2   •— t         ‰| �  |«       || _        y r4   )rU   rV   rY   )r[   r„   r|   r\   s      €r   rV   z_GraphUnpickler.__init__­  s   ø€ Ü‰Ñ˜Ô Ø-ˆÕr    Úpidc                 óN   — |dk(  r| j                   S t        j                  d«      ‚)Nr|   zInvalid persistent ID)rY   rÅ   ÚUnpicklingError)r[   rë   s     r   Úpersistent_loadz_GraphUnpickler.persistent_load±  s+   € ð Ð"Ò"Ø×'Ñ'Ð'ä×(Ñ(Ð)@ÓAÐAr    )r-   r.   r/   r   r€   rŒ   rV   r	   rX   rî   rä   rå   s   @r   r�   r�   ¬  sG   ø„ ð.˜rŸz™zð .¸>ð .Èdõ .ð ðB 6ð B¨fò Bó ôBr    r�   c                   ó‚   — e Zd ZU eeef   ed<   edede	de
eeege	f   e
eef   f   fd„«       Zde	ddfd„Zd	ede	fd
„Zy)ro   r‡   r…   r]   r   c                 óB   — | j                    | |«      |j                  ffS r4   ©ÚunpicklerY   ©rƒ   r…   r]   s      r   rf   z!_ShapeEnvPickleData.reduce_helper½  s"   € ð �|‰|™c #›h¨×(?Ñ(?Ð@Ð@Ð@r    ÚenvNc                 ó¤   — |j                   rt        d«      ‚|j                  j                  «       | _        | j                  d= | j                  d= y )Nz4Translation validation must be disabled for picklingÚtracked_fakesÚfake_tensor_cache)Ú_translation_validation_enabledrw   r¬   Úcopyr‡   )r[   rô   s     r   rV   z_ShapeEnvPickleData.__init__Å  sF   € ð ×.Ò.Ü Ð!WÓXÐXØ—L‘L×%Ñ%Ó'ˆŒ	Ø�I‰I�oÐ&Ø�I‰IÐ)Ñ*r    r|   c                 ó$  — |j                   st        d«      ‚|j                   j                  st        d«      ‚| j                  j	                  «       D ]&  \  }}t        |j                   j                  ||«       Œ( |j                   j                  S )Nz#unpickle_state.fake_mode is not setz-unpickle_state.fake_mode.shape_env is not set)rˆ   rw   Ú	shape_envr‡   r³   Úsetattr)r[   r|   rÈ   rÉ   s       r   rò   z_ShapeEnvPickleData.unpickleÏ  s|   € à×'Ò'Ü Ð!FÓGÐGØ×'Ñ'×1Ò1Ü Ð!PÓQÐQà—I‘I—O‘OÓ%ò 	>‰DˆAˆqÜ�N×,Ñ,×6Ñ6¸¸1Õ=ð	>ð ×'Ñ'×1Ñ1Ð1r    )r-   r.   r/   r²   r0   rX   r2   râ   rN   r   rµ   r   r
   rŒ   rW   rf   rV   rò   r&   r    r   ro   ro   º  s�   … Ø
ˆs�Fˆ{Ñ
ÓàðAØ"ðAØ)1ðAà	Ø�$˜Ð'¨Ð1Ñ2°E¸$Ð@SÐ:SÑ4TÐTñ
òAó ðAð+˜Hð +¨ó +ð
2 ~ð 
2¸(ô 
2r    ro   c                   óŒ   — e Zd Zedededeeee	gef   eee
f   f   fd„«       Zdeddfd„Zdefd„Zd	e	dej                   fd
„Zy)rq   r…   r]   r   c                 óÄ   —  | |j                   «      |j                  f}t        |t        j                  «      rt
        j                  |fS t        dt        |«      › �«      ‚)NzUnhandled SymNode type )	ÚnoderY   rd   rg   rp   rq   Úunpickle_sym_intÚNotImplementedErrorra   )rƒ   r…   r]   rÐ   s       r   rf   z _SymNodePickleData.reduce_helperÝ  sR   € ñ �C—H‘H“˜w×6Ñ6Ð7ˆÜ�cœ5Ÿ<™<Ô(ä%×6Ñ6¸Ð<Ð<ä%Ð(?ÄÀSÃ	¸{Ð&KÓLÐLr    rÿ   Nc                 óŒ   — |j                   | _        |j                  | _        |j                  | _        |j                  | _        y r4   )Ú_exprÚexprrû   ÚpytypeÚ_hintÚhint)r[   rÿ   s     r   rV   z_SymNodePickleData.__init__ì  s.   € Ø—J‘JˆŒ	ØŸ™ˆŒØ—k‘kˆŒØ—J‘Jˆ�	r    c                 óœ   — | j                   €t        d«      ‚t        | j                  | j                   | j                  | j
                  «      S )Nzshape_env is None)rû   rw   r   r  r  r  )r[   s    r   Ú_to_sym_nodez_SymNodePickleData._to_sym_nodeò  s9   € Ø�>‰>Ð!Ü Ð!4Ó5Ð5Ü�t—y‘y $§.¡.°$·+±+¸t¿y¹yÓIÐIr    r|   c                 óH   — t        j                  | j                  «       «      S r4   )rg   rp   r	  ©r[   r|   s     r   r   z#_SymNodePickleData.unpickle_sym_int÷  s   € Ü�|‰|˜D×-Ñ-Ó/Ó0Ð0r    )r-   r.   r/   râ   rN   r   rµ   r   r
   rŒ   rW   rf   r   rV   r	  rg   rp   r   r&   r    r   rq   rq   Ü  s”   „ ØðMàðMð ðMð 
Ø�$˜Ð'¨Ð2Ñ3°U¸4ÐATÐ;TÑ5UÐUñ
ò	Mó ðMð˜Wð ¨ó ðJ˜gó Jð
1¨~ð 1À%Ç,Á,ô 1r    rq   c                   ó‚   — e Zd ZU ee   ed<   edededee	e
egef   ee
ef   f   fd„«       Zdededdfd	„Zd
edefd„Zy)re   Úmetadatar…   r]   r   c                 óX   — | j                    | |j                  |«      |j                  ffS r4   )rò   rZ   rY   ró   s      r   rf   z_TensorPickleData.reduce_helperþ  s3   € ð �|‰|Ù�×.Ñ.°Ó4Ø×#Ñ#ð
ð 
ð 	
r    Ú	describerÚtNc           
      óÒ  — |j                  |«      }|j                  rYt        |j                  t        j                  j
                  j                  «      s!t        dt        |j                  «      › �«      ‚t        j                  |d ¬«      | _        t        j                  D ]B  }|dv rŒt        | j                  |«      €Œt        d|› dt        | j                  |«      › �«      ‚ y )Nz3view_func must be None or _FakeTensorViewFunc, got ©rˆ   )rˆ   Ú	view_funcz
not None: z: )Údescribe_tensorr  rd   rg   Ú_subclassesÚ
meta_utilsÚ_FakeTensorViewFuncrw   ra   r¿   Úreplacer  r   Ú_UNSERIALIZABLErÂ   )r[   r  r  r  rÈ   s        r   rV   z_TensorPickleData.__init__	  sÛ   € ð
 ×,Ñ,¨QÓ/ˆð ×Ò¤jØ×Ñ¤× 1Ñ 1× <Ñ <× PÑ Pô'
ô !ØEÜ˜×*Ñ*Ó+Ð,ð.óð ô $×+Ñ+¨HÀÔEˆŒô  ×/Ñ/ò 	TˆAØÐ.Ñ.ØÜ�t—}‘} aÓ(Ñ4Ü$ z°!°°B´w¸t¿}¹}ÈaÓ7PÐ6QÐ%RÓSÐSñ		Tr    r|   c                 óì  ‡— t        j                  | j                  ‰j                  ¬«      }|j                  rN|j
                  �Bt        j                  |j
                  ‰j                  ¬«      }t        j                  ||¬«      }dt        g t        j                  f   dt        j                  t        z  dt        fˆfd„}‰j                  j                  |‰j                  j                  |d d «      S )Nr  )ÚbaseÚmake_meta_tÚdevicer   c                 ó|   •— t        «       5  t        ‰j                   | «       |«      cd d d «       S # 1 sw Y   y xY wr4   )r   r   rˆ   )r  r  r|   s     €r   Ú	with_fakez-_TensorPickleData.unpickle.<locals>.with_fake1  s8   ø€ ô “ñ Ü!Ø"×,Ñ,Ù“Màó	÷÷ ò ús   Œ2²;)r¿   r  r  rˆ   Úis_viewr  r   rg   r   r  r0   r   rè   Úmeta_tensorrû   )r[   r|   r  Únew_baser  s    `   r   rò   z_TensorPickleData.unpickle"  sÕ   ø€ ä×&Ñ&Ø�M‰MØ$×.Ñ.ô
ˆð ×Ò §¡Ð 9Ü"×*Ñ*Ø—‘Ø(×2Ñ2ôˆHô #×*Ñ*¨8¸(ÔCˆHð		Ü! "¤e§l¡lÐ"2Ñ3ð		Ü=B¿\¹\ÌCÑ=Oð		äõ		ð ×,Ñ,×8Ñ8ØØ×$Ñ$×.Ñ.ØØØó
ð 	
r    )r-   r.   r/   r   r   r2   râ   rN   rµ   r   r
   rŒ   rW   rf   r   r   rV   rò   r&   r    r   re   re   û  s�   … Ø˜ZÑ(Ó(àð
Ø"ð
Ø)3ð
à	Ø�$˜Ð'¨Ð3Ñ4°e¸DÐBUÐ<UÑ6VÐVñ
ò
ó ð
ðTÐ"5ð T¸&ð TÀTó Tð2 
 ~ð  
¸*ô  
r    re   c                   ó    — e Zd Zedededeeee	gef   eee
f   f   dz  fd„«       Zdededdfd„Zd	e	ded
ef   fd„Zedededz  fd„«       Zy)rx   r…   r]   r   Nc                 ó^   — | j                  |«      x}r| j                  ||j                  ffS y r4   )Úfrom_objectrò   rY   )rƒ   r…   r]   r‡   s       r   rf   z#_TorchNumpyPickleData.reduce_helperF  s5   € ð —?‘? 3Ó'Ð'ˆ4Ð'Ø—L‘L 4¨×)@Ñ)@Ð"AÐBÐBàr    Úmodr   c                 ó    — || _         || _        y r4   )r&  r   )r[   r&  r   s      r   rV   z_TorchNumpyPickleData.__init__T  s   € ØˆŒØˆ�	r    r|   .c                 óÒ   — t        t        j                  | j                  «      | j                  «      }t
        j                  j                  j                  j                  «       |   S r4   )
rÂ   Ú	importlibÚimport_moduler&  r   rg   Ú_dynamoÚ	variablesÚmiscÚget_np_to_tnp_map)r[   r|   Únps      r   rò   z_TorchNumpyPickleData.unpickleX  sE   € Ü”Y×,Ñ,¨T¯X©XÓ6¸¿	¹	ÓBˆÜ�}‰}×&Ñ&×+Ñ+×=Ñ=Ó?ÀÑCÐCr    Útnpc                 ó‚  — t        |«      sy t        j                  j                  j                  j                  «       }	 |j                  |«      x}sy 	 t        |dd «      x}sd}t        |dd «      x}sy |t        t        j                  |«      |«      k7  rt        d|› d|› �«      ‚ | ||«      S # t        $ r Y y w xY w)Nr.   Únumpyr-   zNumpy object mismatch for rª   )rÃ   rg   r+  r,  r-  Úget_tnp_to_np_mapÚgetÚ	TypeErrorrÂ   r)  r*  rw   )rƒ   r0  Ú	tnp_to_npr/  r&  r   s         r   r%  z!_TorchNumpyPickleData.from_object\  sØ   € ä˜Œ}Øä—M‘M×+Ñ+×0Ñ0×BÑBÓDˆ	ð	Ø#Ÿ-™-¨Ó,Ð,�BÐ,Øð -ô
 ˜r <°Ó6Ð6�Ð6ØˆCä  J°Ó5Ð5�Ð5Øð ”œ×0Ñ0°Ó5°tÓ<Ò<Ü Ø,¨S¨E°°4°&Ð9óð ñ �3˜‹~Ðøô ò 	Ùð	ús   Á B2 Â2	B>Â=B>)r-   r.   r/   râ   rN   rX   rµ   r   r
   rŒ   rW   rf   r0   rV   rò   r%  r&   r    r   rx   rx   E  s¾   „ ØðØ"ðØ)/ðð 	Ø�d˜NÐ+¨VÐ3Ñ4°e¸DÐBUÐ<UÑ6VÐVñ	
ð ñ	òó ðð˜Cð  sð ¨tó ðD ~ð D¸(À3ÈÀ;Ñ:Oó Dð ð˜fð ¨°©ò ó ñr    rx   c                   ó  — e Zd Zededej                  j                  dee	e
egej                  j                  f   ee
ef   f   fd„«       Zdej                  j                  deddfd„Zd	edej                  j                  fd
„Zy)rj   r…   r]   r   c                 óX   — | j                    | ||j                  «      |j                  ffS r4   )rò   rP   rY   ró   s      r   rf   z$_GraphModulePickleData.reduce_helperx  s1   € ð �|‰|Ù��W—_‘_Ó%Ø×#Ñ#ð
ð 
ð 	
r    ÚgmrP   Nc                 ót  — t        |t        j                  j                  j                  «      r|j                  «       }n|j                  «       }t        |d«      r|j                  «       | _	        n|j                  j                  «       | _	        | j                  d= t        |j                  |«      | _        y )Nr«   Ú_graph)rd   rg   rh   Ú_lazy_graph_moduleÚ_LazyGraphModuleÚ_real_recompileÚ	recompiler¹   r«   Úgm_dictr¬   rù   Ú_GraphPickleDatar;  Úgraph)r[   r9  rP   Ú_python_codes       r   rV   z_GraphModulePickleData.__init__„  s   € ä�bœ%Ÿ(™(×5Ñ5×FÑFÔGØ×-Ñ-Ó/‰LàŸ<™<›>ˆLÜ�2�~Ô&ØŸ?™?Ó,ˆD�LàŸ;™;×+Ñ+Ó-ˆDŒLØ�L‰L˜Ð"Ü% b§i¡i°Ó9ˆ�
r    r|   c                 óì   — t         j                  j                  j                  t         j                  j                  «      }| j                  |_        | j                  j                  ||«      |_        |S r4   )	rg   rh   ri   Ú__new__r@  r¬   rB  rò   r;  )r[   r|   r9  s      r   rò   z_GraphModulePickleData.unpickle‘  sN   € Ü�X‰X×!Ñ!×)Ñ)¬%¯(©(×*>Ñ*>Ó?ˆØ—l‘lˆŒØ—J‘J×'Ñ'¨¨NÓ;ˆŒ	Øˆ	r    )r-   r.   r/   râ   rN   rg   rh   ri   rµ   r   r
   rŒ   rW   rf   r)   rV   rò   r&   r    r   rj   rj   w  s«   „ Øð	
Ø"ð	
Ø).¯©×)=Ñ)=ð	
à	Ø�$˜Ð'¨¯©×)=Ñ)=Ð=Ñ>ØˆdÐ'Ð'Ñ(ð	*ñ
ò	
ó ð	
ð:˜5Ÿ8™8×/Ñ/ð :¸'ð :Àdó :ð ~ð ¸%¿(¹(×:NÑ:Nô r    rj   c                   ó  — e Zd Zdej                  j
                  deej                  j
                  d f   deddfd„Zdej                  j                  ded ej                  j
                  f   de
dej                  j
                  fd	„Zy)
Ú_NodePickleDatarÿ   ÚmappingrP   r   Nc                 óf  ‡— t        j                  t        j                  j                  ˆfd„|j
                  «      | _        t        j                  t        j                  j                  ˆfd„|j                  «      | _        |j                  | _        |j                  | _        t        j                  |j                  |«      | _        |j                  | _        |j                  j                  «       D ��ci c]%  \  }}|j                  r|j                  |«      r||“Œ' c}}| _        y c c}}w )Nc                 ó   •— ‰|    S r4   r&   ©ÚnrH  s    €r   r=   z*_NodePickleData.__init__.<locals>.<lambda>Ÿ  s   ø€ À'È!Á*€ r    c                 ó   •— ‰|    S r4   r&   rK  s    €r   r=   z*_NodePickleData.__init__.<locals>.<lambda>¡  s   ø€  W¨Q¡Z€ r    )rH   Útree_map_onlyrg   rh   rv   rÐ   Úkwargsr   Úoprn   rÅ   Útargetra   Úmetar³   r+   )r[   rÿ   rH  rP   rÈ   rÉ   s     `   r   rV   z_NodePickleData.__init__™  sÖ   ø€ ô ×(Ñ(¬¯©¯©Ó8LÈdÏiÉiÓXˆŒ	Ü×*Ñ*Ü�H‰H�M‰MÓ/°·±ó
ˆŒð —I‘IˆŒ	Ø—'‘'ˆŒÜ#×*Ñ*¨4¯;©;¸Ó@ˆŒð —I‘IˆŒ	ð Ÿ	™	Ÿ™Ó)÷
á��1à×4Ò4Ø×3Ñ3°AÔ6ð	 ˆq‰Dó
ˆ�	ùó 
s   Ã9*D-rB  r|   c                 óÌ  ‡— t        j                  t        ˆfd„| j                  «      }t        j                  t        ˆfd„| j                  «      }| j
                  j                  |«      }t        |«      s't        |t        «      st        dt        |«      › �«      ‚|j                  | j                  |||| j                  | j                  «      }| j                  |_        |S )Nc                 ó   •— ‰|    S r4   r&   rK  s    €r   r=   z*_NodePickleData.unpickle.<locals>.<lambda>¼  s   ø€ ¸wÀq¹z€ r    c                 ó   •— ‰|    S r4   r&   rK  s    €r   r=   z*_NodePickleData.unpickle.<locals>.<lambda>¾  s   ø€  w¨q¡z€ r    z$target must be callable or str, got )rH   rN  rG  rÐ   rO  rQ  rò   rÃ   rd   r0   rw   ra   Úcreate_noderP  r   rR  )r[   rB  rH  r|   rÐ   rO  rQ  rÿ   s     `     r   rò   z_NodePickleData.unpickle¶  s®   ø€ ô ×#Ñ#¤OÓ5IÈ4Ï9É9ÓUˆÜ×%Ñ%ÜÓ1°4·;±;ó
ˆð —‘×%Ñ% nÓ5ˆÜ˜Ô ¤J¨v´sÔ$;Ü Ð#GÌÈVËÀ~Ð!VÓWÐWØ× Ñ  §¡¨&°$¸ÀÇ	Á	È4Ï9É9ÓUˆØ—I‘IˆŒ	Øˆr    )r-   r.   r/   rg   rh   rv   r²   r)   rV   ÚGraphrŒ   rò   r&   r    r   rG  rG  ˜  s–   „ ð
à�h‰h�m‰mð
ð �e—h‘h—m‘mÐ%6Ð6Ñ7ð
ð ð	
ð
 
ó
ð:à�x‰x�~‰~ðð Ð'¨¯©¯©Ð6Ñ7ðð 'ð	ð
 
�‰�‰ôr    rG  c            
       óê   — e Zd Zedededeeegef   ee	   f   fd„«       Z
edededd fd„«       Zededed	   ed
   z  dedd fd„«       Zededefd„«       Zededefd„«       Zedededefd„«       Zy)rn   r…   rP  r   c                 ól   — | j                  ||j                  «      }|j                  |j                  ffS r4   )rÅ   rP   rò   rY   )rƒ   r…   rP  Úresults       r   rf   z_OpPickleData.reduce_helperÉ  s0   € ð —‘˜B §¡Ó0ˆØ—‘ '×"9Ñ"9Ð!;Ð<Ð<r    rP   c                 ó  — t        |t        «      rt        |«      S t        t        |dd «      t        «      rUt        |d«      st        d«      ‚|j                  }t        |t        «      st        dt        |«      › �«      ‚t        |«      S t        j                  j                  j                  |«      }t        |t        j                  j                  «      r| j!                  |t"        |«      S t        |t        j                  j$                  «      r| j!                  |t&        |«      S |j)                  t*        j,                  «      r!|j/                  dd«      \  }}t+        ||«      S t1        dt        |«      › d|› d|› �«      ‚)NÚ__wrapped__z op missing __wrapped__ attributez"Expected AOTCompiledArtifact, got rª   r§   zTARGET: ú )rd   r0   Ú_OpStrPickleDatarÂ   r   r¹   rw   r\  ra   Ú_OpPrecompiledPickleDatarg   rh   rv   Ú_pretty_print_targetrk   Ú
OpOverloadÚ
_pickle_opÚ_OpOverloadPickleDatarm   Ú_OpOverloadPacketPickleDatar   Ú_OpFunctionPickleDataÚSUPPORTED_ROOTSÚsplitr  )rƒ   rP  rP   Úartifactr   rÛ   Údetails          r   rÅ   z_OpPickleData.pickleÐ  s>  € ä�bœ#ÔÜ# BÓ'Ð'ä”g˜b -°Ó6Ô8KÔLÜ˜2˜}Ô-Ü$Ð%GÓHÐHØ—~‘~ˆHÜ˜hÔ(;Ô<Ü$Ø8¼¸h»Ð8HÐIóð ô ,¨HÓ5Ð5ä�x‰x�}‰}×1Ñ1°"Ó5ˆä�bœ%Ÿ*™*×/Ñ/Ô0Ø—>‘> $Ô(=¸wÓGÐGÜ˜œEŸJ™J×7Ñ7Ô8Ø—>‘> $Ô(CÀWÓMÐMØ�_‰_Ô2×BÑBÔCØŸ:™: c¨1Ó-‰LˆD�&Ü(¨¨vÓ6Ð6ô &¨´°b³°
¸!¸B¸4¸qÀÀÐ&GÓHÐHr    r   Údataclsrc  rd  c                 ór   — |j                   x}r" || «      sddlm} |j                  d| › �«        || «      S )Nr   )ÚCacheabilityValidatorz"Unable to pickle non-standard op: )r*   Útorch._inductor.codecacherl  Úbypass)r   rj  rP   r*   rl  s        r   rb  z_OpPickleData._pickle_opì  s?   € ð "×,Ñ,Ð,ˆJÐ,±jÀÔ6FÝGà!×(Ñ(Ð+MÈdÈVÐ)TÔUÙ�t‹}Ðr    r|   c                  ó   — y r4   r&   r  s     r   rò   z_OpPickleData.unpickleø  s   € àr    c                 óŒ   — d|v r4|j                  dd«      \  }}t        «       |   }| j                  ||«      S t        «       |   S )zC
        Like `globals()[name]` but supports dotted names.
        rª   r§   )rg  ÚglobalsÚ_getattr_by_name)rƒ   r   r&  ÚrestrÛ   s        r   Ú_lookup_global_by_namez$_OpPickleData._lookup_global_by_nameü  sI   € ð
 �$‰;ØŸ
™
 3¨Ó*‰IˆC�Ü“9˜S‘>ˆDØ×'Ñ'¨¨dÓ3Ð3ä“9˜T‘?Ð"r    rÛ   c                 ón   — d|v r&|j                  dd«      \  }}t        | |«      } d|v rŒ&t        | |«      S )zG
        Like `getattr(root, name)` but supports dotted names.
        rª   r§   )rg  rÂ   )rÛ   r   r&  s      r   rr  z_OpPickleData._getattr_by_name  sC   € ð
 �T‰kØŸ
™
 3¨Ó*‰IˆC�Ü˜4 Ó%ˆDð �TŠkô �t˜TÓ"Ð"r    N)r-   r.   r/   râ   rN   rX   rµ   r   rŒ   rW   rf   r)   rÅ   rã   r0   ra   rb  r   rò   rt  rr  r&   r    r   rn   rn   È  s-  „ Øð=Ø"ð=Ø(.ð=à	ˆx˜Ð(¨&Ð0Ñ1°5Ð9LÑ3MÐMÑ	Nò=ó ð=ð ðI˜ð I¨ð I°_ò Ió ðIð6 ð	Øð	àÐ-Ñ.°Ð6SÑ1TÑTð	ð ð	ð 
ò		ó ð	ð ð ~ð ¸&ò ó ðð ð	#¨#ð 	#°&ò 	#ó ð	#ð ð#˜vð #¨Sð #°Vò #ó ñ#r    rn   c                   ó,   — e Zd Zdeddfd„Zdedefd„Zy)r^  r   r   Nc                 ó   — || _         y r4   r   ©r[   r   s     r   rV   z_OpStrPickleData.__init__  ó	   € Øˆ�	r    r|   c                 ó   — | j                   S r4   r   r  s     r   rò   z_OpStrPickleData.unpickle  s   € Ø�y‰yÐr    )r-   r.   r/   r0   rV   rŒ   rò   r&   r    r   r^  r^    s(   „ ð˜Sð  Tó ð ~ð ¸#ô r    r^  c                   óT   — e Zd Zdeddfd„Zdedej                  j                  fd„Z	y)rc  r   r   Nc                 ó   — || _         y r4   r   rx  s     r   rV   z_OpOverloadPickleData.__init__  ry  r    r|   c                 ó²   — | j                  | j                  «      }t        |t        j                  j
                  «      st        dt        |«      › �«      ‚|S )NzExpected OpOverload, got )rt  r   rd   rg   rk   ra  rw   ra   ©r[   r|   r]   s      r   rò   z_OpOverloadPickleData.unpickle  sF   € Ø×)Ñ)¨$¯)©)Ó4ˆÜ˜#œuŸz™z×4Ñ4Ô5Ü Ð#<¼TÀ#»Y¸KÐ!HÓIÐIØˆ
r    )
r-   r.   r/   r0   rV   rŒ   rg   rk   ra  rò   r&   r    r   rc  rc    s2   „ ð˜Sð  Tó ð ~ð ¸%¿*¹*×:OÑ:Oô r    rc  c                   óT   — e Zd Zdeddfd„Zdedej                  j                  fd„Z	y)rd  r   r   Nc                 ó   — || _         y r4   r   rx  s     r   rV   z$_OpOverloadPacketPickleData.__init__'  ry  r    r|   c                 ó²   — | j                  | j                  «      }t        |t        j                  j
                  «      st        dt        |«      › �«      ‚|S )NzExpected OpOverloadPacket, got )rt  r   rd   rg   rk   rm   rw   ra   r~  s      r   rò   z$_OpOverloadPacketPickleData.unpickle*  sF   € Ø×)Ñ)¨$¯)©)Ó4ˆÜ˜#œuŸz™z×:Ñ:Ô;Ü Ð#BÄ4ÈÃ9À+Ð!NÓOÐOØˆ
r    )
r-   r.   r/   r0   rV   rŒ   rg   rk   rm   rò   r&   r    r   rd  rd  &  s2   „ ð˜Sð  Tó ð ~ð ¸%¿*¹*×:UÑ:Uô r    rd  c                   ó,   — e Zd Zdeddfd„Zdedefd„Zy)r_  rh  r   Nc                 ó.   — |j                  «       | _        y r4   )Ú	serializeÚcontents)r[   rh  s     r   rV   z!_OpPrecompiledPickleData.__init__2  s   € Ø ×*Ñ*Ó,ˆ�r    r|   c                 óš   ‡— t        j                  | j                  «      Šdd l}|j	                  ‰«      dt
        dt
        fˆfd„«       }|S )Nr   rÐ   r   c                  ó   •—  ‰| Ž S r4   r&   )rÐ   Úprecompiled_artifacts    €r   Úwrappedz2_OpPrecompiledPickleData.unpickle.<locals>.wrapped9  s   ø€ á'¨Ð.Ð.r    )r   Údeserializer…  Ú	functoolsÚwrapsr   )r[   r|   r‹  r‰  rˆ  s       @r   rò   z!_OpPrecompiledPickleData.unpickle5  sL   ø€ Ü2×>Ñ>¸t¿}¹}ÓMÐÛà	�‰Ð-Ó	.ð	/œ3ð 	/¤3ô 	/ó 
/ð	/ð ˆr    )r-   r.   r/   r   rV   rŒ   rX   rò   r&   r    r   r_  r_  1  s)   „ ð-Ð!4ð -¸ó -ð ~ð ¸&ô r    r_  c                   ó8   — e Zd ZdZdZdededdfd„Zdedefd	„Z	y)
re  zÕ
    Supports pickling a set of standard/common functions
    These must be prefixed with the full namespace in order to properly
    be pickled (i.e `einops.rearrange` and not `from einops import rearrange`)
    )z	builtins.zmath.ztorch.z	operator.zeinops.rÛ   r   r   Nc                 ó    — || _         || _        y r4   )rÛ   r   )r[   rÛ   r   s      r   rV   z_OpFunctionPickleData.__init__J  s   € ØˆŒ	Øˆ�	r    r|   c                 óâ  — | j                   dk(  rt        j                  | j                  «      S | j                   dk(  r dd l}| j                  || j                  «      S | j                   dk(  r | j                  t        | j                  «      S | j                   dk(  r dd l}| j                  || j                  «      S | j                   dk(  r dd l}| j                  || j                  «      S t        ‚)NÚbuiltinsÚmathr   rg   ÚoperatorÚeinops)
rÛ   Ú__builtins__r4  r   r‘  rr  rg   r’  r“  r  )r[   r|   r‘  r’  r“  s        r   rò   z_OpFunctionPickleData.unpickleN  s¾   € Ø�9‰9˜
Ò"Ü×#Ñ# D§I¡IÓ.Ð.Ø�Y‰Y˜&Ò Ûà×(Ñ(¨¨t¯y©yÓ9Ð9Ø�Y‰Y˜'Ò!Ø×(Ñ(¬°·	±	Ó:Ð:Ø�Y‰Y˜*Ò$Ûà×(Ñ(¨°4·9±9Ó=Ð=Ø�Y‰Y˜(Ò"Ûà×(Ñ(¨°·±Ó;Ð;ä%Ð%r    )
r-   r.   r/   rß   rf  r0   rV   rŒ   rX   rò   r&   r    r   re  re  @  s<   „ ñð O€Oð˜Sð ¨ð °ó ð& ~ð &¸&ô &r    re  c                   ó¬   — e Zd Zdej                  j
                  deddfd„Zdej                  j                  de	dej                  j
                  fd„Z
y)	rA  rB  rP   r   Nc                 óì   — |j                   | _        |j                  | _        i }|j                  D ]  }t        |||«      ||<   Œ t        |j                  «       «      | _        |j                  | _        y r4   )	Ú_tracer_clsÚ
tracer_clsÚ_tracer_extrasÚtracer_extrasÚnodesrG  rµ   ÚvaluesÚ_codegen)r[   rB  rP   r›  rÿ   s        r   rV   z_GraphPickleData.__init__d  sf   € Ø×+Ñ+ˆŒØ"×1Ñ1ˆÔà68ˆØ—K‘Kò 	@ˆDÜ)¨$°°wÓ?ˆE�$ŠKð	@ä˜5Ÿ<™<›>Ó*ˆŒ
ØŸ™ˆ�r    r9  r|   c                 óü   — t         j                  j                  || j                  | j                  «      }i }| j
                  D ]  }|j                  |||«      ||<   Œ t        | d«      r| j                  |_        |S )Nr�  )	rg   rh   rW  r˜  rš  r›  rò   r¹   r�  )r[   r9  r|   rB  r›  Únds         r   rò   z_GraphPickleData.unpicklew  sn   € ô —‘—‘˜r 4§?¡?°D×4FÑ4FÓGˆà68ˆØ—*‘*ò 	BˆBØŸ™ E¨5°.ÓAˆE�"ŠIð	Bä�4˜Ô$Ø!Ÿ]™]ˆEŒNàˆr    )r-   r.   r/   rg   rh   rW  r)   rV   ri   rŒ   rò   r&   r    r   rA  rA  c  sS   „ ð'˜eŸh™hŸn™nð '°wð 'À4ó 'ð&Ø—(‘(×&Ñ&ðØ8Fðà	�‰�‰ôr    rA  c                   ó¼   — e Zd Zededej                  j                  dee	e
egej                  j                  f   ee
ef   f   fd„«       Zdeddfd„Zdedefd	„Zy)
rs   r…   r]   r   c                 óB   — | j                    | |«      |j                  ffS r4   rñ   ró   s      r   rf   z'_TracingContextPickleData.reduce_helper†  s*   € ð �L‰Lá�C“Ø×'Ñ'ðð
ð 	
r    ÚcontextNc                 ó6  — |j                   | _         |j                  | _        |j                  | _        |j                  | _        |j                  | _        |j
                  | _        |j                  | _        |j                  | _        |j                  | _        y r4   )	Úmodule_contextÚframe_summary_stackÚloc_in_frameÚaot_graph_nameÚparams_flatÚparams_flat_unwrap_subclassesÚparams_unwrapped_to_flat_indexÚoutput_stridesÚ#force_unspec_int_unbacked_size_like)r[   r¢  s     r   rV   z"_TracingContextPickleData.__init__•  sƒ   € à%×4Ñ4ˆÔØ#*×#>Ñ#>ˆÔ Ø#×0Ñ0ˆÔØ%×4Ñ4ˆÔØ"×.Ñ.ˆÔØ-4×-RÑ-RˆÔ*Ø.5×.TÑ.TˆÔ+Ø%×4Ñ4ˆÔà×7Ñ7ð 	Õ0r    r|   c                 ób  — t        |j                  «      }| j                  |_        | j                  |_        | j                  |_        | j
                  |_        | j                  |_        | j                  |_        | j                  |_        | j                  |_	        | j                  |_
        |S r4   )r   rˆ   r¤  r¥  r¦  r§  r¨  r©  rª  r«  r¬  )r[   r|   r¢  s      r   rò   z"_TracingContextPickleData.unpickle«  sš   € Ü  ×!9Ñ!9Ó:ˆØ!%×!4Ñ!4ˆÔØ&*×&>Ñ&>ˆÔ#Ø#×0Ñ0ˆÔØ!%×!4Ñ!4ˆÔØ"×.Ñ.ˆÔØ04×0RÑ0RˆÔ-Ø15×1TÑ1TˆÔ.Ø!%×!4Ñ!4ˆÔà×4Ñ4ð 	Ô3ð ˆr    )r-   r.   r/   râ   rN   rg   rr   r   rµ   r   r
   rŒ   rW   rf   rV   rò   r&   r    r   rs   rs   …  s�   „ Øð
Ø"ð
Ø).¯©×)EÑ)Eð
à	Ø�$˜Ð'¨¯©×)EÑ)EÐEÑFØˆdÐ'Ð'Ñ(ð	*ñ
ò
ó ð
ð
 ð 
°4ó 
ð, ~ð ¸.ô r    rs   )r   N)SÚ
contextlibr¿   r)  r   r»   rÅ   r8   Úabcr   Úcollections.abcr   r   Útypingr   r   r   Útyping_extensionsr	   r
   Útorch.utils._import_utilsr   rT   rg   Útorch.utils._pytreeÚutilsÚ_pytreerH   Útorch._guardsr   Ú"torch._inductor.standalone_compiler   Ú"torch._library.fake_class_registryr   Útorch._subclasses.fake_tensorr   r   r   Útorch._subclasses.meta_utilsr   r   r   Útorch.fx.experimental.sym_noder   Ú%torch.fx.experimental.symbolic_shapesr   Útorch.utils._mode_utilsr   rp   ÚSymFloatr   r0   r1   r   r'   Ú	dataclassr)   r5   rX   r9   r:   r>   ÚcontextmanagerrL   ÚPicklerrN   rŒ   rW   Ú	Unpicklerr�   ro   rq   re   rx   rj   rG  rn   r^  rc  rd  r_  re  rA  rs   r&   r    r   ú<module>rÄ     s  ðÛ Û Û Û 	Û Û Û Ý ß /ß (Ñ (ß ,å 1ñ ƒ}€ØÐØ€Fã ß $Ð $Ý (Ý BÝ ?ß LÑ L÷ñ õ
 3Ý :Ý /ñ �K §¡¨u¯~©~Ó>€	ð˜3ð  4ó ðT¨ð T°ó Tð ×Ñ÷	"ð 	"ó ð	"óð! 6ð !¨g¯k©k¸&Ñ.Aó !ð 8¨B°¨HÑ#5ó ð ×Ñð. Y¨t¡_ò .ó ð.ô v�6—>‘>ô v÷r	Iñ Iñ Ð3°VÓ<Ð ôB�f×&Ñ&ô B÷2ñ 2÷D1ñ 1÷>G
ñ G
÷T/ñ /÷dñ ÷B-ñ -÷`H#ñ H#ôV�}ô ô˜Mô ô -ô ô˜}ô ô &˜Mô  &÷Fñ ÷D3ò 3r    