+
    +O|ju  ã                   óþ   € 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   "ÚAC:\Users\alokc\chatbot\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WÈ8”  d   T	pTpRp
K0  K2  V
'       d   K<  Tp	Rp
KB  	  V
'       d   ^pW¹,
          pWÈ8”  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# )z½Convert 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��×%Ñ%Ó'ˆô ×Ñ Ó&ˆØŠ=Ø—G‘G˜A“JˆEØ�‰�eÔØ	ˆQ�Šð €JØ€HØ€EØ€MÜ�1ŽXˆØ�9˜ÔßØ�Ø!�k�ØÔ)Ø!&�JØ*�HØ %’ñ ÷ ‘ØˆEØ ŠMñ ÷ ØˆØ•kˆØÔ!ØˆJØ"ˆHØ�!„|Ø˜Œ? ¨A¤°¸Q´À6È!Å9ÐPVÔCVà˜1Œ}Ø‘à"�ØœCŸH™H×.Ñ.¨w°s­|Ó<Õ<ˆDð €Kð —‘˜  Ð,Ó-Øõà—(‘(˜6¨xÕ"7Ð"9Ð:Ó;õ<ñ ð €Kð �x‰x˜ÓˆØ€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â  € ô �dœE×"Ò"Ø—‘“‰àˆçØ—‘˜DÓ!ˆÜ�‹JˆØ�Œ6Ø˜!•H‰EØ�ŒUÜ—-‘-×+Ñ+Ð+à�„|Ü�m‰m×'Ñ'Ð'Ø	�‰˜×	Ò	 e§n¡n°U×&;Ò&;Ü�m‰m×'Ñ'Ð'Ø	×	Ñ	˜$×	Ò	¨×(8Ñ(8¸×(?Ò(?Ü�m‰m×'Ñ'Ð'Ø	�%ŒØˆô 	×Ñ˜Ó€AØ‚}Ü�H‰H×Ñ˜qŸw™w q›zÓ*ˆà�w‰w�q‹z× Ñ Ó"Ð# 1 Q q¥T¨# J¨q°­t°C¨j¸¸!¸A½$¸s¸ÀAÀaÅDÈÀ:ÐNß
‰&‹(ð 	ô 	× Ñ  Ó'€AØ‚}Ø�b•	‰ä×"Ñ" 5Ó)ˆØŠ=Ø˜#˜2�JˆEð �[‰[˜Ó€FÜˆF‹€AØˆ1„uÜ�m‰m×'Ñ'Ð'Ø€JØ€IÛˆØ�Œ8ßÜ—m‘m×/Ñ/Ð/ØˆJÜ˜1˜a !�e a�iÖ(�Ø× Ñ  Ö)ó )ô �Q“ˆBØ�AŒvÜ—m‘m×/Ñ/Ð/Ø�QŒwØ˜Q �V•_¨Õ)�Ø×Ñ˜QÖñ ð 	ˆ1„u—ZÜ�m‰m×'Ñ'Ð'Ø�H‰H�YÓ€Eð
(Ü×!Ò! %Ó(Ð(øÜ�N‰NœIÐ&ô (Ü�m‰m×'Ñ'Ð'ð(ú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      # )z€Is 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   € ÷ &ñ &”sœU•{ð &¤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   € ô ”Y˜t“_Ó%Ð%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 �ZŠZÐ6Ó7€
Ø—Z’Z Ó)Ð Ø—:’:˜iÓ(Ð ÷X(ðv ,€õ.÷&r   