CasperSecurity

Current Path : /lib/python3.10/xml/dom/__pycache__/
Upload File :
Current File : //lib/python3.10/xml/dom/__pycache__/expatbuilder.cpython-310.pyc

o

`�wi���@sdZddlmZmZmZddlmZmZmZddlm	Z	ddl
mZmZddl
mZejZejZejZejjZejjZejjZejjZe��Ze�dd�e�dd	�e�dd
�e�dd�e�dd�e�dd
�e�dd�e�dd�e�dd�d�	ZGdd�de�Zdd�Zdd�ZGdd�d�ZeeefZ Gdd�de�Z!Gdd�de�Z"Gdd�de"�Z#Gd d!�d!e"�Z$d"Z%d#e%Z&Gd$d%�d%e�Z'Gd&d'�d'�Z(Gd(d)�d)e(e�Z)Gd*d+�d+e(e'�Z*Gd,d-�d-e+�Z,Gd.d/�d/e�Z-d;d1d2�Z.d;d3d4�Z/d;d5d6�Z0d;d7d8�Z1d9d:�Z2dS)<z�Facility to use the Expat parser to load a minidom instance
from a string or file.

This avoids all the overhead of SAX and pulldom to gain performance.
�)�
xmlbuilder�minidom�Node)�EMPTY_NAMESPACE�EMPTY_PREFIX�XMLNS_NAMESPACE)�expat)�
_append_child�_set_attribute_node)�
NodeFilterN�cdata�enumeration�entity�entities�id�idref�idrefs�nmtoken�nmtokens)	�CDATA�ENUM�ENTITY�ENTITIES�ID�IDREF�IDREFS�NMTOKEN�NMTOKENSc@sZeZdZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�ElementInfo��
_attr_info�_model�tagNameNcCs||_g|_||_dS�N)r"r r!)�selfr"�model�r&�+/usr/lib/python3.10/xml/dom/expatbuilder.py�__init__?s
zElementInfo.__init__cCs|j|j|jfSr#r�r$r&r&r'�__getstate__D�zElementInfo.__getstate__cCs|\|_|_|_dSr#r)r$�stater&r&r'�__setstate__GszElementInfo.__setstate__cCsN|jD] }|d|kr#|d}|ddkrtdSt|dSqtjS)N����r�(r)r �
_typeinfo_mapr�_no_type)r$�aname�info�tr&r&r'�getAttributeTypeJs
�zElementInfo.getAttributeTypecCstjSr#)rr2)r$�namespaceURI�	localNamer&r&r'�getAttributeTypeNST�zElementInfo.getAttributeTypeNScCs(|jr|jd}|tjjtjjfvSdS�NrF)r!rr%�
XML_CTYPE_ANY�XML_CTYPE_MIXED)r$�typer&r&r'�isElementContentWs
�zElementInfo.isElementContentcCs|jr|jdtjjkSdSr;)r!rr%�XML_CTYPE_EMPTYr)r&r&r'�isEmpty_szElementInfo.isEmptycCs,|jD]}|d|kr|ddkSqdS)Nr.r/rF)r )r$r3r4r&r&r'�isIdes

�zElementInfo.isIdcCs|�||f�Sr#)rB)r$�euri�ename�aurir3r&r&r'�isIdNSkszElementInfo.isIdNSr#)
�__name__�
__module__�__qualname__�	__slots__r(r*r-r6r9r?rArBrFr&r&r&r'r<s

rcCs|�||�Sr#)�_intern_setdefault)�builder�sr&r&r'�_internosrNcCs�d|vsJ�|�d�}|j}t|�dkr/|\}}}|||�}d||f}|||�}|||�}nt|�dkrC|\}}t}|||�}}ntd|��|||�|||fS)N� �z%s:%s�z4Unsupported syntax: spaces in URIs not supported: %r)�splitrK�lenr�
ValueError)rL�name�parts�intern�uri�	localname�prefix�qnamer&r&r'�_parse_ns_namers



r\c@s�eZdZdZd;dd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�ZdS)<�ExpatBuilderzPDocument builder that uses Expat to build a ParsedXML.DOM document
    instance.NcCsP|durt��}||_|jjdurt|jj�|_nd|_t|_d|_|�	�dSr#)
r�Options�_options�filter�FilterVisibilityController�_filterr�_finish_start_element�_parser�reset)r$�optionsr&r&r'r(�szExpatBuilder.__init__cCst��S)zCreate a new parser object.)r�ParserCreater)r&r&r'�createParser�szExpatBuilder.createParsercCsF|js |��|_|jjj|_d|j_d|j_d|j_|�|j�|jS)z7Return the parser object, creating a new one if needed.T)	rdrhrW�
setdefaultrK�buffer_text�ordered_attributes�specified_attributes�installr)r&r&r'�	getParser�s
zExpatBuilder.getParsercCs,t�tdd�|_|j|_|jj|_d|_dS)z6Free all data structures used during DOM construction.NF)�theDOMImplementation�createDocumentr�document�curNode�
_elem_info�_cdatar)r&r&r're�s�

zExpatBuilder.resetcCs�|j|_|j|_|j|_|j|_|jj	r|j
|_|j|_
|jjr$|j|_|jjr5|j|_|j|_|j|_n|j|_|j|_|j|_|j|_|j|_ dS)z>Install the callbacks needed to build the DOM into the parser.N)!�start_doctype_decl_handler�StartDoctypeDeclHandler�first_element_handler�StartElementHandler�end_element_handler�EndElementHandler�
pi_handler�ProcessingInstructionHandlerr_r�entity_decl_handler�EntityDeclHandler�notation_decl_handler�NotationDeclHandler�comments�comment_handler�CommentHandler�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_handler�XmlDeclHandler�element_decl_handler�ElementDeclHandler�attlist_decl_handler�AttlistDeclHandler�r$�parserr&r&r'rm�s$
zExpatBuilder.installcCs�|��}d}z%	|�d�}|sn|�|d�|r!|jjr!|�|�d}q|�dd�Wn	ty4Ynw|j}|��d|_|S)zIParse a document from a file object, returning the document
        node.Tr.i@F�N)	rn�read�Parserq�documentElement�
_setup_subset�ParseEscapererd)r$�filer��first_buffer�buffer�docr&r&r'�	parseFile�s(

��zExpatBuilder.parseFilecCsN|��}z
|�|d�|�|�Wn	tyYnw|j}|��d|_|S)z<Parse a document from a string, returning the document node.TN)rnr�r�r�rqrerd)r$�stringr�r�r&r&r'�parseString�s�zExpatBuilder.parseStringcCs2|jjrt�}|�|�|��}||jj_dSdS)z/Load the internal subset if there might be one.N)rq�doctype�InternalSubsetExtractorr��	getSubset�internalSubset)r$r��	extractor�subsetr&r&r'r��s
�zExpatBuilder._setup_subsetcCs�|jj�|||�}|j|_t|j|�||j_|jr5|j�|�tkr5d|j_|jj	d=d}d|j
_d|j
_|rR|durCg|j
_g|j_d|j
_d|j
_|j|j
_dSdS�N���)rq�implementation�createDocumentType�
ownerDocumentr	r�rb�
acceptNode�
FILTER_REJECT�
childNodesrdr~r�r�_seq�	notationsr�r|�end_doctype_decl_handler�EndDoctypeDeclHandler)r$�doctypeName�systemId�publicId�has_internal_subsetr�r&r&r'ru�s(�
�z'ExpatBuilder.start_doctype_decl_handlercCs:|jjr	|j|j_|j|j_|js|jst	|_
dSdSdSr#)r_r�r�rdr�r{r|rsrbr�_finish_end_elementr)r&r&r'r�s


�z%ExpatBuilder.end_doctype_decl_handlercCsH|j�||�}t|j|�|jr |j�|�tkr"|j�|�dSdSdSr#)rq�createProcessingInstructionr	rrrbr�r��removeChild)r$�target�data�noder&r&r'r{s
�zExpatBuilder.pi_handlercCs�|jj}|jr$|jr|djtkr|d�|�dS|j�|�}d|_n"|r;|djt	kr;|d}|j
|}||_
dSt��}||_
|j|_
t|j|�dS)Nr�T)rrr�rt�_cdata_continue�nodeType�CDATA_SECTION_NODE�
appendDatarq�createCDATASection�	TEXT_NODEr�r�Textr�r	)r$r�r�r��valuer&r&r'r�s"
z)ExpatBuilder.character_data_handler_cdatacCs^|jj}|r|djtkr|d}|j||_dSt��}|j||_|j|_t	|j|�dSr�)
rrr�r�r�r�rr�rqr�r	)r$r�r�r�r&r&r'r�&sz#ExpatBuilder.character_data_handlerc
Cs�|rdS|jjs
dS|j�||||�}|dur#|j�|�}	|j�|	�|jjjj�|�|j	r@|j	�
|�tkrB|jjjjd=dSdSdSr�)r_rrq�_create_entity�createTextNoder��appendr�r�rbr�r�)
r$�
entityName�is_parameter_entityr��baser�r��notationNamer��childr&r&r'r}1s
��z ExpatBuilder.entity_decl_handlercCsR|j�|||�}|jjjj�|�|jr%|j�|�tkr'|jjjjd=dSdSdSr�)	rq�_create_notationr�r�r�r�rbr��
FILTER_ACCEPT)r$r�r�r�r�r�r&r&r'rCs
�z"ExpatBuilder.notation_decl_handlercCsF|j�|�}t|j|�|jr|j�|�tkr!|j�|�dSdSdSr#)rq�
createCommentr	rrrbr�r�r�)r$r�r�r&r&r'r�Is
�zExpatBuilder.comment_handlercCsd|_d|_dS)NTF�rtr�r)r&r&r'r�O�
z(ExpatBuilder.start_cdata_section_handlercCsd|_d|_dS)NFr�r)r&r&r'r�Sr�z&ExpatBuilder.end_cdata_section_handlercC�dS�Nr.r&)r$�contextr�r�r�r&r&r'r�W�z(ExpatBuilder.external_entity_ref_handlercCs2|jdur|jst|_|j|��_|�||�dSr#)rbrsrr��start_element_handlerrnrx)r$rU�
attributesr&r&r'rwZsz"ExpatBuilder.first_element_handlercCs�|j�|�}t|j|�||_|r8tdt|�d�D]}t�||tdt	�}||d}||_
|j|_t||�q||jj
urE|�|�dSdS)NrrQr.)rq�
createElementr	rr�rangerSr�Attrrrr�r�r
r�rc)r$rUr�r��i�ar�r&r&r'r�`s��z"ExpatBuilder.start_element_handlercCsn|jr5||jjurdS|j�|�}|tkrt|�n|tkr#t|�ndS|j|_	|j�
|�|��dSdSr#)rbrqr��startContainerr��Rejecter�FILTER_SKIP�Skipper�
parentNoderrr��unlink)r$r��filtr&r&r'rcqs

�z"ExpatBuilder._finish_start_elementcCs|j}|j|_|�|�dSr#)rrr�r�)r$rUrrr&r&r'ry�sz ExpatBuilder.end_element_handlercCsd|j�|j�}|r|�||�|jr.||jjurdS|j�|�tkr0|j	�
|�|��dSdSdSr#)rs�getr"�_handle_white_text_nodesrbrqr�r�r�rrr�r�)r$rrr4r&r&r'r��s�z ExpatBuilder._finish_end_elementcCsZ|jjs|��s
dSg}|jD]}|jtkr |j��s |�|�q|D]}|�	|�q#dSr#)
r_�whitespace_in_element_contentr?r�r�r�r��stripr�r�)r$r�r4�Lr�r&r&r'r��s�

��z%ExpatBuilder._handle_white_text_nodescCs@|j�|�}|durt||�|j|<dS|jdusJ�||_dSr#)rsr�rr!)r$rUr%r4r&r&r'r��s

z!ExpatBuilder.element_decl_handlerc
CsF|j�|�}|durt|�}||j|<|j�d|dd|d||g�dS�Nr)rsr�rr r�)r$�elemrUr>�default�requiredr4r&r&r'r��s
�z!ExpatBuilder.attlist_decl_handlercCs8||j_||j_|dkr|rd|j_dSd|j_dSdS)NrTF)rq�version�encoding�
standalone)r$r�r�r�r&r&r'r��s�zExpatBuilder.xml_decl_handlerr#) rGrHrI�__doc__r(rhrnrermr�r�r�rur�r{r�r�r}rr�r�r�r�rwr�rcryr�r�r�r�r�r&r&r&r'r]�s<

r]c@s�eZdZdZdZdd�Zdd�Zdd�Zej	e
jeje
j
eje
jeje
jeje
jeje
jeje
jeje
jeje
jeje
jeje
jej e
j!iZ"d	S)
razoWrapper around a DOMBuilderFilter which implements the checks
    to make the whatToShow filter attribute work.�r`cCs
||_dSr#r�)r$r`r&r&r'r(�s
z#FilterVisibilityController.__init__cCsP|j|j}|jj|@r&|j�|�}|tkrt�|tvr$tdt	|���|St
S)Nz)startContainer() returned illegal value: )�_nodetype_maskr�r`�
whatToShowr��FILTER_INTERRUPTr��_ALLOWED_FILTER_RETURNSrT�reprr�)r$r��mask�valr&r&r'r��s
�z)FilterVisibilityController.startContainercCs�|j|j}|jj|@r>|j�|�}|tkrt�|tkr0|j}|j	dd�D]}|�
|�q&tS|tvr<t
dt|���|StS)Nz%acceptNode() returned illegal value: )r�r�r`r�r�r�r�r�r�r��appendChildr�r�rTr�r�)r$r�r�r��parentr�r&r&r'r��s 
�z%FilterVisibilityController.acceptNodeN)#rGrHrIr�rJr(r�r�r�ELEMENT_NODEr�SHOW_ELEMENT�ATTRIBUTE_NODE�SHOW_ATTRIBUTEr��	SHOW_TEXTr��SHOW_CDATA_SECTION�ENTITY_REFERENCE_NODE�SHOW_ENTITY_REFERENCE�ENTITY_NODE�SHOW_ENTITY�PROCESSING_INSTRUCTION_NODE�SHOW_PROCESSING_INSTRUCTION�COMMENT_NODE�SHOW_COMMENT�
DOCUMENT_NODE�
SHOW_DOCUMENT�DOCUMENT_TYPE_NODE�SHOW_DOCUMENT_TYPE�DOCUMENT_FRAGMENT_NODE�SHOW_DOCUMENT_FRAGMENT�
NOTATION_NODE�
SHOW_NOTATIONr�r&r&r&r'ra�s&
�rac@�eZdZdZdd�ZdS)�FilterCrutch)�_builder�_level�
_old_start�_old_endcCs6d|_||_|j}|j|_|j|_|j|_|j|_dSr�)	rrrdrxrrzrr�ry)r$rLr�r&r&r'r(szFilterCrutch.__init__N)rGrHrIrJr(r&r&r&r'r�rc@s(eZdZdZdd�Zdd�Zdd�ZdS)	r�r&cCs,t�||�|j}dD]}t||d�qdS)N)r|r�r�r�r�r�)rr(rd�setattr)r$rLr�rUr&r&r'r(s
�zRejecter.__init__cGs|jd|_dSr�)r�r$�argsr&r&r'r�r+zRejecter.start_element_handlercGsB|jdkr|jj}|j�|�|j|_|j|_dS|jd|_dS�Nrr.)rrrdrmrrxrrz)r$rr�r&r&r'ry s
zRejecter.end_element_handlerN)rGrHrIrJr(r�ryr&r&r&r'r�s
r�c@� eZdZdZdd�Zdd�ZdS)r�r&cGs2|jj}|j|�|jj|ur|jd|_dSdSr�)rrrrr)r$rr�r&r&r'r�-s

�zSkipper.start_element_handlercGsF|jdkr|j|jj_|j|jj_d|_dS|jd|_|j|�dSr)rrrrdrxrrzrr&r&r'ry3s

zSkipper.end_element_handlerN)rGrHrIrJr�ryr&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@sJeZdZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�FragmentBuilderz�Builder which constructs document fragments given XML source
    text and a context node.

    The context node is expected to provide information about the
    namespace declarations which are in scope at the start of the
    fragment.
    NcCs6|jtkr||_||_n|j|_||_t�||�dSr#)r�r�originalDocumentr�r�r]r()r$r�rfr&r&r'r([s
zFragmentBuilder.__init__cCst�|�d|_dSr#)r]re�fragmentr)r&r&r'reds

zFragmentBuilder.resetcCs|�|���S)zRParse a document fragment from a file object, returning the
        fragment node.)r�r��r$r�r&r&r'r�hszFragmentBuilder.parseFilec	Cs�||_|��}|jj}d}|r+|jp|��}|jr"d|j|jf}n|jr*d|j}nd}|��}t	|||f}z|�
|d�Wn|���|j}|��|S)zMParse a document fragment from a string, returning the
        fragment node.�zPUBLIC "%s" "%s"zSYSTEM "%s"T)
�_sourcernr r�r��_getDeclarationsr�r��_getNSattrs�_FRAGMENT_BUILDER_TEMPLATEr�rer!)	r$r�r�r��identr��nsattrsrqr!r&r&r'r�ms0
�
�zFragmentBuilder.parseStringcCs
|jjj}d}|r�t|jj�D])}|j�|�}|r|d}d||jf}|jr1d||j|j	f}qd||j	f}qt|j
j�D]C}|j
�|�}|rM|d}d||jf}|jrad||j|j	f}n|j	rld||j	f}nd	||jjf}|j
r~d
||j
f}|d}q?|S)z�Re-create the internal subset from the DocumentType node.

        This is only needed if we don't already have the
        internalSubset as a string.
        r#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�item�nodeNamer�r�r�
firstChildr�r�)r$r�rMr��notationrr&r&r'r%�s:
��
z FragmentBuilder._getDeclarationscCr�)Nr#r&r)r&r&r'r&�r�zFragmentBuilder._getNSattrscCs�|tkr<|j}|j}|j�|�}|j|_|j��|_|j|_z|�|j	d�W||_||_d|_	dS||_||_d|_	wt
�|||||�S)NTr�)�$_FRAGMENT_BUILDER_INTERNAL_SYSTEM_IDrqrrrd�ExternalEntityParserCreater �createDocumentFragmentr!r�r$r]r�)r$r�r�r�r��old_document�old_cur_noder�r&r&r'r��s&�
�z+FragmentBuilder.external_entity_ref_handlerr#)rGrHrIr�r(rer�r�r%r&r�r&r&r&r'rRs
	$rc@sBeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Z	d
d�Z	dS)�
Namespacesz7Mix-in class for builders; adds support for namespaces.cCs
g|_dSr#)�_ns_ordered_prefixesr)r&r&r'�_initNamespaces�s
zNamespaces._initNamespacescCstjdd�}d|_|S)z'Create a new namespace-handling parser.rO)�namespace_separatorT)rrg�namespace_prefixesr�r&r&r'rh�szNamespaces.createParsercCs$t�||�|jjr|j|_dSdS)z.Insert the namespace-handlers onto the parser.N)r]rmr_�namespace_declarations�start_namespace_decl_handler�StartNamespaceDeclHandlerr�r&r&r'rm�s
��zNamespaces.installcCs|j�||f�dS)z/Push this namespace declaration on our storage.N)r6r�)r$rZrXr&r&r'r;�sz'Namespaces.start_namespace_decl_handlercCs�d|vrt||�\}}}}nt}|}d}t}t�||||�}|j|_t|j|�||_|j	r`|j	D](\}}|rEt�
t|d|�t|d�}nt�
dtdt�}||_
|j|_t||�q1|j	dd�=|r�|��|j}	|j}
tdt|�d�D]J}||}||d}
d|vr�t||�\}}}}t�
||||�}||	|<||
||f<nt�
|t|t�}||	|<||
t|f<|j|_|
|_
||_qtdSdS)NrO�xmlns:�xmlnsrrQr.)r\rrr�Elementrqr�r	rrr6r�rNrr�r
�_ensure_attributes�_attrs�_attrsNSr�rS�ownerElement)r$rUr�rXrYrZr[r�r�rArBr�r3r�r&r&r'r��sZ����z Namespaces.start_element_handlerTcCs�|j}d|vr$t||�\}}}}|j|kr|j|kr|j|ks#Jd��n|j|ks-Jd��|jtks6Jd��|j|_|�|�dS)NrOz$element stack messed up! (namespace)z&element stack messed up - bad nodeNamez*element stack messed up - bad namespaceURI)	rrr\r7r8rZr-rr�r�)r$rUrrrXrYrZr[r&r&r'rys 

���zNamespaces.end_element_handlerN)
rGrHrIr�r7rhrmr;r�ryr&r&r&r'r5�s/r5c@r)�ExpatBuilderNSz*Document builder that supports namespaces.cC�t�|�|��dSr#)r]rer7r)r&r&r're)�
zExpatBuilderNS.resetN)rGrHrIr�rer&r&r&r'rD&rrDc@r)�FragmentBuilderNSz*Fragment builder that supports namespaces.cCrEr#)rrer7r)r&r&r're1rFzFragmentBuilderNS.resetcCs�d}|j}g}|r@t|d�r;|j��D]'\}}||vrq|�|�|r(d|}nd}|r4d|||f}qd||f}q|j}|s	|S)zNReturn string of namespace attributes from this element and
        ancestors.r#�_ns_prefix_urir=r>z%s
    %s='%s'z %s='%s')r��hasattrrH�itemsr�r�)r$�attrsr�r�rZrX�declnamer&r&r'r&5s$


�zFragmentBuilderNS._getNSattrsN)rGrHrIr�rer&r&r&r&r'rG.srGc@seZdZdZdS)r�zEException raised to short-circuit parsing in InternalSubsetExtractor.N)rGrHrIr�r&r&r&r'r�Ssr�c@sLeZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�ZdS)r�zBXML processor which can rip out the internal document type subset.NcCs|jS)z'Return the internal subset as a string.)r�r)r&r&r'r�\sz!InternalSubsetExtractor.getSubsetcC�(z	t�||�WdStyYdSwr#)r]r�r�r"r&r&r'r�`�
�z!InternalSubsetExtractor.parseFilecCrMr#)r]r�r�)r$r�r&r&r'r�frNz#InternalSubsetExtractor.parseStringcCs|j|_|j|_dSr#)rurvr�rxr�r&r&r'rmlszInternalSubsetExtractor.installcCs.|r|��}g|_|jj|_|j|_dSt��r#)rnr�r��DefaultHandlerr�r�r�)r$rUr�r�r�r�r&r&r'rups
z2InternalSubsetExtractor.start_doctype_decl_handlercCs(d�|j��dd��dd�}||_t��)Nr#z
�
�
)�joinr��replacer�)r$rMr&r&r'r�zsz0InternalSubsetExtractor.end_doctype_decl_handlercCst��r#)r�)r$rUrKr&r&r'r�r:z-InternalSubsetExtractor.start_element_handler)rGrHrIr�r�r�r�r�rmrur�r�r&r&r&r'r�Ws
r�TcCsd|rt�}nt�}t|t�r+t|d��}|�|�}Wd�|S1s$wY|S|�|�}|S)z{Parse a document, returning the resulting Document node.

    'file' may be either a file name or an open file object.
    �rbN)rDr]�
isinstance�str�openr�)r��
namespacesrL�fp�resultr&r&r'�parse�s

��
�r[cCs|rt�}nt�}|�|�S)zOParse a document from a string, returning the resulting
    Document node.
    )rDr]r�)r�rXrLr&r&r'r��s
r�cCsh|rt|�}nt|�}t|t�r-t|d��}|�|�}Wd�|S1s&wY|S|�|�}|S)z�Parse a fragment of a document, given the context from which it
    was originally extracted.  context should be the parent of the
    node(s) which are in the fragment.

    'file' may be either a file name or an open file object.
    rTN)rGrrUrVrWr�)r�r�rXrLrYrZr&r&r'�
parseFragment�s


��
�r\cCs |rt|�}nt|�}|�|�S)z�Parse a fragment of a document from a string, given the context
    from which it was originally extracted.  context should be the
    parent of the node(s) which are in the fragment.
    )rGrr�)r�r�rXrLr&r&r'�parseFragmentString�s

r]cCs|jrt|�St|�S)z,Create a builder based on an Options object.)rXrDr])rfr&r&r'�makeBuilder�sr^)T)3r��xml.domrrrrrr�xml.parsersr�xml.dom.minidomr	r
�xml.dom.NodeFilterrr�r�r�DOMBuilderFilterr�r�r�r��getDOMImplementationro�TypeInfor1�objectrrNr\r]r�rarr�r�r0r'rr5rDrG�	Exceptionr�r�r[r�r\r]r^r&r&r&r'�<module>sh








�3
C:�	��
u_%
,



Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY