403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/websockets/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/websockets/__pycache__/frames.cpython-311.pyc
�

�=Xc�0����ddlmZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZmZddl
mZmZddlmZ	ddlmZn#e$r	ddlmZYnwxYwgd�ZGd	�d
ej��ZejZejZejZejZej Z!ej"Z#eeefZ$ee!e#fZ%ddd
ddddddddddddd�Z&hd�Z'ddhZ(e)e*e+fZ,ej-Gd�d����Z.d)d$�Z/d*d&�Z0ej-Gd'�d(����Z1dS)+�)�annotationsN)�Callable�	Generator�Optional�Sequence�Tuple�)�
exceptions�
extensions)�Data)�
apply_mask)
�Opcode�OP_CONT�OP_TEXT�	OP_BINARY�OP_CLOSE�OP_PING�OP_PONG�DATA_OPCODES�CTRL_OPCODES�Frame�prepare_data�prepare_ctrl�Closec�*�eZdZdZd\ZZZd\ZZZ	dS)rz#Opcode values for WebSocket frames.)rr	�)��	�
N)
�__name__�
__module__�__qualname__�__doc__�CONT�TEXT�BINARY�CLOSE�PING�PONG���3/usr/lib/python3/dist-packages/websockets/frames.pyrr%s,������-�-�)��D�$��(��E�4���r+r�OKz
going awayzprotocol errorzunsupported typezno status code [internal]z'connection closed abnormally [internal]zinvalid datazpolicy violationzmessage too bigzextension requiredzunexpected errorzservice restartztry again laterzbad gatewayzTLS failure [internal])����������i���������������i�>r.r/r0r1r3r4r5r6r7r8r9r:r.r/c��eZdZUdZded<ded<dZded<d	Zded
<d	Zded<d	Zded<dd�Z	e
ddd�d d���Zdd�d!d�Zd"d�Z
dS)#raN
    WebSocket frame.

    Attributes:
        opcode: Opcode.
        data: Payload data.
        fin: FIN bit.
        rsv1: RSV1 bit.
        rsv2: RSV2 bit.
        rsv3: RSV3 bit.

    Only these fields are needed. The MASK bit, payload length and masking-key
    are handled on the fly when parsing and serializing frames.

    r�opcode�bytes�dataT�bool�finF�rsv1�rsv2�rsv3�return�strc�j�d}t|j���dt|j��dkrdnd��}|jrdnd}|jtur(t|j�����}�nX|jturb|j}t|��dkr(d�|dd	�d
|dd�g��}d�d
�|D����}n�|jtur-tt�|j����}n�|jr�	t|j�����}d}n|#ttf$rf|j}t|��dkr(d�|dd	�d
|dd�g��}d�d�|D����}d}YnwxYwd}t|��dkr|dd�dz|dd�z}d�td|||g����}|jj�d|�d|�d�S)zC
        Return a human-readable represention of a frame.

        Nz byter	��s�	continued�r+�si����� c3�K�|]}|d�V��	dS��02xNr*��.0�bytes  r,�	<genexpr>z Frame.__str__.<locals>.<genexpr>�s&����=�=�d�t�M�M�=�=�=�=�=�=r+�textc3�K�|]}|d�V��	dSrNr*rPs  r,rSz Frame.__str__.<locals>.<genexpr>�s&����A�A�$�4�
�
�A�A�A�A�A�Ar+�binaryz''�K�0z...i��z, z [�])�lenr>r@r<r�repr�decoder�joinrrEr�parse�UnicodeDecodeError�AttributeError�filter�name)�self�coding�length�	non_finalr>rV�metadatas       r,�__str__z
Frame.__str__|sF��
����	�N�N�M�M�s�4�9�~�~��/B�/B����M�M���(�3�B�B��	��;�'�!�!���	�(�(�*�*�+�+�D�D�
�[�I�
%�
%��Y�F��6�{�{�R������6�#�2�#�;��V�B�C�C�[�"I�J�J���8�8�=�=�f�=�=�=�=�=�D�D�
�[�H�
$�
$��u�{�{�4�9�-�-�.�.�D�D�
�Y�	�
"��D�I�,�,�.�.�/�/������&��7�
"�
"�
"�����v�;�;��#�#� �X�X�v�c�r�c�{�K������&M�N�N�F��x�x�A�A�&�A�A�A�A�A��!����
"�����D��t�9�9�r�>�>�����9�u�$�t�C�D�D�z�1�D��9�9�V�D�6�6�9�*E�F�F�G�G���+�"�8�8�T�8�8�X�8�8�8�8s�*(E�A4G
�	G
N)�max_sizer�
read_exact�-Callable[[int], Generator[None, None, bytes]]�maskri�
Optional[int]r�(Optional[Sequence[extensions.Extension]]�Generator[None, None, Frame]c#�tK�|d��Ed{V��}tjd|��\}}|dzrdnd}|dzrdnd}	|dzrdnd}
|d	zrdnd}	t|d
z��}n'#t$r}
t	jd��|
�d}
~
wwxYw|dzrdnd|krt	jd���|d
z}|dkr)|d��Ed{V��}tjd|��\}n.|d
kr(|d��Ed{V��}tjd|��\}|�!||krt	jd|�d|�d����|r|d��Ed{V��}||��Ed{V��}|rt||��}|||||	|
|��}|�g}t|��D]}|�	||���}�|�
��|S)a&
        Parse a WebSocket frame.

        This is a generator-based coroutine.

        Args:
            read_exact: generator-based coroutine that reads the requested
                bytes or raises an exception if there isn't enough data.
            mask: whether the frame should be masked i.e. whether the read
                happens on the server side.
            max_size: maximum payload size in bytes.
            extensions: list of extensions, applied in reverse order.

        Raises:
            EOFError: if the connection is closed without a full WebSocket frame.
            UnicodeDecodeError: if the frame contains invalid UTF-8.
            PayloadTooBig: if the frame's payload size exceeds ``max_size``.
            ProtocolError: if the frame contains incorrect values.

        rN�!BB�TF�@� rK�zinvalid opcodezincorrect masking��~�!Hrz!Qzover size limit (z > z bytes)�)ri)�struct�unpackr�
ValueErrorr
�
ProtocolError�
PayloadTooBigr
�reversedr\�check)�clsrjrlrirr>�head1�head2r@rArBrCr<�excre�
mask_bytes�frame�	extensions                  r,r^zFrame.parse�s�����<%�*�Q�-�-�'�'�'�'�'�'���}�U�D�1�1���u��j�(�3�d�d�e���z�)�4�t�t�u���z�)�4�t�t�u���z�)�4�t�t�u��	F��E�J�.�/�/�F�F���	F�	F�	F��*�+;�<�<�#�E�����	F�����J�&�1�D�D�E�d�:�:��*�+>�?�?�?���#���S�=�=�(�j��m�m�+�+�+�+�+�+�D��
�d�D�1�1�I�V�V�
�s�]�]�(�j��m�m�+�+�+�+�+�+�D��
�d�D�1�1�I�V���F�X�$5�$5��*�@�F�@�@�x�@�@�@���
��	2�$.�J�q�M�M�1�1�1�1�1�1�J�%�*�V�,�,�,�,�,�,�,�,���	0��d�J�/�/�D���F�D�#�t�T�4�8�8�����J�!�*�-�-�	?�	?�I��$�$�U�X�$�>�>�E�E�
���
�
�
��s�A$�$
B�.B�B)rc�<�|���|�g}|D]}|�|��}�tj��}|jrdnd|jrdndz|jrdndz|jrdndz|jz}|rdnd}t|j
��}|dkr-|�tj
d|||z����na|d	kr.|�tj
d
||dz|����n-|�tj
d||dz|����|r)tjd
��}|�|��|rt!|j
|��}	n|j
}	|�|	��|���S)aH
        Serialize a WebSocket frame.

        Args:
            mask: whether the frame should be masked i.e. whether the write
                happens on the client side.
            extensions: list of extensions, applied in order.

        Raises:
            ProtocolError: if the frame contains incorrect values.

        NrrrrsrtrKrwrqiz!BBHz!BBQrvry)r��encode�io�BytesIOr@rArBrCr<rZr>�writerz�pack�secrets�token_bytesr
�getvalue)
rcrlrr��outputr�r�rer�r>s
          r,�	serializezFrame.serialize�s���$	
�
�
�������J�#�	*�	*�I��#�#�D�)�)�D�D������ �8�
*�Z�Z��!�Y�-�z�z�A�
/�!�Y�-�z�z�A�
/�"�Y�-�z�z�A�
/��k�	
�	�#�)�
�
����T�Y�����C�<�<��L�L���U�E�5�6�>�B�B�C�C�C�C�
�e�^�^��L�L���V�U�E�C�K��H�H�I�I�I�I��L�L���V�U�E�C�K��H�H�I�I�I��	%� �,�Q�/�/�J��L�L��$�$�$��	��d�i��4�4�D�D��9�D����T������� � � r+�Nonec��|js|js|jrtjd���|jtvrGt|j��dkrtjd���|j	stjd���dSdS)z�
        Check that reserved bits and opcode have acceptable values.

        Raises:
            ProtocolError: if a reserved bit or the opcode is invalid.

        zreserved bits must be 0�}zcontrol frame too longzfragmented control frameN)
rArBrCr
r}r<rrZr>r@�rcs r,r�zFrame.check3s����9�	F��	�	F�T�Y�	F��*�+D�E�E�E��;�,�&�&��4�9�~�~��#�#� �.�/G�H�H�H��8�
K� �.�/I�J�J�J�	'�&�
K�
Kr+�rDrE)
rjrkrlr?rirmrrnrDro)rlr?rrnrDr=�rDr�)r r!r"r#�__annotations__r@rArBrCrh�classmethodr^r�r�r*r+r,rrcs��������� �N�N�N��K�K�K��C������D������D������D�����-9�-9�-9�-9�^�#'�?C�
J�J�J�J�J��[�J�`@D�	9!�9!�9!�9!�9!�9!�vK�K�K�K�K�Kr+rr>rrD�Tuple[int, bytes]c��t|t��rt|�d��fSt|t��r	t
|fSt
d���)a�
    Convert a string or byte-like object to an opcode and a bytes-like object.

    This function is designed for data frames.

    If ``data`` is a :class:`str`, return ``OP_TEXT`` and a :class:`bytes`
    object encoding ``data`` in UTF-8.

    If ``data`` is a bytes-like object, return ``OP_BINARY`` and a bytes-like
    object.

    Raises:
        TypeError: if ``data`` doesn't have a supported type.

    �utf-8�data must be str or bytes-like)�
isinstancerErr��	BytesLiker�	TypeError�r>s r,rrEsX�� �$����:�����G�,�,�,�,�	�D�)�	$�	$�:��$����8�9�9�9r+r=c��t|t��r|�d��St|t��rt	|��Std���)ai
    Convert a string or byte-like object to bytes.

    This function is designed for ping and pong frames.

    If ``data`` is a :class:`str`, return a :class:`bytes` object encoding
    ``data`` in UTF-8.

    If ``data`` is a bytes-like object, return a :class:`bytes` object.

    Raises:
        TypeError: if ``data`` doesn't have a supported type.

    r�r�)r�rEr�r�r=r�r�s r,rr]sU���$����:��{�{�7�#�#�#�	�D�)�	$�	$�:��T�{�{���8�9�9�9r+c�X�eZdZUdZded<ded<dd�Zedd
���Zdd�Zdd
�Z	dS)rz
    Code and reason for WebSocket close frames.

    Attributes:
        code: Close code.
        reason: Close reason.

    �int�coderE�reasonrDc���d|jcxkrdkrnnd}n8d|jcxkrdkrnnd}n t�|jd��}|j�d|�d�}|jr|�d	|j��}|S)
zS
        Return a human-readable represention of a close code and reason.

        �i��
registered�zprivate use�unknownz (�)rL)r��CLOSE_CODES�getr�)rc�explanation�results   r,rhz
Close.__str__�s���
�4�9�#�#�#�#�t�#�#�#�#�#�&�K�K�
�T�Y�
%�
%�
%�
%��
%�
%�
%�
%�
%�'�K�K�%�/�/�$�)�Y�?�?�K��I�/�/��/�/�/���;�	/��.�.���.�.�F��
r+r>r=c�J�t|��dkr^tjd|dd���\}|dd��d��}|||��}|���|St|��dkr|dd��Stjd���)	z�
        Parse the payload of a close frame.

        Args:
            data: payload of the close frame.

        Raises:
            ProtocolError: if data is ill-formed.
            UnicodeDecodeError: if the reason isn't valid UTF-8.

        rrxNr�rr2rGzclose frame too short)rZrzr{r\r�r
r})r�r>r�r��closes     r,r^zClose.parse�s����t�9�9��>�>��m�D�$�r��r�(�3�3�G�T��!�"�"�X�_�_�W�-�-�F��C��f�%�%�E��K�K�M�M�M��L�
��Y�Y�!�^�^��3�t�R�=�=� ��*�+B�C�C�Cr+c��|���tjd|j��|j�d��zS)z:
        Serialize the payload of a close frame.

        rxr�)r�rzr�r�r�r�r�s r,r�zClose.serialize�s:��
	
�
�
�����{�4���+�+�d�k�.@�.@��.I�.I�I�Ir+r�c�v�|jtvs(d|jcxkrdksntjd���dSdS)z�
        Check that the close code has a valid value for a close frame.

        Raises:
            ProtocolError: if the close code is invalid.

        r�r�zinvalid status codeN)r��EXTERNAL_CLOSE_CODESr
r}r�s r,r�zClose.check�sR���	�1�1�1�T�T�Y�5M�5M�5M�5M��5M�5M�5M�5M��*�+@�A�A�A�2�1�5M�5Mr+Nr�)r>r=rDr)rDr=r�)
r r!r"r#r�rhr�r^r�r�r*r+r,rrts�����������I�I�I��K�K�K�����$�D�D�D��[�D�.J�J�J�J�	B�	B�	B�	B�	B�	Br+r)r>rrDr�)r>rrDr=)2�
__future__r�dataclasses�enumr�r�rz�typingrrrrrrGr
rr�speedupsr
�ImportError�utils�__all__�IntEnumrr$rr%rr&rr'rr(rr)rrrr�r��OK_CLOSE_CODESr=�	bytearray�
memoryviewr��	dataclassrrrrr*r+r,�<module>r�s���"�"�"�"�"�"���������	�	�	�	�����
�
�
�
�A�A�A�A�A�A�A�A�A�A�A�A�A�A�$�$�$�$�$�$�$�$�������"�$�$�$�$�$�$�$���"�"�"�!�!�!�!�!�!�!�!�"��������")�)�)�)�)�T�\�)�)�)��+��
�+���M�	��<��
�+��
�+�����*����'�)��
�
�
�
�
%�
3�
�
�
�
�
�
�
�
�
"�!���,
�
�
������
�9�j�(�	�
��^K�^K�^K�^K�^K�^K�^K���^K�B:�:�:�:�0:�:�:�:�.
��HB�HB�HB�HB�HB�HB�HB���HB�HB�HBs�?�A
�A


Youez - 2016 - github.com/yon3zu
LinuXploit