idBUddlZddlZddlZddlZddlZddlmZmZmZm Z m Z ddl Z ddl Z ddl mZddlmZddlmZddlmZmZddlmZmZmZmZmZmZmZmZmZm Z m!Z!dd l"m#Z#dd l$m%Z%m&Z&dd l'm(Z(m)Z)m*Z*dd l+m,Z,m-Z-dd l.m/Z/ddl0m1Z1dZ2dZ3e(e4e5d<e j6dddGddZ7Gdde1Z8dS)N)AnyIterableOptionalTuplecast) 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)Final JSONDecoder JSONEncoder)HTTPBadRequest HTTPException) BaseRequest)StreamResponse)WebSocketResponseWebSocketReadyrTHRESHOLD_CONNLOST_ACCESST) auto_attribsfrozenslotsc<eZdZUeed<eeed<defdZdS)r$okprotocolreturnc|jSN)r+selfs C/opt/cloudlinux/venv/lib/python3.11/site-packages/aiohttp/web_ws.py__bool__zWebSocketReady.__bool__1s wN)__name__ __module__ __qualname__bool__annotations__rstrr3r4r2r$r$,sJ HHHsm$r4r$cVeZdZdZdddddddddded eed ed ed eed eedede ddffdZ d>dZ d>dZ d>dZ d>dZdedeffd ZdededeeeffdZdedeeeffdZdedededdfdZdedefdZedefdZedee fd Zedeefd!Zedefd"Zdeefd#Zd?d%e ddfd&Z!d?d%e ddfd'Z"d@d(edeeddfd)Z#d@d(e deeddfd*Z$ d@e%j&d+d(e'deed,e(ddfd-Z)d>d.Z*e+j,d$d/d0e d%e defd1Z-d@deede.fd2Z/dd3deedefd4Z0dd3deede fd5Z1e%j2dd6d7e3deede'fd8Z4d(e ddfd9Z5dAd:Z6de.fd;Z7dr?r@rArBrCrDr-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) r1r=r>r?r@rArBrCrD __class__s r2rIzWebSocketResponse.__init__9s $$$#+/26 BF   *.:> 8< 37 /#!#<@  #,s?D @D!)r4c|j |jd|_|j"|jd|_dSdSr/)r\cancelrZr0s r2_cancel_heartbeatz#WebSocketResponse._cancel_heartbeat]s\  ! -  " ) ) + + +%)D "   )   % % ' ' '!%D    * )r4c||j't|j|j|j|_dSdSr/)rbrYr _send_heartbeatrRrZr0s r2_reset_heartbeatz"WebSocketResponse._reset_heartbeatfsJ    ? &!+$dotz""D    ' &r4c|j|jsz|j|j|j|jt|j |j |j|_dSdSdSr/) rYrNrR create_taskrLpingr\rar _pong_not_receivedr[r0s r2rdz!WebSocketResponse._send_heartbeatos ? &t| & J " "4<#4#4#6#6 7 7 7%1&--///%/')=tz&&D " " " ' & & &r4c|j\|jjRd|_tj|_t j|_|jj dSdSdS)NT) _req transportrNrABNORMAL_CLOSURErQasyncio TimeoutErrorrTcloser0s r2riz$WebSocketResponse._pong_not_received}sa 9 TY%8%DDL*;D %244DO I  % % ' ' ' ' ' ! %D%Dr4requestcK|j|jS||\}}t|d{V}|||||d{V|Sr/)_payload_writer _pre_startrHprepare _post_startdrain)r1rqr,writerpayload_writerr_s r2ruzWebSocketResponse.prepares   +' '??733&$www77777777 (F333""$$$$$$$$$r4zCIMultiDict[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 r2 z0WebSocketResponse._handshake..s8EKKMM""r4,u8Client protocols %r don’t overlap server-known ones %r)1387zUnsupported version: zHandshake error: FrT)isserver)rCrserver_notakeover)"headersgetr UPGRADElowerrrformat CONNECTIONSEC_WEBSOCKET_PROTOCOLsplitrJrwarningSEC_WEBSOCKET_VERSIONSEC_WEBSOCKET_KEYlenbase64 b64decodebinasciiError b64encodehashlibsha1encoderdigestdecoderSEC_WEBSOCKET_ACCEPTr]SEC_WEBSOCKET_EXTENSIONSrr)r1rqrr, req_protocolsrversionkey accept_valresponse_headers notakeoverrC extensions enabledexts r2 _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?? PADJJNOO OlTHEEEEEEEEEEEr4)dumpsrcVK||||d{VdS)Nr)r)r1rrCrs r2 send_jsonzWebSocketResponse.send_json=s>mmEE$KK(m;;;;;;;;;;;r4cK|jrdS|jtd|d{Vd|_dS)NzResponse has not been startedT) _eof_sentrsrrpr0s r2 write_eofzWebSocketResponse.write_eofFsX >  F   '>?? ?jjllr4)coderrcPK|jtd||j}|j/|js(|td|jd{V|jsd|_ |j||d{V|j }| d{Vn\#tj tj f$rtj|_t"$r#}tj|_||_Yd}~dSd}~wwxYw|jrdS|j} t)j|j4d{V|d{V}dddd{Vn#1d{VswxYwYnP#tj $rtj|_t"$r#}tj|_||_Yd}~dSd}~wwxYw|jt2jkr|j|_dStj|_tj |_dSdS)NrrTF)rLrrbrMrSrN feed_datarrprsrwrnCancelledErrorrorrmrQ ExceptionrTrO async_timeoutr=rUreadrrCLOSEr)r1rrreaderrxexcmsgs r2rpzWebSocketResponse.closeOs < 677 7     = $T\ $   / 3 3 3-       |' DL l((w777777777-llnn$$$$$$$$*G,@A   #.#?    #.#? "%ttttt  } t\F (0??........ & ------C...........................)   #.#?    #.#? "%ttttt  x9?**#&8 t*;D %244DO45sU:AB==6D3DD*F E6$F6 FFFF*G2GGcK|jtd|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|_wxYwnB#t"jt"jf$rt(j|_t.$rIt(j|_|d{Vt5t6jddcYSt:$rR}|j|_||jd{Vt5t6j|dcYd}~Sd}~wt@$r^}||_!d|_t(j|_|d{Vt5t6j|dcYd}~Sd}~wwxYw|j"t6j#kr jjll""""""" !14>>>>>! = = =#&8 jjchj///////// #t<<<<<<<< = = ="% $ #.#? jjll""""""" #t<<<<<<<<  =x9?** $ #&8 |''**,,&&&&&&&Y... $ Y^+++ii)))))))))Y^+++JsuE!D4> C0D40 C::D4=C:>D4E4 EEA%%g%66666666uT{{r4c$Ktd)Nz"Cannot call .write() for websocket)r)r1rs r2writezWebSocketResponse.writes?@@@r4c|Sr/r;r0s r2 __aiter__zWebSocketResponse.__aiter__s r4cK|d{V}|jtjtjtjfvrt |Sr/)rrrrrrStopAsyncIteration)r1rs r2 __anext__zWebSocketResponse.__anext__sLLLNN"""""" 8 ):I2222X HSM   X !Xc]!!!X!$X8M2))%)$)))) ))%)$)))) GG3G(4.GDGGGGFFUFhtnFPTFFFF$(< "Z <<<<4.<  <  <<<<*5#55535%5RV5555n;;Xe_; ;;;;z?C###HUO#s####AE%%%huo%%%%%'+jT#;CE?  AA$AAAA ,=,T,,,,,,,,r4r#)9rnrrrrtypingrrrrrrattr multidictrr|r abcr helpersr r httprrrrrrrrrrrlogrstreamsrrtypedefsrrrweb_exceptionsrr web_requestr! web_responser"__all__r&r r9sr$r#r;r4r2rsm  77777777777777 !!!!!!%%%%%%++++++++                          44444444555555555599999999$$$$$$((((((  )*5:)))T$d33343r,r,r,r,r,r,r,r,r,r,r4