
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
U
    ma:t                     @   s  d dl mZmZ ddlZejeejkr2e	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Zdd	d
dddddddddddddddddddddgZeD ]Zeeee e< qd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1Ze D ]\ZZeeee e< qee e!ej"e d2< d3Z#G d4d5 d5e$Z%e& Z'e( d6d7 Z)e( d8d9 Z*e( d:d; Z+e( d<d= Z,e( d>d? Z-d@dA Z.G dBdC dCZ/G dDdE dEZ0G dFdG dGe0Z1G dHdI dIe0Z2G dJdK dKe0Z3G dLdM dMe0Z4G dNdO dOe0Z5G dPdQ dQe0Z6G dRdS dSe0Z7G dTdU dUe0Z8G dVdW dWe0Z9G dXdY dYe0Z:G dZd[ d[e0Z;G d\d] d]e0Z<G d^d_ d_e0Z=G d`da dae0Z>G dbdc dce0Z?G ddde dee0Z@G dfdg dge0ZAeeBeC  d5dCdhdig ZD[[dS )j   )ffilib    NzCould not initialize c-ares)errno)ascii_bytes	maybe_str
parse_name)__version__ZARES_FLAG_USEVCZARES_FLAG_PRIMARYZARES_FLAG_IGNTCZARES_FLAG_NORECURSEZARES_FLAG_STAYOPENZARES_FLAG_NOSEARCHZARES_FLAG_NOALIASESZARES_FLAG_NOCHECKRESPZARES_NI_NOFQDNZARES_NI_NUMERICHOSTZARES_NI_NAMEREQDZARES_NI_NUMERICSERVZARES_NI_DGRAMZARES_NI_TCPZARES_NI_UDPZARES_NI_SCTPZARES_NI_DCCPZARES_NI_NUMERICSCOPEZARES_NI_LOOKUPHOSTZARES_NI_LOOKUPSERVICEZARES_NI_IDNZARES_NI_IDN_ALLOW_UNASSIGNEDZ ARES_NI_IDN_USE_STD3_ASCII_RULESZARES_SOCKET_BADT_AT_AAAAT_ANYT_CAAT_CNAMET_MXT_NAPTRT_NST_PTRT_SOAT_SRVT_TXTC_INC_CHAOSC_HSC_NONEC_ANY)ZQUERY_TYPE_AZQUERY_TYPE_AAAAZQUERY_TYPE_ANYZQUERY_TYPE_CAAZQUERY_TYPE_CNAMEZQUERY_TYPE_MXZQUERY_TYPE_NAPTRZQUERY_TYPE_NSZQUERY_TYPE_PTRZQUERY_TYPE_SOAZQUERY_TYPE_SRVZQUERY_TYPE_TXTZQUERY_CLASS_INZQUERY_CLASS_CHAOSZQUERY_CLASS_HSZQUERY_CLASS_NONEZQUERY_CLASS_ANYZARES_VERSION   c                   @   s   e Zd ZdS )	AresErrorN)__name__
__module____qualname__ r    r    C/opt/alt/python38/lib64/python3.8/site-packages/pycares/__init__.pyr   X   s   r   c                 C   s   t | }|||| d S N)_ffifrom_handle)dataZ	socket_fdreadablewritablesock_state_cbr    r    r!   _sock_state_cb`   s    
r)   c                 C   s>   t | }t|  |tjkr$d }nt|}d }||| d S r"   )r#   r$   _global_setdiscard_libARES_SUCCESSares_host_result)argstatustimeoutshostentcallbackresultr    r    r!   _host_cbe   s    


r5   c                 C   s@   t | }t|  |tjkr$d }nt||}d }||| d S r"   )r#   r$   r*   r+   r,   r-   ares_nameinfo_result)r/   r0   r1   nodeservicer3   r4   r    r    r!   _nameinfo_cbr   s    



r9   c           
      C   s   t | \}}t|  |tjkr|tjkrg }tjtjtj	tj
tjtjtjtjtjtjtjfD ]Z}t|||\}	}|d tjtjfkrd } q|	d k	r`t|	tjjr||	 q`||	 q`d }qt|||\}}nd }||| d S r"   )r#   r$   r*   r+   r,   r-   r   r
   r   r   r   r   r   r   r   r   r   r   parse_resultZARES_ENODATAZARES_EBADRESP
isinstancecollectionsabcIterableextendappend)
r/   r0   r1   abufalenr3   
query_typer4   Zqtyperr    r    r!   	_query_cb   s$    


4rE   c                 C   s>   t | }t|  |tjkr$d }nt|}d }||| d S r"   )r#   r$   r*   r+   r,   r-   ares_addrinfo_result)r/   r0   r1   resr3   r4   r    r    r!   _addrinfo_cb   s    


rH   c                    s  | t jkrltdt tdt}t ||tj |}|t jkrJd }|}n fddt|d D }d }n>| t j	krtdt tdt}t 
||tj |}|t jkrd }|}n fddt|d D }d }n| t jkrXtd}t |||}|t jkrd }|}nBg }|d }|tjkrB|t| |j}qt |d  d }nR| t jkrtd	}	t |||	tjtj}|t jkrd }|}nt|	d }t |	d  d }n| t jkr<td
}
t |||
}|t jkrd }|}nBg }|
d }|tjkr&|t| |j}qt |
d  d }nn| t jkrtd}t |||}|t jkrvd }|}nBg }|d }|tjkr|t| |j}qt |d  d }n| t jkrJtd	}t |||}|t jkrd }|}nPg }|d }	d}|	j| tjkr8|t|	j|  |d7 }qt |	 d }n`| t jkrtd	}t ||tjdt j!|}|t jkrd }|}n`g }|d }	d}|	j| tjkr|t"t#|	j|  |d7 }qt$|	|}t |	 d }n| t j%krNtd}t &|||}|t jkr,d }|}nt'|d }t |d  d }n\| t j(krtd}t )|||}|t jkrd }|}nBg }|d }|tjkr|t*| |j}qt |d  d }n| t j+krtd}t ,|||}|t jkrd }|}ng }|d }d }|tjkr>|d k	r|t-| q|j.dkrl|d k	rb|t-| t/|}nt/|}| j0|j07  _0|j}qt |d  d }nt1d||fS )Nzstruct ares_addrttl[]zint*c                    s   g | ]}t  | qS r    )ares_query_a_result.0iZaddrttlsr    r!   
<listcomp>   s     z parse_result.<locals>.<listcomp>r   zstruct ares_addr6ttl[]c                    s   g | ]}t  | qS r    )ares_query_aaaa_resultrJ   rM   r    r!   rN      s     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)2r,   r
   r#   newPYCARES_ADDRTTL_SIZEZares_parse_a_replyNULLr-   ranger   Zares_parse_aaaa_replyr   Zares_parse_caa_replyr@   ares_query_caa_resultnextZares_free_datar   ares_query_cname_resultZares_free_hostentr   Zares_parse_mx_replyares_query_mx_resultr   Zares_parse_naptr_replyares_query_naptr_resultr   Zares_parse_ns_reply	h_aliasesares_query_ns_resultr   Zares_parse_ptr_replysocket	AF_UNSPECr   stringares_query_ptr_resultr   Zares_parse_soa_replyares_query_soa_resultr   Zares_parse_srv_replyares_query_srv_resultr   Zares_parse_txt_reply_extares_query_txt_resultZrecord_startares_query_txt_result_chunktext
ValueError)rC   rA   rB   Z	naddrttlsZparse_statusr4   r0   Z	caa_replyZcaa_reply_ptrhostZmx_replyZmx_reply_ptrZnaptr_replyZnaptr_reply_ptrr2   rL   aliasesZ	soa_replyZ	srv_replyZsrv_reply_ptrZ	txt_replyZtxt_reply_ptrZtmp_objZ	new_chunkr    rM   r!   r:      s   























r:   c                   @   s   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d#ddZdd Zedd Zejd	d Zd
d Zdd Zd$ddZdd Zdd Z d%ddZ!d&ddZ"d'ddZ#d(ddZ$dd Z%dd  Z&d!d" Z'dS ))ChannelNFc                 C   s>  t d}t d}d}|d k	r0||_|tjB }|d k	rPt|d |_|tjB }|d k	rh||_|tj	B }|d k	r||_
|tjB }|d k	r||_|tjB }|d k	r||_|tjB }|d k	r||_|tjB }|d k	r||_|tjB }|
rt|
stdt |
}|| _tj|_||_|tjB }|	r@t dt|	|_|tjB }|rdd |D }t d	t|d
  }t t|D ]}|| ||< qv||_!t||_"|tj#B }|r|tj$B }|d k	r|tj%B }t dt||_&t'|||}|tj(krt)dt *|dd | _+|r|| _,|r*| -| |r:| .| d S )Nzares_channel *zstruct ares_options *r   i  zsock_state_cb is not callablechar[]c                 S   s   g | ]}t d t|qS )ri   )r#   rQ   r   rJ   r    r    r!   rN     s     z$Channel.__init__.<locals>.<listcomp>z
char *[%d]r   z#Failed to initialize c-ares channelc                 S   s   t | d S Nr   )r,   Zares_destroy)xr    r    r!   <lambda>      z"Channel.__init__.<locals>.<lambda>)/r#   rQ   flagsr,   ZARES_OPT_FLAGSinttimeoutZARES_OPT_TIMEOUTMStriesZARES_OPT_TRIESndotsZARES_OPT_NDOTStcp_portZARES_OPT_TCP_PORTudp_portZARES_OPT_UDP_PORTsocket_send_buffer_sizeZARES_OPT_SOCK_SNDBUFsocket_receive_buffer_sizeZARES_OPT_SOCK_RCVBUFcallable	TypeError
new_handleZ_sock_state_cb_handler)   r(   Zsock_state_cb_dataZARES_OPT_SOCK_STATE_CBr   lookupsZARES_OPT_LOOKUPSlenrT   domainsZndomainsZARES_OPT_DOMAINSZARES_OPT_ROTATEZARES_OPT_RESOLVCONFresolvconf_pathZares_init_optionsr-   r   gc_channelserversset_local_ipset_local_dev)selfrn   rp   rq   rr   rs   rt   r   r|   rz   r(   ru   rv   rotateZlocal_ipZ	local_devr}   ZchanneloptionsZoptmaskuserdatastrscrL   rD   r    r    r!   __init__J  sz    


















zChannel.__init__c                 C   s   t | jd  d S rj   )r,   Zares_cancelr   r   r    r    r!   cancel  s    zChannel.cancelc                 C   s   t d}t| jd |}|tjkr6t|t|g }t d|d }|t j	krVqt dtj
}|d }t j	t|jt |j|tj
kr|tt |tj
 |j}qJ|S )Nzstruct ares_addr_node **r   char [])r#   rQ   r,   Zares_get_serversr   r-   r   r   strerrorrS   INET6_ADDRSTRLENares_inet_ntopfamily	addressofaddrr@   r   r^   rV   )r   r   rD   Zserver_listserveripsr    r    r!   r     s    


"zChannel.serversc              	   C   s   t dt| }t|D ]\}}ttjt|t 	|| j
jdkrVtj|| _n<ttjt|t 	|| j
jdkrtj|| _ntd|dkrt 	|| ||d  _qt| jd |}|tjkrt|t|d S )Nzstruct ares_addr_node[%d]r   invalid IP addressr   )r#   rQ   r{   	enumerater,   ares_inet_ptonr\   AF_INETr   r   r   addr4r   AF_INET6addr6re   rV   Zares_set_serversr   r-   r   r   r   )r   r   r   rL   r   rD   r    r    r!   r     s    &&
c                 C   sz   g }g }t dtj }t| jd |tj}ttjD ]8}t||rV|||  t	||r8|||  q8||fS )Nzares_socket_t [%d]r   )
r#   rQ   r,   ZARES_GETSOCK_MAXNUMZares_getsockr   rT   ZARES_GETSOCK_READABLEr@   ZARES_GETSOCK_WRITABLE)r   ZrfdsZwfdsZsocksZbitmaskrL   r    r    r!   getsock  s    zChannel.getsockc                 C   s(   t | jd td|td| d S )Nr   Zares_socket_t)r,   Zares_process_fdr   r#   cast)r   Zread_fdZwrite_fdr    r    r!   
process_fd  s    zChannel.process_fdc                 C   s   t j}t d}|d k	rZ|dkrRt d}tt||_tt|dd |_nt	dt
| jd || |t jkr|dS |j|jd  S )Nzstruct timeval*g        g      ?i@B z-timeout needs to be a positive number or Noner   g    .A)r#   rS   rQ   ro   mathfloorZtv_secfmodZtv_usecre   r,   Zares_timeoutr   )r   tZmaxtvZtvr    r    r!   rp     s    


zChannel.timeoutc                 C   s   t |stdtd}td}ttjt||dkrH|}tj}n,ttj	t||dkrl|}tj	}nt
dt|}t| t| jd |t|d |tj| d S )Na callable is requiredstruct in_addr*struct ares_in6_addr*r   r   r   )rw   rx   r#   rQ   r,   r   r\   r   r   r   re   ry   r*   addZares_gethostbyaddrr   sizeofr5   )r   r   r3   r   r   addressr   r   r    r    r!   gethostbyaddr   s    



zChannel.gethostbyaddrc                 C   sF   t |stdt|}t| t| jd t	||tj
| d S )Nr   r   )rw   rx   r#   ry   r*   r   r,   Zares_gethostbynamer   r   r5   )r   namer   r3   r   r    r    r!   gethostbyname  s
    

zChannel.gethostbynamer   c                 C   s   t |std|d kr tj}n"t|tr:t|d}nt|}t	|}	t
|	 td}
||
_||
_||
_||
_t| jd t|||
tj|	 d S )Nr   asciizstruct ares_addrinfo_hints*r   )rw   rx   r#   rS   r;   ro   strencoder   ry   r*   r   rQ   ai_flags	ai_familyai_socktypeai_protocolr,   Zares_getaddrinfor   r   rH   )r   rf   portr3   r   typeprotorn   r8   r   hintsr    r    r!   getaddrinfo  s    



zChannel.getaddrinfoc                 C   s   | j tj||||d d S N)query_class)	_do_queryr,   Z
ares_queryr   r   rC   r3   r   r    r    r!   query0  s    zChannel.queryc                 C   s   | j tj||||d d S r   )r   r,   Zares_searchr   r    r    r!   search3  s    zChannel.searchc                 C   s|   t |std|| jkr"td|d kr0tj}|| jkrBtdt||f}t	
| || jd t|||tj| d S )Nr   rP   zinvalid query class specifiedr   )rw   rx   
__qtypes__re   r,   r   __qclasses__r#   ry   r*   r   r   r   rE   )r   funcr   rC   r3   r   r   r    r    r!   r   6  s    


zChannel._do_queryc                 C   s   t d}t d}ttjt||dkrHt| jd t	|j
 n4ttjt||dkrtt| jd | ntdd S )Nr   r   r   r   r   )r#   rQ   r,   r   r\   r   r   Zares_set_local_ip4r   ntohlZs_addrr   Zares_set_local_ip6re   )r   r   r   r   r    r    r!   r   G  s    

zChannel.set_local_ipc                 C   s<  t |stdt|dkrt|\}}td}ttjt	|t
|jdkrZtd| tj|_t||_|}nt|dkr|\}}}}	td}
ttjt	|t
|
jdkrtd| tj|
_t||
_t||
_|	|
_|
}ntd	t|}t| t| jd
 td|t|d
 |tj| d S )Nr      struct sockaddr_in*r   zInvalid IPv4 address %r   struct sockaddr_in6*zInvalid IPv6 address %rzInvalid address argumentr   zstruct sockaddr*)rw   rx   r{   r#   rQ   r,   r   r\   r   r   r   sin_addrre   
sin_familyhtonssin_portr   	sin6_addrsin6_family	sin6_porthtonlsin6_flowinfosin6_scope_idry   r*   r   Zares_getnameinfor   r   r   r9   )r   r   rn   r3   r   r   Zsa4saZflowinfoZscope_idZsa6r   r    r    r!   getnameinfoQ  s0    
 
 

zChannel.getnameinfoc                 C   s   t | jd | d S rj   )r,   Zares_set_local_devr   )r   devr    r    r!   r   n  s    zChannel.set_local_dev)NNNNNNNNNNNNFNNN)N)r   r   r   r   )N)N)N)(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   propertyr   setterr   r   rp   r   r   r   r   r   r   r   r   r   r    r    r    r!   rh   F  sH   4                
g







rh   c                   @   s   e Zd ZdZdd ZdS )
AresResultr    c                    s*    fdd j D }d jjd|f S )Nc                    s   g | ]}d |t  |f qS )z%s=%s)getattr)rK   ar   r    r!   rN   v  s     z'AresResult.__repr__.<locals>.<listcomp>z<%s> %sz, )	__slots__	__class__r   join)r   attrsr    r   r!   __repr__u  s    zAresResult.__repr__N)r   r   r   r   r   r    r    r    r!   r   r  s   r   c                   @   s   e Zd ZdZdZdd ZdS )rI   rf   ttlAc                 C   sJ   t dtj}ttjt |j|tj t	t 
|tj| _|j| _d S Nri   )r#   rQ   r,   r   r   r\   r   r   Zipaddrr   r^   rf   r   r   Zares_addrttlbufr    r    r!   r     s    zares_query_a_result.__init__Nr   r   r   r   r   r   r    r    r    r!   rI   }  s   rI   c                   @   s   e Zd ZdZdZdd ZdS )rO   r   ZAAAAc                 C   sJ   t dtj}ttjt |j|tj t	t 
|tj| _|j| _d S r   )r#   rQ   r,   r   r   r\   r   r   Zip6addrr   r^   rf   r   r   r    r    r!   r     s    zares_query_aaaa_result.__init__Nr   r    r    r    r!   rO     s   rO   c                   @   s   e Zd ZdZdZdd ZdS )rU   )criticalr   valuer   ZCAAc                 C   s>   |j | _ tt|j|j| _tt|j|j| _d| _d S N)	r   r   r#   r^   r   Zplengthr   lengthr   )r   Zcaar    r    r!   r     s    zares_query_caa_result.__init__Nr   r    r    r    r!   rU     s   rU   c                   @   s   e Zd ZdZdZdd ZdS )rW   )cnamer   ZCNAMEc                 C   s   t t|j| _d| _d S r   )r   r#   r^   h_namer   r   )r   rf   r    r    r!   r     s    z ares_query_cname_result.__init__Nr   r    r    r    r!   rW     s   rW   c                   @   s   e Zd ZdZdZdd ZdS )rX   )rf   priorityr   ZMXc                 C   s$   t t|j| _|j| _d| _d S r   )r   r#   r^   rf   r   r   )r   Zmxr    r    r!   r     s    zares_query_mx_result.__init__Nr   r    r    r    r!   rX     s   rX   c                   @   s   e Zd ZdZdZdd ZdS )rY   )order
preferencern   r8   regexreplacementr   ZNAPTRc                 C   sb   |j | _ |j| _tt|j| _tt|j| _tt|j| _tt|j	| _	d| _
d S r   )r   r   r   r#   r^   rn   r8   Zregexpr   r   r   )r   Znaptrr    r    r!   r     s    z ares_query_naptr_result.__init__Nr   r    r    r    r!   rY     s   rY   c                   @   s   e Zd ZdZdZdd ZdS )r[   r   ZNSc                 C   s   t t|| _d| _d S r   )r   r#   r^   rf   r   )r   nsr    r    r!   r     s    zares_query_ns_result.__init__Nr   r    r    r    r!   r[     s   r[   c                   @   s   e Zd ZdZdZdd ZdS )r_   )r   r   rg   ZPTRc                 C   s"   t t|j| _|| _d| _d S r   )r   r#   r^   r   r   rg   r   )r   r2   rg   r    r    r!   r     s    zares_query_ptr_result.__init__Nr   r    r    r    r!   r_     s   r_   c                   @   s   e Zd ZdZdZdd ZdS )r`   )nsname
hostmasterserialrefreshretryexpiresminttlr   ZSOAc                 C   sV   t t|j| _t t|j| _|j| _|j| _|j| _|j| _	|j
| _
d| _d S r   )r   r#   r^   r   r   r   r   r   Zexpirer   r   r   )r   Zsoar    r    r!   r     s    zares_query_soa_result.__init__Nr   r    r    r    r!   r`     s   r`   c                   @   s   e Zd ZdZdZdd ZdS )ra   )rf   r   r   weightr   ZSRVc                 C   s4   t t|j| _|j| _|j| _|j| _d| _d S r   )r   r#   r^   rf   r   r   r   r   )r   Zsrvr    r    r!   r     s
    zares_query_srv_result.__init__Nr   r    r    r    r!   ra     s   ra   c                   @   s   e Zd ZdZdZdd ZdS )rb   rd   r   TXTc                 C   s   t |j| _d| _d S r   )r   rd   r   )r   Z	txt_chunkr    r    r!   r     s    zares_query_txt_result.__init__Nr   r    r    r    r!   rb     s   rb   c                   @   s   e Zd ZdZdZdd ZdS )rc   r   r   c                 C   s   t |j| _d| _d S r   )r#   r^   txtrd   r   )r   r   r    r    r!   r     s    z$ares_query_txt_result_chunk.__init__Nr   r    r    r    r!   rc     s   rc   c                   @   s   e Zd ZdZdd ZdS )r.   )r   rg   	addressesc                 C   s   t t|j| _g | _g | _d}|j| tjkrX| j	t t|j|  |d7 }q"d}|j
| tjkrtdtj}tjt|j|j
| |tjkr| j	t t|tj |d7 }q\d S )Nr   r   ri   )r   r#   r^   r   r   rg   r   rZ   rS   r@   Zh_addr_listrQ   r,   r   r   Z
h_addrtype)r   r2   rL   r   r    r    r!   r     s    
 zares_host_result.__init__Nr   r   r   r   r   r    r    r    r!   r.     s   r.   c                   @   s   e Zd ZdZdd ZdS )r6   )r7   r8   c                 C   s2   t t|| _|tjkr(t t|nd | _d S r"   )r   r#   r^   r7   rS   r8   )r   r7   r8   r    r    r!   r     s    zares_nameinfo_result.__init__Nr   r    r    r    r!   r6     s   r6   c                   @   s   e Zd ZdZdd ZdS )ares_addrinfo_node_result)r   rn   r   socktypeprotocolr   c                 C   s  |j | _|j| _|j| _|j| _|j}|j	|j
ks6ttdtj}|j	tjkrtj| _td|}tjt|jt|j|tjkrt|tjt|jf| _nt|j	tjkrtj| _td|}tjt|jt|j|tjkrt|tjt|j |j!|j"f| _nt#dd S )Nr   r   r   zinvalid sockaddr family)$Zai_ttlr   r   rn   r   r   r   r  Zai_addrZ	sa_familyr   AssertionErrorr#   rQ   r,   r   r\   r   r   r   rS   r   r   r   r   r^   ntohsr   r   r   r   r   r   r   r   re   )r   Z	ares_noder   r   r   r    r    r!   r   !  s$    "$&z"ares_addrinfo_node_result.__init__Nr   r    r    r    r!   r     s   r   c                   @   s   e Zd ZdZdd ZdS )ares_addrinfo_cname_result)r   aliasr   c                 C   s0   |j | _ tt|j| _tt|j| _d S r"   )r   r   r#   r^   r  r   )r   Z
ares_cnamer    r    r!   r   =  s    z#ares_addrinfo_cname_result.__init__Nr   r    r    r    r!   r  :  s   r  c                   @   s   e Zd ZdZdd ZdS )rF   )cnamesnodesc                 C   sj   g | _ g | _|j }|tjkr4| j t| |j}q|j}|tjkr\| jt| |j}q:t	
| d S r"   )r  r  r#   rS   r@   r  rV   r   Zai_nextr,   Zares_freeaddrinfo)r   Zares_addrinfoZ	cname_ptrZnode_ptrr    r    r!   r   F  s    

zares_addrinfo_result.__init__Nr   r    r    r    r!   rF   C  s   rF   r   r	   )E_caresr   r#   r   r,   _cffi_backendr-   Zares_library_initZARES_LIB_INIT_ALLRuntimeError r   utilsr   r   r   _versionr	   collections.abcr<   r\   r   	functoolssysZexported_pycares_symbolssymbolr   globalsZexported_pycares_symbols_mapitemskvr^   Zares_versionrS   rR   	Exceptionr   setr*   
def_externr)   r5   r9   rE   rH   r:   rh   r   rI   rO   rU   rW   rX   rY   r[   r_   r`   ra   rb   rc   r.   r6   r   r  rF   listkeys__all__r    r    r    r!   <module>   s    




    .	
	
		