
    _?ieo                        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	  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\R.                  R0                  5      r " S S\R.                  R0                  5      rS r\\R8                  R:                  \R<                  R>                  S-  \R<                  R>                  S-  \S-  \ \!\ \!4   r"S	 r# " S
 S5      r$ " S S\RJ                  RL                  5      r' " S S\RJ                  RP                  5      r)SS\RT                  RV                  \RT                  RV                  SSS\R<                  RX                  S4	S\S\R<                  R>                  \--  S-  S\ S-  S\RT                  R\                  \--  S-  S\RT                  R\                  \--  S\R^                  R`                  \--  S-  S\ \--  S-  S\R<                  Rb                  S-  S\R<                  R>                  \--  S-  S\!S\\Rd                  Rf                     4S jjr4g)z
DNS Zones.    N)AnyIterableListSetTuplecastc                       \ rS rSrSrSrg)UnknownOrigin&   zUnknown origin N__name__
__module____qualname____firstlineno____doc____static_attributes__r       P/var/www/html/livechat/backend/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\\\   -  S	\R                  R                   S-  S
\S-  S\R                  R                  S-  S\R$                  R&                  S-  S\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   )r1   managerorigin_informationzone_origin
relativizecurrent_originlast_ttllast_ttl_knownr9   default_ttl_known	last_namezone_rdclassr"   saved_statecurrent_fileallowed_directivesaddsetr5   r6   r7   r8   check_put_rdatasetr'   )selfr1   r2   r"   r3   r4   r5   r6   r7   r8   r9   _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  r@   )r1   getis_eol_or_eofrU   tokens     r   	_eat_lineReader._eat_line   s+    HHLLNE""$$ r   c                     U R                   R                  5       nUR                  5       (       d  [        R                  R
                  eU$ r@   )r1   rZ   is_identifierr   	exceptionSyntaxErrorr\   s     r   _get_identifierReader._get_identifier   s5    ""$$--+++r   c           	         SnU R                   b  U R                   nGOQU 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c  [        R                  R                  S5      eU R                  c   e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 R2                  b  U R2                  nOhU R)                  5       n [        R4                  R-                  UR.                  5      nX@R8                  :w  a  [        R                  R                  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:                  (       d}  U[        R@                  RJ                  :X  a_  [M        [        RN                  RP                  RJ                  RJ                  U5      n	U	RR                  U l        SU l        Uc  U	RR                  nUc  [        R                  R                  S5      eU RT                  RW                  X#U5        g! [        R*                  R0                   a    U R                  R                  U5         GNzf = f! [        R                  R                   a    e [6         a+    U R8                  nU R                  R                  U5         GN|f = f! [        R*                  R0                   aZ    U R:                  (       a  U R<                  nOU R&                  (       a  U R$                  nU R                  R                  U5         GN{f = f! [6         a.    [        R                  R                  SUR.                   S35      ef = f! [        R                  R                   a    e [6         aR    [D        RF                  " 5       SS u  px[        R                  R                  S	[I        U5       S
[I        U5       35      ef = f)z&Process one line from a DNS zone file.NT)want_leadingzthe last used name is undefinedRR class is not zone's classunknown rdatatype ''   caught exception : Missing default TTL value),r5   rI   r
   r1   rZ   is_whitespaceas_namerM   r[   ungetr   rb   rc   rG   is_subdomainr^   rH   r6   rJ   rK   rd   ttl	from_textvalueBadTTLr7   
rdataclass	ExceptionrN   rL   r9   r8   	rdatatyperdatasysexc_infostrSOAr   rdtypesANYminimumr"   rR   )
rU   r]   r#   rs   r2   rdtyperdtyvasoa_rds
             r   _rr_lineReader._rr_line   s   ??&??D""*##HHLLdL3E&&((!%!1!1%9L9L!M&&((u%>>D|mm//0QRR##///$$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 #++//--1126F%~~D%)D"{nn ;--++,GHHT#c 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   )8P )Q 98R5 )T0 AU+ 9QQAR21R25A4T-,T-08U(+A:W%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+)}).*$ +0rB   )r   -zinvalid offset sign )rB   oxXnNzinvalid type )recompilematchgroupsintr   rb   rc   )rU   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Hq  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:                  c   e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UU5        GMt     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N [        R                  R                  S5      ef = 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.NTrn   rh   ri   rj   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.)rB   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)   rk   rl   rm   )&rI   r
   r1   rZ   r   grangert   ru   ra   rb   rc   rx   rs   rJ   rK   rv   rL   r9   rw   rN   ry   r   r}   r   rangereplacer#   
idna_codecrM   rG   rr   r^   rH   rz   r{   r|   r"   rR   ) rU   r]   startstopsteplhsrs   r2   r   rhsr   lmodlsignloffsetlwidthlbasermodrsignroffsetrwidthrbaseilindexrindexlzfindexrzfindexr#   rz   r   r   r   r   s                                   @r   _generate_lineReader._generate_lineB  sR    &	, #

 4 4U[[ AEHHLLNE&&((mm/// )	,++CHHLLNE&&((mm/// )	M''##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'] .]  	,--+++	,  	,--+++	, ww~~ 	M''4+A+Amm//0KLL%%&&$$mm
 mm//0KLL	M& }}(( 	,--+++ 	(''G	(  	R--++.A%++a,PQQ	Rv ==,,  	 <<>"1-Rmm//'By3r7)< 	sb   A5R 'AR7 >A?S ?A2V! !A2W5 *AX0%R47%SA<VV> V!AW21W258X-0A;Z+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aj  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OvU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SS9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,                   aw  nU R                   RQ                  5       u  p6Uc  Sn[(        R*                  R-                  U SU SU 3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 $INCLUDEzutf-8)encodingr=   zUnknown zone file directive 'rj   zsyntax error:rm   rk   ),r1   rZ   is_eofrP   closelenrO   poprI   rM   rJ   rK   r9   rL   is_eol
is_commentget_eolru   rQ   r*   r   rb   rc   ra   rs   rt   get_namerG   r"   _set_originr#   r   r[   appendopen	tokenizer	Tokenizerr   rq   r   wherer{   r|   with_traceback)	rU   r]   cfilename
new_origindetailline_numberextbs	            r   readReader.read  s'   Y	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G,L)#&==#:#:4;L;Lh#W.8+k)++-!mm77;A3a@  u%c d }}(( 	2&*hhnn&6#X~'**hZqRx+PQB"B##B'T1	2s    C S PS U'0A2U""U')rQ   rP   rI   r9   rL   r5   r7   r8   r6   rM   rJ   rK   rH   rO   r1   r"   rG   rN   )FTNNNNN)r   N)r   r   r   r   r   r   r   r   rw   
RdataClasstransactionTransactionboolr   r}   r#   Namer   ry   	RdataTyperW   r^   rd   r   r   r   r   r   r   r   r   r   r/   r/   X   s+   2 $15+/ $:>7;"&0A]]$$0A **0A __((	0A
 0A #.0A HHMMD(0A :0A ~~00470A mm--40A 4Z0Adz$x+0# +0%S#sC0G*H +0ZJ(X`2r   r/   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$ )RRsetsReaderTransactioni1  c                 F   > U(       a   e[         TU ]  XU5        0 U l        g r@   )superrW   	rdatasets)rU   rE   replacement	read_only	__class__s       r   rW    RRsetsReaderTransaction.__init__2  s!    }y9r   c                 <    U R                   R                  XU45      $ r@   )r   rZ   rU   r#   r   coverss       r   _get_rdataset%RRsetsReaderTransaction._get_rdataset7  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)rU   r#   r   rdataset_namerV   r$   r   s          r   	_get_node!RRsetsReaderTransaction._get_node:  sg    	/3~~/C/C/E+!]Aq$  * 0F y>Qxx}}"r   c                 L    X R                   XR                  UR                  4'   g r@   )r   r   r  )rU   r#   r$   s      r   _put_rdataset%RRsetsReaderTransaction._put_rdatasetE  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   )rU   r#   removekeys       r   _delete_name$RRsetsReaderTransaction._delete_nameH  sT    >>C1v~c" " v;?NN3'  r   c                 D     U R                   XU4	 g ! [         a     g f = fr@   )r   KeyErrorr   s       r   _delete_rdataset(RRsetsReaderTransaction._delete_rdatasetR  s*    	f56 		s    
c                 @    U R                    H  u  n  nX!:X  d  M    g   gNTFr   )rU   r#   r   rV   s       r   _name_exists$RRsetsReaderTransaction._name_existsX  s#    ~~GAq!y & r   c                 2    [        U R                  5      S:  $ r  )r   r   rU   s    r   _changed RRsetsReaderTransaction._changed^  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 r@   )r  r   r  r   rrsetRRsetr2   r   r  updater   rE   
set_rrsets)rU   commitrrsetsr#   rV   r$   r!  s          r   _end_transaction(RRsetsReaderTransaction._end_transactiona  s    dmmooF*...*>*>*@&q!		**HOOX__ X&e$ +A LL##F+ &6r   c                     g r@   r   )rU   origins     r   r   #RRsetsReaderTransaction._set_originl  s    r   c                     [         er@   NotImplementedErrorr  s    r   _iterate_rdatasets*RRsetsReaderTransaction._iterate_rdatasetso      !!r   c                     [         er@   r-  r  s    r   _iterate_names&RRsetsReaderTransaction._iterate_namesr  r1  r   r  )r   r   r   r   rW   r  r	  r  r  r  r  r  r'  r   r/  r3  r   __classcell__)r   s   @r   r   r   1  sE    
:	L('	,"" "r   r   c                   6   \ rS rSr\R
                  R                  S\R                  R                  4S\R
                  R                  S-  S\
S\R                  R                  4S jjrS rSS	 jrS
 rS rS\\R$                  R&                     SS4S jrSrg)RRSetsReaderManageriv  Fr*  NrH   r2   c                 6    Xl         X l        X0l        / U l        g r@   )r*  rH   r2   r&  )rU   r*  rH   r2   s       r   rW   RRSetsReaderManager.__init__w  s     $-/r   c                     [         er@   r-  r  s    r   readerRRSetsReaderManager.reader  r1  r   c                 *    USL d   e[        U SS5      $ r  )r   )rU   r   s     r   writerRRSetsReaderManager.writer  s    d"""&tT599r   c                     U R                   $ r@   )r2   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$ r@   )rH   r   r#   emptyr*  )rU   	effectives     r   rF   &RRSetsReaderManager.origin_information  s4    ??IIT__i88r   r&  r   c                     Xl         g r@   )r&  )rU   r&  s     r   r$  RRSetsReaderManager.set_rrsets  s    r   )r*  r2   rH   r&  )F)r   r   r   r   r   r#   rootrw   INr   r   r   rW   r;  r>  rA  rF   r   r!  r"  r$  r   r   r   r   r7  r7  v  s     (+xx}} -0^^->->		0$	0 	0 **		0":9ciioo!6 4 r   r7  Ftextr#   rs   r2   default_rdclassr   r9   r   r*  rH   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)r4   r5   r6   r7   r8   r9   )
isinstancer}   r   r#   rt   rI  rs   rw   r   makery   r   r7  r>  r   r   r/   r   r&  )rK  r#   rs   r2   rL  r   r9   r   r*  rH   rE   r"   r1   r;  s                 r   read_rrsetsrP    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>)5r   r   r{   typingr   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.ttlrb   DNSExceptionr
   r   r'   r   r   r#   r   r   r   SavedStateTyper-   r/   r   r   r   TransactionManagerr7  rw   rJ  rI  r}   r   ry   r   	IDNACodecr!  r"  rP  r   r   r   <module>rb     s6  $  	 
 8 8            CMM.. ,22 ,
. MMHHMMDHHMMD$J
	V2 V2rB"coo99 B"J#//<< F (,69nn6G6G7:~~7H7H37$(,0),]
]
((--#

$] 
t] ^^&&,t3	]
 ^^..4] MM##c)D0] sT!] ""T)] HHMMC$&] ] 
#))//]r   