1163264 % a WpWjœSã@sægd¢ZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z ddl m Z dZdZe d ¡Ze d ej¡Ze d ¡Ze d ¡ZGd d„dƒZGdd„deƒZdZGdd„deƒZeeejdƒƒZdeZejZdS))Ú GeneratorÚDecodedGeneratorÚBytesGeneratoréN)Údeepcopy)ÚStringIOÚBytesIO)Ú_has_surrogates)ÚHeaderWriteErrorÚ_Ú z \r\n|\r|\nz^From z\r\n[^ \t]|\r[^ \n\t]|\n[^ \t]s\r\n[^ \t]|\r[^ \n\t]|\n[^ \t]c@s¬eZdZd&ddœdd„Zdd„Zd'dd „Zd d „Zd d „Zdd„Zdd„Z dd„Z dd„Z dd„Z dd„Z e Zdd„Zdd„Zdd„Zd d!„Zed(d"d#„ƒZed$d%„ƒZdS))rN©ÚpolicycCs6|dur|durdn|j}||_||_||_||_dS)NT)Ú mangle_from_Ú_fpÚ _mangle_from_Ú maxheaderlenr )ÚselfÚoutfprrr ©rú'/usr/lib64/python3.9/email/generator.pyÚ__init__'s zGenerator.__init__cCs|j |¡dS©N)rÚwrite©rÚsrrrrGszGenerator.writeFcCsä|jdur|jn|j}|dur*|j|d�}|jdurB|j|jd�}|j|_| |j¡|_d|_| |j¡|_|j}|j}zX||_||_|r¸|  ¡}|s¨dt   t   ¡¡}|  ||j¡|  |¡W||_||_n||_||_0dS)N)Úlinesep©Zmax_line_lengthÚz From nobody )r ÚclonerrÚ_NLÚ_encodeÚ _encoded_NLZ_EMPTYÚ_encoded_EMPTYZ get_unixfromÚtimeÚctimerÚ_write)rÚmsgÚunixfromrr Zold_gen_policyZold_msg_policyZufromrrrÚflattenKs0   ÿzGenerator.flattencCs|j||jd|jd�S©Nr )Ú __class__rr )rÚfprrrr|s ýzGenerator.clonecCstƒSr)r©rrrrÚ _new_buffer�szGenerator._new_buffercCs|Srrrrrrr ”szGenerator._encodecCsT|sdSt |¡}|dd…D]}| |¡| |j¡q|drP| |d¡dS)Néÿÿÿÿ)ÚNLCREÚsplitrr)rÚlinesÚlinerrrÚ _write_lines˜s  zGenerator._write_linescCsÐ|j}z2d|_| ¡|_}| |¡W||_|j}|`n||_|j}|`0|r”t|ƒ}| d¡durt|d|d<n| d|d¡| d|d¡t|ddƒ}|dur´| |¡n||ƒ|j  |  ¡¡dS)Núcontent-transfer-encodingrúContent-Transfer-Encodingú content-typeéÚ_write_headers) rÚ _munge_cter-Ú _dispatchrÚgetZreplace_headerÚgetattrr8rÚgetvalue)rr&ZoldfpZsfpZ munge_cteÚmethrrrr%¨s,  þ  zGenerator._writecCst| ¡}| ¡}t ||f¡ dd¡}t|d|dƒ}|durh| dd¡}t|d|dƒ}|durh|j}||ƒdS)Nú-r Z_handle_)Úget_content_maintypeÚget_content_subtypeÚ UNDERSCOREÚjoinÚreplacer<Ú _writeBody)rr&ÚmainÚsubZspecificr>Zgenericrrrr:Ïs zGenerator._dispatchcCsŠ| ¡D]p\}}|j ||¡}|jjrn|jj}| |jj¡sPtd|›d|›�ƒ‚t |  |¡¡rntd|›�ƒ‚|  |¡q|  |j ¡dS©Nz folded header does not end with z: z folded header contains newline: ) Ú raw_itemsr ZfoldÚverify_generated_headersrÚendswithr ÚNEWLINE_WITHOUT_FWSPÚsearchÚ removesuffixrr©rr&ÚhÚvZfoldedrrrrr8ãsÿÿ zGenerator._write_headerscCsž| ¡}|durdSt|tƒs.tdt|ƒƒ‚t|jƒr~| d¡}|dur~t|ƒ}|d=|  ||¡| ¡}|d|df|_ |j r�t   d|¡}| |¡dS)Nzstring payload expected: %sÚcharsetr4r6ú>From )Ú get_payloadÚ isinstanceÚstrÚ TypeErrorÚtyperÚ_payloadZ get_paramrZ set_payloadr9rÚf