{
    "tests": [
        {
            "fragmentContext": null,
            "description": "<head></head><style></style>",
            "input": "<head></head><style></style>",
            "output": [
                [
                    "StartTag",
                    "head",
                    {}
                ],
                [
                    "EndTag",
                    "head"
                ],
                [
                    "StartTag",
                    "style",
                    {}
                ],
                [
                    "EndTag",
                    "style"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<head></head><script></script>",
            "input": "<head></head><script></script>",
            "output": [
                [
                    "StartTag",
                    "head",
                    {}
                ],
                [
                    "EndTag",
                    "head"
                ],
                [
                    "StartTag",
                    "script",
                    {}
                ],
                [
                    "EndTag",
                    "script"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<head></head><!-- --><style></style><!-- --><script></script>",
            "input": "<head></head><!-- --><style></style><!-- --><script></script>",
            "output": [
                [
                    "StartTag",
                    "head",
                    {}
                ],
                [
                    "EndTag",
                    "head"
                ],
                [
                    "Comment",
                    " "
                ],
                [
                    "StartTag",
                    "style",
                    {}
                ],
                [
                    "EndTag",
                    "style"
                ],
                [
                    "Comment",
                    " "
                ],
                [
                    "StartTag",
                    "script",
                    {}
                ],
                [
                    "EndTag",
                    "script"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<head></head><!-- -->x<style></style><!-- --><script></script>",
            "input": "<head></head><!-- -->x<style></style><!-- --><script></script>",
            "output": [
                [
                    "StartTag",
                    "head",
                    {}
                ],
                [
                    "EndTag",
                    "head"
                ],
                [
                    "Comment",
                    " "
                ],
                [
                    "Character",
                    "x"
                ],
                [
                    "StartTag",
                    "style",
                    {}
                ],
                [
                    "EndTag",
                    "style"
                ],
                [
                    "Comment",
                    " "
                ],
                [
                    "StartTag",
                    "script",
                    {}
                ],
                [
                    "EndTag",
                    "script"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!DOCTYPE html><html><head></head><body><pre>\\n</pre></body></html>",
            "input": "<!DOCTYPE html><html><head></head><body><pre>\n</pre></body></html>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "html",
                    {}
                ],
                [
                    "StartTag",
                    "head",
                    {}
                ],
                [
                    "EndTag",
                    "head"
                ],
                [
                    "StartTag",
                    "body",
                    {}
                ],
                [
                    "StartTag",
                    "pre",
                    {}
                ],
                [
                    "EndTag",
                    "pre"
                ],
                [
                    "EndTag",
                    "body"
                ],
                [
                    "EndTag",
                    "html"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!DOCTYPE html><html><head></head><body><pre>\\nfoo</pre></body></html>",
            "input": "<!DOCTYPE html><html><head></head><body><pre>\nfoo</pre></body></html>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "html",
                    {}
                ],
                [
                    "StartTag",
                    "head",
                    {}
                ],
                [
                    "EndTag",
                    "head"
                ],
                [
                    "StartTag",
                    "body",
                    {}
                ],
                [
                    "StartTag",
                    "pre",
                    {}
                ],
                [
                    "Character",
                    "foo"
                ],
                [
                    "EndTag",
                    "pre"
                ],
                [
                    "EndTag",
                    "body"
                ],
                [
                    "EndTag",
                    "html"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!DOCTYPE html><html><head></head><body><pre>\\n\\nfoo</pre></body></html>",
            "input": "<!DOCTYPE html><html><head></head><body><pre>\n\nfoo</pre></body></html>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "html",
                    {}
                ],
                [
                    "StartTag",
                    "head",
                    {}
                ],
                [
                    "EndTag",
                    "head"
                ],
                [
                    "StartTag",
                    "body",
                    {}
                ],
                [
                    "StartTag",
                    "pre",
                    {}
                ],
                [
                    "Character",
                    "\nfoo"
                ],
                [
                    "EndTag",
                    "pre"
                ],
                [
                    "EndTag",
                    "body"
                ],
                [
                    "EndTag",
                    "html"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!DOCTYPE html><html><head></head><body><pre>\\nfoo\\n</pre></body></html>",
            "input": "<!DOCTYPE html><html><head></head><body><pre>\nfoo\n</pre></body></html>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "html",
                    {}
                ],
                [
                    "StartTag",
                    "head",
                    {}
                ],
                [
                    "EndTag",
                    "head"
                ],
                [
                    "StartTag",
                    "body",
                    {}
                ],
                [
                    "StartTag",
                    "pre",
                    {}
                ],
                [
                    "Character",
                    "foo\n"
                ],
                [
                    "EndTag",
                    "pre"
                ],
                [
                    "EndTag",
                    "body"
                ],
                [
                    "EndTag",
                    "html"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!DOCTYPE html><html><head></head><body><pre>x</pre><span>\\n</span></body></html>",
            "input": "<!DOCTYPE html><html><head></head><body><pre>x</pre><span>\n</span></body></html>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "html",
                    {}
                ],
                [
                    "StartTag",
                    "head",
                    {}
                ],
                [
                    "EndTag",
                    "head"
                ],
                [
                    "StartTag",
                    "body",
                    {}
                ],
                [
                    "StartTag",
                    "pre",
                    {}
                ],
                [
                    "Character",
                    "x"
                ],
                [
                    "EndTag",
                    "pre"
                ],
                [
                    "StartTag",
                    "span",
                    {}
                ],
                [
                    "Character",
                    "\n"
                ],
                [
                    "EndTag",
                    "span"
                ],
                [
                    "EndTag",
                    "body"
                ],
                [
                    "EndTag",
                    "html"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!DOCTYPE html><html><head></head><body><pre>x\\ny</pre></body></html>",
            "input": "<!DOCTYPE html><html><head></head><body><pre>x\ny</pre></body></html>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "html",
                    {}
                ],
                [
                    "StartTag",
                    "head",
                    {}
                ],
                [
                    "EndTag",
                    "head"
                ],
                [
                    "StartTag",
                    "body",
                    {}
                ],
                [
                    "StartTag",
                    "pre",
                    {}
                ],
                [
                    "Character",
                    "x\ny"
                ],
                [
                    "EndTag",
                    "pre"
                ],
                [
                    "EndTag",
                    "body"
                ],
                [
                    "EndTag",
                    "html"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!DOCTYPE html><html><head></head><body><pre>x<div>\\ny</pre></body></html>",
            "input": "<!DOCTYPE html><html><head></head><body><pre>x<div>\ny</pre></body></html>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "html",
                    {}
                ],
                [
                    "StartTag",
                    "head",
                    {}
                ],
                [
                    "EndTag",
                    "head"
                ],
                [
                    "StartTag",
                    "body",
                    {}
                ],
                [
                    "StartTag",
                    "pre",
                    {}
                ],
                [
                    "Character",
                    "x"
                ],
                [
                    "StartTag",
                    "div",
                    {}
                ],
                [
                    "Character",
                    "\ny"
                ],
                [
                    "EndTag",
                    "pre"
                ],
                [
                    "EndTag",
                    "body"
                ],
                [
                    "EndTag",
                    "html"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!DOCTYPE html><pre>&#x0a;&#x0a;A</pre>",
            "input": "<!DOCTYPE html><pre>&#x0a;&#x0a;A</pre>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "pre",
                    {}
                ],
                [
                    "Character",
                    "\nA"
                ],
                [
                    "EndTag",
                    "pre"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!DOCTYPE html><HTML><META><HEAD></HEAD></HTML>",
            "input": "<!DOCTYPE html><HTML><META><HEAD></HEAD></HTML>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "html",
                    {}
                ],
                [
                    "StartTag",
                    "meta",
                    {}
                ],
                [
                    "StartTag",
                    "head",
                    {}
                ],
                [
                    "EndTag",
                    "head"
                ],
                [
                    "EndTag",
                    "html"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!DOCTYPE html><HTML><HEAD><head></HEAD></HTML>",
            "input": "<!DOCTYPE html><HTML><HEAD><head></HEAD></HTML>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "html",
                    {}
                ],
                [
                    "StartTag",
                    "head",
                    {}
                ],
                [
                    "StartTag",
                    "head",
                    {}
                ],
                [
                    "EndTag",
                    "head"
                ],
                [
                    "EndTag",
                    "html"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<textarea>foo<span>bar</span><i>baz",
            "input": "<textarea>foo<span>bar</span><i>baz",
            "output": [
                [
                    "StartTag",
                    "textarea",
                    {}
                ],
                [
                    "Character",
                    "foo<span>bar</span><i>baz"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<title>foo<span>bar</em><i>baz",
            "input": "<title>foo<span>bar</em><i>baz",
            "output": [
                [
                    "StartTag",
                    "title",
                    {}
                ],
                [
                    "Character",
                    "foo<span>bar</em><i>baz"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!DOCTYPE html><textarea>\\n</textarea>",
            "input": "<!DOCTYPE html><textarea>\n</textarea>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "textarea",
                    {}
                ],
                [
                    "EndTag",
                    "textarea"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!DOCTYPE html><textarea>\\nfoo</textarea>",
            "input": "<!DOCTYPE html><textarea>\nfoo</textarea>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "textarea",
                    {}
                ],
                [
                    "Character",
                    "foo"
                ],
                [
                    "EndTag",
                    "textarea"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!DOCTYPE html><textarea>\\n\\nfoo</textarea>",
            "input": "<!DOCTYPE html><textarea>\n\nfoo</textarea>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "textarea",
                    {}
                ],
                [
                    "Character",
                    "\nfoo"
                ],
                [
                    "EndTag",
                    "textarea"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html>",
            "input": "<!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "html",
                    {}
                ],
                [
                    "StartTag",
                    "head",
                    {}
                ],
                [
                    "EndTag",
                    "head"
                ],
                [
                    "StartTag",
                    "body",
                    {}
                ],
                [
                    "StartTag",
                    "ul",
                    {}
                ],
                [
                    "StartTag",
                    "li",
                    {}
                ],
                [
                    "StartTag",
                    "div",
                    {}
                ],
                [
                    "StartTag",
                    "p",
                    {}
                ],
                [
                    "StartTag",
                    "li",
                    {}
                ],
                [
                    "EndTag",
                    "ul"
                ],
                [
                    "EndTag",
                    "body"
                ],
                [
                    "EndTag",
                    "html"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!doctype html><nobr><nobr><nobr>",
            "input": "<!doctype html><nobr><nobr><nobr>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "nobr",
                    {}
                ],
                [
                    "StartTag",
                    "nobr",
                    {}
                ],
                [
                    "StartTag",
                    "nobr",
                    {}
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!doctype html><nobr><nobr></nobr><nobr>",
            "input": "<!doctype html><nobr><nobr></nobr><nobr>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "nobr",
                    {}
                ],
                [
                    "StartTag",
                    "nobr",
                    {}
                ],
                [
                    "EndTag",
                    "nobr"
                ],
                [
                    "StartTag",
                    "nobr",
                    {}
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<!doctype html><html><body><p><table></table></body></html>",
            "input": "<!doctype html><html><body><p><table></table></body></html>",
            "output": [
                [
                    "DOCTYPE",
                    "html",
                    null,
                    null,
                    true
                ],
                [
                    "StartTag",
                    "html",
                    {}
                ],
                [
                    "StartTag",
                    "body",
                    {}
                ],
                [
                    "StartTag",
                    "p",
                    {}
                ],
                [
                    "StartTag",
                    "table",
                    {}
                ],
                [
                    "EndTag",
                    "table"
                ],
                [
                    "EndTag",
                    "body"
                ],
                [
                    "EndTag",
                    "html"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<p><table></table>",
            "input": "<p><table></table>",
            "output": [
                [
                    "StartTag",
                    "p",
                    {}
                ],
                [
                    "StartTag",
                    "table",
                    {}
                ],
                [
                    "EndTag",
                    "table"
                ]
            ]
        }
    ]
}