ó
    Ö›‘h%  ã            	       óÜ  • % S r SSKrSSKrSSKJrJrJrJrJrJ	r	J
r
JrJrJrJrJr  SSKJr  SSKJrJrJr  SSKJrJrJr  SSKJr  \" \" S5      =(       d    S	5      r\R8                  R;                  S
5      (       d  \R8                  S:X  a  S\
4S\
4/r\\\\4      \ S'   OS\4/r\\\\4      \ S'    " S S\5      r! " S S\5      r" " S S\5      r# " S S\5      r$ " S S\5      r% " S S\5      r&\" \&5      r'S\'4S\4S\4S\" \#5      4S\" \#5      4S \" \#5      4S!\4/\&l(        \RR                  r)\" \'5      /\)l*        \\)l+        \RX                  r,\'/\,l*        S" r-S# r.S$ r/g)%z>
POSIX implementation of local network interface enumeration.
é    N)ÚCDLLÚPOINTERÚ	StructureÚc_char_pÚc_intÚc_ubyteÚc_uint8Úc_uint32Úc_ushortÚc_void_pÚcastÚpointer)Úfind_library)ÚAF_INETÚAF_INET6Ú	inet_ntop)ÚAnyÚListÚTuple)ÚnativeStringÚcÚ ÚfreebsdÚdarwinÚsin_lenÚ
sin_familyÚ_sockaddrCommonc                   ó$   • \ rS rSrS \S-  4/rSrg)Úin_addré,   é   © N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú_fields_Ú__static_attributes__r"   ó    ÚfC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/internet/test/_posixifaces.pyr   r   ,   s   † à	�G˜a‘KÐ ðƒHr*   r   c                   ó$   • \ rS rSrS\S-  4/rSrg)Úin6_addré2   r   é   r"   Nr#   r"   r*   r+   r-   r-   2   s   † à	�G˜b‘LÐ!ðƒHr*   r-   c                   ó$   • \ rS rSr\S\4/-   rSrg)Úsockaddré8   Úsin_portr"   N)r$   r%   r&   r'   r   r   r(   r)   r"   r*   r+   r1   r1   8   s   † ØØ	�XÐð"ñ ƒHr*   r1   c                   ó*   • \ rS rSr\S\4S\4/-   rSrg)Úsockaddr_iné>   r3   Úsin_addrr"   N)	r$   r%   r&   r'   r   r   r   r(   r)   r"   r*   r+   r5   r5   >   s!   † ØØ	�XÐØ	�WÐð"ñ ƒHr*   r5   c                   ó0   • \ rS rSr\S\4S\4S\4/-   rSr	g)Úsockaddr_in6éE   r3   Úsin_flowinfor7   r"   N)
r$   r%   r&   r'   r   r   r
   r-   r(   r)   r"   r*   r+   r9   r9   E   s)   † ØØ	�XÐØ	˜Ð"Ø	�XÐð"ñ ƒHr*   r9   c                   ó   • \ rS rSrSrg)ÚifaddrséM   r"   N)r$   r%   r&   r'   r)   r"   r*   r+   r=   r=   M   s   † Úr*   r=   Úifa_nextÚifa_nameÚ	ifa_flagsÚifa_addrÚifa_netmaskÚifa_dstaddrÚifa_datac                 ó|   • [         R                  R                  S5      (       a  USS S:X  a  USS S-   USS -   $ U$ )aj  
On FreeBSD, kill the embedded interface indices in link-local scoped
addresses.

@param family: The address family of the packed address - one of the
    I{socket.AF_*} constants.

@param packed: The packed representation of the address (ie, the bytes of a
    I{in_addr} field).
@type packed: L{bytes}

@return: The packed address with any FreeBSD-specific extra bits cleared.
@rtype: L{bytes}

@see: U{https://twistedmatrix.com/trac/ticket/6843}
@see: U{http://www.freebsd.org/doc/en/books/developers-handbook/ipv6.html#ipv6-scope-index}

@note: Indications are that the need for this will be gone in FreeBSD >=10.
r   Né   s   þ€s     r!   )ÚsysÚplatformÚ
startswith)ÚfamilyÚpackeds     r+   Ú_maybeCleanupScopeIndexrM   d   sG   € ô( ‡|�|×Ñ˜y×)Ñ)¨f°R°a¨j¸KÓ.GØ�b�qˆz˜KÑ'¨&°°¨*Ñ4Ð4Ø€Mr*   c                  óÆ  • [        5       n [        [        U 5      5      S:  a
  [        5       e/ n U (       Ga  U S   R                  (       aá  U S   R                  S   R
                  nU[        :X  a'  [        U S   R                  [        [        5      5      nO3U[        :X  a'  [        U S   R                  [        [        5      5      nOSnU(       aZ  [        US   R                  R                  SS 5      n[        X$5      nUR!                  U S   R"                  U[%        X$5      45        U S   R&                  n U (       a  GM  [)        U 5        U$ ! [)        U 5        f = f)z‹
Call C{getifaddrs(3)} and return a list of tuples of interface name, address
family, and human-readable address representing its results.
r   N)Ú	ifaddrs_pÚ
getifaddrsr   ÚOSErrorrB   r   r   r   r   r5   r   r9   Úbytesr7   r   rM   Úappendr@   r   r?   Úfreeifaddrs)r=   ÚresultsrK   ÚaddrrL   s        r+   Ú_interfacesrW   }   s'  € ô
 ‹k€GÜ”'˜'Ó"Ó# aÓ'Ü‹iˆØ€GðßØ�q‰z×"×"Ø  ™×,Ñ,¨QÑ/×:Ñ:�ØœWÓ$Ü ¨¡
× 3Ñ 3´W¼[Ó5IÓJ‘DØœxÓ'Ü ¨¡
× 3Ñ 3´W¼\Ó5JÓK‘Dà�DæÜ" 4¨¡7×#3Ñ#3×#;Ñ#;¹AÐ#>Ó?�FÜ4°VÓD�FØ—N‘NØ  ™×,Ñ,¨f´iÀÓ6OÐPôð ˜a‘j×)Ñ)ˆG÷# ‰gô& 	�GÔØ€Nøô 	�GÕús   °DE ÅE c                  óæ   • / n [        5        H`  u  pn[        U5      n[        U5      nU[        R                  :X  d  M2  UR	                  S5      (       d  MJ  U R                  U SU 35        Mb     U $ )z—
Return a list of strings in colon-hex format representing all the link local
IPv6 addresses available on the system, as reported by I{getifaddrs(3)}.
zfe80:Ú%)rW   r   Úsocketr   rJ   rS   )ÚretListÚ	interfacerK   Úaddresss       r+   ÚposixGetLinkLocalIPv6Addressesr^   ž   sh   € ð
 €GÜ&1¦mÑ"ˆ	˜7Ü  Ó+ˆ	Ü˜wÓ'ˆØ”V—_‘_Õ$¨×);Ñ);¸G×)DÓ)DØ�N‰N˜g˜Y a¨	 {Ð3Ö4ñ	 '4ð
 €Nr*   )0Ú__doc__rZ   rH   Úctypesr   r   r   r   r   r   r	   r
   r   r   r   r   Úctypes.utilr   r   r   r   Útypingr   r   r   Útwisted.python.compatr   ÚlibcrI   rJ   r   ÚstrÚ__annotations__r   r-   r1   r5   r9   r=   rO   r(   rP   ÚargtypesÚrestyperT   rM   rW   r^   r"   r*   r+   Ú<module>ri      s«  ðòó
 Û 
÷÷ ÷ ó õ %ß /Ñ /ß #Ñ #å .á‰L˜Ó×# Ó$€à‡<�<×Ñ˜9×%Ñ%¨¯©¸Ó)Aà	�GÐØ	�wÐð.€O�T˜%  S ™/Ñ*ô ð 
�xÐ ð.€O�T˜%  S ™/Ñ*ó ô
ˆiô ôˆyô ôˆyô ô�)ô ô�9ô ô	ˆiô 	ñ �GÓ€	à�ÐØ�ÐØ�(ÐØ‘˜Ó"Ð#Ø‘G˜HÓ%Ð&Ø‘G˜HÓ%Ð&Ø�Ðð€Ô ð �_‰_€
Ù˜yÓ)Ð*€
Ô Ø€
Ô à×Ñ€Ø!�{€Ô òò2óBr*   