Ë
    +Œ:j{  ã                  óº  — d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZmZmZmZmZ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 ddlm Z  ee!e
ef   Z"ee!e#f   Z$ee$e!f   Z%ee&e$f   Z' ed«      Z( G d„ de«      Z) G d„ de«      Z* G d„ dee*«      Z+ G d„ de+«      Z, G d„ dee+   e*«      Z- G d„ dee'   e*«      Z. G d„ dee&   e*«      Z/y)é    )ÚannotationsN)Úabstractmethod)ÚAsyncExitStack)ÚIOBase)ÚIPv4AddressÚIPv6Address)ÚAddressFamily)ÚAnyÚCallableÚ
CollectionÚMappingÚTupleÚTypeVarÚUnioné   )Úcreate_task_group)ÚTypedAttributeProviderÚTypedAttributeSetÚtyped_attributeé   )Ú
ByteStreamÚListenerÚUnreliableObjectStream)Ú	TaskGroupÚT_Retvalc                  óž   — e Zd ZU  e«       Zded<    e«       Zded<    e«       Zded<    e«       Zded<    e«       Z	ded	<    e«       Z
ded
<   y)ÚSocketAttributer	   ÚfamilyÚSockAddrTypeÚlocal_addressÚintÚ
local_portúsocket.socketÚ
raw_socketÚremote_addressÚremote_portN)Ú__name__Ú
__module__Ú__qualname__r   r   Ú__annotations__r    r"   r$   r%   r&   © ó    úT/var/www/html/tokenscope/api/venv/lib/python3.12/site-packages/anyio/abc/_sockets.pyr   r   #   sP   … á+Ó-€FˆMÓ-á"1Ó"3€M�<Ó3á%Ó'€J�Ó'á /Ó 1€J�Ó1á#2Ó#4€N�LÓ4á&Ó(€K�Ô(r,   r   c                  ó:   — e Zd Zedd„«       Zeedd„«       «       Zy)Ú_SocketProviderc                óø  ‡ ‡‡‡— ddl mŠ t        j                  ˆ fd„t        j                  ˆˆ fd„t        j
                  ˆ fd„i}	  ‰‰ j                  j                  «       «      Š‰�ˆfd„|t        j                  <   ‰ j                  j                  t        j                  t        j                  fv r3ˆ fd„|t        j                  <   ‰�‰d   Šˆfd	„|t        j                  <   |S # t        $ r d ŠY Œ�w xY w)
Nr   )Úconvert_ipv6_sockaddrc                 ó0   •— ‰ j                   j                  S ©N)Ú_raw_socketr   ©Úselfs   €r-   ú<lambda>z2_SocketProvider.extra_attributes.<locals>.<lambda>8   s   ø€ ¨D×,<Ñ,<×,CÑ,C€ r,   c                 óD   •—  ‰ ‰j                   j                  «       «      S r3   ©r4   Úgetsockname)Úconvertr6   s   €€r-   r7   z2_SocketProvider.extra_attributes.<locals>.<lambda>9   s   ø€ ±7Ø× Ñ ×,Ñ,Ó.ó4€ r,   c                 ó   •— ‰ j                   S r3   )r4   r5   s   €r-   r7   z2_SocketProvider.extra_attributes.<locals>.<lambda><   s   ø€ °×0@Ñ0@€ r,   c                 ó   •— ‰ S r3   r+   )Úpeernames   €r-   r7   z2_SocketProvider.extra_attributes.<locals>.<lambda>E   s   ø€ À€ r,   c                 ó>   •— ‰ j                   j                  «       d   S )Nr   r9   r5   s   €r-   r7   z2_SocketProvider.extra_attributes.<locals>.<lambda>K   s   ø€ ˜×(Ñ(×4Ñ4Ó6°qÑ9€ r,   r   c                 ó   •— ‰ S r3   r+   )r&   s   €r-   r7   z2_SocketProvider.extra_attributes.<locals>.<lambda>N   s   ø€ À+€ r,   )Ú_core._socketsr1   r   r   r    r$   r4   ÚgetpeernameÚOSErrorr%   r	   ÚAF_INETÚAF_INET6r"   r&   )r6   Ú
attributesr;   r>   r&   s   ` @@@r-   Úextra_attributesz _SocketProvider.extra_attributes3   sé   û€ åEô ×"Ñ"Ó$CÜ×)Ñ)ô ,ô ×&Ñ&Ó(@ð4
ˆ
ð	Ù/6°t×7GÑ7G×7SÑ7SÓ7UÓ/VˆHð
 ÐÛ9IˆJ”×5Ñ5Ñ6ð ×Ñ×"Ñ"¤}×'<Ñ'<¼m×>TÑ>TÐ&UÑUó :ð Ü×*Ñ*ñð Ð#Ø& q™k�Û:M�
œ?×6Ñ6Ñ7àÐøô! ò 	ØŠHð	ús   Á C+ Ã+C9Ã8C9c                 ó   — y r3   r+   r5   s    r-   r4   z_SocketProvider._raw_socketR   s   € ð 	r,   N)ÚreturnzMapping[Any, Callable[[], Any]])rI   r#   )r'   r(   r)   ÚpropertyrG   r   r4   r+   r,   r-   r/   r/   2   s0   „ Øòó ðð< Øòó ó ñr,   r/   c                  ó   — e Zd ZdZy)ÚSocketStreamzu
    Transports bytes over a socket.

    Supports all relevant extra attributes from :class:`~SocketAttribute`.
    N©r'   r(   r)   Ú__doc__r+   r,   r-   rL   rL   X   ó   „ òr,   rL   c                  ó0   — e Zd Zedd„«       Zedd„«       Zy)ÚUNIXSocketStreamc              ƒ  ó   K  — y­w)zð
        Send file descriptors along with a message to the peer.

        :param message: a non-empty bytestring
        :param fds: a collection of files (either numeric file descriptors or open file or socket
            objects)
        Nr+   )r6   ÚmessageÚfdss      r-   Úsend_fdszUNIXSocketStream.send_fdsa   ó   è ø� ùó   ‚c              ƒ  ó   K  — y­w)a  
        Receive file descriptors along with a message from the peer.

        :param msglen: length of the message to expect from the peer
        :param maxfds: maximum number of file descriptors to expect from the peer
        :return: a tuple of (message, file descriptors)
        Nr+   )r6   ÚmsglenÚmaxfdss      r-   Úreceive_fdszUNIXSocketStream.receive_fdsk   rV   rW   N)rS   ÚbytesrT   zCollection[int | IOBase]rI   ÚNone)rY   r!   rZ   r!   rI   ztuple[bytes, list[int]])r'   r(   r)   r   rU   r[   r+   r,   r-   rQ   rQ   `   s(   „ Øòó ðð òó ñr,   rQ   c                  ó8   — e Zd ZdZedd„«       Z	 d	 	 	 	 	 dd„Zy)ÚSocketListenerz}
    Listens to incoming socket connections.

    Supports all relevant extra attributes from :class:`~SocketAttribute`.
    c              ƒ  ó   K  — y­w)zAccept an incoming connection.Nr+   r5   s    r-   ÚacceptzSocketListener.accept}   rV   rW   Nc              ƒ  ó  K  — t        «       4 ƒd {  –—† }|€!|j                  t        «       «      ƒ d {  –—† }	 | j                  «       ƒ d {  –—† }|j	                  ||«       Œ+7 ŒS7 Œ27 Œ# 1 ƒd {  –—†7  sw Y   y xY w­wr3   )r   Úenter_async_contextr   ra   Ú
start_soon)r6   ÚhandlerÚ
task_groupÚ
exit_stackÚstreams        r-   ÚservezSocketListener.serve�   s|   è ø€ ô
 "Ó#÷ 	7ð 	7 zØÐ!Ø#-×#AÑ#AÔBSÓBUÓ#V×V�
àØ#Ÿ{™{›}×,�Ø×%Ñ% g¨vÔ6ð ð		7øàVøð -ø÷	7÷ 	7ñ 	7üsT   ‚B ‘A%’B •A+´A'µA+ÁA)ÁA+Á%B Á'A+Á)A+Á+A=Á1A4Á2A=Á9B )rI   rL   r3   )re   zCallable[[SocketStream], Any]rf   zTaskGroup | NonerI   r]   )r'   r(   r)   rN   r   ra   ri   r+   r,   r-   r_   r_   v   sA   „ ñð ò-ó ð-ð (,ð7à.ð7ð %ð7ð 
ô	7r,   r_   c                  ó   — e Zd ZdZdd„Zy)Ú	UDPSocketz{
    Represents an unconnected UDP socket.

    Supports all relevant extra attributes from :class:`~SocketAttribute`.
    c              ƒ  óH   K  — | j                  |||ff«      ƒ d{  –—† S 7 Œ­w)zKAlias for :meth:`~.UnreliableObjectSendStream.send` ((data, (host, port))).N)Úsend)r6   ÚdataÚhostÚports       r-   ÚsendtozUDPSocket.sendto–   s$   è ø€ à—Y‘Y  t¨T lÐ3Ó4×4Ð4Ð4ús   ‚"› œ"N)rn   r\   ro   Ústrrp   r!   rI   r]   )r'   r(   r)   rN   rq   r+   r,   r-   rk   rk   �   s   „ ñô5r,   rk   c                  ó   — e Zd ZdZy)ÚConnectedUDPSocketzy
    Represents an connected UDP socket.

    Supports all relevant extra attributes from :class:`~SocketAttribute`.
    NrM   r+   r,   r-   rt   rt   ›   rO   r,   rt   )0Ú
__future__r   ÚsocketÚabcr   Ú
contextlibr   Úior   Ú	ipaddressr   r   r	   Útypingr
   r   r   r   r   r   r   Ú_core._tasksr   Ú_core._typedattrr   r   r   Ú_streamsr   r   r   Ú_tasksr   rr   ÚIPAddressTyper!   ÚIPSockAddrTyper   r\   ÚUDPPacketTyper   r   r/   rL   rQ   r_   rk   rt   r+   r,   r-   ú<module>rƒ      sú   ðÝ "ã Ý Ý %Ý ß .Ý  ÷÷ ñ õ -÷ñ ÷
 CÑ BÝ à�c˜;¨Ð3Ñ4€Ø�s˜C�x‘€Ø�^ SÐ(Ñ)€Ø�e˜^Ð+Ñ,€Ù�:Ó€ô)Ð'ô )ô#Ð,ô #ôL�:˜ô ô�|ô ô,7�X˜lÑ+¨_ô 7ô2	5Ð& }Ñ5°ô 	5ôÐ/°Ñ6¸õ r,   