403Webshell
Server IP : 202.61.199.114  /  Your IP : 216.73.217.139
Web Server : nginx/1.22.1
System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
User : web20 ( 1018)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /tmp/calpy/tinyhtml5/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /tmp/calpy/tinyhtml5/__pycache__/parser.cpython-311.pyc
�

Υ=jc����ddlmZddlmZmZmZmZmZmZm	Z	m
Z
mZmZm
Z
mZmZmZddlmZddlmZmZdQd�ZGd�d��Zd	�ZGd
�d��ZGd�d
e��ZGd�de��ZGd�de��ZGd�de��ZGd�de��ZGd�de��ZGd�de��Z Gd�de��Z!Gd�de��Z"Gd�de��Z#Gd �d!e��Z$Gd"�d#e��Z%Gd$�d%e��Z&Gd&�d'e��Z'Gd(�d)e��Z(Gd*�d+e��Z)Gd,�d-e��Z*Gd.�d/e��Z+Gd0�d1e��Z,Gd2�d3e��Z-Gd4�d5e��Z.Gd6�d7e��Z/Gd8�d9e��Z0id:e�d;e�d<e�d=e�d>e�d?e�d@e �dAe!�dBe"�dCe#�dDe$�dEe%�dFe&�dGe'�dHe(�dIe)�dJe*�e+e,e-e.e/e0dK��Z1dL�Z2dRdP�Z3dNS)S�)�inputstream)�ReparseError�Token�adjust_foreign_attributes�adjust_mathml_attributes�adjust_svg_attributes�ascii_upper_to_lower�cdata_elements�heading_elements�html_integration_point_elements�&mathml_text_integration_point_elements�
namespaces�rcdata_elements�space_characters�special_elements)�
HTMLTokenizer)�Marker�TreeBuilderTc�8�t|��j|fi|��S)u�Parse an HTML document into a tree.

    :param document:
        The document to parse as a HTML string, filename, file-like object.
    :type document:
        :class:`str`, :class:`bytes`, :class:`pathlib.Path` or
        :term:`file object`
    :param bool namespace_html_elements:
        Whether or not to namespace HTML elements.

    Extra parameters can be provided to define possible encodings if the
    document is given as :class:`bytes`.

    :param override_encoding: Forced encoding provided by user agent.
    :type override_encoding: str or bytes
    :param transport_encoding: Encoding provided by transport layout.
    :type transport_encoding: str or bytes
    :param same_origin_parent_encoding: Parent document encoding.
    :type same_origin_parent_encoding: str or bytes
    :param likely_encoding: Possible encoding provided by user agent.
    :type likely_encoding: str or bytes
    :param default_encoding: Encoding used as fallback.
    :type default_encoding: str or bytes

    :returns: :class:`xml.etree.ElementTree.Element`.

    Example:

    >>> from tinyhtml5 import parse
    >>> parse('<html><body><p>This is a doc</p></body></html>')
    <Element '{http://www.w3.org/1999/xhtml}html' at …>

    )�
HTMLParser�parse)�document�namespace_html_elements�kwargss   �C/tmp/claude-1015/pip-target-jmvfl800/lib/python/tinyhtml5/parser.pyrrs)��D5�:�-�.�.�4�X�H�H��H�H�H�c��eZdZdZdd�Zdd�Zd�Zed���Zd	�Z	d
�Z
d�Zdd�Zdd�Z
dd�Zd�Zd�Zd�Zd�Zd�ZdS)rz]HTML parser.

    Generate a tree structure from a stream of (possibly malformed) HTML.

    Tc���t|���_g�_�fd�t���D���_dS)Nc�:��i|]\}}||��j����S�)�tree)�.0�name�cls�selfs   �r�
<dictcomp>z'HTMLParser.__init__.<locals>.<dictcomp>Es-���S�S�S�i�d�C�t�S�S��t�y�1�1�S�S�Sr)rr!�errors�_phases�items�phases)r%rs` r�__init__zHTMLParser.__init__BsA���� 7�8�8��	����S�S�S�S�7�=�=�?�?�S�S�S����rNFc��||_||_t|fd|i|��|_|���	|���dS#t$r,|���|���YdSwxYw)N�parser)�	container�	scriptingr�	tokenizer�reset�	main_loopr)r%�streamr.r/rs     r�_parsezHTMLParser._parseGs���"���"���&�v�E�E�d�E�f�E�E����
�
����	��N�N��������	�	�	��J�J�L�L�L��N�N�������	���s�A�2B�Bc��|j���d|_g|_d|_|jr�|jtvr|jj|j_	nH|jtvr|jj|j_	n#|jdkr|jj|j_	n	|j
d|_|j���|���n|j
d|_d|_d|_d|_dS)NFz	no quirks�	plaintext�before html�initialT)r!r1�first_start_tagr'�compatibility_moder.r
r0�rcdata_state�stater�
rawtext_state�plaintext_stater*�phase�_insert_html_element�reset_insertion_mode�
last_phase�before_rcdata_phase�frameset_ok�r%s rr1zHTMLParser.resetRs����	������$������"-����>�	0��~��/�/�'+�~�'B���$�$���?�2�2�'+�~�'C���$�$���;�.�.�'+�~�'E���$�$����]�3�D�J��J�+�+�-�-�-��%�%�'�'�'�'���Y�/�D�J����#'�� �����rc�^�t|d��r|jjjdjSdS)z�Name of the character encoding that was used to decode the input stream.

        :obj:`None` if that is not determined yet.

        r0�N)�hasattrr0r3�encodingr#rEs rrIzHTMLParser.encodingos6���4��%�%�	:��>�(�1�!�4�9�9�	:�	:rc��|j|jf}|tddfkr0d|jvo&|jd�t
��dvS|tvS)N�mathml�annotation-xmlrI)z	text/htmlzapplication/xhtml+xml)�	namespacer#r�
attributes�	translater	r�r%�element�	full_names   r�is_html_integration_pointz$HTMLParser.is_html_integration_pointysl���&���5�	���H�-�/?�@�@�@��g�0�0�7��"�:�.�8�8�9M�N�N�6�7�
8��;�;�;rc�0�|j|jf}|tvS�N)rMr#r
rPs   r� is_mathml_text_integration_pointz+HTMLParser.is_mathml_text_integration_point�s���&���5�	��B�B�Brc��|jD�]�}d}|}|��q|}|jjr|jjdnd}|r|jnd}|r|jnd}|d}|t
jkr4|�|d|�di����d}�n�t|jj��dks�||jj
ks�|�|��rC|t
jkr|dtddg��vs�|t
jt
jfvsm|t d	kr"|d
kr|t
jkr|ddks:|�|��r-|t
jt
jt
jfvr|j}n
|jd}|t
jkr|�|��}n�|t
jkr|�|��}n�|t
jkr|�|��}nq|t
jkr|�|��}nK|t
jkr|�|��}n%|t
jkr|�|��}|��q|t
jkr.|d
r&|ds|�dd|di�����d}	g}
|	rD|
�|j��|j���}	|	r|j|
vsJ�|	�BdSdS)N����type�data�datavarsrGr#�mglyph�
malignmarkrKrL�svg�in foreign content�selfClosing�selfClosingAcknowledgedz&non-void-element-with-trailing-solidusT)r0r!�
open_elementsrMr#r�PARSE_ERROR�parse_error�get�len�default_namespacerV�	START_TAG�	frozenset�
CHARACTERS�SPACE_CHARACTERSrrSr?r*�process_characters�process_space_characters�process_start_tag�END_TAG�process_end_tag�COMMENT�process_comment�DOCTYPE�process_doctype�append�process_eof)r%�token�previous_token�	new_token�current_node�current_node_namespace�current_node_namerYr?�	reprocessr*s           rr2zHTMLParser.main_loop�s`���^�3	6�3	6�E�!�N��I��'�!*��37�9�3J�T�D�I�+�B�/�/�PT��/;�D�L�*�*��'�9E�$O�L�$5�$5�4�!� ��(���5�,�,�,��$�$�Y�v�%6�	�
�
�j�RT�8U�8U�V�V�V� $�I�I��D�I�3�4�4��9�9�.�$�)�2M�M�M��>�>�|�L�L�N��5�?�2�2� ��=�	�8�\�:R�0S�0S�S�S��5�#3�U�5K�"L�L�L�/�:�h�3G�G�G�*�.>�>�>����0�0��v��%�/�/��7�7��E�E�0�JN�!�O�U�-=�!�2�S4�K4�K4�!%�
��� $��,@� A���u�/�/�/�$)�$<�$<�Y�$G�$G�	�	���!7�7�7�$)�$B�$B�9�$M�$M�	�	����0�0�$)�$;�$;�I�$F�$F�	�	����.�.�$)�$9�$9�)�$D�$D�	�	����.�.�$)�$9�$9�)�$D�$D�	�	����.�.�$)�$9�$9�)�$D�$D�	�U�'�X���'�'�N�=�,I�'�&�'@�A�(�� � �<��^�F�3�4�6�6�6��
�	����	0��M�M�$�*�%�%�%��
�.�.�0�0�I��
0��z��/�/�/�/�	�	0�	0�	0�	0�	0rc�R�|j|fi|��|j�|��S)zvParse a HTML document into a well-formed tree.

        If ``full_tree`` is ``True``, return the whole tree.

        )r4r!�get_document)r%r3�	full_treers    rrzHTMLParser.parse�s4��	���F�%�%�f�%�%�%��y�%�%�i�0�0�0r�divc�T�|j|fd|i|��|j���S)u�Parse a HTML fragment into a well-formed tree fragment.

        ``container`` is the tag name of the fragment’s container.

        r.)r4r!�get_fragment)r%r3r.rs    r�parse_fragmentzHTMLParser.parse_fragment�s7��	���F�:�:�i�:�6�:�:�:��y�%�%�'�'�'rc��|�i}|j�|jj���||f��dSrU)r'rur0r3�position)r%�	errorcoder[s   rrdzHTMLParser.parse_error�sA�����H�����D�N�1�:�:�<�<�i��R�S�S�S�S�Src�0�t|t��dSrU)�adjust_attributesr�r%rws  rrz#HTMLParser.adjust_mathml_attributes�s���%�!9�:�:�:�:�:rc�0�t|t��dSrU)r�rr�s  rrz HTMLParser.adjust_svg_attributes�s���%�!6�7�7�7�7�7rc�0�t|t��dSrU)r�rr�s  rrz$HTMLParser.adjust_foreign_attributes�s���%�!:�;�;�;�;�;rc�j�d}ddddddddddd	d	d
dd�}|jjddd
�D]�}|j}d}||jjdkr|jsJ�d}|j}|dvr	|jsJ�|s|j|jjkr�X||vr|j||}n|r|jd	}n��||_dS)NF�	in select�in cell�in row�
in table body�
in caption�in column group�in table�in body�in frameset�before head)�select�td�th�tr�tbody�thead�tfoot�caption�colgroup�table�head�body�frameset�htmlrXrGT)r�r�r�r�)r!rbr#r.rMrgr*r?)r%�last�	new_modes�node�	node_name�	new_phases      rrAzHTMLParser.reset_insertion_mode�s����!����$�$�$�#�)����%�!�
�
�	� �I�+�D�D�b�D�1�	�	�D��	�I��I��t�y�.�q�1�1�1��~�%�%�%��� �N�	��B�B�B��~�%�%�%��
�D�N�d�i�.I�I�I���I�%�%� �K�	�)�(<�=�	����
� �K�	�2�	���
���
�
�
rc���|dvsJ�|j�|��|dkr|jj|j_n|jj|j_|j|_|jd|_dS)N)�RAWTEXT�RCDATAr��text)	r!�insert_elementr0r=r<r;r?�original_phaser*)r%rw�content_types   r�parse_rcdata_rawtextzHTMLParser.parse_rcdata_rawtextsr���4�4�4�4�4��	� � ��'�'�'��9�$�$�#'�>�#?�D�N� � �#'�>�#>�D�N� �"�j����[��(��
�
�
r�T�NF)F)r�rU)�__name__�
__module__�__qualname__�__doc__r+r4r1�propertyrIrSrVr2rr�rdrrrrAr�r rrrr;s1��������T�T�T�T�
	�	�	�	� � � �:�:�:��X�:�<�<�<�C�C�C�=0�=0�=0�~1�1�1�1�(�(�(�(�T�T�T�T�
;�;�;�8�8�8�<�<�<�)�)�)�V
)�
)�
)�
)�
)rrc��d�|D��S)Nc�T�i|]%\}}t|t��r|fn|D]}||���&Sr )�
isinstance�str)r"�keys�value�keys    rr&zdispatch.<locals>.<dictcomp>!sZ������D�%�)�$��4�4�>�T�G�G�$���
�	�U����rr )r)s r�dispatchr� s#���� ����rc�L�eZdZdZdZd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�Phasez?Base class for helper that implements each phase of processing.)�__end_tag_cache�__start_tag_cacher-r!c�>�||_||_i|_i|_dSrU)r-r!�_Phase__start_tag_cache�_Phase__end_tag_cache)r%r-r!s   rr+zPhase.__init__,s&�������	�!#���!����rc��t�rU)�NotImplementedErrorrEs rrvzPhase.process_eof2s��!�!rc�\�|j�||jjd��dS)NrX�r!�insert_commentrbr�s  rrrzPhase.process_comment5s,��	
�	� � ���	�(?��(C�D�D�D�D�Drc�:�|j�d��dS)Nzunexpected-doctype�r-rdr�s  rrtzPhase.process_doctype:s������ 4�5�5�5�5�5rc�F�|j�|d��dS�NrZ�r!�insert_textr�s  rrlzPhase.process_characters=�"���	���e�F�m�,�,�,�,�,rc�F�|j�|d��dSr�r�r�s  rrmzPhase.process_space_characters@r�rc���|d}||jvr|j|}n�|j�|t|��j��x}|j|<t|j��t|j��dzkrf|j�tt|j������t|j��t|j��dzk�f|||��S�Nr#g�������?)	r��start_tag_handlerrerY�start_tag_otherrf�pop�next�iter�r%rwr#�functions    rrnzPhase.process_start_tagCs����V�}���4�)�)�)��-�d�3�H�H�6:�6L�6P�6P��d�4�j�j�0�72�72�
2�H�t�-�d�3��d�,�-�-��D�4J�0K�0K�c�0Q�Q�Q��&�*�*�4��T�5K�0L�0L�+M�+M�N�N�N��d�,�-�-��D�4J�0K�0K�c�0Q�Q�Q��x��e�$�$�$rc�(�|jjs&|ddkr|j�d��|d���D]8\}}||jjdjvr||jjdj|<�9d|j_dS)Nr#r�z
non-html-rootrZrGF)r-r9rdr)r!rbrN�r%rw�attrr�s    r�start_tag_htmlzPhase.start_tag_htmlRs����{�*�	5�u�V�}��/F�/F��K�#�#�O�4�4�4�!��=�.�.�0�0�	D�	D�K�D�%��4�9�2�1�5�@�@�@�>C��	�'��*�5�d�;��&+���#�#�#rc���|d}||jvr|j|}n�|j�|t|��j��x}|j|<t|j��t|j��dzkrf|j�tt|j������t|j��t|j��dzk�f|||��Sr�)	r��end_tag_handlerrerY�
end_tag_otherrfr�r�r�r�s    rrpzPhase.process_end_tag\s����V�}���4�'�'�'��+�D�1�H�H�48�4H�4L�4L��d�4�j�j�.�50�50�
0�H�t�+�D�1��d�*�+�+�c�$�2F�.G�.G�#�.M�M�M��$�(�(��d�4�3G�.H�.H�)I�)I�J�J�J��d�*�+�+�c�$�2F�.G�.G�#�.M�M�M��x��e�$�$�$rN)r�r�r�r��	__slots__r+rvrrrtrlrmrnr�rpr rrr�r�(s�������I�I�J�I�"�"�"�"�"�"�E�E�E�
6�6�6�-�-�-�-�-�-�
%�
%�
%�,�,�,�
%�
%�
%�
%�
%rr�c�R�eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	S)
�InitialPhasec��dSrUr r�s  rrmz%InitialPhase.process_space_characterso����rc�P�|j�||jj��dSrU�r!r�rr�s  rrrzInitialPhase.process_commentr�%���	� � ���	�(:�;�;�;�;�;rc��|d}|d}|d}|d}|dks
|�|� |dkr|j�d��|�d}|j�|��|dkr|�t
��}|rV|ddksJ|�d	��s5|d
vs1|�d��r|�|r%|���dkr
d
|j_n8|�d��s|�d��r|�d|j_|jj	d|j_
dS)Nr#�publicId�systemId�correctr�zabout:legacy-compatzunknown-doctype�)7z*+//silmaril//dtd html pro v0r11 19970101//z4-//advasoft ltd//dtd html 3.0 aswedit + extensions//z*-//as//dtd html 3.0 aswedit + extensions//z-//ietf//dtd html 2.0 level 1//z-//ietf//dtd html 2.0 level 2//z&-//ietf//dtd html 2.0 strict level 1//z&-//ietf//dtd html 2.0 strict level 2//z-//ietf//dtd html 2.0 strict//z-//ietf//dtd html 2.0//z-//ietf//dtd html 2.1e//z-//ietf//dtd html 3.0//z-//ietf//dtd html 3.2 final//z-//ietf//dtd html 3.2//z-//ietf//dtd html 3//z-//ietf//dtd html level 0//z-//ietf//dtd html level 1//z-//ietf//dtd html level 2//z-//ietf//dtd html level 3//z"-//ietf//dtd html strict level 0//z"-//ietf//dtd html strict level 1//z"-//ietf//dtd html strict level 2//z"-//ietf//dtd html strict level 3//z-//ietf//dtd html strict//z-//ietf//dtd html//z(-//metrius//dtd metrius presentational//z5-//microsoft//dtd internet explorer 2.0 html strict//z.-//microsoft//dtd internet explorer 2.0 html//z0-//microsoft//dtd internet explorer 2.0 tables//z5-//microsoft//dtd internet explorer 3.0 html strict//z.-//microsoft//dtd internet explorer 3.0 html//z0-//microsoft//dtd internet explorer 3.0 tables//z#-//netscape comm. corp.//dtd html//z*-//netscape comm. corp.//dtd strict html//z*-//o'reilly and associates//dtd html 2.0//z3-//o'reilly and associates//dtd html extended 1.0//z;-//o'reilly and associates//dtd html extended relaxed 1.0//zN-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//zE-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//z$-//spyglass//dtd html 2.0 extended//z+-//sq//dtd html 2.0 hotmetal + extensions//z--//sun microsystems corp.//dtd hotjava html//z4-//sun microsystems corp.//dtd hotjava strict html//z-//w3c//dtd html 3 1995-03-24//z-//w3c//dtd html 3.2 draft//z-//w3c//dtd html 3.2 final//z-//w3c//dtd html 3.2//z-//w3c//dtd html 3.2s draft//z-//w3c//dtd html 4.0 frameset//z#-//w3c//dtd html 4.0 transitional//z(-//w3c//dtd html experimental 19960712//z&-//w3c//dtd html experimental 970421//z-//w3c//dtd w3 html//z-//w3o//dtd w3 html 3.0//z#-//webtechs//dtd mozilla html 2.0//z-//webtechs//dtd mozilla html//)z$-//w3o//dtd w3 html strict 3.0//en//z"-/w3c/dtd html 4.0 transitional/enr�)z -//w3c//dtd html 4.01 frameset//z$-//w3c//dtd html 4.01 transitional//z:http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd�quirks)z -//w3c//dtd xhtml 1.0 frameset//z$-//w3c//dtd xhtml 1.0 transitional//zlimited quirksr7)r-rdr!�insert_doctyperOr	�
startswith�lowerr:r*r?)r%rwr#�	public_id�	system_idr�s      rrtzInitialPhase.process_doctypeus����V�}���*�%�	��*�%�	��	�"���F�N�N�i�3��&�9�8M�+M�+M��K�#�#�$5�6�6�6����I��	� � ��'�'�'���?�?�!�+�+�,@�A�A�I��L	>�5��=�F�2�2��$�$�88�99�99�3�v�&�&�&��%�%�=�>�>�&��!��"�(���0�0�L� M� M�-5�D�K�*�*��"�"�9�:�:�	>��#�#�;�<�<�	>��#�-=�D�K�*� �K�.�}�=�����rc�V�d|j_|jjd|j_dS)Nr�r7)r-r:r*r?rEs r�
anything_elsezInitialPhase.anything_else�s&��)1���&� �K�.�}�=�����rc�b�|j�d��|���|S)Nzexpected-doctype-but-got-chars�r-rdr�r�s  rrlzInitialPhase.process_characters�s0������ @�A�A�A��������rc�t�|j�dd|di��|���|S)Nz"expected-doctype-but-got-start-tagr#r�r�s  rrnzInitialPhase.process_start_tag�sD������0�6�5��=�2I�	K�	K�	K��������rc�t�|j�dd|di��|���|S)Nz expected-doctype-but-got-end-tagr#r�r�s  rrpzInitialPhase.process_end_tag�sD������.���v��0G�	I�	I�	I��������rc�b�|j�d��|���dS)Nzexpected-doctype-but-got-eofTr�rEs rrvzInitialPhase.process_eof�s0������ >�?�?�?��������trN)
r�r�r��tupler�rmrrrtr�rlrnrprvr rrr�r�ls�����������I�
�
�
�<�<�<�`>�`>�`>�D>�>�>����
����������rr�c�L�eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�ZdS)	�BeforeHtmlPhasec��|j�tdd����|jjd|j_dS)Nr�rhr�)r!�insert_root�implied_tag_tokenr-r*r?rEs rr@z$BeforeHtmlPhase._insert_html_element�s=���	���/���D�D�E�E�E� �K�.�}�=�����rc�.�|���dS�NT�r@rEs rrvzBeforeHtmlPhase.process_eof�s���!�!�#�#�#��trc�P�|j�||jj��dSrUr�r�s  rrrzBeforeHtmlPhase.process_comment�r�rc��dSrUr r�s  rrmz(BeforeHtmlPhase.process_space_charactersr�rc�.�|���|SrUrr�s  rrlz"BeforeHtmlPhase.process_characterss���!�!�#�#�#��rc�^�|ddkrd|j_|���|S)Nr#r�T)r-r9r@r�s  rrnz!BeforeHtmlPhase.process_start_tags2����=�F�"�"�*.�D�K�'��!�!�#�#�#��rc��|ddvr%|j�dd|di��dS|���|S)Nr#�r�r�r��brzunexpected-end-tag-before-html)r-rdr@r�s  rrpzBeforeHtmlPhase.process_end_tag
sb����=� >�>�>��K�#�#�0�6�5��=�2I�
K�
K�
K�
K�
K�
�%�%�'�'�'��LrN)r�r�r�rr�r@rvrrrmrlrnrpr rrrr�s�����������I�>�>�>����<�<�<�
�
�
�����������rrc��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Ze
d	efd
e	fg��Ze
defg��ZdS)
�BeforeHeadPhasec�L�|�tdd����dS)Nr�rhT��start_tag_headrrEs rrvzBeforeHeadPhase.process_eofs&�����-�f�k�B�B�C�C�C��trc��dSrUr r�s  rrmz(BeforeHeadPhase.process_space_charactersr�rc�L�|�tdd����|S�Nr�rhrr�s  rrlz"BeforeHeadPhase.process_characters �&�����-�f�k�B�B�C�C�C��rc�L�|jjd�|��S�Nr��r-r*rnr�s  rr�zBeforeHeadPhase.start_tag_html$� ���{�!�)�,�>�>�u�E�E�Erc��|j�|��|jjd|j_|jjd|j_dS)NrX�in head)r!r�rb�head_elementr-r*r?r�s  rrzBeforeHeadPhase.start_tag_head'sF���	� � ��'�'�'�!%��!8��!<��	�� �K�.�y�9�����rc�L�|�tdd����|Srrr�s  rr�zBeforeHeadPhase.start_tag_other,rrc�L�|�tdd����|Srrr�s  r�end_tag_imply_headz"BeforeHeadPhase.end_tag_imply_head0rrc�L�|j�dd|di��dS)Nzend-tag-after-implied-rootr#r�r�s  rr�zBeforeHeadPhase.end_tag_other4s*������ <�v�u�V�}�>U�V�V�V�V�Vrr�r�rN)r�r�r�rr�rvrmrlr�rr�r"r�r�r�r�r rrrrs�����������I����
�
�
����F�F�F�:�:�:�
������W�W�W�!��	�� �	�� �"����
�h�	'�);�<� ���O�O�Orrc���eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zedefdefdefde
fdefde	fde
fdefg��Zedefdefg��ZdS)�InHeadPhasec�.�|���dSr�r�rEs rrvzInHeadPhase.process_eofE����������trc�.�|���|SrUr'r�s  rrlzInHeadPhase.process_charactersI����������rc�L�|jjd�|��Srrr�s  rr�zInHeadPhase.start_tag_htmlMrrc�:�|j�d��dS)Nz!two-heads-are-not-better-than-oner�r�s  rrzInHeadPhase.start_tag_headPs������ C�D�D�D�D�Drc��|j�|��|jj���d|d<dS�NTra�r!r�rbr�r�s  r�start_tag_base_link_commandz'InHeadPhase.start_tag_base_link_commandS�@���	� � ��'�'�'��	��#�#�%�%�%�+/��'�(�(�(rc�~�|j�|��|jj���d|d<|d}|jjjjddkr�d|vr,|jjj�|d��dSd|vr�d|vr�|d�	��d	kr�tj|d�d
����}tj
|��}|���}|jjj�|��dSdSdSdSdS)NTrarZr�	tentative�charset�contentz
http-equivzcontent-typezutf-8)r!r�rbr�r-r0r3rI�change_encodingr�r�
EncodingBytes�encode�ContentAttributeParserr)r%rwrNrZr-�codecs      r�start_tag_metazInHeadPhase.start_tag_metaXsC���	� � ��'�'�'��	��#�#�%�%�%�+/��'�(��6�]�
��;� �'�0��3�{�B�B��J�&�&���%�,�<�<�Z�	�=R�S�S�S�S�S��z�)�)��*�,�,��\�*�0�0�2�2�n�D�D�
#�0��I�1F�1M�1M�g�1V�1V�W�W��$�;�D�A�A����������%�,�<�<�U�C�C�C�C�C�C�B�*�)�,�,�D�Drc�<�|j�|d��dS)Nr��r-r�r�s  r�start_tag_titlezInHeadPhase.start_tag_titlems ����(�(���9�9�9�9�9rc�<�|j�|d��dS�Nr�r=r�s  r�start_tag_noframes_stylez$InHeadPhase.start_tag_noframes_styleps ����(�(��	�:�:�:�:�:rc���|jjr|j�|d��dS|j�|��|jjd|j_dS)Nr��in head noscript)r-r/r�r!r�r*r?r�s  r�start_tag_noscriptzInHeadPhase.start_tag_noscriptts_���;� �	G��K�,�,�U�I�>�>�>�>�>��I�$�$�U�+�+�+� $�� 2�3E� F�D�K���rc���|j�|��|jjj|jj_|jj|j_|jjd|j_dS)Nr�)	r!r�r-r0�script_data_stater<r?r�r*r�s  r�start_tag_scriptzInHeadPhase.start_tag_script{sV���	� � ��'�'�'�&*�k�&;�&M����#�%)�[�%6���"� �K�.�v�6�����rc�.�|���|SrUr'r�s  rr�zInHeadPhase.start_tag_other�r*rc��|jjj���}|jdksJd|j�����|jjd|j_dS)Nr�zExpected head got �
after head�r-r!rbr�r#r*r?�r%rwr�s   r�end_tag_headzInHeadPhase.end_tag_head�s[���{��-�1�1�3�3���y�F�"�"�"�$D���$D�$D�"�"�"� �K�.�|�<�����rc�.�|���|SrUr'r�s  r�end_tag_html_body_brz InHeadPhase.end_tag_html_body_br�r*rc�L�|j�dd|di��dS�N�unexpected-end-tagr#r�r�s  rr�zInHeadPhase.end_tag_other��*������ 4�v�u�V�}�6M�N�N�N�N�Nrc�J�|�td����dS)Nr�)rMrrEs rr�zInHeadPhase.anything_else�s%�����+�F�3�3�4�4�4�4�4rr��title)�noframes�style�noscript�script)�base�basefont�bgsound�command�link�metar�)rr�r�N)r�r�r�rr�rvrlr�rr0r;r>rArDrGr�rMrOr�r�r�r�r�r rrr%r%As�����������I�������F�F�F�E�E�E�0�0�0�
D�D�D�*:�:�:�;�;�;�G�G�G�7�7�7����=�=�=�
���O�O�O�5�5�5�!��	�� �	�/�"�	� 8�9�	�'�(�	�#�$�	;�	$�	&�	�� �	�� �
"�
�
���h�	���	�!5�6� ���O�O�Orr%c��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zed
e	fde
fdefg��Zede
fdefg��ZdS)�InHeadNoscriptPhasec�b�|j�d��|���dS)Nzeof-in-head-noscriptTr�rEs rrvzInHeadNoscriptPhase.process_eof�s0������ 6�7�7�7��������trc�L�|jjd�|��S�Nr)r-r*rrr�s  rrrz#InHeadNoscriptPhase.process_comment�� ���{�!�)�,�<�<�U�C�C�Crc�b�|j�d��|���|S)Nzchar-in-head-noscriptr�r�s  rrlz&InHeadNoscriptPhase.process_characters�s0������ 7�8�8�8��������rc�L�|jjd�|��Srd�r-r*rmr�s  rrmz,InHeadNoscriptPhase.process_space_characters�� ���{�!�)�,�E�E�e�L�L�Lrc�L�|jjd�|��Srrr�s  rr�z"InHeadNoscriptPhase.start_tag_html�rrc�L�|jjd�|��Srdrr�s  rr0z/InHeadNoscriptPhase.start_tag_base_link_command�rrc�L�|j�dd|di��dS�N�unexpected-start-tagr#r�r�s  r�start_tag_head_noscriptz+InHeadNoscriptPhase.start_tag_head_noscript��*������ 6���v��8O�P�P�P�P�Prc�t�|j�dd|di��|���|S�Nzunexpected-inhead-noscript-tagr#r�r�s  rr�z#InHeadNoscriptPhase.start_tag_other��D������,�v�u�V�}�.E�	G�	G�	G��������rc��|jjj���}|jdksJd|j�����|jjd|j_dS)NrXzExpected noscript got rrKrLs   r�end_tag_noscriptz$InHeadNoscriptPhase.end_tag_noscript�s[���{��-�1�1�3�3���y�J�&�&�&�(L���(L�(L�&�&�&� �K�.�y�9�����rc�t�|j�dd|di��|���|Srrr�r�s  r�
end_tag_brzInHeadNoscriptPhase.end_tag_br�rsrc�L�|j�dd|di��dSrQr�r�s  rr�z!InHeadNoscriptPhase.end_tag_other�rSrc�J�|�td����dS)NrX)rurrEs rr�z!InHeadNoscriptPhase.anything_else�s%�����/�
�;�;�<�<�<�<�<rr�)r[r\r^r_rVrW)r�rXrXrN)r�r�r�rr�rvrrrlrmr�r0ror�rurwr�r�r�r�r�r rrrara�s=����������I����
D�D�D����
M�M�M�F�F�F�F�F�F�Q�Q�Q����:�:�:�
���O�O�O�=�=�=�!��	�� �	E�	$�	&�	�6�7�	"�����h�	�%�&�	
�z�� ���O�O�Orrac��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zedefd
efde	fde
fdefg��Zede
fg��ZdS)�AfterHeadPhasec�.�|���dSrr'rEs rrvzAfterHeadPhase.process_eof�r(rc�.�|���|SrUr'r�s  rrlz!AfterHeadPhase.process_characters�r*rc�L�|jjd�|��Srrr�s  rr�zAfterHeadPhase.start_tag_html�rrc��d|j_|j�|��|jjd|j_dS)NFr�)r-rDr!r�r*r?r�s  r�start_tag_bodyzAfterHeadPhase.start_tag_body�s<��"'�����	� � ��'�'�'� �K�.�y�9�����rc�r�|j�|��|jjd|j_dS)Nr�)r!r�r-r*r?r�s  r�start_tag_framesetz!AfterHeadPhase.start_tag_frameset�s2���	� � ��'�'�'� �K�.�}�=�����rc�r�|j�dd|di��|jj�|jj��|jjd�|��|jjddd�D]/}|jdkr"|jj�	|��dS�0dS)Nz#unexpected-start-tag-out-of-my-headr#rrXr�)
r-rdr!rbrurr*rnr#�removerLs   r�start_tag_from_headz"AfterHeadPhase.start_tag_from_head�s�������1�F�E�&�M�3J�	L�	L�	L��	��&�&�t�y�'=�>�>�>����9�%�7�7��>�>�>��I�+�D�D�b�D�1�	�	�D��y�F�"�"��	�'�.�.�t�4�4�4����#�	�	rc�L�|j�dd|di��dSrmr�r�s  rrzAfterHeadPhase.start_tag_headrprc�.�|���|SrUr'r�s  rr�zAfterHeadPhase.start_tag_otherr*rc�.�|���|SrUr'r�s  rrOz#AfterHeadPhase.end_tag_html_body_brr*rc�L�|j�dd|di��dSrQr�r�s  rr�zAfterHeadPhase.end_tag_otherrSrc��|j�tdd����|jjd|j_d|j_dS)Nr�rhr�T)r!r�rr-r*r?rDrEs rr�zAfterHeadPhase.anything_elsesG���	� � �!2�6�;�!G�!G�H�H�H� �K�.�y�9����"&�����rr�r�r�)	rZr[r\r^r_rVrYrWrUr�)r�r�rN)r�r�r�rr�rvrlr�r�r�r�rr�rOr�r�r�r�r�r rrr{r{�s/����������I�������F�F�F�:�:�:�
>�>�>����Q�Q�Q�������O�O�O�'�'�'�
!��	�� �	�� �	�'�(�
�0�	2�	�� �
"�����h�	�!5�6� ���O�O�Orr{c
����eZdZdZ�fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1d0�Z2d1�Z3d2�Z4d3�Z5d4�Z6e7gd5e8j9f�d6ef�d7ef�d8e
f�d9ef�e:ef�d:ef�d;ef�d<ef�d=ef�d>ef�d?ef�d@ef�dAef�dBef�dCef�dDef�dEef�dFef�dGef�dHef�dIef�dJe f�dKe!f�dLe"f�dMe#f�dNe$f�dOe&f�dPe'f�dQe%f�dRe(f�dSe)f�dTe*f���Z;e7d7e-fd5e.fdUe/fd;e0fdVe,fdWe1fe:e2fdXe3fdBe4fdYe5fg
��Z<�xZ=S)Z�InBodyPhase)rmc�R��t��j|i|��|j|_dSrU)�superr+� process_space_characters_non_prerm�r%�argsr�	__class__s   �rr+zInBodyPhase.__init__-s0��������$�)�&�)�)�)�(,�(M��%�%�%rc�b�|j|jko|j|jko|j|jkSrU)r#rMrN)r%�node1�node2s   r�is_matching_formatting_elementz*InBodyPhase.is_matching_formatting_element2s7���J�%�*�$�
1��O�u��.�
1���� 0�0�	2rc���|j�|��|jjd}g}|jjddd�D]8}|turn,|�||��r|�|���9t|��dksJ�t|��dkr%|jj�|d��|jj�|��dS)NrX�)	r!r�rb�active_formatting_elementsrr�rurfr�)r%rwrQ�matching_elementsr�s     r�add_formatting_elementz"InBodyPhase.add_formatting_element8s����	� � ��'�'�'��)�)�"�-�����I�8���2��>�	/�	/�D��v�~�~����4�4�T�7�C�C�
/�!�(�(��.�.�.���$�%�%��*�*�*�*�� �!�!�Q�&�&��I�0�7�7�8I�"�8M�N�N�N��	�,�3�3�G�<�<�<�<�<rc��td��}|jjddd�D](}|j|vr|j�d��dS�)dS)N)�dd�dt�li�pr�r�r�r�r�r�r�r�rXz expected-closing-tag-but-got-eof)rir!rbr#r-rd)r%�allowed_elementsr�s   rrvzInBodyPhase.process_eofIss��$�&�����I�+�D�D�b�D�1�	�	�D��y� 0�0�0���'�'�(J�K�K�K����1�	�	rc�T�|d}|j|_|�d��rG|jjdjdvr.|jjd���s
|dd�}|r5|j���|j�|��dSdS)NrZ�
rX)�pre�listing�textarear)	r�rmr�r!rbr#�has_content�&reconstruct_active_formatting_elementsr�)r%rwrZs   r�%process_space_characters_drop_newlinez1InBodyPhase.process_space_characters_drop_newlineTs����V�}��(,�(M��%��O�O�D�!�!�	��I�#�B�'�,�0N�N�N��I�+�B�/�;�;�=�=�
O�����8�D��	(��I�<�<�>�>�>��I�!�!�$�'�'�'�'�'�	(�	(rc�
�|ddkrdS|j���|j�|d��|jjr-td�|dD����rd|j_dSdSdS)NrZ�c3�(K�|]
}|tvV��dSrU�r�r"�chars  r�	<genexpr>z1InBodyPhase.process_characters.<locals>.<genexpr>hsA����+H�+H�15��,�,�+H�+H�+H�+H�+H�+HrF)r!r�r�r-rD�anyr�s  rrlzInBodyPhase.process_charactersas�����=�H�$�$��F��	�8�8�:�:�:��	���e�F�m�,�,�,��;�"�	,�s�+H�+H�9>�v��+H�+H�+H�(H�(H�	,�&+�D�K�#�#�#�	,�	,�	,�	,rc�x�|j���|j�|d��dSr�)r!r�r�r�s  rr�z,InBodyPhase.process_space_characters_non_prels6���	�8�8�:�:�:��	���e�F�m�,�,�,�,�,rc�L�|jjd�|��Srdrr�s  r�start_tag_process_in_headz%InBodyPhase.start_tag_process_in_headprrc��|j�dddi��t|jj��dks|jjdjdkr|jjsJ�dSd|j_|d���D]8\}}||jjdj	vr||jjdj	|<�9dS)Nrnr#r�rFrZ)
r-rdrfr!rbr#r.rDr)rNr�s    rr�zInBodyPhase.start_tag_bodyss������� 6���8H�I�I�I���	�'�(�(�A�-�-��	�'��*�/�6�9�9��;�(�(�(�(�(�(�&+�D�K�#�$�V�}�2�2�4�4�
H�
H���e��t�y�6�q�9�D�D�D�BG�D�I�+�A�.�9�$�?��
H�
Hrc��|j�dddi��t|jj��dks|jjdjdkr|jjsJ�dS|jjsdS|jjdjr:|jjdj�	|jjd��|jjdjdkr9|jj�
��|jjdjdk�9|j�|��|jjd|j_
dS)	Nrnr#r�rr�rXr�r�)r-rdrfr!rbr#r.rD�parent�remove_childr�r�r*r?r�s  rr�zInBodyPhase.start_tag_frameset~s:������ 6���8L�M�M�M���	�'�(�(�A�-�-��	�'��*�/�6�9�9��;�(�(�(�(�(�(���(�		B��D��y�&�q�)�0�
0��	�'��*�1�>�>��I�+�A�.�0�0�0��)�)�"�-�2�f�<�<��	�'�+�+�-�-�-��)�)�"�-�2�f�<�<��I�$�$�U�+�+�+� $�� 2�=� A�D�K���rc��|j�dd���r"|�td����|j�|��dS�Nr��button��variant)r!�element_in_scope�	end_tag_prr�r�s  r�start_tag_close_pzInBodyPhase.start_tag_close_p�sV���9�%�%�c�8�%�<�<�	3��N�N�,�S�1�1�2�2�2��	� � ��'�'�'�'�'rc���|j�dd���r"|�td����|j�|��d|j_|j|_dS)Nr�r�r�F)	r!r�r�rr�r-rDr�rmr�s  r�start_tag_pre_listingz!InBodyPhase.start_tag_pre_listing�sk���9�%�%�c�8�%�<�<�	3��N�N�,�S�1�1�2�2�2��	� � ��'�'�'�"'����(,�(R��%�%�%rc�D�|jjr|j�dddi��dS|j�dd���r"|�t
d����|j�|��|jjd|j_dS)Nrnr#�formr�r�r�rX)	r!�form_elementr-rdr�r�rr�rbr�s  r�start_tag_formzInBodyPhase.start_tag_form�s����9�!�	A��K�#�#�$:�V�V�<L�M�M�M�M�M��y�)�)�#�x�)�@�@�
7����0��5�5�6�6�6��I�$�$�U�+�+�+�%)�Y�%<�R�%@�D�I�"�"�"rc��d|j_dgddgddgd�}||d}t|jj��D]W}|j|vr3|jj�t|j����n|j	tvr|jdvrn�X|j�dd	�
��r,|jj�td����|j�|��dS)NFr�r�r�)r�r�r�r#)�addressr�r�r�r�r�)
r-rD�reversedr!rbr#r?rpr�
name_tuplerr�r�)r%rw�stop_names_map�
stop_namesr�s     r�start_tag_list_itemzInBodyPhase.start_tag_list_item�s	��"'����!%��t�T�l�4��,�O�O��#�E�&�M�2�
��T�Y�4�5�5�	�	�D��y�J�&�&���!�1�1�%�d�i�0�0�2�2�2�����#3�3�3��I�%<�<�<�����9�%�%�c�8�%�<�<�	F��K��-�-�.?��.D�.D�E�E�E��	� � ��'�'�'�'�'rc��|j�dd���r"|�td����|j�|��|jjj|jj_dSr�)	r!r�r�rr�r-r0r>r<r�s  r�start_tag_plaintextzInBodyPhase.start_tag_plaintext�sk���9�%�%�c�8�%�<�<�	3��N�N�,�S�1�1�2�2�2��	� � ��'�'�'�&*�k�&;�&K����#�#�#rc�t�|j�dd���r"|�td����|jjdjtvrA|j�dd|di��|jj�	��|j�
|��dS)Nr�r�r�rXrnr#)r!r�r�rrbr#rr-rdr�r�r�s  r�start_tag_headingzInBodyPhase.start_tag_heading�s����9�%�%�c�8�%�<�<�	3��N�N�,�S�1�1�2�2�2��9�"�2�&�+�/?�?�?��K�#�#�$:�V�U�6�]�<S�T�T�T��I�#�'�'�)�)�)��	� � ��'�'�'�'�'rc���|j�d��}|r�|j�dddd���|�td����||jjvr|jj�|��||jjvr|jj�|��|j�	��|�
|��dS)N�a�$unexpected-start-tag-implies-end-tag��	startName�endName)r!�%element_in_active_formatting_elementsr-rd�end_tag_formattingrrbr�r�r�r�)r%rw�
afe_a_elements   r�start_tag_azInBodyPhase.start_tag_a�s����	�G�G��L�L�
��	K��K�#�#�6�!�c�2�2�
4�
4�
4�
�#�#�$5�c�$:�$:�;�;�;���	� 7�7�7��	�'�.�.�}�=�=�=���	� D�D�D��	�4�;�;�M�J�J�J��	�8�8�:�:�:��#�#�E�*�*�*�*�*rc�b�|j���|�|��dSrU)r!r�r�r�s  r�start_tag_formattingz InBodyPhase.start_tag_formatting�s0���	�8�8�:�:�:��#�#�E�*�*�*�*�*rc�H�|j���|j�d��rY|j�dddd���|�t
d����|j���|�|��dS)N�nobrr�r�)r!r�r�r-rdrprr�r�s  r�start_tag_nobrzInBodyPhase.start_tag_nobr�s����	�8�8�:�:�:��9�%�%�f�-�-�	?��K�#�#�6�$��8�8�
:�
:�
:�
� � �!2�6�!:�!:�;�;�;��I�<�<�>�>�>��#�#�E�*�*�*�*�*rc�<�|j�d��rB|j�dddd���|�td����|S|j���|j�|��d|j_dS)Nr�r�r�F)	r!r�r-rdrprr�r�rDr�s  r�start_tag_buttonzInBodyPhase.start_tag_button�s����9�%�%�h�/�/�		,��K�#�#�6�&�8�<�<�
>�
>�
>�
� � �!2�8�!<�!<�=�=�=��L��I�<�<�>�>�>��I�$�$�U�+�+�+�&+�D�K�#�#�#rc���|j���|j�|��|jj�t
��d|j_dSr�)r!r�r�r�rurr-rDr�s  r�start_tag_applet_marquee_objectz+InBodyPhase.start_tag_applet_marquee_object�sU���	�8�8�:�:�:��	� � ��'�'�'��	�,�3�3�F�;�;�;�"'�����rc��|j�dd���r"|�td����|j���d|j_|j�|d��dS)Nr�r�r�Fr�)r!r�r�rr�r-rDr�r�s  r�
start_tag_xmpzInBodyPhase.start_tag_xmp�sv���9�%�%�c�8�%�<�<�	3��N�N�,�S�1�1�2�2�2��	�8�8�:�:�:�"'������(�(��	�:�:�:�:�:rc�&�|jjdkr>|j�dd���r"|�td����|j�|��d|j_|jjd|j_	dS)Nr�r�r�r�Fr�)
r-r:r!r�rprr�rDr*r?r�s  r�start_tag_tablezInBodyPhase.start_tag_table�s����;�)�X�5�5��y�)�)�#�x�)�@�@�
=��$�$�%6�s�%;�%;�<�<�<��	� � ��'�'�'�"'���� �K�.�z�:�����rc���|j���|j�|��|jj���d|d<d|j_dS)NTraF)r!r�r�rbr�r-rDr�s  r�start_tag_void_formattingz%InBodyPhase.start_tag_void_formattings^���	�8�8�:�:�:��	� � ��'�'�'��	��#�#�%�%�%�+/��'�(�"'�����rc���|jj}|�|��d|dvr8|dd�t��dkr||j_dSdSdS)NrYrZ�hidden)r-rDr�rOr	)r%rwrDs   r�start_tag_inputzInBodyPhase.start_tag_input	sp���k�-���&�&�u�-�-�-��e�F�m�#�#��f�
�f�%�/�/�0D�E�E��Q�Q�&1�D�K�#�#�#�
$�#�Q�Qrc��|j�|��|jj���d|d<dSr.r/r�s  r�start_tag_param_sourcez"InBodyPhase.start_tag_param_sourcer1rc��|j�dd���r"|�td����|j�|��|jj���d|d<d|j_dS)Nr�r�r�TraF)	r!r�r�rr�rbr�r-rDr�s  r�start_tag_hrzInBodyPhase.start_tag_hrs����9�%�%�c�8�%�<�<�	3��N�N�,�S�1�1�2�2�2��	� � ��'�'�'��	��#�#�%�%�%�+/��'�(�"'�����rc	��|j�dddd���|�tdd|d|d�����dS)	Nzunexpected-start-tag-treated-as�image�img��originalName�newNamerhrZr`�rN�self_closing)r-rdrnrr�s  r�start_tag_imagezInBodyPhase.start_tag_imagess������-�$��7�7�	9�	9�	9�	
���0��;�5��=��}�-� /� /� /�	0�	0�	0�	0�	0rc	�f�|j�dddi��|jjrdSi}d|dvr|dd|d<|�tdd|�����|�td	d����|�td
d����d|dvr|dd}nd}|�tj|d
���|d�	��}d|vr|d=d|vr|d=d|d<|�tdd||d�����|�
td
����|�td	d����|�
td����dS)Nzdeprecated-tagr#�isindex�actionrZr�rh)rN�hr�label�promptz3This is a searchable index. Enter search keywords: �rYrZ�inputr`r�)r-rdr!r�rnrrlrrj�copyrp)r%rw�
form_attrsrrNs     r�start_tag_isindexzInBodyPhase.start_tag_isindex's������� 0�6�9�2E�F�F�F��9�!�	��F��
��u�V�}�$�$�#(��=��#:�J�x� �����f�k�j�I�I�I�	K�	K�	K����0��{�C�C�D�D�D����0��+�F�F�G�G�G��u�V�}�$�$��6�]�8�,�F�F�J�F�����)9�6� J� J�K�K�K��6�]�'�'�)�)�
��z�!�!��8�$��z�!�!��8�$�&�
�6�����0��[�Z��}�-� /� /� /�	0�	0�	0�	
���.�w�7�7�8�8�8����0��{�C�C�D�D�D����.�v�6�6�7�7�7�7�7rc��|j�|��|jjj|jj_|j|_d|j_dSr�)	r!r�r-r0r;r<r�rmrDr�s  r�start_tag_textareazInBodyPhase.start_tag_textareaEsH���	� � ��'�'�'�&*�k�&;�&H����#�(,�(R��%�"'�����rc�H�d|j_|�|��dSr�)r-rD�start_tag_rawtextr�s  r�start_tag_iframezInBodyPhase.start_tag_iframeKs&��"'�������u�%�%�%�%�%rc�v�|jjr|�|��dS|�|��dSrU)r-r/r	r�r�s  rrDzInBodyPhase.start_tag_noscriptOsC���;� �	(��"�"�5�)�)�)�)�)�� � ��'�'�'�'�'rc�<�|j�|d��dSr@r=r�s  rr	zInBodyPhase.start_tag_rawtextUs ����(�(��	�:�:�:�:�:rc��|jjdjdkr,|jj�t
d����|j���|jj�|��dS�NrX�option)	r!rbr#r-r?rprr�r�r�s  r�
start_tag_optzInBodyPhase.start_tag_optXso���9�"�2�&�+�x�7�7��K��-�-�.?��.I�.I�J�J�J��	�8�8�:�:�:����'�'��.�.�.�.�.rc���|j���|j�|��d|j_|jj|jjd|jjd|jjd|jjd|jjd|jjdfvr|jjd|j_dS|jjd	|j_dS)
NFr�r�r�r�r�r��in select in tabler�)r!r�r�r-rDr?r*r�s  r�start_tag_selectzInBodyPhase.start_tag_select^s����	�8�8�:�:�:��	� � ��'�'�'�"'�����;����"�:�.���"�<�0���"�#4�5���"�?�3���"�8�,���"�9�-�
!/�/�/�!%�� 2�3G� H�D�K���� $�� 2�;� ?�D�K���rc�
�|j�d��rN|j���|jjdjdkr|j�d��|j�|��dS)N�rubyrXzrp-or-rt-tag-not-in-ruby-scope)r!r��generate_implied_end_tagsrbr#r-rdr�r�s  r�start_tag_rp_rtzInBodyPhase.start_tag_rp_rtmsz���9�%�%�f�-�-�	J��I�/�/�1�1�1��y�&�r�*�/�6�9�9���'�'�(H�I�I�I��	� � ��'�'�'�'�'rc�N�|j���|j�|��|j�|��t
d|d<|j�|��|dr%|jj���d|d<dSdS)NrKrMr`Tra)	r!r�r-rrrr�rbr�r�s  r�start_tag_mathzInBodyPhase.start_tag_mathts����	�8�8�:�:�:���,�,�U�3�3�3���-�-�e�4�4�4�'��1��k���	� � ��'�'�'����	4��I�#�'�'�)�)�)�/3�E�+�,�,�,�	4�	4rc�N�|j���|j�|��|j�|��t
d|d<|j�|��|dr%|jj���d|d<dSdS)Nr^rMr`Tra)	r!r�r-rrrr�rbr�r�s  r�
start_tag_svgzInBodyPhase.start_tag_svg�s����	�8�8�:�:�:���)�)�%�0�0�0���-�-�e�4�4�4�'��.��k���	� � ��'�'�'����	4��I�#�'�'�)�)�)�/3�E�+�,�,�,�	4�	4rc�L�|j�dd|di��dS)z�Elements that should be children of other elements.

        Here they are ignored: "caption", "col", "colgroup", "frame",
        "frameset", "head", "option", "optgroup", "tbody", "td", "tfoot",
        "th", "thead", "tr", "noscript".

        zunexpected-start-tag-ignoredr#Nr�r�s  r�start_tag_misplacedzInBodyPhase.start_tag_misplaced�s,��	
���� >���v��@W�X�X�X�X�Xrc�l�|j���|j�|��dSrU)r!r�r�r�s  rr�zInBodyPhase.start_tag_other�s2���	�8�8�:�:�:��	� � ��'�'�'�'�'rc�R�|j�dd���sd|�tdd����|j�dddi��|�td����dS|j�d��|jjdj	dkr|j�dddi��|jj�
��}|j	dkr+|jj�
��}|j	dk�)dSdS)Nr�r�r�rhrRr#rX)r!r�r�rr-rdr�rrbr#r�rLs   rr�zInBodyPhase.end_tag_p�s���y�)�)�#�x�)�@�@�
	5��"�"�#4�S�+�#F�#F�G�G�G��K�#�#�$8�6�3�-�H�H�H��N�N�,�S�1�1�2�2�2�2�2��I�/�/��4�4�4��y�&�r�*�/�3�6�6���'�'�(<�v�s�m�L�L�L��9�*�.�.�0�0�D��)�s�"�"��y�.�2�2�4�4���)�s�"�"�"�"�"�"rc��|j�d��s|j�dddi��dS|jjdjdkrR|jjdd�D]=}|jt
d��vr%|j�dd|jd���n�>|jjd	|j_dS)
Nr�rRr#rX�)r�r�r��optgrouprr��rp�rtr�r�r�r�r�r�r�r��$expected-one-end-tag-but-got-another��gotName�expectedName�
after body)	r!r�r-rdrbr#rir*r?rLs   r�end_tag_bodyzInBodyPhase.end_tag_body�s����y�)�)�&�1�1�	��K�#�#�$8�6�6�:J�K�K�K��F�
�Y�
$�R�
(�
-��
7�
7��	�/����3�
�
���9�I�/U�%V�%V�V�V��K�+�+�>�$*�D�I�F�F�H�H�H��E�V�!�K�.�|�<�����rc��|j�d��r$|�td����|SdS)Nr�)r!r�r*rr�s  r�end_tag_htmlzInBodyPhase.end_tag_html�sF���9�%�%�f�-�-�	����/��7�7�8�8�8��L�	�	rc��|ddkr|j|_|j�|d��}|r|j���|jjdj|dkr#|j�dd|di��|r`|jj�	��}|j|dkr3|jj�	��}|j|dk�/dSdSdS)Nr#r�rX�end-tag-too-early)
r�rmr!r�rrbr#r-rdr�)r%rw�in_scoper�s    r�
end_tag_blockzInBodyPhase.end_tag_block�s�����=�E�!�!�,0�,Q�D�)��9�-�-�e�F�m�<�<���	2��I�/�/�1�1�1��9�"�2�&�+�u�V�}�<�<��K�#�#�$7�&�%��-�9P�Q�Q�Q��	5��9�*�.�.�0�0�D��)�u�V�}�,�,��y�.�2�2�4�4���)�u�V�}�,�,�,�,�	5�	5�,�,rc��|jj}d|j_|�|j�|��s|j�dddi��dS|j���|jjd|kr|j�dddi��|jj�|��dS)NrRr#r�rXzend-tag-too-early-ignored)r!r�r�r-rdrrbr�rLs   r�end_tag_formzInBodyPhase.end_tag_form�s����y�%��!%��	���<�t�y�9�9�$�?�?�<��K�#�#�$8�6�6�:J�K�K�K�K�K��I�/�/�1�1�1��y�&�r�*�d�2�2���'�'�(C�f�f�EU�V�V�V��I�#�*�*�4�0�0�0�0�0rc�@�|ddkrd}nd}|j�|d|���s%|j�dd|di��dS|j�|d���|jjdj|dkr#|j�dd|di��|jj���}|j|dkr1|jj���}|j|dk�/dSdS)	Nr#r��listr�rR��excluderXr.)r!r�r-rdrrbr#r�)r%rwr�r�s    r�end_tag_list_itemzInBodyPhase.end_tag_list_item�s����=�D� � ��G�G��G��y�)�)�%��-��)�I�I�	5��K�#�#�$8�6�5��=�:Q�R�R�R�R�R��I�/�/��f�
�/�F�F�F��y�&�r�*�/�5��=�@�@���'�'�(;�f�e�F�m�=T�U�U�U��9�*�.�.�0�0�D��)�u�V�}�,�,��y�.�2�2�4�4���)�u�V�}�,�,�,�,�,�,rc�
�tD]7}|j�|��r|j���n�8|jjdj|dkr#|j�dd|di��tD]w}|j�|��r[|jj���}|jtvr,|jj���}|jtv�,dS�xdS)NrXr#r.)	rr!r�rrbr#r-rdr�)r%rw�items   r�end_tag_headingzInBodyPhase.end_tag_heading�s��$�	�	�D��y�)�)�$�/�/�
��	�3�3�5�5�5���
��9�"�2�&�+�u�V�}�<�<��K�#�#�$7�&�%��-�9P�Q�Q�Q�$�	�	�D��y�)�)�$�/�/�
��y�.�2�2�4�4���i�'7�7�7��9�2�6�6�8�8�D��i�'7�7�7����	
�	�	rc��	�d}|dk�r�|dz
}|j�|d��}|r-||jjvr6|j�|j��s|�|��dS||jjvrD|j�dd|di��|jj�	|��dS|j�|j��s%|j�dd|di��dS||jjdkr#|j�d	d|di��|jj�
|��}d}|jj|d�D]}|jtvr|}n�|�i|jj�
��}||kr$|jj�
��}||k�$|jj�	|��dS|jj|dz
}|jj�
|��}|x}	}
d}|jj�
|
��}|d
k�r&|dz
}|dz}|jj|}
|
|jjvr |jj�	|
���Q|
|krn�|	|kr"|jj�
|
��dz}|
���}
|
|jj|jj�
|
��<|
|jj|jj�
|
��<|
}
|	jr|	j�|	��|
�|	��|
}	|d
k��&|	jr|	j�|	��|jt%d��vr3|j���\}}|�|	|��n|�|	��|���}
|�|
��|�|
��|jj�	|��|jj�||
��|jj�	|��|jj�|jj�
|��dz|
��|dk���dSdS)z*The much-feared adoption agency algorithm.rG�rr#Nzadoption-agency-1.2zadoption-agency-4.4rXzadoption-agency-1.3r��r�r�r�r�r�)r!r�rbr�r#r�r-rdr�r��indexr�rr��cloner�r��append_childri�!get_table_misnested_node_position�
insert_before�reparent_children�insert)r%rw�outer_loop_counter�formatting_element�	afe_index�furthest_blockrQ�common_ancestor�bookmark�	last_noder��inner_loop_counterr>r?r�rBs                rr�zInBodyPhase.end_tag_formatting�sC����!�1�$�$�
�!�#��"&��!P�!P��f�
�"�"��&�"
H�&�$�)�*A�A�A��	�2�2�3E�3J�K�K�B�
�"�"�5�)�)�)���$�4�9�+B�B�B���'�'�(=���f�
�?V�W�W�W��	�4�;�;�<N�O�O�O����Y�/�/�0B�0G�H�H�
H���'�'�(=���f�
�?V�W�W�W���&���)@��)D�D�D��K�+�+�-���f�
�/F�H�H�H��	�/�5�5�6H�I�I�I�!�N��9�2�9�:�:�>�
�
���%�)9�9�9�%,�N��E�:��%��)�1�5�5�7�7���!3�3�3�"�i�5�9�9�;�;�G��!3�3�3��	�4�;�;�G�D�D�D���#�i�5�i�!�m�D�O��y�;�A�A�BT�U�U�H� .�-�I��!"���I�+�1�1�$�7�7�E�$�q�(�(�"�a�'�"���
���y�.�u�5���t�y�C�C�C��I�+�2�2�4�8�8�8���-�-�-����.�.�#�y�C�I�I�$�O�O�RS�S�H��
�
����IN��	�4��I�8�>�>�t�D�D�F�OT��	�'��	�(?�(E�(E�d�(K�(K�L����#�=��$�1�1�)�<�<�<��!�!�)�,�,�,� �	�7%�q�(�(�D��
9�� �-�-�i�8�8�8��#�y�2>�(?�(?�?�?�(,�	�(S�(S�(U�(U�%��
��$�$�Y�
�>�>�>�>��,�,�Y�7�7�7�'�,�,�.�.�E�
�,�,�U�3�3�3�
�'�'��.�.�.�
�I�0�7�7�8J�K�K�K��I�0�7�7��%�H�H�H�
�I�#�*�*�+=�>�>�>��I�#�*�*��	�'�-�-�n�=�=��A�5�
J�
J�
J�u!�1�$�$�$�$�$�$rc�2�|j�|d��r|j���|jjdj|dkr#|j�dd|di��|j�|d��ry|jj���}|j|dkr/|jj���}|j|dk�/|j���dSdS)Nr#rXr.)	r!r�rrbr#r-rdr�� clear_active_formatting_elements)r%rwrQs   r�end_tag_applet_marquee_objectz)InBodyPhase.end_tag_applet_marquee_object�s���9�%�%�e�F�m�4�4�	2��I�/�/�1�1�1��9�"�2�&�+�u�V�}�<�<��K�#�#�$7�&�%��-�9P�Q�Q�Q��9�%�%�e�F�m�4�4�	9��i�-�1�1�3�3�G��,�%��-�/�/��)�1�5�5�7�7���,�%��-�/�/��I�6�6�8�8�8�8�8�		9�	9rc��|j�dddd���|j���|j�tdd����|jj���dS)Nzunexpected-end-tag-treated-asrz
br elementr�rh)r-rdr!r�r�rrbr�r�s  rrwzInBodyPhase.end_tag_br�s~������+�!�l�;�;�	=�	=�	=�	
�	�8�8�:�:�:��	� � �!2�4��!E�!E�F�F�F��	��#�#�%�%�%�%�%rc��|jjddd�D]�}|j|dkr�|j�|d���|jjdj|dkr#|j�dd|di��|jj���|kr#	|jj���|k�#dS|jtvr&|j�dd|di��dS��dS)NrXr#r5rR)	r!rbr#rr-rdr�r�rrLs   rr�zInBodyPhase.end_tag_other�s)���I�+�D�D�b�D�1�
	�
	�D��y�E�&�M�)�)��	�3�3�E�&�M�3�J�J�J��9�*�2�.�3�u�V�}�D�D��K�+�+�,�v�u�V�}�.E�G�G�G��i�-�1�1�3�3�t�;�;���i�-�1�1�3�3�t�;�;�����?�&6�6�6��K�+�+�,�v�u�V�}�.E�G�G�G��E�E�7�
	�
	rr�)	rZr[r\r]r^r_rYrWrUr�r�)r��article�aside�
blockquote�center�details�dirr��dl�fieldset�
figcaption�figure�footer�header�hgroup�main�menu�nav�olr��section�summary�ul)r�r�r�)r�r�r�r6r�)�b�big�code�em�font�i�s�small�strike�strong�tt�ur�r�)�applet�marquee�object�xmpr�)�arear�embedr��keygen�wbr)�param�source�trackrr�r�r�r��iframerX)�noembedrVr�)r#r$)rr"�mathr^)r��colr��framer�r�r�r�r�r�r�)r�rRrSrTr�rUrV�dialogrWr�rXrYrZr[r\r]r^r�r_r`rarbr�rcrdrer�)r�r�r�)r�rfrgrhrirjrkr�rlrmrnrorprqr)>r�r�r�r�r+r�r�rvr�rlr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr
rDr	rrrrrrr�r�r*r,r0r2r7r:r�rOrwr�r�r�r�rr�r��
__classcell__�r�s@rr�r�(s��������.�I�N�N�N�N�N�
2�2�2�=�=�=�"���(�(�(�	,�	,�	,�-�-�-�F�F�F�	H�	H�	H�B�B�B� (�(�(�
S�S�S�A�A�A�(�(�(�&L�L�L�(�(�(�+�+�+�+�+�+�	+�	+�	+�
,�
,�
,�(�(�(�;�;�;�;�;�;�(�(�(�2�2�2�0�0�0�
(�(�(�0�0�0�8�8�8�<(�(�(�&�&�&�(�(�(�;�;�;�/�/�/�
@�
@�
@�(�(�(�
4�
4�
4�
4�
4�
4�Y�Y�Y�(�(�(�5�5�5�=�=�=� ���5�5�5�	1�	1�	1�
5�
5�
5�
�
�
�dJ�dJ�dJ�L
9�
9�
9�&�&�&���� !��("�	��%�&�("�
&�'@�	B�("�
�� �	("�

�'�(�("�
&�(9�	:�
("�
�,�-�("�
�2�3�("�
�� �("�
�0�1�("�
�)�*�("�

�k��("� 
� 4�	6�!("�$
�� �%("�&
�#�$�'("�(
)�*I�J�)("�*
�
��+("�,
�/�"�-("�.
9�:S�T�/("�0
&�'=�>�1("�2
�/�"�3("�4
�|��5("�6
�/�"�7("�8
�%�&�9("�:
�'�(�;("�<
�#�$�=("�>
�'�(�?("�@
!�"3�4�A("�B
�#�$�C("�D
��'�E("�F
 ��/�G("�H�>�"�I("�J�-� �K("�L
7�8K�	M�M("�(�(��T�h�	���	���
&�(5�	6�
���	�i��	�.�/�	�?�+�
)�*<�	>�	(�*G�H�	
�z�� ���O�O�O�O�Orr�c�r�eZdZe��Zd�Zd�Zd�Zd�Zd�Z	e
g��Ze
defg��ZdS)�	TextPhasec�F�|j�|d��dSr�r�r�s  rrlzTextPhase.process_characters�r�rc���|j�dd|jjdji��|jj���|jj|j_dS)Nz&expected-named-closing-tag-but-got-eofr#rXT)r-rdr!rbr#r�r�r?rEs rrvzTextPhase.process_eofsa������4�
�T�Y�,�R�0�5�6�	8�	8�	8�	
�	��#�#�%�%�%� �K�6�����trc�4�td|d�d����)NzTried to process start tag r#z in RCDATA/RAWTEXT mode)�
ValueErrorr�s  rr�zTextPhase.start_tag_others)���P�%��-�P�P�P�R�R�	Rrc��|jj���}|jdksJ�|jj|j_dS)NrY)r!rbr�r#r-r�r?rLs   r�end_tag_scriptzTextPhase.end_tag_scripts@���y�&�*�*�,�,���y�H�$�$�$�$� �K�6�����rc�n�|jj���|jj|j_dSrU)r!rbr�r-r�r?r�s  rr�zTextPhase.end_tag_others.���	��#�#�%�%�%� �K�6�����rrYN)
r�r�r�rr�rlrvr�r�r�r�r�r�r rrr�r��s�����������I�-�-�-����R�R�R�7�7�7�7�7�7�!�������h��>� :�;�<�<�O�O�Orr�c
��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zedejfde
fdefdefde
fdefdefdefdefdefg
��Zedefdefg��ZdS)�InTablePhasec��|jjdjdvr9|jj���|jjdjdv�7dSdS)NrX)r�r�)r!rbr#r�rEs r�_clear_stack_to_table_contextz*InTablePhase._clear_stack_to_table_contexts[���i�%�b�)�.�6G�G�G�
�I�#�'�'�)�)�)��i�%�b�)�.�6G�G�G�G�G�G�Grc��|jjdjdkr|j�d��dS|jjsJ�dS)NrXr�zeof-in-table�r!rbr#r-rdr.rEs rrvzInTablePhase.process_eof'sM���9�"�2�&�+�v�5�5��K�#�#�N�3�3�3�3�3��;�(�(�(�(�(�(rc��|jj}|jjd|j_||jj_|jj�|��dS�N�
in table text)r-r?r*r�rm�r%rwr�s   rrmz%InTablePhase.process_space_characters.sL����*�� �K�.��?����+9����(����2�2�5�9�9�9�9�9rc��|jj}|jjd|j_||jj_|jj�|��dSr�)r-r?r*r�rlr�s   rrlzInTablePhase.process_characters4sL����*�� �K�.��?����+9����(����,�,�U�3�3�3�3�3rc��d|j_|jjd�|��d|j_dS)NTr�F)r!�insert_from_tabler-r*rlr�s  rr�zInTablePhase.insert_text:s<��'+��	�#����9�%�8�8��?�?�?�&+��	�#�#�#rc���|���|jj�t��|j�|��|jjd|j_dS)Nr�)	r�r!r�rurr�r-r*r?r�s  r�start_tag_captionzInTablePhase.start_tag_captionAs]���*�*�,�,�,��	�,�3�3�F�;�;�;��	� � ��'�'�'� �K�.�|�<�����rc��|���|j�|��|jjd|j_dS)Nr��r�r!r�r-r*r?r�s  r�start_tag_colgroupzInTablePhase.start_tag_colgroupGsE���*�*�,�,�,��	� � ��'�'�'� �K�.�/@�A�����rc�L�|�tdd����|S)Nr�rh)r�rr�s  r�
start_tag_colzInTablePhase.start_tag_colLs&����� 1�*�k� J� J�K�K�K��rc��|���|j�|��|jjd|j_dS)Nr�r�r�s  r�start_tag_rowgroupzInTablePhase.start_tag_rowgroupPsD���*�*�,�,�,��	� � ��'�'�'� �K�.��?�����rc�L�|�tdd����|S)Nr�rh)r�rr�s  r�start_tag_imply_tbodyz"InTablePhase.start_tag_imply_tbodyUs&����� 1�'�;� G� G�H�H�H��rc��|j�dddd���|jj�t	d����|jjs|SdS)Nr�r�r�)r-rdr?rprr.r�s  rr�zInTablePhase.start_tag_tableYsj������2�!�g�6�6�	8�	8�	8�	
���)�)�*;�G�*D�*D�E�E�E��{�$�	��L�	�	rc�L�|jjd�|��Srdrr�s  r�start_tag_style_scriptz#InTablePhase.start_tag_style_scriptarrc�@�d|dvr~|dd�t��dkrT|j�d��|j�|��|jj���dS|�|��dS)NrYrZr�z unexpected-hidden-input-in-table)	rOr	r-rdr!r�rbr�r�r�s  rr�zInTablePhase.start_tag_inputds����e�F�m�#�#��f�
�f�%�/�/�0D�E�E��Q�Q��K�#�#�$F�G�G�G��I�$�$�U�+�+�+��I�#�'�'�)�)�)�)�)�� � ��'�'�'�'�'rc��|j�d��|jj�V|j�|��|jjd|j_|jj���dSdS)Nzunexpected-form-in-tablerX)r-rdr!r�r�rbr�r�s  rr�zInTablePhase.start_tag_formnss������ :�;�;�;��9�!�)��I�$�$�U�+�+�+�%)�Y�%<�R�%@�D�I�"��I�#�'�'�)�)�)�)�)�*�)rc���|j�dd|di��d|j_|jjd�|��d|j_dS)Nz)unexpected-start-tag-implies-table-voodoor#Tr�F)r-rdr!r�r*rnr�s  rr�zInTablePhase.start_tag_otherusg������7�&�%��-�9P�	R�	R�	R�'+��	�#����9�%�7�7��>�>�>�&+��	�#�#�#rc��|j�dd���r�|j���|jjdjdkr3|j�dd|jjdjd���|jjdjdkr9|jj���|jjdjdk�9|jj���|j���dS|jj	sJ�|j�dd|di��dS)Nr�r�rXzend-tag-too-early-namedr&rRr#)
r!r�rrbr#r-rdr�rAr.r�s  r�
end_tag_tablezInTablePhase.end_tag_table}sD���9�%�%�g�w�%�?�?�
	S��I�/�/�1�1�1��y�&�r�*�/�7�:�:���'�'�(A�&�$(�I�$;�B�$?�$D�DF�DF�G�G�G��)�)�"�-�2�g�=�=��	�'�+�+�-�-�-��)�)�"�-�2�g�=�=��I�#�'�'�)�)�)��K�,�,�.�.�.�.�.��;�(�(�(�(��K�#�#�$8�6�5��=�:Q�R�R�R�R�Rrc�L�|j�dd|di��dSrQr�r�s  r�end_tag_ignorezInTablePhase.end_tag_ignore�rSrc���|j�dd|di��d|j_|jjd�|��d|j_dS)Nz'unexpected-end-tag-implies-table-voodoor#Tr�F)r-rdr!r�r*rpr�s  rr�zInTablePhase.end_tag_other�sg������5���f�
�7N�	P�	P�	P�'+��	�#����9�%�5�5�e�<�<�<�&+��	�#�#�#rr�r�r�r��r�r�r�)r�r�r�r�)rWrYrr�)r�r�r�r�r�r�r�r�r�r�r�N)r�r�r�rr�r�rvrmrlr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r rrr�r�s�����������I�*�*�*�)�)�)�:�:�:�4�4�4�,�,�,�=�=�=�B�B�B�
���@�@�@�
������F�F�F�(�(�(�*�*�*�,�,�,�S�S�S� O�O�O�,�,�,�!��	��%�&�	�%�&�	�'�(�	�
��	$�&8�9�	�2�3�	�/�"�	�4�5�	�/�"�	�� �"�����h�	�-� �
(�)7�	9� ���O�O�Orr�c�L��eZdZdZ�fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Z�xZS)
�InTableTextPhase)�character_tokensr�c�V��t��j|i|��d|_g|_dSrU)r�r+r�r�r�s   �rr+zInTableTextPhase.__init__�s5��������$�)�&�)�)�)�"��� "����rc�0�d�d�|jD����}td�|D����r5tj|d�}|jjd�|��n|r|j�|��g|_dS)Nr�c��g|]
}|d��S)rZr �r"r9s  r�
<listcomp>z5InTableTextPhase.flush_characters.<locals>.<listcomp>�s��G�G�G���V��G�G�Grc3�(K�|]
}|tvV��dSrUr�r�s  rr�z4InTableTextPhase.flush_characters.<locals>.<genexpr>�s(����=�=��t�+�+�=�=�=�=�=�=rrr�)	�joinr�r�rrjr-r*r�r!)r%rZrws   r�flush_charactersz!InTableTextPhase.flush_characters�s����w�w�G�G��1F�G�G�G�H�H���=�=��=�=�=�=�=�	(�"�-�t�<�<�E��K��z�*�6�6�u�=�=�=�=�
�	(��I�!�!�$�'�'�'� "����rc�P�|���|j|j_|SrU�r�r�r-r?r�s  rrrz InTableTextPhase.process_comment��&�������� �/�����rc�P�|���|j|j_dSrr�rEs rrvzInTableTextPhase.process_eof�s&�������� �/�����trc�V�|ddkrdS|j�|��dS�NrZr��r�rur�s  rrlz#InTableTextPhase.process_characters�s3����=�H�$�$��F���$�$�U�+�+�+�+�+rc�:�|j�|��dSrUr�r�s  rrmz)InTableTextPhase.process_space_characters�s����$�$�U�+�+�+�+�+rc�P�|���|j|j_|SrUr�r�s  rrnz"InTableTextPhase.process_start_tag�r�rc�P�|���|j|j_|SrUr�r�s  rrpz InTableTextPhase.process_end_tag�r�r)
r�r�r�r�r+r�rrrvrlrmrnrpr�r�s@rr�r��s��������6�I�#�#�#�#�#�
#�#�#����
���
,�,�,�
,�,�,�
���
������rr�c��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
ed
ejfdefg��Zede
fd
efdefg��ZdS)�InCaptionPhasec�<�|j�dd���S)Nr�r�r��r!r�rEs r�ignore_end_tag_captionz%InCaptionPhase.ignore_end_tag_caption�s ���9�-�-�i��-�I�I�I�Irc�N�|jjd���dSr�r-r*rvrEs rrvzInCaptionPhase.process_eof��$�����9�%�1�1�3�3�3�3�3rc�L�|jjd�|��Sr�r-r*rlr�s  rrlz!InCaptionPhase.process_characters�� ���{�!�)�,�?�?��F�F�Frc���|j�d��|���}|jj�td����|s|SdS)Nz%unexpected-table-start-tag-in-captionr��r-rdr�r?rpr�r%rw�ignore_end_tags   r�start_tag_table_elementz&InCaptionPhase.start_tag_table_element�sc������ G�H�H�H��4�4�6�6�����)�)�*;�I�*F�*F�G�G�G��	��L�	�	rc�L�|jjd�|��Srrr�s  rr�zInCaptionPhase.start_tag_other�rrc��|����s|j���|jjdjdkr3|j�dd|jjdjd���|jjdjdkr9|jj���|jjdjdk�9|jj���|j���|jj	d|j_
dS|jjsJ�|j�dd|di��dS)NrXr�r%r&r�rRr#)r�r!rrbr#r-rdr�rNr*r?r.r�s  r�end_tag_captionzInCaptionPhase.end_tag_caption�sO���*�*�,�,�	S��I�/�/�1�1�1��y�&�r�*�/�9�<�<���'�'�(N�(�$(�I�$;�B�$?�$D�QF�QF�G�G�G��)�)�"�-�2�i�?�?��	�'�+�+�-�-�-��)�)�"�-�2�i�?�?��I�#�'�'�)�)�)��I�6�6�8�8�8� $�� 2�:� >�D�K�����;�(�(�(�(��K�#�#�$8�6�5��=�:Q�R�R�R�R�Rrc���|j�d��|���}|jj�td����|s|SdS)Nz#unexpected-table-end-tag-in-captionr�r�r�s   rr�zInCaptionPhase.end_tag_tablesc������ E�F�F�F��4�4�6�6�����)�)�*;�I�*F�*F�G�G�G��	��L�	�	rc�L�|j�dd|di��dSrQr�r�s  rr�zInCaptionPhase.end_tag_ignore
rSrc�L�|jjd�|��Sr�r-r*rpr�s  rr�zInCaptionPhase.end_tag_otherrerr��	r�r�r�r�r�r�r�r�r�r�r�)
r�r�r�r�r�r�r�r�r�r�N)r�r�r�rr�r�rvrlr�r�r�r�r�r�r�r�r�r�r�r rrr�r��s����������I�J�J�J�4�4�4�G�G�G����F�F�F�S�S�S�$���O�O�O�D�D�D�!��	��%�&�
�1�	3�"�����h�	�O�$�	�-� �
�(�	*� ���O�O�Orr�c��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Ze
d	ejfd
efg��Ze
de
fd
efg��ZdS)
�InColumnGroupPhasec�8�|jjdjdkS)NrXr�)r!rbr#rEs r�ignore_end_tag_colgroupz*InColumnGroupPhase.ignore_end_tag_colgroup%s���y�&�r�*�/�6�9�9rc���|jjdjdkr|jjsJ�dS|���}|�td����|sdSdS)NrXr�r�T)r!rbr#r-r.r��end_tag_colgroupr)r%r�s  rrvzInColumnGroupPhase.process_eof(su���9�"�2�&�+�v�5�5��;�(�(�(�(��F�!�9�9�;�;�N��!�!�"3�J�"?�"?�@�@�@�!�
��t�
�
rc�z�|���}|�td����|s|SdS�Nr��r�r�rr�s   rrlz%InColumnGroupPhase.process_characters2�G���5�5�7�7�����/�
�;�;�<�<�<��	��L�	�	rc��|j�|��|jj���d|d<dSr.r/r�s  rr�z InColumnGroupPhase.start_tag_col8r1rc�z�|���}|�td����|s|SdSr�r�r�s   rr�z"InColumnGroupPhase.start_tag_other=r�rc��|���r3|jjsJ�|j�dd|di��dS|jj���|jjd|j_dS)NrRr#r�)	r�r-r.rdr!rbr�r*r?r�s  rr�z#InColumnGroupPhase.end_tag_colgroupCs����'�'�)�)�	?��;�(�(�(�(��K�#�#�$8�6�5��=�:Q�R�R�R�R�R��I�#�'�'�)�)�)� $�� 2�:� >�D�K���rc�@�|j�dddi��dS)Nz
no-end-tagr#r�r�r�s  r�end_tag_colzInColumnGroupPhase.end_tag_colLs$�������v�u�o�>�>�>�>�>rc�z�|���}|�td����|s|SdSr�r�r�s   rr�z InColumnGroupPhase.end_tag_otherOr�rr�r�r�N)r�r�r�rr�r�rvrlr�r�r�r�r�r�r�r�r�r�r rrr�r�!s�����������I�:�:�:�������0�0�0�
���?�?�?�?�?�?����!��	��%�&�	�
��"����
�h�	�%�&�	��� ���O�O�Orr�c���eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zed
ejfde	fde
fdefg��Zede
fdefdefg��ZdS)�InTableBodyPhasec��|jjdjdvr7|jj���|jjdjdv�7|jjdjdkr|jjsJ�dSdS)NrX)r�r�r�r�r�)r!rbr#r�r-r.rEs r�"_clear_stack_to_table_body_contextz3InTableBodyPhase._clear_stack_to_table_body_contextds����i�%�b�)�.�73�3�3�
�I�#�'�'�)�)�)�	�i�%�b�)�.�73�3�3�
�9�"�2�&�+�v�5�5��;�(�(�(�(�6�5�(�(rc�N�|jjd���dS�Nr�r�rEs rrvzInTableBodyPhase.process_eofm�$�����:�&�2�2�4�4�4�4�4rc�L�|jjd�|��Sr�rhr�s  rrmz)InTableBodyPhase.process_space_charactersp� ���{�!�*�-�F�F�u�M�M�Mrc�L�|jjd�|��Sr�r�r�s  rrlz#InTableBodyPhase.process_characterss� ���{�!�*�-�@�@��G�G�Grc��|���|j�|��|jjd|j_dS)Nr�)r�r!r�r-r*r?r�s  r�start_tag_trzInTableBodyPhase.start_tag_trvsD���/�/�1�1�1��	� � ��'�'�'� �K�.�x�8�����rc��|j�dd|di��|�tdd����|S)Nzunexpected-cell-in-table-bodyr#r�rh)r-rdr�rr�s  r�start_tag_table_cellz%InTableBodyPhase.start_tag_table_cell{sQ������+�f�e�F�m�-D�	F�	F�	F����+�D�+�>�>�?�?�?��rc��|j�dd���s8|j�dd���s|j�dd���rM|���|�t	|jjdj����|S|jjsJ�|j�	dd|di��dS)	Nr�r�r�r�r�rXz!unexpected-start-tag-out-of-tabler#�
r!r�r��end_tag_table_rowgrouprrbr#r-r.rdr�s  r�start_tag_table_otherz&InTableBodyPhase.start_tag_table_other�s����I�&�&�w��&�@�@�	N��	�*�*�7�G�*�D�D�	N��	�*�*�7�G�*�D�D�	N�
�3�3�5�5�5��'�'�!�$�)�"9�"�"=�"B�C�C�
E�
E�
E��L��;�(�(�(�(��K�#�#�3�f�e�F�m�5L�
N�
N�
N�
N�
Nrc�L�|jjd�|��Sr�rr�s  rr�z InTableBodyPhase.start_tag_other�� ���{�!�*�-�?�?��F�F�Frc�0�|j�|dd���rP|���|jj���|jjd|j_dS|j�dd|di��dS)Nr#r�r�r�� unexpected-end-tag-in-table-body)	r!r�r�rbr�r-r*r?rdr�s  rrz'InTableBodyPhase.end_tag_table_rowgroup�s����9�%�%�e�F�m�W�%�E�E�	M��3�3�5�5�5��I�#�'�'�)�)�)� $�� 2�:� >�D�K�����K�#�#�2�V�U�6�]�4K�
M�
M�
M�
M�
Mrc��|j�dd���s8|j�dd���s|j�dd���rM|���|�t	|jjdj����|S|jjsJ�|j�	dd|di��dS)	Nr�r�r�r�r�rXrRr#r�r�s  rr�zInTableBodyPhase.end_tag_table�s����I�&�&�w��&�@�@�
	S��	�*�*�7�G�*�D�D�
	S��	�*�*�7�G�*�D�D�
	S�
�3�3�5�5�5��'�'�!�$�)�"9�"�"=�"B�C�C�
E�
E�
E��L��;�(�(�(�(��K�#�#�$8�6�5��=�:Q�R�R�R�R�Rrc�L�|j�dd|di��dS)Nrr#r�r�s  rr�zInTableBodyPhase.end_tag_ignore��9������.���v��0G�	I�	I�	I�	I�	Irc�L�|jjd�|��Sr�r�r�s  rr�zInTableBodyPhase.end_tag_other�� ���{�!�*�-�=�=�e�D�D�Drr�r��r�r�)r�r�r�r�r�r�r�r�)r�r�r�r�r�r�r�r�N)r�r�r�rr�r�rvrmrlr�r�rr�rr�r�r�r�r�r�r�r�r rrr�r�`s[����������I�)�)�)�5�5�5�N�N�N�H�H�H�9�9�9�
���
N�
N�
N�G�G�G�M�M�M�S�S�S�I�I�I�E�E�E�!��	��%�&�	
�|��	�+�,�	B��	�	"�����h�	$�&<�=�	�-� �
��	!� ���O�O�Orr�c���eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zedejfde
fdefg��Zede
fdefdefdefg��ZdS)�
InRowPhasec��|jjdjdvrk|j�dd|jjdji��|jj���|jjdjdv�idSdS)NrX)r�r�z'unexpected-implied-end-tag-in-table-rowr#)r!rbr#r-rdr�rEs r�!_clear_stack_to_table_row_contextz,InRowPhase._clear_stack_to_table_row_context�s����i�%�b�)�.�n�D�D��K�#�#�9����0��4�9�:�
<�
<�
<�
�I�#�'�'�)�)�)�	�i�%�b�)�.�n�D�D�D�D�D�Drc�<�|j�dd���S)Nr�r�r�r�rEs r�ignore_end_tag_trzInRowPhase.ignore_end_tag_tr�s ���9�-�-�d�G�-�D�D�D�Drc�N�|jjd���dSr�r�rEs rrvzInRowPhase.process_eof�r�rc�L�|jjd�|��Sr�rhr�s  rrmz#InRowPhase.process_space_characters�r�rc�L�|jjd�|��Sr�r�r�s  rrlzInRowPhase.process_characters�r�rc���|���|j�|��|jjd|j_|jj�t��dS)Nr�)	rr!r�r-r*r?r�rurr�s  rr�zInRowPhase.start_tag_table_cell�s]���.�.�0�0�0��	� � ��'�'�'� �K�.�y�9�����	�,�3�3�F�;�;�;�;�;rc�z�|���}|�td����|s|SdS�Nr��r�
end_tag_trrr�s   rrz InRowPhase.start_tag_table_other�sE���/�/�1�1�����)�$�/�/�0�0�0��	��L�	�	rc�L�|jjd�|��Sr�rr�s  rr�zInRowPhase.start_tag_other�rrc�0�|���sP|���|jj���|jjd|j_dS|jjsJ�|j�	dd|di��dS)Nr�rRr#)
rrr!rbr�r-r*r?r.rdr�s  rrzInRowPhase.end_tag_tr�s����%�%�'�'�	S��2�2�4�4�4��I�#�'�'�)�)�)� $�� 2�?� C�D�K�����;�(�(�(�(��K�#�#�$8�6�5��=�:Q�R�R�R�R�Rrc�z�|���}|�td����|s|SdSrrr�s   rr�zInRowPhase.end_tag_table�sG���/�/�1�1�����)�$�/�/�0�0�0��	��L�	�	rc���|j�|dd���r$|�td����|S|j�dd|di��dS)Nr#r�r�r�rR)r!r�rrr-rdr�s  rrz!InRowPhase.end_tag_table_rowgroup�sl���9�%�%�e�F�m�W�%�E�E�	S��O�O�-�d�3�3�4�4�4��L��K�#�#�$8�6�5��=�:Q�R�R�R�R�Rrc�L�|j�dd|di��dS)Nzunexpected-end-tag-in-table-rowr#r�r�s  rr�zInRowPhase.end_tag_ignores9������-���f�
�/F�	H�	H�	H�	H�	Hrc�L�|jjd�|��Sr�r�r�s  rr�zInRowPhase.end_tag_otherr
rr�r)r�r�r�r�r�r�r�r�r�r�)r�r�r�r�r�r�r�N)r�r�r�rr�rrrvrmrlr�rr�rr�rr�r�r�r�r�r�r�r rrr
r
�sg����������I�*�*�*�E�E�E�5�5�5�N�N�N�H�H�H�<�<�<����G�G�G�S�S�S����S�S�S�H�H�H�E�E�E�!��	��%�&�	�+�,�
�&�	(�"�����h�	
�z��	�-� �	$�&<�=�	C�^�T�	 ���O�O�Orr
c��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
ed
ejfdefg��Zede
fd
efdefg��ZdS)�InCellPhasec��|j�dd���r$|�td����dS|j�dd���r$|�td����dSdS)Nr�r�r�r�)r!r��end_tag_table_cellrrEs r�_close_cellzInCellPhase._close_cells����9�%�%�d�G�%�<�<�	=��#�#�$5�d�$;�$;�<�<�<�<�<�
�Y�
'�
'��g�
'�
>�
>�	=��#�#�$5�d�$;�$;�<�<�<�<�<�	=�	=rc�N�|jjd���dSrr�rEs rrvzInCellPhase.process_eof r�rc�L�|jjd�|��Srr�r�s  rrlzInCellPhase.process_characters#r�rc��|j�dd���s|j�dd���r|���|S|jjsJ�|j�dd|di��dS)Nr�r�r�r�z&unexpected-start-tag-out-of-table-cellr#)r!r�r$r-r.rdr�s  rrz!InCellPhase.start_tag_table_other&s����I�&�&�t�W�&�=�=�	S��	�*�*�4��*�A�A�	S��������L��;�(�(�(�(��K�#�#�8�6�5��=�:Q�
S�
S�
S�
S�
Src�L�|jjd�|��Srrr�s  rr�zInCellPhase.start_tag_other1rrc�h�|j�|dd���r�|j�|d��|jjdj|dkrV|j�dd|di��	|jj���}|j|dkrn�1n|jj���|j���|jj	d|j_
dS|j�dd|di��dS)	Nr#r�r�rXzunexpected-cell-end-tagTr�rR)r!r�rrbr#r-rdr�rNr*r?rLs   rr#zInCellPhase.end_tag_table_cell4s+���9�%�%�e�F�m�W�%�E�E�	S��I�/�/��f�
�>�>�>��y�&�r�*�/�5��=�@�@���'�'�-���f�
�/F�H�H�H���9�2�6�6�8�8�D��y�E�&�M�1�1�����	�'�+�+�-�-�-��I�6�6�8�8�8� $�� 2�8� <�D�K�����K�#�#�$8�6�5��=�:Q�R�R�R�R�Rrc�L�|j�dd|di��dSrQr�r�s  rr�zInCellPhase.end_tag_ignoreErSrc��|j�|dd���r|���|S|j�dd|di��dS)Nr#r�r�rR)r!r�r$r-rdr�s  r�
end_tag_implyzInCellPhase.end_tag_implyHse���9�%�%�e�F�m�W�%�E�E�	S��������L�
�K�#�#�$8�6�5��=�:Q�R�R�R�R�Rrc�L�|jjd�|��Srr�r�s  rr�zInCellPhase.end_tag_otherPrerr�r�r)r�r�r�r�r�r=N)r�r�r�rr�r$rvrlrr�r#r�r,r�r�r�r�r�r�r rrr!r!s����������I�=�=�=�4�4�4�G�G�G�	S�	S�	S�F�F�F�S�S�S�"O�O�O�S�S�S�D�D�D�!��	��%�&�
�/�	1�"�����h�	�)�*�	7��H�	3�]�C� ���O�O�Orr!c	���eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zed
ejfdefdefde	fde
fdefg��Zede
fdefdefg��ZdS)�
InSelectPhasec��|jjdjdkr|j�d��dS|jjsJ�dS)NrXr�z
eof-in-selectr�rEs rrvzInSelectPhase.process_eofdsM���9�"�2�&�+�v�5�5��K�#�#�O�4�4�4�4�4��;�(�(�(�(�(�(rc�b�|ddkrdS|j�|d��dSr�r�r�s  rrlz InSelectPhase.process_charactersjs6����=�H�$�$��F��	���e�F�m�,�,�,�,�,rc��|jjdjdkr|jj���|j�|��dSr�r!rbr#r�r�r�s  r�start_tag_optionzInSelectPhase.start_tag_optionosM���9�"�2�&�+�x�7�7��I�#�'�'�)�)�)��	� � ��'�'�'�'�'rc��|jjdjdkr|jj���|jjdjdkr|jj���|j�|��dS)NrXrr"r3r�s  r�start_tag_optgroupz InSelectPhase.start_tag_optgroupus|���9�"�2�&�+�x�7�7��I�#�'�'�)�)�)��9�"�2�&�+�z�9�9��I�#�'�'�)�)�)��	� � ��'�'�'�'�'rc�~�|j�d��|�td����dS)Nzunexpected-select-in-selectr�)r-rd�end_tag_selectrr�s  rrzInSelectPhase.start_tag_select|s<������ =�>�>�>����-�h�7�7�8�8�8�8�8rc���|j�d��|j�dd���r$|�td����|S|jjsJ�dS)Nzunexpected-input-in-selectr�r�)r-rdr!r�r8rr.r�s  rr�zInSelectPhase.start_tag_input�so������ <�=�=�=��9�%�%�h��%�A�A�	)���� 1�(� ;� ;�<�<�<��L��;�(�(�(�(�(�(rc�L�|jjd�|��Srdrr�s  rrGzInSelectPhase.start_tag_script�rrc�L�|j�dd|di��dS)Nzunexpected-start-tag-in-selectr#r�r�s  rr�zInSelectPhase.start_tag_other��9������,�v�u�V�}�.E�	G�	G�	G�	G�	Grc��|jjdjdkr |jj���dS|j�dddi��dS)NrXr�unexpected-end-tag-in-selectr#�r!rbr#r�r-rdr�s  r�end_tag_optionzInSelectPhase.end_tag_option�s[���9�"�2�&�+�x�7�7��I�#�'�'�)�)�)�)�)��K�#�#�$B�V�X�DV�W�W�W�W�Wrc�^�|jjdjdkr9|jjdjdkr|jj���|jjdjdkr |jj���dS|j�dddi��dS)NrXr���r"r>r#r?r�s  r�end_tag_optgroupzInSelectPhase.end_tag_optgroup�s����I�#�B�'�,��8�8��	�'��+�0�J�>�>��I�#�'�'�)�)�)��9�"�2�&�+�z�9�9��I�#�'�'�)�)�)�)�)�
�K�#�#�.���0D�
F�
F�
F�
F�
Frc�z�|j�dd���rm|jj���}|jdkr)|jj���}|jdk�)|j���dS|jjsJ�|j�dd|di��dS)Nr�r�rRr#)	r!r�rbr�r#r-rAr.rdrLs   rr8zInSelectPhase.end_tag_select�s����9�%�%�h��%�A�A�	S��9�*�.�.�0�0�D��)�x�'�'��y�.�2�2�4�4���)�x�'�'��K�,�,�.�.�.�.�.��;�(�(�(�(��K�#�#�$8�6�5��=�:Q�R�R�R�R�Rrc�L�|j�dd|di��dS)Nr>r#r�r�s  rr�zInSelectPhase.end_tag_other�s*������ >���v��@W�X�X�X�X�Xrr�rr"r�)rrxr�rYN)r�r�r�rr�rvrlr4r6rr�rGr�r@rCr8r�r�r�r�r�r�r rrr/r/`s`����������I�)�)�)�-�-�-�
(�(�(�(�(�(�9�9�9�)�)�)�F�F�F�G�G�G�X�X�X�F�F�F�	S�	S�	S�Y�Y�Y�!��	��%�&�	�#�$�	�'�(�	�#�$�	(�/�:�	�#�$�
"�����h�	�>�"�	�%�&�	�>�"� ���O�O�Orr/c�~�eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
edefg��Zede	fg��Z
dS)	�InSelectInTablePhasec�N�|jjd���dS�Nr�r�rEs rrvz InSelectInTablePhase.process_eof�s$�����;�'�3�3�5�5�5�5�5rc�L�|jjd�|��SrIr�r�s  rrlz'InSelectInTablePhase.process_characters�s ���{�!�+�.�A�A�%�H�H�Hrc��|j�dd|di��|�td����|S)Nz5unexpected-table-element-start-tag-in-select-in-tabler#r�)r-rdr�rr�s  rr�z$InSelectInTablePhase.start_tag_table�sO������C�
�U�6�]�#�	%�	%�	%�	
���,�X�6�6�7�7�7��rc�L�|jjd�|��SrIrr�s  rr�z$InSelectInTablePhase.start_tag_other�s ���{�!�+�.�@�@��G�G�Grc���|j�dd|di��|j�|dd���r$|�td����|SdS)Nz3unexpected-table-element-end-tag-in-select-in-tabler#r�r�r�)r-rdr!r�r�rr�s  rr�z"InSelectInTablePhase.end_tag_table�sz������A�
�U�6�]�#�	%�	%�	%��9�%�%�e�F�m�W�%�E�E�	����0��:�:�;�;�;��L�	�	rc�L�|jjd�|��SrIr�r�s  rr�z"InSelectInTablePhase.end_tag_other�s ���{�!�+�.�>�>�u�E�E�Er)r�r�r�r�r�r�r�r�N)r�r�r�rr�rvrlr�r�r�r�r�r�r�r rrrGrG�s�����������I�6�6�6�I�I�I����H�H�H����F�F�F�!��	J�	�	�"����
�h�	J�	�	� ���O�O�OrrGc�T�eZdZe��Zegd���Zd�Zd�Zd�Z	d�Z
dS)�InForeignContentPhase),rfrgrTr�rrUrhr�r�rXr�rirw�h1�h2�h3�h4�h5�h6r�r�rkr�r�r�r`r_r�rbr�r�rrlrm�spanrorn�sub�supr�rprqre�varc��idd�dd�dd�dd�d	d
�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd �d!d"�id#d$�d%d&�d'd(�d)d*�d+d,�d-d.�d/d0�d1d2�d3d4�d5d6�d7d8�d9d:�d;d<�d=d>�d?d@�dAdB�dCdD��dEdFdG��}|dH|vr||dH|dH<dSdS)IN�altglyph�altGlyph�altglyphdef�altGlyphDef�altglyphitem�altGlyphItem�animatecolor�animateColor�
animatemotion�
animateMotion�animatetransform�animateTransform�clippath�clipPath�feblend�feBlend�
fecolormatrix�
feColorMatrix�fecomponenttransfer�feComponentTransfer�fecomposite�feComposite�feconvolvematrix�feConvolveMatrix�fediffuselighting�feDiffuseLighting�fedisplacementmap�feDisplacementMap�fedistantlight�feDistantLight�feflood�feFlood�fefunca�feFuncA�fefuncb�feFuncB�fefuncg�feFuncG�fefuncr�feFuncR�fegaussianblur�feGaussianBlur�feimage�feImage�femerge�feMerge�femergenode�feMergeNode�femorphology�feMorphology�feoffset�feOffset�fepointlight�fePointLight�fespecularlighting�feSpecularLighting�fespotlight�feSpotLight�fetile�feTile�feturbulence�feTurbulence�
foreignobject�
foreignObject�glyphref�glyphRef�lineargradient�linearGradient�radialGradient�textPath)�radialgradient�textpathr#r )r%rw�replacementss   r�adjust_svg_tag_namesz*InForeignContentPhase.adjust_svg_tag_names�s���%
��
�%
��=�%
�
�N�%
�
�N�	%
�

�_�%
�
� 2�
%
�
�
�%
�
�y�%
�
�_�%
�
"�#8�%
�
�=�%
�
� 2�%
�
 �!4�%
�
 �!4�%
�
�.�%
� 
�y�!%
�"
�y�#%
�%
�$
�y�%%
�&
�y�'%
�(
�y�)%
�*
�.�+%
�,
�y�-%
�.
�y�/%
�0
�=�1%
�2
�N�3%
�4
�
�5%
�6
�N�7%
�8
!�"6�9%
�:
�=�;%
�<
�h�=%
�>
�N�?%
�@
�_�A%
�B
�
�C%
�D
�.�E%
�%
�F/�"�I%
�%
�%
��N��=�L�(�(�(��v��7�E�&�M�M�M�)�(rc���|ddkrd|d<n7|jjr+td�|dD����rd|j_t�||��dS)NrZr�u�c3�(K�|]
}|tvV��dSrUr�r�s  rr�z;InForeignContentPhase.process_characters.<locals>.<genexpr>"	s(����I�I�4�$�.�.�I�I�I�I�I�IrF)r-rDr�r�rlr�s  rrlz(InForeignContentPhase.process_characters	sr����=�H�$�$�$�E�&�M�M��k�%�	,��I�I�5��=�I�I�I�I�I�	,�&+�D�K�#�
� � ��u�-�-�-�-�-rc���|jjd}|d|jvs:|ddk�rbt|d�����hd�z�r5|j�dd|di��|jjdj|jjkr�|j�	|jjd��s�|j�
|jjd��s�|jj���|jjdj|jjkrT|j�	|jjd��s*|j�
|jjd����|S|jtdkr|j�
|��nE|jtdkr/|�|��|j�|��|j�|��|j|d	<|j�|��|d
r%|jj���d|d<dSdS)
NrXr#rjrZ>�face�size�colorz*unexpected-html-element-in-foreign-contentrKr^rMr`Tra)r!rb�breakout_elements�setr�r-rdrMrgrSrVr�rrr�rrr�)r%rwrzs   rrnz'InForeignContentPhase.process_start_tag&	sr���y�.�r�2���&�M�T�3�3�3��f�
��'�'��E�&�M�&�&�(�(�)�)�,E�,E�,E�E�(��K�#�#�<�v�u�V�}�>U�
W�
W�
W��9�*�2�.�8��9�.�/�/��{�<�<��y�.�r�2�4�4�/��{�C�C��y�.�r�2�4�4�	/��	�'�+�+�-�-�-�
�9�*�2�.�8��9�.�/�/��{�<�<��y�.�r�2�4�4�/��{�C�C��y�.�r�2�4�4�	/��L��%��H�)=�=�=���4�4�U�;�;�;�;��'�:�e�+<�<�<��)�)�%�0�0�0���1�1�%�8�8�8��K�1�1�%�8�8�8�!-�!7�E�+���I�$�$�U�+�+�+��]�#�
8��	�'�+�+�-�-�-�37��/�0�0�0�
8�
8rc�F�t|jj��dz
}|jjd}|j�t
��|dkr#|j�dd|di��	|j�t
��|dkr�|jj|jj	dkr9|jj�
��|jjj|j_|jj���|kr0|jjsJ�|jj���|k�0d}nN|dz}|jj|}|j
|jjkr��|jj�|��}	|S)NrrXr#rRTr�)rfr!rbr#rOr	r-rdr?r*r�r�r�rMrgrp)r%rw�
node_indexr�rys     rrpz%InForeignContentPhase.process_end_tagC	ss�����0�1�1�A�5�
��y�&�r�*���9���3�4�4��f�
�E�E��K�#�#�$8�6�5��=�:Q�R�R�R�	��y�"�"�#7�8�8�E�&�M�I�I��;�$���(:�?�(K�K�K��K�%�6�6�8�8�8�(,��(9�(H�D�K�%��i�-�1�1�3�3�t�;�;��9�2�2�2�2��i�-�1�1�3�3�t�;�;� �	���!�O�J��9�*�:�6�D��~���!<�<�<�� �K�-�=�=�e�D�D�	���rN)r�r�r�rr�rir�r�rlrnrpr rrrPrP�s}����������I�!�	�#�#�#����)8�)8�)8�V.�.�.�8�8�8�:����rrPc��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zedefg��Z
ede
fg��Zd	S)
�AfterBodyPhasec��dSrUr rEs rrvzAfterBodyPhase.process_eofa	����rc�\�|j�||jjd��dS)NrGr�r�s  rrrzAfterBodyPhase.process_commente	s,��	
�	� � ���	�(?��(B�C�C�C�C�Crc�r�|j�d��|jjd|j_|S)Nzunexpected-char-after-bodyr��r-rdr*r?r�s  rrlz!AfterBodyPhase.process_charactersj	s2������ <�=�=�=� �K�.�y�9�����rc�L�|jjd�|��Srrr�s  rr�zAfterBodyPhase.start_tag_htmlo	rrc��|j�dd|di��|jjd|j_|S)Nzunexpected-start-tag-after-bodyr#r�r�r�s  rr�zAfterBodyPhase.start_tag_otherr	sF������-���f�
�/F�	H�	H�	H� �K�.�y�9�����rc��|jjr|j�d��dS|jjd|j_dS)Nz'unexpected-end-tag-after-body-innerhtml�after after body)r-r.rdr*r?)r%r#s  rr,zAfterBodyPhase.end_tag_htmlx	sH���;� �	G��K�#�#�$M�N�N�N�N�N� $�� 2�3E� F�D�K���rc��|j�dd|di��|jjd|j_|S)Nzunexpected-end-tag-after-bodyr#r�r�r�s  rr�zAfterBodyPhase.end_tag_other~	sF������+�f�e�F�m�-D�	F�	F�	F� �K�.�y�9�����rr�N)r�r�r�rr�rvrrrlr�r�r,r�r�r�r�r rrr�r�^	s�����������I�
�
�
�D�D�D�
���
F�F�F����G�G�G����!��	�� �"�����h��� 6�7�8�8�O�O�Orr�c��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Ze
d	ejfd
efdefde	fg��Ze
d
efg��Zd
S)�InFramesetPhasec��|jjdjdkr|j�d��dS|jjsJ�dS)NrXr�zeof-in-framesetr�rEs rrvzInFramesetPhase.process_eof�	sN���9�"�2�&�+�v�5�5��K�#�#�$5�6�6�6�6�6��;�(�(�(�(�(�(rc�:�|j�d��dS)Nzunexpected-char-in-framesetr�r�s  rrlz"InFramesetPhase.process_characters�	s������ =�>�>�>�>�>rc�:�|j�|��dSrU)r!r�r�s  rr�z"InFramesetPhase.start_tag_frameset�	s���	� � ��'�'�'�'�'rc�v�|j�|��|jj���dSrUr/r�s  r�start_tag_framezInFramesetPhase.start_tag_frame�	s5���	� � ��'�'�'��	��#�#�%�%�%�%�%rc�L�|jjd�|��Srrr�s  r�start_tag_noframesz"InFramesetPhase.start_tag_noframes�	rrc�L�|j�dd|di��dS)Nz unexpected-start-tag-in-framesetr#r�r�s  rr�zInFramesetPhase.start_tag_other�	rrc�<�|jjdjdkr|j�d��n|jj���|jjs9|jjdjdkr |jjd|j_dSdSdS)NrXr�z)unexpected-frameset-in-frameset-innerhtmlr��after frameset)	r!rbr#r-rdr�r.r*r?r�s  r�end_tag_framesetz InFramesetPhase.end_tag_frameset�	s����9�"�2�&�+�v�5�5��K�#�#�$O�P�P�P�P��I�#�'�'�)�)�)���%�	E��	�'��+�0�J�>�>�!%�� 2�3C� D�D�K����		E�	E�>�>rc�L�|j�dd|di��dS)Nzunexpected-end-tag-in-framesetr#r�r�s  rr�zInFramesetPhase.end_tag_other�	r<rr�r�r�rVN)r�r�r�rr�rvrlr�r�r�r�r�r�r�r�r�r�r�r rrr�r��	s�����������I�)�)�)�?�?�?�(�(�(�&�&�&�F�F�F�I�I�I�
E�
E�
E�G�G�G�!��	��%�&�	�'�(�	�/�"�	�'�(�	"�����h�	�%�&� ���O�O�Orr�c��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
edej
fdefg��Zede	fg��Zd	S)
�AfterFramesetPhasec��dSrUr rEs rrvzAfterFramesetPhase.process_eof�	r�rc�:�|j�d��dS)Nzunexpected-char-after-framesetr�r�s  rrlz%AfterFramesetPhase.process_characters�	s������ @�A�A�A�A�Arc�L�|jjd�|��Srdrr�s  rr�z%AfterFramesetPhase.start_tag_noframes�	rrc�L�|j�dd|di��dS)Nz#unexpected-start-tag-after-framesetr#r�r�s  rr�z"AfterFramesetPhase.start_tag_other�	s9������1�F�E�&�M�3J�	L�	L�	L�	L�	Lrc�>�|jjd|j_dS)N�after after frameset)r-r*r?r�s  rr,zAfterFramesetPhase.end_tag_html�	s�� �K�.�/E�F�����rc�L�|j�dd|di��dS)Nz!unexpected-end-tag-after-framesetr#r�r�s  rr�z AfterFramesetPhase.end_tag_other�	s9������/�&�%��-�1H�	J�	J�	J�	J�	Jrr�rVN)r�r�r�rr�rvrlr�r�r,r�r�r�r�r�r�r rrr�r��	s�����������I�
�
�
�B�B�B�F�F�F�L�L�L�G�G�G�J�J�J�!��	��%�&�	�'�(�"����
�h�	��� ���O�O�Orr�c�h�eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zede	fg��Z
d	S)
�AfterAfterBodyPhasec��dSrUr rEs rrvzAfterAfterBodyPhase.process_eof�	r�rc�P�|j�||jj��dSrUr�r�s  rrrz#AfterAfterBodyPhase.process_comment�	r�rc�L�|jjd�|��Srrhr�s  rrmz,AfterAfterBodyPhase.process_space_characters�	rirc�r�|j�d��|jjd|j_|S)N�expected-eof-but-got-charr�r�r�s  rrlz&AfterAfterBodyPhase.process_characters�	s2������ ;�<�<�<� �K�.�y�9�����rc�L�|jjd�|��Srrr�s  rr�z"AfterAfterBodyPhase.start_tag_html�	rrc��|j�dd|di��|jjd|j_|S)N�expected-eof-but-got-start-tagr#r�r�r�s  rr�z#AfterAfterBodyPhase.start_tag_other�	sF������,�v�u�V�}�.E�	G�	G�	G� �K�.�y�9�����rc��|j�dd|di��|jjd|j_|S)N�expected-eof-but-got-end-tagr#r�r�r�s  rrpz#AfterAfterBodyPhase.process_end_tag�	sF������*�V�U�6�]�,C�	E�	E�	E� �K�.�y�9�����rr�N)r�r�r�rr�rvrrrmrlr�r�rpr�r�r rrr�r��	s�����������I�
�
�
�<�<�<�M�M�M����
F�F�F�������!��	�� �"�����rr�c�t�eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Ze
d	e	fd
e
fg��ZdS)�AfterAfterFramesetPhasec��dSrUr rEs rrvz#AfterAfterFramesetPhase.process_eof
r�rc�P�|j�||jj��dSrUr�r�s  rrrz'AfterAfterFramesetPhase.process_comment
r�rc�L�|jjd�|��Srrhr�s  rrmz0AfterAfterFramesetPhase.process_space_characters
rirc�:�|j�d��dS)Nr�r�r�s  rrlz*AfterAfterFramesetPhase.process_characters
s������ ;�<�<�<�<�<rc�L�|jjd�|��Srrr�s  rr�z&AfterAfterFramesetPhase.start_tag_html
rrc�L�|jjd�|��Srdrr�s  rr�z*AfterAfterFramesetPhase.start_tag_noframes
rrc�L�|j�dd|di��dS)Nr�r#r�r�s  rr�z'AfterAfterFramesetPhase.start_tag_other
r<rc�L�|j�dd|di��dS)Nr�r#r�r�s  rrpz'AfterAfterFramesetPhase.process_end_tag#
s9������*�V�U�6�]�,C�	E�	E�	E�	E�	Err�rVN)r�r�r�rr�rvrrrmrlr�r�r�rpr�r�r rrr�r�

s�����������I�
�
�
�<�<�<�M�M�M�=�=�=�F�F�F�F�F�F�G�G�G�E�E�E�!��	�� �	�'�(�"�����rr�r8r7r�rrCrJr�r�r�r�r�r�r�r�r�r�r)r_r)r�r�r�r�c����|d�������zrGt|d���fd�|d���D����|d<dSdS)NrZc3�N�K�|]\}}��||��|fV�� dSrU)re)r"r�r�r�s   �rr�z$adjust_attributes.<locals>.<genexpr>J
sU�����,Y�,Y�4>�C��\�
�
�c�3�
'�
'��/�,Y�,Y�,Y�,Y�,Y�,Yr)r�rYr))rwr�s `rr�r�H
s�����V�}�����l�/�/�1�1�1�Y�+��U�6�]�+�+�,Y�,Y�,Y�,Y�BG��-�BU�BU�BW�BW�,Y�,Y�,Y�Y�Y��f�
�
�
�Y�YrroNFc�.�t|||�in||d�S)N)rYr#rZr`)r)r#rYrNr�s    rrrN
s*���d��� �(���j�#�	��rr�)roNF)4r�r�	constantsrrrrrr	r
rrr
rrrrr0r�treebuilderrrrrr�r�r�rrr%rar{r�r�r�r�r�r�r�r
r!r/rGrPr�r�r�r�r�r(r�rr rr�<module>r�s����������������������������������������� %�$�$�$�$�$�,�,�,�,�,�,�,�,�"I�"I�"I�"I�Jb)�b)�b)�b)�b)�b)�b)�b)�J���A%�A%�A%�A%�A%�A%�A%�A%�HC�C�C�C�C�5�C�C�C�L!�!�!�!�!�e�!�!�!�H(�(�(�(�(�e�(�(�(�Vb�b�b�b�b�%�b�b�b�J>�>�>�>�>�%�>�>�>�B>�>�>�>�>�U�>�>�>�BO�O�O�O�O�%�O�O�O�d=�=�=�=�=��=�=�=�BN�N�N�N�N�5�N�N�N�b-�-�-�-�-�u�-�-�-�`B�B�B�B�B�U�B�B�B�J<�<�<�<�<��<�<�<�~]�]�]�]�]�u�]�]�]�@S�S�S�S�S��S�S�S�lG�G�G�G�G�%�G�G�G�T]�]�]�]�]�E�]�]�]�@&�&�&�&�&�5�&�&�&�Rr�r�r�r�r�E�r�r�r�j*9�*9�*9�*9�*9�U�*9�*9�*9�Z4�4�4�4�4�e�4�4�4�n � � � � �� � � �F"�"�"�"�"�%�"�"�"�J � � � � �e� � � �F�
�|���?���?���{�	�
�+���.�
��{���I������%���.���)���%��
�j���{�� ��!�"�.�#�$0� �"�(�+�3�/����6Y�Y�Y������r

Youez - 2016 - github.com/yon3zu
LinuXploit