https://t.me/AnonymousX5
Server : Apache
System : Linux cvar2.toservers.com 3.10.0-962.3.2.lve1.5.73.el7.x86_64 #1 SMP Wed Aug 24 21:31:23 UTC 2022 x86_64
User : njnconst ( 1116)
PHP Version : 8.4.18
Disable Function : NONE
Directory :  /proc/self/root/opt/alt/python310/lib64/python3.10/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/self/root/opt/alt/python310/lib64/python3.10/__pycache__/tarfile.cpython-310.opt-2.pyc
o

;b;u�@sF	dZdZdZddlmZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZzddlZWneyBdZYnwzddlZWneyTdZYnweefZzeef7ZWn	eyiYnwgd�ZdZdZed	Zd
ZdZdZdZd
ZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1e1Z2e e!e"e#e&e'e(e$e%e)e*e+fZ3e e!e(e+fZ4e)e*e+fZ5dZ6hd�Z7e8e8e8e9e9e9d �Z:ej;d!kr�d"Z<ne�=�Z<d#d$�Z>d%d&�Z?d'd(�Z@d)e2fd*d+�ZAd,d-�ZBdedfd.d/�ZCd0d1�ZDGd2d3�d3eE�ZFGd4d5�d5eF�ZGGd6d7�d7eF�ZHGd8d9�d9eF�ZIGd:d;�d;eF�ZJGd<d=�d=eF�ZKGd>d?�d?eK�ZLGd@dA�dAeK�ZMGdBdC�dCeK�ZNGdDdE�dEeK�ZOGdFdG�dGeK�ZPGdHdI�dI�ZQGdJdK�dK�ZRGdLdM�dMeS�ZTGdNdO�dOeS�ZUGdPdQ�dQejV�ZWGdRdS�dSeS�ZXGdTdU�dUeS�ZYdVdW�ZZeYjZdXdY�Z[e\dZk�r�e[�dSdS)[z0.9.0u"Lars Gustäbel (lars@gustaebel.de)u4Gustavo Niemeyer, Niels Gustäbel, Richard Townsend.�)�openN)�TarFile�TarInfo�
is_tarfile�TarError�	ReadError�CompressionError�StreamError�ExtractError�HeaderError�ENCODING�USTAR_FORMAT�
GNU_FORMAT�
PAX_FORMAT�DEFAULT_FORMATr�i�sustar  sustar00�d��0�1�2�3�4�5�6�7�L�K�S�x�g�X��)�path�linkpath�size�mtime�uid�gid�uname�gname>r&r%r+r,)Zatime�ctimer(r)r*r'�nt�utf-8cCs*	|�||�}|d|�|t|�tS�N)�encode�len�NUL)�s�length�encoding�errors�r8�./opt/alt/python310/lib64/python3.10/tarfile.py�stn�sr:cCs,	|�d�}|dkr|d|�}|�||�S)Nr���)�find�decode)r4r6r7�pr8r8r9�nts�s

r?cCs�	|ddvr3d}tt|�d�D]}|dK}|||d7}q|ddkr1dt|�d|}|Szt|dd�}t|��p@d	d�}W|StyPtd
��w)Nr)��r#�rA��ascii�strict�0�invalid header)�ranger2r?�int�strip�
ValueError�InvalidHeaderError)r4�n�ir8r8r9�nti�s ���rOrBcCs�	|}t|�}d|krd|dkr&nntd|d|fd�t}|S|tkrnd|d|kr=d|dkrnntd	��|dkrLtdg�}ntdg�}d||}t|d�D]}|�d|d@�|dL}q]|Std	��)
NrrBr#z%0*orDrCr@rAzoverflow in number field)rI�bytesr3r�	bytearrayrH�insertrK)rM�digits�formatZ
original_nr4rNr8r8r9�itn�s"
 0��

�rUcCs2	dtt�d|��}dtt�d|��}||fS)NrCZ
148B8x356BZ
148b8x356b)�sum�structZunpack_from)�bufZunsigned_chksumZ
signed_chksumr8r8r9�calc_chksums�srYc	Cs�	|pd}|dkrdS|durt�|||�dSt||�\}}t|�D]}|�|�}t|�|kr4|d��|�|�q#|dkrR|�|�}t|�|krM|d��|�|�dS)Ni@r�unexpected end of data)�shutil�copyfileobj�divmodrH�readr2�write)	�srcZdstr5�	exception�bufsize�blocks�	remainder�brXr8r8r9r\�s&


r\cCs8ttjdd�}|dur|�|d��|�}t|dd�dS)Nr6�backslashreplace� )�end)�getattr�sys�stdoutr1r=�print)r4r6r8r8r9�_safe_printsrmc@�eZdZ	dS)rN��__name__�
__module__�__qualname__r8r8r8r9r�rc@rn)r
Nror8r8r8r9r
rsr
c@rn)rNror8r8r8r9rrsrc@rn)rNror8r8r8r9rrsrc@rn)r	Nror8r8r8r9r	rsr	c@rn)rNror8r8r8r9rrsrc@rn)�EmptyHeaderErrorNror8r8r8r9rtrsrtc@rn)�TruncatedHeaderErrorNror8r8r8r9ru rsruc@rn)�EOFHeaderErrorNror8r8r8r9rv#rsrvc@rn)rLNror8r8r8r9rL&rsrLc@rn)�SubsequentHeaderErrorNror8r8r8r9rw)rsrwc@�.eZdZ	dd�Zdd�Zdd�Zdd�Zd	S)
�
_LowLevelFilecCsFtjtjtjBtjBd�|}ttd�r|tjO}t�||d�|_dS)N��r�w�O_BINARYi�)	�os�O_RDONLY�O_WRONLY�O_CREAT�O_TRUNC�hasattrr}r�fd)�self�name�moder8r8r9�__init__6s��

z_LowLevelFile.__init__cCst�|j�dSr0)r~�closer��r�r8r8r9r�?sz_LowLevelFile.closecCst�|j|�Sr0)r~r^r��r�r'r8r8r9r^B�z_LowLevelFile.readcCst�|j|�dSr0)r~r_r��r�r4r8r8r9r_Esz_LowLevelFile.writeN)rprqrrr�r�r^r_r8r8r8r9ry0s	ryc@speZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
ddd�Zdd�Zdd�Z
dd�ZdS)�_Streamc	Cs�	d|_|durt||�}d|_|dkrt|�}|��}|pd|_||_||_||_||_d|_	d|_
d|_z�|dkrmzddl}Wnt
yMtd�d�w||_|�d�|_|d	krf|��|j|_WdS|��WdS|d
kr�zddl}Wnt
y�td�d�w|d	kr�d|_|��|_t|_WdS|��|_WdS|dkr�zddl}Wnt
y�td
�d�w|d	kr�d|_|��|_|j|_WdS|��|_WdS|dkr�td|��WdS|js�|j��d|_�)NTF�*��r�gzzzlib module is not availabler{�bz2�bz2 module is not available�xz�lzma module is not available�tar�unknown compression type %r) �_extfileobjry�_StreamProxy�getcomptyper�r��comptype�fileobjrbrX�pos�closed�zlib�ImportErrorr�crc32�crc�
_init_read_gz�errorra�_init_write_gzr��dbufZBZ2Decompressor�cmp�OSErrorZ
BZ2Compressor�lzmaZLZMADecompressor�	LZMAErrorZLZMACompressorr�)	r�r�r�r�r�rbr�r�r�r8r8r9r�Ssv


�
�

�
�
z_Stream.__init__cCs$t|d�r|js|��dSdSdS)Nr�)r�r�r�r�r8r8r9�__del__�s�z_Stream.__del__cCs�	|j�d|jj|jj|jjd�|_t�dtt	�	���}|�
d|d�|j�d�r4|jdd�|_t
j�|j�|_|�
|j�dd	�t�dS)
N�	r�<Ls�s��.gz���z
iso-8859-1�replace)r�ZcompressobjZDEFLATED�	MAX_WBITSZ
DEF_MEM_LEVELr�rW�packrI�time�_Stream__writer��endswithr~r%�basenamer1r3)r�Z	timestampr8r8r9r��s�z_Stream._init_write_gzcCsT	|jdkr|j�||j�|_|jt|�7_|jdkr#|j�|�}|�|�dS)Nr�r�)	r�r�r�r�r�r2r��compressr�r�r8r8r9r_�s

z
_Stream.writecCsb	|j|7_t|j�|jkr/|j�|jd|j��|j|jd�|_t|j�|jksdSdSr0)rXr2rbr�r_r�r8r8r9Z__write�s�z_Stream.__writecCs�	|jrdSd|_zP|jdkr|jdkr|j|j��7_|jdkrM|jrM|j�|j�d|_|jdkrM|j�t�	d|j
��|j�t�	d|jd@��W|jsX|j�
�dSdS|jsc|j�
�ww)NTr|r�r�r�r�l��)r�r�r�rXr��flushr�r_rWr�r�r�r�r�r�r8r8r9r��s&
�
��z
_Stream.closecCs�	|j�|jj�|_d|_|�d�dkrtd��|�d�dkr$td��t|�d��}|�d�|d	@rIt|�d��d
t|�d��}|�	|�|d@r[	|�d�}|rY|t
krZnqN|d
@rm	|�d�}|rk|t
krlnq`|d@rx|�d�dSdS)Nr�r$s��not a gzip filer#�zunsupported compression method��rCrBT�)r�Z
decompressobjr�r�r��
_Stream__readrr�ordr^r3)r��flagZxlenr4r8r8r9r��s6
 

�
��z_Stream._init_read_gzcC�	|jSr0)r�r�r8r8r9�tell��z_Stream.tellrcCsX	||jdkr(t||j|j�\}}t|�D]}|�|j�q|�|�|jStd��)Nrz seeking backwards is not allowed)r�r]rbrHr^r	)r�r�rcrdrNr8r8r9�seek�s
�z_Stream.seekcCs"	|�|�}|jt|�7_|Sr0)�_readr�r2)r�r'rXr8r8r9r^s
z_Stream.readc
Cs�	|jdkr|�|�St|j�}|jg}||krV|jr"|j}d|_n
|j�|j�}|s,n*z|j�	|�}Wn|j
yF}ztd�|�d}~ww|�|�|t|�7}||ksd�
|�}||d�|_|d|�S)Nr�r�zinvalid compressed data)r�r�r2r�rXr�r^rbr��
decompressrar�append�join)r�r'�c�trX�er8r8r9r�s0



��
�
z
_Stream._readcCsr	t|j�}|jg}||kr'|j�|j�}|sn|�|�|t|�7}||ksd�|�}||d�|_|d|�S)Nr�)r2rXr�r^rbr�r�)r�r'r�r�rXr8r8r9Z__read)s

�
z_Stream.__readN)r)rprqrrr�r�r�r_r�r�r�r�r�r^r�r�r8r8r8r9r�Hs
F
	

r�c@rx)
r�cCs||_|j�t�|_dSr0)r�r^�	BLOCKSIZErX)r�r�r8r8r9r�?sz_StreamProxy.__init__cCs|jj|_|jSr0)r�r^rXr�r8r8r9r^Cs
z_StreamProxy.readcCsL|j�d�rdS|jdd�dkr|jdd�dkrd	S|j�d
�r$dSdS)
Ns�r�r�sBZhr��
s1AY&SYr�)s]�s�7zXZr�r�)rX�
startswithr�r8r8r9r�Gs$z_StreamProxy.getcomptypecCs|j��dSr0)r�r�r�r8r8r9r�Qr�z_StreamProxy.closeN)rprqrrr�r^r�r�r8r8r8r9r�:s
r�c@sheZdZ	ddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Ze	j
fdd�Zddd�Zdd�Z
dd�ZdS)�_FileInFileNcCs�||_||_||_d|_t|dd�|_d|_|durd|fg}d|_g|_d}|j}|D]&\}}||kr>|j�	d||df�|j�	d||||f�||7}||}q,||jkre|j�	d||jdf�dSdS)Nrr�FT)
r��offsetr'�positionrir�r��	map_index�mapr�)r�r�r�r'Z	blockinfoZlastposZrealposr8r8r9r�^s*


�z_FileInFile.__init__cCsdSr0r8r�r8r8r9r�w�z_FileInFile.flushcC�dS�NTr8r�r8r8r9�readablezr�z_FileInFile.readablecCr��NFr8r�r8r8r9�writable}r�z_FileInFile.writablecCs
|j��Sr0)r��seekabler�r8r8r9r���
z_FileInFile.seekablecCr�r0)r�r�r8r8r9r��r�z_FileInFile.tellcCs�	|tjkrtt|d�|j�|_|jS|tjkr5|dkr(t|j|d�|_|jSt|j||j�|_|jS|tjkrJtt|j||j�d�|_|jStd��)NrzInvalid argument)	�io�SEEK_SET�min�maxr'r��SEEK_CUR�SEEK_ENDrK)r�r��whencer8r8r9r��s


��
��z_FileInFile.seekc	Cs	|dur|j|j}n	t||j|j�}d}|dkr�	|j|j\}}}}||jkr1|kr4nnn|jd7_|jt|j�krFd|_qt|||j�}|rq|j�||j|�|j�|�}t|�|krlt	d��||7}n|t
|7}||8}|j|7_|dks|S)Nr�rTr#rZ)r'r�r�r�r�r2r�r�r^rr3)	r�r'rX�data�start�stopr�r5rer8r8r9r^�s4�
�z_FileInFile.readcCs&|�t|��}||dt|��<t|�Sr0)r^r2)r�rerXr8r8r9�readinto�sz_FileInFile.readintocCs
d|_dSr�)r�r�r8r8r9r��r�z_FileInFile.closer0)rprqrrr�r�r�r�r�r�r�r�r�r^r�r�r8r8r8r9r�Xs

r�cseZdZ�fdd�Z�ZS)�ExFileObjectcs&t|j|j|j|j�}t��|�dSr0)r�r��offset_datar'�sparse�superr�)r��tarfile�tarinfor���	__class__r8r9r��s
�zExFileObject.__init__)rprqrrr��
__classcell__r8r8r�r9r��sr�c@s
eZdZ	edwidd�dd�dd�dd�d	d
�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd �d!d"�d#d$�d%d$�d&d$��Zdxd(d)�Zed*d+��Zejd,d+��Zed-d.��Z	e	jd/d.��Z	d0d1�Z
d2d3�Zee
d4fd5d6�Zd7d8�Zd9d:�Zd;d<�Zed=d>��Zd?d@�ZedAdB��ZedCdD��ZedEdF��ZedGdH��ZedIdJ��ZedKdL��ZdMdN�ZdOdP�ZdQdR�ZdSdT�ZdUdV�Z dWdX�Z!dYdZ�Z"d[d\�Z#d]d^�Z$d_d`�Z%dadb�Z&dcdd�Z'dedf�Z(dgdh�Z)didj�Z*dkdl�Z+dmdn�Z,dodp�Z-dqdr�Z.dsdt�Z/dudv�Z0d$S)yrr�zName of the archive member.r�zPermission bits.r)z6User ID of the user who originally stored this member.r*z7Group ID of the user who originally stored this member.r'zSize in bytes.r(zTime of last modification.�chksumzHeader checksum.�typez�File type. type is usually one of these constants: REGTYPE, AREGTYPE, LNKTYPE, SYMTYPE, DIRTYPE, FIFOTYPE, CONTTYPE, CHRTYPE, BLKTYPE, GNUTYPE_SPARSE.�linknamezcName of the target file name, which is only present in TarInfo objects of type LNKTYPE and SYMTYPE.r+z
User name.r,zGroup name.�devmajorzDevice major number.�devminorzDevice minor number.r�zThe tar header starts here.r�zThe file's data starts here.�pax_headerszMA dictionary containing key-value pairs of an associated pax extended header.r�zSparse member information.r�N�_sparse_structs�_link_targetr�cCsl	||_d|_d|_d|_d|_d|_d|_t|_d|_	d|_
d|_d|_d|_
d|_d|_d|_i|_dS)Ni�rr�)r�r�r)r*r'r(r��REGTYPEr�r�r+r,r�r�r�r�r�r��r�r�r8r8r9r��s$
zTarInfo.__init__cCr�r0�r�r�r8r8r9r%�zTarInfo.pathcC�
||_dSr0r�r�r8r8r9r%�
cCr�r0�r�r�r8r8r9r&r�zTarInfo.linkpathcCr�r0r)r�r�r8r8r9r&r�cCsd|jj|jt|�fS)Nz<%s %r at %#x>)r�rpr��idr�r8r8r9�__repr__szTarInfo.__repr__cCsn	|j|jd@|j|j|j|j|j|j|j|j	|j
|j|jd�
}|dt
kr5|d�d�s5|dd7<|S)N�)
r�r�r)r*r'r(r�r�r�r+r,r�r�r�r��/)r�r�r)r*r'r(r�r�r�r+r,r�r��DIRTYPEr�)r��infor8r8r9�get_infos$�zTarInfo.get_info�surrogateescapecCsR	|��}|tkr|�|||�S|tkr|�|||�S|tkr%|�||�Std��)Nzinvalid format)rr
�create_ustar_headerr�create_gnu_headerr�create_pax_headerrK)r�rTr6r7rr8r8r9�tobuf3sz
TarInfo.tobufcCsp	t|d<t|d�||��tkrtd��t|d�||��tkr0|�|d||�\|d<|d<|�|t||�S)N�magicr�zlinkname is too longr��prefix)	�POSIX_MAGICr2r1�LENGTH_LINKrK�LENGTH_NAME�_posix_split_name�_create_headerr
)r�rr6r7r8r8r9r	AszTarInfo.create_ustar_headercCs�	t|d<d}t|d�||��tkr||�|dt||�7}t|d�||��tkr7||�|dt||�7}||�|t	||�S)Nr
r�r�r�)
�	GNU_MAGICr2r1r�_create_gnu_long_header�GNUTYPE_LONGLINKr�GNUTYPE_LONGNAMErr)r�rr6r7rXr8r8r9r
NszTarInfo.create_gnu_headerc
	CsF	t|d<|j��}ddtfddtfddfD]2\}}}||vr qz
||�dd	�Wnty9||||<Yqwt||�|krH||||<qd
D]A\}}d}||}	t|	t	�}
|
r`t
|	�n|	}d|krpd
|dksxnd||<d}n|
r�|||<d}|r�||vr�t|	�||<qK|r�|�|t
|�}nd}||�|tdd�S)Nr
r�r%r�r&)r+r+� )r,r,rrDrE))r)rB)r*rB)r'�)r(rFrrBr#Tr�r�)rr��copyrrr1�UnicodeEncodeErrorr2�
isinstance�float�round�str�_create_pax_generic_header�XHDTYPErr
)
r�rr6r�r�Zhnamer5rSZ	needs_pax�valZval_is_floatZval_intrXr8r8r9r\sF
���
�zTarInfo.create_pax_headercCs	|�|td�S)Nr/)r �XGLTYPE)�clsr�r8r8r9�create_pax_global_header�sz TarInfo.create_pax_global_headercCs~	|�d�}tdt|��D]-}d�|d|��}d�||d��}t|�||��tkr:t|�||��tkr:||fSq
td��)Nrr#zname is too long)�splitrHr2r�r1�
LENGTH_PREFIXrrK)r�r�r6r7Z
componentsrNrr8r8r9r�s
���zTarInfo._posix_split_namec
Cs�	|�d�ttfv}|r!t|�dd�d|�}t|�dd�d|�}ntdd||�}tdd||�}t|�dd�d||�t|�d	d�d
@d|�t|�dd�d|�t|�dd�d|�t|�d
d�d|�t|�dd�d|�d|�dt�t|�dd�d||�|�dt�t|�dd�d||�t|�dd�d||�||t|�dd�d||�g}t�dt	d�
|��}t|t	d��d}	|dd�td|	d�|dd�}|S)Nr�r�rrBr�r�r�rr�rr)r*r'rr(s        r�r
r+rr,rrz%dsr�i����z%06orDi����)
�get�CHRTYPE�BLKTYPErUr:r�rrWr�r�r�rYrP)
rrTr6r7Zhas_device_fieldsr�r��partsrXr�r8r8r9r�s6

�&zTarInfo._create_headercCs0	tt|�t�\}}|dkr|t|t7}|S)Nr)r]r2r�r3)Zpayloadrcrdr8r8r9�_create_payload�s
zTarInfo._create_payloadcCsT	|�||�t}i}d|d<||d<t|�|d<t|d<|�|t||�|�|�S)Nz
././@LongLinkr�r�r'r
)r1r3r2rrr
r,)r$r�r�r6r7rr8r8r9r�s�zTarInfo._create_gnu_long_headerc	Cs.	d}|��D]\}}z|�dd�Wqtyd}Ynwd}|r(|d7}|��D]I\}}|�d�}|r>|�|d�}n|�d�}t|�t|�d}d	}	}
	|tt|
��}	|	|
kr_n|	}
qR|tt|
�d
�d|d|d
7}q,i}d|d<||d<t|�|d<t|d<|�|td
d�|�	|�S)NFr/rETr�s21 hdrcharset=BINARY
rr�rrD� �=�
z././@PaxHeaderr�r�r'r
r�)
�itemsr1rr2rrPrrr
r,)r$r�r�r6Zbinary�keyword�valueZrecords�lrMr>rr8r8r9r �sD�

�(�z"TarInfo._create_pax_generic_headerc	Csh	t|�dkrtd��t|�tkrtd��|�t�tkr td��t|dd��}|t|�vr2t	d��|�}t
|dd�||�|_t|dd	��|_t|d	d
��|_
t|d
d��|_t|dd��|_t|dd��|_||_|dd
�|_t
|d
d�||�|_t
|dd�||�|_t
|dd�||�|_t|dd��|_t|dd��|_t
|dd�||�}|jtkr�|j�d�r�t|_|jtk�rd}g}td�D]0}	zt|||d��}
t||d|d��}Wn
ty�Yn
w|�|
|f�|d7}q�t|d�}t|dd��}
|||
f|_ |�!��r!|j�"d�|_|�r2|jt#v�r2|d|j|_|S)Nrzempty headerztruncated headerzend of file header��zbad checksumr�l�t�|��ii	i)iIiQiYi�ri�r�r�i�i�i�)$r2rtr�ru�countr3rvrOrYrLr?r�r�r)r*r'r(r�r�r�r+r,r�r��AREGTYPEr�r�GNUTYPE_SPARSErHrKr��boolr��isdir�rstrip�	GNU_TYPES)r$rXr6r7r��objrr��structsrNr��numbytes�
isextended�origsizer8r8r9�frombufs^�

zTarInfo.frombufcCs:	|j�t�}|�||j|j�}|j��t|_|�|�Sr0)	r�r^r�rHr6r7r�r��_proc_member)r$r�rXrCr8r8r9�fromtarfile]s

zTarInfo.fromtarfilecCsR	|jttfvr
|�|�S|jtkr|�|�S|jtttfvr$|�	|�S|�
|�Sr0)r�rr�
_proc_gnulongr>�_proc_sparser!r#�SOLARIS_XHDTYPE�	_proc_pax�
_proc_builtin)r�r�r8r8r9rIrs




zTarInfo._proc_membercCsT	|j��|_|j}|��s|jtvr||�|j�7}||_|�	|j
|j|j�|Sr0)
r�r�r��isregr��SUPPORTED_TYPES�_blockr'r��_apply_pax_infor�r6r7)r�r�r�r8r8r9rOszTarInfo._proc_builtinc
Cs�	|j�|�|j��}z|�|�}Wnty%}ztt|��d�d}~ww|j|_|j	t
kr:t||j|j
�|_|S|j	tkrHt||j|j
�|_|Sr0)r�r^rRr'rJrrwrr�r�rr?r6r7r�rr�)r�r�rX�nextr�r8r8r9rK�s��

�zTarInfo._proc_gnulongc
	Cs�	|j\}}}|`|rT|j�t�}d}td�D]4}zt|||d��}t||d|d��}	Wn
ty;Ynw|rG|	rG|�||	f�|d7}qt|d�}|s||_	|j�
�|_|j|�|j
�|_||_
|S)Nr�rr;i�)r�r�r^r�rHrOrKr�r?r�r�r�rRr'r�)
r�r�rDrFrGrXr�rNr�rEr8r8r9rL�s.�
�
zTarInfo._proc_sparsec
Cs.	|j�|�|j��}|jtkr|j}n|j��}t�	d|�}|dur-|�
d��d�|d<|�d�}|dkr:|j
}nd}t�d�}d}	|�||�}|sMnN|��\}	}
t|	�}	|	dkr_td	��||�d
�d|�d�|	d�}|�|
dd|j�}
|
tvr�|�|||j
|j�}n	|�|dd|j�}|||
<||	7}qDz|�|�}Wnty�}
ztt|
��d�d}
~
wwd|vr�|�||�n!d|vr�|�|||�n|�d
�dkr�|�d�dkr�|�|||�|jtt fv�r|�!||j
|j�|j"|_"d|v�r|j#}|�$��s
|jt%v�r||�|j�7}||_"|S)Ns\d+ hdrcharset=([^\n]+)\nr#r/�
hdrcharsetZBINARYs(\d+) ([^=]+)=rTrGr$�GNU.sparse.map�GNU.sparse.sizezGNU.sparse.major�1zGNU.sparse.minorrFr')&r�r^rRr'r�r#r�r�re�search�groupr=r(r6�compile�match�groupsrIrLrhr��_decode_pax_fieldr7�PAX_NAME_FIELDSrJrrwr�_proc_gnusparse_01�_proc_gnusparse_00�_proc_gnusparse_10r!rMrSr�r�rPrQ)r�r�rXr�r^rVr6Zregexr�r5r1r2rTr�r�r8r8r9rN�sr



$
	��
����
zTarInfo._proc_paxcCsj	g}t�d|�D]}|�t|�d���q	g}t�d|�D]}|�t|�d���qtt||��|_dS)Ns\d+ GNU.sparse.offset=(\d+)\nr#s\d+ GNU.sparse.numbytes=(\d+)\n)rZ�finditerr�rIr\�list�zipr�)r�rTr�rXZoffsetsr^rEr8r8r9rc*szTarInfo._proc_gnusparse_00cCsB	dd�|d�d�D�}tt|ddd�|ddd���|_dS)NcSsg|]}t|��qSr8)rI)�.0�xr8r8r9�
<listcomp>8sz.TarInfo._proc_gnusparse_01.<locals>.<listcomp>rW�,r$r#)r&rfrgr�)r�rTr�r�r8r8r9rb5s(zTarInfo._proc_gnusparse_01cCs�	d}g}|j�t�}|�dd�\}}t|�}t|�|dkrBd|vr+||j�t�7}|�dd�\}}|�t|��t|�|dks|j��|_t	t
|ddd�|ddd���|_dS)Nr/r#r$)r�r^r�r&rIr2r�r�r�rfrgr�)r�rTr�r�Zfieldsr�rXZnumberr8r8r9rd;s�(zTarInfo._proc_gnusparse_10c	Cs�	|��D]T\}}|dkrt|d|�q|dkr!t|dt|��q|dkr.t|dt|��q|tvrY|tvrJzt||�}WntyId}Ynw|dkrS|�d�}t|||�q|��|_dS)NzGNU.sparse.namer%rXr'zGNU.sparse.realsizerr)	r0�setattrrI�
PAX_FIELDS�PAX_NUMBER_FIELDSrKrArr�)r�r�r6r7r1r2r8r8r9rSKs(�
�zTarInfo._apply_pax_infocCs0	z|�|d�WSty|�||�YSw)NrE)r=�UnicodeDecodeError)r�r2r6Zfallback_encodingZfallback_errorsr8r8r9r`bs�zTarInfo._decode_pax_fieldcCs$	t|t�\}}|r|d7}|tS)Nr#)r]r�)r�r<rcrdr8r8r9rRjs
zTarInfo._blockcCs	|jtvSr0)r��
REGULAR_TYPESr�r8r8r9rPs�
z
TarInfo.isregcCs
	|��Sr0)rPr�r8r8r9�isfilewszTarInfo.isfilecC�	|jtkSr0)r�rr�r8r8r9r@{rqz
TarInfo.isdircCrsr0)r��SYMTYPEr�r8r8r9�issymrqz
TarInfo.issymcCrsr0)r��LNKTYPEr�r8r8r9�islnk�rqz
TarInfo.islnkcCrsr0)r�r)r�r8r8r9�ischr�rqz
TarInfo.ischrcCrsr0)r�r*r�r8r8r9�isblk�rqz
TarInfo.isblkcCrsr0)r��FIFOTYPEr�r8r8r9�isfifo�rqzTarInfo.isfifocCs
|jduSr0)r�r�r8r8r9�issparse�r�zTarInfo.issparsecCs	|jtttfvSr0)r�r)r*rzr�r8r8r9�isdev�sz
TarInfo.isdevr8)r�)1rprqrr�dict�	__slots__r��propertyr%�setterr&rrrrrr	r
r�classmethodr%r�staticmethodrr,rr rHrJrIrOrKrLrNrcrbrdrSr`rRrPrrr@rurwrxryr{r|r}r8r8r8r9r�s����������
�����������





:

#
	

2
>

h	rc@s�eZdZ	dZdZdZdZeZe	Z
dZeZ
eZ				d[dd�Zedddefd	d
��Zed\dd��Zed]dd��Zed]dd��Zed^dd��Zddddd�Zdd�Zdd�Zdd�Zdd �Zd_d!d"�Zd`dd$�d%d&�Zdadd'�d(d)�Zdbd*d+�Z dcdd-�d.d/�Z!dddd-�d1d2�Z"d3d4�Z#	#	ded5d6�Z$d7d8�Z%d9d:�Z&d;d<�Z'd=d>�Z(d?d@�Z)dAdB�Z*dCdD�Z+dEdF�Z,dGdH�Z-dIdJ�Z.dfdKdL�Z/dMdN�Z0dbdOdP�Z1dQdR�Z2dSdT�Z3dUdV�Z4dWdX�Z5dYdZ�Z6dS)grrFr#Nr{rc
Cs�	ddddd�}||vrtd��||_|||_|s5|jdkr+tj�|�s+d|_d|_t||j�}d	|_n |durIt|d
�rIt	|j
ttf�rI|j
}t|d�rR|j|_d|_|r]tj�
|�nd|_
||_|durj||_|durq||_|durx||_|dur||_|dur�||_|	|_|
dur�|jtkr�|
|_ni|_|dur�||_|dur�||_|
|_d	|_g|_d	|_|j��|_i|_z||jd
kr�d|_ |�!�|_ |jdk�r	|j�"|j�z|j�#|�}|j�$|�Wn#t%y�|j�"|j�Ynt&�y	}zt't|��d�d}~wwq�|jdv�r3d|_|j�r6|j�(|j�)��}|j�*|�|jt+|�7_WdSWdSWdS|j�sE|j�,�d|_�)N�rbzr+b�wbZxb�r{�ar|ri�!mode must be 'r', 'a', 'w' or 'x'r�r|Fr�r�Tr{�r�r|ri)-rKr��_moder~r%�exists�	bltn_openr�r�rr�rrP�abspathr�rTr��dereference�ignore_zerosr6r7rr��debug�
errorlevel�copybufsizer��members�_loadedr�r��inodes�firstmemberrTr�rJr�rvrrr%rr_r2r�)r�r�r�r�rTr�r�r�r6r7r�r�r�r�Zmodesr�rXr8r8r9r��s�
�


����
zTarFile.__init__cs�	|s	|s	td��|dvrp�fdd�}g}t�j|d�D]G}t��j|�}	|dur.|��}
z
|	|d|fi|��WSttfyc}z|�d|�d|���|durY|�|
�WYd}~qd}~wwd	�	|�}td
|����d|vr�|�
dd�\}
}|
pd}
|p�d
}|�jvr�t��j|�}	ntd|��|	||
|fi|��Sd|vr�|�
dd�\}
}|
p�d}
|p�d
}|
dvr�td��t||
|||�}z�||
|fi|��}Wn|���d|_
|S|dvr�j|||fi|��Std��)Nznothing to open)r{�r:*cs�j|dkS)N�taropen)�	OPEN_METH)r��r$r8r9�not_compressedNr�z$TarFile.open.<locals>.not_compressed��keyr{z	- method z: �
z'file could not be opened successfully:
�:r#r�r��|rzzmode must be 'r' or 'w'Fr�zundiscernible mode)rK�sortedr�rir�rrr�r�r�r&r�r�r�r�)r$r�r�r�rb�kwargsr�Z
error_msgsr��funcZ	saved_posr�Zerror_msgs_summary�filemode�streamr�r8r�r9r$s\#
��

zTarFile.opencKs&	|dvr	td��||||fi|��S)Nr�r�)rK)r$r�r�r�r�r8r8r9r��szTarFile.taropenr�c	
Ks�	|dvr	td��zddlm}Wntytd�d�wz|||d||�}WntyC}z|dur>|dkr>td�|��d}~wwz
|j|||fi|��}Wn!tyk}z|��|dkrftd�|��d}~w|���d	|_	|S)
N�r{r|ri�mode must be 'r', 'w' or 'x'r)�GzipFilezgzip module is not availablerer{r�F)
rKZgzipr�r�rr�rr�r�r�)	r$r�r�r��
compresslevelr�r�r�r�r8r8r9�gzopen�s:
�
��
�zTarFile.gzopenc	
Ks�	|dvr	td��zddlm}Wntytd�d�w||p"|||d�}z
|j|||fi|��}Wn#ttfyP}z|��|dkrKt	d�|��d}~w|���d	|_
|S)
Nr�r�r)�BZ2Filer�)r�r{znot a bzip2 fileF)rKr�r�r�rr�r��EOFErrorr�rr�)	r$r�r�r�r�r�r�r�r�r8r8r9�bz2open�s,
�
�zTarFile.bz2openc

Ks�	|dvr	td��z
ddlm}m}Wntytd�d�w||p$|||d�}z
|j|||fi|��}Wn#|tfyR}	z|��|dkrMt	d�|	��d}	~	w|���d	|_
|S)
Nr�r�r)�LZMAFiler�r�)�presetr{znot an lzma fileF)rKr�r�r�r�rr�r�r�rr�)
r$r�r�r�r�r�r�r�r�r�r8r8r9�xzopen�s,
�
�zTarFile.xzopenr�r�r�r�)r�r�r�r�cCs�	|jrdSd|_z;|jdvr8|j�ttd�|jtd7_t|jt�\}}|dkr8|j�tt|�W|j	sC|j�
�dSdS|j	sN|j�
�ww)NTr�r$r)r�r�r�r_r3r�r�r]�
RECORDSIZEr�r�)r�rcrdr8r8r9r��s"
�
��z
TarFile.closecCs*	|�|�d��}|durtd|��|S)Nrzfilename %r not found)�
_getmemberrA�KeyError)r�r�r�r8r8r9�	getmembers
zTarFile.getmembercCs	|��|js|��|jSr0)�_checkr��_loadr�r�r8r8r9�
getmemberss
zTarFile.getmemberscCs	dd�|��D�S)NcSsg|]}|j�qSr8r�)rhr�r8r8r9rjsz$TarFile.getnames.<locals>.<listcomp>)r�r�r8r8r9�getnamesszTarFile.getnamescCsL	|�d�|dur
|j}|dur|}tj�|�\}}|�tjd�}|�d�}|��}||_	|durA|j
s;t�|�}n
t�|�}nt�
|���}d}|j}t�|�r�|j|jf}	|j
st|jdkrt|	|jvrt||j|	krtt}
|j|	}n;t}
|	dr||j|	<n/t�|�r�t}
n't�|�r�t}
nt�|�r�t}
t�|�}nt�|�r�t}
n
t� |�r�t!}
ndS||_||_"|j#|_$|j%|_&|
tkr�|j'|_(nd|_(|j)|_*|
|_+||_,t-r�zt-�.|j$�d|_/Wn	t0y�Ynwt1�rzt1�2|j&�d|_3Wn
t0�yYnw|
tt!fv�r$t4td��r$t4td��r$t�5|j6�|_7t�8|j6�|_9|S)N�awxrr�r#r�major�minor):r�r�r~r%�
splitdriver��sep�lstripr�r�r��lstat�stat�fstat�fileno�st_mode�S_ISREG�st_ino�st_dev�st_nlinkr�rvr��S_ISDIRr�S_ISFIFOrz�S_ISLNKrt�readlink�S_ISCHRr)�S_ISBLKr*r��st_uidr)�st_gidr*�st_sizer'�st_mtimer(r�r��pwd�getpwuidr+r��grpZgetgrgidr,r�r��st_rdevr�r�r�)r�r��arcnamer�Zdrvr�Zstatresr�Zstmd�inoder�r8r8r9�
gettarinfos�


��
�





��zTarFile.gettarinfoT)r�cCs�	|��|dur|}|D]n}|rStt�|j��td|jp |j|jp%|jf�|�	�s1|�
�r>tdd|j|jf�ntd|j
�tdt�|j�dd��t|j|��r\dnd�|rx|��rmtd	|j�|��rxtd
|j�t�q
dS)Nz%s/%sz%10sz%d,%dz%10dz%d-%02d-%02d %02d:%02d:%02dr�rr�z-> zlink to )r�rmr�r�r�r+r)r,r*rxryr�r�r'r��	localtimer(r�r@rur�rwrl)r��verboser�r�r8r8r9rf�s4
����zTarFile.list��filtercCsR	|�d�|dur|}|jdur$tj�|�|jkr$|�dd|�dS|�d|�|�||�}|dur>|�dd|�dS|durT||�}|durT|�dd|�dS|��rvt|d��}|�	||�Wd�dS1sowYdS|�
�r�|�	|�|r�tt�|��D]}|j
tj�||�tj�||�||d�q�dSdS|�	|�dS)	Nr�r$ztarfile: Skipped %rr#ztarfile: Unsupported type %rztarfile: Excluded %rr�r�)r�r�r~r%r��_dbgr�rPr��addfiler@r��listdir�addr�)r�r�r��	recursiver�r��fr8r8r9r��s>
	"�
��zTarFile.addcCs�	|�d�t�|�}|�|j|j|j�}|j�|�|jt	|�7_|j
}|durXt||j|j|d�t
|jt�\}}|dkrO|j�tt|�|d7}|j|t7_|j�|�dS)Nr�)rbrr#)r�rrrTr6r7r�r_r�r2r�r\r'r]r�r3r�r�)r�r�r�rXrbrcrdr8r8r9r��s

zTarFile.addfile�.��
numeric_ownercCs�	g}|dur	|}|D]}|��r|�|�t�|�}d|_|j|||��|d�q|jdd�d�|��|D]@}tj�	||j
�}z|j|||d�|�||�|�
||�Wq9tyy}z|jdkrg�|�dd|�WYd}~q9d}~wwdS)	N���	set_attrsr�cSs|jSr0r�)r�r8r8r9�<lambda>sz$TarFile.extractall.<locals>.<lambda>r�r�r#�tarfile: %s)r@r�rr��extract�sort�reverser~r%r�r��chown�utime�chmodr
r�r�)r�r%r�r�Zdirectoriesr��dirpathr�r8r8r9�
extractall�s6

�
���zTarFile.extractallr�c
Cs	|�d�t|t�r|�|�}n|}|��r tj�||j�|_	z|j
|tj�||j�||d�WdStym}z/|j
dkr@�|jdurO|�dd|j�n|�dd|j|jf�WYd}~dSWYd}~dSd}~wty�}z|j
dkrz�|�dd|�WYd}~dSd}~ww)Nr{r�rr#r�ztarfile: %s %r)r�rrr�rwr~r%r�r�r��_extract_memberr�r�r��filenamer��strerrorr
)r��memberr%r�r�r�r�r8r8r9r�s4

�

&��
��zTarFile.extractcCs|	|�d�t|t�r|�|�}n|}|��s|jtvr"|�||�S|��s*|�	�r<t|j
t�r4td��|�
|�|��SdS)Nr{z'cannot extract (sym)link as file object)r�rrr�rPr�rQ�
fileobjectrwrur�r�r	�extractfile�_find_link_target)r�r�r�r8r8r9r�;s

zTarFile.extractfilecCsX	|�d�}|�dtj�}tj�|�}|r tj�|�s t�|�|��s(|�	�r5|�
dd|j|jf�n|�
d|j�|�
�rG|�||�nF|��rR|�||�n;|��r]|�||�n0|��se|��rl|�||�n!|��st|�	�r{|�||�n|jtvr�|�||�n|�||�|r�|�|||�|�	�s�|�||�|�||�dSdSdS)Nrr#z%s -> %s)rAr�r~r�r%�dirnamer��makedirsrwrur�r�r�rP�makefiler@�makedirr{�makefiforxry�makedev�makelinkr�rQ�makeunknownr�r�r�)r�r��
targetpathr�r�Z	upperdirsr8r8r9r�[s:


�zTarFile._extract_membercCs*	z	t�|d�WdStyYdSw)Nr�)r~�mkdir�FileExistsError�r�r�rr8r8r9r��s�zTarFile.makedircCs�	|j}|�|j�|j}t|d��?}|jdur8|jD]\}}|�|�t|||t|�q|�|j�|�	�nt|||jt|�Wd�dSWd�dS1sTwYdS)Nr�)
r�r�r�r�r�r�r\rr'�truncate)r�r�r�sourcerb�targetr�r'r8r8r9r��s


�"�zTarFile.makefilecCs$	|�||�|�dd|j�dS)Nr#z9tarfile: Unknown file type %r, extracted as regular file.)r�r�r�rr8r8r9r�s

�zTarFile.makeunknowncCs"	ttd�r
t�|�dStd��)N�mkfifozfifo not supported by system)r�r~r	r
rr8r8r9r��s
zTarFile.makefifocCs`	ttd�rttd�std��|j}|��r|tjO}n|tjO}t�||t�	|j
|j��dS)N�mknodr�z'special devices not supported by system)r�r~r
r�ryr��S_IFBLK�S_IFCHRr
r�r�r�)r�r�rr�r8r8r9r��s
�zTarFile.makedevcCs�	z6|��rtj�|�rt�|�t�|j|�WdStj�|j�r,t�	|j|�WdS|�
|�|�|�WdStyXz
|�
|�|�|�WYdSt
yWtd�d�ww)Nz%unable to resolve link inside archive)rur~r%�lexists�unlink�symlinkr�r�r��linkr�r��symlink_exceptionr�r
rr8r8r9r�s(

��
��zTarFile.makelinkc
Cs�	ttd�rot��dkrq|j}|j}|s@ztrt�|j�d}Wn	ty)Ynwzt	r5t	�
|j�d}Wn	ty?Ynwz|��rTttd�rTt�
|||�WdSt�|||�WdStyn}ztd�|�d}~wwdSdS)N�geteuidrr$�lchownzcould not change owner)r�r~rr*r)r�Zgetgrnamr,r�r��getpwnamr+rurr�r�r
)r�r�rr��g�ur�r8r8r9r��s8����
���z
TarFile.chownc
Cs:	z
t�||j�WdSty}ztd�|�d}~ww)Nzcould not change mode)r~r�r�r�r
�r�r�rr�r8r8r9r��s
��z
TarFile.chmodc
CsN	ttd�sdSz
t�||j|jf�WdSty&}ztd�|�d}~ww)Nr�z"could not change modification time)r�r~r�r(r�r
rr8r8r9r�	s

��z
TarFile.utimecCs<	|�d�|jdur|j}d|_|S|j|j��kr.|j�|jd�|j�d�s.td��d}	z|j�	|�}Wn�t
yf}z!|jr\|�dd|j|f�|jt
7_WYd}~q0WYd}~n�d}~wty�}z-|jr�|�dd|j|f�|jt
7_WYd}~q0|jdkr�tt|��d�WYd}~nqd}~wty�|jdkr�td�d�Yn[ty�}z|jdkr�tt|��d�WYd}~nBd}~wty�}ztt|��d�d}~wt�y
}zzddl}t||j�r�td	|���d�|�t�y|�wd}~ww	|du�r|j�|�|Sd|_|S)
NZrar#rZTr$z0x%X: %srz
empty filezzlib error: )r�r�r�r�r�r�r^rr�rJrvr�r�r�rLrrtrurw�	Exceptionr�rr�r�r�r�r�)r��mr�r�r�r8r8r9rT	sv

��
��

�
������	
�zTarFile.nextcCsp	|��}|dur|d|�|��}|rtj�|�}t|�D]}|r*tj�|j�}n|j}||kr5|SqdSr0)r��indexr~r%�normpath�reversedr�)r�r�r��	normalizer�r��member_namer8r8r9r�N	s��zTarFile._getmembercCs"		|��}|durnqd|_dSr�)rTr�)r�r�r8r8r9r�e	s�
z
TarFile._loadcCs@	|jrtd|jj��|dur|j|vrtd|j��dSdS)Nz%s is closedzbad operation for mode %r)r�r�r�rpr�)r�r�r8r8r9r�o	s�zTarFile._checkcCsb	|��rd�tdtj�|j�|jf��}d}n|j}|}|j||dd�}|dur/t	d|��|S)NrT)r�rzlinkname %r not found)
rur�r�r~r%r�r�r�r�r�)r�r�r��limitr�r8r8r9r�x	s zTarFile._find_link_targetccs��	|jr
|jEdHdSd}|jdur|��}|d7}|V	|t|j�kr-|j|}n|js<|��}|s;d|_dSndS|d7}|Vq )Nrr#T)r�r�r�rTr2)r�rr�r8r8r9�__iter__�	s.�
��zTarFile.__iter__cCs"	||jkrt|tjd�dSdS)N��file)r�rlrj�stderr)r��level�msgr8r8r9r��	s
�zTarFile._dbgcCs|��|Sr0)r�r�r8r8r9�	__enter__�	szTarFile.__enter__cCs.|dur
|��dS|js|j��d|_dSr�)r�r�r�r�)r�r�r2�	tracebackr8r8r9�__exit__�	s


zTarFile.__exit__)
Nr{NNNNNNrNNNN)r{N)r{Nr�)r{NN)NNN)Tr�r0)r�N)r�T)TFr�)7rprqrrr�r�r�r�rrTrr6r7rr�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�r�rfr�r�r�r�r�r�r�r�rr�r�rr�r�r�rTr�r�r�r�r r�r&r(r8r8r8r9r�s~
�o] �


c 
3(& 
�1

?

	rcCsD	zt|d�r
t|d�}nt|�}|��WdSty!YdSw)Nr^)r�TF)r�rr�r)r�r�r8r8r9r�	s
�rc	Cs6ddl}d}|j|d�}|jdddddd	�|jd
d�}|jdd
ddd�|jdddddd�|jdddddd�|jddddd�|��}|jdur�|j}t|�r�t|d��}|��t	|��t
jd�Wd�n1sowY|jr�t	d �
|��dSdS|�d!d"�
|��dS|jdur�|j}t|�r�t�|d#��}|j|jd$�Wd�dS1s�wYdS|�d!d"�
|��dS|jdu�r9t|j�d!kr�|jd}tj}nt|j�d%kr�|j\}}n|�d!|���t|��r.t�|d#��}|j|d&�Wd�n	1�swY|j�r,|d'k�r d(�
|�}	nd)�
||�}	t	|	�dSdS|�d!d"�
|��dS|jdu�r�|j�d�}
tj�|
�\}}d*d*d+d+d,d,d,d,d-�}
||
v�rcd.|
|nd/}|j}t�|
|��}|D]}|�|��qqWd�n	1�s�wY|j�r�t	d0�
|
��dSdSdS)1Nrz3A simple command-line interface for tarfile module.)�descriptionz-vz	--verbose�
store_trueFzVerbose output)�action�default�helpT)Zrequiredz-lz--list�	<tarfile>zShow listing of a tarfile)�metavarr-z-ez	--extract�+)r.z<output_dir>zExtract tarfile into target dir)�nargsr/r-z-cz--create)z<name>z<file>zCreate tarfile from sourcesz-tz--testzTest if a tarfile is validr{r!z{!r} is a tar archive.r#z{!r} is not a tar archive.
r�)r�r$)r%r�z{!r} file is extracted.z+{!r} file is extracted into {!r} directory.r�r�r�)r�z.tgzz.xzz.txzz.bz2z.tbzz.tbz2z.tb2zw:r|z{!r} file created.)�argparse�ArgumentParser�add_argumentZadd_mutually_exclusive_group�
parse_args�testrrr�rlrjr#r�rT�exitrfrr�r2r~�curdirZformat_helpr�Zcreate�popr%�splitextr�)r2r)�parserr\�argsr`r�Ztfr8r%Ztar_name�_ZextZcompressionsZtar_modeZ	tar_files�	file_namer8r8r9�main�	s��
�
�
�
�
��
"�

�
���
���r?�__main__)]�version�
__author__�__credits__�builtinsrr�rjr~r�r[r�r�rWrrZr�r�r��AttributeError�NotImplementedErrorrr��	NameError�__all__r3r�r�rrrrr'r�r=rvrtr)r*rrzZCONTTYPErrr>r!r#rMr
rrrrQrprBrmrarrIrnr�r�getfilesystemencodingr:r?rOrUrYr\rmrrr
rrr	rrtrurvrLrwryr��objectr�r��BufferedReaderr�rrrr?rpr8r8r8r9�<module>s��������

shU.
W
�

https://t.me/AnonymousX5 - 2025