B è ;Q·œã @ sÈ d ddgZ ddlZddlZddlZddlZddlmZ ddlmZm Z ddl mZ dZd Z e d ¡Ze dej¡ZG dd „ d ƒZG d d„ deƒZdZG dd„ deƒZeeejd ƒƒZde ZejZdS )Ú GeneratorÚDecodedGeneratorÚBytesGeneratoré N)Údeepcopy)ÚStringIOÚBytesIO)Ú_has_surrogatesÚ_Ú z \r\n|\r|\nz^From c @ s¬ e Zd Zd&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 ))r N)Úpolicyc C s6 |d kr|d krdn|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 zGenerator.__init__c C s | j |¡ d S )N)r Úwrite)r Úsr r r r D s zGenerator.writeFc C sØ | j d kr|j n| j }|d k r*|j|d}| jd k rB|j| jd}|j| _| | j¡| _d| _| | j¡| _| j }|j }zL|| _ ||_ |r¸| ¡ }|s¨dt t ¡ ¡ }| || j ¡ | |¡ W d || _ ||_ X d S )N)Úlinesep)Úmax_line_lengthÚ zFrom nobody )r Úcloner r Ú_NLÚ_encodeÚ_encoded_NLZ_EMPTYÚ_encoded_EMPTYZget_unixfromÚtimeZctimer Ú_write)r ÚmsgÚunixfromr r Zold_gen_policyZold_msg_policyZufromr r r ÚflattenH s, zGenerator.flattenc C s | j || jd | jdS )N)r )Ú __class__r r )r Úfpr r r r y s zGenerator.clonec C s t ƒ S )N)r )r r r r Ú_new_buffer s zGenerator._new_bufferc C s |S )Nr )r r r r r r ‘ s zGenerator._encodec C sX |sd 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 zGenerator._write_linesc C s¤ | j }z"d | _| ¡ | _ }| |¡ W d || _ | j}| `X |rht|ƒ}| d|d ¡ | d|d ¡ t|dd ƒ}|d krˆ| |¡ n|| ƒ | j | ¡ ¡ d S )Nzcontent-transfer-encodingr zcontent-typeé Ú_write_headers) r Ú _munge_cter&