-í
ç¶<c       s  d  Z  d k Z d k Z d k Z d d d d d d g Z d e i f d „  ƒ  YZ e a d	 „  Z d
 „  Z	 d „  Z
 d Z h  e d <e d <e d <e d <d d <d d <Z h  d d <d d <d d <d d <d d <d d <Z d „  Z d „  Z d „  Z d „  Z d S(   s<   Various tools used by MIME-reading or MIME-writing programs.Ns   Messages   choose_boundarys   encodes   decodes   copyliterals
   copybinaryc      sk   t  Z d  Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d	 „  Z
 d
 „  Z d „  Z RS(   sˆ   A derived class of rfc822.Message that knows about MIME headers and
    contains some hooks for decoding encoded and multipart messages.i   c    sR   t  i i |  | | ƒ |  i d ƒ |  _ |  i d ƒ |  _ |  i	 ƒ  |  i
 ƒ  d  S(   Ns   content-transfer-encodings   content-type(   s   rfc822s   Messages   __init__s   selfs   fps   seekables	   getheaders   encodingheaders
   typeheaders	   parsetypes
   parseplist(   s   selfs   fps   seekable(    (    s   /usr/lib/python2.2/mimetools.pys   __init__ s
    
c    sß   |  i } | t j o
 d } n d | j o* | i d ƒ } | | |  _ | |  } n
 d |  _ | i d ƒ } x4 t	 t
 | ƒ ƒ D]  } | | i ƒ  i ƒ  | | <q‚ Wd i | ƒ |  _ | d |  _ d i | d ƒ |  _ d  S(   Ns
   text/plains   ;s    s   /i    i   (   s   selfs
   typeheaders   strs   Nones   indexs   is	   plisttexts   splits   fieldss   ranges   lens   strips   lowers   joins   types   maintypes   subtype(   s   selfs   strs   is   fields(    (    s   /usr/lib/python2.2/mimetools.pys	   parsetype s    	
	 c    sÛ   |  i } g  |  _ xÂ | d  d j o° | d } d | j o | i d ƒ } n t | ƒ } | |  } d | j o? | i d ƒ } | |  i	 ƒ  i
 ƒ  d | | d i	 ƒ  } n |  i i | i	 ƒ  ƒ | | } q Wd  S(   Ni   s   ;s   =(   s   selfs	   plisttexts   strs   plists   indexs   ends   lens   fs   is   strips   lowers   append(   s   selfs   ends   strs   fs   i(    (    s   /usr/lib/python2.2/mimetools.pys
   parseplist) s    		 

0c    s   |  i Sd  S(   N(   s   selfs   plist(   s   self(    (    s   /usr/lib/python2.2/mimetools.pys   getplist; s    c    s^   | i ƒ  d } t | ƒ } x7 |  i D], } | |  | j o t i | | ƒ Sn q& Wt	 Sd  S(   Ns   =(
   s   names   lowers   lens   ns   selfs   plists   ps   rfc822s   unquotes   None(   s   selfs   names   ps   n(    (    s   /usr/lib/python2.2/mimetools.pys   getparam> s    
 c    sY   g  } xH |  i D]= } | i d ƒ } | d j o | i | |  i ƒ  ƒ n q W| Sd  S(   Ns   =i    (   s   results   selfs   plists   ps   finds   is   appends   lower(   s   selfs   is   ps   result(    (    s   /usr/lib/python2.2/mimetools.pys   getparamnamesF s    
 c    s)   |  i t j o d Sn |  i i ƒ  Sd  S(   Ns   7bit(   s   selfs   encodingheaders   Nones   lower(   s   self(    (    s   /usr/lib/python2.2/mimetools.pys   getencodingN s    c    s   |  i Sd  S(   N(   s   selfs   type(   s   self(    (    s   /usr/lib/python2.2/mimetools.pys   gettypeS s    c    s   |  i Sd  S(   N(   s   selfs   maintype(   s   self(    (    s   /usr/lib/python2.2/mimetools.pys   getmaintypeV s    c    s   |  i Sd  S(   N(   s   selfs   subtype(   s   self(    (    s   /usr/lib/python2.2/mimetools.pys
   getsubtypeY s    (   s   __name__s
   __module__s   __doc__s   __init__s	   parsetypes
   parseplists   getplists   getparams   getparamnamess   getencodings   gettypes   getmaintypes
   getsubtype(    (    (    s   /usr/lib/python2.2/mimetools.pys   Message s    									c  	   sÝ   d k  } d k } t t j oƒ d k } d k } | i | i ƒ  ƒ }  y | i	 ƒ  } Wn d } n Xy | i ƒ  } Wn d } n X|  d | d | a n d | i  ƒ  } | i d d ƒ } t d | d | Sd S(   s`  Return a random string usable as a multipart boundary.
    The method used is so that it is *very* unlikely that the same
    string of characters will every occur again in the Universe,
    so the caller needn't check the data it is packing for the
    occurrence of the boundary.

    The boundary contains dots so you have to quote it in the header.Ns   1s   .s   %.3fi    iÿ  (   s   times   randoms   _prefixs   Nones   sockets   oss   gethostbynames   gethostnames   hostids   getuids   uids   getpids   pids	   timestamps   randints   seed(	   s   hostids   sockets	   timestamps   pids   randoms   seeds   times   oss   uid(    (    s   /usr/lib/python2.2/mimetools.pys   choose_boundarye s(      				

c    sí   | d j o d k } | i |  | ƒ Sn | d j o d k } | i |  | ƒ Sn | d d d d f j o d k } | i |  | ƒ Sn | d d	 f j o | i |  i ƒ  ƒ Sn t	 i
 | ƒ o t |  t	 | | ƒ n t d
 | ‚ d S(   sD   Decode common content-transfer-encodings (base64, quopri, uuencode).s   base64Ns   quoted-printables   uuencodes
   x-uuencodes   uues   x-uues   7bits   8bits%   unknown Content-Transfer-Encoding: %s(   s   encodings   base64s   decodes   inputs   outputs   quopris   uus   writes   reads	   decodetabs   has_keys   pipethroughs
   ValueError(   s   inputs   outputs   encodings   uus   quopris   base64(    (    s   /usr/lib/python2.2/mimetools.pys   decode… s     			c    sð   | d j o d k } | i |  | ƒ Sn | d j o  d k } | i |  | d ƒ Sn | d d d d f j o d k } | i |  | ƒ Sn | d	 d
 f j o | i |  i ƒ  ƒ Sn t	 i
 | ƒ o t |  t	 | | ƒ n t d | ‚ d S(   sD   Encode common content-transfer-encodings (base64, quopri, uuencode).s   base64Ns   quoted-printablei    s   uuencodes
   x-uuencodes   uues   x-uues   7bits   8bits%   unknown Content-Transfer-Encoding: %s(   s   encodings   base64s   encodes   inputs   outputs   quopris   uus   writes   reads	   encodetabs   has_keys   pipethroughs
   ValueError(   s   inputs   outputs   encodings   uus   quopris   base64(    (    s   /usr/lib/python2.2/mimetools.pys   encode˜ s     			sa   (
TEMP=/tmp/@uu.$$
sed "s%^begin [0-7][0-7]* .*%begin 600 $TEMP%" | uudecode
cat $TEMP
rm $TEMP
)s   uuencodes
   x-uuencodes   uues   x-uues   mmencode -u -qs   quoted-printables   mmencode -u -bs   base64s   uuencode tempfiles   mmencode -qs   mmencode -bc    s-   t  i | d ƒ } t |  | ƒ | i ƒ  d  S(   Ns   w(   s   oss   popens   commands   pipes   copyliterals   inputs   close(   s   inputs   commands   pipe(    (    s   /usr/lib/python2.2/mimetools.pys   pipetoÈ s    c    st   t  i ƒ  } t | d ƒ } t |  | ƒ | i ƒ  t i	 | d | d ƒ } t | | ƒ | i ƒ  t i | ƒ d  S(   Ns   ws    <s   r(   s   tempfiles   mktemps   tempnames   opens   temps   copyliterals   inputs   closes   oss   popens   commands   pipes
   copybinarys   outputs   unlink(   s   inputs   commands   outputs   temps   pipes   tempname(    (    s   /usr/lib/python2.2/mimetools.pys   pipethroughÍ s    

c    s9   x2 d o* |  i ƒ  } | o Pn | i | ƒ q Wd  S(   Ni   (   s   inputs   readlines   lines   outputs   write(   s   inputs   outputs   line(    (    s   /usr/lib/python2.2/mimetools.pys   copyliteral× s      c    sB   d } x5 d o- |  i | ƒ } | o Pn | i | ƒ q	 Wd  S(   Ni    i   (   s   BUFSIZEs   inputs   reads   lines   outputs   write(   s   inputs   outputs   lines   BUFSIZE(    (    s   /usr/lib/python2.2/mimetools.pys
   copybinaryÝ s      (   s   __doc__s   oss   rfc822s   tempfiles   __all__s   Messages   Nones   _prefixs   choose_boundarys   decodes   encodes   uudecode_pipes	   decodetabs	   encodetabs   pipetos   pipethroughs   copyliterals
   copybinary(   s   pipethroughs   __all__s   rfc822s   tempfiles	   encodetabs	   decodetabs   copyliterals   decodes   pipetos
   copybinarys   choose_boundarys   encodes   Messages   oss   uudecode_pipe(    (    s   /usr/lib/python2.2/mimetools.pys   ? s    			X	 		<	<			
	