Ë
    [üàg«  ã                   óì  — d Z ddlZddlZddlZddlmZmZmZmZm	Z	m
Z
mZmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ dZdZdej6                  cxk  xr dk  nc Zej6                  dk  Zexs eZ G d„ de
«      Z edd«      Z  edd«      Z!eee"ged   f      Z#eedged   f      Z$ G d„ de«      Z%de&de&fd„Z'de&ddde"fd„Z(e(Z)	 ddl*m+Z+ e+jR                  Z,ese,Z)yy# e-$ r Y yw xY w)z"Http related parsers and protocol.é    N)ÚAnyÚ	AwaitableÚCallableÚIterableÚListÚ
NamedTupleÚOptionalÚUnion)ÚCIMultiDicté   )ÚAbstractStreamWriter)ÚBaseProtocol)ÚClientConnectionResetError)ÚZLibCompressor)ÚNO_EXTENSIONS)ÚStreamWriterÚHttpVersionÚHttpVersion10ÚHttpVersion11i   )é   é   r   )r   r   é   )r   é   é	   c                   ó"   — e Zd ZU eed<   eed<   y)r   ÚmajorÚminorN)Ú__name__Ú
__module__Ú__qualname__ÚintÚ__annotations__© ó    úQ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/aiohttp/http_writer.pyr   r   '   s   … ØƒJØ„Jr$   r   úCIMultiDict[str]c                   ó˜  — e Zd ZU dZee   ed<   dZeed<   dZ	eed<   dZ
ee   ed<   	 	 d%dedej                  d	ed
eddf
d„Zedeej&                     fd„«       Zedefd„«       Zd&d„Zdej0                  fdededdfd„Zdeeeef   ddfd„Zde e   ddfd„Z!dddœdeeeef   dededdfd„Z"dedd ddfd!„Z#d&d"„Z$d'deddfd#„Z%d&d$„Z&y)(r   NÚlengthFÚchunkedÚ_eofÚ	_compressÚprotocolÚloopÚon_chunk_sentÚon_headers_sentÚreturnc                 ó<   — || _         || _        || _        || _        y ©N)Ú	_protocolr-   Ú_on_chunk_sentÚ_on_headers_sent)Úselfr,   r-   r.   r/   s        r%   Ú__init__zStreamWriter.__init__;   s"   € ð "ˆŒØˆŒ	Ø.;ˆÔØ2AˆÕr$   c                 ó.   — | j                   j                  S r2   )r3   Ú	transport©r6   s    r%   r9   zStreamWriter.transportG   s   € à�~‰~×'Ñ'Ð'r$   c                 ó   — | j                   S r2   )r3   r:   s    r%   r,   zStreamWriter.protocolK   s   € à�~‰~Ðr$   c                 ó   — d| _         y )NT)r)   r:   s    r%   Úenable_chunkingzStreamWriter.enable_chunkingO   s	   € Øˆ�r$   ÚdeflateÚencodingÚstrategyc                 ó(   — t        ||¬«      | _        y )N)r?   r@   )r   r+   )r6   r?   r@   s      r%   Úenable_compressionzStreamWriter.enable_compressionR   s   € ô (°ÀHÔMˆ�r$   Úchunkc                 óö   — t        |«      }| xj                  |z  c_        | xj                  |z  c_        | j                  j                  }|�|j                  «       rt        d«      ‚|j                  |«       y )Nú!Cannot write to closing transport)ÚlenÚbuffer_sizeÚoutput_sizer3   r9   Ú
is_closingr   Úwrite)r6   rC   Úsizer9   s       r%   Ú_writezStreamWriter._writeW   se   € Ü�5‹zˆØ×Ò˜DÑ ÕØ×Ò˜DÑ ÕØ—N‘N×,Ñ,ˆ	ØÐ 	× 4Ñ 4Ô 6Ü,Ð-PÓQÐQØ�‰˜Õr$   Úchunksc                 ón  — d}|D ]  }|t        |«      z  }Œ | xj                  |z  c_        | xj                  |z  c_        | j                  j                  }|�|j                  «       rt        d«      ‚t        s	|t        k  r!|j                  dj                  |«      «       y |j                  |«       y )Nr   rE   r$   )rF   rG   rH   r3   r9   rI   r   ÚSKIP_WRITELINESÚMIN_PAYLOAD_FOR_WRITELINESrJ   ÚjoinÚ
writelines)r6   rM   rK   rC   r9   s        r%   Ú_writelineszStreamWriter._writelines`   s    € ØˆØò 	ˆEØ”C˜“JÑ‰Dð	à×Ò˜DÑ ÕØ×Ò˜DÑ ÕØ—N‘N×,Ñ,ˆ	ØÐ 	× 4Ñ 4Ô 6Ü,Ð-PÓQÐQÝ˜dÔ%?Ò?Ø�O‰O˜CŸH™H VÓ,Õ-à× Ñ  Õ(r$   Ti   )ÚdrainÚLIMITrT   rU   c             ƒ   óè  K  — | j                   �| j                  |«      ƒ d{  –—†  t        |t        «      r)|j                  t	        |«      k7  r|j                  d«      }| j                  �&| j                  j                  |«      ƒ d{  –—† }|sy| j                  �Ht	        |«      }| j                  |k\  r| j                  |z
  | _        n|d| j                   }d| _        |sy|r�| j                  r1| j                  t	        |«      d›d�j                  d«      |df«       n| j                  |«       | j                  |kD  r#|r d| _        | j                  «       ƒ d{  –—†  yyyy7 �ŒH7 Œâ7 Œ­w)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   Úxú
Úasciis   
)r4   Ú
isinstanceÚ
memoryviewÚnbytesrF   Úcastr+   Úcompressr(   r)   rS   ÚencoderL   rG   rT   )r6   rC   rT   rU   Ú	chunk_lens        r%   rJ   zStreamWriter.writen   sO  è ø€ ð ×ÑÐ*Ø×%Ñ% eÓ,×,Ð,ä�eœZÔ(Ø�|‰|œs 5›zÒ)àŸ
™
 3›�à�>‰>Ð%ØŸ.™.×1Ñ1°%Ó8×8ˆEÙØà�;‰;Ð"Ü˜E›
ˆIØ�{‰{˜iÒ'Ø"Ÿk™k¨IÑ5�•à˜m §¡Ð,�Ø�”ÙØáØ�|Š|Ø× Ñ Ü˜E›
 1�~ TÐ*×1Ñ1°'Ó:¸EÀ7ÐKõð —‘˜EÔ"à×Ñ %Ò'©EØ#$�Ô Ø—j‘j“l×"Ñ"ð -2Ð'ð ð- -ùð 9øð0 #ús5   ‚!E2£E+¤A'E2ÂE.ÂCE2Å"E0Å#	E2Å.E2Å0E2Ústatus_lineÚheadersr&   c              ƒ   ó”   K  — | j                   �| j                  |«      ƒ d{  –—†  t        ||«      }| j                  |«       y7 Œ"­w)z*Write request/response status and headers.N)r5   Ú_serialize_headersrL   )r6   rb   rc   Úbufs       r%   Úwrite_headerszStreamWriter.write_headersž   sG   è ø€ ð × Ñ Ð,Ø×'Ñ'¨Ó0×0Ð0ô ! ¨gÓ6ˆØ�‰�CÕð	 1ús   ‚!A£A¤#Ac                 ó   — d| _         y)z&Indicate that the message is complete.TN)r*   r:   s    r%   Úset_eofzStreamWriter.set_eof©   s	   € àˆ�	r$   c              ƒ   óŠ  K  — | j                   ry |r%| j                  �| j                  |«      ƒ d {  –—†  | j                  ròg }d}|rA| j                  j                  |«      ƒ d {  –—† x}rt	        |«      }|j                  |«       | j                  j                  «       }|t	        |«      z  }|j                  |«       |sJ ‚| j                  r-|d›d�j                  d«      }| j                  |g|¢d‘­«       n›t	        |«      dkD  r| j                  |«       n{| j                  |d   «       nf| j                  rG|r3t	        |«      d›d�j                  d«      }| j                  ||df«       n%| j                  d«       n|r| j                  |«       | j                  «       ƒ d {  –—†  d| _         y 7 �Œ‰7 �ŒW7 Œ­w)	Nr   rX   rY   rZ   s   
0

r   s   0

T)r*   r4   r+   r_   rF   ÚappendÚflushr)   r`   rS   rL   rT   )r6   rC   rM   Ú
chunks_lenÚcompressed_chunkÚflush_chunkÚchunk_len_pres          r%   Ú	write_eofzStreamWriter.write_eof­   s–  è ø€ Ø�9Š9Øá�T×(Ñ(Ð4Ø×%Ñ% eÓ,×,Ð,à�>Š>Ø"$ˆFØˆJÙ°D·N±N×4KÑ4KÈEÓ4R×.RÐRÐ*ÐRÜ Ð!1Ó2�
Ø—‘Ð.Ô/àŸ.™.×.Ñ.Ó0ˆKØœ#˜kÓ*Ñ*ˆJØ�M‰M˜+Ô&ÙÐ�:à�|Š|Ø#-¨a .°Ð 5× <Ñ <¸WÓ E�Ø× Ñ  -Ð!K°&Ð!KÐ:JÑ!KÕLÜ�V“˜q’Ø× Ñ  Õ(à—‘˜F 1™IÕ&Ø�\Š\ÙÜ#& u£:¨a .°Ð 5× <Ñ <¸WÓ E�Ø× Ñ  -°Ð8HÐ!IÕJà—‘˜LÕ)ÙØ�K‰K˜Ôà�j‰j‹l×Ðàˆ�	ðA -ùð
 /Sùð2 	ús4   ‚0G²F;³4GÁ'F>Á(EGÆ.GÆ/GÆ>GÇGc              ƒ   óŒ   K  — | j                   }|j                  �&|j                  r|j                  «       ƒ d{  –—†  yyy7 Œ­w)zFlush the write buffer.

        The intended use is to write

          await w.write(data)
          await w.drain()
        N)r3   r9   Ú_pausedÚ_drain_helper)r6   r,   s     r%   rT   zStreamWriter.drainÔ   sB   è ø€ ð —>‘>ˆØ×ÑÐ)¨h×.>Ò.>Ø×(Ñ(Ó*×*Ñ*ð /?Ð)Ø*ús   ‚8AºA»A)NN)r0   N)r$   )'r   r   r    r(   r	   r!   r"   r)   Úboolr*   r+   r   r   ÚasyncioÚAbstractEventLoopÚ_T_OnChunkSentÚ_T_OnHeadersSentr7   ÚpropertyÚ	Transportr9   r,   r=   ÚzlibÚZ_DEFAULT_STRATEGYÚstrrB   r
   ÚbytesÚ	bytearrayr\   rL   r   rS   rJ   rg   ri   rq   rT   r#   r$   r%   r   r   4   s¡  … à €FˆH�S‰MÓ Ø€GˆTÓØ€Dˆ$ÓØ*.€Iˆx˜Ñ'Ó.ð )-Ø,0ñ
Bàð
Bð ×'Ñ'ð
Bð &ð	
Bð
 *ð
Bð 
ó
Bð ð(˜8 G×$5Ñ$5Ñ6ò (ó ð(ð ð˜,ò ó ðóð (¸×9PÑ9PñNØðNØ36ðNà	óNð
˜E %¨°JÐ">Ñ?ð ÀDó ð) (¨5¡/ð )°dó )ð$ Øò.#à�U˜I zÐ1Ñ2ð.#ð ð	.#ð
 ð.#ð 
ó.#ð`	Øð	Ø);ð	à	ó	óñ% Uð %°Tó %ôN
+r$   r   Ústringr0   c                 ó,   — d| v sd| v rt        d«      ‚| S )Núú
zRNewline or carriage return detected in headers. Potential header injection attack.)Ú
ValueError)r�   s    r%   Ú_safe_headerr†   á   s(   € Øˆv�~˜ ™Üð1ó
ð 	
ð €Mr$   rb   rc   c                 ó†   — d„ |j                  «       D «       }| dz   dj                  |«      z   dz   }|j                  d«      S )Nc              3   óV   K  — | ]!  \  }}t        |«      d z   t        |«      z   –— Œ# y­w)z: N)r†   )Ú.0ÚkÚvs      r%   ú	<genexpr>z(_py_serialize_headers.<locals>.<genexpr>ë   s&   è ø€ ÒXÁÀÀ1”< “? TÑ)¬L¸«OÕ;ÑXùs   ‚')rY   z

zutf-8)ÚitemsrQ   r`   )rb   rc   Úheaders_genÚlines       r%   Ú_py_serialize_headersr�   ê   s>   € ÙXÈÏÉËÔX€KØ˜Ñ &§+¡+¨kÓ":Ñ:¸ZÑG€DØ�;‰;�wÓÐr$   ).Ú__doc__rv   Úsysr|   Útypingr   r   r   r   r   r   r	   r
   Ú	multidictr   Úabcr   Úbase_protocolr   Úclient_exceptionsr   Úcompression_utilsr   Úhelpersr   Ú__all__rP   Úversion_infoÚIS_PY313_BEFORE_313_2ÚIS_PY_BEFORE_312_9rO   r   r   r   r   rx   ry   r   r~   r†   r�   re   Úaiohttp._http_writerÚ_http_writerÚ_c_serialize_headersÚImportErrorr#   r$   r%   ú<module>r¢      sL  ðÙ (ã Û 
Û ÷	÷ 	ó 	õ "å %Ý 'Ý 9Ý -Ý "à
K€ð "Ð Ø" c×&6Ñ&6ÖC¸ÔCÐ Ø×%Ñ%¨
Ñ2Ð Ø'Ò=Ð+=€ô�*ô ñ
 ˜A˜qÓ!€Ù˜A˜qÓ!€ð ˜( E 7¨I°d©OÐ#;Ñ<Ñ=€Ø˜HÐ&8Ð%9¸9ÀT¹?Ð%JÑKÑLÐ ôj+Ð'ô j+ðZ˜ð  ó ð  sð  Ð5Gð  ÈEó  ð +Ð ð	Ý/à'×:Ñ:ÐÙØ1Ñð øàò 	Ùð	ús   ÃC+ Ã+C3Ã2C3