Ë
    ªÕ°jH$  ã                  óT  — d dl mZ g d¢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
Z
d dlZd dlmZmZ d dlmZmZmZ d dlmZmZmZ erd dlmZmZ  e	j4                  de	j6                  «      Zd	Z ej<                  d
«      Z G d„ de «      Z!dd„Z"dd„Z#	 d	 	 	 dd„Z$ G d„ de«      Z%y)é    )Úannotations)ÚWHEEL_INFO_REÚ	WheelFileÚ
WheelErrorN)ÚStringIOÚTextIOWrapper)ÚIOÚTYPE_CHECKINGÚLiteral)ÚZIP_DEFLATEDÚZipFileÚZipInfo)ÚSizedBufferÚStrPathzŠ^(?P<namever>(?P<name>[^\s-]+?)-(?P<ver>[^\s-]+?))(-(?P<build>\d[^\s-]*))?
     -(?P<pyver>[^\s-]+?)-(?P<abi>[^\s-]+?)-(?P<plat>\S+)\.whl$i ¦ÎÚwheelc                  ó   — e Zd Zy)r   N)Ú__name__Ú
__module__Ú__qualname__© ó    úE/var/www/mission/venv/lib/python3.12/site-packages/wheel/wheelfile.pyr   r   !   s   „ Ør   r   c                óJ   — t        j                  | «      j                  d«      S )z!urlsafe_b64encode without paddingó   =)Úbase64Úurlsafe_b64encodeÚrstrip)Údatas    r   r   r   %   s   € ä×#Ñ# DÓ)×0Ñ0°Ó6Ð6r   c                óZ   — ddt        | «      dz  z
  z  }t        j                  | |z   «      S )z!urlsafe_b64decode without paddingr   é   é   )Úlenr   Úurlsafe_b64decode)r   Úpads     r   r#   r#   *   s.   € à
�!”s˜4“y 1‘}Ñ%Ñ
&€CÜ×#Ñ# D¨3¡JÓ/Ð/r   c                óÐ   — t        t        j                  j                  d| xs t	        j                  «       «      «      } t        | t        «      } t	        j                  | «      dd S )NÚSOURCE_DATE_EPOCHr   é   )ÚintÚosÚenvironÚgetÚtimeÚmaxÚMINIMUM_TIMESTAMPÚgmtime)Ú	timestamps    r   Úget_zipinfo_datetimer1   0   sL   € ô
 ”B—J‘J—N‘NÐ#6¸	Ò8PÄTÇYÁYÃ[ÓQÓR€IÜ�IÔ0Ó1€IÜ�;‰;�yÓ! ! AÐ&Ð&r   c                  ó¢   — e Zd ZdZej
                  Zdef	 	 	 	 	 d
d„Z	 	 d	 	 	 	 	 	 	 dd„Z	dd„Z
	 	 d	 	 	 	 	 	 	 dd„Z	 d	 	 	 	 	 	 	 dd„Zdd	„Zy)r   z‚A ZipFile derivative class that also reads SHA-256 hashes from
    .dist-info/RECORD and checks any read files against those.
    Úrc                óŽ  — t         j                  j                  |«      }t        j	                  |«      | _        |j                  d«      r| j
                  €t        d|›�«      ‚t        j                  | |||d¬«       dj                  | j
                  j                  d«      «      | _        | j                  dz   | _        i | _        i | _        |dk(  �r¡| j                  | j!                  «       vrh| j                  j#                  «       d	z   }| j!                  «       D ]8  }|j#                  «       |k(  sŒ|j%                  dd
«      d   | _        || _         n d| j                  | j                  <   d| j                  | j                  dz   <   d| j                  | j                  dz   <   	 | j'                  | j                  «      }|5  t+        j,                  t/        |dd¬«      «      D ]  }|\  }	}
}|
sŒ|
j1                  d«      \  }}
	 t3        j4                  |«       |j#                  «       dv rt        d|› d�«      ‚|t9        |
j;                  d«      «      f| j                  |	<   Œ� 	 d d d «       y y # t(        $ r t        d| j                  › d�«      d ‚w xY w# t6        $ r t        d|› �«      d ‚w xY w# 1 sw Y   y xY w)Nz.whlzBad wheel filename T)ÚcompressionÚ
allowZip64z{}.dist-infoÚnameverz/RECORDr3   z/recordé   r   ©NNz.jwsz.p7szMissing z fileÚ úutf-8)ÚnewlineÚencodingú=zUnsupported hash algorithm: >   Úmd5Úsha1zWeak hash algorithm (z) is not permitted by PEP 427Úascii)r)   ÚpathÚbasenamer   ÚmatchÚparsed_filenameÚendswithr   r   Ú__init__ÚformatÚgroupÚdist_info_pathÚrecord_pathÚ_file_hashesÚ_file_sizesÚnamelistÚlowerÚrsplitÚopenÚKeyErrorÚcsvÚreaderr   ÚsplitÚhashlibÚnewÚ
ValueErrorr#   Úencode)ÚselfÚfileÚmoder5   rC   ÚloweredÚnameÚrecordÚlinerB   Úhash_sumÚsizeÚ	algorithms                r   rG   zWheelFile.__init__A   sÎ  € ô —7‘7×#Ñ# DÓ)ˆÜ,×2Ñ2°8Ó<ˆÔØ× Ñ  Ô(¨D×,@Ñ,@Ð,HÜÐ2°8°,Ð?Ó@Ð@ä×Ñ˜˜t T°{ÈtÕTà,×3Ñ3Ø× Ñ ×&Ñ& yÓ1ó
ˆÔð  ×.Ñ.°Ñ:ˆÔØNPˆÔØˆÔØ�3‹;ð ×Ñ t§}¡}£Ñ6Ø×-Ñ-×3Ñ3Ó5¸	ÑA�Ø ŸM™M›Oò �DØ—z‘z“| wÓ.Ø.2¯k©k¸)ÀQÓ.GÈÑ.J˜Ô+Ø+/˜Ô(Ùð	ð 3=ˆD×Ñ˜d×.Ñ.Ñ/Ø;EˆD×Ñ˜d×.Ñ.°Ñ7Ñ8Ø;EˆD×Ñ˜d×.Ñ.°Ñ7Ñ8ðOØŸ™ 4×#3Ñ#3Ó4�ð ñ ÜŸJ™JÜ! &°"¸wÔGóò �Dð ,0Ñ(�D˜( DÙ#Ø à*2¯.©.¸Ó*=Ñ'�I˜xð$ÜŸ™ IÔ.ð !—‘Ó(¨OÑ;Ü(Ø3°I°;ð ?&ð 'óð ð "Ü)¨(¯/©/¸'Ó*BÓCð/�D×%Ñ% dÒ+ñ+÷ð ð/ øô( ò OÜ  8¨D×,<Ñ,<Ð+=¸UÐ!CÓDÈ$ÐNðOûô &ò $Ü(Ø:¸9¸+ÐFóà#ð$ð$ú÷ð ús2   Æ,I8 Ç	AJ;ÈJÈ!AJ;É8$JÊJ8Ê8J;Ê;KNc                óœ  ‡‡‡‡	‡
— dˆˆˆˆ	ˆ
fd„}t        |t        «      r|j                  n|Š|dk(  r.‰j                  d«      s‰| j                  vrt        d‰› d�«      ‚t        j                  | |||«      Š|dk(  rN‰j                  d«      s=| j                  ‰   \  }Š‰�)t        j                  |«      Š	‰j                  |cŠ
‰_
        ‰S )Nc                óš   •— ‰j                   } ‰| «       ‰j                  | «       |r#‰j                  «       ‰k7  rt        d‰› d�«      ‚y y )NzHash mismatch for file 'ú')Ú_eofÚupdateÚdigestr   )ÚnewdataÚeofÚefÚef_nameÚexpected_hashÚrunning_hashÚupdate_crc_origs     €€€€€r   Ú_update_crcz#WheelFile.open.<locals>._update_crcŒ   sQ   ø€ Ø—'‘'ˆCÙ˜GÔ$Ø×Ñ Ô(Ù�|×*Ñ*Ó,°Ò=Ü Ð#;¸G¸9ÀAÐ!FÓGÐGð >ˆsr   r3   ú/zNo hash found for file 'rf   )rj   ÚbytesÚreturnÚNone)Ú
isinstancer   ÚfilenamerF   rL   r   r   rQ   rV   rW   rq   )rZ   Úname_or_infor\   Úpwdrq   rc   rl   rm   rn   ro   rp   s         @@@@@r   rQ   zWheelFile.open†   sÎ   ü€ ÷	Hñ 	Hô &0°¼gÔ%FˆL×!Ò!ÈLð 	ð �CŠKØ×$Ñ$ SÔ)Ø˜t×0Ñ0Ñ0äÐ7¸°yÀÐBÓCÐCä�\‰\˜$ ¨d°CÓ8ˆØ�3Š;˜w×/Ñ/°Ô4Ø'+×'8Ñ'8¸Ñ'AÑ$ˆI�}ØÐ(ô  'Ÿ{™{¨9Ó5�Ø24·.±.À+Ð/� ¤àˆ	r   c                óú  — t         j                  d| j                  |«       g }t        j                  |«      D �]  \  }}}|j                  «        t        |«      D ]î  }t        j                  j                  t        j                  j                  ||«      «      }t        j                  j                  |«      sŒ`t        j                  j                  ||«      j                  t        j                  j                  d«      }|| j                  k(  rŒ¸|j                  d«      r|j!                  ||f«       ŒÝ| j#                  ||«       Œð �Œ |j                  «        |D ]  \  }}| j#                  ||«       Œ y )Nzcreating %r and adding %r to itrr   z
.dist-info)ÚlogÚinforw   r)   ÚwalkÚsortÚsortedrB   ÚnormpathÚjoinÚisfileÚrelpathÚreplaceÚseprK   rF   ÚappendÚwrite)	rZ   Úbase_dirÚdeferredÚrootÚdirnamesÚ	filenamesr^   rB   Úarcnames	            r   Úwrite_fileszWheelFile.write_files¨   s  € Ü�‰Ð2°D·M±MÀ8ÔLØ*,ˆÜ)+¯©°Ó):ó 	2Ñ%ˆD�(˜Ið �M‰MŒOÜ˜yÓ)ò 	2�Ü—w‘w×'Ñ'¬¯©¯©°T¸4Ó(@ÓA�Ü—7‘7—>‘> $Õ'Ü Ÿg™gŸo™o¨d°HÓ=×EÑEÄbÇgÁgÇkÁkÐSVÓW�GØ $×"2Ñ"2Ò2ØØŸ™ |Ô4Ø Ÿ™¨¨w¨Õ8àŸ
™
 4¨Õ1ò	2ð		2ð 	�‰ŒØ%ò 	&‰MˆD�'Ø�J‰J�t˜WÕ%ñ	&r   c                óÒ  — t        |d«      5 }t        j                  |j                  «       «      }|j	                  «       }d d d «       t        |xs |t        j                  «      ¬«      }t        j                  |j                  «      t        j                  |j                  «      z  dz  |_        |xs | j                  |_        | j                  ||«       y # 1 sw Y   Œ�xY w)NÚrb©Ú	date_timeé   )rQ   r)   ÚfstatÚfilenoÚreadr   r1   Úst_mtimeÚstatÚS_IMODEÚst_modeÚS_IFMTÚexternal_attrr5   Úcompress_typeÚwritestr)rZ   rw   r�   r�   ÚfÚstr   Úzinfos           r   r‡   zWheelFile.write¾   s¶   € ô �(˜DÓ!ð 	 QÜ—‘˜!Ÿ(™(›*Ó%ˆBØ—6‘6“8ˆD÷	ô ØÒ�xÔ+?ÀÇÁÓ+Lô
ˆô  $Ÿ|™|¨B¯J©JÓ7¼$¿+¹+ÀbÇjÁjÓ:QÑQÐVXÑXˆÔØ+Ò?¨t×/?Ñ/?ˆÔØ�‰�e˜T =Õ1÷	ð 	ús   �4CÃC&c                ót  — t        |t        «      rAt        |t        «       ¬«      }| j                  |_        dt        j                  z  dz  |_        t        |t        «      r|j                  d«      }t        j                  | |||«       t        |t        «      r|j                  n|}t        j                  d|«       || j                  k7  rk| j!                  |«      }|j"                  t%        |j'                  «       «      j)                  d«      f| j*                  |<   t-        |«      | j.                  |<   y y )Nr‘   i´  r“   r;   z	adding %rrA   )rv   Ústrr   r1   r5   r�   r˜   ÚS_IFREGrœ   rY   r   rž   rw   r{   r|   rK   Ú_default_algorithmr^   r   ri   ÚdecoderL   r"   rM   )rZ   Úzinfo_or_arcnamer   r�   ÚfnameÚhash_s         r   rž   zWheelFile.writestrÏ   s  € ô Ð&¬Ô,Ü&Ø Ô,@Ó,Bô Ðð .2×-=Ñ-=ÐÔ*Ø.3´d·l±lÑ.BÀrÑ-IÐÔ*ä�dœCÔ Ø—;‘;˜wÓ'ˆDä×Ñ˜Ð/°°}ÔEô Ð*¬GÔ4ð ×%Ò%à!ð 	ô
 	�‰�˜eÔ$Ø�D×$Ñ$Ò$Ø×+Ñ+¨DÓ1ˆEà—
‘
Ü! %§,¡,£.Ó1×8Ñ8¸ÓAð(ˆD×Ñ˜eÑ$ô '*¨$£iˆD×Ñ˜UÒ#ð %r   c                óÊ  ‡ — ‰ j                   �Á‰ j                  dk(  r²‰ j                  r¦t        «       }t	        j
                  |ddd¬«      }|j                  ˆ fd„‰ j                  j                  «       D «       «       |j                  t        ‰ j                  «      ddf«       ‰ j                  ‰ j                  |j                  «       «       t        j                  ‰ «       y )NÚwú,ú"ú
)Ú	delimiterÚ	quotecharÚlineterminatorc              3  óZ   •K  — | ]"  \  }\  }}||d z   |z   ‰j                   |   f–— Œ$ y­w)r>   N)rM   )Ú.0r¨   rc   r©   rZ   s       €r   ú	<genexpr>z"WheelFile.close.<locals>.<genexpr>ô   s=   øè ø€ ò á1˜Ñ1 	¨5ð ˜I¨™O¨eÑ3°T×5EÑ5EÀeÑ5LÔMñùs   ƒ(+r:   )Úfpr\   rL   r   rS   ÚwriterÚ	writerowsÚitemsÚwriterowrH   rK   rž   Úgetvaluer   Úclose)rZ   r   r¶   s   `  r   r»   zWheelFile.closeî   s¬   ø€ à�7‰7Ð 4§9¡9°Ò#3¸×8IÒ8IÜ“:ˆDÜ—Z‘Z °¸sÐSWÔXˆFØ×Ñóà59×5FÑ5F×5LÑ5LÓ5Nôôð �O‰OœV D×$4Ñ$4Ó5°r¸2Ð>Ô?Ø�M‰M˜$×*Ñ*¨D¯M©M«OÔ<ä�‰�dÕr   )r[   r   r\   zLiteral['r', 'w', 'x', 'a']r5   r(   )r3   N)rx   ústr | ZipInfor\   zLiteral['r', 'w']ry   zbytes | Nonert   z	IO[bytes])rˆ   r£   rt   ru   r9   )rw   r£   r�   z
str | Noner�   ú
int | Nonert   ru   ©N)r§   r¼   r   zSizedBuffer | strr�   r½   rt   ru   )rt   ru   )r   r   r   Ú__doc__rV   Úsha256r¥   r   rG   rQ   rŽ   r‡   rž   r»   r   r   r   r   r   :   sâ   „ ñð !Ÿ™Ðð
 -0Ø'ð	CàðCð *ðCð ó	CðP #&Ø ð	 à#ð ð  ð ð ð	 ð
 
ó óD&ð2 #Ø$(ð	2àð2ð ð2ð "ð	2ð
 
ó2ð* %)ð	0à'ð0ð  ð0ð "ð	0ð
 
ó0ô>r   r   )r   rs   rt   rs   r¾   )r0   zfloat | Nonert   ztuple[int, int, int, int, int])&Ú
__future__r   Ú__all__r   rS   rV   ÚloggingÚos.pathr)   Úrer˜   r,   Úior   r   Útypingr	   r
   r   Úzipfiler   r   r   Ú	_typeshedr   r   ÚcompileÚVERBOSEr   r.   Ú	getLoggerr{   Ú	Exceptionr   r   r#   r1   r   r   r   r   ú<module>rÎ      s±   ðÝ "â
6€ã Û 
Û Û Û Û 	Û Û ß &ß -Ñ -ß 2Ñ 2áß.ð
 �—
‘
ðCà‡J�Jó€ð
 Ð à€g×Ñ˜Ó €ô	�ô 	ó7ó
0ð #ð'Øð'à#ó'ôB�õ Br   