+
     h%  c                   s    R t ^ RIHt ^ RIHt ^ RIHtHt ^ RIHtH	t	  ^ RI
Ht  ! R R]P                  4      tR	 t ! R
 R]4      t ! R R4      tR tR#   ] d    R t L>i ; i)a?  
SAX-based adapter to copy trees from/to the Python standard library.

Use the `ElementTreeContentHandler` class to build an ElementTree from
SAX events.

Use the `ElementTreeProducer` class or the `saxify()` function to fire
the SAX events of an ElementTree against a SAX ContentHandler.

See https://lxml.de/sax.html
)ContentHandler)etree)ElementTree
SubElement)CommentProcessingInstruction)GenericAliasc                 s:    V P                    R VP                    R2# )Z[Z])__name__ZclsZitem   &&//usr/lib64/python3.14/site-packages/lxml/sax.py_GenericAliasr      s    ,,qq11    c                   s    ] tR t^tRtRtR# )SaxErrorzGeneral SAX error.
     N)r   
__module____qualname____firstlineno____doc____static_attributes__r   r   r
   r   r      s    r   r   c                 sx    V ^ ,          R8X  d*   RV 9   d#   \        V R,          P                  R^4      4      # RV 3# )    {}:   NNN)ZtupleZsplit)tag   &r
   	_getNsTagr       s7    
1v}SW]]3*++Syr   c                   s   a  ] tR t^'t o RtRR ltR t]! ]]P                  R7      tR t	R t
R tR	 tR
 tR tRR ltR tR tRR ltR tR t]tR tRtV tR# )ElementTreeContentHandlerz/Build an lxml ElementTree from SAX events.
    Nc                s    \         P                  ! V 4       R V n        . V n        . V n        R V n        R R ./V n        / V n        Vf   \        P                  pWn
        R # N)r    __init___root_root_siblings_element_stack_default_ns_ns_mapping_new_mappingsr   ZElement_makeelement)selfZmakeelementr	   r
   r   Z"ElementTreeContentHandler.__init__*   s[    %
  !TF,--K'r   c                s,    \        V P                  4      # )z=Contains the generated ElementTree after parsing is finished.)r   r   r%   r   r
   
_get_etreeZ$ElementTreeContentHandler._get_etree6   s    4::&&r   )Zdocc                    R # r   r   )r%   Zlocatorr	   r
   setDocumentLocatorZ,ElementTreeContentHandler.setDocumentLocator<       r   c                r(   r   r   r&   r   r
   startDocumentZ'ElementTreeContentHandler.startDocument?   r*   r   c                r(   r   r   r&   r   r
   endDocumentZ%ElementTreeContentHandler.endDocumentB   r*   r   c                s    W P                   V&    V P                  V,          P                  V4       Vf	   W n        R # R #   \         d    T.T P                  T&    L+i ; ir   )r#   r"   appendZKeyErrorr!   )r%   prefixuris   &&&r
   startPrefixMappingZ,ElementTreeContentHandler.startPrefixMappingE   sc    %(6"	-V$++C0 >"   	-(+uDV$	-s   "A   AAc                st    V P                   V,          pVP                  4        Vf   VR,          V n        R # R # N)r"   popr!   )r%   r.   Zns_uri_list   && r
   endPrefixMappingZ*ElementTreeContentHandler.endPrefixMappingN   s2    &&v.>*2D r   c                s    Vw  r#V'       d   R V,          pV# V P                   '       d   RV P                   : RV: 2pV# TpV# ){%s}%sr   r   )r!   )r%   Zns_name_tuplens_uri
local_nameel_tags   &&   r
   	_buildTagZ#ElementTreeContentHandler._buildTagT   sO    *-F
 	 !%!1!1:>F   Fr   c                s   V P                  V4      pV'       dF   / p VP                  4       pV F+  w  rxV^ ,          '       d   RV,          p	M	V^,          p	WV	&   K-  	  MRpV P                  p
V P
                  fy   V P                  WEV P                  4      ;qn        V P                  '       d7   \        VR4      '       d%   V P                   F  pVP                  V4       K  	  V P                  R M\        V
R,          VWPP                  4      pV
P                  V4       V P                  P                  4        R#   \         d    TP                  4       p EL/i ; i)r   r6   Naddprevious:NNNr2   )r:   Z	iteritemsAttributeErroritemsr    r   r$   r#   r   hasattrr;   r   r-   Zclear)r%   ns_nameqname
attributesZel_nameZattrsZiter_attributesZ
name_tuplevalueZ	attr_nameZelement_stackelementsiblings   &&&&         r
   startElementNSZ(ElementTreeContentHandler.startElementNS^   s9   ..)E5","6"6"8 &5!
a== (: 5I *1I#(i  &5 E++::''8J8JKLGj"""ww'F'F#22G''0  3##A& r!2G!&(:(:<GW%  "3 " 5","2"2"45s   D> >EEc                s    \        W4      pV P                  f   V P                  P                  V4       R # V P                  R,          P                  V4       R # r1   )r   r   r   r-   r    )r%   targetdataZpis   &&& r
   processingInstructionZ/ElementTreeContentHandler.processingInstruction   sC    "60::&&r*#**2.r   c                s    V P                   P                  4       pV P                  V4      pWCP                  8w  d   \	        R V,           4      hR# )zUnexpected element closed: N)r    r3   r:   r   r   )r%   r?   r@   rC   r9      &&&  r
   endElementNSZ&ElementTreeContentHandler.endElementNS   sD    %%))+([[ 86ABB !r   c                s    V'       d'   VP                  4        UUu/ uF
  w  r4R V3VbK  	  pppV P                  R V3W4       R # u uppi r   )r=   rE   )r%   namerA   ZkZvrI   r
   startElementZ&ElementTreeContentHandler.startElement   sH    3=3C3C3EF3E414)Q,3EJFT4L$; Gs   Ac                s.    V P                  R V3V4       R # r   )rJ   )r%   rK   r	   r
   
endElementZ$ElementTreeContentHandler.endElement   s    4,-r   c                s    V P                   R,          p VR,          pVP                  ;'       g    RV,           Vn        R#   \         d'    TP                  ;'       g    RT,           Tn         R# i ; i)r   Z Nr2   )r    tailZ
IndexErrortext)r%   rG   Zlast_elementr4   r
   
charactersZ$ElementTreeContentHandler.characters   sm    **2.	A'+L
 ".!2!2!8!8bD @L	  	A!-!2!2!8!8bD @L	As   	A A3 A32A3c                s    \        W4      # r   )r   r   r	   r
   __class_getitem__Z+ElementTreeContentHandler.__class_getitem__   s    S''r   )r!   r    r$   r#   r"   r   r   r   )r   r   r   r   r   r   r'   Zpropertyr   r)   r+   r,   r0   r5   r:   rE   rH   rJ   rL   rM   rP   ZignorableWhitespacerQ   r   __classdictcell__Z__classdict__   @r
   r   r   '   sy     
(' ZZ%7%78E#/#B/C<
.	A %( (r   r   c                   s<   a  ] tR t^t o RtR tR tR tR tRt	V t
R# )ElementTreeProducerz5Produces SAX events for an element and children.
    c                s     VP                  4       pY0n        W n        ^ RIHp W@n        V! / / 4      V n        R#   \         d    Tp L7i ; i)r   )AttributesNSImplN)Zgetrootr<   _element_content_handlerZxml.sax.xmlreaderrV   _attr_class_empty_attributes)r%   element_or_treecontent_handlerrC   Z
attr_classrI   r
   r   ZElementTreeProducer.__init__   sP    	&%--/G   /D%!+B!3  	&%G	&s   : A
	A
c                sb   V P                   P                  4        V P                  p\        VR 4      '       dp   . pVP	                  4       p\        VRR4      \        J d$   VP                  V4       VP	                  4       pK8  VRRR1,           F  pV P                  V/ 4       K  	  V P                  V/ 4       \        VR4      '       dJ   VP                  4       p\        VRR4      \        J d%   V P                  V/ 4       VP                  4       pK9  V P                   P                  4        R# )getpreviousr   Ngetnextr2   )rX   r+   rW   r>   r]   Zgetattrr   r-   _recursive_saxifyr^   r,   )r%   rC   ZsiblingsrD   s   &   r
   saxifyZElementTreeProducer.saxify   s    ++---7M**H))+G'5$/3HH(!--/#DbD>>&&w3 * 	w+7I&&oo'G'5$/3HH&&w3!//+))+r   c           	     s   V P                   pVP                  pV\        J g   V\        J dX   V\        J d'   VP	                  VP
                  VP                  4       VP                  pV'       d   VP                  V4       R # VP                  p. pWb8w  dD   VP                  4        F/  w  rVP                  V4      V	8w  g   K  VP                  W34       K1  	  VP                  4       p
V
'       dW   / p/ pV
 F:  w  r\        V4      pWV&   V P                  V^ ,          V^,          VR RR7      W&   K<  	  V P                  W4      pMV P                   p\        V4      w  p	pV P                  V	VWaP"                  RR7      pV F  w  ppVP%                  VV4       K  	  VP'                  V	V3VV4       VP                  pV'       d   VP                  V4       V F  pV P)                  VV4       K  	  VP+                  V	V3V4       V F  w  ppVP-                  V4       K  	  VP                  pV'       d   VP                  V4       R # R # )NT)preferred_prefixis_attributeF)rb   )rX   r   r   r   rH   rF   rO   rN   rP   nsmapr=   getr-   r   _build_qnamerY   rZ   r.   r0   rE   r_   rJ   r5   )r%   rC   Zparent_nsmapr\   r   rN   Zelement_nsmapZnew_prefixesr.   r7   ZattribsZattr_valuesZattr_qnamesZattr_ns_namerB   Zattr_ns_tupleZsax_attributesr8   r@   r/   rO   Zchilds   &&&                   r
   r_   Z%ElementTreeProducer._recursive_saxify   s&   //kk'>S$99++55NNGLL2<<D**40("/"5"5"7##F+v5 ''&)9; #8 --/KK'.# ), 7-2M*-1->->!!$mA&6%) .? .>* (/ "--kGN!33N&s^
!!J~~E " S (KFC..vs; (&&Z %	9||&&t,E""5-8 $$fj%95A'KFC,,V4 (||&&t, r   c                sF   Vf   V# V'       g   VP                  V4      V8X  d   TpM_VP                  4        UUu. uF  w  rxVf   K  W8X  g   K  VNK  	  p	pp\        V	4      ^8X  d
   V	^ ,          MV	'       d   \        V	4      MR pVf   V# VR,           V,           # u uppi )NZ:)rd   r=   ZlenZmin)
r%   r7   r8   rc   ra   rb   r.   Zpfxr/   Z
candidatess
   &&&&&&    r
   re   Z ElementTreeProducer._build_qname  s    >		*: ;v E%F ',kkm&3
 '*} m  
 "%ZA!5
1(2S_  >|j((s   BBB)rY   rX   rW   rZ   N)r   r   r   r   r   r   r`   r_   re   r   rR   rS   rT   r
   rU   rU      s$     	4,.4-l) )r   rU   c                s4    \        W4      P                  4       # )zdOne-shot helper to generate SAX events from an XML tree and fire
them against a SAX ContentHandler.
)rU   r`   )r[   r\   r	   r
   r`   r`     s     @GGIIr   N)r   Zxml.sax.handlerr    Zlxmlr   Z
lxml.etreer   r   r   r   Ztypesr   r   ZImportErrorZ	LxmlErrorr   r   r   rU   r`   r   r   r
   <module>rf      sn   
 +  . 523u 
|( |(~p) p)fJI  222s   A 
A%$A%