B
�/g^# c @ s� d Z ddlZddlZddlmZ ddd�Zdd d
�ZG dd� dej�ZG d
d� dej�ZG dd� dej �Z G dd� deej
�Z
G dd� deej�Zdd� ZdS )a Python 'uu_codec' Codec - UU content transfer encoding.
This codec de/encodes from bytes to bytes.
Written by Marc-Andre Lemburg (mal@lemburg.com). Some details were
adapted from uu.py which was written by Lance Ellinghouse and
modified by Jack Jansen and Fredrik Lundh.
� N)�BytesIO�strict�<data>� c C s� |dkst �t| �}t� }|j}|j}|�dd�}|�dd�}|d|d@ |f �d�� |d �}x|r~|t�|�� |d �}qbW |d
� |�� t | �fS )Nr Z
z\nz
z\rzbegin %o %s
i� Zasciii- s
end
)
�AssertionErrorr �read�writeZreplace�encode�binasciiZb2a_uu�getvalue�len) �input�errorsZfilenameZmode�infile�outfiler r Zchunk� r �*/usr/lib64/python3.7/encodings/uu_codec.py� uu_encode s r c
C s� |dkst �t| �}t� }|j}|j}x(|� }|s:td��|d d� dkr(P q(W x�|� }|rd|dkrfP yt�|�}W nR tjk
r� } z2|d d d@ d d d
} t�|d | � �}W d d }~X Y nX ||� qRW |s�td��|�� t | �fS )Nr z"Missing "begin" line in input datai s begins end
r i i? i i zTruncated input data)
r r �readliner Z
ValueErrorr Za2b_uuZErrorr
r )
r r
r r r r ZsZdataZvZnbytesr r r � uu_decode% s0 $r c @ s e Zd Zddd�Zddd�ZdS ) �Codecr c C �
t ||�S �N)r ��selfr r
r r r r G � zCodec.encodec C r r )r r r r r �decodeJ r zCodec.decodeN�r r )�__name__�
__module__�__qualname__r r r r r r r F s
r c @ � e Zd Zddd�ZdS )�IncrementalEncoderFc C � t || j�d S �Nr )r r
�r r Zfinalr r r r N r zIncrementalEncoder.encodeN�F)r r r r r r r r r! M � r! c @ r )�IncrementalDecoderFc C r"