+
    niS                     N    ^ RI t ^ RIt^ RIHtHtHt ^ RIt^ RIt ! R R4      t	R# )    N)IteratorOptionalTuplec                   h  a  ] tR t^t o RtR V 3R lR lltV 3R lR ltV 3R lR ltR!V 3R lR	 lltV 3R
 lR lt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltR"V 3R lR lltV 3R lR lt]P$                  V 3R lR l4       t]P$                  V 3R lR l4       tRtV tR# )#Parserz)Helper class for parsing DNS wire format.c                &   < V ^8  d   QhRS[ RS[/# )   wirecurrent)bytesint)format__classdict__s   "bC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO\maestro-backend\venv\Lib\site-packages\dns/wire.py__annotate__Parser.__annotate__   s        U  S      c                    Wn         ^ V n        \        V P                   4      V n        V'       d   V P	                  V4       W n        R# )zInitialize a Parser

*wire*, a ``bytes`` contains the data to be parsed, and possibly other data.
Typically it is the whole message or a slice of it.

*current*, an `int`, the offset within *wire* where parsing should begin.
N)r
   r   lenendseekfurthest)selfr
   r   s   &&&r   __init__Parser.__init__   s3     	tyy>IIgr   c                    < V ^8  d   QhRS[ /# r	   returnr   )r   r   s   "r   r   r      s     ' '3 'r   c                <    V P                   V P                  ,
          # N)r   r   r   s   &r   	remainingParser.remaining   s    xx$,,&&r   c                &   < V ^8  d   QhRS[ RS[/# r	   sizer   r   r   )r   r   s   "r   r   r       s      c e r   c                D   V^ 8  g   Q hWP                  4       8  d   \        P                  P                  hV P                  V P
                  V P
                  V,            pV ;P
                  V,          un        \        V P                  V P
                  4      V n        V# r   )r#   dns	exception	FormErrorr
   r   maxr   )r   r'   outputs   && r   	get_bytesParser.get_bytes    sq    qyy..""--)))4<<$,,*=>DMM4<<8r   c                &   < V ^8  d   QhRS[ RS[/# )r	   length_sizer   r(   )r   r   s   "r   r   r   )   s     & &S & &r   c                n    \         P                  V P                  V4      R 4      pV P                  V4      # )bigr   
from_bytesr0   )r   r3   lengths   && r   get_counted_bytesParser.get_counted_bytes)   s*    { ;UC~~f%%r   c                    < V ^8  d   QhRS[ /# r   )r   )r   r   s   "r   r   r   -   s     0 0u 0r   c                @    V P                  V P                  4       4      # r!   )r0   r#   r"   s   &r   get_remainingParser.get_remaining-   s    ~~dnn.//r   c                    < V ^8  d   QhRS[ /# r   r   )r   r   s   "r   r   r   0   s     9 93 9r   c                \    \         P                  ! R V P                  ^4      4      ^ ,          # )z!Bstructunpackr0   r"   s   &r   	get_uint8Parser.get_uint80   !    }}T4>>!#45a88r   c                    < V ^8  d   QhRS[ /# r   r   )r   r   s   "r   r   r   3        9 9C 9r   c                \    \         P                  ! R V P                  ^4      4      ^ ,          # )z!HrA   r"   s   &r   
get_uint16Parser.get_uint163   rF   r   c                    < V ^8  d   QhRS[ /# r   r   )r   r   s   "r   r   r   6   rH   r   c                \    \         P                  ! R V P                  ^4      4      ^ ,          # )z!IrA   r"   s   &r   
get_uint32Parser.get_uint326   rF   r   c                    < V ^8  d   QhRS[ /# r   r   )r   r   s   "r   r   r   9   s     8 8C 8r   c                L    \         P                  V P                  ^4      R4      # )   r5   r6   r"   s   &r   
get_uint48Parser.get_uint489   s    ~~dnnQ/77r   c                &   < V ^8  d   QhRS[ RS[/# )r	   r   r   )strr   )r   r   s   "r   r   r   <   s     N N N Nr   c                t    \         P                  ! WP                  \         P                  ! V4      4      4      # r!   )rB   rC   r0   calcsize)r   r   s   &&r   
get_structParser.get_struct<   s#    }}V^^FOOF4K%LMMr   Nc                2   < V ^8  d   QhRS[ R,          RR/# )r	   originzdns.name.Namer   )r   )r   r   s   "r   r   r   ?   s       x8 O r   c                v    \         P                  P                  V 4      pV'       d   VP                  V4      pV# r!   )r+   namefrom_wire_parser
relativize)r   r\   r^   s   && r   get_nameParser.get_name?   s,    xx((.??6*Dr   c                $   < V ^8  d   QhRS[ RR/# )r	   wherer   Nr   )r   r   s   "r   r   r   E   s      # $ r   c                t    V^ 8  g   WP                   8  d   \        P                  P                  hWn        R# r   N)r   r+   r,   r-   r   )r   rd   s   &&r   r   Parser.seekE   s)     19(--)))r   c                &   < V ^8  d   QhRS[ RS[/# r&   )r   r   )r   r   s   "r   r   r   M   s     ! ! ! !r   c              #  \  "   V^ 8  g   Q hWP                  4       8  d   \        P                  P                  hV P                  p V P
                  V,           V n        Rx  V P
                  V P                  8w  d   \        P                  P                  h W n        R#   Y n        i ; i5irf   )r#   r+   r,   r-   r   r   )r   r'   	saved_ends   && r   restrict_toParser.restrict_toL   s     qyy..""--)))HH			!||d*DH ||txx'mm--- ( !HyHs   AB,AB! B,!B))B,c                    < V ^8  d   QhRS[ /# r   )r   )r   r   s   "r   r   r   ^   s     ) )( )r   c              #  f   "    R x  V P                   V n        R #   T P                   T n        i ; i5ir!   )r   r   r"   s   &r   restore_furthestParser.restore_furthest]   s%     	)J==DL4==DLs   1 1.1)r   r   r   r
   r*   )   r!   )__name__
__module____qualname____firstlineno____doc__r   r#   r0   r9   r=   rD   rJ   rN   rS   rY   ra   r   
contextlibcontextmanagerrk   ro   __static_attributes____classdictcell__)r   s   @r   r   r      s     3   ' ' & &0 09 99 99 98 8N N   ! !  ) )r   r   )
rw   rB   typingr   r   r   dns.exceptionr+   dns.namer    r   r   <module>r      s%      , ,  W) W)r   