+
    +O|jA.  ã                   óö  € R t ^ RIt^ RIt^ RIHtHtHtHt ^ RIt	^ RI
t	^ RIt	^ RIt	^ RIt	^ RIt	^ RIt	^ RIt	 ! R R]	P"                  P$                  4      t]	P(                  P*                  t]	P(                  P.                  t]	P(                  P2                  t]	P(                  P4                  t]	P(                  P6                  t]	P(                  P8                  t ! R R]	P(                  P:                  4      tR# )zDNS Versioned Zones.N)ÚCallableÚDequeÚSetÚcastc                   ó   € ] tR t^tRtRtR# )ÚUseTransactionz-To alter a versioned zone, use a transaction.© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    ÚFC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\dns/versioned.pyr   r      s   † Ý7r   r   c                   ó  a a€ ] tR t^ t o. R%Ot]t]P                  P                  RR3V3R lV 3R lllt
R&V3R lR lltR'V3R lR	 lltR
 tR tR tV3R lR ltV3R lR ltR tR tR tR tR tR tR'V3R lV 3R llltV3R lR lt]P4                  P6                  R3V3R lV 3R lllt]P4                  P6                  R3V3R lV 3R lllt]P4                  P6                  3V3R lR  lltV3R! lR" ltV3R# lt R$t!Vt"V ;t## )(ÚZoneTNc                óÖ   <€ V ^8„  d   QhRS[ P                  P                  S[,          R,          RS[ P                  P
                  RS[RS[RS[.S[R,          3,          R,          /# )é   ÚoriginNÚrdclassÚ
relativizeÚpruning_policyr   )	ÚdnsÚnameÚNameÚstrÚ
rdataclassÚ
RdataClassÚboolr   ÚVersion)ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚZone.__annotate__-   sg   ø€ ÷ #
ñ #
á—‘—‘¡Õ# dÕ*ð#
ñ —‘×*Ñ*ð#
ñ ð	#
ñ
 ! &©'Ð!2±D¸4µKÐ!?Õ@À4ÕGñ#
r   c                ór  <€ \         SV `  WV4       \        P                  ! 4       V n        \
        P                  ! 4       V n        Vf   V P                  V n	        MW@n	        RV n
        RV n        \        P                  ! 4       V n        \        4       V n        V P                  R\!        V RR7      V4       R# )ar  Initialize a versioned zone object.

*origin* is the origin of the zone.  It may be a ``dns.name.Name``,
a ``str``, or ``None``.  If ``None``, then the zone's origin will
be set by the first ``$ORIGIN`` line in a zone file.

*rdclass*, an ``int``, the zone's rdata class; the default is class IN.

*relativize*, a ``bool``, determine's whether domain names are
relativized to the zone's origin.  The default is ``True``.

*pruning policy*, a function taking a ``Zone`` and a ``Version`` and returning
a ``bool``, or ``None``.  Should the version be pruned?  If ``None``,
the default policy, which retains one version is used.
NT)Úreplacement)ÚsuperÚ__init__ÚcollectionsÚdequeÚ	_versionsÚ	threadingÚLockÚ_version_lockÚ_default_pruning_policyÚ_pruning_policyÚ
_write_txnÚ_write_eventÚ_write_waitersÚsetÚ_readersÚ_commit_version_unlockedÚWritableVersion)Úselfr   r   r   r   Ú	__class__s   &&&&&€r   r(   ÚZone.__init__-   s’   ø€ ô, 	‰Ñ˜¨*Ô5Ü)4×):Ò):Ó)<ˆŒÜ&Ÿ^š^Ó-ˆÔØÒ!Ø#'×#?Ñ#?ˆDÕ à#1Ô Ø.2ˆŒØ48ˆÔÜ6A×6GÒ6GÓ6IˆÔÜ*-«%ˆŒØ×%Ñ%Ø”/ $°DÔ9¸6ö	
r   c                óH   <€ V ^8„  d   QhRS[ R,          RS[ R,          RS[/# )r   ÚidNÚserialÚreturn)ÚintÚTransaction)r!   r"   s   "€r   r#   r$   R   s-   ø€ ÷ %ñ %Ù˜•*ð%Ù-0°4­Zð%á	ñ%r   c                ó
  € Ve   Ve   \        R4      hV P                  ;_uu_ 4        VeE   R p\        V P                  4       F  pVP                  V8X  g   K  Tp M	  Vf   \        R4      hEMLVEe5   V P                  '       d   \        P                  P                  pMV P                  f   Q hV P                  pR p\        V P                  4       FÀ  pVP                  P                  V4      pV'       g   K(  VP                  V P                  \        P                  P                   4      pVf   Kb  \#        \        P$                  P&                  P                   P                   V^ ,          4      pV'       g   K«  VP(                  V8X  g   K¾  Tp M	  Vf   \        R4      hMV P                  R,          p\+        V RV4      p	V P,                  P/                  V	4       V	uuR R R 4       #   + '       g   i     R # ; i)Nz!cannot specify both id and serialzversion not foundzserial not foundFéÿÿÿÿ)Ú
ValueErrorr.   Úreversedr+   r<   ÚKeyErrorr   r   r   Úemptyr   ÚnodesÚgetÚget_rdatasetr   Ú	rdatatypeÚSOAr   ÚrdtypesÚANYr=   r@   r5   Úadd)
r8   r<   r=   ÚversionÚvÚonameÚnÚrdsÚsoaÚtxns
   &&&       r   ÚreaderÚZone.readerR   s�  € ð Š>˜fÒ0ÜÐ@ÓAÐAØ××ÓØŠ~Ø�Ü! $§.¡.Ö1�AØ—t‘t˜r–zØ"#˜Ùñ 2ð ’?Ü"Ð#6Ó7Ð7ñ #àÓ#Ø—?—?�?ÜŸH™HŸN™N‘EàŸ;™;Ò2Ð2Ð2Ø ŸK™K�EØ�Ü! $§.¡.Ö1�AØŸ™Ÿ™ EÓ*�Aß‘qØŸn™n¨T¯\©\¼3¿=¹=×;LÑ;LÓM˜Øš;Ù$Ü"¤3§;¡;§?¡?×#6Ñ#6×#:Ñ#:¸CÀ½FÓC˜ß™3 3§:¡:°Ö#7Ø&'˜GÙ!ñ 2ð ’?Ü"Ð#5Ó6Ð6ð #ð Ÿ.™.¨Õ,�Ü˜d E¨7Ó3ˆCØ�M‰M×Ñ˜cÔ"Ø÷A  ××Óús,   ¨-G1Á-G1ÂA1G1Ã>A>G1ÆG1ÆAG1Ç1H	Fc                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   r&   r>   )r   r@   )r!   r"   s   "€r   r#   r$   y   s   ø€ ÷ /ñ /¡$ð /±;ñ /r   c                óº  € R p V P                   ;_uu_ 4        V P                  f4   W P                  8X  d$   \        WRR7      V n        R V n         R R R 4       MJ\        P
                  ! 4       pV P                  P                  V4       R R R 4       VP                  4        K¡  V P                  P                  4        V P                  #   + '       g   i     LH; i)NT)Úmake_immutable)
r.   r1   r2   r@   r,   ÚEventr3   ÚappendÚwaitÚ_setup_version)r8   r&   Úevents   && r   ÚwriterÚZone.writery   s¬   € ØˆØØ×#×#Ó#ð
 —?‘?Ò*¨u×8IÑ8IÔ/Iô '2Ø¸$ô'�D”Oð )-�DÔ%Ø÷! $Ð#ô( "ŸšÓ)�Ø×#Ñ#×*Ñ*¨5Ô1÷+ $ðR �J‰JŽLà�‰×&Ñ&Ô(Ø�‰Ð÷Y $×#ús   ˜9C
Á0C
Ã
C	c                ó°   € \        V P                  4      ^ 8”  d<   V P                  P                  4       V n        V P                  P	                  4        R# R# )é    N)Úlenr3   Úpopleftr2   r4   )r8   s   &r   Ú!_maybe_wakeup_one_waiter_unlockedÚ&Zone._maybe_wakeup_one_waiter_unlockedª   sC   € Üˆt×"Ñ"Ó# aÔ'Ø $× 3Ñ 3× ;Ñ ;Ó =ˆDÔØ×Ñ×!Ñ!Ö#ñ (r   c                ó   € R # )Tr   )r8   ÚzonerO   s   &&&r   r/   ÚZone._default_pruning_policy°   s   € Ùr   c                ó¶  € \        V P                  4      ^ 8”  g   Q h\        V P                  4      ^ 8”  d   \        R V P                   4       4      pMV P                  R,          P                  pV P                  ^ ,          P                  V8  dG   V P                  W P                  ^ ,          4      '       d   V P                  P                  4        Kf  R# R# )rc   c              3   óL   "  € T F  qP                   P                  x € K  	  R # 5i©N)rO   r<   )Ú.0rU   s   & r   Ú	<genexpr>Ú0Zone._prune_versions_unlocked.<locals>.<genexpr>¿   s   é € ÐE±}°Ÿ[™[Ÿ^ž^³}ùs   ‚"$NrB   )rd   r+   r5   Úminr<   r0   re   )r8   Ú
least_kepts   & r   Ú_prune_versions_unlockedÚZone._prune_versions_unlockedµ   s£   € Ü�4—>‘>Ó" QÔ&Ð&Ð&ô ˆt�}‰}Ó Ô!ÜÑE°t·}²}ÓEÓE‰JàŸ™¨Õ+×.Ñ.ˆJØ�n‰n˜QÕ×"Ñ" ZÔ/°D×4HÑ4HØ—.‘. Õ#÷5
ò 5
ð �N‰N×"Ñ"Ö$ñ5
Ñ/r   c                ó2   <€ V ^8„  d   QhRS[ R,          RR/# )r   Úmax_versionsNr>   )r?   )r!   r"   s   "€r   r#   r$   Ç   s   ø€ ÷ (ñ (©S°4­Zð (¸Dñ (r   c                ór   a€ Se   S^8  d   \        R4      hSf   R pMV3R lpV P                  V4       R# )zISet a pruning policy that retains up to the specified number
of versions
Nzmax versions must be at least 1c                 ó   € R # ©Fr   )ri   Ú_s   &&r   ÚpolicyÚ%Zone.set_max_versions.<locals>.policyÏ   s   € Ùr   c                 ó4   <€ \        V P                  4      S8„  # rm   )rd   r+   )ri   rz   rv   s   &&€r   r{   r|   Ô   s   ø€ Ü˜4Ÿ>™>Ó*¨\Ñ9Ð9r   )rC   Úset_pruning_policy)r8   rv   r{   s   &f r   Úset_max_versionsÚZone.set_max_versionsÇ   s>   ø€ ð Ò#¨°qÔ(8ÜÐ>Ó?Ð?ØÒóõ
:ð 	×Ñ Ö'r   c                óZ   <€ V ^8„  d   QhRS[ RS[.S[R,          3,          R,          RR/# )r   r{   r   Nr>   )r   r    r   )r!   r"   s   "€r   r#   r$   Ù   s5   ø€ ÷ ,ñ ,Ù ©Ð0±$¸µ+Ð=Õ>ÀÕEð,à	ñ,r   c                ó´   € Vf   V P                   pV P                  ;_uu_ 4        Wn        V P                  4        RRR4       R#   + '       g   i     R# ; i)a£  Set the pruning policy for the zone.

The *policy* function takes a `Version` and returns `True` if
the version should be pruned, and `False` otherwise.  `None`
may also be specified for policy, in which case the default policy
is used.

Pruning checking proceeds from the least version and the first
time the function returns `False`, the checking stops.  I.e. the
retained versions are always a consecutive sequence.
N)r/   r.   r0   rs   )r8   r{   s   &&r   r~   ÚZone.set_pruning_policyÙ   sA   € ð Š>Ø×1Ñ1ˆFØ××ÓØ#)Ô Ø×)Ñ)Ô+÷  ××Òús   ¥AÁA	c                ó¾   € V P                   ;_uu_ 4        V P                  P                  V4       V P                  4        R R R 4       R #   + '       g   i     R # ; irm   )r.   r5   Úremovers   ©r8   rU   s   &&r   Ú	_end_readÚZone._end_readí   s;   € Ø××ÓØ�M‰M× Ñ  Ô%Ø×)Ñ)Ô+÷  ××Òús   •,AÁA	c                óZ   € V P                   V8X  g   Q hR V n         V P                  4        R # rm   )r1   rf   r†   s   &&r   Ú_end_write_unlockedÚZone._end_write_unlockedò   s'   € Ø�‰ #Ô%Ð%Ð%ØˆŒØ×.Ñ.Ö0r   c                óŠ   € V P                   ;_uu_ 4        V P                  V4       R R R 4       R #   + '       g   i     R # ; irm   )r.   rŠ   r†   s   &&r   Ú
_end_writeÚZone._end_write÷   s+   € Ø××ÓØ×$Ñ$ SÔ)÷  ××Òús	   •1±A	c                óÔ   € V P                   P                  V4       V P                  4        VP                  V n        V P                  f   W0n        Ve   V P                  V4       R # R # rm   )r+   r\   rs   rG   r   rŠ   ©r8   rU   rO   r   s   &&&&r   r6   ÚZone._commit_version_unlockedû   sR   € Ø�‰×Ñ˜gÔ&Ø×%Ñ%Ô'Ø—]‘]ˆŒ
Ø�;‰;ÒØ ŒKàŠ?Ø×$Ñ$ SÖ)ñ r   c                óŒ   € V P                   ;_uu_ 4        V P                  WV4       R R R 4       R #   + '       g   i     R # ; irm   )r.   r6   r�   s   &&&&r   Ú_commit_versionÚZone._commit_version  s-   € Ø××ÓØ×)Ñ)¨#¸Ô?÷  ××Òús	   •2²A	c                óŠ   € \        V P                  4      ^ 8”  d'   V P                  R,          P                  ^,           pV# ^pV# )rc   rB   )rd   r+   r<   )r8   r<   s   & r   Ú_get_next_version_idÚZone._get_next_version_id	  s?   € Üˆt�~‰~Ó Ô"Ø—‘ Õ#×&Ñ&¨Õ*ˆBð ˆ	ð ˆBØˆ	r   c                óŒ   <€ V ^8„  d   QhRS[ P                  P                  S[,          RS[RS[ P
                  P                  /# )r   r   Úcreater>   )r   r   r   r   r   ÚnodeÚNode)r!   r"   s   "€r   r#   r$     s:   ø€ ÷ 'ñ 'Ù—H‘H—M‘M¡CÕ'ð'Ù15ð'á	�‰�‰ñ'r   c                ó>   <€ V'       d   \         h\        SV `	  V4      # rm   )r   r'   Ú	find_node)r8   r   r™   r9   s   &&&€r   r�   ÚZone.find_node  s   ø€ ÷ Ü Ð Ü‰wÑ  Ó&Ð&r   c                ó\   <€ V ^8„  d   QhRS[ P                  P                  S[,          RR/# )r   r   r>   N)r   r   r   r   )r!   r"   s   "€r   r#   r$     s(   ø€ ÷ ñ ¡§¡§¡±Õ 3ð ¸ñ r   c                ó   € \         hrm   ©r   )r8   r   s   &&r   Údelete_nodeÚZone.delete_node  s   € ÜÐr   c          
      ó  <€ V ^8„  d   QhRS[ P                  P                  S[,          RS[ P                  P
                  S[,          RS[ P                  P
                  S[,          RS[RS[ P                  P                  /# )r   r   ÚrdtypeÚcoversr™   r>   ©	r   r   r   r   rJ   Ú	RdataTyper   ÚrdatasetÚRdataset)r!   r"   s   "€r   r#   r$     sr   ø€ ÷ 
8ñ 
8á�h‰h�m‰m™cÕ!ð
8ñ —‘×'Ñ'©#Õ-ð
8ñ —‘×'Ñ'©#Õ-ð	
8ñ
 ð
8ñ 
�‰×	Ñ	ñ
8r   c                ó~   <€ V'       d   \         h\        SV `	  WV4      p\        P                  P                  V4      # rm   )r   r'   Úfind_rdatasetr   r©   ÚImmutableRdataset©r8   r   r¥   r¦   r™   r©   r9   s   &&&&& €r   r¬   ÚZone.find_rdataset  s4   ø€ ÷ Ü Ð Ü‘7Ñ(¨°vÓ>ˆÜ�|‰|×-Ñ-¨hÓ7Ð7r   c                ó  <€ V ^8„  d   QhRS[ P                  P                  S[,          RS[ P                  P
                  S[,          RS[ P                  P
                  S[,          RS[RS[ P                  P                  R,          /# )r   r   r¥   r¦   r™   r>   Nr§   )r!   r"   s   "€r   r#   r$   &  sw   ø€ ÷ ñ á�h‰h�m‰m™cÕ!ðñ —‘×'Ñ'©#Õ-ðñ —‘×'Ñ'©#Õ-ð	ñ
 ðñ 
�‰×	Ñ	 Õ	%ñr   c                óŠ   <€ V'       d   \         h\        SV `	  WV4      pVe    \        P                  P                  V4      # R # rm   )r   r'   rI   r   r©   r­   r®   s   &&&&& €r   rI   ÚZone.get_rdataset&  s=   ø€ ÷ Ü Ð Ü‘7Ñ'¨°fÓ=ˆØÒÜ—<‘<×1Ñ1°(Ó;Ð;ár   c                óØ   <€ V ^8„  d   QhRS[ P                  P                  S[,          RS[ P                  P
                  S[,          RS[ P                  P
                  S[,          RR/# )r   r   r¥   r¦   r>   N)r   r   r   r   rJ   r¨   )r!   r"   s   "€r   r#   r$   5  s^   ø€ ÷ ñ á�h‰h�m‰m™cÕ!ðñ —‘×'Ñ'©#Õ-ðñ —‘×'Ñ'©#Õ-ð	ð
 
ñr   c                ó   € \         hrm   r¡   )r8   r   r¥   r¦   s   &&&&r   Údelete_rdatasetÚZone.delete_rdataset5  s
   € ô Ðr   c                óŠ   <€ V ^8„  d   QhRS[ P                  P                  S[,          RS[ P                  P
                  RR/# )r   r   r&   r>   N)r   r   r   r   r©   rª   )r!   r"   s   "€r   r#   r$   =  s<   ø€ ÷ ñ Ù—H‘H—M‘M¡CÕ'ðÙ69·l±l×6KÑ6Kðà	ñr   c                ó   € \         hrm   r¡   )r8   r   r&   s   &&&r   Úreplace_rdatasetÚZone.replace_rdataset=  s
   € ô Ðr   c                ób   <€ V ^8„  d   Qh/ S[ . S[P                  P                  3,          ;R&   # )r   Únode_factory)r   r   rš   r›   )r!   r"   s   "€r   r#   r$       s$   ø‡ ‚ ñ ˜2™sŸx™xŸ}™}Ð,Õ-Ñ4ò r   )	r0   r5   r.   r+   r2   r1   r3   rG   r   )r+   Ú_versions_lockr1   r3   r2   r0   r5   )NNry   )$r	   r
   r   r   Ú	__slots__r›   r¼   r   r   ÚINr(   rV   r`   rf   r/   rs   r   r~   r‡   rŠ   r�   r6   r“   r–   r�   r¢   rJ   ÚNONEr¬   rI   rµ   r¹   Ú__annotate_func__r   Ú__classdictcell__Ú__classcell__)r9   r"   s   @@r   r   r       s  ù‡ € ò€Ið 15€Lð
 .1¯^©^×->Ñ->ØØJN÷#
õ #
÷J%ò %÷N/ò /òb$òò
%÷$(ð (÷$,ð ,ò(,ò
1ò
*ò*ò@ò÷'õ '÷ð ð 14·±×0BÑ0BØ÷
8õ 
8ð  14·±×0BÑ0BØ÷õ ð& 14·±×0BÑ0B÷	ò ÷ð ÷{ … r   r   )r   r)   r,   Útypingr   r   r   r   Údns.exceptionr   Údns.nameÚdns.nodeÚdns.rdataclassÚdns.rdatasetÚdns.rdatatypeÚdns.rdtypes.ANY.SOAÚdns.zoneÚ	exceptionÚDNSExceptionr   ri   ÚVersionedNoder›   ÚImmutableVersionedNodeÚImmutableNoder    r7   ÚImmutableVersionr@   r   r   r   r   Ú<module>rÓ      s·   ðñ ã Û ß -Ó -ã Û Û Û Û Û Û Û ô8�S—]‘]×/Ñ/ô 8ð
 ‡x�x×Ñ€Ø—‘×/Ñ/€Ø
�(‰(×
Ñ
€Ø—(‘(×*Ñ*€Ø—8‘8×,Ñ,Ð Ø�h‰h×"Ñ"€ô`ˆ3�8‰8�=‰=ö `r   