ó
    &ÝNj  ã                  ó"  • S r SSKJr  SSKJr  SSKJrJr  SSKrSSK	J
r
  \" \R                  \R                  \R                  15      rS%S jr\" S	S	S
9 " S S5      5       r\" S	S	S
9 " S S5      5       r\" S	S	S
9 " S S5      5       r\" S	S	S
9 " S S5      5       r\" S	S	S
9 " S S5      5       r\" S	S	S
9 " S S5      5       r\" S	S	S
9 " S S5      5       r\" S	S	S
9 " S S5      5       r\" S	S	S
9 " S S5      5       r\" S	S	S
9 " S S5      5       r\" S	S	S
9 " S S 5      5       r\" S	S	S
9 " S! S"5      5       r\\\\\\\\\\\\\R:                  4   r\\\   \\   \\\   \\   \\   \\\   \\   \\   \\\   4   r S&S# jr!S'S$ jr"g)(z¤
Compatibility layer for pycares 5.x API.

This module provides result types compatible with pycares 4.x API
to maintain backward compatibility with existing code.
é    )Úannotations)Ú	dataclass)ÚUnionÚcastNé   )Úerrorc                óJ   •  U R                  S5      $ ! [         a    U s $ f = f)zBDecode bytes as ASCII, return bytes if decode fails (pycares 4.x).Úascii)ÚdecodeÚUnicodeDecodeError)Údatas    ÚJ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/aiodns/compat.pyÚ
_maybe_strr      s*   € ðØ�{‰{˜7Ó#Ð#øÜó ØŠðús   ‚ “"¡"T)ÚfrozenÚslotsc                  ó.   • \ rS rSr% SrS\S'   S\S'   Srg)	ÚAresQueryAResulté"   zBA record result (compatible with pycares 4.x ares_query_a_result).ÚstrÚhostÚintÚttl© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__Ú__static_attributes__r   ó    r   r   r   "   s   ‡ áLà
ƒIØ	†Hr"   r   c                  ó.   • \ rS rSr% SrS\S'   S\S'   Srg)	ÚAresQueryAAAAResulté*   z(AAAA record result (pycares 4.x compat).r   r   r   r   r   Nr   r   r"   r   r$   r$   *   s   ‡ á2à
ƒIØ	†Hr"   r$   c                  ó.   • \ rS rSr% SrS\S'   S\S'   Srg)	ÚAresQueryCNAMEResulté2   z)CNAME record result (pycares 4.x compat).r   Úcnamer   r   r   Nr   r   r"   r   r'   r'   2   s   ‡ á3àƒJØ	†Hr"   r'   c                  ó8   • \ rS rSr% SrS\S'   S\S'   S\S'   Srg	)
ÚAresQueryMXResulté:   z&MX record result (pycares 4.x compat).r   r   r   Úpriorityr   r   Nr   r   r"   r   r+   r+   :   s   ‡ á0à
ƒIØƒMØ	†Hr"   r+   c                  ó.   • \ rS rSr% SrS\S'   S\S'   Srg)	ÚAresQueryNSResultéC   z&NS record result (pycares 4.x compat).r   r   r   r   r   Nr   r   r"   r   r/   r/   C   s   ‡ á0à
ƒIØ	†Hr"   r/   c                  ó.   • \ rS rSr% SrS\S'   S\S'   Srg)	ÚAresQueryTXTResultéK   z'TXT record result (pycares 4.x compat).ústr | bytesÚtextr   r   r   Nr   r   r"   r   r2   r2   K   s   ‡ á1à
ÓØ	†Hr"   r2   c                  ój   • \ rS rSr% SrS\S'   S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   Srg)ÚAresQuerySOAResultéS   z'SOA record result (pycares 4.x compat).r   ÚnsnameÚ
hostmasterr   ÚserialÚrefreshÚretryÚexpiresÚminttlr   r   Nr   r   r"   r   r7   r7   S   s-   ‡ á1àƒKØƒOØƒKØƒLØƒJØƒLØƒKØ	†Hr"   r7   c                  óL   • \ rS rSr% SrS\S'   S\S'   S\S'   S\S'   S\S	'   S
rg)ÚAresQuerySRVResultéa   z'SRV record result (pycares 4.x compat).r   r   r   Úportr-   Úweightr   r   Nr   r   r"   r   rA   rA   a   s   ‡ á1à
ƒIØ
ƒIØƒMØƒKØ	†Hr"   rA   c                  ó`   • \ rS rSr% SrS\S'   S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   Srg)ÚAresQueryNAPTRResultél   z)NAPTR record result (pycares 4.x compat).r   ÚorderÚ
preferencer   ÚflagsÚserviceÚregexÚreplacementr   r   Nr   r   r"   r   rF   rF   l   s)   ‡ á3àƒJØƒOØƒJØƒLØƒJØÓØ	†Hr"   rF   c                  óB   • \ rS rSr% SrS\S'   S\S'   S\S'   S\S'   S	rg
)ÚAresQueryCAAResultéy   z'CAA record result (pycares 4.x compat).r   Úcriticalr   ÚpropertyÚvaluer   r   Nr   r   r"   r   rO   rO   y   s   ‡ á1àƒMØƒMØƒJØ	†Hr"   rO   c                  ó8   • \ rS rSr% SrS\S'   S\S'   S\S'   S	rg
)ÚAresQueryPTRResultéƒ   z'PTR record result (pycares 4.x compat).r   Únamer   r   ú	list[str]Úaliasesr   Nr   r   r"   r   rU   rU   ƒ   s   ‡ á1à
ƒIØ	ƒHØÖr"   rU   c                  ó8   • \ rS rSr% SrS\S'   S\S'   S\S'   Srg	)
ÚAresHostResultéŒ   z;Host result (compatible with pycares 4.x ares_host_result).r   rW   rX   rY   Ú	addressesr   Nr   r   r"   r   r[   r[   Œ   s   ‡ áEà
ƒIØÓØÖr"   r[   c                óH  • U R                   nU R                  nU[        R                  :X  a8  [	        [        R
                  U R                  5      n[        UR                  US9$ U[        R                  :X  a8  [	        [        R                  U R                  5      n[        UR                  US9$ U[        R                  :X  a8  [	        [        R                  U R                  5      n[        UR                  US9$ U[        R                   :X  aC  [	        [        R"                  U R                  5      n[%        UR&                  UR(                  US9$ U[        R*                  :X  a8  [	        [        R,                  U R                  5      n[/        UR0                  US9$ U[        R2                  :X  aA  [	        [        R4                  U R                  5      n[7        [9        UR                  5      US9$ U[        R:                  :X  az  [	        [        R<                  U R                  5      n	[?        U	R@                  U	RB                  U	RD                  U	RF                  U	RH                  U	RJ                  U	RL                  US9$ U[        RN                  :X  aY  [	        [        RP                  U R                  5      n
[S        U
RT                  U
RV                  U
R(                  U
RX                  US9$ U[        RZ                  :X  ao  [	        [        R\                  U R                  5      n[_        UR`                  URb                  URd                  URf                  URh                  URj                  US9$ U[        Rl                  :X  aN  [	        [        Rn                  U R                  5      n[q        URr                  URt                  URv                  US9$ U[        Rx                  :X  a9  [	        [        Rz                  U R                  5      n[}        UR~                  U/ S	9$ U $ )
z=Convert a single DNS record to pycares 4.x compatible format.)r   r   )r)   r   )r   r-   r   )r5   r   )r9   r:   r;   r<   r=   r>   r?   r   )r   rC   r-   rD   r   )rH   rI   rJ   rK   rL   rM   r   )rQ   rR   rS   r   )rW   r   rY   )@r   ÚtypeÚpycaresÚQUERY_TYPE_Ar   ÚARecordDatar   r   ÚaddrÚQUERY_TYPE_AAAAÚAAAARecordDatar$   ÚQUERY_TYPE_CNAMEÚCNAMERecordDatar'   r)   ÚQUERY_TYPE_MXÚMXRecordDatar+   Úexchanger-   ÚQUERY_TYPE_NSÚNSRecordDatar/   ÚnsdnameÚQUERY_TYPE_TXTÚTXTRecordDatar2   r   ÚQUERY_TYPE_SOAÚSOARecordDatar7   ÚmnameÚrnamer;   r<   r=   ÚexpireÚminimumÚQUERY_TYPE_SRVÚSRVRecordDatarA   ÚtargetrC   rD   ÚQUERY_TYPE_NAPTRÚNAPTRRecordDatarF   rH   rI   rJ   rK   ÚregexprM   ÚQUERY_TYPE_CAAÚCAARecordDatarO   rQ   ÚtagrS   ÚQUERY_TYPE_PTRÚPTRRecordDatarU   Údname)Úrecordr   Úrecord_typeÚa_dataÚ	aaaa_dataÚ
cname_dataÚmx_dataÚns_dataÚtxt_dataÚsoa_dataÚsrv_dataÚ
naptr_dataÚcaa_dataÚptr_datas                 r   Ú_convert_recordr�   ¶   s  € à
�*‰*€CØ—+‘+€Kà”g×*Ñ*Ó*Ü”g×)Ñ)¨6¯;©;Ó7ˆÜ V§[¡[°cÑ:Ð:Ø”g×-Ñ-Ó-Üœ×/Ñ/°·±Ó=ˆ	Ü"¨	¯©¸CÑ@Ð@Ø”g×.Ñ.Ó.Üœ'×1Ñ1°6·;±;Ó?ˆ
Ü#¨*×*:Ñ*:ÀÑDÐDØ”g×+Ñ+Ó+Ü”w×+Ñ+¨V¯[©[Ó9ˆÜ Ø×!Ñ!¨G×,<Ñ,<À#ñ
ð 	
ð ”g×+Ñ+Ó+Ü”w×+Ñ+¨V¯[©[Ó9ˆÜ  g§o¡o¸3Ñ?Ð?Ø”g×,Ñ,Ó,Üœ×-Ñ-¨v¯{©{Ó;ˆÜ!¤z°(·-±-Ó'@ÀcÑJÐJØ”g×,Ñ,Ó,Üœ×-Ñ-¨v¯{©{Ó;ˆÜ!Ø—>‘>Ø—~‘~Ø—?‘?Ø×$Ñ$Ø—.‘.Ø—O‘OØ×#Ñ#Øñ	
ð 		
ð ”g×,Ñ,Ó,Üœ×-Ñ-¨v¯{©{Ó;ˆÜ!Ø—‘Ø—‘Ø×&Ñ&Ø—?‘?Øñ
ð 	
ð ”g×.Ñ.Ó.Üœ'×1Ñ1°6·;±;Ó?ˆ
Ü#Ø×"Ñ"Ø!×,Ñ,Ø×"Ñ"Ø×&Ñ&Ø×#Ñ#Ø"×.Ñ.Øñ
ð 	
ð ”g×,Ñ,Ó,Üœ×-Ñ-¨v¯{©{Ó;ˆÜ!Ø×&Ñ&Ø—\‘\Ø—.‘.Øñ	
ð 	
ð ”g×,Ñ,Ó,Üœ×-Ñ-¨v¯{©{Ó;ˆÜ! x§~¡~¸3ÈÑKÐKà€Mr"   c                ó  • U[         R                  :X  a&  U R                   Vs/ s H  n[        U5      PM     sn$ / nU R                   HN  nUR                  nXA:w  a  M  [        U5      nU[
        ;   a  [        [        U5      s  $ UR                  U5        MP     U(       dd  [        R                  " [         R                  R                  [         R                  R                  [         R                  R                  5      5      eU$ s  snf )z?Convert pycares 5.x DNSResult to pycares 4.x compatible format.)r`   ÚQUERY_TYPE_ANYÚanswerr�   r_   Ú_SINGLE_RESULT_QTYPESr   ÚQueryResultÚappendr   ÚDNSErrorÚerrnoÚARES_ENODATAÚstrerror)Ú
dns_resultÚqtyper‚   Úresultsrƒ   Ú	converteds         r   Úconvert_resultrž   þ   s×   € ð ”×&Ñ&Ó&Ø6@×6GÒ6GÓHÒ6G¨F” Ö'Ñ6GÑHÐHà%'€Gà×#Ô#ˆØ—k‘kˆð ÓÙä# FÓ+ˆ	ð Ô/Ó/Üœ YÓ/Ò/à�‰�yÖ!ñ $ö( Ü�nŠnÜ�M‰M×&Ñ&Ü�M‰M×"Ñ"¤7§=¡=×#=Ñ#=Ó>ó
ð 	
ð
 €Nùò= Is   £D)r   ÚbytesÚreturnr4   )r‚   zpycares.DNSRecordr    ÚConvertedRecord)rš   zpycares.DNSResultr›   r   r    r”   )#r   Ú
__future__r   Údataclassesr   Útypingr   r   r`   Ú r   Ú	frozensetrf   rp   r   r“   r   r   r$   r'   r+   r/   r2   r7   rA   rF   rO   rU   r[   Ú	DNSRecordr¡   Úlistr”   r�   rž   r   r"   r   Ú<module>r©      s|  ðñõ #å !ß ã å á!à× Ñ Ø×ÑØ×ÑðóÐ ôñ �$˜dÑ#÷ð ó $ðñ �$˜dÑ#÷ð ó $ðñ �$˜dÑ#÷ð ó $ðñ �$˜dÑ#÷ð ó $ðñ �$˜dÑ#÷ð ó $ðñ �$˜dÑ#÷ð ó $ðñ �$˜dÑ#÷
ð 
ó $ð
ñ �$˜dÑ#÷ð ó $ðñ �$˜dÑ#÷	ð 	ó $ð	ñ �$˜dÑ#÷ð ó $ðñ �$˜dÑ#÷ð ó $ðñ �$˜dÑ#÷ð ó $ðð ØØØØØØØØØØØØ×Ñðñ€ð  ØÐ	ÑØÐ	ÑØØÐ	ÑØÐ	ÑØÐ	ÑØØÐ	ÑØÐ	ÑØÐ	ÑØØˆÑðñ€ô EõP"r"   