o
    2c                     @   sZ  d Z ddlZddlZG dd dejjZi Zi Zej	hZ
ejejejejejhZG dd dejjZdd Zd	d
 Zdd Zdd ZdddZejZejZejZejZejZejZejZejZejZej Z ej!Z!ej"Z"ej#Z#ej$Z$ej%Z%ej&Z&ej'Z'ej(Z(ej)Z)ej*Z*ej+Z+ej,Z,ej-Z-ej.Z.ej/Z/ej0Z0ej1Z1ej2Z2ej3Z3ej4Z4ej5Z5ejZej6Z6ej7Z7ej8Z8ej9Z9ej:Z:ejZej	Z	ej;Z;ej<Z<ej=Z=ej>Z>ej?Z?ejZej@Z@ejAZAejBZBejCZCejDZDejEZEejFZFejGZGejHZHejIZIejJZJejKZKejLZLejMZMejNZNejOZOejPZPejQZQejRZRejSZSejTZTejUZUejVZVejWZWejXZXejYZYejZZZej[Z[ej\Z\ej]Z]ej^Z^dS )zDNS Rdata Types.    Nc                   @   sp  e Zd ZdZdZdZdZdZdZdZ	dZ
dZd	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"d Z#d!Z$d"Z%d#Z&d$Z'd%Z(d&Z)d'Z*d(Z+d)Z,d*Z-d+Z.d,Z/d-Z0d.Z1d/Z2d0Z3d1Z4d2Z5d3Z6d4Z7d5Z8d6Z9d7Z:d8Z;d9Z<d:Z=d;Z>d<Z?d=Z@d>ZAd?ZBd@ZCdAZDdBZEdCZFdDZGdEZHdFZIdGZJdHZKdIZLdJZMdKZNdLZOePdMdN ZQePdOdP ZRePdQdR ZSePdSdT ZTdUS )V	RdataTypezDNS Rdata Typer                           	   
                                                               !   #   $   %   &   '   )   *   +   ,   -   .   /   0   1   2   3   4   5   7   8   ;   <   =   >   @   A   c   g   l   m                           i  i  i  i   i  c                 C      dS )Ni   clsrI   rI   C/var/www/html/gps/gps/lib/python3.10/site-packages/dns/rdatatype.py_maximumf      zRdataType._maximumc                 C   rH   )NtyperI   rJ   rI   rI   rL   _short_namej   rN   zRdataType._short_namec                 C   rH   )NTYPErI   rJ   rI   rI   rL   _prefixn   rN   zRdataType._prefixc                 C   s   t S )N)UnknownRdatatyperJ   rI   rI   rL   _unknown_exception_classr   rN   z"RdataType._unknown_exception_classN)U__name__
__module____qualname____doc__TYPE0NONEANSMDMFCNAMESOAMBMGMRNULLWKSPTRHINFOMINFOMXTXTRPAFSDBX25ISDNRTNSAPNSAP_PTRSIGKEYPXGPOSAAAALOCNXTSRVNAPTRKXCERTA6DNAMEOPTAPLDSSSHFPIPSECKEYRRSIGNSECDNSKEYDHCIDNSEC3
NSEC3PARAMTLSASMIMEAHIPNINFOCDSCDNSKEY
OPENPGPKEYCSYNCSVCBHTTPSSPFUNSPECEUI48EUI64TKEYTSIGIXFRAXFRMAILBMAILAANYURICAAAVCAMTRELAYTADLVclassmethodrM   rP   rR   rT   rI   rI   rI   rL   r      s    


r   c                   @   s   e Zd ZdZdS )rS   z$DNS resource record type is unknown.N)rU   rV   rW   rX   rI   rI   rI   rL   rS      s    rS   c                 C   sD   |   dd} zt| W S  ty!   t| }|r | Y S  w )a  Convert text into a DNS rdata type value.

    The input text can be a defined DNS RR type mnemonic or
    instance of the DNS generic type syntax.

    For example, "NS" and "TYPE2" will both result in a value of 2.

    Raises ``dns.rdatatype.UnknownRdatatype`` if the type is unknown.

    Raises ``ValueError`` if the rdata type value is not >= 0 and <= 65535.

    Returns an ``int``.
    -_)upperreplacer   	from_textrS   _registered_by_textget)textregistered_typerI   rI   rL   r      s   
r   c                 C   s2   t | }|drt| }|r|}|ddS )a  Convert a DNS rdata type value to text.

    If the value has a known mnemonic, it will be used, otherwise the
    DNS generic type syntax will be used.

    Raises ``ValueError`` if the rdata type value is not >= 0 and <= 65535.

    Returns a ``str``.
    rQ   r   r   )r   to_text
startswith_registered_by_valuer   r   )valuer   registered_textrI   rI   rL   r      s   


r   c                 C   s    d|   ko	dkn  p| t v S )zTrue if the specified type is a metatype.

    *rdtype* is an ``int``.

    The currently defined metatypes are TKEY, TSIG, IXFR, AXFR, MAILA,
    MAILB, ANY, and OPT.

    Returns a ``bool``.
    rG      )
_metatypesrdtyperI   rI   rL   is_metatype   s    r   c                 C   s   | t v rdS dS )a  Is the specified type a singleton type?

    Singleton types can only have a single rdata in an rdataset, or a single
    RR in an RRset.

    The currently defined singleton types are CNAME, DNAME, NSEC, NXT, and
    SOA.

    *rdtype* is an ``int``.

    Returns a ``bool``.
    TF)_singletonsr   rI   rI   rL   is_singleton   s   r   Fc                 C   s&   | t |< |t| < |rt|  dS dS )a  Dynamically register an rdatatype.

    *rdtype*, an ``int``, the rdatatype to register.

    *rdtype_text*, a ``str``, the textual form of the rdatatype.

    *is_singleton*, a ``bool``, indicating if the type is a singleton (i.e.
    RRsets of the type can have only one member.)
    N)r   r   r   add)r   rdtype_textr   rI   rI   rL   register_type   s
   r   )F)_rX   dns.enumdnsdns.exceptionenumIntEnumr   r   r   r   r   r`   rx   r~   r   r_   r   	exceptionDNSExceptionrS   r   r   r   r   r   rY   rZ   r[   r\   r]   r^   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   ry   rz   r{   r|   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rI   rI   rI   rL   <module>   s   _

