+
    üÐj¿  ã                   ó„   € R t ^ RIt^ RIt^ RIHtHt ^ RIHtHtH	t	H
t
 ^ RIHt  ! R R]P                  4      tR tR tR# )	z
Domain Name Server
N)ÚinternetÚservice)Ú	authorityÚdnsÚ	secondaryÚserver)Úusagec                   óÆ   a € ] tR t^t o . RO. RO. RO. RO.t. RO. RO. RO.t]P                  ! R]P                  ! 4       /R7      t	Rt
RtR tR tR tR tR tR	 tR
tV tR# )ÚOptionsÚ	interfaceN)Ú
optActionsc                óx   € \         P                  P                  V 4       ^ V R&   . V n        . V n        . V n        R# )é    ÚverboseN)r   r
   Ú__init__Ú	bindfilesÚ	zonefilesÚsecondaries©Úselfs   &Ú3/usr/lib/python3/dist-packages/twisted/names/tap.pyr   ÚOptions.__init__+   s3   € Ü�‰×Ñ˜tÔ$ØˆˆY‰ØˆŒØˆŒØˆÖó    c                óÀ   € \         P                  P                  V4      '       g   \        P                  ! VR,           4      hV P
                  P                  V4       R# )z7Specify the filename of a Python syntax zone definitionú: No such fileN)ÚosÚpathÚexistsr   Ú
UsageErrorr   Úappend©r   Úfilenames   &&r   Ú
opt_pyzoneÚOptions.opt_pyzone2   ó>   € ä�w‰w�~‰~˜h×'Ò'Ü×"Ò" 8Ð.>Õ#>Ó?Ð?Ø�‰×Ñ˜hÖ'r   c                óÀ   € \         P                  P                  V4      '       g   \        P                  ! VR,           4      hV P
                  P                  V4       R# )z6Specify the filename of a BIND9 syntax zone definitionr   N)r   r   r   r   r   r   r   r    s   &&r   Úopt_bindzoneÚOptions.opt_bindzone8   r$   r   c                óÞ  € VP                  R^4      p\        V4      ^8w  d   \        P                  ! R4      hV^ ,          P                  R4      p\        V4      ^8X  d   V^ ,          \        P
                  3pM \        V^,          4      pT^ ,          T3pV P                  P                  W2^,          .34       R#   \         d#    \        P                  ! RT^,          : 24      hi ; i)zgAct as secondary for the specified domain, performing
zone transfers from the specified IP (IP/domain)
Ú/z-Argument must be of the form IP[:port]/domainÚ:z$Specify an integer port number, not N)
ÚsplitÚlenr   r   r   ÚPORTÚintÚ
ValueErrorr   r   )r   Ú	ip_domainÚargsÚaddressÚports   &&   r   Úopt_secondaryÚOptions.opt_secondary>   sÒ   € ð �‰˜s AÓ&ˆÜˆt‹9˜Œ>Ü×"Ò"Ð#RÓSÐSØ�q•'—-‘- Ó$ˆÜˆw‹<˜1ÔØ˜q•z¤3§8¡8Ð,‰GðÜ˜7 1�:“�ð
 ˜q•z 4Ð(ˆGØ×Ñ×Ñ °­7¨)Ð 4Ö5øô ô Ü×&Ò&Ø:¸7À1½:¹.ÐIóð ðús   Á<B? Â?-C,c                ó0   € V R;;,          ^,          uu&   R# )zIncrement verbosity levelr   N© r   s   &r   Úopt_verboseÚOptions.opt_verboseR   s   € àˆY�˜1Õ�r   c                ó  € V R ,          '       d   RV R&   . V n         . V n        V P                   F3  p V P                  P                  \        P
                  ! V4      4       K5  	  V P                   F3  p V P                  P                  \        P                  ! V4      4       K5  	  V P                   Fv  p\        P                  P                   ! V!  pV P                   P                  V4       V P                  P                  V P                   R,          P#                  4       4       Kx  	   \%        V R,          4      V R&   R#   \         d4    \        P                  ! 4        \        P                  ! RT,           4      hi ; i  \         d4    \        P                  ! 4        \        P                  ! RT,           4      hi ; i  \&         d.    \        P                  ! RP)                  T R,          4      4      hi ; i)úresolv-confTÚ	recursivezInvalid syntax in r3   zInvalid port: {!r}Néÿÿÿÿ)ÚsvcsÚzonesr   r   r   ÚPySourceAuthorityÚ	ExceptionÚ	tracebackÚ	print_excr   r   r   ÚBindAuthorityr   r   ÚSecondaryAuthorityServiceÚfromServerAddressAndDomainsÚgetAuthorityr.   r/   Úformat)r   ÚfÚsvcs   &  r   ÚpostOptionsÚOptions.postOptionsV   s�  € Ø�×ÔØ $ˆD�ÑàˆŒ	ØˆŒ
Ø—”ˆAðAØ—
‘
×!Ñ!¤)×"=Ò"=¸aÓ"@ÖAñ  ð —”ˆAðAØ—
‘
×!Ñ!¤)×"9Ò"9¸!Ó"<Ö=ñ  ð ×!Ô!ˆAÜ×5Ñ5×QÒQÐSTÑUˆCØ�I‰I×Ñ˜SÔ!Ø�J‰J×Ñ˜dŸi™i¨�m×8Ñ8Ó:Ö;ñ "ð	NÜ˜t F�|Ó,ˆD�‹Løô ô AÜ×#Ò#Ô%Ü×&Ò&Ð';¸aÕ'?Ó@Ð@ðAûô ô AÜ×#Ò#Ô%Ü×&Ò&Ð';¸aÕ'?Ó@Ð@ðAûô ô 	NÜ×"Ò"Ð#7×#>Ñ#>¸tÀF½|Ó#LÓMÐMð	Nús#   ³/EÁ6/FÄ0G	 Å>FÆ>GÇ	8H)r   r   r>   r   r?   )r   ÚiÚ zThe interface to which to bind)r3   ÚpÚ53zThe port on which to listen)r;   NNz6Override location of resolv.conf (implies --recursive))ú
hosts-fileNNz!Perform lookups with a hosts file)ÚcacheÚczEnable record caching)r<   ÚrzPerform recursive lookups)r   ÚvzLog verbosely)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚoptParametersÚoptFlagsr   ÚCompletionsÚCompleteNetInterfacesÚcompDatar?   r   r   r"   r&   r4   r8   rK   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r
   r
      sƒ   ø‡ € â@Ú:ò	
ò 	Hð
€Mò 	0Ú7Ú)ð€Hð × Ò Ø ×!<Ò!<Ó!>Ð?ô€Hð €EØ€Iòò(ò(ò6ò(÷Nð Nr   r
   c                ól  € ^ RI HpHpHp . . rTV R,          '       d)   VP	                  VP                  V R,          R7      4       V R,          '       d)   VP	                  VP                  V R,          R7      4       V R,          '       d)   VP	                  VP                  V R,          R	7      4       WE3# )
a	  
Build DNS resolver instances in an order which leaves recursive
resolving as a last resort.

@type config: L{Options} instance
@param config: Parsed command-line configuration

@return: Two-item tuple of a list of cache resovers and a list of client
    resolvers
)rR   ÚclientÚhostsrR   r   )r   rQ   )Úfiler<   r;   )Ú
resolvconf)Útwisted.namesrR   rc   rd   r   ÚCacheResolverÚResolverÚcreateResolver)ÚconfigrR   rc   rd   ÚcaÚcls   &     r   Ú_buildResolversrn   r   s‘   € ÷ 3Ñ2à�ˆØˆg‡„Ø
�	‰	�%×%Ñ%¨f°YÕ.?Ð%Ó@ÔAØˆl×ÔØ
�	‰	�%—.‘. f¨\Õ&:�.Ó;Ô<Øˆk×ÔØ
�	‰	�&×'Ñ'°6¸-Õ3HÐ'ÓIÔJØˆ6€Mr   c                 óÊ  € \        V 4      w  r\        P                  ! V P                  WV R ,          4      p\        P
                  ! V4      p^ Vn        \        P                  ! 4       p\        P                  V3\        P                  V33 F.  w  rgV! V R,          WpR,          R7      pVP                  V4       K0  	  V P                   F  p	V	P                  V4       K  	  V# )r   r3   r   )r   )rn   r   ÚDNSServerFactoryr?   r   ÚDNSDatagramProtocolÚnoisyr   ÚMultiServicer   Ú	TCPServerÚ	UDPServerÚsetServiceParentr>   )
rk   rl   rm   rI   rO   ÚretÚklassÚargÚsrJ   s
   &         r   ÚmakeServicer{   ‰   s¾   € Ü˜VÓ$�F€Bä×Ò §¡¨b°f¸YÕ6GÓH€AÜ×Ò Ó"€AØ€A„GÜ
×
Ò
Ó
 €CÜ ×*Ñ*¨AÐ.´×1CÑ1CÀQÐ0GÓH‰
ˆÙ�&˜•. #¸Õ1DÔEˆØ	×Ñ˜3Öñ Ið �{Œ{ˆØ×Ñ˜SÖ!ñ à€Jr   )Ú__doc__r   rB   Útwisted.applicationr   r   rg   r   r   r   r   Útwisted.pythonr   r
   rn   r{   r7   r   r   Ú<module>r      s=   ðñ
ó 
Û ç 1ß ;Ó ;Ý  ô^Nˆe�m‰mô ^NòBô.r   