§
    Hºi½	  ã                   óÜ   — U d dl Zd dlZd dlZd dlmZmZmZ dedefd„Z	dede
fd„Zi Zeee
f         ed<   d	ede
fd
„Zd	ede
ddfd„Zdgg d¢dgdgdgdgdœZeeee         f         ed<   dS )é    N)ÚDictÚListÚTupleÚversionÚreturnc                 ó  — |                       d¦  «        }g }|D ]_}d                     t          j        d„ |¦  «        ¦  «        }	 |                     t          |¦  «        ¦  «         ŒO# t          $ r Y  nw xY wt          |¦  «        S )Nú.Ú c                 ó   — | t           j        v S )N)ÚstringÚdigits)Úxs    úR/home/mmwave/public_html/mmwave/venv/lib/python3.11/site-packages/dns/_features.pyú<lambda>z"_tuple_from_text.<locals>.<lambda>   s   € ¨!­v¬}Ð*<€ ó    )ÚsplitÚjoinÚ	itertoolsÚ	takewhileÚappendÚintÚ	ExceptionÚtuple)r   Ú
text_partsÚ	int_partsÚ	text_partÚdigit_prefixs        r   Ú_tuple_from_textr   	   s¢   € Ø—’˜sÑ#Ô#€JØ€IØð ð ˆ	Ø—w’wÝÔÐ <Ð <¸iÑHÔHñ
ô 
ˆð	Ø×Ò�S Ñ.Ô.Ñ/Ô/Ð/Ð/øÝð 	ð 	ð 	ØˆEˆEð	øøøå�ÑÔÐs   Á"A)Á)
A7Á6A7Úrequirementc                 óî   — |                       d¦  «        \  }}	 t          j                             |¦  «        }|€dS n# t          $ r Y dS w xY wt          |¦  «        }t          |¦  «        }||k     rdS dS )zeIs the requirement fulfilled?

    The requirement must be of the form

        package>=version
    z>=NFT)r   Ú	importlibÚmetadatar   r   r   )r   ÚpackageÚminimumr   Ú	t_versionÚ	t_minimums         r   Ú_version_checkr'      s—   € ð #×(Ò(¨Ñ.Ô.Ñ€GˆWðÝÔ$×,Ò,¨WÑ5Ô5ˆàˆ?Ø�5ð øåð ð ð Øˆuˆuðøøøå  Ñ)Ô)€IÝ  Ñ)Ô)€IØ�9ÒÐØˆuØˆ4s   š!> ¾
AÁAÚ_cacheÚfeaturec                 óÚ   — t                                | ¦  «        }|�|S t                               | ¦  «        }|€dt           | <   dS d}|D ]}t          |¦  «        sd} nŒ|t           | <   |S )zòIs *feature* available?

    This tests if all optional packages needed for the
    feature are available and recent enough.

    Returns ``True`` if the feature is available,
    and ``False`` if it is not or if metadata is
    missing.
    NFT)r(   ÚgetÚ_requirementsr'   )r)   ÚvalueÚrequirementsÚokr   s        r   Úhaver0   2   sŠ   € õ �JŠJ�wÑÔ€EØÐØˆÝ ×$Ò$ WÑ-Ô-€LØÐà�ˆw‰ØˆuØ	€BØ#ð ð ˆÝ˜kÑ*Ô*ð 	ØˆBØˆEð	ð …Fˆ7�OØ€Ir   Úenabledc                 ó   — |t           | <   dS )z«Force the status of *feature* to be *enabled*.

    This method is provided as a workaround for any cases
    where importlib.metadata is ineffective, or for testing.
    N)r(   )r)   r1   s     r   Úforcer3   M   s   € ð …Fˆ7�O€O€Or   zcryptography>=45)zhttpcore>=1.0.0zhttpx>=0.28.0z	h2>=4.2.0zaioquic>=1.2.0z
idna>=3.10z
trio>=0.30z
wmi>=1.5.1)ÚdnssecÚdohÚdoqÚidnaÚtrioÚwmir,   )Úimportlib.metadatar!   r   r   Útypingr   r   r   Ústrr   Úboolr'   r(   Ú__annotations__r0   r3   r,   © r   r   ú<module>r@      sN  ðð Ð Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $ð˜cð  eð ð ð ð ðØðà	ðð ð ð ð0 €ˆˆS�$ˆYŒÐ Ð Ñ ð�#ð ˜$ð ð ð ð ð6�3ð  ð ¨$ð ð ð ð ð "Ð"Ø<Ð<Ð<ØÐØˆNØˆNØˆ>ð	'ð 	'€ˆt�C˜˜cœ�NÔ#ð 	ð 	ñ 	ð 	ð 	r   