grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|jqã@s²dZgd¢ZdZdZdZdZz ddlmZmZWn e y%dZdZYnwd d „Z d d „Z ddd„Z ddd„Z ddd„Zddd„Zdd„Zdd„Zdd„ZedkrWeƒdSdS)zHConversions to/from quoted-printable transport encoding as per RFC 1521.)ÚencodeÚdecodeÚ encodestringÚ decodestringó=éLs0123456789ABCDEFóé)Úa2b_qpÚb2a_qpNcCs:|dvr|S|dkr |S|tkpd|kodkn S)zìDecide whether a particular byte ordinal needs to be quoted. The 'quotetabs' flag indicates whether embedded tabs and spaces should be quoted. Note that line-ending tabs and spaces are always encoded, as per RFC 1521. ó ó_ó ó~)ÚESCAPE)ÚcÚ quotetabsÚheader©rú-/opt/alt/python310/lib64/python3.10/quopri.pyÚ needsquotings "rcCs(t|ƒ}ttt|dt|dfƒS)zQuote a single character.é)ÚordrÚbytesÚHEX©rrrrÚquote$s rFc Cs<tdur| ¡}t|||d�}| |¡dS|dfdd„}d} | ¡}|s'nig} d} |dd…dkr;|dd…}d} |D]"} t| fƒ} t| ||ƒrNt| ƒ} |rZ| d krZ|  d ¡q=|  | ¡q=|durh||ƒt  | ¡} t | ƒt kr�|| dt d…d d �| t dd…} t | ƒt kss| }q |durœ||| d �dSdS) avRead 'input', apply quoted-printable encoding, and write to 'output'. 'input' and 'output' are binary file objects. The 'quotetabs' flag indicates whether embedded tabs and spaces should be quoted. Note that line-ending tabs and spaces are always encoded, as per RFC 1521. The 'header' flag indicates whether we are encoding spaces as _ as per RFC 1522.N©rró cSsn|r|dd…dvr| |dd…t|dd…ƒ|¡dS|dkr.| t|ƒ|¡dS| ||¡dS)Néÿÿÿÿr ó.)Úwriter)ÚsÚoutputÚlineEndrrrr ;s *zencode..writeérrr r s= )r#) r Úreadr ÚreadlinerrrÚappendÚ EMPTYSTRINGÚjoinÚlenÚ MAXLINESIZE) Úinputr"rrÚdataÚodatar ZprevlineÚlineZoutlineÚstrippedrZthislinerrrr,sF            üá!ÿrcCsFtdur t|||d�Sddlm}||ƒ}|ƒ}t||||ƒ| ¡S)Nrr©ÚBytesIO)r Úior2rÚgetvalue)r!rrr2ÚinfpÚoutfprrrrjs rc Cstdur| ¡}t||d�}| |¡dSd} | ¡}|snØdt|ƒ}}|dkr[||d|…dkr[d} |d}|dkrZ||d|…dvrZ|d}|dkrZ||d|…dvsHnd} ||krë|||d…} | dkrx|rx|d }|d}no| tkr…|| }|d}nb|d|kr�| s�d} n[|d|kr«||d|d …tkr«|t}|d }n<|d |krßt||d|d …ƒrßt||d |d …ƒrß|tt||d|d …ƒfƒ}|d }n|| }|d}||ksa| sö| |d¡d}q|�r| |¡dSdS) z»Read 'input', apply quoted-printable decoding, and write to 'output'. 'input' and 'output' are binary file objects. If 'header' is true, decode underscore as space (per RFC 1522).N©rrr$rrs r r éé) r r%r r&r*rÚishexrÚunhex) r,r"rr-r.Únewr/ÚiÚnÚpartialrrrrrusL   ÿ€ $<,óåÿrcCsDtdur t||d�Sddlm}||ƒ}|ƒ}t|||d�| ¡S)Nr7rr1)r r3r2rr4)r!rr2r5r6rrrr s  rcCsHd|ko dknp#d|kodknp#d|ko!dkSS)zDReturn true if the byte ordinal 'c' is a hexadecimal digit in ASCII.ó0ó9óaófóAóFrrrrrr:¬sHr:cCsœd}|D]G}t|fƒ}d|krdkrnntdƒ}n%d|kr&dkr/nntdƒd}nd |kr9d krAnntd ƒd}|d t|ƒ|}q|S) z.Get the integer value of a hexadecimal number.rr@rAÚ0rBrCÚaé rDrEr)rr)r!Úbitsrr=rrrr;±s   r;c Cs°ddl}ddl}z| |jdd…d¡\}}Wn,|jyC}z|j|_t|ƒtdƒtdƒtdƒ| d¡WYd}~nd}~wwd}d}|D]\}}|d krTd }|d krZd }qJ|rl|rl|j|_td ƒ| d¡|sqd g}d} |D]W} | d kr€|jj } n&zt | dƒ} Wnt y¥}z|j  d| |f¡d} WYd}~qud}~wwz|r±t | |jj ƒnt| |jj |ƒW| d krÂ|  ¡qu| d krÌ|  ¡ww| rÖ| | ¡dSdS)Nrr$Ztdz"usage: quopri [-t | -d] [file] ...z-t: quote tabsz-d: decode; default encoder8Fz-tTz-dz -t and -d are mutually exclusiveú-Úrbz%s: can't open (%s) )ÚsysÚgetoptÚargvÚerrorÚstderrÚstdoutÚprintÚexitÚstdinÚbufferÚopenÚOSErrorr rrÚclose) rLrMZoptsÚargsÚmsgZdecoZtabsÚorGÚstsÚfileÚfprrrÚmainÃsd€ú   €    €ý€€ÿ ÿÿr_Ú__main__)F)FF)Ú__doc__Ú__all__rr+rr(Zbinasciir r Ú ImportErrorrrrrrrr:r;r_Ú__name__rrrrÚs0 þ  > + . ÿ