
    yi                     F   U d dl Z d dlZd dlZd dlZd dl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mZmZmZmZmZmZ d dl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"m#Z#m$Z$ ddl%m&Z&m'Z'm(Z(m)Z)m*Z* ddl+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 ddl4m5Z5m6Z6 ddl7m8Z8 ddl9m:Z:m;Z; ddl<m=Z= dZ>ed   Z? e@ej                        ZBeeeC      eDd<    ej                  d      ZFeeC   eDd<    ej                  deF d      ZHeeeC      eDd<    ej                  dej                        ZJeeeC      eDd<    ej                  dej                        ZKeeeC      eDd<    ej                  d      ZLeeeM      eDd<    G d d e      ZN G d! d"e      ZO ed#eNeO      ZP G d$ d%e      ZQ G d& d'e      ZR G d( d)      ZS G d* d+e j                  eeP         ZU G d, d-eUeN         ZV G d. d/eUeO         ZW G d0 d1      ZX G d2 d3      ZYeVZZeWZ[eNZ\eOZ]	 e'sdd4l^mVZVmWZWmNZNmOZO eVZ_eWZ`eNZaeOZbyy# ec$ r Y yw xY w)5    N)suppress)IntEnum)AnyClassVarFinalGenericListLiteral
NamedTupleOptionalPatternSetTupleTypeTypeVarUnion)CIMultiDictCIMultiDictProxyistr)URL   )hdrs)BaseProtocol)
HAS_BROTLIBrotliDecompressorZLibDecompressor)DEBUGNO_EXTENSIONSBaseTimerContextmethod_must_be_empty_bodystatus_code_must_be_empty_body)BadHttpMessageBadStatusLineContentEncodingErrorContentLengthErrorInvalidHeaderInvalidURLErrorLineTooLongTransferEncodingError)HttpVersionHttpVersion10)internal_logger)EMPTY_PAYLOADStreamReader)
RawHeaders)HeadersParser
HttpParserHttpRequestParserHttpResponseParserRawRequestMessageRawResponseMessage)   
   
ASCIISETz!#$%&'*+-.^_`|~_TCHAR_SPECIALSz
[0-9A-Za-zz]+TOKENREzHTTP/(\d)\.(\d)VERSREz\d+DIGITSs   [0-9a-fA-F]+	HEXDIGITSc                   x    e Zd ZU eed<   eed<   eed<   ded<   eed<   eed<   ee   ed<   eed	<   eed
<   e	ed<   y)r4   methodpathversionCIMultiDictProxy[str]headersraw_headersshould_closecompressionupgradechunkedurlN)
__name__
__module____qualname__str__annotations__r*   r/   boolr   r        N/root/polymarket_arb/.venv/lib/python3.12/site-packages/aiohttp/http_parser.pyr4   r4   O   s=    K
I$$#MM	HrQ   r4   c                   t    e Zd ZU eed<   eed<   eed<   ee   ed<   eed<   e	ed<   e
e   ed<   e	ed<   e	ed	<   y
)r5   rA   codereasonrC   rD   rE   rF   rG   rH   N)rJ   rK   rL   r*   rN   intrM   r   r/   rO   r   rP   rQ   rR   r5   r5   \   s=    
IKc""#MMrQ   r5   _MsgTc                       e Zd ZdZdZdZdZy)
ParseStater   r         N)rJ   rK   rL   
PARSE_NONEPARSE_LENGTHPARSE_CHUNKEDPARSE_UNTIL_EOFrP   rQ   rR   rY   rY   k   s    JLMOrQ   rY   c                        e Zd ZdZdZdZdZdZy)
ChunkStater   r   rZ   r[      N)rJ   rK   rL   PARSE_CHUNKED_SIZEPARSE_CHUNKED_CHUNKPARSE_CHUNKED_CHUNK_EOFPARSE_MAYBE_TRAILERSPARSE_TRAILERSrP   rQ   rR   ra   ra   s   s    NrQ   ra   c            	       L    e Zd Z	 	 	 d
dedededdfdZdee   dedef   fd	Z	y)r0   max_line_sizemax_headersmax_field_sizereturnNc                 .    || _         || _        || _        y N)ri   rj   rk   )selfri   rj   rk   s       rR   __init__zHeadersParser.__init__|   s     +&,rQ   linesrB   c           	         t               }g }d}|d   }t        |      }|r}	 |j                  dd      \  }}t        |      dk(  rt	        |      |d   |d   hddhz  rt	        |      |j                  d      }t        |      | j                  kD  rQt        dj                  |j                  d	d
            t        | j                        t        t        |                  |j                  dd      }	t        j                  |	      st	        |      t        |      }
|dz  }||   }|xr |d   dv }|r|g}|r|
t        |      z  }
|
| j                  kD  rHt        dj                  |j                  d	d
            t        | j                        t        |
            |j                  |       |dz  }||k  r||   }|r|d   dv }nd}n|rdj                  |      }nW|
| j                  kD  rHt        dj                  |j                  d	d
            t        | j                        t        |
            |j                  d      }|j                  dd      }d|v sd|v sd|v rt	        |      |j!                  |	|       |j                  ||f       |r}t#        |      t%        |      fS # t        $ r t	        |      d w xY w)Nr      :r       	   s    	zrequest header name {}utf8backslashreplaceutf-8surrogateescape)ru   rv   zrequest header field {}rQ   
 )r   lensplit
ValueErrorr&   lstriprk   r(   formatdecoderM   r:   	fullmatchappendjoinstripaddr   tuple)ro   rq   rC   rD   	lines_idxline
line_countbnamebvaluenameheader_lengthcontinuation
bvalue_lstvalues                 rR   parse_headerszHeadersParser.parse_headers   s    %0M	QxZ
4 $

4 3v 5zQ#E** a%)$Aw.#D))]]6*F5zD///!,33V-?@ ++,E
O  <<):;D$$T*#E**KM NI#D  6DGw$6L $X
"!SY.M$t':'::)5<< %V5G H   3 34.  %%d+ NI :-$Y/+/7g+=L") #* *- 4#6#66%188!LL1CD D//0M*  \\&)FMM'+<=E u}5#F++KKe$v/_ b !)5+=>>[  4#D)t34s   J5 5K)     r   )
rJ   rK   rL   rV   rp   r	   bytesr   r/   r   rP   rQ   rR   r0   r0   {   s_     " "	-- - 	-
 
-\?%[\?	&
2	3\?rQ   r0   c                      e Zd ZU dZee   ed<   	 	 	 	 	 	 	 	 	 	 	 	 	 	 d$dee   dee	j                     dededed	ed
ee   dee   dee   dedeee      dedededdfdZej$                  dee   defd       Zdee   fdZddej2                  ej4                  ej6                  fdededededededeeeeef      eef   fdZ dee   ded e!ee   ee   eef   fd!Z"d"eddfd#Z#y)%r1   FlaxNprotocollooplimitri   rj   rk   timerrT   r?   readallpayload_exceptionresponse_with_bodyread_until_eofauto_decompressrl   c                 2   || _         || _        || _        || _        || _        || _        || _        |	| _        |
| _        || _	        || _
        || _        g | _        d| _        d| _        d | _        d | _        || _        || _        t'        |||      | _        y )NrQ   F)r   r   ri   rj   rk   r   rT   r?   r   r   r   r   _lines_tail	_upgraded_payload_payload_parser_auto_decompress_limitr0   _headers_parser)ro   r   r   r   ri   rj   rk   r   rT   r?   r   r   r   r   r   s                  rR   rp   zHttpParser.__init__   s    " !	*&,
	!2"4,#%
<@ /,]KXrQ   rq   c                      y rn   rP   )ro   rq   s     rR   parse_messagezHttpParser.parse_message  s    rQ   c                    | j                   "| j                   j                          d | _         y | j                  r%| j                  j	                  | j                         | j                  ra| j                  d   dk7  r| j                  j	                  d       t        t              5  | j                  | j                        cd d d        S y # 1 sw Y   y xY w)Nrt   z
rQ   )r   feed_eofr   r   r   r   	Exceptionr   ro   s    rR   r   zHttpParser.feed_eof  s    +  ))+#'D   zz""4::.{{;;r?f,KK&&s+i( ;--dkk:; ;;s   (CCr6   rQ   dataSEPEMPTYCONTENT_LENGTHMETH_CONNECTSEC_WEBSOCKET_KEY1c                 N
   g }| j                   r| j                   |z   dc}| _         t        |      }d}	| j                  }
|	|k  r| j                  | j                  ss|j                  ||	      }||	k(  r| j                  s|t        |      z   }	R||	k\  r.||	| }|dk(  r|j                  d      }| j                  j                  |       |t        |      z   }	| j                  d   |k(  rj	 | j                  | j                        | j                  j                          dt        t           ffd} |       }|j                  v rt        |      j                  | _        t!        d| j"                        }t!        d	d      }| j$                  J t'        |      xs t)        |xr t+        |            }|s||dkD  sj,                  rj                  st/        | j$                  | j0                  |
| j2                  
      }t5        ||j,                  |j6                  | j8                  | j:                  | j<                  | j>                  | j@                  
      }|jB                  s;|| _        n2||k(  rtE        tF              sJ t/        | j$                  | j0                  |
| j2                  
      }d| _        t5        |j"                  j6                  d| j>                  | j@                        | _        n|s|| jH                  rt/        | j$                  | j0                  |
| j2                  
      }t5        ||j,                  |j6                  | j8                  d| j<                  | j>                  | j@                  
      }|jB                  s|| _        ntJ        }|j                  |f       n||	d  | _         |}n| j                  | j                  r| j                  rJ nf|r\|	|k  rW| j                  rJ | j                  J 	 | j                  jM                  ||	d  |      \  }}|rd}	t        |      }d | _        n|	|k  r|r|	|k  r||	d  }n|}|| j                  |fS # | j                  j                          w xY w# tN        $ r}}| jP                  >| j                  jR                  jU                  | jQ                  tW        |                   n%| j                  jR                  jU                  |       d}d}Y d }~d }~ww xY w)NrQ   r   r7      rt   rl   c                      j                   j                        } | y t        j                  |       st	              t        |       S rn   )rC   getr<   r   r&   rV   )
length_hdrr   msgs    rR   get_content_lengthz0HttpParser.feed_data.<locals>.get_content_lengthP  sC    ),)HJ)1'+
 $*#3#3J#?&3N&C C#&z?2rQ   r?   rT   )r   r   r   )	lengthrH   r?   rF   rT   r   r   r   r   T)r?   rF   r   r   r   ),r   r~   r   r   r   findr   rstripr   r   clearr   rV   rC   r&   rG   getattrr?   r   r!   rO   r    rH   r.   r   r   HttpPayloadParserrF   rT   r   r   r   r   done
isinstancer4   r   r-   	feed_dataBaseExceptionr   payloadset_exceptionrM   )ro   r   r   r   r   r   r   messagesdata_len	start_posr   posr   r   r   r?   rT   
empty_bodyr   payload_parsereofexcr   s       `                 @rR   r   zHttpParser.feed_data#  s    ::#zzD0#D$*t9	yy(" ##+DNNiiY/)#DKK #c#hI)#	#.De|#{{51KK&&t, #c#hI {{2%/0)-););DKK)HC KK--/3HSM 3 "4!5-<"/0B"CC),!(h!D&sFA6#}}888%CD%I &T"H'@'HN
  *#/FQJ"{{$'KK&2 $&*jj%)&*kk	'G .? ''-(+'-,/OO%)YY(,373J3J040E0E$(HH.N $2#6#67E 4#|3#-c3D#EE#E&2 $&*jj%)&*kk	'G .2DN3D ''*zz,/OO(,040E0E$(HH4D0 ",4CVCV&2 $&*jj%)&*kk	'G .? ''-(+'-,/OO%)YY(,373J3J040E0E$(HH.N $2#6#67E 4&3G g7!%ij!1DJ D %%-$..;;& )h.;;&++777 $ 4 4 > >tIJ?OQT UIC  !I"4yH+/D(y ("| I(	
#DD--W !KK--/f % 	--9,,44BB 223s8< ,,44BB3GCD	s%   1Q? "R ?R	T$'A3TT$rB   c           
         | j                   j                  |      \  }d}d}d}d}t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  f
}t        fd|D        d      }|t        d| d      j                  t        j                         }	|	rF|	j#                         }
|
dk(  rd}n.|
dk(  rd}n&|
d	k(  r!j                  t        j$                        rd}j                  t        j&                        }|r|j#                         }|d
v r|}j                  t        j                        }|>d|j#                         k(  rd}nt        d      t        j                  v rt        d      |||||fS )zParses RFC 5322 headers from a stream.

        Line continuations are supported. Returns list of header name
        and value pairs. Header name is in upper case.
        NFc              3   `   K   | ]%  }t        j                  |d             dkD  s"| ' yw)rP   r   N)r~   getall).0hrC   s     rR   	<genexpr>z+HttpParser.parse_headers.<locals>.<genexpr>  s(     PaW^^Ar5J1Ka1OPs   #..zDuplicate 'z' header found.closeTz
keep-aliverG   )gzipdeflatebrrH   z'Request has invalid `Transfer-Encoding`z6Transfer-Encoding can't be present with Content-Length)r   r   r   r   CONTENT_LOCATIONCONTENT_RANGECONTENT_TYPEETAGHOSTMAX_FORWARDSSERVERTRANSFER_ENCODING
USER_AGENTnextr"   r   
CONNECTIONlowerUPGRADECONTENT_ENCODING)ro   rq   rD   
close_connencodingrG   rH   
singletonsbad_hdrconnvencterC   s                @rR   r   zHttpParser.parse_headers  s     $33AA%H

 !!IIIIKK""OO

 P:PRVW ;wi!GHH {{4??+

AG|!
l""
iGKK$= kk$//0))+C// [[//0>BHHJ&$%NOO""g-$L  j(GWMMrQ   valc                     || _         y)zZSet connection upgraded (to websocket) mode.

        :param bool val: new state.
        N)r   )ro   r   s     rR   set_upgradedzHttpParser.set_upgraded  s    
 rQ   )NNi   r   r   r   NNNFNTFT)$rJ   rK   rL   r   r   rO   rN   r   r   asyncioAbstractEventLooprV   r   rM   r   r   rp   abcabstractmethodr	   r   rW   r   r   r   r   r   r   _SEPr   r   r.   r   r/   r   r   rP   rQ   rR   r1   r1      s+   C$ ,048! ",0" $;?#'$ $%Y<(%Y w001%Y 	%Y
 %Y %Y %Y ()%Y sm%Y %Y %Y $D$78%Y !%Y %Y %Y  
!%YN 	4; 5  (5/ & #22 --#'#:#:v.v. v. 	v.
 v. v. !v. 
tE%-./u<	=v.pBN%[BN	Xd^Xc]DRVV
BNH  rQ   r1   c                   &    e Zd ZdZdee   defdZy)r2   zRead request status line.

    Exception .http_exceptions.BadStatusLine
    could be raised in case of any errors in status line.
    Returns RawRequestMessage.
    rq   rl   c                 6   |d   j                  dd      }	 |j                  dd      \  }}}t	        |      | j
                  kD  r2t        dt        | j
                        t        t	        |                  t        j                  |      st        |      t        j                  |      }|t        |      t        t        |j                  d            t        |j                  d                  }|d	k(  rt        j                  |d
      }n|j!                  d      rD|j#                  d      \  }	}
}|	j#                  d      \  }	}}t        j                  |	||d
      }n^|dk(  r|dk(  rt        |d
      }nFt        |d
      }|j$                  dk(  r*t'        |j)                  d      j                  d            | j+                  |      \  }}}}}}||t,        k  rd
}nd}t/        ||||||||||
      S # t        $ r t        |      d w xY w)Nr   ry   rz    rZ   maxsplitStatus line is too longr   CONNECTT)	authorityencoded/#?)r@   query_stringfragmentr  *OPTIONS)r   )errorslatin1F)r   r   r   r#   r~   ri   r(   rM   r:   r   r;   r*   rV   groupr   build
startswith	partitionschemer'   encoder   r+   r4   )ro   rq   r   r?   r@   rA   match	version_orI   	path_part_hash_separatorurl_fragment_question_mark_separatorqs_partrC   rD   r   rF   rG   rH   s                       rR   r   zHttpRequestParser.parse_message/  s+   Qxw(9:	0$(JJsQJ$?!FD' t9t))))3t/A/A+BCD	N 
   (''   )=%%EKKN 3SQ5HI	Y ))dD9C__S! 8<~~c7J4I;D;N;Ns;S8I/ ))$%	C S[Vy0dD)C dD)CzzR%KK'8K9@@J  u%	
 =M) 
 	
G  	0%4/	0s   H HN)rJ   rK   rL   __doc__r	   r   r4   r   rP   rQ   rR   r2   r2   '  s"    S
4; S
3D S
rQ   r2   c                   z     e Zd ZdZe Z	 d
dedee   de	de	de
ee
eef      eef   f
 fdZdee   defd	Z xZS )r3   zRead response status line and headers.

    BadStatusLine could be raised in case of any errors in status line.
    Returns RawResponseMessage.
    r   r   argskwargsrl   c                 D    |
t         rdnd}t        |   ||g|i |S )Nr6   r7   )r   superr   )ro   r   r   r  r  	__class__s        rR   r   zHttpResponseParser.feed_data  s/     ;"'Cw s<T<V<<rQ   rq   c                 D   |d   j                  dd      }	 |j                  d      \  }}	 |j                  d      \  }}t        |      | j                  kD  r2t        dt        | j                        t        t        |                  t        j                  |      }|t        |      t        t        |j                  d            t        |j                  d                  }t        |      d	k7  st        j                  |      st        |      t        |      }| j                  |      \  }	}
}}}}|	|t         k  }t#        |||j	                         |	|
||||	      S # t        $ r t        |      d w xY w# t        $ r |j	                         }d}Y \w xY w)
Nr   ry   rz   r   r   r  r   rZ   r[   )r   r   r   r#   r   r~   ri   r(   rM   r;   r   r*   rV   r  r<   r   r+   r5   )ro   rq   r   rA   statusrU   r  r  status_irC   rD   r   rF   rG   rH   s                  rR   r   z HttpResponseParser.parse_message  s   Qxw(9:	0"jj!j4OGV	#\\1\5NFF
 v;+++)3t/A/A+BCFDT 
   )=%%EKKN 3SQ5HI	 v;!6#3#3F#;%%v; u%	
 =.E!LLN

 
	
M  	0%4/	0
  	\\^FF	s   E' F  'E= FFrn   )rJ   rK   rL   r  r   r   r   r   r   r   r   r	   r5   r.   rO   r   r   __classcell__)r!  s   @rR   r3   r3     s     )C
 #	=	= d^	= 		=
 	= 
tE,l:;<dEI	J	=4
4; 4
3E 4
rQ   r3   c                       e Zd Z	 	 	 	 	 	 	 	 	 ddedee   dedee   dee   dee   ded	ed
ededdfdZddZ		 dde
dede
deee
f   fdZy)r   Nr   r   rH   rF   rT   r?   r   r   r   r   rl   c                    d| _         t        j                  | _        t        j
                  | _        d| _        d| _        |	| _	        |
| _
        d| _        |r|r| j                  rt        ||      }n|}|s4t        j                  | _        |j                          d| _        || _        y |rt        j                  | _        || _        y |Jt        j                  | _        || _         | j                   dk(  r|j                          d| _        || _        y |r"|dk7  rt        j                   | _        || _        y |dv rAt#        j$                  d       t        j                  | _        |j                          d| _        || _        y )Nr   rQ   FT   )PUTPOSTz6Content-Length or Transfer-Encoding header is required)_lengthrY   r\   _typera   rc   _chunk_chunk_size_chunk_tailr   _laxr   DeflateBufferr   r^   r]   r_   r,   warningr   )ro   r   r   rH   rF   rT   r?   r   r   r   r   real_payloads               rR   rp   zHttpPayloadParser.__init__  sc    **
 33 /		 +$2G2G?L@L #L "#..DJ!!#DI* $' #11DJ$ $# #00DJ!DL||q %%' 	 $ 43;'77
 $ ?*''L (22
%%' 	#rQ   c                    | j                   t        j                  k(  r| j                  j	                          y | j                   t        j
                  k(  rt        d      | j                   t        j                  k(  rt        d      y )Nz2Not enough data for satisfy content length header.z3Not enough data for satisfy transfer length header.)	r,  rY   r_   r   r   r]   r%   r^   r)   r   s    rR   r   zHttpPayloadParser.feed_eof  so    ::333LL!!#ZZ:222$D  ZZ:333'E  4rQ   chunkr   	CHUNK_EXTc                 	   | j                   t        j                  k(  r| j                  }t	        |      }||k\  rP||z
  | _        | j
                  j                  ||       | j                  dk(  rb| j
                  j                          yd| _        | j
                  j                  |d | |       | j
                  j                          d||d  fS y
| j                   t        j                  k(  r| j                  r| j                  |z   }d| _	        |r| j                  t        j                  k(  rM|j                  |      }|dk\  r.|j                  |d|      }|dk\  r|d | }n|d | }| j                  r|j                         }t!        j"                  t$        |      s;t'        |d | j)                  dd            }	| j
                  j+                  |	       |	t-        t/        |      d      }
||t	        |      z   d  }|
dk(  r8t        j0                  | _
        | j                  rV|j3                  d      rE|d	d  }n?t        j4                  | _
        |
| _        | j
                  j9                          n|| _	        y
| j                  t        j4                  k(  r| j6                  }t	        |      }||kD  r'||z
  | _        | j
                  j                  ||       y
d| _        | j
                  j                  |d | |       ||d  }| j                  r|j3                  d      r|d	d  }t        j:                  | _
        | j
                  j=                          | j                  t        j:                  k(  r=|d t	        |       |k(  r$|t	        |      d  }t        j                  | _
        n|| _	        y
| j                  t        j0                  k(  re|d t	        |       }||k(  r*| j
                  j                          d|t	        |      d  fS |sy
||d d	 k(  r|| _	        y
t        j>                  | _
        | j                  t        j>                  k(  rE|j                  |      }|dk\  r'||t	        |      z   d  }t        j0                  | _
        n|| _	        y
|ry
| j                   t        j@                  k(  r%| j
                  j                  |t	        |             y
)Nr   )TrQ   TrQ   asciirz      r   r   )FrQ   )!r,  rY   r]   r+  r~   r   r   r   r^   r/  r-  ra   rc   r   r0  r   rer   r=   r)   r   r   rV   r   rf   r  rd   r.  begin_http_chunk_receivingre   end_http_chunk_receivingrg   r_   )ro   r5  r   r6  required	chunk_lenr   isize_br   sizeheads               rR   r   zHttpPayloadParser.feed_data  sG    ::000||HE
I9$')3&&ui8<<1$LL))+$ &&uYh'7B%%'U89---V Q ZZ:333((50#&  ;;*"?"??**S/Cax!JJy!S96%*2AYF%*4C[F99%+\\^F!||Iv>"7 %ds 2 27<M N#C !LL66s;"%I"5="5 %cCHn&6 719*4*I*IDK#yyU-=-=e-D(-ab	*4*H*HDK/3D, LLCCE+0() ;;*"@"@@#//H #E
I)++3i+?(..ui@)+,(..uYh/?J %hi 099)9)9%)@$)!"IE&0&H&H==? ;;*"D"DDZs3x(C/ %c#hj 1&0&C&C+0()
 ;;*"A"AA 3s8,Ds{--/#U3s8:%666  )s2Aw+/()",";";DK ;;*";";;**S/Cax %cCHn&6 7&0&E&E+0(){ F  ZZ:555LL""5#e*5rQ   )	NFNNNFTTFrl   N)r6      ;)rJ   rK   rL   r.   r   rV   rO   rM   rp   r   r   r   r   r   rP   rQ   rR   r   r     s     !%%)" $#' $8$8$ 8$ 	8$
 c]8$ sm8$ 8$ 8$ !8$ 8$ 8$ 
8$t
 EI}}!%}<A}	tU{	}rQ   r   c                   r    e Zd ZU dZeed<   dedee   ddfdZ	de
ddfd	Zd
ededdfdZddZddZddZy)r1  zDDeflateStream decompress stream and feed data into specified stream.decompressoroutr   rl   Nc                     || _         d| _        || _        d| _        |  |dk(  r!t        st        d      t               | _        y t        |      | _        y )Nr   Fr   zECan not decode content-encoding: brotli (br). Please install `Brotli`)r   )	rG  rA  r   _started_decodingr   r$   r   rF  r   )ro   rG  r   s      rR   rp   zDeflateBuffer.__init__  sY    	 !&t*.  !3 4D 0( CDrQ   r   c                 :    | j                   j                  |       y rn   )rG  r   )ro   r   s     rR   r   zDeflateBuffer.set_exception  s    s#rQ   r5  rA  c                    |sy | xj                   |z  c_         | j                  s6| j                  dk(  r'|d   dz  dk7  rt        | j                  d      | _        	 | j                  j                  |      }d| _        |r&| j                  j                  |t        |             y y # t        $ r t        d| j                  z        w xY w)Nr   r         T)r   suppress_deflate_headerz#Can not decode content-encoding: %s)rA  rI  r   r   rF  decompress_syncr   r$   rG  r   r~   )ro   r5  rA  s      rR   r   zDeflateBuffer.feed_data  s    		T	 &&*a3!# !1!D	%%55e<E "&HHuc%j1   	&5E 	s   B' '"C	c                 8   | j                   j                         }|s| j                  dkD  rU| j                  j	                  |t        |             | j                  dk(  r!| j                   j                  st        d      | j                  j                          y )Nr   r   )
rF  flushrA  rG  r   r~   r   r   r$   r   )ro   r5  s     rR   r   zDeflateBuffer.feed_eof  sp    !!'')DIIMHHuc%j1}}	)$2C2C2G2G*955rQ   c                 8    | j                   j                          y rn   )rG  r;  r   s    rR   r;  z(DeflateBuffer.begin_http_chunk_receiving  s    ++-rQ   c                 8    | j                   j                          y rn   )rG  r<  r   s    rR   r<  z&DeflateBuffer.end_http_chunk_receiving  s    ))+rQ   rC  )rJ   rK   rL   r  r   rN   r.   r   rM   rp   r   r   r   rV   r   r   r;  r<  rP   rQ   rR   r1  r1    sj    NDL DHSM Dd D"$ $4 $2u 2C 2D 2@.,rQ   r1  )r2   r3   r4   r5   )dr   r   r:  string
contextlibr   enumr   typingr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   	multidictr   r   r   yarlr   r  r   base_protocolr   compression_utilsr   r   r   helpersr   r   r   r    r!   http_exceptionsr"   r#   r$   r%   r&   r'   r(   r)   http_writerr*   r+   logr,   streamsr-   r.   typedefsr/   __all__r   set	printabler8   rM   rN   escaper9   compiler:   ASCIIr;   r<   r=   r   r4   r5   rW   rY   ra   r0   ABCr1   r2   r3   r   r1  HttpRequestParserPyHttpResponseParserPyRawRequestMessagePyRawResponseMessagePy_http_parserHttpRequestParserCHttpResponseParserCRawRequestMessageCRawResponseMessageCImportErrorrP   rQ   rR   <module>rs     sP   
  	      " : 9   ' O O 	 	 	 4   0   ~ 0 01%C/ 1 (bii(9:s :)rzzJ6Gr*JKws|	 K(bjj);RXXFgcl F(bjj:gcl :#-2::.>#?	5  ?

 
	 	 	*,>?  g? g?T'%. D
[

#45 [
|I
$67 I
XD DNG, G,T ( ) ' ) 		
 	
 /0.0   		s    H H H 