
    2h0                        S r SSKrSSKrSSKJrJrJrJrJrJ	r	J
r
JrJr  SSKJr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SrSrS\R6                  s=:*  =(       a    S:  Os  r\R6                  S:  r\=(       d    \r " S S\
5      r\" SS5      r \" SS5      r!\\\"/\S   4      r#\\S/\S   4      r$ " S S\5      r%S\&S\&4S jr'S\&SSS\"4S jr(\(r) SSK*J+r+  \+RR                  r,\(       d  \,r)gg! \- a     gf = f)z"Http related parsers and protocol.    N)	TYPE_CHECKINGAny	AwaitableCallableIterableList
NamedTupleOptionalUnion)CIMultiDict   )AbstractStreamWriter)BaseProtocol)ClientConnectionResetError)ZLibCompressor)NO_EXTENSIONS)StreamWriterHttpVersionHttpVersion10HttpVersion11i   )      r   )r   r      )r      	   c                   *    \ rS rSr% \\S'   \\S'   Srg)r   '   majorminor N)__name__
__module____qualname____firstlineno__int__annotations____static_attributes__r        K/var/www/auris/envauris/lib/python3.13/site-packages/aiohttp/http_writer.pyr   r   '   s    JJr(   r   CIMultiDict[str]c                      \ rS rSr% Sr\\   \S'   Sr\	\S'   Sr
\	\S'   Sr\\   \S'     S,S\S	\R                  S
\S\SS4
S jjr\S\\R(                     4S j5       r\S\4S j5       rS-S jr S.S\S\\   SS4S jjrS\\\\4   SS4S jrS\\   SS4S jr S\\\SS4   SS4S jr!S\\\SS4   S\	SS4S jr"SSS.S\\\\4   S \	S!\SS4S" jjr#S#\S$S%SS4S& jr$S-S' jr%S-S( jr&S/S\SS4S) jjr'S-S* jr(S+r)g)0r   4   NlengthFchunked_eof	_compressprotocolloopon_chunk_senton_headers_sentreturnc                 P    Xl         X l        X0l        X@l        S U l        SU l        g )NF)	_protocolr2   _on_chunk_sent_on_headers_sent_headers_buf_headers_written)selfr1   r2   r3   r4   s        r)   __init__StreamWriter.__init__;   s*     "	.;2A-1&+r(   c                 .    U R                   R                  $ N)r7   	transportr<   s    r)   rA   StreamWriter.transportI   s    ~~'''r(   c                     U R                   $ r@   )r7   rB   s    r)   r1   StreamWriter.protocolM   s    ~~r(   c                     SU l         g )NT)r.   rB   s    r)   enable_chunkingStreamWriter.enable_chunkingQ   s	    r(   encodingstrategyc                      [        XS9U l        g )N)rI   rJ   )r   r0   )r<   rI   rJ   s      r)   enable_compressionStreamWriter.enable_compressionT   s     (Mr(   chunkc                    [        U5      nU =R                  U-  sl        U =R                  U-  sl        U R                  R                  nUb  UR                  5       (       a  [        S5      eUR                  U5        g )N!Cannot write to closing transport)lenbuffer_sizeoutput_sizer7   rA   
is_closingr   write)r<   rN   sizerA   s       r)   _writeStreamWriter._writeY   sh    5zD D NN,,		 4 4 6 6,-PQQr(   chunksc                    SnU H  nU[        U5      -  nM     U =R                  U-  sl        U =R                  U-  sl        U R                  R                  nUb  UR                  5       (       a  [        S5      e[        (       d
  U[        :  a!  UR                  SR                  U5      5        g UR                  U5        g )Nr   rP   r(   )rQ   rR   rS   r7   rA   rT   r   SKIP_WRITELINESMIN_PAYLOAD_FOR_WRITELINESrU   join
writelines)r<   rY   rV   rN   rA   s        r)   _writelinesStreamWriter._writelinesb   s    ECJD D D NN,,		 4 4 6 6,-PQQ?d%??OOCHHV,-  (r(   zmemoryview[int]zmemoryview[bytes]c                 f    [        U5      S S3R                  S5      nU R                  X!S45        g)z+Write a chunk with proper chunked encoding.x
ascii   
N)rQ   encoder_   )r<   rN   chunk_len_pres      r)   _write_chunked_payload#StreamWriter._write_chunked_payloadp   s4     u:a.-44W=-89r(   is_eofc                    SU l         U R                  nSU l        [        (       a  Uc   eU R                  (       d,  U(       a  U R	                  X145        gU R                  U5        gU(       aO  [        U5      S S3R                  S5      nU(       a  U R	                  X4US45        gU R	                  X4US45        gU(       a  U R	                  US45        gU R                  U5        g)	zASend buffered headers with payload, coalescing into single write.TNrb   rc   rd      
0

re      0

)r;   r:   r   r.   r_   rW   rQ   rf   )r<   rN   rj   headers_bufrg   s        r)   _send_headers_with_payload'StreamWriter._send_headers_with_payloadw   s     !%'' = ***||  +!56  K( "5z!nD188AM  +eEU!VW  +eW!MNk<89KK$r(   Ti   )drainLIMITrq   rr   c                  #    U R                   b  U R                  U5      I Sh  vN   [        U[        5      (       a*  UR                  [	        U5      :w  a  UR                  S5      nU R                  b+  U R                  R                  U5      I Sh  vN nU(       d  gU R                  bN  [	        U5      nU R                  U:  a  U R                  U-
  U l        OUSU R                   nSU l        U(       d  gU R                  (       aZ  U R                  (       dI  U R                  US5        U(       a/  U R                  U:  a  SU l        U R                  5       I Sh  vN   gU(       am  U R                  (       a  U R                  U5        OU R!                  U5        U(       a1  U R                  U:  a   SU l        U R                  5       I Sh  vN   gggg GN GNK N N7f)z
Writes chunk of data to a stream.

write_eof() indicates end of stream.
writer can't be used after write_eof() method being called.
write() return drain future.
Ncr   F)r8   
isinstance
memoryviewnbytesrQ   castr0   compressr-   r:   r;   ro   rR   rq   r.   rh   rW   )r<   rN   rq   rr   	chunk_lens        r)   rU   StreamWriter.write   s|     *%%e,,,eZ((||s5z)

3>>%..11%88E;;"E
I{{i'"kkI5m, T%:%:++E59))E1#$ jjl""||++E2E"))E1#$ jjl"" 2u = - 9& # #sH   "G%GA.G%GCG% G!!A1G%G#	G%G%!G%#G%status_lineheadersr*   c                    #    U R                   b  U R                  U5      I Sh  vN   [        X5      nSU l        X0l        g N7f)zWrite headers to the stream.NF)r9   _serialize_headersr;   r:   )r<   r|   r}   bufs       r)   write_headersStreamWriter.write_headers   sD        ,''000 6 %	 1s   "AAAc                     U R                   (       a  U R                  (       a  gSU l        U R                   nSU l         [        (       a  Uc   eU R                  U5        g)z3Force sending buffered headers if not already sent.NT)r:   r;   r   rW   r<   rn   s     r)   send_headersStreamWriter.send_headers   sN      D$9$9 $'' =***K r(   c                    U R                   (       a  gU R                  (       ar  U R                  (       da  SU l        U R                  nSU l        [        (       a  Uc   eU R                  (       a  U R                  US45        OEU R                  U5        O3U R                  (       a"  U R                  (       a  U R                  S5        SU l         g)z&Indicate that the message is complete.NTrm   )r/   r:   r;   r   r.   r_   rW   r   s     r)   set_eofStreamWriter.set_eof   s    99 T%:%:$(D!++K $D}"... ||  +|!<=K(\\d33KK%	r(   c                   #    U R                   (       a  g U(       a&  U R                  b  U R                  U5      I S h  vN   U R                  (       Ga  / nSnU(       aF  U R                  R                  U5      I S h  vN =n(       a  [	        U5      nUR                  U5        U R                  R                  5       nU[	        U5      -  nUR                  U5        U(       d   eU R                  (       a  U R                  (       d  SU l        U R                  nS U l        U R                  (       a-  US S3R                  S5      nU R                  Xg/UQSP75        OU R                  U/UQ75        U R                  5       I S h  vN   SU l         g U R                  (       a-  US S3R                  S5      nU R                  U/UQSP75        O5[	        U5      S:  a  U R                  U5        OU R                  US   5        U R                  5       I S h  vN   SU l         g U R                  (       aC  U R                  (       d2  U R                  US5        U R                  5       I S h  vN   SU l         g U R                  (       ai  U(       a1  U R                  [	        U5      S S3R                  S5      US45        OU R                  S5        U R                  5       I S h  vN   SU l         g U(       a)  U R                  U5        U R                  5       I S h  vN   SU l         g  GN GN GN GN N NR N7f)	Nr   Trb   rc   rd   rl   r   rm   )r/   r8   r0   ry   rQ   appendflushr:   r;   r.   rf   r_   rq   rW   ro   )r<   rN   rY   
chunks_lencompressed_chunkflush_chunkrn   rg   s           r)   	write_eofStreamWriter.write_eof  s    99T((4%%e,,, >>>"$FJDNN4K4KE4R.RR*R !12
./....0K#k**JMM+&:   )>)>(,%"//$(!<<'1!nD$9$@$@$IM$$$OfO>NO
 $$k%;F%;<jjl"" 	 ||#-a. 5 < <W E  -!K&!K:J!KLVq  (F1I&**,DI T%:%:++E48**,DI <<  E
1~T*11':ECST L)**,DIKK**,	O - /S0 #    s   ;ML/?M=L2>DM	L5
BML8AM0L;1A9M*L=+7M"L?#M2M5M8M;M=M?Mc                    #    U R                   nUR                  b+  UR                  (       a  UR                  5       I Sh  vN   ggg N7f)z_Flush the write buffer.

The intended use is to write

  await w.write(data)
  await w.drain()
N)r7   rA   _paused_drain_helper)r<   r1   s     r)   rq   StreamWriter.drainU  sA      >>)h.>.>((*** /?)*s   >A
 AA
)r0   r/   r:   r;   r8   r9   r7   rR   r.   r-   r2   )NN)r5   N)deflateN)r(   )*r!   r"   r#   r$   r-   r
   r%   r&   r.   boolr/   r0   r   r   asyncioAbstractEventLoop_T_OnChunkSent_T_OnHeadersSentr=   property	TransportrA   r1   rG   strrL   r   bytes	bytearrayrv   rW   r   r_   rh   ro   rU   r   r   r   r   rq   r'   r    r(   r)   r   r   4   s    FHSM GTD$*.Ix'. )-,0,, '', &	,
 *, 
, (8G$5$56 ( ( ,   DHNN3;C=N	N
E%J">? D )(5/ )d ):5)->@SST:	:"%UI'8:MMN"% "% 
	"%P 5#UIz125# 	5#
 5# 
5#n	 	 );	 		 !6LU LT L\
+r(   r   stringr5   c                 4    SU ;   d  SU ;   a  [        S5      eU $ )N
zRNewline or carriage return detected in headers. Potential header injection attack.)
ValueError)r   s    r)   _safe_headerr   b  s(    v~1
 	
 Mr(   r|   r}   c                     S UR                  5        5       nU S-   SR                  U5      -   S-   nUR                  S5      $ )Nc              3   Z   #    U  H!  u  p[        U5      S -   [        U5      -   v   M#     g7f)z: N)r   ).0kvs      r)   	<genexpr>(_py_serialize_headers.<locals>.<genexpr>l  s$     X<?T)LO;s   )+rc   z

zutf-8)itemsr]   rf   )r|   r}   headers_genlines       r)   _py_serialize_headersr   k  s>    XXK&++k"::ZGD;;wr(   ).__doc__r   systypingr   r   r   r   r   r   r	   r
   r   	multidictr   abcr   base_protocolr   client_exceptionsr   compression_utilsr   helpersr   __all__r\   version_infoIS_PY313_BEFORE_313_2IS_PY_BEFORE_312_9r[   r   r   r   r   r   r   r   r   r   r   r   aiohttp._http_writer_http_writer_c_serialize_headersImportErrorr    r(   r)   <module>r      sL   (  

 
 
 " % ' 9 - "
K " "c&6&6CCC %%
2 '=+=* 
 Aq!Aq! (E7IdO#;<=H&8%99T?%JKL k+' k+\	   s  5G  E   + 	/'::1  		s   C: :DD