o Kögmã@sj ddlZddlZddlZgd¢ZGdd„deƒZdddœdd„Zdd d „Zd d „Ze d kr3eƒdSdS)éN)ÚErrorÚencodeÚdecodec@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©rrú)/opt/alt/python310/lib64/python3.10/uu.pyr&srF©Úbacktickc Csz g}z¯|dkr tjj}n/t|tƒr<|durtj |¡}|dur2zt |¡j }Wn t y1Ynwt |dƒ}|  |¡|dkrEtj j}nt|tƒrTt |dƒ}|  |¡|durZd}|dur`d}| dd¡}| dd¡}| d |d @|f d ¡¡| d ¡}t|ƒd krš| tj||d¡| d ¡}t|ƒd ks…|r¢| d¡n| d¡W|D]}| ¡qªdS|D]}| ¡qµw)Nú-ÚrbÚwbi¶Ú z\nú z\rz begin %o %s iÿÚasciié-rr s` end s end )ÚsysÚstdinÚbufferÚ isinstanceÚstrÚosÚpathÚbasenameÚstatÚst_modeÚAttributeErrorÚopenÚappendÚstdoutÚreplaceÚwriterÚreadÚlenÚbinasciiZb2a_uuÚclose)Úin_fileÚout_fileÚnameÚmoder Ú opened_filesÚdataÚfrrr r)sT    ÿ            þ  €  ÿ ÿrc Cs€ g}|dkr tjj}nt|tƒrt|dƒ}| |¡z | ¡}|s(tdƒ‚|  d¡s.q|  dd¡}t |ƒdkrS|d dkrSz t |d d ƒWn t yRYnwq|dur–|d d ¡ d ¡}tj |¡rotd|›ƒ‚|  tj¡sŽdtj›|vsŽtjr–|  tj¡sŽdtj›|vr–td|›dƒ‚|dur¡t |d d ƒ}|dkrªtjj}nt|tƒrÁt|dƒ}t ||¡|}| |¡| ¡}|r!| d ¡dkr!zt |¡} Wn6tjy } z(|d dd@ddd} t |d| …¡} |stj d| ¡WYd} ~ nd} ~ ww| | ¡| ¡}|r!| d ¡dksÐ|s(tdƒ‚W|D]} |  ¡q+dS|D]} |  ¡q7w)Nr r Tz'No valid begin line found in input filesbeginó ééréés rz Cannot overwrite existing file: z..zRefusing to write to z due to directory traversalrsendé é?ééz Warning: %s zTruncated input file)rrrrrrrÚreadlinerÚ startswithÚsplitr$ÚintÚ ValueErrorÚrstriprrrÚexistsÚsepÚaltsepr ÚchmodÚstripr%Za2b_uuÚstderrr"r&) r'r(r*Úquietr+ZhdrZ hdrfieldsÚfpÚsr,ÚvÚnbytesr-rrr rcs„       ÿõ   ÿ þ     €û ö ÿ  ÿ ÿrcCs4 ddl}|jdd}|jdddddd d |jd d d ddd d | ¡\}}t|ƒdkr7| d¡t d¡tjj }tj j }t|ƒdkrI|d}t|ƒdkrS|d}|j rx|j rqt |tƒrdt|dƒ}n ttjddƒt d¡t ||ƒdS|j r“t |tƒr†t|dƒ}n ttjddƒt d¡t||ƒdS)Nrz'usage: %prog [-d] [-t] [input [output]])Zusagez-dz--decoderzDecode (instead of encode)?FÚ store_true)ÚdestÚhelpÚdefaultÚactionz-tz--textÚtextz2data is text, encoded format unix-compatible text?r/zincorrect number of argumentsr1rz: cannot do -t to stdoutr z: cannot do -t from stdin)ÚoptparseZ OptionParserZ add_optionÚ parse_argsr$ÚerrorrÚexitrrr rrMrrrÚprintÚargvr)rNÚparserZoptionsÚargsÚinputÚoutputrrr Útest­s8             rXÚ__main__)NN)NNF) r%rrÚ__all__Ú ExceptionrrrrXrrrrr Ús :J& ÿ