+
    |fz,                        ^ RI HtHt ^ RIHt ^RIHt ^RIHt ^RIHtH	t	 ^RIH
t
HtHt ^RIHtHt ^RIHt ^R	IHt ^R
IHt ]! ]4      t]R8  d   ]tM]t ! R R4      tR# )    )dequeOrderedDict)version_info)spaceCharacters)entities)asciiLettersasciiUpper2Lower)digits	hexDigitsEOF)
tokenTypestagTokenTypes)replacementCharacters)HTMLInputStream)Triec                     a a ] tR t^t oRtRLV 3R lltR tR tRMR ltR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R  t#R! t$R" t%R# t&R$ t'R% t(R& t)R' t*R( t+R) t,R* t-R+ t.R, t/R- t0R. t1R/ t2R0 t3R1 t4R2 t5R3 t6R4 t7R5 t8R6 t9R7 t:R8 t;R9 t<R: t=R; t>R< t?R= t@R> tAR? tBR@ tCRA tDRB tERC tFRD tGRE tHRF tIRG tJRH tKRI tLRJ tMRKtNVtOV ;tP# )NHTMLTokenizerzThis 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.
c                   < \        V3/ VB V n        W n        R V n        . V n        V P
                  V n        R V n        RV n        \        \        V `/  4        R# )FN)r   streamparser
escapeFlaglastFourChars	dataStatestateescapecurrentTokensuperr   __init__)selfr   r   kwargs	__class__s   &&&,5/usr/lib/python3/dist-packages/html5lib/_tokenizer.pyr   HTMLTokenizer.__init__%   sS    %f77  ^^
 !mT+-    c              #  f  "   \        . 4      V n        V P                  4       '       d   V P                  P                  '       d9   R\
        R,          RV P                  P                  P                  ^ 4      /x  KT  V P                  '       g   K~  V P                  P                  4       x  K2  R# 5i)zThis 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.
type
ParseErrordataN)r   
tokenQueuer   r   errorsr   poppopleftr   s   &r"   __iter__HTMLTokenizer.__iter__4   sz       ) jjll++$$$z,7ASASAWAWXYAZ[[///oo--//	 s   &B1B1AB1 B1c           	     "   \         p^
pV'       d	   \        p^p. pV P                  P                  4       pWR9   d8   V\        Jd.   VP                  V4       V P                  P                  4       pK=  \        RP                  V4      V4      pV\        9   d>   \        V,          pV P                  P                  R\        R,          RRRRV//4       EMRTu;8:  d   R	8:  g
   M VR
8  d2   RpV P                  P                  R\        R,          RRRRV//4       M^Tu;8:  d   ^8:  g   M ^Tu;8:  d   ^8:  g{   M ^Tu;8:  d   ^8:  gj   M RTu;8:  d   R8:  gY   M V\        . ^NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR
N4      9   d/   V P                  P                  R\        R,          RRRRV//4        \        V4      pVR28w  dF   V P                  P                  R\        R,          RR3/4       V P                  P                  V4       V#   \         dD    TR/,
          p\        RT^
,	          ,          4      \        R0TR1,          ,          4      ,           p Li ; i)4zThis 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&   r'   r(   z$illegal-codepoint-for-numeric-entitydatavars	charAsInti   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 i i i   i   i  ;z numeric-entity-without-semicolon)r
   r   r   charr   appendintjoinr   r)   r   	frozensetchr
ValueErrorunget)	r   isHexallowedradix	charStackcr3   r6   vs	   &&       r"   consumeNumberEntity!HTMLTokenizer.consumeNumberEntityD   s    GE	 KKlq|Q  "A 	*E2	 --(3DOO""FJ|,Df$J$.i0H$J K ,f,8#DOO""FJ|,Df$J$.i0H$J K
 9..9..9..9..Y (E (E (E (E (E(/(E18(E:A(ECJ(E(/(E18(E:A(ECJ(E )0(E 29(E ;B(E DK(E )0	(E 29	(E ;B	(E DK	(E
 )0(E
 29(E
 ;B(E
 DK(E )0(E 29(E ;B(E DK(E )0(E 29(E ;B(E DK(E )0(E 2:(E <D(E F F &&
<0H(.(N(2[)4L(N OK 9~ 8OO""FJ|,Df$F$H IKKa   K'6Q"W-.Vq5y5I1JJKs   'I   AJJc                   R pV P                   P                  4       .pV^ ,          \        9   g'   V^ ,          \        RR 39   g   Ve2   W^ ,          8X  d%   V P                   P	                  V^ ,          4       EMeV^ ,          R8X  Ed;   RpVP                  V P                   P                  4       4       VR,          R9   d,   RpVP                  V P                   P                  4       4       V'       d   VR,          \        9   g   V'       gH   VR,          \        9   d6   V P                   P	                  VR,          4       V P                  V4      pEMV P                  P                  R\        R,          RR	/4       V P                   P	                  VP                  4       4       R R
P                  V4      ,           pEMVR,          \        JdW   \        P                  R
P                  V4      4      '       g   M+VP                  V P                   P                  4       4       Kg   \        P                  R
P                  VRR 4      4      p\!        V4      pVEe   VR,          R8w  d+   V P                  P                  R\        R,          RR/4       VR,          R8w  d{   V'       ds   VX,          \$        9   g   WG,          \        9   g   WG,          R8X  dC   V P                   P	                  VP                  4       4       R R
P                  V4      ,           pM\&        V,          pV P                   P	                  VP                  4       4       VR
P                  VXR 4      ,          pMkV P                  P                  R\        R,          RR/4       V P                   P	                  VP                  4       4       R R
P                  V4      ,           pV'       d0   V P(                  R,          R,          ^;;,          V,          uu&   R# V\        9   d   RpMRpV P                  P                  R\        V,          RV/4       R#   \"         d    Rp ELi ; i)&<N#FTr&   r'   r(   zexpected-numeric-entityr1   r5   znamed-entity-without-semicolon=zexpected-named-entitySpaceCharacters
Characters)xX)r   r6   r   r   r=   r7   r   r
   rD   r)   r   r+   r9   entitiesTriehas_keys_with_prefixlongest_prefixlenKeyErrorr   r   r   )	r   allowedCharfromAttributeoutputrA   hex
entityNameentityLength	tokenTypes	   &&&      r"   consumeEntityHTMLTokenizer.consumeEntity   sR   [[%%'(	aLO+y|S#/N([aL-HKKil+q\S CT[[--/0}
*  !1!1!34 	"2IbMV$;!!)B-011#6 &&
<0H(.0I(K L!!)--/2rwwy11 R=+#889KLL  !1!1!34")883B9PQ
": %b>S(OO**FJ|4Lf,L,N OrNc)m|,<,6,3KK%%immo6 2779#55F%j1FKK%%immo6bggi&>??F&&
<0H&(?(A B!!)--/2rwwy11f%b)!,6,(-	(	OO""FJy,A66#RS=  "!
"s   +2Q Q#"Q#c                ,    V P                  VRR7       R# )zIThis method replaces the need for "entityInAttributeValueState".
        T)rU   rV   N)r\   )r   rU   s   &&r"   processEntityInAttribute&HTMLTokenizer.processEntityInAttribute   s     	{$Gr$   c                   V P                   pVR,          \        9   Ed   VR,          P                  \        4      VR&   VR,          \        R,          8X  dM   VR,          p\        V4      p\        V4      \        V4      8  d   VP                  VRRR1,          4       W1R&   VR,          \        R,          8X  ds   VR,          '       d+   V P                  P                  R\        R,          RR/4       VR	,          '       d+   V P                  P                  R\        R,          RR
/4       V P                  P                  V4       V P                  V n        R# )zThis 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StartTagr(   NEndTagr'   zattributes-in-end-tagselfClosingzself-closing-flag-on-end-tagrM   )r   r   	translater	   r   attributeMaprS   updater)   r7   r   r   )r   tokenrawr(   s   &   r"   emitCurrentTokenHTMLTokenizer.emitCurrentToken   s   
 !!&M]*!&M334DEE&MV}
: 66Fm#C(s8c$i'KKDbD	* $fV}
8 44==OO**FJ|4L,24K,M N''OO**FJ|4L,24R,T Uu%^^
r$   c           
        V P                   P                  4       pVR 8X  d   V P                  V n        R
# VR8X  d   V P                  V n        R
# VR8X  dW   V P
                  P                  R\        R,          RR/4       V P
                  P                  R\        R,          RR/4       R
# V\        J d   R# V\        9   dQ   V P
                  P                  R\        R	,          RWP                   P                  \        R
4      ,           /4       R
# V P                   P                  R4      pV P
                  P                  R\        R,          RW,           /4       R
# )rG   rH    r&   r'   r(   invalid-codepointrL   FrK   TrG   rH   rn   )r   r6   entityDataStater   tagOpenStater)   r7   r   r   r   
charsUntilr   r(   charss   &  r"   r   HTMLTokenizer.dataState   s=   {{!3;--DJ0 / S[**DJ, + XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7$ ! S[_$ OO""FJ7H,I6$(;;+A+A/SW+X$X$Z [  KK**+?@EOO""FJ|,Df$(L$2 3r$   c                H    V P                  4        V P                  V n        R # T)r\   r   r   r-   s   &r"   rq   HTMLTokenizer.entityDataState  s    ^^
r$   c           
        V P                   P                  4       pVR 8X  d   V P                  V n        R# VR8X  d   V P                  V n        R# V\
        8X  d   R# VR8X  dW   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR	/4       R# V\        9   dQ   V P                  P                  R\        R
,          RWP                   P                  \        R4      ,           /4       R# V P                   P                  R4      pV P                  P                  R\        R,          RW,           /4       R# )rG   rH   Frn   r&   r'   r(   ro   rL   r4   rK   Trp   )r   r6   characterReferenceInRcdatar   rcdataLessThanSignStater   r)   r7   r   r   rs   rt   s   &  r"   rcdataStateHTMLTokenizer.rcdataState  s=   {{!3;88DJ0 / S[55DJ, + S[XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7  _$ OO""FJ7H,I6$(;;+A+A/SW+X$X$Z [  KK**+?@EOO""FJ|,Df$(L$2 3r$   c                H    V P                  4        V P                  V n        R # rx   )r\   r}   r   r-   s   &r"   r{   (HTMLTokenizer.characterReferenceInRcdata<  s    %%
r$   c                   V P                   P                  4       pVR 8X  d   V P                  V n        R	# VR8X  dW   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR/4       R	# V\        8X  d   R# V P                   P                  R
4      pV P                  P                  R\        R,          RW,           /4       R	# rH   rn   r&   r'   r(   ro   rL   r4   FT)rH   rn   )	r   r6   rawtextLessThanSignStater   r)   r7   r   r   rs   rt   s   &  r"   rawtextStateHTMLTokenizer.rawtextStateA  s    {{!3;66DJ  XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7  S[KK**?;EOO""FJ|,Df$(L$2 3r$   c                   V P                   P                  4       pVR 8X  d   V P                  V n        R	# VR8X  dW   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR/4       R	# V\        8X  d   R# V P                   P                  R
4      pV P                  P                  R\        R,          RW,           /4       R	# r   )	r   r6   scriptDataLessThanSignStater   r)   r7   r   r   rs   rt   s   &  r"   scriptDataStateHTMLTokenizer.scriptDataStateS  s    {{!3;99DJ  XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7  S[KK**?;EOO""FJ|,Df$(L$2 3r$   c           	        V P                   P                  4       pV\        8X  d   R # VR8X  dW   V P                  P	                  R\
        R,          RR/4       V P                  P	                  R\
        R,          RR/4       R# V P                  P	                  R\
        R,          RWP                   P                  R4      ,           /4       R# )	Frn   r&   r'   r(   ro   rL   r4   T)r   r6   r   r)   r7   r   rs   r   r(   s   & r"   plaintextStateHTMLTokenizer.plaintextStatee  s    {{!3;XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7
  OO""FJ|,Df$(;;+A+A(+K$K$M Nr$   c           
        V P                   P                  4       pVR 8X  d   V P                  V n        R# VR8X  d   V P                  V n        R# V\
        9   d0   R\        R,          RVR. RRRR/V n        V P                  V n        R# VR	8X  dh   V P                  P                  R\        R
,          RR/4       V P                  P                  R\        R,          RR/4       V P                  V n        R# VR8X  dY   V P                  P                  R\        R
,          RR/4       V P                   P                  V4       V P                  V n        R# V P                  P                  R\        R
,          RR/4       V P                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# )!/r&   rc   rb   r(   re   FselfClosingAcknowledged>r'   z'expected-tag-name-but-got-right-bracketrL   z<>?z'expected-tag-name-but-got-question-markzexpected-tag-namerH   T)r   r6   markupDeclarationOpenStater   closeTagOpenStater   r   r   tagNameStater)   r7   r   r=   bogusCommentStater   s   & r"   rr   HTMLTokenizer.tagOpenStatet  s   {{!3;88DJ< ; S[//DJ8 7 \!!'J)?!'vr!.!:E!CD **DJ, + S[ OO""FJ|,Df$M$O POO""FJ|,Dfd#STDJ  S[ OO""FJ|,Df$M$O PKKd#//DJ  OO""FJ|,Df$7$9 :OO""FJ|,Dfc#RSKKd#DJr$   c           	        V P                   P                  4       pV\        9   d.   R \        R,          RVR. RR/V n        V P
                  V n        R# VR8X  d>   V P                  P                  R \        R,          RR/4       V P                  V n        R# V\        J dh   V P                  P                  R \        R,          RR	/4       V P                  P                  R \        R
,          RR/4       V P                  V n        R# V P                  P                  R \        R,          RRRRV//4       V P                   P                  V4       V P                  V n        R# )r&   rd   rb   r(   re   Fr   r'   z*expected-closing-tag-but-got-right-bracketz expected-closing-tag-but-got-eofrL   </z!expected-closing-tag-but-got-charr2   T)r   r6   r   r   r   r   r   r)   r7   r   r   r=   r   r   s   & r"   r   HTMLTokenizer.closeTagOpenState  sF   {{!<!'H)=vt!']E!CD**DJ" ! S[OO""FJ|,Df$P$R SDJ  S[OO""FJ|,Df$F$H IOO""FJ|,Dfd#STDJ  OO""FJ|,Df$G$.$@ A KKd#//DJr$   c                L   V P                   P                  4       pV\        9   d   V P                  V n        R
# VR 8X  d   V P                  4        R
# V\        J d>   V P                  P                  R\        R,          RR/4       V P                  V n        R
# VR8X  d   V P                  V n        R
# VR8X  dL   V P                  P                  R\        R,          RR/4       V P                  R;;,          R	,          uu&   R
# V P                  R;;,          V,          uu&   R
# )r   r&   r'   r(   zeof-in-tag-namer   rn   ro   rb   r4   T)r   r6   r   beforeAttributeNameStater   rk   r   r)   r7   r   r   selfClosingStartTagStater   r   s   & r"   r   HTMLTokenizer.tagNameState  s   {{!?"66DJ" ! S[!!#  S[OO""FJ|,Df$5$7 8DJ  S[66DJ  XOO""FJ|,D$*,?$A Bf%1%
  f%-% r$   c                (   V P                   P                  4       pVR 8X  d   RV n        V P                  V n        R# V P
                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# r   r1   r&   rL   r(   rH   T)
r   r6   temporaryBufferrcdataEndTagOpenStater   r)   r7   r   r=   r}   r   s   & r"   r|   %HTMLTokenizer.rcdataLessThanSignState  sy    {{!3;#%D 33DJ
  OO""FJ|,Dfc#RSKKd#))DJr$   c                T   V P                   P                  4       pV\        9   d-   V ;P                  V,          un        V P                  V n        R# V P                  P                  R \        R,          RR/4       V P                   P                  V4       V P                  V n        R# r&   rL   r(   r   T)r   r6   r   r   rcdataEndTagNameStater   r)   r7   r   r=   r}   r   s   & r"   r   #HTMLTokenizer.rcdataEndTagOpenState  s    {{!<  D( 33DJ
  OO""FJ|,Dfd#STKKd#))DJr$   c                   V P                   ;'       d=    V P                   R ,          P                  4       V P                  P                  4       8H  pV P                  P	                  4       pV\
        9   d@   V'       d8   R\        R,          R V P                  R. RR/V n         V P                  V n        R
# VR8X  d@   V'       d8   R\        R,          R V P                  R. RR/V n         V P                  V n        R
# VR8X  dP   V'       dH   R\        R,          R V P                  R. RR/V n         V P                  4        V P                  V n        R
# V\        9   d   V ;P                  V,          un        R
# V P                  P                  R\        R,          RR	V P                  ,           /4       V P                  P                  V4       V P                   V n        R
# rb   r&   rd   r(   re   Fr   r   rL   r   T)r   lowerr   r   r6   r   r   r   r   r   rk   r   r   r)   r7   r=   r}   r   appropriater(   s   &  r"   r   #HTMLTokenizer.rcdataEndTagNameState  s   ''mmD,=,=f,E,K,K,MQUQeQeQkQkQm,m{{!?"{!'H)=!')=)=!']E!CD 66DJ& % S[[!'H)=!')=)=!']E!CD 66DJ  S[[!'H)=!')=)=!']E!CD !!#DJ  \!  D(  	 OO""FJ|,D$*D43G3G,G$I JKKd#))DJr$   c                (   V P                   P                  4       pVR 8X  d   RV n        V P                  V n        R# V P
                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# r   )
r   r6   r   rawtextEndTagOpenStater   r)   r7   r   r=   r   r   s   & r"   r   &HTMLTokenizer.rawtextLessThanSignState  sy    {{!3;#%D 44DJ
  OO""FJ|,Dfc#RSKKd#**DJr$   c                T   V P                   P                  4       pV\        9   d-   V ;P                  V,          un        V P                  V n        R# V P                  P                  R \        R,          RR/4       V P                   P                  V4       V P                  V n        R# r   )r   r6   r   r   rawtextEndTagNameStater   r)   r7   r   r=   r   r   s   & r"   r   $HTMLTokenizer.rawtextEndTagOpenState  s    {{!<  D( 44DJ
  OO""FJ|,Dfd#STKKd#**DJr$   c                   V P                   ;'       d=    V P                   R ,          P                  4       V P                  P                  4       8H  pV P                  P	                  4       pV\
        9   d@   V'       d8   R\        R,          R V P                  R. RR/V n         V P                  V n        R
# VR8X  d@   V'       d8   R\        R,          R V P                  R. RR/V n         V P                  V n        R
# VR8X  dP   V'       dH   R\        R,          R V P                  R. RR/V n         V P                  4        V P                  V n        R
# V\        9   d   V ;P                  V,          un        R
# V P                  P                  R\        R,          RR	V P                  ,           /4       V P                  P                  V4       V P                   V n        R
# r   )r   r   r   r   r6   r   r   r   r   r   rk   r   r   r)   r7   r=   r   r   s   &  r"   r   $HTMLTokenizer.rawtextEndTagNameState  s   ''mmD,=,=f,E,K,K,MQUQeQeQkQkQm,m{{!?"{!'H)=!')=)=!']E!CD 66DJ& % S[[!'H)=!')=)=!']E!CD 66DJ  S[[!'H)=!')=)=!']E!CD !!#DJ  \!  D(  	 OO""FJ|,D$*D43G3G,G$I JKKd#**DJr$   c                   V P                   P                  4       pVR 8X  d   RV n        V P                  V n        R# VR8X  d>   V P
                  P                  R\        R,          RR/4       V P                  V n        R# V P
                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# )	r   r1   r   r&   rL   r(   z<!rH   T)r   r6   r   scriptDataEndTagOpenStater   r)   r7   r   scriptDataEscapeStartStater=   r   r   s   & r"   r   )HTMLTokenizer.scriptDataLessThanSignState)  s    {{!3;#%D 77DJ  S[OO""FJ|,Dfd#ST88DJ
  OO""FJ|,Dfc#RSKKd#--DJr$   c                T   V P                   P                  4       pV\        9   d-   V ;P                  V,          un        V P                  V n        R# V P                  P                  R \        R,          RR/4       V P                   P                  V4       V P                  V n        R# r   )r   r6   r   r   scriptDataEndTagNameStater   r)   r7   r   r=   r   r   s   & r"   r   'HTMLTokenizer.scriptDataEndTagOpenState7  s    {{!<  D( 77DJ
  OO""FJ|,Dfd#STKKd#--DJr$   c                   V P                   ;'       d=    V P                   R ,          P                  4       V P                  P                  4       8H  pV P                  P	                  4       pV\
        9   d@   V'       d8   R\        R,          R V P                  R. RR/V n         V P                  V n        R
# VR8X  d@   V'       d8   R\        R,          R V P                  R. RR/V n         V P                  V n        R
# VR8X  dP   V'       dH   R\        R,          R V P                  R. RR/V n         V P                  4        V P                  V n        R
# V\        9   d   V ;P                  V,          un        R
# V P                  P                  R\        R,          RR	V P                  ,           /4       V P                  P                  V4       V P                   V n        R
# r   )r   r   r   r   r6   r   r   r   r   r   rk   r   r   r)   r7   r=   r   r   s   &  r"   r   'HTMLTokenizer.scriptDataEndTagNameStateB  s   ''mmD,=,=f,E,K,K,MQUQeQeQkQkQm,m{{!?"{!'H)=!')=)=!']E!CD 66DJ& % S[[!'H)=!')=)=!']E!CD 66DJ  S[[!'H)=!')=)=!']E!CD !!#DJ  \!  D(  	 OO""FJ|,D$*D43G3G,G$I JKKd#--DJr$   c                   V P                   P                  4       pVR 8X  d>   V P                  P                  R\        R,          RR /4       V P
                  V n        R# V P                   P                  V4       V P                  V n        R# -r&   rL   r(   T)	r   r6   r)   r7   r   scriptDataEscapeStartDashStater   r=   r   r   s   & r"   r   (HTMLTokenizer.scriptDataEscapeStartState^  q    {{!3;OO""FJ|,Dfc#RS<<DJ  KKd#--DJr$   c                   V P                   P                  4       pVR 8X  d>   V P                  P                  R\        R,          RR /4       V P
                  V n        R# V P                   P                  V4       V P                  V n        R# r   )	r   r6   r)   r7   r   scriptDataEscapedDashDashStater   r=   r   r   s   & r"   r   ,HTMLTokenizer.scriptDataEscapeStartDashStateh  r   r$   c                   V P                   P                  4       pVR 8X  d>   V P                  P                  R\        R,          RR /4       V P
                  V n        R	# VR8X  d   V P                  V n        R	# VR8X  dW   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR/4       R	# V\        8X  d   V P                  V n        R	# V P                   P                  R
4      pV P                  P                  R\        R,          RW,           /4       R	# )r   r&   rL   r(   rH   rn   r'   ro   r4   T)rH   r   rn   )r   r6   r)   r7   r   scriptDataEscapedDashStater   "scriptDataEscapedLessThanSignStater   r   rs   rt   s   &  r"   scriptDataEscapedState$HTMLTokenizer.scriptDataEscapedStater  s   {{!3;OO""FJ|,Dfc#RS88DJ  S[@@DJ  XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7  S[DJ
  KK**+?@EOO""FJ|,Df$(L$2 3r$   c                   V P                   P                  4       pVR 8X  d>   V P                  P                  R\        R,          RR /4       V P
                  V n        R	# VR8X  d   V P                  V n        R	# VR8X  dh   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR/4       V P                  V n        R	# V\        8X  d   V P                  V n        R	# V P                  P                  R\        R,          RV/4       V P                  V n        R	# )
r   r&   rL   r(   rH   rn   r'   ro   r4   T)r   r6   r)   r7   r   r   r   r   r   r   r   r   s   & r"   r   (HTMLTokenizer.scriptDataEscapedDashState  s   {{!3;OO""FJ|,Dfc#RS<<DJ  S[@@DJ  XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 744DJ  S[DJ  OO""FJ|,Dfd#ST44DJr$   c                   V P                   P                  4       pVR 8X  d-   V P                  P                  R\        R,          RR /4       R
# VR8X  d   V P
                  V n        R
# VR8X  d>   V P                  P                  R\        R,          RR/4       V P                  V n        R
# VR8X  dh   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR	/4       V P                  V n        R
# V\        8X  d   V P                  V n        R
# V P                  P                  R\        R,          RV/4       V P                  V n        R
# )r   r&   rL   r(   rH   r   rn   r'   ro   r4   T)r   r6   r)   r7   r   r   r   r   r   r   r   r   s   & r"   r   ,HTMLTokenizer.scriptDataEscapedDashDashState  sJ   {{!3;OO""FJ|,Dfc#RS" ! S[@@DJ  S[OO""FJ|,Dfc#RS--DJ  XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 744DJ  S[DJ  OO""FJ|,Dfd#ST44DJr$   c                   V P                   P                  4       pVR 8X  d   RV n        V P                  V n        R# V\
        9   dK   V P                  P                  R\        R,          RRV,           /4       Wn        V P                  V n        R# V P                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# r   )r   r6   r    scriptDataEscapedEndTagOpenStater   r   r)   r7   r    scriptDataDoubleEscapeStartStater=   r   r   s   & r"   r   0HTMLTokenizer.scriptDataEscapedLessThanSignState  s    {{!3;#%D >>DJ  \!OO""FJ|,DfcTXj#YZ#' >>DJ
  OO""FJ|,Dfc#RSKKd#44DJr$   c                .   V P                   P                  4       pV\        9   d   Wn        V P                  V n        R# V P                  P                  R \        R,          RR/4       V P                   P                  V4       V P                  V n        R# r   )r   r6   r   r    scriptDataEscapedEndTagNameStater   r)   r7   r   r=   r   r   s   & r"   r   .HTMLTokenizer.scriptDataEscapedEndTagOpenState  sx    {{!<#' >>DJ
  OO""FJ|,Dfd#STKKd#44DJr$   c                   V P                   ;'       d=    V P                   R ,          P                  4       V P                  P                  4       8H  pV P                  P	                  4       pV\
        9   d@   V'       d8   R\        R,          R V P                  R. RR/V n         V P                  V n        R
# VR8X  d@   V'       d8   R\        R,          R V P                  R. RR/V n         V P                  V n        R
# VR8X  dP   V'       dH   R\        R,          R V P                  R. RR/V n         V P                  4        V P                  V n        R
# V\        9   d   V ;P                  V,          un        R
# V P                  P                  R\        R,          RR	V P                  ,           /4       V P                  P                  V4       V P                   V n        R
# r   )r   r   r   r   r6   r   r   r   r   r   rk   r   r   r)   r7   r=   r   r   s   &  r"   r   .HTMLTokenizer.scriptDataEscapedEndTagNameState  s   ''mmD,=,=f,E,K,K,MQUQeQeQkQkQm,m{{!?"{!'H)=!')=)=!']E!CD 66DJ& % S[[!'H)=!')=)=!']E!CD 66DJ  S[[!'H)=!')=)=!']E!CD !!#DJ  \!  D(  	 OO""FJ|,D$*D43G3G,G$I JKKd#44DJr$   c                H   V P                   P                  4       pV\        \        R4      ,          9   dq   V P                  P                  R\        R,          RV/4       V P                  P                  4       R8X  d   V P                  V n
        R# V P                  V n
         R# V\        9   dF   V P                  P                  R\        R,          RV/4       V ;P                  V,          un        R# V P                   P                  V4       V P                  V n
        R# r   r&   rL   r(   scriptT)r   r   )r   r6   r   r:   r)   r7   r   r   r   scriptDataDoubleEscapedStater   r   r   r=   r   s   & r"   r   .HTMLTokenizer.scriptDataDoubleEscapeStartState  s    {{!Oi
&;;<OO""FJ|,Dfd#ST##))+x7!>>
  "88
  \!OO""FJ|,Dfd#ST  D(   KKd#44DJr$   c                   V P                   P                  4       pVR 8X  d>   V P                  P                  R\        R,          RR /4       V P
                  V n        R
# VR8X  d>   V P                  P                  R\        R,          RR/4       V P                  V n        R
# VR8X  dW   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR/4       R
# V\        8X  d>   V P                  P                  R\        R,          RR	/4       V P                  V n        R
# V P                  P                  R\        R,          RV/4       R
# r   r&   rL   r(   rH   rn   r'   ro   r4   eof-in-script-in-scriptT)
r   r6   r)   r7   r    scriptDataDoubleEscapedDashStater   (scriptDataDoubleEscapedLessThanSignStater   r   r   s   & r"   r   *HTMLTokenizer.scriptDataDoubleEscapedState  sH   {{!3;OO""FJ|,Dfc#RS>>DJ  S[OO""FJ|,Dfc#RSFFDJ  XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7  S[OO""FJ|,Df$=$? @DJ  OO""FJ|,Dfd#STr$   c                ,   V P                   P                  4       pVR 8X  d>   V P                  P                  R\        R,          RR /4       V P
                  V n        R
# VR8X  d>   V P                  P                  R\        R,          RR/4       V P                  V n        R
# VR8X  dh   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR/4       V P                  V n        R
# V\        8X  d>   V P                  P                  R\        R,          RR	/4       V P                  V n        R
# V P                  P                  R\        R,          RV/4       V P                  V n        R
# r   )r   r6   r)   r7   r   $scriptDataDoubleEscapedDashDashStater   r   r   r   r   r   s   & r"   r   .HTMLTokenizer.scriptDataDoubleEscapedDashState  sb   {{!3;OO""FJ|,Dfc#RSBBDJ" ! S[OO""FJ|,Dfc#RSFFDJ  XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7::DJ  S[OO""FJ|,Df$=$? @DJ  OO""FJ|,Dfd#ST::DJr$   c                   V P                   P                  4       pVR 8X  d-   V P                  P                  R\        R,          RR /4       R# VR8X  d>   V P                  P                  R\        R,          RR/4       V P
                  V n        R# VR8X  d>   V P                  P                  R\        R,          RR/4       V P                  V n        R# VR8X  dh   V P                  P                  R\        R,          RR/4       V P                  P                  R\        R,          RR	/4       V P                  V n        R# V\        8X  d>   V P                  P                  R\        R,          RR
/4       V P                  V n        R# V P                  P                  R\        R,          RV/4       V P                  V n        R# )r   r&   rL   r(   rH   r   rn   r'   ro   r4   r   T)r   r6   r)   r7   r   r   r   r   r   r   r   r   s   & r"   r   2HTMLTokenizer.scriptDataDoubleEscapedDashDashState"  s   {{!3;OO""FJ|,Dfc#RS( ' S[OO""FJ|,Dfc#RSFFDJ" ! S[OO""FJ|,Dfc#RS--DJ  XOO""FJ|,D$*,?$A BOO""FJ|,D$*H$6 7::DJ  S[OO""FJ|,Df$=$? @DJ  OO""FJ|,Dfd#ST::DJr$   c                (   V P                   P                  4       pVR 8X  dE   V P                  P                  R\        R,          RR /4       RV n        V P                  V n        R# V P                   P                  V4       V P                  V n        R# )r   r&   rL   r(   r1   T)
r   r6   r)   r7   r   r   scriptDataDoubleEscapeEndStater   r=   r   r   s   & r"   r   6HTMLTokenizer.scriptDataDoubleEscapedLessThanSignState;  sy    {{!3;OO""FJ|,Dfc#RS#%D <<DJ  KKd#::DJr$   c                H   V P                   P                  4       pV\        \        R4      ,          9   dq   V P                  P                  R\        R,          RV/4       V P                  P                  4       R8X  d   V P                  V n
        R# V P                  V n
         R# V\        9   dF   V P                  P                  R\        R,          RV/4       V ;P                  V,          un        R# V P                   P                  V4       V P                  V n
        R# r   )r   r6   r   r:   r)   r7   r   r   r   r   r   r   r   r=   r   s   & r"   r   ,HTMLTokenizer.scriptDataDoubleEscapeEndStateF  s    {{!Oi
&;;<OO""FJ|,Dfd#ST##))+x7!88
  ">>
  \!OO""FJ|,Dfd#ST  D(   KKd#::DJr$   c                   V P                   P                  4       pV\        9   d#   V P                   P                  \        R 4       R # V\        9   d8   V P
                  R,          P                  VR.4       V P                  V n        R # VR8X  d   V P                  4        R # VR8X  d   V P                  V n        R # VR9   db   V P                  P                  R\        R,          RR/4       V P
                  R,          P                  VR.4       V P                  V n        R # VR8X  db   V P                  P                  R\        R,          RR	/4       V P
                  R,          P                  R
R.4       V P                  V n        R # V\        J d>   V P                  P                  R\        R,          RR/4       V P                  V n        R # V P
                  R,          P                  VR.4       V P                  V n        R # )Tr(   r1   r   r   r&   r'   #invalid-character-in-attribute-namern   ro   r4   z#expected-attribute-name-but-got-eof)'"rJ   rH   )r   r6   r   rs   r   r   r7   attributeNameStater   rk   r   r)   r   r   r   r   s   & r"   r   &HTMLTokenizer.beforeAttributeNameStateV  s   {{!?"KK""?D92 1 \!f%,,dBZ800DJ, + S[!!#( ' S[66DJ$ # ))OO""FJ|,Df$I$K Lf%,,dBZ800DJ  XOO""FJ|,D$*,?$A Bf%,,h^<00DJ  S[OO""FJ|,Df$I$K LDJ  f%,,dBZ800DJr$   c                   V P                   P                  4       pR pRpVR8X  d   V P                  V n        EMV\        9   dW   V P
                  R,          R,          ^ ;;,          VV P                   P                  \        R 4      ,           ,          uu&   RpEMzVR8X  d   R pEMoV\        9   d   V P                  V n        EMQVR8X  d   V P                  V n        EM7VR8X  d[   V P                  P                  R\        R,          RR	/4       V P
                  R,          R,          ^ ;;,          R
,          uu&   RpMVR9   d[   V P                  P                  R\        R,          RR/4       V P
                  R,          R,          ^ ;;,          V,          uu&   RpMuV\        J d=   V P                  P                  R\        R,          RR/4       V P                  V n        M/V P
                  R,          R,          ^ ;;,          V,          uu&   RpV'       d   V P
                  R,          R,          ^ ,          P                  \         4      V P
                  R,          R,          ^ &   V P
                  R,          RR  FW  w  rEV P
                  R,          R,          ^ ,          V8X  g   K-  V P                  P                  R\        R,          RR/4        M	  V'       d   V P#                  4        R # )TFrJ   r(   r   r   rn   r&   r'   ro   r4   r   zeof-in-attribute-nameNzduplicate-attributerM   r   r   rH   )r   r6   beforeAttributeValueStater   r   r   rs   r   afterAttributeNameStater   r)   r7   r   r   r   rf   r	   rk   )r   r(   leavingThisState	emitTokenrb   _s   &     r"   r    HTMLTokenizer.attributeNameStatet  s}   {{!	3;77DJ\!f%b)!,&&|T:1; ;,$S[ I_$55DJS[66DJXOO""FJ|,D$*,?$A Bf%b)!,8,$_$OO""FJ|,D$*$I$K L f%b)!,4,$S[OO""FJ|,D$*,C$E FDJf%b)!,4,$
 !!&)"-a0::;KL f%b)!,,,V4Sb9$$V,R03t;OO**FJ|4Lf,A,C D	 : %%'r$   c                J   V P                   P                  4       pV\        9   d#   V P                   P                  \        R 4       R # VR8X  d   V P                  V n        R # VR8X  d   V P                  4        R # V\        9   d8   V P                  R,          P                  VR.4       V P                  V n        R # VR8X  d   V P                  V n        R # VR8X  db   V P                  P                  R\        R,          RR	/4       V P                  R,          P                  R
R.4       V P                  V n        R # VR9   db   V P                  P                  R\        R,          RR/4       V P                  R,          P                  VR.4       V P                  V n        R # V\        J d>   V P                  P                  R\        R,          RR/4       V P                  V n        R # V P                  R,          P                  VR.4       V P                  V n        R # )TrJ   r   r(   r1   r   rn   r&   r'   ro   r4   z&invalid-character-after-attribute-namezexpected-end-of-tag-but-got-eofr   )r   r6   r   rs   r   r   rk   r   r   r7   r   r   r)   r   r   r   r   s   & r"   r   %HTMLTokenizer.afterAttributeNameState  s   {{!?"KK""?D96 5 S[77DJ2 1 S[!!#. - \!f%,,dBZ800DJ( ' S[66DJ$ # XOO""FJ|,D$*,?$A Bf%,,h^<00DJ  _$OO""FJ|,Df$L$N Of%,,dBZ800DJ  S[OO""FJ|,Df$E$G HDJ  f%,,dBZ800DJr$   c                   V P                   P                  4       pV\        9   d#   V P                   P                  \        R 4       R # VR8X  d   V P                  V n        R # VR8X  d/   V P                  V n        V P                   P                  V4       R # VR8X  d   V P                  V n        R # VR8X  d=   V P                  P                  R\        R,          RR/4       V P                  4        R # VR	8X  dk   V P                  P                  R\        R,          RR
/4       V P                  R,          R,          ^;;,          R,          uu&   V P                  V n        R # VR9   dk   V P                  P                  R\        R,          RR/4       V P                  R,          R,          ^;;,          V,          uu&   V P                  V n        R # V\        J d>   V P                  P                  R\        R,          RR/4       V P                  V n        R # V P                  R,          R,          ^;;,          V,          uu&   V P                  V n        R # )Tr   rG   r   r   r&   r'   r(   z.expected-attribute-value-but-got-right-bracketrn   ro   r4   z"equals-in-unquoted-attribute-valuez$expected-attribute-value-but-got-eofrM   )rJ   rH   `)r   r6   r   rs   attributeValueDoubleQuotedStater   attributeValueUnQuotedStater=   attributeValueSingleQuotedStater)   r7   r   rk   r   r   r   r   s   & r"   r   'HTMLTokenizer.beforeAttributeValueState  s   {{!?"KK""?D9: 9 T\==DJ6 5 S[99DJKKd#0 / S[==DJ, + S[OO""FJ|,Df$T$V W!!#$ # XOO""FJ|,D$*,?$A Bf%b)!,8,99DJ  _$OO""FJ|,Df$H$J Kf%b)!,4,99DJ  S[OO""FJ|,Df$J$L MDJ  f%b)!,4,99DJr$   c                   V P                   P                  4       pVR 8X  d   V P                  V n        R	# VR8X  d   V P	                  R 4       R	# VR8X  dZ   V P
                  P                  R\        R,          RR/4       V P                  R,          R
,          ^;;,          R,          uu&   R	# V\        J d>   V P
                  P                  R\        R,          RR/4       V P                  V n        R	# V P                  R,          R
,          ^;;,          VV P                   P                  R4      ,           ,          uu&   R	# )r   rG   rn   r&   r'   r(   ro   r4   z#eof-in-attribute-value-double-quoteTrM   )r   rG   rn   r   r6   afterAttributeValueStater   r_   r)   r7   r   r   r   r   rs   r   s   & r"   r  -HTMLTokenizer.attributeValueDoubleQuotedState  s   {{!4<66DJ  S[))#.  XOO""FJ|,D$*,?$A Bf%b)!,8,  S[OO""FJ|,Df$I$K LDJ  f%b)!,&&'<=1> >,r$   c                   V P                   P                  4       pVR 8X  d   V P                  V n        R	# VR8X  d   V P	                  R 4       R	# VR8X  dZ   V P
                  P                  R\        R,          RR/4       V P                  R,          R
,          ^;;,          R,          uu&   R	# V\        J d>   V P
                  P                  R\        R,          RR/4       V P                  V n        R	# V P                  R,          R
,          ^;;,          VV P                   P                  R4      ,           ,          uu&   R	# )r   rG   rn   r&   r'   r(   ro   r4   z#eof-in-attribute-value-single-quoteTrM   )r   rG   rn   r  r   s   & r"   r  -HTMLTokenizer.attributeValueSingleQuotedState  s   {{!3;66DJ  S[))#.  XOO""FJ|,D$*,?$A Bf%b)!,8,  S[OO""FJ|,Df$I$K LDJ  f%b)!,&&';<1= =,r$   c           	        V P                   P                  4       pV\        9   d   V P                  V n        R
# VR 8X  d   V P                  R4       R
# VR8X  d   V P                  4        R
# VR9   dZ   V P                  P                  R\        R,          RR/4       V P                  R,          R,          ^;;,          V,          uu&   R
# VR8X  dZ   V P                  P                  R\        R,          RR/4       V P                  R,          R,          ^;;,          R,          uu&   R
# V\        J d>   V P                  P                  R\        R,          RR	/4       V P                  V n        R
# V P                  R,          R,          ^;;,          WP                   P                  \        R4      \        ,          4      ,           ,          uu&   R
# )rG   r   r&   r'   r(   z0unexpected-character-in-unquoted-attribute-valuern   ro   r4   z eof-in-attribute-value-no-quotesT)r   r   rJ   rH   r  rM   )rG   r   r   r   rJ   rH   r  rn   )r   r6   r   r   r   r_   rk   r)   r7   r   r   r   r   rs   r:   r   s   & r"   r  )HTMLTokenizer.attributeValueUnQuotedState  s   {{!?"66DJ( ' S[))#.$ # S[!!#   ..OO""FJ|,Df$V$X Yf%b)!,4,  XOO""FJ|,D$*,?$A Bf%b)!,8,  S[OO""FJ|,Df$F$H IDJ  f%b)!,{{7M7MGH?Z8\ 1\ \,r$   c                L   V P                   P                  4       pV\        9   d   V P                  V n        R# VR 8X  d   V P                  4        R# VR8X  d   V P                  V n        R# V\        J dY   V P                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# V P                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# )r   r   r&   r'   r(   z$unexpected-EOF-after-attribute-valuez*unexpected-character-after-attribute-valueT)r   r6   r   r   r   rk   r   r   r)   r7   r   r=   r   r   s   & r"   r  &HTMLTokenizer.afterAttributeValueState+  s    {{!?"66DJ  S[!!#  S[66DJ  S[OO""FJ|,Df$J$L MKKd#DJ 	 OO""FJ|,Df$P$R SKKd#66DJr$   c                   V P                   P                  4       pVR 8X  d"   RV P                  R&   V P                  4        R# V\        J dY   V P
                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n
        R# V P
                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n
        R# )r   Tre   r&   r'   r(   z#unexpected-EOF-after-solidus-in-tagz)unexpected-character-after-solidus-in-tag)r   r6   r   rk   r   r)   r7   r   r=   r   r   r   r   s   & r"   r   &HTMLTokenizer.selfClosingStartTagState?  s    {{!3;/3Dm,!!#  S[OO""FJ|,D$*$I$K L KKd#DJ 	 OO""FJ|,Df$O$Q RKKd#66DJr$   c                
   V P                   P                  R 4      pVP                  RR4      pV P                  P	                  R\
        R,          RV/4       V P                   P                  4        V P                  V n        R# )r   rn   r4   r&   Commentr(   T)	r   rs   replacer)   r7   r   r6   r   r   r   s   & r"   r   HTMLTokenizer.bogusCommentStateQ  sk     {{%%c*||Hh/Z	*FD9	;
 	^^
r$   c           
        V P                   P                  4       .pVR,          R8X  dc   VP                  V P                   P                  4       4       VR,          R8X  d*   R\        R,          RR/V n        V P
                  V n        R# EMVR,          R9   d   RpR F>  pVP                  V P                   P                  4       4       VR,          V9  g   K<  Rp M	  V'       d0   R\        R,          R	RR
RRRRR/V n        V P                  V n        R# MVR,          R8X  d   V P                  e   V P                  P                  P                  '       d   V P                  P                  P                  R,          P                  V P                  P                  P                  8w  db   RpR F>  pVP                  V P                   P                  4       4       VR,          V8w  g   K<  Rp M	  V'       d   V P                  V n        R# V P                  P                  R\        R,          RR/4       V'       d,   V P                   P                  VP!                  4       4       K3  V P"                  V n        R# )   r   r&   r  r(   r1   TFDoctyperb   publicIdNsystemIdcorrect[r'   zexpected-dashes-or-doctyperM   )dD))oOrB   CtTyYpPeE)r"  r  Ar%  r/  r  )r   r6   r7   r   r   commentStartStater   doctypeStater   treeopenElements	namespacedefaultNamespacecdataSectionStater)   r=   r+   r   )r   rA   matchedexpecteds   &   r"   r   (HTMLTokenizer.markupDeclarationOpenState`  s   [[%%'(	R=CT[[--/0}#%+Z	-BFB$O!!33
 $ r]j(GA  !1!1!34R=0#GA %+Z	-B%+R%/z4%.%6! "..
  ms"kk%kk+++kk++B/99T[[=M=M=^=^^G:  !1!1!34R=H,#G	 ;
 !33

<(@& < > 	? KKimmo.++
r$   c                   V P                   P                  4       pVR 8X  d   V P                  V n        R
# VR8X  dL   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   R
# VR8X  dc   V P                  P                  R\        R,          RR/4       V P                  P                  V P                  4       V P                  V n        R
# V\        J dc   V P                  P                  R\        R,          RR	/4       V P                  P                  V P                  4       V P                  V n        R
# V P                  R;;,          V,          uu&   V P                  V n        R
# )r   rn   r&   r'   r(   ro   r4   r   incorrect-commenteof-in-commentT)r   r6   commentStartDashStater   r)   r7   r   r   r   r   commentStater   s   & r"   r0  HTMLTokenizer.commentStartState  sN   {{!3;33DJ$ # XOO""FJ|,D$*,?$A Bf%1%  S[OO""FJ|,Df$7$9 :OO""4#4#45DJ  S[OO""FJ|,Df$4$6 7OO""4#4#45DJ  f%-%**DJr$   c                *   V P                   P                  4       pVR 8X  d   V P                  V n        R
# VR8X  dL   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   R
# VR8X  dc   V P                  P                  R\        R,          RR/4       V P                  P                  V P                  4       V P                  V n        R
# V\        J dc   V P                  P                  R\        R,          RR	/4       V P                  P                  V P                  4       V P                  V n        R
# V P                  R;;,          R V,           ,          uu&   V P                  V n        R
# )r   rn   r&   r'   r(   ro      -�r   r;  r<  T)r   r6   commentEndStater   r)   r7   r   r   r   r   r>  r   s   & r"   r=  #HTMLTokenizer.commentStartDashState  sR   {{!3;--DJ$ # XOO""FJ|,D$*,?$A Bf%2%  S[OO""FJ|,Df$7$9 :OO""4#4#45DJ  S[OO""FJ|,Df$4$6 7OO""4#4#45DJ  f%t3%**DJr$   c                h   V P                   P                  4       pVR 8X  d   V P                  V n        R# VR8X  dL   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   R# V\        J dc   V P                  P                  R\        R,          RR/4       V P                  P                  V P                  4       V P                  V n        R# V P                  R;;,          VV P                   P                  R	4      ,           ,          uu&   R# )
r   rn   r&   r'   r(   ro   r4   r<  T)r   rn   )r   r6   commentEndDashStater   r)   r7   r   r   r   r   rs   r   s   & r"   r>  HTMLTokenizer.commentState  s   {{!3;11DJ  XOO""FJ|,D$*,?$A Bf%1%  S[OO""FJ|,D$*,<$> ?OO""4#4#45DJ  f%&&7*8 8%r$   c                z   V P                   P                  4       pVR 8X  d   V P                  V n        R# VR8X  d]   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   V P                  V n        R# V\        J dc   V P                  P                  R\        R,          RR/4       V P                  P                  V P                  4       V P                  V n        R# V P                  R;;,          R V,           ,          uu&   V P                  V n        R# )	r   rn   r&   r'   r(   ro   rA  zeof-in-comment-end-dashT)r   r6   rB  r   r)   r7   r   r   r>  r   r   r   s   & r"   rE  !HTMLTokenizer.commentEndDashState  s
   {{!3;--DJ  XOO""FJ|,D$*,?$A Bf%2%**DJ  S[OO""FJ|,Df$=$? @OO""4#4#45DJ  f%t3%**DJr$   c                D   V P                   P                  4       pVR 8X  d9   V P                  P                  V P                  4       V P
                  V n        R# VR8X  d]   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   V P                  V n        R# VR8X  d>   V P                  P                  R\        R,          RR/4       V P                  V n        R# VR	8X  dL   V P                  P                  R\        R,          RR
/4       V P                  R;;,          V,          uu&   R# V\        J dc   V P                  P                  R\        R,          RR/4       V P                  P                  V P                  4       V P
                  V n        R# V P                  P                  R\        R,          RR/4       V P                  R;;,          RV,           ,          uu&   V P                  V n        R# )r   rn   r&   r'   r(   ro   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   r6   r)   r7   r   r   r   r   r>  commentEndBangStater   r   s   & r"   rB  HTMLTokenizer.commentEndState  s   {{!3;OO""4#4#45DJ2 1 XOO""FJ|,D$*,?$A Bf%3%**DJ( ' S[OO""FJ|,Df$R$T U11DJ   S[OO""FJ|,Df$R$T Uf%-%  S[OO""FJ|,Df$@$B COO""4#4#45DJ 	 OO""FJ|,Df$@$B Cf%4%**DJr$   c                6   V P                   P                  4       pVR 8X  d9   V P                  P                  V P                  4       V P
                  V n        R
# VR8X  d3   V P                  R;;,          R,          uu&   V P                  V n        R
# VR8X  d]   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   V P                  V n        R
# V\        J dc   V P                  P                  R\        R,          RR	/4       V P                  P                  V P                  4       V P
                  V n        R
# V P                  R;;,          RV,           ,          uu&   V P                  V n        R
# )r   r   r(   z--!rn   r&   r'   ro   u   --!�zeof-in-comment-end-bang-stateT)r   r6   r)   r7   r   r   r   rE  r   r>  r   r   s   & r"   rJ  !HTMLTokenizer.commentEndBangState  sR   {{!3;OO""4#4#45DJ" ! S[f%.%11DJ  XOO""FJ|,D$*,?$A Bf%4%**DJ  S[OO""FJ|,Df$C$E FOO""4#4#45DJ  f%5%**DJr$   c                   V P                   P                  4       pV\        9   d   V P                  V n        R# V\
        J dr   V P                  P                  R \        R,          RR/4       RV P                  R&   V P                  P                  V P                  4       V P                  V n        R# V P                  P                  R \        R,          RR/4       V P                   P                  V4       V P                  V n        R# )r&   r'   r(   !expected-doctype-name-but-got-eofFr  zneed-space-after-doctypeT)r   r6   r   beforeDoctypeNameStater   r   r)   r7   r   r   r   r=   r   s   & r"   r1  HTMLTokenizer.doctypeState  s    {{!?"44DJ  S[OO""FJ|,Df$G$I J+0Di(OO""4#4#45DJ 	 OO""FJ|,Df$>$@ AKKd#44DJr$   c                    V P                   P                  4       pV\        9   d    R# VR 8X  dr   V P                  P	                  R\
        R,          RR/4       RV P                  R&   V P                  P	                  V P                  4       V P                  V n        R# VR8X  dM   V P                  P	                  R\
        R,          RR/4       R	V P                  R
&   V P                  V n        R# V\        J dr   V P                  P	                  R\
        R,          RR/4       RV P                  R&   V P                  P	                  V P                  4       V P                  V n        R# WP                  R
&   V P                  V n        R# )r   r&   r'   r(   z+expected-doctype-name-but-got-right-bracketFr  rn   ro   r4   rb   rO  T)r   r6   r   r)   r7   r   r   r   r   doctypeNameStater   r   s   & r"   rP  $HTMLTokenizer.beforeDoctypeNameState'  sh   {{!?"* ) S[OO""FJ|,Df$Q$S T+0Di(OO""4#4#45DJ  XOO""FJ|,D$*,?$A B(0Df%..DJ  S[OO""FJ|,Df$G$I J+0Di(OO""4#4#45DJ  )-f%..DJr$   c                    V P                   P                  4       pV\        9   dG   V P                  R ,          P	                  \
        4      V P                  R &   V P                  V n        R# VR8X  dl   V P                  R ,          P	                  \
        4      V P                  R &   V P                  P                  V P                  4       V P                  V n        R# VR8X  d]   V P                  P                  R\        R,          RR/4       V P                  R ;;,          R,          uu&   V P                  V n        R# V\        J d   V P                  P                  R\        R,          RR/4       R	V P                  R
&   V P                  R ,          P	                  \
        4      V P                  R &   V P                  P                  V P                  4       V P                  V n        R# V P                  R ;;,          V,          uu&   R# )rb   r   rn   r&   r'   r(   ro   r4   zeof-in-doctype-nameFr  T)r   r6   r   r   rf   r	   afterDoctypeNameStater   r)   r7   r   r   rS  r   r   s   & r"   rS  HTMLTokenizer.doctypeNameStateA  s   {{!?"(,(9(9&(A(K(KL\(]Df%33DJ& % S[(,(9(9&(A(K(KL\(]Df%OO""4#4#45DJ  XOO""FJ|,D$*,?$A Bf%1%..DJ  S[OO""FJ|,Df$9$; <+0Di((,(9(9&(A(K(KL\(]Df%OO""4#4#45DJ  f%-%r$   c           	        V P                   P                  4       pV\        9   d    R# VR 8X  d9   V P                  P	                  V P
                  4       V P                  V n        R# V\        J d   RV P
                  R&   V P                   P                  V4       V P                  P	                  R\        R,          RR/4       V P                  P	                  V P
                  4       V P                  V n        R# VR
9   dL   RpR F'  pV P                   P                  4       pW9  g   K%  Rp M	  V'       d   V P                  V n        R# MQVR9   dK   RpR F'  pV P                   P                  4       pW9  g   K%  Rp M	  V'       d   V P                  V n        R# V P                   P                  V4       V P                  P	                  R\        R,          RRR	RV//4       RV P
                  R&   V P                  V n        R# )r   Fr  r&   r'   r(   eof-in-doctypeTz*expected-space-or-right-bracket-in-doctyper2   r)  ))uU)bB)lL)iIr!  sS)r&  rb  r#  r,  )mM)r   r6   r   r)   r7   r   r   r   r   r=   r   afterDoctypePublicKeywordStateafterDoctypeSystemKeywordStatebogusDoctypeState)r   r(   r7  r8  s   &   r"   rV  #HTMLTokenizer.afterDoctypeNameStateZ  s   {{!?"\ [ S[OO""4#4#45DJV U S[+0Di(KKd#OO""FJ|,Df$4$6 7OO""4#4#45DJH E z!!9H;;++-D+"'!9 !%!D!DDJ  #!9H;;++-D+"'!9 !%!D!DDJ KKd#OO""FJ|,Df$PR\%+TN$4 5 ,1Di(//DJr$   c                   V P                   P                  4       pV\        9   d   V P                  V n        R# VR	9   dY   V P
                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# V\        J dr   V P
                  P                  R\        R,          RR/4       RV P                  R&   V P
                  P                  V P                  4       V P                  V n        R# V P                   P                  V4       V P                  V n        R# 
r   r&   r'   r(   unexpected-char-in-doctyperY  Fr  T)r   r   )r   r6   r   "beforeDoctypePublicIdentifierStater   r)   r7   r   r=   r   r   r   r   s   & r"   rg  ,HTMLTokenizer.afterDoctypePublicKeywordState     {{!?"@@DJ  ZOO""FJ|,Df$@$B CKKd#@@DJ  S[OO""FJ|,Df$4$6 7+0Di(OO""4#4#45DJ  KKd#@@DJr$   c                t   V P                   P                  4       pV\        9   d    R# VR 8X  d#   RV P                  R&   V P                  V n        R# VR8X  d#   RV P                  R&   V P                  V n        R# VR8X  dr   V P                  P                  R\        R,          RR/4       R	V P                  R
&   V P                  P                  V P                  4       V P                  V n        R# V\        J dr   V P                  P                  R\        R,          RR/4       R	V P                  R
&   V P                  P                  V P                  4       V P                  V n        R# V P                  P                  R\        R,          RR/4       R	V P                  R
&   V P                  V n        R# )r   r1   r  r   r   r&   r'   r(   unexpected-end-of-doctypeFr  rY  rm  T)r   r6   r   r   (doctypePublicIdentifierDoubleQuotedStater   (doctypePublicIdentifierSingleQuotedStater)   r7   r   r   r   ri  r   s   & r"   rn  0HTMLTokenizer.beforeDoctypePublicIdentifierState  s   {{!?"0 / T\,.Dj)FFDJ* ) S[,.Dj)FFDJ$ # S[OO""FJ|,Df$?$A B+0Di(OO""4#4#45DJ  S[OO""FJ|,Df$4$6 7+0Di(OO""4#4#45DJ 	 OO""FJ|,Df$@$B C+0Di(//DJr$   c                6   V P                   P                  4       pVR 8X  d   V P                  V n        R# VR8X  dL   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   R# VR8X  dr   V P                  P                  R\        R,          RR	/4       R
V P                  R&   V P                  P                  V P                  4       V P                  V n        R# V\        J dr   V P                  P                  R\        R,          RR/4       R
V P                  R&   V P                  P                  V P                  4       V P                  V n        R# V P                  R;;,          V,          uu&   R# )r   rn   r&   r'   r(   ro   r  r4   r   rr  Fr  rY  T
r   r6   !afterDoctypePublicIdentifierStater   r)   r7   r   r   r   r   r   s   & r"   rs  6HTMLTokenizer.doctypePublicIdentifierDoubleQuotedState  c   {{!4<??DJ& % XOO""FJ|,D$*,?$A Bj)X5)  S[OO""FJ|,Df$?$A B+0Di(OO""4#4#45DJ  S[OO""FJ|,Df$4$6 7+0Di(OO""4#4#45DJ  j)T1)r$   c                6   V P                   P                  4       pVR 8X  d   V P                  V n        R# VR8X  dL   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   R# VR8X  dr   V P                  P                  R\        R,          RR	/4       R
V P                  R&   V P                  P                  V P                  4       V P                  V n        R# V\        J dr   V P                  P                  R\        R,          RR/4       R
V P                  R&   V P                  P                  V P                  4       V P                  V n        R# V P                  R;;,          V,          uu&   R# )r   rn   r&   r'   r(   ro   r  r4   r   rr  Fr  rY  Trw  r   s   & r"   rt  6HTMLTokenizer.doctypePublicIdentifierSingleQuotedState  c   {{!3;??DJ& % XOO""FJ|,D$*,?$A Bj)X5)  S[OO""FJ|,Df$?$A B+0Di(OO""4#4#45DJ  S[OO""FJ|,Df$4$6 7+0Di(OO""4#4#45DJ  j)T1)r$   c                   V P                   P                  4       pV\        9   d   V P                  V n        R# VR 8X  d9   V P
                  P                  V P                  4       V P                  V n        R# VR8X  dM   V P
                  P                  R\        R,          RR/4       RV P                  R&   V P                  V n        R# VR8X  dM   V P
                  P                  R\        R,          RR/4       RV P                  R&   V P                  V n        R# V\        J dr   V P
                  P                  R\        R,          RR	/4       R
V P                  R&   V P
                  P                  V P                  4       V P                  V n        R# V P
                  P                  R\        R,          RR/4       R
V P                  R&   V P                  V n        R# )r   r   r&   r'   r(   rm  r1   r  r   rY  Fr  T)r   r6   r   -betweenDoctypePublicAndSystemIdentifiersStater   r)   r7   r   r   r   (doctypeSystemIdentifierDoubleQuotedState(doctypeSystemIdentifierSingleQuotedStater   ri  r   s   & r"   rx  /HTMLTokenizer.afterDoctypePublicIdentifierState  s   {{!?"KKDJ2 1 S[OO""4#4#45DJ, + S[OO""FJ|,Df$@$B C,.Dj)FFDJ" ! S[OO""FJ|,Df$@$B C,.Dj)FFDJ  S[OO""FJ|,Df$4$6 7+0Di(OO""4#4#45DJ 	 OO""FJ|,Df$@$B C+0Di(//DJr$   c                   V P                   P                  4       pV\        9   d    R# VR 8X  d9   V P                  P	                  V P
                  4       V P                  V n        R# VR8X  d#   RV P
                  R&   V P                  V n        R# VR8X  d#   RV P
                  R&   V P                  V n        R# V\        8X  dr   V P                  P	                  R\        R,          RR/4       R	V P
                  R
&   V P                  P	                  V P
                  4       V P                  V n        R# V P                  P	                  R\        R,          RR/4       R	V P
                  R
&   V P                  V n        R# )r   r   r1   r  r   r&   r'   r(   rY  Fr  rm  T)r   r6   r   r)   r7   r   r   r   r  r  r   r   ri  r   s   & r"   r  ;HTMLTokenizer.betweenDoctypePublicAndSystemIdentifiersState  sZ   {{!?"* ) S[OO""4#4#45DJ$ # S[,.Dj)FFDJ  S[,.Dj)FFDJ  S[OO""FJ|,Df$4$6 7+0Di(OO""4#4#45DJ 	 OO""FJ|,Df$@$B C+0Di(//DJr$   c                   V P                   P                  4       pV\        9   d   V P                  V n        R# VR	9   dY   V P
                  P                  R\        R,          RR/4       V P                   P                  V4       V P                  V n        R# V\        J dr   V P
                  P                  R\        R,          RR/4       RV P                  R&   V P
                  P                  V P                  4       V P                  V n        R# V P                   P                  V4       V P                  V n        R# rl  )r   r6   r   "beforeDoctypeSystemIdentifierStater   r)   r7   r   r=   r   r   r   r   s   & r"   rh  ,HTMLTokenizer.afterDoctypeSystemKeywordState&  rp  r$   c                t   V P                   P                  4       pV\        9   d    R# VR 8X  d#   RV P                  R&   V P                  V n        R# VR8X  d#   RV P                  R&   V P                  V n        R# VR8X  dr   V P                  P                  R\        R,          RR/4       R	V P                  R
&   V P                  P                  V P                  4       V P                  V n        R# V\        J dr   V P                  P                  R\        R,          RR/4       R	V P                  R
&   V P                  P                  V P                  4       V P                  V n        R# V P                  P                  R\        R,          RR/4       R	V P                  R
&   V P                  V n        R# )r   r1   r  r   r   r&   r'   r(   rm  Fr  rY  T)r   r6   r   r   r  r   r  r)   r7   r   r   r   ri  r   s   & r"   r  0HTMLTokenizer.beforeDoctypeSystemIdentifierState:  s   {{!?"0 / T\,.Dj)FFDJ* ) S[,.Dj)FFDJ$ # S[OO""FJ|,Df$@$B C+0Di(OO""4#4#45DJ  S[OO""FJ|,Df$4$6 7+0Di(OO""4#4#45DJ 	 OO""FJ|,Df$@$B C+0Di(//DJr$   c                6   V P                   P                  4       pVR 8X  d   V P                  V n        R# VR8X  dL   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   R# VR8X  dr   V P                  P                  R\        R,          RR	/4       R
V P                  R&   V P                  P                  V P                  4       V P                  V n        R# V\        J dr   V P                  P                  R\        R,          RR/4       R
V P                  R&   V P                  P                  V P                  4       V P                  V n        R# V P                  R;;,          V,          uu&   R# )r   rn   r&   r'   r(   ro   r  r4   r   rr  Fr  rY  T
r   r6   !afterDoctypeSystemIdentifierStater   r)   r7   r   r   r   r   r   s   & r"   r  6HTMLTokenizer.doctypeSystemIdentifierDoubleQuotedStateW  rz  r$   c                6   V P                   P                  4       pVR 8X  d   V P                  V n        R# VR8X  dL   V P                  P                  R\        R,          RR/4       V P                  R;;,          R,          uu&   R# VR8X  dr   V P                  P                  R\        R,          RR	/4       R
V P                  R&   V P                  P                  V P                  4       V P                  V n        R# V\        J dr   V P                  P                  R\        R,          RR/4       R
V P                  R&   V P                  P                  V P                  4       V P                  V n        R# V P                  R;;,          V,          uu&   R# )r   rn   r&   r'   r(   ro   r  r4   r   rr  Fr  rY  Tr  r   s   & r"   r  6HTMLTokenizer.doctypeSystemIdentifierSingleQuotedStateo  r}  r$   c                @   V P                   P                  4       pV\        9   d    R# VR 8X  d9   V P                  P	                  V P
                  4       V P                  V n        R# V\        J dr   V P                  P	                  R\        R,          RR/4       RV P
                  R&   V P                  P	                  V P
                  4       V P                  V n        R# V P                  P	                  R\        R,          RR/4       V P                  V n        R# )	r   r&   r'   r(   rY  Fr  rm  T)r   r6   r   r)   r7   r   r   r   r   r   ri  r   s   & r"   r  /HTMLTokenizer.afterDoctypeSystemIdentifierState  s    {{!?"  S[OO""4#4#45DJ  S[OO""FJ|,Df$4$6 7+0Di(OO""4#4#45DJ
  OO""FJ|,Df$@$B C//DJr$   c                t   V P                   P                  4       pVR 8X  d9   V P                  P                  V P                  4       V P
                  V n        R# V\        J dT   V P                   P                  V4       V P                  P                  V P                  4       V P
                  V n        R#  R# )r   T)	r   r6   r)   r7   r   r   r   r   r=   r   s   & r"   ri  HTMLTokenizer.bogusDoctypeState  s    {{!3;OO""4#4#45DJ  S[KKd#OO""4#4#45DJ  r$   c                   . p VP                  V P                  P                  R4      4       VP                  V P                  P                  R4      4       V P                  P                  4       pV\        8X  d   M=VR8X  g   Q hVR,          RR R8X  d   VR,          RR VR&   MVP                  V4       K  RP                  V4      pVP                  R4      pV^ 8  dO   \        V4       F-  pV P                  P                  R\        R,          R	R
/4       K/  	  VP                  RR4      pV'       d+   V P                  P                  R\        R,          R	V/4       V P                  V n        R # )T]r   Nz]]r1   rn   r&   r'   r(   ro   r4   rL   rM   )r7   r   rs   r6   r   r9   countranger)   r   r  r   r   )r   r(   r6   	nullCountr   s   &    r"   r6  HTMLTokenizer.cdataSectionState  s=   KK..s34KK..s34;;##%Ds{s{"{8BC=D(#Bx}DHKK%wwt}JJx(	q=9%&&
<0H(.0C(E F & <<(3DOO""FJ|,D$*D$2 3^^
r$   )	r   r   r   r   r   r   r   r   r)   )N)NF)Q__name__
__module____qualname____firstlineno____doc__r   r.   rD   r\   r_   rk   r   rq   r}   r{   r   r   r   rr   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   r0  r=  r>  rE  rB  rJ  r1  rP  rS  rV  rg  rn  rs  rt  rx  r  rh  r  r  r  r  ri  r6  __static_attributes____classdictcell____classcell__)r!   __classdict__s   @@r"   r   r      s    
.0 FPNT`H
$8:
:
$$!F0,		8		8	8((,	8 *.2	 <4l@ D&&2($+Z..$&>."421f(:00<4(:00& r$   r   N)      )collectionsr   r   sysr   	constantsr   r   r   r	   r
   r   r   r   r   r   _inputstreamr   _trier   rP   dictrg   r    r$   r"   <module>r     sM    *  &  5 - - 0 , ) H~6LLl lr$   