403Webshell
Server IP : 35.80.110.71  /  Your IP : 216.73.216.221
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/py7zr/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/py7zr/__pycache__/archiveinfo.cpython-312.pyc
�

5�	fX��
���ddlZddlZddlZddlZddlmZddlmZddlmZddlm	Z	m
Z
ddlmZmZddl
mZmZmZmZmZmZddlmZmZdd	lmZdd
lmZmZddlmZmZmZm Z dZ!d
Z"dZ#dede$dee$fd�Z%defd�Z&dede$fd�Z'dede(fd�Z)defd�Z*dedee$e(ffd�Z+dedee$e(ffd�Z,defd�Z-dede$fd�Z.dede$fd�Z/dede$fd�Z0d?dede$de1dee1fd �Z2d?ded!ee1d"e1fd#�Z3dede4fd$�Z5ded%e4fd&�Z6d'e$de$fd(�Z7Gd)�d*�Z8Gd+�d,�Z9Gd-�d.�Z:Gd/�d0�Z;Gd1�d2�Z<Gd3�d4�Z=Gd5�d6e=�Z>Gd7�d8�Z?Gd9�d:�Z@Gd;�d<�ZAGd=�d>�ZBy)@�N)�	unhexlify)�reduce)�BytesIO)�and_�or_)�pack�unpack)�Any�BinaryIO�Dict�List�Optional�Tuple)�SevenZipCompressor�SevenZipDecompressor)�	Bad7zFile)�ArchiveTimestamp�calculate_crc32)�ENCODED_HEADER_DEFAULT�ENCRYPTED_HEADER_DEFAULT�MAGIC_7Z�Propertyi���file�count�returnc
��|jd|z�}t|�D�cgc]}td||dz|dzdz�d��c}Scc}w)N��<Lr)�read�ranger	)rr�data�is    �3/usr/lib/python3/dist-packages/py7zr/archiveinfo.py�	read_crcsr&-sK���9�9�Q��Y��D�<A�%�L�I�q�F�4��a�!�e�A��E�A�I�.�/��2�I�I��Is�"Ac�*�|D]}t||��y�N)�write_uint32)r�crcs�crcs   r%�
write_crcsr,2s��� ���T�3�� �c�6�t|jd��S�N�)�ordr!)rs r%�	read_byter27s���t�y�y��|��r-r#c�$�|j|�Sr()�write�rr#s  r%�write_bytesr6;s���:�:�d��r-c�:�t|�dk(sJ�t||�Sr/)�lenr6r5s  r%�
write_byter9?s���t�9��>��>��t�T�"�"r-c�J�|jd�}td|�d}||fS)zXread 8 bytes, return unpacked value as a little endian unsigned long long, and raw data.��<Qr�r!r	�r�res�as   r%�read_real_uint64rAD�)��
�)�)�A�,�C��t�S��!��A��c�6�Mr-c�J�|jd�}td|�d}||fS)zSread 4 bytes, return unpacked value as a little endian unsigned long, and raw data.rr rr=r>s   r%�read_uint32rDKrBr-c�>�td|�}|j|�y)zwrite uint32 value in 4 bytes.r N)rr4)r�value�bs   r%r)r)Rs���T�5��A��J�J�q�Mr-c�,�t|jd��}|dk(rt|�dSgd�}d}d}|D]\}}||kr|}n|dz}�|dk(r||dz
zS|j|�}tj	|d��}||dz
z}	||	|dzzzS)	z.read UINT64, definition show in write_uint64()r0�r))�r)�r0)���)���)�r)��)��)���r;�little)�	byteorder)r1r!rA�int�
from_bytes)
rrG�blen�mask�vlen�v�l�valrF�highparts
          r%�read_uint64rcXs����D�I�I�a�L��A��C�x���%�a�(�(�P�D��D��D�����1���6��D����
��	�
�q�y��D�1�H�~��
�)�)�D�/�C��N�N�3�(�N�3�E��D�1�H�~�H��H����*�+�+r-rFc�:�|jtd|��y)z(write 8 bytes, as an unsigned long long.r<N)r4r)rrFs  r%�write_real_uint64rens���J�J�t�D�%� �!r-c�x�|dkr|jtd|��y|dkDr3|jd�|j|jdd��y|j�dzdz}t	|j|d��}t|d	�}|d
d|z
dz
zkrNt
|dz
�D]
}|d|z	z}�|jtd|��|j|d|dz
�yd}t
|�D]
}|d|z	z}�|jtd|��|j|�y)a
    UINT64 means real UINT64 encoded with the following scheme:

    |  Size of encoding sequence depends from first byte:
    |  First_Byte  Extra_Bytes        Value
    |  (binary)
    |  0xxxxxxx               : ( xxxxxxx           )
    |  10xxxxxx    BYTE y[1]  : (  xxxxxx << (8 * 1)) + y
    |  110xxxxx    BYTE y[2]  : (   xxxxx << (8 * 2)) + y
    |  ...
    |  1111110x    BYTE y[6]  : (       x << (8 * 6)) + y
    |  11111110    BYTE y[7]  :                         y
    |  11111111    BYTE y[8]  :                         y
    rW�BNl������r;rXrV���rMr0)r4r�to_bytes�
bit_length�	bytearrayrZr")rrF�byte_length�ba�	high_byte�xr]s       r%�write_uint64rqss5��
�t�|��
�
�4��U�#�$���!�!��
�
�7���
�
�5�>�>�!�X�.�/���#�#�%��)�a�/�K�	�5�>�>�+�x�8�	9�B��B�r�F��I��1��[��1�,�-�-��{�Q��'�	#�A�����"�I�	#��
�
�4��Y�'�(��
�
�2�&�{�Q��'�(����{�#�	�A��D�A�I��D�	��
�
�4��T�?�#��
�
�2�r-�checkallc��|r%|jd�}|td�k7rdg|zSg}d}d}t|�D]?}|dk(rt|jd��}d}|j	||zdk7�|dz}�A|S)Nr0�00TrrW)r!rr"r1�append)rrrr�all_defined�resultrGr]r$s        r%�read_booleanrx�s�����i�i��l���)�D�/�)��6�E�>�!�
�F�	�A��D�
�5�\����1�9��D�I�I�a�L�!�A��D��
�
�a�$�h�!�m�$���
����Mr-�booleansrvc�&�|r#tt|d�r|jd�y|r|jd�tt	|�dz�}t|�D]!\}}|s�	||dzxxdd|dzz
zzcc<�#|j|�y)NT�rr;r0rV)rrr4rlr8�	enumerate)rryrv�or$rGs      r%�
write_booleanr~�s����v�d�H�d�3��
�
�7���	��
�
�7���S��]�N�a�'�(�)�A��(�#�*���1��
�a�1�f�I��q�1�q�5�y�)�)�I�*�	�J�J�q�Mr-c��d}tt�D]8}|jd�}|td�k(r|S||j	d�z
}�:|S)zread a utf-16 string from file�rM�0000�utf-16LE)r"�
MAX_LENGTHr!r�decode)rra�_�chs    r%�
read_utf16r��sY��
�C�
�:�
�%��
�Y�Y�q�\��
��6�"�"���J�	�r�y�y��$�$��	%�
�Jr-rac�t�|D]"}|j|jd���$|jd�y)zwrite a utf-16 string to filer�sN)r4�encode)rra�cs   r%�write_utf16r��s2��
�)���
�
�1�8�8�J�'�(�)��J�J�{�r-rkc��|dzS)Nr;�)rks r%�
bits_to_bytesr��s���k�Q���r-c�N�eZdZdZgd�Zd	d�Zedefd��Zdefd�Z	defd�Z
y)
�PackInfoz" information about packed streams )�packpos�
numstreams�	packsizes�
packpositionsr*�
digestdefined�enable_digestsNc�X�d|_d|_g|_g|_g|_d|_y)NrT)r�r�r�r�r*r���selfs r%�__init__zPackInfo.__init__�s.����������������	�"��r-rc�.�|�j|�Sr(��_read)�clsrs  r%�retrievezPackInfo.retrieve�s���u�{�{�4� � r-c��t|�|_t|�|_|jd�}|tj
k(r�t
|j�D�cgc]
}t|���c}|_|jd�}|tjk(rod|_	t||jd�|_|jD],}|s�|jjt|�d��.|jd�}|tjk7rt!dt#|�z��t
|jdz�D�cgc]}t%|jd|���c}|_|Scc}wcc}w)Nr0Tr�end id expected but %s found)rcr�r�r!r�SIZEr"r��CRCr�rxr�r*rurD�ENDr�repr�sumr�)r�r�pidr��crcexistr$s      r%r�zPackInfo._read�s0��"�4�(���%�d�+����i�i��l���(�-�-��9>�t���9O�P�A�k�$�/�P�D�N��)�)�A�,�C��h�l�l�"�&*��#�%1�$�����%N��"� $� 2� 2�?�H���	�	�(�(��T�):�1�)=�>�?��i�i��l���(�,�,���:�T�#�Y�F�G�G�?D�T�_�_�WX�EX�?Y�Z�!�c�$�.�.��!�"4�5�Z������Q��[s�E6�
E;c���|j�J�|jt|j�k(sJ�t	|t
j�t||j�t||j�t	|t
j�|jD]}t||��|jr�t|j�|jk(sJ�t	|t
j�t||jd�t|j�D]+}|j|s�t||j|��-t	|t
j �y)NT)r�r�r8r�r9r�	PACK_INFOrqr�r�r*r�r~r�r"r)r�)r�r�sizer$s    r%r4zPackInfo.write�s���|�|�'�'�'����#�d�n�n�"5�5�5�5��4��+�+�,��T�4�<�<�(��T�4�?�?�+��4����'��N�N�	%�D���t�$�	%�����t�y�y�>�T�_�_�4�4�4��t�X�\�\�*��$�� 2� 2�D�9��4�?�?�+�
5���%�%�a�(� ��t�y�y��|�4�
5�	�4����&r-�rN)�__name__�
__module__�__qualname__�__doc__�	__slots__r��classmethodrr�r�r4r�r-r%r�r��sB��,�r�I�#��!�H�!��!��(��&'�(�'r-r�c��eZdZdZd�Zy)�Bondz�Represent bindings between two methods.
    bonds[i] = (incoder, outstream)
    means
    methods[i].stream[outstream] output data go to method[incoder].stream[0]
    c� �||_||_yr(��incoder�outcoder)r�r�r�s   r%r�z
Bond.__init__s����� ��
r-N)r�r�r�r�r�r�r-r%r�r�s���!r-r�c��eZdZdZgd�Zdd�Zedefd��Zdeddfd�Z	d	�Z
defd
�Zd�Zdde
d
edefd�Zdefd�Zde
fd�Zde
de
fd�Zde
de
fd�Zy)�Folderz� a "Folder" represents a stream of compressed data.
    coders: list of coder
    num_coders: length of coders
    coder: hash list
    keys of coders:  method, numinstreams, numoutstreams, properties
    unpacksizes: uncompressed sizes of outstreams
    )
�unpacksizes�solid�codersr��
num_bindpairs�num_packedstreams�	bindpairs�packed_indicesr+�
compressor�decompressor�files�passwordrNc��g|_g|_g|_g|_d|_d|_d|_d|_d|_d|_	d|_
y)NF)r�r�r�r�r�r�r+r�r�r�r�r�s r%r�zFolder.__init__sU����������� �����
�"������ ��������
���
r-rc�6�|�}|j|�|Sr(r��r�r�objs   r%r�zFolder.retrieve-����e���	�	�$���
r-c	�H�t|�}d}d}t|�D]�}t|�}|dz}|dzdk(}|dzdk(}	|dkDrd|j|�i}
nddi}
|rt|�|
d<t|�|
d<n
d	|
d<d	|
d<||
dz
}||
dz
}|	r t|�}|j|�|
d
<nd|
d
<|jj|
���|d	z
}t|�D]9}
|jjtt|�t|����;||z
}|d	k(rAt|�D]2}
|j|
�dks�|jj|
��4yt|�D]&}
|jjt|���(y)Nr��� �methodr�numinstreams�
numoutstreamsr0�
properties)
rcr"r2r!r�rur�r��_find_in_bin_pairr�)r�r�
num_coders�totalin�totaloutr�rG�
methodsize�	iscomplex�
hasattributesr��proplenr�r$r�s               r%r�zFolder._read3s��� ��&�
������z�"�	"�A��$��A��S��J��D��D�(�I���H��,�M��A�~��t�y�y��4�5���w�'���$/��$5��.�!�%0��%6��/�"�$%��.�!�%&��/�"��q��(�(�G���/�*�*�H��%�d�+��"&�)�)�G�"4��,��"&��,���K�K���q�!�-	"�.!�1��
��}�%�	O�A��N�N�!�!�$�{�4�'8�+�d�:K�"M�N�	O�#�m�3����!��7�^�
2���)�)�!�,�q�0��'�'�.�.�q�1�
2��,�-�
>���#�#�*�*�;�t�+<�=�
>r-c�2�t||j��|_|jj|_t	|j�dkDsJ�d|_d|_t|jD�cgc]}|d��	c}�dz
}t|�D�cgc]}t|dz|����c}|_
t|jD�cgc]}|d��	c}�t|jD�cgc]}|d��	c}�k(sJ�ycc}wcc}wcc}wcc}w)	N)�filtersr�rTFr�r0r�r�)rr�r�r�r8r�r�r�r"r�r�)r�r�r�r�r$s     r%�prepare_coderinfozFolder.prepare_coderinfoZs���,�W�t�}�}�U����o�o�,�,����4�;�;��!�#�#�#���
�"�������E�A�Q��/�E�F��J�
�CH��CW�X�a�$�q�1�u�q�9�X����t�{�{�;�!�A�n�%�;�<��ae�al�al�Dm�\]�Q��EW�Dm�@n�n�n�n��F��X��;��Dms�3D�D
�D�-D
c�r�t|j�}t||�t|j�D]�\}}|d}t|�dz}|j	|�sdnd}|d�dnd}tjd||z|z�}	t||	�t||d|�|j	|�st||d�t||d	�|d���t|t|d��t||d���|jD].}
t||
j�t||
j��0t|jD�cgc]}|d��	c}�t|jD�cgc]}|d	��	c}�z
dkDr|jD]}t||��yycc}wcc}w)
Nr�r�r�rr�r�rgr�r�)r8r�rqr|�	is_simple�structrr9r6r�r�r�r�r�)r�rr�r$r��id�id_sizer�r��flag�bond�pis            r%r4zFolder.writees�������%�
��T�:�&��d�k�k�*�
	3�D�A�q��8��B��"�g��n�G�$(�N�N�1�$5��4�I�$%�l�O�$?�D�T�M��;�;�s�G�i�$7�-�$G�H�D��t�T�"���b��'�l�+��>�>�!�$��T�1�^�#4�5��T�1�_�#5�6����*��T�3�q���#7�8��D�!�L�/�2�
	3��N�N�	.�D���t�|�|�,���t�}�}�-�	.��4�;�;�7�a��.�!�7�8�3�\`�\g�\g�?h�WX��/�@R�?h�;i�i�lm�m��)�)�
'���T�2�&�
'�n��7��?hs�F/�8F4
c�&�|ddk(xr|ddk(S)Nr�r0r�r�)r��coders  r%r�zFolder.is_simple}s!���^�$��)�I�e�O�.D��.I�Ir-�packsize�resetc���|j�|s|jSt|j||j|j|j
�|_|jSr()r�rr�r�r+r�)r�r�r�s   r%�get_decompressorzFolder.get_decompressor�sU�����(���$�$�$� 4�T�[�[�(�D�L\�L\�^b�^f�^f�hl�hu�hu� v�D���$�$�$r-c�6�|jsJ�|jSr()r�r�s r%�get_compressorzFolder.get_compressor�s����������r-c���|j�ytt|j�dz
dd�D]'}|j|�dks�|j|cS|jdS)Nrr0ri)r�r"r8�_find_out_bin_pair)r�r$s  r%�get_unpack_sizezFolder.get_unpack_size�sp�����#���s�4�+�+�,�q�0�"�b�9�	+�A��&�&�q�)�A�-��'�'��*�*�	+�����#�#r-�indexc�d�t|j�D]\}}|j|k(s�|cSy�Nri)r|r�r��r�r��idxr�s    r%r�zFolder._find_in_bin_pair�s4��"�4�>�>�2�	�I�C���|�|�u�$��
�	�r-c�d�t|j�D]\}}|j|k(s�|cSyr�)r|r�r�r�s    r%r�zFolder._find_out_bin_pair�s4��"�4�>�>�2�	�I�C���}�}��%��
�	�r-r��F)r�r�r�r�r�r�r�rr�r�r�r4r�rZ�boolrr�rr�r�r�r�r�r-r%r�r�s����j�I��"��H����
%>�(�%>�t�%>�N	o�'�(�'�0J�%��%�T�%�FZ�%�� 2��$��$��s��s������r-r�c�X�eZdZdZgd�Zedefd��Zd�Zdefd�Z	defd�Z
defd�Zy	)
�
UnpackInfoz combines multiple folders ��
numfolders�folders�
datastreamidxrc�6�|�}|j|�|Sr(r�r�s   r%r�zUnpackInfo.retrieve�r�r-c�.�d|_g|_d|_yr(r�r�s r%r�zUnpackInfo.__init__�s��������!��r-c�j�|jd�}|tjk7rtdt	|�z��t|�|_g|_t|�}|dk(r<t|j�D�cgc]}tj|���c}|_nzt|�}|j�}|j|d�t|j�D�cgc]}tj|���c}|_|j|d�|j|�ycc}wcc}w)Nr0zfolder id expected but %s foundr)r!r�FOLDERrr�rcr�r�r2r"r�r��tell�seek�_retrieve_coders_info)r�rr��externalr�r��current_poss       r%r�zUnpackInfo._read�s����i�i��l���(�/�/�!��=��S�	�I�J�J�%�d�+�������T�?���t��;@����;Q�R�a�F�O�O�D�1�R�D�L�'��-�M��)�)�+�K��I�I�m�Q�'�;@����;Q�R�a�F�O�O�D�1�R�D�L��I�I�k�1�%��"�"�4�(��S��
Ss�:D+�#D0c���|jd�}|tjk7rtdt	|�z��|j
D]J}|jD]9}t|d�D]&}|jjt|���(�;�L|jd�}|tjk(rpt||jd��}t||j�}t|j
�D]\}}|||_|||_�|jd�}|tj$k7r2tdj't)|�|j+����y)Nr0z+coders unpack size id expected but %s foundr�T�rrz.end id expected but 0x{:02x} found at 0x{:08x})r!r�CODERS_UNPACK_SIZErr�r�r�r"r�rurcr�rxr�r&r|r�r+r��formatr1r)	r�rr��folderr�r��definedr*r�s	         r%rz UnpackInfo._retrieve_coders_info�sK���i�i��l���(�-�-�-��I�D�QT�I�U�V�V��l�l�	A�F��]�]�
A���q��1�2�A�A��&�&�-�-�k�$�.?�@�A�
A�	A��i�i��l���(�,�,��"�4����4�H�G��T�4�?�?�3�D�(����6�
'���V�'.�s�|��$�!�#�Y��
�
'��)�)�A�,�C��(�,�,���L�S�S�TW�X[�T\�^b�^g�^g�^i�j�k�k�r-c��|jt|j�k(sJ�|jtj
�|jtj�t||j�t|d�|jD]}|j|��t|tj�|jD]}|jD]}t||���!t|tj�y)Nr)r�r8r�r4r�UNPACK_INFOrrqr9r
r�r�)r�rr�ss    r%r4zUnpackInfo.write�s������#�d�l�l�"3�3�3�3��
�
�8�'�'�(��
�
�8�?�?�#��T�4�?�?�+��4��!��l�l�	�F��L�L���	�	�4��4�4�5��l�l�	&�F��'�'�
&���T�1�%�
&�	&�	�4����&r-N)r�r�r�r�r�r�rr�r�r�rr4r�r-r%r�r��sN��%�:�I���H����
"�
)�(�)�"l�(�l�&'�(�'r-r�c�h�eZdZdZgd�Zd�Zededede	e
fd��Zdedede	e
fd�Zdefd	�Z
y
)�SubstreamsInfoz$ defines the substreams of a folder ��digests�digestsdefinedr��num_unpackstreams_foldersc�<�g|_g|_d|_g|_yr(rr�s r%r�zSubstreamsInfo.__init__�s!����� ������)+��&r-rr�r�c�:�|�}|j|||�|Sr(r�)r�rr�r�r�s     r%r�zSubstreamsInfo.retrieve�s���e���	�	�$�
�G�,��
r-c��|jd�}|tjk(r9t|�D�cgc]
}t	|���c}|_|jd�}ndg|z|_|tjk(r�g|_tt|j
��D]|}d}td|j
|�D]-}t	|�}	|jj|	�||	z
}�/|jj||j�|z
��~|jd�}d}
d}t|�D]/}|j
|}|dk7s||js|
|z
}
||z
}�1|tjk(�rt||
d��}
t||
�}d}t|�D]�}||}|j
|}|dk(rY|jrM|j�A|j jd�|j"j|j��ut|�D]C}|j j|
|�|j"j||�|dz
}�E��|jd�}|tj$k7rt'd|z��|j sdg|z|_dg|z|_yycc}w)Nr0rTr	zend id expected but %r foundF)r!r�NUM_UNPACK_STREAMr"rcrr�r�r8rur�r�r�rxr&r+rrr�r)r�rr�r�r�r�r$�	totalsize�jr��num_digests�num_digests_total�
numsubstreamsr
r*�didxrs                 r%r�zSubstreamsInfo._read�s����i�i��l���(�,�,�,�IN�z�IZ�-[�A�k�$�.?�-[�D�*��)�)�A�,�C�./�S�:�-=�D�*��(�-�-��!�D���3�t�=�=�>�?�
R���	��q�$�"@�"@��"C�D�&�A�&�t�,�D��$�$�+�+�D�1���%�I�&�� � �'�'���
�(B�(B�(D�y�(P�Q�

R��)�)�A�,�C������z�"�	/�A� �:�:�1�=�M���!����)A�)A��}�,����.��		/�
�(�,�,��"�4��t�D�G��T�;�/�D��D��:�&�

"�� ���� $� >� >�q� A�
� �A�%�&�*>�*>�6�:�:�CY��'�'�.�.�t�4��L�L�'�'��
�
�3�"�=�1�"���+�+�2�2�7�4�=�A����+�+�D��J�7���	��"�

"��)�)�A�,�C��(�,�,���:�S�@�A�A��"�"�#(�'�,=�"=�D���3�!2�2�D�L�#��O.\s�Kc�j�t|j�dk(ryt|tj�tjd�|jd�}|r7t|tj�|jD]}t||��tjd�|jd�}|r}|jsJ�t|tj�d}t|j�D];\}}t|�D](}|dz|k7rt||j|�|dz
}�*�=tjd�|jd�rHt|tj�t||jd��t!||j"�t|tj$�y)	Nrc��|xs|dk7Sr/r��rp�ys  r%�<lambda>z&SubstreamsInfo.write.<locals>.<lambda>-s��a�m�A��F�r-Fc��|xs|dkDSr/r�r#s  r%r%z&SubstreamsInfo.write.<locals>.<lambda>2s��!�,��A��r-r0c��|xs|Sr(r�r#s  r%r%z&SubstreamsInfo.write.<locals>.<lambda><s
����a�r-T�rv)r8rr9r�SUBSTREAMS_INFO�	functoolsrrrqr�r�r|r"rr�r~r,rr�)	r�rr��n�	has_multir�r$�numrs	         r%r4zSubstreamsInfo.write)sh���t�-�-�.�!�3���4��1�1�2�� � �!;�T�=[�=[�]b�c����t�X�7�7�8��3�3�
&���T�1�%�
&��$�$�%>��@^�@^�`e�f�	���#�#�#�#��t�X�]�]�+��C�#�D�$B�$B�C�
���3��s���A��1�u��|�$�T�4�+;�+;�C�+@�A��1�H�C��
�
���/��1D�1D�e�L��t�X�\�\�*��$�� 3� 3��F��t�T�\�\�*��4����&r-N)r�r�r�r�r�r�r�rrZr
r�r�r�r4r�r-r%rr�sg��.�Y�I�,���H��#���V�����
,3�(�,3��,3�d�6�l�,3�\'�(�'r-rc�P�eZdZdZgd�Zd�Zedefd��Zdeddfd�Z	defd	�Z
y)
�StreamsInfoz& information about compressed streams ��packinfo�
unpackinfo�substreamsinfoc�.�d|_d|_d|_yr(r0r�s r%r�zStreamsInfo.__init__Hs����
����"��r-rc�6�|�}|j|�|Sr()r!r�s   r%r�zStreamsInfo.retrieveMs���e��������
r-rNc�B�|jd�}|tjk(r+tj	|�|_|jd�}|tjk(r+tj	|�|_|jd�}|tjk(rUtj	||jj|jj�|_
|jd�}|tjk7rtdt!|�z��y�Nr0r�)r!rr�r�r�r1rr�r2r)rr�r�r3r�rr�)r�rr�s   r%r!zStreamsInfo.readSs����i�i��l���(�$�$�$�$�-�-�d�3�D�M��)�)�A�,�C��(�&�&�&�(�1�1�$�7�D�O��)�)�A�,�C��(�*�*�*�"0�"9�"9�$����@Z�@Z�\`�\k�\k�\s�\s�"t�D���)�)�A�,�C��(�,�,���:�T�#�Y�F�G�G�r-c�V�t|tj�|j�|jj	|�|j
�|j
j	|�|j�|jj	|�t|tj�yr()r9r�MAIN_STREAMS_INFOr1r4r2r3r��r�rs  r%r4zStreamsInfo.writeasx���4��3�3�4��=�=�$��M�M����%��?�?�&��O�O�!�!�$�'����*����%�%�d�+��4����&r-)r�r�r�r�r�r�r�rr�r!r4r�r-r%r/r/CsL��0�<�I�#�
��H����
H��H�d�H�'�(�'r-r/c�*��eZdZ�fd�Zdefd�Z�xZS)�HeaderStreamsInfoc���t�|��t�|_t	�|_d|j
_yr/)�superr�r�r1r�r2r�)r��	__class__s �r%r�zHeaderStreamsInfo.__init__ns,���
���� �
��
�$�,���%&����"r-rc���t|tj�|jj	|�|j
j	|�t|tj�yr()r9r�ENCODED_HEADERr1r4r2r�r:s  r%r4zHeaderStreamsInfo.writetsD���4��0�0�1��
�
���D�!������d�#��4����&r-)r�r�r�r�rr4�
__classcell__)r?s@r%r<r<ls���'�'�(�'r-r<c���eZdZdZgd�Zd�Zedefd��Zdefd�Z	ded	d
fd�Z
dedeed	d
fd
�Z
deded	d
fd�Zded	d
fd�Zdeded	d
fd�Zded	d
fd�Zed	efd��Zdefd�Zd�Zdefd�Zy
)�	FilesInfoz holds file properties �r��
emptyfiles�	antifilesc�.�g|_g|_d|_yr(rEr�s r%r�zFilesInfo.__init__�s����
������r-rc�6�|�}|j|�|Sr(r�r�s   r%r�zFilesInfo.retrieve�r�r-�fpc��t|�}t|�D�cgc]}ddi��c}|_d}	|jd�}|tj
k(ryt|�}|tjk(r!|j|tj��etj|j|��}|tjk(rEt||d��}ttd�|j|��||j!d�z
}�n�|tj"k(rt||d��|_�n�|tj&k(r{|jd�}	|	dk(r|j)|��n�t|�}
|j+�}|j|
d�|j)|�|j|d��nB|tj,k(r|j/|d	��n|tj0k(r|j/|d
�n�|tj2k(r|j/|d�n�|tj4k(r�t||d��}|jd�}	|	dk(r|j7||�n�t|�}
|j+�}|j|
d�|j7||�|j|d�n3|tj8k(r|j;|�nt=d|z�����cc}w)
N�emptystreamFrTr0r	c�(�|jd|i�S)NrL)�updater#s  r%r%z!FilesInfo._read.<locals>.<lambda>�s��a�h�h�
�q�/A�&B�r-r�creationtime�lastaccesstime�
lastwritetimezinvalid type %r)rcr"r�r!rr��DUMMYr�os�SEEK_CUR�ior�EMPTY_STREAMrx�list�mapr�
EMPTY_FILErF�NAME�
_read_namer�
CREATION_TIME�_read_times�LAST_ACCESS_TIME�LAST_WRITE_TIME�
ATTRIBUTES�_read_attributes�	START_POS�_read_start_posr)
r�rJ�numfilesr��numemptystreams�propr��buffer�isemptyr�	dataindexrr
s
             r%r�zFilesInfo._read�so���r�?��6;�H�o�F��}�e�,�F��
�����7�7�1�:�D��x�|�|�#���r�?�D��x�~�~�%�����b�k�k�*���Z�Z�����
�.�F��x�,�,�,�&�v�x�%�H���S�B�D�J�J�PW�X�Y��7�=�=��#6�6����,�,�,�".�v��QV�"W�������&�!�;�;�q�>���w�&��O�O�F�+� +�F� 3�I�"$�'�'�)�K��G�G�I�q�)��O�O�B�'��G�G�K��+���/�/�/�� � ���8���2�2�2�� � ��)9�:���1�1�1�� � ���9���,�,�,�&�v�x�$�G��!�;�;�q�>���w�&��)�)�&�'�:� +�F� 3�I�"$�'�'�)�K��G�G�I�q�)��)�)�"�g�6��G�G�K��+���+�+�+��$�$�V�,�� 1�D� 8�9�9�_��Gs�L	rgrNc�b�|jD] }t|�jdd�|d<�"y)N�\�/�filename)r�r��replace)r�rg�fs   r%r[zFilesInfo._read_name�s2�����	B�A�&�v�.�6�6�t�S�A�A�j�M�	Br-r
c�n�t|j�D]\}}||rt|�dnd|d<�y)Nr�
attributes)r|r�rD)r�rgr
r�ros     r%razFilesInfo._read_attributes�s;����
�
�+�	O�F�C��8?���k�&�1�!�4�$�A�l�O�	Or-�namec���t|t|j�d��}|jd�}|dk(sJ�t	|j�D]&\}}||rtt
|�d�nd||<�(y)NTr	r0rr)rxr8r�r!r|rrA)r�rJrrr
rr$ros       r%r]zFilesInfo._read_times�st���r�3�t�z�z�?�T�B���7�7�1�:���7�"�"�"��d�j�j�)�	X�D�A�q�CJ�1�:�&�'7��';�A�'>�?�SW�A�d�G�	Xr-c���t|t|j�d��}|jd�}|dk(sJ�t	|j�D]\}}||rt|�dnd|d<�y)NTr	r0r�startpos)rxr8r�r!r|rA)r�rJr
rr$ros      r%rczFilesInfo._read_start_pos�sm���r�3�t�z�z�?�T�B���7�7�1�:���4�����d�j�j�)�	L�D�A�q�7>�q�z�,�R�0��3�t�A�j�M�	Lr-c��t||�g}d}|jD]1}||j�vs�||��|jd�|dz
}�3|dzdz}t	t
|d�s|t
|�z
}t||�t||d��t|d�t|j�D]\}}	||rt||	|���y)NrTr0r;rMr(r)r9r��keysrurrr�rqr~r|re)
r�rJ�propidrrr
�num_definedror�r$rs
          r%�_write_timeszFilesInfo._write_times�s����2�v���������	%�A��q�v�v�x���T�7�&��N�N�4�(��1�$�K�		%�
�Q���"���d�G�T�*��M�+�.�.�D��R����b�'�t�4��2�w�� ����,�	�G�A�t��q�z�!�"�d�4�j�1��		r-c�8�t||�t||d��y)NFr()r9r~)r�rJrx�vectors    r%�_write_prop_bool_vectorz!FilesInfo._write_prop_bool_vector�s���2�v���b�&�e�4r-c�@�|�tjt|d�ryy)NFT)r*rr)r|s r%�
_are_therezFilesInfo._are_there�s ��������V�U�3��r-c�l�d}g}d}|jD]Q}|jdd���|dz
}|j|d�|t|dj	d��dzz
}�S|dkDrIt|tj�t||dz�t|d�|D]}t||��yy)Nrrmr0r�rMr)
r��getrur8r�r9rrZrqr�)r�r�name_defined�names�	name_sizeror+s       r%�_write_nameszFilesInfo._write_names�s��������	����	G�A��u�u�Z��&�2���!�����Q�z�]�+��S��:��!5�!5�j�!A�B�Q�F�F�	�		G�
�!���t�X�]�]�+���y�1�}�-��t�W�%��
%���D�!�$�
%�	r-c���g}d}|jD]A}d|j�vr|d�|jd�|dz
}�1|jd��C|dzdz}|t|�k7r|t	|�z
}t|tj�t||�t||d��t|d	�t|j�D]\}}||s�t||d��y)
NrrqTr0FrrMr(r)r�rwrur8r�r9rr`rqr~r|r))r�rr
ryror�r$s       r%�_write_attributeszFilesInfo._write_attributess����������	&�A��q�v�v�x�'�A�l�O�,G����t�$��q� �����u�%�	&��Q���"���#�g�,�&��M�+�.�.�D��4��,�,�-��T�4� ��d�G��6��4��!��d�j�j�)�	4�D�A�q��q�z��T�1�\�?�3�	4r-c���|j�J�t|tj�t	|j�}t||�g}|jD]}|j
|d��|j|�r>t|tj�t|t|��t||d��nF|j|j�r+|j|tj|j�|j�}|dz}d|cxk\rdkDrnn|dz
}|dkDrQt|tj�t||dz
j!dd	��t#|t%|dz
��|j'|�|j)|tj*d
�|j-|�t|tj.�y)NrLFr(rOrMrrr0rXrQ)r�r9r�
FILES_INFOr8rqrurrVr�r~rFr}rYrrRrjr6�bytesr�rzr_r�r�)r�rrd�emptystreamsro�pos�padlens       r%r4zFilesInfo.writesz���z�z�%�%�%��4��,�,�-��t�z�z�?���T�8�$������	2�A�����-� 0�1�	2��?�?�<�(��t�X�2�2�3���}�X�6�7��$��%�@�
�_�_�T�_�_�
-��(�(��x�/B�/B�D�O�O�T��i�i�k���������?��?��a�K�F��A�:��t�X�^�^�,��t�f�q�j�2�2�1�h�?�@���e�F�Q�J�/�0����$��	
���$�� 8� 8�/�J�	
���t�$��4����&r-)r�r�r�r�r�r�r�rr�r�r[r
r�ra�strr]rcrzr}�staticmethodrr�r�r4r�r-r%rDrD{s��!�4�I��
��H����
3:��3:�jB��B�d�B�O�x�O�$�t�*�O��O�X�h�X�c�X�d�X�L�(�L�t�L��x��s��t��*5�(�5�t�5���d����%��%� 4�(!'�(�!'r-rDc�(�eZdZdZdefd�Zd�Zd�Zy)�WriteWithCrczBThin wrapper for file object to calculate crc32 when write called.rJc� �||_d|_y�Nr)�_fp�digest)r�rJs  r%r�zWriteWithCrc.__init__Bs�������r-c�n�t||j�|_|jj|�Sr()rr�r�r4)r�r#s  r%r4zWriteWithCrc.writeFs'��%�d�D�K�K�8����x�x�~�~�d�#�#r-c�6�|jj�Sr()r�rr�s r%rzWriteWithCrc.tellJs���x�x�}�}��r-N)r�r�r�r�rr�r4rr�r-r%r�r�@s��L��8��$�r-r�c��eZdZdZgd�Zdd�Zeddedede	fd	��Z
dedede	ddfd
�Zdede	fd
�Zddede	fd�Z
deddfd�Zed��Zy)�Headerz the archive header )r��main_streams�
files_infor��
_start_posrNc�X�d|_d|_d|_d|_d|_d|_y)NFr)r�r�r�r�r�r�r�s r%r�zHeader.__init__Ss-����
� ��������	������
r-rJrg�	start_posc�<�|�}|j||||�|Sr(r�)r�rJrgr�r�r�s      r%r�zHeader.retrieve[s ���e���	�	�"�f�i��2��
r-c��||_|j|j�|jd�}|sy|tjk(r|j|�y|tjk7rtdtz��tj|�}tj�}|j}|jjD�]4}	|	j}
t!|
t"t$f�s|
gt'|	j(�z}
|j*j,d}|
d}||	_||j*j0z
}|j|d�|	j3|�}
|}t5�}|dkDr*||
j7||��z
}|t'|�z
}|dkDr�*|xj8|z
c_||z
}|	j:r#|	j<t?|�k7rtAd��|jC|���7|jdd�|jd�}|tjk7rtd|z��|j|�y)z�
        Decode header data or encoded header data from buffer.
        When buffer consist of encoded buffer, it get stream data
        from it and call itself recursively
        r0NzUnknown field: %rrri)�
max_lengthzinvalid block data)"r�rr!r�HEADER�_extract_header_inforA�	TypeErrorr�r<r�rUrr2r�r��
isinstancerW�tupler8r�r1r�r�r�r�rl�
decompressr�r�r+rrr4)r�rJrgr�r�r��streams�buffer2�	src_startr�uncompressed�compressed_size�uncompressed_sizer��	remaining�folder_datas                r%r�zHeader._readas��$���
������ ��k�k�!�n�����(�/�/�!��%�%�f�-���(�)�)�)��/�"�4�5�5�#�,�,�V�4���*�*�,���O�O�	��(�(�0�0�	'�F�!�-�-�L��l�T�5�M�:� ,�~��F�M�M�0B�B��%�.�.�8�8��;�O� ,�R� 0��&�F�O���)�)�1�1�1�I��G�G�I�q�!�!�2�2�?�C�L�)�I�#�+�K��a�-��|�6�6�r�i�6�P�P��-��K�0@�@�	��a�-�
�I�I��(�I���(�I��#�#��:�:���!=�=�#�$8�9�9��M�M�+�&�)	'�*	���Q����l�l�1�o���(�/�/�!��/�#�5�6�6��!�!�'�*r-r�afterheaderc�.�|j�}||z
}tj�}|j|dd�\}}}	t	�}
|j
|
_|
j
|��|
j�J�t�}|
g|j_
||j_d|j_
|	|
_|g|
_|
j!�}|j#dd�|j%||�\}}}|j'|�d|j_|j*g|j_|j.g|j_|j�}t3|�}
|j|
�|
j.}||fS)NrF)r�r0)rrUrr4r�r�r�r�r<r2r�r1r�r�r+r�r�r�compress�flushr�r�r�r�r*r�)r�rr�r�rur��bufr��raw_header_len�raw_crcr�
headerstreamsr��crcfiler�s               r%�_encode_headerzHeader._encode_header�sj���9�9�;���[�(���j�j�l��%)�Z�Z��Q��%>�"��>�7�����-�-���� � �� �1�� � �,�,�,�)�+�
�,2�8�
� � �(�)0�
���&�05�
���-���
�,�-����*�*�,�
�����A���%�%�c�4�0���1�a������,-�
���)�,6�,?�,?�+@�
���(�'1�'8�'8�&9�
���#��9�9�;���t�$�����G�$��������r-c��|j�}|rt}|j|||�\}}n�|rt}|j|||�\}}n�t	|�}t|tj�|j�|jj|�|j�|jj|�t|tj�|j}|j�}	|	|z
}
||
|fSr()
rrr�rr�r9rr�r�r4r�r�r�)r�rr��encoded�	encryptedrur��	headercrcr��endpos�
header_lens           r%r4zHeader.write�s����9�9�;���.�G�"&�"5�"5�d�K��"Q��H�i�
�,�G�"&�"5�"5�d�K��"Q��H�i�"�4�(�G��w����0�� � �,��!�!�'�'��0����*����%�%�g�.��w����-����I�������h�&�
���Y�.�.r-c�r�|jd�}|tjk(r+tj	|�|_|jd�}|tjk(r+tj	|�|_|jd�}|tjk7rtdt|�z��yr7)r!rr9r/r�r�r�rDr�r�rr�)r�rJr�s   r%r�zHeader._extract_header_info�s����g�g�a�j���(�,�,�,� +� 4� 4�R� 8�D���'�'�!�*�C��(�%�%�%�'�0�0��4�D�O��'�'�!�*�C��(�,�,���:�d�3�i�H�I�I�r-c�V�t�}t�|_t�|_t�|j_d|jj_d|jj_t�|j_
t|�|jj_||jj_
t�|j_t|�g|jj_g|jj_|Sr�)r�rDr�r/r�r�r1r�r�r�r2r8r�r�rr3rr�)r��headers  r%�build_headerzHeader.build_header�s������%�K���)�m���'/�z����$�23����$�$�/�/0����$�$�,�)3�����&�47��L����&�&�1�18����&�&�.�-;�-=����*�HK�G��~����*�*�D�9;����*�*�6��
r-r�r()TF)r�r�r�r��__slot__r�r�rrrZr�r�r�r4r�r�r�r�r-r%r�r�Ns����L�H����(��G������
.+��.+�'�.+�c�.+�PT�.+�` �8� �#� �</�(�/��/�*	J�x�	J�D�	J��
��
r-r�c�n�eZdZdZgd�Zdd�Zedefd��Zdeddfd�Z	d	e
d
e
fd�Zdefd�Zdefd
�Z
y)�SignatureHeaderzLThe SignatureHeader class hold information of a signature header of archive.)�version�startheadercrc�
nextheaderofs�nextheadersize�
nextheadercrcrNc�^�ttf|_d|_d|_d|_d|_yr�)�P7ZIP_MAJOR_VERSION�P7ZIP_MINOR_VERSIONr�r�r�r�r�r�s r%r�zSignatureHeader.__init__�s/��+�-@�A��� ������ �����r-rc�6�|�}|j|�|Sr(r�r�s   r%r�zSignatureHeader.retrieve�r�r-c��|jtt�d�|jd�}|jd�}||f|_t|�\|_}t|�\|_}t|�}t|�\|_
}t||�}t|�\|_}t||�}||jk7rtd��y)Nrr0zinvalid header data)
rr8rr!r�rDr�rAr�rr�r�r)r�r�
major_version�
minor_versionr�r#r+s       r%r�zSignatureHeader._read�s����	�	�#�h�-��#��	�	�!��
��	�	�!��
�%�}�5���!,�T�!2����Q�#3�D�#9� ���D��d�#��$4�T�$:�!���T��d�C�(��#.�t�#4� ���D��d�C�(���$�%�%�%��1�2�2�&r-�length�
header_crcc��||_||_tj�}t	||j
�t	||j�t
||j�|j�}t|�|_	yr()
r�r�rUrrer�r)�getvaluerr�)r�r�r�r��	startdatas     r%�calccrczSignatureHeader.calccrcse��$���'����j�j�l���#�t�1�1�2��#�t�2�2�3��S�$�,�,�-��L�L�N�	�-�i�8��r-c���|jdk\sJ�|jdk\sJ�|jdk\sJ�|jdkDsJ�|j	dd�t|t�t||jd�t||jd�t||j�t||j�t||j�t||j�y)Nrr0)r�r�r�r�rr6rr9r�r)rer:s  r%r4zSignatureHeader.writes����"�"�a�'�'�'��!�!�Q�&�&�&��!�!�Q�&�&�&��"�"�Q�&�&�&��	�	�!�Q���D�(�#��4����a��)��4����a��)��T�4�.�.�/��$�� 2� 2�3��$�� 3� 3�4��T�4�-�-�.r-c��|jdd�t|t�t||jd�t||jd�t|d�t
|d�t
|d�t|d�y)Nrr0rMrOr)rr6rr9r�r)rer:s  r%�_write_skeltonzSignatureHeader._write_skeltonse���	�	�!�Q���D�(�#��4����a��)��4����a��)��T�1���$��"��$��"��T�1�r-r�)r�r�r�r�r�r�r�rr�r�rZr�r4r�r�r-r%r�r��sh��V�a�I� ���H����

3�(�
3�t�
3�9�c�9�s�9�/�(�/��8�r-r�r�)Cr*rUrSr��binasciirrr�operatorrrrr	�typingr
rrr
rr�py7zr.compressorrr�py7zr.exceptionsr�
py7zr.helpersrr�py7zr.propertiesrrrrr�r�r�rZr&r,r2r�r6r9rArDr)rcrerqr�rxr~r�r�r�r�r�r�r�r�rr/r<rDr�r�r�r�r-r%�<module>r�s%��0�	�	�
������=�=�E�&�;�a�a�
�
�����J�H�J�S�J�T�#�Y�J�
 �X� �
�H�����h��e��#�X�#�
�8���c�5�j�(9���h��5��e��#4���x��,�h�,�3�,�,"�H�"�S�"�
#�x�#��#�L�x����t���T�
��"
��
�D��J�
�T�
��X��#���h��S�� �c� �c� �4'�4'�n	!�	!�M�M�`G'�G'�TV'�V'�r&'�&'�R'��'�B'�B'�J��O�O�dA�Ar-

Youez - 2016 - github.com/yon3zu
LinuXploit