Your IP : 216.73.216.77


Current Path : /opt/alt/python312/lib64/python3.12/zipfile/__pycache__/
Upload File :
Current File : //opt/alt/python312/lib64/python3.12/zipfile/__pycache__/__init__.cpython-312.opt-2.pyc

�

��hY���	ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
	ddlZejZ	ddlZ	ddlZgd�ZGd�de�ZGd�de�ZexZZdZdZdZdZd	Zd
ZdZdZd
ZdZdZ dZ!dZ"dZ#ejHe"�Z%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-d	Z.dZ/dZ0dZ1ejHe0�Z2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:d	Z;dZ<dZ=dZ>d
Z?dZ@dZAdZBd ZCd!ZDd"ZEdZFdZGd	ZHd#ZId$ZJd%ZKd&ZLd'ZMejHeL�ZNdZOdZPdZQdZRdZSdZTdZUdZVd	ZWdZXdZYdZZd(Z[d)Z\ejHe[�Z]d*Z^d+Z_ejHe^�Z`dZadZbdZcdZddZedZfdZgdZhd	ZidZjd,Zkej�d-�Zmd.�Znd/�Zod0�Zpd1�Zqd2�Zrd3�ZsGd4�d5et�Zudavd6�Zwd7�ZxGd8�d9�ZyGd:�d;�Zzidd<�dd=�dd>�dd>�dd>�dd>�dd?�dd@�d	dA�ddB�dd?�d
dC�ddD�d"dE�dFdG�dHdI�dJdK�Z{dL�Z|d]dM�Z}dN�Z~GdO�dP�ZGdQ�dR�Z�GdS�dTe�j�Z�GdU�dVe�j�Z�GdW�dX�Z�GdY�dZe��Z�d]d[�Z�dd\l�m�Z�m�Z�y#e
$rdZejZY��$wxYw#e
$rdZY��-wxYw#e
$rdZY��6wxYw)^�N)
�
BadZipFile�
BadZipfile�error�
ZIP_STORED�ZIP_DEFLATED�	ZIP_BZIP2�ZIP_LZMA�
is_zipfile�ZipInfo�ZipFile�	PyZipFile�LargeZipFile�Pathc��eZdZy)rN��__name__�
__module__�__qualname__���7/opt/alt/python312/lib64/python3.12/zipfile/__init__.pyrr's��rrc��eZdZy)rNrrrrrr+s��rri���������-�.�?s<4s4H2LHsPK��������	z<4s4B4HL2L5H2LsPK�
��
����� �@iz<4s2B4HL2L2HsPKz<4sLQLsPKz
<4sQ2H2L4QsPKiPK�<HHc�^�tj}d}g}dx}}|dzt|�krN||||dz�\}}|dz|z}	||vr||k7r|j|||�|	}d}|	}|dzt|�kr�N|s|S|t|�k7r|j||d�dj	|�S)NFrr$Tr)�_EXTRA_FIELD_STRUCT�unpack�len�append�join)
�extra�xidsr5�modified�buffer�start�i�xid�xlen�js
          r�_strip_extrarB�s���
 �
'�
'�F��H�
�F��M�E�A�
�a�%�3�u�:�
��5��Q��U�+�,�	��T�
��E�D�L���$�;��E�z��
�
�e�E�A�.�/��E��H�
���a�%�3�u�:�
������E�
���
�
�e�E�F�m�$��8�8�F��rc�>�	t|�ry	y#t$rYywxYw)NTF)�_EndRecData�OSError��fps r�_check_zipfilerH�s2��
��r�?������
���
�s��	�c��	d}	t|d�rt|��}|St|d�5}t|�}ddd�|S#1swY|SxYw#t$rY|SwxYw)NF�readrF�rb)�hasattrrH�openrE)�filename�resultrGs   rr
r
�sw����F�
��8�V�$�#�x�0�F��M�	�h��%��'��+��&��M�	&��M���
���M�
�s2�A�A�A�A�A�A�A�	A�Ac
��		|j|tz
d�|jt�}t	|�tk7r|Stjt|�\}}}}|tk7r|S|dk7s|dkDrtd��|j|tz
tz
d�|jt�}t	|�tk7r|Stjt|�\
}}}	}
}}}
}}}|tk7r|S||t<||t<||t<|
|t <||t"<||t$<||t&<|S#t$r|cYSwxYw)Nr"rr!z3zipfiles that span multiple disks are not supported)�seek�sizeEndCentDir64LocatorrErJr6�structr5�structEndArchive64Locator�stringEndArchive64Locatorr�sizeEndCentDir64�structEndArchive64�stringEndArchive64�_ECD_SIGNATURE�_ECD_DISK_NUMBER�_ECD_DISK_START�_ECD_ENTRIES_THIS_DISK�_ECD_ENTRIES_TOTAL�	_ECD_SIZE�_ECD_OFFSET)�fpin�offset�endrec�data�sig�diskno�reloff�disks�sz�create_version�read_version�disk_num�disk_dir�dircount�	dircount2�dirsize�	diroffsets                 r�
_EndRecData64rq�sc�����	�	�&�2�2�A�6��9�9�,�-�D�
�4�y�+�+��
�!'���/H�$�!O��C����
�'�'��
�
��{�e�a�i��N�O�O�	�I�I�f�.�.�1A�A�1�E��9�9�%�&�D�
�4�y�$�$��
�	�
�
�(�$�/�0�C��^�\�8�X��)�W�i�
� � ��
�!�F�>��'�F���&�F�?��%-�F�!�"�!*�F����F�9��#�F�;���M��E���
��s�D>�>E�Ec���	|jdd�|j�}	|jtd�|j	t�}t|�tk(rt|ddtk(rh|dddk(r`tjt|�}t|�}|jd�|j|tz
�t|t|�St|tz
tz
d�}|j|d�|j	ttz�}|jt�}|dk\r�|||tz}t|�tk7ryttjt|��}|t }||tz|tz|z}|j|�|j||z�t|||z|z
|�Sy#t$rYywxYw)Nrr"r$���sr)rQ�tell�sizeEndCentDirrErJr6�stringEndArchiverSr5�structEndArchive�listr7rq�max�ZIP_MAX_COMMENT�rfind�_ECD_COMMENT_SIZE)	r`�filesizercrb�maxCommentStartr=�recData�commentSize�comments	         rrDrDs���M�	�I�I�a��O��y�y�{�H�
��	�	�>�/�1�%��9�9�^�$�D��D�	�^�#��Q�q�	�%�%��R�S�	�[� ����/��6���F�|��	�
�
�c���
�
�h��/�0��T�N�?�F�;�;��(�_�4�~�E�q�I�O��I�I�o�q�!��9�9�_�~�5�6�D��J�J�'�(�E���z��u�U�>�1�2���w�<�>�)���f�m�m�$4�g�>�?���.�/���u�^�+�E�.�,@��,L�M���
�
�g���
�
�o��-�.��T�?�U�#:�X�#E�#�%�	%���W����s�G�	G�Gc��	|jtd��}|dk\r|d|}tjdk7r2tj|vr |j	tjd�}tj
rEtj
dk7r2tj
|vr |j	tj
d�}|S)Nr�/)�find�chr�os�sep�replace�altsep)rN�	null_bytes  r�_sanitize_filenamer�Us���K�
�
�
�c�!�f�%�I��A�~��A�i�(��
�v�v��}����8�+��#�#�B�F�F�C�0��	�y�y�R�Y�Y�#�%�"�)�)�x�*?��#�#�B�I�I�s�3���Orc�R�eZdZ	dZdd�Zd�Zd
d�Zd�Zd�Ze	d
dd	�d
��Z
d�Zy)r)�
orig_filenamerN�	date_time�
compress_type�_compresslevelr�r9�
create_systemri�extract_version�reserved�	flag_bits�volume�
internal_attr�
external_attr�
header_offset�CRC�
compress_size�	file_size�	_raw_time�_end_offsetc��||_t|�}||_||_|ddkrt	d��t
|_d|_d|_d|_	tjdk(rd|_nd|_t|_t|_d|_d|_d|_d|_d|_d|_d|_d|_y)Nr�z+ZIP does not support timestamps before 1980r�win32r#)r�r�rNr��
ValueErrorrr�r�r�r9�sys�platformr��DEFAULT_VERSIONrir�r�r�r�r�r�r�r�r�)�selfrNr�s   r�__init__zZipInfo.__init__�s���%���&�h�/�� ��
�"����Q�<�$���J�K�K�(���"��������
��<�<�7�"�!"�D��"#�D��-���.�����
���������������������rc��d|jj�d|j��g}|jtk7r<|jdtj|j|j�z�|jdz	}|jdz}|r'|jdtj|�z�|r|jd|z�|j�}|r|jr|jd|jz�|r|jrJ|jtk7s|j|jk7r|jd	|jz�|jd
�dj|�S)N�<z
 filename=� compress_type=%sr-rz filemode=%rz external_attr=%#xz
 file_size=%rz compress_size=%r�>�)�	__class__rrNr�rr7�compressor_names�getr��stat�filemode�is_dirr�r�r8)r�rO�hi�lo�isdirs     r�__repr__zZipInfo.__repr__�s;��'+�~�~�'>�'>��
�
�N�O������+��M�M�-�*�.�.�t�/A�/A�/3�/A�/A�C�C�
D��
�
�2�
%��
�
�
�&�
(��
��M�M�.�4�=�=��+<�<�=�
��M�M�.��3�4����
�������M�M�/�D�N�N�:�;��$�,�,�
�
�
�:�
-�
�^�^�t�1�1�
1��M�M�-��0B�0B�B�C��
�
�c���w�w�v��rNc��	|j}|ddz
dz|ddzz|dz}|ddz|d	dzz|ddzz}|jtzrdx}x}}n$|j}|j}|j
}|j}d}	|�|tkDxs	|tkD}|r>d
}
|tj|
dtj|
�d	z
||�z}d}d}t}	|jtk(rtt|	�}	n#|jt k(rtt"|	�}	t|	|j$�|_t|	|j&�|_|j)�\}}tjt*t,|j$|j.||j|||||t1|�t1|��
}
|
|z|zS)Nrr�r(r!r%r"r#r*r$z<HHQQ���)r�r��_MASK_USE_DATA_DESCRIPTORr�r�r�r9�ZIP64_LIMITrS�pack�calcsize�
ZIP64_VERSIONr�rry�
BZIP2_VERSIONr	�LZMA_VERSIONr�ri�_encodeFilenameFlags�structFileHeader�stringFileHeaderr�r6)r��zip64�dt�dosdate�dostimer�r�r�r9�min_version�fmtrNr��headers              r�
FileHeaderzZipInfo.FileHeader�s���	��^�^���a�5�4�<�A�%��1���
�2�R��U�:���Q�%�2�+��1���
�*�b��e�q�j�9���>�>�5�5�./�/�C�/�-�)��(�(�C� �.�.�M����I��
�
�����=���+�J�}�{�/J�E���C��F�K�K��()�6�?�?�3�+?��+A�9�m�]�]�E�"�I�&�M�'�K�����*��m�[�9�K�
�
�
�8�
+��l�K�8�K�"�;��0D�0D�E���!�+�t�/B�/B�C���"�7�7�9���)����-�/?�!�1�1�4�=�=�)�!�/�/��'�3�*�I� ��]�C��J�	8��
�� �5�(�(rc���	|jjd�|jfS#t$r1|jjd�|jtzfcYSwxYw)N�ascii�utf-8)rN�encoder��UnicodeEncodeError�_MASK_UTF_FILENAME�r�s rr�zZipInfo._encodeFilenameFlags�s[��	V��=�=�'�'��0�$�.�.�@�@��!�	V��=�=�'�'��0�$�.�.�CU�2U�U�U�	V�s�&)�7A#�"A#c��|j}tj}t|�dk\�r2|d|dd�\}}|dzt|�kDrt	d||fz��|dk(r|d|dz}	|j
dvrd}|d|dd�\|_|dd}|jd	k(rd
}|d|dd�\|_|dd}|jd	k(rd}|d|dd�\|_ne|dk(r`|d|dz}	|d|dd�\}}	|dk(rC|	|k(r>|ddjd�}
|
rt|
�|_nddl}|jdd��||dzd}t|�dk\r��1yy#tj$rt	d�d
��d�wxYw#tj$r}t	d�|�d}~wt$r}t	d�|�d}~wwxYw)Nr$r2z"Corrupt extra field %04x (size=%d)r!)l����r�z	File sizez<Qrr�z
Compress sizez
Header offsetzCorrupt zip64 extra field. z not found.iupz<BLr%r�rz'Empty unicode path extra field (0x7075)r"��
stacklevelz)Corrupt unicode path extra field (0x7075)z>Corrupt unicode path extra field (0x7075): invalid utf-8 bytes)r9rSr5r6rr�r�r�r�decoder�rN�warnings�warn�UnicodeDecodeError)
r��filename_crcr9r5�tp�lnrc�field�
up_version�up_name_crc�up_unicode_namer��es
             r�_decodeExtrazZipInfo._decodeExtra�s���
�
�������%�j�A�o��E�5��!�9�-�F�B���!�t�c�%�j� � �!E��R��!P�Q�Q��V�|��Q�r�!�t�}��F��~�~�)M�M� +��*0��t�B�Q�x�*@����#�A�B�x���)�)�[�8� /��.4�T�4���8�.D�+��*�#�A�B�x���)�)�[�8� /��.4�T�4���8�.D�+��*���v���Q�r�!�t�}��n�.4�U�D��!�H�.E�+�J��!�Q��;�,�+F�*.�q�r�(�/�/�'�*B��*�,>��,O�D�M�+�$�M�M�*S�`a�M�b��"�Q�$�%�L�E�O�%�j�A�o��&�|�|�F�$�'B�(-�w�k�&;�<�AE�F�F���|�|�Y�$�%P�Q�WX�X��)�n�$�%e�f�lm�m��n�s2�*A5E�.AF�$F�G�F%�%G�1F=�=GT��strict_timestampsc��	t|tj�rtj|�}tj|�}t	j
|j�}tj|j�}|dd}|s|ddkrd}n|s
|ddkDrd}|�|}tjjtjj|�d�}|dtjtjfvr+|dd}|dtjtjfvr�+|r|dz
}|||�}|jd	zd
z|_|rd|_|xjd
zc_|S|j"|_|S)Nrr&r��r�r!r!rrr�;)r�r���;r�r!r�rr-)�
isinstancer��PathLike�fspathr��S_ISDIR�st_mode�time�	localtime�st_mtime�path�normpath�
splitdriver�r�r�r��st_size)	�clsrN�arcnamer��str��mtimer��zinfos	         r�	from_filezZipInfo.from_file!s[��	��h����,��y�y��*�H�
�W�W�X�
�����R�Z�Z�(�����r�{�{�+���!�A�J�	� �Y�q�\�D�%8�-�I�"�y��|�d�':�2�I��?��G��'�'�"�"�2�7�7�#5�#5�g�#>�q�#A�B���a�j�R�V�V�R�Y�Y�/�/��a�b�k�G��a�j�R�V�V�R�Y�Y�/�/���s�N�G��G�Y�'��!�z�z�F�2�r�9�����E�O����4�'����!�j�j�E�O��rc��	|jjd�rytjjrM|jjtjj
tjjf�Sy)Nr�TF)rN�endswithr�r�r�r�r�s rr�zZipInfo.is_dirGsT��@��=�=�!�!�#�&��
�7�7�>�>��=�=�)�)�2�7�7�;�;������*G�H�H�r)�NoNamer��N)rrr�	__slots__r�r�r�r�r��classmethodr�r�rrrrrhsJ��H��I�0  �J�,.)�`V�+!�Z�#�D�#��#�J
rrc�L�td�D]}|dzr	|dz	dz}�|dz}�|S)Nrr!l q[)�range)�crcrAs  r�_gen_crcrYs5��
�1�X����7��!�8�z�)�C��A�I�C�	�
�Jrc��������d�d�d�t�"tttt	d���at��fd������fd��|D]
}�|����fd�}|S)NixV4i�gE#i�xV4�c�(��	|dz	�||zdzzS)Nr�r)�chr�crctables  �r�crc32z_ZipDecrypter.<locals>.crc32ss#���6��q��H�c�B�h�$�%6�7�7�7rc�\���|�����dzzdz��dzdzdz���dz	���y)Nrr�i�r!�r)�cr�key0�key1�key2s ����r�update_keysz"_ZipDecrypter.<locals>.update_keyswsE����Q��~����t��$�
�2���y� �1�$�
�2���T�R�Z��&�rc���	t�}|j}|D](}�dz}|||dzzdz	dzz}�|�||��*t|�S)Nr"r!rr)�	bytearrayr7�bytes)rcrOr7r�krrs     ��r�	decrypterz _ZipDecrypter.<locals>.decrypter�s_���%���������A��q��A�
�1��!��9��"�d�*�*�A���N��1�I�	�
�V�}�r)�	_crctablerx�maprr)	�pwd�prrr
rrrrs	   @@@@@@r�
_ZipDecrypterris^����D��D��D�����X�u�S�z�2�3�	��H�8�'����A���	��rc�$�eZdZd�Zd�Zd�Zd�Zy)�LZMACompressorc��d|_yr�)�_compr�s rr�zLZMACompressor.__init__�s	����
rc�.�tjdtji�}tjtjtj
tj|�g��|_tjdddt|��|zS)N�id��filtersz<BBHr(r$)
�lzma�_encode_filter_properties�FILTER_LZMA1r�
FORMAT_RAW�_decode_filter_propertiesr rSr�r6)r��propss  r�_initzLZMACompressor._init�sq���.�.��d�6G�6G�/H�I���(�(�����*�*�4�+<�+<�e�D�C
���
��{�{�6�1�a��U��4�u�<�<rc��|j�,|j�|jj|�zS|jj|�Sr�)r r+�compress�r�rcs  rr-zLZMACompressor.compress�sA���:�:���:�:�<�$�*�*�"5�"5�d�";�;�;��z�z�"�"�4�(�(rc��|j�+|j�|jj�zS|jj�Sr�)r r+�flushr�s rr0zLZMACompressor.flush�s=���:�:���:�:�<�$�*�*�"2�"2�"4�4�4��z�z���!�!rN)rrrr�r+r-r0rrrrr�s���=�)�
"rrc��eZdZd�Zd�Zy)�LZMADecompressorc�.�d|_d|_d|_y)NrF)�_decomp�_unconsumed�eofr�s rr�zLZMADecompressor.__init__�s����������rc
�J�|j��|xj|z
c_t|j�dkrytjd|jdd�\}t|j�d|zkrytjt
jtjt
j|jdd|z�g��|_|jd|zd}|`|jj|�}|jj|_|S)Nr$rz<Hr"r#)r4r5r6rSr5r%r2r(r)r'�
decompressr6)r�rc�psizerOs    rr8zLZMADecompressor.decompress�s����<�<������$���4�#�#�$��)���]�]�4��)9�)9�!�A�)>�?�F�E��4�#�#�$��E�	�1���0�0�����.�.�t�/@�/@�/3�/?�/?��!�e�)�/L�N�K��D�L��#�#�A��I�J�/�D�� ����(�(��.���<�<�#�#����
rN)rrrr�r8rrrr2r2�s���
rr2�store�shrink�reduce�implode�tokenize�deflate�	deflate64�bzip2r%�terse��lz77�a�wavpack�b�ppmdc���|tk(ry|tk(rtstd��y|tk(rt
std��y|tk(rtstd��ytd��)Nz.Compression requires the (missing) zlib modulez-Compression requires the (missing) bz2 modulez.Compression requires the (missing) lzma modulez(That compression method is not supported)	rr�zlib�RuntimeErrorr�bz2r	r%�NotImplementedError)�compressions r�_check_compressionrO�s����j� ��	��	$���@�B�
B��
�	�	!���?�A�
A��
��	 ���@�B�
B��"�"L�M�Mrc�X�|tk(rZ|�%tj|tjd�Stjtjtjd�S|t
k(r+|�t
j|�St
j�S|tk(r
t�Sy)N��)
rrJ�compressobj�DEFLATED�Z_DEFAULT_COMPRESSIONrrL�
BZ2Compressorr	r)r��
compresslevels  r�_get_compressorrW�s�����$��$��#�#�M�4�=�=�#�F�F����� :� :�D�M�M�3�O�O�	�)�	#��$��$�$�]�3�3�� � �"�"�	�(�	"����rc�4�t|�|tk(ry|tk(rtjd�S|t
k(rt
j�S|tk(r
t�Stj|�}|rtd||fz��td|fz��)NrQzcompression type %d (%s)zcompression type %d)
rOrrrJ�
decompressobjrrL�BZ2Decompressorr	r2r�r�rM)r��descrs  r�_get_decompressorr\�s����}�%��
�"��	�,�	&��!�!�#�&�&�	�)�	#��"�"�$�$�	�(�	"��!�!� �$�$�]�3���%�&@�M�SX�CY�&Y�Z�Z�%�&;�}�>N�&N�O�Orc�.�eZdZd�Zd�Zdd�Zdd�Zd�Zy)	�_SharedFilec�l�||_||_||_||_||_|j
|_yr�)�_file�_pos�_close�_lock�_writing�seekable)r��file�pos�close�lock�writings      rr�z_SharedFile.__init__s0����
���	������
���
��
�
��
rc��|jSr�)rar�s rrtz_SharedFile.tells���y�y�rc��|j5|j�rtd��|tjk(r)|j
j
|j|z�n|j
j
||�|j
j�|_|jcddd�S#1swYyxYw)Nz}Can't reposition in the ZIP file while there is an open writing handle on it. Close the writing handle before trying to read.)	rcrdr�r��SEEK_CURr`rQrart)r�ra�whences   rrQz_SharedFile.seeks���
�Z�Z��}�}�� �"J�K�K�����$��
�
����	�	�F� 2�3��
�
�����/��
�
���)�D�I��9�9��Z�Z�s�BB5�5B>c�>�|j5|j�rtd��|jj	|j
�|jj
|�}|jj�|_|cddd�S#1swYyxYw)N�yCan't read from the ZIP file while there is an open writing handle on it. Close the writing handle before trying to read.)rcrdr�r`rQrarJrt�r��nrcs   rrJz_SharedFile.read$sn��
�Z�Z��}�}�� �"J�K�K�
�J�J�O�O�D�I�I�&��:�:�?�?�1�%�D��
�
���)�D�I���Z�Z�s�A<B�Bc�f�|j�%|j}d|_|j|�yyr�)r`rb)r��fileobjs  rrhz_SharedFile.close/s-���:�:�!��j�j�G��D�J��K�K�� �"rN)r����)rrrr�rtrQrJrhrrrr^r^s��&���	�!rr^c�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�	_Tellablec� �||_d|_y�Nr)rGra�r�rGs  rr�z_Tellable.__init__7s�������rc�f�|jj|�}|xj|z
c_|Sr�)rG�writera)r�rcrrs   rr}z_Tellable.write;s'���G�G�M�M�$������q����rc��|jSr�)rar�s rrtz_Tellable.tell@s���{�{�rc�8�|jj�yr�)rGr0r�s rr0z_Tellable.flushC������
�
�rc�8�|jj�yr�)rGrhr�s rrhz_Tellable.closeFr�rN)rrrr�r}rtr0rhrrrrxrx6s����
��rrxc���eZdZ	dZdZdZ		dd�Zd�Zd�Zdd�Z	dd�Z
d	�Zdd
�Zd�Z
d�Zd
�Zd�Z�fd�Zd�Zej(fd�Zd�Z�xZS)�
ZipExtFilei@iic��||_||_||_|j|_|j
|_|j|_t|j�|_
d|_d|_d|_
d|_||_|j |_t%|d�r"|j&|_t+d�|_nd|_d|_	|j1�r`|j3�|_|j
|_|j|_|j,|_|j(|_d|_d|_ |rf|jBtDzr|jFdz	dz}n|j&dz	dz}|jI�}||k7rtKd	|jLz��yy#t>$rY�{wxYw)
NFrrr�Trrr
zBad password for file %r)'�_fileobj�_pwd�_close_fileobjr��_compress_typer��_compress_leftr��_leftr\�
_decompressor�_eof�_readbuffer�_offset�newlines�moderN�namerLr��
_expected_crcr�_running_crc�	_seekablerert�_orig_compress_start�_orig_compress_size�_orig_file_size�_orig_start_crc�	_orig_crc�AttributeError�
_decrypterr�r�r��_init_decrypterrKr�)r�rtr��zipinfor�
close_fileobj�
check_byte�hs        rr�zZipExtFile.__init__Xs�����
���	�+���%�3�3���%�3�3����&�&��
�.�t�/B�/B�C�����	���������
���	��$�$��	��7�E�"�!(���D�� %�c�
�D��!%�D�����		����!�,3�L�L�N��)�+2�+@�+@��(�'.�'8�'8��$�'+�'8�'8��$�!%�!3�!3���!%�������� � �#<�<�%�/�/�1�4��<�
�&�k�k�R�/�4�7�
��$�$�&�A��J��"�#=��@U�@U�#U�V�V����	�	��	�s�A0F4�4	G�?Gc��t|j�|_|jj	d�}|xj
dzc_|j|�dS)Nrr*)rr�r�r�rJr�)r�r�s  rr�zZipExtFile._init_decrypter�sM��'��	�	�2������#�#�B�'�����r�!�����v�&�r�*�*rc���d|jj�d|jj��g}|js{|j	d|j
�d|j���|jtk7rN|j	dtj|j|j�z�n|j	d�|j	d�dj|�S)	Nr��.z name=z mode=r��	 [closed]r�r�)r�rr�closedr7r�r�r�rr�r�r8�r�rOs  rr�zZipExtFile.__repr__�s���"�n�n�7�7�"�n�n�9�9�;�<���{�{��M�M��	�	�4�9�9�E�F��"�"�j�0��
�
�1�.�2�2�4�3F�3F�37�3F�3F�H�H�I�
�M�M�+�&��
�
�c���w�w�v��rc���	|dkrP|jjd|j�dz}|dkDr"|j|j|}||_|Stjj||�S)Nr�
r!)r�r�r��io�BufferedIOBase�readline)r��limitr>�lines    rr�zZipExtFile.readline�ss��	�
�1�9�� � �%�%�e�T�\�\�:�Q�>�A��1�u��'�'����a�8�� ������ � �)�)�$��6�6rc�z�	|t|j�|jz
kDrp|j|�}t|�|jkDr)||j|jdz|_d|_n|xjt|�zc_|j|j|jdzS)Nri)r6r�r�rJ)r�rr�chunks   r�peekzZipExtFile.peek�s���D��s�4�#�#�$�t�|�|�3�3��I�I�a�L�E��5�z�D�L�L�(�#(�4�+;�+;�D�L�L�M�+J�#J�� � �������E�
�*��������d�l�l�S�.@�A�Arc�2�|jrtd��y)N�I/O operation on closed file.T)r�r�r�s r�readablezZipExtFile.readable�s���;�;��<�=�=�rc���	|jrtd��|�|dkr`|j|jd}d|_d|_|js+||j|j�z
}|js�+|S||jz}|t|j�kr"|j|j|}||_|S|t|j�z
}|j|jd}d|_d|_|dkDri|js]|j|�}|t|�kr||_||_||d|z
}	|S||z
}|t|�z}|dkDr
|js�]|S)Nzread from closed file.rr)r�r�r�r�r��_read1�MAX_Nr6)r�rr�buf�endrcs     rrJzZipExtFile.read�sp��	��;�;��5�6�6��9��A���"�"�4�<�<�=�1�C�"�D���D�L��i�i��t�{�{�4�:�:�.�.���i�i��J��$�,�,�����T�%�%�&�&��"�"�4�<�<��4�C��D�L��J��#�d�&�&�'�'�����t�|�|�}�-���������!�e�D�I�I��;�;�q�>�D��3�t�9�}�#'�� � ����t�B�Q�x�����
�
�4�K�C�
��T��N�A��!�e�D�I�I��
rc���|j�yt||j�|_|jr2|j|jk7rt	d|j
z��yy)NzBad CRC-32 for file %r)r�rr�r�rr�)r��newdatas  r�_update_crczZipExtFile._update_crc�s]�����%��!�'�4�+<�+<�=����9�9��*�*�d�.@�.@�@��5��	�	�A�B�B�A�9rc��	|�|dkrg|j|jd}d|_d|_|js2|j|j�}|r||z
}	|S|js�2|S||jz}|t|j�kr"|j|j|}||_|S|t|j�z
}|j|jd}d|_d|_|dkDr[|jsO|j|�}|t|�kr||_||_||d|z
}	|S|r||z
}	|S|js�O|S�Nrr)r�r�r�r�r�r6)r�rrr�rcr�s     r�read1zZipExtFile.read1�sc��E��9��A���"�"�4�<�<�=�1�C�"�D���D�L��i�i��{�{�4�:�:�.����4�K�C���J��i�i�
�J��$�,�,�����T�%�%�&�&��"�"�4�<�<��4�C��D�L��J��#�d�&�&�'�'�����t�|�|�}�-���������q�5��i�i��{�{�1�~���s�4�y�=�'+�D�$�#$�D�L��4���8�O�C���
���4�K�C���
��i�i��
rc���|js|dkry|jtk(rE|jj}|t|�kDr2||j
|t|�z
�z
}n|j
|�}|jtk(r|jdk|_n�|jtk(r�t||j�}|jj||�}|jjxs(|jdkxr|jj|_|jre||jj�z
}nG|jj|�}|jjxs|jdk|_|d|j}|xjt|�zc_|jdkrd|_|j|�|S)NrrT)r�r�rr��unconsumed_tailr6�_read2rr�ry�
MIN_READ_SIZEr8r6r0r�r�rqs   rr�zZipExtFile._read1s����9�9��Q������,�.��%�%�5�5�D��3�t�9�}�����A��D�	�M�2�2���;�;�q�>�D����*�,��+�+�q�0�D�I�
�
 �
 �L�
0��A�t�)�)�*�A��%�%�0�0��q�9�D��+�+�/�/�@��,�,��1�@�!�/�/�?�?�?�
�I��y�y���*�*�0�0�2�2���%�%�0�0��6�D��*�*�.�.�J�$�2E�2E��2J�D�I��K�T�Z�Z� ���
�
�c�$�i��
��:�:��?��D�I�������rc�:�|jdkryt||j�}t||j�}|jj|�}|xjt
|�zc_|st�|j�|j|�}|Sr�)	r�ryr��minr�rJr6�EOFErrorr�rqs   rr�zZipExtFile._read2=s������!�#����4�%�%�&����4�&�&�'���}�}�!�!�!�$�����s�4�y�(����N��?�?�&��?�?�4�(�D��rc���	|jr|jj�t�|�	�y#t�|�	�wxYwr�)r�r�rh�super)r�r�s �rrhzZipExtFile.closeMs4���	��"�"��
�
�#�#�%��G�M�O��E�G�M�O�s	�&8�Ac�H�|jrtd��|jS�Nr�)r�r�r�r�s rrezZipExtFile.seekableTs���;�;��<�=�=��~�~�rc��|jrtd��|jstjd��|j�}|tjk(r|}nG|tjk(r||z}n.|tjk(r|j|z}ntd��||jkDr|j}|dkrd}||z
}||jz}|dk\r#|t|j�kr||_d}�n�|jtk(r�|j ��|dk7r�d|_|t|j�|jz
z}|j$j'|tj�|xj(|zc_|xj*|zc_|j(dk|_d}d|_
d|_n�|dkr�|j$j'|j.�|j0|_|j4|_|j6|_|j|_d|_
d|_t9|j�|_d|_|}|j �|j=�|dkDr2t?|j@|�}|jC|�||z}|dkDr�2|j�S)Nzseek on closed file.�!underlying stream is not seekablezCwhence must be os.SEEK_SET (0), os.SEEK_CUR (1), or os.SEEK_END (2)rrF)"r�r�r�r��UnsupportedOperationrtr��SEEK_SETrm�SEEK_ENDr�r�r6r�r�rr�r�r�rQr�r�r�r�r�r�r�r�r\r�r�r��
MAX_SEEK_READrJ)r�rarn�curr_pos�new_pos�read_offset�buff_offset�read_lens        rrQzZipExtFile.seekYss���;�;��3�4�4��~�~��)�)�*M�N�N��9�9�;���R�[�[� ��G�
�r�{�{�
"���'�G�
�r�{�{�
"��*�*�V�3�G��C�D�
D��T�)�)�)��*�*�G��Q�;��G���(��!�D�L�L�0���!���c�$�2B�2B�.C� C�&�D�L��K�
�
 �
 �J�
.�4�?�?�3J�{�^_�O_�!%�D���3�t�/�/�0�4�<�<�?�?�K��M�M���{�B�K�K�8��J�J�+�%�J����;�.���
�
�a��D�I��K�"�D���D�L�
�1�_��M�M���t�8�8�9� $� 4� 4�D��!%���D��"&�":�":�D���-�-�D�J�"�D���D�L�!2�4�3F�3F�!G�D���D�I�!�K����*��$�$�&��A�o��4�-�-�{�;�H��I�I�h���8�#�K��A�o�
�y�y�{�rc���|jrtd��|jstjd��|j
|jz
t|j�z
|jz}|S)Nztell on closed file.r�)
r�r�r�r�r�r�r�r6r�r�)r��fileposs  rrtzZipExtFile.tell�s`���;�;��3�4�4��~�~��)�)�*M�N�N��&�&����3�c�$�:J�:J�6K�K�d�l�l�Z���r)NFru�r!)rrrr�r�r�r�r�r�r�r�r�rJr�r�r�r�rhrer�r�rQrt�
__classcell__�r�s@rr�r�Js����

�E��M��M�37�$�1W�h	+��7� B��
!�FC�#�J"�H� ��
#%�+�+�?�Brr�c�@��eZdZd�Zed��Zd�Zd�Z�fd�Z�xZ	S)�
_ZipWriteFilec��||_||_||_t|j|j
�|_d|_d|_d|_	yrz)
�_zinfo�_zip64�_zipfilerWr�r��_compressor�
_file_size�_compress_size�_crc)r��zfr�r�s    rr�z_ZipWriteFile.__init__�sL����������
�*�5�+>�+>�+0�+?�+?�A�����������	rc�.�|jjSr�)r�rGr�s rr�z_ZipWriteFile._fileobj�s���}�}���rc��y)NTrr�s r�writablez_ZipWriteFile.writable�s��rc���|jrtd��t|ttf�rt|�}nt
|�}|j}|xj|z
c_t||j�|_
|jr9|jj|�}|xjt|�z
c_
|jj|�|Sr�)r�r�r�rrr6�
memoryview�nbytesr�rr�r�r-r�r�r})r�rcr�s   rr}z_ZipWriteFile.write�s����;�;��<�=�=��d�U�I�.�/���Y�F��d�#�D��[�[�F����6�!���$��	�	�*��	�����#�#�,�,�T�2�D����3�t�9�,���
�
���D�!��
rc	���|jry	t�|�	�|jro|jj	�}|xj
t
|�z
c_|jj|�|j
|j_
n|j|j_
|j|j_
|j|j_|js<|jt kDrt#d��|j
t kDrt#d��|jj$t&zr�|jrdnd}|jjt)j*|t,|jj|jj|jj��|jj/�|j0_n�|jj/�|j0_|jj5|jj6�|jj|jj9|j��|jj5|j0j2�|j0j:j=|j�|j|j0j>|jj@<d|j0_!y#d|j0_!wxYw)Nz*File size too large, try using force_zip64z0Compressed size too large, try using force_zip64z<LLQQz<LLLLF)"r�r�rhr�r0r�r6r�r}r�r�r�r�r�r�r�r�rKr�r�rSr��
_DD_SIGNATURErtr��	start_dirrQr�r��filelistr7�
NameToInforNrd)r�r�r�r�s   �rrhz_ZipWriteFile.close�s+����;�;��(	+��G�M�O�����&�&�,�,�.���#�#�s�3�x�/�#��
�
�#�#�C�(�,0�,?�,?����)�,0�O�O����)�"�i�i�D�K�K�O�$(�O�O�D�K�K�!��;�;��?�?�[�0�&�'S�T�T��&�&��4�&�'Y�Z�Z��{�{�$�$�'@�@�!%���g�'���
�
�#�#�F�K�K��]�D�K�K�O�O��K�K�-�-�t�{�{�/D�/D�%F�G�*.�-�-�*<�*<�*>��
�
�'�+/�-�-�*<�*<�*>��
�
�'��
�
�"�"�4�;�;�#<�#<�=��
�
�#�#�D�K�K�$:�$:�4�;�;�$G�H��
�
�"�"�4�=�=�#:�#:�;�
�M�M�"�"�)�)�$�+�+�6�=A�[�[�D�M�M�$�$�T�[�[�%9�%9�:�%*�D�M�M�"��U�D�M�M�"�s�LL8�8M)
rrrr��propertyr�r�r}rhr�r�s@rr�r��s0����� �� ���&++�++rr�c� �eZdZ	dZdZdeddfddd�d�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd#d�Z
d
�Zd�Zd�Zed��Zej&d��Zd#d�Zd$dd�d�Zd%d�Zd&d�Zd'd�Zed��Zd�Zd�Z		d'd�Z	d&d�Zd(d�Zd�Z d �Z!d!�Z"d"�Z#y))rN�rT)r��metadata_encodingc���	|dvrtd��t|�||_d|_d|_i|_g|_||_||_||_	d|_
d|_||_||_
|jr|dk7rtd��t|tj �rtj"|�}t|t$�r;d|_||_dd	d
dd	dd
d�}||}			t+j,||	�|_n d|_||_t3|dd�|_d|_t7j8�|_d|_d|_	|dk(r|jA�y|dvrNd|_	|j.jC�|_"	|j.jG|jD�y|dk(r7	|jA�|j.jG|jD�ytd��#t0$r|	|vr||	}	Y��1�wxYw#tHt0f$r
d|_YywxYw#tHt0f$r+tK|j.�|_d|_"d|_YywxYw#tL$rE|j.jGdd�d|_|j.jC�|_"YywxYw#|j.}
d|_|jO|
��xYw)N)r��w�x�az+ZipFile requires mode 'r', 'w', 'x', or 'a'Frrr�z5metadata_encoding is only supported for reading filesrK�w+b�x+b�r+b�wb�xb)r�r�r�r�r�r�r�Tr!r�)r�r�r�r"z"Mode must be 'r', 'w', 'x', or 'a')(r�rO�_allowZip64�
_didModify�debugr�r�rNrVr�r�_comment�_strict_timestampsr�r�r�r�r��str�_filePassedrNr�rMrGrE�getattr�_fileRefCnt�	threading�RLockrcr�rd�_RealGetContentsrtr�rQr�rxr�_fpclose)r�rfr�rN�
allowZip64rVr�r��modeDictr�rGs           rr�zZipFile.__init__s���	��+�+��J�K�K��;�'�%��������
������
�&���*�����	������
�"3���!2����!�!�d�c�k��G�I�
I��d�B�K�K�(��9�9�T�?�D��d�C� � �D�� �D�M�"��U�%�$�T�$�@�H���~�H��� �g�g�d�H�5�D�G�� �D���D�G�#�D�&�$�7�D�M�����_�_�&��
������
�'	��s�{��%�%�'���#�#'���/�%)�W�W�\�\�^�D�N�/������T�^�^�4����4��)�)�+��G�G�L�L����0�!�!E�F�F��c���8�+�#+�H�#5�� ��	��@+�G�4�/�).���/��'��0�+�'����0�D�G�%&�D�N�%*�D�N�+�� "�4��G�G�L�L��A�&�'+�D�O�%)�W�W�\�\�^�D�N�4��	����B��D�G��M�M�"���s��*H�K�+K�7H:�%H�=K�5I7�9K�H�H�H7�4K�6H7�7K�:7I4�1K�3I4�4K�7AK�K�K�K�'K/c��|Sr�rr�s r�	__enter__zZipFile.__enter__qs���rc�$�|j�yr��rh)r��type�value�	tracebacks    r�__exit__zZipFile.__exit__ts���
�
�rc���d|jj�d|jj��g}|j�t|jr|jd|jz�n*|j�|jd|jz�|jd|jz�n|jd�|jd�dj|�S)	Nr�r�z file=%rz filename=%rz mode=%rr�r�r�)	r�rrrGrr7rNr�r8r�s  rr�zZipFile.__repr__ws���"�n�n�7�7�"�n�n�9�9�;�<���7�7������
�
�j�4�7�7�2�3����*��
�
�n�t�}�}�<�=��M�M�*�t�y�y�0�1��M�M�+�&��
�
�c���w�w�v��rc� �	|j}	t|�}|std��|jdkDrt|�|t}|t}|t|_	|t|z
|z
}|ttk(r|ttzz}|jdkDr||z}td|||�||z|_|jdkrtd��|j!|jd�|j#|�}t%j&|�}d}||k�r�|j#t(�}	t+|	�t(k7rtd��t-j.t0|	�}	|	t2t4k7rtd��|jdkDrt|	�|j#|	t6�}
t9|
�}|	t:}|t<zr|
j?d	�}
n|
j?|j@xsd
�}
tC|
�}
|j#|	tD�|
_#|j#|	tH�|
_%|	tL|
_'|	dd\|
_(|
_)|
_*|
_+|
_,|
_-}}|
_.|
_/|
_0|
jTtbkDrted|
jTd
zz��|	dd\|
_3|
_4|
_5||
_6|dz	dz|dz	dz|dz|dz	|dz	dz|dzdzf|
_7|
jq|�|
jN|z|
_'|jrju|
�|
|jv|
jx<|t(z|	t6z|	tDz|	tHz}|jdkDrtd|�||kr���|j}t{t}|jrd����D]}||_?|jN}�y#t$rtd��wxYw)NzFile is not a zip filer!r"zgiven, inferred, offsetrz Bad offset for central directoryzTruncated central directoryz&Bad magic number for central directoryr��cp437rzzip file version %.1fr)r,r/r(r�r%r�r*r �totalc��|jSr�)r�)r�s r�<lambda>z*ZipFile._RealGetContents.<locals>.<lambda>�s
��u�7J�7Jr)�key)@rGrDrErr��printr^r_�_ECD_COMMENTr�
_ECD_LOCATIONrYrXrVrRr�rQrJr��BytesIO�sizeCentralDirr6rSr5�structCentralDir�
_CD_SIGNATURE�stringCentralDir�_CD_FILENAME_LENGTHr�
_CD_FLAG_BITSr�r�r�r�_CD_EXTRA_FIELD_LENGTHr9�_CD_COMMENT_LENGTHr��_CD_LOCAL_HEADER_OFFSETr�rir�r�r�r�r�r�r�r��MAX_EXTRACT_VERSIONrMr�r�r�r�r�r�r�r7r�rN�reversed�sortedr�)r�rGrb�size_cd�	offset_cd�concat�inferredrcr�centdirrN�orig_filename_crc�flagsr��t�d�
end_offsetr�s                  rrzZipFile._RealGetContents�s���=�
�W�W��	7� ��_�F���5�6�6��:�:��>��&�M���#���;�'�	��|�,��
��
�&��0�9�<���.�!�%7�7��'�*A�A�B�F��:�:��>��	�)�H��+�Y��&�I�"�V�+����>�>�A���?�@�@�
�������"��w�w�w���
�Z�Z��
�����g�o��g�g�n�-�G��7�|�~�-� �!>�?�?��m�m�$4�g�>�G��}�%�)9�9� �!I�J�J��z�z�A�~��g���w�w�w�':�;�<�H� %�h����M�*�E��)�)�#�?�?�7�3��$�?�?�4�+A�+A�+L�W�M����!�A��g�g�g�&<�=�>�A�G�����(:� ;�<�A�I�%�&=�>�A�O�5<�A�b�M�
2�Q�
�q���0A�1�:�
�[�!�/�1�a�
�U�A�O�Q�[�� � �#6�6�)�*A�+,�+<�+<�r�+A�+C�D�D�9@��B��6�A�H�a�o�q���A�K���T�4�K�!�Q�$���Q�t�V��r�E�A�q�D�$�;��4��1��?�A�K�
�N�N�,�-��o�o��6�A�O��M�M� � ��#�*+�D�O�O�A�J�J�'��^�+�g�6I�.J�J��5�6�7��1�2�3�E��z�z�A�~��g�u�%�[�g�o�^�^�^�
��f�T�]�]�)J�L�M�E� *�E���,�,�J�M��W�	7��5�6�6�	7�s�O8�8P
c�V�	|jD�cgc]}|j��c}Scc}wr�)r�rNr.s  r�namelistzZipFile.namelist�s%��9�*.�-�-�8�-�$��
�
�-�8�8��8s�&c��	|jSr�)r�r�s r�infolistzZipFile.infolist�s��	��}�}�rc��	tddz|��|jD];}d|jddz}td|j||jfz|���=y)Nz%-46s %19s %12s)z	File NamezModified    �Size�rfz%d-%02d-%02d %02d:%02d:%02dr&z
%-46s %s %12d)rr�r�rNr�)r�rfr��dates    r�printdirzZipFile.printdir�s]��9�
��"G�G��	��]�]�E�0�5�?�?�2�A�3F�F�D��/�U�^�^�T�5�?�?�$K�K��
�#rc��	d}|jD]L}	|j|jd�5}|j|�r	|j|�r�ddd��Ny#1swY�xYw#t$r|jcYcSwxYw)Nir�)r�rMrNrJr)r��
chunk_sizer��fs    r�testzipzZipFile.testzip�s}��	,��
��]�]�E�
&��Y�Y�u�~�~�s�3�q��&�&��,���&�&��,�4��	#�4�3���
&��~�~�%�
&�s(�A,�$A �A,� A)	�%A,�,B�Bc�^�	|jj|�}|�td|z��|S)Nz(There is no item named %r in the archive)r�r��KeyError)r�r��infos   r�getinfozZipFile.getinfo�s<��:����"�"�4�(���<��:�T�A�C�
C��rc��	|r1t|t�s!tdt|�jz��|r||_yd|_y)N�pwd: expected bytes, got %s)r�r�	TypeErrorrrr)r�rs  r�setpasswordzZipFile.setpasswords=��7��z�#�u�-��9�D��I�<N�<N�N�O�O���D�H��D�Hrc��	|jSr�)rr�s rr�zZipFile.comments��<��}�}�rc���t|t�s!tdt|�jz��t|�tkDr'ddl}|jdtzd��|dt}||_	d|_
y)Nzcomment: expected bytes, got %srz3Archive comment is too long; truncating to %d bytesr"r�T)r�rrHrrr6rzr�r�rr�)r�r�r�s   rr�zZipFile.commentsp���'�5�)��=��W�
�@V�@V�V�W�W��w�<�/�)���M�M�O�+�,�89�
�
;��.��/�G���
���rc�v�	|j|d|�5}|j�cddd�S#1swYyxYw)Nr�)rMrJ)r�r�rrGs    rrJzZipFile.read s.��	�
�Y�Y�t�S�#�
&�"��7�7�9�'�
&�
&�s�/�8F��force_zip64c�0��	|dvrtd��|r|dk(rtd���jstd��t|t�r|}nD|dk(r.t|�}�j|_�j|_n�j|�}|dk(r�j||��S�jrtd���xjdz
c_t�j|j�j�j�fd	��}	|j!t"�}t%|�t"k7rt'd
��t)j*t,|�}|t.t0k7rt'd��|j!|t2�}|t4r|j7|t4d��|j8t:zrt=d
��|j8t>zrt=d��|t@tBzr|jEd�}	n|jE�jFxsd�}	|	|jHk7rt'd|jH�d|�d���|jJ��|jM�|jNz|jJkDrz|jJ|jk(rHddl(}
|
jSd|jH�d�tTjVjYtZ�f��nt'd|jH�d���|j8t\z}|rQ|s�j^}|r1t|t`�s!tcdte|�jfz��|stid|z��d}tk||||d�S#|jm��xYw)N>r�r�zopen() requires mode "r" or "w"r�z'pwd is only supported for reading filesz2Attempt to use ZIP archive that was already closedrMrpr!c����jSr�)rdr�s�rrzZipFile.open.<locals>.<lambda>Us	���$�-�-rzTruncated file headerz Bad magic number for file header)rnz$compressed patched data (flag bit 5)zstrong encryption (flag bit 6)r�rzFile name in directory z and header z differ.rzOverlapped entries: z (possible zip bomb))�skip_file_prefixesrGz6File %r is encrypted, password required for extractionT)7r�rGr�rrNr�rVr�rE�_open_to_writerdrr^r�r	rcrJ�sizeFileHeaderr6rrSr5r��
_FH_SIGNATUREr��_FH_FILENAME_LENGTH�_FH_EXTRA_FIELD_LENGTHrQr��_MASK_COMPRESSED_PATCHrM�_MASK_STRONG_ENCRYPTION�_FH_GENERAL_PURPOSE_FLAG_BITSr�r�r�r�r�rtr�r�r�r�r��dirname�__file__�_MASK_ENCRYPTEDrrrHrrrKr�rh)r�r�r�rrNr��zef_file�fheader�fname�	fname_strr��is_encrypteds`           rrMzZipFile.open&si���	��z�!��>�?�?��D�C�K��F�G�G��w�w��D�F�
F��d�G�$��E�
�S�[��D�M�E�"&�"2�"2�E��#'�#5�#5�E� ��L�L��&�E��3�;��&�&�u�+�&�F�F��=�=��F�G�
G�
	
���A����t�w�w��(;�(;�#�}�}�d�j�j�:O�Q��=	��m�m�N�3�G��7�|�~�-� �!8�9�9��m�m�$4�g�>�G��}�%�)9�9� �!C�D�D��M�M�'�*=�">�?�E��-�.��
�
�g�&<�=�a�
�H����!7�7�)�*P�Q�Q����!8�8�)�*J�K�K��4�5�8J�J�!�L�L��1�	�!�L�L��)?�)?�)J�7�K�	��E�/�/�/� ��*�*�E�3�4�4��!�!�-��
�
��%�"5�"5�5��8I�8I�I��$�$��(;�(;�;�#��M�M�.�u�/B�/B�.E�F.�/�,.�G�G�O�O�H�,E�+G�"�I�
%�.�u�/B�/B�.E�F.�/�0�0�
!�?�?�_�<�L����(�(�C��z�#�u�5�#�$A�D��I�DV�DV�$V�W�W��&�(A�CG�(H�I�I����h��e�S�$�?�?��	��N�N���s
�I0N�Nc��|r|jstd��|jrtd��d|_d|_d|_|jtk(r|xj
tzc_|js|xj
tzc_|jsd|_|xs|jdztkD}|js
|rtd��|jr%|jj!|j"�|jj%�|_|j)|�d|_|jj-|j/|��d|_t1|||�S)NzHforce_zip64 is True, but allowZip64 was False when opening the ZIP file.zzCan't write to the ZIP file while there is another write handle open on it. Close the first handle before opening another.r��g�������?z'Filesize would require ZIP64 extensionsT)r�r�rdr�r�r�r�r	�_MASK_COMPRESS_OPTION_1r�r�r�r�r�rrGrQr�rtr��_writecheckr�r}r�r�)r�r�rNr�s    rrRzZipFile._open_to_write�s=���t�/�/�� ��
��=�=��N�O�
O�
 �����	�������(�*��O�O�6�6�O��~�~��O�O�8�8�O��"�"�"-�E���E����$� 6�� D�����E��H�I�I��>�>��G�G�L�L����(�"�g�g�l�l�n��������������
�
�e�&�&�u�-�.���
��T�5�%�0�0rc��	|�tj�}ntj|�}|j|||�Sr�)r��getcwdr��_extract_member)r��memberr�rs    r�extractzZipFile.extract�s;��	��<��9�9�;�D��9�9�T�?�D��#�#�F�D�#�6�6rc��	|�|j�}|�tj�}ntj|�}|D]}|j	|||��yr�)r6r�rgr�rh)r�r��membersrr�s     r�
extractallzZipFile.extractall�sR��	��?��m�m�o�G��<��9�9�;�D��9�9�T�?�D��G�� � ��$��4�rc��	|j}|s+d}tj|dt|�z�}||_|j	|�}d�|j|�D�}|j
d�|D��}|S)Nz:<>|"?*�_c3�>K�|]}|jd����y�w)z .N)�rstrip��.0r�s  r�	<genexpr>z1ZipFile._sanitize_windows_name.<locals>.<genexpr>�s����B�+A�a�1�8�8�D�>�+A�s�c3�&K�|]	}|s�|���y�wr�rrrs  rrtz1ZipFile._sanitize_windows_name.<locals>.<genexpr>�s����7�'�Q�Q�q�'�s��)�!_windows_illegal_name_trans_tabler�	maketransr6�	translate�splitr8)r�r��pathsep�table�illegals     r�_sanitize_windows_namezZipFile._sanitize_windows_name�su��I��5�5����G��M�M�'�3��W��+=�>�E�49�C�1��#�#�E�*��B�7�=�=��+A�B���,�,�7�'�7�7���rc���	t|t�s|j|�}|jj	dt
jj�}t
jjrB|j	t
jjt
jj�}t
jj|�d}dt
jjt
jjf�t
jjj�fd�|jt
jj�D��}t
jjdk(r*|j|t
jj�}|s|j�st!d��t
jj||�}t
jj#|�}t
jj%|�}|r4t
jj'|�stj(|�|j�r6t
jj+|�stj,|�|S|j/||��5}t/|d�5}t1j2||�ddd�ddd�|S#1swY�xYw#1swY|SxYw)	Nr�r!r�c3�*�K�|]
}|�vr|���y�wr�r)rsr��invalid_path_partss  �rrtz*ZipFile._extract_member.<locals>.<genexpr>�s#�����#C�.H��&'�/A�&A�$%�.H�s��\zEmpty filename.)rr�)r�rrErNr�r�r�r�r�r��curdir�pardirr8ryr}r�r�r�rZ�exists�makedirsr��mkdirrM�shutil�copyfileobj)	r�ri�
targetpathrr��	upperdirs�source�targetr�s	        @rrhzZipFile._extract_member�s����	��&�'�*��\�\�&�)�F��/�/�)�)�#�r�w�w�{�{�;��
�7�7�>�>��o�o�b�g�g�n�n�b�g�g�k�k�B�G��'�'�$�$�W�-�a�0�� �"�'�'�.�.�"�'�'�.�.�A���'�'�+�+�"�"�#C�g�m�m�B�G�G�K�K�.H�#C�C��
�7�7�;�;�$���1�1�'�2�7�7�;�;�G�G��v�}�}���.�/�/��W�W�\�\�*�g�6�
��W�W�%�%�j�1�
��G�G�O�O�J�/�	��R�W�W�^�^�I�6��K�K�	�"��=�=�?��7�7�=�=��,�����$���
�Y�Y�v�3�Y�
'�6�
�*�d�
#�v����v�v�.�$�(���$�
#��(���s$�5
K7�K+�K7�+K4	�0K7�7Lc���	|j|jvr$ddl}|jd|jzd��|jdvrtd��|jstd��t|j�|js]d}t|j�tk\rd}n+|jtkDrd	}n|jtkDrd
}|rt!|dz��yy)NrzDuplicate name: %rr#r��r�r�r�z&write() requires mode 'w', 'x', or 'a'z4Attempt to write ZIP archive that was already closed�Files count�FilesizezZipfile size� would require ZIP64 extensions)rNr�r�r�r�r�rGrOr�r�r6r��ZIP_FILECOUNT_LIMITr�r�r�r)r�r�r��requires_zip64s    rrezZipFile._writechecks���D��>�>�T�_�_�,���M�M�.����?�A�M�N��9�9�O�+��E�F�F��w�w��F�H�
H��5�.�.�/����!�N��4�=�=�!�%8�8�!.�����;�.�!+���$�$�{�2�!/���"�>�#D�$E�F�F�� rc�0�	|jstd��|jrtd��tj	|||j
��}|j
�r d|_d|_|j|�y|�||_
n|j|_
|�||_n|j|_t|d�5}|j|d�5}tj ||d�ddd�ddd�y#1swY�xYw#1swYyxYw)N�7Attempt to write to ZIP archive that was already closedz>Can't write to ZIP archive while an open writing handle existsr�rrKr�i )rGr�rdrr�rr�r�r�r�r�rNr�rVrMr�r�)r�rNr�r�rVr��src�dests        rr}z
ZipFile.write2s��	��w�w��I�K�
K��=�=��P��
��!�!�(�G�48�4K�4K�"�M���<�<�>�"#�E���E�I��J�J�u���(�&3��#�&*�&6�&6��#��(�'4��$�'+�'9�'9��$��h��%��d�i�i��s�.C�t��"�"�3��f�5�/D�%�%�.C�.C��%�%�s$�D�D�/D�D		�D�Dc���	t|t�r|jd�}t|t�s�t|t	j
t	j��dd��}|j|_|j|_	|jjd�rd|_|xjdzc_n
d|_n|}|jstd��|jrtd	��|�||_|�||_	t!|�|_|j$5|j'|d
��5}|j)|�ddd�ddd�y#1swY�xYw#1swYyxYw)Nr�r&)rNr�r�i�Ar-rcr�z?Can't write to ZIP archive while an open writing handle exists.r�)r�)r�rr�rr�r�rNr�rVr�rNr�r�rGr�rdr6r�rcrMr})r��zinfo_or_arcnamercr�rVr�r�s       r�writestrzZipFile.writestrSs@��	0�
�d�C� ��;�;�w�'�D��*�G�4��%5�&*�n�n�T�Y�Y�[�&A�"�1�&E�G�E�"&�"2�"2�E��#'�#5�#5�E� ��~�~�&�&�s�+�&3��#��#�#�t�+�#�&1��#�$�E��w�w��I�K�
K��=�=��Q��
��$�"/�E���$�#0�E� ��d�)���
�Z�Z����5�s��+�t��
�
�4� �,��Z�+�+���Z�s$�(E+�<E�E+�E(	�$E+�+E4c��	t|t�r|}|j�s�td��t|t�r^|}|jd�s|dz
}t|�}d|_d|_d|zdzdz|_d|_	|xjdzc_ntd��|j5|jr%|jj|j�|jj!�|_|j$t&k(r|xj(t*zc_|j-|�d|_|j0j3|�||j4|j6<|jj9|j;d	��|jj!�|_ddd�y#1swYyxYw)
Nz/The given ZipInfo does not describe a directoryr�ri@rr-zExpected type str or ZipInfoTF)r�rr�r�rr�r�r�r�r�rHrcr�rGrQr�rtr�r�r	r�rdrer�r�r7r�rNr}r�)r��zinfo_or_directory_namer�r��directory_names     rr�z
ZipFile.mkdir|se��9��-�w�7�+�E��<�<�>� �!R�S�S�
�/��
5�4�N�!�*�*�3�/��#�%���N�+�E�"#�E���E�I�$+�d�N�f�#<��"C�E���E�O����4�'���:�;�;�
�Z�Z��~�~������T�^�^�,�"&�'�'�,�,�.�E���"�"�h�.����#:�:�����U�#�"�D�O��M�M� � ��'�.3�D�O�O�E�N�N�+��G�G�M�M�%�*�*�5�1�2�!�W�W�\�\�^�D�N��Z�Z�s
�4DG�Gc�&�	|j�yr�rr�s r�__del__zZipFile.__del__�s��@��
�
�rc���	|j�y|jrtd��	|jdvrb|jrV|j
5|jr%|jj|j�|j�ddd�|j}d|_|j|�y#1swY�.xYw#|j}d|_|j|�wxYw)NzvCan't close the ZIP file while there is an open writing handle on it. Close the writing handle before closing the zip.r�)rGrdr�r�r�rcr�rQr��_write_end_recordr	r{s  rrhz
ZipFile.close�s���	��7�7�?���=�=��P�Q�
Q�		��y�y�O�+�����Z�Z��~�~������T�^�^�4��*�*�,� �
���B��D�G��M�M�"�� �Z��
���B��D�G��M�M�"��s$�&C�
AB<�C�<C�C�&C.c�	�|jD�]�}|j}|ddz
dz|ddzz|dz}|ddz|d	dzz|ddzz}g}|jtkDs|jtkDr;|j|j�|j|j�d
}d
}n|j}|j}|jtkDr|j|j�d
}n|j}|j}	d}
|rHt|	d�}	tjdd
t|�zzddt|�zg|���|	z}	t}
|jtk(rtt |
�}
n#|jt"k(rtt$|
�}
t|
|j&�}t|
|j(�}|j+�\}
}tjt,t.||j0||j2||j|||j4||t|
�t|	�t|j6�d|j8|j:|�}|j<j?|�|j<j?|
�|j<j?|	�|j<j?|j6����|j<jA�}t|j�}||jBz
}|jB}d}|tDkDrd}n|tkDrd}n|tkDrd}|r�|jFstI|dz��tjtJtLddddd||||�}|j<j?|�tjtNtPd|d�}|j<j?|�tS|d�}tS|d
�}tS|d
�}tjtTtVdd||||t|jX��	}|j<j?|�|j<j?|jX�|jZdk(r|j<j]�|j<j_�y)Nrr�r(r!r%r"r#r*r$r�r�r2�Qrr�zCentral directory offsetzCentral directory sizer��,rrr�)0r�r�r�r�r�r7r�r9rBrSr�r6r�r�rryr�r	r�r�rir�r r"r�r�r�r�r�r�rGr}rtr�r�r�rrWrXrTrUr�rwrvrr��truncater0)r�r�r�r�r�r9r�r�r��
extra_datar�r�rirNr�r/�pos2�centDirCount�centDirSize�
centDirOffsetr��zip64endrec�zip64locrecrbs                        rr�zZipFile._write_end_record�s���]�]�E����B��!�u�t�|��)�B�q�E�Q�J�6��A��>�G���e�r�k�B�q�E�Q�J�.�"�Q�%�1�*�=�G��E�����,��%�%��3����U�_�_�-����U�0�0�1�&�	� *�
�!�O�O�	� %� 3� 3�
��"�"�[�0����U�0�0�1� *�
� %� 3� 3�
����J��K��)�*�d�;�
�#�[�[��C��E�
�N�*��q��U��|�-�&+�-�/9�:�
�,���"�"�i�/�!�-��=���$�$��0�!�,��<��!�+�u�/D�/D�E�O� ��e�.B�.B�C�N�"'�"<�"<�">��H�i��k�k�"2�"2�N�"'�"5�"5�����"+�U�-@�-@�'�7�"'�)�)�]�I�"%�h�-��Z��#�e�m�m�BT�"#�U�%8�%8�%�:M�:M�"/�1�G�
�G�G�M�M�'�"��G�G�M�M�(�#��G�G�M�M�*�%��G�G�M�M�%�-�-�(�g#�j�w�w�|�|�~���4�=�=�)���T�^�^�+�����
����-�-�*�N�
�[�
(�7�N�
�;�
&�5�N���#�#�"�>�#D�$E�F�F� �+�+�"�$6��B��A�q�,���]�,�K�
�G�G�M�M�+�&� �+�+�)�)�1�d�A�7�K�
�G�G�M�M�+�&��|�V�4�L��k�:�6�K��
�z�:�M����-�/?���<��(�-��T�]�]�9K�M��	
���
�
�f�����
�
�d�m�m�$��9�9����G�G�������
�
�rc��|xjdzc_|js|js|j�yyy)Nr!)rrrhr{s  rr	zZipFile._fpcloses5�����A�������(8�(8��H�H�J�)9�rr�)r�N)F)NN)NNN)i�)$rrrrGrvrr�r
rr�rr6r8r=rArErIr�r��setterrJrMrRrjrmrr}rhrer}r�r�r�rhr�r	rrrrr�s
���,
�B�(,�%�"%�:�$�#�^�:>�RV�^�@���S-�j9��
�&� ������
�^�^�
��
��m�E�m�^(1�T7�5�$����+�ZF�.'+�04�6�D48�'!�R!,�F��,\�|rrc�,�eZdZ	deddfd�Zdd�Zd�Zy)	r
r�Trvc�F�tj|||||��||_y)N)r�rNr
)rr��	_optimize)r�rfr�rNr
�optimizes      rr�zPyZipFile.__init__!s'������t�$�K�$.�	�	0�!��rNc���	tj|�}|rI||�sA|jr4tjj	|�rdnd}t|�d|�d��ytjj
|�\}}tjj	|��r�tjj|d�}tjj|��r�|r|�d|��}n|}|jrtd|d|�|j|d	d
|�\}}	|jrtd|	�|j||	�ttj|��}
|
jd�|
D�]$}tjj||�}tjj|�\}
}tjj	|�rStjjtjj|d��s��|j|||����|d
k(s��|r#||�s|jrtd|z���|j|d	d
|�\}}	|jrtd|	�|j||	���'y|jrtd|�ttj|��D]�}tjj||�}tjj|�\}
}|d
k(s�K|r#||�s|jrtd|z��p|j|d	d
|�\}}	|jrtd|	�|j||	���y|d
dd
k7rt!d��|j|d	d
|�\}}	|jrtd|	�|j||	�y)Nr�rf� z skipped by filterfuncz__init__.pyr�zAdding package in�asr����Adding)�
filterfunc�.pyzfile %r skipped by filterfunczAdding files from directoryz.Files added with writepy() must end with ".py"zAdding file)r�r�r�r�r�rryr8�isfile�
_get_codenamer}r*�listdir�remove�splitext�writepyrK)r��pathname�basenamer��label�dirr��initnamer_r��dirlistrNr��root�exts               rr�zPyZipFile.writepy's��	��9�9�X�&���j��2��z�z�"$�'�'�-�-��"9��v���u�h�G�H���G�G�M�M�(�+�	��T�
�7�7�=�=��"��w�w�|�|�H�m�<�H��w�w�~�~�h�'��*2�D�9�H�#�H��:�:��-�x��x�H�!%�!3�!3�H�Q�r�N�H�!M���w��:�:��(�G�,��
�
�5�'�*� ����H�!5�6�����}�-� '�H��7�7�<�<��(�;�D� "��� 0� 0�� :�I�D�#��w�w�}�}�T�*��7�7�>�>�"�'�'�,�,�t�]�*K�L� �L�L��x�4>�)�@����%�j��.>�#�z�z� %�&E��&L� M�$�)-�);�);�D��2�J�<D�*F���w��:�:�!�(�G�4��
�
�5�'�2�#!(�(�:�:��7��B� &�r�z�z�(�';� <�H��7�7�<�<��(�;�D� "��� 0� 0�� :�I�D�#��e�|�%�j��.>�#�z�z� %�&E��&L� M�$�)-�);�);�D��2�J�<D�*F���w��:�:�!�(�G�4��
�
�5�'�2�!=����}��%�"�D�F�F�!�/�/���2���I�N�E�7��z�z��m�W�-��J�J�u�g�&rc����	d
�fd�	}|dz}|dz}tjj|d��}tjj|d��}tjj|d��}�jdk(�r�tj
j
|�rEt	j|�jt	j|�jk\r|x}	}
�nTtj
j
|�rEt	j|�jt	j|�jk\r|}
|}	�n�tj
j
|�rEt	j|�jt	j|�jk\r|}
|}	�n�tj
j
|�rEt	j|�jt	j|�jk\r|}
|}	�n(||�rEtjjd	k(r|}
n"tjjdk(r|}
n|}
|}	n�|x}
}	n։jd	k(r|}
|}	nL|}	�jdk(r|}
n8�jdk(r|}
n&d
j�j�}t|��tj
j
|
�r?t	j|
�jt	j|�jk\s||�j��s|x}
}	tj
j|	�d}|r|�d|��}|
|fS)Nrvc����ddl}�jrtd|�	|j|d|��y#|j$r}t|j
�Yd}~yd}~wwxYw)Nr�	CompilingT)�doraiser�F)�
py_compiler�r�compile�PyCompileError�msg)rfr�r��errr�s    �r�_compilez)PyZipFile._get_codename.<locals>._compile�s\�����z�z��k�4�(�
��"�"�4���"�I����,�,�
��c�g�g����
�s�4�A"�A�A"r�z.pycr�)�optimizationr!r"rz"invalid value for 'optimize': {!r})r�r�ru)�	importlib�util�cache_from_sourcer�r�r�r�r�r�r�r1r��formatr�ry)
r�r�r�r��file_py�file_pyc�pycache_opt0�pycache_opt1�pycache_opt2r�r_r��archivenames
`            rr�zPyZipFile._get_codenameys����	�		��e�#���f�$�� �~�~�7�7��b�7�Q�� �~�~�7�7��a�7�P�� �~�~�7�7��a�7�P���>�>�R�������x�(��'�'�(�#�,�,�����0@�0I�0I�I�"*�*��%��'�'�.�.��.��'�'�,�'�0�0�B�G�G�G�4D�4M�4M�M�%��"���'�'�.�.��.��'�'�,�'�0�0�B�G�G�G�4D�4M�4M�M�%��"���'�'�.�.��.��'�'�,�'�0�0�B�G�G�G�4D�4M�4M�M�%��"���G�$��y�y�)�)�Q�.� ,�����+�+�q�0� ,�� ,��&�G�&-�-�E�G��~�~��"�$��"��"���>�>�Q�&�(�E��^�^�q�(�(�E�>�E�E�d�n�n�U�C�$�S�/�)��G�G�N�N�5�)��G�G�E�N�+�+�r�w�w�w�/?�/H�/H�H���$�.�.�A�&-�-�E�G��g�g�m�m�G�,�Q�/���%-�{�;�K��{�#�#r)r�N)rrrrr�r�r�rrrr
r
s!��N�"%�:� �2�"�P'�dP$rr
c����ddl}d}|j|��}|jd��}|jdddd	�
�|jddd
dd��|jddddd��|jdddd�
�|jddd�
�|j	|�}|j
}|j�[|j}t|d|��5}|j�}ddd�rtdj|��td�y|j�4|j}t|d|��5}|j�ddd�y|j�8|j\}}	t|d|��5}|j|	�ddd�y|j��|r0td t j"�!�t!j$d"�|jj'd�}
|j}�fd#��t|
d$�5}|D]�}t(j*j-|�}
|
s<t(j*j-t(j*j/|��}
|
d%t(j0t(j2fvrd%}
�|||
���	ddd�yy#1swY���xYw#1swYyxYw#1swYyxYw#1swYyxYw)&Nrz3A simple command-line interface for zipfile module.)�descriptionT)�requiredz-lz--list�	<zipfile>zShow listing of a zipfile)�metavar�helpz-ez	--extractr")r�z<output_dir>zExtract zipfile into target dir)�nargsr�r�z-cz--create�+)z<name>z<file>zCreate zipfile from sourcesz-tz--testzTest if a zipfile is validz--metadata-encodingz
<encoding>z2Specify encoding of member names for -l, -e and -tr�)r�z.The following enclosed file is corrupted: {!r}zDone testingz/Non-conforming encodings not supported with -c.r;r!c	���tjj|�r|j||t�ytjj|�r~|r|j||�t
tj|��D]H}�|tjj||�tjj||���Jyyr�)	r�r�r�r}rr�r*r�r8)r�r��zippath�nm�addToZips    �rr�zmain.<locals>.addToZip�s�����w�w�~�~�d�#�����w��5������t�$���H�H�T�7�+� ����D�!1�2�B��R��W�W�\�\�$��3�R�W�W�\�\�'�2�5N�P�3�%rr�r�)�argparse�ArgumentParser�add_mutually_exclusive_group�add_argument�
parse_argsr��testrrArr�rxr=rjrm�creater��stderr�exit�popr�r�r�rZr�r�)�argsr�r��parser�group�encodingr�r��badfiler��zip_name�filesr�r�r�s              @r�mainr��s�����G�K�
�
$�
$��
$�
=�F��/�/��/�>�E�	���t�X�{�7��9�	���t�[��<�=��?�
���t�Z�s�3�9��;�
���t�X�{�8��:�
���-�|�Q��S����T�"�D��%�%�H��y�y���i�i��
�S�#��
:�b��j�j�l�G�;���B�I�I�'�R�S�
�n��	
���	��i�i��
�S�#��
:�b��K�K�M�;�
:�
���	!��l�l���V�
�S�#��
:�b��M�M�&�!�;�
:�
���	 ���C��z�z�
#��H�H�Q�K��;�;�?�?�1�%������	P��X�s�
#�r����'�'�*�*�4�0��� �g�g�.�.�r�w�w���t�/D�E�G��r�2�9�9�b�i�i�8�8� �G���T�7�+�
�$�
#�)
!�!;�
:��;�
:��
;�
:��.$�
#�s1�J4�K�K
�BK�4J>�K
�
K�K")r�CompleteDirsr�)��binascii�importlib.utilr�r�r�r�r�rSr�rr�rJr�ImportErrorrLr%�__all__�	Exceptionrrrrr�r�rzrrrr	r�r�r�r�r(rwrvr�rurYrZr[r\r]r^r_r|rrr r"rr!�_CD_CREATE_VERSION�_CD_CREATE_SYSTEM�_CD_EXTRACT_VERSION�_CD_EXTRACT_SYSTEMr$�_CD_COMPRESS_TYPE�_CD_TIME�_CD_DATE�_CD_CRC�_CD_COMPRESSED_SIZE�_CD_UNCOMPRESSED_SIZEr#r%r&�_CD_DISK_NUMBER_START�_CD_INTERNAL_FILE_ATTRIBUTES�_CD_EXTERNAL_FILE_ATTRIBUTESr'r\rdr�rWrXr�r�r�rSrT�_FH_EXTRACT_VERSION�_FH_EXTRACT_SYSTEMrY�_FH_COMPRESSION_METHOD�_FH_LAST_MOD_TIME�_FH_LAST_MOD_DATE�_FH_CRC�_FH_COMPRESSED_SIZE�_FH_UNCOMPRESSED_SIZErUrVrTrUrRrWrXrV�_CD64_SIGNATURE�_CD64_DIRECTORY_RECSIZE�_CD64_CREATE_VERSION�_CD64_EXTRACT_VERSION�_CD64_DISK_NUMBER�_CD64_DISK_NUMBER_START�_CD64_NUMBER_ENTRIES_THIS_DISK�_CD64_NUMBER_ENTRIES_TOTAL�_CD64_DIRECTORY_SIZE�_CD64_OFFSET_START_CENTDIRr��Structr4rBrHr
rqrDr��objectrrrrrr2r�rOrWr\r^rxr�r�r�rr
r��_pathrr�rrr�<module>r#s����
��	�	�
��
�
������J�J�E�
������
	��	��9�� ���
���#�����
����	�
�����
��
������� �� ����!1�2������������
�	��������
�$�� �� ����!1�2���
����������
�������
��������������!��!������ ��
#�� �� ��
��"�� �� ����!1�2���
����� !��������
����������%��)��)�&�/�/�*C�D��"��"��"�6�?�?�#5�6��������������!"���������
�#�f�m�m�E�*���*�� (�V:�x�&i�v�i�`
�	�� #�L"�"�.��8��w���x���x���x�	�
�x���x�
��y���z���y���{���	�������������� �	�!�"��#��(N�&
� P�$(!�(!�V��(V��"�"�V�r
P+�B�%�%�P+�hd�d�Nk$��k$�\C,�L���}G���D��N�N�E�����
�C���
���D��s4�I	�I#�I1�	I �I �#I.�-I.�1I<�;I<

?>