ó
    0/¡jöð  ã            #       óf  • % S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKJrJrJrJrJrJr  SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK rSSK!r SSK"r"S r&S r'\RP                  RS                  S5      r*\*(       aU  SSK+r,SSK-r-\,R\                  r/\,R`                  Rb                  Rd                  r3 " S S\/5      r4 " S	 S
\-Rj                  5      r6O
 " S S
5      r6\*r7S\Rp                  \9-  S\Rt                  S\9S\R                  4S jr;\;r<\\Rp                  \9-  \Rt                  \9/\R                  4   \=S'    " S S\R|                  R~                  5      r@ " S S\R|                  R‚                  5      rB " S S\R|                  R~                  5      rC " S S\R|                  R~                  5      rD\RŠ                  RŒ                  rFS rGS rHS rIS rJS rKS rL S{S! jrM S|S\Rp                  \9-  S"\Rt                  S#\S-  S\R                  4S$ jjrN  S}S\Rp                  \9-  S"\Rt                  S%\"Rž                  S&\R                   R¢                  \R-  S-  S#\S-  S\"R¦                  4S' jjrTS( rUS)\S*   SS*4S+ jrV " S, S-\R®                  5      rXSS.SSS/S/SS0S SS S\R²                  \XR´                  4S1\R¶                  R¸                  S2\RS3\]S-  S4\9S#\RS-  S5\9S6\^S7\^S8\S-  S9\RS:\^S;\RS-  S<\^\R-  \"Rž                  -  S)\S*   S=\9S>\XS\R¶                  R¸                  4"S? jjr_S@\RÀ                  RÂ                  SA\bS\b4SB jrcS@\RÀ                  RÂ                  SC\RSD\bSS4SE jrd         S~S1\R¶                  R¸                  S2\RSF\RS3\]S-  S4\9S#\RS-  S5\9S6\^S7\^S<\^\R-  \"Rž                  -  S:\^SG\RÀ                  RÊ                  S-  S\R¶                  R¸                  4SH jjrfSI rgSJ rh S|SK\SL\R¶                  R¸                  \b-  SM\SN\]S-  S\\9\]4   4
SO jjri          SSK\SM\S-  SN\]S-  SP\^S6\^SQ\\R                   R¢                  \RÔ                  RÖ                  4   S-  SR\bS-  S7\^SS\^ST\^SU\R¶                  R¸                  S-  S\4SV jjrl          S€S1\R¶                  R¸                  S2\RS3\]S-  S4\9S#\RS-  S5\9SP\^S6\^S7\^SS\^SK\S-  ST\^S\R¶                  R¸                  4SX jjrm          S�S1\R¶                  R¸                  S2\RS3\]S-  S4\9S#\RS-  S5\9SP\^S6\^S7\^SY\S-  SZ\S-  ST\^S\\R¶                  R¸                  \^4   4S[ jjrnS\ roS] rp S|SK\SL\R¶                  R¸                  \b-  SN\]S-  S\\9\]4   4S^ jjrq     S‚SK\SN\]S-  S6\^SQ\\R                   R¢                  \RÔ                  RÖ                  4   S-  SR\bS-  S7\^S\\R¶                  R¸                  \]4   4S_ jjrrS` rs       SƒS1\R¶                  R¸                  S2\RS3\]S-  S4\9S#\RS-  S5\9S6\^S7\^SK\S-  S\R¶                  R¸                  4Sa jjrtSb ru   S„S<\^\R-  Sc\^Sd\v\R   S-  S\"Rž                  4Se jjrwS&\RS-  S<\^\R-  S\"Rž                  4Sf jrx          S…S1\R¶                  R¸                  S2\RS3\]S-  S4\9S#\RS-  S5\9S6\^S7\^SK\"R¦                  S-  S%\"Rž                  S-  S&\RS-  S<\^\R-  S\R¶                  R¸                  4Sg jjry          S†S1\R¶                  R¸                  S2\RS3\]S-  S4\9S#\RS-  S5\9S6\^S7\^SG\RÀ                  RÊ                  S-  S<\^\R-  Sh\RS-  S&\RS-  S\R¶                  R¸                  4Si jjr` " Sj Sk\R®                  5      rzSl\Rö                  Rø                  Sm\R                  \"R¦                  -  SU\R¶                  R¸                  Sn\9S-  S3\]S-  SN\]S-  S\4So jr}\Rü                  Rþ                  \GR                   GR                  SSWSSS SSSSS/\RÔ                  GR                  4S2\RSp\R                   R¢                  \R-  Sq\Rü                  GR                  \R-  Sr\GR                   GR                  \R-  S3\]S-  S4\9SQ\\R                   R¢                  \RÔ                  RÖ                  4   S-  Ss\R                   R¢                  \R-  S-  St\^Su\]S-  S#\RS-  S5\9Sn\9Sv\^Sw\R                   R¢                  \R-  S\4 Sx jjrESSWSSSS\zGR
                  4S2\RSl\Rö                  Rø                  SU\R¶                  R¸                  S-  S4\9S3\]S-  Su\]S-  S#\RS-  S5\9Sy\zSS4Sz jjr†g! \# a
    SSK$J%r"   G	N6f = f)‡zTalk to a DNS server.é    N)ÚAnyÚCallableÚDictÚOptionalÚTupleÚcastc                 ó~   • U c  g U [         R                   " 5       -
  nUS::  a  [        R                  R                  eU$ )Nç        )ÚtimeÚdnsÚ	exceptionÚTimeout)Ú
expirationÚtimeouts     Úb/var/www/html/health-monitoring.indevconsultancy.in/venv/lib/python3.13/site-packages/dns/query.pyÚ
_remainingr   5   s7   € ØÑØØœ4Ÿ9š9›;Ñ&€GØ�#ƒ~Ü�m‰m×#Ñ#Ð#Ø€Nó    c                 óN   • Uc  g [        [        R                  " 5       U -   U5      $ ©N)Úminr   )r   r   s     r   Ú_expiration_for_this_attemptr   >   s#   € ØÑØÜŒt�yŠy‹{˜WÑ$ jÓ1Ð1r   Údohc                   ó@   ^ • \ rS rSrU 4S jr SS jr SS jrSrU =r$ )Ú_NetworkBackendéL   c                 óR   >• [         TU ]  5         X l        Xl        X0l        X@l        g r   )ÚsuperÚ__init__Ú_local_portÚ	_resolverÚ_bootstrap_addressÚ_family)ÚselfÚresolverÚ
local_portÚbootstrap_addressÚfamilyÚ	__class__s        €r   r   Ú_NetworkBackend.__init__M   s$   ø€ Ü‰GÑÔØ)ÔØ%ŒNØ&7Ô#Ø!�Lr   c                 óˆ  • / n[        U5      u  px[        R                  R                  U5      (       a  UR	                  U5        O�U R
                  b  UR	                  U R
                  5        Og[        U5      nU R                  n	U(       a  [        R                  R                  U5      n	U R                  R                  XUS9n
U
R                  5       nU HÇ  n[        R                  R                  U5      nUc  U R                  S:w  a1  Uc  Sn[        R                  R                  X@R                  4U5      nOS n [        U[        R                   U5      n[#        SU5      n[%        U[        R                  R                  X²4U5      U5        ['        U5      s  $    [*        R,                  e! [(         a     Mè  f = f)N)r'   Úlifetimer   z0.0.0.0g       @)Ú_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_optionsr2   Ú_r   r'   ÚanswersÚaddressÚafÚsourceÚsockÚattempt_expirations                   r   Úconnect_tcpÚ_NetworkBackend.connect_tcpT   sŽ  € ð ˆIÜ*¨7Ó3‰MˆAÜ�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Ø$Ñ,Ø(1˜Ü ŸX™X×=Ñ=Ø&×(8Ñ(8Ð9¸2ó‘Fð "�Fð
Ü& r¬6×+=Ñ+=¸vÓF�DÜ)EÀcÈ:Ó)VÐ&ÜØÜŸ™×8Ñ8¸'¸È"ÓMØ*ôô
 +¨4Ó0Ò0ñ% %ô* ×'Ñ'Ð'øô !ó Úðús   ÅAF3Æ3
GÇ Gc                 ó   • [         er   ©ÚNotImplementedError)r#   Úpathr   r?   s       r   Úconnect_unix_socketÚ#_NetworkBackend.connect_unix_socket}   s
   € ô &Ð%r   )r!   r"   r   r    )NNN©NN)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   rG   rM   Ú__static_attributes__Ú__classcell__©r(   s   @r   r   r   L   s$   ø† õ	"ð PTô'	(ðT 6:÷	&ò 	&r   r   c                   óJ   ^ • \ rS rSrSSS\R
                  S.U 4S jjrSrU =r$ )Ú_HTTPTransporté‚   r   N©r%   r&   r$   r'   c                ó¤   >• Uc!  Uc  SS K nUR                  R                  5       n[        TU ]  " U0 UD6  [        X1X$5      U R                  l        g ©Nr   )Údns.resolverr$   ÚResolverr   r   r   Ú_poolÚ_network_backend)	r#   r%   r&   r$   r'   ÚargsÚkwargsr   r(   s	           €r   r   Ú_HTTPTransport.__init__ƒ   sO   ø€ ð ÑÐ$5Ñ$=ã#àŸ<™<×0Ñ0Ó2�Ü‰GÒ˜dÐ- fÒ-Ü*9ØÐ&7ó+ˆD�J‰JÕ'r   © )	rP   rQ   rR   rS   r5   Ú	AF_UNSPECr   rT   rU   rV   s   @r   rX   rX   ‚   s!   ø† ð Ø"ØØ×#Ñ#÷	ö 	r   rX   c                   óB   • \ rS rSrSSS\R
                  S.S jrS rSrg)rX   é˜   r   NrZ   c                ó   • g r   rd   )r#   r%   r&   r$   r'   ra   rb   s          r   r   rc   ™   s   € ð r   c                 ó   • [         er   rJ   )r#   r<   r=   r   r>   s        r   rG   Ú_HTTPTransport.connect_tcp¤   ó   € Ü%Ð%r   rd   )	rP   rQ   rR   rS   r5   re   r   rG   rT   rd   r   r   rX   rX   ˜   s    † ð Ø"ØØ×#Ñ#õ		õ	&r   rC   ÚkindÚprotoÚreturnc                 ó0   • [         R                   " XU5      $ r   )r5   )rC   rl   rm   s      r   Údefault_socket_factoryrp   «   s   € ô
 �=Š=˜ 5Ó)Ð)r   Úsocket_factoryc                   ó   • \ rS rSrSrSrg)ÚUnexpectedSourceéº   z=A DNS query response came from an unexpected address or port.rd   N©rP   rQ   rR   rS   Ú__doc__rT   rd   r   r   rs   rs   º   s   † ÜGr   rs   c                   ó   • \ rS rSrSrSrg)ÚBadResponseé¾   z<A DNS query response does not respond to the question asked.rd   Nru   rd   r   r   rx   rx   ¾   s   † ÜFr   rx   c                   ó   • \ rS rSrSrSrg)ÚNoDOHéÂ   zIDNS over HTTPS (DOH) was requested but the httpx module is not
available.rd   Nru   rd   r   r   r{   r{   Â   ó   † ôr   r{   c                   ó   • \ rS rSrSrSrg)ÚNoDOQéÇ   zJDNS over QUIC (DOQ) was requested but the aioquic module is not
available.rd   Nru   rd   r   r   r   r   Ç   r}   r   r   c                 óF   • [         R                   " 5       nU c  US 4$ XU -   4$ r   )r   )r   Únows     r   r,   r,   Ð   s)   € Ü
�)Š)‹+€CØ�Ø�Tˆ{Ðà˜7‘]Ð#Ð#r   c                 óR  • U(       a4  [        U [        R                  5      (       a  U R                  5       S:”  a  g[        R
                  " 5        nSnU(       a  U[        R                  -  nU(       a  U[        R                  -  nU(       a  UR                  X5        Uc  S nO8U[        R                  " 5       -
  nUS::  a  [        R                  R                  eUR                  U5      (       d  [        R                  R                  e S S S 5        g ! , (       d  f       g = f)Nr   Tr
   )Ú
isinstanceÚsslÚ	SSLSocketÚpendingÚ	selectorsÚDefaultSelectorÚ
EVENT_READÚEVENT_WRITEÚregisterr   r   r   r   Úselect)ÚfdÚreadableÚwritabler@   r   ÚselÚeventsr   s           r   Ú	_wait_forr“   Ø   sÑ   € ö ”J˜r¤3§=¡=×1Ñ1°b·j±j³lÀQÓ6FØÜ	×	"Ò	"Ô	$¨ØˆÞØ”i×*Ñ*Ñ*ˆFÞØ”i×+Ñ+Ñ+ˆFÞØ�L‰L˜Ô$ØÑØ‰Gà ¤4§9¢9£;Ñ.ˆGØ˜#‹~Ü—m‘m×+Ñ+Ð+Ø�z‰z˜'×"Ñ"Ü—-‘-×'Ñ'Ð'ð #÷ 
%×	$Ö	$ús   ÁB=DÄ
D&c                 ó"   • [        U SSSU5        g )NTF©r“   ©Úsr   s     r   Ú_wait_for_readabler˜   ô   s   € Üˆa��u˜d JÕ/r   c                 ó"   • [        U SSSU5        g )NFTr•   r–   s     r   Ú_wait_for_writablerš   ø   s   € Üˆa�˜˜d JÕ/r   c                 ó   •  [         R                  R                  XS   5      n[         R                  R                  XS   5      nX4:H  =(       a    USS  USS  :H  $ ! [         R                  R                   a     gf = f)Nr   Fé   )r   r-   Ú	inet_ptonr   ÚSyntaxError)rC   Úa1Úa2Ún1Ún2s        r   Ú_addresses_equalr£   ü   su   € ðÜ�X‰X×Ñ  q¡EÓ*ˆÜ�X‰X×Ñ  q¡EÓ*ˆð ‰8×(˜˜1˜2˜ " Q R &Ñ(Ð(øô �=‰=×$Ñ$ó Ùðús   ‚AA ÁA=Á<A=c                 óÎ   • U(       d  g[        XU5      (       d3  [        R                  R                  US   5      (       a  USS  USS  :X  a  gU(       a  g[	        SU SU 35      e)NTr   rœ   Fzgot a response from z instead of )r£   r   r-   Úis_multicastrs   )rC   Úfrom_addressÚdestinationÚignore_unexpecteds       r   Ú_matches_destinationr©     sl   € ö ØÜ˜¨+×6Ñ6Ü�‰×Ñ˜k¨!™n×-Ñ-°,¸q¸rÐ2BÀkÐRSÐRTÀoÓ2UàÞ	ØÜ
Ø
˜|˜n¨L¸[¸MÐJóð r   Tc                 ó4  • S nS n [         R                  R                  U 5      nU nU(       a9  [         R                  R                  U5      nU(       a  Xu:w  a  [	        S5      eOUnU(       a'  U(       d    [         R                  R                  U5      nU(       a!  [         R                  R                  Xa4U5      nU(       a!  [         R                  R                  X#4U5      nXVU4$ ! [         a    U(       a  e  NÖf = f! [         a    [	        S5      ef = f)Nz5different address families for source and destinationz3source_port specified but address family is unknown)r   r-   r0   r9   Ú
ValueErrorÚ
any_for_afr3   )Úwherer=   rD   Úsource_portÚwhere_must_be_addressrC   r§   Úsafs           r   Ú_destination_and_sourcer±     s  € ð
 
€BØ€KðÜ�X‰X×$Ñ$ UÓ+ˆØˆö
 Ü�h‰h×%Ñ% fÓ-ˆÞà‹yÜ ØKóð ð ð ˆBÞž6ð	TÜ—X‘X×(Ñ(¨Ó,ˆFö Ü—h‘h×6Ñ6¸Ð7JÈBÓOˆÞÜ—‘×1Ñ1°6Ð2GÈÓLˆØ˜VÐ$Ð$øô? ó Þ Øñ !ðûô, ó 	TäÐRÓSÐSð	Tús   †!C) Á6D Ã)C>Ã=C>ÄDÚtyperD   c                 ó¨   • [        XS5      n UR                  S5        Ub  UR                  U5        U$ ! [         a    UR	                  5         e f = f)a!  Make a socket.

This function uses the module's ``socket_factory`` to make a socket of the
specified address family and type.

*af*, a ``socket.AddressFamily`` or ``int`` is the address family, either
``socket.AF_INET`` or ``socket.AF_INET6``.

*type*, a ``socket.SocketKind`` is the type of socket, e.g. ``socket.SOCK_DGRAM``,
a datagram socket, or ``socket.SOCK_STREAM``, a stream socket.  Note that the
``proto`` attribute of a socket is always zero with this API, so a datagram socket
will always be a UDP socket, and a stream socket will always be a TCP socket.

*source* is the source address and port to bind to, if any.  The default is
``None`` which will bind to the wildcard address and a randomly chosen port.
If not ``None``, it should be a (low-level) address tuple appropriate for *af*.
r   F)rq   ÚsetblockingÚbindr9   Úclose)rC   r²   rD   r—   s       r   r4   r4   D  sR   € ô, 	�r Ó#€AðØ	�‰�eÔØÑØ�F‰F�6ŒNØˆøÜó Ø	�‰Œ	Øðús	   Ž&5 µAÚssl_contextÚserver_hostnamec                 ó®   • [        XU5      n[        U[        R                  R                  5      (       a  UR                  5       nUR                  USUS9$ )aV  Make a socket.

This function uses the module's ``socket_factory`` to make a socket of the
specified address family and type.

*af*, a ``socket.AddressFamily`` or ``int`` is the address family, either
``socket.AF_INET`` or ``socket.AF_INET6``.

*type*, a ``socket.SocketKind`` is the type of socket, e.g. ``socket.SOCK_DGRAM``,
a datagram socket, or ``socket.SOCK_STREAM``, a stream socket.  Note that the
``proto`` attribute of a socket is always zero with this API, so a datagram socket
will always be a UDP socket, and a stream socket will always be a TCP socket.

If *ssl_context* is not ``None``, then it specifies the SSL context to use,
typically created with ``make_ssl_context()``.

If *server_hostname* is not ``None``, then it is the hostname to use for server
certificate validation.  A valid hostname must be supplied if *ssl_context*
requires hostname checking.

*source* is the source address and port to bind to, if any.  The default is
``None`` which will bind to the wildcard address and a randomly chosen port.
If not ``None``, it should be a (low-level) address tuple appropriate for *af*.
F)Údo_handshake_on_connectr¸   )r4   r„   r   ÚnameÚNameÚto_textÚwrap_socket)rC   r²   r·   r¸   rD   rE   s         r   Úmake_ssl_socketr¿   e  sT   € ô> �r Ó(€DÜ�/¤3§8¡8§=¡=×1Ñ1Ø)×1Ñ1Ó3ˆà×"Ñ"ØØ %Ø'ð #ð ð r   c                 ó:   • Ub  [        XX4U5      $ [        XU5      $ r   )r¿   r4   )rC   r²   rD   r·   r¸   s        r   Ú_make_socketrÁ   �  s&   € ð ÑÜ˜r¨ÀvÓNÐNä˜2 VÓ,Ð,r   r$   zdns.resolver.Resolverc                 óH   • U c  SS K nUR                  R                  5       n U $ r\   )r]   r$   r^   )r$   r   s     r   Ú_maybe_get_resolverrÃ   �  s$   € ð Ñãà—<‘<×(Ñ(Ó*ˆØ€Or   c                   ó4   • \ rS rSrSrSrSrSrSrSr	Sr
SrSrg)	ÚHTTPVersioni«  zzWhich version of HTTP should be used?

DEFAULT will select the first version from the list [2, 1.1, 3] that
is available.
r   rœ   é   é   rd   N)rP   rQ   rR   rS   rv   ÚDEFAULTÚHTTP_1ÚH1ÚHTTP_2ÚH2ÚHTTP_3ÚH3rT   rd   r   r   rÅ   rÅ   «  s,   † ñð €GØ€FØ	
€BØ€FØ	
€BØ€FØ	
ƒBr   rÅ   é»  Fz
/dns-queryÚqr­   r   r=   r®   Úone_rr_per_rrsetÚignore_trailingÚsessionrL   Úpostr&   Úverifyr'   Úhttp_versionc                 óÀ  • [        XXES5      u  nnnUnUba  [        R                  R                  U5      (       a=  U[        R
                  :X  a  SU SU U	 3nOU[        R                  :X  a
  SU SU U	 3n0 nUc™  [        R                  R                  U5      nUR                  c  [        S5      e[        R                  R                  UR                  5      (       a  UR                  nUR                  US'   UR                  b  UR                  nU[        R                  :X  d  U[        R                  :X  aÀ  [         (       dµ  Ucc  [#        U5      nWR                  c   eUR%                  UR                  U5      n[&        R(                  " [+        UR-                  5       5      5      nU(       a4  [/        U[        R0                  R2                  5      (       d  [        S	5      e[5        U UUUUUUUUUU
US
9$ [         (       d  [6        eU(       a*  [/        U[8        R:                  5      (       d  [        S5      eU R=                  5       nSS0nU[        R>                  [        R                  4;   nU[        R@                  [        R                  4;   nUc  SnSnO
US   nUS   nU(       a  [B        RD                  " U5      nO'[G        UUUUUUUUS9n[8        R:                  " UUUUS9nU nUc   eU
(       a:  URI                  S[K        [M        U5      5      S.5        URO                  UUUUUS9nOJ[P        RR                  " U5      RU                  S5      nURW                  5       n URY                  UUUSU 0US9nSSS5        WRZ                  S:  d  URZ                  S:”  a'  [        U SURZ                   SUR\                   35      e[        R^                  Ra                  UR\                  U Rb                  U Rd                  UUS9n!URf                  Ri                  5       U!l5        U Rm                  U!5      (       d  [n        eU!$ ! , (       d  f       NÑ= f)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.

*http_version*, a ``dns.query.HTTPVersion``, indicating which HTTP version to use.

Returns a ``dns.message.Message``.
FNzhttps://Ú:z	https://[z]:zno hostname in URLÚsni_hostnamez8session parameter must be a dns.quic.SyncQuicConnection.)rÕ   rÔ   Ú
connectionz)session parameter must be an httpx.ClientÚacceptzapplication/dns-messager   rœ   )r>   Úhttp1Úhttp2rÕ   r%   r&   r$   r'   )rÜ   rÝ   rÕ   Ú	transport)zcontent-typezcontent-length)ÚheadersÚcontentr   Ú
extensionsó   =r   )rß   r   Úparamsrá   éÈ   é+  ú responded with status code z
Response body: ©ÚkeyringÚrequest_macrÑ   rÒ   )8r±   r   r-   r.   r5   ÚAF_INETÚAF_INET6ÚurllibÚparseÚurlparseÚhostnamer«   r=   rÅ   rÎ   rÈ   Úhave_dohrÃ   r1   ÚrandomÚchoiceÚlistr2   r„   ÚquicÚSyncQuicConnectionÚ_http3r{   ÚhttpxÚClientÚto_wirerÊ   rÌ   Ú
contextlibÚnullcontextrX   ÚupdateÚstrÚlenrÔ   Úbase64Úurlsafe_b64encodeÚrstripÚdecodeÚgetÚstatus_coderà   ÚmessageÚ	from_wirerè   ré   ÚelapsedÚtotal_secondsr   Úis_responserx   )"rÐ   r­   r   r=   rD   r®   rÑ   rÒ   rÓ   rL   rÔ   r&   rÕ   r$   r'   rÖ   rC   r@   Ú
the_sourceÚurlrá   ÚparsedrA   Úwirerß   Úh1Úh2r>   r%   ÚcmrÞ   ÚresponseÚtwireÚrs"                                     r   Úhttpsr  »  s  € ôN 2Ø�V¨%óÑ€RˆˆJð €CØ	�~œ#Ÿ(™(×-Ñ-¨e×4Ñ4Ø”—‘ÓØ˜U˜G 1 T F¨4¨&Ð1‰CØ”6—?‘?Ó"Ø˜e˜W B t f¨T¨FÐ3ˆCà€JØÑ ä—‘×&Ñ& sÓ+ˆØ�?‰?Ñ"ÜÐ1Ó2Ð2Ü�8‰8×Ñ˜vŸ™×/Ñ/Ø &§¡ÐØ)/¯©ˆJ�~Ñ&Ø�;‰;Ñ"Ø—;‘;ˆDà”{—~‘~Ó%Øœ×+Ñ+Ó+·H²HàÑ$Ü*¨8Ó4ˆHØ—?‘?Ñ.Ð.Ð.Ø×+Ñ+¨F¯O©O¸VÓDˆGÜ &§¢¬d°7×3DÑ3DÓ3FÓ.GÓ HÐÞœ:Ø”S—X‘X×0Ñ0÷
ñ 
ô ÐWÓXÐXÜØØØØØØØØØØØØñ
ð 	
÷ Š8ÜˆÞ”z '¬5¯<©<×8Ñ8ÜÐDÓEÐEà�9‰9‹;€DØÐ2Ð3€Gà	œ+Ÿ.™.¬+×*=Ñ*=Ð>Ñ	>€BØ	œ+Ÿ.™.¬+×*=Ñ*=Ð>Ñ	>€Bð ÑØˆØ‰
à" 1™ˆØ ‘]ˆ
æÜ0:×0FÒ0FÀwÓ0O‰ä"Ø'ØØØØ!Ø/ØØñ	
ˆ	ô �\Š\Ø˜B v¸ñ
ˆñ 
ˆwð Ñ"Ð"Ð"ÞØ�N‰Nà$=Ü&)¬#¨d«)£nñôð —|‘|ØØØØØ%ð $ð ‰Hô ×+Ò+¨DÓ1×8Ñ8¸Ó>ˆDØ—K‘K“MˆEØ—{‘{ØØØØ˜u�~Ø%ð #ð ˆH÷+ 
ð> ×Ñ˜cÓ! X×%9Ñ%9¸CÓ%?ÜØˆgÐ1°(×2FÑ2FÐ1GØ × 0Ñ 0Ð1ð3ó
ð 	
ô 	�‰×ÑØ×ÑØ—	‘	Ø—M‘MØ)Ø'ð 	ð 	€Að ×Ñ×+Ñ+Ó-€A„FØ�=‰=˜×ÑÜÐØ€H÷] 
�ús   Ë3BQÑ
Qrß   r»   c                 óH   • U c  [         eU  H  u  p#X!:X  d  M  Us  $    [         er   )ÚKeyError)rß   r»   ÚheaderÚvalues       r   Ú_find_headerr  Š  s)   € Ø�ÜˆÛ ‰ˆØ�>ØŠLñ !ô €Nr   Úpeerr  c                 ó  • [        U S5      nUc  [        S5      e[        U5      nUS:  a  [        S5      eUS:  d  US:”  a7  Sn[        U5      S:”  a   SUR	                  5       -   n[        U S	U U 35      eg ! [
         a     Nf = f)
Ns   :statuszno :status header in responser   zstatus is negativerä   rå   Ú z: ræ   )r  rž   Úintrþ   r  r9   r«   )rß   r  r  r  ÚstatusÚerrors         r   Ú_check_statusr   “  s£   € Ü˜ *Ó-€EØ�}ÜÐ9Ó:Ð:Ü�‹Z€FØ�ƒzÜÐ.Ó/Ð/Ø�ƒ|�v “|ØˆÜˆt‹9�q‹=ðØ˜tŸ{™{›}Ñ,�ô ˜D˜6Ð!=¸f¸XÀeÀWÐMÓNÐNð $øô
 ó Ùðús   ÁA; Á;
BÂBr  rÚ   c                 óø  • [         R                  R                  (       d  [        S5      e[        R
                  R                  U5      nUR                  nUc   eUR                  b  UR                  nSU l	        U R                  5       nU(       a  [        R                  " S 5      nO [         R                  R                  X�SS9nUnU   U(       a  UnOWR                  XXV5      n[        U5      u  nnUR!                  U5       nUR#                  X.U
5        UR%                  ['        U5      5      n[)        UR+                  5       X5        S S S 5        [,        R,                  " 5       nS S S 5        [         R.                  R1                  UU R2                  U R4                  UUS9n[7        WW-
  S5      Ul        U R9                  U5      (       d  [:        eU$ ! , (       d  f       N’= f! , (       d  f       N†= f)Nz DNS-over-HTTP3 is not available.r   T)Úverify_modeÚserver_nameÚh3rç   r
   )r   rô   Ú	have_quicr{   rì   rí   rî   rï   r=   Úidrù   rú   rû   ÚSyncQuicManagerÚconnectr,   Úmake_streamÚsend_h3Úreceiver   r   rß   r   r  r  rè   ré   Úmaxr	  rx   )rÐ   r­   r  r   r=   rD   r®   rÑ   rÒ   rÕ   rÔ   rÚ   Ú	url_partsrï   r  ÚmanagerÚthe_managerÚthe_connectionÚstartr   ÚstreamÚfinishr  s                          r   rö   rö   ¤  s¢  € ô �8‰8××ÜÐ6Ó7Ð7ä—‘×%Ñ% cÓ*€IØ×!Ñ!€HØÑÐÐØ‡~�~Ñ!Ø�~‰~ˆà€A„DØ�9‰9‹;€Dö Ü5?×5KÒ5KÈDÓ5Q‰ä—(‘(×*Ñ*Ø¸ð +ð 
ˆð ˆâ	ÞØ'‰Nà(×0Ñ0Ø˜VóˆNô -¨WÓ5Ñˆ�
Ø×'Ñ'¨Ô0°FØ�N‰N˜3 dÔ+Ø—>‘>¤*¨ZÓ"8Ó9ˆDÜ˜&Ÿ.™.Ó*¨EÔ8÷ 1ô —’“ˆ÷ 
ô 	�‰×ÑØØ—	‘	Ø—M‘MØ)Ø'ð 	ð 	€Aô �˜%‘ Ó%€A„FØ�=‰=˜×ÑÜÐØ€H÷ 1Õ0ú÷ 
�ús%   Ã<G+ÄAGÅG+Ç
G(	Ç$G+Ç+
G9c                 ób   •   U R                  U5      $ ! [         a    [        X5         Of = fM/  )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˜   )rE   Úmax_sizer   s      r   Ú	_udp_recvr8  á  s7   € ð
 ð	1Ø—=‘= Ó*Ð*øÜó 	1Ü˜tÖ0ð	1úñ s   ƒ ”,«,c                 ó’   •   U(       a  U R                  X5      $ U R                  U5      $ ! [         a    [        X5         Of = fMG  )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Úsendr6  rš   )rE   Údatar§   r   s       r   Ú	_udp_sendr=  í  sH   € ð
 ð	1ÞØ—{‘{ 4Ó5Ð5à—y‘y “Ð&øÜó 	1Ü˜tÖ0ð	1úñ s   ƒ, ›, ¬AÁArE   Úwhatr§   r   c                 ó¼   • [        U[        R                  R                  5      (       a  UR	                  5       n[
        R
                  " 5       n[        XX#5      nXT4$ )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=  )rE   r>  r§   r   Ú	sent_timeÚns         r   Úsend_udprC  ü  sE   € ô, �$œŸ™×+Ñ+×,Ñ,Ø�|‰|‹~ˆÜ—	’	“€IÜ�$˜kÓ6€AØˆ>Ðr   r¨   rè   ré   Úraise_on_truncationÚignore_errorsÚqueryc           	      ó  • Sn [        U SU5      u  p¼[        U R                  XÁU5      (       d  M.  [        R                  " 5       n [        R
                  R                  UUUUUUS9nU	(       a  U
b  U
R                  U5      (       d  Mˆ  U(       a  Xí4$ XíU4$ ! [        R
                  R                   a:  nU	(       a-  U
b*  U
R                  UR                  5       5      (       d   SnAMè  e SnAf[         a    U	(       a   GM  e f = f)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Ò   rD  N)
r8  r©   r'   r   r   r  r  Ú	Truncatedr	  r9   )rE   r§   r   r¨   rÑ   rè   ré   rÒ   rD  rE  rF  r  r¦   Úreceived_timer  Úes                   r   Úreceive_udprL    s   € ð| €DØ
Ü(¨¨u°jÓAÑˆÜ#Ø�K‰K˜Ð4E÷
ñ 
ñ ÜŸ	š	›ˆð	Ü—‘×%Ñ%ØØØ'Ø!1Ø /Ø$7ð &ð ˆAö6 ˜UÑ.°u×7HÑ7HÈ×7KÑ7KÙÞØÐ%Ð%à lÐ3Ð3øô1 �{‰{×$Ñ$ó 	ö ØÑ%Ø×)Ñ)¨!¯)©)«+×6Ñ6åàûÜó 	ÞÛàð		ús$   Á"B ÂDÂ7.C,Ã+C,Ã,DÄDé5   c                 óê  • U R                  5       n[        XXES5      u  pÞn[        U5      u  nnU
(       a  [        R                  " U
5      nO Uc   e[        U[        R                  U5      nU n[        UXÎU5        [        UUUUUU R                  U R                  UU	UU 5      u  nnUU-
  Ul        U(       d  U R                  U5      (       d  [        eUsSSS5        $ ! , (       d  f       O= f  e)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``.
TN)rù   r±   r,   rú   rû   r4   r5   Ú
SOCK_DGRAMrC  rL  rè   Úmacr   r	  rx   )rÐ   r­   r   r=   rD   r®   r¨   rÑ   rÒ   rD  rE   rE  r  rC   r§   Ú
begin_timer   r  r—   r  rJ  s                        r   ÚudprR  ƒ  sò   € ðp �9‰9‹;€DÜ 7Ø�V¨$ó!Ñ€R�fô  .¨gÓ6Ñ€Z�ÞÜ0:×0FÒ0FÀtÓ0L‰à‰~Ðˆ~Ü˜œV×.Ñ.°Ó7ˆÙ	ˆqÜ��D zÔ2Ü(ØØØØØØ�I‰IØ�E‰EØØØØó
ÑˆˆMð  Ñ+ˆŒö  §¡¨q×!1Ñ!1ÜÐØ÷) 
��úð, 	ðØs   Á/A(C!Ã!
C/Úudp_sockÚtcp_sockc                 ó®   •  [        U UUUUUUUUSU	U5      nUS4$ ! [        R                  R                   a    [	        U UUUUUUUU
5	      nUS4s $ f = f)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)rR  r   r  rI  Útcp)rÐ   r­   r   r=   rD   r®   r¨   rÑ   rÒ   rS  rT  rE  r  s                r   Úudp_with_fallbackrW  ß  sŽ   € ðr ÜØØØØØØØØØØØØó
ˆð ˜%Ð Ð øÜ�;‰;× Ñ ó  ÜØØØØØØØØØó

ˆð ˜$ÐÒð ús   ‚ œ5AÁAc                 ó&  • SnUS:”  a=   U R                  U5      nUS:X  a  [        S5      eU[        U5      -  nX4-  nUS:”  a  M=  U$ ! [        [        R
                  4 a    [        X5         N1[        R                   a    [        X5         NQf = f)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   ÚEOF)	ÚrecvÚEOFErrorrþ   r6  r…   ÚSSLWantReadErrorr˜   ÚSSLWantWriteErrorrš   )rE   Úcountr   r—   rB  s        r   Ú	_net_readr_  7  s’   € ð 	€AØ
�!‹)ð		1Ø—	‘	˜%Ó ˆAØ�C‹xÜ˜u“oÐ%Ø”S˜“V‰OˆEØ‰FˆAð �!�)ð €Høô	  ¤×!5Ñ!5Ð6ó 	1Ü˜tÖ0Ü×$Ñ$ó 	1Ü˜tÖ0ð	1ús   Š4A Á%BÁ/BÂBc                 óú   • Sn[        U5      nX4:  a   X0R                  XS 5      -  nX4:  a  M  gg! [        [        R                  4 a    [        X5         N0[        R                   a    [        X5         NPf = f)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;  r6  r…   r]  rš   r\  r˜   )rE   r<  r   ÚcurrentÚls        r   Ú
_net_writerc  L  sr   € ð
 €GÜˆD‹	€AØ
‹+ð	1Ø—y‘y  h Ó0Ñ0ˆGð �+øô  ¤×!6Ñ!6Ð7ó 	1Ü˜tÖ0Ü×#Ñ#ó 	1Ü˜tÖ0ð	1ús   ”2 ²%A:ÁA:Á9A:c                 ó  • [        U[        R                  R                  5      (       a  UR	                  SS9nO[        U5      R                  SS5      U-   n[        R                  " 5       n[        XU5        [        U5      U4$ )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_lengthrÆ   Úbig)	r„   r   r  r@  rù   rþ   Úto_bytesr   rc  )rE   r>  r   ÚtcpmsgrA  s        r   Úsend_tcpri  \  sl   € ô$ �$œŸ™×+Ñ+×,Ñ,Ø—‘¨T�Ð2‰ô
 �T“×#Ñ# A uÓ-°Ñ4ˆÜ—	’	“€IÜˆt˜ZÔ(Ü�‹K˜Ð#Ð#r   c                 óØ   • [        U SU5      n[        R                  " SU5      u  n[        XU5      n[        R                  " 5       n	[        R
                  R                  UUUUUS9n
X©4$ )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  )rE   r   rÑ   rè   ré   rÒ   Úldatarb  r  rJ  r  s              r   Úreceive_tcpro  z  so   € ôB �d˜A˜zÓ*€EÜ�=Š=˜˜uÓ%�D€QÜ�T˜jÓ)€DÜ—I’I“K€MÜ�‰×ÑØØØØ)Ø'ð 	ð 	€Að ÐÐr   c                 óX  • U R                  U5      nUS:X  a  g U[        R                  [        R                  [        R                  4;   a9  [        X5        U R                  [        R                  [        R                  5      nUS:w  a   [        U[        R                  " U5      5      eg r\   )Ú
connect_exÚerrnoÚEINPROGRESSÚEWOULDBLOCKÚEALREADYrš   Ú
getsockoptr5   Ú
SOL_SOCKETÚSO_ERRORÚOSErrorÚosÚstrerror)r—   rB   r   Úerrs       r   r7   r7   ©  s}   € Ø
�,‰,�wÓ
€CØ
ˆaƒxØØ
Œu× Ñ ¤%×"3Ñ"3´U·^±^ÐDÓDÜ˜1Ô)Ø�l‰lœ6×,Ñ,¬f¯o©oÓ>ˆØ
ˆaƒxÜ�cœ2Ÿ;š; sÓ+Ó,Ð,ð r   c	           	      óò  • U R                  5       n	[        U5      u  p«U(       a  [        R                  " U5      nO0[	        XXES5      u  pÞnUc   e[        U[        R                  U5      nU nU(       d  [        UWU5        [        XùU5        [        XûX`R                  U R                  U5      u  nnUU
-
  Ul        U R                  U5      (       d  [        eUsSSS5        $ ! , (       d  f       O= f  e)aU  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``.
TN)rù   r,   rú   rû   r±   r4   r5   r6   r7   ri  ro  rè   rP  r   r	  rx   )rÐ   r­   r   r=   rD   r®   rÑ   rÒ   rE   r  rQ  r   r  rC   r§   r—   r  rJ  s                     r   rV  rV  ´  sâ   € ðV �9‰9‹;€DÜ-¨gÓ6Ñ€ZÞÜ0:×0FÒ0FÀtÓ0L‰ä$;Ø˜¨dó%
Ñ!ˆ˜&ð ‰~Ðˆ~Ü˜œV×/Ñ/°Ó8ˆÙ	ˆqÞä�Q˜ ZÔ0Ü�˜*Ô%Ü(ØÐ+¯Y©Y¸¿¹¸ó
ÑˆˆMð  Ñ+ˆŒØ�}‰}˜Q×ÑÜÐØ÷ 
��úð 	ðØs   Á.A-C%Ã%
C3c                 ó¶   •   U R                  5         g ! [        R                   a    [        X5         O$[        R                   a    [        X5         Of = fMY  r   )Údo_handshaker…   r\  r˜   r]  rš   r–   s     r   Ú_tls_handshaker€  ú  sO   € Ø
ð	.Ø�N‰NÔØøÜ×#Ñ#ó 	.Ü˜qÖ-Ü×$Ñ$ó 	.Ü˜qÖ-ð	.úñ s   ƒ ”AµAÁAÚcheck_hostnameÚalpnsc                 ó  • [         R                  R                  U 5      u  p4[        R                  " X4S9n[        R
                  R                  Ul        Xl        U SL a  [        R                  Ul
        Ub  UR                  U5        U$ )a%  Make an SSL context

If *verify* is ``True``, the default, then certificate verification will occur using
the standard CA roots.  If *verify* is ``False``, then certificate verification will
be disabled.  If *verify* is a string which is a valid pathname, then if the
pathname is a regular file, the CA roots will be taken from the file, otherwise if
the pathname is a directory roots will be taken from the directory.

If *check_hostname* is ``True``, the default, then the hostname of the server must
be specified when connecting and the server's certificate must authorize the
hostname.  If ``False``, then hostname checking is disabled.

*aplns* is ``None`` or a list of TLS ALPN (Application Layer Protocol Negotiation)
strings to use in negotiation.  For DNS-over-TLS, the right value is `["dot"]`.
)ÚcafileÚcapathF)r   Ú	_tls_utilÚ#convert_verify_to_cafile_and_capathr…   Úcreate_default_contextÚ
TLSVersionÚTLSv1_2Úminimum_versionr�  Ú	CERT_NONEr"  Úset_alpn_protocols)rÕ   r�  r‚  r„  r…  r·   s         r   Úmake_ssl_contextrŽ    sq   € ô( —]‘]×FÑFÀvÓN�N€FÜ×,Ò,°FÑJ€Kô #&§.¡.×"8Ñ"8€KÔØ!/ÔØ�‚Ü"%§-¡-ˆÔØÑØ×&Ñ& uÔ-ØÐr   c                 ó    • [        XS LS/5      $ )NÚdot)rŽ  )r¸   rÕ   s     r   Ú_make_dot_ssl_contextr‘  '  s   € ô ˜F¸4Ð$?À%ÀÓIÐIr   c                 ó  • U(       a  [        U UUUUUUUU5	      $ U R                  5       n[        U5      u  pÞ[        XXES5      u  nnnUc   eU	c  [	        XºSLS/5      n	[        U[        R                  U	U
US9 n[        UUU5        [        UU5        [        UXÎ5        [        UXæU R                  U R                  U5      u  nnUU-
  Ul        U R                  U5      (       d  [         eUsSSS5        $ ! , (       d  f       O= f  e)aï  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``.

TNr�  )r·   r¸   rD   )rV  rù   r,   r±   rŽ  r¿   r5   r6   r7   r€  ri  ro  rè   rP  r   r	  rx   )rÐ   r­   r   r=   rD   r®   rÑ   rÒ   rE   r·   r¸   rÕ   r  rQ  r   rC   r§   r—   r  rJ  s                       r   Útlsr“  -  s0  € öz ô ØØØØØØØØØó

ð 
	
ð �9‰9‹;€DÜ-¨gÓ6Ñ€ZÜ 7Ø�V¨$ó!Ñ€Rˆ�fð ‰>Ðˆ>ØÑÜ& vÀdÐ/JÈUÈGÓTˆä	Ø
Ü×ÑØØ'Øò
ð 
Ü��K Ô,Ü�q˜*Ô%Ü��DÔ%Ü(Øˆz¨Q¯Y©Y¸¿¹¸ó
ÑˆˆMð  Ñ+ˆŒØ�}‰}˜Q×ÑÜÐØ÷!
÷ 
÷ 
úð$ 	ðØs   Á;A3C8Ã8
Drï   c                 ó>  • [         R                  R                  (       d  [        S5      eUb  U
c  Un
SU l        U R                  5       nU(       a  [        R                  " S5      nUnO[         R                  R                  XšS9nUnU   U(       d  WR                  XXE5      n[        U5      u  nnWR                  U5       nUR                  US5        UR                  [        U5      5      nSSS5        [        R                  " 5       nSSS5        [         R                   R#                  UU R$                  U R&                  UUS9n[)        WW-
  S5      Ul        U R+                  U5      (       d  [,        eU$ ! , (       d  f       N’= f! , (       d  f       N†= f)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.

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

*server_hostname*, a ``str`` or ``None``.  This item is for backwards compatibility
only, and has the same meaning as *hostname*.

Returns a ``dns.message.Message``.
zDNS-over-QUIC is not available.Nr   )r"  r#  Trç   r
   )r   rô   r%  r   r&  rù   rú   rû   r'  r(  r,   r)  r;  r+  r   r   r  r  rè   ré   r,  r	  rx   )rÐ   r­   r   r=   rD   r®   rÑ   rÒ   rÚ   rÕ   rï   r¸   r  r.  r0  r/  r1  r   r2  r3  r  s                        r   rô   rô   ™  sb  € ôn �8‰8××ÜÐ5Ó6Ð6àÑ" xÑ'7Ø"ˆà€A„DØ�9‰9‹;€Dö Ü5?×5KÒ5KÈDÓ5QˆØ#‰ä—(‘(×*Ñ*Øð +ð 
ˆð ˆâ	ÞØ(×0Ñ0Ø˜VóˆNô -¨WÓ5Ñˆ�
Ø×'Ñ'¨Ô0°FØ�K‰K˜˜dÔ#Ø—>‘>¤*¨ZÓ"8Ó9ˆD÷ 1ô —’“ˆ÷ 
ô 	�‰×ÑØØ—	‘	Ø—M‘MØ)Ø'ð 	ð 	€Aô �˜%‘ Ó%€A„FØ�=‰=˜×ÑÜÐØ€H÷ 1Õ0ú÷ 
�ús$   Â9FÃ-E=Ã1FÅ=
F	ÆFÆ
Fc                   ó$   • \ rS rSrSrSrSrSrSrg)ÚUDPModeiú  zó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Æ   rd   N)	rP   rQ   rR   rS   rv   ÚNEVERÚ	TRY_FIRSTÚONLYrT   rd   r   r   r–  r–  ú  s   † ñð €EØ€IØƒDr   r–  Útxn_managerr—   Úserialc              #   ón  #   • UR                   S   R                  nU[        R                  R                  :H  nU R                  5       nUR                  5       n	[        U[        R                  5      =(       a    UR                  [        R                  :H  n
U
(       a  [        XSU5        O/[        R                  " S[        U	5      5      U	-   n[        XU5        [        R                   R#                  XX:5       nSnSnSnU(       dÎ  [%        U5      u  nnUb	  Ub  UU:”  a  UnU
(       a  ['        USU5      u  nnO3[)        USU5      n[        R*                  " SU5      u  n[)        UUU5      n[        R,                  R/                  UUR0                  UR2                  SUUU
(       + US9nUR5                  U5      nUv •  UR6                  nU(       d  MÎ  UR0                  (       a3  Ub0  UR8                  (       d  [        R:                  R=                  S	5      eSSS5        g! , (       d  f       g= f7f)
z'Given a socket, does the zone transfer.r   Nrk  FrH  rÆ   T)rè   ré   ÚxfrÚoriginÚtsig_ctxÚmultirÑ   zmissing TSIG)ÚquestionÚrdtyper   Ú	rdatatypeÚIXFRÚfrom_wire_originrù   r„   r5   r²   rO  r=  rl  Úpackrþ   rc  r�  ÚInboundr,   r8  r_  rm  r  r  rè   rP  Úprocess_messagerŸ  Úhad_tsigr   Ú	FormError)rš  r—   rF  r›  r   r   r¢  Úis_ixfrrž  r  Úis_udprh  ÚinboundÚdonerŸ  r  r@   ÚmexpirationÚrwirern  rb  s                        r   Ú_inbound_xfrr±    sÃ  é € ð �^‰^˜AÑ×%Ñ%€FØœŸ™×*Ñ*Ñ*€GØ×)Ñ)Ó+€FØ�=‰=‹?€DÜ˜œ6Ÿ=™=Ó)×I¨a¯f©f¼×8IÑ8IÑ.I€FÞÜ�!˜4 Õ,ä—’˜T¤3 t£9Ó-°Ñ4ˆÜ�1˜jÔ)Ü	�‰�‰˜¨fÔ	=ÀØˆØˆØ(,ˆÞÜ-¨gÓ6ÑˆQ�ØÑ"ØÑ&¨;¸Ó+Cà(�ÞÜ& q¨%°Ó=‘
�™ä! ! Q¨Ó4�Ü—}’} T¨5Ó1‘�Ü! ! Q¨Ó4�Ü—‘×%Ñ%ØØŸ™Ø!ŸI™IØØØ!Ø!”zØ!(ð &ð 	ˆAð ×*Ñ*¨1Ó-ˆDØŠGØ—z‘zˆH÷1 �$ð2 �=�=˜Q™]°1·:·:Ü—-‘-×)Ñ)¨.Ó9Ð9÷= 
>×	=Ö	=üs&   ‚C9H5Ã;CH$ÇAH$È	H5È$
H2È.H5Úzoner¢  ÚrdclassÚkeynameÚ
relativizer+   Úuse_udpÚkeyalgorithmc           	   #   óV  #   •  " S S[         R                  R                  5      n[        U[        5      (       a  [         R
                  R                  U5      n[         R                  R                  R                  U5      n[         R                  R                  XU5      nU[         R                  R                  :X  a„  UR                  UR                  U[         R                  R                   [         R                  R"                  SS9n[         R$                  R                  SSSU S35      nUR'                  US	5        Ub  UR)                  XgUS9  [+        XX«S5      u  nnn
Uc   e[-        U	5      u  nnU" X5      nU(       a)  U[         R                  R                  :w  a  [/        S5      eU(       a  [0        R2                  O[0        R4                  n[7        UUU
5       n[9        UUU5        [;        UUUXÄU5       S
h  v•N   S
S
S
5        g
 N! , (       d  f       g
= f7f)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.
c                   óš   • \ rS rSrS rS rS\R                  R                  4S jr	S r
SS\S\R                  R                  4S jjrS	rg
)Ú$xfr.<locals>.DummyTransactionManageri€  c                 óX   • XU(       a  [         R                  R                  OU4U l        g r   )r   r»   ÚemptyÚinfo)r#   rž  rµ  s      r   r   Ú-xfr.<locals>.DummyTransactionManager.__init__�  s   € Ø¾z¬S¯X©X¯^ª^ÈvÐVˆD�Ir   c                 ó   • U R                   $ r   ©r½  ©r#   s    r   Úorigin_informationÚ7xfr.<locals>.DummyTransactionManager.origin_information„  s   € Ø—9‘9Ðr   rn   c                 ó   • [         er   rJ   rÁ  s    r   Ú	get_classÚ.xfr.<locals>.DummyTransactionManager.get_class‡  rk   r   c                 ó   • [         er   rJ   rÁ  s    r   ÚreaderÚ+xfr.<locals>.DummyTransactionManager.readerŠ  rk   r   Úreplacementc                 óh   •  " S S5      n[        [        R                  R                  U" 5       5      $ )Nc                   ó    • \ rS rSrS rS rSrg)ÚExfr.<locals>.DummyTransactionManager.writer.<locals>.DummyTransactioniŽ  c                 ó   • g r   rd   )r#   ra   Úkws      r   ÚnopÚIxfr.<locals>.DummyTransactionManager.writer.<locals>.DummyTransaction.nop�  s   € Ør   c                 ó   • U R                   $ r   )rÐ  )r#   r@   s     r   Ú__getattr__ÚQxfr.<locals>.DummyTransactionManager.writer.<locals>.DummyTransaction.__getattr__’  s   € ØŸ8™8�Or   rd   N)rP   rQ   rR   rS   rÐ  rÓ  rT   rd   r   r   ÚDummyTransactionrÍ  Ž  s   † òõ$r   rÕ  )r   r   ÚtransactionÚTransaction)r#   rÊ  rÕ  s      r   ÚwriterÚ+xfr.<locals>.DummyTransactionManager.writer�  s)   € ÷$ñ $ô œŸ™×3Ñ3Ñ5EÓ5GÓHÐHr   rÀ  N)F)rP   rQ   rR   rS   r   rÂ  r   Ú
rdataclassÚ
RdataClassrÅ  rÈ  ÚboolrÖ  r×  rØ  rT   rd   r   r   ÚDummyTransactionManagerrº  €  sN   † ò	Wò	ð	&˜sŸ~™~×8Ñ8ô 	&ò	&ñ	I dð 	I°s·±×7RÑ7R÷ 	Ið 	Ir   rÝ  T)ÚcreateÚINÚSOAz. . z 0 0 0 0r   N)Ú	algorithmzcannot do a UDP AXFR)r   rÖ  ÚTransactionManagerr„   rý   r»   Ú	from_textr£  Ú	RdataTypeÚmaker  Ú
make_queryr¤  Ú
find_rrsetÚ	authorityrÚ  rß  rà  ÚrdataÚaddÚuse_tsigr±   r,   r«   r5   rO  r6   r4   r7   r±  )r­   r²  r¢  r³  r   r=   rè   r´  rµ  r+   rD   r®   r›  r¶  r·  rÝ  rÐ   ÚrrsetÚsoarC   r§   r@   r   ÚtmÚ	sock_typer—   s                             r   r�  r�  ;  s´  é € ôJI¤#§/¡/×"DÑ"Dô Iô. �$œ×ÑÜ�x‰x×!Ñ! $Ó'ˆÜ�]‰]×$Ñ$×)Ñ)¨&Ó1€FÜ�‰×Ñ˜t¨WÓ5€AØ”—‘×#Ñ#Ó#Ø—‘Ø�K‰K˜œsŸ~™~×0Ñ0´#·-±-×2CÑ2CÈDð ð 
ˆô �i‰i×!Ñ! $¨°°f°X¸XÐ/FÓGˆØ�	‰	�#�qÔØÑØ	�
‰
�7¨|ˆ
Ñ<Ü 7Ø�V¨$ó!Ñ€Rˆ�fð ‰>Ðˆ>Ü$ XÓ.�O€Qˆ
Ù	  Ó	2€BÞ�6œSŸ]™]×/Ñ/Ó/ÜÐ/Ó0Ð0Þ%,”×!Ò!´&×2DÑ2D€IÜ	�R˜ FÔ	+¨qÜ��K Ô,Ü  A q¨&¸:ÓF×FÐF÷ 
,Ð	+áF÷ 
,Õ	+üs0   ‚G&H)Ç( HÈHÈ	HÈ	H)ÈHÈ
H&È"H)Úudp_modec	           	      óD  • Uc"  [         R                  R                  U5      u  p)O[         R                  R                  U5      n	[	        XXgS5      u  p«nU
c   e[        U5      u  pÍUR                  S   R                  [         R                  R                  :X  a[  U[        R                  :w  aG  [        U
[        R                  U5       n[        XëU5         [!        XX)XM5       H  nM      SSS5        g[        U
[        R&                  U5       n[        XëU5        [!        XX)XM5       H  nM     SSS5        g! [         R                  R"                   a    U[        R$                  :X  a  e  Of = f SSS5        M‰  ! , (       d  f       N—= f! , (       d  f       g= f)aM  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.query.UDPMode.NEVER``, i.e. only use
TCP.  Other possibilities are ``dns.query.UDPMode.TRY_FIRST``, which
means "try UDP but fallback to TCP if needed", and
``dns.query.UDPMode.ONLY``, which means "try UDP and raise
``dns.xfr.UseTCP`` if it does not succeed.

Raises on errors.
NTr   )r   r�  ræ  Úextract_serial_from_queryr±   r,   r¡  r¢  r£  r¤  r–  r—  r4   r5   rO  r7   r±  ÚUseTCPr™  r6   )r­   rš  rF  r=   r   r+   rD   r®   rð  r›  rC   r§   r@   r   r—   s                  r   Úinbound_xfrrô  ±  s_  € ð^ �}ÜŸ'™'×,Ñ,¨[Ó9‰ˆ�ä—‘×2Ñ2°5Ó9ˆä 7Ø�V¨$ó!Ñ€R�fð ‰>Ðˆ>Ü$ XÓ.�O€QØ‡~�~�aÑ×Ñ¤3§=¡=×#5Ñ#5Ó5¸(ÄgÇmÁmÓ:SÜ˜œV×.Ñ.°Ô7¸1Ü�Q ZÔ0ðÜ%Ø E°7ö�Añ ñð ÷ 8Ð7ô 
�Rœ×+Ñ+¨VÔ	4¸Ü� Ô,Ü˜k¨e¸WÖQˆAÙñ R÷ 
5Ð	4øô	 —7‘7—>‘>ó ØœwŸ|™|Ó+Øñ ,ðúØ+÷ 8×7×7ú÷ 
5Õ	4ús6   ÃF ÃD<Ä!FÄ<3E2Å/F Å1E2Å2F Æ 
FÆ
F)Tr   rO   )	NrÏ   Nr   FFTTN)
NNFFNr   FFFN)
NrM  Nr   FFFFNF)
NrM  Nr   FFFNNF)NFNr   F)NrM  Nr   FFN)TTN)
NéU  Nr   FFNNNT)
Nrõ  Nr   FFNTNN)‡rv   rÿ   rú   Úenumrr  rz  rñ   rˆ   r5   rl  r   Úurllib.parserì   Útypingr   r   r   r   r   r   Údns._featuresr   Údns._tls_utilÚdns.exceptionÚdns.inetÚdns.messageÚdns.nameÚdns.quicÚ	dns.rdataÚdns.rdataclassÚdns.rdatatypeÚdns.transactionÚdns.tsigÚdns.xfrr…   ÚImportErrorÚdns._no_sslÚ_no_sslr   r   Ú	_featuresÚhaveÚ_have_httpxÚhttpcore._backends.syncr:   r÷   ÚNetworkBackendÚ_CoreNetworkBackendÚ	_backendsÚsyncÚ
SyncStreamr8   r   ÚHTTPTransportrX   rð   ÚAddressFamilyr  Ú
SocketKindrp   rq   Ú__annotations__r   ÚDNSExceptionrs   rª  rx   r{   r   r�  ÚTransferErrorr,   r“   r˜   rš   r£   r©   r±   r4   Ú
SSLContextr»   r¼   rý   r†   r¿   rÁ   rÃ   ÚIntEnumrÅ   re   rÈ   r  r@  ÚfloatrÜ  r  rô   ÚHeadersÚbytesr  r   rõ   rö   r8  r=  rC  ÚtsigÚKeyrL  rR  rW  r_  rc  ri  ro  r7   rV  r€  ró   rŽ  r‘  r“  r–  rÖ  râ  r±  r£  ÚAXFRrÚ  rß  Údefault_algorithmrä  rÛ  r—  rô  rd   r   r   Ú<module>r!     sÐ  ðò$ ã Û Û Û Û 	Û Û Û Û Û Û ß =× =ã Û Û Û Û Û Û Û Û Û Û Û Û ðÛò
ò2ð �m‰m× Ñ  Ó'€ÞÛ"Ûà"×1Ñ1ÐØ×(Ñ(×-Ñ-×8Ñ8€Oô4&Ð-ô 4&ôl˜×,Ñ,õ ÷,&ñ &ð  €ð*Ø×Ñ˜sÑ"ð*à
×
Ñ
ð*ð ð*ð ‡]�]ô	*ð ð �Ø×Ñ˜CÑ ×!2Ñ!2°CÐ8¸&¿-¹-ÐGñó ô
H�s—}‘}×1Ñ1ô HôG�#—-‘-×)Ñ)ô GôˆC�M‰M×&Ñ&ô ô
ˆC�M‰M×&Ñ&ô ð —‘×%Ñ%€ò$ò(ò80ò0ò	)òð" =Aô)%ð^ ñØ×Ñ˜sÑ"ðà
×
Ñ
ðð �$‰Jðð ‡]�]õ	ðJ 37Øñ'Ø×Ñ˜sÑ"ð'à
×
Ñ
ð'ð —‘ð'ð —X‘X—]‘] SÑ(¨4Ñ/ð	'ð
 �$‰Jð'ð 	‡]�]õ'òV
-ðØÐ.Ñ/ðàôô�$—,‘,ô ð& !ØØØØ"Ø!ØØØØ$(Ø*.Ø26Ø×"Ñ"Ø +× 3Ñ 3ñ!LØ
‡{�{×ÑðLàðLð �T‰\ðLð ð	Lð
 �$‰JðLð ðLð ðLð ðLð �4‰ZðLð ðLð ðLð ˜T‘zðLð �3‰J˜Ÿ™Ñ'ðLð Ð.Ñ/ðLð ðLð  ð!Lð" 	‡[�[×Ñõ#Lð^˜#Ÿ(™(×*Ñ*ð °%ð ¸Eô ðO˜3Ÿ8™8×+Ñ+ð O°3ð O¸eð OÈô Oð* !ØØØØ"Ø!Ø*.ØØ59ñ:Ø
‡{�{×Ñð:àð:ð 
ð:ð �T‰\ð	:ð
 ð:ð �$‰Jð:ð ð:ð ð:ð ð:ð �3‰J˜Ÿ™Ñ'ð:ð ð:ð —‘×+Ñ+¨dÑ2ð:ð 	‡[�[×Ñõ:òz	1ò1ð&  $ñ	Ø
ðà
�+‰+×
Ñ
 Ñ
%ðð ðð ˜‘ð	ð
 ˆ3�ˆ:Ñõð> #Ø#Ø#Ø"Ø8<Ø #Ø!Ø %ØØ(,ñg4Ø
ðg4à�t‘ðg4ð ˜‘ðg4ð ð	g4ð
 ðg4ð �#—(‘(—-‘- §¡§¡Ð-Ñ.°Ñ5ðg4ð ˜‘ðg4ð ðg4ð ðg4ð ðg4ð �;‰;×Ñ Ñ%ðg4ð 	õg4ðZ !ØØØØ#Ø"Ø!Ø %ØØñYØ
‡{�{×ÑðYàðYð �T‰\ðYð ð	Yð
 �$‰JðYð ðYð ðYð ðYð ðYð ðYð �‰*ðYð ðYð 	‡[�[×ÑõYð~ !ØØØØ#Ø"Ø!ØØØñU Ø
‡{�{×ÑðU àðU ð �T‰\ðU ð ð	U ð
 �$‰JðU ð ðU ð ðU ð ðU ð ðU ð �D‰jðU ð �D‰jðU ð ðU ð ˆ3�;‰;×Ñ Ð$Ñ%õU òpò*1ð&  $ñ$Ø
ð$à
�+‰+×
Ñ
 Ñ
%ð$ð ˜‘ð$ð ˆ3�ˆ:Ñõ	$ð@  $Ø"Ø8<Ø #Ø!ñ,Ø
ð,à˜‘ð,ð ð,ð �#—(‘(—-‘- §¡§¡Ð-Ñ.°Ñ5ð	,ð
 ˜‘ð,ð ð,ð ˆ3�;‰;×Ñ Ð%Ñ&õ,ò^-ð !ØØØØ"Ø!ØñCØ
‡{�{×ÑðCàðCð �T‰\ðCð ð	Cð
 �$‰JðCð ðCð ðCð ðCð �‰*ðCð 	‡[�[×ÑõCòL.ð ØØ"ñØ�3‰Jðàðð �‰9�tÑðð 	‡^�^õ	ðDJØ˜4‘ZðJØ)-°©ðJà‡^�^ôJð !ØØØØ"Ø!Ø!%Ø)-Ø"&ØñiØ
‡{�{×Ñðiàðið �T‰\ðið ð	ið
 �$‰Jðið ðið ðið ðið �-‰-˜$Ñ
ðið —‘ $Ñ&ðið ˜4‘Zðið �3‰Jðið 	‡[�[×Ñõið^ !ØØØØ"Ø!Ø59ØØØ"&ñ^Ø
‡{�{×Ñð^àð^ð �T‰\ð^ð ð	^ð
 �$‰Jð^ð ð^ð ð^ð ð^ð —‘×+Ñ+¨dÑ2ð^ð �3‰Jð^ð �D‰jð^ð ˜4‘Zð^ð 	‡[�[×Ñõ^ôB
ˆd�l‰lô 
ð1:Ø—‘×3Ñ3ð1:à‡}�}�s—}‘}Ñ$ð1:ð �;‰;×Ñð1:ð �$‰Jð	1:ð
 �T‰\ð1:ð ˜‘ð1:ð 	ô1:ðn -0¯M©M×,>Ñ,>Ø/2¯~ª~×/@Ò/@Ø ØØ8<Ø*.ØØ!ØØØØØ(+¯©×(BÒ(BñsGØðsGà
�(‰(�-‰-˜#Ñ
ðsGð �M‰M×#Ò# cÑ)ðsGð �^Š^×&Ò&¨Ñ,ð	sGð
 �T‰\ðsGð ðsGð �#—(‘(—-‘- §¡§¡Ð-Ñ.°Ñ5ðsGð �X‰X�]‰]˜SÑ  4Ñ'ðsGð ðsGð �d‰lðsGð �$‰JðsGð ðsGð ðsGð ðsGð —(‘(—-‘- #Ñ%ðsGð  	õ!sGðr )-ØØ Ø!ØØØŸšñIØðIà—‘×3Ñ3ðIð �;‰;×Ñ Ñ%ðIð ð	Ið
 �T‰\ðIð �d‰lðIð �$‰JðIð ðIð ðIð 
öIøðA4 ó ßÐðús   Á5f  æ f0æ/f0