idD&UddlZddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z m Z m Z mZmZmZmZmZmZmZmZmZddlmZmZmZddlmZddlmZdd lm Z dd l!m"Z"m#Z#dd l$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+dd l,m-Z-m.Z.dd l/m0Z0ddl1m2Z2m3Z3ddl4m5Z5m6Z6 ddl7Z7dZ8n #e9$rdZ8YnwxYwdZ:e;ej<Z=e5ee>e?d<ej@dZAe5ee>e?d<ej@dZBe5ee>e?d<ej@dZCe5eeDe?d<GddeZEejFdgdZGedeEeGZHGdd e ZIGd!d"e ZJGd#d$ZKGd%d&ejLe eHZMGd'd(eMeEZNGd)d*eMeGZOGd+d,ZPGd-d.ZQeNZReOZSeEZTeGZU e"sdd/lVmNZNmOZOmEZEmGZGeNZWeOZXeEZYeGZZdSdS#e9$rYdSwxYw)0N)suppress)IntEnum) AnyGenericList NamedTupleOptionalPatternSetTupleTypeTypeVarUnioncast) CIMultiDictCIMultiDictProxyistr)URL)hdrs) BaseProtocol) NO_EXTENSIONSBaseTimerContext)BadHttpMessage BadStatusLineContentEncodingErrorContentLengthError InvalidHeader LineTooLongTransferEncodingError) HttpVersion HttpVersion10)internal_logger) EMPTY_PAYLOAD StreamReader)Final RawHeadersTF) HeadersParser HttpParserHttpRequestParserHttpResponseParserRawRequestMessageRawResponseMessageASCIISETz[!#$%&'*+\-.^_`|~0-9A-Za-z]+METHREzHTTP/(\d+).(\d+)VERSREs'[\x00-\x1F\x7F()<>@,;:\[\]={} \t\\\\\"]HDRREceZdZUeed<eed<eed<ded<eed<eed<eeed<eed <eed <e ed <d S) r,methodpathversionCIMultiDictProxy[str]headers raw_headers should_close compressionupgradechunkedurlN) __name__ __module__ __qualname__str__annotations__r!r'boolr rH/opt/cloudlinux/venv/lib/python3.11/site-packages/aiohttp/http_parser.pyr,r,Ks} KKK III  $$$$# MMM MMM HHHHHrEr,r-) r5codereasonr7r8r9r:r;r<_MsgTceZdZdZdZdZdZdS) ParseStaterrN)r>r?r@ PARSE_NONE PARSE_LENGTH PARSE_CHUNKEDPARSE_UNTIL_EOFrDrErFrKrKks"JLMOOOrErKc"eZdZdZdZdZdZdZdS) ChunkStaterrrLrMN)r>r?r@PARSE_CHUNKED_SIZEPARSE_CHUNKED_CHUNKPARSE_CHUNKED_CHUNK_EOFPARSE_MAYBE_TRAILERSPARSE_TRAILERSrDrErFrSrSss+NNNrErSc ZeZdZ d dedededdfdZd eeded effd Z dS) r( max_line_size max_headersmax_field_sizereturnNc0||_||_||_dSN)r]r^r_)selfr]r^r_s rF__init__zHeadersParser.__init__|s" +&,rElinesr6c .t}g}d}|d}t|}|r |dd\}}n#t$rt |dwxYw|d}|}t|rt |t||j krdtd | ddt|j tt|t|} |dz }||}|o |ddv} | r|g} | r| t|z } | |j krWtd | ddt|j t| | ||dz }||kr||}|r |ddv} nd }n| d | }nb| |j krWtd | ddt|j t| |}| d d } | d d } || | |||f|t#|t%|fS) Nr:s zrequest header name {}utf8xmlcharrefreplacer) zrequest header field {}rEutf-8surrogateescape)rlensplit ValueErrorrstriplstripr1searchr_rformatdecoderAappendjoinaddrtuple)rcrer7r8 lines_idxline line_countbnamebvalue header_length continuation bvalue_lstnamevalues rF parse_headerszHeadersParser.parse_headerssH%0MM  QxZZ D 0 4 $ 4 3 3 vv 4 4 4#D))t3 4KK''E]]__F||E"" +#E***5zzD///!,33 V-@AA+,,E OO  KKM NI#D 6DGw$6L $X "!SYY.M$t':::)5<< % V5H I I  344 .. %%d+++NI :--$Y/>+/7g+=L")#**-- 4#666%188!LL1DEED/00M** \\^^F<<):;;DMM'+<==E KKe $ $ $   v / / /ID 0L!))5+=+=>>s AA#)r[r\r[) r>r?r@intrdrbytesr r'rrDrErFr(r({s" " ---- -  ----P?%[P? & 2 3P?P?P?P?P?P?rEr(ceZdZ d'deedeejd ed ed ed ed eedeedee de dee e de de de ddfdZ ejdeedefdZdeefdZddejejejfdedededed e d!edeeeeefe effd"Zdeeded#eee ee e e ffd$Zd%e ddfd&ZdS)(r)Nr[r\FTprotocollooplimitr]r^r_timerrGr3readallpayload_exceptionresponse_with_bodyread_until_eofauto_decompressr`c<||_||_||_||_||_||_||_| |_| |_| |_ | |_ | |_ g|_ d|_ d|_d|_d|_||_||_t'||||_dS)NrEF)rrr]r^r_rrGr3rrrr_lines_tail _upgraded_payload_payload_parser_auto_decompress_limitr(_headers_parser)rcrrrr]r^r_rrGr3rrrrrs rFrdzHttpParser.__init__s"!  *&,    !2"4,#%   <@ / ,]KXXrErecdSrbrD)rcres rF parse_messagezHttpParser.parse_messages rEc|j!|jd|_n|jr|j|j|jrq|jddkr|jdt t 5||jcdddS#1swxYwYdS)Nz rE)rfeed_eofrrrvr Exceptionrrcs rFrzHttpParser.feed_eofs   +  ) ) + + +#'D z / ""4:...{ ;;r?f,,K&&s+++i((;;--dk::;;;;;;;;;;;;;;;;tsB<<CC rEdataSEPEMPTYCONTENT_LENGTH METH_CONNECTSEC_WEBSOCKET_KEY1c Vg}|jr|j|zdc}|_t|}d} |j} | |kr|j|js||| } | | kr |js| dz} @| | kr~|j|| | | dz} |jd|krC ||j|j n#|j wxYwdttffd } | } |j vrt|j|_td|j}|jJ| | dksjrnjsgt'|j|j| |j}t-|| j|j|j|j|j|j }|js||_n||krit;t<sJt'|j|j| |j}d |_t-|jjd |j |_ntd d dkrk| i|jrbt'|j|j| |j}t-|| j|j|jd |j|j }|js||_nt@}||fn || d|_|}n|j|jr |jrJn|r| |kr|jrJ|jJ |j!|| d\}}n#tD$rt}|j#@|jj$%|#tM|n|jj$%|d }d}Yd}~nd}~wwxYw|rd} t|}d|_nn| |k|r| |kr || d}n|}||j|fS)NrErrLrr`cj}|dS t|}n#t$rt wxYw|dkrt |S)Nr)r7getrrpr) length_hdrlengthrmsgs rFget_content_lengthz0HttpParser.feed_data..get_content_length?s),)H)HJ)1'+tD),Z#-DDD&3N&C&C CD &zz&3N&C&C C#)Ms 1A r3)rrr)rr<r3r:rGrrrT)r3r:rrrGd)'rrnrrrfindrrvrclearr rr7rr;getattrr3rr<r%rrHttpPayloadParserr:rGrrrdone isinstancer,rr$ feed_data BaseExceptionrpayload set_exceptionrA)rcrrrrrrmessagesdata_len start_posrposrrr3rpayload_parsereofexcrs ` @rFrzHttpParser.feed_datas' : 6#zD0# D$*t99 y(""#+DN+iiY//)##DK# #aI)##K&&tIcM':;;; #aI{2%//0)-););DK)H)HC K--////DK--////*HSM******* "4!3!5!5-<<"/0B"C"CC),!(h !D!D#}888$/FQJJ"{5?$'K5?'3 $ &*j%)&*k '''G .? ''-(+ '-,/O%)Y(, 373J040E . . .N$2#6F7E 4#|33#-c3D#E#EEEE&2 $ &*j%)&*k '''G .2DN3D ''*z,/O(,040E 444D00!(VS 9 9S @ @$*N$($7%3+7$(M*.*)-*.+ +"+"+" 2C$++1,/K+103)-,07;7N484I 2" 2" 2"(6':!J;ID$8*7 g777!%ijj!1DJ D%-$.-;&&& )h..;&&&+777  $ 4 > >tIJJ?O P PIC$   -9,4BB 223s88<<,4BB3GGGCDDDDDD  !I"4yyH+/D(  q(""t  I(( #DDD--s%7C++D%M&& O$0A*OO$r6c@|j|\}}d}d}d}d}|tj}|r.|} | dkrd}n| dkrd}n| dkrd}|tj} | r| } | dvr| }|tj} | Gd| krd}ntd tj |vrtd ||||||fS) 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. NFcloseTz keep-aliver;)gzipdeflatebrr<z'Request has invalid `Transfer-Encoding`z6Content-Length can't be present with Transfer-Encoding) rrrr CONNECTIONlowerCONTENT_ENCODINGTRANSFER_ENCODINGrr) rcrer7r8 close_connencodingr;r<connvenctes rFrzHttpParser.parse_headerssE $3AA%HH {{4?++   AG||! l""" ikk$/00  ))++C///[[/ 0 0 >BHHJJ&&$%NOOO"g--$Lj(GWMMrEvalc||_dS)zZSet connection upgraded (to websocket) mode. :param bool val: new state. N)r)rcrs rF set_upgradedzHttpParser.set_upgradeds rE)NNrr[r\r[NNNFNTFT) r>r?r@r rasyncioAbstractEventLooprrrArCr rrdabcabstractmethodrrrIrrrrrrrr r%rr'rrrDrErFr)r)s,048! ",0" $;?#'$ $%Y%Y<(%Yw01%Y %Y  %Y  %Y%Y()%Ysm%Y %Y%Y$D$78%Y!%Y%Y%Y !%Y%Y%Y%YN  4; 5    (5/&#2 -#'#:r.r.r.r. r.  r.  r.!r. tE%-./u< =r.r.r.r.h/N%[/N Xd^Xc]DRVV /N/N/N/NbrEr)c.eZdZdZdeedefdZdS)r*zRead request status line. Exception .http_exceptions.BadStatusLine could be raised in case of any errors in status line. Returns RawRequestMessage. rer`c p|ddd} |dd\}}}n#t$rt|dwxYwt ||jkr=t dt|jtt |t |st| | drL|dddd \}}tt|t|}nt|n#t$rt|wxYw|d krtj|d } nq| d rK|d\} } } | d\} } }tj| || d } nt|d } ||\}}}}}}||t$krd }nd}t'|||||||||| S)NrrlrmrLStatus line is too longzHTTP/.rCONNECTT) authorityencoded/#?)r4 query_stringfragmentr)rF)rurorprrnr]rrAr/match startswithr!rrrbuild partitionrr"r,)rcrer{r3r4r5n1n2 version_or= path_part_hash_separator url_fragment_question_mark_separatorqs_partr7r8rr:r;r<s rFrzHttpRequestParser.parse_message sQxw(9:: 0$(JJtQ$7$7 !FD'' 0 0 0%%4 / 0 t99t) ) ))3t/A+B+BCD NN  ||F## ('' ' )!!'** - **322B'BR99 #G,,, ) ) )(( ( ) Y  )dD999CC __S ! ! *8<~~c7J7J 4I ;D;N;Ns;S;S 8I/ )$% CCdD)))C   u % %       =M))             s9AA0EE!N)r>r?r@__doc__rrr,rrDrErFr*r*sMO 4;O 3DO O O O O O rEr*c.eZdZdZdeedefdZdS)r+zRead response status line and headers. BadStatusLine could be raised in case of any errors in status line. Returns RawResponseMessage. rer`c |ddd} |dd\}}n#t$rt|dwxYw |dd\}}n#t$rd}YnwxYwt ||jkr=t dt|jtt |t |}|t|tt| dt| d} t|}n#t$rt|dwxYw|dkrt|| |\} } } } } }| |tk} t|||| | | | | | S) NrrlrmrrrLi)rurorprrnr]rrAr0rr!rgrouprr"r-rq)rcrer{r5statusrHrrstatus_ir7r8rr:r;r<s rFrz HttpResponseParser.parse_messagecs Qxw(9:: 0"jjq11OGVV 0 0 0%%4 / 0 #\\$22NFFF   FFF  v;;+ + +)3t/A+B+BCF DTDT   W%% =%% %EKKNN 3 3SQ5H5HII  06{{HH 0 0 0%%4 / 0 c>>%% %   u % %       =.E!   LLNN         s'8AA11 B?BE$$E?N)r>r?r@rrrr-rrDrErFr+r+\sE 7 4;7 3E7 7 7 7 7 7 rEr+ceZdZ ddedeededeedeed eed ed ed ed dfdZddZ dde de de d e ee ffdZ dS)rNFTrrr<r:rGr3rrrr`c d|_tj|_tj|_d|_d|_| |_ d|_ |r|r|j rt||} n|} |s-tj|_| d|_ n|rtj |_n|?tj|_||_|jdkr| d|_ n^|r|dkrtj|_nD|dvr@t!jdtj|_| d|_ | |_dS)NrrEFT)PUTPOSTz6Content-Length or Transfer-Encoding header is required)_lengthrKrN_typerSrU_chunk _chunk_size _chunk_tailrr DeflateBufferrrPrOrQr#warningr) rcrrr<r:rGr3rrr real_payloads rFrdzHttpPayloadParser.__init__sh *  3  /   #+ #$2G #?L@@LL#L" !#.DJ  ! ! # # #DII  !#1DJJ  #0DJ!DL|q  %%'''   !43;;'7 ?**'L(2 %%'''  # rEc|jtjkr|jdS|jtjkrt d|jtjkrtddS)Nz2Not enough data for satisfy content length header.z3Not enough data for satisfy transfer length header.) rrKrQrrrOrrPr rs rFrzHttpPayloadParser.feed_eofs :3 3 3 L ! ! # # # # # Z:2 2 2$D Z:3 3 3'E 4 3rEr;chunkr CHUNK_EXTc|jtjkr|j}t |}||krM||z |_|j|||jdkr|jdSnd|_|j|d|||jd||dfS|jtjkr#|j r|j |z}d|_ |r|j tj kr"| |}|dkr| |d|}|dkr |d|}n |d|} tt|d} nV#t $rIt#|d|dd} |j| | dwxYw||dzd}| dkrtj|_ n;tj|_ | |_|jn ||_ d S|j tjkr|j}t |}||kr'||z |_|j||d Sd|_|j|d||||d}tj|_ |j|j tjkr3|dd|kr|dd}tj |_ n ||_ d S|j tjkra|dd} | |kr%|jd|ddfS| sd S| |dd kr | |_ d Stj|_ |j tjkrC| |}|dkr||dzd}tj|_ n ||_ d S|n=|jtjkr(|j|t |d S) Nr)TrETrEasciirmrL)FrEr)rrKrOrrnrrrrPrrrSrUrrrrpr rurrXrVrbegin_http_chunk_receivingrWend_http_chunk_receivingrYrQ) rcrrr required chunk_lenrisize_bsizerheads rFrzHttpPayloadParser.feed_datasi :0 0 0|HE I9$$')3  &&ui888<1$$L))+++$9% !  &&uYhY'7BBB %%'''U899---Z:3 3 3 '(50#& W *;*"???**S//Caxx!JJy!S9966%*2A2YFF%*4C4[F0#&uV}}b#9#9DD)000"7 %dsd 2 27r?r@r%r rrCrArdrrr rrDrErFrrs"!%%)" $#' $6$6$6$ 6$ 6$ c] 6$ sm 6$ 6$6$!6$6$ 6$6$6$6$p    FJwww!&w=Bw tU{ wwwwwwrErczeZdZUdZeed<dedeeddfdZ de ddfd Z d e d e ddfd Zdd ZddZddZdS)rzDDeflateStream decompress stream and feed data into specified stream. decompressoroutrr`Nc(||_d|_||_d|_|dkr4tst dGdd}||_dS|dkrdtjzn tj}tj | |_dS) NrFrzECan not decode content-encoding: brotli (br). Please install `Brotli`c2eZdZddZdedefdZdefdZdS)-DeflateBuffer.__init__..BrotliDecoderr`Nc6tj|_dSrb)brotli Decompressor_objrs rFrdz6DeflateBuffer.__init__..BrotliDecoder.__init__rs & 3 5 5DIIIrErct|jdr-tt|j|Stt|j|S)N decompress)hasattrrrrr!process)rcrs rFr!z8DeflateBuffer.__init__..BrotliDecoder.decompressusWty,77G#E49+?+?+E+EFFFty'8'8'>'>???rEct|jdr,tt|jSdS)NflushrE)r"rrrr%rs rFr%z3DeflateBuffer.__init__..BrotliDecoder.flushzs7ty'22>#E49??+<+<===3rEr)r>r?r@rdrr!r%rDrErF BrotliDecoderrnsk6666@5@U@@@@ 5rEr&rr wbits) rrr_started_decoding HAS_BROTLIrrzlib MAX_WBITS decompressobj)rcrrr& zlib_modes rFrdzDeflateBuffer.__init__as   !& t   *.         "!. D   /76/A/AT^++t~I $ 2 C C CD   rErc:|j|dSrb)rr)rcrs rFrzDeflateBuffer.set_exceptions s#####rErrc|sdS|xj|z c_|js?|jdkr4|ddzdkr%tjtj |_ |j|}n%#t$rtd|jzwxYwd|_|r*|j |t|dSdS)Nrrr'z#Can not decode content-encoding: %sT) rr)rr+r-r,rr!rrrrrn)rcrrs rFrzDeflateBuffer.feed_datas  F T & J **a3!##!% 2$. I I ID  %0077EE   &5 E   "&  2 H  uc%jj 1 1 1 1 1 2 2s A77"Bc |j}|s |jdkrN|j|t ||jdkr|jjstd|j dS)Nrr) rr%rrrrnrrrr)rcrs rFrzDeflateBuffer.feed_eofs!''))  6DIMM H  uc%jj 1 1 1} ))$2C2G)*9555 rEc8|jdSrb)rr rs rFr z(DeflateBuffer.begin_http_chunk_receivings ++-----rEc8|jdSrb)rrrs rFrz&DeflateBuffer.end_http_chunk_receivings ))+++++rEr)r>r?r@rrrBr%r rArdrrrrrrr rrDrErFrr\sNN!DL!DHSM!Dd!D!D!D!DF$$4$$$$2u2C2D2222<....,,,,,,rEr)r*r+r,r-)[rr collectionsrestringr+ contextlibrenumrtypingrrrrr r r r r rrr multidictrrryarlrrr base_protocolrhelpersrrhttp_exceptionsrrrrrrr http_writerr!r"logr#streamsr$r%typedefsr&r'rr* ImportError__all__set printabler.rArBcompiler/r0r1rr, namedtupler-rIrKrSr(ABCr)r*r+rrHttpRequestParserPyHttpResponseParserPyRawRequestMessagePyRawResponseMessagePy _http_parserHttpRequestParserCHttpResponseParserCRawRequestMessageCRawResponseMessageCrDrErFrUs                              :999999999''''''4444444443333333 00000000''''''''MMMJJJJJ  C 011%C/111)bj)HIIgclIII(bj)<==gcl===)rz*UVVuWU^VVV         ,[+      *,>??[?[?[?[?[?[?[?[?|fffff'%.fffR W W W W W #45W W W t> > > > > $67> > > B||||||||~W,W,W,W,W,W,W,W,t()')  1            /0.0 1 1   DD s$BB('B(-HHH