£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
3
bW	                 @   s   d Z ddlZdZdZdZdZdZeeeeedZe	dd	 ej
 D ZG d
d dejjZdd Zdd Zdd Zdd Zdd ZdS )zDNS Opcodes.    N            )QUERYIQUERYSTATUSNOTIFYUPDATEc             c   s   | ]\}}||fV  qd S )N ).0xyr   r   /usr/lib/python3.6/opcode.py	<genexpr>&   s    r   c               @   s   e Zd ZdZdS )UnknownOpcodezAn DNS opcode is unknown.N)__name__
__module____qualname____doc__r   r   r   r   r   )   s   r   c             C   sB   | j  r$t| }|dkr$|dkr$|S tj| j }|dkr>t|S )zConvert text into an opcode.

    @param text: the textual opcode
    @type text: string
    @raises UnknownOpcode: the opcode is unknown
    @rtype: int
    r      N)isdigitint_by_textgetupperr   )textvaluer   r   r   	from_text.   s    	r   c             C   s   | d@ d? S )zUExtract an opcode from DNS message flags.

    @param flags: int
    @rtype: int
    i x     r   )flagsr   r   r   
from_flagsA   s    r!   c             C   s   | d> d@ S )z`Convert an opcode to a value suitable for ORing into DNS message
    flags.
    @rtype: int
    r   i x  r   )r   r   r   r   to_flagsK   s    r"   c             C   s   t j| }|dkrt| }|S )zConvert an opcode to text.

    @param value: the opcdoe
    @type value: int
    @raises UnknownOpcode: the opcode is unknown
    @rtype: string
    N)	_by_valuer   str)r   r   r   r   r   to_textT   s    	
r%   c             C   s   t | tkS )znTrue if the opcode in flags is UPDATE.

    @param flags: DNS flags
    @type flags: int
    @rtype: bool
    )r!   r
   )r    r   r   r   	is_updatec   s    r&   )r   Zdns.exceptionZdnsr   r   r   r	   r
   r   dictitemsr#   Z	exceptionZDNSExceptionr   r   r!   r"   r%   r&   r   r   r   r   <module>   s$   
	