
    z%iE                         	 g d Z ddlZddlZdZdZdZg dZg dZdddddd	d
ddd
dddddZd Z	d Z
d Zd Zd Z G d d      Z G d de      Zy))	mktime_tz	parsedateparsedate_tzquote    N  z, )janfebmaraprmayjunjulaugsepoctnovdecjanuaryfebruarymarchaprilr   junejulyaugust	septemberoctobernovemberdecember)montuewedthufrisatsunipiiiiDi)UTUTCGMTZASTADTESTEDTCSTCDTMSTMDTPSTPDTc                 J    	 t        |       }|sy |d   d|d<   t        |      S )N	   r   )_parsedate_tztuple)dataress     D/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/email/_parseaddr.pyr   r   -   s5     
C
1v~A:    c           
         	 | sy | j                         } | sy | d   j                  d      s| d   j                         t        v r| d= n'| d   j	                  d      }|dk\  r| d   |dz   d  | d<   t        |       dk(  r*| d   j                  d      }t        |      dk(  r|| dd  z   } t        |       dk(  rP| d   }|j                  d      }|dk(  r|j                  d      }|dkD  r|d | ||d  g| dd  n| j                  d	       t        |       d
k  ry | d d
 } | \  }}}}}|r|r|sy |j                         }|t        vr||j                         }}|t        vry t        j                  |      dz   }|dkD  r|dz  }|d   dk(  r|d d }|j                  d      }|dkD  r||}}|d   dk(  r|d d }|sy |d   j                         s||}}|d   dk(  r|d d }|j                  d      }t        |      dk(  r|\  }	}
d}nkt        |      dk(  r|\  }	}
}nVt        |      dk(  rGd|d   v r@|d   j                  d      }t        |      dk(  r|\  }	}
d}nt        |      dk(  r|\  }	}
}ny y 	 t        |      }t        |      }t        |	      }	t        |
      }
t        |      }|dk  r|dkD  r|dz  }n|dz  }d }|j                         }|t        v r
t        |   }n$	 t        |      }|dk(  r|j                  d      rd }|r!|dk  rd}| }nd}||dz  dz  |dz  dz  z   z  }||||	|
|ddd|g
S # t        $ r Y y w xY w# t        $ r Y aw xY w)Nr   ,      -   +r         :   0.d   D   il  i  i  <   )splitendswithlower	_daynamesrfindlenfindappend_monthnamesindexisdigitint
ValueErrorupper
_timezones
startswith)r9   istuffsddmmyytmtzthhtmmtsstzoffsettzsigns                 r;   r7   r7   9   s    ::<D AwQ9 <GGMM#61gacdmDG
4yA~Qc"u:?48#D
4yA~GFF3K7sAq5"1qu~DHKKO
4y1}8DRRR2"	B	RXXZB[ 			2		"B	Bw
b	"v}W
A1uRB	"v}Wa5==?RB	"v}W	#B
2w!|
c	RAc3	RA#A,U[[r7a<JS#CW\ OS#sWW#h#h#h 
Cx7$JB $JBH	B	Zb>	2wH Q;2==-Ha<F yHFx}d2hnb5HHIBS#q!R::E  *  		s$   ,7L/ L> /	L;:L;>	M
	M
c                 H    	 t        |       }t        |t              r|d d S |S )Nr6   )r   
isinstancer8   r9   ts     r;   r   r      s)    0TA!U!ur<   c                 ~    	 | d   t        j                  | d d dz         S t        j                  |       }|| d   z
  S )Nr6      )rD   )timemktimecalendartimegmrm   s     r;   r   r      sD    OAw{{48e+,,OOD!47{r<   c                 H    	 | j                  dd      j                  dd      S )N\z\\"z\")replace)strs    r;   r   r      s'     ;;tV$,,S%88r<   c                   `    e Zd Z	 d Zd Zd Zd Zd Zd Zd Z	ddZ
d	 Zd
 Zd ZddZd Zy)AddrlistClassc                 .   	 d| _         d| _        d| _        d| _        | j                  | j                  z   | _        | j                   | j                  z   | j                  z   | _        | j
                  j                  dd      | _        || _        g | _	        y )Nz()<>@,:;."[]r   z 	z
rJ   r   )
specialsposLWSCRFWSatomendsrx   
phraseendsfieldcommentlistselfr   s     r;   __init__zAddrlistClass.__init__   s    	
 (88dgg%0477: --//R8
r<   c                 L   	 g }| j                   t        | j                        k  r| j                  | j                      | j                  dz   v rY| j                  | j                      dvr(|j	                  | j                  | j                             | xj                   dz  c_         nG| j                  | j                      dk(  r*| j
                  j	                  | j                                nn#| j                   t        | j                        k  rt        j                  |      S )Nz
r?   ()	r~   rS   r   r   rU   r   
getcommentEMPTYSTRINGjoin)r   wslists     r;   gotonextzAddrlistClass.gotonext   s    4hhTZZ(zz$((#txx&'88::dhh'v5MM$**TXX"67ADHH%,  ''(9: hhTZZ( ''r<   c                     	 g }| j                   t        | j                        k  rL| j                         }|r||z  }n|j	                  d       | j                   t        | j                        k  rL|S )N)r   r   )r~   rS   r   
getaddressrU   )r   resultads      r;   getaddrlistzAddrlistClass.getaddrlist   sc    	 hhTZZ("B"h' hhTZZ( r<   c                    	 g | _         | j                          | j                  }| j                   }| j                         }| j                          g }| j                  t	        | j
                        k\  r*|rft        j                  | j                         |d   fg}n?| j
                  | j                     dv rB|| _        || _         | j                         }t        j                  | j                         |fg}n| j
                  | j                     dk(  rg }t	        | j
                        }| xj                  dz  c_        | j                  t	        | j
                        k  rw| j                          | j                  |k  r3| j
                  | j                     dk(  r| xj                  dz  c_        n%|| j                         z   }| j                  t	        | j
                        k  rn| j
                  | j                     dk(  rp| j                         }| j                   r;t        j                  |      dz   dj                  | j                         z   d	z   |fg}n{t        j                  |      |fg}nb|r&t        j                  | j                         |d   fg}n:| j
                  | j                     | j                  v r| xj                  dz  c_        | j                          | j                  t	        | j
                        k  r1| j
                  | j                     d
k(  r| xj                  dz  c_        |S )Nr   z.@rG   r?   ;<z (r   )r>   )r   r   r~   getphraselistrS   r   SPACEr   getaddrspecr   getrouteaddrr}   )r   oldposoldclplist
returnlistaddrspecfieldlen	routeaddrs           r;   r   zAddrlistClass.getaddress  s   %  ""$
88s4::&$zz$*:*:;U1XFG
ZZ!T) DH$D'')H ::d&6&67BCJZZ!S(J4::HHHMH((S_,88h&4::dhh+?3+FHHMH'$//*;;
 ((S_, ZZ!S())+I$zz%047"xx(8(89 :<? @AJL M
  %zz%0)<=
 $zz$*:*:;U1XFG
DHH%6A88c$**o%$**TXX*>#*EHHMHr<   c                    	 | j                   | j                     dk7  ry d}| xj                  dz  c_        | j                          d}| j                  t        | j                         k  r|r| j	                          d}n| j                   | j                     dk(  r| xj                  dz  c_        	 |S | j                   | j                     dk(  r| xj                  dz  c_        d}nZ| j                   | j                     dk(  r| xj                  dz  c_        n(| j                         }| xj                  dz  c_        	 |S | j                          | j                  t        | j                         k  r|S )	Nr   Fr?   r   >@TrG   )r   r~   r   rS   	getdomainr   )r   expectrouteadlists      r;   r   zAddrlistClass.getrouteaddrG  s+   	 ::dhh3&AhhTZZ( #DHH%,A  DHH%,A"DHH%,A))+A  MMO! hhTZZ($ r<   c                    	 g }| j                          | j                  t        | j                        k  rgd}| j                  | j                     dk(  rN|r#|d   j	                         s|j                          |j                  d       | xj                  dz  c_        d}n| j                  | j                     dk(  r,|j                  dt        | j                               z         nj| j                  | j                     | j                  v r&|r#|d   j	                         s|j                          nh|j                  | j                                | j                         }|r|r|j                  |       | j                  t        | j                        k  rg| j                  t        | j                        k\  s| j                  | j                     dk7  rt        j                  |      S |j                  d       | xj                  dz  c_        | j                          | j                         }|st        S t        j                  |      |z   S )	NTrJ   rD   r?   Frw   z"%s"r   )r   r~   rS   r   strippoprU   r   getquoter   getatomr   r   r   )r   aslistpreserve_wswsdomains        r;   r   zAddrlistClass.getaddrspecg  s   *hhTZZ(Kzz$((#s*&*"2"2"4JJLc"A#DHH%,fuT]]_'==>DHH%6&*"2"2"4JJLdlln-Brb!% hhTZZ(( 88s4::&$**TXX*>#*E##F++cA! '&00r<   c                    	 g }| j                   t        | j                        k  r| j                  | j                      | j                  v r| xj                   dz  c_         n,| j                  | j                      dk(  r*| j                  j                  | j                                n| j                  | j                      dk(  r |j                  | j                                n| j                  | j                      dk(  r'| xj                   dz  c_         |j                  d       ng| j                  | j                      dk(  rt        S | j                  | j                      | j                  v rnC|j                  | j                                | j                   t        | j                        k  rt        j                  |      S )Nr?   r   [rJ   r   )r~   rS   r   r   r   rU   r   getdomainliteralr   r   r   r   )r   sdlists     r;   r   zAddrlistClass.getdomain  s@   ;hhTZZ(zz$((#txx/ADHH%,  ''(9:DHH%,d3356DHH%,Ac"DHH%, #"DHH%6dlln-# hhTZZ($ ''r<   c                    	 | j                   | j                     |k7  rydg}d}| xj                  dz  c_        | j                  t        | j                         k  r|r+|j                  | j                   | j                            d}n| j                   | j                     |v r| xj                  dz  c_        n|r<| j                   | j                     dk(  r |j                  | j	                                | j                   | j                     dk(  rd}n(|j                  | j                   | j                            | xj                  dz  c_        | j                  t        | j                         k  rt
        j                  |      S )Nr   Fr?   r   rv   T)r   r~   rS   rU   r   r   r   )r   	begincharendcharsallowcommentsslistr   s         r;   getdelimitedzAddrlistClass.getdelimited  s*   	 ::dhh9,AhhTZZ(TZZ12DHH%1A4::dhh#73#>T__./DHH%-TZZ12HHMH hhTZZ(  &&r<   c                 *    	 | j                  ddd      S )Nrw   z"Fr   r   s    r;   r   zAddrlistClass.getquote  s    ?  eU33r<   c                 *    	 | j                  ddd      S )Nr   z)Tr   r   s    r;   r   zAddrlistClass.getcomment  s    E  eT22r<   c                 0    	 d| j                  ddd      z  S )Nz[%s]r   z]Fr   r   s    r;   r   zAddrlistClass.getdomainliteral  s    /))#ue<<<r<   Nc                    	 dg}|| j                   }| j                  t        | j                        k  r|| j                  | j                     |v rn`|j	                  | j                  | j                            | xj                  dz  c_        | j                  t        | j                        k  r|t
        j                  |      S )Nr   r?   )r   r~   rS   r   rU   r   r   )r   r   atomlists      r;   r   zAddrlistClass.getatom  s    	! 4}}HhhTZZ(zz$((#x/

488 45HHMH hhTZZ( ))r<   c                    	 g }| j                   t        | j                        k  r3| j                  | j                      | j                  v r| xj                   dz  c_         n| j                  | j                      dk(  r |j	                  | j                                n| j                  | j                      dk(  r*| j                  j	                  | j                                nR| j                  | j                      | j                  v r	 |S |j	                  | j                  | j                               | j                   t        | j                        k  r3|S )Nr?   rw   r   )
r~   rS   r   r   rU   r   r   r   r   r   )r   r   s     r;   r   zAddrlistClass.getphraselist  s    	 hhTZZ(zz$((#txx/ADHH%,T]]_-DHH%,  ''(9:DHH%8  T\\$//:; hhTZZ( r<   )TN)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   r   r   r    r<   r;   r{   r{      sL    &(9v@$1L(.#'J43=*(r<   r{   c                   8    e Zd Z	 d Zd Zd Zd Zd Zd Zd Z	y)	AddressListc                 n    t         j                  | |       |r| j                         | _        y g | _        y r   )r{   r   r   addresslistr   s     r;   r   zAddressList.__init__  s.    tU+#//1D!Dr<   c                 ,    t        | j                        S r   )rS   r   r   s    r;   __len__zAddressList.__len__	  s    4##$$r<   c                     t        d       }| j                  d d  |_        |j                  D ],  }|| j                  vs|j                  j                  |       . |S r   r   r   rU   r   othernewaddrxs       r;   __add__zAddressList.__add__  s]    d#"..q1"" 	.A(((##**1-	. r<   c                 |    |j                   D ],  }|| j                   vs| j                   j                  |       . | S r   )r   rU   r   r   r   s      r;   __iadd__zAddressList.__iadd__  s@    "" 	+A(((  ''*	+ r<   c                     t        d       }| j                  D ],  }||j                  vs|j                  j                  |       . |S r   r   r   s       r;   __sub__zAddressList.__sub__  sJ    d#!! 	.A)))##**1-	. r<   c                 |    |j                   D ],  }|| j                   v s| j                   j                  |       . | S r   )r   remover   s      r;   __isub__zAddressList.__isub__$  s@    "" 	+AD$$$  ''*	+ r<   c                      | j                   |   S r   )r   )r   rW   s     r;   __getitem__zAddressList.__getitem__+  s    &&r<   N)
r   r   r   r   r   r   r   r   r   r   r   r<   r;   r   r      s(    J"%'r<   r   )__all__rq   rs   r   r   
COMMASPACErV   rQ   r\   r   r7   r   r   r   r{   r   r   r<   r;   <module>r      s   
 
I
 >	 AQA$$$$$

z;z9k kZ	-'- -'r<   