bgHUddlZddlZddlZddlZddlZddlZddlmZmZm Z m Z m Z m Z ddl Z ddlmZddlmZddlmZddlmZmZddlmZmZmZmZmZmZmZmZm Z m!Z!m"Z"dd l#m$Z$dd l%m&Z&m'Z'dd l(m)Z)m*Z*dd l+m,Z,m-Z-dd l.m/Z/ddl0m1Z1ej2dkrddlZ3nddl3Z3dZ4dZ5ee6e7d<e j8dddGddZ9Gdde1Z:dS)N)AnyFinalIterableOptionalTuplecast) CIMultiDict)hdrs)AbstractStreamWriter) call_later set_result) WS_CLOSED_MESSAGEWS_CLOSING_MESSAGEWS_KEYWebSocketErrorWebSocketReaderWebSocketWriter WSCloseCode WSMessage WSMsgType ws_ext_gen ws_ext_parse) ws_logger) EofStreamFlowControlDataQueue) JSONDecoder JSONEncoder)HTTPBadRequest HTTPException) BaseRequest)StreamResponse) )WebSocketResponseWebSocketReadyrTHRESHOLD_CONNLOST_ACCESST) auto_attribsfrozenslotsc<eZdZUeed<eeed<defdZdS)r&okprotocolreturnc|jSN)r-selfs E/opt/cloudlinux/venv/lib64/python3.11/site-packages/aiohttp/web_ws.py__bool__zWebSocketReady.__bool__6s wN)__name__ __module__ __qualname__bool__annotations__rstrr5r6r4r&r&1sJ HHHsm$r6r&ceZdZdZdddddddddded eed ed ed eed eedede ddffdZ dCdZ dCdZ dCdZ dCdZdedeffd ZdededeeeffdZdedeeeffdZdedededdfdZdedefdZedefdZedee fd Zedeefd!Zedefd"ZdDd#ed$edefd%Zdee fd&Z!dEd(e"ddfd)Z#dEd(e"ddfd*Z$dDd+edeeddfd,Z%dDd+e"deeddfd-Z& dDe'j(d.d+edeed/e)ddfd0Z*dCd1Z+e,j-d'dd2d3e d(e"d4edefd5Z.d3e,ddfd6Z/dDdeede0fd7Z1dd8deedefd9Z2dd8deede"fd:Z3e'j4dd;dZ7dFd?Z8de0fd@Z9dAe ddfdBZ:xZ;S)Gr%Fg$@NTr=i@)timeoutreceive_timeout autocloseautoping heartbeat protocolscompress max_msg_sizer?r@rArBrCrDrErFr/c|td||_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ ||_ ||_||_||_||_d|_| |dz |_d|_||_||_dS)Ne)statusFrg@)super__init__ _protocols _ws_protocol_writer_reader_closed_closing _conn_lost _close_code_loop_waiting _exception_timeout_receive_timeout _autoclose _autoping _heartbeat _heartbeat_cb_pong_heartbeat_pong_response_cb _compress _max_msg_size) r3r?r@rArBrCrDrErF __class__s r4rKzWebSocketResponse.__init__>s $$$#+/26 BF   *.:> 8< 37 /#!#<@  #,s?D @D!)r6c|j |jd|_|j"|jd|_dSdSr1)r^cancelr\r2s r4_cancel_heartbeatz#WebSocketResponse._cancel_heartbeatbs\  ! -  " ) ) + + +%)D "   )   % % ' ' '!%D    * )r6c||jJ|jJt|j|j|j|j|jjjnd|_dSdSNr')timeout_ceil_threshold) rdr[rTr _send_heartbeat_req _protocol_timeout_ceil_thresholdr\r2s r4_reset_heartbeatz"WebSocketResponse._reset_heartbeatksz    ? &:)))!+$ 9((,y':'R'R """D    ' &r6c\|j|js|jJ|j|j|j|jt|j |j |j|j |j j j nd|_dSdSdSrf)r[rPrT create_taskrNpingr^rcr _pong_not_receivedr]rirjrkr2s r4rhz!WebSocketResponse._send_heartbeatys ? &t| &:))) J " "4<#4#4#6#6 7 7 7%1&--///%/'$ 9((,y':'R'R &&&D " " " ' & & &r6c|jL|jjBd|_|tjt j|_dSdSdS)NT) ri transportrP_set_code_close_transportrABNORMAL_CLOSUREasyncio TimeoutErrorrVr2s r4rpz$WebSocketResponse._pong_not_receivedsT 9 TY%8%DDL  * *;+G H H H%244DOOO ! %D%Dr6requestcK|j|jS||\}}t|d{V}|J|||||d{V|Sr1)_payload_writer _pre_startrJprepare _post_startdrain)r3rwr.writerpayload_writerras r4r{zWebSocketResponse.prepares   +' '??733&$www77777777))) (F333""$$$$$$$$$r6zCIMultiDict[str]cp|j}d|tjdkr@t d|tjd|tjdvr@t d|tjd}tj |vr\d|tj  dD}|D]}||j vr|}ntj d ||j |tjd}|d vrt d ||tj} |r%t!t#j|d krt d |n'#t&j$rt d |dwxYwt#jt-j|t2z}t9tjdtjdtj|i} d} d} |jrV|tj} tA| d\} } | r!tC| d| } | | tj<|r|| tj <| || | fS)N websocketz@No WebSocket UPGRADE hdr: {} Can "Upgrade" only to "WebSocket".)textupgradezNo CONNECTION upgrade hdr: {}cPg|]#}t|$Sr=)r<strip).0protos r4 z0WebSocketResponse._handshake..s8EKKMM""r6,u8Client protocols %r don’t overlap server-known ones %r)1387zUnsupported version: zHandshake error: FrT)isserver)rErserver_notakeover)"headersgetr UPGRADElowerrrformat CONNECTIONSEC_WEBSOCKET_PROTOCOLsplitrLrwarningSEC_WEBSOCKET_VERSIONSEC_WEBSOCKET_KEYlenbase64 b64decodebinasciiError b64encodehashlibsha1encoderdigestdecoder SEC_WEBSOCKET_ACCEPTr_SEC_WEBSOCKET_EXTENSIONSrr)r3rwrr. req_protocolsrversionkey accept_valresponse_headers notakeoverrE extensions enabledexts r4 _handshakezWebSocketResponse._handshakesg/ '++dlB77==??EEGG G G 5&T\2233   GKK<<BBDD D D 4;;KK00   &' 1 1$T%@AGGLLM '  DO++$HE, !N!O++d8"== * * * &Gg&G&GHHH Hkk$011 M G#f.s3344::$*Ec*E*EFFFF;~ M M M &A#&A&ABBB L M% L. / / 6 6 8 8  &(( ' k):     > M T%BCCJ$0 T#J#J#J Hj M'%  CM !>?  E||_||_||j}|Jt |jd||_|jt|j|j |j |j ddS)Ni)looprEF) rMrNrlrTrrjrOr. set_parserrr`r_ keep_alive)r3rwr.r~rs r4r|zWebSocketResponse._post_starts%  z+G,=u4PPP ## DL$*  >N$  N''g666r6c|jSr1)rVr2s r4 exceptionzWebSocketResponse.exception<s r6r6messagecvK|jtd|j|d{VdSNCall .prepare() first)rNrror3rs r4rozWebSocketResponse.ping?sK < 677 7l(((((((((((r6cvK|jtd|j|d{VdSr)rNrpongrs r4rzWebSocketResponse.pongDsK < 677 7l(((((((((((r6datacK|jtdt|tst dt |z|j|d|d{VdS)Nrzdata argument must be str (%r)FbinaryrE)rNr isinstancer< TypeErrortypesendr3rrEs r4send_strzWebSocketResponse.send_strJs < 677 7$$$ K?? PADJJNOO OlTHEEEEEEEEEEEr6)dumpsrcVK||||d{VdS)Nr)r)r3rrErs r4 send_jsonzWebSocketResponse.send_jsonXs>mmEE$KK(m;;;;;;;;;;;r6cK|jrdS|jtd|d{Vd|_dS)NzResponse has not been startedT) _eof_sentryrcloser2s r4 write_eofzWebSocketResponse.write_eofasX >  F   '>?? ?jjllr6)coderr}rr}cK|jtd||j}|J|j/|js(|td|jd{V|jrdSd|_ |j||d{V|j }|J|r| d{Vnx#tj tj f$r!|tjt"$r1}||_|tjYd}~dSd}~wwxYw|jrdS|j}|J t)j|j4d{V|d{V}dddd{Vn#1d{VswxYwYnl#tj $r!|tjt"$r1}||_|tjYd}~dSd}~wwxYw|jt2jkr||jdS|tjtj |_dS)zClose websocket connection.NrrFT)rNrrdrOrUrP feed_datarrryr}ruCancelledErrorrvrsrrt ExceptionrVrQ async_timeoutr?rWreadrrCLOSEr)r3rrr}readerr~excmsgs r4rzWebSocketResponse.closejse < 677 7    !!! = $T\ $   / 3 3 3-        < 5  ,$$T733 3 3 3 3 3 3 3)F%%% %llnn$$$$$$$&(<=     * *;+G H H H    !DO  * *;+G H H H44444  = 4!!! $,T];; * * * * * * * *"KKMM)))))) * * * * * * * * * * * * * * * * * * * * * * * * * * *%     * *;+G H H H    !DO  * *;+G H H H44444  8y & &  * *38 4 4 44 &&{'CDDD!.00tsV?ACAD= &D88D=F34F!F3! F++F3.F+/F338H+&HHc~||_|j,|jj"|jjdSdSdS)z+Set the close code and close the transport.N)rSrirrr)r3rs r4rsz+WebSocketResponse._set_code_close_transportsG 9 TY%8%D I  % % ' ' ' ' ' ! %D%Dr6cK|jtd|j}|J |jtd|jr6|xjdz c_|jt krtdtS|jrtS | |_ tj |p|j 4d{V|jd{V}dddd{Vn#1d{VswxYwY||j}t!|dd|_n##|j}t!|dd|_wxYwnP#t"jt"jf$r!|t*jt.$rIt*j|_|d{Vt7t8jddcYSt<$rR}|j|_||jd{Vt7t8j |dcYd}~Sd}~wtB$r^}||_"d|_t*j|_|d{Vt7t8j |dcYd}~Sd}~wwxYw|j#t8j$kr>d|_|j%|_|js#|j&r|dd{Vny|j#t8j'krd|_n\|j#t8j(kr)|j)r"|*|j%d{V7|j#t8j+kr |j)rU|S) NrTz+Concurrent call to receive() is not allowedr zWebSocket connection is closed.)rF)r}),rOrrTrUrPrRr(rrQr create_futurerr?rXrrlrrurrvrsrrtrOKrSrrrCLOSEDrrERRORrrVrrrrYCLOSINGPINGrZrPONG)r3r?rrwaiterrs r4receivezWebSocketResponse.receivesL < 677 7z: }("#PQQQ| *1$?&???&'HIII(( *)) = $ 2 2 4 4 ),4W5U@UVV88888888$(L$5$5$7$7777777888888888888888888888888888))+++!]Fvt,,,$(DMM"]Fvt,,,$(DM((((M*G,@A   ..{/KLLL ? ? ?#.> jjll""""""" !14>>>>>! = = =#&8 jjchj///////// #t<<<<<<<< = = ="% $ #.#? jjll""""""" #t<<<<<<<<  =x9?** $ #&8 |22 **5*111111111Y... $ Y^+++ii)))))))))Y^+++JsuE!!D8 C4"D84 C>>D8C>D8E8 EEB J*) J*2AH?9J*? J* AJ%J*%J*r?cK||d{V}|jtjkr-t d|j|jtt|jS)Nz.Received message {}:{!r} is not WSMsgType.TEXT) rrrTEXTrrrrr<r3r?rs r4 receive_strzWebSocketResponse.receive_strszLL)))))))) 8y~ % %@GGHch  C"""r6cK||d{V}|jtjkr t d|jd|jdt t|jS)NzReceived message :z is not bytes)rrrBINARYrrrrrs r4 receive_byteszWebSocketResponse.receive_bytessqLL)))))))) 8y' ' 'TTT38TTTUU UE38$$$r6)loadsr?rcTK||d{V}||S)Nr)r)r3rr?rs r4 receive_jsonzWebSocketResponse.receive_jsons>%%g%66666666uT{{r6c$Ktd)Nz"Cannot call .write() for websocket)r)r3rs r4writezWebSocketResponse.writes?@@@r6c|Sr1r=r2s r4 __aiter__zWebSocketResponse.__aiter__s r6cK|d{V}|jtjtjtjfvrt |Sr1)rrrrrrStopAsyncIteration)r3rs r4 __anext__zWebSocketResponse.__anext__ sLLLNN"""""" 8 ):I2222X HSM   X !Xc]!!!X!$X 7 73 7 7 7 7 7 78M2))%)$)))) ))%)$)))) GG3G(4.GDGGGGFFUFhtnFPTFFFF$(< "Z <<<<4.<  <  <<<<)^cQU99996;9JN9 9999v(k(d(((( @@Xe_@ @@@@D?C###HUO#s####AE%%%huo%%%%%'+jT#;CE?  AA$AAAA ,=,T,,,,,,,,r6r%);rurrrrsystypingrrrrrrattr multidictr rr abcr helpersr rhttprrrrrrrrrrrlogrstreamsrrtypedefsrrweb_exceptionsrr web_requestr! web_responser" version_infor__all__r(rr;sr&r%r=r6r4r,s  >>>>>>>>>>>>>>>> !!!!!!%%%%%%++++++++                          44444444........99999999$$$$$$((((((w#####  )*5:)))T$d33343W,W,W,W,W,W,W,W,W,W,r6