PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  oYM@sdddgZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z dZ d Z ejd Zejd ejZGd ddZGd ddeZdZGdddeZeeejdZdeZejZdS) GeneratorDecodedGeneratorBytesGeneratorN)deepcopy)StringIOBytesIO)_has_surrogates_ z \r\n|\r|\nz^From c@seZdZddddddZddZdddd Zd d Zd d ZddZddZ ddZ ddZ ddZ ddZ e ZddZddZddZd d!Zedd"d#Zed$d%ZdS)&rNpolicycCsO|dkr'|dkrdn|j}||_||_||_||_dS)NT) mangle_from__fp _mangle_from_ maxheaderlenr )selfoutfpr rr r(/opt/python35/lib/python3.5/generator.py__init__$s     zGenerator.__init__cCs|jj|dS)N)r write)rsrrrrDszGenerator.writeFc Cs6|jdkr|jn|j}|dk r?|jd|}|jdk rc|jd|j}|j|_|j|j|_d|_|j|j|_|j}|j}zh||_||_|r|j }|sdt j t j }|j ||j|j |Wd||_||_XdS)Nlinesepmax_line_lengthz From nobody )r clonerr_NL_encode _encoded_NLZ_EMPTY_encoded_EMPTYZ get_unixfromtimectimer_write)rmsgunixfromrr Zold_gen_policyZold_msg_policyZufromrrrflattenHs,!         zGenerator.flattencCs|j||jdd|jS)Nr ) __class__rr )rfprrrrys zGenerator.clonecCstS)N)r)rrrr _new_bufferszGenerator._new_buffercCs|S)Nr)rrrrrrszGenerator._encodecCsp|s dStj|}x5|ddD]#}|j||j|jq*W|drl|j|ddS)Nr)r))NLCREsplitrr)rlineslinerrr _write_liness  zGenerator._write_linesc Cs|j}z-d|_|j|_}|j|Wd||_|j}|`X|rt|}|jd|d|jd|dt|dd}|dkr|j|n |||jj|j dS)Nzcontent-transfer-encodingrz content-typer(_write_headers) r _munge_cter' _dispatchrZreplace_headergetattrr/rgetvalue)rr"ZoldfpZsfpZ munge_ctemethrrrr!s"       zGenerator._writecCs|j}|j}tj||fjdd}t|d|d}|dkr|jdd}t|d|d}|dkr|j}||dS)N-r Z_handle_)get_content_maintypeget_content_subtype UNDERSCOREjoinreplacer2 _writeBody)rr"mainsubZspecificr4Zgenericrrrr1s  !   zGenerator._dispatchcCsMx6|jD](\}}|j|jj||q W|j|jdS)N) raw_itemsrr Zfoldr)rr"hvrrrr/s zGenerator._write_headerscCs|j}|dkrdSt|tsAtdt|t|jr|jd}|dk rt|}|d=|j |||j}|d|df|_ |j rt j d|}|j|dS)Nzstring payload expected: %scharsetzcontent-transfer-encodingz content-typez>From ) get_payload isinstancestr TypeErrortyper_payloadZ get_paramrZ set_payloadr0rfcrer=r.)rr"payloadrArrr _handle_texts"      zGenerator._handle_textc Cs4g}|j}|dkr'g}n8t|trG|j|dSt|ts_|g}xX|D]P}|j}|j|}|j|ddd|j|j |j qfW|j }|s|j j |}|j|}|j||jdk rP|jr*tjd|j} n |j} |j| |j|j|jd||j|r|jj|jdx=|D]5} |j|jd||j|jj| qW|j|jd|d|j|jdk r0|jrtjd|j} n |j} |j| dS)Nr#Frz>From z--r)rBrCrDrlistr'rr$rappendr3Z get_boundaryrr9_make_boundaryZ set_boundarypreamblerrHr=r.r popepilogue) rr"ZmsgtextsZsubpartspartrgboundaryZalltextrNZ body_partrPrrr_handle_multipartsJ             #  zGenerator._handle_multipartc Cs@|j}|jdd|_z|j|Wd||_XdS)Nrr)r rrT)rr"prrr_handle_multipart_signed8s  z"Generator._handle_multipart_signedcCsg}x|jD]}|j}|j|}|j|ddd|j|j}|j|j}|r|d|jkr|j |jj |ddq|j |qW|j j |jj |dS)Nr#Frr(r)r)) rBr'rr$rr3r+rrrLr9r r)rr"ZblocksrQrrRtextr,rrr_handle_message_delivery_statusCs  &z)Generator._handle_message_delivery_statuscCs|j}|j|}|j}t|trg|j|jdddd|j|j}n|j |}|j j |dS)Nrr#Fr) r'rrGrCrKr$rBrr3rr r)rr"rrRrIrrr_handle_messageXs  %zGenerator._handle_messagecCstjtj}d t|d}|dkr4|S|}d}xX|jdtj|dtj}|j |syP|dt |}|d7}qCW|S) N=z==rz^--z(--)?$.r(z===============) random randrangesysmaxsize_fmt _compile_rereescape MULTILINEsearchrD)clsrWtokenrSbZcounterZcrerrrrMqs &zGenerator._make_boundarycCstj||S)N)rccompile)rgrflagsrrrrbszGenerator._compile_re)__name__ __module__ __qualname__rrr$rr'rr.r!r1r/rJr;rTrVrXrY classmethodrMrbrrrrrs(  1     #   :  csjeZdZddZddZddZddZfd d ZeZe d d Z S) rcCs |jj|jdddS)Nasciisurrogateescape)r rencode)rrrrrrszBytesGenerator.writecCstS)N)r)rrrrr'szBytesGenerator._new_buffercCs |jdS)Nrp)rr)rrrrrrszBytesGenerator._encodecCsPx9|jD]+\}}|jj|jj||q W|j|jdS)N)r>r rr Z fold_binaryr)rr"r?r@rrrr/s#zBytesGenerator._write_headerscs|jdkrdSt|jri|jjdk ri|jrVtjd|j|_|j|jntt |j |dS)NZ7bitz>From ) rGrr Zcte_typerrHr=r.superrrJ)rr")r%rrrJs" zBytesGenerator._handle_textcCstj|jd|S)Nrp)rcrjrr)rgrrkrrrrbszBytesGenerator._compile_re) rlrmrnrr'rr/rJr;rorbrr)r%rrs     zD[Non-text (%(type)s) part of message omitted, filename %(filename)s]c@s1eZdZdddddZddZdS)rNNcCs;tj|||||dkr.t|_n ||_dS)N)rr_FMTra)rrr rfmtrrrrs  zDecodedGenerator.__init__cCsx|jD]}|j}|dkrJt|jddd|q |dkrYq t|jd|jd|jd|jd |jd d |jd d d|jddid|q WdS)NrWdecodeFfileZ multipartrFmaintypesubtypefilenamez [no filename] descriptionzContent-Descriptionz[no description]encodingzContent-Transfer-Encodingz [no encoding]) walkr6printrBraZget_content_typer7 get_filenameget)rr"rQryrrrr1s           zDecodedGenerator._dispatch)rlrmrnrr1rrrrrs r(z%%0%dd)__all__rcr_rr]copyriorrZ email.utilsrr8NLrjr*rerHrrrurlenreprr`_widthrarMrrrrs&    o39