+
    niE5              	          ^ 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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.                  P0                  4      t ! R R]P.                  P4                  4      t ! R R]P.                  P0                  4      t ! R	 R
4      t^ RRRRRRR]P<                  P>                  3	R R llt R R lt!R# )    )AnyListTuplecastNc                   6   a a ] tR t^'t oRtV 3R ltRtVtV ;t# )TransferErrorz.A zone transfer response got a non-zero rcode.c                v   < R \         P                  P                  V4       2p\        SV `  V4       Wn        R# )zZone transfer error: N)dnsrcodeto_textsuper__init__)selfr   message	__class__s   && aC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO\maestro-backend\venv\Lib\site-packages\dns/xfr.pyr   TransferError.__init__*   s1    )#))*;*;E*B)CD!
    )r   )	__name__
__module____qualname____firstlineno____doc__r   __static_attributes____classdictcell____classcell__)r   __classdict__s   @@r   r   r   '   s     8 r   r   c                       ] tR t^0tRtRtR# )SerialWentBackwardsz:The current serial number is less than the serial we know. Nr   r   r   r   r   r   r    r   r   r   r   0   s    Dr   r   c                       ] tR t^4tRtRtR# )UseTCPz'This IXFR cannot be completed with UDP.r    Nr!   r    r   r   r#   r#   4   s    1r   r#   c                      a  ] tR t^8t o Rt]P                  P                  RR3V 3R lR lltV 3R lR lt	R t
R	 tR
tV tR# )Inboundz#
State machine for zone transfers.
NFc                   < V ^8  d   QhRS[ P                  P                  RS[ P                  P                  RS[R,          RS[/# )   txn_managerrdtypeserialNis_udp)r
   transactionTransactionManager	rdatatype	RdataTypeintbool)formatr   s   "r   __annotate__Inbound.__annotate__=   sK     &! &!__77&! ''&! d
	&!
 &!r   c                   Wn         RV n        W n        V\        P                  P
                  8X  d   Vf   \        R4      hRV n        MEV\        P                  P                  8X  d   V'       d   \        R4      hRV n        M\        R4      hW0n	        W@n
        VP                  4       w   qPn        RV n        RV n        RV n        RV n        R# )a9  Initialize an inbound zone transfer.

*txn_manager* is a :py:class:`dns.transaction.TransactionManager`.

*rdtype* can be `dns.rdatatype.AXFR` or `dns.rdatatype.IXFR`

*serial* is the base serial number for IXFRs, and is required in
that case.

*is_udp*, a ``bool`` indidicates if UDP is being used for this
XFR.
Nz,a starting serial must be supplied for IXFRsTzis_udp specified for AXFRFzrdtype is not IXFR or AXFR)r(   txnr)   r
   r.   IXFR
ValueErrorincrementalAXFRr*   r+   origin_informationoriginsoa_rdatasetdoneexpecting_SOAdelete_mode)r   r(   r)   r*   r+   _s   &&&&& r   r   Inbound.__init__=   s    & '7;S]]'''~ !OPP#Ds}}))) !<==$D9::)<<>A{:>	" r   c                N   < V ^8  d   QhRS[ P                  P                  RS[/# )r'   r   return)r
   r   Messager1   )r2   r   s   "r   r3   r4   e   s)     Q Qs{{':': Qt Qr   c                   V P                   f0   V P                  P                  V P                  '       * 4      V n         VP	                  4       pV\
        P                  P                  8w  d   \        V4      h\        VP                  4      ^ 8  d   VP                  ^ ,          P                  V P                  8w  d    \
        P                  P                  R4      hVP                  ^ ,          P                  V P                  8w  d    \
        P                  P                  R4      h^ pV P                  Ef   VP                   '       d-   VP                   ^ ,          P                  V P                  8w  d    \
        P                  P                  R4      hVP                   ^ ,          pTpVP                  \
        P"                  P$                  8w  d    \
        P                  P                  R4      h^pVP'                  4       V n        V P                  '       d   V P                  f   Q h\)        \
        P*                  P,                  P$                  P$                  V P                  ^ ,          4      pVP.                  V P.                  8X  d	   RV n        Mz\
        P.                  P3                  VP.                  4      V P.                  8  d   \4        hV P6                  '       d$   \        VP                   VR 4      ^ 8X  d   \8        hRV n        VP                   VR  EF  pVP                  pTpV P0                  '       d    \
        P                  P                  R4      hV P                   f   Q hVP                  \
        P"                  P$                  8X  Edd   WpP                  8X  EdS   V P                  '       d   V P<                  '       * V n        WPP                  8X  Ed&   V P                  '       d   V P<                  '       Ed   \)        \
        P*                  P,                  P$                  P$                  V^ ,          4      pV P:                  '       d    \
        P                  P                  R4      hV P                  '       d;   V P.                  VP.                  8w  d    \
        P                  P                  R	4      hV P                   P?                  Wu4       V P                   PA                  4        RV n         RV n        MR
V n        \)        \
        P*                  P,                  P$                  P$                  V^ ,          4      pV P                  '       d{   V P<                  '       d<   VP.                  V P.                  8w  d    \
        P                  P                  R4      hMLVP.                  V n        V P                   P?                  Wu4       M\
        P                  P                  R4      hEK  V P:                  '       dP   R
V n        R
V n        R
V n        V P                   PC                  4        V P                  P                  R4      V n         V P<                  '       d   V P                   PE                  Wu4       EKq  V P                   PG                  Wu4       EK  	  V P6                  '       d2   V P0                  '       g    \
        P                  P                  R4      hV P0                  # )a2  Process one message in the transfer.

The message should have the same relativization as was specified when
the `dns.xfr.Inbound` was created.  The message should also have been
created with `one_rr_per_rrset=True` because order matters.

Returns `True` if the transfer is complete, and `False` otherwise.
Nzwrong question namezwrong question rdatatypez&No answer or RRset not for zone originzfirst RRset is not an SOATzanswers after final SOAzempty IXFR sequencezunexpected end of IXFR sequenceFzIXFR base serial mismatchzunexpected origin SOA in AXFRzunexpected end of UDP IXFR)$r6   r(   writerr9   r   r
   NOERRORr   lenquestionnamer<   	exception	FormErrorr)   r=   answerr.   SOAcopyr   rdtypesANYr*   r>   Serialr   r+   r#   r?   r@   replacecommitrollbackdelete_exactadd)r   r   r   answer_indexrrsetrdatasetsoarK   s   &&      r   process_messageInbound.process_messagee   s    88''..43C3C/CDDHCII%%%&&
 w 1$"''4;;6mm--.CDD"))T[[8mm--.HII$
 >>>W^^A%6%;%;t{{%Jmm--.VWWNN1%EH#--"3"33mm--.IJJL (D((4443;;??..22D4E4Ea4HI::, !%DIZZ&&szz2T[[@--{{{s7>>,-+H'IQ'N
 %
 *.D&
 ^^LM2E::DHyyymm--.GHH88'''#--"3"338K ###+/+;+;';D$ 000)))d.>.>.>
 s{{2266DC)))!mm556KLL'''DKK3::,E!mm556WXXHH$$T4HHOO%#DH $DI
 */D&s{{2266DC'''+++"zzT[[8&)mm&=&=$?'" !"  9 +.**DK HH,,T< "mm556UVV!!! $) %*"#( !!#++2248 %%d5T,U 3V ;;;tyyy
 --))*FGGyyr   c                    V # )Nr    )r   s   &r   	__enter__Inbound.__enter__   s    r   c                ^    V P                   '       d   V P                   P                  4        R # )F)r6   rV   )r   exc_typeexc_valexc_tbs   &&&&r   __exit__Inbound.__exit__   s    888HHr   )r@   r>   r?   r9   r+   r<   r)   r*   r=   r6   r(   )r   r   r   r   r   r
   r.   r:   r   r]   r`   rf   r   r   )r   s   @r   r%   r%   8   sF      +.--*<*<!&! &!PQ Qn r   r%   c                8   V ^8  d   QhR\         P                  P                  R\        R,          R\        \        ,          R,          R\        R,          R\        R,          R\        R,          R\
        \         P                  P                  ,          R,          R	\        R
\         P                  P                  R,          R\         P                  P                  \        ,          R\        \         P                  P                  \        R,          3,          /# )r'   r(   r*   Nuse_edns	ednsflagspayloadrequest_payloadoptionskeyringkeynamekeyalgorithmrD   )r
   r,   r-   r0   r1   r   ednsOptionr   rK   Namestrr   r   QueryMessage)r2   s   "r   r3   r3     s     H H33H$JH Dj4H Tz	H
 4ZH 4ZH #((//"T)H H XX]]T!H ((--#%H 3;;##S4Z/0Hr   c
                j   V P                  4       w  rpV
f   \        R4      hVf   \        P                  P                  pEM\        V\        4      '       g   \        R4      hV^ 8X  d   V P                  4       ;_uu_ 4       pVP                  VR4      pV'       dg   \        \        P                  P                  P                  P                  V^ ,          4      pVP                  p\        P                  P                  pMRp\        P                  P                  pRRR4       M4V^ 8  d#   VR8  d   \        P                  P                  pM\        R4      hV P                  4       p\        P                   P#                  V
XVVRVVVV4	      pVep   \        P$                  P'                  VRRV R	24      pVP)                  VP*                  V
V\        P                  P                  R
R7      pVP-                  V^ 4       Ve   VP/                  WxV	R7       VV3#   + '       g   i     L; i)a  Make an AXFR or IXFR query.

*txn_manager* is a ``dns.transaction.TransactionManager``, typically a
``dns.zone.Zone``.

*serial* is an ``int`` or ``None``.  If 0, then IXFR will be
attempted using the most recent serial number from the
*txn_manager*; it is the caller's responsibility to ensure there
are no write transactions active that could invalidate the
retrieved serial.  If a serial cannot be determined, AXFR will be
forced.  Other integer values are the starting serial to use.
``None`` forces an AXFR.

Please see the documentation for :py:func:`dns.message.make_query` and
:py:func:`dns.message.Message.use_tsig` for details on the other parameters
to this function.

Returns a `(query, serial)` tuple.
Nzno zone originzserial is not an integerrO   l        zserial out-of-rangeFz. . z 0 0 0 0T)create)	algorithm)r;   r8   r
   r.   r:   
isinstancer0   readergetr   rQ   rR   rO   r*   r7   	get_classr   
make_queryrdata	from_text
find_rrset	authorityrX   use_tsig)r(   r*   ri   rj   rk   rl   rm   rn   ro   rp   zone_originrA   r<   r)   r6   r[   r\   rdclassqr~   rZ   s   &&&&&&&&&&           r   r}   r}     s   >  +==?[V)**~##$$344	1!!Swwvu-H3;;??..22HQK@++++ "! 
!+##.//##%G
	A 		##GUd6((4KLKKgs}}/@/@  
 			%	

7|
<v;C "!s   BH""H2	c                f    V ^8  d   QhR\         P                  P                  R\        R,          /# )r'   queryrD   N)r
   r   rE   r0   )r2   s   "r   r3   r3   P  s(      S[[%8%8 S4Z r   c                z   \        V \        P                  P                  4      '       g   \	        R4      hV P
                  ^ ,          pVP                  \        P                  P                  8X  d   R# VP                  \        P                  P                  8w  d   \	        R4      hV P                  V P                  VP                  VP                  \        P                  P                  4      p\        \        P                   P"                  P                  P                  V^ ,          4      pVP$                  # )a#  Extract the SOA serial number from query if it is an IXFR and return
it, otherwise return None.

*query* is a dns.message.QueryMessage that is an IXFR or AXFR request.

Raises if the query is not an IXFR or AXFR, or if an IXFR doesn't have
an appropriate SOA RRset in the authority section.
zquery not a QueryMessageNzquery is not an AXFR or IXFR)ry   r
   r   ru   r8   rJ   r)   r.   r:   r7   r   r   rK   r   rO   r   rQ   rR   r*   )r   rJ   	soa_rrsetr\   s   &   r   extract_serial_from_queryr   P  s     eS[[5566344~~a H#--,,,	CMM..	.788  (8(8#--:K:KI s{{""&&	!
5C::r   )"typingr   r   r   r   dns.ednsr
   dns.exceptiondns.messagedns.name	dns.rcode	dns.rdatadns.rdatasetdns.rdatatypedns.rdtypesdns.rdtypes.ANYdns.rdtypes.ANY.SMIMEAdns.rdtypes.ANY.SOAdns.rdtypes.svcbbase
dns.serialdns.transactiondns.tsigdns.zonerL   DNSExceptionr   rM   r   r#   r%   tsigdefault_algorithmr}   r   r    r   r   <module>r      s   $ * )                 CMM.. E#--11 E2S]]'' 2J J^ "& "&,0$((+(B(BHVr   