
    h                      |   % 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JrJrJr  SSKJrJrJrJrJr  SSKJr  SSKJrJrJrJrJrJrJrJ r   SSK!J"r"J#r#J$r$J%r%  S	/r&\ RN                  " \RP                  " S
5      5      r)\ RN                  " S5      r*S\\+   S\\+   4S jr,S\\+   S\\\+\+4      4S jr-\ RN                  " \RP                  " S
5      5      r.S\S\\   4S jr/\ RN                  " \RP                  " S
5      5      r0S\S\
\\S4   4S jr1 " S S5      r2\ RN                  " \RP                  " S
5      5      r3 " S S5      r4 " S S5      r5S\SS4S jr6\\
\	\$   \\	\$   \	\$   4   4   \
\S\4   \\7\S\4   4   4   4   r8\\4\/\ \4\1\ \4\1\\4\6\\4\6\\4\6\ \4\6\ \4\6\ \4\6\\4\2\5S.0
r9\8\:S	'   g)    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              #   &  #    [        U 5      nS nU Hr  n[        R                  U5      nU(       aJ  Uc  [        S5      e[	        U[
        5      (       d  [        U5      nUS-  nX#UR                  5       S  -  nMi  Ub  Uv   UnMt     Ub  Uv   g g 7f)Nz%continuation line at start of headers    )iterobs_fold_rematchr   
isinstance	bytearrayend)r%   itlastliner+   s        >/var/www/html/env/lib/python3.13/site-packages/h11/_readers.py_obsolete_line_foldr3   +   s     	eB D!!$'|()PQQdI.. DLD''D
D  
 s   BBc              #   l   #    [        U 5       H!  n[        [        USU5      nUS   US   4v   M#     g 7f)Nzillegal header line: {!r}
field_namefield_value)r3   r"   header_field_re)r%   r1   matchess      r2   _decode_header_linesr9   @   s<      $E*?D2MtT|$gm&<== +s   24bufc           
         U R                  5       nUc!  U R                  5       (       a  [        S5      eg U(       d  [        S5      e[        [        US   SUS   5      n[        S[        [        USS  5      5      SS.UD6$ )	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   listr9   )r:   r%   r8   s      r2   maybe_read_from_IDLE_clientrD   K   s    ##%E}::<<$%;<< !;<<q#?qG  )%)45tGN     c           	      p   U R                  5       nUc!  U R                  5       (       a  [        S5      eg U(       d  [        S5      e[        [        US   SUS   5      nUS   c  SOUS   nUS   c  SOUS   n[        US	   5      nUS
:  a  [        O[        nU" [        [        USS  5      5      SUUUS9$ )Nr<   zno response line receivedr   zillegal status line: {!r}http_versions   1.1reasonrE   status_code   r   T)r=   r>   rI   rH   rG   )
r@   rA   r   r"   status_line_reintr   r   rC   r9   )r:   r%   r8   rG   rH   rI   class_s          r2   $maybe_read_from_SEND_RESPONSE_serverrN   ^   s     ##%E}::<<$%;<< !<==~uQx1LeTUhWG.)1w~7N  H%-S783DFgm,-K!,s!2  )%)45! rE   c                   R    \ rS rSrS\SS4S jrS\S\\\	S4   4S jr
S\4S jrS	rg)
ContentLengthReaderz   lengthr&   Nc                     Xl         Xl        g N_length
_remaining)selfrR   s     r2   __init__ContentLengthReader.__init__{   s     rE   r:   c                     U R                   S:X  a
  [        5       $ UR                  U R                   5      nUc  g U =R                   [        U5      -  sl         [	        US9$ )Nr   data)rW   r   maybe_extract_at_mostlenr   rX   r:   r]   s      r2   __call__ContentLengthReader.__call__   sN    ??a>!((9<3t9$rE   c                 z    [        SR                  U R                  U R                  -
  U R                  5      5      e)Nz]peer closed connection without sending complete message body (received {} bytes, expected {}))r    formatrV   rW   rX   s    r2   read_eofContentLengthReader.read_eof   s4    !//5vt.0
 	
rE   rU   )__name__
__module____qualname____firstlineno__rL   rY   r   r   r   r   ra   r   rf   __static_attributes__r?   rE   r2   rP   rP   z   s@    !s !t !M eD,4L.M 
( 
rE   rP   c                   J    \ rS rSrS	S jrS\S\\\S4   4S jr	S\
4S jrSrg)
ChunkedReader   r&   Nc                 .    SU l         SU l        SU l        g )Nr   F_bytes_in_chunk_bytes_to_discard_reading_trailerre   s    r2   rY   ChunkedReader.__init__   s      "# %rE   r:   c                 $   U R                   (       a/  UR                  5       nUc  g [        [        [	        U5      5      S9$ U R
                  S:  aN  UR                  U R
                  5      nUc  g U =R
                  [        U5      -  sl        U R
                  S:  a  g U R
                  S:X  d   eU R                  S:X  aZ  UR                  5       nUc  g [        [        USU5      n[        US   SS9U l        U R                  S:X  a  SU l         U " U5      $ SnOSnU R                  S:  d   eUR                  U R                  5      nUc  g U =R                  [        U5      -  sl        U R                  S:X  a
  S	U l        SnOSn[        X6US
9$ )N)r=   r   zillegal chunk header: {!r}
chunk_size   )baseTF   )r]   chunk_start	chunk_end)rt   r@   r   rC   r9   rs   r^   r_   rr   maybe_extract_next_liner"   chunk_header_rerL   r   )rX   r:   r%   r]   r   r8   r{   r|   s           r2   ra   ChunkedReader.__call__   s     ++-E}-A%-H(IJJ!!A%,,T-C-CDD|""c$i/"%%)%%***1$668L#,	G $'w|'<2#FD ##q((,%Cy KK##a'''(()=)=><D	)1$%&D"II)LLrE   c                     [        S5      e)NzVpeer closed connection without sending complete message body (incomplete chunked read))r    re   s    r2   rf   ChunkedReader.read_eof   s    !(
 	
rE   rq   )r&   N)rh   ri   rj   rk   rY   r   r   r   r   ra   r   rf   rl   r?   rE   r2   rn   rn      s6    &,MM ,MeD,4L.M ,M\
( 
rE   rn   c                   :    \ rS rSrS\S\\   4S jrS\4S jr	Sr
g)Http10Reader   r:   r&   c                 >    UR                  S5      nUc  g [        US9$ )Niɚ;r\   )r^   r   r`   s      r2   ra   Http10Reader.__call__   s$    ((3<rE   c                     [        5       $ rT   )r   re   s    r2   rf   Http10Reader.read_eof   s
    ~rE   r?   N)rh   ri   rj   rk   r   r   r   ra   r   rf   rl   r?   rE   r2   r   r      s%    M htn , rE   r   c                 (    U (       a  [        S5      eg )NzGot data when expecting EOF)r   )r:   s    r2   expect_nothingr      s    
 !>??rE   .)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encoder7   r*   bytesr3   r9   rB   rD   rK   rN   rP   r~   rn   r   r   strReadersTyper#   __annotations__r?   rE   r2   <module>r      s>  & 
 X X X H H Q Q )	 	 	 O N+**\009:jj$x 8E? *>E?>eE5L!"> **\009:] x7H   K..w78	
 (D018
 
. **\009:;
 ;
|  $  	$x.%XX >?
?@	(38
d3c(:#:;
;<> TN/TN8]ATNNZ.VnTNNZ.Vn -  rE   