§
    ÏÁ³g¿   ã                   óÈ  — U d dl Z d dlmZmZmZmZmZmZmZm	Z	m
Z
 ddlmZmZmZmZ ddlmZmZmZmZmZ ddlm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"m#Z#m$Z$m%Z% d	gZ& e j'         ej(        d
¦  «        ¦  «        Z) e j'        d¦  «        Z*dee+         dee+         fd„Z,dee+         deee+e+f                  fd„Z- e j'         ej(        d
¦  «        ¦  «        Z.dedee         fd„Z/ e j'         ej(        d
¦  «        ¦  «        Z0dede
eedf         fd„Z1 G d„ d¦  «        Z2 e j'         ej(        d
¦  «        ¦  «        Z3 G d„ d¦  «        Z4 G d„ d¦  «        Z5deddfd„Z6ee
e	e$         ee	e$         e	e$         f         f         e
edef         ee7edef         f         f         f         Z8eefe/e efe1e efe1eefe6eefe6eefe6e efe6e efe6e efe6ee4e2e5dœi
Z9e8e:d	<   dS )é    N)	ÚAnyÚCallableÚDictÚIterableÚNoReturnÚOptionalÚTupleÚTypeÚUnioné   )Úchunk_headerÚheader_fieldÚrequest_lineÚstatus_line)ÚDataÚEndOfMessageÚInformationalResponseÚRequestÚResponse)ÚReceiveBuffer)ÚCLIENTÚCLOSEDÚDONEÚIDLEÚ
MUST_CLOSEÚ	SEND_BODYÚSEND_RESPONSEÚSERVER)ÚLocalProtocolErrorÚRemoteProtocolErrorÚSentinelÚvalidateÚREADERSÚasciis   [ \t]+ÚlinesÚreturnc              #   óB  K  — t          | ¦  «        }d }|D ]€}t                               |¦  «        }|rZ|€t          d¦  «        ‚t	          |t
          ¦  «        st          |¦  «        }|dz  }|||                     ¦   «         d …         z  }Œx|�|V — |}Œ�|�|V — d S d S )Nz%continuation line at start of headersó    )ÚiterÚobs_fold_reÚmatchr   Ú
isinstanceÚ	bytearrayÚend)r%   ÚitÚlastÚliner+   s        úJ/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/h11/_readers.pyÚ_obsolete_line_foldr3   +   sÈ   è è € Ý	ˆe‰Œ€BØ €DØð ð ˆÝ×!Ò! $Ñ'Ô'ˆØð 	Øˆ|Ý(Ð)PÑQÔQÐQÝ˜d¥IÑ.Ô.ð 'å  ‘”�Ø�D‰LˆDØ�D˜Ÿš™œ˜˜Ô'Ñ'ˆDˆDàÐØ�
�
�
ØˆDˆDØÐØˆ
ˆ
ˆ
ˆ
ˆ
ð Ðó    c              #   ó€   K  — t          | ¦  «        D ]+}t          t          |d|¦  «        }|d         |d         fV — Œ,d S )Nzillegal header line: {!r}Ú
field_nameÚfield_value)r3   r"   Úheader_field_re)r%   r1   Úmatchess      r2   Ú_decode_header_linesr:   @   s[   è è € õ $ EÑ*Ô*ð >ð >ˆÝ�?¨DÐ2MÈtÑTÔTˆØ�|Ô$ g¨mÔ&<Ð=Ð=Ð=Ð=Ð=ð>ð >r4   Úbufc           
      óB  — |                       ¦   «         }|€%|                      ¦   «         rt          d¦  «        ‚d S |st          d¦  «        ‚t          t          |d         d|d         ¦  «        }t          dt          t          |dd …         ¦  «        ¦  «        ddœ|¤ŽS )	Núillegal request linezno request line receivedr   zillegal request line: {!r}r   T)ÚheadersÚ_parsed© )Úmaybe_extract_linesÚ+is_next_line_obviously_invalid_request_liner   r"   Úrequest_line_rer   Úlistr:   )r;   r%   r9   s      r2   Úmaybe_read_from_IDLE_clientrE   K   s¼   € Ø×#Ò#Ñ%Ô%€EØ€}Ø×:Ò:Ñ<Ô<ð 	=Ý$Ð%;Ñ<Ô<Ð<ØˆtØð =Ý Ð!;Ñ<Ô<Ð<ÝÝ˜˜qœÐ#?ÀÀqÄñô €Gõ ð ÝÕ)¨%°°°¬)Ñ4Ô4Ñ5Ô5¸tðð ØGNðð ð r4   c           	      óÞ  — |                       ¦   «         }|€%|                      ¦   «         rt          d¦  «        ‚d S |st          d¦  «        ‚t          t          |d         d|d         ¦  «        }|d         €dn|d         }|d         €dn|d         }t          |d	         ¦  «        }|d
k     rt          nt          } |t          t          |dd …         ¦  «        ¦  «        d|||¬¦  «        S )Nr=   zno response line receivedr   zillegal status line: {!r}Úhttp_versions   1.1Úreasonr4   Ústatus_codeéÈ   r   T)r>   r?   rI   rH   rG   )
rA   rB   r   r"   Ústatus_line_reÚintr   r   rD   r:   )r;   r%   r9   rG   rH   rI   Úclass_s          r2   Ú$maybe_read_from_SEND_RESPONSE_serverrN   ^   s  € ð ×#Ò#Ñ%Ô%€EØ€}Ø×:Ò:Ñ<Ô<ð 	=Ý$Ð%;Ñ<Ô<Ð<ØˆtØð >Ý Ð!<Ñ=Ô=Ð=Ý•~ u¨Q¤xÐ1LÈeÐTUÌhÑWÔW€Gà˜.Ô)Ð1ˆˆ°w¸~Ô7Nð ð ˜HÔ%Ð-ˆSˆS°7¸8Ô3D€FÝ�g˜mÔ,Ñ-Ô-€Kà!,¨sÒ!2Ð!2ÕÐ½ð ð ˆ6ÝÕ)¨%°°°¬)Ñ4Ô4Ñ5Ô5ØØØØ!ðñ ô ð r4   c                   óL   — e Zd Zdeddfd„Zdedeeedf         fd„Z	de
fd„ZdS )ÚContentLengthReaderÚlengthr&   Nc                 ó"   — || _         || _        d S ©N)Ú_lengthÚ
_remaining)ÚselfrQ   s     r2   Ú__init__zContentLengthReader.__init__{   s   € ØˆŒØ ˆŒˆˆr4   r;   c                 óÊ   — | j         dk    rt          ¦   «         S |                     | j         ¦  «        }|€d S | xj         t          |¦  «        z  c_         t	          |¬¦  «        S )Nr   ©Údata)rU   r   Úmaybe_extract_at_mostÚlenr   ©rV   r;   rZ   s      r2   Ú__call__zContentLengthReader.__call__   s\   € ØŒ?˜aÒÐÝ‘>”>Ð!Ø×(Ò(¨¬Ñ9Ô9ˆØˆ<Ø�4ØˆŒ�3˜t™9œ9Ñ$ˆŒÝ˜ˆ‰ŒÐr4   c                 ól   — t          d                     | j        | j        z
  | j        ¦  «        ¦  «        ‚)Nz]peer closed connection without sending complete message body (received {} bytes, expected {}))r    ÚformatrT   rU   ©rV   s    r2   Úread_eofzContentLengthReader.read_eofˆ   s8   € Ý!ð/ß/5ªvØ”˜tœÑ.°´ñ0ô 0ñ
ô 
ð 	
r4   )Ú__name__Ú
__module__Ú__qualname__rL   rW   r   r   r   r   r^   r   rb   r@   r4   r2   rP   rP   z   s   € € € € € ð!˜sð ! tð !ð !ð !ð !ð˜Mð ¨e°D¸,ÈÐ4LÔ.Mð ð ð ð ð
˜(ð 
ð 
ð 
ð 
ð 
ð 
r4   rP   c                   óD   — e Zd Zdd„Zdedeeedf         fd„Zde	fd„Z
dS )ÚChunkedReaderr&   Nc                 ó0   — d| _         d| _        d| _        d S )Nr   F)Ú_bytes_in_chunkÚ_bytes_to_discardÚ_reading_trailerra   s    r2   rW   zChunkedReader.__init__•   s"   € Ø ˆÔð "#ˆÔØ %ˆÔÐÐr4   r;   c                 ó&  — | j         rB|                     ¦   «         }|€d S t          t          t	          |¦  «        ¦  «        ¬¦  «        S | j        dk    rH|                     | j        ¦  «        }|€d S | xj        t          |¦  «        z  c_        | j        dk    rd S | j        dk    sJ ‚| j        dk    rk| 	                    ¦   «         }|€d S t          t          |d|¦  «        }t          |d         d¬¦  «        | _        | j        dk    rd| _          | |¦  «        S d}nd}| j        dk    sJ ‚|                     | j        ¦  «        }|€d S | xj        t          |¦  «        z  c_        | j        dk    r
d	| _        d}nd}t          |||¬
¦  «        S )N)r>   r   zillegal chunk header: {!r}Ú
chunk_sizeé   )ÚbaseTFé   )rZ   Úchunk_startÚ	chunk_end)rk   rA   r   rD   r:   rj   r[   r\   ri   Úmaybe_extract_next_liner"   Úchunk_header_rerL   r   )rV   r;   r%   rZ   r   r9   rq   rr   s           r2   r^   zChunkedReader.__call__�   sÐ  € ØÔ ð 	KØ×+Ò+Ñ-Ô-ˆEØˆ}Ø�tÝ­Õ-AÀ%Ñ-HÔ-HÑ(IÔ(IÐJÑJÔJÐJØÔ! AÒ%Ð%Ø×,Ò,¨TÔ-CÑDÔDˆDØˆ|Ø�tØÐ"Ô"¥c¨$¡i¤iÑ/Ð"Ô"ØÔ%¨Ò)Ð)Ø�tàÔ%¨Ò*Ð*Ð*Ð*ØÔ 1Ò$Ð$à×6Ò6Ñ8Ô8ˆLØÐ#Ø�tÝÝØØ,Øñ	ô ˆGõ $' w¨|Ô'<À2Ð#FÑ#FÔ#FˆDÔ ØÔ# qÒ(Ð(Ø(,�Ô%Ø�t˜C‘y”yÐ ØˆKˆKàˆKØÔ# aÒ'Ð'Ð'Ð'Ø×(Ò(¨Ô)=Ñ>Ô>ˆØˆ<Ø�4ØÐÔ¥ D¡	¤	Ñ)ÐÔØÔ 1Ò$Ð$Ø%&ˆDÔ"ØˆIˆIàˆIÝ˜¨;À)ÐLÑLÔLÐLr4   c                 ó    — t          d¦  «        ‚)NzVpeer closed connection without sending complete message body (incomplete chunked read))r    ra   s    r2   rb   zChunkedReader.read_eofË   s   € Ý!ð(ñ
ô 
ð 	
r4   )r&   N)rc   rd   re   rW   r   r   r   r   r^   r   rb   r@   r4   r2   rg   rg   ”   sx   € € € € € ð&ð &ð &ð &ð,M˜Mð ,M¨e°D¸,ÈÐ4LÔ.Mð ,Mð ,Mð ,Mð ,Mð\
˜(ð 
ð 
ð 
ð 
ð 
ð 
r4   rg   c                   ó6   — e Zd Zdedee         fd„Zdefd„ZdS )ÚHttp10Readerr;   r&   c                 óT   — |                      d¦  «        }|€d S t          |¬¦  «        S )NiÿÉš;rY   )r[   r   r]   s      r2   r^   zHttp10Reader.__call__Ó   s-   € Ø×(Ò(¨Ñ3Ô3ˆØˆ<Ø�4Ý˜ˆ‰ŒÐr4   c                 ó   — t          ¦   «         S rS   )r   ra   s    r2   rb   zHttp10Reader.read_eofÙ   s   € Ý‰~Œ~Ðr4   N)	rc   rd   re   r   r   r   r^   r   rb   r@   r4   r2   rw   rw   Ò   sU   € € € € € ð˜Mð ¨h°t¬nð ð ð ð ð˜,ð ð ð ð ð ð r4   rw   c                 ó(   — | rt          d¦  «        ‚d S )NzGot data when expecting EOF)r   )r;   s    r2   Úexpect_nothingr{   Ý   s   € Ø
ð @Ý Ð!>Ñ?Ô?Ð?Øˆ4r4   .)Úchunkedzcontent-lengthzhttp/1.0);ÚreÚtypingr   r   r   r   r   r   r	   r
   r   Ú_abnfr   r   r   r   Ú_eventsr   r   r   r   r   Ú_receivebufferr   Ú_stater   r   r   r   r   r   r   r   Ú_utilr   r    r!   r"   Ú__all__ÚcompileÚencoder8   r*   Úbytesr3   r:   rC   rE   rK   rN   rP   rt   rg   rw   r{   ÚstrÚReadersTyper#   Ú__annotations__r@   r4   r2   ú<module>r‹      s  ðð& 
€	€	€	€	Ø XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ Xà HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QØ )Ð )Ð )Ð )Ð )Ð )ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð OÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ Nàˆ+€à�"”*Ð0˜\Ô0°Ñ9Ô9Ñ:Ô:€ØˆbŒj˜Ñ$Ô$€ð˜x¨œð °8¸E´?ð ð ð ð ð*>Ø�EŒ?ð>àˆe�E˜5�LÔ!Ô"ð>ð >ð >ð >ð �"”*Ð0˜\Ô0°Ñ9Ô9Ñ:Ô:€ð ]ð °xÀÔ7Hð ð ð ð ð  �”Ð.˜KÔ.¨wÑ7Ô7Ñ8Ô8€ðØ	ðà
Ð  (¨DÐ0Ô1ðð ð ð ð8
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð. �"”*Ð0˜\Ô0°Ñ9Ô9Ñ:Ô:€ð;
ð ;
ð ;
ð ;
ð ;
ñ ;
ô ;
ð ;
ð|ð ð ð ð ñ ô ð ð˜ð ¨$ð ð ð ð ð Ø	ˆ$ˆxŒ.˜%  X¤°°X´Ð >Ô?Ð
?Ô@Ø	ˆ(�3˜�8Ô
˜d 3¨°°c°Ô(:Ð#:Ô;Ð
;Ô<ð>ô€ð ˆT€NÐ/ØˆT€NÐ8Øˆ]ÐÐAØˆT€N�NØˆZÐ˜.ØˆVÐ�nØˆT€N�NØˆZÐ˜.ØˆVÐ�nØØ Ø-Ø ðð ð€ˆð ð ñ ð ð r4   