+
    niu                         R t ^ RIt^ RIt^ RIHt ^ RIt^ RIt]P                  ! R4      t	R R lt
]P                  ! R4      t]P                  ! R4      t]P                  ! R4      tRR	 R
 lltRtR R ltR R ltR# )zIPv6 helper functions.N)Listz0+([0-9a-f]+)c                0    V ^8  d   QhR\         R\        /#    addressreturn)bytesstr)formats   "bC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO\maestro-backend\venv\Lib\site-packages\dns/ipv6.py__annotate__r      s     B Bu B B    c                   \        V 4      ^8w  d   \        R4      h\        P                  ! V 4      p. p^ p\        V4      pW48  d`   WV^,            P	                  4       p\
        P                  V4      pVe   VP                  ^4      pVP                  V4       V^,          pKe  ^ p^ pRp	Rp
\        ^4       F@  pW#,          R8w  d#   V
'       d   TpW,
          pW8  d   T	pTpRp
K0  K2  V
'       d   K<  Tp	Rp
KB  	  V
'       d   ^pW,
          pW8  d   T	pTpV^8  d   V^ 8X  dX   V^8X  g   V^8X  dJ   V^,          R8X  d<   V^8X  d   RpMRpV\        P                  P                  V R	,          4      ,           pV# R
P                  VRV 4      R,           R
P                  W'V,           R 4      ,           p V# R
P                  V4      pV# )zConvert an IPv6 address in binary form to text form.

*address*, a ``bytes``, the IPv6 address in binary form.

Raises ``ValueError`` if the address isn't 16 bytes long.
Returns a ``str``.
z IPv6 addresses are 16 bytes longNF0Tffffz::z::ffff::   NN:)len
ValueErrorbinasciihexlifydecode_leading_zeromatchgroupappendrangednsipv4	inet_ntoajoin)r   hexchunksilchunkm
best_startbest_lenstartlast_was_zeroendcurrent_lenprefixthexs   &              r   r    r       s    7|r;<<


7
#CF	ACA
%A%%' &=GGAJEe	Q JHEM1X9!k)!&J*H %  E M  k!J"H!|?AQ6!9PVCV1}"CHH..ws|<<D K ,-((6x"7"9:;<  K xxKr   s   (.*):(\d+\.\d+\.\d+\.\d+)$s   ::.*s   .*::$c                R    V ^8  d   QhR\         \        ,          R\        R\        /# )r   textignore_scoper   )r	   r   bool)r
   s   "r   r   r   h   s*     X( X(C%K X(t X( X(r   c                R   \        V \        4      '       g   V P                  4       pMT pV'       dO   VP                  R4      p\	        V4      pV^8X  d   V^ ,          pM!V^8  d   \
        P                  P                  hVR8X  d   \
        P                  P                  hVP                  R4      '       d2   VP                  R4      '       g   \
        P                  P                  hVP                  R4      '       d2   VP                  R4      '       g   \
        P                  P                  hVR8X  d   Rp\        P                  V4      pVe   \
        P                  P                  VP                  ^4      4      pVP                  ^4      P                  4        RV^ ,          R V^,          R RV^,          R V^,          R 2P                  4       p\         P                  V4      pVe   VR	,          pM\"        P                  V4      pVe   VRR pVP                  R4      p\	        V4      pV^8  d   \
        P                  P                  hR
p. p	V F  p
V
R8X  dY   V'       d   \
        P                  P                  hRp\%        ^ ^V,
          ^,           4       F  pV	P'                  R4       K  	  Kb  \	        V
4      pV^8  d   \
        P                  P                  hV^8w  d   R^V,
          ,          V
,           p
V	P'                  V
4       K  	  V^8  d#   V'       g   \
        P                  P                  hRP)                  V	4      p \*        P,                  ! V4      #   \*        P.                  \0        3 d    \
        P                  P                  hi ; i)a  Convert an IPv6 address in text form to binary form.

*text*, a ``str`` or ``bytes``, the IPv6 address in textual form.

*ignore_scope*, a ``bool``.  If ``True``, a scope will be ignored.
If ``False``, the default, it is an error for a scope to be present.

Returns a ``bytes``.
   %r      :s   ::s   0::Nr   02x:   NNFTs   0000   0r   )
isinstancer   encodesplitr   r   	exceptionSyntaxErrorendswith
startswith
_v4_endingr   r   	inet_atonr   r   _colon_colon_start_colon_colon_endr   r   r!   r   	unhexlifyError	TypeError)r1   r2   btextpartsr%   r'   br#   
seen_empty	canonicalc_lcs   &&           r   rB   rB   h   s    dE""D!J6!HEU--+++|mm'''			ennU&;&;mm'''			$		(8(8(?(?mm'''	% 	A}HHqwwqz*wwqz  "#1QqT#JqtCj!A$sAaD:N
&( 	 	  'A}b	""5)=#2JE [[FFA1umm'''JI8mm///J1a!eai(  ) ) QBAvmm///QwQV_)Q  	1uZmm'''HHYE
(!!%((NNI& (mm'''(s   M0 06N&c                0    V ^8  d   QhR\         R\        /# r   )r   r3   )r
   s   "r   r   r      s     . .u . .r   c                ,    V P                  \        4      # )zIs the specified address a mapped IPv4 address?

*address*, a ``bytes`` is an IPv6 address in binary form.

Returns a ``bool``.
)r@   _mapped_prefix)r   s   &r   	is_mappedrS      s     n--r   c                F    V ^8  d   QhR\         \        ,          R\         /# )r   r1   r   )r	   r   )r
   s   "r   r   r      s     & &sU{ &s &r   c                *    \        \        V 4      4      # )a  Verify that *address* is a valid text form IPv6 address and return its
canonical text form.  Addresses with scopes are rejected.

*text*, a ``str`` or ``bytes``, the IPv6 address in textual form.

Raises ``dns.exception.SyntaxError`` if the text is not valid.
)r    rB   )r1   s   &r   canonicalizerV      s     Yt_%%r   )Fs             )__doc__r   retypingr   dns.exceptionr   dns.ipv4compiler   r    rA   rC   rD   rB   rR   rS   rV    r   r   <module>r^      sv   $   	   

+,BJ ZZ67
ZZ) ::i( X(v ,.&r   