U
e5dT ã @ s´ d Z ddddgZdZdZdZdZzd d
lmZmZ W n e k
rP dZdZY nX dd
„ Z
dd„ Zddd„Zddd„Z
ddd„Zddd„Zdd„ Zdd„ Zdd„ Zedkr°eƒ dS ) zHConversions to/from quoted-printable transport encoding as per RFC 1521.ÚencodeÚdecodeÚencodestringÚdecodestringó =éL s 0123456789ABCDEFó é )Úa2b_qpÚb2a_qpNc C sH t | tƒst‚| dkr|S | dkr&|S | tkpFd| ko@dkn 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.
ó ó _ó ó ~)Ú
isinstanceÚbytesÚAssertionErrorÚESCAPE)ÚcÚ quotetabsÚheader© r ú/usr/lib64/python3.8/quopri.pyÚneedsquoting s r c C sB t | tƒrt| ƒdkst‚t| ƒ} ttt| d t| d fƒ S )zQuote a single character.é é )r r Úlenr Úordr ÚHEX©r r r r Úquote$ s r Fc
C s2 t dk r,| ¡ }t |||d�}| |¡ dS |dfdd„}d}| ¡ }|sN�qg } d}
|dd… dkrv|dd… }d}
|D ]D}t|fƒ}t|||ƒrœt|ƒ}|r´|dkr´| d ¡ qz| |¡ qz|dk rÐ||ƒ t | ¡}t
|ƒtk�r||dtd
… dd� |td
d… }qÚ|}q>|dk �r.|||
d� dS )
av Read '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©r r ó
c S sj | r<| dd … dkr<| | d d… t| dd … ƒ | ¡ n*| dkrX| t| ƒ| ¡ n| | | ¡ d S )Néÿÿÿÿr ó .)Úwriter )ÚsÚoutputÚlineEndr r r r$ ; s
(zencode.