Ë
    ¶�/jeo  ã                   ó€  — d Z ddlZddlZddlmZmZmZmZmZm	Z	 ddl
ZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZ G d„ dej.                  j0                  «      Z G d„ dej.                  j0                  «      Zd„ Zeej8                  j:                  ej<                  j>                  dz  ej<                  j>                  dz  edz  e e!e e!f   Z"d	„ Z# G d
„ d«      Z$ G d„ dejJ                  jL                  «      Z' G d„ dejJ                  jP                  «      Z)ddejT                  jV                  ejT                  jV                  dddej<                  jX                  df	dedej<                  j>                  e-z  dz  de dz  dejT                  j\                  e-z  dz  dejT                  j\                  e-z  dej^                  j`                  e-z  dz  de e-z  dz  dej<                  jb                  dz  dej<                  j>                  e-z  dz  de!deejd                  jf                     fd„Z4y)z
DNS Zones.é    N)ÚAnyÚIterableÚListÚSetÚTupleÚcastc                   ó   — e Zd ZdZy)ÚUnknownOriginzUnknown originN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úNC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\dns/zonefile.pyr
   r
   &   s   „ Úr   r
   c                   ó   — e Zd ZdZy)ÚCNAMEAndOtherDataz!A node has a CNAME and other dataNr   r   r   r   r   r   *   s   „ Ú+r   r   c                 ó  — t         j                  j                  j                  |«      }| j	                  |«      }|€y |j                  «       }|t         j                  j                  j                  k(  r2|t         j                  j                  j                  k(  rt        d«      ‚|t         j                  j                  j                  k(  r3|t         j                  j                  j                  k(  rt        d«      ‚y y )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Ã   € Ü—H‘H×%Ñ%×7Ñ7¸ÓA€MØ�<‰<˜Ó€DØ€|àØ—‘“€Ià”S—X‘X×&Ñ&×,Ñ,Ò,ØœSŸX™X×.Ñ.×6Ñ6Ò6äÐ SÓTÐTà”S—X‘X×&Ñ&×.Ñ.Ò.ØœSŸX™X×.Ñ.×4Ñ4Ò4äØGó
ð 	
ð 5ð 	/r   c                 óR   — | j                  «       } | j                  d«      sd| z   } | S )NÚ$)ÚupperÚ
startswith)Úss    r   Ú_upper_dollarizer)   Q   s'   € Ø	�‰‹	€AØ�<‰<˜ÔØ�!‰GˆØ€Hr   c                   óª  — e Zd ZdZ	 	 	 	 	 	 	 ddej
                  j                  dej                  j                  dej                  j                  dedeee   z  dej                  j                  dz  d	edz  d
ej                  j                  dz  dej"                  j$                  dz  dedz  fd„Zd„ Zd„ Zd„ Zdedeeeeeef   fd„Zd„ Zdd„Zy)ÚReaderz(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                 óf  — || _         |j                  j                  «       \  | _        | _        }| j                  | _        d| _        d| _        |�|}
|
€d| _        d| _	        n|
| _        d| _	        | j
                  | _
        || _        || _        g | _        d | _        |  |du r'h d£| _        |rG| j                  j!                  d«       n+|du rt#        «       | _        nt#        d„ |D «       «      | _        || _        || _        || _        |	| _        | j                  j-                  t.        «       y )Nr   FT>   ú$TTLú$ORIGINú	$GENERATEú$INCLUDEc              3   ó2   K  — | ]  }t        |«      –— Œ y ­w©N)r)   )Ú.0Úds     r   Ú	<genexpr>z"Reader.__init__.<locals>.<genexpr>†   s   è ø€ Ð)XÑGWÀ!Ô*:¸1×*=ÑGWùs   ‚)r,   ÚmanagerÚorigin_informationÚzone_originÚ
relativizeÚcurrent_originÚlast_ttlÚlast_ttl_knownr4   Údefault_ttl_knownÚ	last_nameÚzone_rdclassr   Úsaved_stateÚcurrent_fileÚallowed_directivesÚaddÚsetr0   r1   r2   r3   Úcheck_put_rdatasetr#   )Úselfr,   r-   r   r.   r/   r0   r1   r2   r3   r4   Ú_s               r   Ú__init__zReader.__init__[   s(  € ð ˆŒØ14·±×1OÑ1OÓ1QÑ.ˆÔ	˜4œ?¨AØ"×.Ñ.ˆÔØˆŒØ#ˆÔØÐ Ø#ˆKØÐØ ˆDÔØ%*ˆDÕ"à*ˆDÔØ%)ˆDÔ"Ø×,Ñ,ˆŒØ#ˆÔØˆŒØ13ˆÔØ(,ˆÔÙØ˜tÑ#Ú&FˆDÔ#ÙØ×'Ñ'×+Ñ+¨JÕ7Ø Ñ&ô '*£eˆDÕ#ô '*Ñ)XÑGWÓ)XÓ&XˆDÔ#Ø$ˆŒØ"ˆŒØ*ˆÔØ(ˆÔØ�‰×#Ñ#Ô$?Õ@r   c                 ó\   — 	 | j                   j                  «       }|j                  «       ry Œ,r;   )r,   ÚgetÚis_eol_or_eof©rO   Útokens     r   Ú	_eat_linezReader._eat_line�   s(   € ØØ—H‘H—L‘L“NˆEØ×"Ñ"Ô$Øð r   c                 óŽ   — | j                   j                  «       }|j                  «       st        j                  j
                  ‚|S r;   )r,   rS   Úis_identifierr   Ú	exceptionÚSyntaxErrorrU   s     r   Ú_get_identifierzReader._get_identifier“   s2   € Ø—‘—‘“ˆØ×"Ñ"Ô$Ü—-‘-×+Ñ+Ð+Øˆr   c           	      óv  — d}| j                   �| j                   }�n>| j                  €t        ‚| j                  j	                  d¬«      }|j                  «       s,| j                  j                  || j                  «      | _        nF| j                  j	                  «       }|j                  «       ry| j                  j                  |«       | j                  }|€t        j                  j                  d«      ‚| j                  €J ‚|j                  | j                  «      s| j                  «        y| j                   r|j!                  | j                  «      }| j"                  �| j"                  }|| _        d| _        nL| j)                  «       }d}	 t        j*                  j-                  |j.                  «      }|| _        d| _        d}| j2                  �| j2                  }nh| j)                  «       }	 t        j4                  j-                  |j.                  «      }|| j8                  k7  rt        j                  j                  d«      ‚|€L| j)                  «       }d}	 t        j*                  j-                  |j.                  «      }|| _        d| _        d}| j>                  �| j>                  }n:| j)                  «       }	 t        j@                  j-                  |j.                  «      }	 t        jB                  j-                  ||| j                  | j                  | j                   | j                  «      }| j:                  s{|t        j@                  jJ                  k(  r^tM        t        jN                  jP                  jJ                  jJ                  |«      }	|	jR                  | _        d| _        |€|	jR                  }|€t        j                  j                  d«      ‚| jT                  jW                  |||«       y# t        j*                  j0                  $ r | j                  j                  |«       Y �Œpw xY w# t        j                  j                  $ r ‚ t6        $ r+ | j8                  }| j                  j                  |«       Y �Œqw xY w# t        j*                  j0                  $ rP | j:                  r| j<                  }n| j&                  r| j$                  }| j                  j                  |«       Y �Œew xY w# t6        $ r. t        j                  j                  d|j.                  › d�«      ‚w xY w# t        j                  j                  $ r ‚ t6        $ rR tE        jF                  «       dd \  }}t        j                  j                  d	tI        |«      › d
tI        |«      › �«      ‚w xY w)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),r0   rC   r
   r,   rS   Úis_whitespaceÚas_namerG   rT   Úungetr   rZ   r[   rA   Úis_subdomainrW   rB   r1   rD   rE   r\   ÚttlÚ	from_textÚvalueÚBadTTLr2   Ú
rdataclassÚ	ExceptionrH   rF   r4   r3   Ú	rdatatypeÚrdataÚsysÚexc_infoÚstrÚSOAr   ÚrdtypesÚANYÚminimumr   rL   )
rO   rV   r   rj   r-   ÚrdtypeÚrdÚtyÚvaÚsoa_rds
             r   Ú_rr_linezReader._rr_line™   s“  € àˆà�?‰?Ð&Ø—?‘?ŠDà×"Ñ"Ð*Ü#Ð#Ø—H‘H—L‘L¨d�LÓ3ˆEØ×&Ñ&Ô(Ø!%§¡×!1Ñ!1°%¸×9LÑ9LÓ!M�•àŸ™Ÿ™›�Ø×&Ñ&Ô(àØ—‘—‘˜uÔ%Ø—>‘>ˆDØˆ|Ü—m‘m×/Ñ/Ð0QÓRÐRØ×#Ñ#Ð/Ð/Ð/Ø×$Ñ$ T×%5Ñ%5Ô6Ø—‘Ô ØØ�ŠØ—‘ t×'7Ñ'7Ó8�ð �>‰>Ð%Ø—.‘.ˆCØˆDŒMØ"&ˆDÕà×(Ñ(Ó*ˆEØˆCð&Ü—g‘g×'Ñ'¨¯©Ó4�Ø #�”Ø&*�Ô#Ø�ð
 ×ÑÐ)Ø×(Ñ(‰Gà×(Ñ(Ó*ˆEð&ÜŸ.™.×2Ñ2°5·;±;Ó?�ð ˜$×+Ñ+Ò+Ü—m‘m×/Ñ/Ð0NÓOÐOàˆ;à×(Ñ(Ó*ˆEØˆCð
&Ü—g‘g×'Ñ'¨¯©Ó4�Ø #�”Ø&*�Ô#Ø�ð ×ÑÐ(Ø×&Ñ&‰Fà×(Ñ(Ó*ˆEðVÜŸ™×0Ñ0°·±Ó=�ð	VÜ—‘×$Ñ$ØØØ—‘Ø×#Ñ#Ø—‘Ø× Ñ óˆBð( ×%Ò%¨&´C·M±M×4EÑ4EÒ*Eô œ#Ÿ+™+Ÿ/™/×-Ñ-×1Ñ1°2Ó6ˆFØ%Ÿ~™~ˆDÔØ%)ˆDÔ"Øˆ{à—n‘n�ð ˆ;Ü—-‘-×+Ñ+Ð,GÓHÐHà�‰�‰�T˜3 Õ#øôc —7‘7—>‘>ò &Ø—‘—‘˜u×%ð&ûô —=‘=×,Ñ,ò ØÜò &Ø×+Ñ+�Ø—‘—‘˜u×%ð&ûô —7‘7—>‘>ò &Ø×)Ò)Ø×*Ñ*‘CØ×(Ò(ØŸ-™-�CØ—‘—‘˜u×%ð&ûô ò VÜ—m‘m×/Ñ/Ð2EÀeÇkÁkÀ]ÐRSÐ0TÓUÐUðVûô �}‰}×(Ñ(ò 	àÜò 	Vô —|‘|“~ b qÐ)‰HˆR�Ü—-‘-×+Ñ+Ð.?ÄÀBÃ¸yÈÌ3ÈrË7È)Ð,TÓUÐUð	VúsR   Æ9P Ç8)Q É$9R Ë)T Ë1AU  Ð8P?Ð>P?ÑARÒRÒA)TÔTÔ7T=Õ A8V8ÚsideÚreturnc                 ó�  — t        j                  d«      }t        j                  d«      }t        j                  d«      }d}d}d}d}d}	|j                  |«      }
|
r|
j                  «       \  }}}}}	|dk(  rgd}nd|j                  |«      }|r |j                  «       \  }}}|dk(  rd}d}d}	n1|j                  |«      }|r|j                  «       \  }}}}|dk(  rd}d}	t	        |«      }t	        |«      }|dvr"t
        j                  j                  d	|› �«      ‚|	d
vr"t
        j                  j                  d|	› �«      ‚|||||	fS )Nz"^.*\$({(\+|-?)(\d+),(\d+),(.)}).*$z^.*\$({(\+|-?)(\d+)}).*$z^.*\$({(\+|-?)(\d+),(\d+)}).*$Ú Ú+Ú0r=   )rƒ   Ú-zinvalid offset sign )r=   ÚoÚxÚXÚnÚNzinvalid type )ÚreÚcompileÚmatchÚgroupsÚintr   rZ   r[   )rO   r   Úis_generate1Úis_generate2Úis_generate3ÚmodÚsignÚoffsetÚwidthÚbaseÚg1Úg2Úg3ÚioffsetÚiwidths                  r   Ú_parse_modifyzReader._parse_modify  sa  € ô —z‘zÐ"GÓHˆÜ—z‘zÐ"=Ó>ˆÜ—z‘zÐ"CÓDˆð ˆØˆØˆØˆØˆØ×Ñ Ó%ˆÙØ-/¯Y©Y«[Ñ*ˆC��v˜u dØ�rŠzØ‘à×#Ñ# DÓ)ˆBÙØ$&§I¡I£KÑ!��T˜6Ø˜2’:Ø�DØ�Ø‘à!×'Ñ'¨Ó-�ÙØ/1¯y©y«{Ñ,�C˜˜v uØ˜r’zØ"˜Ø�Dä�f“+ˆÜ�U“ˆà�zÑ!Ü—-‘-×+Ñ+Ð.BÀ4À&Ð,IÓJÐJØÐ5Ñ5Ü—-‘-×+Ñ+¨m¸D¸6Ð,BÓCÐCà�D˜' 6¨4Ð/Ð/r   c           
      óÚ  ‡— | j                   €t        ‚| j                  j                  «       }	 t        j
                  j                  |j                  «      \  }}}| j                  j                  «       }|j                  «       st        j                  j                  ‚	 	 |j                  }| j                  j                  «       }|j                  «       st        j                  j                  ‚	 	 t        j                  j                  |j                  «      }|| _        d| _        | j                  j                  «       }|j                  «       st        j                  j                  ‚	 	 t        j$                  j                  |j                  «      }| j                  j                  «       }|j                  «       st        j                  j                  ‚	 || j&                  k7  rt        j                  j                  d«      ‚	 t        j(                  j                  |j                  «      }| j                  j                  «       }|j                  «       st        j                  j                  ‚	 |j                  }	dt*        dt,        d	t*        d
t*        fd„}
dt*        dt,        dt*        d
t,        fˆfd„Š| j/                  |«      \  }}}}}| j/                  |	«      \  }}}}}t1        ||dz   |«      D �]g  } |
|||«      } |
|||«      } ‰|||«      } ‰|||«      }|j3                  d|› �|«      }|	j3                  d|› �|«      }t        j4                  j                  || j                   | j                  j6                  «      | _        | j8                  }| j:                  €J ‚|j=                  | j:                  «      s| j?                  «         y| j@                  r|jA                  | j:                  «      }	 t        jB                  j                  |||| j                   | j@                  | j:                  «      }| jH                  jK                  |||«       �Œj y# t        $ r t        j                  j                  ‚w xY w# t        $ r t        j                  j                  ‚w xY w# t        j                  j                  $ rŒ | j                  s+| j                   st        j                  j                  d«      ‚| j                   r| j"                  }n8| j                  r| j                  }nt        j                  j                  d«      ‚Y �Œòw xY w# t        j                  j                  $ r t        j                  j                  ‚t        $ r | j&                  }Y �ŒÕw xY w# t        $ r. t        j                  j                  d|j                  › d�«      ‚w xY w# t        j                  j                  $ r ‚ t        $ rR tE        jF                  «       dd \  }}t        j                  j                  dt-        |«      › dt-        |«      › �«      ‚w xY w)zPProcess one line containing the GENERATE statement from a DNS
        zone file.NTre   r_   r`   ra   ÚcounterÚoffset_signr•   r€   c                 ó    — |dk(  r|dz  }| |z   S )z0Calculate the index from the counter and offset.r…   éÿÿÿÿr   )rŸ   r    r•   s      r   Ú_calculate_indexz/Reader._generate_line.<locals>._calculate_index‰  s   € à˜cÒ!Ø˜"‘�Ø˜VÑ#Ð#r   Úindexr—   r–   c                 ó¸   •— |dv rt        | |«      j                  |«      S  ‰| d|«      }dj                  |ddd…   «      d| }|dk(  r|j                  «       }|S )zVFormat the index with the given base, and zero-fill it
            to the given width.)r=   r†   r‡   rˆ   r‡   Ú.Nr¢   rŠ   )ÚformatÚzfillÚjoinr&   )r¤   r—   r–   ÚhexaÚnibblesÚ_format_indexs        €r   r¬   z,Reader._generate_line.<locals>._format_index�  sj   ø€ ð Ð+Ñ+Ü˜e TÓ*×0Ñ0°Ó7Ð7ñ ! ¨¨UÓ3ˆDØ—h‘h˜t¡D b D™zÓ*¨6¨EÐ2ˆGØ�sŠ{Ø!Ÿ-™-›/�ØˆNr   é   r%   rb   rc   rd   )&rC   r
   r,   rS   r   Úgrangerk   rl   rY   rZ   r[   ro   rj   rD   rE   rm   rF   r4   rn   rH   rp   r�   rt   r�   ÚrangeÚreplacer   Ú
idna_codecrG   rA   ri   rW   rB   rq   rr   rs   r   rL   ) rO   rV   ÚstartÚstopÚstepÚlhsrj   r-   ry   Úrhsr£   ÚlmodÚlsignÚloffsetÚlwidthÚlbaseÚrmodÚrsignÚroffsetÚrwidthÚrbaseÚiÚlindexÚrindexÚlzfindexÚrzfindexr   rq   rz   r{   r|   r¬   s                                   @r   Ú_generate_linezReader._generate_lineB  sQ  ø€ ð ×ÑÐ&ÜÐà—‘—‘“ˆð	,Ü #§
¡
× 4Ñ 4°U·[±[Ó AÑˆE�4˜Ø—H‘H—L‘L“NˆEØ×&Ñ&Ô(Ü—m‘m×/Ñ/Ð/ð )ð	,Ø—+‘+ˆCØ—H‘H—L‘L“NˆEØ×&Ñ&Ô(Ü—m‘m×/Ñ/Ð/ð )ð	MÜ—'‘'×#Ñ# E§K¡KÓ0ˆCØˆDŒMØ"&ˆDÔØ—H‘H—L‘L“NˆEØ×&Ñ&Ô(Ü—m‘m×/Ñ/Ð/ð )ð 	(Ü—n‘n×.Ñ.¨u¯{©{Ó;ˆGØ—H‘H—L‘L“NˆEØ×&Ñ&Ô(Ü—m‘m×/Ñ/Ð/ð )ð �d×'Ñ'Ò'Ü—-‘-×+Ñ+Ð,JÓKÐKð	RÜ—]‘]×,Ñ,¨U¯[©[Ó9ˆFØ—H‘H—L‘L“NˆEØ×&Ñ&Ô(Ü—m‘m×/Ñ/Ð/ð )ð �k‰kˆð	$¤cð 	$¼ð 	$ÄSð 	$ÌSó 	$ð	¤ð 	¬Cð 	¼ð 	Äõ 	ð /3×.@Ñ.@ÀÓ.EÑ+ˆˆe�W˜f eØ.2×.@Ñ.@ÀÓ.EÑ+ˆˆe�W˜f eÜ�u˜d Q™h¨×-ˆAñ & a¨°Ó8ˆFÙ% a¨°Ó8ˆFá$ V¨U°FÓ;ˆHÙ$ V¨U°FÓ;ˆHà—;‘;  4 &˜z¨8Ó4ˆDØ—K‘K ! D 6 
¨HÓ5ˆEä ŸX™X×/Ñ/Ø�d×)Ñ)¨4¯8©8×+>Ñ+>óˆDŒNð —>‘>ˆDØ×#Ñ#Ð/Ð/Ð/Ø×$Ñ$ T×%5Ñ%5Ô6Ø—‘Ô ÙØ�ŠØ—‘ t×'7Ñ'7Ó8�ðÜ—Y‘Y×(Ñ(ØØØØ×'Ñ'Ø—O‘OØ×$Ñ$ó�ð, �H‰H�L‰L˜˜s BÖ'ñ] .øô] ò 	,Ü—-‘-×+Ñ+Ð+ð	,ûô ò 	,Ü—-‘-×+Ñ+Ð+ð	,ûô �w‰w�~‰~ò 	MØ×'Ò'¨4×+AÒ+AÜ—m‘m×/Ñ/Ð0KÓLÐLØ×%Ò%Ø×&Ñ&‘Ø×$Ò$Ø—m‘m‘ô
 —m‘m×/Ñ/Ð0KÓLÐLúð	Mûô& �}‰}×(Ñ(ò 	,Ü—-‘-×+Ñ+Ð+Üò 	(Ø×'Ñ'‹Gð	(ûô ò 	RÜ—-‘-×+Ñ+Ð.AÀ%Ç+Á+ÀÈaÐ,PÓQÐQð	Rûôv —=‘=×,Ñ,ò àÜò 	ô Ÿ<™<›>¨"¨1Ð-‘��RÜ—m‘m×/Ñ/Ø'¬¨B« y°´3°r³7°)Ð<óð ð	ús\   ¯A1Q, Â"AR Ã4A;R: Å1A-U& ÈA-V8 Ð	AW2Ñ,$RÒ$R7Ò:B%U#Õ"U#Õ&AV5Ö4V5Ö87W/×2A8Y*c           
      ó|
  — 	 	 | j                   j                  dd«      }|j                  «       rŒ| j                  �| j                  j	                  «        t        | j                  «      dkD  rM| j                  j                  d«      \  | _         | _        | _	        | _        | _
        | _        | _        | _        Œ¸y|j                  «       rŒÊ|j                  «       r| j                   j!                  «        Œõ|j"                  d   dk(  �rqt        | j$                  «      dkD  �rX|j"                  j'                  «       }|| j$                  vr#t(        j*                  j-                  d|› d�«      ‚|dk(  rš| j                   j                  «       }|j/                  «       st(        j*                  j-                  d	«      ‚t(        j0                  j3                  |j"                  «      | _        d| _        | j                   j!                  «        �nl|d
k(  r}| j                   j5                  «       | _        | j                   j!                  «        | j6                  €| j                  | _        | j8                  j;                  | j                  «       �nê|dk(  �r«| j                   j                  «       }|j"                  }| j                   j                  «       }|j/                  «       rdt(        j<                  j3                  |j"                  | j                  | j                   j>                  «      }| j                   j!                  «        n;|jA                  «       st(        j*                  j-                  d«      ‚| j                  }| j                  jC                  | j                   | j                  | j                  | j                  | j                  | j                  | j                  | j                  f«       tE        |d¬«      | _        t(        jF                  jI                  | j                  |«      | _         || _        n9|dk(  r| jK                  «        n#t(        j*                  j-                  d|› d�«      ‚�Œy| j                   jM                  |«       | jO                  «        �Œ¥# t(        j*                  j,                  $ rv}| j                   jQ                  «       \  }}|€d}t(        j*                  j-                  |› d|› d|› �«      }tS        jT                  «       d   }|jW                  |«      d‚d}~ww xY w)zÆRead 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 allowedr6   zbad $TTLr7   r9   zbad origin in $INCLUDEzutf-8)Úencodingr8   zUnknown zone file directive 'ra   zsyntax errorÚ:rd   rb   ),r,   rS   Úis_eofrJ   ÚcloseÚlenrI   ÚpoprC   rG   rD   rE   r4   rF   Úis_eolÚ
is_commentÚget_eolrl   rK   r&   r   rZ   r[   rY   rj   rk   Úget_namerA   r   Ú_set_originr   r±   rT   ÚappendÚopenÚ	tokenizerÚ	TokenizerrÆ   rh   r~   Úwhererr   rs   Úwith_traceback)	rO   rV   ÚcÚfilenameÚ
new_originÚdetailÚline_numberÚexÚtbs	            r   ÚreadzReader.readÎ  s  € ðY	2ØØŸ™Ÿ™ T¨4Ó0�Ø—<‘<”>Ø×(Ñ(Ð4Ø×)Ñ)×/Ñ/Ô1Ü˜4×+Ñ+Ó,¨qÒ0ð !×,Ñ,×0Ñ0°Ó4ñ	Ø œHØ Ô/Ø œNØ Ô-Ø œMØ Ô/Ø Ô,Ø Ô2à ØØ—\‘\”^ØØ×%Ñ%Ô'Ø—H‘H×$Ñ$Ô&ØØ—[‘[ ‘^ sÓ*¬s°4×3JÑ3JÓ/KÈaÓ/Oð Ÿ™×)Ñ)Ó+�AØ × 7Ñ 7Ñ7Ü!Ÿm™m×7Ñ7Ø3°A°3Ð6FÐGóð ð ˜F’{Ø $§¡§¡£˜Ø$×2Ñ2Ô4Ü"%§-¡-×";Ñ";¸JÓ"GÐGÜ+.¯7©7×+<Ñ+<¸U¿[¹[Ó+I˜Ô(Ø15˜Ô.ØŸ™×(Ñ(Ö*Ø˜išØ.2¯h©h×.?Ñ.?Ó.A˜Ô+ØŸ™×(Ñ(Ô*Ø×+Ñ+Ð3Ø/3×/BÑ/B˜DÔ,ØŸ™×,Ñ,¨T×-@Ñ-@ÖAØ˜j›Ø $§¡§¡£˜Ø#(§;¡;˜Ø $§¡§¡£˜à ×.Ñ.Ô0Ü),¯©×);Ñ);Ø %§¡¨T×-@Ñ-@À$Ç(Á(×BUÑBUó*˜Jð !ŸH™H×,Ñ,Õ.Ø!&×!4Ñ!4Ô!6Ü"%§-¡-×";Ñ";Ð<TÓ"UÐUà)-×)<Ñ)<˜JØ×(Ñ(×/Ñ/à $§¡Ø $× 3Ñ 3Ø $§¡Ø $× 1Ñ 1Ø $§¡Ø $× 3Ñ 3Ø $× 0Ñ 0Ø $× 6Ñ 6ð	ôô -1°ÀGÔ,L˜Ô)Ü#&§=¡=×#:Ñ#:¸4×;LÑ;LÈhÓ#W˜œØ.8˜Õ+Ø˜kÒ)Ø×+Ñ+Õ-ä!Ÿm™m×7Ñ7Ø;¸A¸3¸aÐ@óð ñ Ø—‘—‘˜uÔ%Ø—‘”ñc øôd �}‰}×(Ñ(ò 	2Ø&*§h¡h§n¡nÓ&6Ñ#ˆX�{Øˆ~Ø'�Ü—‘×*Ñ*¨h¨Z°q¸¸ÀRÈÀxÐ+PÓQˆBÜ—‘“ Ñ"ˆBØ×#Ñ# BÓ'¨TÐ1ûð	2ús    ‚B8R( Â;O-R( Ò(T;ÓA1T6Ô6T;)FTNNNNN)r€   N)r   r   r   r   r   rÕ   rÖ   rn   Ú
RdataClassÚtransactionÚTransactionÚboolr   rt   r   ÚNamer�   rp   Ú	RdataTyperQ   rW   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ð —H‘H—M‘M DÑ(ð0Að ˜‘:ð0Að —~‘~×0Ñ0°4Ñ7ð0Að —m‘m×-Ñ-°Ñ4ð0Að ˜4‘Zó0Aòdòòz$ðx+0 #ð +0¨%°°S¸#¸sÀCÐ0GÑ*Hó +0òZJ(ôX`2r   r+   c                   ó`   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zˆ xZS )ÚRRsetsReaderTransactionc                 ó>   •— |rJ ‚t         ‰| �  |||«       i | _        y r;   )ÚsuperrQ   Ú	rdatasets)rO   r?   ÚreplacementÚ	read_onlyÚ	__class__s       €r   rQ   z RRsetsReaderTransaction.__init__2  s#   ø€ ÙÐˆ}Ü‰Ñ˜ +¨yÔ9Øˆ�r   c                 ó>   — | j                   j                  |||f«      S r;   )rë   rS   ©rO   r   ry   Úcoverss       r   Ú_get_rdatasetz%RRsetsReaderTransaction._get_rdataset7  s   € Ø�~‰~×!Ñ! 4¨°Ð"8Ó9Ð9r   c                 óì   — g }| j                   j                  «       D ]   \  \  }}}}||k(  sŒ|j                  |«       Œ" t        |«      dk(  ry t        j
                  j                  «       }||_         |S ©Nr   )rë   ÚitemsrÓ   rÌ   r   r   ÚNode)rO   r   rë   Úrdataset_namerP   r    r   s          r   Ú	_get_nodez!RRsetsReaderTransaction._get_node:  sm   € Øˆ	Ø/3¯~©~×/CÑ/CÖ/EÑ+Ñ!ˆ]˜A˜q 8Ø�}Ó$Ø× Ñ  Õ*ð 0Fô ˆy‹>˜QÒØÜ�x‰x�}‰}‹ˆØ"ˆŒØˆr   c                 óP   — || j                   ||j                  |j                  f<   y r;   )rë   ry   rñ   )rO   r   r    s      r   Ú_put_rdatasetz%RRsetsReaderTransaction._put_rdatasetE  s   € ØCKˆ�‰˜˜hŸo™o¨x¯©Ð?Ò@r   c                 ó¤   — g }| j                   D ]  }|d   |k(  sŒ|j                  |«       Œ t        |«      dkD  r|D ]  }| j                   |= Œ y y rô   )rë   rÓ   rÌ   )rO   r   ÚremoveÚkeys       r   Ú_delete_namez$RRsetsReaderTransaction._delete_nameH  sT   € àˆØ—>”>ˆCØ�1‰v˜‹~Ø—‘˜cÕ"ð "ô ˆv‹;˜Š?Û�Ø—N‘N 3Ñ'ñ ð r   c                 óD   — 	 | j                   |||f= y # t        $ r Y y w xY wr;   )rë   ÚKeyErrorrð   s       r   Ú_delete_rdatasetz(RRsetsReaderTransaction._delete_rdatasetR  s,   € ð	Ø—‘  f¨fÐ5Ñ6øÜò 	Ùð	ús   ‚ “	žc                 ó<   — | j                   D ]  \  }}}||k(  sŒ y y©NTF)rë   )rO   r   r‰   rP   s       r   Ú_name_existsz$RRsetsReaderTransaction._name_existsX  s%   € Ø—~”~‰GˆAˆq�!Ø�D‹yÙð &ð r   c                 ó2   — t        | j                  «      dkD  S rô   )rÌ   rë   ©rO   s    r   Ú_changedz RRsetsReaderTransaction._changed^  s   € Ü�4—>‘>Ó" QÑ&Ð&r   c                 óv  — |r·| j                  «       r¦g }| j                  j                  «       D ]k  \  \  }}}}t        j                  j                  ||j                  |j                  |j                  «      }|j                  |«       |j                  |«       Œm | j                  j                  |«       y y y r;   )r  rë   rõ   r   ÚrrsetÚRRsetr-   ry   rñ   ÚupdaterÓ   r?   Ú
set_rrsets)rO   ÚcommitÚrrsetsr   rP   r    r	  s          r   Ú_end_transactionz(RRsetsReaderTransaction._end_transactiona  s“   € Ù�d—m‘m”oØˆFØ*.¯.©.×*>Ñ*>Ö*@Ñ&‘��q˜!˜hÜŸ	™	Ÿ™Ø˜(×*Ñ*¨H¯O©O¸X¿_¹_ó�ð —‘˜XÔ&Ø—‘˜eÕ$ð +Að �L‰L×#Ñ# FÕ+ð &ˆ6r   c                  ó   — y r;   r   )rO   Úorigins     r   rÒ   z#RRsetsReaderTransaction._set_originl  s   € Ør   c                 ó   — t         ‚r;   ©ÚNotImplementedErrorr  s    r   Ú_iterate_rdatasetsz*RRsetsReaderTransaction._iterate_rdatasetso  ó   € Ü!Ð!r   c                 ó   — t         ‚r;   r  r  s    r   Ú_iterate_namesz&RRsetsReaderTransaction._iterate_namesr  r  r   )r   r   r   rQ   rò   rø   rú   rþ   r  r  r  r  rÒ   r  r  Ú__classcell__)rî   s   @r   rè   rè   1  s@   ø„ ôò
:ò	òLò(òòò'ò	,òò"ö"r   rè   c                   ó&  — e Zd Zej                  j
                  dej                  j                  fdej                  j                  dz  de	dej                  j                  fd„Zd„ Zdd„Zd	„ Zd
„ Zdeej"                  j$                     ddfd„Zy)ÚRRSetsReaderManagerFr  NrB   r-   c                 ó<   — || _         || _        || _        g | _        y r;   )r  rB   r-   r  )rO   r  rB   r-   s       r   rQ   zRRSetsReaderManager.__init__w  s    € ð ˆŒØ$ˆŒØˆŒØ-/ˆ�r   c                 ó   — t         ‚r;   r  r  s    r   ÚreaderzRRSetsReaderManager.reader‚  r  r   c                 ó(   — |du sJ ‚t        | dd«      S r  )rè   )rO   rì   s     r   ÚwriterzRRSetsReaderManager.writer…  s   € Ø˜dÑ"Ð"Ð"Ü& t¨T°5Ó9Ð9r   c                 ó   — | j                   S r;   )r-   r  s    r   Ú	get_classzRRSetsReaderManager.get_class‰  s   € Ø�|‰|Ðr   c                 óš   — | j                   rt        j                  j                  }n| j                  }| j                  | j                   |fS r;   )rB   r   r   Úemptyr  )rO   Ú	effectives     r   r@   z&RRSetsReaderManager.origin_informationŒ  s4   € Ø�?Š?ÜŸ™Ÿ™‰IàŸ™ˆIØ—‘˜TŸ_™_¨iÐ8Ð8r   r  r€   c                 ó   — || _         y r;   )r  )rO   r  s     r   r  zRRSetsReaderManager.set_rrsets“  s	   € Øˆ�r   )F)r   r   r   r   r   Úrootrn   ÚINrå   rä   rá   rQ   r  r   r"  r@   r   r	  r
  r  r   r   r   r  r  v  s‹   „ ð (+§x¡x§}¡}Ø Ø-0¯^©^×->Ñ->ñ		0à—‘—‘ Ñ$ð	0ð ð	0ð —‘×*Ñ*ó		0ò"ó:òò9ð  c§i¡i§o¡oÑ!6ð ¸4ô r   r  FÚtextr   rj   r-   Údefault_rdclassry   r4   r±   r  rB   r€   c
                 óÜ  — t        |t        «      r9t        j                  j	                  |t        j                  j
                  |«      }t        |t        «      r!t        j                  j	                  |||«      }t        |t        «      rt        j                  j	                  |«      }t        |t        «      rt        j                  j	                  |«      }|�*t        j                  j                  j                  |«      }nd}t        j                  j                  j                  |«      }|�*t        j                  j                  j                  |«      }nd}t        ||	|«      }
|
j                  d«      5 }t        j                  j                  | d|¬«      }t!        |||d|||||¬«	      }|j#                  «        ddd«       |
j$                  S # 1 sw Y   |
j$                  S xY w)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)r/   r0   r1   r2   r3   r4   )Ú
isinstancert   r   r   rk   r'  rj   rn   rá   Úmakerp   ræ   r  r   rÕ   rÖ   r+   rà   r  )r)  r   rj   r-   r*  ry   r4   r±   r  rB   r?   r   r,   r  s                 r   Úread_rrsetsr.  —  s{  € ôz �&œ#ÔÜ—‘×#Ñ# F¬C¯H©H¯M©M¸:ÓFˆÜ�$œÔÜ�x‰x×!Ñ! $¨°
Ó;ˆÜ�#”sÔÜ�g‰g×Ñ Ó$ˆÜ�+œsÔ#Ü—g‘g×'Ñ'¨Ó4ˆØÐÜ—.‘.×+Ñ+×0Ñ0°Ó9‰àˆÜ—n‘n×/Ñ/×4Ñ4°_ÓE€OØÐÜ—‘×(Ñ(×-Ñ-¨fÓ5‰àˆÜ! &¨*°oÓF€GØ	�‰˜Ô	 Ü�m‰m×%Ñ% d¨IÀ*Ð%ÓMˆÜØØØØ"ØØØ!ØØ#ô

ˆð 	�‰Œ÷ 
ð �>‰>Ð÷ 
ð �>‰>Ðús   Å<AGÇG+)5r   r‹   rr   Ú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.ttlrZ   ÚDNSExceptionr
   r   r#   rÕ   rÖ   r   rå   r�   rä   ÚSavedStateTyper)   r+   râ   rã   rè   ÚTransactionManagerr  rn   r(  r'  rt   rá   rp   ræ   Ú	IDNACodecr	  r
  r.  r   r   r   Ú<module>r@     s6  ðñ$ ã 	Û 
ß 8× 8ã Û Û Û Û Û Û Û Û Û Û Û ô�C—M‘M×.Ñ.ô ô,˜Ÿ™×2Ñ2ô ,ò
ð. Ø‡M�M×ÑØ‡H�H‡M�M�DÑØ‡H�H‡M�M�DÑØˆ$�JØØØØð
ñ	€ò÷V2ñ V2ôrB"˜cŸo™o×9Ñ9ô B"ôJ˜#Ÿ/™/×<Ñ<ô ðF (,ØØ69·n±n×6GÑ6GØ7:·~±~×7HÑ7HØ37Ø$(Ø,0Ø),¯©¯©Øñ]Ø
ð]à
�(‰(�-‰-˜#Ñ
 Ñ
$ð]ð 
ˆt‰ð]ð �^‰^×&Ñ&¨Ñ,¨tÑ3ð	]ð
 —^‘^×.Ñ.°Ñ4ð]ð �M‰M×#Ñ# cÑ)¨DÑ0ð]ð �s‘˜TÑ!ð]ð —‘×"Ñ" TÑ)ð]ð �H‰H�M‰M˜CÑ $Ñ&ð]ð ð]ð 
ˆ#�)‰)�/‰/Ñô]r   