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`  oY$^@sXdddgZddlZddlZddlZddlZddlmZddlmZ e j Z dZ dZ d Z dZd Zd Zd Ze dZe dZejdejejBejBZejdZejdZejjZddZdddddZGdddZGdddZ Gddde!Z"dS)Header decode_header make_headerN)HeaderParseError)charset   Nz zus-asciizutf-8ai =\? # literal =? (?P[^?]*?) # non-greedy up to the next ? is the charset \? # literal ? (?P[qb]) # either a "q" or a "b", case insensitive \? # literal ? (?P.*?) # non-greedy up to the next ?= is the encoded string \?= # literal ?= z[\041-\176]+:$z \n[^ \t]+:c Cst|dr#dd|jDStj|s?|dfgSg}x|jD]}tj|}d}x|r|jd}|r|j}d}|r|j|ddf|rp|jdj }|jdj }|jd}|j|||fqpWqRWg} xkt |D]]\} } | dkr)| dr)|| ddr)|| ddj r)| j| dq)Wxt | D] } || =qWg} x|D]\}}}|dkr| j||fq|d krt jj|}| j||fq|d krt|d }|rT|d dd |7}yt jj|}Wn!tjk rtd YqX| j||fqtd|qWg}d}}x| D]\}}t|trt|d}|dkr|}|}q||krB|j||f|}|}q|dkr_|t|7}q||7}qW|j||f|S)N_chunkscSs:g|]0\}}tj|t|t|fqS)_charsetZ_encodestr).0stringrrr%/opt/python35/lib/python3.5/header.py Ms z!decode_header..TrFqbz===zBase64 decoding errorzUnexpected encoding: zraw-unicode-escape)hasattrr ecresearch splitlinessplitpoplstripappendlower enumerateisspacereversedemail quoprimimeZ header_decodelenZ base64mimedecodebinasciiErrorrAssertionError isinstancerbytesBSPACE)headerZwordslinepartsfirstZ unencodedrencodingencodedZdroplistnwdZ decoded_wordsZencoded_stringZwordZpaderrZ collapsedZ last_word last_charsetrrrr=sz     @          cCsntd|d|d|}xL|D]D\}}|dk rVt|t rVt|}|j||q"W|S)N maxlinelen header_namecontinuation_ws)rr-Charsetr!)Z decoded_seqr:r;r<hsrrrrrs   c@seZdZddddddddZddZdd Zddd d Zd d ZdddddZddZ dS)rNrstrictcCs|dkrt}nt|ts0t|}||_||_g|_|dk rj|j||||dkr|t}||_|dkrd|_ nt |d|_ dS)Nrr) USASCIIr-r=r_continuation_wsr r! MAXLINELEN _maxlinelen _headerlenr()selfr?rr:r;r<errorsrrr__init__s           zHeader.__init__c Cs|jg}d}d}x|jD]\}}|}|tjkrk|jdd}|jdd}|r|o|j|d}|dkr|dkr| r|jtd}n |d kr| r|jt|o|j|d }|}|j|q&Wt j |S) Nasciisurrogateescapereplacerus-asciir)NrL)NrL)NrL) _normalizer r UNKNOWN8BITencoder) _nonctextr!SPACE EMPTYSTRINGjoin) rFZuchunkslastcs lastspacerrZnextcsZoriginal_byteshasspacerrr__str__s*     zHeader.__str__cCs|t|kS)N)r)rFotherrrr__eq__sz Header.__eq__c Cs|dkr|j}nt|ts3t|}t|ts|jpNd}|tjkru|jdd}n|j||}|jpd}|tjkry|j||Wn't k r|dkrt }YnX|j j ||fdS)Nzus-asciirJ) rr-r=rZ input_codecrOr)Z output_codecrPUnicodeEncodeErrorUTF8r r!)rFr?rrGZ input_charsetoutput_charsetrrrr! s$      z Header.appendcCs|jp|dkS)N()\)r^r_r`)r$)rFr?rrrrQ4szHeader._nonctextz;, rcCsD|j|dkr|j}|dkr1d}t|j||j|}d}d}}x|jD]\}} |dk r|o|j|d}|d kr| s| d kr|jn| d kr| r|j|o|j|d }| }d}|j} | r1|j d| d| n|j dd| x| ddD]} |j | j dk r|j |jd| j | qU| j } | dt | t | } |j | | | qUWt | dkrf|j qfW|jr |j|j|}tj|r@tdj||S) Nri@Bus-asciirFr rz8header value appears to contain an embedded header: {!r})Nra)Nra)NrarM)rNrD_ValueFormatterrErBr rQadd_transitionrfeednewlineheader_encodingr r(_str_embeded_headerrrformat)rF splitcharsr:linesep formatterrUrWrVrrlinesr1ZslinefwsvaluerrrrP9sR!                   z Header.encodecCsg}d}g}xj|jD]_\}}||krD|j|q|dk rl|jtj||f|g}|}qW|r|jtj||f||_dS)N)r r!rRrT)rFchunksr9Z last_chunkrrrrrrNs    zHeader._normalize) __name__ __module__ __qualname__rHrXrZr!rQrPrNrrrrrs - + Pc@s|eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)rbcCsF||_||_t||_||_g|_t||_dS)N)_maxlenrBr(_continuation_ws_len _splitchars_lines _Accumulator _current_line)rFZ headerlenmaxlenr<rjrrrrHs     z_ValueFormatter.__init__cCs|j|j|jS)N)rerTrw)rFrkrrrrgs z_ValueFormatter._strcCs |jtS)N)rgNL)rFrrrrXsz_ValueFormatter.__str__cCs|jj}|dkr+|jj|t|jdkr|jjrl|jdt|j7dg|dd1sz'_Accumulator.__len__..)sumr)rFrrr__len__0sz_Accumulator.__len__cCstjdd|DS)Ncss*|] \}}tj||fVqdS)N)rSrT)rrnrrrrr5sz'_Accumulator.__str__..)rSrT)rFrrrrX4sz_Accumulator.__str__NcCs/|dkrg}||ddsz_Accumulator.is_onlywscs tjS)N)rr)rF)rrrrAsz_Accumulator.part_count) rqrrrsrHr|rrrrXr~r}rrr)rrrxs     rxz )#__all__rr*Zemail.quoprimimer&Zemail.base64mimeZ email.errorsrrrr=r{rRr/ZSPACE8rSrCrrAr\compileVERBOSE IGNORECASE MULTILINErZfcrerhr'Z _max_appendrrrrblistrxrrrrs:          _