Mini Shell
a
�DOg�X � @ s� d Z ddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddlZddl
Z
ddlZzddlZejZW n ey� dZejZY n0 zddlZW n ey� dZY n0 zddlZW n ey� dZY n0 g d�ZG dd� de�ZG dd� de�Ze ZZdZd Zd ZdZd
ZdZdZ d
Z!dZ"dZ#dZ$dZ%dZ&dZ'e
�(e&�Z)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1d
Z2dZ3dZ4dZ5e
�(e4�Z6dZ7dZ8dZ9dZ:dZ;dZ<dZ=dZ>d
Z?dZ@dZAdZBdZCdZDdZEd ZFd!ZGd"ZHd#ZId$ZJd%ZKe
�(eJ�ZLdZMdZNdZOdZPdZQdZRdZSdZTd
ZUdZVdZWdZXd&ZYd'ZZe
�(eY�Z[d(Z\d)Z]e
�(e\�Z^dZ_dZ`dZadZbdZcdZddZedZfd
ZgdZhd*Zie
�jd+�Zkd,d-� Zld.d/� Zmd0d1� Znd2d3� Zod4d5� ZpG d6d7� d7eq�Zrdasd8d9� Ztd:d;� ZuG d<d=� d=�ZvG d>d?� d?�Zwd@dAdBdBdBdBdCdDdEdFdCdGdHdIdJdKdLdM�ZxdNdO� ZydodPdQ�ZzdRdS� Z{G dTdU� dU�Z|G dVdW� dW�Z}G dXdY� dYej~�ZG dZd[� d[ej~�Z�G d\d]� d]�Z�G d^d_� d_e��Z�d`da� Z�dbdc� Z�e�j�Z�ddde� Z�G dfdg� dge��Z�G dhdi� die��Z�G djdk� dk�Z�dpdldm�Z�e�dnk�r�e�� dS )qzP
Read and write ZIP files.
XXX references to utf-8 need further investigation.
� N)
�
BadZipFile�
BadZipfile�error�
ZIP_STORED�ZIP_DEFLATED� ZIP_BZIP2�ZIP_LZMA�
is_zipfile�ZipInfo�ZipFile� PyZipFile�LargeZipFile�Pathc @ s e Zd ZdS )r N)�__name__�
__module__�__qualname__� r r �/usr/lib64/python3.9/zipfile.pyr * s r c @ s e Zd ZdZdS )r
zu
Raised when writing a zipfile, the zipfile requires ZIP64 extensions
and those extensions are disabled.
N)r r r �__doc__r r r r r
. s r
i���� � � � � �- �. �? s <4s4H2LHs PK� � � � � � � � z<4s4B4HL2L5H2Ls PK�
� �
� � � � z<4s2B4HL2L2Hs PKz<4sLQLs PKz
<4sQ2H2L4Qs PKiPK�<HHc
C s� t j}d}g }d }}|d t| �krz|| ||d � �\}}|d | } ||v rt||krl|�| ||� � | }d}| }q|s�| S d�|�S )NFr r T� )�_EXTRA_FIELD_STRUCT�unpack�len�append�join)
�extraZxidsr/ Zmodified�buffer�start�iZxidZxlen�jr r r �_strip_extra� s r8 c C s* zt | �rW dS W n ty$ Y n0 dS )NTF)�_EndRecData�OSError��fpr r r �_check_zipfile� s
r= c C sh d}zLt | d�rt| d�}n2t| d��}t|�}W d � n1 sD0 Y W n tyb Y n0 |S )z�Quickly see if a file is a ZIP file by checking the magic number.
The filename argument may be a file or file-like object too.
F�readr; �rbN)�hasattrr= �openr: )�filename�resultr<