+
    üÐj®  ã                   ó  € R t ^ RIt^ RIHtHt ^ RIHt ^ RIHt ^ RI	t	^ RIH
t
 ^ RIHt ^ RIHtHt ^ RIHt ]! ]4      ]	P$                  ! R	R	R
7       ! R R4      4       4       t]! ]4      ]	P$                  ! R	R	R
7       ! R R4      4       4       t]! ]4       ! R R4      4       t]	P$                  ! R	R	R
7      ]! ]4       ! R R4      4       4       t]	P$                  ! RRRR	R7      ]! ]4       ! R R4      4       4       t ! R R]4      tR# )z*
Address objects for network connections.
N)ÚOptionalÚUnion)Úwarn)Úimplementer)ÚLiteral)ÚIAddress)Ú_asFilesystemBytesÚ_coerceToFilesystemEncoding)ÚplatformT)Úunsafe_hashÚauto_attribsc                   óŒ   a € ] tR t^t o Rt]P                  ! ]P                  P                  RR.4      R7      t	V 3R lt
RtV tR# )ÚIPv4AddressaP  
An L{IPv4Address} represents the address of an IPv4 socket endpoint.

@ivar type: A string describing the type of transport, either 'TCP' or
    'UDP'.

@ivar host: A string containing a dotted-quad IPv4 address; for example,
    "127.0.0.1".
@type host: C{str}

@ivar port: An integer representing the port number.
@type port: C{int}
ÚTCPÚUDP©Ú	validatorc                óp   <€ V ^8„  d   Qh/ S[ S[R,          S[R,          3,          ;R&   S[;R&   S[;R&   # )é   r   r   ÚtypeÚhostÚport©r   r   ÚstrÚint)ÚformatÚ__classdict__s   "€Ú:/usr/lib/python3/dist-packages/twisted/internet/address.pyÚ__annotate__ÚIPv4Address.__annotate__   s>   ø‡ ‚ ñ" ‘˜•¡¨¥Ð.Õ
/ñ ñ# ñ( �Iñ) ñ* �Iò+ ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚattrÚibÚ
validatorsÚin_r   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r      s7   ø‡ € ñð 37·'²'Ø—/‘/×%Ñ% u¨e nÓ5ô3€D÷# ƒ r    r   c                   ó”   a € ] tR t^/t o Rt]P                  ! ]P                  P                  RR.4      R7      t	^ t
^ tV 3R ltRtV tR# )ÚIPv6Addressa¹  
An L{IPv6Address} represents the address of an IPv6 socket endpoint.

@ivar type: A string describing the type of transport, either 'TCP' or
    'UDP'.

@ivar host: A string containing a colon-separated, hexadecimal formatted
    IPv6 address; for example, "::1".
@type host: C{str}

@ivar port: An integer representing the port number.
@type port: C{int}

@ivar flowInfo: the IPv6 flow label.  This can be used by QoS routers to
    identify flows of traffic; you may generally safely ignore it.
@type flowInfo: L{int}

@ivar scopeID: the IPv6 scope identifier - roughly analagous to what
    interface traffic destined for this address must be transmitted over.
@type scopeID: L{int} or L{str}
r   r   r   c                óž   <€ V ^8„  d   Qh/ S[ S[R,          S[R,          3,          ;R&   S[;R&   S[;R&   S[;R&   S[ S[S[3,          ;R&   # )r   r   r   r   r   r   ÚflowInfoÚscopeIDr   )r   r   s   "€r   r   ÚIPv6Address.__annotate__/   s`   ø‡ ‚ ñ2 ‘˜•¡¨¥Ð.Õ
/ñ ñ3 ñ8 �Iñ9 ñ: �Iñ; ñ< Ññ= ñ> ‘3™�8�_Ñ ò? r    r!   N)r"   r#   r$   r%   r&   r'   r(   r)   r*   r   r2   r3   r+   r,   r-   r.   s   @r   r0   r0   /   sC   ø‡ € ñð, 37·'²'Ø—/‘/×%Ñ% u¨e nÓ5ô3€Dð
 €HØ €G÷? ƒ r    r0   c                   ó   € ] tR t^QtRtRtR# )Ú_ProcessAddressz<
An L{interfaces.IAddress} provider for process transports.
r!   N)r"   r#   r$   r%   r&   r,   r!   r    r   r6   r6   Q   s   † õr    r6   c                   ó0   a € ] tR t^Xt o RtV 3R ltRtV tR# )ÚHostnameAddresszï
A L{HostnameAddress} represents the address of a L{HostnameEndpoint}.

@ivar hostname: A hostname byte string; for example, b"example.com".
@type hostname: L{bytes}

@ivar port: An integer representing the port number.
@type port: L{int}
c                ó2   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   # )r   Úhostnamer   )Úbytesr   )r   r   s   "€r   r   ÚHostnameAddress.__annotate__X   s   ø‡ ‚ ñ �Oñ ñ �Iò r    r!   N)r"   r#   r$   r%   r&   r+   r,   r-   r.   s   @r   r8   r8   X   s   ø‡ € ñ÷ ƒ r    r8   F)r   ÚreprÚeqr   c                   óò   a € ] tR t^it o Rt]P                  ! ]P                  P                  ]	4      R7      t
]! ]P                  RR4      e   V 3R lR ltM	V 3R lR ltV 3R	 lR
 ltR tV 3R ltRtV tR# )ÚUNIXAddresszy
Object representing a UNIX socket endpoint.

@ivar name: The filename associated with this socket.
@type name: C{bytes}
)Ú	converterÚsamefileNc                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r   ÚotherÚreturn©ÚobjectÚbool)r   r   s   "€r   r   ÚUNIXAddress.__annotate__y   s   ø€ ÷ 	ñ 	¡ð 	©4ñ 	r    c                óÎ  € \        WP                  4      '       g   \        # V P                  VP                  8H  pV'       gZ   V P                  '       dH   VP                  '       d6    \        P
                  P                  V P                  VP                  4      # V#   \         d     T# \        \        3 d)   p\        P                  ! 4       '       g   Th Rp?T# Rp?ii ; i)zh
Overriding C{attrs} to ensure the os level samefile
check is done if the name attributes do not match.
N)Ú
isinstanceÚ	__class__ÚNotImplementedÚnameÚosÚpathrB   ÚOSErrorÚ	TypeErrorÚ
ValueErrorr
   ÚisLinux)ÚselfrE   ÚresÚes   &&  r   Ú__eq__ÚUNIXAddress.__eq__y   s´   € ô
 ˜e§^¡^×4Ò4Ü%Ð%Ø—)‘)˜uŸz™zÑ)ˆCß˜4Ÿ9Ÿ9˜9¨¯¯¨ð ÜŸ7™7×+Ñ+¨D¯I©I°u·z±zÓBÐBð ˆJøô ô Øð ˆJô "¤:Ð.ô  ô $×+Ò+×-Ò-Ø˜ó .àˆJûð ús$   Á(3B ÂC$Â,C$Â;C$Â<CÃC$c                ó&   <€ V ^8„  d   QhRS[ RS[/# rD   rG   )r   r   s   "€r   r   rJ   �   s   ø€ ÷ 	"ñ 	"¡ð 	"©4ñ 	"r    c                óv   € \        WP                  4      '       d   V P                  VP                  8H  # \        # ©N)rL   rM   rO   rN   )rV   rE   s   &&r   rY   rZ   �   s*   € Ü˜%§¡×0Ò0Ø—y‘y E§J¡JÑ.Ð.Ü!Ð!r    c                ó    <€ V ^8„  d   QhRS[ /# )r   rF   )r   )r   r   s   "€r   r   rJ   ”   s   ø€ ÷ (ñ (™#ñ (r    c                óL   € V P                   pVe   \        RV4      MR pRV: R2# )NÚ zUNIXAddress(Ú))rO   r	   )rV   rO   Úshows   &  r   Ú__repr__ÚUNIXAddress.__repr__”   s.   € Ø�y‰yˆØ8<Ò8HÔ*¨2¨tÔ4ÈdˆØ˜d™X QÐ'Ð'r    c                ó  € V P                   f   \        V P                  R 34      #  \        P                  ! V P                   4      p\        VP
                  VP                  34      #   \         d    \        T P                   4      u # i ; ir]   )rO   ÚhashrM   rP   ÚstatÚst_inoÚst_devrR   )rV   Ús1s   & r   Ú__hash__ÚUNIXAddress.__hash__™   sl   € Ø�9‰9ÒÜ˜Ÿ™¨Ð.Ó/Ð/ð	#Ü—’˜Ÿ™Ó#ˆBÜ˜Ÿ™ B§I¡IÐ.Ó/Ð/øÜô 	#Ü˜Ÿ	™	“?Ò"ð	#ús   §A A( Á( BÂ
Bc                ó6   <€ V ^8„  d   Qh/ S[ S[,          ;R&   # )r   rO   )r   r;   )r   r   s   "€r   r   rJ   i   s   ø‡ ‚ ñ ‘5�/ñ ò r    r!   )r"   r#   r$   r%   r&   r'   r(   Ú
convertersÚoptionalr   rO   ÚgetattrrP   rQ   rY   rc   rk   r+   r,   r-   r.   s   @r   r@   r@   i   sm   ø‡ € ñð !ŸGšGØ—/‘/×*Ñ*Ð+=Ó>ô€Dñ ˆr�w‰w˜
 DÓ)Ò5÷	ñ 	÷,	"ð 	"÷
(ð (ò
#÷a ƒ r    r@   c                   ó6   a € ] tR t^§t o RtV 3R lR ltRtV tR# )Ú_ServerFactoryIPv4Addressz@Backwards compatibility hack. Just like IPv4Address in practice.c                ó&   <€ V ^8„  d   QhRS[ RS[/# rD   rG   )r   r   s   "€r   r   Ú&_ServerFactoryIPv4Address.__annotate__ª   s   ø€ ÷ ñ ™Fð ¡tñ r    c                óT  € \        V\        4      '       d.   \        R \        ^R7       V P                  V P
                  3V8H  # \        V\        4      '       dK   V P                  V P                  V P
                  3pVP                  VP                  VP
                  3pW#8H  # \        # )z?IPv4Address.__getitem__ is deprecated.  Use attributes instead.)ÚcategoryÚ
stacklevel)	rL   Útupler   ÚDeprecationWarningr   r   r   r   rN   )rV   rE   ÚaÚbs   &&  r   rY   Ú _ServerFactoryIPv4Address.__eq__ª   s„   € Ü�eœU×#Ò#ÜØTÜ+Øõð
 —I‘I˜tŸy™yÐ)¨UÑ2Ð2Ü˜œ{×+Ò+Ø—‘˜DŸI™I t§y¡yÐ1ˆAØ—‘˜UŸZ™Z¨¯©Ð4ˆAØ‘6ˆMÜÐr    r!   N)r"   r#   r$   r%   r&   rY   r,   r-   r.   s   @r   rr   rr   §   s   ø‡ € ÙJ÷ö r    rr   )r&   rP   Útypingr   r   Úwarningsr   Úzope.interfacer   r'   r   Útwisted.internet.interfacesr   Útwisted.python.filepathr   r	   Útwisted.python.runtimer
   Úsr   r0   r6   r8   r@   rr   r!   r    r   Ú<module>r„      s  ðñó
 
ß "Ý å &ã Ý å 0ß SÝ +ñ ˆXÓØ‡‚�D tÔ,÷ð ó -ó ðñ, ˆXÓØ‡‚�D tÔ,÷!ð !ó -ó ð!ñ@ ˆXÓ÷ð ó ðð ‡‚�D tÔ,ÙˆXÓ÷ð ó ó -ðð ‡‚�E ¨%¸dÔCÙˆXÓ÷5#ð 5#ó ó Dð5#ôx ö r    