+
    üÐj±  ã                   ó¢   € R t ^ RIHt ^ RIHtHt ^ RIHtHtH	t	  ! R R4      t
]! ]P                  4       ! R R]P                  4      4       tR# )	z´
Lookup a name using multiple resolvers.

Future Plans: This needs someway to specify which resolver answered
the query, or someway to specify (authority|ttl|cache behavior|more?)
)Úimplementer)ÚdeferÚ
interfaces)ÚcommonÚdnsÚerrorc                   ó,   a € ] tR t^t o R tR tRtV tR# )ÚFailureHandlerc                ó*   € Wn         W n        W0n        R # ©N)ÚresolverÚqueryÚtimeout)Úselfr   r   r   s   &&&&Ú7/usr/lib/python3/dist-packages/twisted/names/resolve.pyÚ__init__ÚFailureHandler.__init__   s   € Ø ŒØŒ
ØŽó    c                ó´   € VP                  \        P                  \        P                  \
        4       V P                  V P                  V P                  4      # r   )	Útrapr   ÚDomainErrorr   ÚTimeoutErrorÚNotImplementedErrorr   r   r   )r   Úfailures   &&r   Ú__call__ÚFailureHandler.__call__   s6   € à�‰”S—_‘_¤e×&8Ñ&8Ô:MÔNØ�}‰}˜TŸZ™Z¨¯©Ó6Ð6r   )r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r	   r	      s   ø‡ € ò÷
7ð 7r   r	   c                   ó:   a € ] tR t^t o RtR tR tRR ltRtV t	R# )ÚResolverChainz0
Lookup an address using multiple L{IResolver}s
c                óP   € \         P                  P                  V 4       Wn        R# )zQ
@type resolvers: L{list}
@param resolvers: A L{list} of L{IResolver} providers.
N)r   ÚResolverBaser   Ú	resolvers)r   r(   s   &&r   r   ÚResolverChain.__init__%   s   € ô
 	×Ñ×$Ñ$ TÔ*Ø"Žr   c                ól  € V P                   '       g*   \        P                  ! \        P                  ! 4       4      # \
        P                  ! WV4      pV P                   ^ ,          P                  WT4      pV P                   R,           F(  pVP                  \        VP                  WT4      4      pK*  	  V# )a¦  
Build a L{dns.Query} for the given parameters and dispatch it
to each L{IResolver} in C{self.resolvers} until an answer or
L{error.AuthoritativeDomainError} is returned.

@type name: C{str}
@param name: DNS name to resolve.

@type type: C{int}
@param type: DNS record type.

@type cls: C{int}
@param cls: DNS record class.

@type timeout: Sequence of C{int}
@param timeout: Number of seconds after which to reissue the query.
    When the last timeout expires, the query is considered failed.

@rtype: L{Deferred}
@return: A L{Deferred} which fires with a three-tuple of lists of
    L{twisted.names.dns.RRHeader} instances.  The first element of the
    tuple gives answers.  The second element of the tuple gives
    authorities.  The third element of the tuple gives additional
    information.  The L{Deferred} may instead fail with one of the
    exceptions defined in L{twisted.names.error} or with
    C{NotImplementedError}.
ºé   NN)
r(   r   Úfailr   r   r   ÚQueryr   Ú
addErrbackr	   )r   ÚnameÚclsÚtyper   ÚqÚdÚrs   &&&&&   r   Ú_lookupÚResolverChain._lookup-   s‚   € ð8 �~�~ˆ~Ü—:’:œe×/Ò/Ó1Ó2Ð2Ü�IŠI�d #Ó&ˆØ�N‰N˜1Õ×#Ñ# AÓ/ˆØ—‘ ×#Ð#ˆAØ—‘œ^¨A¯G©G°QÓ@ÓAŠAñ $àˆr   Nc                ó>  € V P                   '       g*   \        P                  ! \        P                  ! 4       4      # V P                   ^ ,          P                  W4      pV P                   R,           F(  pVP                  \        VP
                  W4      4      pK*  	  V# )é    r+   )r(   r   r-   r   r   ÚlookupAllRecordsr/   r	   )r   r0   r   r4   r5   s   &&&  r   r:   ÚResolverChain.lookupAllRecordsQ   st   € ð
 �~�~ˆ~Ü—:’:œe×/Ò/Ó1Ó2Ð2Ø�N‰N˜1Õ×.Ñ.¨tÓ=ˆØ—‘ ×#Ð#ˆAØ—‘œ^¨A×,>Ñ,>ÀÓNÓOŠAñ $àˆr   )r(   r   )
r   r   r   r   Ú__doc__r   r6   r:   r    r!   r"   s   @r   r%   r%      s   ø‡ € ñò#ò"÷H
ò 
r   r%   N)r<   Úzope.interfacer   Útwisted.internetr   r   Útwisted.namesr   r   r   r	   Ú	IResolverr'   r%   © r   r   Ú<module>rB      sN   ðñ
õ 'ç .ß ,Ñ ,÷	7ñ 	7ñ ˆZ×!Ñ!Ó"ô;�F×'Ñ'ó ;ó #ò;r   