Ë
    Õ±1hxX  ã                  óX  — d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
mZmZmZmZ ddlmZ ddlmZmZ ddlmZmZmZ dd	lmZ dd
lmZ ddlmZmZmZ ddl m!Z!m"Z" ddl#m$Z$m%Z% ddl&m'Z' ddl	m(Z(m)Z)m*Z* ddl+m,Z,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2 ddl3m4Z4 g d¢Z5 G d„ de2«      Z6dddddddde!ddddddddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d0d„Z7	 	 d1	 	 	 	 	 	 	 d2d„Z8	 d d l9m:Z: d d!l;m,Z< e:jz                  e:jz                  e:j|                  e:j|                  d"œZ?dd#dd#d"œZ@	 	 	 	 	 	 	 	 	 	 d3d$„ZA	 d4	 	 	 	 	 	 	 d5d&„ZCd6d'„ZDdddd(œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d7d)„ZE ed*«      ZF ed+ed,eFf   ¬-«      ZG G d.„ d/«      ZHy# eB$ r 	 	 	 	 	 	 	 	 	 	 d3d%„ZAY Œ`w xY w)8é    )ÚannotationsN)ÚSequence)ÚAnyÚCallableÚLiteralÚTypeVarÚcasté   )ÚClientProtocol)ÚHeadersÚHeadersLike)ÚInvalidProxyMessageÚInvalidProxyStatusÚ
ProxyError)ÚClientExtensionFactory)Ú enable_client_permessage_deflate)Úbuild_authorization_basicÚ
build_hostÚvalidate_subprotocols)Ú
USER_AGENTÚResponse)Ú
CONNECTINGÚEvent)ÚStreamReader)Ú
LoggerLikeÚOriginÚSubprotocol)ÚProxyÚWebSocketURIÚ	get_proxyÚparse_proxyÚ	parse_urié   )Ú
Connection)ÚDeadline)ÚconnectÚunix_connectÚClientConnectionc                  ó€   ‡ — e Zd ZdZdddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zdedf	 	 	 	 	 	 	 dd„Zdˆ fd	„Zdˆ fd
„Zˆ xZ	S )r(   a1  
    :mod:`threading` implementation of a WebSocket client connection.

    :class:`ClientConnection` provides :meth:`recv` and :meth:`send` methods for
    receiving and sending messages.

    It supports iteration to receive messages::

        for message in websocket:
            process(message)

    The iterator exits normally when the connection is closed with close code
    1000 (OK) or 1001 (going away) or without a close code. It raises a
    :exc:`~websockets.exceptions.ConnectionClosedError` when the connection is
    closed with any other code.

    The ``ping_interval``, ``ping_timeout``, ``close_timeout``, and
    ``max_queue`` arguments have the same meaning as in :func:`connect`.

    Args:
        socket: Socket connected to a WebSocket server.
        protocol: Sans-I/O connection.

    é   é
   é   ©Úping_intervalÚping_timeoutÚclose_timeoutÚ	max_queuec               óf   •— |  t        j                  «       | _        t        ‰| �  ||||||¬«       y )Nr-   )Ú	threadingr   Úresponse_rcvdÚsuperÚ__init__)ÚselfÚsocketÚprotocolr.   r/   r0   r1   Ú	__class__s          €úT/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/websockets/sync/client.pyr6   zClientConnection.__init__6   s;   ø€ ñ 	Ü&Ÿ_™_Ó.ˆÔÜ‰ÑØØØ'Ø%Ø'Øð 	õ 	
ó    Nc                ó$  — | j                  t        ¬«      5  | j                  j                  «       | _        |�%| j                  j
                  j                  |«       |�&| j                  j
                  j                  d|«       | j                  j                  | j                  «       ddd«       | j                  j                  |«      st        d«      ‚| j                  j                  �| j                  j                  ‚y# 1 sw Y   Œ\xY w)z1
        Perform the opening handshake.

        )Úexpected_stateNú
User-Agentz.timed out while waiting for handshake response)Úsend_contextr   r9   r&   ÚrequestÚheadersÚupdateÚ
setdefaultÚsend_requestr4   ÚwaitÚTimeoutErrorÚhandshake_exc)r7   Úadditional_headersÚuser_agent_headerÚtimeouts       r;   Ú	handshakezClientConnection.handshakeK   sÝ   € ð ×Ñ¬jÐÓ9ñ 	5ØŸ=™=×0Ñ0Ó2ˆDŒLØ!Ð-Ø—‘×$Ñ$×+Ñ+Ð,>Ô?Ø Ð,Ø—‘×$Ñ$×/Ñ/°Ð>OÔPØ�M‰M×&Ñ& t§|¡|Ô4÷	5ð ×!Ñ!×&Ñ& wÔ/ÜÐOÓPÐPð �=‰=×&Ñ&Ð2Ø—-‘-×-Ñ-Ð-ð 3÷	5ð 	5ús   —BDÄDc                ó¤   •— | j                   €4t        |t        «      sJ ‚|| _         | j                  j	                  «        yt
        ‰| �  |«       y)z.
        Process one incoming event.

        N)ÚresponseÚ
isinstancer   r4   Úsetr5   Úprocess_event)r7   Úeventr:   s     €r;   rQ   zClientConnection.process_eventg   sG   ø€ ð �=‰=Ð Ü˜e¤XÔ.Ð.Ð.Ø!ˆDŒMØ×Ñ×"Ñ"Õ$ô ‰GÑ! %Õ(r<   c                ó–   •— 	 t         ‰| �  «        | j                  j                  «        y# | j                  j                  «        w xY w)zI
        Read incoming data from the socket and process events.

        N)r5   Úrecv_eventsr4   rP   )r7   r:   s    €r;   rT   zClientConnection.recv_eventsu   s:   ø€ ð
	%Ü‰GÑÔ!ð ×Ñ×"Ñ"Õ$øˆD×Ñ×"Ñ"Õ$ús	   ƒ, ¬A)r8   úsocket.socketr9   r   r.   úfloat | Noner/   rV   r0   rV   r1   ú*int | None | tuple[int | None, int | None]ÚreturnÚNone)rI   úHeadersLike | NonerJ   ú
str | NonerK   rV   rX   rY   )rR   r   rX   rY   )rX   rY   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r6   r   rL   rQ   rT   Ú__classcell__)r:   s   @r;   r(   r(      s¤   ø„ ñð< ')Ø%'Ø&(Ø@Bñ
àð
ð !ð
ð
 $ð
ð #ð
ð $ð
ð >ð
ð 
õ
ð. 26Ø(2Ø $ð	.à.ð.ð &ð.ð ð	.ð
 
ó.õ8)÷	%ñ 	%r<   r(   ÚdeflateTr+   r*   i   r,   )ÚsockÚsslÚserver_hostnameÚoriginÚ
extensionsÚsubprotocolsÚcompressionrI   rJ   ÚproxyÚ	proxy_sslÚproxy_server_hostnameÚopen_timeoutr.   r/   r0   Úmax_sizer1   ÚloggerÚcreate_connectionc          	     ó‚  — |€/d|v r+|j                  d«      }t        j                  dt        «       t	        | «      }|j
                  s|�t        d«      ‚|j                  dd«      }|j                  dd«      }|r|€|€t        d«      ‚|�|�t        d	«      ‚|�t        |«       |d
k(  rt        |«      }n|�t        d|› �«      ‚|rd}
|�d}
|
du rt        |«      }
t        |«      }|€t        }	 |�€Q|rgt        j                  t        j                  t        j                  «      }|j                  |j!                  «       «       |€J ‚|j#                  |«       n×|
�‰t%        |
«      }|j&                  dd dk(  r t)        ||||j                  dd«      ¬«      }n˜|j&                  dd dk(  r/|j&                  dk7  r|�t        d«      ‚t+        |||f|	||dœ|¤Ž}nWt-        d«      ‚|j/                  d|j!                  «       «       t        j0                  |j2                  |j4                  ffi |¤Ž}|j                  d«       |s/|j7                  t        j8                  t        j:                  d«       |j
                  r’|€t=        j>                  «       }|€|j2                  }|j                  |j!                  «       «       |€|jA                  ||¬«      }n(tC        |||¬«      }tE        t        j                  |«      }|j                  d«       tG        ||||||¬«      } |||||||¬«      }	 |jM                  ||	|j!                  «       «       |jU                  «        |S # tH        $ r |�|jK                  «        ‚ w xY w# tH        $ r, |jO                  «        |jP                  jS                  «        ‚ w xY w)aá  
    Connect to the WebSocket server at ``uri``.

    This function returns a :class:`ClientConnection` instance, which you can
    use to send and receive messages.

    :func:`connect` may be used as a context manager::

        from websockets.sync.client import connect

        with connect(...) as websocket:
            ...

    The connection is closed automatically when exiting the context.

    Args:
        uri: URI of the WebSocket server.
        sock: Preexisting TCP socket. ``sock`` overrides the host and port
            from ``uri``. You may call :func:`socket.create_connection` to
            create a suitable TCP socket.
        ssl: Configuration for enabling TLS on the connection.
        server_hostname: Host name for the TLS handshake. ``server_hostname``
            overrides the host name from ``uri``.
        origin: Value of the ``Origin`` header, for servers that require it.
        extensions: List of supported extensions, in order in which they
            should be negotiated and run.
        subprotocols: List of supported subprotocols, in order of decreasing
            preference.
        compression: The "permessage-deflate" extension is enabled by default.
            Set ``compression`` to :obj:`None` to disable it. See the
            :doc:`compression guide <../../topics/compression>` for details.
        additional_headers (HeadersLike | None): Arbitrary HTTP headers to add
            to the handshake request.
        user_agent_header: Value of  the ``User-Agent`` request header.
            It defaults to ``"Python/x.y.z websockets/X.Y"``.
            Setting it to :obj:`None` removes the header.
        proxy: If a proxy is configured, it is used by default. Set ``proxy``
            to :obj:`None` to disable the proxy or to the address of a proxy
            to override the system configuration. See the :doc:`proxy docs
            <../../topics/proxies>` for details.
        proxy_ssl: Configuration for enabling TLS on the proxy connection.
        proxy_server_hostname: Host name for the TLS handshake with the proxy.
            ``proxy_server_hostname`` overrides the host name from ``proxy``.
        open_timeout: Timeout for opening the connection in seconds.
            :obj:`None` disables the timeout.
        ping_interval: Interval between keepalive pings in seconds.
            :obj:`None` disables keepalive.
        ping_timeout: Timeout for keepalive pings in seconds.
            :obj:`None` disables timeouts.
        close_timeout: Timeout for closing the connection in seconds.
            :obj:`None` disables the timeout.
        max_size: Maximum size of incoming messages in bytes.
            :obj:`None` disables the limit.
        max_queue: High-water mark of the buffer where frames are received.
            It defaults to 16 frames. The low-water mark defaults to ``max_queue
            // 4``. You may pass a ``(high, low)`` tuple to set the high-water
            and low-water marks. If you want to disable flow control entirely,
            you may set it to ``None``, although that's a bad idea.
        logger: Logger for this client.
            It defaults to ``logging.getLogger("websockets.client")``.
            See the :doc:`logging guide <../../topics/logging>` for details.
        create_connection: Factory for the :class:`ClientConnection` managing
            the connection. Set it to a wrapper or a subclass to customize
            connection handling.

    Any other keyword arguments are passed to :func:`~socket.create_connection`.

    Raises:
        InvalidURI: If ``uri`` isn't a valid WebSocket URI.
        OSError: If the TCP connection fails.
        InvalidHandshake: If the opening handshake fails.
        TimeoutError: If the opening handshake times out.

    NÚssl_contextzssl_context was renamed to sslz-ssl argument is incompatible with a ws:// URIÚunixFÚpathzmissing path argumentz(path and sock arguments are incompatiblera   zunsupported compression: Té   ÚsocksÚsource_address)Ú
local_addré   ÚhttpÚhttpsz8proxy_ssl argument is incompatible with an http:// proxy©rJ   rc   rd   zunsupported proxyrK   ©rd   )re   rf   rg   rm   rn   r-   )+ÚpopÚwarningsÚwarnÚDeprecationWarningr"   ÚsecureÚ
ValueErrorr   r   r    r%   r(   r8   ÚAF_UNIXÚSOCK_STREAMÚ
settimeoutrK   r&   r!   ÚschemeÚconnect_socks_proxyÚconnect_http_proxyÚAssertionErrorrD   ro   ÚhostÚportÚ
setsockoptÚIPPROTO_TCPÚTCP_NODELAYÚ
ssl_moduleÚcreate_default_contextÚwrap_socketÚSSLSSLSocketr	   r   Ú	ExceptionÚcloserL   Úclose_socketÚrecv_events_threadÚjoinÚstart_keepalive)Úurirb   rc   rd   re   rf   rg   rh   rI   rJ   ri   rj   rk   rl   r.   r/   r0   rm   r1   rn   ro   ÚkwargsÚws_urirr   rs   ÚdeadlineÚproxy_parsedÚsock_2r9   Ú
connections                                 r;   r&   r&   �   së  € ð\ €{�}¨Ñ.Ø�j‰j˜Ó'ˆÜ�‰Ø,Üô	
ô
 �s‹^€FØ�=Š=˜S˜_ÜÐHÓIÐIð —‘˜F EÓ*€DØ—z‘z &¨$Ó/€DáØˆ<˜D˜LÜÐ4Ó5Ð5ØÐ $Ð"2ÜÐGÓHÐHàÐÜ˜lÔ+à�iÒÜ5°jÓA‰
Ø	Ð	 ÜÐ4°[°MÐBÓCÐCáØˆØÐØˆØ��}Ü˜&Ó!ˆô
 ˜Ó%€HàÐ Ü,Ðð\ð ‰<ÙÜ—}‘}¤V§^¡^´V×5GÑ5GÓH�Ø—‘ × 0Ñ 0Ó 2Ô3ØÐ'Ð'Ð'Ø—‘˜TÕ"ØÐ"Ü*¨5Ó1�Ø×&Ñ& r¨Ð*¨gÒ5ä.Ø$ØØ ð $*§:¡:Ð.>ÀÓ#Eô‘Dð "×(Ñ(¨¨!Ð,°Ò6à#×*Ñ*¨gÒ5¸)Ð:OÜ(ØVóð ô .Ø$ØØ ðð +<Ø%Ø(=ñð !ñ‘Dô )Ð)<Ó=Ð=à×!Ñ! )¨X×-=Ñ-=Ó-?Ô@Ü×/Ñ/Ø—[‘[ &§+¡+Ð.ñàñ�ð �O‰O˜DÔ!ñ Ø�O‰OœF×.Ñ.´×0BÑ0BÀDÔIð �=Š=Øˆ{Ü ×7Ñ7Ó9�ØÐ&Ø"(§+¡+�Ø�O‰O˜H×,Ñ,Ó.Ô/ØÐ Ø—‘ t¸_�ÓM‘ä% d¨CÀÔQ�äœFŸM™M¨6Ó2�Ø�O‰O˜DÔ!ô "ØØØ!Ø%ØØô
ˆñ 'ØØØ'Ø%Ø'Øô
ˆ
ð	Ø×ÑØØØ×ÑÓô	
ð ×ÑÔ ØÐøô# ò ØÐØ�J‰JŒLØðûô ò Ø×ÑÔ!Ø×%Ñ%×*Ñ*Ô,Øðús   Ã3IM) Ì6!N	 Í)NÎ	5N>c                ór   — |€'|j                  d«      €|j                  d«      €d}nd}t        d|d| dœ|¤ŽS )aÚ  
    Connect to a WebSocket server listening on a Unix socket.

    This function accepts the same keyword arguments as :func:`connect`.

    It's only available on Unix.

    It's mainly useful for debugging servers listening on Unix sockets.

    Args:
        path: File system path to the Unix socket.
        uri: URI of the WebSocket server. ``uri`` defaults to
            ``ws://localhost/`` or, when a ``ssl`` is provided, to
            ``wss://localhost/``.

    rc   rq   zws://localhost/zwss://localhost/T)r™   rr   rs   © )Úgetr&   )rs   r™   rš   s      r;   r'   r'   ˆ  sG   € ð* €{à�:‰:�eÓÐ$¨¯©°MÓ)BÐ)JØ#‰Cà$ˆCÜÐ;�s ¨DÑ;°FÑ;Ð;r<   )Ú	ProxyType)r   )Úsocks5hÚsocks5Úsocks4aÚsocks4Fc           	     ó¾  — t        t        | j                     | j                  | j                  | j
                  | j                  t        | j                     «      }|j                  d|j                  «       «       	  |j                  |j                  |j                  fi |¤ŽS # t        t        t        j                  f$ r ‚ t        $ r}t        d«      |‚d}~ww xY w)z0Connect via a SOCKS proxy and return the socket.rK   z failed to connect to SOCKS proxyN)Ú
SocksProxyÚSOCKS_PROXY_TYPESr†   rŠ   r‹   ÚusernameÚpasswordÚSOCKS_PROXY_RDNSrD   rK   r&   ÚOSErrorrG   r8   r“   r   )ri   r›   rœ   rš   Úsocks_proxyÚexcs         r;   r‡   r‡   ¸  s»   € ô !Ü˜eŸl™lÑ+Ø�J‰JØ�J‰JØ�N‰NØ�N‰NÜ˜UŸ\™\Ñ*ó
ˆð 	×Ñ˜) X×%5Ñ%5Ó%7Ô8ð	JØ&�;×&Ñ& v§{¡{°F·K±KÑJÀ6ÑJÐJøÜœ¤v§~¡~Ð6ò 	ØÜò 	JÜÐ?Ó@ÀcÐIûð	Jús   Á<'B$ Â$'CÃCÃCc                ó   — t        d«      ‚)Nz-python-socks is required to use a SOCKS proxy)ÚImportError)ri   r›   rœ   rš   s       r;   r‡   r‡   Ó  s   € ô ÐIÓJÐJr<   c                óž  — t        |j                  |j                  |j                  d¬«      }t	        «       }t        |j                  |j                  |j                  «      |d<   |�||d<   | j
                  �1| j                  €J ‚t        | j
                  | j                  «      |d<   d|› d�j                  «       |j                  «       z   S )NT)Úalways_include_portÚHostr?   zProxy-AuthorizationzCONNECT z HTTP/1.1
)
r   rŠ   r‹   r�   r   r«   r¬   r   ÚencodeÚ	serialize)ri   r›   rJ   rŠ   rB   s        r;   Úprepare_connect_requestr¸   Ü  sµ   € ô
 �f—k‘k 6§;¡;°·±ÐSWÔX€DÜ‹i€GÜ  §¡¨f¯k©k¸6¿=¹=ÓI€GˆF�OØÐ$Ø 1ˆ�ÑØ‡~�~Ð!Ø�~‰~Ð)Ð)Ð)Ü)BØ�N‰N˜EŸN™Nó*
ˆÐ%Ñ&ð �d�V˜=Ð)×0Ñ0Ó2°W×5FÑ5FÓ5HÑHÐHr<   c                óÚ  — t        «       }t        j                  |j                  |j                  |j
                  d¬«      }	 	 | j                  |j                  «       «       | j                  d«      }|r|j                  |«       n|j                  «        t        |«       Œ`# t        $ rr}t        |j                  t        «      sJ ‚|j                  }d|j                  cxk  rdk  r%n t!        |«      ‚|cY d }~| j                  d «       S t!        |«      ‚d }~wt"        j                  $ r t%        d«      ‚t&        $ r}t)        d«      |‚d }~ww xY w# | j                  d «       w xY w)NF)Úinclude_bodyi   éÈ   i,  z(timed out while connecting to HTTP proxyz0did not receive a valid HTTP response from proxy)r   r   ÚparseÚ	read_lineÚ
read_exactÚread_to_eofr…   rK   ÚrecvÚ	feed_dataÚfeed_eofÚnextÚStopIterationrO   ÚvalueÚstatus_coder   r8   rG   r“   r   )rb   rœ   ÚreaderÚparserÚdatar°   rN   s          r;   Úread_connect_responserÊ   ï  s;  € Ü‹^€FÜ�^‰^Ø×ÑØ×ÑØ×ÑØô	€FðØØ�O‰O˜H×,Ñ,Ó.Ô/Ø—9‘9˜T“?ˆDÙØ× Ñ  Õ&à—‘Ô!Ü�ŒLð øô ò /Ü˜#Ÿ)™)¤XÔ.Ð.Ð.Ø—9‘9ˆØ�(×&Ñ&Ô,¨Ô,ô % XÓ.Ð.ð ŒOð 	�‰˜Õô % XÓ.Ð.ûÜ�>‰>ò GÜÐEÓFÐFÜò Ü!Ø>ó
àð	ûðûð
 	�‰˜ÕúsD   ÁA!B$ Â$	EÂ-ADÃ8EÃ9E ÄDÄ)EÅEÅEÅE ÅE*r{   c               ó  — |j                  d|j                  «       «       t        j                  | j                  | j
                  ffi |¤Ž}| j                  dk(  rg|€t        j                  «       }|€| j                  }|j                  |j                  «       «       |j                  ||¬«      }|j                  d «       |j                  t        | ||«      «       	 t        ||«       |S # t        $ r |j                  «        ‚ w xY w)NrK   rz   r|   )rD   rK   r8   ro   rŠ   r‹   r†   r�   r�   r…   r‘   Úsendallr¸   rÊ   r“   r”   )ri   r›   rœ   rJ   rc   rd   rš   rb   s           r;   rˆ   rˆ     sî   € ð ×Ñ�i ×!1Ñ!1Ó!3Ô4Ü×#Ñ# U§Z¡Z°·±Ð$<ÑGÀÑG€Dð ‡|�|�wÒØˆ;Ü×3Ñ3Ó5ˆCØÐ"Ø#Ÿj™jˆOØ�‰˜×(Ñ(Ó*Ô+Ø�‰˜t°_ˆÓEˆØ�‰˜Ôð 	‡L�LÔ(¨°Ð8IÓJÔKðÜ˜d HÔ-ð
 €Køô	 ò Ø�
‰
ŒØðús   Ã C. Ã.D	ÚTÚF.)Úboundc                  óV   — e Zd ZdZdZ	 d
	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Z	dd	„Z
y)r’   zr
    Socket-like object providing TLS-in-TLS.

    Only methods that are used by websockets are implemented.

    i   Nc                ó  — t        j                  «       | _        t        j                  «       | _        || _        |j                  | j                  | j                  |¬«      | _        | j                  | j                  j                  «       y )Nr|   )	r�   Ú	MemoryBIOÚincomingÚoutgoingÚ
ssl_socketÚwrap_bioÚ
ssl_objectÚrun_ioÚdo_handshake)r7   rb   rq   rd   s       r;   r6   zSSLSSLSocket.__init__E  sk   € ô #×,Ñ,Ó.ˆŒÜ"×,Ñ,Ó.ˆŒØˆŒØ%×.Ñ.Ø�M‰MØ�M‰MØ+ð /ó 
ˆŒð
 	�‰�D—O‘O×0Ñ0Õ1r<   c                ó²  — 	 d}d}	  ||Ž }| j                  j	                  «       }|r| j
                  j                  |«       |r^| j
                  j                  | j                  «      }|r| j                  j                  |«       n| j                  j                  «        Œ¢|rŒ¥S # t         j                  $ r d}Y Œ³t         j                  $ r d}Y ŒÉw xY w)NTF)r�   ÚSSLWantReadErrorÚSSLWantWriteErrorrÔ   ÚreadrÕ   rÌ   rÀ   Úrecv_bufsizerÓ   ÚwriteÚ	write_eof)r7   ÚfuncÚargsÚ	want_readÚ
want_writeÚresultrÉ   s          r;   rØ   zSSLSSLSocket.run_ioU  sÇ   € ØØˆIØˆJð"Ù˜t˜�ð —=‘=×%Ñ%Ó'ˆDÙØ—‘×'Ñ'¨Ô-ñ Ø—‘×+Ñ+¨D×,=Ñ,=Ó>�ÙØ—M‘M×'Ñ'¨Õ-à—M‘M×+Ñ+Ô-ØáØàˆMøô- ×.Ñ.ò !Ø ’	Ü×/Ñ/ò "Ø!’
ð"ús   ‡B( Â(CÂ?CÃCc                ó‚   — 	 | j                  | j                  j                  |«      S # t        j                  $ r Y yw xY w)Nr<   )rØ   r×   rÝ   r�   ÚSSLEOFError)r7   Úbuflens     r;   rÀ   zSSLSSLSocket.recvs  s:   € ð	Ø—;‘;˜tŸ™×3Ñ3°VÓ<Ð<øÜ×%Ñ%ò 	Ùð	ús   ‚%( ¨>½>c                óN   — | j                  | j                  j                  |«      S ©N)rØ   r×   rß   )r7   rÉ   s     r;   ÚsendzSSLSSLSocket.sendy  s   € Ø�{‰{˜4Ÿ?™?×0Ñ0°$Ó7Ð7r<   c                óî   — d}t        |«      5 }|j                  d«      5 }t        |«      }||k  r|| j                  ||d  «      z  }||k  rŒd d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nr   ÚB)Ú
memoryviewr	   Úlenrë   )r7   rÉ   ÚcountÚviewÚ	byte_viewÚamounts         r;   rÌ   zSSLSSLSocket.sendall|  sz   € àˆÜ˜Óð 	6  t§y¡y°£~ð 	6¸Ü˜“^ˆFØ˜&’.Ø˜Ÿ™ 9¨U¨VÐ#4Ó5Ñ5�ð ˜&“.÷	6÷ 	6÷ 	6ñ 	6ú÷ 	6ð 	6ús"   ŽA+ -AÁA+ÁA(	Á$A+Á+A4c                ó.   — t        | j                  |«      S rê   )ÚgetattrrÕ   )r7   Únames     r;   Ú__getattr__zSSLSSLSocket.__getattr__‡  s   € Ü�t—‘¨Ó-Ð-r<   rê   )rb   rU   rq   zssl_module.SSLContextrd   r[   rX   rY   )rá   zCallable[..., T]râ   r   rX   rÍ   )rè   ÚintrX   Úbytes)rÉ   rù   rX   rø   )rÉ   rù   rX   rY   )rö   ÚstrrX   r   )r\   r]   r^   r_   rÞ   r6   rØ   rÀ   rë   rÌ   r÷   r¡   r<   r;   r’   r’   ;  sW   „ ñð €Lð '+ð	2àð2ð +ð2ð $ð	2ð
 
ó2ó ó<ó8ó6ô.r<   r’   ).r™   rú   rb   zsocket.socket | Nonerc   ússl_module.SSLContext | Nonerd   r[   re   zOrigin | Nonerf   z'Sequence[ClientExtensionFactory] | Nonerg   zSequence[Subprotocol] | Nonerh   r[   rI   rZ   rJ   r[   ri   zstr | Literal[True] | Nonerj   rû   rk   r[   rl   rV   r.   rV   r/   rV   r0   rV   rm   z
int | Noner1   rW   rn   zLoggerLike | Nonero   ztype[ClientConnection] | Nonerš   r   rX   r(   )NN)rs   r[   r™   r[   rš   r   rX   r(   )
ri   r   r›   r   rœ   r%   rš   r   rX   rU   rê   )ri   r   r›   r   rJ   r[   rX   rù   )rb   rU   rœ   r%   rX   r   )ri   r   r›   r   rœ   r%   rJ   r[   rc   rû   rd   r[   rš   r   rX   rU   )IÚ
__future__r   r8   rc   r�   r3   r~   Úcollections.abcr   Útypingr   r   r   r   r	   Úclientr   Údatastructuresr   r   Ú
exceptionsr   r   r   Úextensions.baser   Úextensions.permessage_deflater   rB   r   r   r   Úhttp11r   r   r9   r   r   Ústreamsr   r   r   r   r™   r   r   r    r!   r"   rŸ   r$   Úutilsr%   Ú__all__r(   r&   r'   Úpython_socksr£   Úpython_socks.syncr©   ÚSOCKS5ÚSOCKS4rª   r­   r‡   r²   r¸   rÊ   rˆ   rÍ   rÎ   r’   r¡   r<   r;   ú<module>r     sp  ðÝ "ã Û Û Û Ý $ß 8Õ 8å #ß 1ß LÑ LÝ 4Ý Lß RÑ Rß )ß (Ý "ß 4Ñ 4ß HÕ HÝ "Ý ò :€ôb%�zô b%ðR "&Ø(,Ø"&à Ø:>Ø15Ø'à-1Ø$.Ø(,Ø.2Ø(,à!#Ø"$Ø!#Ø"$à Ø<>à $à7;ñ;DØ	ðDð ð	Dð
 
&ðDð  ðDð ðDð 8ðDð /ðDð ðDð +ðDð "ðDð &ðDð  ,ð!Dð" &ð#Dð& ð'Dð(  ð)Dð* ð+Dð,  ð-Dð0 ð1Dð2 :ð3Dð6 ð7Dð: 5ð;Dð< ð=Dð> ó?DðP Øð<Ø
ð<à	ð<ð ð<ð ó	<ð<3KÝ&Ý5ð ×#Ñ#Ø×"Ñ"Ø×#Ñ#Ø×"Ñ"ñ	Ðð ØØØñ	ÐðJØðJàðJð ðJð ð	Jð
 
óJðN %)ðIØðIàðIð "ðIð ó	Ió&ðN %)Ø(,Ø"&ñ#Øð#àð#ð ð#ð
 "ð#ð 
&ð#ð  ð#ð ð#ð ó#ñL ˆCƒL€ÙˆC�x  Q Ñ'Ô(€÷M.ò M.øðU ò KðKØðKàðKð ðKð ð	Kð
 
õKðKús   Ã8AF ÆF)Æ(F)