bg\h UdZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z mZmZmZmZmZmZmZmZmZmZddlmZddlmZmZdd lmZdd lm Z d Z!Gd d e Z"de"DZ#eee$e%d<dZ&Gdde Z'dZ(ee)e%d<e dj*Z+e dj*Z,e dj-Z.e dj/Z0e dj/Z1e dj/Z2e dj/Z3dZ4ee$e%d<dZ5ee$e%d<GddeZ6e6e'j7ddZ8e6e'j9ddZ:Gd d!e;Z<Gd"d#e;Z=ej>Z?ee@e%d$<ejAd%ee)fd&ZBd'e)d(eCd%dfd)ZDereDZEn dd*lFmGZGeGZEn #eH$reDZEYnwxYwe)gd+ZIee)e%d,<ejJd-ZKeee@e%d.<ejJd/ZLeee@e%d0<d?d2ee@d3eMd%ee$eMffd4ZN d@d6e$d3eMd7eMd%e@fd8ZOGd9d:e ZPGd;d<ZQGd=d>ZRdS)Az%WebSocket protocol versions 13 and 8.N)IntEnum)Struct) AnyCallableFinalList NamedTupleOptionalPatternSetTupleUnioncast) BaseProtocol)ZLibCompressorZLibDecompressor) NO_EXTENSIONS) DataQueue) WS_CLOSED_MESSAGEWS_CLOSING_MESSAGEWS_KEYWebSocketReaderWebSocketWriter WSMessageWebSocketError WSMsgType WSCloseCodecBeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdS)riiiiiiiiiiiiN)__name__ __module__ __qualname__OK GOING_AWAYPROTOCOL_ERRORUNSUPPORTED_DATAABNORMAL_CLOSURE INVALID_TEXTPOLICY_VIOLATIONMESSAGE_TOO_BIGMANDATORY_EXTENSIONINTERNAL_ERRORSERVICE_RESTARTTRY_AGAIN_LATER BAD_GATEWAYM/opt/cloudlinux/venv/lib64/python3.11/site-packages/aiohttp/http_websocket.pyrr,sS BJNLONOOKKKr2rc,h|]}t|Sr1)int).0is r3 r8<s'D'D'D1A'D'D'Dr2ALLOWED_CLOSE_CODESicReZdZdZdZdZdZdZdZdZ dZ d Z eZ eZ eZeZeZe Ze Ze Zd S) rrr iiN)r!r"r# CONTINUATIONTEXTBINARYPINGPONGCLOSECLOSINGCLOSEDERRORtextbinarypingpongcloseclosingclosederrorr1r2r3rrHseL D F D D EG F E D F D D EG F EEEr2rs$258EAFA5-E914-47DA-95CA-C5AB0DC85B11rz!Hz!Qz!BBz!BBHz!BBQi@MSG_SIZE DEFAULT_LIMITcleZdZUeed<eed<eeed<ej dde egefdefdZdS) rtypedataextra)loadsrXreturnc"||jS)zAReturn parsed JSON data. .. versionadded:: 0.22 )rV)selfrXs r3jsonzWSMessage.jsonts uTYr2N) r!r"r#r__annotations__rr strr\rXrr1r2r3rrnst OOO III C=48J   XseSj1 3      r2rc<eZdZdZdededdffd ZdefdZxZS)rz WebSocket protocol parser error.codemessagerYNcZ||_t||dSN)r`super__init__)r[r`ra __class__s r3rezWebSocketError.__init__s*  w'''''r2cBtt|jdS)Nr)rr^argsr[s r3__str__zWebSocketError.__str__sC1&&&r2) r!r"r#__doc__r5r^rerj __classcell__)rfs@r3rrss**(S(3(4(((((('''''''''r2rceZdZdZdS)WSHandshakeErrorz#WebSocket protocol handshake error.N)r!r"r#rkr1r2r3rnrns----r2rnnative_byteorderrYc4dtdDS)Nc`g|]*tfdtdD+S)c3"K|] }|z V dSrcr1)r6abs r3 z(_xor_table...s',,A!a%,,,,,,r2r?)bytesrange)r6rts @r3 z_xor_table..s< A A AE,,,,s,,, , , A A Ar2r?)rwr1r2r3 _xor_tablerys A AeCjj A A AAr2maskrVct|ts J|t|dks J||rtfd|D\}}}}|ddd||ddd<|ddd||ddd<|ddd||ddd<|ddd||ddd<dSdS)awWebsocket masking function. `mask` is a `bytes` object of length 4; `data` is a `bytearray` object of any length. The contents of `data` are masked with `mask`, as specified in section 5.3 of RFC 6455. Note that this function mutates the `data` argument. This pure-python implementation may be replaced by an optimized version when available. c3(K|] }|V dSrcr1)r6n _XOR_TABLEs r3ruz)_websocket_mask_python..s'22jm222222r2Nrr;) isinstance bytearraylenry translate)rzrVrsrtcdrs @r3_websocket_mask_pythonrs dI & &,,,, & t99>>>4>>> -\\ 2222T222 1a1I''**SSqS !$Q$Z))!,,QTT !$Q$Z))!,,QTT !$Q$Z))!,,QTT --r2)_websocket_mask_cython)rrr_WS_DEFLATE_TRAILINGz^(?:;\s*(?:(server_no_context_takeover)|(client_no_context_takeover)|(server_max_window_bits(?:=(\d+))?)|(client_max_window_bits(?:=(\d+))?)))*$ _WS_EXT_REzpermessage-deflate([^,]+)?_WS_EXT_RE_SPLITFextstrisserverc|sdSd}d}t|D]0}|d}|sd}nt|}|rd}|r_|dr1t |d}|dks|dkrd}|drd}n|d r=t |d }|dks|dkrt d |d rd}n)|s%t d |dz2||fS) N)rFrFrr|r<TzInvalid window sizer;z#Extension for deflate not supported)rfinditergrouprmatchr5rn)rrcompress notakeoverextdefextrs r3 ws_ext_parsers xHJ((00(Y(Y1 H E  (( ! YH ;;q>>!"5;;q>>22H  "}}1 #$ ;;q>>&!%J;;q>>F"5;;q>>22H  "}}1 ./DEEE;;q>>&!%J Y"#H399UV<<#WXX X Y Z r2rrserver_notakeoverc|dks|dkrtddg}|s|d|dkr%|dt|z|r|dd|S) Nr<rzCCompress wbits must between 9 and 15, zlib does not support wbits=8zpermessage-deflateclient_max_window_bitszserver_max_window_bits=server_no_context_takeoverz; ) ValueErrorappendr^join)rrr enabledexts r3 ws_ext_genrs !||x"}} T   ''J 42333"}}3c(mmCDDD86777 99Z  r2ceZdZdZdZdZdZdS) WSParserStaterr;rr|N)r!r"r# READ_HEADERREAD_PAYLOAD_LENGTHREAD_PAYLOAD_MASK READ_PAYLOADr1r2r3rrs$KLLLr2rc eZdZ ddeedededdfdZddZd e de ee ffd Z d e de ee ffd Z d e de e eeeeeeffd ZdS)rTqueue max_msg_sizerrYNc8||_||_d|_t|_t j|_d|_d|_ d|_ t|_ d|_ d|_ d|_d|_d|_d|_d|_||_dS)NFr2r)r _max_msg_size_excr_partialrr_state_opcode _frame_fin _frame_opcode_frame_payload_tail _has_mask _frame_mask_payload_length_payload_length_flag _compressed_decompressobj _compress)r[rrrs r3rezWebSocketReader.__init__s )-1 !  #/ &* ,0'kk ,0 $%!+/:>!r2c8|jdSrc)rfeed_eofris r3rzWebSocketReader.feed_eof2s r2rVc|jrd|fS ||S#t$r,}||_|j|Yd}~dSd}~wwxYw)NT)Tr2)r _feed_data Exceptionr set_exception)r[rVexcs r3 feed_datazWebSocketReader.feed_data5sv 9 :  ??4(( (   DI J $ $S ) ) )99999 s" A!AAc , ||D]|\}}}}|r|jstd|_|tjkr!t |dkrt |ddd}|dkr&|tvrttj d| |dd d}n-#t$r }ttj d|d}~wwxYwttj||} n@|r#ttj d |d |d |ttjdd } |j| dX|tjkrC|jttj|d t ||tjkrC|jttj|d t ||tjtjfvr$|jttj d ||s|tjkr||_|j||jrbt |j|jkrEttjd t |j|j|jr=|tjkr-ttj d||tjkr|jJ|j}d|_|j||jrbt |j|jkrEttjd t |j|j|r|jJ|jt8|j|j|j} |jjrTt |jj} ttjd|j| z|jnt?|j} |j |tjkr | d} |jttj| d t | #t$r }ttj d|d}~wwxYw|jttj| d t | ~dS)NT)suppress_deflate_headerr;ri zInvalid close code: utf-8zInvalid UTF-8 text messagezInvalid close frame:  zUnexpected opcode=z Message size {} exceeds limit {}z)) $$ingr::CLL9>)) $$ingr::CLL y~y/?@@@L($.0OV0O0O H!777'- M((111)c$-.@.@DDV.V.V,'7>EE #DM 2 2D4F}!Y%;;;"0 + :!77=vf~~## !777#|777!%'+ M((111)c$-.@.@DDV.V.V,'7>EE #DM 2 2D4F">#2>>> ,,-ABBB)-)<)L)L M4+=** .>#&t':'J#K#KD"0 + ; O V V$($6$=t?Q!"!"##*/t})=)=M'')))//'#1#8#8#A#AD J00 )).$ C CSYY 2'''"0 + 8:V###&''  ,,%i&6KK// zs1*C C2C--C2 AT$$ U.U  Ubufcg}|jr|j|zdc}|_d}t|} |jtjkrF||z dkr:|||dz}|dz }|\}}|dz dz}|dz dz} |dz dz} |d z dz} |d z} | s | s | r!|jst tjd | dkr |dkrt tjd |dz dz} |d z}| dkr |dkrt tjd|j s|j | rdnd|_ n| rt tjd t||_ | |_ t| |_ ||_tj|_nn\|jtjkr|j}|dkr^||z dkrS|||dz}|dz }t!|d}||_|j r tjn tj|_nn|dkr^||z dkrS|||dz}|dz }t)|d}||_|j r tjn tj|_n-nx||_|j r tjn tj|_|jtjkr4||z d kr)|||d z|_|d z }tj|_nn|jtjkr|j}|j}||z }||kr*||z |_|||d|}n,d|_|||||z||z}|jdkrr|j r|jJt1|j|||j |j ||j ft5|_tj|_nn||d|_|S)z&Return the next frame from the socket.r2rTr;rrr|rz*Received frame with non-zero reserved bitsz!Received fragmented control frame}z5Control frame payload cannot be larger than 125 bytesNF~r>)rrrrrrrrr&rrboolrrrr UNPACK_LEN2rrr UNPACK_LEN3rrr_websocket_maskrr)r[rframes start_pos buf_lengthrV first_byte second_byterrsv1rsv2rsv3rhas_masklengthr chunk_lens r3rzWebSocketReader.parse_frames : 4"j3.OC XX J {m777 )Q..y9q=89DNI.2+J %?a/C&!Oq0D&!Oq0D&!Oq0D'#-FtT^,'6H ||q,'6? !,q 0A5H(4/F|| ,'6V$*:*B37+B44U((,'6H '+3iiDO)/D&%)(^^DN06D-"/"CDKK{m???2S==!I-22"9y1}#<=!Q !,T!2!21!5/5, $~8 77*7K{m=== )Q..'*9y1}+D'ED$NI"/"N@rrRrlr|big)rrrEConnectionResetErrorr_make_compress_objrflushrzlib Z_FULL_FLUSH Z_SYNC_FLUSHendswithrrr PACK_LEN1 PACK_LEN2 PACK_LEN3rto_bytesrr_writerrQrr _drain_helper) r[rarrrsv compressobj msg_lengthrmask_bitheadermask_intrzs r3 _send_framezWebSocketWriter._send_frameos = L&9?": L&'JKK K    6A:: 0"55h?? (O(,(?(? (N(ND%"/ '0099999999G {((%)_K!!$:K G 455 '!#2#,*C\\ =  HHH   tczF2J4IJJFF 7 # #tczF2C(NJOOFFtczF2C(NJOOF  :~~a44H$$Q..D((G D' * * * KK / 0 0 0   Vs4yy!8:!E E   H$$ F### G$$$$ FW,---   Vz!9 9    t{ * * !D ---// / / / / / / / / / + *r2cFttj| tS)N)levelwbitsmax_sync_chunk_size)rr Z_BEST_SPEEDWEBSOCKET_MAX_SYNC_CHUNK_SIZE)r[rs r3rz"WebSocketWriter._make_compress_objs'#) =    r2rVc|j|jrtd|j|dS)Nr)r is_closingrwrite)r[rVs r3rzWebSocketWriter._writesH > !T^%>%>%@%@ !&'JKK K T"""""r2r2cKt|tr|d}||tjd{VdS)zSend pong message.rN)rr^encoderrrDr[ras r3rLzWebSocketWriter.pongY gs # # .nnW--Gw 77777777777r2cKt|tr|d}||tjd{VdS)zSend ping message.rN)rr^r#rrrCr$s r3rKzWebSocketWriter.pingr%r2rJcKt|tr|d}|r)||tj|d{VdS||tj|d{VdS)rrN)rr^r#rrrBrA)r[rarJrs r3sendzWebSocketWriter.sends gs # # .nnW--G  F""7I,    #5#T#### 88%s "38d8888 88%s "38d8888"& F FsEz" F F3- F  F F F F ! ! !U5#:5F !QU ! ! ! ! ! !r2r)F)rFF)Srkr, functoolsr\rresysrenumrstructrtypingrrrrr r r r r rr base_protocolrcompression_utilsrrhelpersrstreamsr__all__rr9r5r]rrrrv unpack_fromrrunpackrpackr r rr*rQrSrrGrrFrrrrn byteorderror^ lru_cacheryrrr _websocketr ImportErrorrcompilerrrrrrrrr1r2r3rAs+++                           ('''''????????""""""      '    (E'D 'D'D'DU3s8_DDD!)0?e >>>fTll& fTll& F4LL' F5MM  F6NN  F6NN  &,,#%*! uSz!!!         Ii.d;;Yy0$=='''''Y'''.....y... #}%*,,, BDKBBBB--i-D----21,OO16666660 11101&+U+C+C+C%D%DeElDDD#-"*/## E'#, )3 3P(Q(Q% %QQQ0 0 #0 $0 5dCS0 0 0 0 hKP!!!"&!CG!!!!!,G||||||||~ L!L!L!L!L!L!L!L!L!L!s=GGG