File "html5parser.cpython-38.opt-1.pyc"

Full Path: /home/attunedd/public_html/byp/izo/con7ext_sym404/rintoar.txt/usr/lib/python3.8/site-packages/pip/_vendor/html5lib/__pycache__/html5parser.cpython-38.opt-1.pyc
File size: 92.15 KB
MIME-type: text/x-bytecode.python
Charset: 8 bit

U

.e@sddlmZmZmZddlmZmZddlZddlm	Z	ddl
mZddl
mZddl
m
Z
dd	lmZdd
l
mZddlmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"d!ddZ#d"ddZ$ddZ%Gddde&Z'ej(ddZ)ddZ*d#ddZ+Gdd d e,Z-dS)$)absolute_importdivisionunicode_literals)with_metaclassviewkeysN)OrderedDict)_inputstream)
_tokenizer)treebuilders)Marker)_utils)spaceCharactersasciiUpper2LowerspecialElementsheadingElements
cdataElementsrcdataElements
tokenTypes
tagTokenTypes
namespaceshtmlIntegrationPointElements"mathmlTextIntegrationPointElementsadjustForeignAttributesadjustMathMLAttributesadjustSVGAttributesE_ReparseExceptionetreeTcKs$t|}t||d}|j|f|S)aParse an HTML document as a string or file-like object into a tree

    :arg doc: the document to parse as a string or file-like object

    :arg treebuilder: the treebuilder to use when parsing

    :arg namespaceHTMLElements: whether or not to namespace HTML elements

    :returns: parsed tree

    Example:

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

    namespaceHTMLElements)rgetTreeBuilder
HTMLParserparse)doctreebuilderr kwargstbpr)D/usr/lib/python3.8/site-packages/pip/_vendor/html5lib/html5parser.pyr#s
r#divcKs,t|}t||d}|j|fd|i|S)a#Parse an HTML fragment as a string or file-like object into a tree

    :arg doc: the fragment to parse as a string or file-like object

    :arg container: the container context to parse the fragment in

    :arg treebuilder: the treebuilder to use when parsing

    :arg namespaceHTMLElements: whether or not to namespace HTML elements

    :returns: parsed tree

    Example:

    >>> from html5lib.html5libparser import parseFragment
    >>> parseFragment('<b>this is a fragment</b>')
    <Element u'DOCUMENT_FRAGMENT' at 0x7feac484b090>

    r	container)rr!r"
parseFragment)r$r,r%r r&r'r(r)r)r*r-2s
r-csGfdddt}|S)NcseZdZfddZdS)z-method_decorator_metaclass.<locals>.Decoratedcs>|D]$\}}t|tjr$|}|||<qt||||SN)items
isinstancetypesFunctionTypetype__new__)metaZ	classnamebasesZ	classDictZ
attributeNameZ	attributefunctionr)r*r4Ms

z5method_decorator_metaclass.<locals>.Decorated.__new__N)__name__
__module____qualname__r4r)r7r)r*	DecoratedLsr<)r3)r8r<r)r7r*method_decorator_metaclassKsr=c@seZdZdZd+ddZd,dd	Zd
dZedd
ZddZ	ddZ
ddZddZddZ
ddZd-ddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*ZdS).r"z]HTML parser

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

    NFTcsL|_|dkrtd}||_g_tfddt|D_dS)a
        :arg tree: a treebuilder class controlling the type of tree that will be
            returned. Built in treebuilders can be accessed through
            html5lib.treebuilders.getTreeBuilder(treeType)

        :arg strict: raise an exception when a parse error is encountered

        :arg namespaceHTMLElements: whether or not to namespace HTML elements

        :arg debug: whether or not to enable debug mode which logs things

        Example:

        >>> from html5lib.html5parser import HTMLParser
        >>> parser = HTMLParser()                     # generates parser with etree builder
        >>> parser = HTMLParser('lxml', strict=True)  # generates parser with lxml builder which is strict

        Nrcs g|]\}}||jfqSr))tree).0nameclsselfr)r*
<listcomp>zsz'HTMLParser.__init__.<locals>.<listcomp>)	strictrr!r>errorsdict	getPhasesr/phases)rCr>rEr debugr)rBr*__init__^s


zHTMLParser.__init__r+cKsh||_||_||_tj|fd|i||_|z|Wn$tk
rb||YnXdS)Nparser)	
innerHTMLModer,	scriptingr
Z
HTMLTokenizer	tokenizerresetmainLoopr)rCstream	innerHTMLr,rNr&r)r)r*_parse}szHTMLParser._parsecCs|jd|_g|_g|_d|_|jr|j|_	|j	t
krL|jj|j_
n0|j	tkrd|jj|j_
n|j	dkr||jj|j_
n|jd|_|j|nd|_	|jd|_d|_d|_d|_dS)NFz	no quirks	plaintext
beforeHtmlinitialT)r>rP
firstStartTagrFlog
compatModerMr,lowerrSrrOrcdataStatestaterrawtextStateplaintextStaterIphaseinsertHtmlElementresetInsertionModeZ	lastPhaseZbeforeRCDataPhase
framesetOKrBr)r)r*rPs*





zHTMLParser.resetcCst|dsdS|jjjdjS)zName of the character encoding that was used to decode the input stream, or
        :obj:`None` if that is not determined yet

        rONr)hasattrrOrRcharEncodingr@rBr)r)r*documentEncodings
zHTMLParser.documentEncodingcCsJ|jdkr6|jtdkr6d|jko4|jdtdkS|j|jftkSdS)Nannotation-xmlmathmlencoding)z	text/htmlzapplication/xhtml+xml)r@	namespacer
attributes	translaterrrCelementr)r)r*isHTMLIntegrationPoints


z!HTMLParser.isHTMLIntegrationPointcCs|j|jftkSr.)rjr@rrmr)r)r*isMathMLTextIntegrationPointsz'HTMLParser.isMathMLTextIntegrationPointcCsXtd}td}td}td}td}td}td}|D]}d}	|}
|
dk	r|
}	|jjrp|jjdnd}|r~|jnd}|r|jnd}
|
d	}||kr||
d
|
did}
qNt|jjdksd||jj	ksd|
|r||kr
|d
tddgksd|||fksd|tdkrH|
dkrH||krH|d
dksd|
|rl||||fkrl|j}n
|jd}||kr||
}
qN||kr||
}
qN||kr||
}
qN||kr||
}
qN||kr||
}
qN||krN||
}
qN||kr@|	dr@|	ds@|dd
|	d
iq@d}g}|rT||j|j}|r.q.dS)N
CharactersZSpaceCharactersStartTagEndTagCommentZDoctype
ParseErrorr3datadatavarsrr@ZmglyphZ
malignmarkrhrgsvginForeignContentselfClosingselfClosingAcknowledgedz&non-void-element-with-trailing-solidusT)rnormalizedTokensr>openElementsrjr@
parseErrorgetlendefaultNamespacerp	frozensetrror`rIprocessCharactersprocessSpaceCharactersprocessStartTag
processEndTagprocessCommentprocessDoctypeappend
processEOF)rCZCharactersTokenZSpaceCharactersTokenZ
StartTagTokenZEndTagTokenZCommentTokenZDoctypeTokenZParseErrorTokentokenZ
prev_token	new_tokencurrentNodeZcurrentNodeNamespaceZcurrentNodeNamer3r`Z	reprocessrIr)r)r*rQs



	









zHTMLParser.mainLoopccs|jD]}||VqdSr.)rOnormalizeTokenrCrr)r)r*r}s
zHTMLParser.normalizedTokenscOs |j|ddf|||jS)aParse a HTML document into a well-formed tree

        :arg stream: a file-like object or string containing the HTML to be parsed

            The optional encoding parameter must be a string that indicates
            the encoding.  If specified, that encoding will be used,
            regardless of any BOM or later declaration (such as in a meta
            element).

        :arg scripting: treat noscript elements as if JavaScript was turned on

        :returns: parsed tree

        Example:

        >>> from html5lib.html5parser import HTMLParser
        >>> parser = HTMLParser()
        >>> parser.parse('<html><body><p>This is a doc</p></body></html>')
        <Element u'{http://www.w3.org/1999/xhtml}html' at 0x7feac4909db0>

        FN)rTr>ZgetDocumentrCrRargsr&r)r)r*r#szHTMLParser.parsecOs|j|df|||jS)aZParse a HTML fragment into a well-formed tree fragment

        :arg container: name of the element we're setting the innerHTML
            property if set to None, default to 'div'

        :arg stream: a file-like object or string containing the HTML to be parsed

            The optional encoding parameter must be a string that indicates
            the encoding.  If specified, that encoding will be used,
            regardless of any BOM or later declaration (such as in a meta
            element)

        :arg scripting: treat noscript elements as if JavaScript was turned on

        :returns: parsed tree

        Example:

        >>> from html5lib.html5libparser import HTMLParser
        >>> parser = HTMLParser()
        >>> parser.parseFragment('<b>this is a fragment</b>')
        <Element u'DOCUMENT_FRAGMENT' at 0x7feac484b090>

        T)rTr>ZgetFragmentrr)r)r*r-$szHTMLParser.parseFragmentXXX-undefined-errorcCs@|dkri}|j|jj||f|jr<tt||dSr.)rFrrOrRZpositionrErur)rCZ	errorcoderxr)r)r*r@s
zHTMLParser.parseErrorcCsT|dtdkrP|d}t||d<t|t|dkrP|d|ddd|S)Nr3rrrwrv)rrrupdate)rCrrawr)r)r*rHszHTMLParser.normalizeTokencCst|tdSr.)adjust_attributesrrr)r)r*rSsz!HTMLParser.adjustMathMLAttributescCst|tdSr.)rrrr)r)r*rVszHTMLParser.adjustSVGAttributescCst|tdSr.)radjustForeignAttributesMaprr)r)r*rYsz"HTMLParser.adjustForeignAttributescCs|jdSr.)rLr`rr)r)r*reparseTokenNormal\szHTMLParser.reparseTokenNormalcCsd}ddddddddddd	d	d
dd}|jjddd
D]r}|j}d}||jjdkr`d}|j}|dkrh|s||j|jjkr|q8||kr|j||}qq8|r8|jd	}qq8||_dS)NFinSelectinCellinRowinTableBody	inCaption
inColumnGroupinTableinBody
inFrameset
beforeHead)selecttdthtrtbodytheadtfootcaptioncolgrouptableheadbodyframesethtmlrvrT)rrrr)r>r~r@rSrjrrIr`)rCZlastZnewModesnodeZnodeNameZ	new_phaser)r)r*rb`s@
zHTMLParser.resetInsertionModecCsF|j||dkr"|jj|j_n|jj|j_|j|_|jd|_dS)NRAWTEXTtext)	r>
insertElementrOr^r]r\r`
originalPhaserI)rCrZcontentTyper)r)r*parseRCDataRawtextszHTMLParser.parseRCDataRawtext)NFTF)Fr+F)rN)r9r:r;__doc__rKrTrPpropertyrfrorprQr}r#r-rrrrrrrbrr)r)r)r*r"Ws(

"
	
C
,r"cs"dd}dd}Gdddt|||Gddd}Gd	d
d
}Gfddd}Gfd
dd}Gfddd}Gfddd}Gfddd}	Gfddd}
Gfddd}Gfddd}Gfddd}
Gfddd}Gfdd d }Gfd!d"d"}Gfd#d$d$}Gfd%d&d&}Gfd'd(d(}Gfd)d*d*}Gfd+d,d,}Gfd-d.d.}Gfd/d0d0}Gfd1d2d2}Gfd3d4d4}|||||||	|
|||
||||||||||||d5S)6Ncs(tddtDfdd}|S)z4Logger that records which phase processes each tokencss|]\}}||fVqdSr.r))r?keyvaluer)r)r*	<genexpr>sz)getPhases.<locals>.log.<locals>.<genexpr>csjdrt|dkr|d}zd|di}WnYnX|dtkr\|d|d<|jj|jjjj|jj	j
j|j
jj|f|f||S|f||SdS)NZprocessrr3r@)r9
startswithrrrLrYrrOr]r`	__class__)rCrr&rinfor8Z
type_namesr)r*wrappeds 
z'getPhases.<locals>.log.<locals>.wrapped)rGrr/)r8rr)rr*rYs
zgetPhases.<locals>.logcSs|rt|StSdSr.)r=r3)Z
use_metaclassZmetaclass_funcr)r)r*getMetaclassszgetPhases.<locals>.getMetaclassc@sXeZdZdZddZddZddZdd	Zd
dZdd
Z	ddZ
ddZddZdS)zgetPhases.<locals>.PhasezNBase class for helper object that implements each phase of processing
        cSs||_||_dSr.)rLr>rCrLr>r)r)r*rKsz!getPhases.<locals>.Phase.__init__cSstdSr.)NotImplementedErrorrBr)r)r*rsz#getPhases.<locals>.Phase.processEOFcSs|j||jjddS)Nrvr>
insertCommentr~rr)r)r*rsz'getPhases.<locals>.Phase.processCommentcSs|jddS)Nzunexpected-doctyperLrrr)r)r*rsz'getPhases.<locals>.Phase.processDoctypecSs|j|ddSNrwr>
insertTextrr)r)r*rsz*getPhases.<locals>.Phase.processCharacterscSs|j|ddSrrrr)r)r*rsz/getPhases.<locals>.Phase.processSpaceCharacterscSs|j|d|SNr@)startTagHandlerrr)r)r*rsz(getPhases.<locals>.Phase.processStartTagcSsf|jjs |ddkr |jd|dD],\}}||jjdjkr,||jjdj|<q,d|j_dS)Nr@rz
non-html-rootrwrF)rLrXrr/r>r~rkrCrattrrr)r)r*startTagHtmlsz%getPhases.<locals>.Phase.startTagHtmlcSs|j|d|Sr)
endTagHandlerrr)r)r*rsz&getPhases.<locals>.Phase.processEndTagN)
r9r:r;rrKrrrrrrrrr)r)r)r*Phases
rc@sLeZdZddZddZddZddZd	d
ZddZd
dZ	ddZ
dS)zgetPhases.<locals>.InitialPhasecSsdSr.r)rr)r)r*rsz6getPhases.<locals>.InitialPhase.processSpaceCharacterscSs|j||jjdSr.r>rZdocumentrr)r)r*rsz.getPhases.<locals>.InitialPhase.processCommentcSs|d}|d}|d}|d}|dks@|dk	s@|dk	rL|dkrL|jd|dkrXd}|j||dkrv|t}|r|ddks|d	s|d
ks|dr|dks|r|dkrd
|j_n$|ds|dr|dk	rd|j_|jj	d|j_
dS)Nr@publicIdsystemIdcorrectrzabout:legacy-compatzunknown-doctype)7z*+//silmaril//dtd html pro v0r11 19970101//z4-//advasoft ltd//dtd html 3.0 aswedit + extensions//z*-//as//dtd html 3.0 aswedit + extensions//z-//ietf//dtd html 2.0 level 1//z-//ietf//dtd html 2.0 level 2//z&-//ietf//dtd html 2.0 strict level 1//z&-//ietf//dtd html 2.0 strict level 2//z-//ietf//dtd html 2.0 strict//z-//ietf//dtd html 2.0//z-//ietf//dtd html 2.1e//z-//ietf//dtd html 3.0//z-//ietf//dtd html 3.2 final//z-//ietf//dtd html 3.2//z-//ietf//dtd html 3//z-//ietf//dtd html level 0//z-//ietf//dtd html level 1//z-//ietf//dtd html level 2//z-//ietf//dtd html level 3//z"-//ietf//dtd html strict level 0//z"-//ietf//dtd html strict level 1//z"-//ietf//dtd html strict level 2//z"-//ietf//dtd html strict level 3//z-//ietf//dtd html strict//z-//ietf//dtd html//z(-//metrius//dtd metrius presentational//z5-//microsoft//dtd internet explorer 2.0 html strict//z.-//microsoft//dtd internet explorer 2.0 html//z0-//microsoft//dtd internet explorer 2.0 tables//z5-//microsoft//dtd internet explorer 3.0 html strict//z.-//microsoft//dtd internet explorer 3.0 html//z0-//microsoft//dtd internet explorer 3.0 tables//z#-//netscape comm. corp.//dtd html//z*-//netscape comm. corp.//dtd strict html//z*-//o'reilly and associates//dtd html 2.0//z3-//o'reilly and associates//dtd html extended 1.0//z;-//o'reilly and associates//dtd html extended relaxed 1.0//zN-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//zE-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//z$-//spyglass//dtd html 2.0 extended//z+-//sq//dtd html 2.0 hotmetal + extensions//z--//sun microsystems corp.//dtd hotjava html//z4-//sun microsystems corp.//dtd hotjava strict html//z-//w3c//dtd html 3 1995-03-24//z-//w3c//dtd html 3.2 draft//z-//w3c//dtd html 3.2 final//z-//w3c//dtd html 3.2//z-//w3c//dtd html 3.2s draft//z-//w3c//dtd html 4.0 frameset//z#-//w3c//dtd html 4.0 transitional//z(-//w3c//dtd html experimental 19960712//z&-//w3c//dtd html experimental 970421//z-//w3c//dtd w3 html//z-//w3o//dtd w3 html 3.0//z#-//webtechs//dtd mozilla html 2.0//z-//webtechs//dtd mozilla html//)z$-//w3o//dtd w3 html strict 3.0//en//z"-/w3c/dtd html 4.0 transitional/enr)z -//w3c//dtd html 4.01 frameset//z$-//w3c//dtd html 4.01 transitional//z:http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtdquirks)z -//w3c//dtd xhtml 1.0 frameset//z$-//w3c//dtd xhtml 1.0 transitional//zlimited quirksrV)rLrr>Z
insertDoctyperlrrr[rZrIr`)rCrr@rrrr)r)r*rsX
9<?@@
A
z.getPhases.<locals>.InitialPhase.processDoctypecSsd|j_|jjd|j_dS)NrrV)rLrZrIr`rBr)r)r*anythingElseMsz,getPhases.<locals>.InitialPhase.anythingElsecSs|jd||S)Nzexpected-doctype-but-got-charsrLrrrr)r)r*rQsz1getPhases.<locals>.InitialPhase.processCharacterscSs"|jdd|di||S)Nz"expected-doctype-but-got-start-tagr@rrr)r)r*rVs

z/getPhases.<locals>.InitialPhase.processStartTagcSs"|jdd|di||S)Nz expected-doctype-but-got-end-tagr@rrr)r)r*r\s

z-getPhases.<locals>.InitialPhase.processEndTagcSs|jd|dS)Nzexpected-doctype-but-got-eofTrrBr)r)r*rbsz*getPhases.<locals>.InitialPhase.processEOFN)r9r:r;rrrrrrrrr)r)r)r*InitialPhases_rc@sDeZdZddZddZddZddZd	d
ZddZd
dZ	dS)z"getPhases.<locals>.BeforeHtmlPhasecSs&|jtdd|jjd|j_dS)Nrrrr)r>Z
insertRootimpliedTagTokenrLrIr`rBr)r)r*raisz4getPhases.<locals>.BeforeHtmlPhase.insertHtmlElementcSs|dSNTrarBr)r)r*rnsz-getPhases.<locals>.BeforeHtmlPhase.processEOFcSs|j||jjdSr.rrr)r)r*rrsz1getPhases.<locals>.BeforeHtmlPhase.processCommentcSsdSr.r)rr)r)r*rusz9getPhases.<locals>.BeforeHtmlPhase.processSpaceCharacterscSs||Sr.rrr)r)r*rxsz4getPhases.<locals>.BeforeHtmlPhase.processCharacterscSs |ddkrd|j_||S)Nr@rT)rLrXrarr)r)r*r|sz2getPhases.<locals>.BeforeHtmlPhase.processStartTagcSs4|ddkr$|jdd|din||SdS)Nr@rrrbrzunexpected-end-tag-before-html)rLrrarr)r)r*rs
z0getPhases.<locals>.BeforeHtmlPhase.processEndTagN)
r9r:r;rarrrrrrr)r)r)r*BeforeHtmlPhasegsrcsXeZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZdS)z"getPhases.<locals>.BeforeHeadPhasecsV|||td|jfd|jfg|_|j|j_td|jfg|_	|j
|j	_dS)Nrrr)rKr
MethodDispatcherrstartTagHeadr
startTagOtherdefaultendTagImplyHeadrendTagOtherrrr)r*rKs
z+getPhases.<locals>.BeforeHeadPhase.__init__cSs|tdddS)NrrrTrrrBr)r)r*rsz-getPhases.<locals>.BeforeHeadPhase.processEOFcSsdSr.r)rr)r)r*rsz9getPhases.<locals>.BeforeHeadPhase.processSpaceCharacterscSs|tdd|SNrrrrrr)r)r*rsz4getPhases.<locals>.BeforeHeadPhase.processCharacterscSs|jjd|SNrrLrIrrr)r)r*rsz/getPhases.<locals>.BeforeHeadPhase.startTagHtmlcSs0|j||jjd|j_|jjd|j_dS)NrvinHead)r>rr~headPointerrLrIr`rr)r)r*rsz/getPhases.<locals>.BeforeHeadPhase.startTagHeadcSs|tdd|Srrrr)r)r*rsz0getPhases.<locals>.BeforeHeadPhase.startTagOthercSs|tdd|Srrrr)r)r*rsz2getPhases.<locals>.BeforeHeadPhase.endTagImplyHeadcSs|jdd|didS)Nzend-tag-after-implied-rootr@rrr)r)r*rs
z.getPhases.<locals>.BeforeHeadPhase.endTagOtherN)r9r:r;rKrrrrrrrrr)rr)r*BeforeHeadPhasesrcseZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZddZddZ
ddZddZddZddZdd Zd!S)"zgetPhases.<locals>.InHeadPhasecs|||td|jfd|jfd|jfd|jfd|jfd|jfd|j	fd|j
fg|_|j|j_
td|jfd	|jfg|_|j|j_
dS)
Nrtitle)noframesstylenoscriptscript)basebasefontbgsoundcommandlinkr5r)rrr)rKr
rr
startTagTitlestartTagNoFramesStylestartTagNoscriptstartTagScriptstartTagBaseLinkCommandstartTagMetarrrr
endTagHeadendTagHtmlBodyBrrrrrr)r*rKs&
z'getPhases.<locals>.InHeadPhase.__init__cSs|dSrrrBr)r)r*rsz)getPhases.<locals>.InHeadPhase.processEOFcSs||Sr.rrr)r)r*rsz0getPhases.<locals>.InHeadPhase.processCharacterscSs|jjd|Srrrr)r)r*rsz+getPhases.<locals>.InHeadPhase.startTagHtmlcSs|jddS)Nz!two-heads-are-not-better-than-onerrr)r)r*rsz+getPhases.<locals>.InHeadPhase.startTagHeadcSs$|j||jjd|d<dSNTr|r>rr~poprr)r)r*rsz6getPhases.<locals>.InHeadPhase.startTagBaseLinkCommandcSs|j||jjd|d<|d}|jjjjddkrd|krZ|jjj|dnVd|krd|kr|d	d	krt
|dd
}t

|}|}|jjj|dS)NTr|rwrZ	tentativecharsetZcontentz
http-equivzcontent-typezutf-8)r>rr~rrLrOrRreZchangeEncodingr[r	Z
EncodingBytesencodeZContentAttrParserr#)rCrrkrwrLcodecr)r)r*rs 
z+getPhases.<locals>.InHeadPhase.startTagMetacSs|j|ddS)NZRCDATArLrrr)r)r*rsz,getPhases.<locals>.InHeadPhase.startTagTitlecSs|j|ddS)Nrrrr)r)r*rsz4getPhases.<locals>.InHeadPhase.startTagNoFramesStylecSs8|jjr|j|dn|j||jjd|j_dS)NrinHeadNoscript)rLrNrr>rrIr`rr)r)r*rsz/getPhases.<locals>.InHeadPhase.startTagNoscriptcSs<|j||jjj|jj_|jj|j_|jjd|j_dS)Nr)	r>rrLrOZscriptDataStater]r`rrIrr)r)r*rsz-getPhases.<locals>.InHeadPhase.startTagScriptcSs||Sr.rrr)r)r*rsz,getPhases.<locals>.InHeadPhase.startTagOthercSs"|jjj}|jjd|j_dS)N	afterHeadrLr>r~rrIr`rCrrr)r)r*rsz)getPhases.<locals>.InHeadPhase.endTagHeadcSs||Sr.rrr)r)r*rsz/getPhases.<locals>.InHeadPhase.endTagHtmlBodyBrcSs|jdd|didSNunexpected-end-tagr@rrr)r)r*rsz*getPhases.<locals>.InHeadPhase.endTagOthercSs|tddS)Nr)rrrBr)r)r*rsz+getPhases.<locals>.InHeadPhase.anythingElseN)r9r:r;rKrrrrrrrrrrrrrrrr)rr)r*InHeadPhases rcsxeZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZddZddZ
ddZddZdS)z&getPhases.<locals>.InHeadNoscriptPhasecsf|||td|jfd|jfd|jfg|_|j|j_td|j	fd|j
fg|_|j|j_dS)Nr)rrrr5rr)rrrr)
rKr
rrrstartTagHeadNoscriptrrrendTagNoscriptendTagBrrrrrr)r*rK s
z/getPhases.<locals>.InHeadNoscriptPhase.__init__cSs|jd|dS)Nzeof-in-head-noscriptTrrBr)r)r*r0sz1getPhases.<locals>.InHeadNoscriptPhase.processEOFcSs|jjd|SNr)rLrIrrr)r)r*r5sz5getPhases.<locals>.InHeadNoscriptPhase.processCommentcSs|jd||S)Nzchar-in-head-noscriptrrr)r)r*r8sz8getPhases.<locals>.InHeadNoscriptPhase.processCharacterscSs|jjd|SrrLrIrrr)r)r*r=sz=getPhases.<locals>.InHeadNoscriptPhase.processSpaceCharacterscSs|jjd|Srrrr)r)r*r@sz3getPhases.<locals>.InHeadNoscriptPhase.startTagHtmlcSs|jjd|Srrrr)r)r*rCsz>getPhases.<locals>.InHeadNoscriptPhase.startTagBaseLinkCommandcSs|jdd|didSNunexpected-start-tagr@rrr)r)r*rFsz;getPhases.<locals>.InHeadNoscriptPhase.startTagHeadNoscriptcSs"|jdd|di||SNzunexpected-inhead-noscript-tagr@rrr)r)r*rIsz4getPhases.<locals>.InHeadNoscriptPhase.startTagOthercSs"|jjj}|jjd|j_dSrr
rr)r)r*rNsz5getPhases.<locals>.InHeadNoscriptPhase.endTagNoscriptcSs"|jdd|di||Srrrr)r)r*rSsz/getPhases.<locals>.InHeadNoscriptPhase.endTagBrcSs|jdd|didSrrrr)r)r*rXsz2getPhases.<locals>.InHeadNoscriptPhase.endTagOthercSs|tddS)Nr)rrrBr)r)r*r[sz3getPhases.<locals>.InHeadNoscriptPhase.anythingElseN)r9r:r;rKrrrrrrrrrrrrr)rr)r*InHeadNoscriptPhasesrcspeZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZddZddZ
ddZdS)z!getPhases.<locals>.AfterHeadPhasecsn|||td|jfd|jfd|jfd|jfd|jfg|_|j	|j_
td|jfg|_|j
|j_
dS)Nrrr)	rrrrr5rrrrr)rrr)rKr
rrstartTagBodystartTagFramesetstartTagFromHeadrrrrrrrrrr)r*rK`s	

z*getPhases.<locals>.AfterHeadPhase.__init__cSs|dSrrrBr)r)r*rqsz,getPhases.<locals>.AfterHeadPhase.processEOFcSs||Sr.rrr)r)r*rusz3getPhases.<locals>.AfterHeadPhase.processCharacterscSs|jjd|Srrrr)r)r*rysz.getPhases.<locals>.AfterHeadPhase.startTagHtmlcSs(d|j_|j||jjd|j_dS)NFr)rLrcr>rrIr`rr)r)r*r|sz.getPhases.<locals>.AfterHeadPhase.startTagBodycSs |j||jjd|j_dS)Nr)r>rrLrIr`rr)r)r*rsz2getPhases.<locals>.AfterHeadPhase.startTagFramesetcSsr|jdd|di|jj|jj|jjd||jjdddD] }|jdkrL|jj	|qnqLdS)Nz#unexpected-start-tag-out-of-my-headr@rrvr)
rLrr>r~rrrIrr@removerr)r)r*rs

z2getPhases.<locals>.AfterHeadPhase.startTagFromHeadcSs|jdd|didSrrrr)r)r*rsz.getPhases.<locals>.AfterHeadPhase.startTagHeadcSs||Sr.rrr)r)r*rsz/getPhases.<locals>.AfterHeadPhase.startTagOthercSs||Sr.rrr)r)r*rsz2getPhases.<locals>.AfterHeadPhase.endTagHtmlBodyBrcSs|jdd|didSrrrr)r)r*rsz-getPhases.<locals>.AfterHeadPhase.endTagOthercSs.|jtdd|jjd|j_d|j_dS)NrrrrT)r>rrrLrIr`rcrBr)r)r*rsz.getPhases.<locals>.AfterHeadPhase.anythingElseN)r9r:r;rKrrrrrrrrrrrr)rr)r*AfterHeadPhase_s
rcseZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZddZddZ
ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Z d=d>Z!d?d@Z"dAdBZ#dCdDZ$dEdFZ%dGdHZ&dIdJZ'dKdLZ(dMdNZ)dOdPZ*dQdRZ+dSdTZ,dUdVZ-dWdXZ.dYdZZ/d[d\Z0d]d^Z1d_d`Z2dadbZ3dcddZ4dedfZ5dgS)hzgetPhases.<locals>.InBodyPhasec$s||||j|_td|jfd|jfd|jfd|jfd|j	ft
|jfd|jfd|j
fd|jfd	|jfd
|jfd|jfd|jfd
|jfd|jfd|jfd|jfd|jfd|jfd|jfd|jfd|jfd|jfd|jfd|jfd|jfd|j fd|j!fd|j"fd|j#fd|j$fd|j%fd |j&fg!|_'|j(|j'_)td|j*fd|j+fd!|j,fd|j-fd"|j.fd#|j/ft
|j0fd$|j1fd|j2fd%|j3fg
|_4|j5|j4_)dS)&Nr)	rrrrrr5rrrrr)addressarticleaside
blockquotecenterdetailsdirr+dlfieldset
figcaptionfigurefooterheaderhgroupmainmenunavolr(sectionsummaryul)prelistingform)lidddtrUa)bbigcodeemfontissmallstrikestrongttunobrbutton)ZappletZmarqueeobjectZxmpr)ZarearembedimgkeygenZwbr)ZparamsourceZtrackinputhrimageisindextextareaZiframer)Znoembedrr)rprt)optionoptgroupZmathry)rcolrframerrrrrrr)rrrr rFr!r"Zdialogr#r+r$r%r&r'r(r)r*r3r+r,r-r.r2r/r0r1r()r6r7r5)r8r9r:r;r<r=r>rEr?r@rArBrCrDr)6rKprocessSpaceCharactersNonPrerr
rrstartTagProcessInHeadrrstartTagClosePrstartTagHeadingstartTagPreListingstartTagFormstartTagListItemstartTagPlaintext	startTagAstartTagFormattingstartTagNobrstartTagButtonstartTagAppletMarqueeObjectstartTagXmp
startTagTablestartTagVoidFormattingstartTagParamSource
startTagInput
startTagHr
startTagImagestartTagIsIndexstartTagTextareastartTagIFramerstartTagRawtextstartTagSelectstartTagRpRtstartTagOptstartTagMathstartTagSvgstartTagMisplacedrrr
endTagBody
endTagHtmlendTagBlock
endTagFormendTagPendTagListItem
endTagHeadingendTagFormattingendTagAppletMarqueeObjectrrrrrr)r*rKs-
z'getPhases.<locals>.InBodyPhase.__init__cSs$|j|jko"|j|jko"|j|jkSr.)r@rjrk)rCZnode1Znode2r)r)r*isMatchingFormattingElements


z:getPhases.<locals>.InBodyPhase.isMatchingFormattingElementcSs|j||jjd}g}|jjdddD](}|tkr@qXq.|||r.||q.t|dkrv|jj|d|jj|dS)Nrv)	r>rr~activeFormattingElementsrr~rrr)rCrrnZmatchingElementsrr)r)r*addFormattingElementsz3getPhases.<locals>.InBodyPhase.addFormattingElementcSs>td}|jjdddD]}|j|kr|jdq:qdS)N)r6r7r5r(rrrrrrrrrvz expected-closing-tag-but-got-eof)rr>r~r@rLr)rCZallowed_elementsrr)r)r*rs

z)getPhases.<locals>.InBodyPhase.processEOFcSsf|d}|j|_|drH|jjdjdkrH|jjdsH|dd}|rb|j|j|dS)Nrw
rv)r2r3rPr)	rWrrr>r~r@Z
hasContent#reconstructActiveFormattingElementsr)rCrrwr)r)r*!processSpaceCharactersDropNewline
s

z@getPhases.<locals>.InBodyPhase.processSpaceCharactersDropNewlinecSsT|ddkrdS|j|j|d|jjrPtdd|dDrPd|j_dS)NrwcSsg|]}|tkqSr)rr?charr)r)r*rD"szDgetPhases.<locals>.InBodyPhase.processCharacters.<locals>.<listcomp>F)r>rrrLrcanyrr)r)r*rs
z0getPhases.<locals>.InBodyPhase.processCharacterscSs|j|j|ddSr)r>rrrr)r)r*rW&s
z;getPhases.<locals>.InBodyPhase.processSpaceCharactersNonPrecSs|jjd|Srrrr)r)r*rX*sz4getPhases.<locals>.InBodyPhase.startTagProcessInHeadcSs||jdddit|jjdksx|jjdjdkr6nBd|j_|dD],\}}||jjdjkrJ||jjdj|<qJdS)Nrr@rrFrw)	rLrrr>r~r@rcr/rkrr)r)r*r-sz+getPhases.<locals>.InBodyPhase.startTagBodycSs|jdddit|jjdks|jjdjdkr6np|jjs@nf|jjdjrj|jjdj|jjd|jjdjdkr|jj	qj|j
||jjd|j_dS)	Nrr@rrrrvrr)
rLrrr>r~r@rcparentremoveChildrrrIr`rr)r)r*r8s"z/getPhases.<locals>.InBodyPhase.startTagFramesetcSs.|jjdddr|td|j|dSNr(rFvariant)r>elementInScoperyrrrr)r)r*rYFsz-getPhases.<locals>.InBodyPhase.startTagClosePcSs>|jjdddr|td|j|d|j_|j|_dS)Nr(rFrF)	r>rryrrrLrcrrrr)r)r*r[Ks
z1getPhases.<locals>.InBodyPhase.startTagPreListingcSsZ|jjr|jdddin:|jjdddr:|td|j||jjd|j_dS)Nrr@r4r(rFrrv)	r>formPointerrLrrryrrr~rr)r)r*r\Rsz+getPhases.<locals>.InBodyPhase.startTagFormcSsd|j_dgddgddgd}||d}t|jjD]@}|j|kr^|jjt|jdqx|j	t
kr6|jdkr6qxq6|jjd	d
dr|jjtd	d|j|dS)NFr5r7r6)r5r7r6r@rs)rr+r(r(rFr)
rLrcreversedr>r~r@r`rr	nameTuplerrr)rCrZstopNamesMapZ	stopNamesrr)r)r*r][s*


z/getPhases.<locals>.InBodyPhase.startTagListItemcSs>|jjdddr|td|j||jjj|jj_dSr)	r>rryrrrLrOr_r]rr)r)r*r^qsz0getPhases.<locals>.InBodyPhase.startTagPlaintextcSsb|jjdddr|td|jjdjtkrR|jdd|di|jj	|j
|dS)Nr(rFrrvrr@)r>rryrr~r@rrLrrrrr)r)r*rZwsz.getPhases.<locals>.InBodyPhase.startTagHeadingcSs~|jd}|rf|jdddd|td||jjkrL|jj|||jjkrf|jj||j	|
|dS)Nr8$unexpected-start-tag-implies-end-tagZ	startNameZendName)r>!elementInActiveFormattingElementsrLrr|rr~rrrr)rCrZafeAElementr)r)r*r_s
z(getPhases.<locals>.InBodyPhase.startTagAcSs|j||dSr.)r>rrrr)r)r*r`s
z1getPhases.<locals>.InBodyPhase.startTagFormattingcSsP|j|jdrB|jdddd|td|j||dS)NrErr)r>rrrLrrrrrr)r)r*ras

z+getPhases.<locals>.InBodyPhase.startTagNobrcSsT|jdr2|jdddd|td|S|j|j|d|j_dS)NrFrrF)	r>rrLrrrrrrcrr)r)r*rbs
z-getPhases.<locals>.InBodyPhase.startTagButtoncSs0|j|j||jjtd|j_dSNF)r>rrrrrrLrcrr)r)r*rcs
z:getPhases.<locals>.InBodyPhase.startTagAppletMarqueeObjectcSsB|jjdddr|td|jd|j_|j|ddS)Nr(rFrFr)r>rryrrrLrcrrr)r)r*rds

z*getPhases.<locals>.InBodyPhase.startTagXmpcSsR|jjdkr*|jjdddr*|td|j|d|j_|jjd|j_	dS)Nrr(rFrFr)
rLrZr>rrrrrcrIr`rr)r)r*resz,getPhases.<locals>.InBodyPhase.startTagTablecSs6|j|j||jjd|d<d|j_dS)NTr|F)r>rrr~rrLrcrr)r)r*rfs

z5getPhases.<locals>.InBodyPhase.startTagVoidFormattingcSs@|jj}||d|dkr<|ddtdkr<||j_dS)Nr3rwhidden)rLrcrfrlr)rCrrcr)r)r*rhs
z,getPhases.<locals>.InBodyPhase.startTagInputcSs$|j||jjd|d<dSrrrr)r)r*rgsz2getPhases.<locals>.InBodyPhase.startTagParamSourcecSsJ|jjdddr|td|j||jjd|d<d|j_dS)Nr(rFrTr|F)	r>rryrrr~rrLrcrr)r)r*risz)getPhases.<locals>.InBodyPhase.startTagHrcSs6|jdddd|tdd|d|dddS)	Nzunexpected-start-tag-treated-asrNrIZoriginalNameZnewNamerrrwr{rkr{)rLrrrrr)r)r*rjs
z,getPhases.<locals>.InBodyPhase.startTagImagecSs|jdddi|jjrdSi}d|dkr>|dd|d<|tdd|d|td	d|td
dd|dkr|dd}nd}|td
|d|d}d|kr|d=d|kr|d=d|d<|tdd||dd|	td
|td	d|	tddS)Nzdeprecated-tagr@rOactionrwr4rr)rkrMZlabelpromptz3This is a searchable index. Enter search keywords: rqr3rwrLr{r)
rLrr>rrrrrcopyr)rCrZ
form_attrsrrkr)r)r*rks<

z.getPhases.<locals>.InBodyPhase.startTagIsIndexcSs0|j||jjj|jj_|j|_d|j_dSr)	r>rrLrOr\r]rrrcrr)r)r*rlsz/getPhases.<locals>.InBodyPhase.startTagTextareacSsd|j_||dSr)rLrcrnrr)r)r*rmsz-getPhases.<locals>.InBodyPhase.startTagIFramecSs"|jjr||n
||dSr.)rLrNrnrrr)r)r*rsz/getPhases.<locals>.InBodyPhase.startTagNoscriptcSs|j|ddS)z8iframe, noembed noframes, noscript(if scripting enabled)rNrrr)r)r*rn
sz.getPhases.<locals>.InBodyPhase.startTagRawtextcSs@|jjdjdkr$|jjtd|j|jj|dSNrvrS)	r>r~r@rLr`rrrrrr)r)r*rqs
z*getPhases.<locals>.InBodyPhase.startTagOptcSs|j|j|d|j_|jj|jjd|jjd|jjd|jjd|jjd|jjdfkrx|jjd|j_n|jjd	|j_dS)
NFrrrrrrinSelectInTabler)r>rrrLrcr`rIrr)r)r*ros





z-getPhases.<locals>.InBodyPhase.startTagSelectcSsB|jdr2|j|jjdjdkr2|j|j|dS)Nrubyrv)r>rgenerateImpliedEndTagsr~r@rLrrrr)r)r*rp%s


z+getPhases.<locals>.InBodyPhase.startTagRpRtcSsZ|j|j||j|td|d<|j||drV|jjd|d<dS)Nrhrjr{Tr|)	r>rrLrrrrr~rrr)r)r*rr,s
z+getPhases.<locals>.InBodyPhase.startTagMathcSsZ|j|j||j|td|d<|j||drV|jjd|d<dS)Nryrjr{Tr|)	r>rrLrrrrr~rrr)r)r*rs8s
z*getPhases.<locals>.InBodyPhase.startTagSvgcSs|jdd|didS)a5 Elements that should be children of other elements that have a
            different insertion mode; here they are ignored
            "caption", "col", "colgroup", "frame", "frameset", "head",
            "option", "optgroup", "tbody", "td", "tfoot", "th", "thead",
            "tr", "noscript"
            zunexpected-start-tag-ignoredr@Nrrr)r)r*rtDsz0getPhases.<locals>.InBodyPhase.startTagMisplacedcSs|j|j|dSr.)r>rrrr)r)r*rMs
z,getPhases.<locals>.InBodyPhase.startTagOthercSs|jjdddsD|tdd|jdddi|tddnT|jd|jjdj	dkrt|jdddi|jj
}|j	dkr|jj
}qdS)	Nr(rFrrrr
r@rsrv)r>rrYrrLrryrr~r@rrr)r)r*ryQs
z&getPhases.<locals>.InBodyPhase.endTagPcSs~|jds|jdS|jjdjdkrj|jjddD],}|jtdkr<|jdd|jdqjq<|jjd|j_dS)Nrrv)r6r7r5rTrSr(rQrRrrrrrrrr$expected-one-end-tag-but-got-anotherZgotNameZexpectedName	afterBody)	r>rrLrr~r@rrIr`rr)r)r*ru^s

z)getPhases.<locals>.InBodyPhase.endTagBodycSs"|jdr|td|SdS)Nr)r>rrurrr)r)r*rvpsz)getPhases.<locals>.InBodyPhase.endTagHtmlcSs|ddkr|j|_|j|d}|r2|j|jjdj|dkr^|jdd|di|r|jj	}|j|dkr|jj	}qndS)Nr@r2rvend-tag-too-early)
rWrr>rrr~r@rLrr)rCrZinScoperr)r)r*rwvs
z*getPhases.<locals>.InBodyPhase.endTagBlockcSsv|jj}d|j_|dks$|j|s8|jdddin:|j|jjd|krd|jdddi|jj|dS)Nr
r@r4rvzend-tag-too-early-ignored)r>rrrLrrr~rrr)r)r*rxs
z)getPhases.<locals>.InBodyPhase.endTagFormcSs|ddkrd}nd}|jj|d|dsB|jdd|dinf|jj|dd|jjdj|dkr|jdd|di|jj}|j|dkr|jj}qdS)	Nr@r5listrr
excludervr)r>rrLrrr~r@r)rCrrrr)r)r*rzs
z-getPhases.<locals>.InBodyPhase.endTagListItemcSstD]}|j|r|jq$q|jjdj|dkrP|jdd|ditD]8}|j|rT|jj}|jtkr|jj}qpqqTdS)Nrvr@r)	rr>rrr~r@rLrr)rCritemr)r)r*r{s

z,getPhases.<locals>.InBodyPhase.endTagHeadingcSsd}|dkr
|d7}|j|d}|rD||jjkrR|j|jsR||dS||jjkr|jdd|di|jj	|dS|j|js|jdd|didS||jjdkr|jd	d|di|jj
|}d}|jj|dD]}|jtkr|}qq|dkrR|jj
}||kr@|jj
}q&|jj	|dS|jj|d}|jj
|}|}	}
d}|jj
|
}|d
krX|d7}|d8}|jj|}
|
|jjkr|jj	|
q|
|krސqX|	|kr|jj
|
d}|
}
|
|jj|jj
|
<|
|jj|jj
|
<|
}
|	jrF|	j|	|
|	|
}	q|	jrl|	j|	|jtdkr|j\}}||	|n
||	|}
||
||
|jj	||jj||
|jj	||jj|jj
|d|
qdS)z)The much-feared adoption agency algorithmrrr@Nzadoption-agency-1.2zadoption-agency-4.4rvzadoption-agency-1.3rrrrrr)r>rr~rr@rrLrrrindexrrrZ	cloneNoderrZappendChildrZgetTableMisnestedNodePositioninsertBeforeZreparentChildreninsert)rCrZouterLoopCounterZformattingElementZafeIndexZ
furthestBlockrnZcommonAncestorZbookmarkZlastNoderZinnerLoopCounterrZclonerrr)r)r*r|s














z/getPhases.<locals>.InBodyPhase.endTagFormattingcSs|j|dr|j|jjdj|dkrF|jdd|di|j|dr|jj}|j|dkr~|jj}qb|jdS)Nr@rvr)	r>rrr~r@rLrrclearActiveFormattingElements)rCrrnr)r)r*r}Ts
z8getPhases.<locals>.InBodyPhase.endTagAppletMarqueeObjectcSs@|jdddd|j|jtdd|jjdS)Nzunexpected-end-tag-treated-asrz
br elementrrr)rLrr>rrrr~rrr)r)r*r`s
z'getPhases.<locals>.InBodyPhase.endTagBrcSs|jjdddD]}|j|dkrz|jj|dd|jjdj|dkrb|jdd|di|jj|krtqbqq|jtkr|jdd|diqqdS)Nrvr@rr
)	r>r~r@rrLrrrrrr)r)r*rgs
z*getPhases.<locals>.InBodyPhase.endTagOtherN)6r9r:r;rKr~rrrrrWrXrrrYr[r\r]r^rZr_r`rarbrcrdrerfrhrgrirjrkrlrmrrnrqrorprrrsrtrryrurvrwrxrzr{r|r}rrr)rr)r*InBodyPhaseshG

	

	

$rcs@eZdZfddZddZddZddZd	d
ZddZd
S)zgetPhases.<locals>.TextPhasecsF|||tg|_|j|j_td|jfg|_|j|j_dS)Nr)	rKr
rrrrendTagScriptrrrrr)r*rKvs
z%getPhases.<locals>.TextPhase.__init__cSs|j|ddSrrrr)r)r*r~sz.getPhases.<locals>.TextPhase.processCharacterscSs8|jdd|jjdji|jj|jj|j_dS)Nz&expected-named-closing-tag-but-got-eofr@rvT)rLrr>r~r@rrr`rBr)r)r*rsz'getPhases.<locals>.TextPhase.processEOFcSsdSr.r)rr)r)r*rsz*getPhases.<locals>.TextPhase.startTagOthercSs|jj}|jj|j_dSr.r>r~rrLrr`rr)r)r*rsz)getPhases.<locals>.TextPhase.endTagScriptcSs|jj|jj|j_dSr.rrr)r)r*rsz(getPhases.<locals>.TextPhase.endTagOtherN)	r9r:r;rKrrrrrr)rr)r*	TextPhaseusrcseZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZddZddZ
ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'S)(zgetPhases.<locals>.InTablePhasec
s|||td|jfd|jfd|jfd|jfd|jfd|jfd|j	fd|j
fd	|jfd
|jfg
|_
|j|j
_td|jfd|jfg|_|j|j_dS)NrrrrUrrr)rrrr)rrrLr4)rrrUrrrrrrrr)rKr
rrstartTagCaptionstartTagColgroupstartTagColstartTagRowGroupstartTagImplyTbodyrestartTagStyleScriptrhr\rrrendTagTableendTagIgnorerrrrr)r*rKs*
z(getPhases.<locals>.InTablePhase.__init__cSs$|jjdjdkr |jjqdS)Nrv)rrr>r~r@rrBr)r)r*clearStackToTableContextsz8getPhases.<locals>.InTablePhase.clearStackToTableContextcSs$|jjdjdkr |jdndS)Nrvrzeof-in-tabler>r~r@rLrrBr)r)r*rsz*getPhases.<locals>.InTablePhase.processEOFcSs4|jj}|jjd|j_||jj_|jj|dSNinTableText)rLr`rIrrrCrrr)r)r*rs
z6getPhases.<locals>.InTablePhase.processSpaceCharacterscSs4|jj}|jjd|j_||jj_|jj|dSr)rLr`rIrrrr)r)r*rs
z1getPhases.<locals>.InTablePhase.processCharacterscSs&d|j_|jjd|d|j_dS)NTrF)r>insertFromTablerLrIrrr)r)r*rsz*getPhases.<locals>.InTablePhase.insertTextcSs6||jjt|j||jjd|j_dS)Nr)	rr>rrrrrLrIr`rr)r)r*rsz/getPhases.<locals>.InTablePhase.startTagCaptioncSs(||j||jjd|j_dS)Nrrr>rrLrIr`rr)r)r*rsz0getPhases.<locals>.InTablePhase.startTagColgroupcSs|tdd|S)Nrrr)rrrr)r)r*rsz+getPhases.<locals>.InTablePhase.startTagColcSs(||j||jjd|j_dSNrrrr)r)r*rsz0getPhases.<locals>.InTablePhase.startTagRowGroupcSs|tdd|S)Nrrr)rrrr)r)r*rsz2getPhases.<locals>.InTablePhase.startTagImplyTbodycSs6|jdddd|jjtd|jjs2|SdS)Nrrr)rLrr`rrrSrr)r)r*resz-getPhases.<locals>.InTablePhase.startTagTablecSs|jjd|Srrrr)r)r*rsz3getPhases.<locals>.InTablePhase.startTagStyleScriptcSsVd|dkrH|ddtdkrH|jd|j||jjn
||dS)Nr3rwrz unexpected-hidden-input-in-table)	rlrrLrr>rr~rrrr)r)r*rhsz-getPhases.<locals>.InTablePhase.startTagInputcSsD|jd|jjdkr@|j||jjd|j_|jjdS)Nzunexpected-form-in-tablerv)rLrr>rrr~rrr)r)r*r\s
z,getPhases.<locals>.InTablePhase.startTagFormcSs<|jdd|did|j_|jjd|d|j_dS)Nz)unexpected-start-tag-implies-table-voodoor@TrF)rLrr>rrIrrr)r)r*rsz-getPhases.<locals>.InTablePhase.startTagOthercSs|jjdddr|j|jjdjdkrJ|jdd|jjdjd|jjdjdkrj|jjqJ|jj|jn
|jdS)Nrrrvzend-tag-too-early-namedr)	r>rrr~r@rLrrrbrr)r)r*r
s
z+getPhases.<locals>.InTablePhase.endTagTablecSs|jdd|didSrrrr)r)r*rsz,getPhases.<locals>.InTablePhase.endTagIgnorecSs<|jdd|did|j_|jjd|d|j_dS)Nz'unexpected-end-tag-implies-table-voodoor@TrF)rLrr>rrIrrr)r)r*r sz+getPhases.<locals>.InTablePhase.endTagOtherN)r9r:r;rKrrrrrrrrrrrerrhr\rrrrr)rr)r*InTablePhases&	
rcsPeZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
dS)z#getPhases.<locals>.InTableTextPhasecs|||d|_g|_dSr.)rKrcharacterTokensrrr)r*rK(sz,getPhases.<locals>.InTableTextPhase.__init__cSsdddd|jD}tdd|DrJtd|d}|jjd|n|rZ|j|g|_dS)NrcSsg|]}|dqS)rwr)r?rr)r)r*rD.szGgetPhases.<locals>.InTableTextPhase.flushCharacters.<locals>.<listcomp>cSsg|]}|tkqSr)rrr)r)r*rD/srqrr)joinrrrrLrIrr>)rCrwrr)r)r*flushCharacters-sz3getPhases.<locals>.InTableTextPhase.flushCharacterscSs||j|j_|Sr.rrrLr`rr)r)r*r6s
z2getPhases.<locals>.InTableTextPhase.processCommentcSs||j|j_dSrrrBr)r)r*r;s
z.getPhases.<locals>.InTableTextPhase.processEOFcSs |ddkrdS|j|dSNrwrrrrr)r)r*r@sz5getPhases.<locals>.InTableTextPhase.processCharacterscSs|j|dSr.rrr)r)r*rEsz:getPhases.<locals>.InTableTextPhase.processSpaceCharacterscSs||j|j_|Sr.rrr)r)r*rJs
z3getPhases.<locals>.InTableTextPhase.processStartTagcSs||j|j_|Sr.rrr)r)r*rOs
z1getPhases.<locals>.InTableTextPhase.processEndTagN)r9r:r;rKrrrrrrrr)rr)r*InTableTextPhase's	rcs`eZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZddZdS)z!getPhases.<locals>.InCaptionPhasecsf|||td|jfd|jfg|_|j|j_td|jfd|j	fd|j
fg|_|j|j_dS)Nr	rrUrrrrrrrrr)
rrUrrrrrrrr)
rKr
rrstartTagTableElementrrr
endTagCaptionrrrrrrr)r*rKVs 
z*getPhases.<locals>.InCaptionPhase.__init__cSs|jjdddS)Nrrrr>rrBr)r)r*ignoreEndTagCaptionhsz5getPhases.<locals>.InCaptionPhase.ignoreEndTagCaptioncSs|jjddSrrLrIrrBr)r)r*rksz,getPhases.<locals>.InCaptionPhase.processEOFcSs|jjd|SrrLrIrrr)r)r*rnsz3getPhases.<locals>.InCaptionPhase.processCharacterscSs0|j|}|jjtd|s,|SdSNrrLrrr`rrrCrignoreEndTagr)r)r*rqs

z6getPhases.<locals>.InCaptionPhase.startTagTableElementcSs|jjd|Srrrr)r)r*rysz/getPhases.<locals>.InCaptionPhase.startTagOthercSs|s|j|jjdjdkrB|jdd|jjdjd|jjdjdkrb|jjqB|jj|j|jj	d|j_
n
|jdS)Nrvrrrr)rr>rr~r@rLrrrrIr`rr)r)r*r|s

z/getPhases.<locals>.InCaptionPhase.endTagCaptioncSs0|j|}|jjtd|s,|SdSrrrr)r)r*rs

z-getPhases.<locals>.InCaptionPhase.endTagTablecSs|jdd|didSrrrr)r)r*rsz.getPhases.<locals>.InCaptionPhase.endTagIgnorecSs|jjd|SrrLrIrrr)r)r*rsz-getPhases.<locals>.InCaptionPhase.endTagOtherN)
r9r:r;rKrrrrrrrrrr)rr)r*InCaptionPhaseTsrcsXeZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZdS)z%getPhases.<locals>.InColumnGroupPhasecs^|||td|jfd|jfg|_|j|j_td|jfd|j	fg|_
|j|j
_dS)NrrUr)rKr
rrrrrrendTagColgroup	endTagColrrrrr)r*rKs
z.getPhases.<locals>.InColumnGroupPhase.__init__cSs|jjdjdkS)Nrvr)r>r~r@rBr)r)r*ignoreEndTagColgroupsz:getPhases.<locals>.InColumnGroupPhase.ignoreEndTagColgroupcSs8|jjdjdkrdS|}|td|s4dSdS)NrvrrT)r>r~r@rrr)rCrr)r)r*rsz0getPhases.<locals>.InColumnGroupPhase.processEOFcSs"|}|td|s|SdSNrrrrrr)r)r*rsz7getPhases.<locals>.InColumnGroupPhase.processCharacterscSs$|j||jjd|d<dSrrrr)r)r*rsz1getPhases.<locals>.InColumnGroupPhase.startTagColcSs"|}|td|s|SdSrrrr)r)r*rsz3getPhases.<locals>.InColumnGroupPhase.startTagOthercSs4|r|jn|jj|jjd|j_dSNr)rrLrr>r~rrIr`rr)r)r*rsz4getPhases.<locals>.InColumnGroupPhase.endTagColgroupcSs|jdddidS)Nz
no-end-tagr@rUrrr)r)r*rsz/getPhases.<locals>.InColumnGroupPhase.endTagColcSs"|}|td|s|SdSrrrr)r)r*rsz1getPhases.<locals>.InColumnGroupPhase.endTagOtherN)r9r:r;rKrrrrrrrrr)rr)r*InColumnGroupPhases
	rcsxeZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZddZddZ
ddZddZdS)z#getPhases.<locals>.InTableBodyPhasecsv|||td|jfd|jfd|jfd|jfg|_|j|j_	td|j
fd|jfd|jfg|_
|j|j
_	dS)Nrrrr)rrUrrrrrr)rrrUrrrrr)rKr
rr
startTagTrstartTagTableCellstartTagTableOtherrrrendTagTableRowGrouprrrrrrr)r*rKs$
z,getPhases.<locals>.InTableBodyPhase.__init__cSs6|jjdjdkr |jjq|jjdjdkr2dS)Nrv)rrrrrrrBr)r)r*clearStackToTableBodyContextsz@getPhases.<locals>.InTableBodyPhase.clearStackToTableBodyContextcSs|jjddSrrrBr)r)r*rsz.getPhases.<locals>.InTableBodyPhase.processEOFcSs|jjd|Srrrr)r)r*rsz:getPhases.<locals>.InTableBodyPhase.processSpaceCharacterscSs|jjd|Srrrr)r)r*rsz5getPhases.<locals>.InTableBodyPhase.processCharacterscSs(||j||jjd|j_dS)Nr)rr>rrLrIr`rr)r)r*rsz.getPhases.<locals>.InTableBodyPhase.startTagTrcSs*|jdd|di|tdd|S)Nzunexpected-cell-in-table-bodyr@rrr)rLrrrrr)r)r*rs

z5getPhases.<locals>.InTableBodyPhase.startTagTableCellcSsb|jjddds0|jjddds0|jjdddrT||t|jjdj|S|jdSNrrrrrrv	r>rrrrr~r@rLrrr)r)r*rsz6getPhases.<locals>.InTableBodyPhase.startTagTableOthercSs|jjd|Srrrr)r)r*rsz1getPhases.<locals>.InTableBodyPhase.startTagOthercSsT|jj|dddr:||jj|jjd|j_n|jdd|didS)Nr@rrr unexpected-end-tag-in-table-body)	r>rrr~rrLrIr`rrr)r)r*r"s
z7getPhases.<locals>.InTableBodyPhase.endTagTableRowGroupcSsb|jjddds0|jjddds0|jjdddrT||t|jjdj|S|jdSrrrr)r)r*r+sz/getPhases.<locals>.InTableBodyPhase.endTagTablecSs|jdd|didS)Nrr@rrr)r)r*r8s
z0getPhases.<locals>.InTableBodyPhase.endTagIgnorecSs|jjd|Srrrr)r)r*r<sz/getPhases.<locals>.InTableBodyPhase.endTagOtherN)r9r:r;rKrrrrrrrrrrrrr)rr)r*InTableBodyPhases
	
rcseZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZddZddZ
ddZddZddZdS)zgetPhases.<locals>.InRowPhasecsv|||td|jfd|jfd|jfg|_|j|j_td|j	fd|j
fd|jfd|jfg|_
|j|j
_dS)Nrr)rrUrrrrrrrr)rrrUrrrr)rKr
rrrrrrrendTagTrrrrrrrrr)r*rKAs$
z&getPhases.<locals>.InRowPhase.__init__cSs@|jjdjdkr<|jdd|jjdji|jjqdS)Nrv)rrz'unexpected-implied-end-tag-in-table-rowr@)r>r~r@rLrrrBr)r)r*clearStackToTableRowContextUs
z9getPhases.<locals>.InRowPhase.clearStackToTableRowContextcSs|jjdddS)NrrrrrBr)r)r*ignoreEndTagTr[sz,getPhases.<locals>.InRowPhase.ignoreEndTagTrcSs|jjddSrrrBr)r)r*r_sz(getPhases.<locals>.InRowPhase.processEOFcSs|jjd|Srrrr)r)r*rbsz4getPhases.<locals>.InRowPhase.processSpaceCharacterscSs|jjd|Srrrr)r)r*resz/getPhases.<locals>.InRowPhase.processCharacterscSs6||j||jjd|j_|jjtdS)Nr)	rr>rrLrIr`rrrrr)r)r*rhsz/getPhases.<locals>.InRowPhase.startTagTableCellcSs"|}|td|s|SdSNrrrrrr)r)r*rnsz0getPhases.<locals>.InRowPhase.startTagTableOthercSs|jjd|Srrrr)r)r*rusz+getPhases.<locals>.InRowPhase.startTagOthercSs<|s.||jj|jjd|j_n
|jdSr)	rrr>r~rrLrIr`rrr)r)r*rxs
z&getPhases.<locals>.InRowPhase.endTagTrcSs"|}|td|s|SdSrrrr)r)r*rsz)getPhases.<locals>.InRowPhase.endTagTablecSs4|jj|dddr&|td|S|jdS)Nr@rrr)r>rrrrLrrr)r)r*rsz1getPhases.<locals>.InRowPhase.endTagTableRowGroupcSs|jdd|didS)Nzunexpected-end-tag-in-table-rowr@rrr)r)r*rs
z*getPhases.<locals>.InRowPhase.endTagIgnorecSs|jjd|Srrrr)r)r*rsz)getPhases.<locals>.InRowPhase.endTagOtherN)r9r:r;rKrrrrrrrrrrrrrr)rr)r*
InRowPhase?s
rcs`eZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZddZdS)zgetPhases.<locals>.InCellPhasecsf|||td|jfd|jfg|_|j|j_td|jfd|j	fd|j
fg|_|j|j_dS)Nrrr)rrrUrrr)
rKr
rrrrrrendTagTableCellrendTagImplyrrrrr)r*rKs
z'getPhases.<locals>.InCellPhase.__init__cSsB|jjdddr |tdn|jjdddr>|tddSNrrrr)r>rrrrBr)r)r*	closeCellsz(getPhases.<locals>.InCellPhase.closeCellcSs|jjddSrrrBr)r)r*rsz)getPhases.<locals>.InCellPhase.processEOFcSs|jjd|Srrrr)r)r*rsz0getPhases.<locals>.InCellPhase.processCharacterscSs:|jjddds |jjdddr,||S|jdSrr>rrrLrrr)r)r*rsz1getPhases.<locals>.InCellPhase.startTagTableOthercSs|jjd|Srrrr)r)r*rsz,getPhases.<locals>.InCellPhase.startTagOthercSs|jj|dddr|j|d|jjdj|dkrp|jdd|di|jj}|j|dkrPq|qPn|jj|j|jj	d|j_
n|jdd|didS)Nr@rrrvzunexpected-cell-end-tagrr
)r>rrr~r@rLrrrrIr`rr)r)r*rs

z.getPhases.<locals>.InCellPhase.endTagTableCellcSs|jdd|didSrrrr)r)r*rsz+getPhases.<locals>.InCellPhase.endTagIgnorecSs.|jj|dddr ||S|jdS)Nr@rrrrr)r)r*rsz*getPhases.<locals>.InCellPhase.endTagImplycSs|jjd|Srrrr)r)r*rsz*getPhases.<locals>.InCellPhase.endTagOtherN)
r9r:r;rKrrrrrrrrrr)rr)r*InCellPhases
rcsxeZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZddZddZ
ddZddZdS)z getPhases.<locals>.InSelectPhasec	s|||td|jfd|jfd|jfd|jfd|jfd|jfg|_	|j
|j	_td|jfd|j
fd|jfg|_|j|j_dS)NrrSrTr)rLrJrPr)rKr
rrstartTagOptionstartTagOptgrouprorhrrrrendTagOptionendTagOptgroupendTagSelectrrrrr)r*rKs 
z)getPhases.<locals>.InSelectPhase.__init__cSs$|jjdjdkr |jdndS)Nrvrz
eof-in-selectrrBr)r)r*rsz+getPhases.<locals>.InSelectPhase.processEOFcSs$|ddkrdS|j|ddSrrrr)r)r*r	sz2getPhases.<locals>.InSelectPhase.processCharacterscSs.|jjdjdkr|jj|j|dSrr>r~r@rrrr)r)r*r	sz/getPhases.<locals>.InSelectPhase.startTagOptioncSsL|jjdjdkr|jj|jjdjdkr<|jj|j|dS)NrvrSrTrrr)r)r*r	s
z1getPhases.<locals>.InSelectPhase.startTagOptgroupcSs|jd|tddS)Nzunexpected-select-in-selectr)rLrrrrr)r)r*ro	sz/getPhases.<locals>.InSelectPhase.startTagSelectcSs2|jd|jjdddr.|td|SdS)Nzunexpected-input-in-selectrr)rLrr>rrrrr)r)r*rh	s
z.getPhases.<locals>.InSelectPhase.startTagInputcSs|jjd|Srrrr)r)r*r	sz/getPhases.<locals>.InSelectPhase.startTagScriptcSs|jdd|didS)Nzunexpected-start-tag-in-selectr@rrr)r)r*r!	s
z.getPhases.<locals>.InSelectPhase.startTagOthercSs6|jjdjdkr |jjn|jdddidS)NrvrSunexpected-end-tag-in-selectr@r>r~r@rrLrrr)r)r*r%	s
z-getPhases.<locals>.InSelectPhase.endTagOptioncSsf|jjdjdkr0|jjdjdkr0|jj|jjdjdkrP|jjn|jdddidS)NrvrSrTrr@rrr)r)r*r,	sz/getPhases.<locals>.InSelectPhase.endTagOptgroupcSsN|jjdddr@|jj}|jdkr4|jj}q|jn
|jdS)Nrr)r>rr~rr@rLrbrrr)r)r*r9	s
z-getPhases.<locals>.InSelectPhase.endTagSelectcSs|jdd|didS)Nrr@rrr)r)r*rD	s
z,getPhases.<locals>.InSelectPhase.endTagOtherN)r9r:r;rKrrrrrorhrrrrrrr)rr)r*
InSelectPhases
rcsHeZdZfddZddZddZddZd	d
ZddZd
dZ	dS)z'getPhases.<locals>.InSelectInTablePhasecsN|||td|jfg|_|j|j_td|jfg|_|j	|j_dS)N)rrrrrrrr)
rKr
rrerrrrrrrrr)r*rKI	s
z0getPhases.<locals>.InSelectInTablePhase.__init__cSs|jjddSNrrrBr)r)r*rX	sz2getPhases.<locals>.InSelectInTablePhase.processEOFcSs|jjd|Srrrr)r)r*r[	sz9getPhases.<locals>.InSelectInTablePhase.processCharacterscSs(|jdd|di|td|S)Nz5unexpected-table-element-start-tag-in-select-in-tabler@r)rLrrrrr)r)r*re^	sz5getPhases.<locals>.InSelectInTablePhase.startTagTablecSs|jjd|Srrrr)r)r*rc	sz5getPhases.<locals>.InSelectInTablePhase.startTagOthercSs@|jdd|di|jj|dddr<|td|SdS)Nz3unexpected-table-element-end-tag-in-select-in-tabler@rrr)rLrr>rrrrr)r)r*rf	sz3getPhases.<locals>.InSelectInTablePhase.endTagTablecSs|jjd|Srrrr)r)r*rl	sz3getPhases.<locals>.InSelectInTablePhase.endTagOtherN)
r9r:r;rKrrrerrrr)rr)r*InSelectInTablePhaseH	src-seZdZeddddddddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,g,Zfd-d.Zd/d0Zfd1d2Zd3d4Zd5d6Z	d7S)8z(getPhases.<locals>.InForeignContentPhaser9r:r rrr!r;r6r+r$r7r<rHZh1Zh2Zh3Zh4Zh5Zh6rrMr>rIr5r3r,r5rEr.r(r2rr?r@spanrBrAsubZsuprrCrDr1varcs|||dSr.)rKrrr)r*rKy	sz1getPhases.<locals>.InForeignContentPhase.__init__c%Ssnddddddddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%$}|d&|krj||d&|d&<dS)'NZaltGlyphZaltGlyphDefZaltGlyphItemZanimateColorZ
animateMotionZanimateTransformZclipPathZfeBlendZ
feColorMatrixZfeComponentTransferZfeCompositeZfeConvolveMatrixZfeDiffuseLightingZfeDisplacementMapZfeDistantLightZfeFloodZfeFuncAZfeFuncBZfeFuncGZfeFuncRZfeGaussianBlurZfeImageZfeMergeZfeMergeNodeZfeMorphologyZfeOffsetZfePointLightZfeSpecularLightingZfeSpotLightZfeTileZfeTurbulenceZ
foreignObjectZglyphRefZlinearGradientZradialGradientZtextPath)$ZaltglyphZaltglyphdefZaltglyphitemZanimatecolorZ
animatemotionZanimatetransformZclippathZfeblendZ
fecolormatrixZfecomponenttransferZfecompositeZfeconvolvematrixZfediffuselightingZfedisplacementmapZfedistantlightZfefloodZfefuncaZfefuncbZfefuncgZfefuncrZfegaussianblurZfeimageZfemergeZfemergenodeZfemorphologyZfeoffsetZfepointlightZfespecularlightingZfespotlightZfetileZfeturbulenceZ
foreignobjectZglyphrefZlineargradientZradialgradientZtextpathr@r))rCrreplacementsr)r)r*adjustSVGTagNames|	sN%z:getPhases.<locals>.InForeignContentPhase.adjustSVGTagNamescsL|ddkrd|d<n&|jjr<tdd|dDr<d|j_||dS)Nrwru�css|]}|tkVqdSr.rrr)r)r*r	szMgetPhases.<locals>.InForeignContentPhase.processCharacters.<locals>.<genexpr>F)rLrcrrrrr)r*r	s
z:getPhases.<locals>.InForeignContentPhase.processCharacterscSs.|jjd}|d|jksD|ddkrt|dtdddg@r|jdd|di|jjdj|jjkr|j	|jjds|j
|jjds|jjqZ|S|jtd	kr|j
|n$|jtd
kr|||j||j||j|d<|j||dr*|jjd
|d<dS)Nrvr@r=rwZcolorZfacesizez*unexpected-html-element-in-foreign-contentrhryrjr{Tr|)r>r~breakoutElementssetkeysrLrrjrrorprrrr
rrr)rCrrr)r)r*r	s:




z8getPhases.<locals>.InForeignContentPhase.processStartTagcSst|jjd}|jjd}|jt|dkrF|jdd|di|jt|dkr|jj|jj	dkr|jj
|jjj|j_|jj|krqd}q|d8}|jj|}|j
|jjkrqFqF|jj|}qqF|S)Nrrvr@r
r)rr>r~r@rlrrLrr`rIrrrrjrr)rCrZ	nodeIndexrrr)r)r*r	s&z6getPhases.<locals>.InForeignContentPhase.processEndTagN)
r9r:r;rrrKr
rrrr)rr)r*InForeignContentPhaseo	s\	)rcsPeZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
dS)z!getPhases.<locals>.AfterBodyPhasecsN|||td|jfg|_|j|j_td|jfg|_|j	|j_dSNr)
rKr
rrrrrrvrrrrr)r*rK	s
z*getPhases.<locals>.AfterBodyPhase.__init__cSsdSr.r)rBr)r)r*r	sz,getPhases.<locals>.AfterBodyPhase.processEOFcSs|j||jjddS)Nrrrr)r)r*r	sz0getPhases.<locals>.AfterBodyPhase.processCommentcSs |jd|jjd|j_|S)Nzunexpected-char-after-bodyrrLrrIr`rr)r)r*r	sz3getPhases.<locals>.AfterBodyPhase.processCharacterscSs|jjd|Srrrr)r)r*r	sz.getPhases.<locals>.AfterBodyPhase.startTagHtmlcSs*|jdd|di|jjd|j_|S)Nzunexpected-start-tag-after-bodyr@rrrr)r)r*r	s

z/getPhases.<locals>.AfterBodyPhase.startTagOthercSs*|jjr|jdn|jjd|j_dS)Nz'unexpected-end-tag-after-body-innerhtmlafterAfterBody)rLrSrrIr`)rCr@r)r)r*rv
sz,getPhases.<locals>.AfterBodyPhase.endTagHtmlcSs*|jdd|di|jjd|j_|S)Nzunexpected-end-tag-after-bodyr@rrrr)r)r*r
s

z-getPhases.<locals>.AfterBodyPhase.endTagOtherN)r9r:r;rKrrrrrrvrr)rr)r*AfterBodyPhase	srcsXeZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZdS)z"getPhases.<locals>.InFramesetPhasecsf|||td|jfd|jfd|jfd|jfg|_|j|j_	td|j
fg|_|j|j_	dS)NrrrVr)
rKr
rrr
startTagFramestartTagNoframesrrrendTagFramesetrrrrr)r*rK
s
z+getPhases.<locals>.InFramesetPhase.__init__cSs$|jjdjdkr |jdndS)Nrvrzeof-in-framesetrrBr)r)r*r#
sz-getPhases.<locals>.InFramesetPhase.processEOFcSs|jddS)Nzunexpected-char-in-framesetrrr)r)r*r)
sz4getPhases.<locals>.InFramesetPhase.processCharacterscSs|j|dSr.)r>rrr)r)r*r,
sz3getPhases.<locals>.InFramesetPhase.startTagFramesetcSs|j||jjdSr.rrr)r)r*r/
sz0getPhases.<locals>.InFramesetPhase.startTagFramecSs|jjd|Srrrr)r)r*r3
sz3getPhases.<locals>.InFramesetPhase.startTagNoframescSs|jdd|didS)Nz unexpected-start-tag-in-framesetr@rrr)r)r*r6
s
z0getPhases.<locals>.InFramesetPhase.startTagOthercSsZ|jjdjdkr |jdn|jj|jjsV|jjdjdkrV|jjd|j_dS)Nrvrz)unexpected-frameset-in-frameset-innerhtmlr
afterFrameset)	r>r~r@rLrrrSrIr`rr)r)r*r:
sz1getPhases.<locals>.InFramesetPhase.endTagFramesetcSs|jdd|didS)Nzunexpected-end-tag-in-framesetr@rrr)r)r*rF
s
z.getPhases.<locals>.InFramesetPhase.endTagOtherN)r9r:r;rKrrrrrrrrr)rr)r*InFramesetPhase
srcsHeZdZfddZddZddZddZd	d
ZddZd
dZ	dS)z%getPhases.<locals>.AfterFramesetPhasecsV|||td|jfd|jfg|_|j|j_td|jfg|_	|j
|j	_dSNrr)rKr
rrrrrrrvrrrrr)r*rKL
s
z.getPhases.<locals>.AfterFramesetPhase.__init__cSsdSr.r)rBr)r)r*rZ
sz0getPhases.<locals>.AfterFramesetPhase.processEOFcSs|jddS)Nzunexpected-char-after-framesetrrr)r)r*r^
sz7getPhases.<locals>.AfterFramesetPhase.processCharacterscSs|jjd|Srrrr)r)r*ra
sz6getPhases.<locals>.AfterFramesetPhase.startTagNoframescSs|jdd|didS)Nz#unexpected-start-tag-after-framesetr@rrr)r)r*rd
s
z3getPhases.<locals>.AfterFramesetPhase.startTagOthercSs|jjd|j_dS)NafterAfterFrameset)rLrIr`rr)r)r*rvh
sz0getPhases.<locals>.AfterFramesetPhase.endTagHtmlcSs|jdd|didS)Nz!unexpected-end-tag-after-framesetr@rrr)r)r*rk
s
z1getPhases.<locals>.AfterFramesetPhase.endTagOtherN)
r9r:r;rKrrrrrvrr)rr)r*AfterFramesetPhaseJ
srcsPeZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
dS)z&getPhases.<locals>.AfterAfterBodyPhasecs0|||td|jfg|_|j|j_dSr)rKr
rrrrrrrr)r*rKp
s
z/getPhases.<locals>.AfterAfterBodyPhase.__init__cSsdSr.r)rBr)r)r*rx
sz1getPhases.<locals>.AfterAfterBodyPhase.processEOFcSs|j||jjdSr.rrr)r)r*r{
sz5getPhases.<locals>.AfterAfterBodyPhase.processCommentcSs|jjd|Srrrr)r)r*r~
sz=getPhases.<locals>.AfterAfterBodyPhase.processSpaceCharacterscSs |jd|jjd|j_|S)Nexpected-eof-but-got-charrrrr)r)r*r
sz8getPhases.<locals>.AfterAfterBodyPhase.processCharacterscSs|jjd|Srrrr)r)r*r
sz3getPhases.<locals>.AfterAfterBodyPhase.startTagHtmlcSs*|jdd|di|jjd|j_|S)Nexpected-eof-but-got-start-tagr@rrrr)r)r*r
s

z4getPhases.<locals>.AfterAfterBodyPhase.startTagOthercSs*|jdd|di|jjd|j_|S)Nexpected-eof-but-got-end-tagr@rrrr)r)r*r
s

z4getPhases.<locals>.AfterAfterBodyPhase.processEndTagN)r9r:r;rKrrrrrrrr)rr)r*AfterAfterBodyPhaseo
srcsXeZdZfddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZdS)z*getPhases.<locals>.AfterAfterFramesetPhasecs8|||td|jfd|jfg|_|j|j_dSr)rKr
rrstartTagNoFramesrrrrrr)r*rK
sz3getPhases.<locals>.AfterAfterFramesetPhase.__init__cSsdSr.r)rBr)r)r*r
sz5getPhases.<locals>.AfterAfterFramesetPhase.processEOFcSs|j||jjdSr.rrr)r)r*r
sz9getPhases.<locals>.AfterAfterFramesetPhase.processCommentcSs|jjd|Srrrr)r)r*r
szAgetPhases.<locals>.AfterAfterFramesetPhase.processSpaceCharacterscSs|jddS)Nrrrr)r)r*r
sz<getPhases.<locals>.AfterAfterFramesetPhase.processCharacterscSs|jjd|Srrrr)r)r*r
sz7getPhases.<locals>.AfterAfterFramesetPhase.startTagHtmlcSs|jjd|Srrrr)r)r*r 
sz;getPhases.<locals>.AfterAfterFramesetPhase.startTagNoFramescSs|jdd|didS)Nrr@rrr)r)r*r
s
z8getPhases.<locals>.AfterAfterFramesetPhase.startTagOthercSs|jdd|didS)Nrr@rrr)r)r*r
s
z8getPhases.<locals>.AfterAfterFramesetPhase.processEndTagN)r9r:r;rKrrrrrr rrr)rr)r*AfterAfterFramesetPhase
s	r!)rWrVrrrr	rrrrrrrrrrrrzrrrrr)r)rJrYrrrrrrrrrrrrrrrrrrrrrrrr!r)rr*rHsr)#.g@CX!-GBbYLd's/9%&&rHcs>t|dt@}|r:tfdd|dD|d<dS)Nrwc3s"|]\}}|||fVqdSr.)r)r?kvr	r)r*r
sz$adjust_attributes.<locals>.<genexpr>)rrr/)rr	Zneeds_adjustmentr)r$r*r
s

rrsFcCs|dkri}t||||dS)N)r3r@rwr{)r)r@r3rkr{r)r)r*r
s

rc@seZdZdZdS)ruzError in parsed documentN)r9r:r;rr)r)r)r*ru
sru)rT)r+rT)rsNF).Z
__future__rrrZpip._vendor.sixrrr1collectionsrrr	r
rZtreebuilders.baserr
Z	constantsrrrrrrrrrrrrrrrrrr#r-r=rGr"ZmemoizerHrr	Exceptionrur)r)r)r*<module>sPH

G
K