§
    ¤”jä, ã                   óú   — 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 ddlmZ ddlmZ ddlmZmZ dd	lmZmZmZ dd
lmZmZ ddlmZ ddlmZ ddlmZ  ee¦  «        Zedk    reZne	Z G d„ de¦  «        ZdS )é    )Úabsolute_importÚdivisionÚunicode_literals)Úunichr)ÚdequeÚOrderedDict)Úversion_infoé   )ÚspaceCharacters)Úentities)ÚasciiLettersÚasciiUpper2Lower)ÚdigitsÚ	hexDigitsÚEOF)Ú
tokenTypesÚtagTokenTypes)ÚreplacementCharacters)ÚHTMLInputStream)ÚTrie)é   é   c                   óÖ  ‡ — e Zd ZdZdMˆ fd„	Zd„ Zd„ ZdNd„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„ 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'„ Z'd(„ Z(d)„ Z)d*„ Z*d+„ Z+d,„ Z,d-„ Z-d.„ Z.d/„ Z/d0„ Z0d1„ Z1d2„ Z2d3„ Z3d4„ Z4d5„ Z5d6„ Z6d7„ Z7d8„ Z8d9„ Z9d:„ Z:d;„ Z;d<„ Z<d=„ Z=d>„ Z>d?„ Z?d@„ Z@dA„ ZAdB„ ZBdC„ ZCdD„ ZDdE„ ZEdF„ ZFdG„ ZGdH„ ZHdI„ ZIdJ„ ZJdK„ ZKdL„ ZLˆ xZMS )OÚHTMLTokenizera	   This class takes care of tokenizing HTML.

    * self.currentToken
      Holds the token that is currently being processed.

    * self.state
      Holds a reference to the method to be invoked... XXX

    * self.stream
      Points to HTMLInputStream object.
    Nc                 óØ   •— t          |fi |¤Ž| _        || _        d| _        g | _        | j        | _        d| _        d | _        t          t          | ¦  «                             ¦   «          d S ©NF)r   ÚstreamÚparserÚ
escapeFlagÚlastFourCharsÚ	dataStateÚstateÚescapeÚcurrentTokenÚsuperr   Ú__init__)Úselfr   r   ÚkwargsÚ	__class__s       €úb/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/html5lib/_tokenizer.pyr&   zHTMLTokenizer.__init__(   sn   ø€ å% fÐ7Ð7°Ð7Ð7ˆŒØˆŒð  ˆŒØˆÔØ”^ˆŒ
ØˆŒð !ˆÔÝ�m˜TÑ"Ô"×+Ò+Ñ-Ô-Ð-Ð-Ð-ó    c              #   óf  K  — t          g ¦  «        | _        |                      ¦   «         r†| j        j        r;t
          d         | j        j                             d¦  «        dœV — | j        j        °;| j        r"| j                             ¦   «         V — | j        °"|                      ¦   «         °„dS dS )zä This is where the magic happens.

        We do our usually processing through the states and when we have a token
        to return we yield the token which pauses processing until the next token
        is requested.
        Ú
ParseErrorr   ©ÚtypeÚdataN)r   Ú
tokenQueuer"   r   Úerrorsr   ÚpopÚpopleft©r'   s    r*   Ú__iter__zHTMLTokenizer.__iter__7   sÈ   è è € õ   ™)œ)ˆŒð �jŠj‰lŒlð 	0Ø”+Ô$ð \Ý)¨,Ô7ÀÄÔAS×AWÒAWÐXYÑAZÔAZÐ[Ð[Ð[Ð[Ð[ð ”+Ô$ð \à”/ð 0Ø”o×-Ò-Ñ/Ô/Ð/Ð/Ð/ð ”/ð 0ð �jŠj‰lŒlð 	0ð 	0ð 	0ð 	0ð 	0r+   c                 ól  — t           }d}|r	t          }d}g }| j                             ¦   «         }||v rD|t          ur;|                     |¦  «         | j                             ¦   «         }||v r	|t          u°;t          d                     |¦  «        |¦  «        }|t          v r:t          |         }| j	                             t          d         dd|idœ¦  «         �nd|cxk    rd	k    sn |d
k    r.d}| j	                             t          d         dd|idœ¦  «         nËd|cxk    rdk    sBn d|cxk    rdk    s3n d|cxk    rdk    s$n d|cxk    rdk    sn |t          g d¢¦  «        v r+| j	                             t          d         dd|idœ¦  «         	 t          |¦  «        }n@# t          $ r3 |dz
  }t          d|dz	  z  ¦  «        t          d|dz  z  ¦  «        z   }Y nw xY w|dk    rB| j	                             t          d         ddœ¦  «         | j                             |¦  «         |S )zøThis function returns either U+FFFD or the character based on the
        decimal or hexadecimal representation. It also discards ";" if present.
        If not present self.tokenQueue.append({"type": tokenTypes["ParseError"]}) is invoked.
        é
   é   Ú r-   z$illegal-codepoint-for-numeric-entityÚ	charAsInt©r/   r0   Údatavarsi Ø  iÿß  éÿÿ õ   ï¿½r
   é   é   é   é   éŸ   iÐý  iïý  )#é   iþÿ  iÿÿ  iþÿ iÿÿ iþÿ iÿÿ iþÿ iÿÿ iþÿ iÿÿ iþÿ iÿÿ iþÿ iÿÿ iþÿ iÿÿ iþÿ iÿÿ iþÿ	 iÿÿ	 iþÿ
 iÿÿ
 iþÿ iÿÿ iþÿ iÿÿ iþÿ iÿÿ iþÿ iÿÿ iþÿ iÿÿ iþÿ r>   i   i Ü  iÿ  ú;z numeric-entity-without-semicolonr.   )r   r   r   Úcharr   ÚappendÚintÚjoinr   r1   r   Ú	frozensetÚchrÚ
ValueErrorÚunget)	r'   ÚisHexÚallowedÚradixÚ	charStackÚcr;   rG   Úvs	            r*   ÚconsumeNumberEntityz!HTMLTokenizer.consumeNumberEntityG   s  € õ ˆØˆØð 	ÝˆGØˆEàˆ	ð ŒK×ÒÑÔˆØ�7ˆlˆl˜q­˜|˜|Ø×Ò˜QÑÔÐØ”× Ò Ñ"Ô"ˆAð �7ˆlˆl˜q­˜|˜|õ
 ˜Ÿš 	Ñ*Ô*¨EÑ2Ô2ˆ	ð Õ-Ð-Ð-Ý(¨Ô3ˆDØŒO×"Ò"­J°|Ô,DØ$JØ1<¸iÐ0Hð$Jð $Jñ Kô Kð Kñ Kð ˜Ð,Ð,Ò,Ð, fÒ,Ð,Ð,Ð,Ø˜8Ò#Ð#ØˆDØŒO×"Ò"­J°|Ô,DØ$JØ1<¸iÐ0Hð$Jð $Jñ Kô Kð Kð Kð
 ˜9Ð.Ð.Ò.Ð.¨Ò.Ð.Ð.Ð.Ø˜9Ð.Ð.Ò.Ð.¨Ò.Ð.Ð.Ð.Ø˜9Ð.Ð.Ò.Ð.¨Ò.Ð.Ð.Ð.Ø˜9Ð.Ð.Ò.Ð.¨Ò.Ð.Ð.Ð.Ø�Yð (Eð (Eð (Eñ Fô Fð Fð Fð ”×&Ò&µ
¸<Ô0Hà(NØ5@À)Ð4Lð(Nð (Nñ Oô Oð OðKõ ˜9‘~”~��øÝð Kð Kð KØ Ñ'�Ý˜6 Q¨"¡WÑ-Ñ.Ô.µ°V¸qÀ5¹yÑ5IÑ1JÔ1JÑJ���ðKøøøð �Š8ˆ8ØŒO×"Ò"­J°|Ô,DØ$Fð$Hð $Hñ Iô Ið IàŒK×Ò˜aÑ Ô Ð àˆs   ÆF, Æ,:G)Ç(G)Fc                 óž  — d}| j                              ¦   «         g}|d         t          v s |d         t          ddfv s|�.||d         k    r"| j                              |d         ¦  «         �n„|d         dk    �r-d}|                     | j                              ¦   «         ¦  «         |d         dv r.d}|                     | j                              ¦   «         ¦  «         |r|d         t          v s|sF|d         t          v r7| j                              |d         ¦  «         |                      |¦  «        }�n¸| j	                             t          d	         d
dœ¦  «         | j                              |                     ¦   «         ¦  «         dd                     |¦  «        z   }�nJ|d         t          urit                               d                     |¦  «        ¦  «        sn;|                     | j                              ¦   «         ¦  «         |d         t          u°i	 t                               d                     |d d…         ¦  «        ¦  «        }t!          |¦  «        }n# t"          $ r d }Y nw xY w|��|d         dk    r(| j	                             t          d	         ddœ¦  «         |d         dk    rq|ro||         t$          v s||         t          v s||         dk    rE| j                              |                     ¦   «         ¦  «         dd                     |¦  «        z   }nÆt&          |         }| j                              |                     ¦   «         ¦  «         |d                     ||d …         ¦  «        z  }nl| j	                             t          d	         ddœ¦  «         | j                              |                     ¦   «         ¦  «         dd                     |¦  «        z   }|r#| j        d         d         dxx         |z  cc<   d S |t          v rd}nd}| j	                             t          |         |dœ¦  «         d S )Nú&r   ú<ú#Féÿÿÿÿ)ÚxÚXTr-   zexpected-numeric-entityr.   r:   rF   znamed-entity-without-semicolonú=zexpected-named-entityr0   r
   ÚSpaceCharactersÚ
Characters)r   rG   r   r   rN   rH   r   r   rU   r1   r   r3   rJ   ÚentitiesTrieÚhas_keys_with_prefixÚlongest_prefixÚlenÚKeyErrorr   r   r$   )	r'   ÚallowedCharÚfromAttributeÚoutputrR   ÚhexÚ
entityNameÚentityLengthÚ	tokenTypes	            r*   ÚconsumeEntityzHTMLTokenizer.consumeEntity�   sX  € àˆà”[×%Ò%Ñ'Ô'Ð(ˆ	Ø�aŒL�OÐ+Ð+¨y¸¬|ÅÀSÈ#¸Ð/NÐ/NØÐ(¨[¸IÀa¼LÒ-HÐ-HØŒK×Ò˜i¨œlÑ+Ô+Ð+Ñ+à�qŒ\˜SÒ Ñ àˆCØ×Ò˜Tœ[×-Ò-Ñ/Ô/Ñ0Ô0Ð0Ø˜Œ} 
Ð*Ð*Ø�Ø× Ò  ¤×!1Ò!1Ñ!3Ô!3Ñ4Ô4Ð4ð ð 
2˜	 "œ­Ð2Ð2Øð 3Ø$-¨b¤MµVÐ$;Ð$;à”×!Ò! )¨B¤-Ñ0Ô0Ð0Ø×1Ò1°#Ñ6Ô6�‘ð ”×&Ò&µ
¸<Ô0HØ0Ið(Kð (Kñ Lô Lð Là”×!Ò! )§-¢-¡/¤/Ñ2Ô2Ð2Ø˜rŸwšw yÑ1Ô1Ñ1�‘ð ˜R”=­Ð+Ð+Ý#×8Ò8¸¿ºÀÑ9KÔ9KÑLÔLð ØØ× Ò  ¤×!1Ò!1Ñ!3Ô!3Ñ4Ô4Ð4ð ˜R”=­Ð+Ð+ð"Ý)×8Ò8¸¿ºÀÈ3ÈBÈ3ÄÑ9PÔ9PÑQÔQ�
Ý" :™œ��øÝð "ð "ð "Ø!�
�
�
ð"øøøð Ñ%Ø˜b”> SÒ(Ð(Ø”O×*Ò*µJ¸|Ô4LØ,Lð,Nð ,Nñ Oô Oð Oà˜r”N cÒ)Ð)¨mÐ)Ø˜|Ô,µÐ<Ð<Ø˜|Ô,µÐ6Ð6Ø˜|Ô,°Ò3Ð3Ø”K×%Ò% i§m¢m¡o¤oÑ6Ô6Ð6Ø  2§7¢7¨9Ñ#5Ô#5Ñ5�F�Få% jÔ1�FØ”K×%Ò% i§m¢m¡o¤oÑ6Ô6Ð6Ø˜bŸgšg i°°°Ô&>Ñ?Ô?Ñ?�F�Fà”×&Ò&µ
¸<Ô0HØ(?ð(Að (Añ Bô Bð Bà”×!Ò! )§-¢-¡/¤/Ñ2Ô2Ð2Ø˜rŸwšw yÑ1Ô1Ñ1�àð 	TØÔ˜fÔ% bÔ)¨!Ð,Ð,Ô,°Ñ6Ð,Ð,Ñ,Ð,Ð,à�Ð(Ð(Ø-�	�	à(�	ØŒO×"Ò"­J°yÔ,AÈ6Ð#RÐ#RÑSÔSÐSÐSÐSs   È!AI& É&I5É4I5c                 ó4   — |                       |d¬¦  «         dS )zIThis method replaces the need for "entityInAttributeValueState".
        T)re   rf   N)rl   )r'   re   s     r*   ÚprocessEntityInAttributez&HTMLTokenizer.processEntityInAttributeß   s#   € ð 	×Ò {À$ÐÑGÔGÐGÐGÐGr+   c                 ó–  — | j         }|d         t          v �r|d                              t          ¦  «        |d<   |d         t          d         k    rZ|d         }t          |¦  «        }t          |¦  «        t          |¦  «        k    r|                     |ddd…         ¦  «         ||d<   |d         t          d         k    r`|d         r(| j         	                    t          d         d	d
œ¦  «         |d         r(| j         	                    t          d         dd
œ¦  «         | j         	                    |¦  «         | j
        | _        dS )z®This method is a generic handler for emitting the tags. It also sets
        the state to "data" because that's what's needed after a token has been
        emitted.
        r/   ÚnameÚStartTagr0   NrZ   ÚEndTagr-   zattributes-in-end-tagr.   ÚselfClosingzself-closing-flag-on-end-tag)r$   r   Ú	translater   r   ÚattributeMaprc   Úupdater1   rH   r!   r"   )r'   ÚtokenÚrawr0   s       r*   ÚemitCurrentTokenzHTMLTokenizer.emitCurrentTokenä   sU  € ð
 Ô!ˆà�&ŒM�]Ð*Ñ*Ø! &œM×3Ò3Õ4DÑEÔEˆE�&‰MØ�VŒ}¥
¨:Ô 6Ò6Ð6Ø˜F”m�Ý# CÑ(Ô(�Ý�s‘8”8�c $™iœiÒ'Ð'à—K’K  D D b D¤	Ñ*Ô*Ð*Ø $��f‘à�VŒ}¥
¨8Ô 4Ò4Ð4Ø˜”=ð NØ”O×*Ò*µJ¸|Ô4LØ4Kð,Mð ,Mñ Nô Nð Nà˜Ô'ð UØ”O×*Ò*µJ¸|Ô4LØ4Rð,Tð ,Tñ Uô Uð UàŒ×Ò˜uÑ%Ô%Ð%Ø”^ˆŒ
ˆ
ˆ
r+   c                 óz  — | j                              ¦   «         }|dk    r| j        | _        �n|dk    r| j        | _        nú|dk    rQ| j                             t          d         ddœ¦  «         | j                             t          d         ddœ¦  «         n£|t          u rdS |t          v rJ| j                             t          d	         || j          
                    t          d
¦  «        z   dœ¦  «         nE| j          
                    d¦  «        }| j                             t          d         ||z   dœ¦  «         d
S )NrW   rX   ú r-   úinvalid-codepointr.   r_   Fr^   T©rW   rX   r{   )r   rG   ÚentityDataStater"   ÚtagOpenStater1   rH   r   r   r   Ú
charsUntil©r'   r0   Úcharss      r*   r!   zHTMLTokenizer.dataState   sl  € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØÔ-ˆDŒJ‰JØ�SŠ[ˆ[ØÔ*ˆDŒJˆJØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàŒO×"Ò"­J°|Ô,DØ,4ð$6ð $6ñ 7ô 7ð 7ð 7à•Sˆ[ˆ[à�5Ø•_Ð$Ð$ð ŒO×"Ò"­JÐ7HÔ,IØ$(¨4¬;×+AÒ+AÅ/ÐSWÑ+XÔ+XÑ$Xð$Zð $Zñ [ô [ð [ð [ð ”K×*Ò*Ð+?Ñ@Ô@ˆEØŒO×"Ò"­J°|Ô,DØ$(¨5¡Lð$2ð $2ñ 3ô 3ð 3àˆtr+   c                 óF   — |                       ¦   «          | j        | _        dS ©NT)rl   r!   r"   r5   s    r*   r~   zHTMLTokenizer.entityDataState  s"   € Ø×ÒÑÔÐØ”^ˆŒ
Øˆtr+   c                 ó~  — | j                              ¦   «         }|dk    r| j        | _        �n|dk    r| j        | _        nü|t
          k    rdS |dk    rQ| j                             t          d         ddœ¦  «         | j                             t          d         d	dœ¦  «         n˜|t          v rJ| j                             t          d
         || j          
                    t          d¦  «        z   dœ¦  «         nE| j          
                    d¦  «        }| j                             t          d         ||z   dœ¦  «         dS )NrW   rX   Fr{   r-   r|   r.   r_   r?   r^   Tr}   )r   rG   ÚcharacterReferenceInRcdatar"   ÚrcdataLessThanSignStater   r1   rH   r   r   r€   r�   s      r*   ÚrcdataStatezHTMLTokenizer.rcdataState"  sl  € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØÔ8ˆDŒJ‰JØ�SŠ[ˆ[ØÔ5ˆDŒJˆJØ•SŠ[ˆ[à�5Ø�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàŒO×"Ò"­J°|Ô,DØ,4ð$6ð $6ñ 7ô 7ð 7ð 7à•_Ð$Ð$ð ŒO×"Ò"­JÐ7HÔ,IØ$(¨4¬;×+AÒ+AÅ/ÐSWÑ+XÔ+XÑ$Xð$Zð $Zñ [ô [ð [ð [ð ”K×*Ò*Ð+?Ñ@Ô@ˆEØŒO×"Ò"­J°|Ô,DØ$(¨5¡Lð$2ð $2ñ 3ô 3ð 3àˆtr+   c                 óF   — |                       ¦   «          | j        | _        dS r„   )rl   rˆ   r"   r5   s    r*   r†   z(HTMLTokenizer.characterReferenceInRcdata?  s#   € Ø×ÒÑÔÐØÔ%ˆŒ
Øˆtr+   c                 ó°  — | j                              ¦   «         }|dk    r| j        | _        n©|dk    rQ| j                             t          d         ddœ¦  «         | j                             t          d         ddœ¦  «         nR|t          k    rdS | j                              d	¦  «        }| j                             t          d         ||z   dœ¦  «         d
S ©NrX   r{   r-   r|   r.   r_   r?   F)rX   r{   T)	r   rG   ÚrawtextLessThanSignStater"   r1   rH   r   r   r€   r�   s      r*   ÚrawtextStatezHTMLTokenizer.rawtextStateD  sõ   € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØÔ6ˆDŒJˆJØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàŒO×"Ò"­J°|Ô,DØ,4ð$6ð $6ñ 7ô 7ð 7ð 7à•SŠ[ˆ[à�5à”K×*Ò*¨?Ñ;Ô;ˆEØŒO×"Ò"­J°|Ô,DØ$(¨5¡Lð$2ð $2ñ 3ô 3ð 3àˆtr+   c                 ó°  — | j                              ¦   «         }|dk    r| j        | _        n©|dk    rQ| j                             t          d         ddœ¦  «         | j                             t          d         ddœ¦  «         nR|t          k    rdS | j                              d	¦  «        }| j                             t          d         ||z   dœ¦  «         d
S r‹   )	r   rG   ÚscriptDataLessThanSignStater"   r1   rH   r   r   r€   r�   s      r*   ÚscriptDataStatezHTMLTokenizer.scriptDataStateV  sõ   € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØÔ9ˆDŒJˆJØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàŒO×"Ò"­J°|Ô,DØ,4ð$6ð $6ñ 7ô 7ð 7ð 7à•SŠ[ˆ[à�5à”K×*Ò*¨?Ñ;Ô;ˆEØŒO×"Ò"­J°|Ô,DØ$(¨5¡Lð$2ð $2ñ 3ô 3ð 3àˆtr+   c                 ó†  — | j                              ¦   «         }|t          k    rdS |dk    rQ| j                             t
          d         ddœ¦  «         | j                             t
          d         ddœ¦  «         nC| j                             t
          d         || j                              d¦  «        z   dœ¦  «         dS )	NFr{   r-   r|   r.   r_   r?   T)r   rG   r   r1   rH   r   r€   ©r'   r0   s     r*   ÚplaintextStatezHTMLTokenizer.plaintextStateh  sã   € ØŒ{×ÒÑ!Ô!ˆØ•3Š;ˆ;à�5Ø�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàŒO×"Ò"­J°|Ô,DØ,4ð$6ð $6ñ 7ô 7ð 7ð 7ð ŒO×"Ò"­J°|Ô,DØ$(¨4¬;×+AÒ+AÀ(Ñ+KÔ+KÑ$Kð$Mð $Mñ Nô Nð Nàˆtr+   c                 óB  — | j                              ¦   «         }|dk    r| j        | _        �nq|dk    r| j        | _        �n]|t
          v r&t          d         |g dddœ| _        | j        | _        �n.|dk    r]| j	         
                    t          d         dd	œ¦  «         | j	         
                    t          d
         dd	œ¦  «         | j        | _        nË|dk    rO| j	         
                    t          d         dd	œ¦  «         | j                              |¦  «         | j        | _        nv| j	         
                    t          d         dd	œ¦  «         | j	         
                    t          d
         dd	œ¦  «         | j                              |¦  «         | j        | _        dS )Nú!ú/rq   F)r/   rp   r0   rs   ÚselfClosingAcknowledgedú>r-   z'expected-tag-name-but-got-right-bracketr.   r_   z<>ú?z'expected-tag-name-but-got-question-markzexpected-tag-namerX   T)r   rG   ÚmarkupDeclarationOpenStater"   ÚcloseTagOpenStater   r   r$   ÚtagNameStater1   rH   r!   rN   ÚbogusCommentStater’   s     r*   r   zHTMLTokenizer.tagOpenStatew  s¿  € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØÔ8ˆDŒJ‰JØ�SŠ[ˆ[ØÔ/ˆDŒJ‰JØ•\Ð!Ð!Ý)3°JÔ)?Ø)-°rØ05Ø<Að!Cð !CˆDÔð Ô*ˆDŒJ‰JØ�SŠ[ˆ[ð ŒO×"Ò"­J°|Ô,DØ$Mð$Oð $Oñ Pô Pð PàŒO×"Ò"­J°|Ô,DÈdÐ#SÐ#SÑTÔTÐTØœˆDŒJˆJØ�SŠ[ˆ[ð ŒO×"Ò"­J°|Ô,DØ$Mð$Oð $Oñ Pô Pð PàŒK×Ò˜dÑ#Ô#Ð#ØÔ/ˆDŒJˆJð ŒO×"Ò"­J°|Ô,DØ$7ð$9ð $9ñ :ô :ð :àŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSØŒK×Ò˜dÑ#Ô#Ð#ØœˆDŒJØˆtr+   c                 óv  — | j                              ¦   «         }|t          v r$t          d         |g ddœ| _        | j        | _        nò|dk    r5| j                             t          d         ddœ¦  «         | j	        | _        n·|t          u r]| j                             t          d         ddœ¦  «         | j                             t          d	         d
dœ¦  «         | j	        | _        nQ| j                             t          d         dd|idœ¦  «         | j                              |¦  «         | j        | _        dS )Nrr   F©r/   rp   r0   rs   r˜   r-   z*expected-closing-tag-but-got-right-bracketr.   z expected-closing-tag-but-got-eofr_   ú</z!expected-closing-tag-but-got-charr0   r<   T)r   rG   r   r   r$   rœ   r"   r1   rH   r!   r   rN   r�   r’   s     r*   r›   zHTMLTokenizer.closeTagOpenStateš  s`  € ØŒ{×ÒÑ!Ô!ˆØ•<ÐÐÝ)3°HÔ)=ÀtØ)+¸Eð!Cð !CˆDÔàÔ*ˆDŒJˆJØ�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$Pð$Rð $Rñ Sô Sð SàœˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$Fð$Hð $Hñ Iô Ið IàŒO×"Ò"­J°|Ô,DÈdÐ#SÐ#SÑTÔTÐTØœˆDŒJˆJð ŒO×"Ò"­J°|Ô,DØ$GØ17¸°ð$@ð $@ñ Aô Að Að ŒK×Ò˜dÑ#Ô#Ð#ØÔ/ˆDŒJØˆtr+   c                 óî  — | j                              ¦   «         }|t          v r| j        | _        nÅ|dk    r|                      ¦   «          nª|t          u r5| j                             t          d         ddœ¦  «         | j
        | _        nl|dk    r| j        | _        nY|dk    r>| j                             t          d         ddœ¦  «         | j        dxx         d	z  cc<   n| j        dxx         |z  cc<   d
S )Nr˜   r-   zeof-in-tag-namer.   r–   r{   r|   rp   r?   T)r   rG   r   ÚbeforeAttributeNameStater"   ry   r   r1   rH   r   r!   ÚselfClosingStartTagStater$   r’   s     r*   rœ   zHTMLTokenizer.tagNameState²  s'  € ØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð"ØÔ6ˆDŒJˆJØ�SŠ[ˆ[Ø×!Ò!Ñ#Ô#Ð#Ð#Ø•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$5ð$7ð $7ñ 8ô 8ð 8àœˆDŒJˆJØ�SŠ[ˆ[ØÔ6ˆDŒJˆJØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜fÐ%Ð%Ô%¨Ñ1Ð%Ð%Ñ%Ð%àÔ˜fÐ%Ð%Ô%¨Ñ-Ð%Ð%Ñ%ð ˆtr+   c                 ó  — | j                              ¦   «         }|dk    rd| _        | j        | _        nN| j                             t          d         ddœ¦  «         | j                              |¦  «         | j	        | _        dS ©Nr–   r:   r_   rX   r.   T)
r   rG   ÚtemporaryBufferÚrcdataEndTagOpenStater"   r1   rH   r   rN   rˆ   r’   s     r*   r‡   z%HTMLTokenizer.rcdataLessThanSignStateÈ  sz   € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;Ø#%ˆDÔ ØÔ3ˆDŒJˆJàŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSØŒK×Ò˜dÑ#Ô#Ð#ØÔ)ˆDŒJØˆtr+   c                 ó   — | j                              ¦   «         }|t          v r| xj        |z  c_        | j        | _        nN| j                             t          d         ddœ¦  «         | j          	                    |¦  «         | j
        | _        dS ©Nr_   r    r.   T)r   rG   r   r¦   ÚrcdataEndTagNameStater"   r1   rH   r   rN   rˆ   r’   s     r*   r§   z#HTMLTokenizer.rcdataEndTagOpenStateÓ  sˆ   € ØŒ{×ÒÑ!Ô!ˆØ•<ÐÐØÐ Ô  DÑ(Ð Ô ØÔ3ˆDŒJˆJàŒO×"Ò"­J°|Ô,DÈdÐ#SÐ#SÑTÔTÐTØŒK×Ò˜dÑ#Ô#Ð#ØÔ)ˆDŒJØˆtr+   c                 óî  — | j         o9| j         d                              ¦   «         | j                             ¦   «         k    }| j                             ¦   «         }|t
          v r+|r)t          d         | j        g ddœ| _         | j        | _        næ|dk    r+|r)t          d         | j        g ddœ| _         | j	        | _        nµ|dk    r?|r=t          d         | j        g ddœ| _         |  
                    ¦   «          | j        | _        np|t          v r| xj        |z  c_        nV| j                             t          d         d| j        z   d	œ¦  «         | j                             |¦  «         | j        | _        d
S ©Nrp   rr   FrŸ   r–   r˜   r_   r    r.   T)r$   Úlowerr¦   r   rG   r   r   r¢   r"   r£   ry   r!   r   r1   rH   rN   rˆ   ©r'   Úappropriater0   s      r*   rª   z#HTMLTokenizer.rcdataEndTagNameStateÞ  sž  € ØÔ'Ðm¨DÔ,=¸fÔ,E×,KÒ,KÑ,MÔ,MÐQUÔQe×QkÒQkÑQmÔQmÒ,mˆØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð" {Ð"Ý)3°HÔ)=Ø)-Ô)=Ø)+¸Eð!Cð !CˆDÔð Ô6ˆDŒJˆJØ�SŠ[ˆ[˜[ˆ[Ý)3°HÔ)=Ø)-Ô)=Ø)+¸Eð!Cð !CˆDÔð Ô6ˆDŒJˆJØ�SŠ[ˆ[˜[ˆ[Ý)3°HÔ)=Ø)-Ô)=Ø)+¸Eð!Cð !CˆDÔð ×!Ò!Ñ#Ô#Ð#ØœˆDŒJˆJØ•\Ð!Ð!ØÐ Ô  DÑ(Ð Ô Ð àŒO×"Ò"­J°|Ô,DØ,0°4Ô3GÑ,Gð$Ið $Iñ Jô Jð JàŒK×Ò˜dÑ#Ô#Ð#ØÔ)ˆDŒJØˆtr+   c                 ó  — | j                              ¦   «         }|dk    rd| _        | j        | _        nN| j                             t          d         ddœ¦  «         | j                              |¦  «         | j	        | _        dS r¥   )
r   rG   r¦   ÚrawtextEndTagOpenStater"   r1   rH   r   rN   r�   r’   s     r*   rŒ   z&HTMLTokenizer.rawtextLessThanSignStateú  sz   € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;Ø#%ˆDÔ ØÔ4ˆDŒJˆJàŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSØŒK×Ò˜dÑ#Ô#Ð#ØÔ*ˆDŒJØˆtr+   c                 ó   — | j                              ¦   «         }|t          v r| xj        |z  c_        | j        | _        nN| j                             t          d         ddœ¦  «         | j          	                    |¦  «         | j
        | _        dS r©   )r   rG   r   r¦   ÚrawtextEndTagNameStater"   r1   rH   r   rN   r�   r’   s     r*   r±   z$HTMLTokenizer.rawtextEndTagOpenState  sˆ   € ØŒ{×ÒÑ!Ô!ˆØ•<ÐÐØÐ Ô  DÑ(Ð Ô ØÔ4ˆDŒJˆJàŒO×"Ò"­J°|Ô,DÈdÐ#SÐ#SÑTÔTÐTØŒK×Ò˜dÑ#Ô#Ð#ØÔ*ˆDŒJØˆtr+   c                 óî  — | j         o9| j         d                              ¦   «         | j                             ¦   «         k    }| j                             ¦   «         }|t
          v r+|r)t          d         | j        g ddœ| _         | j        | _        næ|dk    r+|r)t          d         | j        g ddœ| _         | j	        | _        nµ|dk    r?|r=t          d         | j        g ddœ| _         |  
                    ¦   «          | j        | _        np|t          v r| xj        |z  c_        nV| j                             t          d         d| j        z   d	œ¦  «         | j                             |¦  «         | j        | _        d
S r¬   )r$   r­   r¦   r   rG   r   r   r¢   r"   r£   ry   r!   r   r1   rH   rN   r�   r®   s      r*   r³   z$HTMLTokenizer.rawtextEndTagNameState  sž  € ØÔ'Ðm¨DÔ,=¸fÔ,E×,KÒ,KÑ,MÔ,MÐQUÔQe×QkÒQkÑQmÔQmÒ,mˆØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð" {Ð"Ý)3°HÔ)=Ø)-Ô)=Ø)+¸Eð!Cð !CˆDÔð Ô6ˆDŒJˆJØ�SŠ[ˆ[˜[ˆ[Ý)3°HÔ)=Ø)-Ô)=Ø)+¸Eð!Cð !CˆDÔð Ô6ˆDŒJˆJØ�SŠ[ˆ[˜[ˆ[Ý)3°HÔ)=Ø)-Ô)=Ø)+¸Eð!Cð !CˆDÔð ×!Ò!Ñ#Ô#Ð#ØœˆDŒJˆJØ•\Ð!Ð!ØÐ Ô  DÑ(Ð Ô Ð àŒO×"Ò"­J°|Ô,DØ,0°4Ô3GÑ,Gð$Ið $Iñ Jô Jð JàŒK×Ò˜dÑ#Ô#Ð#ØÔ*ˆDŒJØˆtr+   c                 ó~  — | j                              ¦   «         }|dk    rd| _        | j        | _        n‰|dk    r5| j                             t          d         ddœ¦  «         | j        | _        nN| j                             t          d         ddœ¦  «         | j          	                    |¦  «         | j
        | _        dS )	Nr–   r:   r•   r_   z<!r.   rX   T)r   rG   r¦   ÚscriptDataEndTagOpenStater"   r1   rH   r   ÚscriptDataEscapeStartStaterN   r�   r’   s     r*   r�   z)HTMLTokenizer.scriptDataLessThanSignState,  s²   € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;Ø#%ˆDÔ ØÔ7ˆDŒJˆJØ�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DÈdÐ#SÐ#SÑTÔTÐTØÔ8ˆDŒJˆJàŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSØŒK×Ò˜dÑ#Ô#Ð#ØÔ-ˆDŒJØˆtr+   c                 ó   — | j                              ¦   «         }|t          v r| xj        |z  c_        | j        | _        nN| j                             t          d         ddœ¦  «         | j          	                    |¦  «         | j
        | _        dS r©   )r   rG   r   r¦   ÚscriptDataEndTagNameStater"   r1   rH   r   rN   r�   r’   s     r*   r¶   z'HTMLTokenizer.scriptDataEndTagOpenState:  sˆ   € ØŒ{×ÒÑ!Ô!ˆØ•<ÐÐØÐ Ô  DÑ(Ð Ô ØÔ7ˆDŒJˆJàŒO×"Ò"­J°|Ô,DÈdÐ#SÐ#SÑTÔTÐTØŒK×Ò˜dÑ#Ô#Ð#ØÔ-ˆDŒJØˆtr+   c                 óî  — | j         o9| j         d                              ¦   «         | j                             ¦   «         k    }| j                             ¦   «         }|t
          v r+|r)t          d         | j        g ddœ| _         | j        | _        næ|dk    r+|r)t          d         | j        g ddœ| _         | j	        | _        nµ|dk    r?|r=t          d         | j        g ddœ| _         |  
                    ¦   «          | j        | _        np|t          v r| xj        |z  c_        nV| j                             t          d         d| j        z   d	œ¦  «         | j                             |¦  «         | j        | _        d
S r¬   )r$   r­   r¦   r   rG   r   r   r¢   r"   r£   ry   r!   r   r1   rH   rN   r�   r®   s      r*   r¹   z'HTMLTokenizer.scriptDataEndTagNameStateE  sž  € ØÔ'Ðm¨DÔ,=¸fÔ,E×,KÒ,KÑ,MÔ,MÐQUÔQe×QkÒQkÑQmÔQmÒ,mˆØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð" {Ð"Ý)3°HÔ)=Ø)-Ô)=Ø)+¸Eð!Cð !CˆDÔð Ô6ˆDŒJˆJØ�SŠ[ˆ[˜[ˆ[Ý)3°HÔ)=Ø)-Ô)=Ø)+¸Eð!Cð !CˆDÔð Ô6ˆDŒJˆJØ�SŠ[ˆ[˜[ˆ[Ý)3°HÔ)=Ø)-Ô)=Ø)+¸Eð!Cð !CˆDÔð ×!Ò!Ñ#Ô#Ð#ØœˆDŒJˆJØ•\Ð!Ð!ØÐ Ô  DÑ(Ð Ô Ð àŒO×"Ò"­J°|Ô,DØ,0°4Ô3GÑ,Gð$Ið $Iñ Jô Jð JàŒK×Ò˜dÑ#Ô#Ð#ØÔ-ˆDŒJØˆtr+   c                 óú   — | j                              ¦   «         }|dk    r5| j                             t          d         ddœ¦  «         | j        | _        n&| j                              |¦  «         | j        | _        dS ©Nú-r_   r.   T)	r   rG   r1   rH   r   ÚscriptDataEscapeStartDashStater"   rN   r�   r’   s     r*   r·   z(HTMLTokenizer.scriptDataEscapeStartStatea  ór   € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSØÔ<ˆDŒJˆJàŒK×Ò˜dÑ#Ô#Ð#ØÔ-ˆDŒJØˆtr+   c                 óú   — | j                              ¦   «         }|dk    r5| j                             t          d         ddœ¦  «         | j        | _        n&| j                              |¦  «         | j        | _        dS r¼   )	r   rG   r1   rH   r   ÚscriptDataEscapedDashDashStater"   rN   r�   r’   s     r*   r¾   z,HTMLTokenizer.scriptDataEscapeStartDashStatek  r¿   r+   c                 ó<  — | j                              ¦   «         }|dk    r5| j                             t          d         ddœ¦  «         | j        | _        nÇ|dk    r| j        | _        n´|dk    rQ| j                             t          d         ddœ¦  «         | j                             t          d         ddœ¦  «         n]|t          k    r| j	        | _        nE| j          
                    d	¦  «        }| j                             t          d         ||z   dœ¦  «         d
S )Nr½   r_   r.   rX   r{   r-   r|   r?   )rX   r½   r{   T)r   rG   r1   rH   r   ÚscriptDataEscapedDashStater"   Ú"scriptDataEscapedLessThanSignStater   r!   r€   r�   s      r*   ÚscriptDataEscapedStatez$HTMLTokenizer.scriptDataEscapedStateu  s4  € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSØÔ8ˆDŒJˆJØ�SŠ[ˆ[ØÔ@ˆDŒJˆJØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàŒO×"Ò"­J°|Ô,DØ,4ð$6ð $6ñ 7ô 7ð 7ð 7à•SŠ[ˆ[ØœˆDŒJˆJà”K×*Ò*Ð+?Ñ@Ô@ˆEØŒO×"Ò"­J°|Ô,DØ$(¨5¡Lð$2ð $2ñ 3ô 3ð 3àˆtr+   c                 ó2  — | j                              ¦   «         }|dk    r5| j                             t          d         ddœ¦  «         | j        | _        nÂ|dk    r| j        | _        n¯|dk    r]| j                             t          d         ddœ¦  «         | j                             t          d         ddœ¦  «         | j        | _        nL|t          k    r| j
        | _        n4| j                             t          d         |dœ¦  «         | j        | _        d	S )
Nr½   r_   r.   rX   r{   r-   r|   r?   T)r   rG   r1   rH   r   rÁ   r"   rÄ   rÅ   r   r!   r’   s     r*   rÃ   z(HTMLTokenizer.scriptDataEscapedDashState‰  s   € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSØÔ<ˆDŒJˆJØ�SŠ[ˆ[ØÔ@ˆDŒJˆJØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàŒO×"Ò"­J°|Ô,DØ,4ð$6ð $6ñ 7ô 7ð 7àÔ4ˆDŒJˆJØ•SŠ[ˆ[ØœˆDŒJˆJàŒO×"Ò"­J°|Ô,DÈdÐ#SÐ#SÑTÔTÐTØÔ4ˆDŒJØˆtr+   c                 ó�  — | j                              ¦   «         }|dk    r)| j                             t          d         ddœ¦  «         ný|dk    r| j        | _        nê|dk    r5| j                             t          d         ddœ¦  «         | j        | _        n¯|dk    r]| j                             t          d         ddœ¦  «         | j                             t          d         d	dœ¦  «         | j        | _        nL|t          k    r| j
        | _        n4| j                             t          d         |dœ¦  «         | j        | _        d
S )Nr½   r_   r.   rX   r˜   r{   r-   r|   r?   T)r   rG   r1   rH   r   rÄ   r"   r�   rÅ   r   r!   r’   s     r*   rÁ   z,HTMLTokenizer.scriptDataEscapedDashDashState�  sO  € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSÐSØ�SŠ[ˆ[ØÔ@ˆDŒJˆJØ�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSØÔ-ˆDŒJˆJØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàŒO×"Ò"­J°|Ô,DØ,4ð$6ð $6ñ 7ô 7ð 7àÔ4ˆDŒJˆJØ•SŠ[ˆ[ØœˆDŒJˆJàŒO×"Ò"­J°|Ô,DÈdÐ#SÐ#SÑTÔTÐTØÔ4ˆDŒJØˆtr+   c                 ó˜  — | j                              ¦   «         }|dk    rd| _        | j        | _        n–|t
          v r?| j                             t          d         d|z   dœ¦  «         || _        | j	        | _        nN| j                             t          d         ddœ¦  «         | j          
                    |¦  «         | j        | _        dS r¥   )r   rG   r¦   Ú scriptDataEscapedEndTagOpenStater"   r   r1   rH   r   Ú scriptDataDoubleEscapeStartStaterN   rÅ   r’   s     r*   rÄ   z0HTMLTokenizer.scriptDataEscapedLessThanSignState³  sÁ   € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;Ø#%ˆDÔ ØÔ>ˆDŒJˆJØ•\Ð!Ð!ØŒO×"Ò"­J°|Ô,DÈcÐTXÉjÐ#YÐ#YÑZÔZÐZØ#'ˆDÔ ØÔ>ˆDŒJˆJàŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSØŒK×Ò˜dÑ#Ô#Ð#ØÔ4ˆDŒJØˆtr+   c                 ó  — | j                              ¦   «         }|t          v r|| _        | j        | _        nN| j                             t          d         ddœ¦  «         | j          	                    |¦  «         | j
        | _        dS r©   )r   rG   r   r¦   Ú scriptDataEscapedEndTagNameStater"   r1   rH   r   rN   rÅ   r’   s     r*   rÉ   z.HTMLTokenizer.scriptDataEscapedEndTagOpenStateÂ  s|   € ØŒ{×ÒÑ!Ô!ˆØ•<ÐÐØ#'ˆDÔ ØÔ>ˆDŒJˆJàŒO×"Ò"­J°|Ô,DÈdÐ#SÐ#SÑTÔTÐTØŒK×Ò˜dÑ#Ô#Ð#ØÔ4ˆDŒJØˆtr+   c                 óî  — | j         o9| j         d                              ¦   «         | j                             ¦   «         k    }| j                             ¦   «         }|t
          v r+|r)t          d         | j        g ddœ| _         | j        | _        næ|dk    r+|r)t          d         | j        g ddœ| _         | j	        | _        nµ|dk    r?|r=t          d         | j        g ddœ| _         |  
                    ¦   «          | j        | _        np|t          v r| xj        |z  c_        nV| j                             t          d         d| j        z   d	œ¦  «         | j                             |¦  «         | j        | _        d
S r¬   )r$   r­   r¦   r   rG   r   r   r¢   r"   r£   ry   r!   r   r1   rH   rN   rÅ   r®   s      r*   rÌ   z.HTMLTokenizer.scriptDataEscapedEndTagNameStateÍ  sž  € ØÔ'Ðm¨DÔ,=¸fÔ,E×,KÒ,KÑ,MÔ,MÐQUÔQe×QkÒQkÑQmÔQmÒ,mˆØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð" {Ð"Ý)3°HÔ)=Ø)-Ô)=Ø)+¸Eð!Cð !CˆDÔð Ô6ˆDŒJˆJØ�SŠ[ˆ[˜[ˆ[Ý)3°HÔ)=Ø)-Ô)=Ø)+¸Eð!Cð !CˆDÔð Ô6ˆDŒJˆJØ�SŠ[ˆ[˜[ˆ[Ý)3°HÔ)=Ø)-Ô)=Ø)+¸Eð!Cð !CˆDÔð ×!Ò!Ñ#Ô#Ð#ØœˆDŒJˆJØ•\Ð!Ð!ØÐ Ô  DÑ(Ð Ô Ð àŒO×"Ò"­J°|Ô,DØ,0°4Ô3GÑ,Gð$Ið $Iñ Jô Jð JàŒK×Ò˜dÑ#Ô#Ð#ØÔ4ˆDŒJØˆtr+   c                 óø  — | j                              ¦   «         }|t          t          d¦  «        z  v r_| j                             t          d         |dœ¦  «         | j                             ¦   «         dk    r| j	        | _
        nu| j        | _
        nh|t          v r9| j                             t          d         |dœ¦  «         | xj        |z  c_        n&| j                              |¦  «         | j        | _
        dS ©N)r–   r˜   r_   r.   ÚscriptT)r   rG   r   rK   r1   rH   r   r¦   r­   ÚscriptDataDoubleEscapedStater"   rÅ   r   rN   r’   s     r*   rÊ   z.HTMLTokenizer.scriptDataDoubleEscapeStartStateé  sì   € ØŒ{×ÒÑ!Ô!ˆØ•O¥i°
Ñ&;Ô&;Ñ;Ð<Ð<ØŒO×"Ò"­J°|Ô,DÈdÐ#SÐ#SÑTÔTÐTØÔ#×)Ò)Ñ+Ô+¨xÒ7Ð7Ø!Ô>�”
�
à!Ô8�”
�
Ø•\Ð!Ð!ØŒO×"Ò"­J°|Ô,DÈdÐ#SÐ#SÑTÔTÐTØÐ Ô  DÑ(Ð Ô Ð àŒK×Ò˜dÑ#Ô#Ð#ØÔ4ˆDŒJØˆtr+   c                 ó¢  — | j                              ¦   «         }|dk    r5| j                             t          d         ddœ¦  «         | j        | _        nú|dk    r5| j                             t          d         ddœ¦  «         | j        | _        n¿|dk    rQ| j                             t          d         ddœ¦  «         | j                             t          d         ddœ¦  «         nh|t          k    r5| j                             t          d         d	dœ¦  «         | j	        | _        n(| j                             t          d         |dœ¦  «         d
S ©Nr½   r_   r.   rX   r{   r-   r|   r?   úeof-in-script-in-scriptT)
r   rG   r1   rH   r   Ú scriptDataDoubleEscapedDashStater"   Ú(scriptDataDoubleEscapedLessThanSignStater   r!   r’   s     r*   rÑ   z*HTMLTokenizer.scriptDataDoubleEscapedStateù  sc  € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSØÔ>ˆDŒJˆJØ�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSØÔFˆDŒJˆJØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàŒO×"Ò"­J°|Ô,DØ,4ð$6ð $6ñ 7ô 7ð 7ð 7à•SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$=ð$?ð $?ñ @ô @ð @àœˆDŒJˆJàŒO×"Ò"­J°|Ô,DÈdÐ#SÐ#SÑTÔTÐTØˆtr+   c                 óÔ  — | j                              ¦   «         }|dk    r6| j                             t          d         ddœ¦  «         | j        | _        �n|dk    r5| j                             t          d         ddœ¦  «         | j        | _        n×|dk    r]| j                             t          d         ddœ¦  «         | j                             t          d         ddœ¦  «         | j        | _        nt|t          k    r5| j                             t          d         d	dœ¦  «         | j
        | _        n4| j                             t          d         |dœ¦  «         | j        | _        d
S rÓ   )r   rG   r1   rH   r   Ú$scriptDataDoubleEscapedDashDashStater"   rÖ   rÑ   r   r!   r’   s     r*   rÕ   z.HTMLTokenizer.scriptDataDoubleEscapedDashState  st  € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSØÔBˆDŒJ‰JØ�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSØÔFˆDŒJˆJØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàŒO×"Ò"­J°|Ô,DØ,4ð$6ð $6ñ 7ô 7ð 7àÔ:ˆDŒJˆJØ•SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$=ð$?ð $?ñ @ô @ð @àœˆDŒJˆJàŒO×"Ò"­J°|Ô,DÈdÐ#SÐ#SÑTÔTÐTØÔ:ˆDŒJØˆtr+   c                 ó4  — | j                              ¦   «         }|dk    r*| j                             t          d         ddœ¦  «         �nN|dk    r6| j                             t          d         ddœ¦  «         | j        | _        �n|dk    r5| j                             t          d         ddœ¦  «         | j        | _        n×|dk    r]| j                             t          d         ddœ¦  «         | j                             t          d         d	dœ¦  «         | j        | _        nt|t          k    r5| j                             t          d         d
dœ¦  «         | j
        | _        n4| j                             t          d         |dœ¦  «         | j        | _        dS )Nr½   r_   r.   rX   r˜   r{   r-   r|   r?   rÔ   T)r   rG   r1   rH   r   rÖ   r"   r�   rÑ   r   r!   r’   s     r*   rØ   z2HTMLTokenizer.scriptDataDoubleEscapedDashDashState%  s£  € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSÑSØ�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSØÔFˆDŒJ‰JØ�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSØÔ-ˆDŒJˆJØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàŒO×"Ò"­J°|Ô,DØ,4ð$6ð $6ñ 7ô 7ð 7àÔ:ˆDŒJˆJØ•SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$=ð$?ð $?ñ @ô @ð @àœˆDŒJˆJàŒO×"Ò"­J°|Ô,DÈdÐ#SÐ#SÑTÔTÐTØÔ:ˆDŒJØˆtr+   c                 ó  — | j                              ¦   «         }|dk    r<| j                             t          d         ddœ¦  «         d| _        | j        | _        n&| j                              |¦  «         | j	        | _        dS )Nr–   r_   r.   r:   T)
r   rG   r1   rH   r   r¦   ÚscriptDataDoubleEscapeEndStater"   rN   rÑ   r’   s     r*   rÖ   z6HTMLTokenizer.scriptDataDoubleEscapedLessThanSignState>  sz   € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØŒO×"Ò"­J°|Ô,DÈcÐ#RÐ#RÑSÔSÐSØ#%ˆDÔ ØÔ<ˆDŒJˆJàŒK×Ò˜dÑ#Ô#Ð#ØÔ:ˆDŒJØˆtr+   c                 óø  — | j                              ¦   «         }|t          t          d¦  «        z  v r_| j                             t          d         |dœ¦  «         | j                             ¦   «         dk    r| j	        | _
        nu| j        | _
        nh|t          v r9| j                             t          d         |dœ¦  «         | xj        |z  c_        n&| j                              |¦  «         | j        | _
        dS rÏ   )r   rG   r   rK   r1   rH   r   r¦   r­   rÅ   r"   rÑ   r   rN   r’   s     r*   rÛ   z,HTMLTokenizer.scriptDataDoubleEscapeEndStateI  sì   € ØŒ{×ÒÑ!Ô!ˆØ•O¥i°
Ñ&;Ô&;Ñ;Ð<Ð<ØŒO×"Ò"­J°|Ô,DÈdÐ#SÐ#SÑTÔTÐTØÔ#×)Ò)Ñ+Ô+¨xÒ7Ð7Ø!Ô8�”
�
à!Ô>�”
�
Ø•\Ð!Ð!ØŒO×"Ò"­J°|Ô,DÈdÐ#SÐ#SÑTÔTÐTØÐ Ô  DÑ(Ð Ô Ð àŒK×Ò˜dÑ#Ô#Ð#ØÔ:ˆDŒJØˆtr+   c                 ó¨  — | j                              ¦   «         }|t          v r"| j                              t          d¦  «         �n�|t          v r0| j        d                              |dg¦  «         | j        | _        �nT|dk    r|  	                    ¦   «          �n8|dk    r| j
        | _        �n$|dv rW| j                             t          d         dd	œ¦  «         | j        d                              |dg¦  «         | j        | _        nÉ|d
k    rW| j                             t          d         dd	œ¦  «         | j        d                              ddg¦  «         | j        | _        nl|t          u r5| j                             t          d         dd	œ¦  «         | j        | _        n.| j        d                              |dg¦  «         | j        | _        dS )NTr0   r:   r˜   r–   )ú'ú"r]   rX   r-   ú#invalid-character-in-attribute-namer.   r{   r|   r?   z#expected-attribute-name-but-got-eof)r   rG   r   r€   r   r$   rH   ÚattributeNameStater"   ry   r£   r1   r   r   r!   r’   s     r*   r¢   z&HTMLTokenizer.beforeAttributeNameStateY  sð  € ØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð"ØŒK×"Ò"¥?°DÑ9Ô9Ð9Ñ9Ø•\Ð!Ð!ØÔ˜fÔ%×,Ò,¨d°B¨ZÑ8Ô8Ð8ØÔ0ˆDŒJ‰JØ�SŠ[ˆ[Ø×!Ò!Ñ#Ô#Ð#Ñ#Ø�SŠ[ˆ[ØÔ6ˆDŒJ‰JØÐ)Ð)Ð)ØŒO×"Ò"­J°|Ô,DØ$Ið$Kð $Kñ Lô Lð LàÔ˜fÔ%×,Ò,¨d°B¨ZÑ8Ô8Ð8ØÔ0ˆDŒJˆJØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜fÔ%×,Ò,¨h¸¨^Ñ<Ô<Ð<ØÔ0ˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$Ið$Kð $Kñ Lô Lð LàœˆDŒJˆJàÔ˜fÔ%×,Ò,¨d°B¨ZÑ8Ô8Ð8ØÔ0ˆDŒJØˆtr+   c                 óô  — | j                              ¦   «         }d}d}|dk    r| j        | _        �n‡|t          v rF| j        d         d         dxx         || j                              t          d¦  «        z   z  cc<   d}�n8|dk    rd}�n.|t          v r| j        | _        �n|dk    r| j	        | _        �n|d	k    rL| j
                             t          d
         ddœ¦  «         | j        d         d         dxx         dz  cc<   d}n±|dv rL| j
                             t          d
         ddœ¦  «         | j        d         d         dxx         |z  cc<   d}na|t          u r5| j
                             t          d
         ddœ¦  «         | j        | _        n#| j        d         d         dxx         |z  cc<   d}|r½| j        d         d         d                              t           ¦  «        | j        d         d         d<   | j        d         d d…         D ]L\  }}| j        d         d         d         |k    r*| j
                             t          d
         ddœ¦  «          nŒM|r|                      ¦   «          dS )NTFr]   r0   rZ   r   r˜   r–   r{   r-   r|   r.   r?   ©rÞ   rß   rX   rà   zeof-in-attribute-namezduplicate-attribute)r   rG   ÚbeforeAttributeValueStater"   r   r$   r€   r   ÚafterAttributeNameStater£   r1   rH   r   r   r!   rt   r   ry   )r'   r0   ÚleavingThisStateÚ	emitTokenrp   Ú_s         r*   rá   z HTMLTokenizer.attributeNameStatew  s  € ØŒ{×ÒÑ!Ô!ˆØÐØˆ	Ø�3Š;ˆ;ØÔ7ˆDŒJ‰JØ•\Ð!Ð!ØÔ˜fÔ% bÔ)¨!Ð,Ð,Ô,°Ø”×&Ò&¥|°TÑ:Ô:ñ1;ñ ;Ð,Ð,Ñ,à$ÐÑØ�SŠ[ˆ[ð ˆI‰IØ•_Ð$Ð$ØÔ5ˆDŒJ‰JØ�SŠ[ˆ[ØÔ6ˆDŒJ‰JØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜fÔ% bÔ)¨!Ð,Ð,Ô,°Ñ8Ð,Ð,Ñ,Ø$ÐÐØ�_Ð$Ð$ØŒO×"Ò"­J°|Ô,Dà$Ið$Kð $Kñ Lô Lð Lð Ô˜fÔ% bÔ)¨!Ð,Ð,Ô,°Ñ4Ð,Ð,Ñ,Ø$ÐÐØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ,Cð$Eð $Eñ Fô Fð FàœˆDŒJˆJàÔ˜fÔ% bÔ)¨!Ð,Ð,Ô,°Ñ4Ð,Ð,Ñ,Ø$Ðàð 	(ð
 Ô! &Ô)¨"Ô-¨aÔ0×:Ò:Õ;KÑLÔLð Ô˜fÔ% bÔ)¨!Ñ,àÔ,¨VÔ4°S°b°SÔ9ð ð ‘��aØÔ$ VÔ,¨RÔ0°Ô3°tÒ;Ð;Ø”O×*Ò*µJ¸|Ô4LØ,Að,Cð ,Cñ Dô Dð Dà�Eð <ð
 ð (Ø×%Ò%Ñ'Ô'Ð'Øˆtr+   c                 óÐ  — | j                              ¦   «         }|t          v r"| j                              t          d¦  «         �n¡|dk    r| j        | _        �n�|dk    r|                      ¦   «          �nq|t          v r0| j        d          	                    |dg¦  «         | j
        | _        �n8|dk    r| j        | _        �n$|dk    rW| j         	                    t          d         d	d
œ¦  «         | j        d          	                    ddg¦  «         | j
        | _        nÇ|dv rW| j         	                    t          d         dd
œ¦  «         | j        d          	                    |dg¦  «         | j
        | _        nl|t          u r5| j         	                    t          d         dd
œ¦  «         | j        | _        n.| j        d          	                    |dg¦  «         | j
        | _        dS )NTr]   r˜   r0   r:   r–   r{   r-   r|   r.   r?   rã   z&invalid-character-after-attribute-namezexpected-end-of-tag-but-got-eof)r   rG   r   r€   rä   r"   ry   r   r$   rH   rá   r£   r1   r   r   r!   r’   s     r*   rå   z%HTMLTokenizer.afterAttributeNameState­  s  € ØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð"ØŒK×"Ò"¥?°DÑ9Ô9Ð9Ñ9Ø�SŠ[ˆ[ØÔ7ˆDŒJ‰JØ�SŠ[ˆ[Ø×!Ò!Ñ#Ô#Ð#Ñ#Ø•\Ð!Ð!ØÔ˜fÔ%×,Ò,¨d°B¨ZÑ8Ô8Ð8ØÔ0ˆDŒJ‰JØ�SŠ[ˆ[ØÔ6ˆDŒJ‰JØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜fÔ%×,Ò,¨h¸¨^Ñ<Ô<Ð<ØÔ0ˆDŒJˆJØ�_Ð$Ð$ØŒO×"Ò"­J°|Ô,DØ$Lð$Nð $Nñ Oô Oð OàÔ˜fÔ%×,Ò,¨d°B¨ZÑ8Ô8Ð8ØÔ0ˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$Eð$Gð $Gñ Hô Hð HàœˆDŒJˆJàÔ˜fÔ%×,Ò,¨d°B¨ZÑ8Ô8Ð8ØÔ0ˆDŒJØˆtr+   c                 ó  — | j                              ¦   «         }|t          v r"| j                              t          d¦  «         �n»|dk    r| j        | _        �n§|dk    r(| j        | _        | j                              |¦  «         �ny|dk    r| j        | _        �ne|dk    r>| j	         
                    t          d         ddœ¦  «         |                      ¦   «          �n!|d	k    rV| j	         
                    t          d         d
dœ¦  «         | j        d         d         dxx         dz  cc<   | j        | _        nÅ|dv rV| j	         
                    t          d         ddœ¦  «         | j        d         d         dxx         |z  cc<   | j        | _        nk|t          u r5| j	         
                    t          d         ddœ¦  «         | j        | _        n-| j        d         d         dxx         |z  cc<   | j        | _        dS )NTrß   rW   rÞ   r˜   r-   z.expected-attribute-value-but-got-right-bracketr.   r{   r|   r0   rZ   r
   r?   )r]   rX   ú`z"equals-in-unquoted-attribute-valuez$expected-attribute-value-but-got-eof)r   rG   r   r€   ÚattributeValueDoubleQuotedStater"   ÚattributeValueUnQuotedStaterN   ÚattributeValueSingleQuotedStater1   rH   r   ry   r$   r   r!   r’   s     r*   rä   z'HTMLTokenizer.beforeAttributeValueStateÍ  sG  € ØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð"ØŒK×"Ò"¥?°DÑ9Ô9Ð9Ñ9Ø�TŠ\ˆ\ØÔ=ˆDŒJ‰JØ�SŠ[ˆ[ØÔ9ˆDŒJØŒK×Ò˜dÑ#Ô#Ð#Ñ#Ø�SŠ[ˆ[ØÔ=ˆDŒJ‰JØ�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$Tð$Vð $Vñ Wô Wð Wà×!Ò!Ñ#Ô#Ð#Ñ#Ø�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜fÔ% bÔ)¨!Ð,Ð,Ô,°Ñ8Ð,Ð,Ñ,ØÔ9ˆDŒJˆJØ�_Ð$Ð$ØŒO×"Ò"­J°|Ô,DØ$Hð$Jð $Jñ Kô Kð KàÔ˜fÔ% bÔ)¨!Ð,Ð,Ô,°Ñ4Ð,Ð,Ñ,ØÔ9ˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$Jð$Lð $Lñ Mô Mð MàœˆDŒJˆJàÔ˜fÔ% bÔ)¨!Ð,Ð,Ô,°Ñ4Ð,Ð,Ñ,ØÔ9ˆDŒJØˆtr+   c                 ó*  — | j                              ¦   «         }|dk    r| j        | _        næ|dk    r|                      d¦  «         nÊ|dk    rJ| j                             t          d         ddœ¦  «         | j        d         d         d	xx         d
z  cc<   nz|t          u r5| j                             t          d         ddœ¦  «         | j
        | _        n<| j        d         d         d	xx         || j                              d¦  «        z   z  cc<   dS )Nrß   rW   r{   r-   r|   r.   r0   rZ   r
   r?   z#eof-in-attribute-value-double-quote)rß   rW   r{   T©r   rG   ÚafterAttributeValueStater"   rn   r1   rH   r   r$   r   r!   r€   r’   s     r*   rì   z-HTMLTokenizer.attributeValueDoubleQuotedStateï  sD  € ØŒ{×ÒÑ!Ô!ˆØ�4Š<ˆ<ØÔ6ˆDŒJˆJØ�SŠ[ˆ[Ø×)Ò)¨#Ñ.Ô.Ð.Ð.Ø�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜fÔ% bÔ)¨!Ð,Ð,Ô,°Ñ8Ð,Ð,Ñ,Ð,Ø•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$Ið$Kð $Kñ Lô Lð LàœˆDŒJˆJàÔ˜fÔ% bÔ)¨!Ð,Ð,Ô,°Ø”×&Ò&Ð'<Ñ=Ô=ñ1>ñ >Ð,Ð,Ñ,àˆtr+   c                 ó*  — | j                              ¦   «         }|dk    r| j        | _        næ|dk    r|                      d¦  «         nÊ|dk    rJ| j                             t          d         ddœ¦  «         | j        d         d         d	xx         d
z  cc<   nz|t          u r5| j                             t          d         ddœ¦  «         | j
        | _        n<| j        d         d         d	xx         || j                              d¦  «        z   z  cc<   dS )NrÞ   rW   r{   r-   r|   r.   r0   rZ   r
   r?   z#eof-in-attribute-value-single-quote)rÞ   rW   r{   Trð   r’   s     r*   rî   z-HTMLTokenizer.attributeValueSingleQuotedState  sD  € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØÔ6ˆDŒJˆJØ�SŠ[ˆ[Ø×)Ò)¨#Ñ.Ô.Ð.Ð.Ø�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜fÔ% bÔ)¨!Ð,Ð,Ô,°Ñ8Ð,Ð,Ñ,Ð,Ø•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$Ið$Kð $Kñ Lô Lð LàœˆDŒJˆJàÔ˜fÔ% bÔ)¨!Ð,Ð,Ô,°Ø”×&Ò&Ð';Ñ<Ô<ñ1=ñ =Ð,Ð,Ñ,àˆtr+   c           	      ó2  — | j                              ¦   «         }|t          v r| j        | _        �nf|dk    r|                      d¦  «         �nI|dk    r|                      ¦   «          �n-|dv rJ| j                             t          d         ddœ¦  «         | j
        d         d         d	xx         |z  cc<   nß|d
k    rJ| j                             t          d         ddœ¦  «         | j
        d         d         d	xx         dz  cc<   n�|t          u r5| j                             t          d         ddœ¦  «         | j        | _        nQ| j
        d         d         d	xx         || j                              t          d¦  «        t          z  ¦  «        z   z  cc<   dS )NrW   r˜   )rß   rÞ   r]   rX   rë   r-   z0unexpected-character-in-unquoted-attribute-valuer.   r0   rZ   r
   r{   r|   r?   z eof-in-attribute-value-no-quotes)rW   r˜   rß   rÞ   r]   rX   rë   r{   T)r   rG   r   r¢   r"   rn   ry   r1   rH   r   r$   r   r!   r€   rK   r’   s     r*   rí   z)HTMLTokenizer.attributeValueUnQuotedState  sä  € ØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð"ØÔ6ˆDŒJ‰JØ�SŠ[ˆ[Ø×)Ò)¨#Ñ.Ô.Ð.Ñ.Ø�SŠ[ˆ[Ø×!Ò!Ñ#Ô#Ð#Ñ#ØÐ.Ð.Ð.ØŒO×"Ò"­J°|Ô,DØ$Vð$Xð $Xñ Yô Yð YàÔ˜fÔ% bÔ)¨!Ð,Ð,Ô,°Ñ4Ð,Ð,Ñ,Ð,Ø�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜fÔ% bÔ)¨!Ð,Ð,Ô,°Ñ8Ð,Ð,Ñ,Ð,Ø•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$Fð$Hð $Hñ Iô Ið IàœˆDŒJˆJàÔ˜fÔ% bÔ)¨!Ð,Ð,Ô,°°t´{×7MÒ7MÝÐGÑHÔHÍ?ÑZñ8\ô 8\ñ 1\ñ \Ð,Ð,Ñ,àˆtr+   c                 ó  — | j                              ¦   «         }|t          v r| j        | _        nÔ|dk    r|                      ¦   «          n¹|dk    r| j        | _        n¦|t          u rO| j         	                    t          d         ddœ¦  «         | j                              |¦  «         | j        | _        nN| j         	                    t          d         ddœ¦  «         | j                              |¦  «         | j        | _        dS )Nr˜   r–   r-   z$unexpected-EOF-after-attribute-valuer.   z*unexpected-character-after-attribute-valueT)r   rG   r   r¢   r"   ry   r£   r   r1   rH   r   rN   r!   r’   s     r*   rñ   z&HTMLTokenizer.afterAttributeValueState.  s  € ØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð"ØÔ6ˆDŒJˆJØ�SŠ[ˆ[Ø×!Ò!Ñ#Ô#Ð#Ð#Ø�SŠ[ˆ[ØÔ6ˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$Jð$Lð $Lñ Mô Mð MàŒK×Ò˜dÑ#Ô#Ð#ØœˆDŒJˆJàŒO×"Ò"­J°|Ô,DØ$Pð$Rð $Rñ Sô Sð SàŒK×Ò˜dÑ#Ô#Ð#ØÔ6ˆDŒJØˆtr+   c                 óÎ  — | j                              ¦   «         }|dk    rd| j        d<   |                      ¦   «          n¦|t          u rO| j                             t          d         ddœ¦  «         | j                              |¦  «         | j	        | _
        nN| j                             t          d         ddœ¦  «         | j                              |¦  «         | j        | _
        dS )Nr˜   Trs   r-   z#unexpected-EOF-after-solidus-in-tagr.   z)unexpected-character-after-solidus-in-tag)r   rG   r$   ry   r   r1   rH   r   rN   r!   r"   r¢   r’   s     r*   r£   z&HTMLTokenizer.selfClosingStartTagStateB  s÷   € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;Ø/3ˆDÔ˜mÑ,Ø×!Ò!Ñ#Ô#Ð#Ð#Ø•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,Dà$Ið$Kð $Kñ Lô Lð Lð ŒK×Ò˜dÑ#Ô#Ð#ØœˆDŒJˆJàŒO×"Ò"­J°|Ô,DØ$Oð$Qð $Qñ Rô Rð RàŒK×Ò˜dÑ#Ô#Ð#ØÔ6ˆDŒJØˆtr+   c                 ó   — | j                              d¦  «        }|                     dd¦  «        }| j                             t
          d         |dœ¦  «         | j                              ¦   «          | j        | _        dS )Nr˜   r{   r?   ÚCommentr.   T)	r   r€   Úreplacer1   rH   r   rG   r!   r"   r’   s     r*   r�   zHTMLTokenizer.bogusCommentStateT  sz   € ð Œ{×%Ò% cÑ*Ô*ˆØ�|Š|˜H hÑ/Ô/ˆØŒ×ÒÝ 	Ô*°DÐ9Ð9ñ	;ô 	;ð 	;ð
 	Œ×ÒÑÔÐØ”^ˆŒ
Øˆtr+   c                 ó  — | j                              ¦   «         g}|d         dk    r]|                     | j                              ¦   «         ¦  «         |d         dk    r#t          d         ddœ| _        | j        | _        dS �n|d         dv rjd}dD ]<}|                     | j                              ¦   «         ¦  «         |d         |vrd	} nŒ=|r&t          d
         dd d ddœ| _        | j        | _        dS n¦|d         dk    rš| j        �“| j        j	        j
        r‚| j        j	        j
        d         j        | j        j	        j        k    rSd}dD ]>}|                     | j                              ¦   «         ¦  «         |d         |k    rd	} nŒ?|r| j        | _        dS | j                             t          d         ddœ¦  «         |r.| j                              |                     ¦   «         ¦  «         |°.| j        | _        dS )NrZ   r½   r÷   r:   r.   T)ÚdÚD))ÚoÚO©rS   ÚC©ÚtÚT©ÚyÚY©ÚpÚP©ÚeÚEFÚDoctype)r/   rp   ÚpublicIdÚsystemIdÚcorrectú[)rÿ   rû   ÚAr  r  r  r-   zexpected-dashes-or-doctype)r   rG   rH   r   r$   ÚcommentStartStater"   ÚdoctypeStater   ÚtreeÚopenElementsÚ	namespaceÚdefaultNamespaceÚcdataSectionStater1   rN   r3   r�   )r'   rR   ÚmatchedÚexpecteds       r*   rš   z(HTMLTokenizer.markupDeclarationOpenStatec  sS  € Ø”[×%Ò%Ñ'Ô'Ð(ˆ	Ø�RŒ=˜CÒÐØ×Ò˜Tœ[×-Ò-Ñ/Ô/Ñ0Ô0Ð0Ø˜Œ} Ò#Ð#Ý-7¸	Ô-BÈBÐ$OÐ$O�Ô!Ø!Ô3�”
Ø�tñ $ð �rŒ]˜jÐ(Ð(ØˆGðAð ð �à× Ò  ¤×!1Ò!1Ñ!3Ô!3Ñ4Ô4Ð4Ø˜R”=¨Ð0Ð0Ø#�GØ�Eð 1ð ð Ý-7¸	Ô-BØ-/Ø15À4Ø04ð%6ð %6�Ô!ð "Ô.�”
Ø�tðð ˜Œm˜sÒ"Ð"ØŒkÐ%ØŒkÔÔ+ð &àŒkÔÔ+¨BÔ/Ô9¸T¼[Ô=MÔ=^Ò^Ð^ØˆGØ:ð ð �Ø× Ò  ¤×!1Ò!1Ñ!3Ô!3Ñ4Ô4Ð4Ø˜R”= HÒ,Ð,Ø#�GØ�Eð -ð ð Ø!Ô3�”
Ø�tàŒ×Ò­
°<Ô(@Ø <ð >ð  >ñ 	?ô 	?ð 	?ð ð 	/ØŒK×Ò˜iŸmšm™oœoÑ.Ô.Ð.ð ð 	/àÔ+ˆŒ
Øˆtr+   c                 ó˜  — | j                              ¦   «         }|dk    r| j        | _        �n|dk    r>| j                             t          d         ddœ¦  «         | j        dxx         dz  cc<   nØ|dk    rT| j                             t          d         d	dœ¦  «         | j                             | j        ¦  «         | j        | _        n~|t          u rT| j                             t          d         d
dœ¦  «         | j                             | j        ¦  «         | j        | _        n!| j        dxx         |z  cc<   | j
        | _        dS )Nr½   r{   r-   r|   r.   r0   r?   r˜   úincorrect-commentúeof-in-commentT)r   rG   ÚcommentStartDashStater"   r1   rH   r   r$   r!   r   ÚcommentStater’   s     r*   r  zHTMLTokenizer.commentStartState�  sn  € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØÔ3ˆDŒJ‰JØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜fÐ%Ð%Ô%¨Ñ1Ð%Ð%Ñ%Ð%Ø�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$7ð$9ð $9ñ :ô :ð :àŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$4ð$6ð $6ñ 7ô 7ð 7àŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJàÔ˜fÐ%Ð%Ô%¨Ñ-Ð%Ð%Ñ%ØÔ*ˆDŒJØˆtr+   c                 óž  — | j                              ¦   «         }|dk    r| j        | _        �n|dk    r>| j                             t          d         ddœ¦  «         | j        dxx         dz  cc<   nÛ|dk    rT| j                             t          d         d	dœ¦  «         | j                             | j        ¦  «         | j        | _        n�|t          u rT| j                             t          d         d
dœ¦  «         | j                             | j        ¦  «         | j        | _        n$| j        dxx         d|z   z  cc<   | j
        | _        dS )Nr½   r{   r-   r|   r.   r0   õ   -ï¿½r˜   r  r  T)r   rG   ÚcommentEndStater"   r1   rH   r   r$   r!   r   r  r’   s     r*   r  z#HTMLTokenizer.commentStartDashState§  sr  € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØÔ-ˆDŒJ‰JØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜fÐ%Ð%Ô%¨Ñ2Ð%Ð%Ñ%Ð%Ø�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$7ð$9ð $9ñ :ô :ð :àŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$4ð$6ð $6ñ 7ô 7ð 7àŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJàÔ˜fÐ%Ð%Ô%¨¨t©Ñ3Ð%Ð%Ñ%ØÔ*ˆDŒJØˆtr+   c                 ó   — | j                              ¦   «         }|dk    r| j        | _        nÑ|dk    r>| j                             t          d         ddœ¦  «         | j        dxx         dz  cc<   n�|t          u rT| j                             t          d         ddœ¦  «         | j                             | j        ¦  «         | j	        | _        n0| j        dxx         || j          
                    d	¦  «        z   z  cc<   d
S )Nr½   r{   r-   r|   r.   r0   r?   r  )r½   r{   T)r   rG   ÚcommentEndDashStater"   r1   rH   r   r$   r   r!   r€   r’   s     r*   r  zHTMLTokenizer.commentState¾  s#  € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØÔ1ˆDŒJˆJØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜fÐ%Ð%Ô%¨Ñ1Ð%Ð%Ñ%Ð%Ø•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ,<ð$>ð $>ñ ?ô ?ð ?àŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJàÔ˜fÐ%Ð%Ô%¨Ø”×&Ò& Ñ7Ô7ñ*8ñ 8Ð%Ð%Ñ%àˆtr+   c                 ó   — | j                              ¦   «         }|dk    r| j        | _        nÑ|dk    rJ| j                             t          d         ddœ¦  «         | j        dxx         dz  cc<   | j        | _        n�|t          u rT| j                             t          d         ddœ¦  «         | j                             | j        ¦  «         | j
        | _        n$| j        dxx         d|z   z  cc<   | j        | _        d	S )
Nr½   r{   r-   r|   r.   r0   r!  zeof-in-comment-end-dashT)r   rG   r"  r"   r1   rH   r   r$   r  r   r!   r’   s     r*   r$  z!HTMLTokenizer.commentEndDashStateÐ  s#  € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØÔ-ˆDŒJˆJØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜fÐ%Ð%Ô%¨Ñ2Ð%Ð%Ñ%ØÔ*ˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$=ð$?ð $?ñ @ô @ð @àŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJàÔ˜fÐ%Ð%Ô%¨¨t©Ñ3Ð%Ð%Ñ%ØÔ*ˆDŒJØˆtr+   c                 ó�  — | j                              ¦   «         }|dk    r-| j                             | j        ¦  «         | j        | _        �ny|dk    rK| j                             t          d         ddœ¦  «         | j        dxx         dz  cc<   | j        | _        �n(|dk    r5| j                             t          d         d	dœ¦  «         | j	        | _        ní|d
k    r>| j                             t          d         ddœ¦  «         | j        dxx         |z  cc<   n©|t          u rT| j                             t          d         ddœ¦  «         | j                             | j        ¦  «         | j        | _        nL| j                             t          d         ddœ¦  «         | j        dxx         d|z   z  cc<   | j        | _        dS )Nr˜   r{   r-   r|   r.   r0   u   --ï¿½r•   z,unexpected-bang-after-double-dash-in-commentr½   z,unexpected-dash-after-double-dash-in-commentzeof-in-comment-double-dashzunexpected-char-in-commentz--T)r   rG   r1   rH   r$   r!   r"   r   r  ÚcommentEndBangStater   r’   s     r*   r"  zHTMLTokenizer.commentEndStateã  s  € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJ‰JØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜fÐ%Ð%Ô%¨Ñ3Ð%Ð%Ñ%ØÔ*ˆDŒJ‰JØ�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$Rð$Tð $Tñ Uô Uð UàÔ1ˆDŒJˆJØ�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$Rð$Tð $Tñ Uô Uð UàÔ˜fÐ%Ð%Ô%¨Ñ-Ð%Ð%Ñ%Ð%Ø•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$@ð$Bð $Bñ Cô Cð CàŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJð ŒO×"Ò"­J°|Ô,DØ$@ð$Bð $Bñ Cô Cð CàÔ˜fÐ%Ð%Ô%¨°©Ñ4Ð%Ð%Ñ%ØÔ*ˆDŒJØˆtr+   c                 óŽ  — | j                              ¦   «         }|dk    r,| j                             | j        ¦  «         | j        | _        nù|dk    r"| j        dxx         dz  cc<   | j        | _        nÑ|dk    rJ| j                             t          d         ddœ¦  «         | j        dxx         d	z  cc<   | j	        | _        n�|t          u rT| j                             t          d         d
dœ¦  «         | j                             | j        ¦  «         | j        | _        n$| j        dxx         d|z   z  cc<   | j	        | _        dS )Nr˜   r½   r0   z--!r{   r-   r|   r.   u   --!ï¿½zeof-in-comment-end-bang-stateT)r   rG   r1   rH   r$   r!   r"   r$  r   r  r   r’   s     r*   r'  z!HTMLTokenizer.commentEndBangState  sq  € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJØ�SŠ[ˆ[ØÔ˜fÐ%Ð%Ô%¨Ñ.Ð%Ð%Ñ%ØÔ1ˆDŒJˆJØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜fÐ%Ð%Ô%¨Ñ4Ð%Ð%Ñ%ØÔ*ˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$Cð$Eð $Eñ Fô Fð FàŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJàÔ˜fÐ%Ð%Ô%¨°©Ñ5Ð%Ð%Ñ%ØÔ*ˆDŒJØˆtr+   c                 óÎ  — | j                              ¦   «         }|t          v r| j        | _        nµ|t
          u r^| j                             t          d         ddœ¦  «         d| j	        d<   | j                             | j	        ¦  «         | j
        | _        nN| j                             t          d         ddœ¦  «         | j                              |¦  «         | j        | _        dS )Nr-   ú!expected-doctype-name-but-got-eofr.   Fr  zneed-space-after-doctypeT)r   rG   r   ÚbeforeDoctypeNameStater"   r   r1   rH   r   r$   r!   rN   r’   s     r*   r  zHTMLTokenizer.doctypeState  sñ   € ØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð"ØÔ4ˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$Gð$Ið $Iñ Jô Jð Jà+0ˆDÔ˜iÑ(ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJàŒO×"Ò"­J°|Ô,DØ$>ð$@ð $@ñ Aô Að AàŒK×Ò˜dÑ#Ô#Ð#ØÔ4ˆDŒJØˆtr+   c                 óš  — | j                              ¦   «         }|t          v r�n&|dk    r^| j                             t
          d         ddœ¦  «         d| j        d<   | j                             | j        ¦  «         | j        | _        nÂ|dk    r?| j                             t
          d         ddœ¦  «         d	| j        d
<   | j	        | _        n}|t          u r^| j                             t
          d         ddœ¦  «         d| j        d<   | j                             | j        ¦  «         | j        | _        n|| j        d
<   | j	        | _        dS )Nr˜   r-   z+expected-doctype-name-but-got-right-bracketr.   Fr  r{   r|   r?   rp   r*  T)r   rG   r   r1   rH   r   r$   r!   r"   ÚdoctypeNameStater   r’   s     r*   r+  z$HTMLTokenizer.beforeDoctypeNameState*  sp  € ØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð"ÙØ�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$Qð$Sð $Sñ Tô Tð Tà+0ˆDÔ˜iÑ(ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð Bà(0ˆDÔ˜fÑ%ØÔ.ˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$Gð$Ið $Iñ Jô Jð Jà+0ˆDÔ˜iÑ(ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJà(,ˆDÔ˜fÑ%ØÔ.ˆDŒJØˆtr+   c                 óp  — | j                              ¦   «         }|t          v r;| j        d                              t
          ¦  «        | j        d<   | j        | _        �nX|dk    rY| j        d                              t
          ¦  «        | j        d<   | j         	                    | j        ¦  «         | j
        | _        nù|dk    rJ| j         	                    t          d         ddœ¦  «         | j        dxx         dz  cc<   | j        | _        n©|t          u r‹| j         	                    t          d         ddœ¦  «         d	| j        d
<   | j        d                              t
          ¦  «        | j        d<   | j         	                    | j        ¦  «         | j
        | _        n| j        dxx         |z  cc<   dS )Nrp   r˜   r{   r-   r|   r.   r?   zeof-in-doctype-nameFr  T)r   rG   r   r$   rt   r   ÚafterDoctypeNameStater"   r1   rH   r!   r   r-  r   r’   s     r*   r-  zHTMLTokenizer.doctypeNameStateD  sº  € ØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð"Ø(,Ô(9¸&Ô(A×(KÒ(KÕL\Ñ(]Ô(]ˆDÔ˜fÑ%ØÔ3ˆDŒJ‰JØ�SŠ[ˆ[Ø(,Ô(9¸&Ô(A×(KÒ(KÕL\Ñ(]Ô(]ˆDÔ˜fÑ%ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜fÐ%Ð%Ô%¨Ñ1Ð%Ð%Ñ%ØÔ.ˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$9ð$;ð $;ñ <ô <ð <à+0ˆDÔ˜iÑ(Ø(,Ô(9¸&Ô(A×(KÒ(KÕL\Ñ(]Ô(]ˆDÔ˜fÑ%ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJàÔ˜fÐ%Ð%Ô%¨Ñ-Ð%Ð%Ñ%Øˆtr+   c                 ó^  — | j                              ¦   «         }|t          v r�nˆ|dk    r-| j                             | j        ¦  «         | j        | _        �nU|t          u rxd| j        d<   | j          	                    |¦  «         | j                             t          d         ddœ¦  «         | j                             | j        ¦  «         | j        | _        nÔ|dv r9d}d	D ]#}| j                              ¦   «         }||vrd} nŒ$|r| j        | _        dS n<|d
v r8d}dD ]#}| j                              ¦   «         }||vrd} nŒ$|r| j        | _        dS | j          	                    |¦  «         | j                             t          d         dd|idœ¦  «         d| j        d<   | j        | _        dS )Nr˜   Fr  r-   úeof-in-doctyper.   r  T))ÚuÚU)ÚbÚB)ÚlÚL)ÚiÚIrþ   ©ÚsÚS)r  r:  r   r	  )ÚmÚMz*expected-space-or-right-bracket-in-doctyper0   r<   )r   rG   r   r1   rH   r$   r!   r"   r   rN   r   ÚafterDoctypePublicKeywordStateÚafterDoctypeSystemKeywordStateÚbogusDoctypeState)r'   r0   r  r  s       r*   r/  z#HTMLTokenizer.afterDoctypeNameState]  s  € ØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð"ÙØ�SŠ[ˆ[ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJ‰JØ•Sˆ[ˆ[Ø+0ˆDÔ˜iÑ(ØŒK×Ò˜dÑ#Ô#Ð#ØŒO×"Ò"­J°|Ô,DØ$4ð$6ð $6ñ 7ô 7ð 7àŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJà�zÐ!Ð!Ø�ð!9ð ð �Hàœ;×+Ò+Ñ-Ô-�DØ 8Ð+Ð+Ø"'˜Ø˜ð ,ð ð  Ø!%Ô!D�D”JØ˜4ð ð ˜Ð#Ð#Ø�ð!9ð ð �Hàœ;×+Ò+Ñ-Ô-�DØ 8Ð+Ð+Ø"'˜Ø˜ð ,ð ð  Ø!%Ô!D�D”JØ˜4ð ŒK×Ò˜dÑ#Ô#Ð#ØŒO×"Ò"­J°|Ô,DØ$PØ%+¨T Nð$4ð $4ñ 5ô 5ð 5ð ,1ˆDÔ˜iÑ(ØÔ/ˆDŒJàˆtr+   c                 ó$  — | j                              ¦   «         }|t          v r| j        | _        nà|dv rO| j                             t          d         ddœ¦  «         | j                              |¦  «         | j        | _        n�|t          u r^| j                             t          d         ddœ¦  «         d| j
        d<   | j                             | j
        ¦  «         | j        | _        n&| j                              |¦  «         | j        | _        dS ©	N)rÞ   rß   r-   úunexpected-char-in-doctyper.   r1  Fr  T)r   rG   r   Ú"beforeDoctypePublicIdentifierStater"   r1   rH   r   rN   r   r$   r!   r’   s     r*   r?  z,HTMLTokenizer.afterDoctypePublicKeywordState�  ó  € ØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð"ØÔ@ˆDŒJˆJØ�ZÐÐØŒO×"Ò"­J°|Ô,DØ$@ð$Bð $Bñ Cô Cð CàŒK×Ò˜dÑ#Ô#Ð#ØÔ@ˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$4ð$6ð $6ñ 7ô 7ð 7à+0ˆDÔ˜iÑ(ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJàŒK×Ò˜dÑ#Ô#Ð#ØÔ@ˆDŒJØˆtr+   c                 óØ  — | j                              ¦   «         }|t          v r�nE|dk    rd| j        d<   | j        | _        �n'|dk    rd| j        d<   | j        | _        �n	|dk    r^| j                             t          d         ddœ¦  «         d	| j        d
<   | j                             | j        ¦  «         | j
        | _        n¥|t          u r^| j                             t          d         ddœ¦  «         d	| j        d
<   | j                             | j        ¦  «         | j
        | _        n>| j                             t          d         ddœ¦  «         d	| j        d
<   | j        | _        dS )Nrß   r:   r  rÞ   r˜   r-   úunexpected-end-of-doctyper.   Fr  r1  rD  T)r   rG   r   r$   Ú(doctypePublicIdentifierDoubleQuotedStater"   Ú(doctypePublicIdentifierSingleQuotedStater1   rH   r   r!   r   rA  r’   s     r*   rE  z0HTMLTokenizer.beforeDoctypePublicIdentifierState¤  s‹  € ØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð"ÙØ�TŠ\ˆ\Ø,.ˆDÔ˜jÑ)ØÔFˆDŒJ‰JØ�SŠ[ˆ[Ø,.ˆDÔ˜jÑ)ØÔFˆDŒJ‰JØ�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$?ð$Að $Añ Bô Bð Bà+0ˆDÔ˜iÑ(ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$4ð$6ð $6ñ 7ô 7ð 7à+0ˆDÔ˜iÑ(ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJàŒO×"Ò"­J°|Ô,DØ$@ð$Bð $Bñ Cô Cð Cà+0ˆDÔ˜iÑ(ØÔ/ˆDŒJØˆtr+   c                 ó¨  — | j                              ¦   «         }|dk    r| j        | _        �n$|dk    r>| j                             t          d         ddœ¦  «         | j        dxx         dz  cc<   nà|dk    r^| j                             t          d         d	dœ¦  «         d
| j        d<   | j                             | j        ¦  «         | j        | _        n||t          u r^| j                             t          d         ddœ¦  «         d
| j        d<   | j                             | j        ¦  «         | j        | _        n| j        dxx         |z  cc<   dS )Nrß   r{   r-   r|   r.   r  r?   r˜   rH  Fr  r1  T©
r   rG   Ú!afterDoctypePublicIdentifierStater"   r1   rH   r   r$   r!   r   r’   s     r*   rI  z6HTMLTokenizer.doctypePublicIdentifierDoubleQuotedStateÁ  óƒ  € ØŒ{×ÒÑ!Ô!ˆØ�4Š<ˆ<ØÔ?ˆDŒJ‰JØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜jÐ)Ð)Ô)¨XÑ5Ð)Ð)Ñ)Ð)Ø�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$?ð$Að $Añ Bô Bð Bà+0ˆDÔ˜iÑ(ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$4ð$6ð $6ñ 7ô 7ð 7à+0ˆDÔ˜iÑ(ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJàÔ˜jÐ)Ð)Ô)¨TÑ1Ð)Ð)Ñ)Øˆtr+   c                 ó¨  — | j                              ¦   «         }|dk    r| j        | _        �n$|dk    r>| j                             t          d         ddœ¦  «         | j        dxx         dz  cc<   nà|dk    r^| j                             t          d         d	dœ¦  «         d
| j        d<   | j                             | j        ¦  «         | j        | _        n||t          u r^| j                             t          d         ddœ¦  «         d
| j        d<   | j                             | j        ¦  «         | j        | _        n| j        dxx         |z  cc<   dS )NrÞ   r{   r-   r|   r.   r  r?   r˜   rH  Fr  r1  TrL  r’   s     r*   rJ  z6HTMLTokenizer.doctypePublicIdentifierSingleQuotedStateÙ  óƒ  € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØÔ?ˆDŒJ‰JØ�XÒÐØŒO×"Ò"­J°|Ô,DØ,?ð$Að $Añ Bô Bð BàÔ˜jÐ)Ð)Ô)¨XÑ5Ð)Ð)Ñ)Ð)Ø�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$?ð$Að $Añ Bô Bð Bà+0ˆDÔ˜iÑ(ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$4ð$6ð $6ñ 7ô 7ð 7à+0ˆDÔ˜iÑ(ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJàÔ˜jÐ)Ð)Ô)¨TÑ1Ð)Ð)Ñ)Øˆtr+   c                 ó*  — | j                              ¦   «         }|t          v r| j        | _        �nb|dk    r-| j                             | j        ¦  «         | j        | _        �n/|dk    r?| j                             t          d         ddœ¦  «         d| j        d<   | j
        | _        nê|dk    r?| j                             t          d         ddœ¦  «         d| j        d<   | j        | _        n¥|t          u r^| j                             t          d         d	dœ¦  «         d
| j        d<   | j                             | j        ¦  «         | j        | _        n>| j                             t          d         ddœ¦  «         d
| j        d<   | j        | _        dS )Nr˜   rß   r-   rD  r.   r:   r  rÞ   r1  Fr  T)r   rG   r   Ú-betweenDoctypePublicAndSystemIdentifiersStater"   r1   rH   r$   r!   r   Ú(doctypeSystemIdentifierDoubleQuotedStateÚ(doctypeSystemIdentifierSingleQuotedStater   rA  r’   s     r*   rM  z/HTMLTokenizer.afterDoctypePublicIdentifierStateñ  sº  € ØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð"ØÔKˆDŒJ‰JØ�SŠ[ˆ[ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJ‰JØ�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$@ð$Bð $Bñ Cô Cð Cà,.ˆDÔ˜jÑ)ØÔFˆDŒJˆJØ�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$@ð$Bð $Bñ Cô Cð Cà,.ˆDÔ˜jÑ)ØÔFˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$4ð$6ð $6ñ 7ô 7ð 7à+0ˆDÔ˜iÑ(ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJàŒO×"Ò"­J°|Ô,DØ$@ð$Bð $Bñ Cô Cð Cà+0ˆDÔ˜iÑ(ØÔ/ˆDŒJØˆtr+   c                 ót  — | j                              ¦   «         }|t          v r�n|dk    r,| j                             | j        ¦  «         | j        | _        ná|dk    rd| j        d<   | j        | _        nÄ|dk    rd| j        d<   | j	        | _        n§|t          k    r^| j                             t          d         ddœ¦  «         d	| j        d
<   | j                             | j        ¦  «         | j        | _        n>| j                             t          d         ddœ¦  «         d	| j        d
<   | j        | _        dS )Nr˜   rß   r:   r  rÞ   r-   r1  r.   Fr  rD  T)r   rG   r   r1   rH   r$   r!   r"   rS  rT  r   r   rA  r’   s     r*   rR  z;HTMLTokenizer.betweenDoctypePublicAndSystemIdentifiersState  sK  € ØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð"ÙØ�SŠ[ˆ[ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJØ�SŠ[ˆ[Ø,.ˆDÔ˜jÑ)ØÔFˆDŒJˆJØ�SŠ[ˆ[Ø,.ˆDÔ˜jÑ)ØÔFˆDŒJˆJØ•SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$4ð$6ð $6ñ 7ô 7ð 7à+0ˆDÔ˜iÑ(ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJàŒO×"Ò"­J°|Ô,DØ$@ð$Bð $Bñ Cô Cð Cà+0ˆDÔ˜iÑ(ØÔ/ˆDŒJØˆtr+   c                 ó$  — | j                              ¦   «         }|t          v r| j        | _        nà|dv rO| j                             t          d         ddœ¦  «         | j                              |¦  «         | j        | _        n�|t          u r^| j                             t          d         ddœ¦  «         d| j
        d<   | j                             | j
        ¦  «         | j        | _        n&| j                              |¦  «         | j        | _        dS rC  )r   rG   r   Ú"beforeDoctypeSystemIdentifierStater"   r1   rH   r   rN   r   r$   r!   r’   s     r*   r@  z,HTMLTokenizer.afterDoctypeSystemKeywordState)  rF  r+   c                 óØ  — | j                              ¦   «         }|t          v r�nE|dk    rd| j        d<   | j        | _        �n'|dk    rd| j        d<   | j        | _        �n	|dk    r^| j                             t          d         ddœ¦  «         d	| j        d
<   | j                             | j        ¦  «         | j
        | _        n¥|t          u r^| j                             t          d         ddœ¦  «         d	| j        d
<   | j                             | j        ¦  «         | j
        | _        n>| j                             t          d         ddœ¦  «         d	| j        d
<   | j        | _        dS )Nrß   r:   r  rÞ   r˜   r-   rD  r.   Fr  r1  T)r   rG   r   r$   rS  r"   rT  r1   rH   r   r!   r   rA  r’   s     r*   rW  z0HTMLTokenizer.beforeDoctypeSystemIdentifierState=  s‹  € ØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð"ÙØ�TŠ\ˆ\Ø,.ˆDÔ˜jÑ)ØÔFˆDŒJ‰JØ�SŠ[ˆ[Ø,.ˆDÔ˜jÑ)ØÔFˆDŒJ‰JØ�SŠ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$@ð$Bð $Bñ Cô Cð Cà+0ˆDÔ˜iÑ(ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$4ð$6ð $6ñ 7ô 7ð 7à+0ˆDÔ˜iÑ(ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJàŒO×"Ò"­J°|Ô,DØ$@ð$Bð $Bñ Cô Cð Cà+0ˆDÔ˜iÑ(ØÔ/ˆDŒJØˆtr+   c                 ó¨  — | j                              ¦   «         }|dk    r| j        | _        �n$|dk    r>| j                             t          d         ddœ¦  «         | j        dxx         dz  cc<   nà|dk    r^| j                             t          d         d	dœ¦  «         d
| j        d<   | j                             | j        ¦  «         | j        | _        n||t          u r^| j                             t          d         ddœ¦  «         d
| j        d<   | j                             | j        ¦  «         | j        | _        n| j        dxx         |z  cc<   dS )Nrß   r{   r-   r|   r.   r  r?   r˜   rH  Fr  r1  T©
r   rG   Ú!afterDoctypeSystemIdentifierStater"   r1   rH   r   r$   r!   r   r’   s     r*   rS  z6HTMLTokenizer.doctypeSystemIdentifierDoubleQuotedStateZ  rN  r+   c                 ó¨  — | j                              ¦   «         }|dk    r| j        | _        �n$|dk    r>| j                             t          d         ddœ¦  «         | j        dxx         dz  cc<   nà|dk    r^| j                             t          d         d	dœ¦  «         d
| j        d<   | j                             | j        ¦  «         | j        | _        n||t          u r^| j                             t          d         ddœ¦  «         d
| j        d<   | j                             | j        ¦  «         | j        | _        n| j        dxx         |z  cc<   dS )NrÞ   r{   r-   r|   r.   r  r?   r˜   rH  Fr  r1  TrZ  r’   s     r*   rT  z6HTMLTokenizer.doctypeSystemIdentifierSingleQuotedStater  rP  r+   c                 óæ  — | j                              ¦   «         }|t          v rnÍ|dk    r,| j                             | j        ¦  «         | j        | _        n›|t          u r^| j                             t          d         ddœ¦  «         d| j        d<   | j                             | j        ¦  «         | j        | _        n4| j                             t          d         ddœ¦  «         | j
        | _        dS )	Nr˜   r-   r1  r.   Fr  rD  T)r   rG   r   r1   rH   r$   r!   r"   r   r   rA  r’   s     r*   r[  z/HTMLTokenizer.afterDoctypeSystemIdentifierStateŠ  sú   € ØŒ{×ÒÑ!Ô!ˆØ•?Ð"Ð"ØØ�SŠ[ˆ[ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJØ•Sˆ[ˆ[ØŒO×"Ò"­J°|Ô,DØ$4ð$6ð $6ñ 7ô 7ð 7à+0ˆDÔ˜iÑ(ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJàŒO×"Ò"­J°|Ô,DØ$@ð$Bð $Bñ Cô Cð CàÔ/ˆDŒJØˆtr+   c                 ó<  — | j                              ¦   «         }|dk    r,| j                             | j        ¦  «         | j        | _        nP|t          u rF| j                              |¦  «         | j                             | j        ¦  «         | j        | _        n	 dS )Nr˜   T)	r   rG   r1   rH   r$   r!   r"   r   rN   r’   s     r*   rA  zHTMLTokenizer.bogusDoctypeState�  s�   € ØŒ{×ÒÑ!Ô!ˆØ�3Š;ˆ;ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJØ•Sˆ[ˆ[àŒK×Ò˜dÑ#Ô#Ð#ØŒO×"Ò" 4Ô#4Ñ5Ô5Ð5ØœˆDŒJˆJàØˆtr+   c                 ó  — g }	 |                      | j                             d¦  «        ¦  «         |                      | j                             d¦  «        ¦  «         | j                             ¦   «         }|t          k    rnF|dk    sJ ‚|d         dd …         dk    r|d         d d…         |d<   n|                      |¦  «         ŒÅd                     |¦  «        }|                     d¦  «        }|d	k    rPt          |¦  «        D ]*}| j                              t          d
         ddœ¦  «         Œ+| 
                    dd¦  «        }|r(| j                              t          d         |dœ¦  «         | j        | _        dS )NTú]r˜   rZ   éþÿÿÿz]]r:   r{   r   r-   r|   r.   r?   r_   )rH   r   r€   rG   r   rJ   ÚcountÚranger1   r   rø   r!   r"   )r'   r0   rG   Ú	nullCountrè   s        r*   r  zHTMLTokenizer.cdataSectionState«  s–  € Øˆð	&Ø�KŠK˜œ×.Ò.¨sÑ3Ô3Ñ4Ô4Ð4Ø�KŠK˜œ×.Ò.¨sÑ3Ô3Ñ4Ô4Ð4Ø”;×#Ò#Ñ%Ô%ˆDØ•sŠ{ˆ{Øà˜s’{�{�{�{Ø˜”8˜B˜C˜C”= DÒ(Ð(Ø# Bœx¨¨¨œ}�D˜‘HØà—K’K Ñ%Ô%Ð%ð	&ð �wŠw�t‰}Œ}ˆà—J’J˜xÑ(Ô(ˆ	Ø�qŠ=ˆ=Ý˜9Ñ%Ô%ð Fð F�Ø”×&Ò&µ
¸<Ô0HØ0Cð(Eð (Eñ Fô Fð Fð Fà—<’< ¨(Ñ3Ô3ˆDØð 	3ØŒO×"Ò"­J°|Ô,DØ,0ð$2ð $2ñ 3ô 3ð 3à”^ˆŒ
Øˆtr+   )Nr   )NÚ__name__Ú
__module__Ú__qualname__Ú__doc__r&   r6   rU   rl   rn   ry   r!   r~   rˆ   r†   r�   r�   r“   r   r›   rœ   r‡   r§   rª   rŒ   r±   r³   r�   r¶   r¹   r·   r¾   rÅ   rÃ   rÁ   rÄ   rÉ   rÌ   rÊ   rÑ   rÕ   rØ   rÖ   rÛ   r¢   rá   rå   rä   rì   rî   rí   rñ   r£   r�   rš   r  r  r  r$  r"  r'  r  r+  r-  r/  r?  rE  rI  rJ  rM  rR  r@  rW  rS  rT  r[  rA  r  Ú__classcell__)r)   s   @r*   r   r      sš  ø€ € € € € ð
ð 
ð.ð .ð .ð .ð .ð .ð0ð 0ð 0ð Fð Fð FðPNTð NTð NTð NTð`Hð Hð Hð
$ð $ð $ð8ð ð ð:ð ð ð
ð ð ð:ð ð ð
ð ð ð$ð ð ð$ð ð ð!ð !ð !ðFð ð ð0ð ð ð,	ð 	ð 	ð	ð 	ð 	ðð ð ð8	ð 	ð 	ð	ð 	ð 	ðð ð ð8ð ð ð	ð 	ð 	ðð ð ð8ð ð ðð ð ðð ð ð(ð ð ð(ð ð ð,ð ð ð	ð 	ð 	ðð ð ð8ð ð ð ð ð ð*ð ð ð.ð ð ð2	ð 	ð 	ðð ð ð ð ð ð<4ð 4ð 4ðlð ð ð@ ð  ð  ðDð ð ð&ð ð ð&ð ð ð2ð ð ð(ð ð ð$ð ð ð+ð +ð +ðZð ð ð.ð ð ð.ð ð ð$ð ð ð&ð ð ð>ð ð ð.ð ð ð"ð ð ð4ð ð ð21ð 1ð 1ðfð ð ð(ð ð ð:ð ð ð0ð ð ð0ð ð ð<ð ð ð4ð ð ð(ð ð ð:ð ð ð0ð ð ð0ð ð ð&ð ð ðð ð ð ð ð ð r+   r   N) Ú
__future__r   r   r   Úsixr   rL   Úcollectionsr   r   Úsysr	   Ú	constantsr   r   r   r   r   r   r   r   r   r   Ú_inputstreamr   Ú_trier   r`   Údictru   Úobjectr   © r+   r*   ú<module>rt     si  ðØ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bà Ð Ð Ð Ð Ð à *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,à )Ð )Ð )Ð )Ð )Ð )à Ð Ð Ð Ð Ð àˆt�H‰~Œ~€à�6ÒÐØ€L€Là€Lðlð lð lð lð l�Fñ lô lð lð lð lr+   