lKzSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK r SSK r SSK r SSK J r SSKJr SSKJr SSKJrJrJrJr SSKrSSKrSSKrSSKrSSKrSSKJrJrJr SSKrSr!\""\!SS 5r#S r$S r%S r&\R"5r'\%"\#\'\("\!55r)S r*Sr+Sr,Sr-Sr.Sr/\R`RcS5r2\R`RcS5r3\R`Ri\R`Rk\65S5r7\RpRs\*S-5r:Sr;"SS\ Rx5r="SS\=5r>\ R~"5"SS\>55r@"SS\ Rx5rAS rB\CS!:Xa\ R"5 gg!\ a SrGNGf=f)"N)support) import_helper) os_helper)ZipFileZipInfo ZIP_STORED ZIP_DEFLATED) extract_tb extract_stackprint_tbzHdef get_name(): return __name__ def get_file(): return __file__ execz def do_raise(): raise TypeError c[R"U5n[RR[ R "SS[U5S-US-5-U-nU$)Nz> & & FAJ,d[.@ B BDH IC JcBUR[RS5$)N.)replaceossep)paths rmodule_path_to_dotted_namer'/s << $$r ziptestmoduleziptestmodule2ziptestmodule3ziptestpackageziptestpackage2ziptestpackage3 junk95142z junk95142.zipzipimport_data.py.pycc \rSrSrSrSrSrg)ImportHooksBaseTestCaseDc[RSSUl[RSSUl[RSSUl[RR 5 [ R"5UlgN) sysr& meta_path path_hookspath_importer_cacheclearr modules_setupmodules_beforeselfs rsetUpImportHooksBaseTestCase.setUpFsTHHQK q)..+ %%'+99;r c(UR[RSS&UR[RSS&UR[RSS&[RR 5 [ R"UR6 gr6) r&r7r8r9r:r;rmodules_cleanupr=r>s rtearDown ImportHooksBaseTestCase.tearDownMs]ii >> a OOq %%'%%t':':;r )r8r=r&r9N)__name__ __module__ __qualname____firstlineno__r@rD__static_attributes__r rr3r3Ds <S;r?g)<UncompressedZipImportTestCaseUc[R"5 [RR 5 [ R U5 gr6) linecache clearcache zipimport_zip_directory_cacher;r3r@r>s rr@#UncompressedZipImportTestCase.setUpYs0 &&,,.%%d+r cUR[RU5 UR5GH#up4[ U[ 5(aUupT[ RR"U/URS5Q76nUS[ R:Xa>[ RRU5(d[ R"U5 MM[ RRU5n[ RRU5(d[ R"U5 [US5nURU5 SSS5 GM& g!,(df  GM9=f)N/wb) addCleanuprrmtreeitems isinstancetupler$r&joinsplitr%isdirmakedirsdirnameopenwrite) r?filesdirNamenamerrr&dnamefps rmakeTree&UncompressedZipImportTestCase.makeTree`s  (('2++-JD$&&" 77<<:$**S/:DBx266!ww}}T**KK%+-ww}}U++KK&$%HHTN&%(&%s :E E* N)comment file_commentstuffprefixc UR[RU5 [USURS9nUR XXFS9 UbX8lSSS5 Ub][US5n U R5n SSS5 [US5n U RU5 U RW 5 SSS5 gg!,(df  No=f!,(df  NX=f!,(df  g=f)Nw compressionrnrprbrX) rYrunlinkrrtwriteZiprmrcreadrd) r?rezipNamermrnrorpkwzfrs rmakeZip%UncompressedZipImportTestCase.makeZipss  (('2 Wct/?/? @A MM!M M"# A  gt$vvx%gt$ %$  A @%$$$s#B9'C  #C9 C C C)rucUR5HupV[U[5(aUupvO[nUR [ R S5n[XE-[R"U55nURUl UbX8l UcSUl URU5 MUSS:wdeURX5 M g)NrVrrW)r[r\r]NOWr#r$r%rtime localtimert compress_typermCRCmkdirwritestr) r?r|rernrprgrrzinfos rrx&UncompressedZipImportTestCase.writeZips++-JD$&&" t<<,DFM4>>%+@AE"&"2"2E ' , | Bx3& 5'(r cV[S5Vs0sHnSUS3[_M sn$s snf)Nir}r0)rangetest_src)r?ns r getZip64Files+UncompressedZipImportTestCase.getZip64Filess+.3El;l!A3c H$l;;;s&clSU;aSUS'UR"U40UD6 UR"U/UQ70UD6 g)Nrpzpre/fix/)r~doTestWithPreBuiltZip)r? expected_extremodulesr{s rdoTest$UncompressedZipImportTestCase.doTests< 2 %BxL U!b! ""<@'@R@r )callrpc[RR"[/UR S5SSQ76n[ RR SU5 [R"SRU55nUbU"U5 U(aEUR5nURU[RR"U/UQ76U-5 gg)NrVrWrr") r$r&r^TEMP_ZIPr_r7insertr import_moduleget_file assertEqual) r?rrrprr{zip_pathmodfiles rr3UncompressedZipImportTestCase.doTestWithPreBuiltZips77<<B6<<+D   T277<<$+")$+-9$: ; r cS[R;aURS5 S[R;a[RS S[0nUR SUS5 UR [:waURS5 gg![a* UR [:waURS5 ggf=f)Nzlibzzlib is a builtin modulezzlib.pyr0z"expected test to raise ImportErrorz&expected test to not raise ImportError) r7builtin_module_namesskipTestrrrrtrfail ImportErrorr r?res r testAFakeZlib+UncompressedZipImportTestCase.testAFakeZlibs& S-- - MM4 5 S[[  F#H% @ KKuf - :- >?.  D</ BC0 DsB/CCcP[S-[0nURSU[5 gNr0TESTMODrrrs rtestPy$UncompressedZipImportTestCase.testPys 5(+ E5'*r c`[[-[0nUR[U[5 gr6)rpyc_exttest_pycrrs rtestPyc%UncompressedZipImportTestCase.testPycs!7"H- GUG,r cz[S-[[[-[0nUR [U[5 gr)rrrrrrs rtestBoth&UncompressedZipImportTestCase.testBoths,5(7"H. GUG,r c^Sn[RRU5n[RR [ USS5US5n[ S-[S4[ S-[S- U40nU4S jnTRSU[ US 9 g) N state = 'old'???rFr0 state = 'new'r1c>>TRURS5 g)Noldrstaterr?s rcheckFUncompressedZipImportTestCase.testUncheckedHashBasedPyc..check   SYY .r r rr source_hash_bootstrap_external_code_to_hash_pyccompilerrrr?sourcerbytecoderers` rtestUncheckedHashBasedPyc7UncompressedZipImportTestCase.testUncheckedHashBasedPycs!nn008 00BB FE6 *    53"86!C"Hh#79 / D%u 5r z_imp.check_hash_based_pycsalwaysc^Sn[RRU5n[RR [ USS5US5n[ S-[S4[ S-[S- U40nU4S jnTRSU[ US 9 g) NrrrFr0rr1rc>>TRURS5 g)Nnewrrs rrOUncompressedZipImportTestCase.test_checked_hash_based_change_pyc..checkrr rrrs` r"test_checked_hash_based_change_pyc@UncompressedZipImportTestCase.test_checked_hash_based_change_pycs!nn008 00BB FE6 *    53"86!C"Hh#79 / D%u 5r cH[S-S0nURSU[5 g)Nr0rl)rrrs r testEmptyPy)UncompressedZipImportTestCase.testEmptyPys 5"% D%)r c[[5nUS==S-ss'[S-[[[-U0nUR SU[5 g)Nrr0 bytearrayrrrrr)r? badmagic_pycres r testBadMagic*UncompressedZipImportTestCase.testBadMagicsD * Q45(7"L2 E5'*r cz[[5nUS==S-ss'[[-U0nUR SU[5 UR S5 g![ RaPnURUR[5 URSURR5 SnAgSnAff=f)Nrrr0zThis should not be reachedz magic number) rrrrrrrRZipImportErrorassertIsInstance __cause__rassertInmsg)r?rreexcs r testBadMagic2+UncompressedZipImportTestCase.testBadMagic2 s * Q47"L1 = KKug . II2 3'' =  ! !#-- = MM.#--*;*; < < =s(AB:*AB55B:c[[5nUS==S-ss'[S-[[[-U0nUR SU[5 g)N r0r)r? badtime_pycres r testBadMTime*UncompressedZipImportTestCase.testBadMTimesF)  B45(7"K1 E5'*r c[[S[[55n[S-[[[ -U0nUR SU[5 g)Nrr0)rtest_colenrrrr)r?twenty_thirty_eight_pycres r test2038MTime+UncompressedZipImportTestCase.test2038MTimesB#+7Is8}"M5(7"$;= E5'*r c[[R-nUS-[-[U[ -[-[0nUR [U[[ 5 gN__init__)TESTPACKr$r%rrrr)r?packdirres r testPackage)UncompressedZipImportTestCase.testPackage&sGRVV#:%/7"W,h8 GUHg6r c[[R-nU[-[R-nUS-[-[ US-[-[ U[ -[-[ 0nUR[U[[[ 5 gr)rr$r% TESTPACK2rrrrr?rpackdir2res rtestSubPackage,UncompressedZipImportTestCase.testSubPackage,soRVV#Y&/:%/J&0(G#g-x9 GUHiAr c[[R-nU[-[R-nUSUSU[-[ -[ 0nUR[ U[[[5 gr6)rr$r%rrrrrrs rtestSubNamespacePackage5UncompressedZipImportTestCase.testSubNamespacePackage6s[RVV#Y&/$4G#g-x9 GUHiAr c [[R-nU[-[R-nU[-[R-nUSU[ -[ -[USUSU[ -[ -[U[-[ -[U[ -[ -[0nUSU[-[ -[USU[-[ -[U[ -[ -[0n[RRS5nURXF5 [nURXW5 [RR!SU5 [RR!SU5 ["R$"[5nUR'S[)UR*55 UR*upUR'[RR-[5U R/[R5S5 UR'SU R/[R5S5 ["R$"UR1[RS5SS5nUR'S[)UR*55 [3UR*5SR/S[R-5Sn UR'USSU 5 ["R$"SR5[[ 455nUR'SUR6R/[R5S5 ["R$"SR5[[455nUR'[RR-[5UR6R/[R5S5 SR5[[45n ["R$"U 5nUR'S[)UR*55 UR*upUR'[RR-[5U R/[R5S5 UR'SU R/[R5S5 ["R$"SR5U [ 455nUR'[RR-[5UR6R/[R5S 5 ["R$"SR5U [455nUR'[RR-[5UR6R/[R5S 5 ["R$"SR5U [455nUR'SUR6R/[R5S 5 g) N path1.ziprrr"rW)rr$r%r TESTPACK3rrrTESTMOD3TESTMOD2r&abspathr~TEMP_DIRrjr7rrrrr__path__basenamer_r#listr^__file__) r?rrpackdir3files1files2zip1zip2rp1p2mpathsubpkgs rtestMixedNamespacePackage7UncompressedZipImportTestCase.testMixedNamespacePackageAsiRVV#Y&/i'"&&04G#g-xDDW$w.X%/W$w. :4H$w.DX%/W$w. : ww{+ V" f# 4  4 %%h/ C -. ))(3RXXbff5Eb5IJ bhhrvv&6r&:;%%h&6&6rvvs&CCR&HI C -.S\\"1%++K"&&,@A!D #2.%%chh'/B&CD cll&8&8&@&DE%%chh(/C&DE ))(3++BFF3B7 98Y/0%%f- C -. ))(3RXXbff5Eb5IJ bhhrvv&6r&:;%%chh/@&AB ))(3++BFF3B7 9%%chh/A&BC ))(3++BFF3B7 9%%chh/A&BC cll&8&8&@&DEr cn [[R-nU[-[R-nU[-[R-nUSU[ -[ -[USUSU[ -[ -[U[-[ -[U[ -[ -[0n[RRS5nURXE5 USU[-[ -[USU[-[ -[U[ -[ -[0n[RRS5nURXg5 [RRSU5 [RRSU5 [R "[5nUR#S[%UR&55 UR&upUR#SU R)[R5S5 UR#SU R)[R5S5 [R "UR+[RS5SS5nUR#S[%UR&55 [-UR&5SR)S[R-5Sn UR#USSU 5 [R "SR/[[ 455nUR#SUR0R)[R5S 5 [R "SR/[[455nUR#SUR0R)[R5S 5 SR/[[45n [R "U 5nUR#S[%UR&55 UR&upUR#SU R)[R5S 5 UR#SU R)[R5S 5 [R "SR/U [ 455nUR#SUR0R)[R5S 5 [R "SR/U [455nUR#SUR0R)[R5S 5 [R "SR/U [455nUR#SUR0R)[R5S 5 g) Nrz path2.ziprrrr"rWr r r )rr$r%rr rrrr r&rr~rr7rrrrrrr_r#rr^r) r?rrrrrrrrrrrrs rtestNamespacePackage2UncompressedZipImportTestCase.testNamespacePackages"RVV#Y&/i'"&&04G#g-xDDW$w.X%/W$w. :ww{+ V"4H$w.DX%/W$w. : ww{+ V" 4  4 %%h/ C -. bhhrvv&6r&:; bhhrvv&6r&:;%%h&6&6rvvs&CCR&HI C -.S\\"1%++K"&&,@A!D #2.%%chh'/B&CD cll&8&8&@&DE%%chh(/C&DE cll&8&8&@&DE8Y/0%%f- C -. bhhrvv&6r&:; bhhrvv&6r&:;%%chh/@&AB cll&8&8&@&DE%%chh/A&BC cll&8&8&@&DE%%chh/A&BC cll&8&8&@&DEr c [[R-nU[-[R-nUS-[-[ US-[-[ U[ -[-[ S[-[ 0nURUSS9 [R"[5nURUR[5 URUR[55 [R "5 [R""S[$5 UR'[5nURUR)[5UR*5 SSS5 UR-S5nUR/U5 UR1UR2[R5 UR5UR2RS55 [6R8R;U5nUR2R=U5 URUR2R)S5UR*5 UR-[5n[6R8R;U5nUR2R=U5 URUR)[5UR*5 [6R>"[5R@Sn[RBRE[[5n URX5 UR5URUS-55 URURU[-55 UR5URU[ -55 U[ -n [GU 5n [6R>"U 5nURU [HRJ;5 URMURO[55 URMUROU 55 URUR)U 5UR*5 URPR2n URMU ROU 55 URU R)U 5UR*5 [R"[[R-[-5n URU R[5 URU RR[[R-5 g!,(df  GN=f)Nrspamspamrnignorer)*rr$r%rrrrr~rR zipimporterrrarchive assertTrue is_packagewarningscatch_warnings simplefilterDeprecationWarning load_module get_filenamer find_specassertIsNotNonerloader assertFalserrmodule_from_spec exec_modulerrr&r^r'r7r assertIsNone get_source__spec__rp)r?rrrezirspecexec_modexisting_pack_pathexpected_path_pathmod_pathmod_namer4zi2s rtestZipImporterMethods4UncompressedZipImportTestCase.testZipImporterMethodssRVV#Y&/:%/J&0(G#g-x'!8- U 1  " "8 , X.  h/0 $ $ &  ! !(,> ?..*C   R__X6 E '||F# T" dkk9+@+@A //78>>2248 ) 11&98;L;LM||H%nn--d3 $ 2CLLA&44X>GGJWW\\(H= +@ w';<=  g &9:; x''9:;g%-h7%%h/ CKK/0 "--12 "--12 2CLLA$$ &++H56 ,,X6 E##Hrvv$5$@A h/ X%67Y' &s 8A T44 Uc[[R-nU[-[R-nUS-[-[ US-[-[ U[ -[-[ S[-[ 0nURUSS9 [R"[5nURUR5R5UR55 UR5 URUR5R5UR55 S[-[ 0nURU5 [![SUR"S9nUR%XeSS9 SSS5 UR5 URUR5R5UR55 UR'S5nUR)U5 UR+UR,[R5 [R."[5 UR5 UR1UR55 UR3[R4R7UR855 UR3UR'S55 g!,(df  GNI=f) Nrr$r%r&spam2arsname_does_not_matter)rr$r%rrrrr~rRr(rr _get_fileskeysinvalidate_cachesupdaterrtrxr2r3rr4remover5r8rSgetr))r?rrrer;newfiler|r<s rtestInvalidateCaches2UncompressedZipImportTestCase.testInvalidateCachessRVV#Y&/:%/J&0(G#g-x'!8- U 1  " "8 , --/>  --/>W$h/ W Xs0@0@ AQ MM!7M ;B  --/>||G$ T" dkk9+@+@A (  ) )88<?B As J33 KcZ[[R-nU[-[R-nUS-[-[ US-[-[ U[ -[-[ S[-[ 0nURUSS9 [R"[5nURUR5R5UR55 [R"[5nURUR5R5UR55 S[-[ 0nURU5 [[SUR S9nUR#XvSS9 SSS5 UR%5 URUR5R5UR55 UR'S5nUR)U5 UR+UR,[R5 g!,(df  N=f)Nrr$r%r&rFrGrs)rr$r%rrrrr~rRr(rrrIrJrLrrtrxrKr2r3rr4) r?rrrer;rBrOr|r<s r*testInvalidateCachesWithMultipleZipimportsHUncompressedZipImportTestCase.testInvalidateCachesWithMultipleZipimports3sRVV#Y&/:%/J&0(G#g-x'!8- U 1  " "8 , --/>##H- )..0%**,?W$h/ W Xs0@0@ AQ MM!7M ;B  )..0%**,?}}W% T" dkk9+@+@AB As *H H*c [[R-nU[-[R-nUS-[-[ U[ -[-[ 0nURUSS9 [R"[[R-U-5nURUR[5 URURU5 URUR[55 [ R""5 [ R$"S[&5 UR)[5nURUR+[5UR,5 SSS5 UR/[5n[0R2R5U5nUR6R9U5 URUR6R+[5UR,5 UR;UR[[R-S-55 UR;UR[[R-[ -55 [[R-U-[-n[R"U5nUR/[ 5nUR=U5 UR?UR6[R5 UR;UR6R[ 55 [0R2R5U5n UR6R9U 5 URUR6R+[ 5U R,5 [[R-[ -n [AU 5n [0RB"U 5nURU [DRF;5 URIURK[55 URIURKU 55 URUR+U 5UR,5 URLn URIU RKU 55 URU R+U 5UR,5 g!,(df  GN[=f)Nrseggsr&r')'rr$r%rrrrr~rRr(rrr)rpr*r+r,r-r.r/r0r1rr2rrr6r4r7r5r3rr'rr7rr8r9 __loader__) r?rrrer;rr<pkg_pathrBload_modr@rAr4s r$testZipImporterMethodsInSubDirectoryBUncompressedZipImportTestCase.testZipImporterMethodsInSubDirectoryNsKRVV#Y&/J&0(G#g-x9 U 1  " "8bff#4w#> ? X. G,  i01  $ $ &  ! !(,> ?..+C   R__Y7 F' ||I&nn--d3 $ 11)>2248 )  KK $ $W -x/@/@ Brvv%/-h7%%h/ CKK/0 "-- 23 "--12 2CLLA &++H56 ,,X6 EK' &s A R?? ScUR[R[5 [ [S5nUR UlSn[ S[S555nURX#5 SSS5 [R"[5nURWURW55 URS[U55 g!,(df  Ne=f)Nrrz testdata.datc3$# UHov M g7fr6rK).0xs r .s/JqJszzipimporter object)rYrrwrrrtbytesrrrRr(rget_datarrepr)r?r|rgrr;s r testGetData)UncompressedZipImportTestCase.testGetDatas  (((3 Xs #q ,,AM!D/E#J//D JJt " $  " "8 , r{{401 *DH5$ #s AC C"cSn[[USS5[[U55n[[ -USS0nUR [ U[SS9 g)Nzif 1: # indent hack def get_file(): return __file__ if __loader__.get_data("some.data") != b"some data": raise AssertionError("bad data") r rz some.dataz some datarl)rp)rrrrrrr)r?srcrres rtestImporterAttr.UncompressedZipImportTestCase.testImporterAttrsP2 wsGV4c3s8D7"Ck+ GUGB 7r cBSn[S-U0nURU5 [RR S[ 5 [ R"[5nURURS5S5 UR[URS5 g)Nz[if 1: # indent hack def test(val): assert(val) return val r0rr F) rr~r7r&rrrrrtest assertRaisesAssertionError)r?rhrers rtestDefaultOptimizationLevel:UncompressedZipImportTestCase.testDefaultOptimizationLevelsx5#& U 8$%%g. !a(    nchh >r cN[S-[0nURSU[SS9 g)Nr0s6Some StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome Stuff)rorrs rtestImport_WithStuff2UncompressedZipImportTestCase.testImport_WithStuffs,5(+ E5'*  ,r cXUR[R"U5[5 gr6)rinspect getsourcer)r?modules rassertModuleSource0UncompressedZipImportTestCase.assertModuleSources **62H=r cb[S-[0nURSU[URS9 gNr0r)rrrrxrs r testGetSource+UncompressedZipImportTestCase.testGetSources*5(+ E5'0G0G Hr c[[[SS5[[ [55n[ S-[[ [ -U0nUR[ U[ URS9 g)Nr rr0r) rrrrrrrrrx)r?rres rtestGetCompiledSource3UncompressedZipImportTestCase.testGetCompiledSourcesQwx&93H N5(7"C) GUG$2I2I Jr cR[S-[SS0nURSU[US9 g)Nr0xyz.txtz>>> log.append(True) rr)r?callbackres r runDoctest(UncompressedZipImportTestCase.runDoctests,5(46 E5' 9r c/n[RSsn[l[R"SUS[5S9 U[lUR US/5 g!U[lf=fNrT)packagemodule_relativeglobs)doctestmastertestfilelocalsr)r?rwlog old_masters r doDoctestFile+UncompressedZipImportTestCase.doDoctestFiles^%,^^T" GN (   64h  (GN dV$(GNs A A+c:URUR5 gr6)rrr>s rtestDoctestFile-UncompressedZipImportTestCase.testDoctestFiles **+r c/n[R"SUS[5S9R5 UR US/5 gr)r DocFileTestrrunr)r?rwrs rdoDoctestSuite,UncompressedZipImportTestCase.doDoctestSuites< vt(  #% dV$r c:URUR5 gr6)rrr>s rtestDoctestSuite.UncompressedZipImportTestCase.testDoctestSuites ++,r cZUR5 [S5e![GanURRn[ US5SupEpgUR U[R55 [URS5SupEpgUR U[R55 [R"5n[USU5 URUR5R!["R$"5(aSOS55 SnAgSnAff=f)NzThis ought to be impossibler rz$ def do_raise(): raise TypeError z$ ^^^^^^^^^^^^^^^ )do_raisern Exception __traceback__tb_nextr r raise_srcstripr tb_frameioStringIOr r*getvalueendswithrhas_no_debug_ranges) r?rwetbr}lnorliness r doTraceback)UncompressedZipImportTestCase.doTracebacks @ OO $!!>? ?# ((B%b!,Q/LA!   T9??#4 5(a8;LA!   T9??#4 5 A RA  OOAJJL1111337   s D*C8D%%D*cb[S-[0nURSU[URS9 gr{)rrrrrs r testTraceback+UncompressedZipImportTestCase.testTracebacks*5), D%t/?/? @r zneed an unencodable filenamec.[RS-nUR[S-[0U5 [ R "U5R[5n[RRU5nURRU5 gNz.zipr0) rTESTFN_UNENCODABLEr~rrrRr(r2rrr6r4r7)r?filenamer<rs rtestUnencodable-UncompressedZipImportTestCase.testUnencodablesl//&8 gox0(;$$X.88Ann--d3 $r c[RS-nUR[S-[0U5 [ R "U5 UR[5 [ R "[R"U55 SSS5 UR[5 [ R "[[R"U555 SSS5 UR[5 [ R "[[R"U555 SSS5 g!,(df  N=f!,(df  Nq=f!,(df  g=fr) rTESTFNr~rrrRr(rm TypeErrorr$fsencoder memoryviewr?rs r testBytesPath+UncompressedZipImportTestCase.testBytesPaths##f, gox0(;h'   y )  ! !"++h"7 8*   y )  ! !)BKK,A"B C*   y )  ! !*R[[-B"C D* ) * ) ) ) ) )s$+D4&4E74E4 E E E$cN[S-[0nURSU[SS9 g)Nr0scommentrmrrs r testComment)UncompressedZipImportTestCase.testComment s$5(+ E5': >r cP[S-[0nURSU[SSS9 g)Nr0s@cruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftshi)rormrrs rtestBeginningCruftAndComment:UncompressedZipImportTestCase.testBeginningCruftAndComments&5(+ E5' Nr cT[S-[0nURSU[SS-S9 g)Nr0crrrs rtestLargestPossibleComment8UncompressedZipImportTestCase.testLargestPossibleComments)5(+ E5'4=3I Jr cJUR5nURSUS5 g)Nr0f6rrrs r testZip64'UncompressedZipImportTestCase.testZip64s ""$ E5$'r cNUR5nURSUSSS-S9 g)Nr0f65536rrrrrs rtestZip64CruftAndComment6UncompressedZipImportTestCase.testZip64CruftAndComments)""$ E5(DM4J Kr c<^^ [R"SSSS35 STRSS3n[RR [ U5n[R"U5nTR[R[5 U(GdTR[:wa[R"SS 5 TR[R[R5 [[RS 5nURS 5 UR[R R#55 UR%S[R&5 UR[R R#55 SSS5 [R("[RS 5 [+[S TRSS9m T R[RS5 T R-[/SS5[05 T R[RS5 SSS5 U4SjnTR[:Xa[3S[ S35 U"[5 GO.SnUVs/sH ov"U5U4PM nn[[S 5n[5U5HYup[U S5n UR%U [R65 URU R955 SSS5 M[ SSS5 [+[S5m TR;T R=S5R>S5 TR;T R9S5[0R#5SUS3S9 UU 4Sjn U "S5 U "S5 SSS5 TRASS5 g!,(df  GN3=f!,(df  GN=fs snf!,(df  GMB=f!,(df  N=f!,(df  Nn=f) N largefileztest generates files >rz# bytes and takes a long time to runsparse-zip64-cdz -0x*.partcpuz+test requires a lot of CPU for compression.rXsdata)rrrF)rtstrict_timestampsdata1z module.pyir r rrrdata2c >Sn[US5nSnUR5nUR[U55nU(dOXQ:waU(d[R R [STRSSUSS35n[R"[R RU5SS 9 [US 5n[S U5 URU5 OU(aUR5 SnMU(aUR5 SSS5 g!U(aUR5 ff=f!,(df  g=f) NsrvTrr-z#011xz.part)exist_okrXCreated)rctellryrr$r&r^ TEST_DATA_DIRrtrarbprintrdclose)rg empty_pager}partoffsetr part_fullnamer?s rmake_sparse_zip_partsOUncompressedZipImportTestCase.testZip64LargeFile..make_sparse_zip_partsQs) $%D)"%&VVXF#$66#j/#:D#' %#1'+46GGLL(5*89I9I!8LA+1%.)?5&M %'KK(* (F15%&,0 t+DD$))]$C $ 4 0#'$(JJL'+-#0  JJL9&%6  JJL 7&%s#D>C-D!D>!D;;D>> E z'Creating sparse parts to check in into :c[R"SU5=n(a[URS5SS9$[ SU<S35e)Nz-(0x[0-9a-f]{9})\.part$r )basezname=z does not fit expected pattern.)researchrgroup ValueError)rgms rextract_offsetHUncompressedZipImportTestCase.testZip64LargeFile..extract_offsetvsC "TRU5nTRURS5 TRURS5 g)Nrr)getinfor date_time assertGreater file_size)rgrr?r|s rassertDataEntryIUncompressedZipImportTestCase.testZip64LargeFile..assertDataEntrys9IIdOE$$U__6KL&&u Dr r0rw)!rrequiresrtr$r&r^rglobrYrrwrrrrcrdlinesepencodeseekSEEK_CURutimerrrrrsortedSEEK_SETryrrrr)r? parts_globfull_parts_globpre_built_zip_partsr}rrr offset_partsrpart_fnrrr|s` @rtestZip64LargeFile0UncompressedZipImportTestCase.testZip64LargeFiles $ZL1  "&d&6&6q%9C '',,}jA"ii8  (((3":-  A OOI,,i.>.> ?i&&-  ))+,{BKK0 ))+, . HHY%%z 2 ,,"'   (('2 K)>? (('2 )@:-? aPQ%h/ L=PPIK : %,%-@,A__Y11T935%5% E?OK(Lr4r rMc\rSrSr\rSrg)CompressedZipImportTestCaseirKN)rFrGrHrIr rtrJrKr rrrsKr rc\rSrSrSrSrSrSrSrSr \ R"\ RS5S 5rS rS rS rg )BadFileZipImportTestCaseicbUR[R[RU5 gr6)rmrRrr(rs rassertZipFailure)BadFileZipImportTestCase.assertZipFailures# )22#// ;r c&URS5 g)NAdfjdkFJKDFJjdklfjsrr>s r testNoFile#BadFileZipImportTestCase.testNoFiles 34r c&URS5 g)Nrlr r>s rtestEmptyFilename*BadFileZipImportTestCase.testEmptyFilenames b!r c *UR[[RS5 UR[[R[SS9 UR[[R[ [ R"[555 g)N)kwd)rmrrRr(rrr$rr>s r testBadArgs$BadFileZipImportTestCase.testBadArgss` )Y%:%:DA )Y%:%:GN )Y%:%:r{{734 6r c,URSS-5 g)NAir r>s rtestFilenameTooLong,BadFileZipImportTestCase.testFilenameTooLongs cEk*r c[R"[5 [R"[5 UR [5 gr6)rrwrcreate_empty_filerr>s r testEmptyFile&BadFileZipImportTestCase.testEmptyFiles,!##G, g&r zmode 000 not supported.c>[R"[5 [R"[[R S5n[R "U5 UR[R5n[R"[5 SSS5 [R"[S5 [R"[5 g!,(df  ND=f![R"[S5 [R"[5 f=f)Nri) rrwrr$rcO_CREATrrmrRrr(chmod)r?fdcms rtestFileUnreadable+BadFileZipImportTestCase.testFileUnreadables! WWWbjj# . & HHRL""9#;#;<%%g.= HHWe $   W % =< HHWe $   W %s$5C%;CC% C"C%%7Dc[R"[5 [[S5nUR S5 UR 5 UR [5 g)Nw+aaaaaaaaaaaaaaaaaaaaaa)rrwrrcrdrr)r?ris rtestNotZipFile'BadFileZipImportTestCase.testNotZipFiles?! '4     g&r cZ[R"[5 [[S5nUR [ R "SS55 UR S5 UR5 [R"[5n[R"5 [R"S[5 UR[UR S5 SSS5 UR[UR"S5 UR[UR$S5 UR[UR&S5 UR[UR(S5 UR[UR*S5 UR[UR,S5 UR[UR.S5 [R0nUR3UR%S55 [R"5 [R"S[5 URX2R S5 SSS5 URX2R*S5 UR[4UR,S5 URX2R.S5 URX2R(S5 [R6R95 g!,(df  GN=f!,(df  N=f![R6R95 f=f)Nr:z=IiPKaaaaaaaaaaaaaaaaaar'abc)rrwrrcrdrrrrRr(r,r-r.r/rmrr0 find_moduler2r7r+get_codercr9rr8OSErrorrSr;)r?rir|errors r_testBogusZipFile*BadFileZipImportTestCase._testBogusZipFiles! '4  T:./    ! !' * 3((*%%h0BC!!)Q]]DA+   i =   id ;   i =   it <   iT :   iT :   it <,,E   akk%0 1((*%%h0BC!!%>+   eZZ 7   gqzz5 9   e\\5 9   e\\5 9  * * 0 0 2-+*+*  * * 0 0 2s> L "=K'D4L 8K9 A=L ' K61L 9 LL L*rKN)rFrGrHrIrr!r$r(r,r0rrris_wasir7r<rErJrKr rrrsO;5"6 +' __W__&?@ &A &'3r rc8[R"[5 gr6)rrwrrKr rtearDownModulerIs Wr __main__)Er7r$rrrimportlib.utilrrrr unittest.mockr,rlr test.supportrrzipfilerrrr rRrPrrur tracebackr r r rrrrrrrr'rrrrrr rrr r&rrrr^rbrrrcache_from_sourcepyc_filerTestCaser3rM requires_zlibrrrIrFmainrKr rrUs   &">> 99  (GV , / % iik GS#h- 0       77??; ' 77??? + RWW__X68HI >> + +GeO <