
    hG                        % S r SSKrSSKrSSKJr  SSKJrJrJrJ	r	J
r
Jr  SSKJr  SSKJr  SSKJrJr  SS	KJr  S
SKJrJrJr  S
SKJrJrJrJrJr  \ V s1 s H  n \" U 5      iM     sn r\\	\      \ S'   S
r!Sr"Sr#Sr$\RJ                  r&\RN                  r(Sr)\RT                  RV                  r,\RN                  RV                  r-\RJ                  RV                  r.\R^                  RV                  r0\Rb                  RV                  r2\Rf                  RV                  r4Sr5Sr6Sr7Sr8S
r9\:Rv                  r<\r= " S S5      r> " S S5      r?gs  sn f )z0Reader for WebSocket protocol versions 13 and 8.    N)deque)DequeFinalOptionalSetTupleUnion   )BaseProtocol)ZLibDecompressor)_EXC_SENTINELset_exception)	EofStream   )UNPACK_CLOSE_CODEUNPACK_LEN3websocket_mask)WS_DEFLATE_TRAILINGWebSocketErrorWSCloseCode	WSMessage	WSMsgTypeALLOWED_CLOSE_CODES      )T    )Fr   c                       \ rS rSrSrS\S\S\R                  SS4S jr	S\
4S	 jrS\\   4S
 jr\4SSS\R                  SS4S jjrSS jrSS jrSS jrS\4S jrS\4S jrSrg)WebSocketDataQueue6   zeWebSocketDataQueue resumes and pauses an underlying stream.

It is a destination for WebSocket data.
protocollimitloopreturnNc                    SU l         Xl        US-  U l        X0l        SU l        S U l        S U l        [        5       U l        U R                  R                  U l
        U R                  R                  U l        g )Nr   r
   F)_size	_protocol_limit_loop_eof_waiter
_exceptionr   _bufferpopleft_get_bufferappend_put_buffer)selfr!   r"   r#   s       N/var/www/html/env/lib/python3.13/site-packages/aiohttp/_websocket/reader_py.py__init__WebSocketDataQueue.__init__<   sb     
!ai
	7;6:5:W<<//<<..r   c                     U R                   $ N)r*   r2   s    r3   is_eofWebSocketDataQueue.is_eofJ   s    yyr   c                     U R                   $ r7   )r,   r8   s    r3   	exceptionWebSocketDataQueue.exceptionM   s    r   excBaseException	exc_causec                 d    SU l         Xl        U R                  =nb  S U l        [        X1U5        g g NT)r*   r,   r+   r   )r2   r>   r@   waiters       r3   r    WebSocketDataQueue.set_exceptionP   s5    
 	ll"F/DL&y1 0r   c                     U R                   =nc  g S U l         UR                  5       (       d  UR                  S 5        g g r7   )r+   done
set_result)r2   rC   s     r3   _release_waiter"WebSocketDataQueue._release_waiter[   s9    ll"F+{{}}d# r   c                 @    SU l         U R                  5         S U l        g rB   )r*   rH   r,   r8   s    r3   feed_eofWebSocketDataQueue.feed_eofb   s    	r   c                    U =R                   U-  sl         U R                  X45        U R                  5         U R                   U R                  :  a7  U R                  R
                  (       d  U R                  R                  5         g g g r7   )r&   r1   rH   r(   r'   _reading_pausedpause_readingr2   datasizes      r3   	feed_dataWebSocketDataQueue.feed_datag   sa    

d
$&::#DNN,J,JNN((* -K#r   c                   #    U R                   (       dh  U R                  (       dW  U R                  (       a   eU R                  R	                  5       U l         U R                  I S h  vN   U R                  5       $ U R                  5       $  N$! [
        R                  [
        R                  4 a	    S U l        e f = f7fr7   )	r-   r*   r+   r)   create_futureasyncioCancelledErrorTimeoutError_read_from_bufferr8   s    r3   readWebSocketDataQueue.readn   s     ||DII||##::335DLll"" %%''t%%''	 #**G,@,@A #s0   AB>B 'B(B , B>B -B;;B>c                 R   U R                   (       ax  U R                  5       u  pU =R                  U-  sl        U R                  U R                  :  a5  U R                  R
                  (       a  U R                  R                  5         U$ U R                  b  U R                  e[        er7   )	r-   r/   r&   r(   r'   rN   resume_readingr,   r   rP   s      r3   rZ   $WebSocketDataQueue._read_from_buffery   sq    <<))+JDJJ$JzzDKK'DNN,J,J--/K??&//!r   )
r-   r*   r,   r/   r(   r)   r'   r1   r&   r+   r$   N)rQ   r   rR   
cython_intr$   N)__name__
__module____qualname____firstlineno____doc__r   intrW   AbstractEventLoopr4   boolr9   r   r?   r<   r   builtinsr   rH   rK   rS   r   r[   rZ   __static_attributes__ r   r3   r   r   6   s    
/$/-0/;B;T;T/	/ 8M2  -:	2	2 ))	2 
		2$
+	(I 	(	9 	r   r   c            
           \ rS rSr SS\S\S\SS4S jjrSS jrS	\	\
\\4   S\\\
4   4S
 jrS\S\	\\4   S\	\
\4   S\	\\4   SS4
S jrS	\
SS4S jrSrg)WebSocketReader   queuemax_msg_sizecompressr$   Nc                 *   Xl         X l        S U l        [        5       U l        [
        U l        [        U l        SU l	        [        U l
        / U l        SU l        SU l        SU l        S U l        SU l        SU l        [$        U l        S U l        X0l        g )NFr   r   )rp   _max_msg_size_exc	bytearray_partialREAD_HEADER_stateOP_CODE_NOT_SET_opcode
_frame_fin_frame_opcode_payload_fragments_frame_payload_len_tail	_has_mask_frame_mask_payload_bytes_to_read_payload_len_flagCOMPRESSED_NOT_SET_compressed_decompressobj	_compress)r2   rp   rq   rr   s       r3   r4   WebSocketReader.__init__   s     
))-	!!+"1/1"#
,0&'#!" 2:>!r   c                 8    U R                   R                  5         g r7   )rp   rK   r8   s    r3   rK   WebSocketReader.feed_eof   s    

r   rQ   c                     [        U5      [        La  [        U5      nU R                  b  SU4$  U R                  U5        [        $ ! [         a,  nX l        [        U R                  U5        [        s S nA$ S nAff = frB   )	typebytesru   
_feed_data	Exceptionr   rp   EMPTY_FRAME_ERROREMPTY_FRAME)r2   rQ   r>   s      r3   rS   WebSocketReader.feed_data   sq     :U";D99 :	%OOD!   	%I$**c*$$	%s   A 
A=!A82A=8A=finopcodepayload
compressedc           	      
   U[         [        [        1;   Ga/  U(       d  U[        :w  a  X l        U =R                  U-  sl        U R
                  (       a`  [        U R                  5      U R
                  :  a=  [        [        R                  S[        U R                  5       SU R
                   35      eg [        U R                  5      nU[        :X  aF  U R                  [        :X  a  [        [        R                  S5      eU R                  n[        U l        O%U(       a  [        [        R                  SU< 35      eU(       a*  U R                  U-   nU R                  R                  5         OUnU R
                  (       aL  [        U5      U R
                  :  a3  [        [        R                  S[        U5       SU R
                   35      eU(       a  U R                  (       d  [        SS9U l        U R                  R!                  U["        -   U R
                  5      nU R                  R$                  (       aV  [        U R                  R$                  5      n[        [        R                  SU R
                  U-    SU R
                   35      eO ['        U5      [(        L a  UnO[)        U5      nU[         :X  aM   UR+                  S5      n	U R0                  R3                  [5        [6        [8        U	S
45      [        U5      5        g U R0                  R3                  [5        [6        [:        US
45      [        U5      5        g U[<        :X  a  [        U5      S:  at  [?        US S 5      S   nUS:  a'  U[@        ;  a  [        [        R                  SU 35      e USS  R+                  S5      n[5        [6        [B        RD                  X45      nOLU(       a$  [        [        R                  SU SU SU< 35      e[5        [6        [B        RD                  SS
45      nU R0                  R3                  US5        g U[F        :X  aG  [5        [6        [B        RH                  US
45      nU R0                  R3                  U[        U5      5        g U[J        :X  aG  [5        [6        [B        RL                  US
45      nU R0                  R3                  U[        U5      5        g [        [        R                  SU< 35      e! [,         a   n
[        [        R.                  S	5      U
eS n
A
ff = f! [,         a   n
[        [        R.                  S	5      U
eS n
A
ff = f)NzMessage size z exceeds limit z*Continuation frame for non started messagez8The opcode in non-fin frame is expected to be zero, got T)suppress_deflate_headerzDecompressed message size zutf-8zInvalid UTF-8 text message r
   r   i  zInvalid close code: zInvalid close frame:  zUnexpected opcode=)'OP_CODE_TEXTOP_CODE_BINARYOP_CODE_CONTINUATIONr{   rw   rt   lenr   r   MESSAGE_TOO_BIGri   rz   PROTOCOL_ERRORclearr   r   decompress_syncr   unconsumed_tailr   r   decodeUnicodeDecodeErrorINVALID_TEXTrp   rS   	TUPLE_NEWr   WS_MSG_TYPE_TEXTWS_MSG_TYPE_BINARYOP_CODE_CLOSEr   r   r   CLOSEOP_CODE_PINGPINGOP_CODE_PONGPONG)r2   r   r   r   r   has_partialassembled_payloadpayload_mergedlefttextr>   
close_codeclose_messagemsgs                 r3   _handle_frameWebSocketReader._handle_frame   s    lN4HII11#)L(%%#dmm*<@R@R*R(#33'DMM(:'; <))-););(<> 
 t}}-K--<<?2(#22D  . $..''-j2  $(MMG$;!##%$+!!!c*;&<@R@R&R$//#C(9$:#; <%%)%7%7$8:  ***:SW*XD'!%!4!4!D!D%(;;T=O=O" &&66t22BBCD(#334T5G5G$5N4O)$*<*<)=?  7 '(E1!2!&'8!9%)009D 

$$i*:D")EF'
 

$$i*<nb)QR' }$7|q .wr{;A>
$;N)N(#22.zl; $+ABK$6$6w$?M
  	IOOZ+WX$..+C5&7+F 
  	IOOQ+CDJJ  a(|#I	'DECJJ  c'l3|#I	'DECJJ  c'l3 **.@
,K c * (#002N8 * (#002Ns0   ?S< T) <
T&T!!T&)
U3UUc                 p	   U R                   (       a  U R                   U-   Ssol         Sn[        U5      nUn U R                  [        :X  Gan  X2-
  S:  a  GOJXB   nXBS-      nUS-  nUS-	  S-  nUS-	  S-  nUS-	  S-  n	US-	  S-  n
US	-  nU	(       d  U
(       d  U(       a+  U R                  (       d  [        [        R                  S
5      eUS:  a   US:X  a  [        [        R                  S5      eUS-	  S-  nUS-  nUS:  a   US:  a  [        [        R                  S5      eU R                  (       d  U R                  [        :X  a  U(       a  [        O[        U l	        O!U(       a  [        [        R                  S
5      e[        U5      U l        Xl        [        U5      U l        Xl        ["        U l        U R                  ["        :X  a  U R                   nUS:X  a(  X2-
  S:  a  GOXB   nXBS-      nUS-  nUS-  U-  U l        O/US:  a#  X2-
  S:  a  GO['        X5      S   U l        US-  nOXl        U R                  (       a  [(        O[*        U l        U R                  [(        :X  a&  X2-
  S:  a  GO)XBUS-    U l        US-  n[*        U l        U R                  [*        :X  Ga  X2-
  nU R$                  U:  a  UnU =R$                  U-  sl        OX R$                  -   nSU l        U R.                  nU =R.                  UU-
  -  sl        UnUnU R$                  S:w  a   U R0                  R3                  UUU 5        GO_U(       a  U R0                  R3                  UUU 5        U R                  (       aL  U R,                  c   e[5        SR7                  U R0                  5      5      n[9        U R,                  U5        UnOSR7                  U R0                  5      nU R0                  R;                  5         O`U R                  (       aJ  U R,                  c   eUUU n[=        U5      [4        La  [5        U5      n[9        U R,                  U5        UnOUUU nU R?                  U R                  U R                  UU R                  5        SU l        [        U l        GMi  X#:  a
  XBU U l         gSU l         g)z&Return the next frame from the socket.r   r   r
   r            r      z*Received frame with non-zero reserved bitsz!Received fragmented control frame   }   z5Control frame payload cannot be larger than 125 bytes~      N) r   r   ry   rx   r   r   r   r   r|   r   r   COMPRESSED_TRUECOMPRESSED_FALSEri   r}   r   r   READ_PAYLOAD_LENGTHr   r   READ_PAYLOAD_MASKREAD_PAYLOADr   r   r~   r0   rv   joinr   r   r   r   )r2   rQ   	start_posdata_len	data_cstr
first_bytesecond_byter   rsv1rsv2rsv3r   has_masklengthlen_flag	chunk_len	f_end_poshad_fragmentsf_start_pospayload_bytearrayr   s                        r3   r   WebSocketReader._feed_data:  s   ::#zzD0#D*	t9	{{k)'!+&1
'A6Q	!Q!+"a1,"a1,"a1,#c) 4D(#22D 
 C<C1H(#22; 
 (1,1$t+ C<FSL(#22O  ??d&6&6:L&L:>DTD$(#22D 
 #'s)%+"!%h)/&1 {{1111s?+a/!*!5J"+M":KNI2</K2OD/^+a/2=d2Nq2QD/NI2:/37>>/| {{//'!+#,Q#G Q	*{{l*$0	..); (I//9</ ),G,G GI23D/ $ 7 7''9y+@@''%	..!3 ++229[3ST !++229[3ST~~#//;;;,5chht?V?V6W,X)&t'7'79JK"3"%((4+B+B"C++113^^++777(1+i(H%-.i? -66G,H)"4#3#35FG/G'I>G""OOT%7%7$BRBR +,')] b 7@6JY2
PS
r   )r   r   r   ru   r|   r   r}   r   r   rt   r{   rw   r   r~   r   ry   r   rp   )Tr`   )rb   rc   rd   re   r   rg   ri   r4   rK   r	   r   rv   
memoryviewr   rS   ra   r   r   rk   rl   r   r3   rn   rn      s    MQ"'"7:"FJ"	"2%J67	tU{	$AA c:o&A ui'(	A
 #z/*A 
AFZTu ZT ZTr   rn   )@rf   rW   rj   collectionsr   typingr   r   r   r   r   r	   base_protocolr   compression_utilsr   helpersr   r   streamsr   r   r   r   modelsr   r   r   r   r   rg   r   __annotations__rx   r   r   r   BINARYr   TEXTr   rz   CONTINUATIONvaluer   r   r   r   r   r   r   r   r   r   r   r   r   r   tuple__new__r   ra   r   rn   )is   0r3   <module>r      s<   6    < < ( 0 2  C C  9D'D1A'D U3s8_ D   %% >>   --33 ~~##!!''%%~~##~~##   MM	
L L^OT OTa (Es   E