+
    O|jVv  ã                  óÔ  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
HtHt ^ RIHt ^ RIHtHtHt ^ RIt^RIHt ^RIHtHt ^RIHtHt ^R	IHtHtHtH t H!t! ^R
I"H#t# ^RI$H%t% ^RI&H't' ^RI(H)t)H*t* ^RI+H,t,H-t- ^RI.H/t/H0t0H1t1H2t2 ^RI3H4t4 ^RIH5t5H6t6H7t7 ^RI8H9t9H:t: ^RI;H<t< ^RI=H>t> . R0Ot?]@! ]P‚                  P…                  RR4      4      tC ! R R]<4      tD ! R R4      tER1R R lltF ^ RIGHHtH ^ RIIH/tJ R]HP–                  R ]HP–                  R!]HP˜                  R"]HP˜                  /tMRR#R R$R!R#R"R$/tNR% R& ltOR) R* ltQR+RR,RR-R/R. R/ lltRR#   ]P d
    R' R( ltO L%i ; i)2é    )ÚannotationsN)ÚAsyncIteratorÚ	GeneratorÚSequence)ÚTracebackType)ÚAnyÚCallableÚLiteral)Úprocess_exception)ÚClientProtocolÚbackoff)ÚHeadersÚHeadersLike)ÚInvalidProxyMessageÚInvalidProxyStatusÚInvalidStatusÚ
ProxyErrorÚSecurityError)ÚClientExtensionFactory)Ú enable_client_permessage_deflate)Úvalidate_subprotocols)Ú
USER_AGENTÚResponse)Ú
CONNECTINGÚEvent)ÚProxyÚ	get_proxyÚparse_proxyÚprepare_connect_request)ÚStreamReader)Ú
LoggerLikeÚOriginÚSubprotocol)ÚWebSocketURIÚ	parse_uri)Ú
Connection)Úrace_eventsÚconnectÚClientConnectionÚWEBSOCKETS_MAX_REDIRECTSÚ10c                  ól   a € ] tR t^*tRtR^R^R^
R^/R V 3R llltR]3R	 R
 lltR V 3R lltRt	V ;t
# )r)   a(  
:mod:`trio` implementation of a WebSocket client connection.

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

It supports asynchronous iteration to receive messages::

    async for message in websocket:
        await 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:
    nursery: Trio nursery.
    stream: Trio stream connected to a WebSocket server.
    protocol: Sans-I/O connection.

Úping_intervalÚping_timeoutÚclose_timeoutÚ	max_queuec               ó8   € V ^8„  d   QhRRRRRRRRR	RR
RRRRR/# )é   Únurseryútrio.NurseryÚstreamútrio.abc.StreamÚprotocolr   r-   úfloat | Noner.   r/   r0   ú*int | None | tuple[int | None, int | None]ÚreturnÚNone© )Úformats   "ÚOC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\websockets/trio/client.pyÚ__annotate__ÚClientConnection.__annotate__E   sZ   € ÷ *ñ *àð*ð  ð*ð !ð	*ð $ð*ð #ð*ð $ð*ð >ð*ð 
ñ*ó    c          
     	ól   <€ V  \         SV `  VVVVVVVR 7       \        P                  ! 4       V n        R# )©r-   r.   r/   r0   N)ÚsuperÚ__init__Útrior   Úresponse_rcvd)	Úselfr3   r5   r7   r-   r.   r/   r0   Ú	__class__s	   &&&&$$$$€r>   rE   ÚClientConnection.__init__E   s?   ø€ ñ 	Ü‰ÑØØØØ'Ø%Ø'Øð 	ô 	
ô "ŸZšZ›\ˆÖrA   Nc               ó$   € V ^8„  d   QhRRRRRR/# )r2   Úadditional_headersúHeadersLike | NoneÚuser_agent_headerú
str | Noner:   r;   r<   )r=   s   "r>   r?   r@   \   s(   € ÷ .ñ .à.ð.ð &ð.ð 
ñ	.rA   c              ƒ  óš  "  € V P                   P                  4       V n        Ve&   V P                  P                  P	                  V4       Ve'   V P                  P                  P                  RV4       V P                  \        R7      ;_uu_4       GRj  x€L
  V P                   P                  V P                  4       RRR4      GRj  x€L
  \        V P                  V P                  4      G Rj  x€L
  V P                   P                  e   V P                   P                  hR#  L‘ L^  + GRj  x€L 
 '       g   i     Lu; i LT5i)z!
Perform the opening handshake.

Nz
User-Agent)Úexpected_state)r7   r(   ÚrequestÚheadersÚupdateÚ
setdefaultÚsend_contextr   Úsend_requestr'   rG   Ústream_closedÚhandshake_exc)rH   rL   rN   s   &&&r>   Ú	handshakeÚClientConnection.handshake\   sì   é € ð —}‘}×,Ñ,Ó.ˆŒØÒ)Ø�L‰L× Ñ ×'Ñ'Ð(:Ô;ØÒ(Ø�L‰L× Ñ ×+Ñ+¨LÐ:KÔLØ×$Ñ$´JÐ$×?×?Õ?Ø�M‰M×&Ñ& t§|¡|Ô4÷ @×?ô ˜$×,Ñ,¨d×.@Ñ.@ÓA×AÐAð �=‰=×&Ñ&Ò2Ø—-‘-×-Ñ-Ð-ñ 3÷ @×?×?Ô?úñ 	BùsZ   ‚BEÂD)ÂEÂ&D-ÃEÃD+Ã'EÃ4E	Ã55EÄ+EÄ-E	Ä3D6Ä4
E	Ä?E	Å	Ec               ó    € V ^8„  d   QhRRRR/# )r2   Úeventr   r:   r;   r<   )r=   s   "r>   r?   r@   v   s   € ÷ )ñ ) 5ð )¨Tñ )rA   c                ó¶   <€ V P                   f;   \        V\        4      '       g   Q hWn         V P                  P	                  4        R# \
        SV `  V4       R# )z
Process one incoming event.

N)ÚresponseÚ
isinstancer   rG   ÚsetrD   Úprocess_event)rH   r]   rI   s   &&€r>   rb   ÚClientConnection.process_eventv   sH   ø€ ð �=‰=Ò Ü˜e¤X×.Ò.Ð.Ð.Ø!ŒMØ×Ñ×"Ñ"Ö$ô ‰GÑ! %Ö(rA   )rR   r_   rG   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rE   r   rZ   rb   Ú__static_attributes__Ú__classcell__)rI   s   @r>   r)   r)   *   sS   ø† ñð4*ð ')ð*ð &(ð*ð ')ð*ð AC÷*ò *ð2 26Ø(2÷.÷4)ö )rA   c            ,      óú   € ] tR t^†tRtRRRRRRRRRRRRR	R
RRR]RRRRRRR]R^
R^R^R^
R]RR2R^RRRR/R R lltR R lt	R R  lt
R! R" ltR# R$ ltR% R& ltR' R( ltR) R* ltR+ R, ltR- R. ltR/ R0 ltR1tR# )3r(   a%  
Connect to the WebSocket server at ``uri``.

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

:func:`connect` may be used as an asynchronous context manager::

    from websockets.trio.client import connect

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

The connection is closed automatically when exiting the context.

:func:`connect` can be used as an infinite asynchronous iterator to
reconnect automatically on errors::

    async for websocket in connect(...):
        try:
            ...
        except websockets.exceptions.ConnectionClosed:
            continue

If the connection fails with a transient error, it is retried with
exponential backoff. If it fails with a fatal error, the exception is
raised, breaking out of the loop.

The connection is closed automatically after each iteration of the loop.

Args:
    uri: URI of the WebSocket server.
    stream: Preexisting TCP stream. ``stream`` overrides the host and port
        from ``uri``. You may call :func:`~trio.open_tcp_stream` to create a
        suitable TCP stream.
    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: 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``.
    process_exception: When reconnecting automatically, tell whether an
        error is transient or fatal. The default behavior is defined by
        :func:`process_exception`. Refer to its documentation for details.
    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.
    reconnect_delays: Delays in seconds between reconnection attempts.
        Default is exponential backoff with 5s jitter, capped at 60s.
    max_size: Maximum size of incoming messages in bytes.
        :obj:`None` disables the limit. You may pass a ``(max_message_size,
        max_fragment_size)`` tuple to set different limits for messages and
        fragments when you expect long messages sent in short fragments.
    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:`~trio.open_tcp_stream`.

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

r5   NÚsslÚserver_hostnameÚoriginÚ
extensionsÚsubprotocolsÚcompressionÚdeflaterL   rN   ÚproxyTÚ	proxy_sslÚproxy_server_hostnamer   Úopen_timeoutr-   r.   r/   Úreconnect_delaysÚmax_sizer0   ÚloggerÚcreate_connectionc          2     ó|   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRRRRRRRRRRRRRRRRRRRRRRR R!R"R!R#R$R%R&R'R(R)R*/# )+r2   ÚuriÚstrr5   ztrio.abc.Stream | Nonerl   ússl_module.SSLContext | Nonerm   rO   rn   zOrigin | Nonero   z'Sequence[ClientExtensionFactory] | Nonerp   zSequence[Subprotocol] | Nonerq   rL   rM   rN   rs   zstr | Literal[True] | Nonert   ru   r   z'Callable[[Exception], Exception | None]rv   r8   r-   r.   r/   rw   zCallable[[], Generator[float]]rx   r9   r0   ry   zLoggerLike | Nonerz   ztype[ClientConnection] | NoneÚkwargsr   r:   r;   r<   )r=   s   "r>   r?   Úconnect.__annotate__ì   s&  € ÷ Q
ñ Q
àðQ
ð
 'ðQ
ð *ðQ
ð $ðQ
ð ðQ
ð <ðQ
ð 3ðQ
ð  ðQ
ð /ðQ
ð &ðQ
ð  *ð!Q
ð" 0ð#Q
ð$  *ð%Q
ð& Cð'Q
ð* #ð+Q
ð, $ð-Q
ð. #ð/Q
ð0 $ð1Q
ð2 9ð3Q
ð6 =ð7Q
ð8 >ð9Q
ð< "ð=Q
ð@ 9ðAQ
ðD ðEQ
ðF 
ñGQ
rA   c               	ó:  € Wn         \        V4      V n        V P                  P                  '       g   Ve   \	        R4      hVe   \        V4       VR8X  d   \        V4      pMVe   \	        RV 24      hVf   \        P                  ! R4      pVf   \        pW n
        W0n        W@n        W�n        W n        W°n        WÀn        WÐn        Wàn        Wðn        VV n        VV n        VV n        VV n        \1        VVVVVR7      V n        \1        VVVVR7      V n        R # )Nz-ssl argument is incompatible with a ws:// URIrr   zunsupported compression: zwebsockets.client)rn   ro   rp   rx   ry   rC   )r|   r%   Úws_uriÚsecureÚ
ValueErrorr   r   ÚloggingÚ	getLoggerr)   r5   rl   rm   rL   rN   rs   rt   ru   r   rv   rw   ry   rz   Úopen_tcp_stream_kwargsÚdictÚprotocol_kwargsÚconnection_kwargs)rH   r|   r5   rl   rm   rn   ro   rp   rq   rL   rN   rs   rt   ru   r   rv   r-   r.   r/   rw   rx   r0   ry   rz   r   s   &&$$$$$$$$$$$$$$$$$$$$$$,r>   rE   Úconnect.__init__ì   s  € ðH ŒÜ “nˆŒØ�{‰{×!×!Ð! c¢oÜÐLÓMÐMàÒ#Ü! ,Ô/à˜)Ô#Ü9¸*ÓE‰JØÒ$ÜÐ8¸¸ÐFÓGÐGàŠ>Ü×&Ò&Ð':Ó;ˆFàÒ$Ü 0ÐàŒØŒØ.ÔØ"4ÔØ!2ÔØŒ
Ø"ŒØ%:Ô"Ø!2ÔØ(ÔØ 0ˆÔØˆŒØ!2ˆÔØ&,ˆÔ#Ü#ØØ!Ø%ØØô 
ˆÔô "&Ø'Ø%Ø'Øô	"
ˆÖrA   c               ó   € V ^8„  d   QhRR/# )r2   r:   r6   r<   )r=   s   "r>   r?   r€   ?  s   € ÷ -8ñ -8 ñ -8rA   c           	   ƒ  óð  "  € V P                   P                  4       pV P                  pVP                  RR4      '       d   RpVRJ d   \	        V P
                  4      pVP                  RR4      '       d&   \        P                  ! VR,          4      G Rj  x€L
 # Veä   \        V4      pVP                  R,          R8X  d1   \        VV P
                  VP                  RR4      R	7      G Rj  x€L
 # VP                  R
,          R8X  dn   VP                  R8w  d   V P                  e   \        R4      h\        VV P
                  3RV P                  RV P                  RV P                   /VB G Rj  x€L
 # \#        R4      hVP%                  RV P
                  P&                  4       VP%                  RV P
                  P(                  4       \        P*                  ! R/ VB G Rj  x€L
 #  ELV EL L L5i)zFOpen a TCP or Unix connection to the server, possibly through a proxy.ÚunixFNTÚpath:Né   NÚsocksÚlocal_address)Ú
local_addr:Né   NÚhttpÚhttpsz8proxy_ssl argument is incompatible with an http:// proxyrN   rl   rm   z&parse_proxy returned unsupported proxyÚhostÚportr<   )r‡   Úcopyrs   Úgetr   r‚   ÚpoprF   Úopen_unix_socketr   ÚschemeÚconnect_socks_proxyrt   r„   Úconnect_http_proxyrN   ru   ÚAssertionErrorrU   r—   r˜   Úopen_tcp_stream)rH   r   rs   Úproxy_parseds   &   r>   r¡   Úconnect.open_tcp_stream?  sÇ  é € à×,Ñ,×1Ñ1Ó3ˆà—
‘
ˆØ�:‰:�f˜e×$Ò$ØˆEØ�D‹=Ü˜dŸk™kÓ*ˆEà�:‰:�f˜e×$Ò$Ü×.Ò.¨v°f­~Ó>×>Ð>àÒÜ& uÓ-ˆLà×"Ñ" 2Õ&¨'Ô1Ü0Ø Ø—K‘Kð  &Ÿz™z¨/¸4Ó@ô÷ ð ð ×$Ñ$ RÕ(¨FÔ2Ø×&Ñ&¨'Ô1°d·n±nÒ6PÜ$ØRóð ô 0Ø Ø—K‘Kñð '+×&<Ñ&<ðð Ÿ™ð	ð
 %)×$>Ñ$>ðð ñ÷ ð ô %Ð%MÓNÐNð ×Ñ˜f d§k¡k×&6Ñ&6Ô7Ø×Ñ˜f d§k¡k×&6Ñ&6Ô7Ü×-Ò-Ñ7°Ñ7×7Ð7òE ?òññ 8ùsQ   ‚A3G6Á6 G6ÂG,ÂAG6Ã-G/Ã.BG6Å2G2Å3A4G6Ç'G4Ç(G6Ç/G6Ç2G6Ç4G6c               ó    € V ^8„  d   QhRRRR/# )r2   r5   r6   r:   r<   )r=   s   "r>   r?   r€   n  s   € ÷ ñ  ð ¸?ñ rA   c              ƒ  ó8  "  € V P                   f   \        P                  ! 4       pMV P                   pV P                  f   V P                  P
                  pMV P                  p\        P                  ! VVVRR7      pVP                  4       G Rj  x€L
  V#  L5i)zEnable TLS on the connection.NT©rm   Úhttps_compatible)	rl   Ú
ssl_moduleÚcreate_default_contextrm   r‚   r—   rF   Ú	SSLStreamÚdo_handshake)rH   r5   rl   rm   Ú
ssl_streams   &&   r>   Ú
enable_tlsÚconnect.enable_tlsn  s…   é € à�8‰8ÒÜ×3Ò3Ó5‰Cà—(‘(ˆCØ×ÑÒ'Ø"Ÿk™k×.Ñ.‰Oà"×2Ñ2ˆOÜ—^’^ØØØ+Ø!ô	
ˆ
ð ×%Ñ%Ó'×'Ð'ØÐñ 	(ùs   ‚BBÂBÂBc               ó    € V ^8„  d   QhRRRR/# ©r2   r3   r4   r:   r)   r<   )r=   s   "r>   r?   r€   �  s   € ÷ +ñ +¨\ð +Ð>Nñ +rA   c              ƒ  ó   "  € V P                   f   V P                  4       G Rj  x€L
 pMV P                   p V P                  P                  '       d   V P	                  V4      G Rj  x€L
 p\        V P                  3/ V P                  B pV P                  ! VVV3/ V P                  B pVP                  V P                  V P                  4      G Rj  x€L
  V#  L¶ Lu L
  \        P                   d,    \        P                  ! T4      G Rj  x€L 
  \        R4      h\          d"    \        P                  ! T4      G Rj  x€L 
  h i ; i5i)zCreate a WebSocket connection.Nznursery should be canceled)r5   r¡   r‚   rƒ   r­   r   r‰   rz   rŠ   rZ   rL   rN   rF   Ú	CancelledÚaclose_forcefullyr    Ú	Exception)rH   r3   r5   r7   Ú
connections   &&   r>   Úopen_connectionÚconnect.open_connection�  s5  é € ð �;‰;ÒØ×/Ñ/Ó1×1‰Fà—[‘[ˆFð#	Ø�{‰{×!×!Ð!Ø#Ÿ™¨vÓ6×6�ä%Ø—‘ñà×&Ñ&ñˆHð ×/Ò/ØØØñð ×(Ñ(ñ	ˆJð ×&Ñ&Ø×'Ñ'Ø×&Ñ&ó÷ ð ð
 Ðñ5 2ñ 7ñøô �~‰~ô 	?Ü×(Ò(¨Ó0×0Ñ0ô !Ð!=Ó>Ð>Üô 	ô ×(Ò(¨Ó0×0Ñ0Øð	üso   ‚"E¤C¥E·C! ÁC! Á'CÁ(A,C! ÃCÃC! ÃEÃC! ÃC! Ã!.EÄDÄEÄ)EÅEÅEÅEc               ó    € V ^8„  d   QhRRRR/# )r2   Úexcr´   r:   zException | strr<   )r=   s   "r>   r?   r€   ®  s   € ÷ Eñ E Ið E°/ñ ErA   c                ó  € \        V\        4      '       d7   VP                  P                  R9   d   RVP                  P                  9   g   V# V P
                  p\        P                  P                  V P                  VP                  P                  R,          4      p\        V4      pV P                  e   \        RV R24      # VP                  '       d!   VP                  '       g   \        RV 24      # VP                  VP                  8w  g7   VP                  VP                  8w  g   VP                   VP                   8w  dÁ   V P"                  P%                  RR4      '       d   \        RV R24      # V P"                  P%                  R	4      f   V P"                  P%                  R
4      e   \        RV R24      # V P&                  e9   \)        R \)        V P&                  4      P+                  4        4       4      V n        V# )z”
Determine whether a connection error is a redirect that can be followed.

Return the new URI if it's a valid redirect. Else, return an exception.

ÚLocationzcannot follow redirect to z with a preexisting streamz)cannot follow redirect to non-secure URI rŽ   Fz'cannot follow cross-origin redirect to z with a Unix socketr—   r˜   z with an explicit host or portc              3  óZ   "  € T F!  w  rVP                  4       R9  g   K  W3x € K#  	  R# 5i)ÚauthorizationN)r½   Úcookiezproxy-authorization)Úlower)Ú.0ÚkeyÚvalues   &  r>   Ú	<genexpr>Ú+connect.process_redirect.<locals>.<genexpr>ë  s/   é € ð á*V™J˜CØŸ9™9›;ØQñRô %˜�Û*Vùs   ‚+ +)é,  i-  i.  i/  i3  i4  )r`   r   r_   Ústatus_coderS   r‚   ÚurllibÚparseÚurljoinr|   r%   r5   r„   rƒ   r   r—   r˜   r‡   rš   rL   r   Ú	raw_items)rH   r¹   Ú
old_ws_uriÚnew_uriÚ
new_ws_uris   &&   r>   Úprocess_redirectÚconnect.process_redirect®  sÑ  € ô �sœM×*Ò*Ø—‘×(Ñ(ðôð ˜cŸl™l×2Ñ2Ô2àˆJà—[‘[ˆ
Ü—,‘,×&Ñ& t§x¡x°·±×1EÑ1EÀjÕ1QÓRˆÜ˜wÓ'ˆ
ð �;‰;Ò"ÜØ,¨W¨IÐ5OÐPóð ð
 ××Ð Z×%6×%6Ð%6Ü Ð#LÈWÈIÐ!VÓWÐWð ×Ñ ×!2Ñ!2Ô2Ø�‰ *§/¡/Ô1Ø�‰ *§/¡/Ô1ð ×*Ñ*×.Ñ.¨v°u×=Ò=Ü!Ø=¸g¸Yð G)ð *óð ð ×+Ñ+×/Ñ/°Ó7ÒCØ×.Ñ.×2Ñ2°6Ó:ÒFä!Ø=¸g¸Yð G4ð 5óð ð ×&Ñ&Ò2Ü*1ñä*1°$×2IÑ2IÓ*J×*TÑ*TÔ*Vóó+�Ô'ð ˆrA   c               ó    € V ^8„  d   QhRRRR/# r°   r<   )r=   s   "r>   r?   r€   õ  s   € ÷  Nñ  N \ð  NÐ6Fñ  NrA   c              ƒ  	óœ  "  €  V P                   f   \        P                  ! 4       M\        P                  ! V P                   4      ;_uu_ 4        \	        \
        4       F9  p V P                  V4      G R j  x€L
 pVP                  4        Vu uuR R R 4       # 	  \        R\
         R24      h L7  \         dQ   pT P                  T4      p\        T\        4      '       d	   YTJ d   h YThYPn        \        T4      T n         R p?K¨  R p?ii ; i  + '       g   i     R # ; i  \        P                   d   p\!        R4      ThR p?ii ; i5i)Nz
more than z
 redirectsz"timed out during opening handshake)rv   rF   ÚCancelScopeÚ
fail_afterÚrangeÚMAX_REDIRECTSr¶   Ústart_keepaliver´   rÎ   r`   r|   r%   r‚   r   ÚTooSlowErrorÚTimeoutError)rH   r3   Ú_rµ   r¹   Ú
exc_or_uris   &&    r>   r(   Úconnect.connectõ  s.  é € ð	Nð ×$Ñ$Ò,ô × Ò Ô"ä—_’_ T×%6Ñ%6Ó7÷8ñ 8ô œ}Ö-�Að*Ø+/×+?Ñ+?ÀÓ+H×%H˜
ð  #×2Ñ2Ô4Ø)Ñ)÷/8ò 8ñ .ô* (¨*´]°OÀ:Ð(NÓOÐOñ' &IøÜ$ô %Ø%)×%:Ñ%:¸3Ó%?˜
Ü% j´)×<Ò<à)Ó0Ø %à&0Ð 9ð (2œHÜ*3°JÓ*?˜DœKÝ$ûð%ú÷8÷ 8ð 8ûô6 × Ñ ô 	NäÐCÓDÈ#ÐMûð	Nüs�   ‚E„AD# ÁDÁ#B1Á7B/
Á8B1Á<DÂ
D# ÂEÂDÂ/B1Â1D	Â<AD	ÄDÄD	ÄDÄD 	ÄD# ÄEÄ D# Ä#E	Ä8EÅE	Å	Ec               ó   € V ^8„  d   QhRR/# )r2   r:   r)   r<   )r=   s   "r>   r?   r€     s   € ÷ Yñ YÐ"2ñ YrA   c              ƒ  	óD  "  € V P                  4       G R j  x€L
   V P                  V P                  4      G R j  x€L
 V n        V P                  #  L9 L  \         d?   pT P                  \        T4      YP                  4      G R j  x€L 
  \        R4      hR p?ii ; i5i)Nz4expected __aexit_nursery__ to re-raise the exception)	Ú__aenter_nursery__r(   r3   rµ   ÚBaseExceptionÚ__aexit_nursery__ÚtypeÚ__traceback__r    )rH   r¹   s   & r>   Ú
__aenter__Úconnect.__aenter__  sƒ   é € Ø×%Ñ%Ó'×'Ð'ð	YØ$(§L¡L°·±Ó$>×>ˆDŒOØ—?‘?Ð"ñ 	(á>øäô 	YØ×(Ñ(¬¨c«°C×9JÑ9JÓK×KÑKÜ Ð!WÓXÐXûð	YüsN   ‚B –A—B œA ºA»A ÁB ÁA ÁBÁ(BÂB
ÂBÂBÂB c               ó(   € V ^8„  d   QhRRRRRRRR/# ©	r2   Úexc_typeztype[BaseException] | NoneÚ	exc_valuezBaseException | NoneÚ	tracebackzTracebackType | Noner:   r;   r<   )r=   s   "r>   r?   r€   %  s8   € ÷ Iñ Ià,ðIð (ðIð (ð	Ið
 
ñIrA   c              ƒ  	óæ   "  €   V P                   P                  4       G R j  x€L
  V =  V P                  WV4      G R j  x€L
  R #  L#  T = i ; i L  T P                  YT4      G R j  x€L 
  i ; i5i)N)rµ   Úacloserà   )rH   rç   rè   ré   s   &&&&r>   Ú	__aexit__Úconnect.__aexit__%  sf   é € ð	Ið$Ø—o‘o×,Ñ,Ó.×.Ð.à‘Oà×(Ñ(¨¸iÓH×HÒHñ	 /øà‘OúáHø�$×(Ñ(¨¸iÓH×HÒHüsY   ‚A1…A ¢A£A §A ªA1¿AÁ A1ÁA ÁAÁA ÁA1ÁA.Á'A*Á(A.Á.A1c               ó   € V ^8„  d   QhRR/# )r2   r:   r;   r<   )r=   s   "r>   r?   r€   3  s   € ÷ ?ñ ?¨$ñ ?rA   c              ƒ  	óÎ   "  € \        V R 4      '       d   \        R4      h\        P                  ! 4       V n        V P                  P                  4       G Rj  x€L
 V n        R#  L5i)Únursery_managerzconnect() isn't reentrantN)ÚhasattrÚRuntimeErrorrF   Úopen_nurseryrð   rã   r3   )rH   s   &r>   rÞ   Úconnect.__aenter_nursery__3  sL   é € Ü�4Ð*×+Ò+ÜÐ:Ó;Ð;Ü#×0Ò0Ó2ˆÔØ!×1Ñ1×<Ñ<Ó>×>ˆŽÑ>ùs   ‚AA%ÁA#ÁA%c               ó(   € V ^8„  d   QhRRRRRRRR/# ræ   r<   )r=   s   "r>   r?   r€   9  s2   € ÷ %ñ %à,ð%ð (ð%ð (ð	%ð
 
ñ%rA   c              ƒ  	ól  "  €  V P                   P                  WV4      G R j  x€L
  T = R #  L  \         dr   p\        T\        4      '       g   Q h \
        P                  P                  T4        R p?LN  \
        P                  P                   d    \        R4      Thi ; iR p?ii ; i  T = i ; i5i)Nz8unexpected multiple exceptions; please file a bug report)
rð   rì   rß   r`   ÚBaseExceptionGrouprF   Ú_utilÚ!raise_single_exception_from_groupÚMultipleExceptionErrorr    )rH   rç   rè   ré   r¹   s   &&&& r>   rà   Úconnect.__aexit_nursery__9  s¥   é € ð	%Ø×&Ñ&×0Ñ0°ÀiÓP×PÐPð Ò$ñ QøÜô 	Ü˜cÔ#5×6Ò6Ð6Ð6ðÜ—
‘
×<Ñ<¸S×AÑAøÜ—:‘:×4Ñ4ô Ü$ØNóàððþð		ûð Ñ$üsT   ‚B4„. £,¤. ¨B4¬. ®B*¹B%ÁA6Á1B- Á6,B"Â"B%Â%B*Â*B- Â-B1Â1B4c               ó   € V ^8„  d   QhRR/# )r2   r:   zAsyncIterator[ClientConnection]r<   )r=   s   "r>   r?   r€   S  s   € ÷ %ñ %Ð!@ñ %rA   c               	óX  "  € R p  T ;_uu_4       GR j  x€L
 pV5x € R R R 4      GR j  x€L
  R pK.   L L
  + GR j  x€L 
 '       g   i     L!; i  \          dÊ   p T P                  T4      pM  \          d   pTp R p?MR p?ii ; iYCJ d   h Te   YChTf   T P                  4       p\        T4      pT P                  P                  RT\        P                  ! T4      ^ ,          P                  4       4       \        P                  ! T4      G R j  x€L 
   R p?EK  R p?ii ; i5i)Nz0connect failed; reconnecting in %.1f seconds: %s)r´   r   rw   Únextry   Úinforé   Úformat_exception_onlyÚstriprF   Úsleep)rH   Údelaysrµ   r¹   Únew_excÚ
raised_excÚdelays   &      r>   Ú	__aiter__Úconnect.__aiter__S  sô   é € Ø*.ˆØð"ßŸ4™4 :Ø$Ó$÷  Ÿ4ðB ’÷C  Ÿ4Ÿ4œ4ûäô (ð
)Ø"×4Ñ4°SÓ9‘GøÜ ô )Ø(•Gûð)úð
 “>ØØÒ&Ø!Ð*ð ’>Ø!×2Ñ2Ó4�FÜ˜V›�Ø—‘× Ñ ØFØÜ×3Ò3°CÓ8¸Õ;×AÑAÓCôô
 —j’j Ó'×'×'Ð'ûð7(üsž   ‚D*‡A •3–A ™7ŸA ª5«A ¯D*³A µA ·A	½A ¾
A	Á	A	ÁA ÁD'ÁA1Á0D"Á1BÁ<BÁ>D"ÂBÂBD"ÄDÄD"ÄD*Ä"D'Ä'D*)rL   rµ   rŠ   rz   ry   r3   rð   r‡   rv   r   r‰   rs   ru   rt   rw   rm   rl   r5   r|   rN   r‚   i   )rd   re   rf   rg   rh   r   r   r   rE   r¡   r­   r¶   rÎ   r(   rã   rì   rÞ   rà   r  ri   r<   rA   r>   r(   r(   †   sL  † ñ`ðJQ
ð
 *.ðQ
ð -1ðQ
ð '+ðQ
ð !%ðQ
ð ?CðQ
ð 6:ðQ
ð #,ðQ
ð 26ðQ
ð )3ðQ
ð  -1ð!Q
ð" 37ð#Q
ð$ -1ð%Q
ð& FWð'Q
ð* &(ð+Q
ð, ')ð-Q
ð. &(ð/Q
ð0 ')ð1Q
ð2 <Cð3Q
ð6 @Eð7Q
ð8 ACð9Q
ð< %)ð=Q
ð@ <@÷AQ
õf-8õ^õ&+õZEõN NõNYõIõ?õ%÷4%ñ %rA   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r2   r�   rO   r|   r   r   r:   r(   r<   )r=   s   "r>   r?   r?   {  s0   € ÷ <ñ <Ø
ð<à	ð<ð ð<ð ñ	<rA   c           	     ó\   € Vf   VP                  R4      f   RpMRp\        RRVRRRV /VB # )	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`` argument is provided, to
        ``wss://localhost/``.

rl   zws://localhost/zwss://localhost/r|   rŽ   Tr�   r<   )rš   r(   )r�   r|   r   s   &&,r>   Úunix_connectr  {  s?   € ð* ‚{Ø�:‰:�eÓÒ$Ø#‰Cà$ˆCÜÑ;�sÐ; Ð;¨DÐ;°FÑ;Ð;rA   )Ú	ProxyType)r   Úsocks5hÚsocks5Úsocks4aÚsocks4TFc               ó(   € V ^8„  d   QhRRRRRRRR/# ©	r2   rs   r   r‚   r$   r   r   r:   r6   r<   )r=   s   "r>   r?   r?   ´  s6   € ÷ Jñ JØðJàðJð ðJð 
ñ	JrA   c           	   ‹  ó°  "  € \        \        V P                  ,          V P                  V P                  V P
                  V P                  \        V P                  ,          4      p \        P                  ! VP                  ! VP                  VP                  3/ VB G Rj  x€L
 4      #  L  \         d    h \         d   p\        R4      ThRp?ii ; i5i)z0Connect via a SOCKS proxy and return the socket.Nz failed to connect to SOCKS proxy)Ú
SocksProxyÚSOCKS_PROXY_TYPESr�   r—   r˜   ÚusernameÚpasswordÚSOCKS_PROXY_RDNSrF   ÚSocketStreamr(   ÚOSErrorr´   r   )rs   r‚   r   Úsocks_proxyr¹   s   &&,  r>   rž   rž   ´  s«   é € ô !Ü˜eŸl™lÕ+Ø�J‰JØ�J‰JØ�N‰NØ�N‰NÜ˜UŸ\™\Õ*ó
ˆð	JÜ×$Ò$Ø!×)Ò)¨&¯+©+°v·{±{ÑMÀfÑM×Móð ÙMøäô 	ØÜô 	JÜÐ?Ó@ÀcÐIûð	JüsB   ‚A#CÁ&;B, Â!B*Â"B, Â)CÂ*B, Â,CÃCÃCÃCÃCc               ó(   € V ^8„  d   QhRRRRRRRR/# r  r<   )r=   s   "r>   r?   r?   ž  s6   € ÷ Tñ TØðTàðTð ðTð 
ñ	TrA   c              ‹  ó    "  € \        R 4      h5i)z6connecting through a SOCKS proxy requires python-socks)ÚImportError)rs   r‚   r   s   &&,r>   rž   rž   ž  s   é € ô
 ÐRÓSÐSùs   ‚c               ó    € V ^8„  d   QhRRRR/# )r2   r5   r6   r:   r   r<   )r=   s   "r>   r?   r?   Ï  s   € ÷ ñ ¨ð ¸Hñ rA   c              ƒ  óH  "  € \        4       p\        P                  ! VP                  VP                  VP
                  R R7      p  V P                  R4      G Rj  x€L
 pV'       d   VP                  V4       MVP                  4        \        V4       KQ   L;  \         db   p\        TP                  \        4      '       g   Q hTP                  p^ÈTP                  u;8:  d   R8  d   M MTu Rp?# \        T4      hRp?i\         d   p\!        R4      ThRp?ii ; i5i)T)rs   i   NrÅ   z0did not receive a valid HTTP response from proxy)r    r   rÈ   Ú	read_lineÚ
read_exactÚread_to_eofÚreceive_someÚ	feed_dataÚfeed_eofrþ   ÚStopIterationr`   rÂ   rÆ   r   r´   r   )r5   ÚreaderÚparserÚdatar¹   r_   s   &     r>   Úread_connect_responser+  Ï  sê   é € Ü‹^€FÜ�^Š^Ø×ÑØ×ÑØ×ÑØô	€FðØØ×,Ñ,¨TÓ2×2ˆDßØ× Ñ  Õ&à—‘Ô!Ü�ŽLñ 3øô ô /Ü˜#Ÿ)™)¤X×.Ò.Ð.Ð.Ø—9‘9ˆØ�(×&Ñ&Ö,¨×,Ø�Oä$ XÓ.Ð.ûÜô Ü!Ø>ó
àð	ûðüs[   ‚AD"ÁB ÁBÁB Á(0B ÂDÂ$AD Ã/DÃ0D"Ã5D Ä DÄDÄDÄDÄD"rN   rl   rm   c               ó4   € V ^8„  d   QhRRRRRRRRR	RR
RRR/# )r2   rs   r   r‚   r$   rN   rO   rl   r~   rm   r   r   r:   r6   r<   )r=   s   "r>   r?   r?   ì  sN   € ÷ %ñ %Øð%àð%ð "ð	%ð
 
&ð%ð  ð%ð ð%ð ñ%rA   c             ‹  óR  "  € \         P                  ! V P                  V P                  3/ VB G R j  x€L
 p V P                  R8X  d^   Vf   \
        P                  ! 4       pVf   V P                  p\         P                  ! VVVRR7      pVP                  4       G R j  x€L
  Tp\        WV4      pVP                  V4      G R j  x€L
  \        V4      G R j  x€L
  V#  L­ LB L L  \         P                  \        3 d"    \         P                  ! T4      G R j  x€L 
  h i ; i5i)Nr–   Tr¦   )rF   r¡   r—   r˜   r�   r¨   r©   rª   r«   r   Úsend_allr+  r²   r´   r³   )	rs   r‚   rN   rl   rm   r   r5   r¬   rR   s	   &&$$$,   r>   rŸ   rŸ   ì  s  é € ô ×'Ò'¨¯
©
°E·J±JÑIÀ&ÑI×I€Fðà�<‰<˜7Ô"ØŠ{Ü ×7Ò7Ó9�ØÒ&Ø"'§*¡*�ÜŸšØØØ /Ø!%ô	ˆJð ×)Ñ)Ó+×+Ð+ØˆFô *¨%Ð9JÓKˆØ�o‰o˜gÓ&×&Ð&Ü# FÓ+×+Ð+ð €Mñ7 Jñ ,ñ
 	'Ù+øä�N‰NœIÐ&ô Ü×$Ò$ VÓ,×,Ñ,Øðüsi   ‚0D'²C ³D'¸A'C( ÂC"Â &C( ÃC$ÃC( ÃC&ÃC( ÃD'Ã"C( Ã$C( Ã&C( Ã(4D$ÄDÄD$Ä$D')r(   r  r)   )NN)SÚ
__future__r   r…   Úosrl   r¨   ré   Úurllib.parserÇ   Úcollections.abcr   r   r   Útypesr   Útypingr   r	   r
   rF   Úasyncio.clientr   Úclientr   r   Údatastructuresr   r   Ú
exceptionsr   r   r   r   r   Úextensions.baser   Úextensions.permessage_deflater   rS   r   Úhttp11r   r   r7   r   r   rs   r   r   r   r   Ústreamsr    r!   r"   r#   r|   r$   r%   rµ   r&   Úutilsr'   Ú__all__ÚintÚenvironrš   rÕ   r)   r(   r  Úpython_socksr  Úpython_socks.async_.trior  ÚSOCKS5ÚSOCKS4r  r  rž   r  r+  rŸ   r<   rA   r>   Ú<module>rE     sT  ðÝ "ã Û 	Û Û Û ß >Ñ >Ý ß )Ñ )ã å .ß ,ß 1÷õ õ 5Ý LÝ +ß )ß (ß JÓ JÝ "ß 4Ñ 4ß )Ý "Ý ò :€á�B—J‘J—N‘NÐ#=¸tÓDÓE€ôX)�zô X)÷xrñ r÷j<ð:4JÝ&Ý<ð 	�9×#Ñ#Ø�)×"Ñ"Ø�9×#Ñ#Ø�)×"Ñ"ð	Ðð 	�4Ø�%Ø�4Ø�%ð	ÐõJõ6ð:%ð %)ð	%ð
 )-ð%ð #'÷%ñ %øða ô T÷TðTús   Ã3E ÅE'Å&E'