+
    ni/                     R   R t ^ RI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It^ RIt^ RIt ! R R]P                   P"                  4      t ! R R]P&                  P(                  4      t]t]P.                  t]P0                  t]P2                  t]P4                  tR# )zDNS Dynamic Update Support)AnyListNc                   D   a  ] tR t^#t o Rt^ t^t^t^t]	R 4       t
RtV tR# )UpdateSectionzUpdate sectionsc                    ^# )    )clss   &dC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO\maestro-backend\venv\Lib\site-packages\dns/update.py_maximumUpdateSection._maximum+   s        r   N)__name__
__module____qualname____firstlineno____doc__ZONEPREREQUPDATE
ADDITIONALclassmethodr   __static_attributes____classdictcell__)__classdict__s   @r
   r   r   #   s.     DFFJ r   r   c                     a a ] tR t^0t o]tR]P                  P                  RR]P                  P                  R3V3R lV 3R lllt]V3R lR l4       t]P                  R 4       t]V3R lR l4       t]P                  R	 4       t]V3R
 lR l4       t]P                  R 4       tRR ltR tV3R lR ltV3R lR ltV3R lR ltV3R lR ltRV3R lR lltR tR tRtVtV ;t# )UpdateMessageNc                6  < V ^8  d   QhRS[ P                  P                  S[,          R,          RS[ P                  P
                  RS[R,          RS[ P                  P                  R,          RS[ P                  P                  S[,          RS[R,          /# )   zoneNrdclasskeyringkeynamekeyalgorithmid)dnsnameNamestr
rdataclass
RdataClassr   int)formatr   s   "r
   __annotate__UpdateMessage.__annotate__4   s     )D )Dhhmmc!D()D **)D t	)D
 %)D hhmmc))D $J)Dr   c           	     t  < \         SV `  VR7       V ;P                  \        P                  P                  \        P                  P                  4      ,          un        \        V\        4      '       d    \        P                  P                  V4      pWn        \        P                  P                  P                  V4      pW n        V P                  '       dD   V P!                  V P"                  V P                  V\        P$                  P&                  RRR7       Ve   V P)                  W4VR7       R# R# )a(  Initialize a new DNS Update object.

See the documentation of the Message class for a complete
description of the keyring dictionary.

*zone*, a ``dns.name.Name``, ``str``, or ``None``, the zone
which is being updated.  ``None`` should only be used by dnspython's
message constructors, as a zone is required for the convenience
methods like ``add()``, ``replace()``, etc.

*rdclass*, an ``int`` or ``str``, the class of the zone.

The *keyring*, *keyname*, and *keyalgorithm* parameters are passed to
``use_tsig()``; see its documentation for details.
)r$   T)createforce_uniqueN)	algorithm)super__init__flagsr%   opcodeto_flagsr   
isinstancer(   r&   	from_textoriginr)   r*   makezone_rdclass
find_rrsetr   	rdatatypeSOAuse_tsig)selfr   r    r!   r"   r#   r$   	__class__s   &&&&&&&r
   r4   UpdateMessage.__init__4   s    0 	B

cjj))#***;*;<<
dC  88%%d+D..++009#;;;OO		!!!   MM'lMC r   c                X   < V ^8  d   QhRS[ S[P                  P                  ,          /# r   returnr   r%   rrsetRRset)r,   r   s   "r
   r-   r.   `   s!        d399??+  r   c                (    V P                   ^ ,          # )zThe zone section.sectionsrA   s   &r
   r   UpdateMessage.zone_        }}Qr   c                "    WP                   ^ &   R# )    NrK   rA   vs   &&r
   r   rN   d       ar   c                X   < V ^8  d   QhRS[ S[P                  P                  ,          /# rE   rG   )r,   r   s   "r
   r-   r.   i   s!        d399??3  r   c                (    V P                   ^,          # )zThe prerequisite section.rK   rM   s   &r
   prerequisiteUpdateMessage.prerequisiteh   rO   r   c                "    WP                   ^&   R# )   NrK   rR   s   &&r
   rW   rX   m   rT   r   c                X   < V ^8  d   QhRS[ S[P                  P                  ,          /# rE   rG   )r,   r   s   "r
   r-   r.   r   s!        SYY__-  r   c                (    V P                   ^,          # )zThe update section.rK   rM   s   &r
   updateUpdateMessage.updateq   rO   r   c                "    WP                   ^&   R# )r   NrK   rR   s   &&r
   r]   r^   v   rT   r   c           
         Vf   V P                   pVP                  4       pV P                  WQV P                  VP                  WdRR4      pVP                  W24       R# )z&Add a single RR to the update section.NT)r]   coversr=   r<   rdtypeadd)rA   r&   ttlrddeletingsectionra   rH   s   &&&&&&  r
   _add_rrUpdateMessage._add_rrz   sQ     ?kkG4,,bii4QU
 			"r   c           	        \        V\        4      '       d!   \        P                  P	                  VR4      p\        V^ ,          \        P
                  P                  4      '       dU   V FL  pV'       d   V P                  W5P                  4       V F   pV P                  W5P                  WbR7       K"  	  KN  	  R# \        V4      p\        VP                  ^ 4      4      p\        V^ ,          \        P                  P                  4      '       dI   V'       d#   V P                  W4^ ,          P                  4       V F  pV P                  W7WbR7       K  	  R# \        P                   P"                  P%                  VP                  ^ 4      4      pV'       d   V P                  W84       V FK  p	\        P                  P	                  V P&                  WV P(                  4      pV P                  W7WbR7       KM  	  R# )ah  Add records.

*replace* is the replacement mode.  If ``False``,
RRs are added to an existing RRset; if ``True``, the RRset
is replaced with the specified contents.  The second
argument is the section to add to.  The third argument
is always a name.  The other arguments can be:

        - rdataset...

        - ttl, rdata...

        - ttl, rdtype, string...
N)rg   )r8   r(   r%   r&   r9   rdatasetRdatasetdeleterb   rh   rd   listr+   poprdataRdatar>   	RdataTyper;   r<   r:   )
rA   replacerg   r&   argsrdsre   rd   rb   ss
   &&&&*     r
   _addUpdateMessage._add   sS     dC  88%%dD1Dd1gs||4455KKjj1BLLwwLD   :Ddhhqk"C$q'399??33KK1gnn5BLLBL@  0055dhhqkBKK-A,,T->->4;;WBLLBL@ r   c                b   < V ^8  d   QhRS[ P                  P                  S[,          RS[RR/# r   r&   rt   rF   Nr%   r&   r'   r(   r   )r,   r   s   "r
   r-   r.      s/     3 3+ 3C 3D 3r   c                F    V P                   ! RV P                  V.VO5!   R# )zAdd records.

The first argument is always a name.  The other
arguments can be:

        - rdataset...

        - ttl, rdata...

        - ttl, rdtype, string...
FNrw   r]   rA   r&   rt   s   &&*r
   rc   UpdateMessage.add   s     			%d2T2r   c                b   < V ^8  d   QhRS[ P                  P                  S[,          RS[RR/# rz   r{   )r,   r   s   "r
   r-   r.      s4     :G :G388==3. :Gs :Gt :Gr   c           
        \        V\        4      '       d!   \        P                  P	                  VR4      p\        V4      ^ 8X  d   V P                  V P                  V\        P                  P                  \        P                  P                  \        P                  P                  \        P                  P                  RR4       R# \        V^ ,          \        P                  P                  4      '       dA   V F8  pV F/  pV P                  V^ V\        P                  P                  4       K1  	  K:  	  R# \        V4      p\        V^ ,          \        P                   P"                  4      '       d8   V F/  pV P                  V^ V\        P                  P                  4       K1  	  R# \        P                  P$                  P'                  VP)                  ^ 4      4      p\        V4      ^ 8X  d_   V P                  V P                  VV P*                  V\        P                  P                  \        P                  P                  RR4       R# V Fe  p\        P                   P	                  V P*                  VVV P,                  4      pV P                  V^ V\        P                  P                  4       Kg  	  R# )zDelete records.

The first argument is always a name.  The other
arguments can be:

        - *empty*

        - rdataset...

        - rdata...

        - rdtype, [string...]
NT)r8   r(   r%   r&   r9   lenr=   r]   r)   ANYr>   NONErk   rl   rh   rn   rp   rq   rr   r;   ro   r<   r:   )rA   r&   rt   ru   re   largsrb   rv   s   &&*     r
   rm   UpdateMessage.delete   s    dC  88%%dD1Dt9>OO""!!""""	 Q!6!677BLLq"cnn.A.AB   JE%(CIIOO44BLLq"cnn.A.AB   0055eiilCu:?OO))****	 # YY00 --" KK	 T1b#..2E2EF #r   c                b   < V ^8  d   QhRS[ P                  P                  S[,          RS[RR/# rz   r{   )r,   r   s   "r
   r-   r.      s/     2 2CHHMMC/ 2 2 2r   c                F    V P                   ! RV P                  V.VO5!   R# )a"  Replace records.

The first argument is always a name.  The other
arguments can be:

        - rdataset...

        - ttl, rdata...

        - ttl, rdtype, string...

Note that if you want to replace the entire node, you should do
a delete of the name followed by one or more calls to add.
TNr}   r~   s   &&*r
   rs   UpdateMessage.replace   s      			$T1D1r   c                b   < V ^8  d   QhRS[ P                  P                  S[,          RS[RR/# rz   r{   )r,   r   s   "r
   r-   r.   
  s/     3 3CHHMMC/ 3 3 3r   c           
     v   \        V\        4      '       d!   \        P                  P	                  VR4      p\        V4      ^ 8X  dm   V P                  V P                  V\        P                  P                  \        P                  P                  \        P                  P                  RRR4       R# \        V^ ,          \        P                  P                  4      '       gB   \        V^ ,          \        P                  P                  4      '       g   \        V4      ^8  d   \        V^ ,          \        P                  P                  4      '       g@   \!        V4      pVP#                  ^ ^ 4       V P$                  ! RV P                  V.VO5!   R# V P$                  ! RV P                  V.VO5!   R# \        P                  P&                  P)                  V^ ,          4      pV P                  V P                  V\        P                  P                  V\        P                  P                  RRR4       R# )a  Require that an owner name (and optionally an rdata type,
or specific rdataset) exists as a prerequisite to the
execution of the update.

The first argument is always a name.
The other arguments can be:

        - rdataset...

        - rdata...

        - rdtype, string...
NTF)r8   r(   r%   r&   r9   r   r=   rW   r)   r   r>   r   rk   rl   rp   rq   rn   insertrw   rr   r;   )rA   r&   rt   r   rb   s   &&*  r
   presentUpdateMessage.present
  s    dC  88%%dD1Dt9>OO!!""!!""	 tAw 5 566$q'399??334y1}d1gs||'<'<==T
Q"		%!2!2DA5A		%!2!2D@4@]],,11$q':FOO!!""""	r   c                   < V ^8  d   QhRS[ P                  P                  S[,          RS[ P                  P
                  S[,          R,          RR/# )r   r&   rb   NrF   )r%   r&   r'   r(   r>   rr   )r,   r   s   "r
   r-   r.   ?  sJ        hhmmc!  ''#-4  
	 r   c           
     H   \        V\        4      '       d!   \        P                  P	                  VR4      pVfm   V P                  V P                  V\        P                  P                  \        P                  P                  \        P                  P                  RRR4       R# \        P                  P                  P                  V4      pV P                  V P                  V\        P                  P                  V\        P                  P                  RRR4       R# )zzRequire that an owner name (and optionally an rdata type) does
not exist as a prerequisite to the execution of the update.NT)r8   r(   r%   r&   r9   r=   rW   r)   r   r>   r   rr   r;   )rA   r&   rb   s   &&&r
   absentUpdateMessage.absent?  s     dC  88%%dD1D>OO!!##!!""	 ]],,11&9FOO!!##""	r   c                    R # )Tr   )rA   values   &&r
   _get_one_rr_per_rrset#UpdateMessage._get_one_rr_per_rrseta  s    r   c                   R pRpV\         P                  8X  dr   \        P                  P	                  V4      '       g2   V\        P
                  P                  8w  g   V P                  '       d   \        P                  P                  hMV P                  '       g   \        P                  P                  hV\        P                  P                  \        P                  P                  39   dX   TpV P                  ^ ,          P                  pV\        P                  P                  8H  ;'       g    V\         P                  8H  pW4WV3# )NF)r   r   r%   r)   is_metaclassr>   r?   r   	exception	FormErrorr   r   r    r   )rA   rg   r&   r    rb   rf   emptys   &&&&&  r
   _parse_rr_headerUpdateMessage._parse_rr_headere  s    m(((++G44S]]...999mm---  999mm---3>>--s~~/B/BCC"))A,.. 2 22UUgAUAU6U  11r   )r:   r<   )NN)N)r   r   r   r   r   _section_enumr%   r)   INtsigdefault_algorithmr4   propertyr   setterrW   r]   rh   rw   rc   rm   rs   r   r   r   r   r   r   __classcell__)rB   r   s   @@r
   r   r   0   s    !M ,0-0^^->->"(,,/HH,F,F)D )DV     
[[            ]] 	&AP3 3:G :Gx2 2$3 3j   D2 2r   r   )r   typingr   r   dns.enumr%   dns.exceptiondns.messagedns.name
dns.opcode	dns.rdatadns.rdataclassdns.rdatasetdns.rdatatype	dns.rrsetdns.tsigenumIntEnumr   messageMessager   Updater   r   r   r   r   r   r
   <module>r      s   $ !            
CHH$$ 
H2CKK'' H2X
 
 						%%
r   