£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    YI~d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d
Ze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   4/opt/alt/python37/lib64/python3.7/email/generator.py__init__$   s    zGenerator.__init__c             C   s   | 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| _d| _| | j| _| j }|j }zL|| _ ||_ |r|	 }|sdt
t

  }| || 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 |}x*|d d D ]}| | | | j q W |d rT| |d  d S )N)NLCREsplitr   r   )r   linesliner   r   r   _write_lines   s    

zGenerator._write_linesc             C   s   | j }z"d | _|   | _ }| | W d || _ | j}| `X |rht|}|d|d  |d|d  t|dd }|d kr| | n||  | j |	  d S )Nzcontent-transfer-encodingr   zcontent-type   _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   |  }| }t||fdd}t| d| d }|d krh|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(|  D ]\}}| | j|| q
W | | j d S )N)	raw_itemsr   r   Zfoldr   )r   r!   hvr   r   r   r.      s    zGenerator._write_headersc             C   s   |  }|d krd S t|ts.tdt| t|jr~|d}|d k	r~t|}|d= |	|| |  }|d |d f| _
| jrtd|}| | 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 }|  }|d krg }n(t|tr2| | d S t|tsB|g}x>|D ]6}|  }| |}|j|d| jd |	|
  qHW | }|s| j|}| |}|| |jd k	r| jrtd|j}	n|j}	| |	 | | j | d| | j  |r| j|d x4|D ],}
| | jd | | j  | j|
 qW | | jd | d | j  |jd k	r| jrtd|j}n|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| | 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|  D ]t}|  }| |}|j|d| jd | }|| j}|rx|d | jkrx|	| j
|d d  q|	| qW | j| j
| d S )NF)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}t|trD|j|dd| jd | }n
| 	|}| 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 tj}dt|  d }|d kr(|S |}d}xD| dt| d tj}|	|sZP |d t
| }|d7 }q2W |S )Nz===============z==r   z^--z(--)?$.r-   )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 ||S )N)r_   compile)rc   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 |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
   | dS )Nrl   )rn   )r   r   r   r   r   r     s    zBytesGenerator._encodec             C   s<   x*|  D ]\}}| j| j|| q
W | | 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 rH| jjdksH| jr:td|j |_ | |j  ntt	| 
| 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 |d|S )Nrl   )r_   rf   rn   )rc   r   rg   r   r   r   r^     s    zBytesGenerator._compile_re)rh   ri   rj   r   r&   r   r.   rI   r:   rk   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|  D ]v}| }|dkr4t|jdd| d q
|dkr>q
t| j| | | |d|dd|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   maintypeZsubtypefilenamedescriptionencoding)	walkr5   printrA   r]   Zget_content_typer6   get_filenameget)r   r!   rP   rt   r   r   r   r0     s     
zDecodedGenerator._dispatch)NNN)rh   ri   rj   r   r0   r   r   r   r   r     s   r-   z%%0%dd)__all__r_   r[   r   rZ   copyr   ior   r   Zemail.utilsr   r7   NLrf   r(   ra   rG   r   r   rq   r   lenreprr\   _widthr]   rL   r   r   r   r   <module>   s(   

  p3;