+
     Bi/                         R t ^ RIt^ RIt^ RIt^ RIt^ RIt^RIHt ^RIH	t	 R t
/ 3R lt/ 3R lt/ 3R ltR t ! R	 R
]P                  4      t ! R R]	P"                  4      tRR ltR# )znA library of useful helper classes to the SAX classes, for the
convenience of application and driver writers.
N)handler)	xmlreaderc                Z    VP                  4        F  w  r#V P                  W#4      p K  	  V # )z2Replace substrings of a string using a dictionary.)itemsreplace)sdkeyvalues   &&  '/usr/lib/python3.14/xml/sax/saxutils.py__dict_replacer      s'    ggi
IIc!  H    c                    V P                  RR4      p V P                  RR4      p V P                  RR4      p V'       d   \        W4      p V # )zEscape &, <, and > in a string of data.

You can escape other strings of data by passing a dictionary as
the optional entities parameter.  The keys and values must all be
strings; each key will be replaced with its corresponding value.
&&amp;>&gt;<&lt;r   r   dataentitiess   &&r   escaper      sF     <<W%D<<V$D<<V$Dd-Kr   c                    V P                  RR4      p V P                  RR4      p V'       d   \        W4      p V P                  RR4      # )zUnescape &amp;, &lt;, and &gt; in a string of data.

You can unescape other strings of data by passing a dictionary as
the optional entities parameter.  The keys and values must all be
strings; each key will be replaced with its corresponding value.
r   r   r   r   r   r   r   r   s   &&r   unescaper   "   sB     <<$D<<$Dd-<<%%r   c                    / VCRRRRRR/Cp\        W4      p RV 9   d/   RV 9   d   R	V P                  RR
4      ,          p V # RV ,          p  V # R	V ,          p V # )aw  Escape and quote an attribute value.

Escape &, <, and > in a string of data, then quote it for use as
an attribute value.  The " character will be escaped as well, if
necessary.

You can escape other strings of data by passing a dictionary as
the optional entities parameter.  The keys and values must all be
strings; each key will be replaced with its corresponding value.

z&#10;z&#13;	z&#9;"'z"%s"z&quot;z'%s')r   r   r   s   &&r   	quoteattrr"   0   st     G(FD'4$vFH$!D
d{$;DLLh77D
 K D=D K }Kr   c                 F  a  S f   ^ R I pVP                  # \        S \        P                  4      '       d   S # \        S \
        P                  \
        P                  34      '       d   S # \        S \        P                  4      '       d    ! V 3R lR4      pV! 4       pR Vn	        MQ\        P                  ! 4       pR Vn        S P                  Vn         S P                  Vn        S P                  Vn        \        P                   ! WARRRR7      #   \         d     L'i ; i)	Nc                   H   <a  ] tR t^Xt o  ZP                  tV3R ltRtV tR# ) _gettextwriter.<locals>._wrapperc                   < \        SV4      # N)getattr)selfnameouts   &&r   __getattr__,_gettextwriter.<locals>._wrapper.__getattr__Z   s    sD))r    N)__name__
__module____qualname____firstlineno__	__class__r,   __static_attributes____classdictcell__)__classdict__r+   s   @r   _wrapperr%   X   s     I* *r   r7   c                      R # r'   r.   r.   r   r   <lambda> _gettextwriter.<locals>.<lambda>]   s    tr   c                      R # )Tr.   r.   r   r   r9   r:   b   s    $r   xmlcharrefreplacer   T)encodingerrorsnewlinewrite_through)sysstdout
isinstanceio
TextIOBasecodecsStreamWriterStreamReaderWriter	RawIOBasecloseBufferedIOBasewritablewriteseekabletellAttributeErrorTextIOWrapper)r+   r=   rA   r7   buffers   f&   r   _gettextwriterrS   G   s    
{zz#r}}%%
#++V-F-FGHH
 #r||$$	* 	* # ""$&yy	 "llFO((FK F#6$(*.0 0  		s   "D D D c                   |   a  ] tR t^pt o RR ltR tRR ltR tR tR t	R t
R	 tR
 tR tR tR tR tR tRtV tR# )XMLGeneratorNc                   \         P                  P                  V 4       \        W4      pVP                  V n        VP                  V n        / .V n        V P                  R,          V n	        . V n
        W n        W0n        RV n        R# )   FN)r   ContentHandler__init__rS   rM   _writeflush_flush_ns_contexts_current_context_undeclared_ns_maps	_encoding_short_empty_elements_pending_start_element)r)   r+   r=   short_empty_elementss   &&&&r   rZ   XMLGenerator.__init__r   sn    ''-S+iiiiD $ 1 1" 5#% !%9"&+#r   c                    V^ ,          '       dX   RV^ ,          8X  d   RV^,          ,           # V P                   V^ ,          ,          pV'       d   VR,           V^,          ,           # V^,          # )z7Builds a qualified name from a (ns_url, localname) pairz$http://www.w3.org/XML/1998/namespacezxml::)r_   )r)   r*   prefixs   && r   _qnameXMLGenerator._qname~   s[    77
 6a@Q''**473F|d1g--Awr   c                ^    V P                   '       d   V P                  R 4       RV n         R# R# )r   FNrc   r[   )r)   
endElements   &&r   _finish_pending_start_element*XMLGenerator._finish_pending_start_element   s'    &&&KK*/D' 'r   c                J    V P                  R V P                  ,          4       R# )z$<?xml version="1.0" encoding="%s"?>
N)r[   ra   r)   s   &r   startDocumentXMLGenerator.startDocument   s    ;' 	(r   c                &    V P                  4        R # r'   )r]   rq   s   &r   endDocumentXMLGenerator.endDocument   s    r   c                    V P                   P                  V P                  P                  4       4       WP                  V&   V P                  P                  W34       R # r'   )r^   appendr_   copyr`   r)   rh   uris   &&&r   startPrefixMappingXMLGenerator.startPrefixMapping   sI      !6!6!;!;!=>%+c"  ''6r   c                P    V P                   R,          V n        V P                   R R# )rW   NrX   )r^   r_   r)   rh   s   &&r   endPrefixMappingXMLGenerator.endPrefixMapping   s#     $ 1 1" 5b!r   c           	     $   V P                  4        V P                  R V,           4       VP                  4        F'  w  rV P                  RV: R\        V4      : 24       K)  	  V P                  '       d
   RV n        R# V P                  R4       R# )r    =Tr   N)rn   r[   r   r"   rb   rc   )r)   r*   attrsr
   s   &&& r   startElementXMLGenerator.startElement   sf    **,C$J"[[]MTKKD)E*:;< +%%%*.D'KKr   c                    V P                   '       d   V P                  R 4       RV n         R# V P                  RV,          4       R# z/>Fz</%s>Nrl   r)   r*   s   &&r   rm   XMLGenerator.endElement   s2    &&&KK*/D'KK$'r   c           	        V P                  4        V P                  R V P                  V4      ,           4       V P                   FA  w  rEV'       d   V P                  RV: RV: R24       K)  V P                  RV,          4       KC  	  . V n        VP	                  4        F6  w  rV P                  RV P                  V4      : R\        V4      : 24       K8  	  V P                  '       d
   RV n        R	# V P                  R4       R	# )
r   z xmlns:z="r    z xmlns="%s"r   r   Tr   N)rn   r[   ri   r`   r   r"   rb   rc   )r)   r*   qnamer   rh   r{   r
   s   &&&&   r   startElementNSXMLGenerator.startElementNS   s    **,C$++d++,33KF<=MC/0	 4
 $& "[[]MTKKDKK$5y7GHI +%%%*.D'KKr   c                    V P                   '       d   V P                  R 4       RV n         R# V P                  RV P                  V4      ,          4       R# r   )rc   r[   ri   r)   r*   r   s   &&&r   endElementNSXMLGenerator.endElementNS   s<    &&&KK*/D'KK$++d"334r   c                    V'       dX   V P                  4        \        V\        4      '       g   \        WP                  4      pV P	                  \        V4      4       R # R # r'   )rn   rC   strra   r[   r   r)   contents   &&r   
charactersXMLGenerator.characters   sA    ..0gs++g~~6KKw(	 r   c                    V'       dO   V P                  4        \        V\        4      '       g   \        WP                  4      pV P	                  V4       R # R # r'   )rn   rC   r   ra   r[   r   s   &&r   ignorableWhitespace XMLGenerator.ignorableWhitespace   s=    ..0gs++g~~6KK 	 r   c                Z    V P                  4        V P                  R V: RV: R24       R# )z<?r   z?>N)rn   r[   r)   targetr   s   &&&r   processingInstruction"XMLGenerator.processingInstruction   s    **,6401r   )r_   ra   r]   r^   rc   rb   r`   r[   )Nz
iso-8859-1F)F)r/   r0   r1   r2   rZ   ri   rn   rr   ru   r|   r   r   rm   r   r   r   r   r   r4   r5   r6   s   @r   rU   rU   p   sP     
,"0(7
"($5)!2 2r   rU   c                      a  ] tR t^t o RtR R ltR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t Rt!V t"R# )!XMLFilterBaseaE  This class is designed to sit between an XMLReader and the
client application's event handlers.  By default, it does nothing
but pass requests up to the reader and events on to the handlers
unmodified, but subclasses can override specific methods to modify
the event stream or the configuration requests as they pass
through.Nc                P    \         P                  P                  V 4       Wn        R # r'   )r   	XMLReaderrZ   _parentr)   parents   &&r   rZ   XMLFilterBase.__init__   s    $$T*r   c                <    V P                   P                  V4       R # r'   )_err_handlererrorr)   	exceptions   &&r   r   XMLFilterBase.error   s    	*r   c                <    V P                   P                  V4       R # r'   )r   
fatalErrorr   s   &&r   r   XMLFilterBase.fatalError   s    $$Y/r   c                <    V P                   P                  V4       R # r'   )r   warningr   s   &&r   r   XMLFilterBase.warning   s    !!),r   c                <    V P                   P                  V4       R # r'   )_cont_handlersetDocumentLocator)r)   locators   &&r   r    XMLFilterBase.setDocumentLocator   s    --g6r   c                :    V P                   P                  4        R # r'   )r   rr   rq   s   &r   rr   XMLFilterBase.startDocument   s    ((*r   c                :    V P                   P                  4        R # r'   )r   ru   rq   s   &r   ru   XMLFilterBase.endDocument  s    &&(r   c                <    V P                   P                  W4       R # r'   )r   r|   rz   s   &&&r   r|    XMLFilterBase.startPrefixMapping  s    --f:r   c                <    V P                   P                  V4       R # r'   )r   r   r   s   &&r   r   XMLFilterBase.endPrefixMapping  s    ++F3r   c                <    V P                   P                  W4       R # r'   )r   r   )r)   r*   r   s   &&&r   r   XMLFilterBase.startElement      ''4r   c                <    V P                   P                  V4       R # r'   )r   rm   r   s   &&r   rm   XMLFilterBase.endElement  s    %%d+r   c                >    V P                   P                  WV4       R # r'   )r   r   )r)   r*   r   r   s   &&&&r   r   XMLFilterBase.startElementNS  s    ))$u=r   c                <    V P                   P                  W4       R # r'   )r   r   r   s   &&&r   r   XMLFilterBase.endElementNS  r   r   c                <    V P                   P                  V4       R # r'   )r   r   r   s   &&r   r   XMLFilterBase.characters  s    %%g.r   c                <    V P                   P                  V4       R # r'   )r   r   )r)   charss   &&r   r   !XMLFilterBase.ignorableWhitespace  s    ..u5r   c                <    V P                   P                  W4       R # r'   )r   r   r   s   &&&r   r   #XMLFilterBase.processingInstruction  s    00>r   c                <    V P                   P                  V4       R # r'   )r   skippedEntityr   s   &&r   r   XMLFilterBase.skippedEntity   s    ((.r   c                >    V P                   P                  WV4       R # r'   )_dtd_handlernotationDecl)r)   r*   publicIdsystemIds   &&&&r   r   XMLFilterBase.notationDecl%  s    &&tx@r   c                >    V P                   P                  WW44       R # r'   )r   unparsedEntityDecl)r)   r*   r   r   ndatas   &&&&&r   r    XMLFilterBase.unparsedEntityDecl(  s    ,,TXMr   c                8    V P                   P                  W4      # r'   )_ent_handlerresolveEntity)r)   r   r   s   &&&r   r   XMLFilterBase.resolveEntity-  s      ..xBBr   c                   V P                   P                  V 4       V P                   P                  V 4       V P                   P                  V 4       V P                   P	                  V 4       V P                   P                  V4       R # r'   )r   setContentHandlersetErrorHandlersetEntityResolversetDTDHandlerparse)r)   sources   &&r   r   XMLFilterBase.parse2  s\    &&t,$$T*&&t,""4(6"r   c                <    V P                   P                  V4       R # r'   )r   	setLocale)r)   locales   &&r   r   XMLFilterBase.setLocale9  s    v&r   c                8    V P                   P                  V4      # r'   )r   
getFeaturer   s   &&r   r   XMLFilterBase.getFeature<  s    ||&&t,,r   c                <    V P                   P                  W4       R # r'   )r   
setFeature)r)   r*   states   &&&r   r   XMLFilterBase.setFeature?  s    ,r   c                8    V P                   P                  V4      # r'   )r   getPropertyr   s   &&r   r   XMLFilterBase.getPropertyB  s    ||''--r   c                <    V P                   P                  W4       R # r'   )r   setProperty)r)   r*   r
   s   &&&r   r   XMLFilterBase.setPropertyE  s      -r   c                    V P                   # r'   r   rq   s   &r   	getParentXMLFilterBase.getParentJ  s    ||r   c                    Wn         R # r'   r   r   s   &&r   	setParentXMLFilterBase.setParentM  s    r   r   r'   )#r/   r0   r1   r2   __doc__rZ   r   r   r   r   rr   ru   r|   r   r   rm   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r4   r5   r   s   @r   r   r      s     +0-
7+);45,>5/6?/
AN
C
#'--..
 r   r   c                   \        V \        P                  4      '       d   \        P                  ! V 4      p \        V \        4      '       d   \
        P                  ! V 4      p M\        V R4      '       d   T p\
        P                  ! 4       p \        VP                  ^ 4      \        4      '       d   V P                  V4       MV P                  V4       \        VR4      '       d<   \        VP                  \        4      '       d   V P                  VP                  4       V P                  4       Ef.   V P                  4       Ef   V P                  4       p\        P                   P#                  \        P                   P%                  V4      4      p\        P                   P'                  WC4      p\        P                   P)                  V4      '       d   V P                  V4       \+        VR4      pM[V P                  \,        P.                  P1                  W4      4       \,        P2                  P5                  V P                  4       4      pV P                  V4       V # )z~This function takes an InputSource and an optional base URL and
returns a fully resolved InputSource object ready for reading.readr*   rb)rC   osPathLikefspathr   r   InputSourcehasattrr  setCharacterStreamsetByteStreamr*   setSystemIdgetCharacterStreamgetByteStreamgetSystemIdpathdirnamenormpathjoinisfileopenurllibr   urljoinrequesturlopen)r   basefsysidbaseheadsysidfilenames   &&    r   prepare_input_sourcer#  R  s    &"++&&6"&#&&v.		 	 &&(affQi%%%%a(  #1f*QVVS"9"9qvv&  "*v/C/C/E/M""$77??277#3#3D#9:X577>>-((}-]D)Av||33D@A&&v'9'9';<AQMr   ) )r  r	  urllib.parser  urllib.requestrD   rF   r$  r   r   r   r   r   r"   rS   rY   rU   r   r   r#  r.   r   r   <module>r'     sv   
 ( ' 	        &   .'0Rp27)) p2fkI'' k^r   