
     :h4                     <   d dl mZmZ ddlZej                   ej                  ej                        k7  r e	d      d dl
mZ d dlmZmZmZ d dlmZ ddlZddlZddlZddlZddlmZmZ dd	lmZmZmZ eeef   Z eeeeef   Z!ejD                  Z"ejF                  Z#ejH                  Z$ejJ                  Z%ejL                  Z&ejN                  Z'ejP                  Z(ejR                  Z)ejT                  Z*ejV                  Z+ejX                  Z,ejZ                  Z-ej\                  Z.ej^                  Z/ej`                  Z0ejb                  Z1ejd                  Z2ejf                  Z3ejh                  Z4ejj                  Z5ejl                  Z6ejn                  Z7ejp                  Z8ejr                  Z9ejt                  Z:ejv                  Z;ejx                  Z=ej|                  Z?ej                  ZAej                  ZCej                  ZEej                  ZGej                  ZIej                  ZKej                  ZMej                  ZOej                  ZQej                  ZSej                  ZUej                  ZWej                  ZYej                  Z[ej                  Z] e ej                   ej                  ej                                    Zad
Zb G d dec      Zd ee       Zf ej                         d        Zh ej                         d        Zi ej                         d        Zj ej                         d        Zk ej                         d        Zld Zm G d d      Zn G d d      Zo G d deo      Zp G d deo      Zq G d deo      Zr G d deo      Zs G d d eo      Zt G d! d"eo      Zu G d# d$eo      Zv G d% d&eo      Zw G d' d(eo      Zx G d) d*eo      Zy G d+ d,eo      Zz G d- d.eo      Z{ G d/ d0eo      Z| G d1 d2eo      Z} G d3 d4eo      Z~ G d5 d6eo      Z G d7 d8eo      Zd9efd:Zd;Zy)<   )ffilib    NzCould not initialize c-ares)errno)ascii_bytes	maybe_str
parse_name)__version__)CallableIterable)AnyOptionalUnion   c                       e Zd Zy)	AresErrorN)__name__
__module____qualname__     J/var/www/html/turnos/venv/lib/python3.12/site-packages/pycares/__init__.pyr   r   O   s    r   r   c                 B    t        j                  |       } ||||       y N)_ffifrom_handle)data	socket_fdreadablewritablesock_state_cbs        r   _sock_state_cbr"   W   s    $$T*M)Xx0r   c                     t        j                  |       }t        j                  |        |t        j
                  k7  rd }nt        |      }d } |||       y r   )r   r   _global_setdiscard_libARES_SUCCESSares_host_result)argstatustimeoutshostentcallbackresults         r   _host_cbr/   \   sL    $H"""!'*VVr   c                     t        j                  |       }t        j                  |        |t        j
                  k7  rd }nt        ||      }d } |||       y r   )r   r   r$   r%   r&   r'   ares_nameinfo_result)r)   r*   r+   nodeservicer-   r.   s          r   _nameinfo_cbr4   i   sN    $H"""%dG4VVr   c                 "   t        j                  |       \  }}t        j                  |        |t        j
                  k(  rC|t        j                  k(  rg }t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                   t        j"                  fD ]o  }t%        |||      \  }	}|d t        j&                  t        j(                  fvrd } nN|	=t+        |	t,              r|j/                  |	       _|j1                  |	       q d }nt%        |||      \  }}nd } |||       y r   )r   r   r$   r%   r&   r'   T_ANYT_AT_AAAAT_CAAT_CNAMET_MXT_NAPTRT_NST_PTRT_SOAT_SRVT_TXTparse_resultARES_ENODATAARES_EBADRESP
isinstancer   extendappend)
r)   r*   r+   abufalenr-   
query_typer.   qtypers
             r   	_query_cbrM   v   sO   ++C0Hj"""#F((DKKT\\499VZVbVbdhdmdmosoyoy{  |F  |F  HL  HR  HR  TX  T^  T^  _ (d;	6$(9(94;M;M!NN!F=!!X.a(a( )*dDANFFVVr   c                     t        j                  |       }t        j                  |        |t        j
                  k7  rd }nt        |      }d } |||       y r   )r   r   r$   r%   r&   r'   ares_addrinfo_result)r)   r*   r+   resr-   r.   s         r   _addrinfo_cbrQ      sL    $H"""%c*VVr   c                 $   | t         j                  k(  rt        j                  dt              }t        j                  dt              }t        j
                  ||t        j                  ||      }|t         j                  k7  rd }|}||fS t        |d         D cg c]  }t        ||          }}d }||fS | t         j                  k(  rt        j                  dt              }t        j                  dt              }t        j                  ||t        j                  ||      }|t         j                  k7  rd }|}||fS t        |d         D cg c]  }t        ||          }}d }||fS | t         j                  k(  rt        j                  d      }	t        j                  |||	      }|t         j                  k7  rd }|}||fS g }|	d   }
|
t        j                  k7  r:|j                  t!        |
             |
j"                  }
|
t        j                  k7  r:t        j$                  |	d          d }||fS | t         j&                  k(  rt        j                  d      }t        j
                  |||t        j                  t        j                        }|t         j                  k7  rd }|}||fS t)        |d         }t        j*                  |d          d }||fS | t         j,                  k(  rt        j                  d      }t        j.                  |||      }|t         j                  k7  rd }|}||fS g }|d   }|t        j                  k7  r:|j                  t1        |             |j"                  }|t        j                  k7  r:t        j$                  |d          d }||fS | t         j2                  k(  rt        j                  d      }t        j4                  |||      }|t         j                  k7  rd }|}||fS g }|d   }|t        j                  k7  r:|j                  t7        |             |j"                  }|t        j                  k7  r:t        j$                  |d          d }||fS | t         j8                  k(  rt        j                  d      }t        j:                  |||      }|t         j                  k7  rd }|}||fS g }|d   }d}|j<                  |   t        j                  k7  rM|j                  t?        |j<                  |                |d	z  }|j<                  |   t        j                  k7  rMt        j*                  |       d }||fS | t         j@                  k(  rt        j                  d      }t        jB                  ||t        j                  dtD        jF                  |      }|t         j                  k7  rd }|}||fS g }|d   }d}|j<                  |   t        j                  k7  r`|j                  tI        t        jJ                  |j<                  |                      |d	z  }|j<                  |   t        j                  k7  r`tM        ||      }t        j*                  |       d }||fS | t         jN                  k(  rst        j                  d
      }t        jP                  |||      }|t         j                  k7  rd }|}||fS tS        |d         }t        j$                  |d          d }||fS | t         jT                  k(  rt        j                  d      }t        jV                  |||      }|t         j                  k7  rd }|}||fS g }|d   }|t        j                  k7  r:|j                  tY        |             |j"                  }|t        j                  k7  r:t        j$                  |d          d }||fS | t         jZ                  k(  rt        j                  d      }t        j\                  |||      }|t         j                  k7  rd }|}||fS g }|d   }d }	 |t        j                  k(  r||j                  t_        |             nn|j`                  d	k(  r(||j                  t_        |             tc        |      }n*tc        |      }|xjd                  |jd                  z  c_2        |j"                  }t        j$                  |d          d }||fS tg        d      c c}w c c}w )Nzstruct ares_addrttl[]zint*r   zstruct ares_addr6ttl[]zstruct ares_caa_reply **zstruct hostent **zstruct ares_mx_reply **zstruct ares_naptr_reply **r   zstruct ares_soa_reply **zstruct ares_srv_reply **zstruct ares_txt_ext **invalid query type specified)4r&   r7   r   newPYCARES_ADDRTTL_SIZEares_parse_a_replyNULLr'   rangeares_query_a_resultr8   ares_parse_aaaa_replyares_query_aaaa_resultr9   ares_parse_caa_replyrG   ares_query_caa_resultnextares_free_datar:   ares_query_cname_resultares_free_hostentr;   ares_parse_mx_replyares_query_mx_resultr<   ares_parse_naptr_replyares_query_naptr_resultr=   ares_parse_ns_reply	h_aliasesares_query_ns_resultr>   ares_parse_ptr_replysocket	AF_UNSPECr   stringares_query_ptr_resultr?   ares_parse_soa_replyares_query_soa_resultr@   ares_parse_srv_replyares_query_srv_resultrA   ares_parse_txt_reply_extares_query_txt_resultrecord_startares_query_txt_result_chunktext
ValueError)rJ   rH   rI   addrttls	naddrttlsparse_statusr.   r*   i	caa_replycaa_reply_ptrhostmx_replymx_reply_ptrnaptr_replynaptr_reply_ptrr,   aliases	soa_reply	srv_replysrv_reply_ptr	txt_replytxt_reply_ptrtmp_obj	new_chunks                            r   rB   rB      s   TXX8835IJHHV%9:	..tT499hPYZ4,,,F!Fj 6>g AFiPQl@ST1)(1+6TFTFd 6>c 
t{{	"8846JKHHV%9:	11$diiS\]4,,,F!FV 6>S DISTCVWa,Xa[9WFWFP 6>O 
tzz	!HH78	00tYG4,,,F!FD 6>A F%aLM499,3MBC - 2 2  499, 	!-Ft 6>s 
t||	#xx+,..tT4DIIV4,,,F!Fh 6>e -T!W5F""47+F` 6>_ 
tyy	 8856//dHE4,,,F!FT 6>Q F#A;L$))+2<@A+00 $))+ ,FD 6>C 
t||	#hh;<224{K4,,,F!Fx 6>u F)!nO!TYY.5oFG"1"6"6 "TYY. A/Fh 6>g 
tyy	 ((.///dGD4,,,F!F\ 6>Y F1:DA..#tyy024>>!3DEFQ ..#tyy0 ""4(FJ 6>I 
tzz	!((./00tTYY6K[K[]de4,,,F!F~ 6>{ G1:DA..#tyy0yT^^A5F)GHIQ ..#tyy0 +49F""4(Fj 6>i 
tzz	!HH78	00tYG4,,,F!F^ 6>[ +9Q<8F	!-FV 6>U 
tzz	!HH78	00tYG4,,,F!FJ 6>G F%aLM499,3MBC - 2 2  499, 	!-F: 6>9 
tzz	!HH56	44T4K4,,,F!F. 6>+ F%aLMG DII-*&;G&DE --2*&;G&DE9-HG ;M JILLINN2L - 2 2  	!-F 6> 788c U Xs   ddc            %       Z   e Zd Zej                  ej
                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  fZej"                  ej$                  ej&                  ej(                  ej*                  fZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2dee   dee   dee   dee   dee   dee   deeeeef         d	eeeeef         d
eeedf   deeeeegdf      dee   dee   dedeeedf   dee   deeedf   deddf$dZ d3dZ!d3dZ"e#de$e   fd       Z%e%jL                  deeeef      ddfd       Z%d Z'dededdfdZ(d4dZ)dedee*egdf   ddfd Z+d!ed"e,jZ                  dee*egdf   ddfd#Z.	 	 	 	 d5d$ed%ee   dee*egdf   d"e,jZ                  d&ed'ededdfd(Z/d4d!ed)edee*egdf   d*ee   ddf
d+Z0d4d,Z1d4d-Z2d. Z3d/ee4e5f   dedee*egdf   ddfd0Z6d1 Z7y)6ChannelNflagstimeouttriesndotstcp_portudp_portserversdomainslookupsr!   socket_send_buffer_sizesocket_receive_buffer_sizerotatelocal_ip	local_devresolvconf_pathevent_threadreturnc           	          t        j                  d      }t        j                  d      }d}|||_        |t        j                  z  }|&t        |dz        |_        |t        j                  z  }|||_        |t        j                  z  }|||_
        |t        j                  z  }|||_        |t        j                  z  }|||_        |t        j                  z  }|||_        |t        j"                  z  }|||_        |t        j&                  z  }|
rnt)        |
      st+        d      |rt-        d      t        j.                  |
      }|| _        t        j2                  |_        ||_        |t        j8                  z  }|rJt;               st-        d      |
rt-        d      |t        j<                  z  }t        j>                  |_         |	r7t        j                  dtC        |	            |_"        |t        jF                  z  }|r|D cg c]!  }t        j                  dtC        |            # }}t        j                  d	tI        |      d
z   z        }tK        tI        |            D ]
  }||   ||<    ||_&        tI        |      |_'        |t        jP                  z  }|r|t        jR                  z  }|7|t        jT                  z  }t        j                  dtC        |            |_+        t        jX                  |||      }|t        jZ                  k7  rt]        d      t        j^                  |d       | _0        |r|| _1        |r| je                  |       |r| jg                  |       y y c c}w )Nzares_channel *zstruct ares_options *r   i  zsock_state_cb is not callablez6sock_state_cb and event_thread cannot be used togetherz&c-ares is not built with thread safetychar[]z
char *[%d]r   z#Failed to initialize c-ares channelc                 2    t        j                  | d         S Nr   )r&   ares_destroy)xs    r   <lambda>z"Channel.__init__.<locals>.<lambda>  s    43D3DQqT3J r   )4r   rT   r   r&   ARES_OPT_FLAGSintr   ARES_OPT_TIMEOUTMSr   ARES_OPT_TRIESr   ARES_OPT_NDOTSr   ARES_OPT_TCP_PORTr   ARES_OPT_UDP_PORTr   ARES_OPT_SOCK_SNDBUFr   ARES_OPT_SOCK_RCVBUFcallable	TypeErrorRuntimeError
new_handle_sock_state_cb_handler"   r!   sock_state_cb_dataARES_OPT_SOCK_STATE_CBares_threadsafetyARES_OPT_EVENT_THREADARES_EVSYS_DEFAULTevsysr   r   ARES_OPT_LOOKUPSlenrX   r   ndomainsARES_OPT_DOMAINSARES_OPT_ROTATEARES_OPT_RESOLVCONFr   ares_init_optionsr'   r   gc_channelr   set_local_ipset_local_dev)selfr   r   r   r   r   r   r   r   r   r!   r   r   r   r   r   r   r   channeloptionsoptmaskuserdatar{   strscrL   s                             r   __init__zChannel.__init__A  s/   & ((+,((23!GM 3 33G!'D.1GO 7 77G!GM!4!44G!GM!4!44G'G!7!77G'G!7!77G"..EG+!:!::G%11KG.!:!::GM* ?@@"#[\\}5H *2D&$($7$7G!)1G&!<!<<G$&"#KLL"#[\\!;!;;G 33GM"hhxW1EFGO!6!66G@GH1DHHX{1~6HDHW)9:;A3w<( 1gqt  GO"7|G!6!66G!5!55G&!9!99G&*hhx_9U&VG#""7GW=!!!ABB)JK"DLh'y) 9 Is   &M;c                 H    t        j                  | j                  d          y r   )r&   ares_cancelr   )r   s    r   cancelzChannel.cancel  s    q)*r   c                     t        j                  | j                  d         }|t         j                  k7  rt	        |t        j                  |            y r   )r&   ares_reinitr   r'   r   r   strerror)r   rL   s     r   reinitzChannel.reinit  sD    T]]1-.!!!Au~~a011 "r   c                    t        j                  d      }t        j                  | j                  d   |      }|t        j
                  k7  rt        |t        j                  |            g }t        j                  d|d         }	 |t         j                  k(  r	 |S t        j                  dt        j                        }|d   }t         j                  t        j                  |j                  t        j                  |j                        |t        j                        k7  r<|j                  t!        t        j"                  |t        j                                     |j$                  })Nzstruct ares_addr_node **r   char [])r   rT   r&   ares_get_serversr   r'   r   r   r   rW   INET6_ADDRSTRLENares_inet_ntopfamily	addressofaddrrG   r   rl   r^   )r   r   rL   server_listserveripss          r   r   zChannel.servers  s   ((56!!$--"2G<!!!Au~~a0114gajA"  )T%:%:;Bq	AyyD//$..:PRTVZVkVkll""9T[[T=R=R-S#TUVVF r   c           	      T   t        j                  dt        |      z        }t        |      D ]#  \  }}t	        j
                  t        j                  t        |      t        j                  ||   j                  j                              dk(  rt        j                  ||   _        nt	        j
                  t        j                  t        |      t        j                  ||   j                  j                              dk(  rt        j                  ||   _        nt        d      |dkD  st        j                  ||         ||dz
     _        & t	        j"                  | j$                  d   |      }|t        j&                  k7  rt)        |t+        j,                  |            y )Nzstruct ares_addr_node[%d]r   invalid IP addressr   )r   rT   r   	enumerater&   ares_inet_ptonrj   AF_INETr   r   r   addr4r   AF_INET6addr6rw   r^   ares_set_serversr   r'   r   r   r   )r   r   r   r{   r   rL   s         r   r   zChannel.servers  s?   HH03w<?@"7+ 		5IAv""6>>;v3FWXYZW[W`W`WfWfHghlmm$nn!$$V__k&6I4>>Z[\]Z^ZcZcZiZiKjkopp$oo! !5661u $qt 4!a%		5 !!$--"2A6!!!Au~~a011 "r   c                    g }g }t        j                  dt        j                  z        }t        j                  | j
                  d   |t        j                        }t        t        j                        D ]W  }t        j                  ||      r|j                  ||          t        j                  ||      sD|j                  ||          Y ||fS )Nzares_socket_t [%d]r   )
r   rT   r&   ARES_GETSOCK_MAXNUMares_getsockr   rX   ARES_GETSOCK_READABLErG   ARES_GETSOCK_WRITABLE)r   rfdswfdssocksbitmaskr{   s         r   getsockzChannel.getsock  s    -0H0HHI##DMM!$4eT=U=UVt//0 	&A))'15E!H%))'15E!H%		& Tzr   read_fdwrite_fdc                     t        j                  | j                  d   t        j                  d|      t        j                  d|             y )Nr   ares_socket_t)r&   ares_process_fdr   r   cast)r   r   r   s      r   
process_fdzChannel.process_fd  s8    T]]1-tyy'/RTXT]T]^mowTxyr   c                    t         j                  }t        j                  d      }|p|dk\  r`t        j                  d      }t        t	        j
                  |            |_        t        t	        j                  |d      dz        |_        nt        d      t        j                  | j                  d   ||       |t         j                  k(  ry|j                  |j                  dz  z   S )Nzstruct timeval*g        g      ?i@B z-timeout needs to be a positive number or Noner   g    .A)r   rW   rT   r   mathfloortv_secfmodtv_usecrw   r&   ares_timeoutr   )r   tmaxtvtvs       r   r   zChannel.timeout  s    		XX'(=Cx!23"4::a=1 #DIIa$5$? @ !PQQ$--*E26?		BJJ223r   r   r-   c                    t        |      st        d      t        j                  d      }t        j                  d      }t	        j
                  t        j                  t        |      |      dk(  r|}t        j                  }nOt	        j
                  t        j                  t        |      |      dk(  r|}t        j                  }nt        d      t        j                  |      }t        j                  |       t	        j                  | j                  d   |t        j                   |d         |t        j"                  |       y )Na callable is requiredstruct in_addr*struct ares_in6_addr*r   r   r   )r   r   r   rT   r&   r   rj   r   r   r   rw   r   r$   addares_gethostbyaddrr   sizeofr/   )r   r   r-   r   r   addressr   r   s           r   gethostbyaddrzChannel.gethostbyaddr  s    !455*+01v~~{4/@5JaOG^^F  +d2CeMQRRG__F122??8,!a 0'4;;wqz;RTZ\`\i\ikstr   namer   c                     t        |      st        d      t        j                  |      }t        j                  |       t        j                  | j                  d   t        |      |t        j                  |       y )Nr  r   )r   r   r   r   r$   r  r&   ares_gethostbynamer   r	   r/   )r   r  r   r-   r   s        r   gethostbynamezChannel.gethostbyname  sY    !455??8,!a 0*T2BFDMM[cdr   r~   porttypeprotoc                    t        |      st        d      |t        j                  }n6t	        |t
              rt        |      j                  d      }nt        |      }t        j                  |      }	t        j                  |	       t        j                  d      }
||
_        ||
_        ||
_        ||
_        t#        j$                  | j&                  d   t)        |      ||
t"        j*                  |	       y )Nr  asciizstruct ares_addrinfo_hints*r   )r   r   r   rW   rE   r   strencoder   r   r$   r  rT   ai_flags	ai_familyai_socktypeai_protocolr&   ares_getaddrinfor   r	   rQ   )r   r~   r  r-   r   r  r  r   r3   r   hintss              r   getaddrinfozChannel.getaddrinfo"  s     !455<iiGc"$i&&w/G!$'G??8,!67  !dmmA.
40@'5RVRcRcemnr   rJ   query_classc                 L    | j                  t        j                  ||||       y N)r  )	_do_queryr&   
ares_queryr   r  rJ   r-   r  s        r   queryzChannel.query@  s    tj(P[\r   c                 L    | j                  t        j                  ||||       y r   )r!  r&   ares_searchr#  s        r   searchzChannel.searchC  s    t''z8Q\]r   c                 r   t        |      st        d      || j                  vrt        d      |t        j
                  }|| j                  vrt        d      t        j                  ||f      }t        j                  |        || j                  d   t        |      ||t        j                  |       y )Nr  rS   zinvalid query class specifiedr   )r   r   
__qtypes__rw   r&   C_IN__qclasses__r   r   r$   r  r   r	   rM   )r   funcr  rJ   r-   r  r   s          r   r!  zChannel._do_queryF  s    !455T__,;<<))Kd///<==??Hj#9:!T]]1z$/j$..Zbcr   c                    t        j                  d      }t        j                  d      }t        j                  t        j
                  t        |      |      dk(  rAt        j                  | j                  d   t	        j                  |j                               y t        j                  t        j                  t        |      |      dk(  r$t        j                  | j                  d   |       y t        d      )Nr  r  r   r   r   )r   rT   r&   r   rj   r   r   ares_set_local_ip4r   ntohls_addrr   ares_set_local_ip6rw   )r   r   r   r   s       r   r   zChannel.set_local_ipW  s    *+01v~~{2F!K##DMM!$4fll5<<6PQ  +b/5IQN##DMM!$4e<122r   r
  c                 v   t        |      st        d      t        |      dk(  r|\  }}t        j                  d      }t        j                  t        j                  t        |      t        j                  |j                              dk7  rt        d|z        t        j                  |_        t        j                  |      |_        |}nt        |      dk(  r|\  }}}}	t        j                  d      }
t        j                  t        j                   t        |      t        j                  |
j"                              dk7  rt        d|z        t        j                   |
_        t        j                  |      |
_        t        j(                  |      |
_        |	|
_        |
}nt        d	      t        j.                  |      }t0        j3                  |       t        j4                  | j6                  d
   t        j8                  d|      t        j:                  |d
         |t
        j<                  |       y )Nr     struct sockaddr_in*r   zInvalid IPv4 address %r   struct sockaddr_in6*zInvalid IPv6 address %rzInvalid address argumentr   zstruct sockaddr*)r   r   r   r   rT   r&   r   rj   r   r   r   sin_addrrw   
sin_familyhtonssin_portr   	sin6_addrsin6_family	sin6_porthtonlsin6_flowinfosin6_scope_idr   r$   r  ares_getnameinfor   r   r	  r4   )r   r
  r   r-   r   r  sa4saflowinfoscope_idsa6r   s               r   getnameinfozChannel.getnameinfoa  s   !455w<1 JR((01C""6>>;r?DNNSVS_S_D`aeff !:R!?@@#^^CN!<<-CLB\Q-4*Rx((12C""6??KOT^^TWTaTaEbcghh !:R!?@@$ooCO"LL.CM &X 6C (CB788??8,!dmmA.		:Lb0QSWS^S^_abc_dSeglnrnn  BJ  	Kr   c                 J    t        j                  | j                  d   |       y r   )r&   ares_set_local_devr   )r   devs     r   r   zChannel.set_local_dev~  s    a 0#6r   )NNNNNNNNNNNNFNNNF)r   Nr   )r   r   r   r   )8r   r   r   r&   r7   r8   r6   r9   r:   r;   r<   r=   r>   r?   r@   rA   r)  r*  C_CHAOSC_HSC_NONEC_ANYr+  r   r   floatr   r   r  bytesr   boolr   r   r   propertylistr   setterr   r   r   r   r  rj   AddressFamilyr  r  r$  r'  r!  r   IP4IP6rG  r   r   r   r   r   r   =  sA   ((DKKTZZtyyZ^ZfZfhlhqhqsws}s}  @D  @J  @J  LP  LV  LV  X\  Xb  Xb  cJIIt||TYYTZZPL )-,0(,(,+/+/BFBF48NR:>=A %59,0<@&+#p* p*"5/p* !p* !	p*
 $C=p* $C=p* #8E#u*,=#>?p* #8E#u*,=#>?p*  UD 01p* !)3d2CT2I)J Kp* +33-p* .6c]p* p* !eT!12p* %SMp*  #(UD(8"9!p*"  $#p*" 15#p*d+2
 c  , ^^2xc5j(9: 2t 2 2"z# z z z4&u# u3*d:J1K uPT u&e# ev/C/C exY\^aXbdhXhOi enr e ()oo smo C:t+,	o
 $$o o o o 
o<]# ]3 ](C:tCS:T ]cklocp ]  }A ]^d"3K5c? K3 K(TWY\S]_cScJd Kim K:7r   r   c                       e Zd ZdZd Zy)
AresResultr   c           	          | j                   D cg c]  }|dt        | |       }}d| j                  j                  ddj	                  |      S c c}w )N=<z> z, )	__slots__getattr	__class__r   join)r   aattrss      r   __repr__zAresResult.__repr__  sI    :>..IQAwtQ/0II NN33TYYu5EFF Js   AN)r   r   r   r]  rc  r   r   r   rY  rY    s    IGr   rY  c                       e Zd ZdZdZd Zy)rY   r~   ttlAc                 t   t        j                  dt        j                        }t        j                  t
        j                  t        j                  |j                        |t        j                         t        t        j                  |t        j                              | _        |j                  | _        y Nr   )r   rT   r&   r   r   rj   r   r   ipaddrr   rl   r~   rf  r   ares_addrttlbufs      r   r   zares_query_a_result.__init__  sq    hhx!6!67FNNDNN<;N;N,OQTVZVkVkldkk#t/D/DEF	##r   Nr   r   r   r]  r  r   r   r   r   rY   rY     s    ID$r   rY   c                       e Zd ZdZdZd Zy)r[   re  AAAAc                 t   t        j                  dt        j                        }t        j                  t
        j                  t        j                  |j                        |t        j                         t        t        j                  |t        j                              | _        |j                  | _        y ri  )r   rT   r&   r   r   rj   r   r   ip6addrr   rl   r~   rf  rk  s      r   r   zares_query_aaaa_result.__init__  sq    hhx!6!67FOOT^^L<P<P-QSVX\XmXmndkk#t/D/DEF	##r   Nrn  r   r   r   r[   r[     s    ID$r   r[   c                       e Zd ZdZdZd Zy)r]   )criticalrR  valuerf  CAAc                    |j                   | _         t        t        j                  |j                  |j
                              | _        t        t        j                  |j                  |j                              | _        d| _        y N)	rt  r   r   rl   rR  plengthru  lengthrf  )r   caas     r   r   zares_query_caa_result.__init__  sR    !$++cllCKK"HIt{{399cjjAB
r   Nrn  r   r   r   r]   r]     s    8IDr   r]   c                       e Zd ZdZdZd Zy)r`   )cnamerf  CNAMEc                 l    t        t        j                  |j                              | _        d| _        y rx  )r   r   rl   h_namer~  rf  )r   r~   s     r   r   z ares_query_cname_result.__init__  s"    t{{4;;78
r   Nrn  r   r   r   r`   r`     s     IDr   r`   c                       e Zd ZdZdZd Zy)rc   )r~   priorityrf  MXc                     t        t        j                  |j                              | _        |j                  | _        d| _        y rx  )r   r   rl   r~   r  rf  )r   mxs     r   r   zares_query_mx_result.__init__  s-    dkk"''23	r   Nrn  r   r   r   rc   rc     s    +IDr   rc   c                       e Zd ZdZdZd Zy)re   )order
preferencer   r3   regexreplacementrf  NAPTRc                    |j                   | _         |j                  | _        t        t        j                  |j
                              | _        t        t        j                  |j                              | _        t        t        j                  |j                              | _        t        t        j                  |j                              | _	        d| _
        y rx  )r  r  r   r   rl   r   r3   regexpr  r  rf  )r   naptrs     r   r   z ares_query_naptr_result.__init__  s    [[
**t{{5;;78
 U]]!;<t{{5<<89
$T[[1B1B%CDr   Nrn  r   r   r   re   re     s    ZIDr   re   c                       e Zd ZdZdZd Zy)rh   re  NSc                 X    t        t        j                  |            | _        d| _        y rx  )r   r   rl   r~   rf  )r   nss     r   r   zares_query_ns_result.__init__  s    dkk"o.	r   Nrn  r   r   r   rh   rh     s    IDr   rh   c                       e Zd ZdZdZd Zy)rm   )r  rf  r   PTRc                 z    t        t        j                  |j                              | _        || _        d| _        y rx  )r   r   rl   r  r  r   rf  )r   r,   r   s      r   r   zares_query_ptr_result.__init__  s)    dkk'..9:	r   Nrn  r   r   r   rm   rm     s    *IDr   rm   c                       e Zd ZdZdZd Zy)ro   )nsname
hostmasterserialrefreshretryexpiresminttlrf  SOAc                 p   t        t        j                  |j                              | _        t        t        j                  |j                              | _        |j
                  | _        |j                  | _        |j                  | _        |j                  | _	        |j                  | _
        d| _        y rx  )r   r   rl   r  r  r  r  r  expirer  r  rf  )r   soas     r   r   zares_query_soa_result.__init__  sr    CJJ 78#DKK$?@jj{{YY
zzjjr   Nrn  r   r   r   ro   ro     s    bIDr   ro   c                       e Zd ZdZdZd Zy)rq   )r~   r  r  weightrf  SRVc                     t        t        j                  |j                              | _        |j                  | _        |j
                  | _        |j                  | _        d| _        y rx  )r   r   rl   r~   r  r  r  rf  )r   srvs     r   r   zares_query_srv_result.__init__  sC    dkk#((34	HH	jjr   Nrn  r   r   r   rq   rq     s    =IDr   rq   c                       e Zd ZdZdZd Zy)rs   rv   rf  TXTc                 F    t        |j                        | _        d| _        y rx  )r   rv   rf  )r   	txt_chunks     r   r   zares_query_txt_result.__init__  s    inn-	r   Nrn  r   r   r   rs   rs         IDr   rs   c                       e Zd ZdZdZd Zy)ru   r  r  c                 Z    t        j                  |j                        | _        d| _        y rx  )r   rl   txtrv   rf  )r   r  s     r   r   z$ares_query_txt_result_chunk.__init__
  s    KK(	r   Nrn  r   r   r   ru   ru     r  r   ru   c                       e Zd ZdZd Zy)r(   )r  r   	addressesc                    t        t        j                  |j                              | _        g | _        g | _        d}|j                  |   t        j                  k7  rj| j
                  j                  t        t        j                  |j                  |                      |dz  }|j                  |   t        j                  k7  rjd}|j                  |   t        j                  k7  rt        j                  dt        j                        }t        j                  t        j                  |j                  |j                  |   |t        j                        k7  rF| j                  j                  t        t        j                  |t        j                                     |dz  }|j                  |   t        j                  k7  ry y )Nr   r   r   )r   r   rl   r  r  r   r  rg   rW   rG   h_addr_listrT   r&   r   r   
h_addrtype)r   r,   r{   rm  s       r   r   zares_host_result.__init__  sG   dkk'..9:	"dii/LL	$++g6G6G6J*K LMFA "dii/ !!!$		1((8T%:%:;CyyD//0B0BGDWDWXYDZ\_aeavavww%%iCAVAV0W&XYFA	 !!!$		1r   Nr   r   r   r]  r   r   r   r   r(   r(     s    0Ir   r(   c                       e Zd ZdZd Zy)r1   )r2   r3   c                     t        t        j                  |            | _        |t        j                  k7  r$t        t        j                  |            | _        y d | _        y r   )r   r   rl   r2   rW   r3   )r   r2   r3   s      r   r   zares_nameinfo_result.__init__)  s>    dkk$/0	:ATYY:NyW!56TXr   Nr  r   r   r   r1   r1   &  s    #IYr   r1   c                       e Zd ZdZd Zy)ares_addrinfo_node_result)rf  r   r   socktypeprotocolr   c                 "   |j                   | _        |j                  | _        |j                  | _        |j                  | _        |j                  }|j                  |j                  k(  sJ t        j                  dt        j                        }|j                  t        j                   k(  rt        j                   | _        t        j$                  d|      }t        j&                  t        j(                  |j*                  t        j,                  |j.                        |t        j                        k7  rIt        j0                  |t        j                        t        j2                  |j4                        f| _        y y |j                  t        j8                  k(  rt        j8                  | _        t        j$                  d|      }t        j&                  t        j(                  |j:                  t        j,                  |j<                        |t        j                        k7  r_t        j0                  |t        j                        t        j2                  |j>                        |j@                  |jB                  f| _        y y tE        d      )Nr   r4  r6  zinvalid sockaddr family)#ai_ttlrf  r  r   r  r  r  r  ai_addr	sa_familyr  r   rT   r&   r   rj   r   r   r   rW   r   r8  r   r7  rl   ntohsr:  r   r   r<  r;  r=  r?  r@  rw   )r   	ares_noder   r   r   s        r   r   z"ares_addrinfo_node_result.__init__1  s   ##''
!--!--  ~~!4!4444XXi!6!67>>V^^+ ..DK		/6AyyD//dnnQZZ>XZ\^b^s^stt![[T-B-BCV\\RSR\R\E]^	 u ^^v. //DK		0$7AyyD//t~~akk?Z\^`d`u`uvv![[T-B-BCV\\RSR]R]E^`a`o`oqr  rA  rA  B	 w 677r   Nr  r   r   r   r  r  .  s    JI8r   r  c                       e Zd ZdZd Zy)ares_addrinfo_cname_result)rf  aliasr  c                     |j                   | _         t        t        j                  |j                              | _        t        t        j                  |j
                              | _        y r   )rf  r   r   rl   r  r  )r   
ares_cnames     r   r   z#ares_addrinfo_cname_result.__init__M  sA    >>t{{:+;+;<=
dkk*//:;	r   Nr  r   r   r   r  r  J  s    (I<r   r  c                       e Zd ZdZd Zy)rO   )cnamesnodesc                    g | _         g | _        |j                   }|t        j                  k7  rD| j                   j	                  t        |             |j                  }|t        j                  k7  rD|j                  }|t        j                  k7  rD| j                  j	                  t        |             |j                  }|t        j                  k7  rDt        j                  |       y r   )r  r  r   rW   rG   r  r^   r  ai_nextr&   ares_freeaddrinfo)r   ares_addrinfo	cname_ptrnode_ptrs       r   r   zares_addrinfo_result.__init__V  s    
!((	499$KK9)DE!I 499$ !&&$))#JJ7AB''H $))# 	}-r   Nr  r   r   r   rO   rO   S  s    #I.r   rO   r   c                  <    t        t        j                               S )z
    Check if c-ares was compiled with thread safety support.

    :return: True if thread-safe, False otherwise.
    :rtype: bool
    )rQ  r&   r   r   r   r   r   r   d  s     &&())r   )1ARES_FLAG_USEVCARES_FLAG_PRIMARYARES_FLAG_IGNTCARES_FLAG_NORECURSEARES_FLAG_STAYOPENARES_FLAG_NOSEARCHARES_FLAG_NOALIASESARES_FLAG_NOCHECKRESPARES_FLAG_EDNSARES_FLAG_NO_DFLT_SVRARES_NI_NOFQDNARES_NI_NUMERICHOSTARES_NI_NAMEREQDARES_NI_NUMERICSERVARES_NI_DGRAMARES_NI_TCPARES_NI_UDPARES_NI_SCTPARES_NI_DCCPARES_NI_NUMERICSCOPEARES_NI_LOOKUPHOSTARES_NI_LOOKUPSERVICEARES_NI_IDNARES_NI_IDN_ALLOW_UNASSIGNED ARES_NI_IDN_USE_STD3_ASCII_RULESARES_SOCKET_BADQUERY_TYPE_AQUERY_TYPE_AAAAQUERY_TYPE_ANYQUERY_TYPE_CAAQUERY_TYPE_CNAMEQUERY_TYPE_MXQUERY_TYPE_NAPTRQUERY_TYPE_NSQUERY_TYPE_PTRQUERY_TYPE_SOAQUERY_TYPE_SRVQUERY_TYPE_TXTQUERY_CLASS_INQUERY_CLASS_CHAOSQUERY_CLASS_HSQUERY_CLASS_NONEQUERY_CLASS_ANYARES_VERSIONr   r   r   r   r
   )_caresr   r   r   r&   _cffi_backendr'   ares_library_initARES_LIB_INIT_ALLr    r   utilsr   r   r	   _versionr
   rj   r   	functoolssyscollections.abcr   r   typingr   r   r   tupler  r   rV  rW  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r7   r  r8   r  r6   r  r9   r  r:   r  r;   r  r<   r  r=   r  r>   r  r?   r  r@   r  rA   r  r*  r  rK  r  rL  r  rM  r  rN  r  rl   ares_versionrW   r  rU   	Exceptionr   setr$   
def_externr"   r/   r4   rM   rQ   rB   r   rY  rY   r[   r]   r`   rc   re   rh   rm   ro   rq   rs   ru   r(   r1   r  r  rO   rQ  r   __all__r   r   r   <module>r     s    , ...t/E/EFF
4
55  5 5 !    
 . ' 'CHoCc3 &&** &&.. ,, ,, .. 22 $$22  $$.. (( .. ""    00 ,, 22 #@@ #'#H#H   && xx++<< 		<< 		 LL ;; **%6T%6%6tyy%ABC 		 	 e1 1 
 
 
 
  4 
 
\~B7 B7J
G G$* $$Z $Z j : j : J J 	Z 	J * z (Y: Y8
 88< <.: ."*4 *=r   