Your IP : 3.147.82.22
a
R�fo � @ s� d Z g d�ZdZdZdZdZzddlmZmZ W n e yJ dZdZY n0 d d
� Z
dd� Zddd�Zddd�Z
ddd�Zd dd�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 s: | dv r|S | dkr|S | t kp8d| ko2dkn 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/python39/lib64/python3.9/quopri.py�needsquoting s
r c C s( t | �} ttt| d t| d f� S )zQuote a single character.� )�ordr �bytes�HEX�r r r r �quote$ s r Fc
C s2 t dur,| �� }t |||d�}|�|� dS |dfdd�}d}| �� }|sN�qg } d}
|dd� dkrv|dd� }d}
|D ]D}t|f�}t|||�r�t|�}|r�|dkr�| �d � qz| �|� qz|dur�||� t� | �}t
|�tk�r||dtd
� dd� |td
d� }q�|}q>|du�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 � dv r<|� | d d� t| dd � � | � n*| dkrX|� t| �| � n|� | | � d S )N���r � .)�writer )�s�output�lineEndr r r r ; s
(zencode.<locals>.writer r r
r � s =
)r# )r
�readr �readliner r r �append�EMPTYSTRING�join�len�MAXLINESIZE)
�inputr"