+
    i{> c                   s
   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t^ RI
t
^ RIt^ RIHt  ^ RIt. R6Ot] P"                  P%                  R4      t ! R R4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R	]P6                  P8                  4      t ! R  R
]4      t ! R! R"]4      t ! R# R]4      t ! R$ R]4      t  ! R% R]4      t! ! R& R]4      t" ! R' R(4      t# ! R) R*]#4      t$R7R+ lt%R, t&R- t'R. t(R/ t)R0 t* ! R1 R]+4      t, ! R2 R],4      t- ! R3 R],4      t. ! R4 R],4      t/ ! R5 R],4      t0R#   ] d    Rt ELEi ; i)8    N)GenericAliasMailboxMaildirmboxMHBabylMMDFMessageMaildirMessagemboxMessage	MHMessageBabylMessageMMDFMessageErrorNoSuchMailboxErrorNotEmptyErrorExternalClashErrorFormatErrorasciic                   s  a  ] tR t^"t o R#R ltR tR tR tR tR t	R$R lt
R	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR$R ltR tR$R ltR tR tR tR t R t!R t"R%R! lt#]$! ]%4      t&R"t'V t(R# )&r   Nc                s    \         P                  P                  \         P                  P                  V4      4      V n        W n        R # N)ospathZabspathZ
expanduser_path_factoryselfr   factorycreate   &&&& /usr/lib64/python3.14/mailbox.py__init__ZMailbox.__init__%   s*    WW__RWW%7%7%=>
    c                    \        R 4      hz&Method must be implemented by subclassZNotImplementedErrorr   message   &&r   addZMailbox.add*       !"JKKr    c                r!   r"   r#   r   keyr&   r   removeZMailbox.remove.   r(   r    c                s(    V P                  V4       R # r   )r+   r)   r&   r   __delitem__ZMailbox.__delitem__2   s    Cr    c                sN     V P                  V4       R #   \         d     R # i ; ir   )r+   KeyErrorr)   r&   r   discardZMailbox.discard5   s%    	KK 		s    $$c                r!   r"   r#   r   r*   r%      &&&r   __setitem__ZMailbox.__setitem__<   r(   r    c                sL     V P                  V4      #   \         d    Tu # i ; ir   )__getitem__r-   )r   r*   defaultr0   r   getZMailbox.get@   s,    	##C(( 	N	s    ##c                s   V P                   '       g   V P                  V4      # \        P                  ! V P	                  V4      4      ;_uu_ 4       pV P                  V4      uuR R R 4       #   + '       g   i     R # ; ir   )r   get_message
contextlibZclosingget_file)r   r*   Zfile   && r   r2   ZMailbox.__getitem__G   sS    }}}##C((##DMM#$6774}}T* 8777s   A--A>	c                r!   r"   r#   r)   r&   r   r5   ZMailbox.get_messageO   r(   r    c                sh    \         P                  ! V P                  V4      4      P                  4       # r   emailmessage_from_bytes	get_bytesZ	as_stringr)   r&   r   
get_stringZMailbox.get_stringS   s'    
 ''s(;<FFHHr    c                r!   r"   r#   r)   r&   r   r<   ZMailbox.get_bytesZ   r(   r    c                r!   r"   r#   r)   r&   r   r7   ZMailbox.get_file^   r(   r    c                r!   r"   r#   r      &r   iterkeysZMailbox.iterkeysb   r(   r    c                4    \        V P                  4       4      # r   )listr@   r>   r?   r   keysZMailbox.keysf   s    DMMO$$r    c              #  sz   "   V P                  4        F  p W,          pTx  K  	  R #   \         d     K$  i ; i5ir   r@   r-   r   r*   Zvalue   &  r   
itervaluesZMailbox.itervaluesj   s;     ==?C	 K #  s   ;)
;8;8;c                s"    V P                  4       # r   )rG   r>   r?   r   __iter__ZMailbox.__iter__s   s      r    c                rA   r   )rB   rG   r>   r?   r   valuesZMailbox.valuesv   s    DOO%&&r    c              #  s|   "   V P                  4        F  p W,          pY3x  K  	  R #   \         d     K%  i ; i5ir   rD   rE   rF   r   	iteritemsZMailbox.iteritemsz   s>     ==?C	 , #  s   <*<9<9<c                rA   r   )rB   rJ   r>   r?   r   itemsZMailbox.items   s    DNN$%%r    c                r!   r"   r#   r)   r&   r   __contains__ZMailbox.__contains__   r(   r    c                r!   r"   r#   r>   r?   r   __len__ZMailbox.__len__   r(   r    c                sV    V P                  4        F  pV P                  V4       K  	  R # r   )rC   r.   r)      & r   clearZMailbox.clear   s    99;CLL r    c                s`     W,          pT P                  T4       T#   \          d    Tu # i ; ir   )r-   r.   )r   r*   r3   result   &&& r   popZMailbox.pop   s7    	YF 	S  	N	s    --c                sj    V P                  4        F  pWP                  V4      3u # 	  \        R 4      h)zNo messages in mailbox)r@   rR   r-   r)   rN   r   popitemZMailbox.popitem   s1    ==?C#'' # 344r    c                s   \        VR 4      '       d   VP                  4       pM%\        VR4      '       d   VP                  4       pMTpRpV F
  w  rE WPV&   K  	  V'       d   \        R4      hR#   \         d    Rp K3  i ; i)rJ   rK   FTzNo message with key(s)N)hasattrrJ   rK   r-   )r   ZargZsourceZbad_keyr*   r%   s   &&    r   updateZMailbox.update   s    3$$]]_FS'""YY[FF"LC#S	 #
 344   s   A00B Bc                r!   r"   r#   r>   r?   r   flushZMailbox.flush   r(   r    c                r!   r"   r#   r>   r?   r   lockZMailbox.lock   r(   r    c                r!   r"   r#   r>   r?   r   unlockZMailbox.unlock   r(   r    c                r!   r"   r#   r>   r?   r   closeZMailbox.close   r(   r    c                sZ     VP                  R 4      #   \         d    \        R4      hi ; i)r   z?String input must be ASCII-only; use bytes or a Message instead)encodeZUnicodeError
ValueErrorr$   r&   r   _string_to_bytesZMailbox._string_to_bytes   s7    	2>>'** 	2 1 2 2	2s    *Fc                s>   \        V\        P                  P                  4      '       d   \        P
                  ! 4       p\        P                  P                  WC^ 4      pVP                  V4       VP                  ^ 4       VP                  4       pVP                  R\        4      pVP                  V4       V P                  '       d5   VP                  \        4      '       g   VP                  \        4       R# R# R# \        V\         \"        \        P$                  34      '       d   \        V\        P$                  4      '       d-   \&        P(                  ! R\*        ^4       VP-                  4       p\        V\         4      '       d   V P/                  V4      pV'       d   VP                  RR4      pVP                  R\        4      pVP                  V4       V P                  '       d5   VP                  \        4      '       g   VP                  \        4       R# R# R# \1        VR4      '       EdJ   \1        VR4      '       d)   \&        P(                  ! R\*        ^4       VP2                  pRp VP5                  4       pVP                  R	4      '       d   VRR R,           pM#VP                  R
4      '       d   VRR R,           pV'       g   MZV'       d(   VP7                  R4      '       d   RVR,          ,           pVP                  R\        4      pVP                  V4       TpK  V P                  '       d?   V'       d5   VP                  \        4      '       g   VP                  \        4       R# R# R# R# \9        R\;        V4      ,          4      h)r       
8Use of StringIO input is deprecated, use BytesIO insteads   
From s   
>From readbufferDUse of text mode files is deprecated, use a binary mode file insteadN   
      From s   >From i   NNInvalid message type: %s)
isinstancer:   r%   r   ioBytesIO	generatorBytesGeneratorflattenseekr_   replacelinesepwrite_append_newlineendswithstrbytesStringIOwarningswarnDeprecationWarninggetvaluer\   rT   r`   readline
startswith	TypeErrortype)	r   r%   ZtargetZmangle_from_r`   ZgendataZlastlinelines	   &&&&     r   _dump_messageZMailbox._dump_message   s    gu}}4455ZZ\F//00qICKK KKN;;=D<<w/DLL###DMM',B,BW% -C# #ubkk!:;;'2;;// *+=qB!**,'3''//8!//*kBooeW5GLL!###G,<,<W,E,EW% -F# Wf%%w)) 56H!M!..H'')==))9u,D]]5))9u,DDOOH$=$=$tBx/D||E73T"###9J9J79S9SW% :T# 6gFGGr    )r   r   NTr   F))__name__
__module____qualname____firstlineno__r   r'   r+   r,   r.   r1   r4   r2   r5   r=   r<   r7   r@   rC   rG   rH   rI   rJ   rK   rL   rM   rO   rR   rS   rU   rV   rW   rX   rY   r\   rs   r   classmethodr   __class_getitem____static_attributes____classdictcell____classdict__   @r   r   r   "   s      
LLL+LILLL%!'&LL
55"LLLL2 O4Hl $L1r    c                   s  a  ] tR tRt o RtR'R ltR tR tR tR t	R	 t
R
 tR tR tV 3R lR ltR tV 3R lR ltV 3R lR ltV 3R lR ltR tR tR tR tR tR tR tR tR tR tR  tR! t^tR" t R# t!R$ t"R% t#R&t$V t%R# )(r   i  :Nc           	     s   \         P                  WW#4       R \        P                  P	                  V P
                  R 4      R\        P                  P	                  V P
                  R4      R\        P                  P	                  V P
                  R4      /V n        \        P                  P                  V P
                  4      '       gx   V'       d[   \        P                  ! V P
                  R4       V P                  P                  4        F  p\        P                  ! VR4       K  	  M\        V P
                  4      h/ V n        R^ R^ /V n        ^ V n        RV n        R# )tmpnewcur  g?N)r   r   r   r   joinr   _pathsexistsmkdirrI   r   _toc_toc_mtimes
_last_read_skewfactor)r   dirnamer   r   r   s   &&&& r   r   ZMaildir.__init__  s    8277<<

E2277<<

E2277<<

E2
 ww~~djj))U+ KK..0DHHT5) 1 )44	!1eQ/r    c                s.   V P                  4       p V P                  W4       \        T4       \        T\        4      '       dE   TP                  4       pT P                  TP                  4       ,           pY@P                  8X  d   R pMRpR p\        P                  P                  TP                  4      P                  T P                  4      ^ ,          p\        P                  P!                  T P"                  Y5T,           4      p\        T\        4      '       dY   \        P$                  ! TP                  \        P                  P'                  TP                  4      TP)                  4       34         \        P*                  ! TP                  T4       \        P
                  ! TP                  4       T#   \         d3    TP                  4        \        P
                  ! TP                  4       h i ; i  \,        \.        3 d&    \        P0                  ! TP                  T4        T# i ; i  \2         dX   p\        P
                  ! TP                  4       TP4                  \4        P6                  8X  d   \9        RT,          4      hh Rp?ii ; i) r   z$Name clash with existing message: %sN)_create_tmpr   BaseExceptionrY   r   r+   name_sync_closeri   r	   
get_subdircolonget_infor   Zbasenamesplitr   r   utimegetatimeget_datelinkAttributeErrorPermissionErrorrenameOSErrorerrnoZEEXISTr   )r   r%   Ztmp_filesubdirsuffixuniqZdeste   &&      r   r'   ZMaildir.add$  s   ##%	w1
 	Hg~..'')FZZ'"2"2"44F#FFww.44TZZ@Cww||DJJv>g~..HHX]]gg&&x}}5w7G7G7IJL
	)t, 		(--( G  	NNIIhmm$	0 #O4 /		(--. /  	IIhmm$ww%,,&()O+/*0 1 1 	sB   F9 6!G9  H2 9=G692H/+H2 .H//H2 2J=AJJc                s    \         P                  ! \         P                  P                  V P                  V P                  V4      4      4       R # r   )r   r+   r   r   r   _lookupr)   r&   r   r+   ZMaildir.removeN  s*    
		"'',,tzz4<<+<=>r    c                sZ     V P                  V4       R #   \        \        3 d     R # i ; ir   )r+   r-   FileNotFoundErrorr)   r&   r   r.   ZMaildir.discardR  s+    	KK+, 		s    **c                s&   V P                  V4      pV P                  V4      pV P                  V4      p\        V\        4      '       d   TpMTp\        P
                  P                  V4      pV P                  V9   d5   V P                  VP                  V P                  4      R,          ,           pMRpV P                  V4       \        P
                  P                  V P                  V4      p	\        P
                  P                  V P                  WqV,           4      p
\        V\        4      '       dE   \        P                  ! V	\        P
                  P                  V	4      VP                  4       34       \        P                  ! W4       R# )   r   Nrh   )r   r'   ri   r	   r   r   r   r   r   r.   r   r   r   r   r   r   )r   r*   r%   old_subpathZtemp_keyZtemp_subpathZdominant_subpathr   r   Ztmp_pathnew_paths   &&&        r   r1   ZMaildir.__setitem__Z  s   ll3'88G$||H-g~..+  +!12::))ZZ"2"8"8"DR"HHFFS77<<

L977<<

F&LAg~..HHXgg&&x0'2B2B2DEG
 			(%r    c                s   V P                  V4      p\        \        P                  P	                  V P
                  V4      R 4      ;_uu_ 4       pV P                  '       d   V P                  V4      pM\        V4      pRRR4       \        P                  P                  V4      w  rVXP                  V4       V P                  V9   d2   VP                  VP                  V P                  4      R,          4       VP                  \        P                  P                  \        P                  P	                  V P
                  V4      4      4       V#   + '       g   i     L; i)rbNrh   )r   openr   r   r   r   r   r	   r   
set_subdirr   set_infoset_dategetmtime)r   r*   subpathfmsgr   r      &&     r   r5   ZMaildir.get_messageu  s    ,,s#"'',,tzz73T::a}}}mmA&$Q'	 ;
 ww}}W-v::LLDJJ/34RWW%%bggll4::w&GHI
 ;:s   0EE"	c                s   \        \        P                  P                  V P                  V P                  V4      4      R 4      ;_uu_ 4       pVP                  4       P                  \        R4      uuRRR4       #   + '       g   i     R# ; i)r   r]   N)	r   r   r   r   r   r   r_   rp   rq   r   r*   r   r8   r   r<   ZMaildir.get_bytes  sS    "'',,tzz4<<+<=tDD668##GU3 EDDDs   $A;;B	c                s    \        \        P                  P                  V P                  V P                  V4      4      R 4      p\        V4      # )r   )r   r   r   r   r   r   
_ProxyFiler   r8   r   r7   ZMaildir.get_file  s4    djj$,,s*;<dC!}r    c                s    V P                  V4      pV P                  V9   d#   VP                  V P                  4      R,          # R# )r   r   rh   )r   r   r   )r   r*   r   r8   r   r   ZMaildir.get_info  s7    ,,s#:: ==,R00r    c                    < V ^8  d   QhRS[ /# )   inforu   Zformatr      "r   __annotate__Maildir.__annotate__  s     % %# %r    c                s   \        V\        4      '       g   \        R \        V4       24      hV P	                  V4      pVP                  V P                  4      ^ ,          pV'       d   W@P                  V,           ,          pWC8X  d   R# \        P                  P                  V P                  V4      p\        P                  P                  V P                  V4      p\        P                  ! WV4       W@P                  V&   R# )zinfo must be a string: N)ri   ru   r~   r   r   r   r   r   r   r   r   r   r   )r   r*   r   r   Znew_subpathZold_pathr   s   &&&    r   r   ZMaildir.set_info  s    $$$5d4j\BCCll3'!''

3A6::,,K%77<<

K877<<

K8
		(%$		#r    c                sh    V P                  V4      pVP                  R 4      '       d
   VR,          # R# 2,:r   NNr   )r   r}   )r   r*   r   r8   r   	get_flagsZMaildir.get_flags  s+    }}S!??4  8Or    c                r   )r   flagsr   r   r   r   r   r     s     ? ?C ?r    c                s    \        V\        4      '       g   \        R \        V4       24      hV P	                  VRRP                  \        \        V4      4      4      ,           4       R# )zflags must be a string: r   r   N)ri   ru   r~   r   r   r   sortedset)r   r*   r   r0   r   	set_flagsZMaildir.set_flags  sK    %%%6tE{mDEEc4"''&U*<"==>r    c                r   r   flagr   r   r   r   r   r     s     K K# Kr    c           
     s    \        V\        4      '       g   \        R \        V4       24      hV P	                  VRP                  \        V P                  V4      4      \        V4      ,          4      4       R# zflag must be a string: r   N)ri   ru   r~   r   r   r   r   r   r   r*   r   r0   r   add_flagZMaildir.add_flag  sT    $$$5d4j\BCCsBGGCs(;$<s4y$HIJr    c                r   r   r   r   r   r   r   r     s     O OS Or    c           
     s$   \        V\        4      '       g   \        R \        V4       24      hV P	                  V4      '       dL   V P                  VRP                  \        V P	                  V4      4      \        V4      ,
          4      4       R# R# r   )ri   ru   r~   r   r   r   r   r   r   r0   r   remove_flagZMaildir.remove_flag  sh    $$$5d4j\BCC>>#NN3DNN3,?(@3t9(L MN r    c              #  s   "   V P                  4        V P                   F  p V P                  V4       Tx  K  	  R #   \         d     K-  i ; i5ir   )_refreshr   r   r-   r)   rN   r   r@   ZMaildir.iterkeys  sG     99CS! I   s%    A>
AA	AAAc                >    V P                  4        WP                  9   # r   )r   r   r)   r&   r   rL   ZMaildir.__contains__  s    iir    c                L    V P                  4        \        V P                  4      # r   )r   lenr   r>   r?   r   rM   ZMaildir.__len__  s    499~r    c                    R # r    r>   r?   r   rV   ZMaildir.flush  s     	r    c                r   r   r   r>   r?   r   rW   ZMaildir.lock      r    c                r   r   r   r>   r?   r   rX   ZMaildir.unlock  r   r    c                r   r   r   r>   r?   r   rY   ZMaildir.close  r   r    c                sj   . p\         P                  ! V P                  4       F  p\        V4      ^8  g   K  V^ ,          R8X  g   K%  \         P                  P                  \         P                  P                  V P                  V4      4      '       g   Kt  VP                  VR,          4       K  	  V# )r   .r   NN)r   listdirr   r   r   isdirr   appendr   rP   entryrF   r   list_foldersZMaildir.list_folders  sp    ZZ

+E5zA~%(c/ww}}RWW\\$**e<==eBi( , r    c                s    \        \        P                  P                  V P                  R V,           4      V P
                  RR7      # )r   Fr   r   )r   r   r   r   r   r   r   folderr&   r   
get_folderZMaildir.get_folder  s2    rww||DJJf=#}}#% 	%r    c                s   \         P                  P                  V P                  R V,           4      p\	        W P
                  R7      p\         P                  P                  VR4      p\         P                  P                  V4      '       gP   \         P                  ! \         P                  ! V\         P                  \         P                  ,          R4      4       V# )r   r   Zmaildirfolderi  )r   r   r   r   r   r   r   rY   r   O_CREATO_WRONLY)r   r   r   rP   Zmaildirfolder_path   &&   r   
add_folderZMaildir.add_folder  s    ww||DJJf5}}5WW\\$@ww~~011HHRWW/bkk1I r    c                s*   \         P                  P                  V P                  R V,           4      p\         P                  ! \         P                  P                  VR4      4      \         P                  ! \         P                  P                  VR4      4      ,            F3  p\        V4      ^8  g   V^ ,          R 8w  g   K#  \        RV,          4      h	  \         P                  ! V4       Fs  pVR8w  g   K  VR8w  g   K  VR8w  g   K  \         P                  P                  \         P                  P                  W#4      4      '       g   Kb  \        RV: RV: 24      h	  \         P                  ! VRR7       F~  w  rEpV F6  p\         P                  ! \         P                  P                  WC4      4       K8  	  V F6  p\         P                  ! \         P                  P                  WC4      4       K8  	  K  	  \         P                  ! V4       R	# )
r   r   r   zFolder contains message(s): %sr   zFolder contains subdirectory 'z': F)ZtopdownN)r   r   r   r   r   r   r   r   Zwalkr+   rmdir)r   r   r   r   ZrootZdirsZfilesr   r   remove_folderZMaildir.remove_folder  sY   ww||DJJf5ZZT5 9:ZZT5 9:; ;E5zA~qS#$Dv$MNN; ZZ%E~%5.Ue^ww}}RWW\\$677#%+U%4 5 5 &
 "$u!=D		"'',,t34 d23  ">
 	r    c                s   \         P                   ! 4       p\        P                  ! \        P                  P	                  V P
                  R 4      4       Fq  p\        P                  P	                  V P
                  R V4      pV\        P                  P                  V4      ,
          R8  g   K[  \        P                  ! V4       Ks  	  R# )r   i@ N)timer   r   r   r   r   r   r+   )r   nowr   r   s   &   r   cleanZMaildir.clean  su    iikZZTZZ ?@E77<<

E59DRWW%%d++f4		$ Ar    c           	     s   \         P                   ! 4       p\        P                  ! 4       pR V9   d   VP                  R R4      pRV9   d   VP                  RR4      p\	        V4      : R\	        V^,          R,          4      : R\
        P                  ! 4       : R\        P                  : RV: 2	p\
        P                  P                  V P                  R	V4      p \
        P                  ! V4       \!        R
T,          4      h  \         d?    \        ;P                  ^,          un         \        T4      u #   \         d      LVi ; ii ; i)Z/z\057r   z\072z.Mg    .APZQr   r   z&Name clash prevented file creation: %s)r   socketgethostnamerp   intr   getpidr   _countr   r   r   statr   _create_carefullyFileExistsErrorr   )r   r   Zhostnamer   r   s   &    r   r   ZMaildir._create_tmp  s    iik%%'(?''W5H(?''W5H$'Hc#'C-.@"))+$+NNH>ww||DJJt4	GGDM !!I!%"& ' 	' ! 	NNaN(.." 		s0   D (E0
D=:E=EEEEc                s   \         P                   ! 4       V P                  ,
          ^V P                  ,           8  dw   RpV P                   FZ  p\        P
                  P                  V P                  V,          4      pW0P                  V,          8  d   RpW0P                  V&   K\  	  V'       g   R# / V n        V P                   F  pV P                  V,          p\        P                  ! V4       F  pVP                  R4      '       d   K  \        P
                  P                  WE4      p\        P
                  P                  V4      '       d   Kb  VP                  V P                  4      ^ ,          p\        P
                  P                  W%4      V P                  V&   K  	  K  	  \         P                   ! 4       V n        R# )r   FTNr   )r   r   r   r   r   r   r   r   r   r   r}   r   r   r   r   )r   Zrefreshr   Zmtimer   r   Zpr   s   &       r   r   ZMaildir._refresh4  s8    99;(1t/?/?+??G**((V)<=++F33"G+0  (	 +
 	&&F;;v&DD)##C((GGLL-77==##{{4::.q1"$'',,v"=		$ * ' ))+r    c                s    \         P                  P                  \         P                  P                  V P                  V P
                  V,          4      4      '       d   V P
                  V,          #  V P                  4         V P
                  V,          #   \         d     L1i ; i  \         d    \        R T,          4      Rhi ; i)No message with key: %sN)r   r   r   r   r   r   r-   r   r)   r&   r   r   ZMaildir._lookupZ  s    	ww~~bggll4::tyy~FGGyy~% H 		F99S>!	  		
  	F4s:;E	Fs$   AB  B B) B&%B&)Cc                s    \        V R 4      '       g   V P                  4       V n          V \        V P                  4      ,          #   \         d     R# \
         d     K9  i ; i)_onetime_keysN)rT   r@   r  nextZStopIterationr-   r>   r?   r   r  ZMaildir.nexth  sX    t_--!%DD!3!3455   s   A A"A"A"!A")r   r  r   r   r   r   r   )&r   r   r   r   r   r   r'   r+   r.   r1   r5   r<   r7   r   r   r   r   r   r   r@   rL   rM   rV   rW   rX   rY   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r     s      E((T?&64

% %? ?K KO O 

%&  F'0$&LF
 
r    c                   s   a  ] tR tRt o RR ltR tR tR tR tR t	R	 t
R
 tR tR tR tR tR tR tRR ltR tRtV tR# )_singlefileMailboxiu  Nc                s*   \         P                  WW#4        \        V P                  R 4      pY@n
        RT n        ^ T n        RT n        RT n        RT n        RT n        R#   \         d   pTP
                  \
        P                  8X  d9   T'       d   \        T P                  R4      p Rp?L\        T P                  4      hTP
                  \
        P                  \
        P                  39   d   \        T P                  R4      p Rp?Lh Rp?ii ; i)rb+zwb+r   NF)r   r   r   r   r   r   ENOENTr   EACCESEROFS_filer   	_next_key_pending_pending_sync_locked_file_length)r   r   r   r   r   r   s   &&&&  r   r   Z_singlefileMailbox.__init__x  s    W5	TZZ'A 
	" !  		ww%,,&TZZ/A,TZZ88U\\5;;77T*		s*   A   D+&DD-ADDDc                s    V P                  4        V P                  V4      V P                  V P                  &   V ;P                  ^,          un        RV n        V P                  ^,
          # )r   T)r   _append_messager   r
  r  r$   r&   r   r'   Z_singlefileMailbox.add  sO    $($8$8$A		$..!! "~~!!r    c                sP    V P                  V4       V P                  V R V n        R# TN)r   r   r  r)   r&   r   r+   Z_singlefileMailbox.remove  s     SIIcNr    c                sr    V P                  V4       V P                  V4      V P                  V&   R V n        R# r  )r   r  r   r  r/   r0   r   r1   Z_singlefileMailbox.__setitem__  s-    S--g6		#r    c              #  sv   "   V P                  4        V P                  P                  4        R j  xL
  R #  L5ir   )r   r   rC   r>   r?   r   r@   Z_singlefileMailbox.iterkeys  s"     99>>###s   .979c                r   r   )r   r   r)   r&   r   rL   Z_singlefileMailbox.__contains__  s    iir    c                r   r   )r   r   r   r>   r?   r   rM   Z_singlefileMailbox.__len__  s    499~r    c                sf    V P                   '       g   \        V P                  4       R V n         R# R# r  )r  
_lock_filer	  r>   r?   r   rW   Z_singlefileMailbox.lock  s#    |||tzz"DL r    c                sf    V P                   '       d   \        V P                  4       R V n         R# R# FN)r  _unlock_filer	  r>   r?   r   rX   Z_singlefileMailbox.unlock  s#    <<<$ DL r    c           	     sz   V P                   '       g1   V P                  '       d   \        V P                  4       R V n        R# V P                  P	                  ^ ^4       V P                  P                  4       pWP                  8w  d   \        RV P                  V3,          4      h\        V P                  4      p / pV P                  V4       \        V P                  P                  4       4       F  pV P                  V,          w  rVV P                  P	                  V4       V P                  V4       VP                  4       p V P                  P                  \!        RW`P                  P                  4       ,
          4      4      pV'       g   MVP#                  V4       K`  WrP                  4       3W4&   V P%                  V4       K  	  VP                  4       V n        \/        T4       T P                  P'                  4        \(        P0                  ! T P                  4      p	\(        P2                  ! TP,                  T	P4                  4        \(        P6                  ! TP,                  T	P8                  T	P:                  4        \(        P@                  ! TP,                  T P                  4       \E        T P                  R4      T n        Y0n        R T n         R T n        T PF                  '       d   \I        T P                  R R7       R# R#    TP'                  4        \(        P*                  ! TP,                  4       h ; i  \<        \>        3 d     Li ; i  \B         dP    \(        P*                  ! T P                  4       \(        P@                  ! TP,                  T P                  4        ELi ; i)FNz4Size of mailbox file changed (expected %i, found %i)   r  )dotlock)%r  r  _sync_flushr	  ro   tellr  r   _create_temporaryr   _pre_mailbox_hookr   r   rC   _pre_message_hookr_   Zminrr   _post_message_hookrY   r   r+   r   r   r   ZchmodZst_modeZchownZst_uidZst_gidr   r   r   r   r   r  r  )
r   Zcur_lenZnew_fileZnew_tocr*   startstopZ	new_startr`   r   s
   &         r   rV   Z_singlefileMailbox.flush  s   }}}!!! DJJ'%*" 	

1**//#'''$ &?&*&7&7%A&B C C %TZZ0	G""8,diinn./"iin

&&&x0$MMO	!ZZ__S15

8I1I.K LF!NN6* )==?;''1 0 !)D
 	H

wwtzz"
-	HHX]]DKK=	1IIhmmTZZ0 $**e,
	"<<<tzz51 /	NNIIhmm$ ( 		  	1IIdjj!IIhmmTZZ0	1s2   =D'L 6M	 +M  3M	MM AN:9N:c                r   r   r   r   r   r&   r   r  Z$_singlefileMailbox._pre_mailbox_hook  r   r    c                r   r   r   r  r&   r   r  Z$_singlefileMailbox._pre_message_hook  r   r    c                r   r   r   r  r&   r   r  Z%_singlefileMailbox._post_message_hook  r   r    c                s    V P                  4         V P                  '       d   V P                  4        V P                  P	                  4        R #   T P                  P	                  4        i ; i   T P                  '       d   T P                  4        T P                  P	                  4        i   T P                  P	                  4        i ; i; ir   )rV   r  rX   r	  rY   r>   r?   r   rY   Z_singlefileMailbox.close  s    	#JJL#<<<KKM

  "

  "	#<<<KKM

  "

  "s.   A0 "A A-0C2"B/C/CCc                s    V P                   f   V P                  4        Ve    V P                   V,          # R #   \         d    \        RT,          4      R hi ; i)Nr  )r   _generate_tocr-   r)   r&   r   r   Z_singlefileMailbox._lookup  s\    99 ?Jyy~%   J83>?TIJs	   9 Ac                sX   V P                   P                  ^ ^4       V P                   P                  4       p\        V P                  4      ^ 8X  d.   V P
                  '       g   V P                  V P                   4        V P                  V P                   4       V P                  V4      pV P                  V P                   4       T P                   P                  4        T P                   P                  4       T n        T#   \         d    T P                   P                  T4       h i ; ir    )r	  ro   r  r   r   r  r  r  _install_messager  r   ZtruncaterV   r  )r   r%   ZbeforeZoffsets   &&  r   r  Z"_singlefileMailbox._append_message%  s    

1"tyy>Qt}}}
 ""4::.	""4::.++G4G##DJJ/ 	

 JJOO-  	JJ'	s   ?AD (D))r	  r  r  r
  r  r  r   r   r   )r   r   r   r   r   r'   r+   r1   r@   rL   rM   rW   rX   rV   r  r  r  rY   r   r  r   r   r   r   r   r  r  u  s]     !."$
 

 !B2H	#J r    r  c                   sN   a  ] tR tRt o RtR tR
R ltR
R ltR
R ltR t	Rt
V tR	# )	_mboxMMDFi<  Tc                s   V P                  V4      w  r#V P                  P                  V4       V P                  P                  4       P	                  \
        R 4      P                  R4      pV P                  P                  W0P                  P                  4       ,
          4      pV P                  VP	                  \
        R4      4      pVP                  V4       VP                  VR,          4       V# )r    r   r]   re   )r   r	  ro   r|   rp   rq   Zdecoder_   r  _message_factoryZset_unixfromset_from)r   r*   r  r  	from_linestringr   r   r   r5   Z_mboxMMDF.get_messageA  s    ll3'

JJ'')11'3?FFwO	

(9!9:##FNN7E$BC#Yr]#
r    c                sl    \         P                  ! V P                  W4      4      P                  VR 7      # ))unixfromr9   )r   r*   from_r0   r   r=   Z_mboxMMDF.get_stringL  s.    ''NN3&((1	5	(A	Br    c                s@   V P                  V4      w  r4V P                  P                  V4       V'       g   V P                  P                  4        V P                  P	                  W@P                  P                  4       ,
          4      pVP                  \        R 4      # r]   )r   r	  ro   r|   r_   r  rp   rq   )r   r*   r)  r  r  r'     &&&   r   r<   Z_mboxMMDF.get_bytesQ  sf    ll3'

JJ!

(9!9:~~gu--r    c                s    V P                  V4      w  r4V P                  P                  V4       V'       g   V P                  P                  4        \	        V P                  V P                  P                  4       V4      # r   )r   r	  ro   r|   _PartialFiler  )r   r*   r)  r  r  s   &&&  r   r7   Z_mboxMMDF.get_fileZ  sS    ll3'

JJ!DJJ

(94@@r    c                s   R p\        V\        4      '       d   V P                  V4      p\        V\        4      '       dF   VP	                  R4      '       d/   VP                  R4      pVR8w  d   VR V pW^,           R  pMTpRpM\        V\        4      '       d*   VP                  4       P                  R4      pRV,           pMO\        V\        P                  P                  4      '       d&   VP                  4       pVe   VP                  R4      pVf?   R\        P                  ! \        P                  ! 4       4      P                  4       ,           pV P                   P#                  4       pV P                   P%                  V\&        ,           4       V P)                  WP                   V P*                  4       V P                   P#                  4       pWV3# )Nrd   r]   r    r   s   From MAILER-DAEMON rh   )ri   ru   r\   rv   r}   find_mboxMMDFMessageget_fromrZ   r:   r%   r   get_unixfromr   asctimegmtimer	  r  rr   rq   r   _mangle_from_)r   r%   r&  ZnewlineZauthorr  r  r   r   r!  Z_mboxMMDF._install_messageb  sg   	gs##++G4Ggu%%'*<*<X*F*Fll5)G"}#HW-	!A+,/#	!122%%'..w7F 6)I!6!677,,.I$%,,W5	.dkkm1L1S1S1UUI

!

W,-7JJ0B0BCzz }r    r   Nr   )r   r   r   r   r3  r5   r=   r<   r7   r!  r   r   r   r   r   r#  r#  <  s,      M	B
.A r    r#  c                   s>   a  ] tR tRt o RtRtRR ltR tR tRt	V t
R# )	r   i  TNc                H    \         V n        \        P                  WW#4       R # r   )r
   r$  r#  r   r   r   r   r   Zmbox.__init__       +4w7r    c                s0    VP                  \        4       R # r   rr   rq   r  r&   r   r  Zmbox._post_message_hook  s    	r    c                s(   . . r!R pV P                   P                  ^ 4        V P                   P                  4       pV P                   P                  4       pVP	                  R4      '       dn   \        V4      \        V4      8  d@   V'       d'   VP                  V\        \        4      ,
          4       MVP                  V4       VP                  V4       R pK  V'       gA   V'       d'   VP                  V\        \        4      ,
          4       MVP                  V4       MV\        8X  d   RpEK  R pEK  \        \        \        W4      4      4      V n        \        V P                  4      V n        V P                   P                  4       V n        R# )FTrd   N)r	  ro   r  r|   r}   r   r   rq   dict	enumeratezipr   r
  r  )r   startsstopsZlast_was_emptyline_posr      &     r   r  Zmbox._generate_toc  s   B

zz(H::&&(Dx((u:F+%XG%<=
 X.h'!&!LLCL!89LL*!%!&3v#567	TYY JJOO-r    r  r$  r
  r   r   )r   r   r   r   r3  rs   r   r  r  r   r   r   r   r   r   r     s'      M O8
. .r    c                   s<   a  ] tR tRt o RR ltR tR tR tRtV t	R# )	r   i  Nc                r4  r   )r   r$  r#  r   r   r   r   r   ZMMDF.__init__  r5  r    c                >    VP                  R \        ,           4       R#    Nr6  r  r&   r   r  ZMMDF._pre_message_hook  s    	#g-.r    c                sT    VP                  \        R ,           \        ,           4       R# r@  r6  r  r&   r   r  ZMMDF._post_message_hook  s    	--78r    c                s:   . . r!V P                   P                  ^ 4       ^ p TpV P                   P                  4       pV P                   P                  4       pVP	                  R\
        ,           4      '       d   VP                  V4        TpV P                   P                  4       pV P                   P                  4       pVR\
        ,           8X  d(   VP                  V\        \
        4      ,
          4       K  V'       d   Kz  VP                  V4       K  V'       d   EK   \        \        \        Y4      4      4      T n        \        T P                  4      T n        T P                   P                  ^ ^4       T P                   P                  4       T n        R# )r    rA  N)r	  ro   r|   r  r}   rq   r   r   r7  r8  r9  r   r
  r  )r   r:  r;  next_posr<  r   r=  r   r  ZMMDF._generate_toc  s   B

H::&&(Dzz(H2W<==h''H::..0D#zz0H2W<<XG%<=!TX.T3v#567	TYY

1 JJOO-r    r>  r   )
r   r   r   r   r   r  r  r  r   r   r   r   r   r   r     s     8
/9. .r    c                   s   a  ] tR tRt o RR ltR tR tR tR tR t	R	 t
R
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )r   i  Nc                s4   \         P                  WW#4       \        P                  P	                  V P
                  4      '       g   V'       d   \        P                  ! V P
                  R 4       \        P                  ! \        P                  ! \        P                  P                  V P
                  R4      \        P                  \        P                  ,          \        P                  ,          R4      4       M\        V P
                  4      hRV n        R# )r   .mh_sequencesi  FN)r   r   r   r   r   r   r   rY   r   r   r   ZO_EXCLr   r   r  r   r   r   r   ZMH.__init__  s    W5ww~~djj))U+djj/!J!#bii!7"++!EuN O )44r    c                s   V P                  4       p\        V4      ^ 8X  d   ^pM\        V4      ^,           p\        P                  P                  V P                  \        V4      4      p\        V4      pRp V P                  '       d   \        V4         V P                  W4       \!        T\"        4      '       d   T P%                  Y4       T P                  '       d   \        T4       T'       g   \        T4       T#   \         dC    T P                  '       d   \        T4       \        T4       Rp\        P                  ! T4       h i ; i  T P                  '       d   \        T4       i i ; i  T'       g   \        T4       i i ; i)r    FT)rC   r   Zmaxr   r   r   r   ru   r   r  r  r   r   r  r   r+   ri   r   _dump_sequences)r   r%   rC   Znew_keyr   r   closedr   r   r'   ZMH.add  s$   yy{t9>G$i!mG77<<

CL9h'	|||1$	&&w2 gy11((:<<< OA! % |||$QN!FIIh' <<< O   A s<   7E3 D  ''E E3  E0EE  E00E3 3F	c                s\   \         P                  P                  V P                  \	        V4      4      p \        VR 4      pVP                  4        \         P                  ! V4       R#   \         d8   pTP                  \        P                  8X  d   \        RT,          4      hh Rp?ii ; ir  r  N)r   r   r   r   ru   r   rY   r+   r   r   r  r-   )r   r*   r   r   r   r   r   r+   Z	MH.remove  s{    ww||DJJC1		T5!A GGIIIdO  	ww%,,&83>??		s   A) )B+42B&&B+c                s   \         P                  P                  V P                  \	        V4      4      p \        VR 4      p T P                  '       d   \        T4        \         P                  ! \         P
                  ! T\         P                  \         P                  ,          4      4       T P                  Y$4       \!        T\"        4      '       d   T P%                  Y!4       T P                  '       d   \'        T4       \)        T4       R#   \         d8   pTP                  \        P                  8X  d   \        RT,          4      hh Rp?ii ; i  T P                  '       d   \'        T4       i i ; i  \)        T4       i ; irF  )r   r   r   r   ru   r   r   r   r  r-   r  r  rY   r   O_TRUNCr   ri   r   rD  r  r   )r   r*   r%   r   r   r   r+  r   r1   ZMH.__setitem__  s   ww||DJJC1	T5!A	|||1$r{{RZZ'?@A""7.gy11((6<<< ON#  	ww%,,&83>??		 <<< O   NsB   D E8 E8  BE &E8 E2EE E55E8 8Fc                sL    V P                   '       d?   \        \        P                  P	                  V P
                  \        V4      4      R 4      pM>\        \        P                  P	                  V P
                  \        V4      4      R4      p T;_uu_ 4        V P                   '       d   \        V4        \        V4      pV P                   '       d   \        V4       RRR4       T P                  4       P                  4        F  w  rVY9   g   K  XP!                  T4       K   	  X#   \         d8   pTP                  \        P                  8X  d   \        RT,          4      hh Rp?ii ; i  T P                   '       d   \        T4       i i ; i  + '       g   i     L; i)r  r   r  N)r  r   r   r   r   r   ru   r   r   r  r-   r  r   r  get_sequencesrK   add_sequence)r   r*   r   r   r   r   key_listr   r   r5   ZMH.get_message7  s    		|||djj#c(;UCdjj#c(;TB Q|||1$l<<< O  #00288:ND  & ; 
!  	ww%,,&83>??		 <<< O   QsF   D+ =D+ =D+ F9E0F+E-62E((E-0 FFF#	c                s     V P                   '       d?   \        \        P                  P	                  V P
                  \        V4      4      R 4      pM>\        \        P                  P	                  V P
                  \        V4      4      R4      p T;_uu_ 4        V P                   '       d   \        V4        VP                  4       P                  \        R4      V P                   '       d   \        V4       uuRRR4       #   \         d8   pTP                  \        P                  8X  d   \        RT,          4      hh Rp?ii ; i  T P                   '       d   \        T4       i i ; i  + '       g   i     R# ; i)r  r   r  Nr]   )r  r   r   r   r   r   ru   r   r   r  r-   r  r_   rp   rq   r  r   r*   r   r   r"  r   r<   ZMH.get_bytesP  s    		|||djj#c(;UCdjj#c(;TB Q|||1$vvx''7<<< O Q  	ww%,,&83>??		 <<< O   QQsF   D =D =D E,9#E	E,E2EE	 E))E,,E=	c                s    \        \        P                  P                  V P                  \        V4      4      R 4      p\        T4      #   \         d8   pTP                  \        P                  8X  d   \        RT,          4      hh Rp?ii ; i)r   r  N)r   r   r   r   r   ru   r   r   r  r-   r   rK  r"  r   r7   ZMH.get_filee  sl    	RWW\\$**c#h7>A !}  	ww%,,&83>??		s   =A
 
B2BBc                st    \        \        R  \        P                  ! V P                  4       4       4      4      # )c              3   sh   "   T F(  pVP                  4       '       g   K  \        V4      x  K*  	  R # 5ir   )isdigitr   ).0r   rN   r   	<genexpr>ZMH.iterkeys.<locals>.<genexpr>r  s(      :3I%). &3u::3Is   22)Ziterr   r   r   r   r>   r?   r   r@   ZMH.iterkeysp  s/    F :2::djj3I : : ; 	;r    c                s    \         P                  P                  \         P                  P                  V P                  \        V4      4      4      # r   )r   r   r   r   r   ru   r)   r&   r   rL   ZMH.__contains__u  s,    ww~~bggll4::s3x@AAr    c                sF    \        \        V P                  4       4      4      # r   )r   rB   r@   r>   r?   r   rM   Z
MH.__len__y  s    4())r    c                s&   V'       d   R MRpV'       d   RR/M/ p\         P                  P                  V P                  R4      p  \	        VRV,           3/ VB #   \
         d     Mi ; i \	        TRT,           3/ TB #   \         d     KJ  i ; i)r   ZbencodingASCIIrC  zr+zx+)r   r   r   r   r   r   r   )r   textZmodeZkwargsr   r   r   _open_mh_sequences_fileZMH._open_mh_sequences_file}  s    rs*.*g&Bww||DJJ8D$+888$ D$+888" s$   A A)(A)-B BBc                s    V P                   '       g6   V P                  R R7      V n        \        V P                  4       RV n         R# R# )FrQ  TN)r  rR  r	  r  r>   r?   r   rW   ZMH.lock  s8    |||5555ADJtzz"DL r    c                s    V P                   '       d6   \        V P                  4       \        V P                  4       V =R V n         R# R# r  )r  r  r	  r   r>   r?   r   rX   Z	MH.unlock  s4    <<<$

#
 DL	 r    c                r   r   r   r>   r?   r   rV   ZMH.flush  r   r    c                sN    V P                   '       d   V P                  4        R # R # r   )r  rX   r>   r?   r   rY   ZMH.close  s    <<<KKM r    c                s   . p\         P                  ! V P                  4       Fc  p\         P                  P	                  \         P                  P                  V P                  V4      4      '       g   KR  VP                  V4       Ke  	  V# r   )r   r   r   r   r   r   r   r   rF   r   r   ZMH.list_folders  sW    ZZ

+Eww}}RWW\\$**e<==e$ , r    c                s    \        \        P                  P                  V P                  V4      V P
                  R R7      # )Fr   r   r   r   r   r   r   r   r&   r   r   ZMH.get_folder  s-    "'',,tzz62--7 	7r    c                s    \        \        P                  P                  V P                  V4      V P
                  R 7      # )r   rT  r   r&   r   r   ZMH.add_folder  s+    "'',,tzz62--) 	)r    c                st   \         P                  P                  V P                  V4      p\         P                  ! V4      pVR .8X  d6   \         P
                  ! \         P                  P                  VR 4      4       M$V. 8X  d   M\        RV P                  ,          4      h\         P                  ! V4       R# )rC  zFolder not empty: %sN)r   r   r   r   r   r+   r   r   )r   r   r   Zentriesr"  r   r   ZMH.remove_folder  sx    ww||DJJ/**T"''IIbggll49:] 6 CDD
r    c                sZ   / p \        \        P                  P                  V P                  R 4      RRR7      pT;_uu_ 4        \        T P                  4       4      pT F  p TP                  R4      w  rV\        4       pTP                  4        Fp  pTP                  4       '       d   TP                  \        T4      4       K5  R TP                  R4       4       w  rTP                  \        Y^,           4      4       Kr  	  \        T4       Uu. uF  pY9   g   K  TNK  	  upY&   \        Y,          4      ^ 8X  d   Y K  K  	  RRR4       T#   \
         d    Tu # i ; iu upi   \          d"    \#        RTP%                  4       ,          4      hi ; i  + '       g   i     T# ; i)	rC  ZrrP  )rO  r   c              3   s8   "   T F  p\        V4      x  K  	  R # 5ir   )r   )rM  ZxrN   r   rN  Z#MH.get_sequences.<locals>.<genexpr>  s     *K?a3q66?s   -z"Invalid sequence specification: %sN)r   r   r   r   r   r   r   rC   r   rL  r'   r   rU   Zranger   r   r[   r   Zrstrip)r   Zresultsr   Zall_keysr   r   ZcontentsrC   Zspecr  r  r*   s   &           r   rH  ZMH.get_sequences  se   	RWW\\$**o>gVA Q499;'H5%)ZZ_ND5D ( 0<<>> HHSY/*K4::c?*KKE KKeAX(>? !1 5;4L %=LS,/O &)SL %=GM7=)Q.#M /  & + ! 	N	%= " 5%&J&*kkm'4 5 55! Q& sN   6E F$B.E*E%
E%
%E*FE"!E"%E**,F	FF*	c                s   V P                  R R7      p \        P                  ! \        P                  ! VP                  \        P
                  \        P                  ,          4      4       VP                  4        F  w  r4\        V4      ^ 8X  d   K  VP                  VR,           4       RpRp\        \        V4      4       Fj  pV^,
          V8X  d   V'       g   R pVP                  R4       M;V'       d   RpVP                  V: RV: 24       MVP                  RV,          4       TpKl  	  V'       d$   VP                  \        V4      R,           4       K  VP                  R4       K  	  \        V4       R#   \        T4       i ; i)	TrS  r   NFrU   z %sZ
)rR  r   rY   r   r   r   rG  rK   r   rr   r   r   ru   r   )r   	sequencesr   r   rC   prevZ
completingr*   r   r   set_sequencesZMH.set_sequences  s   ((d(3	HHRWWQVVR[[2::%=>?'oo/
t9>s
#"
!#d),CQw$))-JGGCL#%*
4 56,D - GGCI,-GGDM) 0, NKNs   CE> E> 8A E> 98E> >Fc                s\   V P                  4       p^ p. pV P                  4        F  pV^,
          V8w  d   VP                  WB^,           34        \        P                  ! \        P
                  P                  V P                  \        V4      4      \        P
                  P                  V P                  \        V^,           4      4      4       \        P                  ! \        P
                  P                  V P                  \        V4      4      4       V^,          pK  	  V^,           V n        \        V4      ^ 8X  d   R# VP                  4        F+  w  rVV F   w  rxWv9   g   K  WVP!                  V4      &   K"  	  K-  	  V P#                  V4       R#   \        \        3 d    \        P                  ! \        P
                  P                  T P                  \        T4      4      \        P
                  P                  T P                  \        T^,           4      4      4        ELi ; ir    N)rH  r@   r   r   r   r   r   r   ru   unlinkr   r   r   r
  r   rK   indexrY  )	r   rW  rX  Zchangesr*   r   rJ  Zoldr   	   &        r   packZMH.pack  s|   &&(	==?CQw$AX/BGGBGGLLSX>GGLLS]CE IIbggll4::s3x@AAID # w<1'oo/ND#?47X^^C01 $ 0 	9% '8 GIIbggll4::s3x@ ggll4::s4!8}EGGs   B FBH+*H+c                s*   VP                  4       pV P                  4       pVP                  4        F7  w  rVWS9   d   VP                  V4       K  W&9   g   K&  WfP                  V4       K9  	  V F  pWt9  g   K  V.WG&   K  	  V P	                  V4       R # r   )rH  rK   r   r\  rY  )r   r%   r*   Zpending_sequencesZall_sequencesr   rJ  sequences   &&&     r   rD  ZMH._dump_sequences  s    #113**,+113ND($^^C01	 4
 *H,+.%' * 	=)r    )r	  r  r
  r   )r   r   r   r   r   r'   r+   r1   r5   r<   r7   r@   rL   rM   rR  rW   rX   rV   rY   r   r   r   r   rH  rY  r^  rD  r   r   r   r   r   r   r     s     
 D02$*	;
B* !
7
)

8:&4* *r    c                   s   a  ] tR tRt o ]! 0 Rm4      tRR ltR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tRtV tR# )r   i#  Nc                s@    \         P                  WW#4       / V n        R # r   )r  r   _labelsr   r   r   r   ZBabyl.__init__)  s    ##D@r    c                s    \         P                  W4      p\        V\        4      '       d   VP	                  4       V P
                  V&   V# r   )r  r'   ri   r   
get_labelsr`  )r   r%   r*   r8   r   r'   Z	Babyl.add.  s;     $$T3g|,, ' 2 2 4DLL
r    c                sn    \         P                  W4       WP                  9   d   V P                  V R # R # r   )r  r+   r`  r)   r&   r   r+   ZBabyl.remove5  s+    !!$,,,S! r    c                s    \         P                  WV4       \        V\        4      '       d    VP	                  4       V P
                  V&   R # R # r   )r  r1   ri   r   ra  r`  r/   r0   r   r1   ZBabyl.__setitem__;  s;    &&t':g|,, ' 2 2 4DLL -r    c                s   V P                  V4      w  r#V P                  P                  V4       V P                  P                  4        \        P
                  ! 4       p V P                  P                  4       pVR\        ,           8X  g	   V'       g   M'VP                  VP                  \        R4      4       K]  \        P
                  ! 4       p V P                  P                  4       pV\        8X  g	   V'       g   M'VP                  VP                  \        R4      4       KV  W0P                  P                  4       ,
          pV P                  P                  V4      pVP                  \        R4      p\        VP                  4       V,           4      p	V	P                  VP                  4       4       WP                  9   d#   V	P                  V P                  V,          4       V	# T   *** EOOH ***r]   )r   r	  ro   r|   rj   rk   rq   rr   rp   r  r_   r   r{   set_visibler`  
set_labels)
r   r*   r  r  original_headersr   Zvisible_headersnZbodyr   s
   &&        r   r5   ZBabyl.get_messageA  sJ   ll3'



::<::&&(D00""4<<#?@**,::&&(Dwd!!$,,w">?::??$$zzq!||GU++446=>0023,,NN4<<,-
r    c                s   V P                  V4      w  r#V P                  P                  V4       V P                  P                  4        \        P
                  ! 4       p V P                  P                  4       pVR\        ,           8X  g	   V'       g   M'VP                  VP                  \        R4      4       K]   V P                  P                  4       pV\        8X  g   V'       d   K0   TP                  4       pY0P                  P                  4       ,
          pT P                  P                  T4      pTP                  \        R4      pYh,           # rb  )r   r	  ro   r|   rj   rk   rq   rr   rp   r{   r  r_   )	r   r*   r  r  rf  r   Zheadersrg  r   s	   &&       r   r<   ZBabyl.get_bytes]  s    ll3'



::<::&&(D00""4<<#?@::&&(Dwdd"++-::??$$zzq!||GU+~r    c                st    \         P                  ! V P                  V4      P                  R \        4      4      # r*  )rj   rk   r<   rp   rq   r)   r&   r   r7   ZBabyl.get_files  s'    zz$..-55eWEFFr    c                s    V P                  4        \        4       pV P                  P                  4        F  pVP	                  V4       K  	  VP                  V P                  4       \        V4      # r   )r   r   r`  rI   rU   Zdifference_update_special_labelsrB   )r   labelsZ
label_listrF   r   ra  ZBabyl.get_labelsw  sS    ,,--/JMM*% 0  !5!56F|r    c                s   . . r!V P                   P                  ^ 4       ^ p. p TpV P                   P                  4       pV P                   P                  4       pVR\        ,           8X  d   \        V4      \        V4      8  d&   VP                  V\        \        4      ,
          4       VP                  V4       V P                   P                  4       R,          P                  R4       Uu. uF+  pVP                  4       '       g   K  VP                  4       NK-  	  ppVP                  V4       EK  VR8X  g   VR\        ,           8X  dE   \        V4      \        V4      8  d)   VP                  V\        \        4      ,
          4       EKk  EKn  V'       d   EKy  VP                  V\        \        4      ,
          4        \        \        \        Y4      4      4      T n        \        \        T4      4      T n        \        T P                  4      T n        T P                   P                  ^ ^4       T P                   P                  4       T n        R# u upi )r    s   r      ,   N)r	  ro   r|   r  rq   r   r   r   Zstripr7  r8  r9  r   r`  r
  r  )	r   r:  r;  rB  Zlabel_listsr<  r   labelri  r]  r   r  ZBabyl._generate_toc  s   B

H::&&(Dzz(H{W,,u:F+LLCL!89h'+/::+>+>+@+D+J+J4+P:+P -2+0;;= (%++-+P  : ""6*DGg,=$=u:F+LLCL!89 ,TXG453v#567	Ik23TYY

1 JJOO-:s   -I
Ic                s   R \         ,           pVR\         ,           ,          pV P                  4       pR V 4       pVRRP                  V4      ,           \         ,           ,          pVR,          pVP                  V4       R# )s   BABYL OPTIONS:s
   Version: 5c              3   s@   "   T F  qP                  4       x  K  	  R # 5ir   )rZ   )rM  rl  rN   r   rN  Z*Babyl._pre_mailbox_hook.<locals>.<genexpr>  s     5fU,,..fs   s   Labels:rj  rk  N)rq   ra  r   rr   )r   r   Zbabylri  r"  r   r  ZBabyl._pre_mailbox_hook  sc    !G+(("5f5dii//'99	r    c                r?  )s   Nr6  r  r&   r   r  ZBabyl._pre_message_hook  s    	'!"r    c                s>    VP                  \        R ,           4       R# )rk  Nr6  r  r&   r   r  ZBabyl._post_message_hook  s    	'!"r    c                s   V P                   P                  4       p\        V\        4      '       Ed   . p. pVP	                  4        F7  pWPP
                  9   d   VP                  V4       K&  VP                  V4       K9  	  V P                   P                  R 4       V F3  pV P                   P                  RVP                  4       ,           4       K5  	  V P                   P                  R4       V F:  pV P                   P                  RVP                  4       ,           R,           4       K<  	  V P                   P                  \        4       M&V P                   P                  R\        ,           4       \        V\        P                  P                  4      '       Ed>   \        P                  ! 4       p\        P                  P!                  VR^ 4      pVP#                  V4       VP%                  ^ 4        VP'                  4       pV P                   P                  VP)                  R\        4      4       VR8X  g   V'       d   KQ   T P                   P                  R	\        ,           4       \        T\        4      '       d   \        P                  ! 4       p	\        P                  P!                  T	R^ 4      p
T
P#                  TP+                  4       4        T	P'                  4       pT P                   P                  TP)                  R\        4      4       TR8X  g   T'       d   KQ  McTP%                  ^ 4        TP'                  4       pT P                   P                  TP)                  R\        4      4       TR8X  g   T'       d   KQ    TP-                  R
4      pT'       g   EMT P                   P                  TP)                  R\        4      4       KM  \        V\.        \0        \        P2                  34      '       Ed   \        V\        P2                  4      '       d-   \4        P6                  ! R\8        ^4       VP;                  4       p\        V\0        4      '       d   V P=                  V4      pVP?                  R4      ^,           pV^,
          R8w  d   V P                   P                  VRV P)                  R\        4      4       V P                   P                  R	\        ,           4       V P                   P                  VRV P)                  R\        4      4       V P                   P                  WR P)                  R\        4      4       EMfV P                   P                  R	\        ,           \        ,           4       V P                   P                  VP)                  R\        4      4       EM\A        VR4      '       Ed   \A        VR4      '       d)   \4        P6                  ! R\8        ^4       VPB                  pVP                  4       pRp VP'                  4       pVPE                  R4      '       d   VRR R,           pM#VPE                  R4      '       d   VRR R,           pV P                   P                  VP)                  R\        4      4       VR8X  g   V'       d   K  V'       d<   RpV P                   P                  R	\        ,           4       VP%                  V4       K    TP'                  4       pT'       g   MTPE                  R4      '       d   TRR \        ,           pMOTPE                  R4      '       d   TRR \        ,           pM'TPE                  R4      '       d   TRR \        ,           pT P                   P                  T4       K  \G        R\I        V4      ,          4      hV P                   P                  4       pW/3# )s   1s   , s   ,,s    rj  s   1,,FTr]   rc  r  r^   s   

Nr|   r`   ra   rb   rc   rf   rh   rg   )%r	  r  ri   r   ra  rh  r   rr   rZ   rq   r:   r%   r   rj   rk   rl   rm   rn   ro   r|   rp   get_visibler_   rv   ru   rw   rx   ry   rz   r{   r\   r-  rT   r`   rt   r~   r   )r   r%   r  Zspecial_labelsri  rl  Zorig_bufferZorig_generatorr   Z
vis_bufferZvis_generatorr`   Z
body_startZoriginal_posZ
first_passr  s   &&              r   r!  ZBabyl._install_message  s   

!g|,,NF ++-000"))%0MM%(	 .
 JJT"'

  !78 (JJU#

  !6!=>  JJW%JJVg-.gu}}4455**,K"__;;KPQRN""7+Q"++-

  eW!=>5=JJ_w67'<00ZZ\
 % > >z5RS T%%g&9&9&;<%..0DJJ$$T\\%%ABu}DD  #&//1DJJ$$T\\%%ABu}DD$))$/

  w!?@%bkk!:;;'2;;// *+=qB!**,'3''//8 g.2JA~#

  *!5!=!=eW!MN

  7!:;

  *!5!=!=eW!MN

  !5!=!=eW!MN

  7!:W!DE

  !@AWj))w)) 56H!M!.."<<>LJ'')==))9u,D]]5))9u,D

  eW!=>5=!%*


((7)BC\2'')==))9w.D]]5))9w.D]]5))9w.D

  &6gFGGzz }r    )r  r`  r
  r   >   ZfiledZeditedresentunseendeletedanswered	forwardedr   )r   r   r   r   Z	frozensetrh  r   r'   r+   r1   r5   r<   r7   ra  r  r  r  r  r!  r   r   r   r   r   r   r   #  sa        !B CO
"58,G.<##i ir    c                   s6   a  ] tR tRt o RR ltR tR tRtV tR# )r   i  Nc                s~   \        V\        P                  P                  4      '       dQ   V P	                  \
        P                  ! V4      4       \        V\        4      '       d   VP                  V 4       R# R# \        V\        4      '       d(   V P	                  \        P                  ! V4      4       R# \        V\        4      '       d(   V P	                  \        P                  ! V4      4       R# \        V\        P                  4      '       d(   V P	                  \        P                  ! V4      4       R# \        VR 4      '       d(   V P	                  \        P                   ! V4      4       R# Vf,   \        P                  P                  P#                  V 4       R# \%        R\'        V4      ,          4      h)r_   Nrf   )ri   r:   r%   r   _become_messagecopyZdeepcopy_explain_torv   r;   ru   Zmessage_from_stringrj   ZTextIOWrapperZmessage_from_filerT   Zmessage_from_binary_filer   r~   r   r$   r&   r   r   ZMessage.__init__  s    gu}}4455  w!78'7++##D) ,''  !9!9'!BC%%  !:!:7!CD!1!122  !8!8!ABWf%%  !?!?!HI_MM!!**406gFGGr    c                s    \        VR . 4      pVP                   F+  pW29  g   K  VP                  V,          V P                  V&   K-  	  R# )_type_specific_attributesN)ZgetattrZ__dict__)r   r%   Ztype_specificr   r"  r   rs  ZMessage._become_message2  s@    )DbI$$D(&-&6&6t&<d# %r    c                sH    \        V\        4      '       d   R # \        R4      h)Nz Cannot convert to specified type)ri   r   r~   r$   r&   r   ru  ZMessage._explain_to9  s    gw''>??r    r   r   )	r   r   r   r   r   rs  ru  r   r   r   r   r   r   r     s     H&=@ @r    c                   st   a  ] tR tRt o . ROtRR ltR tR tR tR t	R t
R	 tR
 tR tR tR tR tRtV tR# )r	   iA  Nc                s    R V n         RV n        \        P                  ! 4       V n        \        P                  W4       R# )r   r   N)_subdir_infor   _dater   r   r$   r&   r   r   ZMaildirMessage.__init__F  s+    
YY[
'r    c                    V P                   # r   )rw  r>   r?   r   r   ZMaildirMessage.get_subdirM  s    ||r    c                sR    VR 8X  g   VR8X  d	   Wn         R# \        RV,          4      h)r   r   z!subdir must be 'new' or 'cur': %sN)rw  r[   )r   r   r&   r   r   ZMaildirMessage.set_subdirQ  s%    U?fo!L@6IJJr    c                sn    V P                   P                  R 4      '       d   V P                   R,          # R# r   )rx  r}   r>   r?   r   r   ZMaildirMessage.get_flagsX  s(    ::  &&::b>!r    c                sR    R RP                  \        V4      4      ,           V n        R# )r   r   N)r   r   rx  )r   r   r&   r   r   ZMaildirMessage.set_flags_  s    BGGF5M22
r    c                    V P                  R P                  \        V P                  4       4      \        V4      ,          4      4       R# r   Nr   r   r   r   r   r   r&   r   r   ZMaildirMessage.add_flagc  ,    rwws4>>#34s4y@ABr    c                s    V P                  4       '       dJ   V P                  R P                  \        V P                  4       4      \        V4      ,
          4      4       R# R# r|  )r   r   r   r   r~  r&   r   r   ZMaildirMessage.remove_flagg  s>    >>NN2773t~~'7#83t9#DEF r    c                rz  r   )ry  r>   r?   r   r   ZMaildirMessage.get_datel      zzr    c                sl     \        V4      V n        R#   \         d    \        R T,          4      Rhi ; i)zcan't convert to float: %sN)Zfloatry  r[   r~   )r   Zdater&   r   r   ZMaildirMessage.set_datep  s7    	KtDJ 	K84?@dJ	Ks    3c                rz  r   )rx  r>   r?   r   r   ZMaildirMessage.get_infow  r  r    c                st    \        V\        4      '       d	   Wn        R# \        R \	        V4      ,          4      h)zinfo must be a string: %sN)ri   ru   rx  r~   r   )r   r   r&   r   r   ZMaildirMessage.set_info{  s)    dC  J7$t*DEEr    c                sD   \        V\        4      '       d`   VP                  V P                  4       4       VP	                  V P                  4       4       VP                  V P                  4       4       R# \        V\        4      '       d   \        V P                  4       4      pR V9   d   VP                  R4       V P                  4       R8X  d   VP                  R4       RV9   d   VP                  R4       RV9   d   VP                  R4       RV9   d   VP                  R4       VP                  R\        P                  ! V P                  4       4      4       R# \        V\        4      '       df   \        V P                  4       4      pR V9  d   VP                  R	4       RV9   d   VP                  R
4       RV9   d   VP                  R4       R# R# \        V\         4      '       d~   \        V P                  4       4      pR V9  d   VP#                  R	4       RV9   d   VP#                  R4       RV9   d   VP#                  R4       RV9   d   VP#                  R4       R# R# \        V\$        4      '       d   R# \'        R\)        V4      ,          4      h)SRr   OTDFAMAILER-DAEMONro  repliedflaggedrp  rq  r   rr  $Cannot convert to specified type: %sN)ri   r	   r   r   r   r   r   r   r.  r   r   r%  r   r2  r   rI  r   	add_labelr   r~   r   )r   r%   r   r8   r   ru  ZMaildirMessage._explain_to  s   g~..dnn./t01T]]_-!122()Ee|  % E)  %e|  %e|  %e|  %_dkk$--/.JK++()E%$$X.e|$$Y/e|$$Y/ ..()E%!!(+e|!!),e|!!*-e|!!+. ))B M* + +r    )ry  rx  rw  )rw  rx  ry  r   )r   r   r   r   rv  r   r   r   r   r   r   r   r   r   r   r   ru  r   r   r   r   r   r	   r	   A  sS      !>(K3CG
KF)+ )+r    c                   s^   a  ] tR tRt o R.tRR ltR tRR ltR tR t	R	 t
R
 tR tRtV tR# )r.  i  _fromNc                s.   V P                  R R4       \        V\        P                  P                  4      '       dD   VP                  4       pVe0   VP                  R4      '       d   V P                  VR,          4       \        P                  W4       R# )r  TNzFrom re   )r%  ri   r:   r%   r   r0  r}   r   )r   r%   r(  r8   r   r   Z_mboxMMDFMessage.__init__  si    ot,gu}}4455++-H#(;(;G(D(Dhrl+'r    c                rz  r   r  r>   r?   r   r/  Z_mboxMMDFMessage.get_from  r  r    c                s    Ve@   VRJ d   \         P                  ! 4       pVR\         P                  ! V4      ,           ,          pWn        R # )NTrV  )r   r2  r1  r  )r   r)  Ztime_r0   r   r%  Z_mboxMMDFMessage.set_from  s7    }S4<<...E
r    c                sT    V P                  R R4      V P                  RR4      ,           # )Statusr   X-Status)r4   r>   r?   r   r   Z_mboxMMDFMessage.get_flags  s#    xx"%R(@@@r    c                s   \        V4      pR R r2R F$  pWA9   g   K  W$,          pVP                  V4       K&  	  R F$  pWA9   g   K  W4,          pVP                  V4       K&  	  VR P                  \        V4      4      ,          p V P	                  RV4        V P	                  RV4       R#   \
         d    T P                  RT4        L4i ; i  \
         d    T P                  RT4        R# i ; i)r   r  r  N)r  r  )r  r  r  )r   r+   r   r   replace_headerr-   Z
add_header)r   r   Zstatus_flagsZxstatus_flagsr   r   r   r   Z_mboxMMDFMessage.set_flags  s    E
&("mD}$T"  $D}%T" $ 	//	4,7	7
M:  	4OOHl3	4  	7OOJ6	7s$   B, C ,CCC0/C0c                r{  r|  r}  r~  r&   r   r   Z_mboxMMDFMessage.add_flag  r  r    c                s    R V 9   g   RV 9   dJ   V P                  RP                  \        V P                  4       4      \        V4      ,
          4      4       R# R# )r  r  r   Nr}  r~  r&   r   r   Z_mboxMMDFMessage.remove_flag  s@    tzT1NN2773t~~'7#83t9#DEF  2r    c                sv   \        V\        4      '       Ed   \        V P                  4       4      pR V9   d   VP	                  R4       RV9   d   VP                  R4       RV9   d   VP                  R4       RV9   d   VP                  R4       RV9   d   VP                  R4       VR VR	 R
P                  V P                  4       P                  4       RR 4      p VP                  \        P                  ! \        P                  ! VR4      4      4       R# \        V\         4      '       dA   VP#                  V P                  4       4       VP%                  V P                  4       4       R# \        V\&        4      '       dj   \        V P                  4       4      pRV9  d   VP)                  R4       RV9   d   VP)                  R4       RV9   d   VP)                  R4       VR VR	 R# \        V\*        4      '       dj   \        V P                  4       4      pRV9  d   VP-                  R4       RV9   d   VP-                  R4       RV9   d   VP-                  R4       VR VR	 R# \        V\.        4      '       d   R# \1        R\3        V4      ,          4      h  \        \        3 d     R# i ; i)r  r   r  r  r  r  r  r  Zstatuszx-statusrV  Nz%a %b %d %H:%M:%S %Yro  r  r  rp  rq  r  i)ri   r	   r   r   r   r   r   r/  r   r   calendarZtimegmr   Zstrptimer[   ZOverflowErrorr.  r   r%  r   rI  r   r  r   r~   r   )r   r%   r   Z
maybe_dater"  r   ru  Z_mboxMMDFMessage._explain_to  sH   g~..()Ee|""5)e|  %e|  %e|  %e|  %!
#$--/"7"7"9"#">?J  z6L2N "O P !122dnn./T]]_-++()E%$$X.e|$$Y/e|$$Y/!
#..()E%!!(+e|!!),e|!!*-!
#))B M* + +9 . s    :J# #J87J8r  r   )r   r   r   r   rv  r   r/  r%  r   r   r   r   ru  r   r   r   r   r   r.  r.    s?      ")	(A7,CG
1+ 1+r    r.  c                       ] tR tRtRtR# )r
   i  r   Nr   r   r   r   r   r   r    r   r
   r
         r    c                   sN   a  ] tR tRt o R.tRR ltR tR tR tR t	R	 t
R
tV tR# )r   i#  
_sequencesNc                s>    . V n         \        P                  W4       R # r   )r  r   r   r$   r&   r   r   ZMHMessage.__init__(  s    'r    c                (    V P                   R ,          # :NNNr  r>   r?   r   rH  ZMHMessage.get_sequences-  s    q!!r    c                &    \        V4      V n        R # r   )rB   r  )r   rW  r&   r   rY  ZMHMessage.set_sequences1  s    y/r    c                s    \        V\        4      '       d0   WP                  9   g   V P                  P                  V4       R# R# \	        R \        V4      ,          4      h)zsequence type must be str: %sN)ri   ru   r  r   r~   r   r   r_  r&   r   rI  ZMHMessage.add_sequence5  sG    h$$.&&x0 / ;d8nLMMr    c                b     V P                   P                  V4       R #   \         d     R # i ; ir   )r  r+   r[   r  r&   r   remove_sequenceZMHMessage.remove_sequence=  s+    	OO""8, 		    ..c                s   \        V\        4      '       d   \        V P                  4       4      pR V9   d   VP	                  R4       M"VP	                  R4       VP                  R4       RV9   d   VP                  R4       RV9   d   VP                  R4       R# R# \        V\        4      '       dx   \        V P                  4       4      pR V9  d   VP                  R4       MVP                  R4       RV9   d   VP                  R4       RV9   d   VP                  R	4       R# R# \        V\        4      '       d+   V P                  4        F  pVP                  V4       K  	  R# \        V\        4      '       dN   \        V P                  4       4      pR V9   d   VP                  R 4       RV9   d   VP                  R
4       R# R# \        V\        4      '       d   R# \        R\        V4      ,          4      h)ro  r   r  r  r  r  r  ROr  r  rq  r  N)ri   r	   r   rH  r   r   r.  r   rI  r   r  r   r~   r   )r   r%   rW  r_  r"  r   ru  ZMHMessage._explain_toD  s   g~..D..01I9$""5)""5)  %I%  %I%  % &!122D..01Iy(  &  %I%  %I%  % &++ ..0$$X. 1..D..01I9$!!(+I%!!*- &))B M* + +r    r  r   )r   r   r   r   rv  r   rH  rY  rI  r  ru  r   r   r   r   r   r   r   #  s3      ".(
"*N$+ $+r    c                   sb   a  ] tR tRt o RR.tRR ltR tR tR tR	 t	R
 t
R tR tR tRtV tR# )r   ik  r`  _visibleNc                s\    . V n         \        4       V n        \        P                  W4       R # r   )r`  r   r  r   r$   r&   r   r   ZBabylMessage.__init__p  s     	'r    c                r  r  )r`  r>   r?   r   ra  ZBabylMessage.get_labelsv  s    ||Ar    c                r  r   )rB   r`  )r   ri  r&   r   re  ZBabylMessage.set_labelsz  s    F|r    c                s    \        V\        4      '       d0   WP                  9  d   V P                  P                  V4       R# R# \	        R \        V4      ,          4      h)zlabel must be a string: %sN)ri   ru   r`  r   r~   r   r   rl  r&   r   r  ZBabylMessage.add_label~  sG    eS!!LL(##E* ) 84;FGGr    c                r  r   )r`  r+   r[   r  r&   r   remove_labelZBabylMessage.remove_label  s+    	LL& 		r  c                s,    \        V P                  4      # r   r   r  r>   r?   r   rm  ZBabylMessage.get_visible  s    t}}%%r    c                r  r   r  )r   Zvisibler&   r   rd  ZBabylMessage.set_visible  s    (r    c                s&   V P                   P                  4        F:  pW9   d%   V P                   P                  WV,          4       K-  V P                   V K<  	  R F2  pW9   g   K  WP                   9  g   K  W,          V P                   V&   K4  	  R# )DateN)r  ZFromzReply-ToZToZCCZSubject)r  rC   r  )r   ZheaderrN   r   update_visibleZBabylMessage.update_visible  sl    mm((*F~,,V&\BMM&)	 +
 JF~&"=(,f% Jr    c                s   \        V\        4      '       d   \        V P                  4       4      pR V9   d   VP	                  R4       M"VP	                  R4       VP                  R4       RV9   g   RV9   d   VP                  R4       RV9   d   VP                  R4       RV9   d   VP                  R	4       R# R# \        V\        4      '       dx   \        V P                  4       4      pR V9  d   VP                  R
4       MVP                  R4       RV9   d   VP                  R4       RV9   d   VP                  R4       R# R# \        V\        4      '       dN   \        V P                  4       4      pR V9   d   VP                  R 4       RV9   d   VP                  R4       R# R# \        V\        4      '       dJ   VP                  V P                  4       4       V P                  4        F  pVP                  V4       K  	  R# \        V\        4      '       d   R# \        R\        V4      ,          4      h)ro  r   r  rr  rn  r   rq  r  rp  r  r  r  r  r  r  r  N)ri   r	   r   ra  r   r   r.  r   rI  r   rd  rm  r  r   r~   r   )r   r%   ri  rl  r"  r   ru  ZBabylMessage._explain_to  s   g~..*+F6!""5)""5)  %f$F(:  %V#  %F"  % #!122*+Fv%  &  %F"  %V#  % $++*+F6!$$X.V#$$Y/ $.. 0 0 23*!!%( +))B M* + +r    )r`  r  r   )r   r   r   r   rv  r   ra  re  r  r  rm  rd  r  ru  r   r   r   r   r   r   r   k  sE      "+J 7($H&)	5'+ '+r    c                   r  )r   i  r   Nr  r   r    r   r   r     r  r    c                   s   a  ] tR tRt o RR ltRR ltRR ltRR ltRR ltR t	R	 t
RR
 ltR tR tR tR tR tR tR tR t]R 4       t]! ]4      tRtV tR# )r   i  Nc                sT    Wn         Vf   VP                  4       V n        R # W n        R # r   )r	  r  _pos)r   r   Zposr0   r   r   Z_ProxyFile.__init__  s    
;DIIr    c                L    V P                  WP                  P                  4      # r   )_readr	  r_   r   sizer&   r   r_   Z_ProxyFile.read  s    zz$

00r    c                r  r   )r  r	  read1r  r&   r   r  Z_ProxyFile.read1  s    zz$

 0 011r    c                r  r   )r  r	  r|   r  r&   r   r|   Z_ProxyFile.readline  s    zz$

 3 344r    c                s    . pV  F6  pVP                  V4       Vf   K  V\        V4      ,          pV^ 8:  g   K5   V# 	  V# r   )r   r   )r   ZsizehintrP   r   r"  r   	readlinesZ_ProxyFile.readlines  sG    DMM$#CI%q=  r    c              #  sJ   "   V P                  4       ;p'       d   Vx  K  R # 5ir   )r|   )r   r   rN   r   rH   Z_ProxyFile.__iter__  s      mmo%d%J &s   ##c                rz  r   )r  r>   r?   r   r  Z_ProxyFile.tell  s    yyr    c                s    V^8X  d&   V P                   P                  V P                  4       V P                   P                  W4       V P                   P                  4       V n        R# )r   Nr	  ro   r  r  r   ZoffsetZwhencer0   r   ro   Z_ProxyFile.seek  s?    Q;JJOODII&

'JJOO%	r    c                s    \        V R 4      '       d<    \        V P                  R4      '       d   V P                  P                  4        V =R# R#   T =i ; i)r	  rY   N)rT   r	  rY   r>   r?   r   rY   Z_ProxyFile.close   sH    4!!4::w//JJ$$&J "
 Js   6A Ac                s    Vf   RpV P                   P                  V P                  4       V! V4      pV P                   P                  4       V n        V# )Nrh   r  )r   r  read_methodrP   rQ   r   r  Z_ProxyFile._read	  sA    <D

		"T"JJOO%	r    c                s    V # r   r   r>   r?   r   	__enter__Z_ProxyFile.__enter__  s    r    c                s&    V P                  4        R # r   )rY   )r   Zexcs   &*r   __exit__Z_ProxyFile.__exit__  s    

r    c                6    V P                   P                  4       # r   )r	  readabler>   r?   r   r  Z_ProxyFile.readable      zz""$$r    c                r  r   )r	  writabler>   r?   r   r  Z_ProxyFile.writable  r  r    c                r  r   )r	  seekabler>   r?   r   r  Z_ProxyFile.seekable  r  r    c                r  r   )r	  rV   r>   r?   r   rV   Z_ProxyFile.flush"  s    zz!!r    c                s    \        V R 4      '       g   R# \        V P                  R4      '       g   R# V P                  P                  # )r	  TrE  F)rT   r	  rE  r>   r?   r   rE  Z_ProxyFile.closed%  s6    tW%%tzz8,,zz   r    )r	  r  r   r   )r   r   r   r   r   r_   r  r|   r  rH   r  ro   rY   r  r  r  r  r  r  rV   ZpropertyrE  r   r   r   r   r   r   r   r   r   r     sv     125	
&%%%" ! ! $L1r    r   c                   sF   a  ] tR tRt o R	R ltR tR
R ltR tR tRt	V t
R# )r,  i0  Nc                sJ    \         P                  WV4       W n        W0n        R # r   )r   r   _start_stop)r   r   r  r  r   r   r   Z_PartialFile.__init__3  s    DU+
r    c                sN    \         P                  V 4      V P                  ,
          # r   )r   r  r  r>   r?   r   r  Z_PartialFile.tell9  s    t$t{{22r    c                s    V^ 8X  d   V P                   V n        ^pMV^8X  d   V P                  V n        ^p\        P	                  WV4       R# rZ  )r  r  r  r   ro   r  r0   r   ro   Z_PartialFile.seek=  s>    Q;DIFq[

DIFf-r    c                s    V P                   V P                  ,
          pV^ 8:  d   R# Ve   V^ 8  g   W8  d   Tp\        P                  WV4      # )r    r    )r  r  r   r  )r   r  r  Z	remainingrQ   r   r  Z_PartialFile._readG  sF    JJ*	><4!8t'7DK88r    c                s2    \        V R 4      '       d   V =R# R# )r	  N)rT   r	  r>   r?   r   rY   Z_PartialFile.closeP  s     4!!
 "r    )r  r  r  )NNr   )r   r   r   r   r   r  ro   r  rY   r   r   r   r   r   r,  r,  0  s#     3.9 r    r,  c                 s   R p \         '       d<    \         P                  ! V \         P                  \         P                  ,          4       V'       d    \        V P                  R,           4      pVP                  4          \        P                  ! TP                  T P                  R,           4       Rp\        P                  ! TP                  4       R# R#   \         da   pTP
                  \
        P                  \
        P                  \
        P                  39   d   \        RT P                  ,          4      hh Rp?ii ; i  \         d<   pTP
                  \
        P                  \
        P                  39   d    Rp?R# h Rp?ii ; i  \         \"        3 d9    \        P$                  ! TP                  T P                  R,           4       Rp R# i ; i  \&         d>    \        P(                  ! TP                  4       \        RT P                  ,          4      hi ; i   \         '       d&   \         P                  ! T \         P*                  4       T'       d(   \        P(                  ! T P                  R,           4       h ; i)Fzlockf: lock unavailable: %sN.lockTzdot lock unavailable: %s)fcntllockfZLOCK_EXZLOCK_NBr   r   ZEAGAINr  r  r   r   r  rY   r   r   r[  r   r   r   r   r+   LOCK_UN)r   r  Zdotlock_doner   Zpre_lockr   r   r  r  W  s   L%5Au}}u}}<= ,QVVg-=> 1-GGHMM166G+;<#'L
 IIhmm,#   77u||U\\5;;GG,-J-.VV.4 5 5   77u||U[[99	 '8 (IIhmmQVVg-=>#'L(
 # 1		(--(()C)**0 1 115KK5==)IIaffw&'s   H( :C H( ,E 4F 6 G E%AE  EH( F/F	H( F		FH( AGG GG AH%%H( (:J#(Jc                 s&   \         '       d&   \         P                  ! V \         P                  4       \        P                  P                  V P                  R ,           4      '       d*   \        P                  ! V P                  R ,           4       R# R# )r  N)r  r  r  r   r   r   r   r+   r   r?   r   r  r    sO    uAu}}%	ww~~affw&''
		!&&7"# (r    c                 s    \        V R 4      # )zxb+)r   r   r?   r   r   r     s    er    c           
      s    \        V : R \        \        P                  ! 4       4      : R \        P                  ! 4       : R \
        P                  ! 4       : 24      # )r   )r   r   r   r   r   r   r   r  r?   r   r  r    s8    dC		4D.4.@.@.B.0iik; < <r    c                 s    V P                  4        \        \        R 4      '       d'   \        P                  ! V P	                  4       4       R# R# )fsyncN)rV   rT   r   r  Zfilenor  r?   r   r  r    s/    GGIr7
 r    c                 s<    \        V 4       V P                  4        R # r   )r  rY   r  r?   r   r   r     s    NGGIr    c                   r  )r   i  r   Nr  r   r    r   r   r     r  r    c                   r  )r   i  r   Nr  r   r    r   r   r     r  r    c                   r  )r   i  r   Nr  r   r    r   r   r     r  r    c                   r  )r   i  r   Nr  r   r    r   r   r     r  r    c                   r  )r   i  r   Nr  r   r    r   r   r     r  r    )r   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   )T)1r   r   r  r   r   rt  rx   r:   Zemail.messageZemail.generatorrj   r6   Ztypesr   r  ZImportErrorZ__all__rq   rZ   r   r   r  r#  r   r   r   r   r%   r   r	   r.  r
   r   r   r   r   r,  r  r  r   r  r  r   Z	Exceptionr   r   r   r   r   r   r    r   <module>r     s   
          	  A
 **

G
$f2 f2Rgg gTC CN@" @F1.9 1.h*.9 *.Z@* @*F
v vr"@emm## "@Jj+W j+Zn+w n+b1" 1E+ E+P\+7 \+~1" 1_2 _2D$: $N(T$<-I -E EIE I4 44% 4eD  Es   E5 5	FF