�PNG
IHDR��;���IDATx��ܻn�0���K��
�)(�pA������7�LeG{�� �§㻢|��ذaÆ
6lذaÆ
6lذaÆ
6lom��$^�y���ذag�5bÆ
6lذaÆ
6lذa{����
6lذaÆ
�`����}H�Fkm�,�m����Ӫ���ô�ô!��x�|'ܢ˟;�E:���9�&ᶒ�}�{�v]�n&�6�
�h��_��t�ڠ͵-ҫ���Z;��Z$�.�P���k�ž)�!��o���>}l�eQfJ�T��u і���چ��\��X=8��Rن4`Vw�l�>����n�G�^��i�s��"ms�$�u��i��?w�bs[m�6�K4���O���.�4��%����/����b�C%��t��M�ז� �-l�G6�mrz2���s�%�9��s@���-�k�9�=���)������k�B5����\��+͂�Zsٲ��Rn��~G���R���C������wIcI��n7jJ���hۛNCS|���j0��8y�iHKֶۛ�k�Ɉ+;Sz������L/��F�*\��Ԕ�#"5��m�2��[S��������=�g��n�a�P�e�ғ�L��
lذaÆ
6l�^k��̱aÆ
6lذaÆ
6lذa;����
�_��ذaÆ
6lذaÆ
6lذaÆ
���R���IEND�B`
3
\N�@s�dddgZddlZddlZddlZddlZddlmZddlmZm Z ddl
mZdZd Z
ejd
�Zejdej�ZGdd�d�ZGd
d�de�ZdZGdd�de�Zeeejd��ZdeZejZdS)� Generator�DecodedGenerator�BytesGenerator�N)�deepcopy)�StringIO�BytesIO)�_has_surrogates�_�
z
\r\n|\r|\nz^From c@s�eZdZd&dd�dd�Zdd�Zd'dd �Zd
d�Zdd
�Zdd�Zdd�Z dd�Z
dd�Zdd�Zdd�Z
e
Zdd�Zdd�Zdd�Zd d!�Zed(d"d#��Zed$d%��ZdS))rN)�policycCs6|dkr|dkrdn|j}||_||_||_||_dS)NT)�mangle_from_�_fp�
_mangle_from_�maxheaderlenr)�self�outfprrr�r�'/usr/lib64/python3.6/email/generator.py�__init__$szGenerator.__init__cCs|jj|�dS)N)r
�write)r�srrrrDszGenerator.writeFcCs�|jdkr|jn|j}|dk r*|j|d�}|jdk rB|j|jd�}|j|_|j|j�|_d|_|j|j�|_|j}|j}zL||_||_|r�|j �}|s�dt
jt
j
��}|j||j�|j
|�Wd||_||_XdS)N)�linesep)�max_line_length�zFrom nobody )r�clonerr�_NL�_encode�_encoded_NLZ_EMPTY�_encoded_EMPTYZget_unixfrom�timeZctimer�_write)r�msg�unixfromrrZold_gen_policyZold_msg_policyZufromrrr�flattenHs,
zGenerator.flattencCs|j||jd|jd�S)N)r)� __class__rr)r�fprrrryszGenerator.clonecCst�S)N)r)rrrr�_new_buffer�szGenerator._new_buffercCs|S)Nr)rrrrrr�szGenerator._encodecCsX|sdStj|�}x*|dd�D]}|j|�|j|j�q W|drT|j|d�dS)N������r(r()�NLCRE�splitrr)r�lines�linerrr�_write_lines�s
zGenerator._write_linescCs�|j}z"d|_|j�|_}|j|�Wd||_|j}|`X|rht|�}|jd|d�|jd|d�t|dd�}|dkr�|j|�n||�|jj|j ��dS)Nzcontent-transfer-encodingrzcontent-typer'�_write_headers)
r
�
_munge_cter&� _dispatchrZreplace_header�getattrr.r�getvalue)rr!ZoldfpZsfpZ munge_cte�methrrrr �s"zGenerator._writecCst|j�}|j�}tj||f�jdd�}t|d|d�}|dkrh|jdd�}t|d|d�}|dkrh|j}||�dS)N�-r Z_handle_)�get_content_maintype�get_content_subtype�
UNDERSCORE�join�replacer1�
_writeBody)rr!�main�subZspecificr3Zgenericrrrr0�szGenerator._dispatchcCs:x(|j�D]\}}|j|jj||��q
W|j|j�dS)N)� raw_itemsrrZfoldr)rr!�h�vrrrr.�szGenerator._write_headerscCs�|j�}|dkrdSt|t�s.tdt|���t|j�r~|jd�}|dk r~t|�}|d=|j ||�|j�}|d|df|_
|jr�tj
d|�}|j|�dS)Nzstring payload expected: %s�charsetzcontent-transfer-encodingzcontent-typez>From )�get_payload�
isinstance�str� TypeError�typer�_payloadZ get_paramrZset_payloadr/r�fcrer<�r-)rr!�payloadr@rrr�_handle_text�s"
zGenerator._handle_textcCs�g}|j�}|dkrg}n(t|t�r2|j|�dSt|t�sB|g}x>|D]6}|j�}|j|�}|j|d|jd�|j |j
��qHW|j�}|s�|jj
|�}|j|�}|j|�|jdk r�|jr�tjd|j�} n|j} |j| �|j|j�|jd||j�|�r|jj|jd��x4|D],}
|j|jd||j�|jj|
��qW|j|jd|d|j�|jdk �r�|j�r�tjd|j�}n|j}|j|�dS)NF)r"rz>From z--r)rArBrCr�listr&rr#r�appendr2Zget_boundaryrr8�_make_boundaryZset_boundary�preamblerrGr<�r-r
�pop�epilogue)rr!ZmsgtextsZsubparts�partr�g�boundaryZalltextrMZ body_partrOrrr�_handle_multipart�sJ
zGenerator._handle_multipartcCs0|j}|jdd�|_z|j|�Wd||_XdS)Nr)r)rrrS)rr!�prrr�_handle_multipart_signed8s
z"Generator._handle_multipart_signedcCs�g}x�|j�D]t}|j�}|j|�}|j|d|jd�|j�}|j|j�}|rx|d|jkrx|j |jj
|dd���q|j |�qW|jj|jj
|��dS)NF)r"rr'r(r()
rAr&rr#rr2r*rrrKr8r
r)rr!ZblocksrPrrQ�textr+rrr�_handle_message_delivery_statusCs
z)Generator._handle_message_delivery_statuscCs^|j�}|j|�}|j}t|t�rD|j|jd�d|jd�|j�}n
|j |�}|j
j|�dS)NrF)r"r)r&rrFrBrJr#rArr2rr
r)rr!rrQrHrrr�_handle_messageXs
zGenerator._handle_messagecCsztjtj�}d t|d}|dkr(|S|}d}xD|jdtj|�dtj�}|j |�sZP|dt
|�}|d7}q2W|S)
N�=�z==rz^--z(--)?$�.r'z===============)�randomZ randrange�sys�maxsize�_fmt�_compile_re�re�escape� MULTILINE�searchrC)�clsrV�tokenrR�bZcounterZcrerrrrLqs
zGenerator._make_boundarycCstj||�S)N)ra�compile)rer�flagsrrrr`�szGenerator._compile_re)NN)FN)N)�__name__�
__module__�__qualname__rrr#rr&rr-r r0r.rIr:rSrUrWrX�classmethodrLr`rrrrrs(
1#
:csLeZdZdd�Zdd�Zdd�Zdd�Z�fd d
�ZeZe dd��Z
�ZS)
rcCs|jj|jdd��dS)N�ascii�surrogateescape)r
r�encode)rrrrrr�szBytesGenerator.writecCst�S)N)r)rrrrr&�szBytesGenerator._new_buffercCs
|jd�S)Nrn)rp)rrrrrr�szBytesGenerator._encodecCs<�x*|j�D]\}}|jj|jj||��q
W|j|j�dS)N)r=r
rrZfold_binaryr)rr!r>r?rrrr.�szBytesGenerator._write_headerscs^|jdkrdSt|j�rJ|jjdkrJ|jrFrom )rFrrZcte_typerrGr<�r-�superrrI)rr!)r$rrrI�s
zBytesGenerator._handle_textcCstj|jd�|�S)Nrn)rarhrp)rerrirrrr`�szBytesGenerator._compile_re)rjrkrlrr&rr.rIr:rmr`�
__classcell__rr)r$rr�s
zD[Non-text (%(type)s) part of message omitted, filename %(filename)s]c@s$eZdZddd�dd�Zdd�ZdS)rN)rcCs.tj|||||d�|dkr$t|_n||_dS)N)r)rr�_FMTr_)rrrrZfmtrrrrr�s
zDecodedGenerator.__init__cCs�x�|j�D]v}|j�}|dkr4t|jdd�|d�q
|dkr>q
t|j|j�|j�|j�|jd�|jdd�|jd d
�d�|d�q
WdS)NrVF)�decode)�fileZ multipartz
[no filename]zContent-Descriptionz[no description]zContent-Transfer-Encodingz
[no encoding])rE�maintype�subtype�filenameZdescription�encoding) �walkr5�printrAr_Zget_content_typer6�get_filename�get)rr!rPrvrrrr0�s
zDecodedGenerator._dispatch)NNN)rjrkrlrr0rrrrr�sr'z%%0%dd)�__all__rar]rr\�copyr�iorrZemail.utilsrr7�NLrhr)rcrGrrrsr�len�reprr^Z_widthr_rLrrrr�s(
p3;