Your IP : 3.145.202.104
B
� fa � @ s� d Z ddddgZdZdZdZdZyd 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 s: | dkr|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.
s � _� � ~)�ESCAPE)�c� quotetabs�header� r �+/opt/alt/python37/lib64/python3.7/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 s< t dk r,| �� }t |||d�}|�|� dS |dfdd�}d}x�| �� }|sNP g } d}
|dd� dkrv|dd� }d}
xL|D ]D}t|f�}t|||�r�t|�}|r�|dkr�| �d � q|| �|� q|W |dk r�||� t� | �}x:t
|�tk�r||dtd
� dd� |td
d� }q�W |}q@W |dk �r8|||
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���s � .)�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 r r �data�odatar Zprevline�lineZoutline�strippedr Zthisliner r r r , s@
c C sF t d k rt | ||d�S ddlm} || �}|� }t||||� |�� S )N)r r r )�BytesIO)r
�ior. r �getvalue)r r r r. �infp�outfpr r r r j s c C s t dk r*| �� }t ||d�}|�|� dS d}�x�| �� }|s@P dt|� }}|dkr�||d |� dkr�d} |d }x.|dkr�||d |� dkr�|d }qxW nd} �x*||k �r�|||d � }
|
dkr�|r�|d }|d }q�|
tkr�||
}|d }q�|d |k�r| �sd} P q�|d |k �rR||d |d
� tk�rR|t }|d
}q�|d
|k �r�t||d |d
� ��r�t||d
|d � ��r�|tt||d |d � �f� }|d }q�||
}|d }q�W | s2|�|d � d}q2W |�r�|�|� dS )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)r r r r! r s
r r � � ) r r"