b374k
m1n1 1.01
Apache/2.2.15 (CentOS)
Linux obd60-6c49958d75-2q7cw 5.4.0-174-generic #193-Ubuntu SMP Thu Mar 7 14:29:28 UTC 2024 x86_64
uid=48(apache) gid=48(apache) groups=48(apache)
server ip : 172.67.192.52 | your ip : 10.244.126.0
safemode OFF
 >  / usr / lib64 / python2.6 /
Filename/usr/lib64/python2.6/zipfile.pyc
Size36.77 kb
Permissionrw-r--r--
Ownerapache
Create time23-Dec-2025 17:41
Last modified20-Jun-2019 19:45
Last accessed22-Apr-2026 05:27
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
Ñò
§ÚêLc@s�dZddkZddkZddkZddkZddkZddkZddkZddkZyddk Z e i
Z
Wn"e j
oe Z ei
Z
nXddddddd d
d g Z
defd ��YZd efd
��YZeZdd>dZdd>Zdd>dZdZdZdZdZeie�ZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&eie%�Z'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3d Z4d!Z5d"Z6d#Z7dZ8d$Z9d%Z:d&Z;d'Z<eie;�Z=dZ>dZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHdZId(ZJd)ZKeieJ�ZLd*ZMd+ZNeieM�ZOdZPdZQdZRdZSdZTdZUdZVdZWdZXdZYd,�ZZd-�Z[d.�Z\de]fd/��YZ^d0fd1��YZ_d2fd3��YZ`d fd4��YZad
eafd5��YZbe d6�Zcedd7jo ec�ndS(8s
Read and write ZIP files.
iÿÿÿÿNt
BadZipfileterrort
ZIP_STOREDt ZIP_DEFLATEDt
is_zipfiletZipInfotZipFilet PyZipFilet LargeZipFilecBseZRS((t__name__t
__module__(((s/usr/lib64/python2.6/zipfile.pyRscBseZdZRS(su
Raised when writing a zipfile, the zipfile requires ZIP64 extensions
and those extensions are disabled.
(R R
t__doc__(((s/usr/lib64/python2.6/zipfile.pyRsiiiiis<4s4H2LHsPKiiiiiii s<4s4B4HL2L5H2LsPKi
i i i
iiiis <4s2B4HL2L2HsPKs<4sLQLsPKs
<4sQ2H2L4QsPKcCsOy5t|d�}t|�}|i�|otSWntj
onXtS(s?Quickly see if file is a ZIP file by checking the magic number.trb(topent _EndRecDatatclosetTruetIOErrortFalse(tfilenametfpintendrec((s/usr/lib64/python2.6/zipfile.pyR�s 
 c
Cs0|i|td�|it�}tit|�\}}}}|tjo|S|djp
|djotd��n|i|ttd�|it�}tit |�\
}}} }
} } }
}}}|t
jo|S||t <| |t <| |t
<|
|t<||t<||t<||t<|S(sM
Read the ZIP64 end-of-archive records and use that to update endrec
iiis3zipfiles that span multiple disks are not supported(tseektsizeEndCentDir64LocatortreadtstructtunpacktstructEndArchive64LocatortstringEndArchive64LocatorRtsizeEndCentDir64tstructEndArchive64tstringEndArchive64t_ECD_SIGNATUREt_ECD_DISK_NUMBERt_ECD_DISK_STARTt_ECD_ENTRIES_THIS_DISKt_ECD_ENTRIES_TOTALt _ECD_SIZEt _ECD_OFFSET(RtoffsetRtdatatsigtdisknotrelofftdiskstsztcreate_versiont read_versiontdisk_numtdisk_dirtdircountt dircount2tdirsizet diroffset((s/usr/lib64/python2.6/zipfile.pyt
_EndRecData64�s(
0







c Cs£|idd�|i�}y|it d�Wntj
od SX|i�}|dd!tjo_|ddjoNtit |�}t
|�}|i d�|i |t�t |t |�St
|d
td�}|i|d�|i�}|it�}|djo�|||t!}t
tit |��}||t}|tt|�jo7|i |�|i ||�t |||||�Snd S( sÔReturn data from the "End of Central Directory" record, or None.

The data is a list of the nine items in the ZIP "End of central dir"
record followed by a tenth item, the file seek offset of this record.iiiiþÿÿÿttiiNi(RttelltsizeEndCentDirRtNoneRtstringEndArchiveRRtstructEndArchivetlisttappendR6tmaxtrfindt_ECD_COMMENT_SIZEtlen(RtfilesizeR(RtmaxCommentStarttstarttrecDatatcomment((s/usr/lib64/python2.6/zipfile.pyR°s6  % 
 

 cBsGeZdZdZddd�Zd�Zd�Zd�Zd�ZRS(s>Class with attributes describing each file in the ZIP archive.t
orig_filenameRt date_timet
compress_typeRHtextrat
create_systemR.textract_versiontreservedt flag_bitstvolumet
internal_attrt
external_attrt
header_offsettCRCt
compress_sizet file_sizet _raw_timetNoNamei¼iicCs ||_|itd��}|djo|d|!}ntidjo)ti|jo|itid�}n||_||_t|_ d|_
d|_ t i
djo
d|_n
d|_d|_d|_d|_d|_d|_d|_d|_dS(Nit/R8twin32ii(RItfindtchrtostseptreplaceRRJRRKRHRLtsystplatformRMR.RNRORPRQRRRS(tselfRRJt null_byte((s/usr/lib64/python2.6/zipfile.pyt__init__s* 
      
       c Cs�|i}|ddd>|dd>B|dB}|dd>|d d>B|ddB}|id
@od}}}n|i}|i}|i}|i}|tjp
|tjold }|ti|dti |�d ||�}d }d }t
d
|i �|_ t
d
|i �|_ n|i
�\} }
titt|i |i|
|i|||||t| �t|��
} | | |S(s'Return the per-file header as a string.ii¼i iiiii iis<HHQQIÿÿÿÿi-(RJRPRURVRWRLt ZIP64_LIMITRtpacktcalcsizeR@RNR.t_encodeFilenameFlagststructFileHeadertstringFileHeaderRORKRC( RctdttdosdatetdostimeRURVRWRLtfmtRRPtheader((s/usr/lib64/python2.6/zipfile.pyt
FileHeader)s0 &&       cCsxt|it�oQy|iid�|ifSWqttj
o!|iid�|idBfSXn|i|ifSdS(Ntasciisutf-8i(t
isinstanceRtunicodetencodeRPtUnicodeEncodeError(Rc((s/usr/lib64/python2.6/zipfile.pyRiKs #cCs*|id@o|iid�S|iSdS(Nisutf-8(RPRtdecode(Rc((s/usr/lib64/python2.6/zipfile.pyt_decodeFilenameTscCs�|i}ti}xp|oh|d|d �\}}|djo0|djo|d|dd!�}nv|djo|d|dd !�}nO|d
jo|d |dd !�}n(|d
jo
d}ntd|f�d
}|idjo|||_|d7}n|idjo|||_|d7}n|idjo$|i}|||_|d7}qrn||d}qWdS(Ns<HHiiis<QQQiis<QQiis<Qi isCorrupt extra field %slÿÿÿÿlÿÿ((lÿÿÿÿlÿÿ(RLRRt RuntimeErrorRWRVRT(RcRLRttptlntcountstidxtold((s/usr/lib64/python2.6/zipfile.pyt _decodeExtraZs6  







 
(s
orig_filenamesfilenames date_times
compress_typescommentsextras
create_systemscreate_versionsextract_versionsreserveds flag_bitssvolumes
internal_attrs
external_attrs
header_offsetsCRCs
compress_sizes file_sizes _raw_time(i¼iiiii( R R
R t __slots__ReRqRiRxR(((s/usr/lib64/python2.6/zipfile.pyRês2& " t
_ZipDecryptercBsDeZdZd�Ze�Zd�Zd�Zd�Zd�ZRS(sClass to handle decryption of files stored within a ZIP archive.

ZIP supports a password-based form of encryption. Even though known
plaintext attacks have been found against it, it is still useful
to be able to get data out of such a file.

Usage:
zd = _ZipDecrypter(mypwd)
plain_char = zd(cypher_char)
plain_text = map(zd, cypher_text)
cCs�d}dgd}xjtd�D]\}|}xCtd�D]5}|d@o|d?d@|A}q9|d?d@}q9W|||<q W|S(sâGenerate a CRC-32 table.

ZIP encryption uses the CRC32 one-byte primitive for scrambling some
internal keys. We noticed that a direct implementation is faster than
relying on binascii.crc32().
I �¸íiiiiiÿÿÿ(trange(tpolyttabletitcrctj((s/usr/lib64/python2.6/zipfile.pyt_GenerateCRCTable�s


 cCs%|d?d@|i|t|�Ad@AS(s(Compute the CRC32 primitive on one byte.iiÿÿÿiÿ(tcrctabletord(RctchR�((s/usr/lib64/python2.6/zipfile.pyt_crc32 scCs=d|_d|_d|_x|D]}|i|�q"WdS(NixV4i�gE#i�xV4(tkey0tkey1tkey2t _UpdateKeys(Rctpwdtp((s/usr/lib64/python2.6/zipfile.pyRe¤s    cCsx|i||i�|_|i|id@d@|_|iddd@|_|it|id?d@�|i�|_dS(NiÿIÿÿÿÿi�ii(R�R�R�R]R�(Rctc((s/usr/lib64/python2.6/zipfile.pyR�«scCsPt|�}|idB}|||dAd?d@A}t|�}|i|�|S(sDecrypt a single character.iiiiÿ(R�R�R]R�(RcR�tk((s/usr/lib64/python2.6/zipfile.pyt__call__±s  
 
( R R
R R�R�R�ReR�R�(((s/usr/lib64/python2.6/zipfile.pyR�s      t
ZipExtFilecBskeZdZd d�Zd�Zd�Zd�Zd�Zd�Z dd�Z
dd �Z d d
�Z RS( sZFile-like object for reading an archive member.
Is returned by ZipFile.open().
cCsÃ||_||_d|_d|_d|_d|_t|_t|_d|_ d|_
|i |_ |i |_ t|_
d|_|i|_d |_|i tjotid�|_ndS(
NlR8s
tri@iiñÿÿÿ(s
i(tfileobjt decryptert
bytes_readt rawbuffert
readbuffert
linebufferRteoft
univ_newlinestnlSepst lastdiscardRKRVtclosedtmodeRtnamet compreadsizeRtzlibt
decompressobjtdc(RcR�tzipinfotdecrypt((s/usr/lib64/python2.6/zipfile.pyRe¿s$                cCs-||_d|_|io
d|_ndS(Ns
s
s
(s
(s
s
s
(R�R (RcR�((s/usr/lib64/python2.6/zipfile.pytset_univ_newlines×s  
cCs|S(N((Rc((s/usr/lib64/python2.6/zipfile.pyt__iter__ßscCs$|i�}|p
t��n|S(N(treadlinet
StopIteration(Rctnextline((s/usr/lib64/python2.6/zipfile.pytnextâs 
cCs
t|_dS(N(RR¢(Rc((s/usr/lib64/python2.6/zipfile.pyRéscCs�d\}}|io|i|idfdjo|id|_nxK|iD]<}|ii|�}|djot|�}||fSqQWn||fS(Niÿÿÿÿis
s
i(iÿÿÿÿiÿÿÿÿ(s
s
(R�R¡R R\RC(RctnltnllenR_((s/usr/lib64/python2.6/zipfile.pyt_checkfornewlineìs 


 iÿÿÿÿcCsL|djo
ti}n|djodS|i�\}}|djot||�}n¯|t|i�8}xt|djof|djoY|it|d��}|pPn|i|7_|t|�8}|i�\}}qtW|djo|i}d|_|S|i| }|i|||!|_|i|||_|dS(sZRead a line with approx. size. If size is negative,
read a whole line.
iR8ids
(RatmaxintR³tminRCR�RR¡(RctsizeR±R²tbufts((s/usr/lib64/python2.6/zipfile.pyR­ýs0




  
cCs>g}x1to)|i�}|pPn|i|�q W|S(stReturn a list with all (following) lines. The sizehint parameter
is ignored in this implementation.
(RR­R?(Rctsizehinttresulttline((s/usr/lib64/python2.6/zipfile.pyt readlines)s cCs�|djodS|i|i}|idj o|d8}n|dj o |djo�|itjo&t|i�}t|||�}qí|it joIt|i�|jo
d}qét|i
�}t||i |�}qín||i|ijo|i|i}n|djo|i i
|�}|it|�7_|i
|7_
|i
o×|i
}d|_
|o/|idj odit|i|��}n|ou|it joe|ii|�}|ii|_
|io6t|i
�djo ||ii�7}d|_q)n|i|7_q@n|djpt|i�|jo|i}d|_n|i| }|i||_|S(NiR8i (RVR�R�R;RKRRCR�RµRR�R¥R�RtjointmapR¨t
decompresstunconsumed_tailR�tflush(RcR¶t bytesToReadtlrtbytestnewdata((s/usr/lib64/python2.6/zipfile.pyR4sL



   # 

N(
R R
R R;ReR«R¬R°RR³R­R¼R(((s/usr/lib64/python2.6/zipfile.pyR�ºs       , cBsæeZdZdZdeed�Zd�Zd�Z d�Z
d�Z d�Z d�Z
d �Zd
�Zdd �Zddd �Zddd
�Zdddd�Zd�Zd�Zddd�Zd�Zd�Zd�ZRS(sd Class with methods to open, read, write, close, list zip files.

z = ZipFile(file, mode="r", compression=ZIP_STORED, allowZip64=False)

file: Either the path to the file, or a file-like object.
If it is a path, the file will be opened and closed by ZipFile.
mode: The mode can be either read "r", write "w" or append "a".
compression: ZIP_STORED (no compression) or ZIP_DEFLATED (requires zlib).
allowZip64: if True ZipFile will create files with ZIP64 extensions when
needed, otherwise it will raise an exception when this would
be necessary.

R�c CsH|djotd��n|tjon/|tjotp
td�q\n
td�||_t|_d|_h|_g|_ ||_
|i dd �d|_ }d|_d |_t|t�o�d|_||_hd
d6d d6d d6}yt|||�|_Wq�tj
o;|djo$d}}t|||�|_qb�q�Xn(d
|_||_t|dd�|_|djo|i�n�|djon�|djoQy$|i�|ii|id�WqDtj
o|iidd�qDXn.|ip|ii�d|_ntd�dS(s>Open the ZIP file with mode read "r", write "w" or append "a".R�twtas(ZipFile() requires mode "r", "w", or "a"s.Compression requires the (missing) zlib modules(That compression method is not supporteditbR8R twbsr+biR¤isMode must be "r", "w" or "a"N(R�RÆRÇ(RyRRR¦t _allowZip64Rt
_didModifytdebugt
NameToInfotfilelistt compressionR`R£R;R�RHRst
basestringt _filePassedRR
tfpRtgetattrt _GetContentst_RealGetContentsRt start_dirRR(RctfileR£RÏt
allowZip64tkeytmodeDict((s/usr/lib64/python2.6/zipfile.pyRe�s\


           

   






cCsOy|i�Wn:tj
o.|ip|ii�d|_n�nXdS(sORead the directory, making sure we close the file if the format
is bad.N(RÕRRÑRÒRR;(Rc((s/usr/lib64/python2.6/zipfile.pyRÔÈs


cCs|i}t|�}|p
td�n|idjo |GHn|t}|t}|t|_|t||}|t t
jo|t t 8}n|idjo||}dG|G|G|GHn|||_
|i|i
d�|i|�}ti|�}d}x||joó|it�} | dd!tjo
td�ntit| �} |idjo | GHn|i| t�}
t|
�} |i| t�| _|i| t�| _| t| _| dd!\ | _| _| _ | _!| _"| _#} }
| _$| _%| _&| d d
!\| _'| _(| _)| | _*|
d ?d |
d
?d @|
d@| d?| d
?d@| d@df| _+| i,�| i|| _| i-�| _.|i/i0| �| |i1| i.<|t| t| t| t}|idjo
dG|GHqqWdS(s/Read in the table of contents for the ZIP file.sFile is not a zip fileiisgiven, inferred, offsetiis&Bad magic number for central directoryi iii i¼iii i?ttotalN(2RÒRRRÌR%R&t _ECD_COMMENTRHt
_ECD_LOCATIONR RRRRÖRRt cStringIOtStringIOtsizeCentralDirtstringCentralDirRRtstructCentralDirt_CD_FILENAME_LENGTHRt_CD_EXTRA_FIELD_LENGTHRLt_CD_COMMENT_LENGTHt_CD_LOCAL_HEADER_OFFSETRTR.RMRNRORPRKRURVRWRQRRRSRXRJRRxRRÎR?RÍ(RcRÒRtsize_cdt offset_cdtconcattinferredR(RÛtcentdirRtxtttd((s/usr/lib64/python2.6/zipfile.pyRÕÓs\  
 






  
I &
"cCs.g}x!|iD]}|i|i�qW|S(s+Return a list of file names in the archive.(RÎR?R(RctlR(((s/usr/lib64/python2.6/zipfile.pytnamelists

cCs|iS(sJReturn a list of class ZipInfo instances for files in the
archive.(RÎ(Rc((s/usr/lib64/python2.6/zipfile.pytinfolistscCsJdd GHx:|iD]/}d|id }d|i||ifGHqWdS(
s+Print a table of contents for the zip file.s%-46s %19s %12ss File Names Modified tSizes%d-%02d-%02d %02d:%02d:%02dis
%-46s %s %12dN(s File Names Modified Rò(RÎRJRRW(Rctzinfotdate((s/usr/lib64/python2.6/zipfile.pytprintdirs
 
cCsid}x\|iD]Q}y1|i|id�}x|i|�oq1WWqtj
o |iSXqWdS(s%Read all the files and check the CRC.iiR�Ni(RÎR
RRR(Rct
chunk_sizeRótf((s/usr/lib64/python2.6/zipfile.pyttestzip&s
 cCs7|ii|�}|djotd|��n|S(s,Return the instance of ZipInfo given 'name'.s(There is no item named %r in the archiveN(RÍtgetR;tKeyError(RcR¤tinfo((s/usr/lib64/python2.6/zipfile.pytgetinfo3s

cCs
||_dS(s)Set default password for encrypted files.N(R�(RcR�((s/usr/lib64/python2.6/zipfile.pyt setpassword<scCs|i|d|�i�S(s)Return file bytes (as a string) for name.R�(R
R(RcR¤R�((s/usr/lib64/python2.6/zipfile.pyR@scCsb|djo
td�n|ip
td�n|io
|i}nt|id�}t|t�o
|}n|i|�}|i|i d�|i
t �}|dd!t jo
t
d �ntit|�}|i
|t�}|to|i
|t�n||ijot
d
|i|f�n|id @}d} |o¿|p
|i}n|ptd |�nt|�} |i
d
�}
t| |
dd
!�} |id@o|id?d@} n|id?d@} t| d�| jotd|��qn| djot||�}
nt||| �}
d|jo|
it�n|
S(s#Return file-like object for 'name'.R�tUtrUs&open() requires mode "r", "U", or "rU"s3Attempt to read ZIP archive that was already closedR iis Bad magic number for file headers3File name in directory "%s" and header "%s" differ.is6File %s is encrypted, password required for extractioni iiÿii sBad password for file(R�RþsrUN(RyRÒRÑR
RRsRRüRRTRtsizeFileHeaderRkRRRRjt_FH_FILENAME_LENGTHt_FH_EXTRA_FIELD_LENGTHRIRPR;R�R�R¾RXRUR�R�R«R(RcR¤R£R�tzef_fileRótfheadertfnamet is_encryptedtzdRÄtht
check_bytetzef((s/usr/lib64/python2.6/zipfile.pyR
DsZ







 

  

cCsSt|t�p|i|�}n|djoti�}n|i|||�S(s#Extract a member from the archive to the current working directory,
using its full name. Its file information is extracted as accurately
as possible. `member' may be a filename or a ZipInfo object. You can
specify a different directory using `path'.
N(RsRRüR;R^tgetcwdt_extract_member(RctmembertpathR�((s/usr/lib64/python2.6/zipfile.pytextract�s

cCsE|djo|i�}nx!|D]}|i|||�q$WdS(sõExtract all members from the archive to the current working
directory. `path' specifies a different directory to extract to.
`members' is optional and must be a subset of the list returned
by namelist().
N(R;RðR(RcRtmembersR�R©((s/usr/lib64/python2.6/zipfile.pyt
extractall s

cCsy|dtiitiifjo1ttii|�d�djo|d }n|iddjo tii||id�}ntii||i�}tii|�}tii |�}|o%tii
|� oti |�n|iddjo)tii |�pti
|�n|S|i|d|�}t|d�}ti||�|i�|i�|S(sbExtract the ZipInfo object 'member' to a physical
file on the path targetpath.
iÿÿÿÿiiRZR�RÉ(R^RR_taltsepRCt
splitdriveRR½tnormpathtdirnametexiststmakedirstisdirtmkdirR
R×tshutilt copyfileobjR(RcR
t
targetpathR�t upperdirstsourcettarget((s/usr/lib64/python2.6/zipfile.pyR ¬s(## 

cCs
|i|ijo|iodG|iGHq1n|id jo
td�n|ip
td�n|itjot o
td�n|it tfjo
td�n|i
t jo|i pt
d��qÛn|it jo|i pt
d ��q nd
S( s6Check for errors before writing a file to the archive.sDuplicate name:RÆRÇs write() requires mode "w" or "a"s4Attempt to write ZIP archive that was already closeds.Compression requires the (missing) zlib modules(That compression method is not supporteds'Filesize would require ZIP64 extensionss+Zipfile size would require ZIP64 extensionsN(RÆRÇ(RRÍRÌR£RyRÒRKRR¦RRWRfRÊRRT(RcRó((s/usr/lib64/python2.6/zipfile.pyt _writecheckÑs(







cCsª|iptd��nti|�}ti|i�}ti|i�}|dd!}|djo
|}nti
i ti
i |�d�}x,|dti
tifjo|d}q�W|o|d7}nt||�}|dd@d>|_|djo|i|_n
||_|i|_d|_|ii�|_|i|�t|_|oVd|_d|_d|_|ii|�||i|i <|ii!|i"��dSt#|d �} d|_}
d|_} d|_} |ii!|i"��|it$jot%i&t%i't%i(d
�}
nd}
x{| i)d�}|pPn| t*|�} t+||
�d
@}
|
o#|
i,|�}| t*|�} n|ii!|�q?| i-�|
o9|
i.�}| t*|�} |ii!|�| |_n
| |_|
|_| |_|ii�}|ii/|idd�|ii!t0i1d|i|i|i��|ii/|d�|ii|�||i|i <dS(sLPut the bytes from filename into the archive under the name
arcname.s7Attempt to write to ZIP archive that was already closediiiRZiÿÿlNR iñÿÿÿiiIÿÿÿÿis<LLLi (2RÒRyR^tstattS_ISDIRtst_modettimet localtimetst_mtimeR;RRRR_RRRSRÏRKtst_sizeRWRPR9RTR RRËRVRURÎR?RÍRtwriteRqR
RR¦t compressobjtZ_DEFAULT_COMPRESSIONtDEFLATEDRRCtcrc32tcompressRRÁRRRg(RcRtarcnameRKtstRtmtimeRJRóRÒRURVRWtcmprR·tposition((s/usr/lib64/python2.6/zipfile.pyR(ès�




"
   
    


 
 
   
cCsÄt|t�pAtd|dtiti��d �}|i|_d |_n|}|iptd��nt |�|_
|ii �|_ |i
|�t|_t|�d@|_|itjoGtititid�}|i|�|i�}t |�|_n
|i
|_|ii �|_ |ii|i��|ii|�|ii�|id @o/|iitid
|i|i|i
��n|ii |�||i!|i"<d S(
s¬Write a file into the archive. The contents is the string
'bytes'. 'zinfo_or_arcname' is either a ZipInfo instance or
the name of the file in the archive.RRJii�is7Attempt to write to ZIP archive that was already closedIÿÿÿÿiñÿÿÿis<LLLNi�(#RsRR$R%RÏRKRSRÒRyRCRWR9RTR RRËR,RURR¦R)R*R+R-RÁRVR(RqRPRRgRÎR?RÍR(Rctzinfo_or_arcnameRÄRótco((s/usr/lib64/python2.6/zipfile.pytwritestr:s:  



   
cCs|i�dS(s2Call the "close()" method in case the user forgot.N(R(Rc((s/usr/lib64/python2.6/zipfile.pyt__del__ascCsà|idjodS|idjo�|io�d}|ii�}xà|iD]Õ}|d}|i}|ddd>|dd>B|d B}|d
d >|d d>B|dd B}g}|itjp|i tjo0|i
|i�|i
|i �d
}d
} n|i}|i } |i tjo|i
|i �d}
n
|i }
|i } |o\t
iddt|�ddt|�|�| } td|i�} td|i�}
n|i} |i}
y�|i�\}}t
itt|
|i| |i||i|||i| |t|�t| �t|i�d|i|i|
�}Wn�tj
o�titt|
|i| |i|i |i|||i| |t|i!�t| �t|i�d|i|i|
fIJ�nX|ii"|�|ii"|�|ii"| �|ii"|i�qNW|ii�}|}||}|}|t#jp|tjp
|tjo�t
it$t%ddddd||||� }|ii"|�t
it&t'd|d�}|ii"|�t(|d�}t(|d
�}t(|d
�}nt|i�t)jo2|i*djodt)}n|it) |_nt
it+t,dd||||t|i�� }|ii"|�|ii"|i�|ii-�n|i.p|ii/�nd|_dS(sJClose the file, and for mode "w" and "a" write the ending
records.NRÆRÇiii¼i iiii iIÿÿÿÿlÿÿs<HHtQii-i,iÿÿs3Archive comment is too long; truncating to %d bytes(RÆRÇ(0RÒR;R£RËR9RÎRJRWRfRVR?RTRLRRgRCR@RNR.RiRâRáRMRORKRURHRRRStDeprecationWarningRatstderrRPRR(tZIP_FILECOUNT_LIMITRRRRRµtZIP_MAX_COMMENTRÌR=R<RÁRÑR(Rctcounttpos1RóRlRmRnRLRWRVRTt
extra_dataRNR.RRPRëtpos2t centDirCountt centDirSizet
centDirOffsett zip64endrect zip64locrectmsgR((s/usr/lib64/python2.6/zipfile.pyRes´

 &&
  
      

 ! 



    
N(R R
R R;RÒRRReRÔRÕRðRñRõRøRüRýRR
RRR R R(R5R6R(((s/usr/lib64/python2.6/zipfile.pyR|s*
; @   
 N % R ' cBs#eZdZdd�Zd�ZRS(sDClass to create ZIP archives with Python library files and packages.R8c
Csütii|�\}}tii|�oitii|d�}tii|�o�|od||f}n|}|iodG|GdG|GHn|i|dd!|�\}}|io
dG|GHn|i||�ti |�}|i
d�x�|D]×} tii|| �}
tii | �\} } tii|
�o:tiitii|
d��o|i |
|�qÓqü| djoJ|i|
dd!|�\}}|io
dG|GHn|i||�qüqüWqø|io
d G|GHnxti |�D]�} tii|| �}
tii | �\} } | djoJ|i|
dd!|�\}}|io
dG|GHn|i||�qqWne|ddjo
t
d
�n|i|dd!|�\}}|io
d G|GHn|i||�d S(
s,Add all files from "pathname" to the ZIP archive.

If pathname is a package directory, search the directory and
all package subdirectories recursively for all *.py and enter
the modules into the archive. If pathname is a plain
directory, listdir *.py and enter all modules. Else, pathname
must be a Python *.py file and the module will be put into the
archive. Added modules are always module.pyo or module.pyc.
This method will compile the module.py into module.pyc if
necessary.
s __init__.pys%s/%ssAdding package intasiiýÿÿÿtAddings.pysAdding files from directorys.Files added with writepy() must end with ".py"s Adding fileN(R^RtsplitRR½tisfileRÌt
_get_codenameR(tlistdirtremovetsplitexttwritepyRy(
RctpathnametbasenametdirR¤tinitnameRR.tdirlistRRtroottext((s/usr/lib64/python2.6/zipfile.pyRN×s^ 



"










c
CsD|d}|d}|d}tii|�o/ti|�iti|�ijo
|}nªtii|� p%ti|�iti|�ijojddk}|io
dG|GHny|i||dt �Wn |i
j
o}|i GHnX|}n|}tii |�d} |od|| f} n|| fS( sReturn (filename, archivename) for the path.

Given a module name path, return the correct file path and
archive name, compiling if necessary. For example, given
/python/lib/string, return (/python/lib/string.pyc, string).
s.pys.pycs.pyoiÿÿÿÿNt Compilingis%s/%s(
R^RRIR!R&t
py_compileRÌtcompileR;RtPyCompileErrorRERH(
RcRORPtfile_pytfile_pyctfile_pyoRRWterrt archivename((s/usr/lib64/python2.6/zipfile.pyRJs*


%
% 



(R R
R RNRJ(((s/usr/lib64/python2.6/zipfile.pyRÔs Ac

sõddk}|id�}|djotid}n| p|ddjo|GHtid�n|ddjoTt|�d jo|GHtid�nt|dd
�}|i�|i �n%|ddjoOt|�d jo|GHtid�nt|dd
�}|i
�d GHnÅ|ddjot|�d jo|GHtid�nt|dd
�}|d }x»|i �D]­}|i d
�ot
ii||d �}nt
ii||�}t
ii|�}t
ii|�pt
i|�nt|d�}|i|i|��|i �q�W|i �n¢|ddjo�t|�d jo|GHtid�n�fd��t|dddt�}x.|d D]"} �|| t
ii| ��q½W|i �ndS(NiÿÿÿÿsE Usage:
zipfile.py -l zipfile.zip # Show listing of a zipfile
zipfile.py -t zipfile.zip # Test if a zipfile is valid
zipfile.py -e zipfile.zip target # Extract zipfile into target dir
zipfile.py -c zipfile.zip src ... # Create zipfile from sources
iis-ls-cs-es-tiR�s Done testingis./RÉcs�tii|�o|i||t�n`tii|�oLxIti|�D]4}�|tii||�tii||��qMWndS(N(R^RRIR(RRRKR½(tzfRtzippathtnm(taddToZip(s/usr/lib64/python2.6/zipfile.pyRbqsRÆRØ(s-ls-cs-es-t(ttextwraptdedentR;RatargvtexitRCRRõRRøRðt
startswithR^RR½RRRR
R(RRRP(
targsRctUSAGER_toutRttgtttgtdirRÒtsrc((Rbs/usr/lib64/python2.6/zipfile.pytmain7sd  


 

   t__main__(eR RR^R$RaRtbinasciiRÞR!R¦R,t ImportErrorR;t__all__t ExceptionRRRRfR:R;RRR=R<RhR:R R!R"R#R$R%R&RBRÜRÝRâRáRàt
_CD_SIGNATUREt_CD_CREATE_VERSIONt_CD_CREATE_SYSTEMt_CD_EXTRACT_VERSIONt_CD_EXTRACT_SYSTEMt
_CD_FLAG_BITSt_CD_COMPRESS_TYPEt_CD_TIMEt_CD_DATEt_CD_CRCt_CD_COMPRESSED_SIZEt_CD_UNCOMPRESSED_SIZERãRäRåt_CD_DISK_NUMBER_STARTt_CD_INTERNAL_FILE_ATTRIBUTESt_CD_EXTERNAL_FILE_ATTRIBUTESRæRjRkRt
_FH_SIGNATUREt_FH_EXTRACT_VERSIONt_FH_EXTRACT_SYSTEMt_FH_GENERAL_PURPOSE_FLAG_BITSt_FH_COMPRESSION_METHODt_FH_LAST_MOD_TIMEt_FH_LAST_MOD_DATEt_FH_CRCt_FH_COMPRESSED_SIZEt_FH_UNCOMPRESSED_SIZERRRRRRRRt_CD64_SIGNATUREt_CD64_DIRECTORY_RECSIZEt_CD64_CREATE_VERSIONt_CD64_EXTRACT_VERSIONt_CD64_DISK_NUMBERt_CD64_DISK_NUMBER_STARTt_CD64_NUMBER_ENTRIES_THIS_DISKt_CD64_NUMBER_ENTRIES_TOTALt_CD64_DIRECTORY_SIZEt_CD64_OFFSET_START_CENTDIRRR6RtobjectRR�R�RRRnR (((s/usr/lib64/python2.6/zipfile.pyt<module>sÂ<$ 

  ! :�;ÂÿÿZc I