£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>

]&              
   @   s  d  d d d d d d d d d	 g
 Z  d
 d l Z d
 d l m Z m Z m Z d Z d Z d Z d d   e	 d  D Z
 e
 d d  Z e
 d d  Z x8 d e j d  e j d  D] Z e e  e e <q Wd e e d  <x d D] Z e e  e e <q Wd d   Z d d   Z d d   Z d d   Z d d d  Z d  d	   Z d! d   Z d" d# d  Z e d d  Z x d$ D] Z e e  e e <qWd% e d& d  Z e d' d  Z e Z e Z d( d)   Z d* d   Z d S)+body_decodebody_encodebody_lengthdecodedecodestringheader_decodeheader_encodeheader_lengthquoteunquote    N)ascii_lettersdigits	hexdigitsz

 c             C   s   g  |  ] } d  |  q S)z=%02X ).0cr   r   //opt/alt/python35/lib64/python3.5/quoprimime.py
<listcomp>7   s   	 r      s   -!*+/ascii_ s_    !"#$%&'()*+,-./0123456789:;<>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~	c             C   s   t  |   t |  k S)N)chr_QUOPRI_HEADER_MAP)octetr   r   r   header_checkJ   s    r   c             C   s   t  |   t |  k S)N)r   _QUOPRI_BODY_MAP)r   r   r   r   
body_checkO   s    r   c             C   s   t  d d   |  D  S)Nc             s   s   |  ] } t  t |  Vq d  S)N)lenr   )r   r   r   r   r   	<genexpr>^   s    z header_length.<locals>.<genexpr>)sum)	bytearrayr   r   r   r   T   s    
c             C   s   t  d d   |  D  S)Nc             s   s   |  ] } t  t |  Vq d  S)N)r    r   )r   r   r   r   r   r!   h   s    zbody_length.<locals>.<genexpr>)r"   )r#   r   r   r   r   a   s    c             C   s   t  | t  s t |  } |  s7 |  j | j    nH t |  d  t |  | k rl |  d | | 7<n |  j | j    d  S)N   r%   )
isinstancestrr   appendlstripr    )Lsmaxlenextrar   r   r   _max_appendk   s     r.   c             C   s   t  t |  d d  d   S)Nr$         )r   int)r+   r   r   r   r
   v   s    c             C   s   t  t |   S)N)_QUOPRI_MAPord)r   r   r   r   r	   {   s    z
iso-8859-1c             C   s0   |  s
 d S|  j  d  j t  } d | | f S)Nr   latin1z=?%s?q?%s?=)r   	translater   )Zheader_bytescharsetencodedr   r   r   r      s    s   
L   c             C   s  | d k  r t  d   |  s" |  S|  j t  }  d | } | d } g  } | j } xv|  j   D]h} d } t |  d | }	 x | |	 k r)| | }
 | |
 d d k r | | | |
 d   |
 d } q | |
 d d k r| | | |
   |
 d } q | | | |
  d  |
 } q W| r| d
 d k r| |	 } | d k rit | d  } n1 | d k r| d | } n | t | d  } | | | d  |  qa | | | d    qa W|  d t k r| d	  | j |  S)N   zmaxlinelen must be at least 4=r$   r      z 	r/   r   r%   r%   r%   r%   r%   r%   )	
ValueErrorr5   _QUOPRI_BODY_ENCODE_MAPr(   
splitlinesr    r	   CRLFjoin)ZbodyZ
maxlineleneolZ
soft_breakZmaxlinelen1Zencoded_bodyr(   linestartZ	laststartstopZroomqr   r   r   r      sD    

	



c             C   sx  |  s
 |  Sd } x2|  j    D]$} | j   } | sB | | 7} q d } t |  } x | | k  r@| | } | d k r | | 7} | d 7} n | d | k r | d 7} qW nw | d | k  r| | d t k r| | d t k r| t | | | d   7} | d 7} n | | 7} | d 7} | | k rW | | 7} qW Wq W|  d d k rt| j |  rt| d  d	  } | S)
Nr   r   r:   r$   r;   r/   z
r%   r%   )r>   rstripr    r   r
   endswith)r7   rA   ZdecodedrB   inr   r   r   r   r      s8    



8

c             C   s   |  j  d  } t |  S)Nr   )groupr
   )matchr+   r   r   r   _unquote_match  s    rL   c             C   s.   |  j  d d  }  t j d t |  d t j S)Nr   r   z=[a-fA-F0-9]{2}flags)replaceresubrL   ASCII)r+   r   r   r   r   #  s    ) __all__rO   stringr   r   r   r?   NLZEMPTYSTRINGranger2   r   r   encoder   r   r3   r   r   r   r   r.   r
   r	   r   r=   r   r   r   r   rL   r   r   r   r   r   <module>   sN   	'
O0