grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]ÈãB@sRddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z yddl Z Wne k r¨ddl Z YnXyddlZejZWn!e k rådZe jZYnXyddlZWne k rdZYnXyddlZWne k r;dZYnXdddddddd d d d d g ZGdd„deƒZGdd „d eƒZeZZdd>dZdd>dZdd>dZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%e j&e$ƒZ'dZ(dZ)dZ*dZ+dZ,dZ-d Z.d!Z/dZ0d"Z1d#Z2d$Z3e j&e2ƒZ4dZ5dZ6dZ7dZ8dZ9dZ:d Z;d!Z<dZ=d"Z>d%Z?d&Z@dZAd'ZBdZCd(ZDdZEd)ZFd*ZGd+ZHd,ZIe j&eHƒZJdZKdZLdZMdZNdZOdZPd ZQd!ZRdZSd"ZTd%ZUd&ZVd-ZWd.ZXe j&eWƒZYd/ZZd0Z[e j&eZƒZ\dZ]dZ^dZ_dZ`dZadZbd Zcd!ZddZed"Zfd1d2„Zgd3d „Zhd4d5„Zid6d7„ZjGd8d „d ekƒZlGd9d:„d:ƒZmGd;d<„d<ƒZnGd=d>„d>ƒZodd?dd@ddAddAddAddAd dBd!dCddDd"dEd%dBddFddGd*dHdIdJdKdLdMdNiZpdOdP„ZqdQdR„ZrdSdT„ZsGdUdV„dVƒZtGdWdX„dXƒZuGdYdZ„dZejvƒZwGd[d „d ƒZxGd\d „d exƒZydd]d^„Zze{d_krNezƒdS)`éNÚ BadZipFileÚ BadZipfileÚerrorÚ ZIP_STOREDÚ ZIP_DEFLATEDÚ ZIP_BZIP2ÚZIP_LZMAÚ is_zipfileÚZipInfoÚZipFileÚ PyZipFileÚ LargeZipFilec@seZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©rrú,/opt/alt/python35/lib64/python3.5/zipfile.pyr+s c@seZdZdS)r N)rrrrrrrr /s ééééé ééé-é.é?s<4s4H2LHsPKééééééé z<4s4B4HL2L5H2LsPKé é é éééz <4s2B4HL2L2HsPKz<4sLQLsPKz <4sQ2H2L4QsPKc Cs-yt|ƒrdSWntk r(YnXdS)NTF)Ú _EndRecDataÚOSError)ÚfprrrÚ_check_zipfile§s   r-cCsid}yJt|dƒr*td|ƒ}n%t|dƒ�}t|ƒ}WdQRXWntk rdYnX|S)NFÚreadr,Úrb)Úhasattrr-Úopenr+)ÚfilenameÚresultr,rrrr ¯s cCsoy|j|tdƒWntk r0|SYnX|jtƒ}t|ƒtkrV|Stjt|ƒ\}}}}|tkr„|S|dksœ|dkr¨t dƒ‚|j|tt dƒ|jt ƒ}t|ƒt krå|Stjt |ƒ\ }}} } } } } }}}|t kr%|S||t <| |t<| |t<| |t<||t<||t<||t<|S)Nrrrz3zipfiles that span multiple disks are not supported)ÚseekÚsizeEndCentDir64Locatorr+r.ÚlenÚstructÚunpackÚ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ÚsigZdisknoZreloffZdisksZszÚcreate_versionZ read_versionZdisk_numZdisk_dirZdircountZ dircount2ZdirsizeZ diroffsetrrrÚ _EndRecData64¿s6    0        rKc CsÑ|jddƒ|jƒ}y|jt dƒWntk rIdSYnX|jƒ}t|ƒtkrá|dd…tkrá|dd…dkrátjt |ƒ}t |ƒ}|j dƒ|j |tƒt |t |ƒSt |d tdƒ}|j|dƒ|jƒ}|jtƒ}|dkrÍ|||t…}t|ƒtkrYdSt tjt |ƒƒ}|t}||t|t|…}|j |ƒ|j ||ƒt |||||ƒSdS) Nrrrsórréþÿÿÿi)r4ÚtellÚsizeEndCentDirr+r.r6ÚstringEndArchiver7r8ÚstructEndArchiveÚlistÚappendrKÚmaxÚrfindÚ_ECD_COMMENT_SIZE) rEZfilesizerHrGZmaxCommentStartÚstartZrecDataZ commentSizeÚcommentrrrr*ês>          r*c@s[eZdZd#Zdd$dd„Zdd„Zddd„Zdd „Zd!d"„ZdS)%r Ú orig_filenamer2Ú date_timeÚ compress_typerXÚextraÚ create_systemrJÚextract_versionÚreservedÚ flag_bitsÚvolumeÚ internal_attrÚ external_attrÚ header_offsetÚCRCÚ compress_sizeÚ file_sizeÚ _raw_timeZNoNameé¼rrcCs||_|jtdƒƒ}|dkr:|d|…}tjdkrmtj|krm|jtjdƒ}||_||_|ddkr›tdƒ‚t |_ d|_ d|_ t jdkrÑd|_n d|_t|_t|_d|_d|_d|_d|_d|_dS)Nrú/i¼z+ZIP does not support timestamps before 1980rLÚwin32r)rYÚfindÚchrÚosÚsepÚreplacer2rZÚ ValueErrorrr[rXr\ÚsysÚplatformr]ÚDEFAULT_VERSIONrJr^r_r`rarbrc)Úselfr2rZZ null_byterrrÚ__init__@s.                zZipInfo.__init__cCs;d|jj|jfg}|jtkrN|jdtj|j|jƒƒ|jd?}|jd@}|rˆ|jdt j |ƒƒ|rŸ|jd|ƒ|jd d…dk}| sÈ|j rÜ|jd |j ƒ| sì|j r!|jtks |j |j kr!|jd |j ƒ|jd ƒd j |ƒS)Nz<%s filename=%rz compress_type=%sriÿÿz filemode=%rz external_attr=%#xrrjz file_size=%rz compress_size=%rú>Úéÿÿÿÿ)Ú __class__rr2r[rrSÚcompressor_namesÚgetrcÚstatÚfilemodergrfÚjoin)rur3ÚhiÚloÚisdirrrrÚ__repr__js(     zZipInfo.__repr__NcCs|j}|ddd>|dd>B|dB}|dd>|d d>B|ddB}|jd @rsd}}}n|j}|j}|j}|j}d} |dkrÁ|tkp¾|tk}|rùd } |tj| dtj | ƒd ||ƒ}|tks|tkr5|s#t d ƒ‚d }d }t } |j t krVtt| ƒ} n|j tkrttt| ƒ} t| |jƒ|_t| |jƒ|_|jƒ\} } tjtt|j|j| |j |||||t| ƒt|ƒƒ } | | |S)Nri¼r#rr rrr%rrz[^\r\n]+)|(?P\n|\r\n?)NFcCsñ||_||_||_|j|_|j|_|j|_t |jƒ|_ d|_ d|_ d|_ d|k|_d|_|jdk r¢|jd8_||_|j|_t|dƒrä|j|_tdƒ|_n d|_dS)NFrLrÚUrre)Ú_fileobjÚ _decrypterÚ_close_fileobjr[Ú_compress_typerfÚ_compress_leftrgÚ_leftrÛÚ _decompressorÚ_eofÚ _readbufferÚ_offsetÚ _universalÚnewlinesÚmoder2Únamer0reÚ _expected_crcÚcrc32Ú _running_crc)rurær÷ÚzipinfoZ decrypterZ close_fileobjrrrrvÄs(             zZipExtFile.__init__cCs¡d|jj|jjfg}|jsz|jd|j|jfƒ|jtkr‡|jdt j |j|jƒƒn |jdƒ|jdƒdj |ƒS)Nz<%s.%sz name=%r mode=%rz compress_type=%sz [closed]rwrx) rzrrÚclosedrSrør÷rîrr{r|r)rur3rrrrƒås      zZipExtFile.__repr__cCs |j ra|dkra|jjd|jƒd}|dkra|j|j|…}||_|S|js}tjj||ƒSd}x|dks¤t|ƒ|kr›|jdƒ}|dkrÃ|S|j j |ƒ}|j dƒ}|dk rD|j dkrg|_ ||j kr'|j j |ƒ|jt|ƒ7_|dS|j dƒ}|dkry|d|t|ƒ…}|jt|ƒ7_||7}q†W|S)Nrs rrLrÚnewlineÚchunk)rõrórlrôÚioÚBufferedIOBaseÚreadliner6ÚpeekÚPATTERNÚsearchÚgrouprörS)ruÚlimitr§ÚlineZ readaheadÚmatchrþrÿrrrrós8   !     zZipExtFile.readlinecCs™|t|jƒ|jkr~|j|ƒ}t|ƒ|jkri||j|jd…|_d|_n|jt|ƒ8_|j|j|jd…S)Nri)r6rórôr.)rurårÿrrrr%s zZipExtFile.peekcCsdS)NTr)rurrrÚreadable2szZipExtFile.readablecCsm|dks|dkrj|j|jd…}d|_d|_x#|jse||j|jƒ7}qCW|S||j}|t|jƒkr¯|j|j|…}||_|S|t|jƒ}|j|jd…}d|_d|_x||dkrh|j rh|j|ƒ}|t|ƒkrK||_||_||d|…7}P||7}|t|ƒ8}qíW|S)NrrL)rórôròÚ_read1ÚMAX_Nr6)ruråÚbufÚendrHrrrr.5s4          zZipExtFile.readcCsZ|jdkrdSt||jƒ|_|jrV|j|jkrVtd|jƒ‚dS)NzBad CRC-32 for file %r)rùrúrûròrrø)ruÚnewdatarrrÚ _update_crcVs zZipExtFile._update_crccCsp|dks|dkrw|j|jd…}d|_d|_x0|jsr|j|jƒ}|rC||7}PqCW|S||j}|t|jƒkr¼|j|j|…}||_|S|t|jƒ}|j|jd…}d|_d|_|dkrlxf|jsk|j|ƒ}|t|ƒkrW||_||_||d|…7}P|r||7}PqW|S)NrrL)rórôròr r r6)rurår rHrrrrÚread1`s>             zZipExtFile.read1cCsš|js|dkrdS|jtkrf|jj}|t|ƒkru||j|t|ƒƒ7}n|j|ƒ}|jtkr™|jdk|_n°|jtkrt ||j ƒ}|jj ||ƒ}|jj pô|jdkoô|jj |_|jrI||jj ƒ7}n0|jj |ƒ}|jj pC|jdk|_|d|j…}|jt|ƒ8_|jdkr‰d|_|j|ƒ|S)NrrLT)ròrîrrñÚunconsumed_tailr6Ú_read2rrïrTÚ MIN_READ_SIZErÇrÆrÂrðr)rurårHrrrr …s2      zZipExtFile._read1cCs•|jdkrdSt||jƒ}t||jƒ}|jj|ƒ}|jt|ƒ8_|sjt‚|jdk r‘t t |j|ƒƒ}|S)NrrL) rïrTrÚminrër.r6ÚEOFErrorrìÚbytesÚmap)rurårHrrrr©szZipExtFile._read2c s/z|jr|jjƒWdtƒjƒXdS)N)rírërãÚsuper)ru)rzrrrã¹s zZipExtFile.closeéi@ryry)rrrr rÚreÚcompilerrvrƒrrr r.rrr rrãrr)rzrré¶s  2 ! % $ réc@s–eZdZdZdZdeddd„Zdd„Zdd „Zd d „Z d d „Z dd„Z dd„Z ddd„Z dd„Zdd„Zdd„Zedd„ƒZejdd„ƒZddd„Zdddd „Zddd!d"„Zdddd#d$„Zed%d&„ƒZd'd(„Zd)d*„Zddd+d,„Zdd-d.„Zd/d0„Zd1d2„Zd3d4„Z d5d6„Z!dS)7r NÚrTcCsà|dkrtdƒ‚t|ƒ||_d|_d|_i|_g|_||_||_d|_ d|_ t |t ƒr#d|_ ||_dd dd dd dd d d d d d di}||}xyytj||ƒ|_Wn.tk r||kr||}wÑ‚YnXPqÑWn'd|_ ||_t|ddƒ|_d|_tjƒ|_d|_yD|dkr‡|jƒn'|dkr/d|_y|jjƒ|_Wn<ttfk rðt|jƒ|_d|_d|_Yq®Xy|jj|jƒWq®ttfk r+d|_Yq®Xn|dkr¢y!|jƒ|jj|jƒWq®tk rž|jjddƒd|_|jjƒ|_Yq®Xn tdƒ‚Wn*|j}d|_|j |ƒ‚YnXdS)NrÚwÚxÚaz+ZipFile requires mode 'r', 'w', 'x', or 'a'FrrLr/zw+bzx+bzr+bÚwbÚxbrrøTrz"Mode must be 'r', 'w', 'x', or 'a')rrrr )rr)!rœrÒÚ _allowZip64Ú _didModifyÚdebugÚ NameToInfoÚfilelistrÑr÷r²Ú_commentÚ isinstanceÚstrÚ _filePassedr2rr1r,r+ÚgetattrÚ _fileRefCntÚ threadingÚRLockràÚ _seekableÚ_RealGetContentsrNÚ start_dirÚAttributeErrorrçr4rÚ_fpclose)rurár÷rÑÚ allowZip64ZmodeDictr~r,rrrrvÕs|                                  zZipFile.__init__cCs|S)Nr)rurrrÚ __enter__)szZipFile.__enter__cCs|jƒdS)N)rã)ruÚtypeÚvalueÚ tracebackrrrÚ__exit__,szZipFile.__exit__cCs¯d|jj|jjfg}|jdk rˆ|jrN|jd|jƒn#|jdk rq|jd|jƒ|jd|jƒn |jdƒ|jdƒdj|ƒS)Nz<%s.%sz file=%rz filename=%rz mode=%rz [closed]rwrx) rzrrr,r+rSr2r÷r)rur3rrrrƒ/s    zZipFile.__repr__cCs–|j}yt|ƒ}Wntk r9tdƒ‚YnX|sLtdƒ‚|jdkret|ƒ|t}|t}|t|_ |t ||}|t t kr¶|t t8}|jdkrâ||}td|||ƒ|||_|j|jdƒ|j|ƒ}tj|ƒ}d}xi||kr‘|jtƒ} t| ƒtkrbtdƒ‚tjt| ƒ} | ttkr�tdƒ‚|jdkr©t| ƒ|j| tƒ} | d} | d @râ| jd ƒ} n| jd ƒ} t| ƒ} |j| tƒ| _|j| t ƒ| _!| t"| _#| dd …\ | _$| _%| _&| _'| _(| _)} }| _*| _+| _,| j&t-kr¨t.d | j&dƒ‚| dd…\| _/| _0| _1| | _2|d?d|d?d@|d@| d?| d?d@| d@df| _3| j4ƒ| j#|| _#|j5j6| ƒ| |j7| j8<|t| t| t| t }|jdkr)td|ƒq)WdS)NzFile is not a zip filerrzgiven, inferred, offsetrzTruncated central directoryz&Bad magic number for central directoryr izutf-8Úcp437rzzip file version %.1fr$r'r)r#i¼rr%rÚtotal)9r,r*r+rr%ÚprintrCrDÚ _ECD_COMMENTr(Ú _ECD_LOCATIONr>r=r;r5r2r4r.rÚBytesIOÚsizeCentralDirr6r7r8ÚstructCentralDirÚ _CD_SIGNATUREÚstringCentralDirÚ_CD_FILENAME_LENGTHÚdecoder Ú_CD_EXTRA_FIELD_LENGTHr\Ú_CD_COMMENT_LENGTHrXÚ_CD_LOCAL_HEADER_OFFSETrdrJr]r^r_r`r[rerfrgÚMAX_EXTRACT_VERSIONrÚrarbrcrhrZr¡r'rSr&r2)rur,rGZsize_cdZ offset_cdÚconcatZinferredrHr<Úcentdirr2ÚflagsrÚtÚdrrrr1=sp                L" & "zZipFile._RealGetContentscCsdd„|jDƒS)NcSsg|]}|j‘qSr)r2)Ú.0rHrrrú �s z$ZipFile.namelist..)r')rurrrÚnamelist‹szZipFile.namelistcCs|jS)N)r')rurrrÚinfolist�szZipFile.infolistcCsftdd d|ƒxK|jD]@}d|jdd…}td|j||jfd|ƒqWdS) Nz%-46s %19s %12sú File Nameú Modified ÚSizeráz%d-%02d-%02d %02d:%02d:%02dr!z %-46s %s %12d)rTrUrV)r=r'rZr2rg)ruráÚzinfoZdaterrrÚprintdir”s  zZipFile.printdircCssd}xf|jD][}y9|j|jdƒ�}x|j|ƒrFq4WWdQRXWqtk rj|jSYqXqWdS)Nrrri)r'r1r2r.r)ruZ chunk_sizerWÚfrrrÚtestzip�s zZipFile.testzipcCs2|jj|ƒ}|dkr.td|ƒ‚|S)Nz(There is no item named %r in the archive)r&r|ÚKeyError)rurøÚinforrrÚgetinfoªs   zZipFile.getinfocCsK|r,t|tƒ r,tdt|ƒƒ‚|r>||_n d|_dS)Nzpwd: expected bytes, got %s)r)rÚ TypeErrorr7r²)rur²rrrÚ setpassword³s  zZipFile.setpasswordcCs|jS)N)r()rurrrrX¼szZipFile.commentcCs€t|tƒs%tdt|ƒƒ‚t|ƒtkrjddl}|jdtddƒ|dt…}||_d|_ dS)Nzcomment: expected bytes, got %srz3Archive comment is too long; truncating to %d bytesÚ stacklevelrT) r)rr^r7r6ÚZIP_MAX_COMMENTÚwarningsÚwarnr(r$)rurXrbrrrrXÁs   c Cs-|j|d|ƒ�}|jƒSWdQRXdS)Nr)r1r.)rurør²r,rrrr.Îsz ZipFile.readc Csë|dkrtdƒ‚d|krCddl}|jdtdƒ|rot|tƒ rotdt|ƒƒ‚|js„td ƒ‚t|t ƒrœ|}n|j |ƒ}|j d 7_ t |j|j |j|jƒ}yô|jtƒ}t|ƒtkr td ƒ‚tjt|ƒ}|ttkr9td ƒ‚|j|tƒ}|trg|j|tƒ|jd @r€tdƒ‚|jd@r™tdƒ‚|jd@r¸|jdƒ} n|jdƒ} | |jkrïtd|j|fƒ‚|jd @} d} | r¸|s|j}|s-td|ƒ‚t |ƒ} |jdƒ} t!t"| | dd…ƒƒ} |jd@rˆ|j#d?d@}n|j$d?d@}| d|kr¸td|ƒ‚t%|||| dƒSWn|j&ƒ‚YnXdS)NrrêÚrUz&open() requires mode "r", "U", or "rU"rz'U' mode is deprecatedrzpwd: expected bytes, got %sz3Attempt to read ZIP archive that was already closedrzTruncated file headerz Bad magic number for file headeré z$compressed patched data (flag bit 5)é@zstrong encryption (flag bit 6)izutf-8r;z/File name in directory %r and header %r differ.z6File %s is encrypted, password required for extractionrrr«r˜r%zBad password for fileT)rrêrd)'rœrbrcÚDeprecationWarningr)rr^r7r,r r]r-rÜrdr4ràr.ÚsizeFileHeaderr6rr7r8r‹Ú _FH_SIGNATURErŒÚ_FH_FILENAME_LENGTHÚ_FH_EXTRA_FIELD_LENGTHr`rÚrFrYr²r£rRrrhrerérã)rurør÷r²rbrWZzef_fileZfheaderÚfnameZ fname_strZ is_encryptedZzdr“ÚhZ check_byterrrr1Ósr         !              z ZipFile.opencCsIt|tƒs|j|ƒ}|dkr6tjƒ}|j|||ƒS)N)r)r r]rnÚgetcwdÚ_extract_member)ruÚmemberÚpathr²rrrÚextract+s   zZipFile.extractcCs@|dkr|jƒ}x!|D]}|j|||ƒqWdS)N)rRrr)rurqÚmembersr²rürrrÚ extractall9s   zZipFile.extractallcCs…|j}|s:d}tj|dt|ƒƒ}||_|j|ƒ}dd„|j|ƒDƒ}|jdd„|Dƒƒ}|S)Nz:<>|"?*Ú_css|]}|jdƒVqdS)Ú.N)Úrstrip)rPrrrrú Osz1ZipFile._sanitize_windows_name..css|]}|r|VqdS)Nr)rPrrrrrxQs)Ú!_windows_illegal_name_trans_tabler*Ú maketransr6Ú translateÚsplitr)ÚclsÚarcnameÚpathsepr¦ZillegalrrrÚ_sanitize_windows_nameEs  zZipFile._sanitize_windows_namecs¸|jjdtjjƒ}tjjrE|jtjjtjjƒ}tjj|ƒd}dtjjtjjf‰tjjj ‡fdd†|j tjjƒDƒƒ}tjjdkr×|j |tjjƒ}tjj ||ƒ}tjj |ƒ}tjj |ƒ}|r6tjj|ƒ r6tj|ƒ|jd dkrltjj|ƒshtj|ƒ|S|j|d|ƒ�0}t|dƒ�}tj||ƒWdQRXWdQRX|S) Nrjrrxc3s!|]}|ˆkr|VqdS)Nr)rPr)Úinvalid_path_partsrrrxbsz*ZipFile._extract_member..ú\r²r!ry)r2rprnrqroÚaltsepÚ splitdriveÚcurdirÚpardirrr|r€ÚnormpathÚdirnameÚexistsÚmakedirsr‚Úmkdirr1ÚshutilÚ copyfileobj)rurpZ targetpathr²r~Z upperdirsÚsourceÚtargetr)r�rroTs* 7  zZipFile._extract_membercCsé|j|jkr8ddl}|jd|jddƒ|jdkrStdƒ‚|jshtd ƒ‚t|jƒ|j såd}t |j ƒt kr¢d }n-|j tkrºd }n|jtkrÏd }|råt|d ƒ‚dS)NrzDuplicate name: %rr`rrrr z&write() requires mode 'w', 'x', or 'a'z4Attempt to write ZIP archive that was already closedz Files countZFilesizez Zipfile sizez would require ZIP64 extensions)rrr )r2r&rbrcr÷rœr,rÒr[r#r6r'ÚZIP_FILECOUNT_LIMITrgr„rdr )rurWrbÚrequires_zip64rrrÚ _writecheck{s(        zZipFile._writecheckcCs£|jstdƒ‚tj|ƒ}tj|jƒ}tj|jƒ}|dd…}|dkrj|}tj j tj j |ƒdƒ}x0|dtj tj fkr¾|dd…}q�W|rÏ|d7}t||ƒ}|dd@d>|_|rt|_n$|dkr |j|_n ||_|j|_d|_|j�U|jrd|jj|jƒ|jjƒ|_|jtkr”|jdO_|j|ƒd |_|r)d|_d|_d|_ |jdO_|j!j"|ƒ||j#|j$<|jj%|j&d ƒƒ|jjƒ|_dSt'|jƒ} |jsP|jd O_t(|d ƒ�Í} d|_ } d|_} |j)o•|jd t*k} |jj%|j&| ƒƒd}xn| j+dƒ}|sÐP|t,|ƒ}t-|| ƒ} | r| j.|ƒ}| t,|ƒ} |jj%|ƒqºWWdQRX| rm| j/ƒ}| t,|ƒ} |jj%|ƒ| |_n ||_| |_ ||_|jd @rç| r¡dnd}|jj%t0j1||j |j|jƒƒ|jjƒ|_n‘| r'|j)r'|t*krtdƒ‚| t*kr'tdƒ‚|jjƒ|_|jj|jƒ|jj%|j&| ƒƒ|jj|jƒ|j!j"|ƒ||j#|j$|dd>B|dB}|dd>|d d>B|ddB}g}|jtks‰|jtkr¸|j|jƒ|j|jƒd }d }n|j}|j}|jtkrò|j|jƒd }n |j}|j} d} |rJtj d d t |ƒdd t |ƒ|Œ| } t } |j t krktt| ƒ} n|j tkr‰tt| ƒ} t| |jƒ} t| |jƒ} y…|jƒ\} }tj tt| |j| |j||j |||j||t | ƒt | ƒt |jƒd|j|j|ƒ}Wn‘tk rÅttt| |j| |j|j|j |||j||t |j ƒt | ƒt |jƒd|j|j|fdt!j"ƒ‚YnX|j#j$|ƒ|j#j$| ƒ|j#j$| ƒ|j#j$|jƒq W|j#j%ƒ}t |jƒ}||j&}|j&}d}|t'kr\d}n'|tkrqd}n|tkrƒd}|r7|j(s¢t)|dƒ‚tj t*t+ddddd||||ƒ }|j#j$|ƒtj t,t-d|dƒ}|j#j$|ƒt.|dƒ}t.|d ƒ}t.|d ƒ}tj t/t0dd||||t |j1ƒƒ }|j#j$|ƒ|j#j$|j1ƒ|j#j2ƒdS)Nri¼r#rr rrr%rlÿÿz._compilez.pyz.pycÚ optimizationrxrrz"invalid value for 'optimize': {!r}r¦z%s/%sryry)Ú importlibÚutilÚcache_from_sourcer¥rnrqrªr}r—rrrMr¦Úformatrqr|) rur°r±r»Zfile_pyZfile_pycZ pycache_opt0Z pycache_opt1Z pycache_opt2r~rlr¹Z archivenamer)rurr«s`  $ $ $ $          $ zPyZipFile._get_codenamery)rrrrrvr¯r«rrrrr ºs Qc s«ddl}|jdƒ}|dkr:tjdd…}| sQ|ddkrht|ƒtjdƒ|ddkrËt|ƒdkr¡t|ƒtjdƒt|dd ƒ�}|jƒWdQRXnÜ|ddkrSt|ƒdkrt|ƒtjdƒt|dd ƒ�}|j ƒ}WdQRX|rFtd j |ƒƒtd ƒnT|ddkr½t|ƒd krŒt|ƒtjdƒt|dd ƒ�}|j |dƒWdQRXnê|ddkr§t|ƒd kröt|ƒtjdƒ‡fd d†‰t|ddƒ�‰}x|dd…D]m}t j j|ƒ}|skt j jt j j|ƒƒ}|dt jt jfkrŒd}ˆ|||ƒq/WWdQRXdS)NraE 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 rú-lú-cú-eú-trrz.The following enclosed file is corrupted: {!r}z Done testingrcsœtjj|ƒr(|j||tƒnptjj|ƒr˜|rP|j||ƒxEtj|ƒD]4}ˆ|tjj||ƒtjj||ƒƒq`WdS)N)rnrqrªrèrr‚r¬r)ÚzfrqÚzippathZnm)ÚaddToZiprrrÇ•szmain..addToZiprrx)rÁrÂrÃrÄ)ÚtextwrapÚdedentrrÚargvr=Úexitr6r rXrZrÀrtrnrqr±rˆr…r†)ÚargsrÈZUSAGErÅZbadfilerqrÆr)rÇrÚmaingsT               rÍÚ__main__)|rrnrÚimportlib.utilr½rrr•r}rŒr7Zbinasciir.Ú ImportErrorÚdummy_threadingrÏrúrÐr»Ú__all__Ú Exceptionrr rrr„r�rarrrrrtr‡rˆr‰rJrQrPr†rOr>r?r@rArBrCrDrVr>r?rBrDrArCZ_CD_CREATE_VERSIONZ_CD_CREATE_SYSTEMZ_CD_EXTRACT_VERSIONZ_CD_EXTRACT_SYSTEMZ _CD_FLAG_BITSZ_CD_COMPRESS_TYPEZ_CD_TIMEZ_CD_DATEZ_CD_CRCZ_CD_COMPRESSED_SIZEZ_CD_UNCOMPRESSED_SIZErErGrHZ_CD_DISK_NUMBER_STARTZ_CD_INTERNAL_FILE_ATTRIBUTESZ_CD_EXTERNAL_FILE_ATTRIBUTESrIr‹rŒrhriZ_FH_EXTRACT_VERSIONZ_FH_EXTRACT_SYSTEMZ_FH_GENERAL_PURPOSE_FLAG_BITSZ_FH_COMPRESSION_METHODZ_FH_LAST_MOD_TIMEZ_FH_LAST_MOD_DATEZ_FH_CRCZ_FH_COMPRESSED_SIZEZ_FH_UNCOMPRESSED_SIZErjrkr9r:r5r<r=r;Z_CD64_SIGNATUREZ_CD64_DIRECTORY_RECSIZEZ_CD64_CREATE_VERSIONZ_CD64_EXTRACT_VERSIONZ_CD64_DISK_NUMBERZ_CD64_DISK_NUMBER_STARTZ_CD64_NUMBER_ENTRIES_THIS_DISKZ_CD64_NUMBER_ENTRIES_TOTALZ_CD64_DIRECTORY_SIZEZ_CD64_OFFSET_START_CENTDIRr-r rKr*Úobjectr r£r·rÃr{rÒr×rÛrÜrçrrér r rÍrrrrrÚs,                         + =²=   ÿ ÿÿû­B