Ë

����†£éf0Ö��ã������������!�������óÊ��—�d�Z�ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZm
Z
mZmZmZ�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZd„�Zd„�Z ejB������������������jE������������������d«������Z#e#rUddl$Z%ddl&Z&e%jN������������������Z(e%jR������������������jT������������������jV������������������Z,�G�d„�de(«������Z-�G�d	„�d
e&j\������������������«������Z/n
�G�d„�d
«������Z/e#Z0	�ddl1Z1ej������������������Z3�G�d„�dejh������������������jj������������������«������Z6�G�d„�dejh������������������jn������������������«������Z8�G�d„�dejh������������������jj������������������«������Z9�G�d„�dejh������������������jj������������������«������Z:ejv������������������jx������������������Z<d„�Z=d„�Z>d„�Z?�e@ed«������r
ej‚������������������aBnej†������������������aBd„�ZDd„�ZEd„�ZFd„�ZG	�ded„ZHdfd „ZIdd!ddd"d"dd#ddddej”������������������f
d$ej–������������������j˜������������������d%eMd&eeN���d'eOd(eeM���d)eOd*ePd+ePd,ee���d-eMd.ePd/eeM���d0eePeMf���d1ed2���d3eeO���d4ej–������������������j˜������������������f d5„ZQd6„�ZRd7„�ZS	�dgd8ed9eej–������������������j˜������������������eTf���d:ed;eeN���d4eeOeNf���f
d<„ZU	�	�	�	�	�	�	�	�	�	�dhd8ed:ee���d;eeN���d=ePd*ePd>ee
ej¬������������������j®������������������ej°������������������j²������������������f������d?eeT���d+ePd@ePdAePdBeej–������������������j˜���������������������d4efdC„ZZ	�	�	�	�	�	�	�	�	�	�did$ej–������������������j˜������������������d%eMd&eeN���d'eOd(eeM���d)eOd=ePd*ePd+ePd@ePd8ee���dAePd4ej–������������������j˜������������������fdE„Z[	�	�	�	�	�	�	�	�	�	�djd$ej–������������������j˜������������������d%eMd&eeN���d'eOd(eeM���d)eOd=ePd*ePd+ePdFee���dGee���dAePd4eej–������������������j˜������������������ePf���fdH„Z\dI„�Z]dJ„�Z^	�dgd8ed9eej–������������������j˜������������������eTf���d;eeN���d4eeOeNf���fdK„Z_	�	�	�	�	�dkd8ed;eeN���d*ePd>ee
ej¬������������������j®������������������ej°������������������j²������������������f������d?eeT���d+ePd4eej–������������������j˜������������������eNf���fdL„Z`dM„�Za	�	�	�	�	�	�	�dld$ej–������������������j˜������������������d%eMd&eeN���d'eOd(eeM���d)eOd*ePd+ePd8ee���d4ej–������������������j˜������������������fdN„ZbdO„�ZcdPeeM���d0eePeMf���d4e1jÈ������������������fdQ„Ze	�	�	�	�	�	�	�	�	�	�dmd$ej–������������������j˜������������������d%eMd&eeN���d'eOd(eeM���d)eOd*ePd+ePd8ee1jÌ���������������������dRee1jÈ���������������������dPeeM���d0eePeMf���d4ej–������������������j˜������������������fdS„Zg	�	�	�	�	�	�	�	�	�dnd$ej–������������������j˜������������������d%eMd&eeN���d'eOd(eeM���d)eOd*ePd+ePdTeejÐ������������������jÒ���������������������d0eePeMf���dPeeM���d4ej–������������������j˜������������������fdU„ZhejÔ������������������jÖ������������������ejØ������������������jÚ������������������ddDdddddddd"ej°������������������jÜ������������������f
d%eMdVeej¬������������������j®������������������eMf���dWeejÔ������������������jÞ������������������eMf���dXeejØ������������������jà������������������eMf���d&eeN���d'eOd>ee
ej¬������������������j®������������������ej°������������������j²������������������f������dYeeej¬������������������j®������������������eMf������dZePd[eeN���d(eeM���d)eOd\eOd]ePd^eej¬������������������j®������������������eMf���d4ef d_„Z;�G�d`„�daejâ������������������«������ZrddDdddderjæ������������������fd%eMdbejè������������������jê������������������dBeej–������������������j˜���������������������d'eOd&eeN���d[eeN���d(eeM���d)eOdcerd4dfdd„Zvy#�e2$�r��G�d„�d
«������Z1Y�Œkw�xY�w)ozTalk to a DNS server.é����N)ÚAnyÚDictÚOptionalÚTupleÚUnionc�����������������óx���—�|�€y�|�t��������j�������������������«�������z
��}|dk��rt��������j������������������j������������������‚|S�)Nç��������)ÚtimeÚdnsÚ	exceptionÚTimeout)Ú
expirationÚtimeouts���  úR/var/lib/jenkins/workspace/mettalog/venv/lib/python3.12/site-packages/dns/query.pyÚ
_remainingr���/���s7���€�ØÐØØœ4Ÿ9™9›;Ñ&€Gؐ#‚~܏m‰m×#Ñ#Ð#Ø€Nó����c�����������������óJ���—�|€y�t��������t��������j������������������«�������|�z���|«������S�©N)Úminr
���)r���r���s���  r���Ú_expiration_for_this_attemptr���8���s#���€�ØÐØÜŒty‰y‹{˜WÑ$ jÓ1Ð1r���Údohc�������������������ó2���‡�—�e�Zd�Zˆ�fd„Z	�dd„Z	�dd„Zˆ�xZS�)Ú_NetworkBackendc�����������������óZ���•—�t���������‰|���«��������||�_��������||�_��������||�_��������||�_��������y�r���)ÚsuperÚ__init__Ú_local_portÚ	_resolverÚ_bootstrap_addressÚ_family)ÚselfÚresolverÚ
local_portÚbootstrap_addressÚfamilyÚ	__class__s���     €r���r���z_NetworkBackend.__init__G���s,���ø€�Ü‰GÑÔØ)ˆDÔØ%ˆDŒNØ&7ˆDÔ#Ø!ˆDLr���c�����������������ól��—�g�}t��������|«������\��}}t��������j������������������j������������������|«������r|j	������������������|«�������nŽ|�j
������������������|j	������������������|�j
������������������«�������nft
��������|«������}|�j������������������}	|rt��������j������������������j������������������|«������}	|�j������������������j������������������||	|¬«������}
|
j������������������«�������}|D�]Â��}t��������j������������������j������������������|«������}|€|�j������������������dk7��r-t��������j������������������j������������������||�j������������������f|«������}
nd�}
t��������|t��������j ������������������|
«������}t#��������d|«������}	�t%��������|t��������j������������������j������������������||f|«������|«�������t'��������|«������c�S��t*��������j,������������������‚#�t(��������$�r�Y�Œàw�xY�w)N)r%���Úlifetimer���g�������@)Ú_compute_timesr���ÚinetÚ
is_addressÚappendr���r���r ���Úaf_for_addressr���Úresolve_nameÚ	addressesr���Úlow_level_address_tupleÚ_make_socketÚsocketÚSOCK_STREAMr���Ú_connectÚ_CoreSyncStreamÚ	ExceptionÚhttpcoreÚConnectError)r!���ÚhostÚportr���Ú
local_addressÚsocket_optionsr/���Ú_r���r%���ÚanswersÚaddressÚafÚsourceÚsockÚattempt_expirations���                r���Úconnect_tcpz_NetworkBackend.connect_tcpN���sˆ��€�ð�ˆIÜ*¨7Ó3‰MˆAˆz܏x‰x×"Ñ" 4Ô(Ø× Ñ  Õ&Ø×(Ñ(Ð4Ø× Ñ  ×!8Ñ!8Õ9ä$ ZÓ0ØŸ™Ù Ü ŸX™X×4Ñ4°]ÓCFØŸ.™.×5Ñ5Ø °'ð�6ó�ð�$×-Ñ-Ó/	Û$Ü—X‘X×,Ñ,¨WÓ5Ø Ð,°×0@Ñ0@ÀAÒ0EÜ ŸX™X×=Ñ=Ø&¨×(8Ñ(8Ð9¸2ó‘Fð�"FÜ# B¬×(:Ñ(:¸FÓCÜ%AÀ#ÀzÓ%RÐ"ðÜØÜŸ™×8Ñ8¸'À4¸È"ÓMØ*ôô
�+¨4Ó0Ò0ð!�%ô&�×'Ñ'Ð'øô�!ò�Ùðús���Å7F'Æ'	F3Æ2F3c�����������������ó���—�t���������‚r���©ÚNotImplementedError)r!���Úpathr���r<���s���    r���Úconnect_unix_socketz#_NetworkBackend.connect_unix_socketu���s
���€�ô�&Ð%r���r���)Ú__name__Ú
__module__Ú__qualname__r���rD���rI���Ú
__classcell__©r&���s���@r���r���r���F���s���ø„�ô	"ð�FJó%	(ðP�15÷	&r���r���c�������������������ó>���‡�—�e�Zd�Zdddej������������������dœˆ�fd„
Zˆ�xZS�)Ú_HTTPTransportr���N)r#���r$���r"���r%���c����������������óž���•—�|€dd�l�}|j������������������j������������������«�������}t��������‰|���|i�|¤Ž�t��������||||«������|�j������������������_��������y�©Nr���)Údns.resolverr"���ÚResolverr���r���r���Ú_poolÚ_network_backend)	r!���r#���r$���r"���r%���ÚargsÚkwargsr���r&���s	���        €r���r���z_HTTPTransport.__init__{���sM���ø€�ð�Ðã#àŸ<™<×0Ñ0Ó2Ü‰GÑ˜dÐ- fÒ-Ü*9ؘ*Ð&7¸ó+ˆDJ‰JÕ'r���)rJ���rK���rL���r2���Ú	AF_UNSPECr���rM���rN���s���@r���rP���rP���z���s!���ø„�ð�Ø"ØØ×#Ñ#÷
	ò�	r���rP���c�������������������ó���—�e�Zd�Zd„�Zy)rP���c�����������������ó���—�t���������‚r���rF���)r!���r9���r:���r���r;���s���     r���rD���z_HTTPTransport.connect_tcp‘���s���€�Ü%Ð%r���N)rJ���rK���rL���rD���©�r���r���rP���rP������s���„�ó	&r���c�������������������ót���—�e�Zd�ZdZ�G�d„�de«������Z�G�d„�de«������Z�G�d„�d«������Z�G�d„�d	«������Ze	d
„�«�������Z
y)Ússlr���c�������������������ó���—�e�Zd�Zy)ússl.WantReadExceptionN©rJ���rK���rL���r\���r���r���ÚWantReadExceptionr`���ž���ó���„�Ør���rb���c�������������������ó���—�e�Zd�Zy)ússl.WantWriteExceptionNra���r\���r���r���ÚWantWriteExceptionre���¡���rc���r���rf���c�������������������ó���—�e�Zd�Zy)ússl.SSLContextNra���r\���r���r���Ú
SSLContextrh���¤���rc���r���ri���c�������������������ó���—�e�Zd�Zy)ú
ssl.SSLSocketNra���r\���r���r���Ú	SSLSocketrk���§���rc���r���rl���c�����������������ó���—�t��������d«������‚)Nzno ssl support)r6���)ÚclsrW���rX���s���   r���Úcreate_default_contextzssl.create_default_contextª���s���€�äÐ,Ó-Ð-r���N)rJ���rK���rL���Ú	CERT_NONEr6���rb���rf���ri���rl���Úclassmethodro���r\���r���r���r^���r^���›���sG���„�؈	ô	 	ô�	ô	 ô�	÷	ñ�	÷	ñ�	ð�
ñ	.ó�
ñ	.r���r^���c�������������������ó���—�e�Zd�ZdZy)ÚUnexpectedSourcez=A DNS query response came from an unexpected address or port.N©rJ���rK���rL���Ú__doc__r\���r���r���rs���rs���´���s���„�ÚGr���rs���c�������������������ó���—�e�Zd�ZdZy)ÚBadResponsez<A DNS query response does not respond to the question asked.Nrt���r\���r���r���rw���rw���¸���s���„�ÚFr���rw���c�������������������ó���—�e�Zd�ZdZy)ÚNoDOHzMDNS over HTTPS (DOH) was requested but the httpx module is not
    available.Nrt���r\���r���r���ry���ry���¼���ó���„�òr���ry���c�������������������ó���—�e�Zd�ZdZy)ÚNoDOQzNDNS over QUIC (DOQ) was requested but the aioquic module is not
    available.Nrt���r\���r���r���r|���r|���Á���rz���r���r|���c�����������������óD���—�t��������j�������������������«�������}|�€|d�fS�|||�z���fS�r���)r
���)r���Únows���  r���r)���r)���Ê���s+���€�Ü
)‰)‹+€C؀ؐTˆ{ÐàS˜7‘]Ð#Ð#r���c�����������������óÄ��—�|r.t��������|�t��������j������������������«������r|�j������������������«�������dkD��ryt	��������«�������}d}|r|t
��������j������������������z��}|r|t
��������j������������������z��}|r|j������������������|�|«�������|€d�}n6|t��������j������������������«�������z
��}|dk��rt��������j������������������j������������������‚|j������������������|«������st��������j������������������j������������������‚y�)Nr���Tr	���)Ú
isinstancer^���rl���ÚpendingÚ_selector_classÚ	selectorsÚ
EVENT_READÚEVENT_WRITEÚregisterr
���r���r���r
���Úselect)ÚfdÚreadableÚwritabler=���r���ÚselÚeventsr���s���        r���Ú	_wait_forr���Ò���s»���€�ñ�”J˜r¤3§=¡=Ô1°b·j±j³lÀQÒ6FØÜ
Ó
€CØ
€FÙØ”)×&Ñ&Ñ&ˆÙØ”)×'Ñ'Ñ'ˆÙ
؏‰R˜Ô ØÐ؉àœtŸy™y›{Ñ*ˆØcŠ>Ü—-‘-×'Ñ'Ð'؏:‰:gÔ܏m‰m×#Ñ#Ð#ð�r���c�����������������ó���—�|�a�y�r���)r‚���)Úselector_classs��� r���Ú_set_selector_classr���î���s	���€�ð
�%Or���ÚPollSelectorc�����������������ó"���—�t��������|�ddd|«�������y�)NTF©r���©Úsr���s���  r���Ú_wait_for_readabler–�����s���€�Ü
ˆau˜d JÕ/r���c�����������������ó"���—�t��������|�ddd|«�������y�)NFTr“���r”���s���  r���Ú_wait_for_writabler˜�����s���€�Ü
ˆa˜˜d JÕ/r���c�����������������óú���—�	�t���������j������������������j������������������|�|d���«������}t���������j������������������j������������������|�|d���«������}||k(��xr�|dd��|dd��k(��S�#�t���������j������������������j������������������$�r�Y�yw�xY�w)Nr���Fé���)r���r*���Ú	inet_ptonr���ÚSyntaxError)r@���Úa1Úa2Ún1Ún2s���     r���Ú_addresses_equalr¡���
��s{���€�ðÜ
X‰X×
Ñ
  B q¡EÓ
*ˆÜ
X‰X×
Ñ
  B q¡EÓ
*ˆð�‰8Ò(˜˜1˜2˜ " Q R &Ñ(Ð(øô�=‰=×$Ñ$ò�Ùðús���‚AA�ÁA:Á9A:c�����������������ó¦���—�|syt��������|�||«������s-t��������j������������������j������������������|d���«������r|dd��|dd��k(��ry|ryt	��������d|›�d|›�«������‚)NTr���rš���Fzgot a response from z instead of )r¡���r���r*���Úis_multicastrs���)r@���Úfrom_addressÚdestinationÚignore_unexpecteds���    r���Ú_matches_destinationr§�����sh���€�ñ�Øܘ˜L¨+Ô6܏‰×јk¨!™nÔ-°,¸q¸rÐ2BÀkÐRSÐRTÀoÒ2UàÙ	ØÜ
Ø
˜|˜n¨L¸[¸MÐJóð�r���Tc�����������������óî��—�d�}d�}	�t���������j������������������j������������������|�«������}|�}|r3t���������j������������������j������������������|«������}|r||k7��r
t	��������d«������‚|}|r"|s 	�t���������j������������������j������������������|«������}|r"t���������j������������������j
������������������||f|«������}|r"t���������j������������������j
������������������||f|«������}|||fS�#�t��������$�r�|r‚�Y�Œ´w�xY�w#�t��������$�r�t	��������d«������‚w�xY�w)Nz5different address families for source and destinationz3source_port specified but address family is unknown)r���r*���r-���r6���Ú
ValueErrorÚ
any_for_afr0���)Úwherer:���rA���Úsource_portÚwhere_must_be_addressr@���r¥���Úsafs���        r���Ú_destination_and_sourcer¯���&��s
��€�ð
�
€BØ€KðÜ
X‰X×
$Ñ
$ UÓ
+ˆØˆñ
�܏h‰h×%Ñ% fÓ-ˆÙ
àbŠyÜ ØKóð�ð�ˆBÙ™6ð	TÜ—X‘X×(Ñ(¨Ó,ˆFñ�Ü—h‘h×6Ñ6¸ÀTÐ7JÈBÓOˆÙ
Ü—‘×1Ñ1°6¸;Ð2GÈÓLˆØ˜VÐ$Ð$øô?�ò�Ù Øñ�!ðûô,�ò�	TäÐRÓSÐSð	Tús���†!C
�Á!C�Ã
CÃCÃC4c�����������������óÐ���—�t��������|�|«������}	�|j������������������d«�������||j������������������|«�������|r|j������������������|d|¬«������S�|S�#�t��������$�r�|j������������������«��������‚�w�xY�w)NF)Údo_handshake_on_connectÚserver_hostname)Úsocket_factoryÚsetblockingÚbindÚwrap_socketr6���Úclose)r@���ÚtyperA���Ússl_contextr²���r•���s���      r���r1���r1���R��sv���€�ܐr˜4Ó €AðØ	
‰
eÔØÐØ
F‰F6ŒNÙà×*Ñ*ØØ(-Ø /ð�+ó�ð�
ð�ˆHøÜò�Ø	‰Œ	Ø
ðús���Ž9A
�ÁA
�Á
A%i»��Fz
/dns-queryÚqr«���r���r:���rA���r¬���Úone_rr_per_rrsetÚignore_trailingÚsessionrH���Úpostr$���Úverifyr"���zdns.resolver.Resolverr%���Úreturnc�����������
������ó��—�t���������st��������‚|r%t��������|t��������j������������������«������st��������d«������‚|�j
������������������«�������}t��������||||d«������\��}}}d}ddi}|mt��������j������������������j������������������|«������rN|t��������j������������������k(��rdj������������������|||	«������}n)|t��������j������������������k(��rdj������������������|||	«������}n|}|€d}d}n
|d���}|d	���}t��������|d
d
||||
|¬«������}|rt!��������j"������������������|«������}nt��������j������������������d
d
||¬«������}|5�}|
r<|j%������������������dt'��������t)��������|«������«������d
œ«�������|j+������������������|||¬«������}nKt-��������j.������������������|«������j1������������������d«������}|j3������������������«�������}|j5������������������||d|i¬«������}ddd«�������j6������������������dk��s|j6������������������dkD��r0t��������dj������������������||j6������������������|j8������������������«������«������‚t��������j:������������������j=������������������|j8������������������|�j>������������������|�j@������������������||¬«������}|jB������������������jE������������������«�������|_#��������|�jI������������������|«������stJ��������‚|S�#�1�sw�Y���ŒÑxY�w)a´��Return the response obtained after sending a query via DNS-over-HTTPS.

    *q*, a ``dns.message.Message``, the query to send.

    *where*, a ``str``, the nameserver IP address or the full URL. If an IP address is
    given, the URL will be constructed using the following schema:
    https://<IP-address>:<port>/<path>.

    *timeout*, a ``float`` or ``None``, the number of seconds to wait before the query
    times out. If ``None``, the default, wait forever.

    *port*, a ``int``, the port to send the query to. The default is 443.

    *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source
    address.  The default is the wildcard address.

    *source_port*, an ``int``, the port from which to send the message. The default is
    0.

    *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset.

    *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the
    received message.

    *session*, an ``httpx.Client``.  If provided, the client session to use to send the
    queries.

    *path*, a ``str``. If *where* is an IP address, then *path* will be used to
    construct the URL to send the DNS query to.

    *post*, a ``bool``. If ``True``, the default, POST method will be used.

    *bootstrap_address*, a ``str``, the IP address to use to bypass resolution.

    *verify*, a ``bool`` or ``str``.  If a ``True``, then TLS certificate verification
    of the server is done using the default CA bundle; if ``False``, then no
    verification is done; if a `str` then it specifies the path to a certificate file or
    directory which will be used for verification.

    *resolver*, a ``dns.resolver.Resolver`` or ``None``, the resolver to use for
    resolution of hostnames in URLs.  If not specified, a new resolver with a default
    configuration will be used; note this is *not* the default resolver as that resolver
    might have been configured to use DoH causing a chicken-and-egg problem.  This
    parameter only has an effect if the HTTP library is httpx.

    *family*, an ``int``, the address family.  If socket.AF_UNSPEC (the default), both A
    and AAAA records will be retrieved.

    Returns a ``dns.message.Message``.
    z)session parameter must be an httpx.ClientFNÚacceptzapplication/dns-messagezhttps://{}:{}{}zhttps://[{}]:{}{}r���rš���T)r;���Úhttp1Úhttp2r¿���r#���r$���r"���r%���)rÃ���rÄ���r¿���Ú	transport)zcontent-typezcontent-length)ÚheadersÚcontentr���ó���=r���)rÆ���r���ÚparamséÈ���i+��z2{} responded with status code {}
Response body: {}©ÚkeyringÚrequest_macr»���r¼���)&Úhave_dohry���r€���ÚhttpxÚClientr©���Úto_wirer¯���r���r*���r+���r2���ÚAF_INETÚformatÚAF_INET6rP���Ú
contextlibÚnullcontextÚupdateÚstrÚlenr¾���Úbase64Úurlsafe_b64encodeÚrstripÚdecodeÚgetÚstatus_coderÇ���ÚmessageÚ	from_wirerÌ���rÍ���ÚelapsedÚ
total_secondsr
���Úis_responserw���)rº���r«���r���r:���rA���r¬���r»���r¼���r½���rH���r¾���r$���r¿���r"���r%���Úwirer@���r=���Ú
the_sourcerÅ���rÆ���Úurlr;���r#���ÚcmÚresponseÚtwireÚrs���                            r���Úhttpsrì���f��sz��€�õH�܈ٔz '¬5¯<©<Ô8ÜÐDÓEÐEà9‰9‹;€DÜ1Ø
ˆtV˜[¨%óÑ€RˆˆJð�€IØÐ2Ð3€GØ	€~œ#Ÿ(™(×-Ñ-¨eÔ4Ø
”—‘ÒØ#×*Ñ*¨5°$¸Ó=‰CØ
”6—?‘?Ò
"Ø%×,Ñ,¨U°D¸$Ó?‰Càˆð�Ð؈
؉
à" 1™
ˆ
Ø ‘]ˆ
ÜØ#ØØØØØ+ØØô	€Iñ�Ü0:×0FÑ0FÀwÓ0O‰ä
\‰\ ¨D¸È9Ô
UˆØ	ð�ˆwñ�ØN‰Nà$=Ü&)¬#¨d«)£nñô
ð�—|‘| C°À$ÐPW|ÓX‰Hä×+Ñ+¨DÓ1×8Ñ8¸Ó>ˆDØ—K‘K“MˆEØ—{‘{ؘW¨g¸uÀe¸nð�#ó�ˆH÷ð(�×јcÒ! X×%9Ñ%9¸CÒ%?Üð
"ß"(¡&¨°×0DÑ0DÀh×FVÑFVÓ"Wó
ð�	
ô�	‰×ÑØ×ÑØ—	‘	Ø—M‘MØ)Ø'ð�	ó�	€Að�×
Ñ
×
+Ñ
+Ó
-€A„FØ=‰=˜ÔÜÐØ€H÷Gð�ús
���Ä%B
I?É?Jc�����������������ó`���—�	�	�|�j������������������|«������S�#�t��������$�r�t��������|�|«�������Y�nw�xY�wŒ.)z‹Reads a datagram from the socket.
    A Timeout exception will be raised if the operation is not completed
    by the expiration time.
    )ÚrecvfromÚBlockingIOErrorr–���)rB���Úmax_sizer���s���   r���Ú	_udp_recvrñ���ú��s9���€�ð
�ð	1Ø—=‘= Ó*Ð*øÜò�	1Ü˜t ZÖ0ð	1úð�s���ƒ�”,«,c�����������������óˆ���—�	�	�|r|�j������������������||«������S�|�j������������������|«������S�#�t��������$�r�t��������|�|«�������Y�nw�xY�wŒB)z¦Sends the specified datagram to destination over the socket.
    A Timeout exception will be raised if the operation is not completed
    by the expiration time.
    )ÚsendtoÚsendrï���r˜���)rB���Údatar¥���r���s���    r���Ú	_udp_sendrö�����sL���€�ð
�ð	1ÙØ—{‘{ 4¨Ó5Ð5à—y‘y “Ð&øÜò�	1Ü˜t ZÖ0ð	1úð
�s���ƒ(�—(�¨A�¿A�rB���Úwhatr¥���r���c�����������������ó¶���—�t��������|t��������j������������������j������������������«������r|j	������������������«�������}t��������j
������������������«�������}t
��������|�|||«������}||fS�)aý��Send a DNS message to the specified UDP socket.

    *sock*, a ``socket``.

    *what*, a ``bytes`` or ``dns.message.Message``, the message to send.

    *destination*, a destination tuple appropriate for the address family
    of the socket, specifying where to send the query.

    *expiration*, a ``float`` or ``None``, the absolute time at which
    a timeout exception should be raised.  If ``None``, no timeout will
    occur.

    Returns an ``(int, float)`` tuple of bytes sent and the sent time.
    )r€���r���rà���ÚMessagerÑ���r
���rö���)rB���r÷���r¥���r���Ú	sent_timeÚns���      r���Úsend_udprü�����sH���€�ô,�$œŸ™×+Ñ+Ô,؏|‰|‹~ˆÜ—	‘	“€Iܐ$˜˜k¨:Ó6€AØ
ˆyˆ>Ðr���r¦���rÌ���rÍ���Úraise_on_truncationÚ
ignore_errorsÚqueryc�����������������óÆ��—�d}	�t��������|�d|«������\��}}t��������|�j������������������|||«������sŒ*t��������j������������������«�������}
	�t��������j
������������������j
������������������||||||¬«������}|	r|
|
j������������������|«������sŒz|r||
fS�||
|fS�#�t��������j
������������������j������������������$�r.}|	r&|
$|
j������������������|j������������������«�������«������sY�d}~ŒÊ‚�d}~wt��������$�r�|	rY�ŒÛ‚�w�xY�w)a��Read a DNS message from a UDP socket.

    *sock*, a ``socket``.

    *destination*, a destination tuple appropriate for the address family
    of the socket, specifying where the message is expected to arrive from.
    When receiving a response, this would be where the associated query was
    sent.

    *expiration*, a ``float`` or ``None``, the absolute time at which
    a timeout exception should be raised.  If ``None``, no timeout will
    occur.

    *ignore_unexpected*, a ``bool``.  If ``True``, ignore responses from
    unexpected sources.

    *one_rr_per_rrset*, a ``bool``.  If ``True``, put each RR into its own
    RRset.

    *keyring*, a ``dict``, the keyring to use for TSIG.

    *request_mac*, a ``bytes`` or ``None``, the MAC of the request (for TSIG).

    *ignore_trailing*, a ``bool``.  If ``True``, ignore trailing
    junk at end of the received message.

    *raise_on_truncation*, a ``bool``.  If ``True``, raise an exception if
    the TC bit is set.

    Raises if the message is malformed, if network errors occur, of if
    there is a timeout.

    If *destination* is not ``None``, returns a ``(dns.message.Message, float)``
    tuple of the received message and the received time.

    If *destination* is ``None``, returns a
    ``(dns.message.Message, float, tuple)``
    tuple of the received message, the received time, and the address where
    the message arrived from.

    *ignore_errors*, a ``bool``.  If various format errors or response
    mismatches occur, ignore them and keep listening for a valid response.
    The default is ``False``.

    *query*, a ``dns.message.Message`` or ``None``.  If not ``None`` and
    *ignore_errors* is ``True``, check that the received message is a response
    to this query, and if not keep listening for a valid response.
    r���éÿÿ��)rÌ���rÍ���r»���r¼���rý���N)
rñ���r§���r%���r
���r���rà���rá���Ú	Truncatedrä���r6���)rB���r¥���r���r¦���r»���rÌ���rÍ���r¼���rý���rþ���rÿ���rå���r¤���Ú
received_timerë���Úes���                r���Úreceive_udpr��2��sý���€�ð|�€DØ
Ü(¨¨u°jÓAшˆ|Ü#ØK‰K˜ {Ð4Eô
ð�
ÜŸ	™	›ˆ
ð	Ü—‘×%Ñ%ØØØ'Ø!1Ø /Ø$7ð
�&ó�ˆAñ6�˜UÐ.°u×7HÑ7HÈÔ7KØÙؐ}Ð%Ð%à} lÐ3Ð3øô1�{‰{×$Ñ$ò�
	ñ�ØÐ%Ø×)Ñ)¨!¯)©)«+Ô6äàûÜò�	ÙÙàð		ús$���Á%B�ÂC Â%#CÃ
CÃC ÃC é5���c�����������������ó¼��—�|�j������������������«�������}t��������||||«������\��}
}}t��������|«������\��}}|
rt��������j������������������|
«������}nt��������|
t��������j������������������|«������}|5�}t��������||||«�������t��������||||||�j������������������|�j������������������||	||�«������\��}}||z
��|_��������|s|�j������������������|«������st��������‚|cddd«�������S�#�1�sw�Y���nxY�w	�J�‚)aý��Return the response obtained after sending a query via UDP.

    *q*, a ``dns.message.Message``, the query to send

    *where*, a ``str`` containing an IPv4 or IPv6 address,  where
    to send the message.

    *timeout*, a ``float`` or ``None``, the number of seconds to wait before the
    query times out.  If ``None``, the default, wait forever.

    *port*, an ``int``, the port send the message to.  The default is 53.

    *source*, a ``str`` containing an IPv4 or IPv6 address, specifying
    the source address.  The default is the wildcard address.

    *source_port*, an ``int``, the port from which to send the message.
    The default is 0.

    *ignore_unexpected*, a ``bool``.  If ``True``, ignore responses from
    unexpected sources.

    *one_rr_per_rrset*, a ``bool``.  If ``True``, put each RR into its own
    RRset.

    *ignore_trailing*, a ``bool``.  If ``True``, ignore trailing
    junk at end of the received message.

    *raise_on_truncation*, a ``bool``.  If ``True``, raise an exception if
    the TC bit is set.

    *sock*, a ``socket.socket``, or ``None``, the socket to use for the
    query.  If ``None``, the default, a socket is created.  Note that
    if a socket is provided, it must be a nonblocking datagram socket,
    and the *source* and *source_port* are ignored.

    *ignore_errors*, a ``bool``.  If various format errors or response
    mismatches occur, ignore them and keep listening for a valid response.
    The default is ``False``.

    Returns a ``dns.message.Message``.
    N)rÑ���r¯���r)���rÕ���rÖ���r1���r2���Ú
SOCK_DGRAMrü���r��rÌ���Úmacr
���rä���rw���)rº���r«���r���r:���rA���r¬���r¦���r»���r¼���rý���rB���rþ���rå���r@���r¥���Ú
begin_timer���rè���r•���rë���r��s���                     r���Úudpr��œ��sö���€�ðp�
9‰9‹;€DÜ 7Ø
ˆtV˜[ó!Ñ€Rˆfô� .¨gÓ6Ñ€ZÙÜ0:×0FÑ0FÀtÓ0L‰ä
˜"œf×/Ñ/°Ó
8ˆØ	ð�ˆqܐD˜+ zÔ2Ü(Ø
ØØØØØ
I‰IØ
E‰EØØØØ
ó
шˆMð� Ñ+ˆŒñ� §¡¨qÔ!1ÜÐØ÷)÷�ò�úð,�	ðØ
s
���Á&ACÃCÚudp_sockÚtcp_sockc�����������������ó¬���—�	�t��������|�||||||||d|	|«������}|dfS�#�t��������j������������������j������������������$�r�t	��������|�||||||||
«	������}|dfcY�S�w�xY�w)a|��Return the response to the query, trying UDP first and falling back
    to TCP if UDP results in a truncated response.

    *q*, a ``dns.message.Message``, the query to send

    *where*, a ``str`` containing an IPv4 or IPv6 address,  where to send the message.

    *timeout*, a ``float`` or ``None``, the number of seconds to wait before the query
    times out.  If ``None``, the default, wait forever.

    *port*, an ``int``, the port send the message to.  The default is 53.

    *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source
    address.  The default is the wildcard address.

    *source_port*, an ``int``, the port from which to send the message. The default is
    0.

    *ignore_unexpected*, a ``bool``.  If ``True``, ignore responses from unexpected
    sources.

    *one_rr_per_rrset*, a ``bool``.  If ``True``, put each RR into its own RRset.

    *ignore_trailing*, a ``bool``.  If ``True``, ignore trailing junk at end of the
    received message.

    *udp_sock*, a ``socket.socket``, or ``None``, the socket to use for the UDP query.
    If ``None``, the default, a socket is created.  Note that if a socket is provided,
    it must be a nonblocking datagram socket, and the *source* and *source_port* are
    ignored for the UDP query.

    *tcp_sock*, a ``socket.socket``, or ``None``, the connected socket to use for the
    TCP query.  If ``None``, the default, a socket is created.  Note that if a socket is
    provided, it must be a nonblocking connected stream socket, and *where*, *source*
    and *source_port* are ignored for the TCP query.

    *ignore_errors*, a ``bool``.  If various format errors or response mismatches occur
    while listening for UDP, ignore them and keep listening for a valid response. The
    default is ``False``.

    Returns a (``dns.message.Message``, tcp) tuple where tcp is ``True`` if and only if
    TCP was used.
    TF)r��r���rà���r��Útcp)
rº���r«���r���r:���rA���r¬���r¦���r»���r¼���r��r
��rþ���ré���s
���             r���Úudp_with_fallbackr��÷��sŽ���€�ðr ÜØ
ØØØØØØØØØØØó

ˆð�˜%Ð Ð ø܏;‰;× Ñ ò� ÜØ
ØØØØØØØØó

ˆð�˜$ÐÒð ús���‚�œ4AÁAc�����������������ó��—�d}|dkD��r6	�|�j������������������|«������}|dk(��rt��������‚|t��������|«������z��}||z
��}|dkD��rŒ6|S�#�t��������t��������j
������������������f$�r�t
��������|�|«�������Y�Œ/t��������j������������������$�r�t��������|�|«�������Y�ŒOw�xY�w)zßRead the specified number of bytes from sock.  Keep trying until we
    either get the desired amount, or we hit EOF.
    A Timeout exception will be raised if the operation is not completed
    by the expiration time.
    r���r���)	ÚrecvÚEOFErrorrÙ���rï���r^���ÚSSLWantReadErrorr–���ÚSSLWantWriteErrorr˜���)rB���Úcountr���r•���rû���s���     r���Ú	_net_readr��O��s“���€�ð�	€AØ
!Š)ð		1Ø—	‘	˜%Ó ˆAؐCŠxܐØ”S˜“V‰OˆEØ
‰FˆAð
�!‹)ð�
€Høô	� ¤×!5Ñ!5Ð6ò�	1Ü˜t ZÖ0Ü×$Ñ$ò�	1Ü˜t ZÖ0ð	1ús���‰/A��Á�%BÁ'BÂBc�����������������óü���—�d}t��������|«������}||k��r	�||�j������������������||d�«������z
��}||k��rŒyy#�t��������t��������j������������������f$�r�t��������|�|«�������Y�Œ/t��������j������������������$�r�t��������|�|«�������Y�ŒOw�xY�w)z‘Write the specified data to the socket.
    A Timeout exception will be raised if the operation is not completed
    by the expiration time.
    r���N)rÙ���rô���rï���r^���r��r˜���r��r–���)rB���rõ���r���ÚcurrentÚls���     r���Ú
_net_writer��d��s~���€�ð
�€G܈D‹	€AØ
AŠ+ð	1Øt—y‘y  g h Ó0Ñ0ˆGð�A+øô� ¤×!6Ñ!6Ð7ò�	1Ü˜t ZÖ0Ü×#Ñ#ò�	1Ü˜t ZÖ0ð	1ús���”3�³%A;ÁA;Á:A;c�����������������ó��—�t��������|t��������j������������������j������������������«������r|j	������������������d¬«������}nt��������|«������j
������������������dd«������|z���}t��������j������������������«�������}t��������|�||«�������t��������|«������|fS�)a{��Send a DNS message to the specified TCP socket.

    *sock*, a ``socket``.

    *what*, a ``bytes`` or ``dns.message.Message``, the message to send.

    *expiration*, a ``float`` or ``None``, the absolute time at which
    a timeout exception should be raised.  If ``None``, no timeout will
    occur.

    Returns an ``(int, float)`` tuple of bytes sent and the sent time.
    T)Úprepend_lengthé���Úbig)	r€���r���rà���rù���rÑ���rÙ���Úto_bytesr
���r��)rB���r÷���r���Útcpmsgrú���s���     r���Úsend_tcpr"��t��sk���€�ô$�$œŸ™×+Ñ+Ô,Ø—‘¨TÓ2‰ô
�T“×#Ñ# A uÓ-°Ñ4ˆÜ—	‘	“€I܈tV˜ZÔ(Ü‹K˜Ð#Ð#r���c�����������������óÞ���—�t��������|�d|«������}t��������j������������������d|«������\��}t��������|�||«������}t��������j������������������«�������}	t��������j
������������������j
������������������|||||¬«������}
|
|	fS�)aó��Read a DNS message from a TCP socket.

    *sock*, a ``socket``.

    *expiration*, a ``float`` or ``None``, the absolute time at which
    a timeout exception should be raised.  If ``None``, no timeout will
    occur.

    *one_rr_per_rrset*, a ``bool``.  If ``True``, put each RR into its own
    RRset.

    *keyring*, a ``dict``, the keyring to use for TSIG.

    *request_mac*, a ``bytes`` or ``None``, the MAC of the request (for TSIG).

    *ignore_trailing*, a ``bool``.  If ``True``, ignore trailing
    junk at end of the received message.

    Raises if the message is malformed, if network errors occur, of if
    there is a timeout.

    Returns a ``(dns.message.Message, float)`` tuple of the received message
    and the received time.
    r��ú!HrË���)r��ÚstructÚunpackr
���r���rà���rá���)rB���r���r»���rÌ���rÍ���r¼���Úldatar��rå���r��rë���s���           r���Úreceive_tcpr(��’��ss���€�ôB�
d˜A˜zÓ*€E܏=‰=˜˜uÓ%D€QܐT˜1˜jÓ)€DÜ—I‘I“K€M܏‰×ÑØØØØ)Ø'ð�	ó�	€Að�
ˆ}ÐÐr���c�����������������óP��—�|�j������������������|«������}|dk(��ry�|t��������j������������������t��������j������������������t��������j������������������fv�r:t��������|�|«�������|�j
������������������t��������j������������������t��������j������������������«������}|dk7��rt��������|t��������j������������������|«������«������‚y�rR���)
Ú
connect_exÚerrnoÚEINPROGRESSÚEWOULDBLOCKÚEALREADYr˜���Ú
getsockoptr2���Ú
SOL_SOCKETÚSO_ERRORÚOSErrorÚosÚstrerror)r•���r?���r���Úerrs���    r���r4���r4���Á��s���€�Ø
,‰,wÓ
€CØ
ˆa‚xØØ
Œu× Ñ ¤%×"3Ñ"3´U·^±^ÐDÑDܘ1˜jÔ)؏l‰lœ6×,Ñ,¬f¯o©oÓ>ˆØ
ˆa‚xܐcœ2Ÿ;™; sÓ+Ó,Ð,ð�r���c	�����������	������óÊ��—�|�j������������������«�������}	t��������|«������\��}
}|rt��������j������������������|«������}n-t	��������||||«������\��}
}}t��������|
t��������j������������������|«������}|5�}|s
t��������||«�������t��������||	|«�������t��������||||�j������������������|�j������������������|«������\��}}||
z
��|_
��������|�j������������������|«������st��������‚|cddd«�������S�#�1�sw�Y���nxY�w	�J�‚)a¥��Return the response obtained after sending a query via TCP.

    *q*, a ``dns.message.Message``, the query to send

    *where*, a ``str`` containing an IPv4 or IPv6 address, where
    to send the message.

    *timeout*, a ``float`` or ``None``, the number of seconds to wait before the
    query times out.  If ``None``, the default, wait forever.

    *port*, an ``int``, the port send the message to.  The default is 53.

    *source*, a ``str`` containing an IPv4 or IPv6 address, specifying
    the source address.  The default is the wildcard address.

    *source_port*, an ``int``, the port from which to send the message.
    The default is 0.

    *one_rr_per_rrset*, a ``bool``.  If ``True``, put each RR into its own
    RRset.

    *ignore_trailing*, a ``bool``.  If ``True``, ignore trailing
    junk at end of the received message.

    *sock*, a ``socket.socket``, or ``None``, the connected socket to use for the
    query.  If ``None``, the default, a socket is created.  Note that
    if a socket is provided, it must be a nonblocking connected stream
    socket, and *where*, *port*, *source* and *source_port* are ignored.

    Returns a ``dns.message.Message``.
    N)rÑ���r)���rÕ���rÖ���r¯���r1���r2���r3���r4���r"��r(��rÌ���r	��r
���rä���rw���)rº���r«���r���r:���rA���r¬���r»���r¼���rB���rå���r
��r���rè���r@���r¥���r•���rë���r��s���                  r���r��r��Ì��sì���€�ðV�
9‰9‹;€DÜ-¨gÓ6Ñ€ZÙÜ0:×0FÑ0FÀtÓ0L‰ä$;Ø4˜ ó%
Ñ!ˆˆ[˜&ô�˜"œf×0Ñ0°&Ó
9ˆØ	ð�
ˆqÙÜQ˜ ZÔ0ܐD˜*Ô%Ü(Ø
ˆzÐ+¨Q¯Y©Y¸¿¹¸ó
шˆMð� Ñ+ˆŒØ}‰}˜QÔÜÐØ÷
÷�
ò�
úð�	ðØ
s
���Á&A&CÃCc�����������������ó´���—�	�	�|�j������������������«��������y�#�t��������j������������������$�r�t��������|�|«�������Y�n$t��������j������������������$�r�t��������|�|«�������Y�nw�xY�wŒXr���)Údo_handshaker^���r��r–���r��r˜���r”���s���  r���Ú_tls_handshaker9����sS���€�Ø
ð	.Ø
N‰NÔØøÜ×#Ñ#ò�	.Ü˜q *Ö-Ü×$Ñ$ò�	.Ü˜q *Ö-ð	.úð
�s���ƒ�”AµAÁAr²���c�����������������ó ��—�d�}d�}t��������|t��������«������rOt��������j������������������j	������������������|«������r|}n-t��������j������������������j������������������|«������r|}nt
��������d«������‚t��������j������������������||¬«������}t��������j������������������j������������������|_��������|�€d|_��������|j������������������dg«�������|du�rt��������j������������������|_��������|S�)Nzinvalid verify string)ÚcafileÚcapathFÚdot)r€���rØ���r3��rH���ÚisfileÚisdirr©���r^���ro���Ú
TLSVersionÚTLSv1_2Úminimum_versionÚcheck_hostnameÚset_alpn_protocolsrp���Úverify_mode)r²���r¿���r;��r<��r¹���s���     r���Ú_make_dot_ssl_contextrF����s©���€�ð�!€FØ €Fܐ&œ#ÔÜ
7‰7>‰>˜&Ô!؉FÜ
W‰W]‰]˜6Ô
"؉FäÐ4Ó5Ð5Ü×,Ñ,°FÀ6ÔJ€KÜ"%§.¡.×"8Ñ"8€KÔØÐØ%*ˆÔ"Ø×"Ñ" E 7Ô+Ø
Ü"%§-¡-ˆÔØÐr���r¹���c�����������������óú��—�|rt��������|�||||||||«	������S�|�j������������������«�������}t��������|«������\��}
}t��������||||«������\��}}}|	€|st	��������|
|«������}	t��������|t��������j������������������||	|
¬«������5�}t��������|||«�������t��������||«�������t��������|||«�������t��������||||�j������������������|�j������������������|«������\��}}||
z
��|_��������|�j������������������|«������st ��������‚|cddd«�������S�#�1�sw�Y���nxY�w	�J�‚)ak��Return the response obtained after sending a query via TLS.

    *q*, a ``dns.message.Message``, the query to send

    *where*, a ``str`` containing an IPv4 or IPv6 address,  where
    to send the message.

    *timeout*, a ``float`` or ``None``, the number of seconds to wait before the
    query times out.  If ``None``, the default, wait forever.

    *port*, an ``int``, the port send the message to.  The default is 853.

    *source*, a ``str`` containing an IPv4 or IPv6 address, specifying
    the source address.  The default is the wildcard address.

    *source_port*, an ``int``, the port from which to send the message.
    The default is 0.

    *one_rr_per_rrset*, a ``bool``.  If ``True``, put each RR into its own
    RRset.

    *ignore_trailing*, a ``bool``.  If ``True``, ignore trailing
    junk at end of the received message.

    *sock*, an ``ssl.SSLSocket``, or ``None``, the socket to use for
    the query.  If ``None``, the default, a socket is created.  Note
    that if a socket is provided, it must be a nonblocking connected
    SSL stream socket, and *where*, *port*, *source*, *source_port*,
    and *ssl_context* are ignored.

    *ssl_context*, an ``ssl.SSLContext``, the context to use when establishing
    a TLS connection. If ``None``, the default, creates one with the default
    configuration.

    *server_hostname*, a ``str`` containing the server's hostname.  The
    default is ``None``, which means that no hostname is known, and if an
    SSL context is created, hostname checking will be disabled.

    *verify*, a ``bool`` or ``str``.  If a ``True``, then TLS certificate verification
    of the server is done using the default CA bundle; if ``False``, then no
    verification is done; if a `str` then it specifies the path to a certificate file or
    directory which will be used for verification.

    Returns a ``dns.message.Message``.

    N)r¹���r²���)r��rÑ���r)���r¯���rF��r1���r2���r3���r4���r9��r"��r(��rÌ���r	��r
���rä���rw���)rº���r«���r���r:���rA���r¬���r»���r¼���rB���r¹���r²���r¿���rå���r
��r���r@���r¥���r•���rë���r��s���                    r���ÚtlsrH��1��s,��€�ñz�ô�Ø
ØØØØØØØØó

ð�
	
ð�
9‰9‹;€DÜ-¨gÓ6Ñ€ZÜ 7Ø
ˆtV˜[ó!Ñ€Rˆfð�С4Ü+¨O¸VÓDˆä	Ø
Ü×ÑØØØ'ô
ð�ð�
ܐK Ô,ܐq˜*Ô%ܐD˜*Ô%Ü(Ø
ˆzÐ+¨Q¯Y©Y¸¿¹¸ó
шˆMð� Ñ+ˆŒØ}‰}˜QÔÜÐØ÷!÷�ò�úð$�	ðØ
s
���Á4A0C.Ã.C7Ú
connectionc�����������������ó���—�t���������j������������������j������������������st��������d«������‚d|�_��������|�j������������������«�������}|rt
��������j������������������d«������}|}
n#t���������j������������������j������������������|	|
¬«������}|}|5��|sj������������������||||«������}
t��������|«������\��}}
j������������������|«������5�}|j������������������|d«�������|j������������������t��������|«������«������}ddd«�������t��������j������������������«�������}ddd«�������t���������j ������������������j#������������������||�j$������������������|�j&������������������||¬«������}t)��������z
��d«������|_��������|�j+������������������|«������st,��������‚|S�#�1�sw�Y���ŒŠxY�w#�1�sw�Y���ŒzxY�w)aÎ��Return the response obtained after sending a query via DNS-over-QUIC.

    *q*, a ``dns.message.Message``, the query to send.

    *where*, a ``str``, the nameserver IP address.

    *timeout*, a ``float`` or ``None``, the number of seconds to wait before the query
    times out. If ``None``, the default, wait forever.

    *port*, a ``int``, the port to send the query to. The default is 853.

    *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source
    address.  The default is the wildcard address.

    *source_port*, an ``int``, the port from which to send the message. The default is
    0.

    *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset.

    *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the
    received message.

    *connection*, a ``dns.quic.SyncQuicConnection``.  If provided, the
    connection to use to send the query.

    *verify*, a ``bool`` or ``str``.  If a ``True``, then TLS certificate verification
    of the server is done using the default CA bundle; if ``False``, then no
    verification is done; if a `str` then it specifies the path to a certificate file or
    directory which will be used for verification.

    *server_hostname*, a ``str`` containing the server's hostname.  The
    default is ``None``, which means that no hostname is known, and if an
    SSL context is created, hostname checking will be disabled.

    Returns a ``dns.message.Message``.
    zDNS-over-QUIC is not available.r���N)rE��Úserver_nameTrË���r	���)r���ÚquicÚ	have_quicr|���ÚidrÑ���rÕ���rÖ���ÚSyncQuicManagerÚconnectr)���Úmake_streamrô���Úreceiver���r
���rà���rá���rÌ���rÍ���Úmaxrä���rw���)rº���r«���r���r:���rA���r¬���r»���r¼���rI��r¿���r²���rå���ÚmanagerÚthe_connectionÚthe_managerÚstartr���ÚstreamÚfinishrë���s���                    r���rL��rL��œ��s_��€�ôd�8‰8×ÒÜÐ5Ó6Ð6à€A„DØ9‰9‹;€Dñ�Ü5?×5KÑ5KÈDÓ5QˆØ#‰ä—(‘(×*Ñ*بOð�+ó�
ˆð�ˆà	ñ�ÙØ(×0Ñ0°¸¸fÀkÓRˆNÜ,¨WÓ5ш
Ø
×
'Ñ
'¨Ó
0ð�	:°FØK‰K˜˜dÔ#Ø—>‘>¤*¨ZÓ"8Ó9ˆD÷	:ô�—‘“ˆ÷ô�	‰×ÑØØ—	‘	Ø—M‘MØ)Ø'ð�	ó�	€Aô�˜%‘ Ó
%€A„FØ=‰=˜ÔÜÐØ€H÷	:ð�	:ú÷	ð�ús$���Á<6E4Â2-E(ÃE4Å(E1	Å-E4Å4E=ÚzoneÚrdtypeÚrdclassÚkeynameÚ
relativizer(���ÚserialÚuse_udpÚkeyalgorithmc��������������#���óî
��K��—�t��������|t��������«������rt��������j������������������j	������������������|«������}t��������j
������������������j������������������j������������������|«������}t��������j������������������j������������������|||«������}|t��������j
������������������j������������������k(��rAt��������j������������������j	������������������|dddd|z��«������}|j������������������j������������������|«�������||j������������������|||¬«�������|j������������������«�������}t!��������|�||
|«������\��}}}
|
r(|t��������j
������������������j������������������k7��rt#��������d«������‚|
rt$��������j&������������������nt$��������j(������������������}t+��������|||
«������5�}t-��������|	«������\��}}t/��������|||«�������t1��������|«������}|
rt3��������||d|«�������n&t5��������j6������������������d|«������|z���}t9��������|||«�������d	}d
}d	}d}|r|}t��������j������������������j:������������������}nd}|}d} |sgt-��������|«������\��}}!|!||!|kD��r|}!|
rt=��������|d|!«������\��}}n2t?��������|d|!«������}"t5��������j@������������������d|"«������\��}t?��������|||!«������}|t��������j
������������������j������������������k(��}#t��������j������������������jC������������������||jD������������������|jF������������������d
|| d
|#¬
«������}$|$jI������������������«�������}%|%t��������jH������������������jJ������������������k7��rtM��������|%«������‚|$jN������������������} d}&|€ÿ|$jP������������������r|$jP������������������d���j������������������|k7��rt��������jR������������������jU������������������d«������‚|$jP������������������d���}|jV������������������t��������j
������������������jX������������������k7��rt��������jR������������������jU������������������d«������‚d}&|j[������������������«�������}|t��������j
������������������j������������������k(��r4t��������j\������������������j_������������������|d���j\������������������«������|k��rd
}nd
}|$jP������������������|&d�D�]��}|rt��������jR������������������jU������������������d«������‚|jV������������������t��������j
������������������jX������������������k(��r¬|j������������������|k(��r|r4|d���j\������������������|k7��rt��������jR������������������jU������������������d«������‚d	}n |t��������j
������������������j������������������k(��r|�}||k(��sŒ·|t��������j
������������������j`������������������k(��s!|t��������j
������������������j������������������k(��sŒò|sŒõd
}Œø|sŒût��������j
������������������j`������������������}d	}Œ�|r7|jD������������������r+|$jb������������������st��������jR������������������jU������������������d«������‚|$–—�|sŒgddd«�������y#�1�sw�Y���yxY�w­w)a³��Return a generator for the responses to a zone transfer.

    *where*, a ``str`` containing an IPv4 or IPv6 address,  where
    to send the message.

    *zone*, a ``dns.name.Name`` or ``str``, the name of the zone to transfer.

    *rdtype*, an ``int`` or ``str``, the type of zone transfer.  The
    default is ``dns.rdatatype.AXFR``.  ``dns.rdatatype.IXFR`` can be
    used to do an incremental transfer instead.

    *rdclass*, an ``int`` or ``str``, the class of the zone transfer.
    The default is ``dns.rdataclass.IN``.

    *timeout*, a ``float``, the number of seconds to wait for each
    response message.  If None, the default, wait forever.

    *port*, an ``int``, the port send the message to.  The default is 53.

    *keyring*, a ``dict``, the keyring to use for TSIG.

    *keyname*, a ``dns.name.Name`` or ``str``, the name of the TSIG
    key to use.

    *relativize*, a ``bool``.  If ``True``, all names in the zone will be
    relativized to the zone origin.  It is essential that the
    relativize setting matches the one specified to
    ``dns.zone.from_xfr()`` if using this generator to make a zone.

    *lifetime*, a ``float``, the total number of seconds to spend
    doing the transfer.  If ``None``, the default, then there is no
    limit on the time the transfer may take.

    *source*, a ``str`` containing an IPv4 or IPv6 address, specifying
    the source address.  The default is the wildcard address.

    *source_port*, an ``int``, the port from which to send the message.
    The default is 0.

    *serial*, an ``int``, the SOA serial number to use as the base for
    an IXFR diff sequence (only meaningful if *rdtype* is
    ``dns.rdatatype.IXFR``).

    *use_udp*, a ``bool``.  If ``True``, use UDP (only meaningful for IXFR).

    *keyalgorithm*, a ``dns.name.Name`` or ``str``, the TSIG algorithm to use.

    Raises on errors, and so does the generator.

    Returns a generator of ``dns.message.Message`` objects.
    r���ÚINÚSOAz. . %u 0 0 0 0N)Ú	algorithmzcannot do a UDP AXFRr$��FTr��r��©rÌ���rÍ���ÚxfrÚoriginÚtsig_ctxÚmultir»���z No answer or RRset not for qnamezfirst RRset is not an SOArš���zanswers after final SOAzIXFR base serial mismatchúmissing TSIG)2r€���rØ���r���ÚnameÚ	from_textÚ	rdatatypeÚ	RdataTypeÚmakerà���Ú
make_queryÚIXFRÚrrsetÚ	authorityr,���Úuse_tsigrÑ���r¯���r©���r2���r��r3���r1���r)���r4���rÙ���rö���r%��Úpackr��Úemptyrñ���r��r&��rá���rÌ���r	��ÚrcodeÚNOERRORÚ
TransferErrorri��Úanswerr���Ú	FormErrorr[��rd��Úcopyr_��ÚSerialÚAXFRÚhad_tsig)'r«���rZ��r[��r\��r���r:���rÌ���r]��r^��r(���rA���r¬���r_��r`��ra��rº���rs��rå���r@���r¥���Ú	sock_typer•���r=���r���r��r!��ÚdoneÚdelete_modeÚ
expecting_SOAÚ	soa_rrsetrh��Úonameri��Úmexpirationr'��Úis_ixfrrë���rx��Úanswer_indexs'���                                       r���rg��rg��ó��s��è�ø€�ôJ�$œÔ܏x‰x×!Ñ! $Ó'ˆÜ
]‰]×
$Ñ
$×
)Ñ
)¨&Ó
1€F܏‰×јt V¨WÓ5€AØ
”—‘×#Ñ#Ò#Ü—	‘	×#Ñ# D¨!¨T°5Ð:JÈVÑ:SÓTˆØ	‰×ј5Ô!ØÐØ	
‰
7˜G¨|ˆ
Ô<Ø9‰9‹;€DÜ 7Ø
ˆtV˜[ó!Ñ€Rˆfñ�6œSŸ]™]×/Ñ/Ò/ÜÐ/Ó0Ð0Ù%,”×!Ò!´&×2DÑ2D€IÜ	b˜) VÓ	,ð�b°Ü(¨Ó2‰ˆˆJܐK Ô,Ü‹IˆÙÜa˜˜t ZÕ0ä—[‘[  qÓ)¨DÑ0ˆFÜq˜& *Ô-؈؈؈
؈	Ù؈FÜ—H‘H—N‘N‰EàˆF؈E؈ÚÜ-¨gÓ6ÑˆQØÐ"ØÐ&¨;¸Ò+Cà(ÙÜ% a¨°Ó<‘	‘qä! ! Q¨Ó4Ü—}‘} T¨5Ó1‘Ü   A {Ó3Ø¤§
¡
× 2Ñ 2Ñ2ˆGÜ—‘×%Ñ%ØØŸ	™	ØŸE™EØØØ!ØØ!(ð�&ó�	ˆAð�—G‘G“IˆEØœŸ	™	×)Ñ)Ò)Ü# EÓ*Ð*Ø—z‘zˆH؈LØÐ Ø—x’x 1§8¡8¨A¡;×#3Ñ#3°uÒ#<ÜŸ-™-×1Ñ1Ð2TÓUÐUØŸ™ ™Ø—<‘<¤3§=¡=×#4Ñ#4Ò4ÜŸ-™-×1Ñ1Ð2MÓNÐNØ Ø!ŸJ™J›L	ØœSŸ]™]×/Ñ/Ò/Ü—z‘z×(Ñ(¨°1©×)<Ñ)<Ó=ÀÒGð� $™à(,˜
ð
�Ÿ™ , -Ô0ÙÜŸ-™-×1Ñ1Ð2KÓLÐLØ—<‘<¤3§=¡=×#4Ñ#4Ò4¸¿¹ÀuÒ9LÙ$Ø  ™8Ÿ?™?¨fÒ4Ü"%§-¡-×"9Ñ"9Ð:UÓ"VÐVØ(-™
ؤ3§=¡=×#5Ñ#5Ò5Ø*5 o˜ð� 	Ó)ؤ#§-¡-×"4Ñ"4Ò4Ø"¤c§m¡m×&8Ñ&8Ó8º[à#™Ú"ô�!Ÿ]™]×/Ñ/FØ$)’Mð7�1ñ8�˜Ÿ	š	¨!¯*ª*Ü—m‘m×-Ñ-¨nÓ=Ð=ØŠGó]�÷)b÷�bñ�büs8���‚E)U5Å+MU)Ò<:U)Ó7U)Ó:U)Ô�AU)Õ 	U5Õ)U2Õ.U5c�������������������ó���—�e�Zd�ZdZdZdZdZy)ÚUDPModea��How should UDP be used in an IXFR from :py:func:`inbound_xfr()`?

    NEVER means "never use UDP; always use TCP"
    TRY_FIRST means "try to use UDP but fall back to TCP if needed"
    ONLY means "raise ``dns.xfr.UseTCP`` if trying UDP does not succeed"
    r���rš���r��N)rJ���rK���rL���ru���ÚNEVERÚ	TRY_FIRSTÚONLYr\���r���r���r‹��r‹��­��s���„�ñð�
€EØ€IØDr���r‹��Útxn_managerÚudp_modec	�����������������óä��—�|€#t���������j������������������j������������������|«������\��}}	nt���������j������������������j������������������|«������}	|j������������������d���j
������������������}
|
t���������j������������������j������������������k(��}|j������������������«�������}|j������������������«�������}
t��������|�|||«������\��}}}t��������|«������\��}}d}|rÉd}|r&|t��������j������������������k7��rt��������j������������������}d}nt��������j ������������������}d}t#��������|||«������5�}t%��������|||«�������|rt'��������||
d|«�������n/t)��������j*������������������dt-��������|
«������«������|
z���}t/��������|||«�������t���������j������������������j1������������������||
|	|«������5�}d}d}|s»t��������|«������\��}}||||kD��r|}|rt3��������|d|«������\��}}n2t5��������|d|«������}t)��������j6������������������d|«������\��}t5��������|||«������}t���������j8������������������j;������������������||j<������������������|j>������������������d|||�|¬«������}	�|jA������������������|«������}|jF������������������}|sŒ»|s7|j<������������������r+jH������������������st���������jJ������������������jM������������������d	«������‚ddd«�������ddd«�������|rŒÈyy#�t���������j������������������jB������������������$�r0�|sJ�‚|t��������jD������������������k(��r‚�d}d}t��������j������������������}Y�ŒXw�xY�w#�1�sw�Y���ŒgxY�w#�1�sw�Y���ŒkxY�w)
aŸ��Conduct an inbound transfer and apply it via a transaction from the
    txn_manager.

    *where*, a ``str`` containing an IPv4 or IPv6 address,  where
    to send the message.

    *txn_manager*, a ``dns.transaction.TransactionManager``, the txn_manager
    for this transfer (typically a ``dns.zone.Zone``).

    *query*, the query to send.  If not supplied, a default query is
    constructed using information from the *txn_manager*.

    *port*, an ``int``, the port send the message to.  The default is 53.

    *timeout*, a ``float``, the number of seconds to wait for each
    response message.  If None, the default, wait forever.

    *lifetime*, a ``float``, the total number of seconds to spend
    doing the transfer.  If ``None``, the default, then there is no
    limit on the time the transfer may take.

    *source*, a ``str`` containing an IPv4 or IPv6 address, specifying
    the source address.  The default is the wildcard address.

    *source_port*, an ``int``, the port from which to send the message.
    The default is 0.

    *udp_mode*, a ``dns.query.UDPMode``, determines how UDP is used
    for IXFRs.  The default is ``dns.UDPMode.NEVER``, i.e. only use
    TCP.  Other possibilities are ``dns.UDPMode.TRY_FIRST``, which
    means "try UDP but fallback to TCP if needed", and
    ``dns.UDPMode.ONLY``, which means "try UDP and raise
    ``dns.xfr.UseTCP`` if it does not succeed.

    Raises on errors.
    Nr���TFr$��r��r��rf��rk��)'r���rg��rq��Úextract_serial_from_queryÚquestionr[��rn��rr��Úfrom_wire_originrÑ���r¯���r)���r‹��rŒ��r2���r��r3���r1���r4���rö���r%��rv��rÙ���r��ÚInboundrñ���r��r&��rà���rá���rÌ���r	��Úprocess_messageÚUseTCPrŽ��ri��r€��r���r|��)r«���r��rÿ���r:���r���r(���rA���r¬���r��r_��r[��rˆ��rh��rå���r@���r¥���r=���r���Úretryr��Úis_udpr•���r!��Úinboundr‚��ri��r‡��Úrwirer'��r��rë���s���                               r���Úinbound_xfrrœ��º��sÁ��€�ð^�
€}ÜŸ'™'×,Ñ,¨[Ó9‰ˆ‘ä—‘×2Ñ2°5Ó9ˆØ
^‰^˜AÑ
×
%Ñ
%€FØœŸ
™
×*Ñ*Ñ*€GØ
×
)Ñ
)Ó
+€F؏=‰=‹?€DÜ 7Ø
ˆtV˜[ó!Ñ€Rˆfô�% XÓ.O€Qˆ
Ø€EÚ
؈ِx¤7§=¡=Ò0Ü×)Ñ)ˆI؉Fä×*Ñ*ˆI؈FÜ
˜"˜i¨Ó
0ð�,	B°AÜQ˜ ZÔ0Ùܘ!˜T 4¨Õ4䟙 T¬3¨t«9Ó5¸Ñ<Ü˜1˜f jÔ1Ü—‘—‘ ¨f°f¸fÓEð�%
BÈؐؐÙÜ'5°gÓ'>Ñ$Q˜Ø"Ð*Ø"Ð.°;ÀÒ3Kà&0˜ÙÜ%.¨q°%¸Ó%E™
˜¡ä )¨!¨Q°Ó <˜Ü%Ÿ}™}¨T°5Ó9™˜Ü )¨!¨Q°Ó <˜ÜŸ™×-Ñ-ØØ %§
¡
Ø$)§I¡IØ Ø%Ø!)Ø#)˜zØ)0ð�.ó�	Að	!Ø&×6Ñ6°qÓ9˜ð� !Ÿz™zHòA�ñB� §¢°q·z²zÜŸ-™-×1Ñ1°.ÓAÐA÷K%
B÷,	Bõ�øôT�Ÿ7™7Ÿ>™>ò�!Ù%˜
˜vØ#¤w§|¡|Ò3Ø!Ø#˜Ø $˜Ü#*§=¡=˜Ú ð!ú÷7%
Bð�%
Bú÷,	Bð�,	BúsQ���Ä	A0K&Å9B!KÈJ
È,KÈ;9KÉ4K&Ê
A	KËKËKËKËK#	ËK&Ë&K/)T)NNr���)
NNFFNr���FFFN)
Nr��Nr���FFFFNF)
Nr��Nr���FFFNNF)NFNr���F)Nr��Nr���FFN)
NéU��Nr���FFNNNT)	Nr��Nr���FFNTN)wru���rÚ���rÕ���Úenumr+��r3��Úos.pathrƒ���r2���r%��r
���Útypingr���r���r���r���r���Ú
dns._featuresr���Ú
dns.exceptionÚdns.inetÚdns.messageÚdns.nameÚdns.quicÚ	dns.rcodeÚdns.rdataclassÚ
dns.rdatatypeÚ
dns.serialÚdns.transactionÚdns.tsigÚdns.xfrr���r���Ú	_featuresÚhaveÚ_have_httpxÚhttpcore._backends.syncr7���rÏ���ÚNetworkBackendÚ_CoreNetworkBackendÚ	_backendsÚsyncÚ
SyncStreamr5���r���Ú
HTTPTransportrP���rÎ���r^���ÚImportErrorr³���r���ÚDNSExceptionrs���r|��rw���ry���r|���rg��rz��r)���r���r���Úhasattrr‘���r‚���ÚSelectSelectorr–���r˜���r¡���r§���r¯���r1���rY���rà���rù���rØ���ÚfloatÚintÚboolrì���rñ���rö���Úbytesrü���rl��ÚNameÚtsigÚKeyr��r��r��r��r��r"��r(��r4���r��r9��ri���rF��rl���rH��rL��ÚSyncQuicConnectionrn��r��Ú
rdataclassrc��Údefault_algorithmro��Ú
RdataClassÚIntEnumr‹��rŒ��ÚtransactionÚTransactionManagerrœ��r\���r���r���ú<module>rÊ�����s¿��ðñ$�ã�
Û�Û�Û�Û�	Û�Û�Û�
Û�
Û�ß�4Õ�4ã�Û�Û�Û�Û�Û�Û�Û�Û�Û�Û�Û�Û�òò2ð�m‰m× Ñ  Ó'€ÙÛ"Ûà"×1Ñ1ÐØ×(Ñ(×-Ñ-×8Ñ8€Oô2&Ð-ô�2&ôh˜×,Ñ,õ�÷,&ñ�&ð
�€ð.Ûð2�—‘€ôHs—}‘}×1Ñ1ô�HôG#—-‘-×)Ñ)ô�GôˆCM‰M×&Ñ&ô�ô
ˆCM‰M×&Ñ&ô�ð�—‘×%Ñ%€
ò$ò$ò8%ñ�ˆ9nÔ%ð� ×,Ñ,Oà×.Ñ.€Oò0ò0ò	)ò
ð"�=Aó)%óXð.� $ØØ ØØ"Ø!Ø!ØØØ'+Ø#Ø26Ø"×,Ñ,ñQ
Ø
‡{{×ÑðQ
àðQ
ð�e‰_ðQ
ð�ð	Q
ð
�
S‰MðQ
ð�ð
Q
ð�ðQ
ð�ðQ
ð�c‰]ðQ
ð�ðQ
ð�ðQ
ð�  ‘}ðQ
ð�
$˜)ÑðQ
ð�Ð.Ñ/ðQ
ð�
S‰MðQ
ð �	‡[[×Ñó!Q
òh	1ò1ð&�#'ñ	Ø

ðà
—‘×#Ñ# UÐ*Ñ
+ðð�ðð�˜‘ð	ð
�ˆ3ˆ:Ñóð>�"&Ø"&Ø#Ø"Ø;?Ø#&Ø!Ø %ØØ+/ñg4Ø

ðg4à˜#‘ðg4ð�˜‘ðg4ð�ð	g4ð
�ðg4ð�d˜3Ÿ8™8Ÿ=™=¨#¯(©(¯,©,Ð6Ñ7Ñ
8ð
g4ð�˜%‘ðg4ð�ðg4ð�ðg4ð�ðg4ð�C—K‘K×'Ñ'Ñ(ðg4ð�	óg4ðZ� $ØØ ØØ#Ø"Ø!Ø %ØØñXØ
‡{{×ÑðXàðXð�e‰_ðXð�ð	Xð
�
S‰MðXð�ð
Xð�ðXð�ðXð�ðXð�ðXð�3‰-ðXð�ðXð�	‡[[×ÑóXð|� $ØØ ØØ#Ø"Ø!Ø"Ø"ØñU Ø
‡{{×ÑðU àðU ð�e‰_ðU ð�ð	U ð
�
S‰MðU ð�ð
U ð�ðU ð�ðU ð�ðU ð�s‰mðU ð�s‰mðU ð�ðU ð�ˆ3;‰;×Ñ Ð$Ñ%óU òp
ò*
1ð&�#'ñ$Ø

ð$à
—‘×#Ñ# UÐ*Ñ
+ð$ð�˜‘ð$ð�ˆ3ˆ:Ñó	$ð@�#'Ø"Ø;?Ø#&Ø!ñ
,Ø

ð,à˜‘ð,ð�ð,ð�d˜3Ÿ8™8Ÿ=™=¨#¯(©(¯,©,Ð6Ñ7Ñ
8ð	,ð
�˜%‘ð,ð�ð
,ð�ˆ3;‰;×Ñ Ð%Ñ&ó,ò^-ð� $ØØ ØØ"Ø!ØñAØ
‡{{×ÑðAàðAð�e‰_ðAð�ð	Að
�
S‰MðAð�ð
Að�ðAð�ðAð�3‰-ðAð�	‡[[×ÑóAòH.ðؘc‘]ðØ,1°$¸°)Ñ,<ðà‡^^óð2� $ØØ ØØ"Ø!Ø$(Ø,0Ø%)Ø#ñhØ
‡{{×Ñðhàðhð�e‰_ðhð�ð	hð
�
S‰Mðhð�ð
hð�ðhð�ðhð�3—=‘=Ñ
!ðhð�˜#Ÿ.™.Ñ)ðhð�˜c‘]ðhð�
$˜)Ñðhð�	‡[[×Ñóhð\� $ØØ ØØ"Ø!Ø8<Ø#Ø%)ñT
Ø
‡{{×ÑðT
àðT
ð�e‰_ðT
ð�ð	T
ð
�
S‰MðT
ð�ð
T
ð�ðT
ð�ðT
ð�˜Ÿ™×4Ñ4Ñ5ðT
ð�
$˜)ÑðT
ð�˜c‘]ðT
ð�	‡[[×ÑóT
ðt�36·-±-×2DÑ2DØ58·^±^×5FÑ5FØ#ØØ;?Ø37ØØ $Ø ØØØØ.1¯h©h×.HÑ.HñwØðwà
—‘—
‘
˜sÐ"Ñ
#ðwð�
#—-‘-×)Ñ)¨3Ð.Ñ/ðwð�3—>‘>×,Ñ,¨cÐ1Ñ
2ð	wð
�e‰_ðwð�ð
wð�d˜3Ÿ8™8Ÿ=™=¨#¯(©(¯,©,Ð6Ñ7Ñ
8ðwð�e˜CŸH™HŸM™M¨3Ð.Ñ/Ñ
0ðwð�ðwð�u‰oðwð�
S‰Mðwð�ðwð�
ðwð�ðwð�˜Ÿ™Ÿ
™
 sÐ*Ñ+ðwð �	ó!wôt

ˆdl‰lô�

ð �,0ØØ#Ø $Ø ØØŸ
™
ñpBØðpBà—‘×3Ñ3ðpBð�C—K‘K×'Ñ'Ñ(ðpBð�ð	pBð
�e‰_ðpBð�u‰oð
pBð�
S‰MðpBð�ðpBð�ðpBð�
ôpBøðC)�ò�.÷.ô�.ð.ús���Ã2]�Ý]"Ý!]"