
    5pj{*                        % S SK r S SKrS SKrS SKrS SKJrJrJr  SSKJ	r	J
r
  Sr S SKr\" \R                  S5      r\R"                  \R$                  -  r\R(                  \R*                  -  r\R.                  r\" \S5      (       a  \\R2                  -  r\R4                  S	:H  rS
\S\4S jr " S S\	5      r " S S\	5      r  " S S5      r!\"\ \-     r#\(       a  \ O\r$\#\%S'   g! \ a    SrSr Nf = f)    N)AnyFinalOptional   )AbstractResolverResolveResult)ThreadedResolverAsyncResolverDefaultResolvergetaddrinfoFAI_MASKwin32hostreturnc                 `    [         =(       a"    U R                  S5      R                  5       S:H  $ )N.	localhost)_IS_WINDOWSrstripcasefold)r   s    L/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/aiohttp/resolver.py_is_windows_localhostr      s$    E4;;s+446+EE    c            
           \ rS rSrSrSS\R                  S-  SS4S jjrS\R                  4S\
S	\S
\R                  S\\   4S jjrSS jrSrg)r	   !   zThreaded resolver.

Uses an Executor for synchronous getaddrinfo() calls.
concurrent.futures.ThreadPoolExecutor is used by default.
Nloopr   c                 J    U=(       d    [         R                  " 5       U l        g N)asyncioget_running_loop_loop)selfr   s     r   __init__ThreadedResolver.__init__(   s    7W557
r   r   r   portfamilyc                   #     U R                   R                  UU[        R                  U[        S9I S h  vN n/ nU H  u  p6pvnU[        R                  :X  aY  [        U5      S:  a  M,  US   (       a6  U R                   R                  U[        5      I S h  vN u  p[        U
5      nO"US S u  pOU[        R                  :X  d   eUu  pUR                  [        UU	UUU[        S95        M     U$  N! [        R
                   aI    [        U5      (       d  e U R                   R                  UU[        R                  USS9I S h  vN  n GNf = f N7f)N)typer&   flagsr         hostnamer   r%   r&   protor)   )r!   r   socketSOCK_STREAM_AI_ADDRCONFIGgaierrorr   AF_INET6lengetnameinfo_NAME_SOCKET_FLAGSintAF_INETappendr   _NUMERIC_SOCKET_FLAGS)r"   r   r%   r&   infoshosts_r.   addressresolved_host_ports              r   resolveThreadedResolver.resolve+   se    	**00''$ 1  E$ &(,1(Fu(w<!# 1: 261G1G!32 ,(M u:D*1"1+'M4///&-#LL!&!/	' -2< c  		(..**00'' 1   E		,,sR   E2C6 C4C6 AEEAE4C6 6AE	E
EEEEc                    #    g 7fr    r"   s    r   closeThreadedResolver.closeb   s     s   )r!   r   r   N)__name__
__module____qualname____firstlineno____doc__r   AbstractEventLoopr#   r/   r8   strr7   AddressFamilylistr   rA   rF   __static_attributes__rD   r   r   r	   r	   !   sf    8W66= 8 8 &'v~~55"5060D0D5	m	5nr   r	   c                       \ rS rSrSr SS\R                  S-  S\S\SS4S jjrS	\	R                  4S
\S\S\	R                  S\\   4S jjrS	\	R                  4S
\S\S\S\\\\4      4S jjrSS jrSrg)r
   f   z9Use the `aiodns` package to make asynchronous DNS lookupsNr   argskwargsr   c                    [         c  [        S5      eU=(       d    [        R                  " 5       U l        S U l        U(       d  U(       a  [         R                  " U0 UD6U l        g [        5       U l        U R
                  R                  X R                  5      U l        [        U R                  S5      (       d  U R                  U l        g g )Nz Resolver requires aiodns librarygethostbyname)aiodnsRuntimeErrorr   r    r!   _managerDNSResolver	_resolver_DNSResolverManagerget_resolverhasattr_resolve_with_queryrA   )r"   r   rU   rV   s       r   r#   AsyncResolver.__init__i   s     >ABB7W557
48 6#//@@DN+-33D**Et~~7733DL 8r   r   r   r%   r&   c                   #      U R                   R                  UU[        R                  U[        S9I S h  vN n/ nUR                   GH  nUR                  n	UR                  [        R                  :X  a  [        U	5      S:  aX  U	S   (       aN  U R                   R!                  U	S   R#                  S5      /U	SS  Q7[$        5      I S h  vN n
U
R&                  nOSU	S   R#                  S5      nU	S   nO9UR                  [        R(                  :X  d   eU	S   R#                  S5      nU	S   nUR+                  [-        UUUUR                  S[.        S95        GM     U(       d  [        S S5      eU$  GN@! [
        R                  R                   aI    [        U5      (       d  e U R                   R                  UU[        R                  USS9I S h  vN  n GNf = f! [
        R                  R                   a<  n[        UR                  5      S:  a  UR                  S   OSn[        S U5      UeS nAff = f GNt7f)N)r%   r(   r&   r)   r   r   DNS lookup failedr*   asciir,   )r]   r   r/   r0   r1   rY   errorDNSErrorr   r4   rU   OSErrornodesaddrr&   r3   r5   decoder6   noder8   r9   r   r:   )r"   r   r%   r&   respexcmsgr<   rl   r>   resultr?   s               r   rA   AsyncResolver.resolve   s    	.!^^77++!( 8  ( &(JJDGKyyG{{foo-w<!#
 $(>>#=#= **73BgabkB*$ F %+KKM$+AJ$5$5g$>M"1:D{{fnn444 '
 1 1' :qzLL!&;;/	' < $ 344m <<(( 	,T22!^^77++! 8   	 ||$$ 	.!$SXX!!3#((1+9LC$$#-	.sp   I2E: E7E: BIIB)I7E: :AG!GG!G$ I G!!G$ $H>7H99H>>Ic           
        #    U[         R                  :X  a  SOSn U R                  R                  X5      I S h  vN n/ nU H3  n	UR                  UU	R                  UUS[         R                  S.5        M5     U(       d  [        S S5      eU$  NT! [        R
                  R                   a<  n[        UR                  5      S:  a  UR                  S   OSn[        S U5      UeS nAff = f7f)NAAAAAr   rd   r   r,   )r/   r3   r]   queryrY   rf   rg   r4   rU   rh   r9   r   AI_NUMERICHOST)
r"   r   r%   r&   qtyperm   rn   ro   r<   rrs
             r   ra   !AsyncResolver._resolve_with_query   s      "(6??!:v	.--d::D
 BLL $GG $#22	  $ 344+ ;||$$ 	.!$SXX!!3#((1+9LC$$#-	.s8   C.B BB AC.B C+/7C&&C++C.c                    #    U R                   (       a4  U R                   R                  X R                  5        S U l         S U l        g U R                  b  U R                  R	                  5         S U l        g 7fr   )r[   release_resolverr!   r]   cancelrE   s    r   rF   AsyncResolver.close   sT     ==MM**4< DM!DN>>%NN!!#s   A5A7)r!   r[   r]   rA   r   rH   )rI   rJ   rK   rL   rM   r   rN   r   r#   r/   r8   rO   r7   rP   rQ   r   rA   dictra   rF   rR   rD   r   r   r
   r
   f   s    C 264''$.4 4 	4
 
44 &'v~~;;";060D0D;	m	;| &'fnn"03	d38n	:
r   r
   c                      ^  \ rS rSr% SrSr\S    \S'   SU 4S jjrSS jr	SS	S
\
R                  SS4S jrSS	S
\
R                  SS4S jrSrU =r$ )r^      zManager for aiodns.DNSResolver objects.

This class manages shared aiodns.DNSResolver instances
with no custom arguments across different event loops.
N	_instancer   c                    > U R                   c.  [        TU ]	  U 5      U l         U R                   R                  5         U R                   $ r   )r   super__new___init)cls	__class__s    r   r   _DNSResolverManager.__new__   s7    == !GOC0CMMM!}}r   c                 8    [         R                  " 5       U l        g r   )weakrefWeakKeyDictionary
_loop_datarE   s    r   r   _DNSResolverManager._init   s    
 %%' 	r   clientr
   r   zaiodns.DNSResolverc                     X R                   ;  a:  [        R                  " US9n[        R                  " 5       nX44U R                   U'   OU R                   U   u  p4UR                  U5        U$ )zGet or create the shared aiodns.DNSResolver instance for a specific event loop.

Args:
    client: The AsyncResolver instance requesting the resolver.
           This is required to track resolver usage.
    loop: The event loop to use for the resolver.
)r   )r   rY   r\   r   WeakSetadd)r"   r   r   resolver
client_sets        r   r_    _DNSResolverManager.get_resolver   sa     &))t4H9@9JJ%-$:DOOD! $(??4#8 H 	vr   c                     U R                   R                  U5      nUc  gUu  pEUR                  U5        U(       d!  Ub  UR                  5         U R                   U	 gg)zRelease the resolver for an AsyncResolver client when it's closed.

Args:
    client: The AsyncResolver instance to release.
    loop: The event loop the resolver was using.
N)r   getdiscardr|   )r"   r   r   current_loop_datar   r   s         r   r{   $_DNSResolverManager.release_resolver  s\     !OO//5$06"#!% r   )r   )r   r^   rH   )rI   rJ   rK   rL   rM   r   r   __annotations__r   r   r   rN   r_   r{   rR   __classcell__)r   s   @r   r^   r^      so     26Ix-.5(%-4-F-F	.&%&-4-F-F&	& &r   r^   r   )&r   r/   sysr   typingr   r   r   abcr   r   __all__rY   r`   r\   aiodns_defaultImportErrorrv   AI_NUMERICSERVr:   NI_NUMERICHOSTNI_NUMERICSERVr6   AI_ADDRCONFIGr1   r   platformr   rO   boolr   r	   r
   r^   r(   _DefaultTyper   r   rD   r   r   <module>r      s     
  ' ' 0
BV//?N --0E0EE **V-B-BB %%
69fnn$Nllg%F F FB' BJ@$ @F@& @&F M$4451?EU U{  FNs   C* *
C76C7