;ò
¢)?Bc           @   s€   d  Z  d k l Z d k l Z d k l Z d k l Z y e	 e
 f Wn e j
 o d Z	 d Z
 n Xd „  Z d „  Z d	 S(
   s¦   Parse RFC 3464 (i.e. DSN) bounce formats.

RFC 3464 obsoletes 1894 which was the old DSN standard.  This module has not
been audited for differences between the two.
(   s   typed_subpart_iterator(   s	   parseaddr(   s   StringIO(   s   Stopi   i    c         C   sq  g  }
 xt |  d d ƒ D]} | i ƒ  o q n xä | i ƒ  D]Ö } | i d d ƒ i ƒ  } | d j o t
 Sn | d d f j o qA n g  }	 t } xz d d	 f D]l } xJ | i g  | ƒ D]6 \ } } | i ƒ  d
 j o
 t } qÀ |	 i | ƒ qÀ W| o |
 i |	 ƒ Pq§ q§ WqA Wq Wh  } x; |
 D]3 } | t j	 o  t | ƒ \ } } t | | <q,q,W| i ƒ  Sd  S(   Ns   messages   delivery-statuss   actions    s   delayeds   faileds   failures   original-recipients   final-recipients   rfc822(   s   addrss   typed_subpart_iterators   msgs   parts   is_multiparts   get_payloads   msgblocks   gets   lowers   actions   Stops   paramss   Falses   foundps   headers
   get_paramss   ks   vs   Trues   appends   extends   rtnaddrss   as   Nones	   parseaddrs   realnames   keys(   s   msgs   rtnaddrss   as   foundps   realnames   headers   ks   actions   parts   paramss   addrss   vs   msgblock(    (    s$   /var/mailman/Mailman/Bouncers/DSN.pys   check%   s>        
 c         C   s7   |  i ƒ  p |  i ƒ  d j o t Sn t |  ƒ Sd  S(   Ns   report(   s   msgs   is_multiparts   get_subtypes   Nones   check(   s   msg(    (    s$   /var/mailman/Mailman/Bouncers/DSN.pys   processR   s    !N(   s   __doc__s   email.Iteratorss   typed_subpart_iterators   email.Utilss	   parseaddrs	   cStringIOs   StringIOs   Mailman.Bouncers.BouncerAPIs   Stops   Trues   Falses	   NameErrors   checks   process(   s	   parseaddrs   typed_subpart_iterators   Falses   StringIOs   processs   Stops   Trues   check(    (    s$   /var/mailman/Mailman/Bouncers/DSN.pys   ?   s   	-