a
    ze                     @   s  d dl mZmZmZ d dl mZmZmZ d dlmZ d dl	m
Z
mZ d dlmZ ejZejZejZejjZejjZejjZejjZe Zeddeddedd	edd
eddeddeddeddeddd	ZG dd deZdd Zdd ZG dd dZeeefZG dd deZ G dd deZ!G dd de!Z"G dd  d e!Z#d!Z$d"e$ Z%G d#d$ d$eZ&G d%d& d&Z'G d'd( d(e'eZ(G d)d* d*e'e&Z)G d+d, d,e*Z+G d-d. d.eZ,d:d0d1Z-d;d2d3Z.d<d4d5Z/d=d6d7Z0d8d9 Z1dS )>    )
xmlbuilderminidomNode)EMPTY_NAMESPACEEMPTY_PREFIXXMLNS_NAMESPACE)expat)_append_child_set_attribute_node)
NodeFilterNZcdataenumerationentityentitiesidZidrefZidrefsZnmtokenZnmtokens)	ZCDATAENUMZENTITYZENTITIESIDZIDREFZIDREFSZNMTOKENZNMTOKENSc                   @   sZ   e Zd ZdZdddZdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd ZdS )ElementInfo
_attr_info_modeltagNameNc                 C   s   || _ g | _|| _d S N)r   r   r   )selfr   model r   */usr/lib/python3.9/xml/dom/expatbuilder.py__init__?   s    zElementInfo.__init__c                 C   s   | j | j| jfS r   r   r   r   r   r   __getstate__D   s    zElementInfo.__getstate__c                 C   s   |\| _ | _| _d S r   r   )r   stater   r   r   __setstate__G   s    zElementInfo.__setstate__c                 C   sN   | j D ]@}|d |kr|d }|d dkr6td   S t|d    S qtjS )N   r   (r   )r   _typeinfo_mapr   _no_type)r   anameinfotr   r   r   getAttributeTypeJ   s    
zElementInfo.getAttributeTypec                 C   s   t jS r   )r   r%   )r   ZnamespaceURIZ	localNamer   r   r   getAttributeTypeNST   s    zElementInfo.getAttributeTypeNSc                 C   s,   | j r$| j d }|tjjtjjfvS dS d S Nr   F)r   r   r   ZXML_CTYPE_ANYZXML_CTYPE_MIXED)r   typer   r   r   isElementContentW   s    
zElementInfo.isElementContentc                 C   s    | j r| j d tjjkS dS d S r+   )r   r   r   ZXML_CTYPE_EMPTYr   r   r   r   isEmpty_   s    zElementInfo.isEmptyc                 C   s,   | j D ] }|d |kr|d dk  S qdS )Nr!   r"   r   F)r   )r   r&   r'   r   r   r   isIde   s    
zElementInfo.isIdc                 C   s   |  ||fS r   )r/   )r   ZeuriZenameZaurir&   r   r   r   isIdNSk   s    zElementInfo.isIdNS)N)__name__
__module____qualname__	__slots__r   r   r    r)   r*   r-   r.   r/   r0   r   r   r   r   r   <   s   

r   c                 C   s   |  ||S r   )_intern_setdefault)buildersr   r   r   _interno   s    r8   c                 C   s   | d}| j}t|dkrR|\}}}|||}d||f }|||}|||}n4t|dkrz|\}}t}||| }}ntd| ||||||fS )N    z%s:%s   z4Unsupported syntax: spaces in URIs not supported: %r)splitr5   lenr   
ValueError)r6   namepartsinternuri	localnameprefixqnamer   r   r   _parse_ns_namer   s    



rF   c                   @   s   e Zd Zd:ddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 ZdS );ExpatBuilderNc                 C   sP   |d u rt  }|| _| jjd ur2t| jj| _nd | _t| _d | _| 	  d S r   )
r   ZOptions_optionsfilterFilterVisibilityController_filterr   _finish_start_element_parserreset)r   optionsr   r   r   r      s    zExpatBuilder.__init__c                 C   s   t  S r   )r   ParserCreater   r   r   r   createParser   s    zExpatBuilder.createParserc                 C   sF   | j s@|  | _ | j jj| _d| j _d| j _d| j _| | j  | j S NT)	rM   rQ   rA   
setdefaultr5   Zbuffer_textZordered_attributesZspecified_attributesinstallr   r   r   r   	getParser   s    
zExpatBuilder.getParserc                 C   s,   t td d | _| j| _| jj| _d| _d S NF)theDOMImplementationZcreateDocumentr   documentcurNode
_elem_info_cdatar   r   r   r   rN      s    
zExpatBuilder.resetc                 C   s   | j |_| j|_| j|_| j|_| jj	r0| j
|_| j|_| jjrH| j|_| jjrj| j|_| j|_| j|_n| j|_| j|_| j|_| j|_| j|_ d S r   )!start_doctype_decl_handlerStartDoctypeDeclHandlerfirst_element_handlerStartElementHandlerend_element_handlerEndElementHandler
pi_handlerProcessingInstructionHandlerrH   r   entity_decl_handlerEntityDeclHandlernotation_decl_handlerNotationDeclHandlercommentscomment_handlerCommentHandlerZcdata_sectionsstart_cdata_section_handlerStartCdataSectionHandlerend_cdata_section_handlerEndCdataSectionHandlercharacter_data_handler_cdataCharacterDataHandlercharacter_data_handlerexternal_entity_ref_handlerExternalEntityRefHandlerxml_decl_handlerZXmlDeclHandlerelement_decl_handlerZElementDeclHandlerattlist_decl_handlerZAttlistDeclHandlerr   parserr   r   r   rT      s$    
zExpatBuilder.installc                 C   s   |   }d}zH|d}|sqF||d |r@| jjr@| | d}q|dd W n tyf   Y n0 | j}|   d | _|S )NTi @  F    )	rU   readParserX   documentElement_setup_subsetParseEscaperN   rM   )r   filerx   Zfirst_bufferbufferdocr   r   r   	parseFile   s"    

zExpatBuilder.parseFilec                 C   sN   |   }z||d | | W n ty4   Y n0 | j}|   d | _|S rR   )rU   r{   r}   r~   rX   rN   rM   )r   stringrx   r   r   r   r   parseString   s    zExpatBuilder.parseStringc                 C   s.   | j jr*t }|| | }|| j j_d S r   )rX   doctypeInternalSubsetExtractorr   	getSubsetinternalSubset)r   r   Z	extractorsubsetr   r   r   r}      s
    
zExpatBuilder._setup_subsetc                 C   s   | j j|||}| j |_t| j | || j _| jrj| j|tkrjd | j _| j j	d= d }d | j
_d | j
_|r|d urg |j_g |j_d | j
_d | j
_| j| j
_d S N)rX   implementationZcreateDocumentTypeownerDocumentr	   r   rK   
acceptNodeFILTER_REJECT
childNodesrM   re   rg   r   _seq	notationsrj   rc   end_doctype_decl_handlerEndDoctypeDeclHandler)r   ZdoctypeNamesystemIdpublicIdhas_internal_subsetr   r   r   r   r\      s&    
z'ExpatBuilder.start_doctype_decl_handlerc                 C   s2   | j jr| j| j_| j| j_| js.| js.t	| _
d S r   )rH   rh   ri   rM   rj   rb   rc   rZ   rK   r   _finish_end_elementr   r   r   r   r     s
    

z%ExpatBuilder.end_doctype_decl_handlerc                 C   s@   | j ||}t| j| | jr<| j|tkr<| j| d S r   )rX   ZcreateProcessingInstructionr	   rY   rK   r   r   removeChild)r   targetdatanoder   r   r   rb     s    zExpatBuilder.pi_handlerc                 C   s   | j j}| jrH| jr4|d jtkr4|d | d S | j|}d| _nD|rv|d jt	krv|d }|j
| }||_
d S t }||_
| j|_t| j | d S )Nr   T)rY   r   r[   _cdata_continuenodeTypeCDATA_SECTION_NODEZ
appendDatarX   ZcreateCDATASection	TEXT_NODEr   r   Textr   r	   )r   r   r   r   valuer   r   r   ro     s$    
z)ExpatBuilder.character_data_handler_cdatac                 C   s^   | j j}|r2|d jtkr2|d }|j| |_d S t }|j| |_| j|_t	| j | d S r   )
rY   r   r   r   r   r   r   rX   r   r	   )r   r   r   r   r   r   r   rq   &  s    z#ExpatBuilder.character_data_handlerc           
      C   s   |rd S | j jsd S | j||||}|d urF| j|}	|j|	 | jjjj| | j	r|| j	
|tkr|| jjjjd= d S r   )rH   r   rX   Z_create_entityZcreateTextNoder   appendr   r   rK   r   r   )
r   Z
entityNameZis_parameter_entityr   baser   r   notationNamer   childr   r   r   rd   1  s    
z ExpatBuilder.entity_decl_handlerc                 C   sJ   | j |||}| j jjj| | jrF| j|tkrF| j jjjd= d S r   )	rX   Z_create_notationr   r   r   r   rK   r   FILTER_ACCEPT)r   r   r   r   r   r   r   r   r   rf   C  s    z"ExpatBuilder.notation_decl_handlerc                 C   s>   | j |}t| j| | jr:| j|tkr:| j| d S r   )rX   ZcreateCommentr	   rY   rK   r   r   r   )r   r   r   r   r   r   ri   I  s    zExpatBuilder.comment_handlerc                 C   s   d| _ d| _d S )NTFr[   r   r   r   r   r   rk   O  s    z(ExpatBuilder.start_cdata_section_handlerc                 C   s   d| _ d| _d S rV   r   r   r   r   r   rm   S  s    z&ExpatBuilder.end_cdata_section_handlerc                 C   s   dS Nr!   r   )r   contextr   r   r   r   r   r   rr   W  s    z(ExpatBuilder.external_entity_ref_handlerc                 C   s2   | j d u r| jst| _| j|  _| || d S r   )rK   rZ   r   r   start_element_handlerrU   r_   )r   r?   
attributesr   r   r   r^   Z  s    z"ExpatBuilder.first_element_handlerc                 C   s   | j |}t| j| || _|rptdt|dD ]<}t|| td t	}||d  }||_
| j |_t|| q2|| j jur| | d S )Nr   r;   r!   )rX   ZcreateElementr	   rY   ranger=   r   Attrr   r   r   r   r
   r|   rL   )r   r?   r   r   iar   r   r   r   r   `  s    z"ExpatBuilder.start_element_handlerc                 C   sj   | j rf|| jju rd S | j |}|tkr4t|  n|tkrFt|  nd S |j| _	|j
| |  d S r   )rK   rX   r|   startContainerr   RejecterFILTER_SKIPSkipper
parentNoderY   r   unlink)r   r   Zfiltr   r   r   rL   q  s    

z"ExpatBuilder._finish_start_elementc                 C   s   | j }|j| _ | | d S r   )rY   r   r   )r   r?   rY   r   r   r   r`     s    z ExpatBuilder.end_element_handlerc                 C   s\   | j |j}|r| || | jrX|| jju r4d S | j|tkrX| j	
| |  d S r   )rZ   getr   _handle_white_text_nodesrK   rX   r|   r   r   rY   r   r   )r   rY   r'   r   r   r   r     s    z ExpatBuilder._finish_end_elementc                 C   sZ   | j js| sd S g }|jD ]"}|jtkr|j s|| q|D ]}|	| qFd S r   )
rH   Zwhitespace_in_element_contentr-   r   r   r   r   stripr   r   )r   r   r'   Lr   r   r   r   r     s    
z%ExpatBuilder._handle_white_text_nodesc                 C   s0   | j |}|d u r&t||| j |< n||_d S r   )rZ   r   r   r   )r   r?   r   r'   r   r   r   ru     s    z!ExpatBuilder.element_decl_handlerc              
   C   sF   | j |}|d u r&t|}|| j |< |jd |d d |d||g d S Nr   )rZ   r   r   r   r   )r   elemr?   r,   defaultrequiredr'   r   r   r   rv     s    
z!ExpatBuilder.attlist_decl_handlerc                 C   s2   || j _|| j _|dkr.|r&d| j _nd| j _d S )Nr   TF)rX   versionencoding
standalone)r   r   r   r   r   r   r   rt     s    
zExpatBuilder.xml_decl_handler)N)r1   r2   r3   r   rQ   rU   rN   rT   r   r   r}   r\   r   rb   ro   rq   rd   rf   ri   rk   rm   rr   r^   r   rL   r`   r   r   ru   rv   rt   r   r   r   r   rG      s8   
rG   c                   @   s   e Zd ZdZdd Zdd Zdd Zeje	j
eje	jeje	jeje	jeje	jeje	jeje	jeje	jeje	jeje	jeje	jeje	j iZ!dS )	rJ   rI   c                 C   s
   || _ d S r   r   )r   rI   r   r   r   r     s    z#FilterVisibilityController.__init__c                 C   sT   | j |j }| jj|@ rL| j|}|tkr0t|tvrHtdt	| |S t
S d S )Nz)startContainer() returned illegal value: )_nodetype_maskr   rI   
whatToShowr   FILTER_INTERRUPTr~   _ALLOWED_FILTER_RETURNSr>   reprr   )r   r   maskvalr   r   r   r     s    
z)FilterVisibilityController.startContainerc                 C   s   | j |j }| jj|@ r|| j|}|tkr0t|tkr`|j}|j	d d  D ]}|
| qLtS |tvrxtdt| |S tS d S )Nz%acceptNode() returned illegal value: )r   r   rI   r   r   r   r~   r   r   r   ZappendChildr   r   r>   r   r   )r   r   r   r   parentr   r   r   r   r     s     
z%FilterVisibilityController.acceptNodeN)"r1   r2   r3   r4   r   r   r   r   ZELEMENT_NODEr   ZSHOW_ELEMENTZATTRIBUTE_NODEZSHOW_ATTRIBUTEr   Z	SHOW_TEXTr   ZSHOW_CDATA_SECTIONZENTITY_REFERENCE_NODEZSHOW_ENTITY_REFERENCEZENTITY_NODEZSHOW_ENTITYZPROCESSING_INSTRUCTION_NODEZSHOW_PROCESSING_INSTRUCTIONZCOMMENT_NODEZSHOW_COMMENTDOCUMENT_NODEZSHOW_DOCUMENTZDOCUMENT_TYPE_NODEZSHOW_DOCUMENT_TYPEZDOCUMENT_FRAGMENT_NODEZSHOW_DOCUMENT_FRAGMENTZNOTATION_NODEZSHOW_NOTATIONr   r   r   r   r   rJ     s"   rJ   c                   @   s   e Zd ZdZdd ZdS )FilterCrutch)_builder_level
_old_start_old_endc                 C   s6   d| _ || _|j}|j| _|j| _| j|_| j|_d S r   )	r   r   rM   r_   r   ra   r   r   r`   )r   r6   rx   r   r   r   r     s    zFilterCrutch.__init__N)r1   r2   r3   r4   r   r   r   r   r   r     s   r   c                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	r   r   c                 C   s,   t | | |j}dD ]}t||d  qd S )N)rc   rj   rp   rl   rn   rs   )r   r   rM   setattr)r   r6   rx   r?   r   r   r   r     s    zRejecter.__init__c                 G   s   | j d | _ d S r   )r   r   argsr   r   r   r     s    zRejecter.start_element_handlerc                 G   s@   | j dkr0| jj}| j| | j|_| j|_n| j d | _ d S Nr   r!   )r   r   rM   rT   r   r_   r   ra   )r   r   rx   r   r   r   r`      s    

zRejecter.end_element_handlerN)r1   r2   r3   r4   r   r   r`   r   r   r   r   r     s   r   c                   @   s    e Zd ZdZdd Zdd ZdS )r   r   c                 G   s.   | j j}| j|  | j j|ur*| jd | _d S r   )r   rY   r   r   )r   r   r   r   r   r   r   -  s    
zSkipper.start_element_handlerc                 G   sD   | j dkr*| j| jj_| j| jj_d | _n| j d | _ | j|  d S r   )r   r   r   rM   r_   r   ra   r   r   r   r   r`   3  s    
zSkipper.end_element_handlerN)r1   r2   r3   r4   r   r`   r   r   r   r   r   *  s   r   z8http://xml.python.org/entities/fragment-builder/internalz<!DOCTYPE wrapper
  %%s [
  <!ENTITY fragment-builder-internal
    SYSTEM "%s">
%%s
]>
<wrapper %%s
>&fragment-builder-internal;</wrapper>c                   @   sF   e Zd ZdddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dS )FragmentBuilderNc                 C   s6   |j tkr|| _|| _n|j| _|| _t| | d S r   )r   r   originalDocumentr   r   rG   r   )r   r   rO   r   r   r   r   [  s    
zFragmentBuilder.__init__c                 C   s   t |  d | _d S r   )rG   rN   fragmentr   r   r   r   rN   d  s    
zFragmentBuilder.resetc                 C   s   |  | S r   )r   rz   r   r   r   r   r   r   h  s    zFragmentBuilder.parseFilec           	      C   s   || _ |  }| jj}d}|rV|jp*|  }|jrDd|j|jf }qZ|jrZd|j }nd}|  }t	|||f }z|
|d W n   |    Y n0 | j}|   |S )N zPUBLIC "%s" "%s"zSYSTEM "%s"T)_sourcerU   r   r   r   _getDeclarationsr   r   _getNSattrs_FRAGMENT_BUILDER_TEMPLATEr{   rN   r   )	r   r   rx   r   identr   ZnsattrsrX   r   r   r   r   r   m  s.    
zFragmentBuilder.parseStringc                 C   s  | j jj}d}|rt|jjD ]R}|j|}|r<|d }d||jf }|jrdd||j|j	f }q d||j	f }q t|j
jD ]}|j
|}|r|d }d||jf }|jrd||j|j	f }n&|j	rd||j	f }nd	||jjf }|jrd
||jf }|d }q|S )Nr   z
  z%s<!NOTATION %sz!%s PUBLIC "%s"
             "%s">z%s SYSTEM "%s">z%s<!ENTITY %sz %s PUBLIC "%s"
             "%s"z%s SYSTEM "%s"z%s "%s"z%s NOTATION %s>)r   r   r   r   r   lengthitemZnodeNamer   r   r   Z
firstChildr   r   )r   r   r7   r   Znotationr   r   r   r   r     s:    

z FragmentBuilder._getDeclarationsc                 C   s   dS )Nr   r   r   r   r   r   r     s    zFragmentBuilder._getNSattrsc                 C   s   |t krz| j}| j}| j|}| j| _| j | _| j| _z$|| j	d W || _|| _d | _	n|| _|| _d | _	0 dS t
| ||||S d S )NTr   )$_FRAGMENT_BUILDER_INTERNAL_SYSTEM_IDrX   rY   rM   ZExternalEntityParserCreater   ZcreateDocumentFragmentr   r{   r   rG   rr   )r   r   r   r   r   Zold_documentZold_cur_noderx   r   r   r   rr     s&    
z+FragmentBuilder.external_entity_ref_handler)N)
r1   r2   r3   r   rN   r   r   r   r   rr   r   r   r   r   r   R  s   	
	$r   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )
Namespacesc                 C   s
   g | _ d S r   )_ns_ordered_prefixesr   r   r   r   _initNamespaces  s    zNamespaces._initNamespacesc                 C   s   t jdd}d|_|S )Nr9   )Znamespace_separatorT)r   rP   Znamespace_prefixesrw   r   r   r   rQ     s    zNamespaces.createParserc                 C   s    t | | | jjr| j|_d S r   )rG   rT   rH   Znamespace_declarationsstart_namespace_decl_handlerZStartNamespaceDeclHandlerrw   r   r   r   rT     s    zNamespaces.installc                 C   s   | j ||f d S r   )r   r   )r   rD   rB   r   r   r   r     s    z'Namespaces.start_namespace_decl_handlerc                 C   s  d|v rt | |\}}}}nt}|}d }t}t||||}| j|_t| j| || _| j	r| j	D ]P\}}|rt
t| d| t|d}nt
dtdt}||_| j|_t|| qb| j	d d = |r~|  |j}	|j}
tdt|dD ]}|| }||d  }d|v rDt | |\}}}}t
||||}||	|< ||
||f< n$t
|t|t}||	|< ||
t|f< | j|_||_||_qd S )Nr9   xmlns:xmlnsr   r;   r!   )rF   r   r   r   ZElementrX   r   r	   rY   r   r   r8   r   r   r
   Z_ensure_attributes_attrs_attrsNSr   r=   ZownerElement)r   r?   r   rB   rC   rD   rE   r   r   r   r   r   r&   r   r   r   r   r     sV    
z Namespaces.start_element_handlerN)	r1   r2   r3   r   rQ   rT   r   r   r`   r   r   r   r   r     s   5r   c                   @   s   e Zd Zdd ZdS )ExpatBuilderNSc                 C   s   t |  |   d S r   )rG   rN   r   r   r   r   r   rN   )  s    
zExpatBuilderNS.resetN)r1   r2   r3   rN   r   r   r   r   r   &  s   r   c                   @   s   e Zd Zdd Zdd ZdS )FragmentBuilderNSc                 C   s   t |  |   d S r   )r   rN   r   r   r   r   r   rN   1  s    
zFragmentBuilderNS.resetc                 C   s   d}| j }g }|r~t|drv|j D ]N\}}||v r8q&|| |rPd| }nd}|rhd|||f }q&d||f }q&|j}q|S )Nr   _ns_prefix_urir   r   z%s
    %s='%s'z %s='%s')r   hasattrr   itemsr   r   )r   attrsr   r   rD   rB   Zdeclnamer   r   r   r   5  s"    


zFragmentBuilderNS._getNSattrsN)r1   r2   r3   rN   r   r   r   r   r   r   .  s   r   c                   @   s   e Zd ZdS )r~   N)r1   r2   r3   r   r   r   r   r~   S  s   r~   c                   @   sH   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dS )r   Nc                 C   s   | j S r   )r   r   r   r   r   r   \  s    z!InternalSubsetExtractor.getSubsetc                 C   s(   zt | | W n ty"   Y n0 d S r   )rG   r   r~   r   r   r   r   r   `  s    z!InternalSubsetExtractor.parseFilec                 C   s(   zt | | W n ty"   Y n0 d S r   )rG   r   r~   )r   r   r   r   r   r   f  s    z#InternalSubsetExtractor.parseStringc                 C   s   | j |_| j|_d S r   )r\   r]   r   r_   rw   r   r   r   rT   l  s    zInternalSubsetExtractor.installc                 C   s0   |r&|   }g | _| jj|_| j|_nt d S r   )rU   r   r   ZDefaultHandlerr   r   r~   )r   r?   r   r   r   rx   r   r   r   r\   p  s    

z2InternalSubsetExtractor.start_doctype_decl_handlerc                 C   s,   d | jdddd}|| _t d S )Nr   z

)joinr   replacer~   )r   r7   r   r   r   r   z  s    z0InternalSubsetExtractor.end_doctype_decl_handlerc                 C   s
   t  d S r   )r~   )r   r?   r   r   r   r   r     s    z-InternalSubsetExtractor.start_element_handler)r1   r2   r3   r   r   r   r   rT   r\   r   r   r   r   r   r   r   W  s   
r   Tc                 C   s`   |rt  }nt }t| trRt| d}||}W d    q\1 sF0    Y  n
|| }|S Nrb)r   rG   
isinstancestropenr   )r   
namespacesr6   fpresultr   r   r   parse  s    
*
r   c                 C   s   |rt  }nt }|| S r   )r   rG   r   )r   r   r6   r   r   r   r     s    r   c                 C   sd   |rt |}nt|}t| trVt| d}||}W d    q`1 sJ0    Y  n
|| }|S r   )r   r   r   r   r   r   )r   r   r   r6   r   r   r   r   r   parseFragment  s    

*
r   c                 C   s    |rt |}nt|}|| S r   )r   r   r   )r   r   r   r6   r   r   r   parseFragmentString  s    
r   c                 C   s   | j rt| S t| S d S r   )r   r   rG   )rO   r   r   r   makeBuilder  s    r   )T)T)T)T)2Zxml.domr   r   r   r   r   r   Zxml.parsersr   Zxml.dom.minidomr	   r
   Zxml.dom.NodeFilterr   r   r   r   ZDOMBuilderFilterr   r   r   r   ZgetDOMImplementationrW   ZTypeInfor$   objectr   r8   rF   rG   r   rJ   r   r   r   r   r   r   r   r   r   	Exceptionr~   r   r   r   r   r   r   r   r   r   r   <module>   sd   








3  C
:	u_%,



