
    gm                        S r SSKrSSKrSSKJrJrJrJrJrJ	r	J
r
  SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKr " S S\R0                  R2                  5      r " S S\R0                  R2                  5      rS r\	\R:                  R<                  \\R>                  R@                     \\R>                  R@                     \\   \!\"\!\"4   r#S	 r$ " S
 S5      r% " S S\RL                  RN                  5      r( " S S\RL                  RR                  5      r*SS\RV                  RX                  \RV                  RX                  SSS\R>                  RZ                  S4	S\S\\
\R>                  R@                  \.4      S\\!   S\\
\RV                  R^                  \.4      S\
\RV                  R^                  \.4   S\\
\R`                  Rb                  \.4      S\\
\!\.4      S\\R>                  Rd                     S\\
\R>                  R@                  \.4      S\"S\\Rf                  Rh                     4S jjr5g)z
DNS Zones.    N)AnyIterableListOptionalSetTupleUnionc                       \ rS rSrSrSrg)UnknownOrigin&   zUnknown origin N__name__
__module____qualname____firstlineno____doc____static_attributes__r       E/home/matz/Project1/venv/lib/python3.13/site-packages/dns/zonefile.pyr   r   &   s    r   r   c                       \ rS rSrSrSrg)CNAMEAndOtherData*   z!A node has a CNAME and other datar   Nr   r   r   r   r   r   *   s    +r   r   c                    [         R                  R                  R                  U5      nU R	                  U5      nUc  g UR                  5       nU[         R                  R                  R                  :X  a3  U[         R                  R                  R                  :X  a  [        S5      eU[         R                  R                  R                  :X  a4  U[         R                  R                  R                  :X  a  [        S5      eg g )Nz1rdataset type is not compatible with a CNAME nodez9CNAME rdataset is not compatible with a regular data node)	dnsnodeNodeKindclassify_rdatasetget_nodeclassifyCNAMEREGULARr   )txnnamerdatasetrdataset_kindr   	node_kinds         r   _check_cname_and_other_datar(   .   s    HH%%77AM<<D|ISXX&&,,,SXX..666 STTSXX&&...SXX..444G
 	
 5 	/r   c                 \    U R                  5       n U R                  S5      (       d  SU -   n U $ )N$)upper
startswith)ss    r   _upper_dollarizer.   Q   s*    		A<<!GHr   c                      \ rS rSrSr       SS\R                  R                  S\R                  R                  S\R                  R                  S\S\\\\   4   S	\\R"                  R$                     S
\\   S\\R                  R                     S\\R(                  R*                     S\\   4S jjrS rS rS rS\S\\\\\\4   4S jrS rSS jrSrg)ReaderX   z(Read a DNS zone file into a transaction.Ntokrdclassr#   allow_includeallow_directives
force_name	force_ttlforce_rdclassforce_rdtypedefault_ttlc                 h   Xl         UR                  R                  5       u  U l        U l        nU R                  U l        SU l        SU l        Ub  Un
U
c  SU l        SU l	        OXl        SU l	        U R
                  U l
        X l        X0l        / U l        S U l        U   USL a,  1 SkU l        U(       a  U R                  R!                  S5        O,USL a  [#        5       U l        O[#        S U 5       5      U l        X`l        Xpl        Xl        Xl        U R                  R-                  [.        5        g )Nr   FT>   $TTL$ORIGIN	$GENERATE$INCLUDEc              3   8   #    U  H  n[        U5      v   M     g 7fN)r.   ).0ds     r   	<genexpr>"Reader.__init__.<locals>.<genexpr>   s     )XGW!*:1*=*=GWs   )r2   managerorigin_informationzone_origin
relativizecurrent_originlast_ttllast_ttl_knownr:   default_ttl_known	last_namezone_rdclassr#   saved_statecurrent_fileallowed_directivesaddsetr6   r7   r8   r9   check_put_rdatasetr(   )selfr2   r3   r#   r4   r5   r6   r7   r8   r9   r:   _s               r   __init__Reader.__init__[   s    141O1O1Q.	4?A"..# #K D%*D"*%)D",,#13+/t#&FD#''++J7& '*eD# '*)XGW)X&XD#$"*(##$?@r   c                 h     U R                   R                  5       nUR                  5       (       a  g M2  rA   )r2   getis_eol_or_eofrV   tokens     r   	_eat_lineReader._eat_line   s+    HHLLNE""$$ r   c                     U R                   R                  5       nUR                  5       (       d  [        R                  R
                  eU$ rA   )r2   r[   is_identifierr   	exceptionSyntaxErrorr]   s     r   _get_identifierReader._get_identifier   s5    ""$$--+++r   c           	      
   SnU R                   b  U R                   nGO U R                  c  [        eU R                  R	                  SS9nUR                  5       (       d+  U R                  R                  XR                  5      U l        OKU R                  R	                  5       nUR                  5       (       a  gU R                  R                  U5        U R                  nUR                  U R                  5      (       d  U R                  5         gU R                  (       a  UR                  U R                  5      nU R                  b  U R                  nX0l        SU l        OKU R#                  5       nSn [$        R&                  R)                  UR*                  5      nX0l        SU l        SnU R.                  b  U R.                  nOhU R#                  5       n [$        R0                  R)                  UR*                  5      nX@R8                  :w  a  [$        R2                  R5                  S5      eUcK  U R#                  5       nSn [$        R&                  R)                  UR*                  5      nX0l        SU l        SnU R>                  b  U R>                  nO:U R#                  5       n [$        R@                  R)                  UR*                  5      n [$        RB                  R)                  UUU R                  U R                  U R                  U R                  5      nU R:                  (       dE  U[$        R@                  RJ                  :X  a'  URL                  U l        SU l        Uc  URL                  nUc  [$        R2                  R5                  S
5      eU RN                  RQ                  X#U5        g! [$        R&                  R,                   a    U R                  R                  U5         GNBf = f! [$        R2                  R4                   a    e [6         a+    U R8                  nU R                  R                  U5         GNDf = f! [$        R&                  R,                   aZ    U R:                  (       a  U R<                  nOU R                   (       a  U R                  nU R                  R                  U5         GNCf = f! [6         a.    [$        R2                  R5                  SUR*                   S35      ef = f! [$        R2                  R4                   a    e [6         aR    [D        RF                  " 5       SS u  px[$        R2                  R5                  S[I        U5       S	[I        U5       35      ef = f)z&Process one line from a DNS zone file.NT)want_leadingRR class is not zone's classunknown rdatatype ''   caught exception : Missing default TTL value))r6   rJ   r   r2   r[   is_whitespaceas_namerN   r\   ungetis_subdomainrH   r_   rI   r7   rK   rL   re   r   ttl	from_textvalueBadTTLr8   
rdataclassrc   rd   	ExceptionrO   rM   r:   r9   	rdatatyperdatasysexc_infostrSOAminimumr#   rS   )	rV   r^   r$   rt   r3   rdtyperdtyvas	            r   _rr_lineReader._rr_line   sA   ??&??D""*##HHLLdL3E&&((!%!1!1%9L9L!M&&((u%>>D$$T%5%566 t'7'78 >>%..CM"&D((*EC&gg''4 #&*#
 )((G((*E&..225;;? +++mm//0NOO;((*EC
&gg''4 #&*# (&&F((*EV00=	V$$##  B( %%&CMM4E4E*E  "zzD%)D"{jj ;--++,GHHT#a 77>> &u%& ==,,  &++u%& 77>> &))**C((--Cu%&  Vmm//2Eekk]RS0TUUV }}(( 	 	V ||~bq)HR--++.?By3r7),TUU	VsR   88N6 )O6 8Q +)S AT 69O32O36AQ	Q	A4SS8S?A:U<sidereturnc                    [         R                  " S5      n[         R                  " S5      n[         R                  " S5      nSnSnSnSnSn	UR                  U5      n
U
(       a  U
R                  5       u  pVpxn	US:X  a  SnOmUR                  U5      nU(       a   UR                  5       u  pVnUS:X  a  SnSnSn	O5UR                  U5      nU(       a  UR                  5       u  pVpxUS:X  a  SnSn	[	        U5      n[	        U5      nUS;  a"  [
        R                  R                  S	U 35      eU	S
;  a"  [
        R                  R                  SU	 35      eXVXU	4$ )Nz"^.*\$({(\+|-?)(\d+),(\d+),(.)}).*$z^.*\$({(\+|-?)(\d+)}).*$z^.*\$({(\+|-?)(\d+),(\d+)}).*$ +0rC   )r   -zinvalid offset sign )rC   oxXnNzinvalid type )recompilematchgroupsintr   rc   rd   )rV   r   is_generate1is_generate2is_generate3modsignoffsetwidthbaseg1g2g3ioffsetiwidths                  r   _parse_modifyReader._parse_modify  sT    zz"GHzz"=>zz"CD %-/YY[*Cvdrz##D)B$&IIK!62:D!''-/1yy{,Cvrz"Df+Uz!--++.B4&,IJJ55--++mD6,BCC'4//r   c           
         ^ U R                   c  [        eU R                  R                  5       n [        R
                  R                  UR                  5      u  p#nU R                  R                  5       nUR                  5       (       d  [        R                  R                  e  UR                  nU R                  R                  5       nUR                  5       (       d  [        R                  R                  e  [        R                  R                  UR                  5      nX`l        SU l        U R                  R                  5       nUR                  5       (       d  [        R                  R                  e  [        R$                  R                  UR                  5      nU R                  R                  5       nUR                  5       (       d  [        R                  R                  e XpR&                  :w  a  [        R                  R                  S5      e [        R(                  R                  UR                  5      nU R                  R                  5       nUR                  5       (       d  [        R                  R                  e UR                  n	S[*        S[,        S	[*        S
[*        4S jn
S[*        S[,        S[*        S
[,        4U4S jjmU R/                  U5      u  ppnU R/                  U	5      u  nnnnn[1        X#S-   U5       GHb  nU
" UX5      nU
" UUU5      nT" UX5      nT" UUU5      nUR3                  SU 3U5      nU	R3                  SU 3U5      n[        R4                  R                  UU R                   U R                  R6                  5      U l        U R8                  nUR;                  U R<                  5      (       d  U R?                  5           gU R@                  (       a  URA                  U R<                  5      n [        RB                  R                  UUUU R                   U R@                  U R<                  5      nU RH                  RK                  UWU5        GMe     g! [         a    [        R                  R                  ef = f! [         a    [        R                  R                  ef = f! [        R                  R                   a    U R                  (       d0  U R                   (       d  [        R                  R                  S5      eU R                   (       a  U R"                  n GNU R                  (       a  U R                  n GNf = f! [        R                  R                   a    [        R                  R                  e[         a    U R&                  n GNf = f! [         a.    [        R                  R                  SUR                   S35      ef = f! [        R                  R                   a    e [         aS    [D        RF                  " 5       SS u  nn[        R                  R                  S[-        U5       S[-        U5       35      ef = f)zHProcess one line containing the GENERATE statement from a DNS
zone file.NTro   ri   rj   rk   counteroffset_signr   r   c                      US:X  a  US-  nX-   $ )z0Calculate the index from the counter and offset.r   r   )r   r   r   s      r   _calculate_index/Reader._generate_line.<locals>._calculate_index  s    c!"##r   indexr   r   c                    > US;   a  [        X5      R                  U5      $ T" U SU5      nSR                  USSS2   5      SU nUS:X  a  UR                  5       nU$ )zJFormat the index with the given base, and zero-fill it
to the given width.)rC   r   r   r   r   .Nr   r   )formatzfilljoinr+   )r   r   r   hexanibbles_format_indexs        r   r   ,Reader._generate_line.<locals>._format_index  sh     ++e*0077 !U3DhhtDbDz*6E2Gs{!--/Nr      r*   rl   rm   rn   )&rJ   r   r2   r[   r   grangeru   rv   rb   rc   rd   ry   rt   rK   rL   rw   rM   r:   rx   rO   rz   r   r~   r   rangereplacer$   
idna_codecrN   rs   rH   r_   rI   r{   r|   r}   r#   rS   ) rV   r^   startstopsteplhsrt   r3   r   rhsr   lmodlsignloffsetlwidthlbasermodrsignroffsetrwidthrbaseilindexrindexlzfindexrzfindexr$   r{   r   r   r   r   s                                   @r   _generate_lineReader._generate_line>  s&    &	, #

 4 4U[[ AEHHLLNE&&((mm/// )	,++CHHLLNE&&((mm/// )	$''##EKK0CM"&DHHLLNE&&((mm/// )	(nn..u{{;GHHLLNE&&((mm/// ) '''--++,JKK	R]],,U[[9FHHLLNE&&((mm/// ) kk	$c 	$ 	$S 	$S 	$	 	C 	 	 	 /3.@.@.E+We.2.@.@.E+eWfeuQh-A &a8F%a8F$VU;H$VUF;H;;4&z84DKK!D6
H5E XX//d))488+>+>DN >>D$$T%5%566 t'7'78YY((''OO$$, HHLLsB'[ .Q  	,--+++	,  	,--+++	, ww~~ 	$''4+A+Amm//0KLL%%&&$$mm	$ }}(( 	,--+++ 	(''G	(  	R--++.A%++a,PQQ	Rt ==,,  	 <<>"1-Rmm//'By3r7)< 	sb   A5R  'AR( >A?S ?A2U3 !A2W AX %R%(%SA<U0U0/U03AWW8W?A;Y=c           
      
     U R                   R                  SS5      nUR                  5       (       a  U R                  b  U R                  R	                  5         [        U R                  5      S:  aN  U R                  R                  S5      u  U l         U l        U l	        U l        U l
        U l        U l        U l        M  gUR                  5       (       a  M  UR                  5       (       a  U R                   R!                  5         GM
  UR"                  S   S:X  Ga  [        U R$                  5      S:  Gak  UR"                  R'                  5       nX R$                  ;  a#  [(        R*                  R-                  SU S35      eUS:X  a  U R                   R                  5       nUR/                  5       (       d  [(        R*                  R-                  S	5      e[(        R0                  R3                  UR"                  5      U l        SU l        U R                   R!                  5         GOwUS
:X  a~  U R                   R5                  5       U l        U R                   R!                  5         U R6                  c  U R                  U l        U R8                  R;                  U R                  5        GOUS:X  Ga  U R                   R                  5       nUR"                  nU R                   R                  5       nUR/                  5       (       ad  [(        R<                  R3                  UR"                  U R                  U R                   R>                  5      nU R                   R!                  5         O@URA                  5       (       d  [(        R*                  R-                  S5      eU R                  nU R                  RC                  U R                   U R                  U R                  U R                  U R                  U R                  U R                  U R                  45        [E        U5      U l        [(        RF                  RI                  U R                  U5      U l         X@l        O:US:X  a  U RK                  5         O#[(        R*                  R-                  SU S35      eGM  U R                   RM                  U5        U RO                  5         GM  ! [(        R*                  R,                   at  nU R                   RQ                  5       u  p6Uc  Sn[(        R*                  R-                  SX6U4-  5      n[R        RT                  " 5       S   nURW                  U5      SeSnAff = f)zRead a DNS zone file and build a zone object.

@raises dns.zone.NoSOA: No SOA RR was found at the zone origin
@raises dns.zone.NoNS: No NS RRset was found at the zone origin
TNr   r   r*   zzone file directive 'z' is not allowedr<   zbad $TTLr=   r?   zbad origin in $INCLUDEr>   zUnknown zone file directive 'rk   zsyntax errorz	%s:%d: %srl   ),r2   r[   is_eofrQ   closelenrP   poprJ   rN   rK   rL   r:   rM   is_eol
is_commentget_eolrv   rR   r+   r   rc   rd   rb   rt   ru   get_namerH   r#   _set_originr$   r   r\   appendopen	tokenizer	Tokenizerr   rr   r   wherer|   r}   with_traceback)	rV   r^   cfilename
new_origindetailline_numberextbs	            r   readReader.read  s"   [	2T40<<>>((4))//14++,q0 !,,004	 H / N - M / , 2 \\^^%%''HH$$&[[^s*s43J3J/Ka/O ))+A 7 77!mm773A36FG  F{ $$2244"%--";";J"GG+.77+<+<U[[+I(15.((*i.2hh.?.?.A+((*++3/3/B/BD,,,T-@-@Aj $#(;; $ ..00),);); %T-@-@$((BUBU*J !HH,,.!&!4!4!6!6"%--";";<T"UU)-)<)<J((// $ $ 3 3 $ $ 1 1 $ $ 3 3 $ 0 0 $ 6 6	 -1N)#&==#:#:4;L;Lh#W.8+k)++-!mm77;A3a@  u%c d }}(( 	2&*hhnn&6#X~'**xf==B "B##B'T1	2s    C S PS U%1A/U  U%)rR   rQ   rJ   r:   rM   r6   r8   r9   r7   rN   rK   rL   rI   rP   r2   r#   rH   rO   )FTNNNNN)r   N)r   r   r   r   r   r   r   r   rx   
RdataClasstransactionTransactionboolr	   r   r~   r   r$   Namer   rz   	RdataTyperX   r_   re   r   r   r   r   r   r   r   r   r   r0   r0   X   s0   2 $7;.2#'=A:>%)0A]]$$0A **0A __((	0A
 0A  hsm 340A SXX]]+0A C=0A   9 9:0A s}}6670A c]0Adv$p+0# +0%S#sC0G*H +0ZC(Jb2r   r0   c                   j   ^  \ rS rSrU 4S jrS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrU =r$ )RRsetsReaderTransactioni(  c                 F   > U(       a   e[         TU ]  XU5        0 U l        g rA   )superrX   	rdatasets)rV   rF   replacement	read_only	__class__s       r   rX    RRsetsReaderTransaction.__init__)  s!    }y9r   c                 <    U R                   R                  XU45      $ rA   )r   r[   rV   r$   r   coverss       r   _get_rdataset%RRsetsReaderTransaction._get_rdataset.  s    ~~!!4"899r   c                     / nU R                   R                  5        H!  u  u  n  pEX:X  d  M  UR                  U5        M#     [        U5      S:X  a  g [        R
                  R                  5       nX&l         U$ Nr   )r   itemsr   r   r   r   Node)rV   r$   r   rdataset_namerW   r%   r   s          r   	_get_node!RRsetsReaderTransaction._get_node1  sg    	/3~~/C/C/E+!]Aq$  * 0F y>Qxx}}"r   c                 L    X R                   XR                  UR                  4'   g rA   )r   r   r   )rV   r$   r%   s      r   _put_rdataset%RRsetsReaderTransaction._put_rdataset<  s    CKoox?@r   c                     / nU R                    H  nUS   U:X  d  M  UR                  U5        M!     [        U5      S:  a  U H  nU R                   U	 M     g g r  )r   r   r   )rV   r$   removekeys       r   _delete_name$RRsetsReaderTransaction._delete_name?  sT    >>C1v~c" " v;?NN3'  r   c                 D     U R                   XU4	 g ! [         a     g f = frA   )r   KeyErrorr   s       r   _delete_rdataset(RRsetsReaderTransaction._delete_rdatasetI  s*    	f56 		s    
c                 @    U R                    H  u  n  nX!:X  d  M    g   gNTFr   )rV   r$   r   rW   s       r   _name_exists$RRsetsReaderTransaction._name_existsO  s#    ~~GAq!y & r   c                 2    [        U R                  5      S:  $ r  )r   r   rV   s    r   _changed RRsetsReaderTransaction._changedU  s    4>>"Q&&r   c                    U(       a  U R                  5       (       a  / nU R                  R                  5        Hj  u  u  n  pE[        R                  R                  X5R                  UR                  UR                  5      nUR                  U5        UR                  U5        Ml     U R                  R                  U5        g g g rA   )r  r   r  r   rrsetRRsetr3   r   r   updater   rF   
set_rrsets)rV   commitrrsetsr$   rW   r%   r  s          r   _end_transaction(RRsetsReaderTransaction._end_transactionX  s    dmmooF*...*>*>*@&q!		**HOOX__ X&e$ +A LL##F+ &6r   c                     g rA   r   )rV   origins     r   r   #RRsetsReaderTransaction._set_originc  s    r   c                     [         erA   NotImplementedErrorr  s    r   _iterate_rdatasets*RRsetsReaderTransaction._iterate_rdatasetsf      !!r   c                     [         erA   r)  r  s    r   _iterate_names&RRsetsReaderTransaction._iterate_namesi  r-  r   r  )r   r   r   r   rX   r   r  r  r  r  r  r  r#  r   r+  r/  r   __classcell__)r   s   @r   r   r   (  sE    
:	L('	,"" "r   r   c                       \ rS rSr\R
                  R                  S\R                  R                  4S jr	S r
SS jrS rS rS rS	rg
)RRSetsReaderManagerim  Fc                 6    Xl         X l        X0l        / U l        g rA   )r&  rI   r3   r"  )rV   r&  rI   r3   s       r   rX   RRSetsReaderManager.__init__n  s     $r   c                     [         erA   r)  r  s    r   readerRRSetsReaderManager.readerv  r-  r   c                 *    USL d   e[        U SS5      $ r  )r   )rV   r   s     r   writerRRSetsReaderManager.writery  s    d"""&tT599r   c                     U R                   $ rA   )r3   r  s    r   	get_classRRSetsReaderManager.get_class}  s    ||r   c                     U R                   (       a  [        R                  R                  nOU R                  nU R                  U R                   U4$ rA   )rI   r   r$   emptyr&  )rV   	effectives     r   rG   &RRSetsReaderManager.origin_information  s4    ??IIT__i88r   c                     Xl         g rA   )r"  )rV   r"  s     r   r   RRSetsReaderManager.set_rrsets  s    r   )r&  r3   rI   r"  N)F)r   r   r   r   r   r$   rootrx   INrX   r7  r:  r=  rG   r   r   r   r   r   r3  r3  m  s9    XX]]ucnn>O>O":9r   r3  Ftextr$   rt   r3   default_rdclassr   r:   r   r&  rI   r   c
                    [        U[        5      (       a9  [        R                  R	                  U[        R                  R
                  U5      n[        U[        5      (       a   [        R                  R	                  XU5      n[        U[        5      (       a  [        R                  R	                  U5      n[        U[        5      (       a  [        R                  R	                  U5      nUb*  [        R                  R                  R                  U5      nOSn[        R                  R                  R                  U5      nUb*  [        R                  R                  R                  U5      nOSn[        XU5      n
U
R                  S5       n[        R                  R                  U SUS9n[!        UUUSUUUUUS9	nUR#                  5         SSS5        U
R$                  $ ! , (       d  f       U
R$                  $ = f)a  Read one or more rrsets from the specified text, possibly subject
to restrictions.

*text*, a file object or a string, is the input to process.

*name*, a string, ``dns.name.Name``, or ``None``, is the owner name of
the rrset.  If not ``None``, then the owner name is "forced", and the
input must not specify an owner name.  If ``None``, then any owner names
are allowed and must be present in the input.

*ttl*, an ``int``, string, or None.  If not ``None``, the the TTL is
forced to be the specified value and the input must not specify a TTL.
If ``None``, then a TTL may be specified in the input.  If it is not
specified, then the *default_ttl* will be used.

*rdclass*, a ``dns.rdataclass.RdataClass``, string, or ``None``.  If
not ``None``, then the class is forced to the specified value, and the
input must not specify a class.  If ``None``, then the input may specify
a class that matches *default_rdclass*.  Note that it is not possible to
return rrsets with differing classes; specifying ``None`` for the class
simply allows the user to optionally type a class as that may be convenient
when cutting and pasting.

*default_rdclass*, a ``dns.rdataclass.RdataClass`` or string.  The class
of the returned rrsets.

*rdtype*, a ``dns.rdatatype.RdataType``, string, or ``None``.  If not
``None``, then the type is forced to the specified value, and the
input must not specify a type.  If ``None``, then a type must be present
for each RR.

*default_ttl*, an ``int``, string, or ``None``.  If not ``None``, then if
the TTL is not forced and is not specified, then this value will be used.
if ``None``, then if the TTL is not forced an error will occur if the TTL
is not specified.

*idna_codec*, a ``dns.name.IDNACodec``, specifies the IDNA
encoder/decoder.  If ``None``, the default IDNA 2003 encoder/decoder
is used.  Note that codecs only apply to the owner name; dnspython does
not do IDNA for names in rdata, as there is no IDNA zonefile format.

*origin*, a string, ``dns.name.Name``, or ``None``, is the origin for any
relative names in the input, and also the origin to relativize to if
*relativize* is ``True``.

*relativize*, a bool.  If ``True``, names are relativized to the *origin*;
if ``False`` then any relative names in the input are made absolute by
appending the *origin*.
NTz<input>)r   F)r5   r6   r7   r8   r9   r:   )
isinstancer~   r   r$   ru   rE  rt   rx   r   makerz   r   r3  r:  r   r   r0   r   r"  )rG  r$   rt   r3   rH  r   r:   r   r&  rI   rF   r#   r2   r7  s                 r   read_rrsetsrL    s   z &###FCHHMM:F$xx!!$
;#sgg$+s##gg''4..++009nn//44_EO((--f5!&oFG		mm%%dI*%M"!#

 	 
 >> 
	 >>s   AG%%
G>)6r   r   r|   typingr   r   r   r   r   r   r	   dns.exceptionr   
dns.grangedns.namedns.node	dns.rdatadns.rdataclassdns.rdatatypedns.rdtypes.ANY.SOA	dns.rrsetdns.tokenizerdns.transactiondns.ttlrc   DNSExceptionr   r   r(   r   r   r$   r   r   r   SavedStateTyper.   r0   r   r   r   TransactionManagerr3  rx   rF  rE  r~   r   rz   r   	IDNACodecr  r  rL  r   r   r   <module>r^     sV  $  	 
 C C C            CMM.. ,22 ,
. MMSXX]]SXX]]SM
	M2 M2`B"coo99 B"J#//<< @ 15?B~~?P?P=@^^=N=N<@-1/325((--]
]
5+,
-] 
#] eCNN55s:;<	]
 3>>44c9:] U3==22C789] %S/*] ++,] U388==#-./] ] 
#))//]r   