HEX
Server: LiteSpeed
System: Linux premium263.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: eastcjee (525)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //proc/self/root/lib64/python3.6/html/__pycache__/parser.cpython-36.pyc
3

�_Vj�I�@s�dZddlZddlZddlZddlmZdgZejd�Zejd�Z	ejd�Z
ejd�Zejd	�Zejd
�Z
ejd�Zejd�Zejd
�Zejdej�Zejd
�Zejd�ZGdd�dej�ZdS)zA parser for HTML and XHTML.�N)�unescape�
HTMLParserz[&<]z
&[a-zA-Z#]z%&([a-zA-Z][-.a-zA-Z0-9]*)[^a-zA-Z0-9]z)&#(?:[0-9]+|[xX][0-9a-fA-F]+)[^0-9a-fA-F]z	<[a-zA-Z]�>z--\s*>z+([a-zA-Z][^\t\n\r\f />\x00]*)(?:\s|/(?!>))*z]((?<=[\'"\s/])[^\s/>][^\s/=>]*)(\s*=+\s*(\'[^\']*\'|"[^"]*"|(?![\'"])[^>\s]*))?(?:\s|/(?!>))*aF
  <[a-zA-Z][^\t\n\r\f />\x00]*       # tag name
  (?:[\s/]*                          # optional whitespace before attribute name
    (?:(?<=['"\s/])[^\s/>][^\s/=>]*  # attribute name
      (?:\s*=+\s*                    # value indicator
        (?:'[^']*'                   # LITA-enclosed value
          |"[^"]*"                   # LIT-enclosed value
          |(?!['"])[^>\s]*           # bare value
         )
         (?:\s*,)*                   # possibly followed by a comma
       )?(?:\s|/(?!>))*
     )*
   )?
  \s*                                # trailing whitespace
z#</\s*([a-zA-Z][-.a-zA-Z0-9:_]*)\s*>c@s�eZdZdZd:Zdd�dd�Zdd	�Zd
d�Zdd
�ZdZ	dd�Z
dd�Zdd�Zdd�Z
dd�Zd;dd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�ZdS)<raEFind tags and other markup and call handler functions.

    Usage:
        p = HTMLParser()
        p.feed(data)
        ...
        p.close()

    Start tags are handled by calling self.handle_starttag() or
    self.handle_startendtag(); end tags by self.handle_endtag().  The
    data between tags is passed from the parser to the derived class
    by calling self.handle_data() with the data as argument (the data
    may be split up in arbitrary chunks).  If convert_charrefs is
    True the character references are converted automatically to the
    corresponding Unicode character (and self.handle_data() is no
    longer split in chunks), otherwise they are passed by calling
    self.handle_entityref() or self.handle_charref() with the string
    containing respectively the named or numeric reference as the
    argument.
    �script�styleT)�convert_charrefscCs||_|j�dS)z�Initialize and reset this instance.

        If convert_charrefs is True (the default), all character references
        are automatically converted to the corresponding Unicode characters.
        N)r�reset)�selfr�r
�#/usr/lib64/python3.6/html/parser.py�__init__WszHTMLParser.__init__cCs:d|_d|_t|_d|_g|_d|_d|_tj	j
|�dS)z1Reset this instance.  Loses all unprocessed data.�z???Nr�)�rawdata�lasttag�interesting_normal�interesting�
cdata_elem�_pending�_pending_len�_parse_threshold�_markupbase�
ParserBaser)r	r
r
rr`szHTMLParser.resetcCs�|jt|�7_|j|jkr,|jj|�n~|jsB|j|7_n,|jj|�|jdj|j�7_|jj�d|_t|j�}|jd�t|j�|kr�d|_nt|j�|_dS)z�Feed data to the parser.

        Call this as often as you want, with as little or as much text
        as you want (may include '\n').
        r
rrN)	r�lenrr�appendr�join�clear�goahead)r	�data�nr
r
r�feedks



zHTMLParser.feedcCs:|jr,|jdj|j�7_|jj�d|_|jd�dS)zHandle any buffered data.r
rrN)rrrrrr)r	r
r
r�close�s

zHTMLParser.closeNcCs|jS)z)Return full source of start tag: '<...>'.)�_HTMLParser__starttag_text)r	r
r
r�get_starttag_text�szHTMLParser.get_starttag_textcCs$|j�|_tjd|jtj�|_dS)Nz</\s*%s\s*>)�lowerr�re�compile�Ir)r	�elemr
r
r�set_cdata_mode�s
zHTMLParser.set_cdata_modecCst|_d|_dS)N)rrr)r	r
r
r�clear_cdata_mode�szHTMLParser.clear_cdata_modecCsZ|j}d}t|�}�x�||k�r�|jr||jr||jd|�}|dkr�|jdt||d��}|dkrvtjd�j	||�rvP|}n(|j
j	||�}|r�|j�}n|jr�P|}||kr�|jr�|jr�|jt
|||���n|j|||��|j||�}||kr�P|j}|d|��rLtj||��r&|j|�}	n�|d|��r>|j|�}	nl|d|��rV|j|�}	nT|d|��rn|j|�}	n<|d	|��r�|j|�}	n$|d
|k�r�|jd�|d
}	nP|	dk�r>|�s�P|jd|d
�}	|	dk�r�|jd|d
�}	|	dk�r|d
}	n|	d
7}	|j�r,|j�r,|jt
|||	���n|j|||	��|j||	�}q|d|��r�tj||�}|�r�|j�d
d�}
|j|
�|j�}	|d|	d
��s�|	d
}	|j||	�}qn:d||d�k�r�|j|||d
��|j||d
�}Pq|d|��r�tj||�}|�rP|jd
�}
|j|
�|j�}	|d|	d
��sB|	d
}	|j||	�}qtj||�}|�r�|�r�|j�||d�k�r�|j�}	|	|k�r�|}	|j||d
�}Pn,|d
|k�r�|jd�|j||d
�}nPqdstd��qW|�rH||k�rH|j�rH|j�r*|j�r*|jt
|||���n|j|||��|j||�}||d�|_dS)Nr�<�&�"z[\s;]z</z<!--z<?z<!rrz&#��;zinteresting.search() lied���)rrrr�find�rfind�maxr%r&�searchr�start�handle_datarZ	updatepos�
startswith�starttagopen�match�parse_starttag�parse_endtag�
parse_comment�parse_pi�parse_html_declaration�charref�group�handle_charref�end�	entityref�handle_entityref�
incomplete�AssertionError)r	rBr�ir�jZampposr9r7�k�namer
r
rr�s�











zHTMLParser.goaheadcCs�|j}|||d�dks"td��|||d�dkr@|j|�S|||d�dkr^|j|�S|||d�j�d	kr�|jd
|d�}|dkr�d
S|j||d|��|dS|j|�SdS)Nr.z<!z+unexpected call to parse_html_declaration()�z<!--�z<![�	z	<!doctyperrr0r0)rrFr<Zparse_marked_sectionr$r1�handle_decl�parse_bogus_comment)r	rGr�gtposr
r
rr>s

z!HTMLParser.parse_html_declarationrcCs`|j}|||d�dks"td��|jd|d�}|dkr>d	S|rX|j||d|��|dS)
Nr.�<!�</z"unexpected call to parse_comment()rr)rQrRr0r0)rrFr1�handle_comment)r	rGZreportr�posr
r
rrO1szHTMLParser.parse_bogus_commentcCsd|j}|||d�dks"td��tj||d�}|s:dS|j�}|j||d|��|j�}|S)Nr.z<?zunexpected call to parse_pi()rr0)rrF�picloser4r5�	handle_pirB)r	rGrr9rHr
r
rr==szHTMLParser.parse_picCs�d|_|j|�}|dkr|S|j}|||�|_g}tj||d�}|sPtd��|j�}|jd�j�|_	}x�||k�r0t
j||�}|s�P|jddd�\}	}
}|
s�d}n^|dd�dko�|dd�knp�|dd�dko�|dd�kn�r|dd
�}|�rt|�}|j|	j�|f�|j�}qnW|||�j
�}|dk�r�|j�\}
}d
|jk�r�|
|jjd
�}
t|j�|jjd
�}n|t|j�}|j|||��|S|jd	��r�|j||�n"|j||�||jk�r�|j|�|S)Nrrz#unexpected call to parse_starttag()r.rL�'�"r�/>�
r0r0r0)rrY)r"�check_for_whole_start_tagr�tagfind_tolerantr9rFrBr@r$r�attrfind_tolerantrr�stripZgetpos�countrr2r6�endswith�handle_startendtag�handle_starttag�CDATA_CONTENT_ELEMENTSr))r	rG�endposr�attrsr9rI�tag�mZattrname�restZ	attrvaluerB�lineno�offsetr
r
rr:IsR
(*

zHTMLParser.parse_starttagcCs�|j}tj||�}|r�|j�}|||d�}|dkr>|dS|dkr~|jd|�rZ|dS|jd|�rjd	S||krv|S|dS|dkr�d
S|dkr�dS||kr�|S|dStd��dS)Nrr�/z/>r.r
z6abcdefghijklmnopqrstuvwxyz=/ABCDEFGHIJKLMNOPQRSTUVWXYZzwe should not get here!r0r0r0)r�locatestarttagend_tolerantr9rBr7rF)r	rGrrgrH�nextr
r
rr[|s.z$HTMLParser.check_for_whole_start_tagcCs2|j}|||d�dks"td��tj||d�}|s:dS|j�}tj||�}|s�|jdk	rr|j|||��|St	j||d�}|s�|||d�dkr�|dS|j
|�S|jd�j�}|j
d|j��}|j|�|dS|jd�j�}|jdk	�r||jk�r|j|||��|S|j|j��|j�|S)	Nr.z</zunexpected call to parse_endtagrrLz</>rr0)rrF�	endendtagr4rB�
endtagfindr9rr6r\rOr@r$r1�
handle_endtagr*)r	rGrr9rPZ	namematchZtagnamer(r
r
rr;�s8


zHTMLParser.parse_endtagcCs|j||�|j|�dS)N)rbrp)r	rfrer
r
rra�szHTMLParser.handle_startendtagcCsdS)Nr
)r	rfrer
r
rrb�szHTMLParser.handle_starttagcCsdS)Nr
)r	rfr
r
rrp�szHTMLParser.handle_endtagcCsdS)Nr
)r	rJr
r
rrA�szHTMLParser.handle_charrefcCsdS)Nr
)r	rJr
r
rrD�szHTMLParser.handle_entityrefcCsdS)Nr
)r	rr
r
rr6�szHTMLParser.handle_datacCsdS)Nr
)r	rr
r
rrS�szHTMLParser.handle_commentcCsdS)Nr
)r	Zdeclr
r
rrN�szHTMLParser.handle_declcCsdS)Nr
)r	rr
r
rrV�szHTMLParser.handle_picCsdS)Nr
)r	rr
r
r�unknown_decl�szHTMLParser.unknown_declcCstjdtdd�t|�S)NzZThe unescape method is deprecated and will be removed in 3.5, use html.unescape() instead.r.)�
stacklevel)�warnings�warn�DeprecationWarningr)r	�sr
r
rr�s
zHTMLParser.unescape)rr)r)�__name__�
__module__�__qualname__�__doc__rcrrr r!r"r#r)r*rr>rOr=r:r[r;rarbrprArDr6rSrNrVrqrr
r
r
rr?s8	z
3"()rzr%rsrZhtmlr�__all__r&rrErCr?r8rUZcommentcloser\r]�VERBOSErlrnrorrr
r
r
r�<module>s(