
    u                     6   d Z dZdZdZdZdZdZdZdZeeeeeeedZ	d	eiZ
e	j                         D  ci c]  \  } }|| 
 c}} Ze
j                         D  ci c]  \  } }|| 
 c}} Zd
 Z ee      Z ee      Zd Zd Zd Zd Zd Zd Zyc c}} w c c}} w )zDNS Message Flags.i   i   i                )QRAATCRDRAADCDDOc                 x    t        | j                               }|j                          |j                          |S )N)listitemssortreverse)tableorders     lib/third_party/dns/flags.py_order_flagsr   B   s)    E	JJL	MMOL    c                 d    d}| j                         }|D ]  }|||j                            z  } |S )N    )splitupper)textr   flagstokensts        r   
_from_textr    M   s6    EZZ\Faggi(( Lr   c                 p    g }|D ]  \  }}| |z  dk7  s|j                  |       ! dj                  |      S )Nr    )appendjoin)r   r   r   
text_flagskvs         r   _to_textr(   U   s?    J119>a   88Jr   c                 "    t        | t              S )zgConvert a space-separated list of flag text values into a flags
    value.

    Returns an ``int``
    )r    _by_textr   s    r   	from_textr,   ]   s     dH%%r   c                 ,    t        | t        t              S )zhConvert a flags value into a space-separated list of flag text
    values.

    Returns a ``text``.
    )r(   	_by_value_flags_orderr   s    r   to_textr1   g   s     E9l33r   c                 "    t        | t              S )zqConvert a space-separated list of EDNS flag text values into a EDNS
    flags value.

    Returns an ``int``
    )r    _edns_by_textr+   s    r   edns_from_textr4   q   s     dM**r   c                 ,    t        | t        t              S )zsConvert an EDNS flags value into a space-separated list of EDNS flag
    text values.

    Returns a ``text``.
    )r(   _edns_by_value_edns_flags_orderr0   s    r   edns_to_textr8   {   s     E>+<==r   N)__doc__r   r   r   r	   r
   r   r   r   r*   r3   r   r.   r6   r   r/   r7   r    r(   r,   r1   r4   r8   )xys   00r   <module>r<      s   $ 
 
  





 	" 'nn./.daQT./	#0#6#6#89#841a!Q$#89 I& 0  &4+>} 09s   BB