Ë
    [^(h$  ã                   óø   — 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	 d dl
Z
d dlmZ d dlZ
d dlmc mZ d dlmZ d„ Z ed¬«      d„ «       Zd	d
œde
j.                  dedefd„Z G d„ d«      Z G d„ d«      Zy)é    N)Údefaultdict)ÚOptional)ÚStorageWeakRefc                  ó   ‡ — ˆ fd„}|S )zkLazily wrap a function with torch.compile on the first call

    This avoids eagerly importing dynamo.
    c                 óF   •‡ — t        j                  ‰ «      ˆˆ fd„«       }|S )Nc                  ó    •— t        j                  ‰fi ‰¤Ž} t        j                  ‰«      |«      t	        «       ‰j
                  <    || i |¤ŽS ©N)ÚtorchÚcompileÚ	functoolsÚwrapsÚglobalsÚ__name__)ÚargsÚkwargsÚcompiled_fnÚcompile_kwargsÚfns      €€úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/utils/_content_store.pyÚcompile_hookz7lazy_compile.<locals>.decorate_fn.<locals>.compile_hook5   sF   ø€ äŸ-™-¨Ñ=¨nÑ=ˆKØ%8¤Y§_¡_°RÓ%8¸Ó%EŒG‹I�b—k‘kÑ"Ù Ð/¨Ñ/Ð/ó    )r   r   )r   r   r   s   ` €r   Údecorate_fnz!lazy_compile.<locals>.decorate_fn4   s&   ù€ Ü	�‰˜Ó	ô	0ó 
ð	0ð
 Ðr   © )r   r   s   ` r   Úlazy_compiler   .   s   ø€ ôð Ðr   T)Údynamicc                 óÈ  — t        j                  dd| j                  | j                  t         j                  ¬«      j                  «       }|dz  dz   j                  «       }t        j                  dd| j                  | j                  t         j                  ¬«      j                  «       j                  «       }t        j                  || z  |z   j                  «       dg«      S )Ni   €l        )ÚdeviceÚdtypeiÿÿÿé   r   )
r
   ÚrandintÚshaper   Úint32ÚabsÚlongÚprimsÚxor_sumÚint)ÚxÚaÚbs      r   Úhash_storage_kernelr+   D   s£   € ô
 	�‰Ø�%˜Ÿ™¨¯©¼¿¹ô	ç	�cƒeð ð ˆy‰/˜QÑ	×$Ñ$Ó&€Aä�‰�h  q§w¡w°q·x±xÄuÇ{Á{ÔSß	‰‹ß	‰‹ð ô �=‰=˜!˜a™% !™)Ÿ™Ó*¨Q¨CÓ0Ð0r   F©Ústable_hashÚstorager-   Úreturnc                ó  — dd l }ddlm} | j                  j                  }|s ||«      s…| j                  «       }t        j                  |j                  «       z  j                  |j                  «       «      }t        j                  d¬«      }|j                  |«       |j                  «       S |dk(  r|j                  j                   }n”|dk(  r.|j"                  j$                  | j                  j&                     }na|dk(  r|j(                  j+                  «       }nA|dk(  r.|j,                  j$                  | j                  j&                     }nt/        d	|› �«      ‚|j1                  «       }		 |j3                  d«        |j4                  d|j6                  | j                  ¬
«      j9                  | «      }
|
j;                  «        dz  }|dkD  rt=        j>                  |
d|fdd«      }
|
jA                  |jB                  «      }
d}tE        |«      D �cg c]  }tG        |
«      jI                  «       ‘Œ }}tK        jL                  dd|z  z   g|¢­Ž jO                  «       |jQ                  |	«       S c c}w # |jQ                  |	«       w xY w)Nr   )Úis_compile_supportedF)ÚusedforsecurityÚcpuÚcudaÚmpsÚxpuzunhandled device type ©r   r   é   Úconstanté   ú>Úi))Útorch._dynamoÚtorch._dynamo.utilsr1   r   Útyper3   ÚctypesÚc_byteÚnbytesÚfrom_addressÚdata_ptrÚhashlibÚsha1ÚupdateÚ	hexdigestÚ_CÚdefault_generatorr4   Údefault_generatorsÚindexr5   Ú_get_default_mps_generatorr6   ÚAssertionErrorÚ	get_stateÚmanual_seedÚemptyÚuint8Úset_ÚnumelÚFÚpadÚviewr"   Úranger+   ÚitemÚstructÚpackÚhexÚ	set_state)r.   r-   r
   r1   Údevice_typeÚcpu_storageÚbufrF   Ú	generatorÚstater(   rV   ÚITERÚ_Úcss                  r   Úhash_storagerf   _   s  € ÛÝ8à—.‘.×%Ñ%€KÙÑ.¨{Ô;Ø—k‘k“mˆô �}‰}˜{×1Ñ1Ó3Ñ3×AÑAØ× Ñ Ó"ó
ˆô �|‰|¨EÔ2ˆØ�‰�CÔØ�~‰~ÓÐð �eÒØ—H‘H×.Ñ.‰	Ø	˜Ò	Ø—J‘J×1Ñ1°'·.±.×2FÑ2FÑG‰	Ø	˜Ò	Ø—I‘I×8Ñ8Ó:‰	Ø	˜Ò	Ø—I‘I×0Ñ0°·±×1EÑ1EÑF‰	äÐ5°k°]ÐCÓDÐDØ×ÑÓ!€Eð#Ø×Ñ˜aÔ ØˆE�K‰K˜ §¡°W·^±^ÔD×IÑIÈ'ÓRˆð �w‰w‹yˆj˜1‰nˆØ�Š7Ü—‘�a˜!˜S˜ :¨qÓ1ˆAØ�F‰F�5—;‘;Óˆð ˆÜ5:¸4³[ÖA°Ô! !Ó$×)Ñ)Õ+ÐAˆÐAÜ�{‰{˜3  t¡Ñ+Ð1¨bÒ1×5Ñ5Ó7à×Ñ˜EÕ"ùò Bøð 	×Ñ˜EÕ"ús   Å1B&I9 È I4È7+I9 É4I9 É9Jc                   ó�   — e Zd Zddededdfd„Zdej                  defd„Zddej                  fd	„Z
d
edej                  ddfd„Zy)ÚContentStoreWriterÚlocr-   r/   Nc                 ó>   — || _         t        «       | _        || _        y r	   )ri   ÚsetÚseen_storage_hashesr-   )Úselfri   r-   s      r   Ú__init__zContentStoreWriter.__init__•   s   € ØˆŒÜ-0«UˆÔ Ø&ˆÕr   r.   c                 óº  — t        || j                  ¬«      }|| j                  v r|S t        j                  j                  | j                  d«      }t        j                  |d¬«       t        j                  j                  ||«      }t        j                  j                  |«      r|S t        j                  ||«       | j                  j                  |«       |S )Nr,   ÚstoragesT©Úexist_ok)rf   r-   rl   ÚosÚpathÚjoinri   ÚmakedirsÚexistsr
   ÚsaveÚadd)rm   r.   ÚhÚ	subfolderÚtargets        r   Úwrite_storagez ContentStoreWriter.write_storage›   sŸ   € Ü˜¨d×.>Ñ.>Ô?ˆØ�×(Ñ(Ñ(ØˆHô —G‘G—L‘L §¡¨:Ó6ˆ	Ü
�‰�I¨Õ-Ü—‘—‘˜i¨Ó+ˆÜ�7‰7�>‰>˜&Ô!ØˆHÜ�
‰
�7˜FÔ#Ø× Ñ ×$Ñ$ QÔ'Øˆr   Útc                 ó  — |€%t        |j                  «       | j                  ¬«      }|j                  ||j	                  «       t        |j                  «      |j                  «       t        j                  j                  |«      fS )Nr,   )rf   Úuntyped_storager-   r   Ústorage_offsetÚtupler!   Ústrider
   Ú_utilsÚget_tensor_metadata)rm   r~   rz   s      r   Úcompute_tensor_metadataz*ContentStoreWriter.compute_tensor_metadataª   sh   € Øˆ9Ü˜Q×.Ñ.Ó0¸d×>NÑ>NÔOˆAà�G‰GØØ×ÑÓÜ�!—'‘'‹NØ�H‰H‹JÜ�L‰L×,Ñ,¨QÓ/ð
ð 	
r   Únamec                 óœ  — |j                  «       }| j                  |«      }t        j                  j	                  |«      \  }}| j                  ||¬«      }t        j                  j                  | j                  d|«      }t        j                  |d¬«       t        j                  |t        j                  j                  ||«      «       y )N)rz   ÚtensorsTrq   )r€   r}   rs   rt   Úsplitr†   ru   ri   rv   r
   rx   )	rm   r‡   r~   r.   rz   ÚdÚfÚpayloadr{   s	            r   Úwrite_tensorzContentStoreWriter.write_tensor¶   s�   € Ø×#Ñ#Ó%ˆØ×Ñ˜wÓ'ˆä�w‰w�}‰}˜TÓ"‰ˆˆ1Ø×.Ñ.¨q°AÐ.Ó6ˆÜ—G‘G—L‘L §¡¨9°aÓ8ˆ	Ü
�‰�I¨Õ-Ü�
‰
�7œBŸG™GŸL™L¨°AÓ6Õ7r   )Fr	   )r   Ú
__module__Ú__qualname__ÚstrÚboolrn   r
   ÚUntypedStorager}   ÚTensorr†   rŽ   r   r   r   rh   rh   Ž   sc   „ ñ'˜Cð '¨dð '¸tó 'ð U×%9Ñ%9ð ¸có ñ

¨¯©ó 

ð8 ð 8¨¯©ð 8¸$ô 8r   rh   c                   ó‚   — e Zd Zddœdeddfd„Zddœdedej                  fd	„Zd
efd„Zddœd
edej                  fd„Z
y)ÚContentStoreReaderT)Úcacheri   r/   Nc                óN   — || _         d | _        |rt        t        «      | _        y y r	   )ri   Ústorage_cacher   Údict)rm   ri   r—   s      r   rn   zContentStoreReader.__init__Â   s-   € ØˆŒð ð 	Ôñ Ü!,¬TÓ!2ˆDÕð r   ©r   rz   c                óÖ  — |�t        j                  |«      }| j                  �| j                  |   j                  |«      nd }|�-t         j                  j                  |j                  «      }|�|S t        j                  t        j                  j                  | j                  d|«      d|¬«      j                  }|€J ‚| j                  �t        |«      | j                  |   |<   |S )Nrp   T)Úweights_onlyÚmap_location)r
   r   r™   Úgetr“   Ú_new_with_weak_ptrÚcdataÚloadrs   rt   ru   ri   Ú_untyped_storager   )rm   rz   r   ÚwsÚss        r   Úread_storagezContentStoreReader.read_storageÊ   sà   € ØÐÜ—\‘\ &Ó)ˆFð ×!Ñ!Ð-ð ×Ñ˜vÑ&×*Ñ*¨1Ô-àð 	ð ˆ>Ü×$Ñ$×7Ñ7¸¿¹ÓAˆAØˆ}Ø�Ü�J‰JÜ�G‰G�L‰L˜Ÿ™ :¨qÓ1ØØô
÷ Ñ
ð	 	
ð
 ˆ}Ðˆ}Ø×ÑÐ)Ü,:¸1Ó,=ˆD×Ñ˜vÑ& qÑ)Øˆr   r‡   c                 óÚ   — t         j                  j                  | j                  d|«      }t         j                  j	                  |«      st        |«      ‚t        j                  |d¬«      S )Nr‰   T)r�   )rs   rt   ru   ri   rw   ÚFileNotFoundErrorr
   r¢   )rm   r‡   r   s      r   Úread_tensor_metadataz'ContentStoreReader.read_tensor_metadataá   sH   € Ü�W‰W�\‰\˜$Ÿ(™( I¨tÓ4ˆÜ�w‰w�~‰~˜bÔ!Ü# BÓ'Ð'Ü�z‰z˜"¨4Ô0Ð0r   c                ó  — | j                  |«      \  }}}}}}| j                  ||¬«      }	t        j                  g ||	j                  ¬«      }
|
j                  |	|||«       t        j                  j                  |
|«       |
S )Nr›   r7   )r©   r¦   r
   Útensorr   rS   r„   Úset_tensor_metadata)rm   r‡   r   r   rz   r�   Úsizerƒ   Úmetadatar.   r~   s              r   Úread_tensorzContentStoreReader.read_tensorç   sz   € Ø;?×;TÑ;TØó<
Ñ8ˆˆq�. $¨°ð ×#Ñ# A¨fÐ#Ó5ˆÜ�L‰L˜ 5°·±Ô@ˆØ	�‰ˆw˜¨¨fÔ5Ü�‰×(Ñ(¨¨HÔ5Øˆr   )r   r�   r�   r‘   rn   r
   r“   r¦   r©   r”   r¯   r   r   r   r–   r–   Á   s^   „ Ø*.ò 3˜Cð 3°4ó 3ð .2ò ˜cð °e×6JÑ6Jó ð.1¨ó 1ð 04ò  ð ¸¿¹ô r   r–   )r@   r   rE   Úos.pathrs   rZ   Úcollectionsr   Útypingr   r
   Útorch._primsÚ_primsr%   Útorch._utilsÚtorch.nn.functionalÚnnÚ
functionalrU   Ú torch.multiprocessing.reductionsr   r   r+   r“   r’   r‘   rf   rh   r–   r   r   r   ú<module>rº      sŠ   ðó> Û Û Û Û Ý #Ý ã Ý Û ß Ð Ý ;òñ, �dÔñ1ó ð1ð4 HMò ,#˜%×.Ñ.ð ,#Àð ,#ÐQTó ,#÷^08ñ 08÷f.ò .r   