ó
    ÌÅLg  ã                   óL   • S SK r S SKrS SKJrJrJr  S SKrS SKr " S S5      r	g)é    N)ÚIteratorÚOptionalÚTuplec                   óB  • \ rS rSrSS\S\4S jjrS\4S jrS\S\4S jrSS	\S\4S
 jjr	S\4S jr
S\4S jrS\4S jrS\4S jrS\4S jrS\S\4S jrSS\S   SS4S jjrS\SS4S jr\R,                  S\S\4S j5       r\R,                  S\4S j5       rSrg)ÚParseré   ÚwireÚcurrentc                 óŽ   • Xl         SU l        [        U R                   5      U l        U(       a  U R	                  U5        X l        g ©Nr   )r	   r
   ÚlenÚendÚseekÚfurthest)Úselfr	   r
   s      Ú*/usr/lib/python3/dist-packages/dns/wire.pyÚ__init__ÚParser.__init__   s1   € ØŒ	ØˆŒÜ�t—y‘y“>ˆŒÞØ�I‰I�gÔØ�ó    Úreturnc                 ó4   • U R                   U R                  -
  $ ©N)r   r
   ©r   s    r   Ú	remainingÚParser.remaining   s   € Ø�x‰x˜$Ÿ,™,Ñ&Ð&r   Úsizec                 ó0  • US:¼  d   eXR                  5       :”  a  [        R                  R                  eU R                  U R
                  U R
                  U-    nU =R
                  U-  sl        [        U R                  U R
                  5      U l        U$ r   )r   ÚdnsÚ	exceptionÚ	FormErrorr	   r
   Úmaxr   )r   r   Úoutputs      r   Ú	get_bytesÚParser.get_bytes   sq   € Ø�q‹yÐˆyØ—.‘.Ó"Ó"Ü—-‘-×)Ñ)Ð)Ø—‘˜4Ÿ<™<¨$¯,©,¸Ñ*=Ð>ˆØ�Š˜Ñ�Ü˜DŸM™M¨4¯<©<Ó8ˆŒØˆr   Úlength_sizec                 ón   • [         R                  U R                  U5      S5      nU R                  U5      $ )NÚbig©ÚintÚ
from_bytesr#   )r   r%   Úlengths      r   Úget_counted_bytesÚParser.get_counted_bytes    s*   € Ü—‘ §¡¨{Ó ;¸UÓCˆØ�~‰~˜fÓ%Ð%r   c                 ó@   • U R                  U R                  5       5      $ r   )r#   r   r   s    r   Úget_remainingÚParser.get_remaining$   s   € Ø�~‰~˜dŸn™nÓ.Ó/Ð/r   c                 óT   • [         R                  " SU R                  S5      5      S   $ )Nz!Bé   r   ©ÚstructÚunpackr#   r   s    r   Ú	get_uint8ÚParser.get_uint8'   ó!   € Ü�}Š}˜T 4§>¡>°!Ó#4Ó5°aÑ8Ð8r   c                 óT   • [         R                  " SU R                  S5      5      S   $ )Nz!Hé   r   r3   r   s    r   Ú
get_uint16ÚParser.get_uint16*   r8   r   c                 óT   • [         R                  " SU R                  S5      5      S   $ )Nz!Ié   r   r3   r   s    r   Ú
get_uint32ÚParser.get_uint32-   r8   r   c                 óL   • [         R                  U R                  S5      S5      $ )Né   r'   r(   r   s    r   Ú
get_uint48ÚParser.get_uint480   s   € Ü�~‰~˜dŸn™n¨QÓ/°Ó7Ð7r   Úformatc                 ót   • [         R                  " XR                  [         R                  " U5      5      5      $ r   )r4   r5   r#   Úcalcsize)r   rE   s     r   Ú
get_structÚParser.get_struct3   s#   € Ü�}Š}˜V§^¡^´F·O²OÀFÓ4KÓ%LÓMÐMr   NÚoriginzdns.name.Namec                 ót   • [         R                  R                  U 5      nU(       a  UR                  U5      nU$ r   )r   ÚnameÚfrom_wire_parserÚ
relativize)r   rJ   rL   s      r   Úget_nameÚParser.get_name6   s,   € Ü�x‰x×(Ñ(¨Ó.ˆÞØ—?‘? 6Ó*ˆDØˆr   Úwherec                 ón   • US:  d  XR                   :”  a  [        R                  R                  eXl        g r   )r   r   r   r    r
   )r   rQ   s     r   r   ÚParser.seek<   s)   € ð �1‹9˜§¡Ó(Ü—-‘-×)Ñ)Ð)Ø�r   c              #   óL  #   • US:¼  d   eXR                  5       :”  a  [        R                  R                  eU R                  n U R
                  U-   U l        S v •  U R
                  U R                  :w  a  [        R                  R                  e X l        g ! X l        f = f7fr   )r   r   r   r    r   r
   )r   r   Ú	saved_ends      r   Úrestrict_toÚParser.restrict_toC   s‚   é € à�q‹yÐˆyØ—.‘.Ó"Ó"Ü—-‘-×)Ñ)Ð)Ø—H‘Hˆ	ð		!Ø—|‘| dÑ*ˆDŒHÛð �|‰|˜tŸx™xÓ'Ü—m‘m×-Ñ-Ð-ð (ð !�Hø�y�Hüs   ‚AB$ÁAB ÂB$ÂB!Â!B$c              #   ód   #   •  S v •  U R                   U l        g ! U R                   U l        f = f7fr   )r   r
   r   s    r   Úrestore_furthestÚParser.restore_furthestT   s%   é € ð	)ØŠJàŸ=™=ˆD�Lø˜4Ÿ=™=ˆD�Lüs   ‚0„ ˆ0š-­0)r
   r   r   r	   )r   )r2   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úbytesr)   r   r   r#   r,   r/   r6   r;   r?   rC   Ústrr   rH   r   rO   r   Ú
contextlibÚcontextmanagerr   rV   rY   Ú__static_attributes__© r   r   r   r      s  † ñ ˜Uð  ¨Sõ  ð'˜3ô 'ð˜cð  eô ñ&¨Sð &¸õ &ð0˜uô 0ð9˜3ô 9ð9˜Cô 9ð9˜Cô 9ð8˜Cô 8ðN ð N¨ô Nñ˜x¨Ñ8ð ÀOõ ð˜#ð  $ô ð ×Ñð! ð !¨ó !ó ð!ð  ×Ñð) (ó )ó ó)r   r   )
ra   r4   Útypingr   r   r   Údns.exceptionr   Údns.namer   rd   r   r   Ú<module>rh      s%   ðó Û ß ,Ñ ,ã Û ÷N)ò N)r   