grthtrhthjhtyjytjytkergtrhtrjytjerhrfh3 ct„j}ŸãA@s¸ddlZddlZddlZddlZddlZddlZyddlZ[dZWnek rZdZYnXyddl Z [ dZ Wnek r†dZ YnXyddl Z [ dZ Wnek r²dZ YnXyddl mZWnek rÜdZYnXyddlmZWnek �rdZYnXdddd d d d d dddddddddddddddddgZGdd„deƒZGd d„deƒZGd!d„deƒZGd"d„deƒZGd#d$„d$eƒZGd%d&„d&eƒZd…d)d„Zd*d+„Zdd,œd-d„Zdd,œd.d„Zeed/ƒ�rêdd,œd0d1„Znd2d1„Zdd,œd3d „Z dd,œd4d „Z!dd,œd5d „Z"d6d„Z#dde"dfd7d „Z$d8d9„Z%d:d;„Z&ej'ejej(ej)hej*k�ozej+ej,k�ozejej-kZ.d†d„Z1e"fd?d „Z2d@dA„Z3dBdC„Z4dDdE„Z5d‡dGdH„Z6dˆdIdJ„Z7dKe6d‰gdMfiZ8e�re6dŠgdNfe8dO<e7gdPfe8dQ<e �re6d‹gdSfe8dT<e �r,e6dŒgdVfe8dW<dXd„Z9d�dZd„Z:d[d„Z;dŽd\d„Zd�d`d„Z?dad„Z@dbdc„ZAddde„ZBddfœdgdh„ZCdigeCgdMfdjgeBgdPfdkœZDe�rÈdldmgeCgdNfeDdO<e �râdndogeCgdSfeDdT<e �rüdpdqgeCgdVfeDdW<drds„ZEd�ddfœdtd„ZFeeduƒ�rXejGdvƒejHdwdxƒZIdyeIjJ_KdzeIjL_Kd{eIjM_Kd|dv„ZNn2ejOd}k�rŠddlPZPejGdvƒejHdwdxƒZId~dv„ZNd‘dd„ZQd“d‚d„ZRejSejTBdfdƒd„ZUdS)”éNTF)Úgetpwnam)ÚgetgrnamÚ copyfileobjÚcopyfileÚcopymodeÚcopystatÚcopyÚcopy2ÚcopytreeÚmoveÚrmtreeÚErrorÚSpecialFileErrorÚ ExecErrorÚ make_archiveÚget_archive_formatsÚregister_archive_formatÚunregister_archive_formatÚget_unpack_formatsÚregister_unpack_formatÚunregister_unpack_formatÚunpack_archiveÚignore_patternsÚchownÚwhichÚget_terminal_sizeÚ SameFileErrorc@s eZdZdS)r N)Ú__name__Ú __module__Ú __qualname__©r r ú/usr/lib64/python3.6/shutil.pyr 7sc@s eZdZdS)rN)rrrr r r r!r:sc@s eZdZdS)rN)rrrr r r r!r=sc@s eZdZdS)rN)rrrr r r r!rAsc@s eZdZdS)Ú ReadErrorN)rrrr r r r!r"Dsr"c@s eZdZdS)Ú RegistryErrorN)rrrr r r r!r#Gsr#éicCs$x|j|ƒ}|sP|j|ƒqWdS)N)ÚreadÚwrite)ÚfsrcÚfdstZlengthZbufr r r!rLs  c CsXttjdƒr0ytjj||ƒStk r.dSXtjjtjj|ƒƒtjjtjj|ƒƒkS)NÚsamefileF)ÚhasattrÚosÚpathr)ÚOSErrorÚnormcaseÚabspath)ÚsrcÚdstr r r!Ú _samefileTs r2)Úfollow_symlinkscCsÈt||ƒrtdj||ƒƒ‚xL||gD]@}ytj|ƒ}Wntk rJYq$Xtj|jƒr$td|ƒ‚q$W| rŽtj j |ƒrŽtj tj |ƒ|ƒn6t |dƒ�&}t |dƒ�}t||ƒWdQRXWdQRX|S)Nz{!r} and {!r} are the same filez`%s` is a named pipeÚrbÚwb)r2rÚformatr+Ústatr-ÚS_ISFIFOÚst_moderr,ÚislinkÚsymlinkÚreadlinkÚopenr)r0r1r3ÚfnÚstr'r(r r r!r`s    cCsz| r>tjj|ƒr>tjj|ƒr>ttdƒr8tjtj}}q\dSnttdƒrXtjtj}}ndS||ƒ}||tj|j ƒƒdS)NÚlchmodÚchmod) r+r,r:r*Úlstatr@r7rAÚS_IMODEr9)r0r1r3Z stat_funcZ chmod_funcr?r r r!r}s  Ú listxattrcCs¼ytj||d�}Wn4tk rF}z|jtjtjfkr8‚dSd}~XnXxn|D]f}y&tj|||d�}tj||||d�WqNtk r²}z|jtjtjtjfkr¢‚WYdd}~XqNXqNWdS)N)r3) r+rDr-ÚerrnoÚENOTSUPZENODATAÚgetxattrÚsetxattrZEPERM)r0r1r3ÚnamesÚeÚnameÚvaluer r r!Ú _copyxattr“s  rMcOsdS)Nr )ÚargsÚkwargsr r r!rMªsc s6dddœdd„‰|p,tjj|ƒo*tjj|ƒ }|r@‡fdd„}n ‡fdd„}|dƒ||d�}tj|jƒ}|d ƒ||j|jf|d�y|d ƒ|||d�Wntk r¬YnXt |d ƒ�r$y|d ƒ||j |d�WnPt k �r"}z2x*dD] }t t |ƒrì|j t t |ƒkrìPqìW‚WYdd}~XnXt|||d�dS)N)Únsr3cWsdS)Nr )rPr3rNr r r!Ú_nop¸szcopystat.._nopcs tt|ˆƒS)N)Úgetattrr+)rK)rQr r!Úlookup¿szcopystat..lookupcstt|ˆƒ}|tjkr|SˆS)N)rRr+Úsupports_follow_symlinks)rKr>)rQr r!rSÄs  r7)r3ÚutimerAÚst_flagsZchflagsÚ EOPNOTSUPPrF)rWrF)r+r,r:r7rCr9Ú st_atime_nsÚ st_mtime_nsÚNotImplementedErrorr*rVr-rErRrM) r0r1r3ZfollowrSr?ÚmodeÚwhyÚerrr )rQr!r­s,      cCsBtjj|ƒr"tjj|tjj|ƒƒ}t|||d�t|||d�|S)N)r3)r+r,ÚisdirÚjoinÚbasenamerr)r0r1r3r r r!rçs cCsBtjj|ƒr"tjj|tjj|ƒƒ}t|||d�t|||d�|S)N)r3)r+r,r^r_r`rr)r0r1r3r r r!r ùs cs‡fdd„}|S)Ncs,g}xˆD]}|jtj||ƒƒq Wt|ƒS)N)ÚextendÚfnmatchÚfilterÚset)r,rIÚ ignored_namesÚpattern)Úpatternsr r!Ú_ignore_patternss z)ignore_patterns.._ignore_patternsr )rgrhr )rgr!r s cCsätj|ƒ}|dk r|||ƒ}ntƒ}tj|ƒg}�xB|D�]8} | |krJq:tjj|| ƒ} tjj|| ƒ} y¢tjj| ƒrÞtj| ƒ} |r tj| | ƒt | | | d�n.onerrorcWs‚dS)Nr )rNr r r!ryÒsz%Cannot call rmtree on a symbolic link)Ú_use_fd_functionsÚ isinstanceÚbytesr+ÚfsdecoderBÚ Exceptionrsrtr=r}r,r~rr€rxr-r:r�rv)r,Ú ignore_errorsryrƒÚfdr r r!r Ãs<      cCs&tjjtjjpd}tjj|j|ƒƒS)NÚ)r+r,ÚsepÚaltsepr`Úrstrip)r,r�r r r!Ú _basenameúsr�c Cs|}tjj|ƒrTt||ƒr*tj||ƒdStjj|t|ƒƒ}tjj|ƒrTtd|ƒ‚ytj||ƒWn–t k rútjj |ƒr¢tj |ƒ}tj ||ƒtj |ƒnTtjj|ƒrât||ƒrÈtd||fƒ‚t|||dd�t|ƒn|||ƒtj |ƒYnX|S)Nz$Destination path '%s' already existsz.Cannot move a directory '%s' into itself '%s'.T)rprn)r+r,r^r2Úrenamer_r�rkr r-r:r<r;rwÚ _destinsrcr r )r0r1rpZreal_dstrrr r r!r s2              cCsVtjj|ƒ}tjj|ƒ}|jtjjƒs2|tjj7}|jtjjƒsL|tjj7}|j|ƒS)N)r+r,r/Úendswithr�Ú startswith)r0r1r r r!r’8s    r’c CsNtdks|dkrdSy t|ƒ}Wntk r8d}YnX|dk rJ|dSdS)Né)rÚKeyError)rKÚresultr r r!Ú_get_gidAs  r˜c CsNtdks|dkrdSy t|ƒ}Wntk r8d}YnX|dk rJ|dSdS)Nr•)rr–)rKr—r r r!Ú_get_uidMs  r™Úgzipc s"|dkrd}nDtr |dkr d}n2tr2|dkr2d}n trD|dkrDd}ntdj|ƒƒ‚ddl} |rfd |nd} |d | } tjj| ƒ} | r¶tjj | ƒ r¶|dk r¨|j d | ƒ|s¶tj | ƒ|dk rÈ|j d ƒt ˆƒ‰t ˆƒ‰‡‡‡‡fd d„} |�s| j| d|ƒ}z|j|| d�Wd|jƒX| S)NrŒršZgzÚbzip2Úbz2ÚxzzCbad value for 'compress', or compression format not supported : {0}rÚ.z.tarz creating %szCreating tar archivecs,ˆdk rˆ|_ˆ|_ˆdk r(ˆ|_ˆ|_|S)N)ÚgidZgnameÚuidÚuname)Ztarinfo)rŸÚgroupÚownerr r r!Ú _set_uid_gidˆsz#_make_tarball.._set_uid_gidzw|%s)rc)Ú_ZLIB_SUPPORTEDÚ_BZ2_SUPPORTEDÚ_LZMA_SUPPORTEDÚ ValueErrorr6Útarfiler+r,ÚdirnamerkÚinforjr™r˜r=Úaddr�)Ú base_nameÚbase_dirÚcompressÚverboseÚdry_runr£r¢ÚloggerZtar_compressionr©Z compress_extZ archive_nameÚ archive_dirr¤Útarr )rŸr¢r£r r!Ú _make_tarballYs<          rµc Cs|ddl}|d}tjj|ƒ}|rPtjj|ƒ rP|dk rB|jd|ƒ|sPtj|ƒ|dk rf|jd||ƒ|�sx|j|d|jd��ô}tjj |ƒ} | tj kr¶|j | | ƒ|dk r¶|jd| ƒx¶tj |ƒD]¨\} } } xFt | ƒD]:} tjj tjj| | ƒƒ} |j | | ƒ|dk rÖ|jd| ƒqÖWxT| D]L} tjj tjj| | ƒƒ} tjj| ƒ�r|j | | ƒ|dk �r|jd| ƒ�qWqÂWWdQRX|S)Nrz.zipz creating %sz#creating '%s' and adding '%s' to itÚw)Z compressionz adding '%s')Úzipfiler+r,rªrkr«rjÚZipFileZ ZIP_DEFLATEDÚnormpathÚcurdirr&ÚwalkÚsortedr_Úisfile)r­r®r°r±r²r·Z zip_filenamer³Zzfr,ÚdirpathZdirnamesÚ filenamesrKr r r!Ú _make_zipfilešs@             rÀr´r¯zuncompressed tar filezgzip'ed tar-fileZgztarzZIP fileÚzipr›zbzip2'ed tar-fileZbztarr�zxz'ed tar-fileZxztarcCsdd„tjƒDƒ}|jƒ|S)NcSsg|]\}}||df‘qS)r•r )Ú.0rKÚregistryr r r!ú Üsz'get_archive_formats..)Ú_ARCHIVE_FORMATSÚitemsÚsort)Úformatsr r r!r×s rŒcCsz|dkr g}t|ƒs td|ƒ‚t|ttfƒs6tdƒ‚x0|D](}t|ttfƒ s\t|ƒdkr|dk r$|jd|ƒtjj|ƒ}|s>tj|ƒ|dkrLtj}||dœ} y t|} Wn tk r‚t d|ƒ‚YnX| d} x| dD]\} }|| | <q–W|dkrÂ|| d<|| d<z| ||f| Ž}Wd|dk rü|dk rò|jd | ƒtj| ƒX|S) Nzchanging into '%s')r±r²zunknown archive format '%s'rérÁr£r¢zchanging back to '%s') r+ÚgetcwdÚdebugr,r/ÚchdirrºrÅr–r¨)r­r6Zroot_dirr®r°r±r£r¢r²Zsave_cwdrOÚ format_infoÚfuncÚargÚvalr|r r r!rùs6        cCsdd„tjƒDƒ}|jƒ|S)NcSs"g|]\}}||d|df‘qS)rér )rÂrKr«r r r!rÄ6sz&get_unpack_formats..)Ú_UNPACK_FORMATSrÆrÇ)rÈr r r!r0s c Csvi}x.tjƒD]"\}}x|dD] }|||<q WqWx,|D]$}||kr:d}t||||fƒ‚q:Wt|ƒsrtdƒ‚dS)Nrz!%s is already registered for "%s"z*The registered function must be a callable)rÛrÆr#rÉrÊ) Ú extensionsrÎrÏZexisting_extensionsrKr«ÚextÚ extensionÚmsgr r r!Ú_check_unpack_options;s ràcCs,|dkr g}t|||ƒ||||ft|<dS)N)ràrÛ)rKrÜrÎrÏrÐr r r!rMs cCs t|=dS)N)rÛ)rKr r r!rcscCs&tjj|ƒ}tjj|ƒs"tj|ƒdS)N)r+r,rªr^rj)r,rªr r r!Ú_ensure_directorygs  rác CsÊddl}|j|ƒstd|ƒ‚|j|ƒ}z’xŒ|jƒD]€}|j}|jdƒs4d|krRq4tjj |f|j dƒžŽ}|spq4t |ƒ|j dƒs4|j |jƒ}t|dƒ}z|j|ƒWd|jƒ~Xq4WWd|jƒXdS)Nrz%s is not a zip fileú/z..r5)r·Z is_zipfiler"r¸Zinfolistr|r”r+r,r_Úsplitrár“r%r=r&r�) r|Ú extract_dirr·rÁr«rKÚtargetÚdataÚfr r r!Ú_unpack_zipfilems*       rè)rccCs\ddl}y|j|ƒ}Wn"|jk r8td|ƒ‚YnXz|j||d�Wd|jƒXdS)Nrz/%s is not a compressed or uncompressed tar file)rc)r©r=ZTarErrorr"Z extractallr�)r|rärcr©Ztarobjr r r!Ú_unpack_tarfile�sréz.tarz.zip)r´rÁz.tar.gzz.tgzz.tar.bz2z.tbz2z.tar.xzz.txzcCs:x4tjƒD](\}}x|dD]}|j|ƒr|SqWq WdS)Nr)rÛrÆr“)r|rKr«rÞr r r!Ú_find_unpack_format®s   rêc CsØ|dkrtjƒ}|dkri}nd|i}|dk r‚y t|}Wn"tk r\tdj|ƒƒ‚YnX|d}|||ft|dƒ|—ŽnRt|ƒ}|dkr tdj|ƒƒ‚t|d}tt|dƒ}|j |ƒ|||f|ŽdS)NrczUnknown unpack format '{0}'rÒr•zUnknown archive format '{0}') r+rÓrÛr–r¨r6Údictrêr"Úupdate)r|rär6rcZ filter_kwargsrÖr×rOr r r!rµs&   ÚstatvfsÚ disk_usageZusageztotal used freezTotal space in byteszUsed space in byteszFree space in bytescCs@tj|ƒ}|j|j}|j|j}|j|j|j}t|||ƒS)N)r+ríÚf_bavailÚf_frsizeÚf_blocksÚf_bfreeÚ_ntuple_diskusage)r,r?ÚfreeÚtotalÚusedr r r!rîìs    ÚntcCs"tj|ƒ\}}||}t|||ƒS)N)r÷Z _getdiskusageró)r,rõrôrör r r!rîþscCsž|dkr|dkrtdƒ‚|}|}|dkr.d}n(t|tƒrVt|ƒ}|dkrVtdj|ƒƒ‚|dkrdd}n(t|tƒsŒt|ƒ}|dkrŒtdj|ƒƒ‚tj |||ƒdS)Nzuser and/or group must be setrÒzno such user: {!r}zno such group: {!r}éÿÿÿÿrø) r¨r†rmr™Ú LookupErrorr6Úintr˜r+r)r,Úuserr¢Z_userZ_groupr r r!r s"  éPécCsÔyttjdƒ}Wnttfk r.d}YnXyttjdƒ}Wnttfk r^d}YnX|dksp|dkrÆytjtjjƒƒ}Wn$t tt fk r¨tj |ƒ}YnX|dkr¸|j }|dkrÆ|j }tj ||fƒS)NZCOLUMNSrZLINES)rúr+Úenvironr–r¨rrsÚ __stdout__ÚfilenoÚAttributeErrorr-Ú terminal_sizeÚcolumnsÚlines)ZfallbackrrÚsizer r r!r(s$  c s"dd„}tjjˆƒr&|ˆ|ƒr"ˆSdS|dkr>tjjdtjƒ}|sFdS|jtjƒ}tj dkr¼tj |krt|j dtj ƒtjjddƒjtjƒ}t ‡fdd „|Dƒƒr¨ˆg}q‡fd d „|Dƒ}nˆg}t ƒ}xT|D]L}tjj|ƒ}||krÎ|j|ƒx(|D] } tjj|| ƒ} || |ƒrö| SqöWqÎWdS) NcSs&tjj|ƒo$tj||ƒo$tjj|ƒ S)N)r+r,rkÚaccessr^)r>r[r r r!Ú _access_checkbszwhich.._access_checkÚPATHZwin32rZPATHEXTrŒc3s |]}ˆjƒj|jƒƒVqdS)N)Úlowerr“)rÂrÝ)Úcmdr r!ú szwhich..csg|] }ˆ|‘qSr r )rÂrÝ)r r r!rÄ‚szwhich..)r+r,rªrþÚgetÚdefpathrãÚpathseprsÚplatformrºÚinsertÚanyrdr.r¬r_) r r[r,rZpathextÚfilesÚseenÚdirZnormdirZthefilerKr )r r!rUs8            é@)r)FN)ršrrNNN)rrN)r¯N)r¯rš)r¯r›)r¯r�)NrŒ)NNrrNNN)NrŒ)NN)NN©rürý)r)Vr+rsr7rbÚ collectionsrEÚzlibr¥Ú ImportErrorrœr¦Zlzmar§ÚpwdrZgrprÚ__all__r-r rrrr"r‰r#rr2rrr*rMrrr rr rvr€r=rwrxÚsupports_dir_fdriÚ supports_fdrTr…r Zavoids_symlink_attacksr�r r’r˜r™rµrÀrÅrrrrrràrrrárèrérÛrêrrlÚ namedtuplerórõÚ__doc__rörôrîrKr÷rrÚF_OKÚX_OKrr r r r!Úsü          :  Y!,   5 8    @ -     6  "       /        -