+
    i?  c                   s   . R$Ot ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t
 ^ RIHt ^ RIHtHtHt RtRtRtRtR	t]P(                  ! R
4      t]P(                  ! R4      tR tR tR%R ltR tR tRtRR/R ltR tR tR t R t!R&R lt"R'R lt#R(R lt$R t%RR/R lt&R t'R t(R(R lt)]P(                  ! R ]PT                  4      t+R! t,R)R" lt-R*R# lt.R# )+collapse_rfc2231_valueN)quote)AddressList)	mktime_tz)	parsedateparsedate_tz_parsedate_tzz,  z
'z[][\\()<>@,:;".]z[\\"]c                 sL     V P                  4        R #   \         d     R# i ; i)FT)encodeUnicodeEncodeError)s   &$/usr/lib64/python3.14/email/utils.py_has_surrogatesr   /   s%    
	
 s    ##c                 sJ    V P                  R R4      pVP                  R R4      # )utf-8Zsurrogateescapereplace)r	   Zdecode)ZstringZoriginal_bytes   & r   	_sanitizer   <   s(    
 ]]7,=>N  )44    c                 s   V w  r#VP                  R 4       V'       dX    VP                  R 4       Rp\        P                  V4      '       d   Rp\        P	                  RV4      pV: V: V: RV: R2# V#   \
         dC    \        T\        4      '       d   ^ RIH	p T! T4      pTP                  T4      pT: RT: R2u # i ; i)asciir   "z\\\g<0>z <>)Charset)r	   
specialsreZsearch	escapesreZsubr
   
isinstancestrZemail.charsetr   Zheader_encode)ZpaircharsetnameZaddressZquotesr   Zencoded_names   &&     r   
formataddrr   H   s     MDNN7	CKK  F  &&==T2D$*D&'BBN " 	7'3''1!'*"006L ,g66	7s   A7 7A
CCc              #   s   "   ^ pRp\        V 4       F.  w  rV'       d   VRV,           3x  RpK  VR8X  d   RpK)  W3x  K0  	  V'       d	   VR3x  R# R# 5i)    F\TN)Z	enumerate)addrposZescapech   &   r   _iter_escaped_charsr%   k   s]     
CFT?r	""F4ZF)O # Dk s   A	A
Ac                 s   R V 9  d   V # ^ pRp. p\        V 4       F:  w  rEVR 8X  g   K  Vf   TpK  W8w  d   VP                  WV 4       V^,           pRpK<  	  V\        V 4      8  d   VP                  WR 4       RP                  V4      # )r   Nr   )r%   appendlenjoin)r!   ZstartZopen_posresultr"   r#   s   &     r   _strip_quoted_realnamesr*   z   s    
$EHF&t,9$MM$X"67a - s4yd6l#776?r   Tstrictc                s   V'       g4   \         P                  R  V  4       4      p\        V4      pVP                  # V  Uu. uF  p\	        V4      NK  	  p p\        V 4      p \         P                  V 4      p\        V4      p\        VP                  4      p^ pV  F-  p\        V4      pV^VP                  R4      ,           ,          pK/  	  \        V4      V8w  d   R.# V# u upi )c              3   s8   "   T F  p\        V4      x  K  	  R # 5iNr   ).0vr   r   	<genexpr>Zgetaddresses.<locals>.<genexpr>   s     :kc!ffk   Z,r   r   )

COMMASPACEr(   _AddressListaddresslistr   _pre_parse_validation_post_parse_validationr*   Zcountr'   )Zfieldvaluesr+   ZallZar/   r!   r)   Zns   &$      r   getaddressesr8      s    $ oo:k::}}#./;a3q6;K/'4K??;'DTA#AMM2F 	
A $A&	Q  6{azM% 0s    C c                 s    \        V 4      p ^ p\        V 4       F3  w  r#VR8X  d   V^,          pK  VR8X  g   K   V^,          pV^ 8  g   K2   R# 	  V^ 8H  # )r   Z(Z)F)r*   r%   )r!   Zopensr"   r#   r$   r   _check_parenthesisr9      sX    "4(DE&t,9QJE3YQJEqy - QJr   c                 sd    . pV  F'  p\        V4      '       g   R pVP                  V4       K)  	  V# )z('', ''))r9   r&   )Zemail_header_fieldsaccepted_valuesr/      &  r   r6   r6      s7    O !!$$Aq! !
 r   c                 s^    . pV  F$  pR V^,          9   d   RpVP                  V4       K&  	  V# )Z[r2   )r&   )Zparsed_email_header_tuplesr:   r/   r;   r   r7   r7      s9    O (!A$;Aq! (
 r   c           	      s    R . ROV ^,          ,          V ^,          . ROV ^,          ^,
          ,          V ^ ,          V ^,          V ^,          V ^,          V3,          # )z"%s, %02d %s %04d %02d:%02d:%02d %s)ZMonZTueZWedZThuZFriZSatZSun)ZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDec )	timetuplezones   &&r   _format_timetuple_and_zoner?      sZ    /9)A,G!	33<Q<!3C	E!ilIaL)A,3  r   c                 s$   V f   \         P                   ! 4       p \        P                  P                  V \        P                  P                  4      pV'       d   VP                  4       pRpMV'       g   VP                  R R7      p\        W24      # )NF)tzinfo)timedatetimeZfromtimestamptimezoneutc
astimezoner   format_datetime)timeval	localtimeusegmtdts   &&& r   
formatdaterK      si    $ ))+				(	((2C2C2G2G	HB]]_ZZtZ$2&&r   c                 s   V P                  4       pV'       dF   V P                  e*   V P                  \        P                  P                  8w  d   \        R4      hRpM"V P                  f   RpMV P                  R4      p\        W#4      # )Nz%usegmt option requires a UTC datetimeZGMTz-0000z%z)r=   r@   rB   rC   rD   
ValueErrorZstrftimer?   )rJ   rI   nowr>   s   &&  r   rF   rF     sl     ,,.C99		X->->-B-B BDEE		{{4 %c00r   c                 s   ^ RI p^ RIp\        \        P                  ! 4       ^d,          4      p\        P
                  ! 4       pVP                  ^@4      pV f   Rp M	RV ,           p Vf   VP                  4       pRWEW`V3,          pV# )r   Nr   Z.z<%d.%d.%d%s@%s>)randomsocketintrA   osZgetpidZgetrandbitsZgetfqdn)ZidstringZdomainrN   rO   rG   ZpidZrandintZmsgids   &&      r   
make_msgidrR     st     $))+c/"G
))+C  $G>~!w& IIELr   c           
      s(   \        V 4      pVf   \        R\        V 4      ,          4      hVEv r#Vf   \        P                  ! VR,          !  # \        P                  ! VR,          R\        P                  ! \        P
                  ! VR7      4      / # )Nz!Invalid date value or format "%s":Ni   Nr@   )Zseconds)r   rL   r   rB   rC   Z	timedelta)ZdataZparsed_date_tzZdtupleZtzr$   r   parsedate_to_datetimerS   ;  s    "4(N<s4yHII KV	z  &*--fRj F$$X%7%7%CDF Fr   c                sx   V'       g)   \        V 4      P                  pV'       g   R# V^ ,          # \        V \        4      '       d
   V ^ ,          p \        V \        4      '       g   R# \        V .4      ^ ,          p \        \        V 4      P                  4      pV'       d   \        V4      ^8  d   R# V^ ,          # )r   r2   )r4   r5   r   Zlistr   r6   r7   r'   )r!   r+   Zaddrss   &$ r   	parseaddrrT   F  s     T"..OQx$AwdC   $(+D"<#5#A#ABECJN8Or   c                 s2   \        V 4      ^8  d   V P                  R4      '       d=   V P                  R4      '       d&   V ^R P                  RR4      P                  RR4      # V P                  R4      '       d   V P                  R4      '       d   V ^R # V # )   r   z\\r    z\"Z<r   i)r'   Z
startswithendswithr   r-   r   r   unquoterW   e  s~    
3x!|>>#3<<#4#4q9$$VT2::5#FF>>#3<<#4#4q9Jr   c                 s\    V P                  \        ^4      p\        V4      ^8:  d   RRV 3# V# )i   N)ZsplitTICKr'   )r   Zpartsr   r   decode_rfc2231rY   q  s.    GGD!E
5zQT1}Lr   c                 s    \         P                  P                  T R T;'       g    RR7      p Vf   Vf   V # Vf   R pV: RV: RV : 2# )r   r   )Zsafeencodingr   )urllibparser   )r   r   languages   &&&r   encode_rfc2231r^   y  sN     	120B0B7CA8+ (A..r   z&^(?P<name>\w+)\*((?P<num>[0-9]+)\*?)?$c                 s   V ^ ,          .p/ pV R,           F  w  r4VP                  R4      p\        V4      p\        P                  V4      pV'       dI   VP	                  RR4      w  r7Ve   \        V4      pVP                  V. 4      P                  WtV34       K  VP                  VR\        V4      ,          34       K  	  V'       Edt   VP                  4        EF^  w  r8. pRp	\        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      p
V
'       d   V Uu. uF  q^ ,          f   K  VNK  	  ppM2V Uu. uF&  q^ ,          ;'       g    ^ V^,          V^,          3NK(  	  ppVP                  R	 R
7       V FB  w  r|pV'       d$   \        P                  P                  VRR7      pRp	VP                  V4       KD  	  \        \        P                  V4      4      pV	'       d.   \!        V4      w  rpVP                  W=VRV,          334       EKD  VP                  VRV,          34       EKa  	  V# u upi u upi )r   :rU   NNZ*r   numz"%s"Fc              3   s8   "   T F  q^ ,          ^ 8H  x  K  	  R# 5i)r   Nr<   )r.   xr   r   r0   Z decode_params.<locals>.<genexpr>  s     <mQ419mr1   Tc                 s    V ^ ,          # )r   r<   )r`   r   r   Z<lambda>Zdecode_params.<locals>.<lambda>  s    QqTr   )Zkeyzlatin-1)rZ   )rV   rW   rfc2231_continuationZmatchZgrouprP   Z
setdefaultr&   r   ZitemsZanyZsortr[   r\   EMPTYSTRINGr(   rY   )ZparamsZ
new_paramsZrfc2231_paramsr   valueZencodedZmor_   ZcontinuationsZextendedZhas_zeror`   r   r   r]   s   &              r   decode_paramsrd     s   
 )J Nbzz--$!''-/ID#h%%dB/66G7LMtVeEl%:;< " ~#1#7#7#9DEH s<m<sss<m<<H,9 NMqqTM NBO P-QA$))!QqT1Q4!8- P>2 $1 ,,Q,CA#HQ $1 +**512E+9%+@(5!!48Ve^)L"MN!!4%"89; $:< / !O Ps   &I7IIIc                 s    \        V \        4      '       d   \        V 4      ^8w  d   \        V 4      # V w  r4pVf   Tp\	        VR4      p \        WcV4      #   \         d    \        T4      u # i ; i)i   zraw-unicode-escape)r   Ztupler'   rW   Zbytesr   ZLookupError)rc   ZerrorsZfallback_charsetr   r]   ZtextZrawbytess   &&&    r   r    r      ss    eU##s5zQu~ $Gt #T/0H8f-- t}s   
A A/.A/c                 sf    V f   \         P                   P                  4       p V P                  4       # r,   )rB   rM   rE   )rJ   r   r   rH   rH     s)     
z""$==?r   )r    rd   rY   r^   r   rK   rF   r8   rR   r   rT   r   r   rS   rW   )r   )NFF)F)NN)r   zus-asciir,   )/Z__all__rQ   ZrerA   rB   Zurllib.parser[   Zemail._parseaddrr   r   r4   r   r   r   r   r3   rb   ZUEMPTYSTRINGZCRLFrX   Zcompiler   r   r   r   r   r%   r*   Zsupports_strict_parsingr8   r9   r6   r7   r?   rK   rF   rR   rS   rT   rW   rY   r^   ZASCIIra   rd   r    rH   r<   r   r   <module>re      s   $ 
 	    " 8 & C C

ZZ+,
JJx 		5 F2  ) )X	':1&8Fd >/ zz"KHH 4l4r   