ó
    Û°›jE¸  ã                   ó
  • % S SK r S SKrS SKrS SKrS SKrS SKJr  S SK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  S SKJr  SS	KJr  SS
KJr  SSKJrJrJ r J!r!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/J0r0J1r1J2r2J3r3J4r4J5r5  SSK6J7r7J8r8J9r9  SSK:J;r;J<r<  SSK=J>r>  \(       a  SSK?J@r@  SrA\S   rB\C" \Rˆ                  5      rE\\C\F      \GS'   \R�                  " S5      rI\\F   \GS'   \R”                  " S\I S35      rK\\	\F      \GS'   \R”                  " S\R˜                  5      rM\\	\F      \GS'   \R”                  " S\R˜                  5      rN\\	\F      \GS'   \R”                  " S5      rO\\	\P      \GS'   \R”                  " S 5      rQ\\	\F      \GS!'   \R" 1 S"k5      rS\\R\F      \GS#'    " S$ S%\5      rT " S& S'\5      rU\" S(\T\U5      rV " S) S*\5      rW " S+ S,\5      rX " S- S.\5      rY " S/ S05      rZS1\\F   S2\[4S3 jr\ " S4 S5\ Rº                  \\V   5      r^ " S6 S7\^\T   5      r_ " S8 S9\^\U   5      r` " S: S;5      ra " S< S=5      rb\_rc\`rd\Tre\Urf \)(       d  SS>KgJ_r_J`r`JTrTJUrU  \_rh\`ri\Trj\Urkgg! \l a     gf = f)?é    N)Úsuppress)ÚIntEnum)ÚPattern)ÚTYPE_CHECKINGÚAnyÚClassVarÚFinalÚGenericÚLiteralÚ
NamedTupleÚTypeVar)ÚCIMultiDictÚCIMultiDictProxyÚistr)ÚURLé   )Úhdrs)ÚBaseProtocol)Ú
HAS_BROTLIÚHAS_ZSTDÚBrotliDecompressorÚZLibDecompressorÚZSTDDecompressor)Ú_EXC_SENTINELÚDEBUGÚDEFAULT_CHUNK_SIZEÚEMPTY_BODY_METHODSÚEMPTY_BODY_STATUS_CODESÚNO_EXTENSIONSÚBaseTimerContextÚset_exception)	ÚBadHttpMessageÚBadHttpMethodÚBadStatusLineÚContentEncodingErrorÚContentLengthErrorÚInvalidHeaderÚInvalidURLErrorÚLineTooLongÚTransferEncodingError)ÚHttpVersionÚHttpVersion10ÚHttpVersion11)ÚEMPTY_PAYLOADÚStreamReader)Ú
RawHeaders)ÚResponseHandler)ÚHeadersParserÚ
HttpParserÚHttpRequestParserÚHttpResponseParserÚRawRequestMessageÚRawResponseMessage)ó   
ó   
ÚASCIISETz!#$%&'*+-.^_`|~Ú_TCHAR_SPECIALSz
[0-9A-Za-zz]+ÚTOKENREzHTTP/(\d)\.(\d)ÚVERSREz\d+ÚDIGITSs   [0-9a-fA-F]+Ú	HEXDIGITSz[\x00-\x08\x0a-\x1f\x7f]Ú_FIELD_VALUE_FORBIDDEN_CTL_RE>
   ÚetagÚhostÚserverú
user-agentúcontent-typeúmax-forwardsúcontent-rangeúcontent-lengthúcontent-locationútransfer-encodingÚSINGLETON_HEADERSc                   ó€   • \ rS rSr% \\S'   \\S'   \\S'   S\S'   \\S'   \\S'   \S	-  \S
'   \\S'   \\S'   \	\S'   Sr
g	)r6   éo   ÚmethodÚpathÚversionúCIMultiDictProxy[str]ÚheadersÚraw_headersÚshould_closeNÚcompressionÚupgradeÚchunkedÚurl© )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚstrÚ__annotations__r+   r0   Úboolr   Ú__static_attributes__rY   ó    ÚP/home/mande/repo/quber/.venv/lib/python3.13/site-packages/aiohttp/http_parser.pyr6   r6   o   s=   ‡ ØƒKØ
ƒIØÓØ$Ó$ØÓØÓØ�t‘ÓØƒMØƒMØ	†Hrb   r6   c                   ó|   • \ rS rSr% \\S'   \\S'   \\S'   \\   \S'   \	\S'   \
\S'   \S-  \S	'   \
\S
'   \
\S'   Srg)r7   é|   rP   ÚcodeÚreasonrR   rS   rT   NrU   rV   rW   rY   )rZ   r[   r\   r]   r+   r_   Úintr^   r   r0   r`   ra   rY   rb   rc   r7   r7   |   s=   ‡ ØÓØ
ƒIØƒKØ˜cÑ"Ó"ØÓØÓØ�t‘ÓØƒMØ†Mrb   r7   Ú_MsgTc                   ó    • \ rS rSrSrSrSrSrg)ÚPayloadStateé‹   r   r   é   rY   N)rZ   r[   r\   r]   ÚPAYLOAD_COMPLETEÚPAYLOAD_NEEDS_INPUTÚPAYLOAD_HAS_PENDING_INPUTra   rY   rb   rc   rk   rk   ‹   s   † ØÐØÐØ !Órb   rk   c                   ó$   • \ rS rSrSrSrSrSrSrg)Ú
ParseStateé‘   r   r   rm   é   rY   N)	rZ   r[   r\   r]   Ú
PARSE_NONEÚPARSE_LENGTHÚPARSE_CHUNKEDÚPARSE_UNTIL_EOFra   rY   rb   rc   rr   rr   ‘   s   † à€JØ€LØ€MØƒOrb   rr   c                   ó(   • \ rS rSrSrSrSrSrSrSr	g)	Ú
ChunkStateé™   r   r   rm   rt   é   rY   N)
rZ   r[   r\   r]   ÚPARSE_CHUNKED_SIZEÚPARSE_CHUNKED_CHUNKÚPARSE_CHUNKED_CHUNK_EOFÚPARSE_MAYBE_TRAILERSÚPARSE_TRAILERSra   rY   rb   rc   rz   rz   ™   s   † ØÐØÐØÐØÐØƒNrb   rz   c                   ó`   • \ rS rSr    SS\S\S\S\SS4
S jjrS	\\   S\	S
\
4   4S jrSrg)r2   é¡   Úmax_line_sizeÚmax_headersÚmax_field_sizeÚlaxÚreturnNc                 ó4   • Xl         X l        X0l        X@l        g ©N)r„   r…   r†   Ú_lax)Úselfr„   r…   r†   r‡   s        rc   Ú__init__ÚHeadersParser.__init__¢   s   € ð +ÔØ&ÔØ,ÔØ�	rb   ÚlinesrQ   c                 ód  • [        5       n/ nSnX   n[        U5      nU(       Ga\   UR                  SS5      u  px[        U5      S:X  a  [	        U5      eUS   US   1SS1-  (       a  [	        U5      eUR                  S5      nUR                  SS	5      n	[        R                  U	5      (       d  [	        U5      eUS-  nX   nU R                  =(       a    U=(       a    US   S
;   n
U
(       a±  [        U5      nU/nU
(       a‹  U[        U5      -  nX°R                  :”  a3  US-   SR                  U5      -   n[        US S S-   U R                  5      eUR                  U5        US-  nXF:  a  X   nU(       a  US   S
;   n
OSnO	U
(       a  M‹  SR                  U5      nUR                  S5      nUR                  SS	5      nU R                  (       a  SU;   d  SU;   d  SU;   a  [	        U5      eO%[        R!                  U5      (       a  [	        U5      eU R                  (       d,  X’;   a'  U	R#                  5       [$        ;   a  ['        SU	 S35      eUR)                  Xž5        UR                  Xx45        U(       a  GM\  [+        U5      [-        U5      4$ ! [         a    [	        U5      S ef = f)Nr   ó   :r   éÿÿÿÿé    é	   s    	úutf-8Úsurrogateescape)r“   r”   s   : rb   éd   ó   ...Ú
ÚÚ zDuplicate 'z' header found.)r   ÚlenÚsplitÚ
ValueErrorr'   ÚlstripÚdecoder<   Ú	fullmatchr‹   r†   Újoinr)   ÚappendÚstripr@   ÚsearchÚlowerrK   r"   Úaddr   Útuple)rŒ   r�   rR   rS   Ú	lines_idxÚlineÚ
line_countÚbnameÚbvalueÚnameÚcontinuationÚheader_lengthÚ
bvalue_lstÚheader_lineÚvalues                  rc   Úparse_headersÚHeadersParser.parse_headers®   s¡  € ô %0£Mˆàˆàˆ	ØÑˆÜ˜“Zˆ
çð4Ø $§
¡
¨4°Ó 3‘�ô �5‹z˜Q‹Ü# EÓ*Ð*ð �a‘˜% ™)Ð$¨¨A w×.Ü# DÓ)Ð)à—]‘] 6Ó*ˆFØ—<‘< Ð):Ó;ˆDÜ×$Ñ$ T×*Ñ*Ü# EÓ*Ð*ð ˜‰NˆIØÑ#ˆDð  Ÿ9™9×D¨×D°$°q±'¸WÑ2DˆLö Ü # F£�Ø$˜X�
Þ"Ø!¤S¨£YÑ.�MØ$×':Ñ':Ó:Ø&+¨e¡m°c·h±h¸zÓ6JÑ&J˜Ü)Ø'¨¨Ð-°Ñ6¸×8KÑ8Kóð ð ×%Ñ% dÔ+ð  ‘N�IØ Ó-Ø$Ñ/˜ÞØ+/°©7°gÑ+=˜Løà"˜Ø÷# #�lð$ Ÿ™ *Ó-�à—\‘\ &Ó)ˆFØ—M‘M 'Ð+<Ó=ˆEð �y�yØ˜5“= D¨E£M°V¸u³_Ü'¨Ó/Ð/ð 6Eä.×5Ñ5°e×<Ñ<Ü# FÓ+Ð+à—9—9 £°T·Z±Z³\ÔEVÓ5VÜ$ {°4°&¸Ð%HÓIÐIØ�K‰K˜Ô$Ø×Ñ ˜Ô/÷ ‰dôB ! Ó)¬5°Ó+=Ð>Ð>øô{ ó 4Ü# DÓ)¨tÐ3ð4ús   §J ÊJ/)r‹   r†   r…   r„   )éþ  i €  r¶   F)rZ   r[   r\   r]   rh   r`   r�   ÚlistÚbytesr¨   r0   r´   ra   rY   rb   rc   r2   r2   ¡   sl   † ð "Ø Ø"Øñ
àð
ð ð
ð ð	
ð
 ð
ð 
õ
ðL?Ø˜%‘[ðL?à	Ð&¨
Ð2Ñ	3÷L?rb   r2   rR   rˆ   c                 ó–   • U R                  [        R                  S5      nUR                  5       =(       a    UR	                  5       S;   $ )z)Check if the upgrade header is supported.Ú >   ÚtcpÚ	websocket)Úgetr   ÚUPGRADEÚisasciir¦   )rR   Úus     rc   Ú_is_supported_upgraderÁ   ý   s3   € à�‰”D—L‘L "Ó%€Aà�9‰9‹;×<˜1Ÿ7™7›9Ð(<Ñ<Ð<rb   c                   ó0  • \ rS rSr% Sr\\   \S'                 S*S\S-  S\	R                  S-  S\S\S	\S
\S\S-  S\S-  S\S-  S\\   S-  S\S\S\S\SS4S jjr\R$                  S\\   S\4S j5       r\R$                  S\S\4S j5       rS+S jrS+S jrS\S-  4S jrSS\R8                  \R:                  \R<                  4S\S\S \S!\ S"\S#\ S\!\\!\\"4      \\4   4S$ jjr#S\\   S\!S%\$\S-  \S-  \\4   4S& jr%S'\SS4S( jr&S)r'g),r3   i  Fr‡   NÚprotocolÚloopÚlimitr„   r…   r†   Útimerrf   rN   Úpayload_exceptionÚresponse_with_bodyÚread_until_eofÚauto_decompressÚmax_msg_queue_sizerˆ   c                 ó^  • Xl         X l        X@l        XPl        X`l        XPl        Xpl        X€l        X�l        X l        X°l	        XÀl
        / U l        SU l        SU l        SU l        S U l        S U l        SU l        XÐl        X0l        [)        XEX`R*                  5      U l        Xàl        SU l        g )Nrb   Fr   )rÃ   rÄ   r„   r…   r†   rÆ   rf   rN   rÇ   rÈ   rÉ   Ú_linesÚ_tailÚ	_upgradedÚ_pending_upgradeÚ_payloadÚ_payload_parserÚ_payload_has_more_dataÚ_auto_decompressÚ_limitr2   r‡   Ú_headers_parserÚ_max_msg_queue_sizeÚ_msg_in_flight)rŒ   rÃ   rÄ   rÅ   r„   r…   r†   rÆ   rf   rN   rÇ   rÈ   rÉ   rÊ   rË   s                  rc   r�   ÚHttpParser.__init__  s¬   € ð" !ŒØŒ	Ø*ÔØ&ÔØ,ÔØ&ÔØŒ
ØŒ	ØŒØ!2ÔØ"4ÔØ,Ôà#%ˆŒØˆŒ
ØˆŒØ %ˆÔØˆŒØ9=ˆÔØ&+ˆÔ#Ø /ÔØŒÜ,Ø¨¿¹ó 
ˆÔð $6Ô ØˆÕrb   r�   c                 ó   • g rŠ   rY   )rŒ   r�   s     rc   Úparse_messageÚHttpParser.parse_message5  s   € Ø:=rb   Útec                 ó   • g rŠ   rY   ©rŒ   rÝ   s     rc   Ú_is_chunked_teÚHttpParser._is_chunked_te8  s   € Ø/2rb   c                 óV   • U R                   c   eU R                   R                  5         g rŠ   )rÒ   Úpause_reading©rŒ   s    rc   rã   ÚHttpParser.pause_reading;  s&   € Ø×#Ñ#Ñ/Ð/Ð/Ø×Ñ×*Ñ*Õ,rb   c                 óP   • U R                   S:”  a  U =R                   S-  sl         gg)z;Protocol drained a queued message; free a slot for parsing.r   r   N)rØ   rä   s    rc   Úmessage_consumedÚHttpParser.message_consumed?  s&   € à×Ñ Ó"Ø×Ò 1Ñ$Öð #rb   c                 ó  • U R                   b=  U R                   R                  5         U R                   R                  (       a  S U l         g U R                  (       a%  U R                  R                  U R                  5        U R                  (       ab  U R                  S   S:w  a  U R                  R                  S5        [        [        5         U R                  U R                  5      sS S S 5        $ g ! , (       d  f       g = f)Nr’   z
rb   )	rÒ   Úfeed_eofÚdonerÎ   rÍ   r£   r   Ú	ExceptionrÛ   rä   s    rc   rê   ÚHttpParser.feed_eofD  sµ   € Ø×ÑÑ+Ø× Ñ ×)Ñ)Ô+Ø×#Ñ#×(×(Ø'+�Ô$ð ð �z�zØ—‘×"Ñ" 4§:¡:Ô.à�{�{Ø—;‘;˜r‘? fÓ,Ø—K‘K×&Ñ& sÔ+ÜœiÕ(Ø×-Ñ-¨d¯k©kÓ:÷ )Ñ(à÷ )Ô(àús   ÃC5Ã5
Dr8   rb   ÚdataÚSEPÚEMPTYÚCONTENT_LENGTHÚMETH_CONNECTÚSEC_WEBSOCKET_KEY1c                 ó¶  ^^• / nU R                   (       a  U R                   U-   Ssol         [        U5      nSn	U R                  n
U R                  nSnX˜:  d  U R                  (       Ga¡  U R
                  Gc¢  U R                  (       Gd�  U R                  (       a%  U R                  U R                  :¼  a  XS  U l         GOKUR                  X)5      nXÙ:X  a!  U R                  (       d  U[        U5      -   n	M¤  XÙ:¼  Ga­  U(       a  [        S5      eXU nUS:X  a  UR                  S5      n[        U5      U:”  a  [        US S S-   U5      eU R                  R                  U5        U R                  n[        U R                  5      U R                   :”  a  [        S	5      eU[        U5      -   n	U R                  S
   U:X  Gaæ  U R                   [        U R                  5      -
  n U R#                  U R                  5      mU R                  R%                  5         S[&        S -  4UU4S jjnU" 5       nUTR(                  ;   a  [+        U5      eTR,                  =(       a    [/        TR(                  5      n[1        TSU R2                  5      n[1        TSS5      nU R4                  c   eU[6        ;   =(       d    [9        U=(       a	    U[:        ;   5      nU(       dß  Ub  US:”  d  TR<                  (       aÅ  [?        U R4                  U R@                  U
U RB                  S9n[E        UUTR<                  UTRF                  U RH                  U RJ                  U RL                  U RN                  U RP                  U R                  U R                  UU RB                  S9nURR                  (       d  UU l        UU l*        GO©UU:X  a°  [W        T[X        5      (       d   e[?        U R4                  U R@                  U
U RB                  S9nSU l        [E        UTR2                  TRF                  U RL                  U RN                  U RP                  U R                  U R                  UU RB                  S9
U l        OóU(       dÑ  UcÎ  U RZ                  (       a½  [?        U R4                  U R@                  U
U RB                  S9n[E        UUTR<                  UTRF                  U RH                  U RJ                  U RL                  U RN                  U RP                  U R                  U R                  UU RB                  S9nURR                  (       d  UU l        OU(       a  SU l        [\        nO[\        nUR                  TU45        U R                  (       a  U =R                  S-  sl        TR^                  nGOEXS  U l         SU R                   ;   a  [        S5      e[        U R                   5      U R                  :”  a&  [        U R                   S S S-   U R                  5      eUnOñU R
                  c%  U R                  (       a  U R                  (       a   eO¿U R                  (       a   eU R
                  c   e U R
                  Ra                  XS  U5      u  nnU[l        Rr                  :H  U l        U[l        Rn                  La  OOSn	[        U5      nS U l        U RT                  (       a  SU l        SU l*        X˜:  a  GM�  U R                  (       a  GM¡  U(       a
  X˜:  a  XS  nOUnXpR                  U4$ ! U R                  R%                  5         f = f! [b         aƒ  nUnU Rd                  b  U Re                  [g        U5      5      n[i        U R
                  Rj                  UU5        [l        Rn                  nSn[W        U[*        [p        45      (       a  e  S nAGNCS nAff = f)Nrb   r   FzData after `Connection: close`r9   ó   r—   r˜   zToo many headers receivedr’   rˆ   c                  ó¢   >• TR                   R                  T5      n U c  g [        R                  U 5      (       d  [	        T5      e[        U 5      $ rŠ   )rR   r½   r>   r¡   r'   rh   )Ú
length_hdrrñ   Úmsgs    €€rc   Úget_content_lengthÚ0HttpParser.feed_data.<locals>.get_content_length™  sF   ø€ à),¯©¯©¸Ó)H˜JØ)Ñ1Ø'+ô
 $*×#3Ñ#3°J×#?Ñ#?Ü&3°NÓ&CÐ Cä#& z£?Ð2rb   rN   rf   )rÆ   rÄ   rÅ   )ÚlengthrW   rN   rU   rf   rÈ   rÊ   r‡   Úheaders_parserr„   r†   Úmax_trailersrÅ   T)	rN   rU   rÊ   r‡   rü   r„   r†   rý   rÅ   r   zBad line ending, expected CRLF):rÎ   rœ   rÄ   r„   rÓ   rÒ   rÏ   r×   rØ   ÚfindrÍ   r"   Úrstripr)   r£   r†   r…   rÛ   Úclearrh   rR   r'   rV   rÁ   ÚgetattrrN   rÃ   r   r`   r   rW   r/   rÆ   rÕ   ÚHttpPayloadParserrU   rf   rÈ   rÔ   r‡   rÖ   rë   rÐ   Ú
isinstancer6   rÉ   r.   rT   Ú	feed_datarì   rÇ   r^   r!   Úpayloadrk   rn   r*   rp   )rŒ   rî   rï   rð   rñ   rò   ró   ÚmessagesÚdata_lenÚ	start_posrÄ   Úmax_line_lengthrT   Úposrª   rý   rù   rû   ÚupgradedrN   rf   Ú
empty_bodyr  Úpayload_parserÚpayload_stateÚunderlying_excÚreraised_excrø   s       `                      @rc   r  ÚHttpParser.feed_dataU  sÍ  ù€ ð ˆà�:�:Ø#Ÿz™z¨DÑ0°#ÐˆD”*ä�t“9ˆØˆ	Ø�y‰yˆØ×,Ñ,ˆàˆØÓ" d×&A×&AÐ&Að ×#Ñ#Ò+°D·N·N°Nà×,×,Ø×+Ñ+¨t×/GÑ/GÓGð
 "& jÐ!1�D”JÙØ—i‘i Ó/�àÓ#¨D¯K¯KØ #¤c¨#£h¡�IÙàÔ#Þ#Ü,Ð-MÓNÐNð  ¨#Ð.�DØ˜e“|Ø#Ÿ{™{¨5Ó1˜Ü˜4“y ?Ó2Ü)¨$¨t°¨*°vÑ*=¸ÓOÐOà—K‘K×&Ñ& tÔ,à&*×&9Ñ&9�Oä˜4Ÿ;™;Ó'¨$×*:Ñ*:Ó:Ü,Ð-HÓIÐIà #¤c¨#£h¡�Ið —{‘{ 2‘¨%Ô/Ø'+×'7Ñ'7¼#¸d¿k¹kÓ:JÑ'J˜ð0Ø)-×);Ñ);¸D¿K¹KÓ)H˜Cà ŸK™K×-Ñ-Ô/ð3´C¸$±J÷ 3ð 3ñ "4Ó!5˜à-°·±Ó<Ü"/Ð0BÓ"CÐCà#&§;¡;×#UÔ3HÈÏÉÓ3U˜ä!(¨¨h¸¿¹Ó!D˜ä& s¨F°AÓ6˜à#Ÿ}™}Ñ8Ð8Ð8à%)Ô-DÑ%D÷ &ÌØ"×C vÔ1CÑ'CóI˜
ö  *Ø#Ñ/°F¸Q³JÀ3Ç;Ç;ä&2Ø $§¡Ø&*§j¡jØ%)Ø&*§k¡kñ	'˜Gô .?Ø 'Ø'-Ø(+¯©Ø'-Ø,/¯O©OØ%)§Y¡YØ37×3JÑ3JØ04×0EÑ0EØ$(§H¡HØ/3×/CÑ/CØ.2×.@Ñ.@Ø/3×/BÑ/BØ-9Ø&*§k¡kñ.˜Nð  $2×#6×#6Ø7E Ô 4ð 9A Ô 5ùØ# |Ó3Ü#-¨cÔ3D×#EÑ#EÐEÐ#EÜ&2Ø $§¡Ø&*§j¡jØ%)Ø&*§k¡kñ	'˜Gð .2˜DœNÜ3DØ 'Ø'*§z¡zØ,/¯O©OØ04×0EÑ0EØ$(§H¡HØ/3×/CÑ/CØ.2×.@Ñ.@Ø/3×/BÑ/BØ-9Ø&*§k¡kñ4˜DÕ0ö ",°±À4×CV×CVÜ&2Ø $§¡Ø&*§j¡jØ%)Ø&*§k¡kñ	'˜Gô .?Ø 'Ø'-Ø(+¯©Ø'-Ø,/¯O©OØ%)§Y¡YØ37×3JÑ3JØ04×0EÑ0EØ$(§H¡HØ/3×/CÑ/CØ.2×.@Ñ.@Ø/3×/BÑ/BØ-9Ø&*§k¡kñ.˜Nð  $2×#6×#6Ø7E Ô 4øÞ%ð .2˜DœNÜ&3™Gä&3˜Gà Ÿ™¨¨g¨Ô7Ø×3×3Ø ×/Ò/°1Ñ4Õ/Ø'*×'7Ñ'7˜ùà!% jÐ!1�D”Jð  §
¡
Ó*Ü,Ð-MÓNÐNÜ˜4Ÿ:™:“¨×);Ñ);Ó;Ü)¨$¯*©*°T°cÐ*:¸VÑ*CÀT×EWÑEWÓXÐXØ �DØð ×%Ñ%Ñ-°$·.·.ØŸ;Ÿ;Ð&�Øð  Ÿ;Ÿ;Ð&�Ø×+Ñ+Ñ7Ð7Ð7ðØ*.×*>Ñ*>×*HÑ*HØ˜ZÐ(¨#ó+Ñ'�M 4ð, "¤\×%KÑ%KÑKð Ô+ð !¬×(EÑ(EÒEð à�	Ü˜t›9�Ø'+�Ô$Ø×(×(ð &*�D”NØ,1�DÔ)ðC Ö" d×&A×&AÒ&AöF �IÓ(Ø˜
Ð#‰DàˆDàŸ™¨Ð-Ð-øðw !ŸK™K×-Ñ-Õ/ûôd !ó Ø2@�LØ×-Ñ-Ñ9Ø'+×'=Ñ'=¼cÀ.Ó>QÓ'R˜ä!Ø×,Ñ,×4Ñ4Ø$Ø&ôô %1×$AÑ$A�MØ�DÜ!Ø&¬Ô8MÐ(N÷ñ ð õûðús%   Ç%\, Ù/!] Ü,]Ý
_ÝA8_ß_rQ   c                 ó6  • U R                   R                  U5      u  p#SnSnSnSnUR                  [        R                  S5      nU(       aŸ  U V	V
s1 s HS  n	S U	R                  S5       5         H3  n
U
(       d  M  U
R                  5       (       d  M#  U
R                  5       iM5     MU     nn	n
SU;   a  SnOSU;   a  SnS	U;   a&  UR                  [        R                  5      (       a  SnUR                  [        R                  S
5      nUR                  5       (       a  UR                  5       S;   a  UnUR                  [        R                  5      nUb7  U R                  U5      (       a  Sn[        R                  U;   a  [        S5      eX#XEXg4$ s  sn
n	f )z•Parses RFC 5322 headers from a stream.

Line continuations are supported. Returns list of header name
and value pairs. Header name is in upper case.
NFrY   c              3   óB   #   • U  H  oR                  S 5      v •  M     g7f)ú 	N)r¤   )Ú.0Úparts     rc   Ú	<genexpr>Ú+HttpParser.parse_headers.<locals>.<genexpr>k  s   é € ÐRÒ<Q°DŸj™j¨×/Ð/Ò<Qùs   ‚Ú,ÚcloseTz
keep-aliverV   rº   >   ÚbrÚgzipÚzstdÚdeflatez6Transfer-Encoding can't be present with Content-Length)rÖ   r´   Úgetallr   Ú
CONNECTIONr�   r¿   r¦   r½   r¾   ÚCONTENT_ENCODINGÚTRANSFER_ENCODINGrà   rñ   r"   )rŒ   r�   rR   rS   Ú
close_connÚencodingrV   rW   Úconn_valuesÚ
conn_valueÚtokenÚconn_tokensÚencrÝ   s                 rc   r´   ÚHttpParser.parse_headersT  s{  € ð  $×3Ñ3×AÑAÀ%ÓHÑˆØˆ
ØˆØˆØˆð —n‘n¤T§_¡_°bÓ9ˆÞñ #.ôâ"-�JÙR¸J×<LÑ<LÈSÔ<Q×R�EÜó ð #Ÿ]™]Ÿ_ó �—‘–áRñ Ù"-ð ñ ð ˜+Ó%Ø!‘
Ø Ó,Ø"�
ð ˜KÓ'¨G¯K©K¼¿¹×,EÑ,EØ�ð �k‰kœ$×/Ñ/°Ó4ˆØ�;‰;�=‰=˜SŸY™Y›[Ð,MÓMØˆHð �[‰[œ×/Ñ/Ó0ˆØ‰>Ø×"Ñ" 2×&Ñ&Ø�ä×"Ñ" gÓ-Ü$ØLóð ð  j¸GÐMÐMùóAs   Á'FÁ=FÂFÚvalc                 ó   • Xl         g)zJSet connection upgraded (to websocket) mode.

:param bool val: new state.
N)rÏ   )rŒ   r+  s     rc   Úset_upgradedÚHttpParser.set_upgradedŠ  s	   € ð
 �rb   )rÔ   rÖ   rÕ   rÍ   r×   rØ   rÑ   rÓ   rÒ   rÐ   rÎ   rÏ   rf   rÄ   r†   r…   r„   rN   rÇ   rÃ   rÉ   rÈ   rÆ   )NNi   r¶   é€   r¶   NNNNTFTr   ©rˆ   N)(rZ   r[   r\   r]   r‡   r   r`   r_   r   ÚasyncioÚAbstractEventLooprh   r    r^   ÚtypeÚBaseExceptionr�   ÚabcÚabstractmethodr·   r¸   ri   rÛ   rà   rã   rç   rê   r   rñ   rò   ró   Ú_SEPr   r¨   r/   r  r0   r´   r-  ra   rY   rb   rc   r3   r3     s6  ‡ Ø€Cˆ�$‰Óð )-Ø15ØØ!ØØ"Ø)-ØØ!Ø8<Ø#'Ø$Ø $Ø"#ñ, à Ñ%ð, ð ×'Ñ'¨$Ñ.ð, ð ð	, ð
 ð, ð ð, ð ð, ð   $Ñ&ð, ð �D‰jð, ð �d‘
ð, ð   Ñ.°Ñ5ð, ð !ð, ð ð, ð ð, ð  ð, ð  
õ!, ð\ 	×ÑØ= 4¨¡;Ð=°5Ó=ó Ø=à×ÑØ2 Ð2¨Ó2ó Ø2ô-ô%ð
˜% $™,ô ð( ØØ#×2Ñ2Ø ×-Ñ-Ø#'×#:Ñ#:ñ}.àð}.ð ð}.ð ð	}.ð
 ð}.ð ð}.ð !ð}.ð 
ˆt�E˜% Ð-Ñ.Ñ/°°uÐ<Ñ	=õ}.ð~4NØ˜%‘[ð4Nà	Ø ¨T°D©[¸#À¹*ÀdÈDÐPñ
ô4Nðl ð ¨÷ rb   r3   c                   óB   • \ rS rSrSrS\\   S\4S jrS\	S\
4S jrSrg	)
r4   i’  z•Read request status line.

Exception .http_exceptions.BadStatusLine
could be raised in case of any errors in status line.
Returns RawRequestMessage.
r�   rˆ   c                 ó  • US   R                  SS5      n UR                  SSS9u  p4n[        R                  U5      (       d  [        U5      eUR                  5       n[        R                  U5      nUc  [        U5      e[        [        UR                  S5      5      [        UR                  S5      5      5      nUS:X  a  [        R                  " US	S
9nO®UR                  S5      (       a@  UR                  S5      u  pšnU	R                  S5      u  pœn[        R                  " U	UUS	S9nOXUS:X  a  US:X  a  [        US	S9nOA[        US	S9nUR                   S:X  a'  [#        UR%                  SS9R                  S5      5      eU R'                  USS  5      u  nnnnnnU[(        :X  a  [*        R,                  U;  a  [/        S5      eUc  U[0        ::  a  S	nOSn[3        UUUUUUUUUU5
      $ ! [         a    [        U5      S ef = f)Nr   r•   r–   Ú rm   ©Úmaxsplitr   ÚCONNECTT)Ú	authorityÚencodedÚ/Ú#Ú?)rO   Úquery_stringÚfragmentr?  Ú*ÚOPTIONS)r?  rº   )ÚerrorsÚlatin1z!Missing 'Host' header in request.F)r    r�   rž   r#   r<   r¡   Úupperr=   r$   r+   rh   Úgroupr   ÚbuildÚ
startswithÚ	partitionÚschemer(   Úencoder´   r-   r   ÚHOSTr"   r,   r6   )rŒ   r�   rª   rN   rO   rP   ÚmatchÚ	version_orX   Ú	path_partÚ_hash_separatorÚurl_fragmentÚ_question_mark_separatorÚqs_partrR   rS   r  rU   rV   rW   s                       rc   rÛ   ÚHttpRequestParser.parse_messageš  s  € à�Q‰x�‰˜wÐ(9Ó:ˆð	0Ø$(§J¡J¨s¸Q JÐ$?Ñ!ˆF˜'ô
 × Ñ  ×(Ñ(Ü Ó'Ð'Ø—‘“ˆô × Ñ  Ó)ˆØ‰=Ü Ó%Ð%Ü¤ E§K¡K°£NÓ 3´S¸¿¹ÀQ»Ó5HÓIˆ	à�YÓô —)’) d°DÑ9‰CØ�_‰_˜S×!Ñ!ð 8<·~±~ÀcÓ7JÑ4ˆI¨Ø;D×;NÑ;NÈsÓ;SÑ8ˆI°ô —)’)ØØ$Ø%Øñ	‰Cð �S‹[˜V yÓ0ä�d DÑ)‰Cô �d DÑ)ˆCØ�z‰z˜RÓä%Ø—K‘KÐ'8�KÐ9×@Ñ@ÀÓJóð ð ×Ñ˜u Q R˜yÓ)ñ	
ØØØØØØð œÓ%¬$¯)©)¸7Ó*BÜ Ð!DÓEÐEà‰=ØœMÓ)Ø‘à�ä ØØØØØØØØØØó
ð 	
øôE ó 	0Ü Ó%¨4Ð/ð	0ús   —G2 Ç2H	rÝ   c                 ó°   • UR                  SSS9S   R                  S5      nUR                  5       (       a  UR                  5       S:X  a  g[	        S5      e)	Nr  r   r;  r’   r  rW   Tz'Request has invalid `Transfer-Encoding`)Úrsplitr¤   r¿   r¦   r"   rß   s     rc   rà   Ú HttpRequestParser._is_chunked_teî  sK   € Ø�Y‰Y�s QˆYÐ'¨Ñ+×1Ñ1°%Ó8ˆà�:‰:�<‰<˜BŸH™H›J¨)Ó3ØäÐFÓGÐGrb   rY   N)rZ   r[   r\   r]   Ú__doc__r·   r¸   r6   rÛ   r^   r`   rà   ra   rY   rb   rc   r4   r4   ’  s9   † ñðR
 4¨¡;ð R
Ð3Dô R
ðhH ð H¨÷ Hrb   r4   c                   ó°   ^ • \ rS rSr% SrS\S'   \(       + r SS\S\	S-  S\
S	\
S
\\\\\4      \\4   4
U 4S jjjrS\\   S
\4S jrS\S
\4S jrSrU =r$ )r5   i÷  zˆRead response status line and headers.

BadStatusLine could be raised in case of any errors in status line.
Returns RawResponseMessage.
r1   rÃ   Nrî   rï   ÚargsÚkwargsrˆ   c                 óP   >• Uc  [         (       a  SOSn[        TU ]  " X/UQ70 UD6$ )Nr8   r9   )r   Úsuperr  )rŒ   rî   rï   r^  r_  Ú	__class__s        €rc   r  ÚHttpResponseParser.feed_data  s/   ø€ ð ‰;ß"šU‘'¨ˆCÜ‰wÒ  Ð<¨TÒ<°VÑ<Ð<rb   r�   c                 óL  • US   R                  SS5      n UR                  SS9u  p4 UR                  SS9u  pE[
        R                  U5      nUc  [        U5      e[        [        UR                  S5      5      [        UR                  S5      5      5      n[        U5      S:w  d  [        R                  U5      (       d  [        U5      e[        U5      nU R                  USS  5      u  n	n
nnnnUcR  U[        ::  a  S	nOES
Us=::  a  S:  d  O  US;   a  SnO-[        R                  U	;   d  [        R                   U	;   a  SnOS	n[#        UUUR	                  5       U	U
UUUU5	      $ ! [         a    [        U5      S ef = f! [         a    UR	                  5       nSn GNhf = f)Nr   r•   r–   r   r;  rº   rm   rt   Tr—   éÈ   >   é0  éÌ   F)r    r�   rž   r$   r¤   r=   r¡   r+   rh   rJ  rœ   r>   r´   r,   r   rñ   r"  r7   )rŒ   r�   rª   rP   Ústatusrg   rQ  rR  Ústatus_irR   rS   r  rU   rV   rW   s                  rc   rÛ   Ú HttpResponseParser.parse_message  s­  € Ø�Q‰x�‰˜wÐ(9Ó:ˆð	0Ø"Ÿj™j°!˜jÐ4‰OˆGð	Ø#Ÿ\™\°1˜\Ð5‰NˆFô × Ñ  Ó)ˆØ‰=Ü Ó%Ð%Ü¤ E§K¡K°£NÓ 3´S¸¿¹ÀQ»Ó5HÓIˆ	ô ˆv‹;˜!Ó¤6×#3Ñ#3°F×#;Ñ#;Ü Ó%Ð%Ü�v“;ˆð ×Ñ˜u Q R˜yÓ)ñ	
ØØØØØØð ‰=ØœMÓ)Ø‘à˜Õ& 3Õ&¨(°jÓ*@Ø‘Ü×$Ñ$¨Ó/´4×3IÑ3IÈWÓ3TØ‘ð �ä!ØØØ�L‰L‹NØØØØØØó

ð 
	
øôU ó 	0Ü Ó%¨4Ð/ð	0ûô
 ó 	Ø—\‘\“^ˆFØ‹Fð	ús   —E) ©F Å)F ÆF#Æ"F#rÝ   c                 óh   • UR                  SSS9S   R                  S5      R                  5       S:H  $ )Nr  r   r;  r’   r  rW   )rZ  r¤   r¦   rß   s     rc   rà   Ú!HttpResponseParser._is_chunked_teH  s3   € à�y‰y˜ qˆyÐ)¨"Ñ-×3Ñ3°EÓ:×@Ñ@ÓBÀiÑOÐOrb   rY   rŠ   )rZ   r[   r\   r]   r\  r_   r   r‡   r¸   r7  r   r¨   r·   r7   r/   r`   r  rÛ   r^   rà   ra   Ú__classcell__)rb  s   @rc   r5   r5   ÷  s­   ø‡ ñð  Óð Œ)€Cð
  ñ	=àð	=ð �D‰[ð	=ð ð		=ð
 ð	=ð 
ˆt�EÐ,¨lÐ:Ñ;Ñ<¸dÀEÐIÑ	J÷	=ð 	=ð8
 4¨¡;ð 8
Ð3Eô 8
ðtP ð P¨÷ Pò Prb   r5   c                    óÒ   • \ rS rSr        SSSS\S.S\S\S-  S\S	\S-  S
\S-  S\S-  S\S\S\S\	S\S\S\S\SS4S jjjr
SS jrSS jr SS\S\S\S\\\4   4S jjrSrg) r  iM  Nr¶   r/  )r„   r†   rý   rÅ   r  rû   rW   rU   rf   rN   rÈ   rÊ   r‡   rü   r„   r†   rý   rÅ   rˆ   c
                ó¬  • SU l         SU l        [        R                  U l        [
        R                  U l        SU l        SU l	        X€l
        X�l        X l        X°l        XÀl        XÐl        SU l        / U l        SU l        SU l        U(       a#  U(       a  U R                  (       a  [)        XUS9nOUnU(       d-  [        R*                  U l        UR-                  5         SU l        OhU(       a  [        R.                  U l        OKUbH  [        R0                  U l        X l         X l        U R                   S:X  a  UR-                  5         SU l        Xðl        g )Nr   Frb   )Úmax_decompress_sizeT)Ú_lengthÚ_pausedrr   rx   Ú_typerz   r}   Ú_chunkÚ_chunk_sizeÚ_chunk_tailrÔ   r‹   rÖ   Ú_max_line_sizeÚ_max_field_sizeÚ_max_trailersÚ_more_data_availableÚ_trailer_linesrë   Ú_eof_pendingÚDeflateBufferru   rê   rw   rv   Ú_length_expectedr  )rŒ   r  rû   rW   rU   rf   rN   rÈ   rÊ   r‡   rü   r„   r†   rý   rÅ   Úreal_payloads                   rc   r�   ÚHttpPayloadParser.__init__N  s  € ð$ ˆŒØˆŒÜ×/Ñ/ˆŒ
Ü ×3Ñ3ˆŒØˆÔØˆÔØ /ÔØŒ	Ø-ÔØ+ÔØ-ÔØ)ÔØ$)ˆÔ!Ø+-ˆÔØˆŒ	Ø!ˆÔö ¦+°$×2G×2GÜ9FØ¸%ñ:‰Lð #ˆLö "ä#×.Ñ.ˆDŒJØ×!Ñ!Ô#ØˆD�IÞÜ#×1Ñ1ˆD�JØÑÜ#×0Ñ0ˆDŒJØ!ŒLØ$*Ô!Ø�|‰|˜qÓ Ø×%Ñ%Ô'Ø �”	à#�rb   c                 ó   • SU l         g )NT)rr  rä   s    rc   rã   ÚHttpPayloadParser.pause_reading‹  s	   € Øˆ�rb   c                 óT  • U R                   [        R                  :X  aŽ  SU l        U R                  (       aM  U R
                  (       a  SU l        g U R                  R                  SS5      U l        U R                  (       a  MM  U R                  R                  5         SU l	        SU l        g U R                   [        R                  :X  a5  U R                  U R                  -
  n[        SU SU R                   S35      eU R                   [        R                  :X  a  [        S5      eg )	NTFrb   r   z;Not enough data to satisfy content length header (received z of z bytes).z2Not enough data to satisfy transfer length header.)rs  rr   rx   r|  rz  rr  r  r  rê   rë   rv   r~  rq  r&   rw   r*   )rŒ   Úreceiveds     rc   rê   ÚHttpPayloadParser.feed_eofŽ  sù   € Ø�:‰:œ×3Ñ3Ó3Ø $ˆDÔØ×+×+Ø—<—<Ø#(�D”LØØ,0¯L©L×,BÑ,BÀ3ÈÓ,J�Ô)ð	 ×+×+Ñ+ð
 �L‰L×!Ñ!Ô#ØˆDŒIØ %ˆDÕØ�Z‰Zœ:×2Ñ2Ó2Ø×,Ñ,¨t¯|©|Ñ;ˆHÜ$ðØ%˜J d¨4×+@Ñ+@Ð*AÀðKóð ð �Z‰Zœ:×3Ñ3Ó3Ü'ØDóð ð 4rb   Úchunkrï   Ú	CHUNK_EXTc                 óV  • U R                   [        R                  :X  Ga,  U R                  (       a  U R                  U-   nSU l        U R                  n[        U[        U5      -
  S5      U l        U R                  R                  USU U5      U l	        U R                  (       ag  U R                  (       a"  SU l
        XS U l        [        R                  S4$ U R                  R                  SS5      U l	        U R                  (       a  Mg  U R                  S:X  a.  U R                  R                  5         [        R                  XS 4$ GO®U R                   [        R                  :X  Ga�  U R                  (       aŸ  U R                   ["        R$                  :w  ak  U R&                  nU R                   ["        R(                  :X  a  U R*                  n[        U R                  5      U:”  a  [-        U R                  SS S-   U5      eU R                  U-   nSU l        U(       d  U R                  (       GaÂ  U R                   ["        R.                  :X  Gaó  UR1                  U5      nUS:¼  Gaš  X`R&                  :”  a  [-        USS S-   U R&                  5      eUR1                  USU5      nUS:¼  a7  USU nSXU =n	;   a'  [3        SU	< 35      n
[5        U R                  U
5        U
eOUSU nU R6                  (       a  UR9                  5       n[:        R<                  " [>        U5      (       d6  [3        USU RA                  S	S
5      5      n
[5        U R                  U
5        U
e[C        [E        U5      S5      nX[        U5      -   S nUS:X  aB  ["        R(                  U l        U R6                  (       a  URG                  S5      (       a  USS nOw["        R$                  U l        X°l$        U R                  RK                  5         OASU;   a#  [3        S5      n
[5        U R                  U
5        U
eXl        [        RL                  S4$ U R                   ["        R$                  :X  aî  U R                  (       a  SU l
        Xl        [        R                  S4$ U RH                  n[        U[        U5      -
  S5      U l$        U R                  R                  USU U5      U l	        XS nU R                  (       a  GMÞ  U RH                  (       a  SU l
        [        RL                  S4$ ["        RN                  U l        U R                  RQ                  5         U R                   ["        RN                  :X  aÆ  U R6                  (       a  URG                  S5      (       a  USS nUS[        U5       U:X  a$  U[        U5      S n["        R.                  U l        Od[        U5      [        U5      :¼  d  XS[        U5       :w  a#  [3        S5      n
[5        U R                  U
5        U
eXl        [        RL                  S4$ U R                   ["        R(                  :X  Gaƒ  UR1                  U5      nUS:  aA  SU;   a#  [3        S5      n
[5        U R                  U
5        U
eXl        [        RL                  S4$ USU nX[        U5      -   S nUS:X  a  URS                  S5      n[        U5      U R*                  :”  a  [-        USS S-   U R*                  5      eU RT                  RW                  U5        [        U RT                  5      U RX                  :”  a  [[        S5      eU RT                  S   S:X  an   U R\                  R_                  U RT                  5      u  pÞU RT                  Ra                  5         U R                  R                  5         [        R                  U4$ U(       a  GM®  U R                  (       a  GMÂ  GOU R                   [        Rb                  :X  aä  U R                  R                  U[        U5      5      U l	        U R                  (       a^  U R                  (       a  SU l
        [        R                  S4$ U R                  R                  SS5      U l	        U R                  (       a  M^  U Rd                  (       a:  U R                  R                  5         SU l3        SU l2        [        R                  S4$ [        RL                  S4$ ! U RT                  Ra                  5         f = f)a�  Receive a chunk of data to process.

Return:
    PayloadState - The current state of payload processing.
                   This function may be called with empty bytes after returning
                   PAYLOAD_HAS_PENDING_INPUT to continue processing after a pause.
    bytes - If payload is complete, this is the unconsumed bytes intended for the
            next message/payload, b"" otherwise.
rb   r   NFr—   r˜   r9   z"Unexpected LF in chunk-extension: Úasciir–   é   rõ   r   z)Bad chunk-size line ending, expected CRLFz3Chunk size mismatch: expected CRLF after chunk dataz&Bad trailer line ending, expected CRLFzToo many trailers receivedr’   T)4rs  rr   rv   rv  rq  Úmaxrœ   r  r  rz  rr  rk   rp   rê   rn   rw   rt  rz   r~   rw  r�   rx  r)   r}   rþ   r*   r!   r‹   r¤   Úrer¡   r?   r    rh   r¸   rL  ru  Úbegin_http_chunk_receivingro   r   Úend_http_chunk_receivingrÿ   r{  r£   ry  r"   rÖ   r´   r   rx   r|  rë   )rŒ   r†  rï   r‡  Úrequiredr	  r
  ÚiÚsize_bÚextÚexcÚsizerª   ÚtrailersÚraw_trailerss                  rc   r  ÚHttpPayloadParser.feed_data¤  s�  € ð �:‰:œ×0Ñ0Ô0Ø××Ø×(Ñ(¨5Ñ0�Ø#&�Ô à—|‘|ˆHÜ˜x¬#¨e«*Ñ4°aÓ8ˆDŒLØ(,¯©×(>Ñ(>Ø�i�xÐ  (ó)ˆDÔ%ð ×+×+Ø—<—<Ø#(�D”LØ',¨YÐ'7�DÔ$Ü'×AÑAÀ3ÐFÐFØ,0¯L©L×,BÑ,BÀ3ÈÓ,J�Ô)ð ×+×+Ñ+ð �|‰|˜qÓ Ø—‘×%Ñ%Ô'Ü#×4Ñ4°e¸IÐ6FÐFÐFñ !ð �Z‰Zœ:×3Ñ3Ô3Ø××à—;‘;¤*×"@Ñ"@Ó@Ø&*×&9Ñ&9�OØ—{‘{¤j×&?Ñ&?Ó?Ø*.×*>Ñ*>˜Ü˜4×+Ñ+Ó,¨Ó>Ü)Ø ×,Ñ,¨T¨cÐ2°VÑ;¸_óð ð ×(Ñ(¨5Ñ0�Ø#&�Ô æ˜4×4×4Ð4à—;‘;¤*×"?Ñ"?Ô?ØŸ*™* S›/�CØ˜a”xð ×!4Ñ!4Ó4Ü"-¨e°D°S¨k¸FÑ.BÀD×DWÑDWÓ"XÐXØ!ŸJ™J y°!°SÓ9˜Ø ›6Ø%*¨2¨A Y˜Fà$°¸°Ð)<¨Ó=Ü&;Ø&HÈÉÐ$Pó'" ô !.¨d¯l©l¸CÔ @Ø&) 	ð  >ð &+¨4¨C [˜FàŸ9Ÿ9Ø%+§\¡\£^˜Fä!Ÿ|š|¬I°v×>Ñ>Ü"7Ø % d s × 2Ñ 2°7Ð<MÓ Nó#˜Cô *¨$¯,©,¸Ô<Ø"%˜IÜ"¤5¨£=°"Ó5˜à %¬C°«H¡nÐ&6Ð 7˜Ø 1›9Ü*4×*CÑ*C˜DœKØ#ŸyŸy¨U×-=Ñ-=¸e×-DÑ-DØ(-¨a¨b¨	 øä*4×*HÑ*H˜DœKØ/3Ô,Ø ŸL™L×CÑCÕEà  E›>Ü"7Ø Kó#˜Cô *¨$¯,©,¸Ô<Ø"%˜IØ+0Ô(Ü+×?Ñ?ÀÐDÐDð —;‘;¤*×"@Ñ"@Ó@Ø—|—|Ø',˜œØ+0Ô(Ü+×EÑEÀsÐJÐJà#×/Ñ/�HÜ'*¨8´c¸%³jÑ+@À!Ó'D�DÔ$Ø04·±×0FÑ0FØ˜i˜xÐ(¨(ó1�DÔ-ð " )Ð,�Eà×0×0Ú à×'×'Ø',˜œÜ+×?Ñ?ÀÐDÐDÜ",×"DÑ"D�D”KØ—L‘L×9Ñ9Ô;ð —;‘;¤*×"DÑ"DÓDØ—y—y U×%5Ñ%5°e×%<Ñ%<Ø % a b 	˜Ø˜Zœs 3›xÐ(¨CÓ/Ø %¤c¨#£h jÐ 1˜Ü&0×&CÑ&C˜�Ü˜U›¤s¨3£xÓ/°5ÀÄ#ÀeÃ*Ð<MÓ3MÜ3ØQó˜ô & d§l¡l°CÔ8Ø!˜	à+0Ô(Ü+×?Ñ?ÀÐDÐDà—;‘;¤*×";Ñ";Ô;ØŸ*™* S›/�CØ˜Q“wØ  E›>Ü"7Ø Hó#˜Cô *¨$¯,©,¸Ô<Ø"%˜IØ+0Ô(Ü+×?Ñ?ÀÐDÐDà   #˜;�DØ!¬¨C«¡.Ð"2Ð3�EØ˜e“|Ø#Ÿ{™{¨5Ó1˜ä˜4“y 4×#7Ñ#7Ó7Ü)¨$¨t°¨*°vÑ*=¸t×?SÑ?SÓTÐTà×'Ñ'×.Ñ.¨tÔ4ä˜4×.Ñ.Ó/°$×2DÑ2DÓDÜ,Ð-IÓJÐJð ×*Ñ*¨2Ñ.°#Ó5ð8Ø59×5IÑ5I×5WÑ5WØ $× 3Ñ 3ó6Ñ2˜Hð !×/Ñ/×5Ñ5Ô7ØŸ™×-Ñ-Ô/Ü+×<Ñ<¸eÐCÐC÷A ‘%˜4×4×4Ò4ùðF �Z‰Zœ:×5Ñ5Ó5Ø(,¯©×(>Ñ(>¸uÄcÈ%ÃjÓ(QˆDÔ%Ø×+×+Ø—<—<Ø#(�D”LÜ'×AÑAÀ3ÐFÐFØ,0¯L©L×,BÑ,BÀ3ÈÓ,J�Ô)ð	 ×+×+Ñ+ð × × Ø—‘×%Ñ%Ô'Ø �”	Ø$)�Ô!Ü#×4Ñ4°cÐ9Ð9ä×/Ñ/°Ð4Ð4øð' !×/Ñ/×5Ñ5Õ7ús   Ý+'d äd()rÔ   rt  ru  rv  r|  rÖ   r‹   rq  r~  rx  rw  ry  rz  rr  r{  rs  rë   r  )NFNNNTTFr0  )r8   ó   ;)rZ   r[   r\   r]   r   r/   rh   r`   r^   r2   r�   rã   rê   r¸   r7  r¨   rk   r  ra   rY   rb   rc   r  r  M  s$  † ð "ØØ"&ØØ!Ø#'Ø $Øð;$ð "Ø"ØØ'ò!;$àð;$ð �d‘
ð;$ð ð	;$ð
 ˜4‘Zð;$ð �D‰jð;$ð �d‘
ð;$ð !ð;$ð ð;$ð ð;$ð &ð;$ð ð;$ð ð;$ð ð;$ð  ð!;$ð" 
ö#;$ôzôð. EIñB5ØðB5Ø!%ðB5Ø<AðB5à	ˆ|˜UÐ"Ñ	#÷B5ð B5rb   r  c            	       óš   • \ rS rSr% Sr\\S'   \4S\S\	S-  S\
SS4S	 jjr\4S
\S\SS4S jjrS\S\
S\4S jrSS jrSS jrSS jrSrg)r}  ii  zDDeflateStream decompress stream and feed data into specified stream.ÚdecompressorÚoutr$  Nrp  rˆ   c                 ó6  • Xl         SU l        U R                  Ul        X l        SU l        U   US:X  a&  [
        (       d  [        S5      e[        5       U l        O:US:X  a&  [        (       d  [        S5      e[        5       U l        O[        US9U l        X0l        g )Nr   Fr  zECan not decode content-encoding: brotli (br). Please install `Brotli`r  zRCan not decode content-encoding: zstandard (zstd). Please install `backports.zstd`)r$  )r›  r”  Útotal_compressed_bytesr$  Ú_started_decodingr   r%   r   rš  r   r   r   Ú_max_decompress_size)rŒ   r›  r$  rp  s       rc   r�   ÚDeflateBuffer.__init__n  s—   € ð ŒØˆŒ	Ø%)§Y¡YˆÔ"Ø ŒØ!&ˆÔáØ�tÓß’:Ü*ð.óð ô !3Ó 4ˆDÕØ˜Óß’8Ü*ð6óð ô !1Ó 2ˆDÕä 0¸(Ñ CˆDÔà$7Õ!rb   r“  Ú	exc_causec                 ó0   • [        U R                  X5        g rŠ   )r!   r›  )rŒ   r“  r¡  s      rc   r!   ÚDeflateBuffer.set_exceptionŽ  s   € ô
 	�d—h‘h Õ/rb   r†  r”  c                 ó’  • U =R                   U-  sl         U R                   U R                  l        U R                  (       dC  U(       a<  U R                  S:X  a%  US   S-  S:w  a  [        U R                  SS9U l        SU l        U R                  R                  nU[        R                  :¼  a  SO[        U R                  U5      n U R                  R                  XS9nU(       a%  U R                  R                  U[!        U5      5        U R                  R"                  $ ! [         a    [        SU R                  -  5      ef = f)	Nr  r   é   é   T)r$  Úsuppress_deflate_header)Ú
max_lengthz#Can not decode content-encoding: %s)r”  r›  r�  rž  r$  r   rš  Ú
_low_waterÚsysÚmaxsizer‹  rŸ  Údecompress_syncrì   r%   r  rœ   Údata_available)rŒ   r†  r”  Ú	low_waterr¨  s        rc   r  ÚDeflateBuffer.feed_data•  s  € Ø�	Š	�TÑ�	Ø*.¯)©)ˆ�‰Ô'ð
 ×%×%®%ð �}‰} 	Ó)¨e°A©h¸©nÀÓ.Aô %5Ø!Ÿ]™]ÀDñ%�Ô!ð &*ˆDÔ"à—H‘H×'Ñ'ˆ	àœcŸk™kÓ)‰A¬s°4×3LÑ3LÈiÓ/Xð 	ð	Ø×%Ñ%×5Ñ5°eÐ5ÐSˆEö Ø�H‰H×Ñ˜u¤c¨%£jÔ1Ø× Ñ ×/Ñ/Ð/øô ó 	Ü&Ø5¸¿¹ÑEóð ð	ús   ÃD# Ä##Ec                 ó
  • U R                   R                  5       nU(       a   eU R                  S:”  a6  U R                  S:X  a&  U R                   R                  (       d  [        S5      eU R                  R                  5         g )Nr   r  )rš  Úflushr”  r$  Úeofr%   r›  rê   )rŒ   r†  s     rc   rê   ÚDeflateBuffer.feed_eof·  s`   € Ø×!Ñ!×'Ñ'Ó)ˆö Ðˆyà�9‰9�q‹=Ø�}‰} 	Ó)°$×2CÑ2C×2G×2GÜ*¨9Ó5Ð5à�‰×ÑÕrb   c                 ó8   • U R                   R                  5         g rŠ   )r›  r�  rä   s    rc   r�  Ú(DeflateBuffer.begin_http_chunk_receivingÄ  s   € Ø�‰×+Ñ+Õ-rb   c                 ó8   • U R                   R                  5         g rŠ   )r›  rŽ  rä   s    rc   rŽ  Ú&DeflateBuffer.end_http_chunk_receivingÇ  s   € Ø�‰×)Ñ)Õ+rb   )rŸ  rž  rš  r$  r›  r”  r0  )rZ   r[   r\   r]   r\  r   r_   r   r/   r^   rh   r�   r   r4  r!   r¸   r`   r  rê   r�  rŽ  ra   rY   rb   rc   r}  r}  i  s�   ‡ ÙNàÓð $6ñ	8àð8ð ˜‘*ð8ð !ð	8ð
 
õ8ðF $1ñ0àð0ð !ð0ð 
õ	0ð 0˜uð  0¨Cð  0°Dô  0ôDô.÷,rb   r}  )r4   r5   r6   r7   )mr5  r1  rŒ  Ústringrª  Ú
contextlibr   Úenumr   r   Útypingr   r   r   r	   r
   r   r   r   Ú	multidictr   r   r   Úyarlr   rº   r   Úbase_protocolr   Úcompression_utilsr   r   r   r   r   Úhelpersr   r   r   r   r   r   r    r!   Úhttp_exceptionsr"   r#   r$   r%   r&   r'   r(   r)   r*   Úhttp_writerr+   r,   r-   Ústreamsr.   r/   Útypedefsr0   Úclient_protor1   Ú__all__r7  ÚsetÚ	printabler:   r^   r_   Úescaper;   Úcompiler<   ÚASCIIr=   r>   r?   r¸   r@   Ú	frozensetrK   r6   r7   ri   rk   rr   rz   r2   r`   rÁ   ÚABCr3   r4   r5   r  r}  ÚHttpRequestParserPyÚHttpResponseParserPyÚRawRequestMessagePyÚRawResponseMessagePyÚ_http_parserÚHttpRequestParserCÚHttpResponseParserCÚRawRequestMessageCÚRawResponseMessageCÚImportErrorrY   rb   rc   Ú<module>rØ     sÄ  ðÜ 
Û Û 	Û Û 
Ý Ý Ý ÷	÷ 	ó 	÷ :Ñ 9Ý å Ý '÷õ ÷	÷ 	ó 	÷
÷ 
õ 
÷ CÑ Bß 0Ý  æÝ-ð€ð ˆ~Ñ€á × 0Ñ 0Ó1€ˆ%��C‘‰/Ó 1ð !ŸišiÐ(9Ó:€��s‘Ó :Ø!Ÿzšz¨J°Ð6GÀrÐ*JÓK€ˆˆw�s‰|Ñ	Ó KØ ŸjšjÐ);¸R¿X¹XÓF€ˆˆg�c‰lÑÓ FØ Ÿjšj¨°·±Ó:€ˆˆg�c‰lÑÓ :Ø#%§:¢:Ð.>Ó#?€	ˆ5�˜‘Ñ Ó ?à57·Z²ZØó6Ð ˜u W¨S¡\Ñ2ó ñ ,5òó,Ð �5˜ 3™Ñ(ó ô 
˜
ô 
ô	˜ô 	ñ 	�Ð*Ð,>Ó?€ô"�7ô "ô�ô ô�ô ÷Y?ñ Y?ðx=Ð#3°CÑ#8ð =¸Tô =ôK�—‘˜' %™.ô Kô\bH˜
Ð#4Ñ5ô bHôJSP˜Ð$6Ñ7ô SP÷lY5ñ Y5÷x_,ñ _,ðD (Ð Ø)Ð Ø'Ð Ø)Ð ð	Þ÷	
ó 	
ð /ÐØ0ÐØ.ÐØ0Ñð øð ó 	Ùð	ús   ÉI9 É9JÊJ