+
    ii                        ^ RI Ht ^ RIt^ RIt^ RIt^RIHt ^RIH	t	 ^RI
HtHt ^RIHt ^RIHtHt . ROt]P&                   ! R	 R4      4       tR
 R ltR R lt]3R R lltR# )    )annotationsN)Headers)InvalidProxy)build_authorization_basic
build_host)
USER_AGENT)DELIMSWebSocketURIProxyc                  l    ] tR t^t$ RtR]R&   R]R&   R]R&   RtR]R	&   RtR]R
&   ]R R l4       t	Rt
R# )r   a  
Proxy address.

Attributes:
    scheme: ``"socks5h"``, ``"socks5"``, ``"socks4a"``, ``"socks4"``,
        ``"https"``, or ``"http"``.
    host: Normalized to lower case.
    port: Always set even if it's the default.
    username: Available when the proxy address contains `User Information`_.
    password: Available when the proxy address contains `User Information`_.

.. _User Information: https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1

strschemehostintportN
str | Noneusernamepasswordc                   V ^8  d   QhRR/# )   returnztuple[str, str] | None )formats   "W/home/wkmabra/.openclaw/workspace/venv/lib/python3.14/site-packages/websockets/proxy.py__annotate__Proxy.__annotate__)   s     . .1 .    c                	r    V P                   f   R # V P                  f   Q hV P                   V P                  3# )N)r   r   )selfs   &r   	user_infoProxy.user_info(   s2    == }}(((t}}--r   r   )__name__
__module____qualname____firstlineno____doc____annotations__r   r   propertyr    __static_attributes__r   r   r   r   r      s>     K
I
IHjHj. .r   c                    V ^8  d   QhRRRR/# )r   proxyr   r   r   r   )r   s   "r   r   r   0   s     /9 /9s /9u /9r   c                   \         P                  P                  V 4      pVP                  R9  d   \	        V RVP                   R24      hVP
                  f   \	        V R4      hVP                  R9  d   \	        V R4      hVP                  R8w  d   \	        V R4      hVP                  R8w  d   \	        V R4      hVP                  pVP
                  pVP                  ;'       g    VP                  R8X  d   R	M^PpVP                  pVP                  pVe   Vf   \	        V R
4      h V P                  R4       \#        W#WEV4      #   \         dw    TP                  R4      P                  4       pTeQ   Tf   Q h\         P                  P                  T\         R7      p\         P                  P                  T\         R7      p Li ; i)z
Parse and validate a proxy.

Args:
    proxy: proxy.

Returns:
    Parsed proxy.

Raises:
    InvalidProxy: If ``proxy`` isn't a valid proxy.

httpszscheme z isn't supportedzhostname isn't provided zpath is meaninglesszquery is meaninglesszfragment is meaninglessi  z"username provided without passwordasciiidna)safe)socks5hsocks5socks4asocks4r-   http)r.   /)urllibparseurlparser   r   hostnamepathqueryfragmentr   r   r   encodeUnicodeEncodeErrordecodequoter	   r   )r+   parsedr   r   r   r   r   s   &      r   parse_proxyrD   0   s    \\""5)F}}WW5GFMM?:J"KLL5";<<{{)#5"788||r5"899"5";<<]]F??D;;CC&--7":3DHH  05"FGG	AW tx88  A {{6"))+'''||))()@H||))()@HAs   *E A>G	G	c                    V ^8  d   QhRRRR/# )r   urir
   r   r   r   )r   s   "r   r   r   b   s     ! !< !J !r   c                   \         P                  P                  V P                   RV P                   24      '       d   R# \         P                  P                  4       pV P                  '       d   . ROpM. ROpV FJ  pVP                  V4      pVf   K  VR8X  d(   VP                  R4      '       d   RVR,          ,           pVu # 	  R# )	zM
Return the proxy to use for connecting to the given WebSocket URI, if any.

:Nsockszhttp://z
socks5h://:   NN)wssrI   r-   )wsrI   r-   r6   )	r8   requestproxy_bypassr   r   
getproxiessecureget
startswith)rF   proxiesschemesr   r+   s   &    r   	get_proxyrU   b   s    
 ~~""chhZq
#;<< nn'')G
zzz+2F# U%5%5i%@%@$uRy0L  r   c               (    V ^8  d   QhRRRRRRRR/# )	r   r+   r   ws_urir
   user_agent_headerr   r   bytesr   )r   s   "r   r   r      s6     I III "I 	Ir   c                   \        VP                  VP                  VP                  R R7      p\	        4       p\        VP                  VP                  VP                  4      VR&   Ve   W$R&   V P
                  e4   V P                  f   Q h\        V P
                  V P                  4      VR&   RV R2P                  4       VP                  4       ,           # )T)always_include_portHostz
User-AgentzProxy-AuthorizationzCONNECT z HTTP/1.1
)
r   r   r   rP   r   r   r   r   r?   	serialize)r+   rW   rX   r   headerss   &&&  r   prepare_connect_requestr_      s    
 fkk6;;SWXDiG fkk6==IGFO$ 1~~!~~))))BNNENN*
%& dV=)002W5F5F5HHHr   )rU   rD   r   )
__future__r   dataclassesurllib.parser8   urllib.requestdatastructuresr   
exceptionsr   r^   r   r   http11r   rF   r	   r
   __all__	dataclassr   rD   rU   r_   r   r   r   <module>ri      sc    "    # $ :  % 0 . . .</9d!N %/I Ir   