Ë
    æÿæiŽ!  ã                   ór  — 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 jN                   ejP                  d
«      «      Z) e jN                  d«      Z*dee+   dee+   fd„Z,dee+   deee+e+f      fd„Z- e jN                   ejP                  d
«      «      Z.dedee   fd„Z/ e jN                   ejP                  d
«      «      Z0dede
eedf   fd„Z1 G d„ d«      Z2 e jN                   ejP                  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	<   y)é    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              #   ó  K  — t        | «      }d }|D ]e  }t        j                  |«      }|rD|€t        d«      ‚t	        |t
        «      st        |«      }|dz  }|||j                  «       d  z  }Œ^|�|–— |}Œg |�|–— y y ­w)Nz%continuation line at start of headersó    )ÚiterÚobs_fold_reÚmatchr   Ú
isinstanceÚ	bytearrayÚend)r%   ÚitÚlastÚliner+   s        úa/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/h11/_readers.pyÚ_obsolete_line_foldr3   +   s—   è ø€ Ü	ˆe‹€BØ €DÛˆÜ×!Ñ! $Ó'ˆÙØˆ|Ü(Ð)PÓQÐQÜ˜d¤IÔ.ä  “�Ø�D‰LˆDØ�D˜Ÿ™›˜Ð'Ñ'‰DàÐØ’
Ø‰Dð ð ÐØ‹
ð ùs   ‚B Bc              #   óh   K  — t        | «      D ]   }t        t        |d|«      }|d   |d   f–— Œ" y ­w)Nzillegal header line: {!r}Ú
field_nameÚfield_value)r3   r"   Úheader_field_re)r%   r1   Úmatchess      r2   Ú_decode_header_linesr9   @   s=   è ø€ ô $ EÖ*ˆÜœ?¨DÐ2MÈtÓTˆØ�|Ñ$ g¨mÑ&<Ð=Ó=ñ +ùs   ‚02Úbufc           
      óî   — | j                  «       }|€| j                  «       rt        d«      ‚y |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   Úlistr9   )r:   r%   r8   s      r2   Úmaybe_read_from_IDLE_clientrD   K   s�   € Ø×#Ñ#Ó%€EØ€}Ø×:Ñ:Ô<Ü$Ð%;Ó<Ð<ØÙÜ Ð!;Ó<Ð<ÜÜ˜˜q™Ð#?ÀÀqÁó€Gô ð ÜÔ)¨%°°¨)Ó4Ó5¸tñØGNñð ó    c           	      óZ  — | j                  «       }|€| j                  «       rt        d«      ‚y |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Ú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Ø€}Ø×:Ñ:Ô<Ü$Ð%;Ó<Ð<ØÙÜ Ð!<Ó=Ð=Ü”~ u¨Q¡xÐ1LÈeÐTUÉhÓW€Gà˜.Ñ)Ð1‰°w¸~Ñ7Nð ð ˜HÑ%Ð-‰S°7¸8Ñ3D€FÜ�g˜mÑ,Ó-€Kà!,¨sÒ!2Õ¼ð ñ ÜÔ)¨%°°¨)Ó4Ó5ØØØØ!ôð rE   c                   óD   — 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y)ÚContentLengthReaderÚlengthr&   Nc                 ó    — || _         || _        y ©N)Ú_lengthÚ
_remaining)ÚselfrQ   s     r2   Ú__init__zContentLengthReader.__init__{   s   € ØˆŒØ ˆ�rE   r:   c                 óÄ   — | j                   dk(  r
t        «       S |j                  | j                   «      }|€y | 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__   sN   € Ø�?‰?˜aÒÜ“>Ð!Ø×(Ñ(¨¯©Ó9ˆØˆ<ØØ�Šœ3˜t›9Ñ$�Ü˜ŒÐrE   c                 óz   — t        dj                  | 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ˆ   s4   € Ü!ð/ß/5©vØ—‘˜tŸ™Ñ.°·±ó0ó
ð 	
rE   )Ú__name__Ú
__module__Ú__qualname__rL   rW   r   r   r   r   r^   r   rb   r?   rE   r2   rP   rP   z   s@   „ ð!˜sð ! tó !ð˜Mð ¨e°D¸,ÈÐ4LÑ.Mó ð
˜(ô 
rE   rP   c                   ó<   — e Zd Zdd„Zdedeeedf   fd„Zde	fd„Z
y)ÚChunkedReaderr&   Nc                 ó.   — d| _         d| _        d| _        y )Nr   rE   F)Ú_bytes_in_chunkÚ_bytes_to_discardÚ_reading_trailerra   s    r2   rW   zChunkedReader.__init__•   s   € Ø ˆÔð "%ˆÔØ %ˆÕrE   r:   c                 óŠ  — | j                   r1|j                  «       }|€y t        t        t	        |«      «      ¬«      S | j
                  rˆ|j                  t        | j
                  «      «      }|€y || j
                  d t        |«       k7  rt        d|›d| j
                  ›d�«      ‚| j
                  t        |«      d  | _        | j
                  ry | j
                  dk(  sJ ‚| j                  dk(  r[|j                  «       }|€y t        t        |d|«      }t        |d   d	¬
«      | _	        | j                  dk(  rd| _          | |«      S d}nd}| j                  dkD  sJ ‚|j                  | j                  «      }|€y | xj                  t        |«      z  c_	        | j                  dk(  r
d| _        d}nd}t        |||¬«      S )N)r=   zmalformed chunk footer: z (expected Ú)rE   r   zillegal chunk header: {!r}Ú
chunk_sizeé   )ÚbaseTFs   
)rZ   Úchunk_startÚ	chunk_end)rk   r@   r   rC   r9   rj   r[   r\   r   ri   Úmaybe_extract_next_liner"   Úchunk_header_rerL   r   )rV   r:   r%   rZ   r   r8   rq   rr   s           r2   r^   zChunkedReader.__call__œ   sÏ  € Ø× Ò Ø×+Ñ+Ó-ˆEØˆ}ØÜ¬Ô-AÀ%Ó-HÓ(IÔJÐJØ×!Ò!Ø×,Ñ,¬S°×1GÑ1GÓ-HÓIˆDØˆ|ØØ�t×-Ñ-¨k´°D³	Ð:Ò:Ü(Ø.¨t¨h°kÀ$×BXÑBXÐA[Ð[\Ð]óð ð &*×%;Ñ%;¼CÀ»I¸KÐ%HˆDÔ"Ø×%Ò%Øà×%Ñ%¨Ò,Ð,Ð,Ø×Ñ 1Ò$à×6Ñ6Ó8ˆLØÐ#ØÜÜØØ,Øó	ˆGô $' w¨|Ñ'<À2Ô#FˆDÔ Ø×#Ñ# qÒ(Ø(,�Ô%Ù˜C“yÐ Ø‰KàˆKØ×#Ñ# aÒ'Ð'Ð'Ø×(Ñ(¨×)=Ñ)=Ó>ˆØˆ<ØØ×Ò¤ D£	Ñ)ÕØ×Ñ 1Ò$Ø%,ˆDÔ"Ø‰IàˆIÜ˜¨;À)ÔLÐLrE   c                 ó   — t        d«      ‚)NzVpeer closed connection without sending complete message body (incomplete chunked read))r    ra   s    r2   rb   zChunkedReader.read_eofÎ   s   € Ü!ð(ó
ð 	
rE   )r&   N)rc   rd   re   rW   r   r   r   r   r^   r   rb   r?   rE   r2   rg   rg   ”   s6   „ ó&ð0M˜Mð 0M¨e°D¸,ÈÐ4LÑ.Mó 0Mðd
˜(ô 
rE   rg   c                   ó.   — e Zd Zdedee   fd„Zdefd„Zy)ÚHttp10Readerr:   r&   c                 óB   — |j                  d«      }|€y t        |¬«      S )NiÿÉš;rY   )r[   r   r]   s      r2   r^   zHttp10Reader.__call__Ö   s$   € Ø×(Ñ(¨Ó3ˆØˆ<ØÜ˜ŒÐrE   c                 ó   — t        «       S rS   )r   ra   s    r2   rb   zHttp10Reader.read_eofÜ   s
   € Ü‹~ÐrE   N)	rc   rd   re   r   r   r   r^   r   rb   r?   rE   r2   rw   rw   Õ   s%   „ ð˜Mð ¨h°t©nó ð˜,ô rE   rw   c                 ó   — | rt        d«      ‚y )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   rt   rg   rw   r{   ÚstrÚReadersTyper#   Ú__annotations__r?   rE   r2   Ú<module>r‹      sT  ðô& 
ß X× XÕ Xç HÓ Hß QÕ QÝ )÷	÷ 	ó 	÷ OÓ Nàˆ+€à�"—*‘*Ð0˜\×0Ñ0°Ó9Ó:€Øˆb�j‰j˜Ó$€ð˜x¨™ð °8¸E±?ó ð*>Ø�E‰?ð>àˆe�E˜5�LÑ!Ñ"ó>ð �"—*‘*Ð0˜\×0Ñ0°Ó9Ó:€ð ]ð °xÀÑ7Hó ð  �—‘Ð.˜K×.Ñ.¨wÓ7Ó8€ðØ	ðà
Ð  (¨DÐ0Ñ1ó÷8
ñ 
ð. �"—*‘*Ð0˜\×0Ñ0°Ó9Ó:€÷>
ñ >
÷Bñ ð˜ð ¨$ó ð Ø	ˆ$ˆ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ØØ Ø-Ø ñð€ˆô rE   