
    -hhOQ                        / S Qr SSKrSSKrSSKrSSKrSSKJr  SSKJrJ	r	  SSK
Jr  SSKJr  SrSr\R                   " S	5      r\R                   " S
\R$                  5      r\R                   " S5      r " S S5      r " S S\5      rSr " S S\5      r\" \" \R6                  S-
  5      5      rS\-  r\R<                  rg))	GeneratorDecodedGeneratorBytesGenerator    N)deepcopy)StringIOBytesIO)_has_surrogates)HeaderWriteError_
z
\r\n|\r|\nz^From z\r\n[^ \t]|\r[^ \n\t]|\n[^ \t]c                       \ rS rSrSSS.S jjrS rSS jrS rS rS	 r	S
 r
S rS rS rS r\rS rS rS rS r\SS j5       r\S 5       rSrg)r      Npolicyc                \    Uc  Uc  SOUR                   nXl        X l        X0l        X@l        g )NT)mangle_from__fp_mangle_from_maxheaderlenr   )selfoutfpr   r   r   s        8/opt/python-3.13.8/usr/lib/python3.13/email/generator.py__init__Generator.__init__%   s1    2 #)>4v7J7JL)(    c                 :    U R                   R                  U5        g N)r   writer   ss     r   r   Generator.writeE   s    qr   c                    U R                   c  UR                   OU R                   nUb  UR                  US9nU R                  b  UR                  U R                  S9nUR                  U l        U R                  U R                  5      U l        SU l        U R                  U R                  5      U l        U R                   nUR                   n X@l         XAl         U(       a`  UR                  5       nU(       d,  S[        R                  " [        R                  " 5       5      -   nU R                  XpR                  -   5        U R                  U5        XPl         Xal         g ! XPl         Xal         f = f)N)linesepmax_line_length zFrom nobody )r   cloner   r#   _NL_encode_encoded_NL_EMPTY_encoded_EMPTYget_unixfromtimectimer   _write)r   msgunixfromr#   r   old_gen_policyold_msg_policyufroms           r   flattenGenerator.flattenI   s   *  ${{2\\'\2F(\\$2C2C\DF>><<1"ll4;;7
 	( KJ((**TZZ		-DDE

588+,KK(K'J )K'Js   BE   E.c                 N    U R                  UU R                  S U R                  S9$ Nr   )	__class__r   r   )r   fps     r   r'   Generator.clonez   s-    ~~b"00"%)[[  2 	2r   c                     [        5       $ r   )r   r   s    r   _new_bufferGenerator._new_buffer   s
    zr   c                     U$ r    r   s     r   r)   Generator._encode   s    r   c                     U(       d  g [         R                  U5      nUS S  H/  nU R                  U5        U R                  U R                  5        M1     US   (       a  U R                  US   5        g g )N)NLCREsplitr   r(   )r   lineslines      r   _write_linesGenerator._write_lines   s`    E"#2JDJJtJJtxx   9JJuRy! r   c                 *   U R                   n S U l        U R                  5       =U l         nU R                  U5        X l         U R                  nU ?U(       aP  [	        U5      nUR                  S5      c	  US   US'   OUR                  SUS   5        UR                  SUS   5        [        USS 5      nUc  U R                  U5        OU" U 5        U R                   R                  UR                  5       5        g ! X l         U R                  nU ?f = f)Ncontent-transfer-encodingr   Content-Transfer-Encodingcontent-type   _write_headers)r   
_munge_cter?   	_dispatchr   getreplace_headergetattrrQ   r   getvalue)r   r1   oldfpsfp	munge_ctemeths         r   r0   Generator._write   s     	 "DO!--//DHsNN3HI3-Cww23;3<Q</0""#>	!M~y|< s,d3<$Js||~&' HIs   /C< <Dc                 (   UR                  5       nUR                  5       n[        R                  X#45      R	                  SS5      n[        U SU-   S 5      nUc1  UR	                  SS5      n[        U SU-   S 5      nUc  U R                  nU" U5        g )N-r   _handle_)get_content_maintypeget_content_subtype
UNDERSCOREjoinreplacerV   
_writeBody)r   r1   mainsubspecificr[   generics          r   rS   Generator._dispatch   s    
 '')%%'??D;/77SAtZ(2D9<ll3,G4g!5t<D|S	r   c                    UR                  5        H  u  p#U R                  R                  X#5      nU R                  R                  (       a  U R                  R                  nUR                  U R                  R                  5      (       d  [        SU< SU< 35      e[        R                  UR                  U5      5      (       a  [        SU< 35      eU R                  U5        M     U R                  U R                  5        g )Nz folded header does not end with z: z folded header contains newline: )	raw_itemsr   foldverify_generated_headersr#   endswithr
   NEWLINE_WITHOUT_FWSPsearchremovesuffixr   r(   )r   r1   hvfoldedr#   s         r   rQ   Generator._write_headers   s    MMODA[[%%a+F{{33++--t{{':':;;*:7+RzRT T'..v/B/B7/KLL*:6*EG GJJv $ 	

488r   c                    UR                  5       nUc  g [        U[        5      (       d  [        S[	        U5      -  5      e[        UR                  5      (       a]  UR                  S5      nUbI  [        U5      nUS	 UR                  UR                  U5        UR                  5       nUS   US   4U l
        U R                  (       a  [        R                  SU5      nU R                  U5        g )Nzstring payload expected: %scharsetrM   rO   >From )get_payload
isinstancestr	TypeErrortyper	   _payload	get_paramr   set_payloadrR   r   fcrerg   rJ   )r   r1   payloadrx   s       r   _handle_textGenerator._handle_text   s    //#?'3''9DMIJJ3<<((mmI.G" sm34g6//+#&'B#C#&~#6#8hhx1G'"r   c                 t   / nUR                  5       nUc  / nO?[        U[        5      (       a  U R                  U5        g [        U[        5      (       d  U/nU H^  nU R                  5       nU R                  U5      nUR                  USU R                  S9  UR                  UR                  5       5        M`     UR                  5       nU(       d=  U R                  R                  U5      nU R                  U5      nUR                  U5        UR                   bj  U R"                  (       a!  [$        R'                  SUR                   5      n	OUR                   n	U R)                  U	5        U R                  U R                  5        U R                  SU-   U R                  -   5        U(       a*  U R*                  R                  UR-                  S5      5        U HL  n
U R                  U R                  S-   U-   U R                  -   5        U R*                  R                  U
5        MN     U R                  U R                  S-   U-   S-   U R                  -   5        UR.                  bP  U R"                  (       a!  [$        R'                  SUR.                  5      nOUR.                  nU R)                  U5        g g )NFr2   r#   ry   z--r   )rz   r{   r|   r   listr?   r'   r6   r(   appendrW   get_boundaryr*   rc   _make_boundaryset_boundarypreambler   r   rg   rJ   r   popepilogue)r   r1   msgtextssubpartspartr    gboundaryalltextr   	body_partr   s               r   _handle_multipartGenerator._handle_multipart  s    ??$H#&&JJx Hd++ zHD  "A

1AIIdUDHHI=OOAJJL)	  ##% &&++H5G**73HX&<<#!!88Hcll;<<h'JJtxx 

4(?TXX-.HHNN8<<?+ "IJJtxx$1DHH<=HHNN9%	 " 	

488d?X-4txx?@<<#!!88Hcll;<<h' $r   c                     U R                   nUR                  SS9U l          U R                  U5        X l         g ! X l         f = f)Nr   r$   )r   r'   r   )r   r1   ps      r   _handle_multipart_signed"Generator._handle_multipart_signedF  s=     KKggag0	""3'K!Ks	   : Ac                     / nUR                  5        H  nU R                  5       nU R                  U5      nUR                  USU R                  S9  UR                  5       nUR                  U R                  5      nU(       aB  US   U R                  :X  a/  UR                  U R                  R                  US S 5      5        M  UR                  U5        M     U R                  R                  U R                  R                  U5      5        g )NFr   rE   )rz   r?   r'   r6   r(   rW   rG   r*   r,   r   rc   r   r   )r   r1   blocksr   r    r   textrH   s           r   _handle_message_delivery_status)Generator._handle_message_delivery_statusQ  s     OO%D  "A

1AIIdUDHHI=::<DJJt//0Erd&9&99d..33E#2J?@d# & 	t'',,V45r   c                 V   U R                  5       nU R                  U5      nUR                  n[        U[        5      (       a;  UR                  UR                  S5      SU R                  S9  UR                  5       nOU R                  U5      nU R                  R                  U5        g )Nr   Fr   )r?   r'   r   r{   r   r6   rz   r(   rW   r)   r   r   )r   r1   r    r   r   s        r   _handle_messageGenerator._handle_messagef  s}    JJqM ,,gt$$IIcooa(5$((IKjjlGll7+Gwr   c                 R   [         R                  " [        R                  5      nS[        U-  -   S-   nUc  U$ UnSn U R                  S[        R                  " U5      -   S-   [        R                  5      nUR                  U5      (       d   U$ US-   [        U5      -   nUS-  nMk  )Nz===============z==r   z^--z(--)?$.rP   )random	randrangesysmaxsize_fmt_compile_rereescape	MULTILINErq   r|   )clsr   tokenr   bcountercres          r   r   Generator._make_boundary  s       -.5<O//%"))A,"6"A2<<PC::d##  3W-AqLG r   c                 .    [         R                  " X5      $ r   )r   compiler   r    flagss      r   r   Generator._compile_re  s    zz!##r   )	r+   r(   r,   r*   r   r   rR   r   r   )NN)FNr   )__name__
__module____qualname____firstlineno__r   r   r6   r'   r?   r)   rJ   r0   rS   rQ   r   re   r   r   r   r   classmethodr   r   __static_attributes__rB   r   r   r   r      s    @/(b2(	" %'N(&#, J8(t	6* 2  " $ $r   r   c                   T   ^  \ rS rSrS rS rS rS rU 4S jr\r	\
S 5       rSrU =r$ )	r   i  c                 Z    U R                   R                  UR                  SS5      5        g )Nasciisurrogateescape)r   r   encoder   s     r   r   BytesGenerator.write  s    qxx):;<r   c                     [        5       $ r   )r   r>   s    r   r?   BytesGenerator._new_buffer  s
    yr   c                 $    UR                  S5      $ Nr   )r   r   s     r   r)   BytesGenerator._encode  s    xx  r   c                     UR                  5        H9  u  p#U R                  R                  U R                  R	                  X#5      5        M;     U R                  U R
                  5        g r   )rl   r   r   r   fold_binaryr(   )r   r1   rs   rt   s       r   rQ   BytesGenerator._write_headers  sG     MMODAHHNN4;;22189 $ 	

488r   c                 T  > UR                   c  g [        UR                   5      (       al  U R                  R                  S:X  dR  U R                  (       a%  [
        R                  SUR                   5      Ul         U R                  UR                   5        g [        [        U ]+  U5        g )N7bitry   )r   r	   r   cte_typer   r   rg   rJ   superr   r   )r   r1   r:   s     r   r   BytesGenerator._handle_text  sr     <<3<<((1E1Ev1M!!#xx#,,?cll+.3C8r   c                 N    [         R                  " UR                  S5      U5      $ r   )r   r   r   r   s      r   r   BytesGenerator._compile_re  s    zz!((7+U33r   rB   )r   r   r   r   r   r?   r)   rQ   r   re   r   r   r   __classcell__)r:   s   @r   r   r     s5    =!
9 J4 4r   r   zD[Non-text (%(type)s) part of message omitted, filename %(filename)s]c                   ,    \ rS rSrSSS.S jjrS rSrg)r   i  Nr   c                X    [         R                  XX#US9  Uc  [        U l        g X@l        g r9   )r   r   _FMTr   )r   r   r   r   fmtr   s         r   r   DecodedGenerator.__init__  s/    . 	4"( 	 	*;DIIr   c                    UR                  5        H  nUR                  5       nUS:X  a  [        UR                  SS9U S9  M2  US:X  a  M:  [        U R                  UR                  5       UR                  5       UR                  5       UR                  S5      UR                  SS5      UR                  S	S
5      S.-  U S9  M     g )Nr   F)decode)file	multipartz[no filename]zContent-Descriptionz[no description]rN   z[no encoding])r~   maintypesubtypefilenamedescriptionencoding)	walkr`   printrz   r   get_content_typera   get_filenamerT   )r   r1   r   r   s       r   rS   DecodedGenerator._dispatch  s    HHJD002H6!d&&e&44@[(dii#'#8#8#:#'#<#<#>#'#;#;#=#'#4#4_#E#'88,A,>$@#'88,G,;$=	# 	 !	" r   )r   )NNN)r   r   r   r   r   rS   r   rB   r   r   r   r     s    <"r   r   rP   z%%0%dd)__all__r   r   r.   r   copyr   ior   r   email.utilsr	   email.errorsr
   rb   NLr   rF   r   r   rp   r   r   r   r   lenreprr   _widthr   r   rB   r   r   <module>r      s    > 	 
      ' )
	


=!	zz)R\\*zz"CD x$ x$v/4Y /4d N6"y 6"t 
T#++a- 	!& ))r   