o
     JAf#                     @   s   	 d dl Z d dlZd dlmZ dddZddd	ZG d
d de jZG dd de jZG dd de jZG dd dee j	Z	G dd dee j
Z
dd ZdS )    N)BytesIOstrict<data>  c           	      C   s   t | }t  }|j}|j}|dd}|dd}|d|d@ |f d |d}|r9|t| |d}|s,|d	 | t| fS )
N
z\nz\rzbegin %o %s
i  ascii-   s    
end
)	r   readwritereplaceencodebinasciiZb2a_uugetvaluelen)	inputerrorsfilenamemodeinfileoutfiler
   r   chunk r   )/usr/lib/python3.10/encodings/uu_codec.py	uu_encode   s   r   c           
   
   C   s   t | }t  }|j}|j}	 | }|std|d d dkr nq	 | }|r+|dkr,n7zt|}W n* tjy] } z|d d d	@ d
 d d }	t|d |	 }W Y d }~nd }~ww || q"|sitd| t| fS )N   z"Missing "begin" line in input data   s   beginTs   end
r       ?         zTruncated input data)	r   readliner   
ValueErrorr   Za2b_uuErrorr   r   )
r   r   r   r   r!   r   sdatavnbytesr   r   r   	uu_decode%   s6   r(   c                   @   s    e Zd ZdddZdddZdS )Codecr   c                 C   
   t ||S N)r   selfr   r   r   r   r   r   G      
zCodec.encodec                 C   r*   r+   )r(   r,   r   r   r   decodeJ   r.   zCodec.decodeNr   )__name__
__module____qualname__r   r/   r   r   r   r   r)   F   s    
r)   c                   @      e Zd ZdddZdS )IncrementalEncoderFc                 C      t || jd S Nr   )r   r   r-   r   finalr   r   r   r   N      zIncrementalEncoder.encodeNF)r1   r2   r3   r   r   r   r   r   r5   M       r5   c                   @   r4   )IncrementalDecoderFc                 C   r6   r7   )r(   r   r8   r   r   r   r/   R   r:   zIncrementalDecoder.decodeNr;   )r1   r2   r3   r/   r   r   r   r   r=   Q   r<   r=   c                   @      e Zd ZeZdS )StreamWriterNr1   r2   r3   bytescharbuffertyper   r   r   r   r?   U       r?   c                   @   r>   )StreamReaderNr@   r   r   r   r   rD   X   rC   rD   c                
   C   s   t jdttttttddS )NuuF)namer   r/   incrementalencoderincrementaldecoderstreamreaderstreamwriter_is_text_encoding)codecs	CodecInfor   r(   r5   r=   rD   r?   r   r   r   r   getregentry]   s   rN   )r   r   r   r0   )rL   r   ior   r   r(   r)   r5   r=   r?   rD   rN   r   r   r   r   <module>   s    	

!