<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
2aN                 @   s   d ddgZ ddlZddlZddlZddlZddlmZ ddlmZm	Z	 ddl
mZ dZd	Zejd
ZejdejZG dd  d ZG dd deZdZG dd deZeeejd Zde ZejZdS )	GeneratorDecodedGeneratorBytesGenerator    N)deepcopy)StringIOBytesIO)_has_surrogates_
z
\r\n|\r|\nz^From c               @   s   e Zd Zd&ddddZdd Zd'dd	Zd
d Zdd Zdd Zdd Z	dd Z
dd Zdd Zdd ZeZdd Zdd Zdd Zd d! Zed(d"d#Zed$d% ZdS ))r   N)policyc            C   s6   |d kr|d krdn|j }|| _|| _|| _|| _d S )NT)mangle_from__fp_mangle_from_maxheaderlenr   )selfoutfpr   r   r    r   ./opt/alt/python36/lib64/python3.6/generator.py__init__$   s    zGenerator.__init__c             C   s   | j j| d S )N)r   write)r   sr   r   r   r   D   s    zGenerator.writeFc             C   s   | j d kr|j n| j }|d k	r*|j|d}| jd k	rB|j| jd}|j| _| j| j| _d| _| j| j| _| j }|j }zL|| _ ||_ |r|j	 }|sdt
jt
j
  }| j|| j  | j| W d || _ ||_ X d S )N)linesep)max_line_length zFrom nobody )r   cloner   r   _NL_encode_encoded_NLZ_EMPTY_encoded_EMPTYZget_unixfromtimeZctimer   _write)r   msgunixfromr   r   Zold_gen_policyZold_msg_policyZufromr   r   r   flattenH   s,    
zGenerator.flattenc             C   s   | j || jd | jdS )N)r   )	__class__r   r   )r   fpr   r   r   r   y   s    zGenerator.clonec             C   s   t  S )N)r   )r   r   r   r   _new_buffer   s    zGenerator._new_bufferc             C   s   |S )Nr   )r   r   r   r   r   r      s    zGenerator._encodec             C   sX   |sd S t j|}x*|d d D ]}| j| | j| j q W |d rT| j|d  d S )N   r(   r(   )NLCREsplitr   r   )r   linesliner   r   r   _write_lines   s    

zGenerator._write_linesc             C   s   | j }z"d | _| j  | _ }| j| W d || _ | j}| `X |rht|}|jd|d  |jd|d  t|dd }|d kr| j| n||  | j j|j	  d S )Nzcontent-transfer-encodingr   zcontent-typer'   _write_headers)
r   
_munge_cter&   	_dispatchr   Zreplace_headergetattrr.   r   getvalue)r   r!   ZoldfpZsfpZ	munge_ctemethr   r   r   r       s"    zGenerator._writec             C   st   |j  }|j }tj||fjdd}t| d| d }|d krh|jdd}t| d| d }|d krh| j}|| d S )N-r	   Z_handle_)get_content_maintypeget_content_subtype
UNDERSCOREjoinreplacer1   
_writeBody)r   r!   mainsubZspecificr3   Zgenericr   r   r   r0      s    zGenerator._dispatchc             C   s:   x(|j  D ]\}}| j| jj|| q
W | j| j d S )N)	raw_itemsr   r   Zfoldr   )r   r!   hvr   r   r   r.      s    zGenerator._write_headersc             C   s   |j  }|d krd S t|ts.tdt| t|jr~|jd}|d k	r~t|}|d= |j	|| |j  }|d |d f| _
| jrtjd|}| j| d S )Nzstring payload expected: %scharsetzcontent-transfer-encodingzcontent-typez>From )get_payload
isinstancestr	TypeErrortyper   _payloadZ	get_paramr   Zset_payloadr/   r   fcrer<   r-   )r   r!   payloadr@   r   r   r   _handle_text   s"    


zGenerator._handle_textc             C   s  g }|j  }|d krg }n(t|tr2| j| d S t|tsB|g}x>|D ]6}| j }| j|}|j|d| jd |j	|j
  qHW |j }|s| jj|}| j|}|j| |jd k	r| jrtjd|j}	n|j}	| j|	 | j| j | jd| | j  |r| jj|jd x4|D ],}
| j| jd | | j  | jj|
 qW | j| jd | d | j  |jd k	r| jrtjd|j}n|j}| j| d S )NF)r"   r   z>From z--r   )rA   rB   rC   r   listr&   r   r#   r   appendr2   Zget_boundaryr   r8   _make_boundaryZset_boundarypreambler   rG   r<   r-   r   popepilogue)r   r!   ZmsgtextsZsubpartspartr   gboundaryZalltextrM   Z	body_partrO   r   r   r   _handle_multipart   sJ    









zGenerator._handle_multipartc             C   s0   | j }|jdd| _ z| j| W d || _ X d S )Nr   )r   )r   r   rS   )r   r!   pr   r   r   _handle_multipart_signed8  s
    z"Generator._handle_multipart_signedc             C   s   g }x|j  D ]t}| j }| j|}|j|d| jd |j }|j| j}|rx|d | jkrx|j	| jj
|d d  q|j	| qW | jj| jj
| d S )NF)r"   r   r'   r(   r(   )rA   r&   r   r#   r   r2   r*   r   r   rK   r8   r   r   )r   r!   ZblocksrP   r   rQ   textr+   r   r   r   _handle_message_delivery_statusC  s    
z)Generator._handle_message_delivery_statusc             C   s^   | j  }| j|}|j}t|trD|j|jdd| jd |j }n
| j	|}| j
j| d S )Nr   F)r"   r   )r&   r   rF   rB   rJ   r#   rA   r   r2   r   r   r   )r   r!   r   rQ   rH   r   r   r   _handle_messageX  s    




zGenerator._handle_messagec             C   sz   t jtj}d	t|  d }|d kr(|S |}d}xD| jdtj| d tj}|j	|sZP |d t
| }|d7 }q2W |S )
N=   z==r   z^--z(--)?$.r'   z===============)randomZ	randrangesysmaxsize_fmt_compile_rereescape	MULTILINEsearchrC   )clsrV   tokenrR   bZcounterZcrer   r   r   rL   q  s    
zGenerator._make_boundaryc             C   s   t j||S )N)ra   compile)re   r   flagsr   r   r   r`     s    zGenerator._compile_re)NN)FN)N)__name__
__module____qualname__r   r   r#   r   r&   r   r-   r    r0   r.   rI   r:   rS   rU   rW   rX   classmethodrL   r`   r   r   r   r   r      s(   

1#
:c                   sL   e Zd Zdd Zdd Zdd Zdd Z fd	d
ZeZe	dd Z
  ZS )r   c             C   s   | j j|jdd d S )Nasciisurrogateescape)r   r   encode)r   r   r   r   r   r     s    zBytesGenerator.writec             C   s   t  S )N)r   )r   r   r   r   r&     s    zBytesGenerator._new_bufferc             C   s
   |j dS )Nrn   )rp   )r   r   r   r   r   r     s    zBytesGenerator._encodec             C   s<   x*|j  D ]\}}| jj| jj|| q
W | j| j d S )N)r=   r   r   r   Zfold_binaryr   )r   r!   r>   r?   r   r   r   r.     s    zBytesGenerator._write_headersc                s^   |j d krd S t|j rJ| jjdk rJ| jr<tjd|j |_ | j|j  ntt	| j
| d S )NZ7bitz>From )rF   r   r   Zcte_typer   rG   r<   r-   superr   rI   )r   r!   )r$   r   r   rI     s    
zBytesGenerator._handle_textc             C   s   t j|jd|S )Nrn   )ra   rh   rp   )re   r   ri   r   r   r   r`     s    zBytesGenerator._compile_re)rj   rk   rl   r   r&   r   r.   rI   r:   rm   r`   __classcell__r   r   )r$   r   r     s   zD[Non-text (%(type)s) part of message omitted, filename %(filename)s]c               @   s$   e Zd ZdddddZdd ZdS )r   N)r   c            C   s.   t j| ||||d |d kr$t| _n|| _d S )N)r   )r   r   _FMTr_   )r   r   r   r   Zfmtr   r   r   r   r     s
    zDecodedGenerator.__init__c             C   s   x|j  D ]v}|j }|dkr4t|jdd| d q
|dkr>q
t| j|j |j |j |jd|jdd|jd	d
d | d q
W d S )NrV   F)decode)fileZ	multipartz[no filename]zContent-Descriptionz[no description]zContent-Transfer-Encodingz[no encoding])rE   maintypesubtypefilenamedescriptionencoding)	walkr5   printrA   r_   Zget_content_typer6   get_filenameget)r   r!   rP   rv   r   r   r   r0     s     
zDecodedGenerator._dispatch)NNN)rj   rk   rl   r   r0   r   r   r   r   r     s   r'   z%%0%dd)__all__ra   r]   r   r\   copyr   ior   r   Zemail.utilsr   r7   NLrh   r)   rc   rG   r   r   rs   r   lenreprr^   _widthr_   rL   r   r   r   r   <module>   s(   

  p3;