File: //usr/local/CyberCP/lib64/python3.10/site-packages/websocket/__pycache__/_abnf.cpython-310.pyc
o
�h18 � @ sJ d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm Z ddl
mZmZ ddl
mZ zd dlmZ de j d e j d
efdd�ZW n ey] ejZde j d e j d
efd
d�ZY nw g d�ZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%eeeeeeee e!e"e#e$fZ&G dd� d�Z'G d d!� d!�Z(G d"d#� d#�Z)dS )$� N)�Lock)�Callable�Optional�Union� )�WebSocketPayloadException�WebSocketProtocolException)�
validate_utf8)�XorMaskerSimple�
mask_value�
data_value�returnc C s t | ��|�}|S �N)r
�process)r r �mask_result� r �B/usr/local/CyberCP/lib/python3.10/site-packages/websocket/_abnf.py�_mask% s r c C sH t |�}t�|t�}t�| |d | d |d � t�}||A �|t�S )N� )�len�int�
from_bytes�native_byteorder�to_bytes)r r �datalen�int_data_value�int_mask_valuer r r r - s �)�ABNF�continuous_frame�frame_buffer�
STATUS_NORMAL�STATUS_GOING_AWAY�STATUS_PROTOCOL_ERROR�STATUS_UNSUPPORTED_DATA_TYPE�STATUS_STATUS_NOT_AVAILABLE�STATUS_ABNORMAL_CLOSED�STATUS_INVALID_PAYLOAD�STATUS_POLICY_VIOLATION�STATUS_MESSAGE_TOO_BIG�STATUS_INVALID_EXTENSION�STATUS_UNEXPECTED_CONDITION�STATUS_BAD_GATEWAY�STATUS_TLS_HANDSHAKE_ERRORi� i� i� i� i� i� i� i� i� i� i� i� i� i� i� c @ sV e Zd ZdZdZdZdZdZdZdZ eeeeee fZ
eded ed
edede d
iZdZdZ
dZddddeddfdededededededeeedf ddfdd�Zd/deddfdd �Zed!edefd"d#��Zdefd$d%�Zed0deeef dededd fd&d'��Zdefd(d)�Zd*eeef defd+d,�Zed*eeef deeef defd-d.��ZdS )1r z}
ABNF frame class.
See http://tools.ietf.org/html/rfc5234
and http://tools.ietf.org/html/rfc6455#section-5.2
r r � � � �
�cont�text�binary�close�ping�pong�~ i l � �fin�rsv1�rsv2�rsv3�opcoder �dataNr
c C sB || _ || _|| _|| _|| _|| _|du rd}|| _tj| _ dS )zG
Constructor for ABNF. Please check RFC for arguments.
Nr8 )
r9 r: r; r<