aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/metadata/MANIFEST.json1866
-rw-r--r--tests/wpt/metadata/css/css-animations/set-animation-play-state-to-paused-002.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-column-003.html.ini3
-rw-r--r--tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-row-003.html.ini3
-rw-r--r--tests/wpt/metadata/css/css-fonts/idlharness.html.ini4
-rw-r--r--tests/wpt/metadata/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/geometry/DOMPoint-001.html.ini12
-rw-r--r--tests/wpt/metadata/dom/events/event-global-extra.window.js.ini19
-rw-r--r--tests/wpt/metadata/dom/events/event-global.html.ini19
-rw-r--r--tests/wpt/metadata/fetch/range/general.window.js.ini (renamed from tests/wpt/metadata/fetch/range/partial-script.window.js.ini)2
-rw-r--r--tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/popstate_event.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-undefined.tentative.html.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/window-open-noopener.html.ini42
-rw-r--r--tests/wpt/metadata/performance-timeline/idlharness.any.js.ini17
-rw-r--r--tests/wpt/metadata/performance-timeline/idlharness.html.ini20
-rw-r--r--tests/wpt/metadata/url/a-element-xhtml.xhtml.ini3
-rw-r--r--tests/wpt/metadata/url/a-element.html.ini3
-rw-r--r--tests/wpt/metadata/url/url-constructor.html.ini3
-rw-r--r--tests/wpt/metadata/workers/modules/dedicated-worker-import-referrer.html.ini4
-rw-r--r--tests/wpt/mozilla/meta/css/iframe/hide_after_load.html.ini2
-rw-r--r--tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/canvas/rapid-resizing.html.ini5
-rw-r--r--tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-uniform-packing-restrictions.html.ini5
-rw-r--r--tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-with-non-reserved-words.html.ini5
-rw-r--r--tests/wpt/web-platform-tests/.gitmodules3
-rw-r--r--tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self.html17
-rw-r--r--tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self_ref.html11
-rw-r--r--tests/wpt/web-platform-tests/FileAPI/FileReaderSync.worker.js58
-rw-r--r--tests/wpt/web-platform-tests/README.md2
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html16
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/available-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/available-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/header-length-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/header-length-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/header-length-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/header-length-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/header-signature-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/header-signature-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/support/available-001a.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/support/available-001b.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/support/available-002a.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/support/available-002b.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/testcaseindex.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/valid-001-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/valid-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/valid-002-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/valid-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/valid-003-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/valid-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/valid-004-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/valid-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/valid-005-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/valid-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/valid-006-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/valid-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/valid-007-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/valid-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/valid-008-ref.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/WOFF2/valid-008.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002-ref.html36
-rw-r--r--tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002.html95
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-layout-015.html36
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-001.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-002.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-003.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-001.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-002.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-003.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-006.xht2
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-008.xht2
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-006.xht2
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-008.xht2
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/idlharness.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-logical/logicalprops-quirklength.html8
-rw-r--r--tests/wpt/web-platform-tests/css/css-masking/idlharness.html36
-rw-r--r--tests/wpt/web-platform-tests/css/css-multicol/filter-with-abspos.html27
-rw-r--r--tests/wpt/web-platform-tests/css/css-scoping/shadow-host-with-before-after.html83
-rw-r--r--tests/wpt/web-platform-tests/css/css-scoping/shadow-reassign-dynamic-002.html21
-rw-r--r--tests/wpt/web-platform-tests/css/css-scoping/whitespace-crash-001.html32
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html41
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html14
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-alias.html16
-rw-r--r--tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-001-manual.html16
-rw-r--r--tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-002-manual.html14
-rw-r--r--tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-003-manual.html15
-rw-r--r--tests/wpt/web-platform-tests/css/cssom-view/dom-element-scroll.html100
-rw-r--r--tests/wpt/web-platform-tests/css/cssom/computed-style-set-property.html2
-rw-r--r--tests/wpt/web-platform-tests/css/geometry/DOMPoint-001.html26
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/focus-visible-007.html91
-rw-r--r--tests/wpt/web-platform-tests/docs/_appendix/github-intro.md12
-rw-r--r--tests/wpt/web-platform-tests/dom/events/event-global-extra.window.js90
-rw-r--r--tests/wpt/web-platform-tests/dom/events/event-global.html91
-rw-r--r--tests/wpt/web-platform-tests/dom/events/resources/event-global-extra-frame.html9
-rw-r--r--tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht.xht1
-rw-r--r--tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All.html1
-rw-r--r--tests/wpt/web-platform-tests/fetch/api/resources/echo-content.py5
-rw-r--r--tests/wpt/web-platform-tests/fetch/range/general.any.js30
-rw-r--r--tests/wpt/web-platform-tests/fetch/range/general.window.js29
-rw-r--r--tests/wpt/web-platform-tests/fetch/range/partial-script.window.js7
-rw-r--r--tests/wpt/web-platform-tests/fetch/range/resources/long-wav.py23
-rw-r--r--tests/wpt/web-platform-tests/fetch/range/resources/range-sw.js19
-rw-r--r--tests/wpt/web-platform-tests/fetch/range/resources/utils.js15
-rw-r--r--tests/wpt/web-platform-tests/fetch/range/sw.https.window.js67
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/hashchange_event.html10
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/popstate_event.html7
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html22
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable-1.html10
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable.html24
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004-1.html28
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004-2.html5
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004.html29
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html120
-rw-r--r--tests/wpt/web-platform-tests/input-device-capabilities/OWNERS2
-rw-r--r--tests/wpt/web-platform-tests/input-device-capabilities/interfaces.html24
-rw-r--r--tests/wpt/web-platform-tests/interfaces/InputDeviceCapabilities.idl22
-rw-r--r--tests/wpt/web-platform-tests/interfaces/ResizeObserver.idl30
-rw-r--r--tests/wpt/web-platform-tests/interfaces/css-fonts.idl35
-rw-r--r--tests/wpt/web-platform-tests/interfaces/css-masking.idl18
-rw-r--r--tests/wpt/web-platform-tests/interfaces/dom.idl5
-rw-r--r--tests/wpt/web-platform-tests/interfaces/performance-timeline.idl40
-rw-r--r--tests/wpt/web-platform-tests/interfaces/permissions.idl53
-rw-r--r--tests/wpt/web-platform-tests/interfaces/user-timing.idl19
-rw-r--r--tests/wpt/web-platform-tests/lifecycle/freeze.html3
-rw-r--r--tests/wpt/web-platform-tests/lifecycle/resources/window.html12
-rw-r--r--tests/wpt/web-platform-tests/performance-timeline/idlharness.any.js26
-rw-r--r--tests/wpt/web-platform-tests/performance-timeline/idlharness.html90
-rw-r--r--tests/wpt/web-platform-tests/permissions/OWNERS3
-rw-r--r--tests/wpt/web-platform-tests/permissions/interfaces.any.js38
-rw-r--r--tests/wpt/web-platform-tests/resize-observer/idlharness.html20
-rw-r--r--tests/wpt/web-platform-tests/resources/idlharness.js138
-rw-r--r--tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlDictionary/test_partial_interface_of.html73
-rw-r--r--tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlInterface/test_partial_interface_of.html110
-rw-r--r--tests/wpt/web-platform-tests/resources/test/tests/unit/IdlDictionary/test_partial_dictionary.html6
-rw-r--r--tests/wpt/web-platform-tests/resources/test/tests/unit/basic.html29
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js2
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js2
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event.https.html1056
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html50
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin.https.html81
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html1
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html6
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js20
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-read-contents.html15
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-worker.js65
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/.gitignore20
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/.travis.yml37
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/CHANGES.rst171
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.rst77
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.serializer.rst19
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.treewalkers.rst59
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/flake8-run.sh14
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/__init__.py23
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/alphabeticalattributes.py20
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/lint.py93
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/sanitizer.py12
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/sanitizer.py271
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/serializer/__init__.py16
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/serializer/htmlserializer.py320
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/README1
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/mockParser.py41
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/performance/concatenation.py36
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_encoding.py67
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_parser.py96
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_parser2.py64
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_sanitizer.py105
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_serializer.py178
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_stream.py183
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_treewalkers.py353
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_whitespace_filter.py133
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/AUTHORS.rst34
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/LICENSE21
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/chardet/test_big5.txt51
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/test-yahoo-jp.dat10
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/tests1.dat394
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/tests2.dat115
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/core.test125
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/injectmeta.test66
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/optionaltags.test965
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/options.test60
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/whitespace.test51
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/sniffer/htmlOrFeed.json43
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/README.md104
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/contentModelFlags.test81
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/domjs.test96
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/entities.test283
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/escapeFlag.test33
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/namedEntities.test42210
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/numericEntities.test1313
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/pendingSpecChanges.test7
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test1.test196
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test2.test179
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test3.test6047
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test4.test344
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/unicodeChars.test1295
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/unicodeCharsProblematic.test27
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/xmlViolation.test22
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/README.md98
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/adoption01.dat337
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/adoption02.dat39
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/comments01.dat178
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/doctype01.dat424
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/domjs-unsafe.datbin9884 -> 0 bytes
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/entities01.dat723
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/entities02.dat283
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/html5test-com.dat291
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/inbody01.dat54
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/isindex.dat47
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/main-element.dat46
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/pending-spec-changes-plain-text-unsafe.datbin816 -> 0 bytes
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/pending-spec-changes.dat46
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/plain-text-unsafe.datbin7925 -> 0 bytes
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/ruby.dat298
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scriptdata01.dat365
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/adoption01.dat15
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/ark.dat26
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/webkit01.dat28
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tables01.dat286
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/template.dat1591
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests1.dat1959
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests10.dat847
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests11.dat482
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests12.dat62
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests14.dat75
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests15.dat216
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests16.dat2458
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests17.dat179
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests18.dat322
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests19.dat1524
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests2.dat799
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests20.dat516
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests21.dat305
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests22.dat190
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests23.dat168
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests24.dat79
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests25.dat232
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests26.dat388
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests3.dat305
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests4.dat58
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests5.dat210
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests6.dat659
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests7.dat403
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests8.dat151
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests9.dat472
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests_innerHTML_1.dat891
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tricky01.dat336
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/webkit01.dat705
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/webkit02.dat134
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/attributes.test1035
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/base-href-attribute.test787
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/base-target-attribute.test35
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/blockquote-cite-attribute.test7
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/classattribute.test152
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/contenteditableattribute.test59
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/contextmenuattribute.test115
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/dirattribute.test59
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/draggableattribute.test63
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/html-xmlns-attribute.test23
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/idattribute.test115
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/inputattributes.test2795
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/irrelevantattribute.test63
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/langattribute.test5579
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/li-value-attribute.test7
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-href-attribute.test7
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-hreflang-attribute.test7
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-rel-attribute.test271
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/ol-start-attribute.test7
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/starttags.test375
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/style-scoped-attribute.test7
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/tabindexattribute.test79
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/treeadapters/__init__.py0
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/__init__.py76
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/__init__.py57
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/pulldom.py63
-rwxr-xr-xtests/wpt/web-platform-tests/tools/html5lib/requirements-install.sh16
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/requirements-optional-2.6.txt5
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/requirements-optional-cpython.txt5
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/requirements-optional.txt13
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/requirements-test.txt5
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/setup.py44
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/tox.ini30
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/utils/iana_parse.py24
-rw-r--r--tests/wpt/web-platform-tests/tools/html5lib/utils/spider.py122
-rw-r--r--tests/wpt/web-platform-tests/tools/localpaths.py5
-rw-r--r--tests/wpt/web-platform-tests/tools/manifest/sourcefile.py16
-rw-r--r--tests/wpt/web-platform-tests/tools/six/.gitignore9
-rw-r--r--tests/wpt/web-platform-tests/tools/six/.hgignore8
-rw-r--r--tests/wpt/web-platform-tests/tools/six/CONTRIBUTORS22
-rw-r--r--tests/wpt/web-platform-tests/tools/six/README16
-rw-r--r--tests/wpt/web-platform-tests/tools/six/setup.cfg2
-rw-r--r--tests/wpt/web-platform-tests/tools/six/setup.py32
-rw-r--r--tests/wpt/web-platform-tests/tools/six/tox.ini12
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/.appveyor.yml31
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/.coveragerc8
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/.gitignore85
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/.gitmodules (renamed from tests/wpt/web-platform-tests/tools/html5lib/.gitmodules)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/.prospector.yaml21
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/.pylintrc10
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/.pytest.expect1322
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/.travis.yml32
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/AUTHORS.rst (renamed from tests/wpt/web-platform-tests/tools/html5lib/AUTHORS.rst)38
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/CHANGES.rst335
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/CONTRIBUTING.rst (renamed from tests/wpt/web-platform-tests/tools/html5lib/CONTRIBUTING.rst)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/LICENSE (renamed from tests/wpt/web-platform-tests/tools/html5lib/LICENSE)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/MANIFEST.in (renamed from tests/wpt/web-platform-tests/tools/html5lib/MANIFEST.in)4
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/README.rst (renamed from tests/wpt/web-platform-tests/tools/html5lib/README.rst)26
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/debug-info.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/debug-info.py)2
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/Makefile (renamed from tests/wpt/web-platform-tests/tools/html5lib/doc/Makefile)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/changes.rst (renamed from tests/wpt/web-platform-tests/tools/html5lib/doc/changes.rst)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/conf.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/doc/conf.py)2
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.filters.rst (renamed from tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.filters.rst)19
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.rst38
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treeadapters.rst20
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treebuilders.rst (renamed from tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.treebuilders.rst)15
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treewalkers.rst50
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/index.rst (renamed from tests/wpt/web-platform-tests/tools/html5lib/doc/index.rst)1
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/license.rst (renamed from tests/wpt/web-platform-tests/tools/html5lib/doc/license.rst)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/make.bat (renamed from tests/wpt/web-platform-tests/tools/html5lib/doc/make.bat)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/modules.rst (renamed from tests/wpt/web-platform-tests/tools/html5lib/doc/modules.rst)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/movingparts.rst (renamed from tests/wpt/web-platform-tests/tools/html5lib/doc/movingparts.rst)104
-rwxr-xr-xtests/wpt/web-platform-tests/tools/third_party/html5lib/flake8-run.sh9
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/__init__.py35
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_ihatexml.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/ihatexml.py)15
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_inputstream.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/inputstream.py)231
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_tokenizer.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/tokenizer.py)36
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/__init__.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/__init__.py)2
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/_base.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/_base.py)6
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/datrie.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/datrie.py)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/py.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/py.py)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_utils.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/utils.py)56
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/constants.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/constants.py)697
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/__init__.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/__init__.py)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/alphabeticalattributes.py29
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/base.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/_base.py)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/inject_meta_charset.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/inject_meta_charset.py)16
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/lint.py93
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/optionaltags.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/optionaltags.py)12
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/sanitizer.py896
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/whitespace.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/whitespace.py)8
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/html5parser.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/html5parser.py)668
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/serializer.py409
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/__init__.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/__init__.py)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/conftest.py108
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/sanitizer-testdata/tests1.dat (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/sanitizer/tests1.dat)194
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/sanitizer.py50
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/core.test395
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/injectmeta.test350
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/optionaltags.test3254
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/options.test334
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/whitespace.test198
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/support.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/support.py)77
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_alphabeticalattributes.py78
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_encoding.py116
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_meta.py41
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_optionaltags_filter.py7
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_parser2.py130
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_sanitizer.py127
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_serializer.py225
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_stream.py323
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_treeadapters.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_treeadapters.py)4
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_treewalkers.py136
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_whitespace_filter.py125
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tokenizer.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_tokenizer.py)144
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tokenizertotree.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/tokenizertotree.py)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tree_construction.py204
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/us-ascii.html (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/us-ascii.html)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/utf-8-bom.html (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/utf-8-bom.html)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/__init__.py30
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/genshi.py54
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/sax.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/treeadapters/sax.py)8
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/__init__.py88
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/base.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/_base.py)82
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/dom.py)49
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/etree.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/etree.py)21
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/etree_lxml.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/etree_lxml.py)43
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/__init__.py154
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/base.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/_base.py)180
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/dom.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/dom.py)19
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/etree.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/etree.py)34
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/etree_lxml.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/lxmletree.py)69
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/genshi.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/genshistream.py)12
-rwxr-xr-xtests/wpt/web-platform-tests/tools/third_party/html5lib/parse.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/parse.py)77
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/pytest.ini17
-rwxr-xr-xtests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-install.sh15
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-optional.txt17
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-test.txt10
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/setup.cfg14
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/setup.py125
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/tox.ini23
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/html5lib/utils/entities.py (renamed from tests/wpt/web-platform-tests/tools/html5lib/utils/entities.py)50
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/six/CHANGES (renamed from tests/wpt/web-platform-tests/tools/six/CHANGES)51
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/six/LICENSE (renamed from tests/wpt/web-platform-tests/tools/six/LICENSE)2
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/six/MANIFEST.in (renamed from tests/wpt/web-platform-tests/tools/six/MANIFEST.in)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/six/PKG-INFO41
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/six/README.rst25
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/six/documentation/Makefile (renamed from tests/wpt/web-platform-tests/tools/six/documentation/Makefile)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/six/documentation/conf.py (renamed from tests/wpt/web-platform-tests/tools/six/documentation/conf.py)2
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/six/documentation/index.rst (renamed from tests/wpt/web-platform-tests/tools/six/documentation/index.rst)351
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/six/setup.cfg21
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/six/setup.py56
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/PKG-INFO41
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/SOURCES.txt15
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/dependency_links.txt1
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/top_level.txt (renamed from tests/wpt/web-platform-tests/tools/html5lib/requirements.txt)0
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/six/six.py (renamed from tests/wpt/web-platform-tests/tools/six/six.py)170
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/six/test_six.py (renamed from tests/wpt/web-platform-tests/tools/six/test_six.py)151
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/webencodings/PKG-INFO50
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/webencodings/README.rst25
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/webencodings/setup.cfg14
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/webencodings/setup.py47
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/PKG-INFO50
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/SOURCES.txt12
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/dependency_links.txt1
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/top_level.txt1
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/__init__.py342
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/labels.py231
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/mklabels.py59
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/tests.py153
-rw-r--r--tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/x_user_defined.py325
-rw-r--r--tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_input_file.py148
-rw-r--r--tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_request.py51
-rw-r--r--tests/wpt/web-platform-tests/tools/wptserve/wptserve/request.py6
-rw-r--r--tests/wpt/web-platform-tests/url/resources/urltestdata.json31
-rw-r--r--tests/wpt/web-platform-tests/user-timing/idlharness.any.js24
-rw-r--r--tests/wpt/web-platform-tests/user-timing/idlharness.html63
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-referrer.html209
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-referrer-checker-worker.sub.js2
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-same-origin-referrer-checker-worker.js1
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/referrer-checker.py9
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/static-import-remote-origin-referrer-checker-worker.sub.js2
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/static-import-same-origin-referrer-checker-worker.js1
1004 files changed, 18585 insertions, 92757 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 32fab4281d5..b9727d0314e 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -9715,6 +9715,24 @@
{}
]
],
+ "css/css-ui/cursor-pointer-links-001-manual.html": [
+ [
+ "/css/css-ui/cursor-pointer-links-001-manual.html",
+ {}
+ ]
+ ],
+ "css/css-ui/cursor-pointer-links-002-manual.html": [
+ [
+ "/css/css-ui/cursor-pointer-links-002-manual.html",
+ {}
+ ]
+ ],
+ "css/css-ui/cursor-pointer-links-003-manual.html": [
+ [
+ "/css/css-ui/cursor-pointer-links-003-manual.html",
+ {}
+ ]
+ ],
"css/css-ui/cursor-text-001.html": [
[
"/css/css-ui/cursor-text-001.html",
@@ -18861,18 +18879,6 @@
{}
]
],
- "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self.html": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self.html",
- [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self_ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
"2dcontext/line-styles/canvas_linestyles_linecap_001.htm": [
[
"/2dcontext/line-styles/canvas_linestyles_linecap_001.htm",
@@ -102109,18 +102115,6 @@
{}
]
],
- "css/css-animations/set-animation-play-state-to-paused-002.html": [
- [
- "/css/css-animations/set-animation-play-state-to-paused-002.html",
- [
- [
- "/css/css-animations/set-animation-play-state-to-paused-002-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
"css/css-backgrounds/background-334.html": [
[
"/css/css-backgrounds/background-334.html",
@@ -108841,6 +108835,18 @@
{}
]
],
+ "css/css-contain/contain-layout-015.html": [
+ [
+ "/css/css-contain/contain-layout-015.html",
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-contain/contain-layout-breaks-001.html": [
[
"/css/css-contain/contain-layout-breaks-001.html",
@@ -129853,6 +129859,18 @@
{}
]
],
+ "css/css-scoping/shadow-host-with-before-after.html": [
+ [
+ "/css/css-scoping/shadow-host-with-before-after.html",
+ [
+ [
+ "/css/css-scoping/reference/green-box.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-scoping/shadow-reassign-dynamic-001.html": [
[
"/css/css-scoping/shadow-reassign-dynamic-001.html",
@@ -129865,6 +129883,18 @@
{}
]
],
+ "css/css-scoping/shadow-reassign-dynamic-002.html": [
+ [
+ "/css/css-scoping/shadow-reassign-dynamic-002.html",
+ [
+ [
+ "/css/css-scoping/reference/green-box.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-scoping/shadow-root-insert-into-document.html": [
[
"/css/css-scoping/shadow-root-insert-into-document.html",
@@ -129901,6 +129931,18 @@
{}
]
],
+ "css/css-scoping/whitespace-crash-001.html": [
+ [
+ "/css/css-scoping/whitespace-crash-001.html",
+ [
+ [
+ "/css/css-scoping/reference/green-box.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-scrollbars/viewport-scrollbar-body.html": [
[
"/css/css-scrollbars/viewport-scrollbar-body.html",
@@ -134605,6 +134647,18 @@
{}
]
],
+ "css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html": [
+ [
+ "/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html",
+ [
+ [
+ "/css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-text/overflow-wrap/word-wrap-001.html": [
[
"/css/css-text/overflow-wrap/word-wrap-001.html",
@@ -188479,11 +188533,6 @@
{}
]
],
- "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self_ref.html": [
- [
- {}
- ]
- ],
"2dcontext/drawing-model/.gitkeep": [
[
{}
@@ -238924,11 +238973,6 @@
{}
]
],
- "css/css-animations/set-animation-play-state-to-paused-002-ref.html": [
- [
- {}
- ]
- ],
"css/css-animations/support/testcommon.js": [
[
{}
@@ -256499,6 +256543,11 @@
{}
]
],
+ "css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/css-text/support/1x1-green.png": [
[
{}
@@ -271434,6 +271483,11 @@
{}
]
],
+ "dom/events/resources/event-global-extra-frame.html": [
+ [
+ {}
+ ]
+ ],
"dom/lists/README.md": [
[
{}
@@ -275834,6 +275888,11 @@
{}
]
],
+ "html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable-1.html": [
+ [
+ {}
+ ]
+ ],
"html/browsers/browsing-the-web/unloading-documents/prompt/001-1.html": [
[
{}
@@ -275849,6 +275908,16 @@
{}
]
],
+ "html/browsers/browsing-the-web/unloading-documents/prompt/004-1.html": [
+ [
+ {}
+ ]
+ ],
+ "html/browsers/browsing-the-web/unloading-documents/prompt/004-2.html": [
+ [
+ {}
+ ]
+ ],
"html/browsers/browsing-the-web/unloading-documents/prompt/manual-001.html": [
[
{}
@@ -287764,6 +287833,11 @@
{}
]
],
+ "input-device-capabilities/OWNERS": [
+ [
+ {}
+ ]
+ ],
"input-events/OWNERS": [
[
{}
@@ -287789,11 +287863,21 @@
{}
]
],
+ "interfaces/InputDeviceCapabilities.idl": [
+ [
+ {}
+ ]
+ ],
"interfaces/OWNERS": [
[
{}
]
],
+ "interfaces/ResizeObserver.idl": [
+ [
+ {}
+ ]
+ ],
"interfaces/ServiceWorker.idl": [
[
{}
@@ -287854,6 +287938,16 @@
{}
]
],
+ "interfaces/css-fonts.idl": [
+ [
+ {}
+ ]
+ ],
+ "interfaces/css-masking.idl": [
+ [
+ {}
+ ]
+ ],
"interfaces/css-typed-om.idl": [
[
{}
@@ -287994,6 +288088,16 @@
{}
]
],
+ "interfaces/performance-timeline.idl": [
+ [
+ {}
+ ]
+ ],
+ "interfaces/permissions.idl": [
+ [
+ {}
+ ]
+ ],
"interfaces/pointerevents.idl": [
[
{}
@@ -288049,6 +288153,11 @@
{}
]
],
+ "interfaces/user-timing.idl": [
+ [
+ {}
+ ]
+ ],
"interfaces/vibration.idl": [
[
{}
@@ -290004,6 +290113,11 @@
{}
]
],
+ "permissions/OWNERS": [
+ [
+ {}
+ ]
+ ],
"picture-in-picture/OWNERS": [
[
{}
@@ -294979,7 +295093,12 @@
{}
]
],
- "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js": [
+ "service-workers/service-worker/resources/fetch-request-css-cross-origin-read-contents.html": [
+ [
+ {}
+ ]
+ ],
+ "service-workers/service-worker/resources/fetch-request-css-cross-origin-worker.js": [
[
{}
]
@@ -300969,11 +301088,21 @@
{}
]
],
+ "workers/modules/resources/dynamic-import-remote-origin-referrer-checker-worker.sub.js": [
+ [
+ {}
+ ]
+ ],
"workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js": [
[
{}
]
],
+ "workers/modules/resources/dynamic-import-same-origin-referrer-checker-worker.js": [
+ [
+ {}
+ ]
+ ],
"workers/modules/resources/dynamic-import-worker.js": [
[
{}
@@ -301039,6 +301168,11 @@
{}
]
],
+ "workers/modules/resources/referrer-checker.py": [
+ [
+ {}
+ ]
+ ],
"workers/modules/resources/static-import-and-then-dynamic-import-worker.js": [
[
{}
@@ -301049,11 +301183,21 @@
{}
]
],
+ "workers/modules/resources/static-import-remote-origin-referrer-checker-worker.sub.js": [
+ [
+ {}
+ ]
+ ],
"workers/modules/resources/static-import-remote-origin-script-worker.sub.js": [
[
{}
]
],
+ "workers/modules/resources/static-import-same-origin-referrer-checker-worker.js": [
+ [
+ {}
+ ]
+ ],
"workers/modules/resources/static-import-worker.js": [
[
{}
@@ -316379,6 +316523,12 @@
{}
]
],
+ "css/css-fonts/idlharness.html": [
+ [
+ "/css/css-fonts/idlharness.html",
+ {}
+ ]
+ ],
"css/css-fonts/test_datafont_same_origin.html": [
[
"/css/css-fonts/test_datafont_same_origin.html",
@@ -318071,6 +318221,12 @@
{}
]
],
+ "css/css-masking/idlharness.html": [
+ [
+ "/css/css-masking/idlharness.html",
+ {}
+ ]
+ ],
"css/css-masking/parsing/clip-invalid.html": [
[
"/css/css-masking/parsing/clip-invalid.html",
@@ -318113,6 +318269,12 @@
{}
]
],
+ "css/css-multicol/filter-with-abspos.html": [
+ [
+ "/css/css-multicol/filter-with-abspos.html",
+ {}
+ ]
+ ],
"css/css-multicol/going-out-of-flow-after-spanner.html": [
[
"/css/css-multicol/going-out-of-flow-after-spanner.html",
@@ -320615,6 +320777,12 @@
{}
]
],
+ "css/css-text/overflow-wrap/word-wrap-alias.html": [
+ [
+ "/css/css-text/overflow-wrap/word-wrap-alias.html",
+ {}
+ ]
+ ],
"css/css-text/white-space/seg-break-transformation-000.html": [
[
"/css/css-text/white-space/seg-break-transformation-000.html",
@@ -324035,6 +324203,12 @@
{}
]
],
+ "css/cssom-view/dom-element-scroll.html": [
+ [
+ "/css/cssom-view/dom-element-scroll.html",
+ {}
+ ]
+ ],
"css/cssom-view/elementFromPoint-001.html": [
[
"/css/cssom-view/elementFromPoint-001.html",
@@ -325125,6 +325299,14 @@
{}
]
],
+ "css/selectors/focus-visible-007.html": [
+ [
+ "/css/selectors/focus-visible-007.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"css/selectors/focus-within-009.html": [
[
"/css/selectors/focus-within-009.html",
@@ -326139,6 +326321,18 @@
{}
]
],
+ "dom/events/event-global-extra.window.js": [
+ [
+ "/dom/events/event-global-extra.window.html",
+ {}
+ ]
+ ],
+ "dom/events/event-global.html": [
+ [
+ "/dom/events/event-global.html",
+ {}
+ ]
+ ],
"dom/events/event-global.worker.js": [
[
"/dom/events/event-global.worker.html",
@@ -327074,13 +327268,17 @@
"dom/nodes/ParentNode-querySelector-All-xht.xht": [
[
"/dom/nodes/ParentNode-querySelector-All-xht.xht",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"dom/nodes/ParentNode-querySelector-All.html": [
[
"/dom/nodes/ParentNode-querySelector-All.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"dom/nodes/ProcessingInstruction-escapes-1.xhtml": [
@@ -337143,9 +337341,9 @@
{}
]
],
- "fetch/range/partial-script.window.js": [
+ "fetch/range/general.window.js": [
[
- "/fetch/range/partial-script.window.html",
+ "/fetch/range/general.window.html",
{}
]
],
@@ -338065,6 +338263,18 @@
{}
]
],
+ "html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html": [
+ [
+ "/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html",
+ {}
+ ]
+ ],
+ "html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable.html": [
+ [
+ "/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable.html",
+ {}
+ ]
+ ],
"html/browsers/browsing-the-web/unloading-documents/prompt/001.html": [
[
"/html/browsers/browsing-the-web/unloading-documents/prompt/001.html",
@@ -338083,6 +338293,12 @@
{}
]
],
+ "html/browsers/browsing-the-web/unloading-documents/prompt/004.html": [
+ [
+ "/html/browsers/browsing-the-web/unloading-documents/prompt/004.html",
+ {}
+ ]
+ ],
"html/browsers/browsing-the-web/unloading-documents/unload/001.html": [
[
"/html/browsers/browsing-the-web/unloading-documents/unload/001.html",
@@ -339117,7 +339333,19 @@
],
"html/browsers/the-window-object/window-open-noopener.html": [
[
- "/html/browsers/the-window-object/window-open-noopener.html",
+ "/html/browsers/the-window-object/window-open-noopener.html?_parent",
+ {}
+ ],
+ [
+ "/html/browsers/the-window-object/window-open-noopener.html?_self",
+ {}
+ ],
+ [
+ "/html/browsers/the-window-object/window-open-noopener.html?_top",
+ {}
+ ],
+ [
+ "/html/browsers/the-window-object/window-open-noopener.html?indexed",
{}
]
],
@@ -350159,6 +350387,12 @@
}
]
],
+ "input-device-capabilities/interfaces.html": [
+ [
+ "/input-device-capabilities/interfaces.html",
+ {}
+ ]
+ ],
"input-events/idlharness.html": [
[
"/input-events/idlharness.html",
@@ -362479,9 +362713,21 @@
{}
]
],
- "performance-timeline/idlharness.html": [
+ "performance-timeline/idlharness.any.js": [
+ [
+ "/performance-timeline/idlharness.any.html",
+ {}
+ ],
+ [
+ "/performance-timeline/idlharness.any.sharedworker.html",
+ {}
+ ],
[
- "/performance-timeline/idlharness.html",
+ "/performance-timeline/idlharness.any.worker.html",
+ {}
+ ],
+ [
+ "/performance-timeline/idlharness.https.any.serviceworker.html",
{}
]
],
@@ -362581,6 +362827,16 @@
{}
]
],
+ "permissions/interfaces.any.js": [
+ [
+ "/permissions/interfaces.any.html",
+ {}
+ ],
+ [
+ "/permissions/interfaces.any.worker.html",
+ {}
+ ]
+ ],
"picture-in-picture/disable-picture-in-picture.html": [
[
"/picture-in-picture/disable-picture-in-picture.html",
@@ -371813,6 +372069,12 @@
{}
]
],
+ "resize-observer/idlharness.html": [
+ [
+ "/resize-observer/idlharness.html",
+ {}
+ ]
+ ],
"resize-observer/notify.html": [
[
"/resize-observer/notify.html",
@@ -373165,9 +373427,9 @@
{}
]
],
- "service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html": [
+ "service-workers/service-worker/fetch-request-css-cross-origin.https.html": [
[
- "/service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html",
+ "/service-workers/service-worker/fetch-request-css-cross-origin.https.html",
{}
]
],
@@ -373616,7 +373878,9 @@
"service-workers/service-worker/registration-updateviacache.https.html": [
[
"/service-workers/service-worker/registration-updateviacache.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"service-workers/service-worker/rejections.https.html": [
@@ -376735,9 +376999,21 @@
{}
]
],
- "user-timing/idlharness.html": [
+ "user-timing/idlharness.any.js": [
+ [
+ "/user-timing/idlharness.any.html",
+ {}
+ ],
+ [
+ "/user-timing/idlharness.any.sharedworker.html",
+ {}
+ ],
[
- "/user-timing/idlharness.html",
+ "/user-timing/idlharness.any.worker.html",
+ {}
+ ],
+ [
+ "/user-timing/idlharness.https.any.serviceworker.html",
{}
]
],
@@ -383447,6 +383723,12 @@
{}
]
],
+ "workers/modules/dedicated-worker-import-referrer.html": [
+ [
+ "/workers/modules/dedicated-worker-import-referrer.html",
+ {}
+ ]
+ ],
"workers/modules/dedicated-worker-import.html": [
[
"/workers/modules/dedicated-worker-import.html",
@@ -405115,7 +405397,7 @@
"support"
],
"./.gitmodules": [
- "6a203e28d43909d7513daf8761281b351d2b2bd7",
+ "9e008399bdce736c7c03f7db0c3e8d624083c6b9",
"support"
],
"./.pyup.yml": [
@@ -405147,7 +405429,7 @@
"support"
],
"./README.md": [
- "ce5fb6c1b9f899ffab603cbfc4086b00dbff5384",
+ "bbaa29655c73c0be3dc1e5e1aae85607284cc7b9",
"support"
],
"./check_stability.ini": [
@@ -406054,14 +406336,6 @@
"3b15af010f2ce13316fed6fcab9d85e05484b60d",
"testharness"
],
- "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self.html": [
- "ec6a6d1111aae9ce051cd1a2503a5b01149ceca6",
- "reftest"
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self_ref.html": [
- "f09c2922fc630872519fc37de47f232ecc8cc677",
- "support"
- ],
"2dcontext/drawing-images-to-the-canvas/drawimage_html_image.html": [
"ec86f8f5c84628cd5f3b8673de8dde34dc372fd9",
"testharness"
@@ -409335,7 +409609,7 @@
"testharness"
],
"FileAPI/FileReaderSync.worker.js": [
- "19741fbd0498bf9135408ceb6128221cbeb4e2f3",
+ "9d9a2b77b7fbd8ad4edb75228bd7bca1f915ad61",
"testharness"
],
"FileAPI/OWNERS": [
@@ -434435,7 +434709,7 @@
"testharness"
],
"content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html": [
- "fec78da513a4e7af3f323a2ef2451e65aac38259",
+ "64d198faf803c12e444cf02f5f0b994e32617923",
"testharness"
],
"content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html.sub.headers": [
@@ -492583,2155 +492857,2155 @@
"support"
],
"css/WOFF2/available-001.xht": [
- "0aab71e1e232626d4cef4a2de34f7feefe4d0618",
+ "3c54f14823e1ccda8939464643e988699e5f40aa",
"visual"
],
"css/WOFF2/available-002.xht": [
- "c878bbfc6db1b6ec424cc32a15d170817795228a",
+ "794b211c7e80b99893c0e54a712f78d740c0b256",
"visual"
],
"css/WOFF2/blocks-extraneous-data-001-ref.xht": [
- "011d405ee0b08200274ab0a63621e9379bd59d81",
+ "9b7120051ef82a22b2c6297d5916a7267cc4f040",
"support"
],
"css/WOFF2/blocks-extraneous-data-001.xht": [
- "34be40b3646e807005142ae7a483f7b81701b09f",
+ "2a00ac695a6ff2ca7e3ff03c5589b6b8f8a8232a",
"reftest"
],
"css/WOFF2/blocks-extraneous-data-002-ref.xht": [
- "92d61e346701c4a646ce667258736aeda6535a99",
+ "3abde3f13631d04dafcd8d30e305cbe5ff26ce5e",
"support"
],
"css/WOFF2/blocks-extraneous-data-002.xht": [
- "e6e659bd07e8bd58375bc6cdc50bb162c6bd5f01",
+ "ef8b4b002fd96f27a765c4ce1cdab5ad442bc248",
"reftest"
],
"css/WOFF2/blocks-extraneous-data-003-ref.xht": [
- "cc287741f4ae035b040aa48c7e0a3b16f58a9778",
+ "217cad1d6d15b26a34c729562b878186eb42fd84",
"support"
],
"css/WOFF2/blocks-extraneous-data-003.xht": [
- "55a3505d5112e60091c9e6c618022dbc463de929",
+ "a9ed33999e673ab07002daa119edf00945941a31",
"reftest"
],
"css/WOFF2/blocks-extraneous-data-004-ref.xht": [
- "489346fc91d5d18889eda095175dc7cfd077e466",
+ "1b3c3caba32aada3f5107a835bfe28babd03c29a",
"support"
],
"css/WOFF2/blocks-extraneous-data-004.xht": [
- "74238722d67f02134479433638e4b1964260777c",
+ "fcd744b9397985433e0a720a47791edb93512d84",
"reftest"
],
"css/WOFF2/blocks-extraneous-data-005-ref.xht": [
- "11744a35ab0edce205561b536936e8884c9d350d",
+ "c033adb552d80cfabc5070acbd7fec34273361e7",
"support"
],
"css/WOFF2/blocks-extraneous-data-005.xht": [
- "ab0b2693c8c1dc3e852095c69610e6afcb2eef34",
+ "4cabdc5a9a3fa81b19e16c83482d0b2483b661ca",
"reftest"
],
"css/WOFF2/blocks-extraneous-data-006-ref.xht": [
- "12ce2e9aa782964aeee137204aad775e4bc1557c",
+ "01e1909009b855a7b022373ae709060e43663385",
"support"
],
"css/WOFF2/blocks-extraneous-data-006.xht": [
- "216cda9318fcc3c300f6d62538f9e06dc6cb6946",
+ "77b5c21de862bda666804f8ff13b90a7b5e42e6b",
"reftest"
],
"css/WOFF2/blocks-extraneous-data-007-ref.xht": [
- "34fb9593773b71ef6fd5d75ab26055c3a1f3c2d7",
+ "c907f1567898b1c6d1802d823b8df0cf37ec3324",
"support"
],
"css/WOFF2/blocks-extraneous-data-007.xht": [
- "b1dc50e2b8de8ea737be1a6943e968bf04a96c18",
+ "417cabf05dc747384fbd41906f90d72ec3ea3c20",
"reftest"
],
"css/WOFF2/blocks-extraneous-data-008-ref.xht": [
- "19f9bea67346674064ef2d522dfe08fd500d8e31",
+ "9d726ef49576a5d0090c24aed31dd96a7abc93ea",
"support"
],
"css/WOFF2/blocks-extraneous-data-008.xht": [
- "5e98f2ffae7df7b0cd989b206ecc8dabf1754415",
+ "4b4fccf143e39d5a5c751ad8f960ebb1b74f1342",
"reftest"
],
"css/WOFF2/blocks-overlap-001-ref.xht": [
- "565d5c95c7e2091410adb392997653f0338133f0",
+ "041ee603090665aab081f5c07357841c63645cd0",
"support"
],
"css/WOFF2/blocks-overlap-001.xht": [
- "18ed355c569a7408facce8c1f1d49f4943acc456",
+ "e7909127e1ced7fe1b1a3da186fab08010f5fdb6",
"reftest"
],
"css/WOFF2/blocks-overlap-002-ref.xht": [
- "a5ec5f33b2941193102e79c63bb18d52a9c2568a",
+ "4014c7b44a0b9579fff6d78903002f694aca712f",
"support"
],
"css/WOFF2/blocks-overlap-002.xht": [
- "d584ba54b9f7c748f5212e38d9d00e0eda769e90",
+ "1b83811d30f108d26cbf8bcf5c09ec134ceb1077",
"reftest"
],
"css/WOFF2/blocks-overlap-003-ref.xht": [
- "cb02acc91b25edd5bc6b5099056763801f9fffda",
+ "84398773fa8bd89616b78881bc3223f74bea38d9",
"support"
],
"css/WOFF2/blocks-overlap-003.xht": [
- "813bb2eea6b35dc504bed77cffa4282c8c2b32a8",
+ "43600eb4e29dd17134ff8d4b5fb4a738913ccf59",
"reftest"
],
"css/WOFF2/datatypes-alt-255uint16-001-ref.xht": [
- "381ec057bc02a87f7fb916dd3d915411a340fbfe",
+ "eb6af05dfa1d0adc1e17a2cc58ea379cef2b7569",
"support"
],
"css/WOFF2/datatypes-alt-255uint16-001.xht": [
- "9bdec2f8ebdbe826b9dac5fb8c470381c71731cb",
+ "cbe00cf641250d86624449c7c5cc2f7d5cc76f6e",
"reftest"
],
"css/WOFF2/datatypes-invalid-base128-001-ref.xht": [
- "665935f1e76ae53c22bb5e0077e9ed628c3fe3e3",
+ "9b981883c5fe0363072c04c8bd65b6464ef6efea",
"support"
],
"css/WOFF2/datatypes-invalid-base128-001.xht": [
- "f0aae0c4cb59402a3df499ef8bd78d41ad8a7569",
+ "00cf68d48de5396c9705b5dcef58f3c4c72529c3",
"reftest"
],
"css/WOFF2/datatypes-invalid-base128-002-ref.xht": [
- "7507be4cd2674ef1f7584ad7c1001151dddeda40",
+ "9baffd1b21e907e756f2875cafbb78ee2704b9d0",
"support"
],
"css/WOFF2/datatypes-invalid-base128-002.xht": [
- "873f680770a719a6d8bc9e0ac20b97e525e799d4",
+ "b744a6a2742441069f26bd8951303b6f5127e395",
"reftest"
],
"css/WOFF2/datatypes-invalid-base128-003-ref.xht": [
- "0008224d983d88032d218959ef61fa9593c24fe7",
+ "b0dfa44bd032b63ab761133a6c58be2e61df2a09",
"support"
],
"css/WOFF2/datatypes-invalid-base128-003.xht": [
- "90cb6da506d06546d9c0627d59b425e212398f4e",
+ "dee8d2a54956af7dc53acf4f93b5c0cbb83bc842",
"reftest"
],
"css/WOFF2/directory-knowntags-001-ref.xht": [
- "ada263b85badb59ea702f1670a283038d3ad9a9a",
+ "06549de4f6101ae4c52b1ea3e825d9e00e817aa9",
"support"
],
"css/WOFF2/directory-knowntags-001.xht": [
- "e9c0f0b53a7f690b68ce87ad6c9664530335dba8",
+ "19c83f3738597263217e19bcbb712b5e95d43d7c",
"reftest"
],
"css/WOFF2/directory-mismatched-tables-001-ref.xht": [
- "8870e36b34179708b5a595935da3fdc9c8080468",
+ "2c56039bd0764cbab32e069d3ef9fe1a4ba8e150",
"support"
],
"css/WOFF2/directory-mismatched-tables-001.xht": [
- "73c2f8f731505d1156ee99a1d7f4d90cb69baf21",
+ "c8d5f09338f13686daea1a181585d2b1a4b665d5",
"reftest"
],
"css/WOFF2/header-length-001-ref.xht": [
- "ec7d1c57de6b7c26092a03e09addd7728c98ade9",
+ "9661c9ea73436d6c70e154ab053666b09836c6fc",
"support"
],
"css/WOFF2/header-length-001.xht": [
- "e4f065a9c963bcf5c2a28f0d958a4b66302b8960",
+ "d6a13575f3f2b7a7929dba499764d09b4fbff138",
"reftest"
],
"css/WOFF2/header-length-002-ref.xht": [
- "57a3ed586ff438676b58444a72cb4031f8175f2e",
+ "8c643f91d567dab4da9eba28b69c692523f83413",
"support"
],
"css/WOFF2/header-length-002.xht": [
- "c66fe415a3ef68577655c0973adb6ee5fba15522",
+ "30d0572a98d518378c0eacda3435ae584cc6270c",
"reftest"
],
"css/WOFF2/header-numTables-001-ref.xht": [
- "d967ea9a61832a50a6b940c734f8c85576a45a77",
+ "ca29d13833384cb4d98faf79a8bcfac6abe4e1a9",
"support"
],
"css/WOFF2/header-numTables-001.xht": [
- "a66e59ffa20bb8e23d5d82ddad5c76a7b86ea502",
+ "e5f8046fa7767850bf68deb64d2b6b511c6a46b4",
"reftest"
],
"css/WOFF2/header-reserved-001-ref.xht": [
- "2ed43f15019235814ee9665abfb3c311fbe04e37",
+ "cb36432ba317e1165067666e65e84eb0869395c4",
"support"
],
"css/WOFF2/header-reserved-001.xht": [
- "99288de8953971cbe9b9f280c014f2c15d0de9db",
+ "1c9dc3932bf861f3fdf6398b1418253fa20bc031",
"reftest"
],
"css/WOFF2/header-signature-001-ref.xht": [
- "a15048d0a32acf8da477ab08f753f678532e76c1",
+ "82c67809ad065dc554e4e5982f2e460725fc7d9a",
"support"
],
"css/WOFF2/header-signature-001.xht": [
- "01d96bea149c94be2fa41dd07d8996a340162a69",
+ "34ca5daa77f438662bdd0419a81dc8317ca41c4a",
"reftest"
],
"css/WOFF2/header-totalsfntsize-001-ref.xht": [
- "428975668477e134e237e13c26d124636aead611",
+ "24495b5576c79dbe0da9a057aeff409e5cb0ca23",
"support"
],
"css/WOFF2/header-totalsfntsize-001.xht": [
- "bf151e8697a39d5386f0c171990a0fc3d1329ab6",
+ "ff28e942e45371afec9cce36adb7fcbb9e1783aa",
"reftest"
],
"css/WOFF2/header-totalsfntsize-002-ref.xht": [
- "e110fb7cc6a6b3ec729d18ede8bab01600250e29",
+ "ad33c184e813d9877e7d23716a62316fa5eef379",
"support"
],
"css/WOFF2/header-totalsfntsize-002.xht": [
- "65422abdcb74e31e617ffacc2d692bfeb9419682",
+ "48a4cff72dde6e1d4bea0ecf11433debf05b739d",
"reftest"
],
"css/WOFF2/metadata-noeffect-001-ref.xht": [
- "715f3f4012e3a30b75875c96ec57cc4c6a6daea6",
+ "58a4e67216fca8f097d510b604c132067896e35d",
"support"
],
"css/WOFF2/metadata-noeffect-001.xht": [
- "ba156dde15a56f1f82dbb6c80c645de154faa077",
+ "9e347630b8b00ffc18fa3071e5a9c10f5ef19d4a",
"reftest"
],
"css/WOFF2/metadata-noeffect-002-ref.xht": [
- "76793c096bccd63de70ca578d57995feaa0ecbf2",
+ "057047a09dc347c959c38f3e5cafc521f8e8ae5a",
"support"
],
"css/WOFF2/metadata-noeffect-002.xht": [
- "8fe7084c42a0c82b28dd71833cc1a81697ff0c6e",
+ "a9c3504a268a1468144c3f617933be08791e9944",
"reftest"
],
"css/WOFF2/metadatadisplay-authoritative-001-ref.xht": [
- "df9de936d6bc2bf11aa2a30831b256eaa60458af",
+ "3e0675a61f9de21543c6273a8a5cf1f7f747ed0d",
"support"
],
"css/WOFF2/metadatadisplay-authoritative-001.xht": [
- "3f148fdf8e60bbae09905094cef592bf66b682fa",
+ "2bbe022c76a9f3e226d41a9da05b714aab1519b9",
"reftest"
],
"css/WOFF2/metadatadisplay-encoding-001-ref.xht": [
- "4eb8e30e5f51b0c7ffe9301849088c2424abe3c4",
+ "19305195e9440916c3aaf50819ff770dc0a23d71",
"support"
],
"css/WOFF2/metadatadisplay-encoding-001.xht": [
- "f78e2329b7bde5c8429f02f89abaf19cb2eaf8a5",
+ "68a962aa634aedb4d5d64e299c4f4825d7d4e47f",
"reftest"
],
"css/WOFF2/metadatadisplay-encoding-002-ref.xht": [
- "866030721eaaef11d32bd409424b6857f5867253",
+ "a117cccd2aef5df09608c20b857655bc20a930b9",
"support"
],
"css/WOFF2/metadatadisplay-encoding-002.xht": [
- "a7dfcf318d8d703bcf49bfa01b805a075170ced8",
+ "5cfd14d4509c4191bc873edf46f30890df4f6e87",
"reftest"
],
"css/WOFF2/metadatadisplay-encoding-003-ref.xht": [
- "b5be390b1336f1aa444f002c0e82ae4a02ae61d8",
+ "81d2b6a784a032dbc339ba72bd632cda43a63e7f",
"support"
],
"css/WOFF2/metadatadisplay-encoding-003.xht": [
- "154608e76765bd6063417f646764f13f2f081645",
+ "1b2784588dfd41a3cae5f2f367214a78b1649d92",
"reftest"
],
"css/WOFF2/metadatadisplay-encoding-004-ref.xht": [
- "35b23b11b04ed99bbec42d35444beeaa90422f28",
+ "a396f3b2a5b42d82be06a7bc9e26d5cf39e213aa",
"support"
],
"css/WOFF2/metadatadisplay-encoding-004.xht": [
- "792602cd6171335151e9ef91119c2d3ce6ae4ebe",
+ "195314c9bc1fe2c8edac85b9bf1b0990fd6a2c88",
"reftest"
],
"css/WOFF2/metadatadisplay-encoding-005-ref.xht": [
- "2beb450c0439ace59131aec28a36186238a970fe",
+ "ca8275282673b4dd40b657f5d06dad54c010069f",
"support"
],
"css/WOFF2/metadatadisplay-encoding-005.xht": [
- "6a50b7f037913b813e33f2e78a43255207cbfacf",
+ "fe7522f6cf49295d76370afd66591e2abf20be75",
"reftest"
],
"css/WOFF2/metadatadisplay-encoding-006-ref.xht": [
- "a7df4b5d59f13d3448889925d4ec40e2539d8bed",
+ "1f079c94148d2507a824e6c6d709d69a28a92c58",
"support"
],
"css/WOFF2/metadatadisplay-encoding-006.xht": [
- "5bc6c2234455f2ce75d46bdc619daa3c6cf5d740",
+ "92113fc2792d09e79759e799d32fceec05279a94",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-001-ref.xht": [
- "86142803798c5f4e0b8df50c4f4ece8391086da4",
+ "2414ddd4d2c836935bb7ff37100d2d8cae19f74d",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-001.xht": [
- "72dbfd9330f274c7317d01eba12b65da7b9549e0",
+ "d704d7628a5f6e589764ba30fa8230b4071647f8",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-002-ref.xht": [
- "738ee58af1eac131ab196bc5f4721e3ea6e12394",
+ "2b452c07bd16f3b641393773d50a2bb37090c82a",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-002.xht": [
- "febdb985e090e197be38b1745d1da60e7efcdf7f",
+ "a7717c6bfbd5027e2de6415328b1eb3412beb139",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-003-ref.xht": [
- "3fc2cbada936735fe931db2b91ce78d6b74dbe54",
+ "ceec75a12c87a377bd8f0edb2e1ee64199d37a5a",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-003.xht": [
- "93d773a5541e2f5649e2b4852a858c0b117e370c",
+ "e9d79a274e895c49e3de4f8e138bac7dad4a48f9",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-004-ref.xht": [
- "b3a53f3b16e2b70f01e2867bc8fc2d02ad4757d2",
+ "ff65abb6ade609263802d148eb957f749e74df7f",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-004.xht": [
- "1d80d383d92374427a59495f54f2f099ea377051",
+ "f12d8f0cedefefef47db13b07448720bb439528d",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-005-ref.xht": [
- "e3237332a0ba0d89172335e14daea23acbfb3a40",
+ "0b8f77ac2fe8dd4aad44dee36404659826db1013",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-005.xht": [
- "12e510ac73ea88c8d46ac0a3c13ab02ffeb06fd6",
+ "f14b50d1d9fc30b0b2baf6272dbacaf90848319e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-006-ref.xht": [
- "a80f43fd528b98668cf9b8619d2efc4cab6b76cf",
+ "56f9a873981dba029a69e1d1bb1fb10842ada00f",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-006.xht": [
- "fad58d4cf3c8ca3544e883501895a948fe441ec7",
+ "f2ed953abfb9d3b14ac7b0cad2a9627918a06a99",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-007-ref.xht": [
- "8f4d12c9f4d00fd049f1ce7fdf5a961ed82a20c9",
+ "8f286cc8fac4c7541ddb91126a5eb3ab9bcc2b51",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-007.xht": [
- "465f644ad61e3fe967c63989553751fd5544f672",
+ "4effcc6ac6a8655429c1144a74abe4488b82f779",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-008-ref.xht": [
- "2732bbb24296f440c6d45655f2bf96e95f5c4235",
+ "56f3df8b047197288c41fae2ad88235581deb70e",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-008.xht": [
- "fa466441cc9f6f98e14ee5cdd1332637c7cedfc4",
+ "17082ea7870158cd08d26970508e5239b3b0969c",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-009-ref.xht": [
- "ed670f1ae7d08137e1f1661210e8f4709f5b4312",
+ "10ca0824fe1eb67482ed343ee9df008dc63fd163",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-009.xht": [
- "f8d6111b48b8afb9af5b91f3955133fb21c76c6b",
+ "19d06923196d18578009a4486f90c1f24fa57e3b",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-010-ref.xht": [
- "3f7b90cb9bb795ae2b5d4d7d8f3d191d9367c5f7",
+ "5744af6897c22df803c3069976c82c4e8e71f863",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-010.xht": [
- "ce17ad669608ac4ed172700f70a81c4981a89c05",
+ "309e25d4fb40152b1eaba0c043bd56f7f3530336",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-011-ref.xht": [
- "963982add5970883d0bae61219c057c2edd024c9",
+ "63188638ffa9c3c5f4f66b6d29b3f3c828437a46",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-011.xht": [
- "bf6960396ddeb7113cc67a48def2408ced7ac593",
+ "bd0f573ef0540f520e2409ab1b19a20f034cf41f",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-012-ref.xht": [
- "4f2e693dd128537dfc451d94818cfe5bb3e05786",
+ "94e4d95d70f641c975671d5ced75fd444f822d5c",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-012.xht": [
- "d78812a69447dd9949aeaf7e4edc75f04e7df0a6",
+ "fd8f497083daab24ee26cfba4b4de4184964faaa",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-013-ref.xht": [
- "59102557bdcb3bec9b7920a7cb8d365c7d1219c8",
+ "8238213165752f53c298deaeaf721289e53d772a",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-013.xht": [
- "a8478b826fb8ecf63da852226d9d8e6e468bfc63",
+ "5965af460bf066c5e1d7a62c726470567dbd5115",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-014-ref.xht": [
- "58e903d75ba7f5fb377635861647482020f63d6f",
+ "deada86cb1c6bb4ea6a5821f4de6817dec7aa9f1",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-014.xht": [
- "99209cdf49996831fd03534942ed1bdf919a8d50",
+ "3030859290f6fa6807b0bbbc5bd5ec82704e2d17",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-015-ref.xht": [
- "f90208f66ef9cb23f09b3f2c3ebc1cfb250dc075",
+ "5f83fd5f68afcdcd095262c0f67f05178e8f1516",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-015.xht": [
- "995d8a4f5f60a995a3cf8076254c0294cd23ef2c",
+ "2ebd694fe56228e7cb01cecf4e157a7b0c1f5cd3",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-016-ref.xht": [
- "b3d85808306b8c8ad3b79cc29108c3c6c9111fb0",
+ "356ad01e345d36b10a68472db503ee2470d8914c",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-016.xht": [
- "3a1003fcdf00cf62f567b5ca450202e4cb4f5010",
+ "94898f1e6387f76fada1b31a226c9f1a97d5e150",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-017-ref.xht": [
- "be296cbc069ae20193eb73ea5ccc991f4c347344",
+ "c273cf6bd5ea9f250e2bcfe19d4a8a976e8222bf",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-017.xht": [
- "8748fe7d04d758a114008e52c9964c6dfa139a2e",
+ "ae010571716e5cf81debd35d92b56c52fbcb7327",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-018-ref.xht": [
- "676d09ccd288d9a0f719047ddaf35753ac1ea46d",
+ "2bf16f3319b47c785f1cbddf3e583da982cb91a5",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-018.xht": [
- "6e39e98369ff27b85bc0134024fbc152a2a5ca94",
+ "ad0de69994ab977b08629e6b612c44b7da5038fb",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-019-ref.xht": [
- "434f4c966f0d77cb77cf2799c457b2fbbdd25ad1",
+ "49e8f807cf2b894800daaa8bbc0ff5dcbf787301",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-019.xht": [
- "e6dbebc9a6dd595e5095a88c36ec0be60f6a70a2",
+ "fd7b916e56d7905917ed8e8ecd529a08515b3033",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-020-ref.xht": [
- "1b8449b8d56be57135ce521a3bf73c79391cd3fa",
+ "d45e3d7577daca4bb745fc9286e2bec281cdcda4",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-020.xht": [
- "55c82a7bd7c4d424d5e7db3551a62fccb439ac08",
+ "afe9438642eb188c48cfd7600c842869d53dd8d6",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-021-ref.xht": [
- "b66f06cdb852ae54c0f1f8d89a5c2c67b5ef7363",
+ "b17e8285cc54a11e4b1556613f33485e5988bb3e",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-021.xht": [
- "9a72a058ca3b0c892e788971d15cf007141d560b",
+ "5f5acc7683bc600928ea6ae31b7a7b738c3f373e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-022-ref.xht": [
- "f6563668e6e9683e8d24e8d0c1ce35382edeaf86",
+ "dc53685d831ee9657719ea047b10a39ccd142679",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-022.xht": [
- "86eedb7816239781764057746e8572eb5fa831e5",
+ "23c00254176d80c45b1e149b9796c559ff71ee2d",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-023-ref.xht": [
- "593388c74d1c626a028018f9cde51e4626e5aec3",
+ "df059b10a26a1667935d354325811f7186b79187",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-023.xht": [
- "f19113773c390f2a4074f53ea4f5b24c83ae2040",
+ "c350157b4f54f9f5e306b6142e56e8e07ed339e1",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-024-ref.xht": [
- "6d55d76fe03921fe209a975769e51b949e1c6c36",
+ "6dd61616110d5b33e190131a425fbd8a3776202b",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-024.xht": [
- "e11f4aebe020777181fd577c4d5506d9a71cffb4",
+ "a9376f13e9ba995e9226bca27c4326bebe86e02b",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-025-ref.xht": [
- "40cd2c39f215b30cbda936de6a288bfecdbc8de8",
+ "787df6f83e3fe0f3c7298559440d20bb7d842bd7",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-025.xht": [
- "64055b5c83a0846b865276006b2bee3a71c1651e",
+ "c692226bd2a5540b919403bab33d244c42430535",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-026-ref.xht": [
- "ea7bb1c66f17cfe3901cf70d1b9c1f50e3c051d7",
+ "a28fcff7f47b31a94666af9dd11d468cb3df3b66",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-026.xht": [
- "5b5f346c79a89c2fc64fd1aedf4dfd80d7da04c0",
+ "5970fab49684fca4af9ea017fcb003e50e902535",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-027-ref.xht": [
- "b50ca888035088b756699eee68ff9c511fe86f70",
+ "4c39175950c955a39cd86c036838be1f13af5144",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-027.xht": [
- "f25ac125b9d8ef0e0a419e584c69551d77869ee0",
+ "d92bd742a5dbd396f43b6f14f13231ef14306e8a",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-028-ref.xht": [
- "b89a04c5a9b044a6e782a700f8a86f74ae728b66",
+ "c823f7a34b180c6a9093436d6dd0b363794049e1",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-028.xht": [
- "849f6b8c333e1f5f5fae433b90c8dda7b8a0c695",
+ "a6b6c155ac16616e55ed0ec06b0c95ce7b74b92e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-029-ref.xht": [
- "11c3ce8beb78342881cdecc49640be5aa99d2db0",
+ "5b355bf25cf27944356693dd31bb0860d42f499c",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-029.xht": [
- "0cecc5d0c0dae180b6c431f09a6990fa45cbcb6b",
+ "b13195cdc841a9b4277a8c1c6d129e1bc3ff2535",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-copyright-030-ref.xht": [
- "d21c484b0aa4f277dda27d9124c04ce791ba1397",
+ "7e7fc3d53c09614249470ac2eb0eae88786b41b1",
"support"
],
"css/WOFF2/metadatadisplay-schema-copyright-030.xht": [
- "e09da9ad3d0596abf1f5b59bf5c7e74487d9e000",
+ "f9b104aed1d33a24c7f2a0bc4a40f90eca98d0d9",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credit-001-ref.xht": [
- "86feeab5ccc26dcc57fd3b018419100d158715ec",
+ "18b0dbab4e56861bdc51cf5497c1af059c88a359",
"support"
],
"css/WOFF2/metadatadisplay-schema-credit-001.xht": [
- "566b1011afb3279f0e5ae6d774ddd5b0d9eff674",
+ "222cb0f9dc874c02051890bdb64933c47bd1e50d",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credit-002-ref.xht": [
- "ac64c89797af9e3df286f6710c59939cd6d922b6",
+ "de3f2e7abe4a3c8a65d90ea56819940d06c82dd3",
"support"
],
"css/WOFF2/metadatadisplay-schema-credit-002.xht": [
- "348bf385d963946f966a5beaba923d8553fc5e98",
+ "5930a8ff061f516ad2804d20f7aa5412a5ff18de",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credit-003-ref.xht": [
- "79719ca0c53a252f1ab27bd9e742a1ff73eec1a2",
+ "2f901c3a0b9cd35f9cc8c45866c1b88877c65fca",
"support"
],
"css/WOFF2/metadatadisplay-schema-credit-003.xht": [
- "08723813a2d7a6589c76e84533677b4cecad0d2c",
+ "1056181bf296faffad111ac7c7317ca6309dc649",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credit-004-ref.xht": [
- "b365492671402ab8e783cd541dea22f40278d7cd",
+ "36c2483c4af92dc7441f20059164919352c03b80",
"support"
],
"css/WOFF2/metadatadisplay-schema-credit-004.xht": [
- "8bf3f5bf2fa21d95d3be8103140618f3fe203bf5",
+ "2d53123355d62aaa0101015a0aa57d1eabd6f164",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credit-005-ref.xht": [
- "152afe3cf7a9ca5a50d6366fe2f5524f231df457",
+ "763d1f8fa17940168909673009b9fcb815e267e4",
"support"
],
"css/WOFF2/metadatadisplay-schema-credit-005.xht": [
- "119ecf25dfb8b5e56322e76e800bab9d3dbae428",
+ "9c5e0d21c0ed0e9679fc8c517515305234b97778",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credit-006-ref.xht": [
- "d116823b8e82eaae0c8826ceb42e0cc5c9117c2c",
+ "89a87a17efd5561795a01f900a431ecc6e27ea1e",
"support"
],
"css/WOFF2/metadatadisplay-schema-credit-006.xht": [
- "911ac4622b89681f84a686c779f4a3af74f261d6",
+ "223ab5ec95244d16c451b3301f35a6d484451957",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credit-007-ref.xht": [
- "bd1745189a2aad9732dd49b34a9d96e8be457a64",
+ "acbe2b28838e9eb6611d5e879bae8a73f6032222",
"support"
],
"css/WOFF2/metadatadisplay-schema-credit-007.xht": [
- "482f3191f321df76603fdee736909d8917a042e2",
+ "d25c9aeffe74aeef24f0087f7514bff5451af15e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credit-008-ref.xht": [
- "3021b71ec1eca477bf9d6677688de5720e6f9498",
+ "876f4ac3b5fa32ae09d18121af120d39a94d65ce",
"support"
],
"css/WOFF2/metadatadisplay-schema-credit-008.xht": [
- "6bdb47552373ef2addf428ca787c467991b64c5b",
+ "e395b24dc0d9206e505657c3e05c3d29b182dedc",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credit-009-ref.xht": [
- "edc4878d215f1768022f12c892762f125c1c279a",
+ "0653e10344d2df934b4a4549fc7e3ff2f73d077a",
"support"
],
"css/WOFF2/metadatadisplay-schema-credit-009.xht": [
- "390ccdaf9ea118371f1abd2460652f0663106ecd",
+ "83d4aa648be82139d2e50ef3c1b201e735ec84c5",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credit-010-ref.xht": [
- "d818e5908f24f8c9e6e0bab5f787a7b3a52c460e",
+ "ae16156c211963d87f3df857f406c0daee19d7ef",
"support"
],
"css/WOFF2/metadatadisplay-schema-credit-010.xht": [
- "af5cba94dfd976c4e366b63b6e7bac41277ac2ce",
+ "053fa9efaaca45d9b217066a777398b27f411316",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credit-011-ref.xht": [
- "863fa2994bb2b1ff92f7f8de61722b1f5f476519",
+ "e4b2b574bc5f94ed28cdc2f12b5fb45cdaf372d7",
"support"
],
"css/WOFF2/metadatadisplay-schema-credit-011.xht": [
- "853fa5f9d40736b5500af96aca73dd08ba5330d7",
+ "aea69582dd74e337c4cb660631e0157f4e0c670d",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credits-001-ref.xht": [
- "19d278e9a48edf4623409ae65e2a0a49c02882e1",
+ "79b34ea9f1ef98e79ddae76c568d3f9841899a71",
"support"
],
"css/WOFF2/metadatadisplay-schema-credits-001.xht": [
- "f45079da6e4c439db3a8b38e8efe7609c9e61a62",
+ "8c807a5c72f5f34a2cb6b4e502f6d54422f21eb1",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credits-002-ref.xht": [
- "4d3cabfa59bd72ae27221c7e304cdde2529eb2e1",
+ "196117caeeea93de5437832cb6caf969c2edf215",
"support"
],
"css/WOFF2/metadatadisplay-schema-credits-002.xht": [
- "9ef5cb2c827c43a104ec38276cb08a0944931493",
+ "12f47597ea88053f8662f5d657acf3f0381ebd93",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credits-003-ref.xht": [
- "caaabc833c94a83614fd330cd1bb60f7b1d6072e",
+ "3441709043ac5b75ffeb7f9edb862817322fdf61",
"support"
],
"css/WOFF2/metadatadisplay-schema-credits-003.xht": [
- "ef3003d9354432b281360d0e9daddf011ac8424c",
+ "988baa1ed7c5b856c27fa4663468a0b385e1f545",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credits-004-ref.xht": [
- "a49fbcaeb750a50af68764c0cabf665fbc23f13c",
+ "8adc58f1f95b28d4e15b4966ce7b35cb68bc1f30",
"support"
],
"css/WOFF2/metadatadisplay-schema-credits-004.xht": [
- "e2321498c1b5e2ebcc3d188ed7d097021ae145cf",
+ "1be65dcb94ace6206fb51d286080095b9c5e4d11",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credits-005-ref.xht": [
- "a1b1856acd6aafe606f2dd81aeb91baa4d8777d1",
+ "870c55aa29f027be245fade472ec84209dfee1d0",
"support"
],
"css/WOFF2/metadatadisplay-schema-credits-005.xht": [
- "fc16142c7dff393bc6d49d76035e8c9dc7b3f64f",
+ "a3eb42ee02a669df17435847c1e2899c418b99e5",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credits-006-ref.xht": [
- "94ace49dc1efca88dfbcd43728aa50266ced878f",
+ "cab02fcc4610a5f8880a01faa8f4a3cbee151916",
"support"
],
"css/WOFF2/metadatadisplay-schema-credits-006.xht": [
- "ff90a54ec3b0ae1dad08b2bf39e37a9ba73850b8",
+ "4cd7afe15e394dd8cd0047c0aad17ee48bc892a9",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-credits-007-ref.xht": [
- "9311eeaa044f82e5c9cf7d651af70abd4461d2f6",
+ "7b87343eb615e3cd012a9d179f77367571962e77",
"support"
],
"css/WOFF2/metadatadisplay-schema-credits-007.xht": [
- "dfb1e7c9c5a6eafb5cc3a19ba88a9ac0324684f9",
+ "6bc9c573dc0855747803f1bb67486c629e674240",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-001-ref.xht": [
- "8f6433b7d76f7584051fd43febadf3ab78003244",
+ "343c9176253533b0bc770da64574ce7c075dedbc",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-001.xht": [
- "1ceaf9d39d698ae773ad0766cb5915b80db9fbde",
+ "b3994cbc116fcf96f6e8ac06f2ad90c5d021c180",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-002-ref.xht": [
- "28be5e89f35c56ec09d9e5567acf356dd67708ca",
+ "f7e2a5a0be7ecc9b6f79a98fcd15b56c94b52b75",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-002.xht": [
- "8ec443b25718564565f1575e4ee94f4abf3b9884",
+ "ae7c3f2337af1b326512dad409e4d4963bfa5827",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-003-ref.xht": [
- "02289b1f20097c7311916bffd8d3cdaad75302ee",
+ "8092b71ab72bea7909cf9280f64a6d57afb33bf2",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-003.xht": [
- "a4e578b657f5d46d50e977ce51bb7f04099e9688",
+ "d2417f29a44ebb9aab92db7b6c16605bcfed52d1",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-004-ref.xht": [
- "4b4d1eb6d58905113b3053bdab7e0d2dea2cce05",
+ "26af7dc862ffd79f3c28dedbfd0321157aab772f",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-004.xht": [
- "230e93e84d7e63060da74a5ae1d31195e24368ee",
+ "d225b93e2fbd2661b821d56ddf35ad5214a1ebff",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-005-ref.xht": [
- "cf412eafe4bc201b7fe9d4a9ebb551f4e13b3d7f",
+ "6930138abbc4be39b39bdd870da7d00b8c90cd5d",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-005.xht": [
- "df2287bd0527bcbab83100e5f0fb7164f3912319",
+ "3a819cc0d994f5ca16c62a08e297bdfd077a9c0f",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-006-ref.xht": [
- "08a277ac7a873b1808c6a61c2f9259466658066d",
+ "30cae6775a57f023637abec9027b96e0f4dfaf9e",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-006.xht": [
- "b3f726c111cd6204cf30128a83d22d3d3729522c",
+ "d4cea5ee5279f1ef0552c0e3de289e8a0b7b3b0a",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-007-ref.xht": [
- "51ef0b028c9e4ae4d0b430fe818801f5c15b8915",
+ "2e187f232369eae281628e000637f6ef39d1acbe",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-007.xht": [
- "4fe40b4b9640e47b4930bd46518ad0c893f2f764",
+ "3ae7fff60dad4647e2f2e2bf3839daa42965bb95",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-008-ref.xht": [
- "3322dafcf6174ad8495870a84d09b675ad265e4e",
+ "7120ab5a36cd7b83bcbbfbf280c33f3582ba8b34",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-008.xht": [
- "cf0052cc15ca4a67eba2294f5dbd530023661e10",
+ "e5bf5fc93a5776cc8ba21e3e1fd36355a4a93f78",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-009-ref.xht": [
- "88ed0e2af267b65e2d0137a760d2512a34a7d617",
+ "c0561ef8f65652d8e457ebc3e4ad56244a2a96ef",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-009.xht": [
- "1ad179684140cb15757e23332e0cae274b1d854c",
+ "d210de87825bd489b56bd3fa7d331419ec295b8a",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-010-ref.xht": [
- "aec162550c58f263b9804fddb861d10b24c3809d",
+ "d187e39f65e34a769b26f2a965d17bc11e47880a",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-010.xht": [
- "65938f1b8d929aedfe1e67ac8aefbf76494d84ef",
+ "4c491f4d891b89d716c898f1f313fc35ed9df2ec",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-011-ref.xht": [
- "d3b85a3b281b3496af3eb65cdd620fb3d9c3dff0",
+ "6c11e1665e71a41b471767c0a3dd8b4d10cce6d3",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-011.xht": [
- "316ba320f5fe0d541781f67fc0ddaeb2f82485eb",
+ "00f5023db80db6164967e558223d1baa320ea0f6",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-012-ref.xht": [
- "17c0b45cb9717794bba396109d54c791ccaaebea",
+ "c4ba83587cf4f3cbde1a3c799e060963cb5fc63d",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-012.xht": [
- "5a37e2c76de88f57ec84f3e4e169aa83fa0c7102",
+ "471c07bb43e37022331404cea3e658a0e5ed7d4b",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-013-ref.xht": [
- "22ab2cbb982c76d8913ef54ca6559477a145a407",
+ "b6df9976081e8cfab3278a55b894dd49541b4c82",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-013.xht": [
- "cebebeeb15e42ee8215ccf4ad3cd7424ed95ae7b",
+ "a0b5f93d8ba188a257f96245b7746364039f53c2",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-014-ref.xht": [
- "bb75618d9ccf754f0905d83787870c847a028d14",
+ "d5fc6067b6a6e7ec8b55daf51c9fbc3aa851fdbe",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-014.xht": [
- "fa55087e3f81fadc757e0783b5fe160a13e800ac",
+ "bab37e1ac9d5623fe92894b6dfdfe6b9882c010f",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-015-ref.xht": [
- "5b5a06a736416cddbd133729c49ef35d5bd5b039",
+ "33f84b93b04ac5b5a87c7466dddd1472eb633385",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-015.xht": [
- "d3aff5f9fb19927ce98ca1ef92201c978d7f61b4",
+ "bbc60f9b562eedb216a201393f21ff46b0b7ca79",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-016-ref.xht": [
- "78efb3e3bbcc840e9aeecdf92edbc3125f3a1707",
+ "cfbb92e7b642717265923e0f8eeb82af8a3acf2b",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-016.xht": [
- "c549e5ac04027b74bd64955a900eb52c9e3504a3",
+ "441286e2a315600bab110e3224cff6548e90f152",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-017-ref.xht": [
- "9ef380125fa080a041a8a318323e88e737789711",
+ "14dc6c0462968c4b8cb84ca773b8a0cf59ba7636",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-017.xht": [
- "48d4470f7590e2dbf9f6b43c29366495f71c268e",
+ "e01128f70b3062451f57beb309796520f4794c63",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-018-ref.xht": [
- "e10cfd325d38804b92ff775296b2e8f5b50f8fd5",
+ "c8e7b8aaa9046a7eb833185af86f386b40739077",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-018.xht": [
- "8e11651ef08750a728e876c789c3423da90994e1",
+ "9df6abf372032686c48154a12da584d1647c8dd3",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-019-ref.xht": [
- "911c11599267c182d99dc25996f1de50b3320e77",
+ "52bef0453476a3220d63b90bace0fbcff458249c",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-019.xht": [
- "92aaa81ba2ec9cbcea2f07c6d07f96247cd163aa",
+ "7d025e1d1ede58ce0c5f9d41323b29264ffc7d7e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-020-ref.xht": [
- "1b808dd97ba3302a55960c1b9d6debfd3052e623",
+ "33bd39097327b533c75cc2c3491c4fa9ac2a7714",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-020.xht": [
- "1047ff1532d685e65db49cf370ed58c67518d62e",
+ "4b2d90471f3452a2b21d82c16b387cbe579418b5",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-021-ref.xht": [
- "34adc94c47fb3124d0023c033ee9d16f016a2eee",
+ "bf449ae7c7656093f566e92448e616a489853995",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-021.xht": [
- "5a98a61a875532f6351b153de3db1356018294d9",
+ "c46e5269aa87e14d10790342c3a39c2932d82aec",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-022-ref.xht": [
- "24adc9fc534b00afa14ad651a01416d3cf345046",
+ "8ac47a6849c1789d1100a0e2bd0d235304dbc88b",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-022.xht": [
- "91b6fa5d2ae07c881c5f190ec68443175e44d8ff",
+ "711539258f8cae19e61c1bbceb4782d21e54331f",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-023-ref.xht": [
- "4ca8558609bfee4755fa46a7ac2d84a9faf70fbe",
+ "ef02f55e9031d2e247f0d00efa88aad8f648a6e9",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-023.xht": [
- "a9a054c0b1646696204ec3e9dcb6433b45143a63",
+ "74ebdd3878a9d1b8dd39732407e324960cf84a8c",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-024-ref.xht": [
- "a0295643fe80b44b25bde841a59a98319a10837a",
+ "4a7a05957b432010af22d21c3030626c7b3ec1d3",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-024.xht": [
- "8ace0505bf70dbff3e8ed01e5d6e9ebe6ee772b0",
+ "77ce50add7ba3b3f20036b51499be90f4c08124c",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-025-ref.xht": [
- "198502304aa1d66afa46bfac47a484f0fcc8d409",
+ "bc4ae77eaac7f96f8ee98e0dc73a61f0c8862d41",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-025.xht": [
- "3d0b4cdf3216790c9efea8a9d108e0aafa61f085",
+ "c9cfe2de6d913734685209b81c142e10b84d1e3c",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-026-ref.xht": [
- "9752269d192db95fd67ad3256f611d92c967acd5",
+ "70e03cf216d677d5ec67701e6c0723658dc3468f",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-026.xht": [
- "20ac2154b73c52054ef6432804249816a88fcacf",
+ "ff4cab9b2ea851ba7507bb0f643eeb0330fc91bb",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-027-ref.xht": [
- "8ed7ef56753e9b617f4445584a7125ca7f0ebabd",
+ "87a45e528cec828524d69fb7c942e66ee111dc40",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-027.xht": [
- "9a4b6824fad513913a66eb69a25000e805ed7d91",
+ "88f92765a31a55038f750eb7327b4e4a08f9fdb1",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-028-ref.xht": [
- "86bde311a8133b282549929c76510cdb33b8b56a",
+ "9011dee79880080a8e4e1f1c044267a1d1bca102",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-028.xht": [
- "35c0359d07f3d0fcf70d35e0cbfc790d03c932b8",
+ "bc4640949f1e7c26e2e965dd3a0391954074cf34",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-029-ref.xht": [
- "1b01a4b2bd999a15790e1160037de5ef87ceb5f5",
+ "96b54d63c8e5ffafcce15a23aafdb46ad5d1ce14",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-029.xht": [
- "1f84743b077b2656b3ecfde40b0235ff930f5681",
+ "9ddc18a0d1a53d1488329624f8ac13184acc395d",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-030-ref.xht": [
- "8f916db909574f79dfd7985f3490432f0125bb86",
+ "5da7ae094df263d19ff2e83ee70740a529e8a6fb",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-030.xht": [
- "e59464af36a8d19c0d173a49bc73176854f300e1",
+ "c0be253c65e2a3a35b177c9084aceff23a322235",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-031-ref.xht": [
- "5d15800308fd1046e5574ab1806b32c33ff5d2d3",
+ "b0c7b19e58afc81f1c657ffe3e290ac148e028da",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-031.xht": [
- "3018ae92a3e6f25129615cc8aa116c39106983f0",
+ "0e1767b8587bcbd373f226f1959ae5e1c5b334c0",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-description-032-ref.xht": [
- "2b80b675df8bb6a9d19e3cffafca0281214bbe97",
+ "0982ce4b98f4b61f06c6e121ba4be7589076c825",
"support"
],
"css/WOFF2/metadatadisplay-schema-description-032.xht": [
- "ae601b70875cd90cbb025c7542b135628326bccc",
+ "825f8583c812a2109e6acd490ea9b11e28184342",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-001-ref.xht": [
- "46f25c21f0ec256854ffd491358d82f41dd8db70",
+ "2f08a81ae5b4e0041ae28a165d288eff47a48369",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-001.xht": [
- "09872a52c51a27b06776d8514bc83166d85799ea",
+ "023083e6ff0722a1bb29be3b9b0e819aec26d771",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-002-ref.xht": [
- "3998a8a12da167676841d114c887eed593c34a69",
+ "d44b489d65abb780429d64619c1a226c7b3fe2dd",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-002.xht": [
- "0201bae4a4d03c972714aae391f88676417fd0d8",
+ "aac6963c66719ea82d2dfd14b6fb70b4b3236b52",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-003-ref.xht": [
- "5509d01a809df1302ea6be79ee3be05cda314386",
+ "ddf90cf12e444ba39ce6d37c85b9da14c1e4a713",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-003.xht": [
- "39333afe2a0dc9913eca0c13a3821664a0dcc667",
+ "dd74c642406b340675f3af70a9c4f0f4dc1bf3f1",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-004-ref.xht": [
- "3e01d09677804d6a246e753a0bda8f5e9f14e19b",
+ "079f1214932e0192225664c5dfd1f0e571fad4e9",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-004.xht": [
- "abea41f52245bcde231cc0644d9f74e466e78542",
+ "ed0b7af2cab9bb0882831ef334d0ce126858c217",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-005-ref.xht": [
- "646651d50a22a57af3632dcc6281c4e52350c010",
+ "f343e77f43dfc796851509e0412d36b28cb094be",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-005.xht": [
- "32ddcfab59c51ea2eb4f8f6806e719c8eaf00f60",
+ "ce77d8dfcda1c5db01d1711f5e5269b2954f2bdb",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-006-ref.xht": [
- "1a05488486da2ff4276294710eaafbd91884bfab",
+ "b01700f1951d1da431ff86e3beb3922eb84553ae",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-006.xht": [
- "1f5a5ff9a0ebdc50783ac2a121b881a7653d1bd1",
+ "c141eda7d238f300e38bccca6ad0686e17f051f0",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-007-ref.xht": [
- "7cc2ebcbfa404546cd800bcc8b9037f6b28639eb",
+ "8c6145cd75e0e2b257cba33c42f6b5d261e6aadb",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-007.xht": [
- "b1d6b5f70f2d1ecc14fbf2a1e9dbf9ebe35cc575",
+ "df0c57013871ae861134dc8bdcaf14553423aaab",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-008-ref.xht": [
- "1ecbdc30cc90f68260b7927eee23a0dcd5af6b69",
+ "16e82474815eceb8ee4d8380080976a4507d6503",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-008.xht": [
- "e0b73a6e9f77d7f26b525df60acccbe0fb34581a",
+ "3867b2e37356c0fdc56985f037be34ca68a6836e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-009-ref.xht": [
- "c2baf038624f5618f85429e11a7d9ec6eee0d79c",
+ "f27c732f248c816e57915810276313bdb2f6054d",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-009.xht": [
- "5eb34380bb7331986213940fee8f5feb97a5dcdf",
+ "bee1c2f1a4e57f26d81f11dab5be307439fb2057",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-010-ref.xht": [
- "bc78d5b0a749f6f3130908f2de440f3267c37b66",
+ "f061d9f9c800f650e6ba2f9661451c687d525fbe",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-010.xht": [
- "6114d1e50e26be4b21cbe51dfcb0ac4eed6d7f67",
+ "dac1d199dbadc9bfaf027356c94319ebcd84f25c",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-011-ref.xht": [
- "4dfcab5bb3edd49a100434c8196f0381e8b733ef",
+ "ba9462d7fa76cf3cb901c2da73b3d8b150b74286",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-011.xht": [
- "aa78059cc344a848a2dee406f66bb038f361387c",
+ "6c9da6ab49c493e80f761270e6bdac59ed33064e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-012-ref.xht": [
- "e5ea88fc02365062bb31af2155d2c691058db3f0",
+ "d69e9613fe55be8a4be0e65333338746384204fb",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-012.xht": [
- "84a0c86fb48e12ac7bc37b37db592d9c87158eb5",
+ "e7737af7d78db75e5263f88a27a99c6a1479d18d",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-013-ref.xht": [
- "ceadd0a42c5f2e9cbf6b8bc36153710c8877aed6",
+ "d13fc0aca7c469d780f92d8fd9df6ea81f65c9bc",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-013.xht": [
- "ce4bcb7368b463cd91b0ff4a3a348cffdbb3e85b",
+ "e45bb5801997d66135e003d600ab16113857bb3e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-014-ref.xht": [
- "35bd78be125076330ecdfd1f661784dbc475b3ff",
+ "e75b2414bb38bab5c7f0f52f738c6856e3a22d62",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-014.xht": [
- "73734766bdf06cac9e1ed3f44ec02babce13e45b",
+ "3842941881f164dd5bc2f9e33756c5c5f964fdff",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-015-ref.xht": [
- "5a44d35b798463db32988807870b32fcdb4f1b00",
+ "f595d84a2cd759b23d0049c1f9b7fda0f1bf4f92",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-015.xht": [
- "40b9311fd1f7f85c4c9e6787b1668e03eb0aa273",
+ "10a27d4a270c271f1840bafda7833389906ac484",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-016-ref.xht": [
- "fa5fea8abc802d8b11728ae75fbba9478a35fc97",
+ "603526f3788b531eef43e7bf12df9481d495235d",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-016.xht": [
- "2132d10c96547e48e860dce5ea7d0c8a239bfa98",
+ "d8ad33055649dd653f30185c597ab9f8a8ddd34f",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-017-ref.xht": [
- "0656c48fb3abbb26da11bf7e9bf1eda4d77b00c4",
+ "ada206680f906620f7446d50def6322a6c1375ba",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-017.xht": [
- "6ac4fe3a9ba9525ea190a53eefcb9c386879e650",
+ "ea5169dbe33c31a18d21dcf0a8bd0e46a82e4dda",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-018-ref.xht": [
- "869bb1af33345bf0d49c5dfc1530cfdd3cf1fc43",
+ "472f8a6674b4579919d117abce5e13e5dcde484c",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-018.xht": [
- "6c77b9ee71be8db8f5754328f4b3a4f71349b31c",
+ "9d9de6ba88550702ab8ab7e85e6c05808cfafcac",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-019-ref.xht": [
- "38f0ec9d3b5940a81dc3968858b14a1d23c18512",
+ "39943e107928667527b06432e70548445b908268",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-019.xht": [
- "c1c669d41a6f7e7643721ee84fe4f8de456e2ab2",
+ "7086a519e385c2f5bc4310d522e3b3356830b104",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-020-ref.xht": [
- "5c5f6436563dd1b7b88afd5dea2a66a4659baf13",
+ "624cd866490e85816958bdf7b442da94212386cd",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-020.xht": [
- "a021870f889b4538f4bfd107bd79b7a3ba06728c",
+ "a1affe13f181bac708ac32c35a8d9f2324445f03",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-021-ref.xht": [
- "ada25ad3c94d7fa720a08f85c74112fa8af95a64",
+ "83d29f01e44ae835815d5ea9fc8ddde36e426c5c",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-021.xht": [
- "39827bb86e69f5f9f2d8425ed2fb118676170c81",
+ "f7954fafb53791e73b18b4e79ff051abc15a36c4",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-022-ref.xht": [
- "07221a892fed172c3f4108bc72f5e9cb99800c1d",
+ "48010fbbd8620c78b08f8c262fd07f82574810c3",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-022.xht": [
- "5ae1977787bcad5528380c0bce80cd67f67400ac",
+ "05519b019d84cb7083bd2dfc54a6f92bdd67e65c",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-023-ref.xht": [
- "36477d7c1ed061c5163bf4d372e48c8f1fe84844",
+ "80c5fe9e4454b7e3653b66708ab237975c5f2f60",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-023.xht": [
- "773d3b7d14b8e9e8545a451161cfd1525afc3907",
+ "dd581b044ee7f2e903f7edb6ccf27f65be719ffb",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-024-ref.xht": [
- "f8319565fbab524188facf9f55c4cebebf310659",
+ "b4009efeaf6c7032b401ac116df629dae60bc650",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-024.xht": [
- "1bdb68019af39ece92f573c74158e173fc621465",
+ "99e4a4761020b60fde2757f98670e919411c14da",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-025-ref.xht": [
- "8b1de0d6561585ab369f3b587d7e46fc294c6d48",
+ "4e3938cde6411e0803ca9ead3b250c6ea6793221",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-025.xht": [
- "92e36f9d642423afab6d05ceda4ea150fd03c0de",
+ "d3132ac552ef7d2eeb5930f72bbb790c4dbe921d",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-026-ref.xht": [
- "6ebfc57de7d249144c8822f8dec5b1bd4126b2e5",
+ "63d01db125c6c18b2b7a7b5e0ef5ec95f3bb3d9d",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-026.xht": [
- "24749bd05649f24a3bf0c6728a1bf8a59bf1266d",
+ "7e66a8b538399f2c351130514fed55aea6528b6b",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-027-ref.xht": [
- "7bf14886a609ef975f4a12978ea2582334dd5378",
+ "22c83d558771fc0324cd80c39d7809d8d8c34a98",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-027.xht": [
- "43dfee5fdd955d36585e3b0d1e93c54e30405389",
+ "f7d0042f204c211ce5a7b6847b0d755ea1b66237",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-028-ref.xht": [
- "27fa4f8ae6bd78ebe5cbb38eb72d657ae3c318fa",
+ "4af26683114031d23fb02f6484789452e9df46a7",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-028.xht": [
- "f3269ce6950cf06eb9d7b2f72cc6d973efa4ae95",
+ "8fee1fcb7b60b7900b83c9e0202775a13c0758a4",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-029-ref.xht": [
- "aee692cd7396d0fbceb16a15c3baa1430966ea90",
+ "7a63016ed71608c2b4ba74c9bfc7d7d460c7939d",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-029.xht": [
- "0dbe5d580d23f6295d5dacc9ace5160049c18e4e",
+ "edb4128fcade6f52ea2d9ce13ce302057050c7e1",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-030-ref.xht": [
- "f800dc725041676b8f6986de345c5a2e02748f9c",
+ "c64b188f39afc1ddbee068e303c72d790f7bd382",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-030.xht": [
- "ccc2144504ba62ea29fb922256da4c737df58d97",
+ "f80a57185ccedd9791d9cafbe5cabd3a891d342a",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-031-ref.xht": [
- "a30df65e0927cb0dc6a4465cc5d51f64b8478ab9",
+ "a1ff31ea72d2e8ef19cf880da90a8d7a30b58ee6",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-031.xht": [
- "b947ef66d84a733956814a779b297d54d5ed7708",
+ "947a636a5114f4ed30ba78174b1ee4e2bace458d",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-032-ref.xht": [
- "c29b1a00f3f7f856f1e39fe8dc9001ca880c8421",
+ "f29773db30132f4c087b27da64672e5d900a4f1e",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-032.xht": [
- "c73cd5f1cb171e7b9fbd1df3a477425811fcf54e",
+ "c3ed5d97806a67d600ca4badd664961f51a03ee1",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-033-ref.xht": [
- "10a1bd9d538bb52c4b1276f3af8672d8d5e8ea0f",
+ "39751f1592d21103268fb5cab5d8dd44409fc91f",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-033.xht": [
- "2b903bb1b47138b39b684655f79e71e18b5c724e",
+ "01e31715ac2b24a489eb7ca4cec89ac1a96c8f12",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-034-ref.xht": [
- "d3fe8afc3ddf95184e8352b1602262d935eff58b",
+ "7b0c8ee418c6b567ca901cf62eb07beb61a363f5",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-034.xht": [
- "7dfa8a9046cf4273cab545fed27c10f63ff7e4d9",
+ "083a7d75b1fae8fa57364637eb1e5fa9d5ee430c",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-035-ref.xht": [
- "18b2953c1a4ad7f7a3db3656778306faf91da7b4",
+ "5f7bf4d8a55b5a7ba02d7ab62d3e5d8774a98b17",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-035.xht": [
- "827c4c4a1e8812010b8b8757d9785e6e6d5147c3",
+ "17a84f537eb060dec42705861e11816775ba641d",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-036-ref.xht": [
- "084da8e75df32b915d7802d9009a48915309a0e9",
+ "d2eb7c0b759f3c16a5a29ca1168369bb22b4a124",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-036.xht": [
- "41e4ca2f78a1a44cc8a06e7142864ab2e978ac08",
+ "e5d7812a2b7c96dc86500f9005b8dbd0f9f8832a",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-037-ref.xht": [
- "987f86c89c52f1e56fed59d42ab1dd2dce64d7a9",
+ "79c372be2d7c2b06adcd0b869cc6105c1b900b94",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-037.xht": [
- "ba138d4244128891a047788198288c598c24dc25",
+ "dd55c0316d377716084c9de987417c35c2aaca0e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-038-ref.xht": [
- "24030d3dfb081a42a657ac3d2015b15851cfb058",
+ "55d56a1b8b330b421ff16de44a6980c6669856c3",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-038.xht": [
- "0f51809437a19bcadd547f553276a536f37db5d0",
+ "1f23da1e5d5a92d901f82ad7be8b3101b0299d55",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-039-ref.xht": [
- "697e42b4c316baa6bc724b4d2fcf83335b5e47e4",
+ "cdb72700f453ea4ebf862eda68532eca789ba697",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-039.xht": [
- "cf28119d92964e5aedcb721caea22453afb7101f",
+ "3cda40f84d1546d51b81eb02fb7e13ff9c72e55b",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-040-ref.xht": [
- "885457ec320cf930a414eed24155cb5a60099f19",
+ "4307fced21df5470c7ab386e0d2eb281f6fac956",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-040.xht": [
- "1cfbeda447bc420f050c029966e13cd4019c1abf",
+ "a2b330c45ff50164a0b883db827b9e0cc19da19a",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-041-ref.xht": [
- "2dac7a29678a60552073567fdccf400e4dfed0dd",
+ "8f19d4f7ddabde0393cb838bcaea7f387b39ccff",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-041.xht": [
- "2d64266e9979bd99b5a55966a5ea221728e12a02",
+ "d9148df62b5d5ffa77642396431aa5d41656bcff",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-042-ref.xht": [
- "27dd92f74c05ca63b08f09d001a5933eedaa4342",
+ "ec772433045578db36344f72d0e019ceaf6ac991",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-042.xht": [
- "6c0bc8fb6ac82831dd478aec6e390d9adba4a592",
+ "1e3b7b5ccf9481d9fdc617205e89aefff5110586",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-043-ref.xht": [
- "551e60abdde786bd7423546f0ea32d48de8892ae",
+ "3267c7e349b59cc9d7d20cc175b2324a2865f50f",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-043.xht": [
- "ccd358de4b5c89ef11ddd4c93c89eb1164741715",
+ "5795936c6f8b56cabd51a575ccfd2a996a09e45f",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-044-ref.xht": [
- "a50c615482605ab488938ff7cc54c0c546bc8648",
+ "58f7abe98e91d221fba6f7161083ce776cb40882",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-044.xht": [
- "8146ba31c7c7f022de7c647d5788bf07de1f3d5f",
+ "2400d2fa485dc5cda8181e7173e52e863ee68028",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-045-ref.xht": [
- "1f3e1c034d018fafc5379fb3a6052e564cac1390",
+ "24f6b134c3fb41a42290397757bdd83f2d6f79a4",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-045.xht": [
- "1f9389e3b344b8ca9c25128e528127d544882f5f",
+ "164e3366dae049a5e601ef57f49e3914baf2ab67",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-046-ref.xht": [
- "a0ae2cb9cbe9991e1f1fd465beabb1d1c7e95bcb",
+ "db8881dd195382f98d835403176915e5f2bb0728",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-046.xht": [
- "704a2598ad0fc9712a66ce7a6cc4c71abda9c1ad",
+ "36d2a33b48c46e8bc68cfffa39f031ea6dcae29f",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-047-ref.xht": [
- "140428a0f8109ca436a61ed096e7e364a47642c8",
+ "cc241ac0584adbbf023cd05b5991476c21a9ebf4",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-047.xht": [
- "97bc671469f804a4de7d31c35ae1b8a7ec302a59",
+ "7dcfb4a7ae50c006501d8caa975c178006272951",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-048-ref.xht": [
- "88177c4db11f50fad1dea50e2aee00cb6f057c82",
+ "7c8e47efe9a59e00d4645db10cbc345f80a6d40f",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-048.xht": [
- "6eb6277827538c9049748c9bcfba63897a99c90c",
+ "8c00d85d9bc84ca97c9eb9b6fe92f32497608c1c",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-049-ref.xht": [
- "49174ca262bd2522b7dd51a4762a5f70c5c6646e",
+ "581a7809999decfcbb16a27c1cc60b6da8742594",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-049.xht": [
- "c70662a33024720ef638afbd9b75e1e14b305c8a",
+ "923fa10f0004bf2311a8883336eb8c40d7d737e2",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-extension-050-ref.xht": [
- "fd764223470c1cfe7e4fa9deee6d70d42ca81923",
+ "708672964f34459a78c9afd9e6c588d66a20b79b",
"support"
],
"css/WOFF2/metadatadisplay-schema-extension-050.xht": [
- "e92768ac96369ac2bfce6403a8a8184af1fb4495",
+ "988df657abf5abd08d40f27bd686c2b62fa16d16",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-001-ref.xht": [
- "10ae954699265b0d4238366d05ebaea9719884e1",
+ "3765e19e1ab289d3e94412b73e6c204f589d5f0b",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-001.xht": [
- "19ab70859d235e92514eb42cb406c261abe6871a",
+ "a46addd4374e9f027808ece86afdd3d9319d4a36",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-002-ref.xht": [
- "c61d8f2f18f79dd57c81e81e65116caca9177b22",
+ "4326e6ed07bb37f75027b230ce9b287a5dd84a57",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-002.xht": [
- "5262547b23ef2b524bb4e5e306730e1c49f1e6b8",
+ "75ee7a5e3d38ab6faeb94ba6e8fc632f167a2413",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-003-ref.xht": [
- "009a356afa5f8712a8841fc7ade5ee38c72a88b8",
+ "99ff6e4fa9ba4edf1138144ebfee50b1a32b3db5",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-003.xht": [
- "cfb63675b23b0890241f3591ab6333f43a8afb17",
+ "1629969cb9c386267abb5bc2fcea8c82e0bee0ca",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-004-ref.xht": [
- "1e75992b2f92200167e78005474ef11b36908a36",
+ "342af567f77ab88fc870c386bdcd0dcfa625b72b",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-004.xht": [
- "8b78d8631659a15ba685513959b0779c4b6d72a0",
+ "6419b45e649279e15d0bf244c5eabd62f61f8b11",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-005-ref.xht": [
- "c79afce92374d288dd1b578320bbb4bad756d2ab",
+ "b245e80406a94506ff6114ee8421bd031fa7566f",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-005.xht": [
- "87b2598246e869be5ec0db943749fcd743dba6d0",
+ "9929a03155941aa238bae7b77b3c8408867c8c48",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-006-ref.xht": [
- "d7a0b1e5c7700fd9ed0bd05368efd7c2e59df0b6",
+ "44b06386f0b6425dba51ee632ead298cbbbfbfc6",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-006.xht": [
- "c7317a5b38da0c63febe3199d158593c24d13c6d",
+ "6ef59e8eaa3f8d2caf1f641de303f164fdb2b3a1",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-007-ref.xht": [
- "39132b802657b44b9e230c5631d234c25889a028",
+ "026d9332a5f3eec4548a5ec38f89a42e03a5c64d",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-007.xht": [
- "6afadcab94500b3d9cef4f3905d321538791b2ad",
+ "412bbac74b4474502c516572fda1007532e6ee10",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-008-ref.xht": [
- "8a2b6d96e97d51f12058179b154d630e486a80f2",
+ "c05431ba136e4ceb4c7c9850dc93cc59444cc339",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-008.xht": [
- "a88b9936c0fbc2043d20babdabc2590e0b370ab8",
+ "8343e9f322a1ca1c2404d8ff5ce8bd182db0f01d",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-009-ref.xht": [
- "83c53d5964b5484b51ad4082c03c4a69c594446a",
+ "25a8e3ba74471a16ba00b4e6be21c9bf5a8bbed5",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-009.xht": [
- "8ebb5cd9ecd8764b18016276f43efc4e54314fa6",
+ "e9abea0d7e01c70a910f96ccf0f2de629a4e817b",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-010-ref.xht": [
- "7e4d4cf1a2bc50bcf87070a3e9c1b78d7698f3d4",
+ "5b984d9c783ef734fb411578f6ad57a13dc1677b",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-010.xht": [
- "bbcacae03fbffcafec549652b6c31ce7ed6d5f88",
+ "7dc483d85395651777e03820905e49c252bf604a",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-011-ref.xht": [
- "ed86300df183befb54a8f3867cdaf21de3d6be52",
+ "04ac2a3cf2543b6a13f6594e3fa548bed3b89d75",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-011.xht": [
- "f4c9df28001bb8cb2c4174ba92a0ca0964169d84",
+ "72bf48ca9ca169147cd89e1082d34ce7986091cf",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-012-ref.xht": [
- "06bf2921aeed8b338d63b5d2a21751d1910f45e3",
+ "4b5d9a75809e13d8512784d2e0def6952a74a256",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-012.xht": [
- "c7db7ea9aa723eb647bcb7942766f9d436a78df4",
+ "fd82697e823d02b4f6042faae998dca82e764c07",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-013-ref.xht": [
- "d0bc0a48fd096fa1ca5dbb2c064eebd93c632213",
+ "3b176f0970e4da4740242ac45b317804a559e4fc",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-013.xht": [
- "46a8ea4787bde13f19f4e6e16bf66317f96752d4",
+ "60128b6c9bc62575f184e7e3112b90cc39dace78",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-014-ref.xht": [
- "c20a289ed04142d58e24c2686568709a7280e0a2",
+ "9e58df321040ad9213b211df5e2dc2fcbed7cb62",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-014.xht": [
- "a16993ba548a68d039db60529e31356ee8bbc047",
+ "f827698eb222cae409ab63f7af07554cacdcc58e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-015-ref.xht": [
- "8ae4d2743edb1e53b2f7f685053de4edce011ad6",
+ "0d6a71bbbe7e2fabeec1fb54f0488e96cea6b20a",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-015.xht": [
- "e0f67091b8e09482d5cf72693a0baaa7f4c6bbf2",
+ "8cd88262af62742388a570740fbc24d75009a030",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-016-ref.xht": [
- "2f5fa27437204cc48fc67083c41bec891d46edf8",
+ "67c6cda22330509b78fd7a42000437d4852e0f4b",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-016.xht": [
- "b08e5a8ae590145aa1dc6d95309824be5e7ab2fa",
+ "0fac0b677c534410a398aa05abfa6120017e39cb",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-017-ref.xht": [
- "d737dcc25269b49c154821d6f43aaa6f5603ada5",
+ "56789a14a657c00cdb6920509c2f9b92ce2cfba9",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-017.xht": [
- "279c4e8a1c1323e161c32251c1ea641237bacb62",
+ "1685aa8e4c2f5e7e1112f326e02bcb5cd3831eb9",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-018-ref.xht": [
- "8ce741c5056bc50c9c3c49ffbd8be437c1e2d387",
+ "71cdd24df422954f22940fecc3738ba13186d602",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-018.xht": [
- "b80d4c78416edb4d5a32ecfb886ed06cd1b18468",
+ "ea2fe9e0ec3f0f0379f55774e082d906bec54830",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-019-ref.xht": [
- "4938c759a693d83b24c905d269ec632484721151",
+ "69878c09238ecabd7ca6a1e9f77662cb28da8f00",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-019.xht": [
- "35b786966065767d54092d031c02d77eb4bf9873",
+ "121cfb40aac0e76d357f660f8c631e7bbc9ba679",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-020-ref.xht": [
- "d6c52d998ab83f99d98a8c68a1769d8a61839282",
+ "1fe123e86c987e529d2ef467795b6bfb279854d3",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-020.xht": [
- "be245435decdc0450415459ba358f5e299dd834c",
+ "a234f47e91c291833c96e22b7cbe97f286abf30f",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-021-ref.xht": [
- "b163cf81da1db03cbc8e3dd5fbb083d65c1d4329",
+ "1b8920b9575c20b156b9d7f11b2aa2530371b839",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-021.xht": [
- "8f60febd3281d76b822869b298f4cb2d28910f2a",
+ "8fb628390e92a5f5b25a381a15b1e7861de7475e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-022-ref.xht": [
- "8000a00a32b3bacf2e023da2b1b87594d728d0a9",
+ "658a8d9436ff64b81ac32e0bfdec4a7ce6d58cc5",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-022.xht": [
- "a24b552fa78b77f27198f8f9bc60570e01c9bc7b",
+ "404d34b07afb619fbea3d50006e793c9ebd8b387",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-023-ref.xht": [
- "12862e7c86be41944cf3e173ec98cacca64f964b",
+ "2d540b782d6b92bf7f93d77792fa4df63fb2ccd4",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-023.xht": [
- "fbcfbf57ae50f2e479bce26418701a68fab160e7",
+ "fb10d843c97df7ac367508c238aba1b972c250ce",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-024-ref.xht": [
- "14198d4a1d3679da765e230139dace0a45e91263",
+ "b069fe35d9ab70c05a667e6d0c2434443972868b",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-024.xht": [
- "62a5b9e65aa7dabc2ca502431ca575171d3a6165",
+ "270b57c077d37e59466c42942f2f6800fb6403c4",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-025-ref.xht": [
- "ac31ac244b67aa98a42428494ce7a8417c311d7e",
+ "b381d010682949ed3f32cf5735c3703d393132f5",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-025.xht": [
- "0489175750755f3dbab92861d7d93920ac9f5355",
+ "803e33a9798e4e44220db42115062a8c52527654",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-026-ref.xht": [
- "dacc5f536c143f01118ddf3751466744e53d2ecb",
+ "3d682262346d126039c78464f39b0a6d070db50c",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-026.xht": [
- "d79cd8e381434d27838582057be82ed4a44443a2",
+ "731f021165ffc5df79a98d45e3c6f2c723849d86",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-027-ref.xht": [
- "9b16af914e12f1061c8624f059845254478959c1",
+ "c11bb6a7c34d5469b397ba858711e212abf1da6c",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-027.xht": [
- "c30b3a296c7240f43bc360d1cdba6ae01e5fdfc1",
+ "d9593025bc552187dfe8aefe2aeb6b21edf18f01",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-028-ref.xht": [
- "73055eeb40ec451414c8b7f008b04907a657711a",
+ "e3e4bd44e74a9a7117daa8d7c32ea7ba50c4b49d",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-028.xht": [
- "eb077417a89faea06e7d897b7e959265c5fcfd2f",
+ "4310281d9fe9134ddd25890279d6ac40a611e23a",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-029-ref.xht": [
- "8661b50014e91011d71a26c68ebc6069c85024e0",
+ "017b020a6c1c60309a90e7d1ec4c882f559f11f6",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-029.xht": [
- "99e6c727fa7f3f0a487b1abd7e43a9dfa0af81c5",
+ "309a78047ddb4aaf665311dfb7dbf0c9e633be71",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-030-ref.xht": [
- "f3a2c91c8772ae5a5dd0e83ef2f24a29b5b03360",
+ "129e084c67efceb56951a7e7d5eedf5930d3e152",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-030.xht": [
- "c6a46ca909fd3a97e3ef61ba81b20be8f14f5679",
+ "e57766a9c55f577caf3a1faae931032c9c884a5e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-031-ref.xht": [
- "f7af019d8b5712defd1d484a603f73e81b8231af",
+ "417d1560d5cfb7b722beccbb4d180f15dc766330",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-031.xht": [
- "db5f0ccb7e107f77a27b6b371464042f8d0684ce",
+ "d48572e7280e966f8b4fae8f5472389adfdfd4d5",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-032-ref.xht": [
- "830ea8ccbfeb48b734c21750e6eb1296a0201aa6",
+ "139e58ce8fdf718aa3030a4f4be02734281f0807",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-032.xht": [
- "f0dcad2053bbf1db9f4536013ef1041bfee9ebce",
+ "5b3a0ce3a1677f0a0de8b827b0e39f9265aa2824",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-license-033-ref.xht": [
- "701624e05e093707a11ef76578064bb158335fc5",
+ "5e1f408a7298cd063f8c406b0e15466960b664a0",
"support"
],
"css/WOFF2/metadatadisplay-schema-license-033.xht": [
- "2d14cf2783ec91343ce055c05fef0720c5f26baf",
+ "ad3ace3032428bc384542a8818a5de6a138ee7ba",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-licensee-001-ref.xht": [
- "2984413b5227490fe9a439e526b6051d4582f725",
+ "632fc153ed39dfbc23398edab55187bb3d42ec01",
"support"
],
"css/WOFF2/metadatadisplay-schema-licensee-001.xht": [
- "5c0dfa524e96b761c06eb2e8fb247136acb2259c",
+ "927439492aa949479eebc355c8c4fb6b45598c6d",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-licensee-002-ref.xht": [
- "7bba849476ad736d0959f4036f96edc6043a5105",
+ "11781d46c50e3a27a7019752ad0c43a6f0fc15a3",
"support"
],
"css/WOFF2/metadatadisplay-schema-licensee-002.xht": [
- "186c01a6f5ebec2d9eeef809f369e9ca8fa7070c",
+ "bc39a5235e9510aba42b264f65492b77c8198c8b",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-licensee-003-ref.xht": [
- "ba0e8f1b563a1d94435c321eba36ca115235f9c5",
+ "2c1fa03e94b9c30b909cc588f4131481486d53b7",
"support"
],
"css/WOFF2/metadatadisplay-schema-licensee-003.xht": [
- "5ebf284183bed413954ac53939abb06b9be976ef",
+ "0817ef9db0afe3da07c1a09b4085ff59c162b541",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-licensee-004-ref.xht": [
- "fcb2b50c85dd8c4a252e8bda57bd0373690426c8",
+ "92ed28a757b1a20cbf083b82899ec528791147c6",
"support"
],
"css/WOFF2/metadatadisplay-schema-licensee-004.xht": [
- "aff928eb3c3dbfdb69c7e2f3e229b9a6b3e98446",
+ "3041d684eaa5f67d75431a51a483dbcd4e68f50e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-licensee-005-ref.xht": [
- "881f7eee35198443100f8be52573acf81a67c5fc",
+ "b2e9e2503375dacbc9ad47b967b3bcd0566408bd",
"support"
],
"css/WOFF2/metadatadisplay-schema-licensee-005.xht": [
- "aa178e19637705c954ba70dd3c0883147e643bf4",
+ "cc484cf6b6df93a8d7f57a0dbb5d1d88a6e4fa6c",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-licensee-006-ref.xht": [
- "ba004c41a0f0a87a4914ad84919033c81b2bca9e",
+ "c71f75af8440fb46646000a26510cc30b4d2ea50",
"support"
],
"css/WOFF2/metadatadisplay-schema-licensee-006.xht": [
- "9742262abb6a33d5dd3729866b4946d36e731846",
+ "54b0412fdf182b759bbe1a7c200cc7a9a691a028",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-licensee-007-ref.xht": [
- "02c13b29c49c8bd31106c9471bddffc99e8ca8e2",
+ "3aaad65fc434745589ad69711996143fa40df0b6",
"support"
],
"css/WOFF2/metadatadisplay-schema-licensee-007.xht": [
- "2e19ad69b5e2e183008737bef308e8dfe6507e39",
+ "0f08d6c75aecf07fba2a2f493fd4f0e65896bf3f",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-licensee-008-ref.xht": [
- "157b591dc6920d8d4bb8034f49275bc591cf3dc9",
+ "80728b454ceab99204b0a355538d409459ab9354",
"support"
],
"css/WOFF2/metadatadisplay-schema-licensee-008.xht": [
- "97ec539b1fc3e63c464fbdfba2d6488e37131075",
+ "7b622dbf279d2d05f2c05a67fe7e0e0fa3928c1a",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-licensee-009-ref.xht": [
- "c86d771ad8c121c3d588f9d8b605dd6f4ae4776c",
+ "7626f56882dd67ae2478c965dfafe231b3393243",
"support"
],
"css/WOFF2/metadatadisplay-schema-licensee-009.xht": [
- "bf7b1e54f1a26a443f024935309666deb044fff1",
+ "ac0651223deb4d41217d7fad865838f123cbb0df",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-licensee-010-ref.xht": [
- "cd35d44ca21bf192e605ca626095db710807d48d",
+ "6be567963771451c0938dcfb55ae7d318d276643",
"support"
],
"css/WOFF2/metadatadisplay-schema-licensee-010.xht": [
- "9c6fae30c7b29d161faa34a7e371a2b876413218",
+ "9c396c8c9d2748d67be5d31916d263e457a55d28",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-metadata-001-ref.xht": [
- "9cec2faf2d4e8d9beb0261a92f7554505c2bb224",
+ "d8ad8ada40000190fe7577d2c0b67ceefee44406",
"support"
],
"css/WOFF2/metadatadisplay-schema-metadata-001.xht": [
- "5e69da4426b028878b69bce129db04e349f57fcb",
+ "691f2936b3505b5d09b89560844d145ff1aadd96",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-metadata-002-ref.xht": [
- "4ce6f5526285a81e3faec18c7dcfc9726fe100c4",
+ "f4a24301acd088e7817cd3239b660e21fcd74fd1",
"support"
],
"css/WOFF2/metadatadisplay-schema-metadata-002.xht": [
- "8ecba668cb38dd43a9db5cf64ceafe943178fae0",
+ "7ad4dd3d8fe18cf14eaade255bcb77994aac9d9c",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-metadata-003-ref.xht": [
- "1ecca63ec952b4851b795f0bedb46dec66127802",
+ "0cdf5a23a39a66fd9a2f3aea3dbc65c42d9d9f70",
"support"
],
"css/WOFF2/metadatadisplay-schema-metadata-003.xht": [
- "bdb4e72822717fdb5ffd35c4bfc2dcd031524ea4",
+ "ef37d72da149d76c2f08d9119bd358de548d324c",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-metadata-004-ref.xht": [
- "4eb487d00a900c03fa08f836fce132fda4e38f0a",
+ "ffb476756692d18f18196c75863f14711b3870f7",
"support"
],
"css/WOFF2/metadatadisplay-schema-metadata-004.xht": [
- "40b27dda778569cc45db155f1e3b342851761f90",
+ "d4f7e3d6a16163af8bee04f62008a3534933e0b7",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-metadata-005-ref.xht": [
- "b3f784911f2fecb33159e366531784f20eaae86e",
+ "a6f63bb872b5e6e9f3e0a04a95b5de3c5b60eb70",
"support"
],
"css/WOFF2/metadatadisplay-schema-metadata-005.xht": [
- "114fc6b4c1e33895157c6d6b74c98885fa46dc0f",
+ "250db9caa4100280499e1ea387f71c842e3a563d",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-metadata-006-ref.xht": [
- "c1d163b7934508ccf85acf754fd5985c453808fe",
+ "1d893043301a15bda36dd5e62300ef52e16f5512",
"support"
],
"css/WOFF2/metadatadisplay-schema-metadata-006.xht": [
- "b374f8730fed0676e05b3c678b8ac5c7dbcc51b4",
+ "51707bd14632653de40721305cfffaf9bbd53428",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-001-ref.xht": [
- "4f76f392816b20cf4cd2c6e968f69d96c1d91177",
+ "1d5393bbecb82b45276c61be1db7f0e6c9cb5cc4",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-001.xht": [
- "1222259558163769b063e60fd1521707a912bd26",
+ "9fd67f5f909d18d1bd88cf991c78699fd52e4da0",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-002-ref.xht": [
- "b99a87b0cb282e5a40d5fae9aff24dd39a4eb704",
+ "9c196a1f2937693a4654d10533be91e1f1d59dca",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-002.xht": [
- "20a1ca40d0a84be78a8327afb53d2e812ff514ec",
+ "69d3082e4d6f98dc3d6eeee570186569244e6cf3",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-003-ref.xht": [
- "20935b8e649c7af21cbe70d227d7537b2449f1be",
+ "06461819db0472388ebce82410baaeea60700543",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-003.xht": [
- "552fd33ddce7933a5956f4b6cbc6b7c91783d542",
+ "ad5b2212164ecfed4151b42b4d0be5c5eb4de52e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-004-ref.xht": [
- "707f4144c525a08028c120353bad9c49d978fd61",
+ "2a95e67abe7ab1a8671c00c63f1ac60c12b63218",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-004.xht": [
- "c0f02e30c37f0970a1270dbe1b0ff710723b7353",
+ "1d266567b367f7fda7d75db9a8c6d270ad91f093",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-005-ref.xht": [
- "4ce3685d4016a9aa85b5d8d54ab53721873ff9ff",
+ "98dfb7df8ffbdc50045727c4814abada795e5c45",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-005.xht": [
- "45a6dfdd2c085ba1f0558cc77e94ee31c05e60c8",
+ "e852eccc8540324c2eb8aa620c6aac2b01adcaf0",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-006-ref.xht": [
- "fb4be694b7d6d1f173e206133d7a7992c85edc62",
+ "67f3e23fe0fd30c7c7021027dee574624aefddcf",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-006.xht": [
- "9e296021f9c054b2177ce650ac11092f9b8774b1",
+ "37575543e5331ecf91804b176122016b1bd92f18",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-007-ref.xht": [
- "b2870179ef017dadbca82d0970ce8ea85cad77da",
+ "62b2871317e3b528e5d4e0fb0de5acb3723a4c69",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-007.xht": [
- "0769d211438e4300658f7d8c848c1f929885eaa3",
+ "b597bed3f12c9362d08f2485b29b440c3e1f9420",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-008-ref.xht": [
- "629d91f068324f603439cdc062466dc62481a08a",
+ "5e9d4cf96a7de128e7214be7c6f42bf6be37c461",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-008.xht": [
- "c9a00cefe6fafdaaf8d00492c2bb985745bfce0c",
+ "743c7ba03066082bf53f9e161a032e773a85c07d",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-009-ref.xht": [
- "7f2fda60e688ab43753d7c5317c97cf2ae29f682",
+ "2126b8b1c51de5e29385a3bfd26da95fcccd4290",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-009.xht": [
- "7c3f2ebe5f219963dff8c7026768cd4ca0753ff1",
+ "9c0d3901460310b8ff33b08a300f89639f88c077",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-010-ref.xht": [
- "24e9f0a358b2bb32248265aaea131486bba560f6",
+ "e561c7158053de9b39a0bb03f0c47e3e720d94e9",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-010.xht": [
- "86dc7854d4ac926ea3b1174e0c5a0537338e1f8e",
+ "aa75cf303ef6ebcf9e5f4bd5b2bc99848061a50f",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-011-ref.xht": [
- "89c4b7a1cd9495c4f6d41b9b7fde6fdfff28db9e",
+ "9916a56f580076448b1d697a0b636b0cd2b99c1b",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-011.xht": [
- "1f81833fd53b76ced23e39d8190fbbd345bc6137",
+ "93cecca09d560fa83dbeb75f84a4c2c9d3387c8f",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-012-ref.xht": [
- "aa824b9be17f9a0311c5fd59cae6402d8148f8da",
+ "f0b55b8eee003fd4a7aca41b147dd6ba13e0302e",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-012.xht": [
- "ca7d337a589a2e5c31ef3019fc06ca3470aa2c24",
+ "9ac0280a710fe93ff1ed3bb4eca776ba17a9559b",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-013-ref.xht": [
- "4ebd8d037c99127ca153e06d7f1dc321549ad580",
+ "c59c4d45225d0818c4beb60bef08bc6d75320b61",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-013.xht": [
- "f2c075688fb2663a221432f62456a8b4fb64f8d8",
+ "fe5441cf46498d6cce5f46476d7fc656f9d7a8bf",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-014-ref.xht": [
- "8a8cab88a953bcd2e8d5ab31bd82a9663a230fea",
+ "cf33d33872614aef451c2ee46cebfa85dc023d8d",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-014.xht": [
- "103895a9187a0b11523c50d85f4acb6251f1ca49",
+ "2f44aed2a4548375f4e7428aed0fce294df8838a",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-015-ref.xht": [
- "a062e8846301a3b3e29432461a0d6dcc0239ad10",
+ "bff262928b8965edd782b05bcb6249189dcee84d",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-015.xht": [
- "bd68d1d363c1ffffb34cfb2553666db083b1110d",
+ "53d27e8d41fbcadb8d3fd8090f37ecde6e491f0b",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-016-ref.xht": [
- "e912c802238aab221ff397836ede44f0e0453eb2",
+ "d0b9faa61a8df5890bcc96dd4ff7f958c40c71c5",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-016.xht": [
- "e80ba02609dda8acda6873899a648b8026f0892b",
+ "57ecc9e7d19c78e2ab45cf10ca47fd65223c4bb4",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-017-ref.xht": [
- "9f3ae2c1b8c22e3e192d598fad7d647bd72a2e00",
+ "37d52cf9e129ebf719f337726b2c7a2b93195f06",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-017.xht": [
- "49a805c5c5596787dcb381e5fe223409490c216c",
+ "096e9422db0484dd80efb5d836ce3bd30209ff2c",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-018-ref.xht": [
- "3f4316ff1e4b5d3ecaf43bb7cb0995f06f148c98",
+ "ed4bef8c8dc2858c1b7736db3a67d6744212366c",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-018.xht": [
- "b9ad622915c04eb66a3b67176eaabc9a4197c429",
+ "9cdf5f90163b3ee674314061de37133031e12589",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-019-ref.xht": [
- "1fe44eab19612a260c10fc12b229c58473ebfa02",
+ "1f25b345101e51f77387cfe98ba33469d47652ee",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-019.xht": [
- "6b218c4ec95bfc69bc02374c55dd6d4dca6d96e9",
+ "57b932f1bff6a0292e2e1a8ed5b5074ece6fdeee",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-020-ref.xht": [
- "1524fc6ec76c96da92dacb806a400f48d254ba0e",
+ "ea741152214531d94125af2ef0a6df21fe1ca8cb",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-020.xht": [
- "01b20f2978671a3bae526239b7cfd464c86184d8",
+ "20d7acc3e28b24ef29cc793402c9cab9f7d4668e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-021-ref.xht": [
- "d46d5d60ced768bc0607336162db593e448b9672",
+ "0af299b65cceef962d7e662a8c5fc2bf41f9080e",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-021.xht": [
- "1c5b9dea88323a8730f9c9cf1e418d781000aafe",
+ "bbd9f0d35b9b3b6ef4dcca184128fbff85f5d69e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-022-ref.xht": [
- "9ec50a5e2a470b2e89e53e0ac63bcf4d48d1ee0d",
+ "6e0dd8a87caf8e1781f4e3a4474cc79ed6230c9f",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-022.xht": [
- "04423f5c44b909a9ebc340b7700c0b3bab5794a1",
+ "692ccf2d51b0e1f3378af232e7c6a8d22947024b",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-023-ref.xht": [
- "665cb3f450e0461af26995e54772738800219298",
+ "1ab341f726d37cb104eb3d61bda93fad2ca8d3fc",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-023.xht": [
- "6513a006b18241619528de1a77db6c805e2c84e7",
+ "489492608258563d751a202f5ac3374b1dd1d4b4",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-024-ref.xht": [
- "b68ea4cefd6c89f1f98f1c6e884abe9a960e7548",
+ "287cadd735e111d2f570a531219012574e98ede4",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-024.xht": [
- "474da0a3635e2764ceb289b88e3d2f0ad3ad8e2b",
+ "85b8a3a2cde7946b3289dac7a090c112a6b4c3bc",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-025-ref.xht": [
- "143cf54c105a4595cf48c3afb60b2ff371e788ef",
+ "9e966addfe7e98874cd5256f2d7ba2361213d4e0",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-025.xht": [
- "ad8e725884d652f02966c03373aaff727eef35f8",
+ "2ee000a733bcb333126663648472d0a134107013",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-026-ref.xht": [
- "5180eaf3ffdf2f496bccbf1564c1eef4e600f1a1",
+ "363556b506ef18a1fb2e3a4a4ae7f53917570b79",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-026.xht": [
- "ba6946c5a524d362395e81bc60a52589b5849353",
+ "34d3c63fdaf5ad910ff52d269f379893a422429d",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-027-ref.xht": [
- "256f8234931d862dcb571240d3906ef227a30cf0",
+ "c3d8bd1e69d310593dd4a5dceb70f8593d456eb0",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-027.xht": [
- "359347e02b265630afab442c8f0fad87ec3e72a5",
+ "8e8e63350ca900eb7dbce2fd72713cd658d7a02c",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-028-ref.xht": [
- "813365a9b6f619a5b728114743c6dcaef0ba7ab5",
+ "56df24e3f285069102fbe846f1e02975198e603a",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-028.xht": [
- "972a0c4ae57d041bf753ada3e1f7c0b751c05a70",
+ "18ae6e1e49f36628bbae980051529fe0bb6cde24",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-029-ref.xht": [
- "ee4168463c687cf40372f818fd6782c94aa7f86e",
+ "24c06beab0941789333ffc9e8f370c53a6c96fbc",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-029.xht": [
- "83981de0db2e8f82ac8a55c1471ea28b5f0bee36",
+ "bb075d6f11a36b48d39bdbff02849913792ad54c",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-trademark-030-ref.xht": [
- "d4defcdf4dc6beeb5297b1a451e6b63f2b221824",
+ "198909bcabf6b8be4833a31a425dea4a78ffbc74",
"support"
],
"css/WOFF2/metadatadisplay-schema-trademark-030.xht": [
- "283202ceb93c418d0b343e6208507dd71bd6d6d7",
+ "32f01d12acd9d30cd4fef14ddc59552419f0f663",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-uniqueid-001-ref.xht": [
- "150a1e8da3f3da7dbfc8f75c866c849db22ae426",
+ "e23ba6c17ae30d528545a075a04fb3f9a218b51a",
"support"
],
"css/WOFF2/metadatadisplay-schema-uniqueid-001.xht": [
- "90ab551632bd402ffa14f46a4d7d8faa89f4379c",
+ "48e405ea811d9ee4396a759324aafd0ad038c957",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-uniqueid-002-ref.xht": [
- "f753bbbc962dc896191018ec3248c7120cadb5c8",
+ "ada0aa8f060c06189fdb0dc93f78b27e9f5b306b",
"support"
],
"css/WOFF2/metadatadisplay-schema-uniqueid-002.xht": [
- "174d71f672f434d1ad3009762dfc733e030a4e83",
+ "9c776f033637f2a52d0ee390c7b9fab2e999a726",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-uniqueid-003-ref.xht": [
- "bd5dd4ea4440eb37794344f74a7598857e5c722e",
+ "db007ea6ef12c27af2924af4a93b6aa643c84e86",
"support"
],
"css/WOFF2/metadatadisplay-schema-uniqueid-003.xht": [
- "2537f8710b296e9df2a28bd0031c5971cbad86b6",
+ "bfe256a93e5d20a921e0bf32857e3119e780afeb",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-uniqueid-005-ref.xht": [
- "ad5e224370b744c9faa675056fa5d30695fe426b",
+ "e63c6c76c62e6a83e5ba490078da385e317e0e7f",
"support"
],
"css/WOFF2/metadatadisplay-schema-uniqueid-005.xht": [
- "3f6049721509a83a49091accb7d0223b15dbeb01",
+ "6fb6eb93b9fba91eff475ec008df75c070020974",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-uniqueid-006-ref.xht": [
- "38e2ee0d3d4b8142140517ece1b10ffdb531ebb6",
+ "da2b287136d4993e3cf33f7f1632698ced6add26",
"support"
],
"css/WOFF2/metadatadisplay-schema-uniqueid-006.xht": [
- "877428b0a1215eb2c85168a8246a33e82205800d",
+ "81dafc2f8afd623192d87d6dc23c3947b1ae464f",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-uniqueid-007-ref.xht": [
- "bec024284343baeae3dd116254fe5e596b38c9d7",
+ "92051822ce1b09580cc2a3bc6f81dca51e9662a1",
"support"
],
"css/WOFF2/metadatadisplay-schema-uniqueid-007.xht": [
- "c2346f7453c0e05dce95e3b966de61f7a76fcc93",
+ "5686fa4c71f27889cc95e1ac7e1494f93d21df0e",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-vendor-001-ref.xht": [
- "f3cd0604a7df1155f05c6924eb48c369acdd56b6",
+ "b7b3146732cabc7e63ab57fe0e97060ef0193d6d",
"support"
],
"css/WOFF2/metadatadisplay-schema-vendor-001.xht": [
- "93745229e3279db0403529bc17976263b8b71b94",
+ "406e335a48fa0bb8822eca46daa629e8bf5e0019",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-vendor-002-ref.xht": [
- "137a69eb7c0e320fd9146c4f5dcccef5be987e6e",
+ "97c9da3a9fca9071013c92acf64506be03de4659",
"support"
],
"css/WOFF2/metadatadisplay-schema-vendor-002.xht": [
- "feeec08f8957e11929e619a7d95f17267be5aaf5",
+ "7493e1c7c349a555cacbb6b71bb48ad5e445c765",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-vendor-003-ref.xht": [
- "608d37ba45bcd548e8eaef86adeadcc202a50671",
+ "93fce7bbb6ae1bc1e0db0618c82af12182faf3a0",
"support"
],
"css/WOFF2/metadatadisplay-schema-vendor-003.xht": [
- "39694a7439b53aacd2f43048fd04bd069fc31715",
+ "a4d5fec77602fae8e2b83bcf5899eb06d46fd2e8",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-vendor-004-ref.xht": [
- "5a623b669d7fc2fe0ae16957e15b11347b749f65",
+ "cd8ae5f0fb2b065b6ba80527993a9f139cc53f3c",
"support"
],
"css/WOFF2/metadatadisplay-schema-vendor-004.xht": [
- "940b65930059774e3c9e4ae22ea27b0dd53e0851",
+ "f92a6b3e715644b759deb60d6d6c4a6396c1124a",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-vendor-006-ref.xht": [
- "3d68b2d1443e4c3de3c21f9eda8e976e6a596026",
+ "71873a0eb1c061fd4017cf3583617efc3d504809",
"support"
],
"css/WOFF2/metadatadisplay-schema-vendor-006.xht": [
- "80c6aeb3ae74ed94b32ec411787deaa899548c87",
+ "deaf33644cf4f28725b76661524af4f8cc490b1c",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-vendor-007-ref.xht": [
- "602bb8d78fd235efca26fbb061f296df1a49d795",
+ "b03bc6956e74f8e961b52285ed82a2d39d01b84f",
"support"
],
"css/WOFF2/metadatadisplay-schema-vendor-007.xht": [
- "5f4004ba78219a50cd26e00c44c92ede425d5afd",
+ "2bce5225ba8d92e348b50ba61b5848f8304a60e5",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-vendor-008-ref.xht": [
- "521698ac5f934c38192d4ff078b2c23f1f43edeb",
+ "57ab5649fec8f5b53d50ba8c302a427832edd59e",
"support"
],
"css/WOFF2/metadatadisplay-schema-vendor-008.xht": [
- "8ca3f342bfba8df8c378f96b968e9854acf65c2f",
+ "b73017d123da2259ac2119e8dfbd94a64ac92e15",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-vendor-009-ref.xht": [
- "89fe06539f2acaa1bccdffa221f9f1472e2fbda2",
+ "ddc0443204cef59a8615472e8cfcae263925dfb4",
"support"
],
"css/WOFF2/metadatadisplay-schema-vendor-009.xht": [
- "e9495dacd3e0c492ab0859025af6f91b041ff2c1",
+ "f960053cc961fbfea74f87fdc0ea6bbecb4c9487",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-vendor-010-ref.xht": [
- "cfb6d03ffb1fd39e3029add1d76794f69056464d",
+ "5cb6423de6a8e3220842dc30fe337683e32232bb",
"support"
],
"css/WOFF2/metadatadisplay-schema-vendor-010.xht": [
- "020fed0a8675aa65b7acb0276eb7e3a3b2c4bf29",
+ "b141d38a446ad328909b9a9ac47f37b6fe0d0734",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-vendor-011-ref.xht": [
- "a2e1bdcef030efaeacbea7d4770cb963c815539d",
+ "1c3e81cc487976abf02aaa7af1a6d38137b0c43d",
"support"
],
"css/WOFF2/metadatadisplay-schema-vendor-011.xht": [
- "ca9783c6523b6fcfc9a73d4dadc692e2e52fcecd",
+ "7fcf24afd3719c88d67a88b8246add6526447cbc",
"reftest"
],
"css/WOFF2/metadatadisplay-schema-vendor-012-ref.xht": [
- "b7545b2290b8498a513a8b9857c8dae88a5ccf6f",
+ "fefc4fa41be384a2e9b1692bf3f59c0b988fce3c",
"support"
],
"css/WOFF2/metadatadisplay-schema-vendor-012.xht": [
- "f8ac64b6f6a0677350635c45f266f05ec9779d88",
+ "4b7b071e2747e1d1b4a28bac86ac50e5369ddac8",
"reftest"
],
"css/WOFF2/metadatadisplay-well-formed-001-ref.xht": [
- "9df59601528041afab81f26fe5720c9b879d87ad",
+ "9ac3f9035d0c65511085c48fb39c7001b7331312",
"support"
],
"css/WOFF2/metadatadisplay-well-formed-001.xht": [
- "dc6e09f398789ffb17e20a2f799f8d52afb8fdc6",
+ "b0dadfe775838419332323f87f67bc157bc0ab5b",
"reftest"
],
"css/WOFF2/metadatadisplay-well-formed-002-ref.xht": [
- "5e43965576753758c359b43a0fcaaa0fdc23bb84",
+ "e1757a62ced51f9dc340eb9a955e5de3e1d1f851",
"support"
],
"css/WOFF2/metadatadisplay-well-formed-002.xht": [
- "43ab6d84c739a9f60619cb133eeeb606fd9740ce",
+ "29fac420c9bd666e9c950a45714942b208331523",
"reftest"
],
"css/WOFF2/metadatadisplay-well-formed-003-ref.xht": [
- "df91f88dc38e79e0757c1b617ddb135c1471d642",
+ "c372c75e01f5494abd7c912ce454dc025ed53eef",
"support"
],
"css/WOFF2/metadatadisplay-well-formed-003.xht": [
- "6a7727242d1e1c469486a7f77705a7ae0fcbbc0d",
+ "28670c41c5b2ba61c4fdcb4c6a8ce94772c54fff",
"reftest"
],
"css/WOFF2/metadatadisplay-well-formed-004-ref.xht": [
- "b9b681bebade24dc347d19af9e41cca9972d2393",
+ "8e76b028387ab28601bc7d00c7462f231661680d",
"support"
],
"css/WOFF2/metadatadisplay-well-formed-004.xht": [
- "76e6c65aea64735b9db5c280d274db99bba27cdb",
+ "bea4a244851d948c361aaecc262a382119df6962",
"reftest"
],
"css/WOFF2/metadatadisplay-well-formed-005-ref.xht": [
- "eb471f07add09d6069e7e8abca844a76554b7245",
+ "77cfbeda75e7091cf71cebf774734b999a846cb4",
"support"
],
"css/WOFF2/metadatadisplay-well-formed-005.xht": [
- "69f69911a7190a36bd211c9e53e364c964ede376",
+ "045a4a3d7fadc4b9dda3e76b2080b77d5ff2063f",
"reftest"
],
"css/WOFF2/metadatadisplay-well-formed-006-ref.xht": [
- "6b52fb2533700079315e88f93eec62d6bdc0a6e6",
+ "ba8e0c22d0c3f58cb0ed8b555ae6e7c2b4b64eb2",
"support"
],
"css/WOFF2/metadatadisplay-well-formed-006.xht": [
- "12fb046871c0a688d15476cea946bb44fb7ca6b8",
+ "3838d003f05385d6ddc349a3c853d355344bfee4",
"reftest"
],
"css/WOFF2/metadatadisplay-well-formed-007-ref.xht": [
- "0e0fa0a03453c7b69d02edcadf6f8956765d0905",
+ "4ebdf1982d998177d8365e213d72afa3fc55cb71",
"support"
],
"css/WOFF2/metadatadisplay-well-formed-007.xht": [
- "1153e65056c56691dac32b367962209b4c6880d8",
+ "317751900df25ff1b52e1dac844d950f685fb359",
"reftest"
],
"css/WOFF2/privatedata-noeffect-001-ref.xht": [
- "1236098acb537a2dfe14cf3c40762fc24fcb2db4",
+ "6dfded3814b9bf0342515f14d445942937794536",
"support"
],
"css/WOFF2/privatedata-noeffect-001.xht": [
- "9d51062241fe309222c30b2d7df2b685a72d40f4",
+ "3cf21a3330e7cfa5bf7247fac576adc04cba6a2e",
"reftest"
],
"css/WOFF2/privatedata-noeffect-002-ref.xht": [
- "b38606f22c51e92d31e7961795a673017b047080",
+ "ce28725deae31ebecd06c48da9f958e55e256fd4",
"support"
],
"css/WOFF2/privatedata-noeffect-002.xht": [
- "860f7cda576e172d6026b6ff5e94db7550b3ddd7",
+ "8a68d8b41358c8fe17b9f276a90fd8c0793ccb44",
"reftest"
],
"css/WOFF2/support/SFNT-CFF-Fallback.otf": [
@@ -494751,11 +495025,11 @@
"support"
],
"css/WOFF2/support/available-001a.xht": [
- "f0f8d0c812c04e9d8d92de518c3c5ee3c5be6d72",
+ "d2e35b515d7c5513ff296908169531a4a350b0b1",
"support"
],
"css/WOFF2/support/available-001b.xht": [
- "40b719cc57be9a9fb1abcb2387914af8b6b13908",
+ "b0386ffaeb87725cf487c84969f9f3625675045d",
"support"
],
"css/WOFF2/support/available-002.woff2": [
@@ -494763,11 +495037,11 @@
"support"
],
"css/WOFF2/support/available-002a.xht": [
- "4846124a378a0ac0563358cb5ed7cf324d4b28fa",
+ "86b213c3405ee19b4feea09d0fc878d58afeefda",
"support"
],
"css/WOFF2/support/available-002b.xht": [
- "aa13699a7a06c0a73cb9deed94056343bfa54855",
+ "5ef103fbc3bc26a30d1c5b8515c2137637c5f06c",
"support"
],
"css/WOFF2/support/blocks-extraneous-data-001.woff2": [
@@ -495971,247 +496245,247 @@
"support"
],
"css/WOFF2/tabledata-bad-origlength-loca-001-ref.xht": [
- "6c6f4c46030bf5063c45957e4f1d0f1625fe40bb",
+ "abc5baeb06a03e323b0a4b194042f9312a9c78a8",
"support"
],
"css/WOFF2/tabledata-bad-origlength-loca-001.xht": [
- "cb69a92d16460c566ce5da497c76daf749eb3a20",
+ "bf0d90cd0f83bb67a677f24e52ade258ca667fb3",
"reftest"
],
"css/WOFF2/tabledata-bad-origlength-loca-002-ref.xht": [
- "f5ecf9b344a85da463639a5ea95baa09f0a5d9de",
+ "022fb4cf70a5ceb721f12800618747685bcfd3ce",
"support"
],
"css/WOFF2/tabledata-bad-origlength-loca-002.xht": [
- "2bddfd436d49a8da7d9fdc718f10d4c446810f50",
+ "543ef6f278eb1430be10300974a30c8150166c13",
"reftest"
],
"css/WOFF2/tabledata-brotli-001-ref.xht": [
- "dc247487958277292f8345f3a95923348599edeb",
+ "3c4e580e4931c3765c0f8f5c214375e4a5e8b361",
"support"
],
"css/WOFF2/tabledata-brotli-001.xht": [
- "99da1939b40cbb172d2332ad3ef677e5594f5094",
+ "8bde94b148fd228edb3c8ea273d7c46ad8c6c148",
"reftest"
],
"css/WOFF2/tabledata-decompressed-length-001-ref.xht": [
- "2326ed3d66c57c78f360461dcd1463c79318708d",
+ "f922e7550e08a208f9fb1b46a03b97eade889506",
"support"
],
"css/WOFF2/tabledata-decompressed-length-001.xht": [
- "e48581581985f5a6ada647f8c980a6637c28f870",
+ "e11d8526db09fb0515d45e15f1e2f229387050b7",
"reftest"
],
"css/WOFF2/tabledata-decompressed-length-002-ref.xht": [
- "99c9076f8ace3f9e0806dc825a86e5216a13ae8d",
+ "1e7d135a7c01f7b8c972aceacf4622cb6fd26039",
"support"
],
"css/WOFF2/tabledata-decompressed-length-002.xht": [
- "95ccec29bd1149098ab6b78b3a9104bf28e3ad39",
+ "63d698c570a1c7a9f216ecf3bf6287a1f16e38cb",
"reftest"
],
"css/WOFF2/tabledata-decompressed-length-003-ref.xht": [
- "028f4081b7139010cc9f626731438d88d151f1a3",
+ "c34877e52f0122f151d9b4074376c61766b1d8d1",
"support"
],
"css/WOFF2/tabledata-decompressed-length-003.xht": [
- "a3b01a1652e816506052a6c81090f1ae23ae3b36",
+ "e3000540b1090905c1d385891ddcca6b6d35fc33",
"reftest"
],
"css/WOFF2/tabledata-decompressed-length-004-ref.xht": [
- "8a03ef9409c605e143818333b53c09b1405a15b7",
+ "a4e2706e327488afa30e354229e1689a0f7c6eeb",
"support"
],
"css/WOFF2/tabledata-decompressed-length-004.xht": [
- "d33ce7902d64ee0870ed180cbdd1cfdac599ace8",
+ "700cf77f0bd575f6a5dff2e5b215624d26cb66e4",
"reftest"
],
"css/WOFF2/tabledata-extraneous-data-001-ref.xht": [
- "d38463a13cb0aef359f8ec6323b93168d831a430",
+ "10d44d5079b9031649b42d0dc020b455d65f4deb",
"support"
],
"css/WOFF2/tabledata-extraneous-data-001.xht": [
- "557b8a0cc08af063f362d9ee759ee6b63391cef6",
+ "9a77215fdffcd08bc95816945b61d4ae58152cce",
"reftest"
],
"css/WOFF2/tabledata-glyf-bbox-001-ref.xht": [
- "39fc4f41fe6c49b9ec0de8e93b6cfd2aef224d64",
+ "a6a0e1746853feca098ef273025d9e061f4aa365",
"support"
],
"css/WOFF2/tabledata-glyf-bbox-001.xht": [
- "4fc7c5a6164a7d9b5788eec977b612a2bcf915a9",
+ "ee34619ebaa43f8234e994976da6042e55765738",
"reftest"
],
"css/WOFF2/tabledata-glyf-bbox-002-ref.xht": [
- "b6772651e2fc695afa0f2acf5f0a2fa4180213aa",
+ "804ec4facb8481956cd8f5fdafad3b702a5734b4",
"support"
],
"css/WOFF2/tabledata-glyf-bbox-002.xht": [
- "b3c615b70b99e4d56b4c97c04e07525f06d99b3c",
+ "fada9f04b99e5777ffa57f503c37842ff49d6688",
"reftest"
],
"css/WOFF2/tabledata-glyf-bbox-003-ref.xht": [
- "08942c732de0cd05d30c003e4ab17a372398caf1",
+ "e811840f31a1d675f25579459261ce1dd1673a84",
"support"
],
"css/WOFF2/tabledata-glyf-bbox-003.xht": [
- "06be91a77a3582d48549b36da510950e89c36104",
+ "9427dce221c7298a078494edaac9720adde6eb0f",
"reftest"
],
"css/WOFF2/tabledata-glyf-origlength-001-ref.xht": [
- "f25d26db4980fab780a902dd5d67300c290e0d2d",
+ "27e938931211a8dd7af4e59dc2f5cedf026a2f47",
"support"
],
"css/WOFF2/tabledata-glyf-origlength-001.xht": [
- "982de529fc4bf0545a929ff5f087009a2fd31dcc",
+ "7cc8574aa2fa3724ba661e7098678c7d8823336b",
"reftest"
],
"css/WOFF2/tabledata-glyf-origlength-002-ref.xht": [
- "71a2de6924c94992e1844d0c6d0f27769ddad7ce",
+ "4268e6707c049158c181e7cd62d63f11d4d9e789",
"support"
],
"css/WOFF2/tabledata-glyf-origlength-002.xht": [
- "327c6fa746f6e8ff256626b043d2fa9be6ce42c7",
+ "d19d8cb62b6b94f2e6413e748d2472f655309fc8",
"reftest"
],
"css/WOFF2/tabledata-glyf-origlength-003-ref.xht": [
- "7507f42fdd6aafdf65871bcfbb8a908fc3da78ee",
+ "45f14f2e973b20265e7f593d32e9e217c19ecb3e",
"support"
],
"css/WOFF2/tabledata-glyf-origlength-003.xht": [
- "513579d874b497478c880b5620e3a29865ce5fe2",
+ "af2300309306241443d28046d96be7aa7c6403a6",
"reftest"
],
"css/WOFF2/tabledata-non-zero-loca-001-ref.xht": [
- "6d6c3b481fc5890f8a4654ddf7c3e32bf6e2947e",
+ "79496fdd47d11451064cda32006f102973464cf1",
"support"
],
"css/WOFF2/tabledata-non-zero-loca-001.xht": [
- "f0eb7b5daa570a34c4221ac894efcc0632a05118",
+ "5cd09c41c4161d0bccc882e20d4c938510258b5d",
"reftest"
],
"css/WOFF2/tabledata-recontruct-loca-001-ref.xht": [
- "edb68f0f17706c86173a7e989efa756051ad986f",
+ "9d0e35959016706dec9f505ea595d7d7a5d14b0e",
"support"
],
"css/WOFF2/tabledata-recontruct-loca-001.xht": [
- "8be8166fe62dd873aa0adc72c922148c40ca3a64",
+ "8dc053b7ca73aa5b525d4ce77d5f1f3020225fa2",
"reftest"
],
"css/WOFF2/tabledata-transform-bad-flag-001-ref.xht": [
- "d35261840137f7a298f8ec6be46b0af2a913ab0b",
+ "88477ab1d39aa55fee6f344d8efb79e18b73132e",
"support"
],
"css/WOFF2/tabledata-transform-bad-flag-001.xht": [
- "528d131ce0a8af5a45f05d94d8efc13c6afba2ca",
+ "cdae84df2959fa4917b7483fd33b9cb20886f7bf",
"reftest"
],
"css/WOFF2/tabledata-transform-bad-flag-002-ref.xht": [
- "2f5237ec5cc4dd7a3b5d4a0b0c2ab128ce3a0d26",
+ "255415edb537d0053b93518d4a9c546ae67efb17",
"support"
],
"css/WOFF2/tabledata-transform-bad-flag-002.xht": [
- "cc8f421deb25dc55018fefd553e9057d09a86997",
+ "ccc485587431c4b7dd4884d3e8f6417d54af2b25",
"reftest"
],
"css/WOFF2/tabledata-transform-hmtx-001-ref.xht": [
- "b48742e43f50705438b8262266e73545efb67dc9",
+ "eaf4f2bb2567e3a4db87734e9eacf25a58133ad8",
"support"
],
"css/WOFF2/tabledata-transform-hmtx-001.xht": [
- "d430936bccf37b55af0a109b7cf682436cbdaa2e",
+ "2b1f8c1cd097993393e3c585abfe0199286d8ba1",
"reftest"
],
"css/WOFF2/tabledata-transform-hmtx-002-ref.xht": [
- "a0280ff8ca9749adbc0e7aa52d2342a3eba11f3d",
+ "59a37c39b531d6d0d148a766dfd28501f6dfe04c",
"support"
],
"css/WOFF2/tabledata-transform-hmtx-002.xht": [
- "49d79c202646cd3c4ccd26ab16464c8edd6d4cda",
+ "77feeb071e3dad1a8bf1a5ded999f12906d18bd7",
"reftest"
],
"css/WOFF2/tabledata-transform-hmtx-003-ref.xht": [
- "7ce3a68eecbaa30604bd1cb0f6edbb5e73ed4e5c",
+ "ac2f272680144f914b768b5feed09dcc617ff87c",
"support"
],
"css/WOFF2/tabledata-transform-hmtx-003.xht": [
- "e672dbd73f000f7e7b0f54c3dae5393d34427a09",
+ "1685a256f084e0ea9934407ef4778add14cc81e3",
"reftest"
],
"css/WOFF2/tabledata-transform-hmtx-004-ref.xht": [
- "2fb259d1389d48fba911f85a734110d91d7f79ef",
+ "aac02ec4f5c6392a1966904ee9e55ab238345d05",
"support"
],
"css/WOFF2/tabledata-transform-hmtx-004.xht": [
- "270fd342d8edc53c0c0c15f6f7e7c034efac60b7",
+ "0ec03060a224882b93798b6452ca43df7c74abc5",
"reftest"
],
"css/WOFF2/testcaseindex.xht": [
- "61e31662525a66543159dc57c85b5d014bfb1403",
+ "a8627edb97ec0446d800a3e27f98518a319c55c8",
"support"
],
"css/WOFF2/valid-001-ref.xht": [
- "df547716b8f0c8249f5c181127c09d4d9a3e0a0f",
+ "eb8275ce5d75e446ee85bb783ca98f9517afd2b9",
"support"
],
"css/WOFF2/valid-001.xht": [
- "af9b2c5c0e29793a59035f497aa17f6cc7c08687",
+ "3a0939ac976d4b6136bd5357092076a9a650245b",
"reftest"
],
"css/WOFF2/valid-002-ref.xht": [
- "a0a39e5bdbcced6125c6e715ca719f2164b56cdd",
+ "7aab5bd35e94d0c52dca0e61086aa0446b5d767c",
"support"
],
"css/WOFF2/valid-002.xht": [
- "3b6704b54b4bd4447cea3a0613e57af196c39856",
+ "d88b1fdb68ba7ceb13c2ea8bddee4f453be55b35",
"reftest"
],
"css/WOFF2/valid-003-ref.xht": [
- "ab8daa0b790956da16d1ebcb87070af1b258e974",
+ "2c0656c473a93ed7afcbeed9eded5981a609f617",
"support"
],
"css/WOFF2/valid-003.xht": [
- "39ca1a42b204e916fb94437d4375d7d707bfc509",
+ "a6983a5547236672ba05cd08681e982c73de711c",
"reftest"
],
"css/WOFF2/valid-004-ref.xht": [
- "2ff10f7d8a743f7d9797f80ae6034b7b8f3afdd8",
+ "7e8324c22ad78aaad6b7ca57baab66703596ebbd",
"support"
],
"css/WOFF2/valid-004.xht": [
- "70cfb6f702ddcf583b997decb0ee820c0ba1a544",
+ "c68077dfa2dad84f16aa2a07868bf42015247af3",
"reftest"
],
"css/WOFF2/valid-005-ref.xht": [
- "972e0b5054e4893da3f8877a8ad4cd6347bedaf3",
+ "18e1dec20bf6a61cc14c73371b987093a43e02bc",
"support"
],
"css/WOFF2/valid-005.xht": [
- "f182f192b96cdd75730f851ec7d32b30a125a49e",
+ "8cbd1525eb2121f558a76ab35e2edda2d0b19905",
"reftest"
],
"css/WOFF2/valid-006-ref.xht": [
- "23763a19b8d042f360bfbbf81e7ba7aade76044d",
+ "138ce8183e2cbd378e89eaa79ecd68477d3d36f2",
"support"
],
"css/WOFF2/valid-006.xht": [
- "9772e89775c413131c1d58eb99ee730a5a139c90",
+ "46285602c03028bc644dc7e7fe7f6c80741d5757",
"reftest"
],
"css/WOFF2/valid-007-ref.xht": [
- "3afbc55c9d2074748db93b286f943962f122b84a",
+ "bfe71573a96a8bc56a91b47996aeac4f662d39f2",
"support"
],
"css/WOFF2/valid-007.xht": [
- "7e9945d8503825dfb732b764378619124bfad414",
+ "e60e803cfdc057cd2248eb6858dd273b3354601b",
"reftest"
],
"css/WOFF2/valid-008-ref.xht": [
- "0f914051b7b0699f0e8a6d9568433220965ffa00",
+ "867425a0b040730881212f4addade2afdd499775",
"support"
],
"css/WOFF2/valid-008.xht": [
- "ddc431892b20b9beeaf9a7df155f7c79bee4cb23",
+ "45d4387d3afe2a1080b8917ec2a16ae9852ebdf8",
"reftest"
],
"css/build-css-testsuites.sh": [
@@ -497358,14 +497632,6 @@
"5f2bf4b6712dd230109be62407cd31800451a271",
"testharness"
],
- "css/css-animations/set-animation-play-state-to-paused-002-ref.html": [
- "8156c889e4af141b1bdf3df52626c4337b20c611",
- "support"
- ],
- "css/css-animations/set-animation-play-state-to-paused-002.html": [
- "bd0740fea0d8b0fae749539c9702d3929b0a8093",
- "reftest"
- ],
"css/css-animations/support/testcommon.js": [
"3e2b733b29fca0963c95c0d069b7a518db266004",
"support"
@@ -501918,6 +502184,10 @@
"08bea5d1d2a8cac172e232d86ecf99926e027817",
"reftest"
],
+ "css/css-contain/contain-layout-015.html": [
+ "a2c0e1c578d9d0da43cc5d1f61b5d3cdfbf813b9",
+ "reftest"
+ ],
"css/css-contain/contain-layout-breaks-001.html": [
"09fcfd311126800c7ce63f27c3154ef31fc647bd",
"reftest"
@@ -504615,27 +504885,27 @@
"reftest"
],
"css/css-flexbox/flex-aspect-ratio-img-column-001.html": [
- "e355ee48c5c08adcb2383e45665db3d762eaa68d",
+ "dd1dd075e088c2168400f2be4629ef8ec822ebf9",
"reftest"
],
"css/css-flexbox/flex-aspect-ratio-img-column-002.html": [
- "308ac0f86d98f3c78ab18e8388920819db13020b",
+ "15760299bc6666cd5c0acbae8edf637ca20a6500",
"reftest"
],
"css/css-flexbox/flex-aspect-ratio-img-column-003.html": [
- "d0ceab01caa4006bcd85f429f9778e0a65287f1e",
+ "289a665ffc47c52e011ea5791d01a637e9cb8a30",
"reftest"
],
"css/css-flexbox/flex-aspect-ratio-img-row-001.html": [
- "201a66cad4f811903eac3113ef74a38bb77c6014",
+ "e29c7e3d000a9bc0dccf072d34b7f1838c42b952",
"reftest"
],
"css/css-flexbox/flex-aspect-ratio-img-row-002.html": [
- "1afe14f17399fa9e0b7b84f0d692b3fedf903dac",
+ "23f2c44641c4e2e71151ead8f4abf6b3e6eaa0b3",
"reftest"
],
"css/css-flexbox/flex-aspect-ratio-img-row-003.html": [
- "fef941903e0d6940b2383cfd3e549f6c8348b7d9",
+ "ccb9b7ccc85240da99a012f01c6236791852cc38",
"reftest"
],
"css/css-flexbox/flex-basis-001.html": [
@@ -504883,7 +505153,7 @@
"reftest"
],
"css/css-flexbox/flex-minimum-height-flex-items-006.xht": [
- "57dd8a81ecc56a968b56f97f14091e1c1bf68838",
+ "4685fe43ee150719f463ddf67061e34eee9de696",
"reftest"
],
"css/css-flexbox/flex-minimum-height-flex-items-007.xht": [
@@ -504891,7 +505161,7 @@
"reftest"
],
"css/css-flexbox/flex-minimum-height-flex-items-008.xht": [
- "9a01ecb867ca0bf702e32df20ab1215e47a8e74f",
+ "f82050576262b36302d0fa9d56048ecfa9978702",
"reftest"
],
"css/css-flexbox/flex-minimum-width-flex-items-001.xht": [
@@ -504915,7 +505185,7 @@
"reftest"
],
"css/css-flexbox/flex-minimum-width-flex-items-006.xht": [
- "cedba40c149e345b21295d9c18c0f8c0a2ffe9c9",
+ "e639382a3dce47a920931d326bdfc70cc43819be",
"reftest"
],
"css/css-flexbox/flex-minimum-width-flex-items-007.xht": [
@@ -504923,7 +505193,7 @@
"reftest"
],
"css/css-flexbox/flex-minimum-width-flex-items-008.xht": [
- "2b3222aaf5dccd791ba46b0c7747dc49c50bd0dc",
+ "834f36f4b5f04e06578c49159bbe2ba3770ced37",
"reftest"
],
"css/css-flexbox/flex-order-ref.html": [
@@ -508534,6 +508804,10 @@
"d773f016699bcdcbe54f196118de13fbdbd60a69",
"testharness"
],
+ "css/css-fonts/idlharness.html": [
+ "c8a4d33543cf5c9b77611c577116a71ca1ebfefb",
+ "testharness"
+ ],
"css/css-fonts/language-specific-01.html": [
"779c6c4875d44915e4c314acc028cc5ff21c4d42",
"visual"
@@ -518067,7 +518341,7 @@
"testharness"
],
"css/css-logical/logicalprops-quirklength.html": [
- "3024bbd54e4cbe1ee55e59684188587e2a56fda6",
+ "04c724e71003824ad8c9fe37c5d4b309d2954282",
"testharness"
],
"css/css-logical/resources/test-box-properties.js": [
@@ -518874,6 +519148,10 @@
"8853e79d6e9c3d262ebb38c569e97932f3b27cd4",
"support"
],
+ "css/css-masking/idlharness.html": [
+ "527fb8b8884e00d898c047f092221af56211bbcd",
+ "testharness"
+ ],
"css/css-masking/parsing/clip-invalid.html": [
"81cd98170ea4abe216c0cf155aa493c58079bd53",
"testharness"
@@ -518922,6 +519200,10 @@
"43a6f9e055b908a42b5811d6ce5e48acf8c9ed08",
"testharness"
],
+ "css/css-multicol/filter-with-abspos.html": [
+ "099f4ae1562f9ba2908bfb8dfcb0a5c9afc8b423",
+ "testharness"
+ ],
"css/css-multicol/float-and-block.html": [
"435614e6d5dcdbd8325687f70014bea0e3dea5f7",
"reftest"
@@ -523622,10 +523904,18 @@
"ab3c3d205e59df800ba5b4217245b83685521c31",
"reftest"
],
+ "css/css-scoping/shadow-host-with-before-after.html": [
+ "99af6e29e69b3131b59dbdc2b0eead52931123c2",
+ "reftest"
+ ],
"css/css-scoping/shadow-reassign-dynamic-001.html": [
"11ed4da2e6ce88d8a2b98a8f1c814417ef7770dd",
"reftest"
],
+ "css/css-scoping/shadow-reassign-dynamic-002.html": [
+ "2a90e0623a99cfb46430f0236ceea44f93a25131",
+ "reftest"
+ ],
"css/css-scoping/shadow-root-insert-into-document.html": [
"2cee9fff35c9222074f4ef78dcfcb8a3e02bbc98",
"reftest"
@@ -523662,6 +523952,10 @@
"5816d3d7af3c4bef07f4a299ab65c74b7b8d80f9",
"testharness"
],
+ "css/css-scoping/whitespace-crash-001.html": [
+ "ffcc7ce387110d170772e0c9178991a2377753ad",
+ "reftest"
+ ],
"css/css-scroll-anchoring/OWNERS": [
"d9c8054b356c9273a054a83abeb9be0626c23921",
"support"
@@ -528574,6 +528868,10 @@
"9f88a667825f8cb725dc348e17081e1a25b3f4de",
"reftest"
],
+ "css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html": [
+ "5858dbb88a775bb8975f338d866b6fc837485364",
+ "reftest"
+ ],
"css/css-text/overflow-wrap/reference/overflow-wrap-break-word-001-ref.html": [
"0b16a0bdb25ddd647ad96dd82e3430274667ee87",
"support"
@@ -528590,6 +528888,10 @@
"7daf4c0482ae02fdd5a6855b3f750e664373efcd",
"support"
],
+ "css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html": [
+ "f3e09183b565f71e38158cc5cd4d96ab5fbf25d4",
+ "support"
+ ],
"css/css-text/overflow-wrap/word-wrap-001.html": [
"8bafc4d48bbfee1e6c465a95b29792ba33c30346",
"reftest"
@@ -528610,6 +528912,10 @@
"5f656293d6ce705ad0278ee0dca22201c2cdcb3b",
"reftest"
],
+ "css/css-text/overflow-wrap/word-wrap-alias.html": [
+ "3169acee2991fd327d30f3fbebc1e3a85e6a3bb1",
+ "testharness"
+ ],
"css/css-text/support/1x1-green.png": [
"51e7b6974a09eda6cb31337717c5eaeb9c44b443",
"support"
@@ -538302,6 +538608,18 @@
"9bcaa9b053c7f5a9d4db008cb2be1dfa13c90ab0",
"manual"
],
+ "css/css-ui/cursor-pointer-links-001-manual.html": [
+ "4d02ce48b672e22a2fdc9e9666c638c55d9c8209",
+ "manual"
+ ],
+ "css/css-ui/cursor-pointer-links-002-manual.html": [
+ "651a5cdf4bc7fbd83f47a4fe6260da9b375f0e37",
+ "manual"
+ ],
+ "css/css-ui/cursor-pointer-links-003-manual.html": [
+ "52d4b8e9637151738189c848071df7f32c2f8424",
+ "manual"
+ ],
"css/css-ui/cursor-text-001.html": [
"f07e9bded7606975b35d4b9514043b4a80a59562",
"manual"
@@ -547438,6 +547756,10 @@
"ed3dc5f811d0e0920689b051da26c6b3c34b9a54",
"testharness"
],
+ "css/cssom-view/dom-element-scroll.html": [
+ "a892451d722bd7b818aa6a5efc5e07c1ff96d4cd",
+ "testharness"
+ ],
"css/cssom-view/elementFromPoint-001.html": [
"bf1c490777f450275a95ecfc6d6d2c0d055aca82",
"testharness"
@@ -547911,7 +548233,7 @@
"testharness"
],
"css/cssom/computed-style-set-property.html": [
- "ce05e756acf5a53d37d854e5e635bb68febf84a1",
+ "cb05ff525eb659d43bf234d932fd860795959c9e",
"testharness"
],
"css/cssom/css-style-attr-decl-block.html": [
@@ -548887,7 +549209,7 @@
"testharness"
],
"css/geometry/DOMPoint-001.html": [
- "02bf66acde06025e22d65c762234a2a37fbaab68",
+ "5c174b7b7616867e5b306c935ee5069024ba2110",
"testharness"
],
"css/geometry/DOMPoint-002.html": [
@@ -550678,6 +551000,10 @@
"5f52d44b36429f1ec8bb9158a6afd397fde85e6b",
"manual"
],
+ "css/selectors/focus-visible-007.html": [
+ "9b28bbb588f0d5257acf7e648971b3e153cb7001",
+ "testharness"
+ ],
"css/selectors/focus-within-001-ref.html": [
"cd36270f1a34ea74b10b761cb153a7eb85b221bc",
"support"
@@ -560483,7 +560809,7 @@
"support"
],
"docs/_appendix/github-intro.md": [
- "c20efd86390f96afb120274321f4e570953b8c69",
+ "c26effebf90d5483a890945f191b2f3626301962",
"support"
],
"docs/_appendix/index.md": [
@@ -560930,6 +561256,14 @@
"40ab5636653dfd105738ab38e7d22316132eb630",
"testharness"
],
+ "dom/events/event-global-extra.window.js": [
+ "5dcae39971b2e345cf9e21531727e344573cbebe",
+ "testharness"
+ ],
+ "dom/events/event-global.html": [
+ "10a189637c05eafd6ffe74e21edde501d2f7da9c",
+ "testharness"
+ ],
"dom/events/event-global.worker.js": [
"084a6f752edee6578113035fece6d0eb85a2fdf7",
"testharness"
@@ -560938,6 +561272,10 @@
"563ac74d2750439ccac70c524c61f74d4eb49275",
"testharness"
],
+ "dom/events/resources/event-global-extra-frame.html": [
+ "8fcec228320f8b2ba9373269a7db239d3beaa78c",
+ "support"
+ ],
"dom/historical.html": [
"291d078c4424d0491aeab7524d350eab7304f989",
"testharness"
@@ -561827,11 +562165,11 @@
"support"
],
"dom/nodes/ParentNode-querySelector-All-xht.xht": [
- "5469b8ad07ecbb07d5ca46d82c71aa4e470a5c2e",
+ "7c245a11e39f6e7b23bd63ffe5daab6f4d9de2c3",
"testharness"
],
"dom/nodes/ParentNode-querySelector-All.html": [
- "83baf7fa751b086622742908845c7a4db2e65fcb",
+ "f2bc7ad3c9c348a8d06c1c1cd5cc0d759e9651f7",
"testharness"
],
"dom/nodes/ParentNode-querySelector-All.js": [
@@ -566191,7 +566529,7 @@
"support"
],
"fetch/api/resources/echo-content.py": [
- "edc7a1d75d7c438ca3cca59f81d03058b3c2758f",
+ "df8169fcbb5312760a7bff3bd3c9b2e0612a5013",
"support"
],
"fetch/api/resources/empty.txt": [
@@ -566687,11 +567025,11 @@
"support"
],
"fetch/range/general.any.js": [
- "2c16c0398373fca53ae80aae1107868c8cdeb6b4",
+ "ad1cdfc3bdcd8e713f27831f6f08c4213726ccfb",
"testharness"
],
- "fetch/range/partial-script.window.js": [
- "1352080860b8671290919ab0d09cb41f4100763e",
+ "fetch/range/general.window.js": [
+ "1ce131a5aa6815d9a6bb7f4a9f2004c33d28dacd",
"testharness"
],
"fetch/range/resources/basic.html": [
@@ -566699,7 +567037,7 @@
"support"
],
"fetch/range/resources/long-wav.py": [
- "a9bdaefeb4e9cefd4bb678832d7ffcbe1b3167f7",
+ "b3e9951b240ccd97756eb6c65651223d40c78cd3",
"support"
],
"fetch/range/resources/partial-script.py": [
@@ -566707,7 +567045,7 @@
"support"
],
"fetch/range/resources/range-sw.js": [
- "1ec66e1dd8bf9a11b058b90e32ca7caab2233d4d",
+ "24fd34bdf1331eb908e0a2144f4c84af357c9fa3",
"support"
],
"fetch/range/resources/stash-take.py": [
@@ -566715,11 +567053,11 @@
"support"
],
"fetch/range/resources/utils.js": [
- "81cc493a76265cc64408fc2d41a67434ec99391a",
+ "fd2e57888fa9c18d46a2a4d7c9857d6cb99d087b",
"support"
],
"fetch/range/sw.https.window.js": [
- "5bf1ebc9ce82990013831f2f7f55589e29a69bde",
+ "32cc96656190618f73951d577abe948b45abb777",
"testharness"
],
"fetch/sec-metadata/README.md": [
@@ -568271,7 +568609,7 @@
"testharness"
],
"html/browsers/browsing-the-web/history-traversal/hashchange_event.html": [
- "4471d424840818a9e3bc5507680a20a6707530b9",
+ "14ca22c06495da0cf734956ddb2f3c25017fa36c",
"testharness"
],
"html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/resources/blank1.html": [
@@ -568315,7 +568653,7 @@
"testharness"
],
"html/browsers/browsing-the-web/history-traversal/popstate_event.html": [
- "ba82d7fe6f6a903e60987e07a0ad3087d7988837",
+ "ed84161a523f48546ffc2fd8ba92d16ba0f247fb",
"testharness"
],
"html/browsers/browsing-the-web/history-traversal/resources/a.html": [
@@ -568846,6 +569184,18 @@
"2b3a56895dbe6450ed38ebbb31a915c9e8b7abd6",
"testharness"
],
+ "html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html": [
+ "7b60961703fd447aff290aa5fedf6950b242b9d5",
+ "testharness"
+ ],
+ "html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable-1.html": [
+ "0e8cf55368a34a0367763cdf902fdf6a5dc51f28",
+ "support"
+ ],
+ "html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable.html": [
+ "faa25d4925073f71b3ee451427b253cc232c01f7",
+ "testharness"
+ ],
"html/browsers/browsing-the-web/unloading-documents/prompt/001-1.html": [
"758c04e8df6778e435346c59280c17e02295cca6",
"support"
@@ -568870,6 +569220,18 @@
"c37ad1ea3a1c8e389f6066c95c7b2745648e9e7e",
"testharness"
],
+ "html/browsers/browsing-the-web/unloading-documents/prompt/004-1.html": [
+ "3530a94754361d436b6c20496bea07eb0bec4893",
+ "support"
+ ],
+ "html/browsers/browsing-the-web/unloading-documents/prompt/004-2.html": [
+ "01dc2c7f9c673781291a5afbdb40ca0f0919e797",
+ "support"
+ ],
+ "html/browsers/browsing-the-web/unloading-documents/prompt/004.html": [
+ "4c8485a929926005115dd0f8e2d2a2d8e1673c6f",
+ "testharness"
+ ],
"html/browsers/browsing-the-web/unloading-documents/prompt/manual-001.html": [
"895580cf70904918397da755527c5dda3f227b8a",
"support"
@@ -570447,7 +570809,7 @@
"testharness"
],
"html/browsers/the-window-object/window-open-noopener.html": [
- "2e20bfcd1dfe9bee00a9747b87cdaf42004d6415",
+ "ee8d53b12b8034d1c0ede3b2c6516a345890915e",
"testharness"
],
"html/browsers/the-window-object/window-properties.https.html": [
@@ -587798,6 +588160,14 @@
"c11d6b875af47f6134c98a23a7d2ce4fe4baa8c2",
"wdspec"
],
+ "input-device-capabilities/OWNERS": [
+ "d4e4ff1ad12e54c45e32ff0b4938fe9a9b1f0f4d",
+ "support"
+ ],
+ "input-device-capabilities/interfaces.html": [
+ "327ff946ec80b347be627814ea9260ebd7ef6c1d",
+ "testharness"
+ ],
"input-events/OWNERS": [
"9e7b0206de5d60e7e0cf529e7b8987367c84c0f6",
"support"
@@ -587838,10 +588208,18 @@
"149cca0098cf37769391b4caa0650a7182ed8212",
"support"
],
+ "interfaces/InputDeviceCapabilities.idl": [
+ "75bf10b0d1bda48c56cb5cd2ac1c73eb59f744fc",
+ "support"
+ ],
"interfaces/OWNERS": [
"389275a34cb76282af66797b3cd06b72a3b9ddbe",
"support"
],
+ "interfaces/ResizeObserver.idl": [
+ "2835174993c1648c5f8e2a4639727118d62e2d77",
+ "support"
+ ],
"interfaces/ServiceWorker.idl": [
"7884feabcb4c9d0a447cccfa2359e3c45eef5455",
"support"
@@ -587890,6 +588268,14 @@
"a0d53cc4e88f38cce9fd45759963e5da9a6f3dc3",
"support"
],
+ "interfaces/css-fonts.idl": [
+ "ff2d83e9468c743993c9b4a1ecf3fab09684dc16",
+ "support"
+ ],
+ "interfaces/css-masking.idl": [
+ "5f4ed3d8922e30ab3ddb714d185c6e6f794e5a29",
+ "support"
+ ],
"interfaces/css-typed-om.idl": [
"36526913c07a04f9fd329a5650430db82407d766",
"support"
@@ -587907,7 +588293,7 @@
"support"
],
"interfaces/dom.idl": [
- "86ea69e6432ac3e4172129591f4aeac69e336a82",
+ "9621186ac979a5860d5c909b7505900a48c2c810",
"support"
],
"interfaces/encoding.idl": [
@@ -588002,6 +588388,14 @@
"594179265efe3f056059ba834da5e1873c3e6174",
"support"
],
+ "interfaces/performance-timeline.idl": [
+ "57f26fe863d12c7672905d185e9a2c7ab9cb98a0",
+ "support"
+ ],
+ "interfaces/permissions.idl": [
+ "7fec46d25cf175390524b681cdbec7b0b76c89b9",
+ "support"
+ ],
"interfaces/pointerevents.idl": [
"29ca4e05813256592af7e9804e8135aaffdcc995",
"support"
@@ -588046,6 +588440,10 @@
"416ee65b3ba9e438a3178c6c04a414f42d759fc8",
"support"
],
+ "interfaces/user-timing.idl": [
+ "41c00eec8e9c1b2137bd05e85bdc029b7a87c349",
+ "support"
+ ],
"interfaces/vibration.idl": [
"d1f3f51b0c6a46958d4bb3e9cc8bbc85e8a74512",
"support"
@@ -588343,7 +588741,7 @@
"testharness"
],
"lifecycle/freeze.html": [
- "aca6ab2b23924ff891dc2abc26eb3067ad099e5b",
+ "79f45af08ff1cfe5c29d318fe6a32d281e990960",
"testharness"
],
"lifecycle/resources/foo.txt": [
@@ -588351,7 +588749,7 @@
"support"
],
"lifecycle/resources/window.html": [
- "3c839ba3697d5ce8bcda99824af7dea7b37534c1",
+ "6ec159fbf686750e2866db1c1467c8f7e09c7e3c",
"support"
],
"longtask-timing/OWNERS": [
@@ -598178,8 +598576,8 @@
"9c6b6edf19800a2730de2dfe601a7cd2503cf87d",
"testharness"
],
- "performance-timeline/idlharness.html": [
- "d6ce8e5c21b42843caea8e61c1637d75c2e51d64",
+ "performance-timeline/idlharness.any.js": [
+ "0a3ea0b532a1634008b776489b7409b348952d6f",
"testharness"
],
"performance-timeline/performanceentry-tojson.html": [
@@ -598242,6 +598640,14 @@
"dc978fd8669d67118109fcab245010fdd7d799b0",
"testharness"
],
+ "permissions/OWNERS": [
+ "fec8c86a6652ad9871d914c0c5119a2158172c11",
+ "support"
+ ],
+ "permissions/interfaces.any.js": [
+ "2b16f91ae23a516d2c58299b81e0b3895cba117b",
+ "testharness"
+ ],
"picture-in-picture/OWNERS": [
"6f6511f82937c14788c608d760c567d47b139fc0",
"support"
@@ -607198,6 +607604,10 @@
"a508a8bd68ef64bd826f76cc6f0967d2a5f1d3e9",
"testharness"
],
+ "resize-observer/idlharness.html": [
+ "2b1960834f7164e351cdbba119694830055dcf17",
+ "testharness"
+ ],
"resize-observer/notify.html": [
"29f22b18a6ae894b80bec599dd71fc5050dbb292",
"testharness"
@@ -608379,7 +608789,7 @@
"support"
],
"server-timing/resources/parsing/67.js": [
- "db03fe36244bd2c07fc92720fd1d24825f9a4d11",
+ "b40f75f2522ae8277f5c391472fe285a9b504a02",
"support"
],
"server-timing/resources/parsing/67.js.sub.headers": [
@@ -608387,7 +608797,7 @@
"support"
],
"server-timing/resources/parsing/68.js": [
- "6101bd375a67052cb449c83494dc32691b6e6146",
+ "f208d939265d10b033f3574a333d3fa497db37d0",
"support"
],
"server-timing/resources/parsing/68.js.sub.headers": [
@@ -609135,7 +609545,7 @@
"testharness"
],
"service-workers/service-worker/fetch-event.https.html": [
- "dfd8525f82292cc3728cc3b1afb2a14e19ef4b43",
+ "d4ff864f1d5a7896cc748cd4abe10d08c0fb08f9",
"testharness"
],
"service-workers/service-worker/fetch-frame-resource.https.html": [
@@ -609158,8 +609568,8 @@
"01a5220ff2abe5735d7b03c2ee3ccbe21c9a260e",
"testharness"
],
- "service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html": [
- "d41f17b4a7ea596ba38a91cfbd910aa6be43e70f",
+ "service-workers/service-worker/fetch-request-css-cross-origin.https.html": [
+ "91ec6e3e7e56f20058cd32e97dad0d245eda7d79",
"testharness"
],
"service-workers/service-worker/fetch-request-css-images.https.html": [
@@ -609543,7 +609953,7 @@
"testharness"
],
"service-workers/service-worker/registration-updateviacache.https.html": [
- "c5fe71cfb142f80d451f541accaa0120d9923f2b",
+ "7a640f15203c284cfa9b228da98c55efe5a2219d",
"testharness"
],
"service-workers/service-worker/rejections.https.html": [
@@ -609943,7 +610353,7 @@
"support"
],
"service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html": [
- "77fdb8a4bf48160dacb9b463fa075a91b1d34b10",
+ "f014972c2230bd056c4b76e4a414c70e68477be9",
"support"
],
"service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-same.css": [
@@ -609954,8 +610364,12 @@
"9770895a8ca9897a13b5f116e12b2b47dd59f009",
"support"
],
- "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js": [
- "5bdb78b2d188d06eea4a0243d7cf35c5542d868f",
+ "service-workers/service-worker/resources/fetch-request-css-cross-origin-read-contents.html": [
+ "fcec3ece697564806719b32ca6144432f8216d9e",
+ "support"
+ ],
+ "service-workers/service-worker/resources/fetch-request-css-cross-origin-worker.js": [
+ "20eaf7162096519d6811e4b5d513ca70fc46e8b6",
"support"
],
"service-workers/service-worker/resources/fetch-request-fallback-iframe.html": [
@@ -616323,7 +616737,7 @@
"support"
],
"url/resources/urltestdata.json": [
- "442c5f9d5faeb6752c8b33a04c73f3f3ba82ccb7",
+ "a0acd65cc414b97083cb92fa0f6fb4d12ba26288",
"support"
],
"url/toascii.window.js": [
@@ -616430,8 +616844,8 @@
"bb08ac2ee06bc12e75cc44b76f06d3f0262f44ba",
"testharness"
],
- "user-timing/idlharness.html": [
- "b24d4d5faf5df5d67135560d5fe362cc6d72c28f",
+ "user-timing/idlharness.any.js": [
+ "6a0dcd26b5ff16b18603c50b9257d55e6e25f0ce",
"testharness"
],
"user-timing/invoke_with_timing_attributes.html": [
@@ -625450,6 +625864,10 @@
"32cd3419ff904a2440d9a6eaa7cb28f78d4a7e32",
"testharness"
],
+ "workers/modules/dedicated-worker-import-referrer.html": [
+ "c6a618329eac51a8d6bbf0f7aece906145f49a33",
+ "testharness"
+ ],
"workers/modules/dedicated-worker-import.html": [
"0b839e87ae98ad1abf32216a2086334cbc011ac0",
"testharness"
@@ -625478,10 +625896,18 @@
"9d64de6e63d110e6eff89a124e94cdec9d1802c2",
"support"
],
+ "workers/modules/resources/dynamic-import-remote-origin-referrer-checker-worker.sub.js": [
+ "e2f21f99d9fbc328146a4b5af66bd4d12e3b7dce",
+ "support"
+ ],
"workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js": [
"bb2d9e0c4c641451640987cecb2f28eff3f8b518",
"support"
],
+ "workers/modules/resources/dynamic-import-same-origin-referrer-checker-worker.js": [
+ "34ffb1015fa662f06f11f806e76132fdfd47fe0b",
+ "support"
+ ],
"workers/modules/resources/dynamic-import-worker.js": [
"9db02105e0ee1300518ca70259d4a93671062219",
"support"
@@ -625534,6 +625960,10 @@
"c67a79ade775435a67e5999d17e7cdda450c8e50",
"support"
],
+ "workers/modules/resources/referrer-checker.py": [
+ "b80225456f5629012f290e03c5dc470be59686bf",
+ "support"
+ ],
"workers/modules/resources/static-import-and-then-dynamic-import-worker.js": [
"d6db01b9912dbe05e03e8011bf79e644651dacae",
"support"
@@ -625542,10 +625972,18 @@
"e8e1f0aedcc780aac742af01387dd151b10104bc",
"support"
],
+ "workers/modules/resources/static-import-remote-origin-referrer-checker-worker.sub.js": [
+ "45f4a02525a6b1acf2a4ec14e7a9e4a4af4abbd1",
+ "support"
+ ],
"workers/modules/resources/static-import-remote-origin-script-worker.sub.js": [
"2f0657e4a67fb1e5e5c6c8bb81fcc084a846ad71",
"support"
],
+ "workers/modules/resources/static-import-same-origin-referrer-checker-worker.js": [
+ "b9eda708063a8769a351ed23dc0ed908f771cdef",
+ "support"
+ ],
"workers/modules/resources/static-import-worker.js": [
"4ccc3d3a7522527a5e62ec1adeb963220cfcd43c",
"support"
diff --git a/tests/wpt/metadata/css/css-animations/set-animation-play-state-to-paused-002.html.ini b/tests/wpt/metadata/css/css-animations/set-animation-play-state-to-paused-002.html.ini
deleted file mode 100644
index d0b39d4e03b..00000000000
--- a/tests/wpt/metadata/css/css-animations/set-animation-play-state-to-paused-002.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[set-animation-play-state-to-paused-002.html]
- expected: TIMEOUT
diff --git a/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-column-003.html.ini b/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-column-003.html.ini
deleted file mode 100644
index 7ca1525c090..00000000000
--- a/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-column-003.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[flex-aspect-ratio-img-column-003.html]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-row-003.html.ini b/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-row-003.html.ini
deleted file mode 100644
index 1fa26cd7964..00000000000
--- a/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-row-003.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[flex-aspect-ratio-img-row-003.html]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/css/css-fonts/idlharness.html.ini b/tests/wpt/metadata/css/css-fonts/idlharness.html.ini
new file mode 100644
index 00000000000..262197d06ed
--- /dev/null
+++ b/tests/wpt/metadata/css/css-fonts/idlharness.html.ini
@@ -0,0 +1,4 @@
+[idlharness.html]
+ [css-fonts IDL tests]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html.ini b/tests/wpt/metadata/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html.ini
new file mode 100644
index 00000000000..d0e0bb36b57
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html.ini
@@ -0,0 +1,2 @@
+[overflow-wrap-min-content-size-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/geometry/DOMPoint-001.html.ini b/tests/wpt/metadata/css/geometry/DOMPoint-001.html.ini
index 6404cf03499..f2cfb97e90d 100644
--- a/tests/wpt/metadata/css/geometry/DOMPoint-001.html.ini
+++ b/tests/wpt/metadata/css/geometry/DOMPoint-001.html.ini
@@ -3,15 +3,6 @@
[testConstructorDictionary2undefined]
expected: FAIL
- [testConstructorDictionary0]
- expected: FAIL
-
- [testConstructorDictionary1]
- expected: FAIL
-
- [testConstructorDictionary2]
- expected: FAIL
-
[testConstructorDictionary3]
expected: FAIL
@@ -27,9 +18,6 @@
[testConstructorDOMPoint]
expected: FAIL
- [testConstructorUndefined2]
- expected: FAIL
-
[testConstructorIllegal1]
expected: FAIL
diff --git a/tests/wpt/metadata/dom/events/event-global-extra.window.js.ini b/tests/wpt/metadata/dom/events/event-global-extra.window.js.ini
new file mode 100644
index 00000000000..0759f69d170
--- /dev/null
+++ b/tests/wpt/metadata/dom/events/event-global-extra.window.js.ini
@@ -0,0 +1,19 @@
+[event-global-extra.window.html]
+ [window.event for constructors from another global: EventTarget]
+ expected: FAIL
+
+ [window.event for constructors from another global: XMLHttpRequest]
+ expected: FAIL
+
+ [window.event and element from another document]
+ expected: FAIL
+
+ [window.event and moving an element post-dispatch]
+ expected: FAIL
+
+ [window.event should not be affected by nodes moving post-dispatch]
+ expected: FAIL
+
+ [Listener from a different global]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/dom/events/event-global.html.ini b/tests/wpt/metadata/dom/events/event-global.html.ini
new file mode 100644
index 00000000000..96ad1069096
--- /dev/null
+++ b/tests/wpt/metadata/dom/events/event-global.html.ini
@@ -0,0 +1,19 @@
+[event-global.html]
+ [event exists on window, which is initially set to undefined]
+ expected: FAIL
+
+ [window.event is only defined during dispatch]
+ expected: FAIL
+
+ [window.event is undefined if the target is in a shadow tree (event dispatched outside shadow tree)]
+ expected: FAIL
+
+ [window.event is undefined if the target is in a shadow tree (event dispatched inside shadow tree)]
+ expected: FAIL
+
+ [window.event is set to the current event during dispatch]
+ expected: FAIL
+
+ [window.event is set to the current event, which is the event passed to dispatch]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/range/partial-script.window.js.ini b/tests/wpt/metadata/fetch/range/general.window.js.ini
index aa1cf84a436..fded4bc04d5 100644
--- a/tests/wpt/metadata/fetch/range/partial-script.window.js.ini
+++ b/tests/wpt/metadata/fetch/range/general.window.js.ini
@@ -1,4 +1,4 @@
-[partial-script.window.html]
+[general.window.html]
[Untitled]
expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/popstate_event.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/popstate_event.html.ini
new file mode 100644
index 00000000000..7124dbe254f
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/popstate_event.html.ini
@@ -0,0 +1,4 @@
+[popstate_event.html]
+ [Queue a task to fire popstate event]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-undefined.tentative.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-undefined.tentative.html.ini
index 78879bad5f1..5b38c37b086 100644
--- a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-undefined.tentative.html.ini
+++ b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-undefined.tentative.html.ini
@@ -1,5 +1,4 @@
[javascript-url-abort-return-value-undefined.tentative.html]
- expected: TIMEOUT
[Not aborting fetch for javascript:undefined navigation]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/window-open-noopener.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/window-open-noopener.html.ini
index 5b40d253f1e..7844c379089 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/window-open-noopener.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/window-open-noopener.html.ini
@@ -25,3 +25,45 @@
[noopener window.open targeting _self]
expected: NOTRUN
+
+[window-open-noopener.html?_parent]
+ expected: ERROR
+ [noopener window.open targeting _parent]
+ expected: NOTRUN
+
+
+[window-open-noopener.html?_top]
+ expected: ERROR
+ [noopener window.open targeting _top]
+ expected: NOTRUN
+
+
+[window-open-noopener.html?indexed]
+ expected: ERROR
+ [window.open() with 'noopener' should not reuse existing target]
+ expected: FAIL
+
+ [noopener needs to be present as a token on its own]
+ expected: NOTRUN
+
+ [noopener needs to be present as a token on its own again]
+ expected: NOTRUN
+
+ [noopener needs to be present as a token on its own yet again]
+ expected: NOTRUN
+
+ [Trailing noopener should work]
+ expected: NOTRUN
+
+ [Leading noopener should work]
+ expected: NOTRUN
+
+ [Interior noopener should work]
+ expected: NOTRUN
+
+
+[window-open-noopener.html?_self]
+ expected: ERROR
+ [noopener window.open targeting _self]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/performance-timeline/idlharness.any.js.ini b/tests/wpt/metadata/performance-timeline/idlharness.any.js.ini
new file mode 100644
index 00000000000..7773d627528
--- /dev/null
+++ b/tests/wpt/metadata/performance-timeline/idlharness.any.js.ini
@@ -0,0 +1,17 @@
+[idlharness.any.sharedworker.html]
+ [Untitled]
+ expected: FAIL
+
+
+[idlharness.any.worker.html]
+ expected: ERROR
+
+[idlharness.any.html]
+ [Untitled]
+ expected: FAIL
+
+
+[idlharness.https.any.serviceworker.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/performance-timeline/idlharness.html.ini b/tests/wpt/metadata/performance-timeline/idlharness.html.ini
deleted file mode 100644
index b17d75503ec..00000000000
--- a/tests/wpt/metadata/performance-timeline/idlharness.html.ini
+++ /dev/null
@@ -1,20 +0,0 @@
-[idlharness.html]
- type: testharness
- [PerformanceEntry interface: [object PerformanceMark\] must inherit property "toJSON()" with the proper type]
- expected: FAIL
-
- [Test default toJSON operation of PerformanceEntry]
- expected: FAIL
-
- [PerformanceEntry interface: operation toJSON()]
- expected: FAIL
-
- [PerformanceObserver interface: operation takeRecords()]
- expected: FAIL
-
- [Test default toJSON operation of PerformanceMark]
- expected: FAIL
-
- [Performance Timeline IDL tests]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/url/a-element-xhtml.xhtml.ini b/tests/wpt/metadata/url/a-element-xhtml.xhtml.ini
index 939b2644d3e..8abf0e96552 100644
--- a/tests/wpt/metadata/url/a-element-xhtml.xhtml.ini
+++ b/tests/wpt/metadata/url/a-element-xhtml.xhtml.ini
@@ -210,3 +210,6 @@
[Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>]
expected: FAIL
+ [Parsing: <http://host/?'> against <about:blank>]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/url/a-element.html.ini b/tests/wpt/metadata/url/a-element.html.ini
index aa7e1be63e1..43d58c6105b 100644
--- a/tests/wpt/metadata/url/a-element.html.ini
+++ b/tests/wpt/metadata/url/a-element.html.ini
@@ -210,3 +210,6 @@
[Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>]
expected: FAIL
+ [Parsing: <http://host/?'> against <about:blank>]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/url/url-constructor.html.ini b/tests/wpt/metadata/url/url-constructor.html.ini
index c3b9ceadc63..e8a51ab3de0 100644
--- a/tests/wpt/metadata/url/url-constructor.html.ini
+++ b/tests/wpt/metadata/url/url-constructor.html.ini
@@ -201,3 +201,6 @@
[Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>]
expected: FAIL
+ [Parsing: <http://host/?'> against <about:blank>]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/workers/modules/dedicated-worker-import-referrer.html.ini b/tests/wpt/metadata/workers/modules/dedicated-worker-import-referrer.html.ini
new file mode 100644
index 00000000000..3c7c4f0059e
--- /dev/null
+++ b/tests/wpt/metadata/workers/modules/dedicated-worker-import-referrer.html.ini
@@ -0,0 +1,4 @@
+[dedicated-worker-import-referrer.html]
+ [DedicatedWorker: Referrer]
+ expected: FAIL
+
diff --git a/tests/wpt/mozilla/meta/css/iframe/hide_after_load.html.ini b/tests/wpt/mozilla/meta/css/iframe/hide_after_load.html.ini
new file mode 100644
index 00000000000..65c78fd3a4a
--- /dev/null
+++ b/tests/wpt/mozilla/meta/css/iframe/hide_after_load.html.ini
@@ -0,0 +1,2 @@
+[hide_after_load.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/canvas/rapid-resizing.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/canvas/rapid-resizing.html.ini
new file mode 100644
index 00000000000..1e2567027d8
--- /dev/null
+++ b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/canvas/rapid-resizing.html.ini
@@ -0,0 +1,5 @@
+[rapid-resizing.html]
+ expected: TIMEOUT
+ [Overall test]
+ expected: NOTRUN
+
diff --git a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-uniform-packing-restrictions.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-uniform-packing-restrictions.html.ini
new file mode 100644
index 00000000000..594360ffb15
--- /dev/null
+++ b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-uniform-packing-restrictions.html.ini
@@ -0,0 +1,5 @@
+[shader-uniform-packing-restrictions.html]
+ expected: TIMEOUT
+ [Overall test]
+ expected: NOTRUN
+
diff --git a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-with-non-reserved-words.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-with-non-reserved-words.html.ini
new file mode 100644
index 00000000000..fb8852c9e7a
--- /dev/null
+++ b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-with-non-reserved-words.html.ini
@@ -0,0 +1,5 @@
+[shader-with-non-reserved-words.html]
+ expected: TIMEOUT
+ [Overall test]
+ expected: NOTRUN
+
diff --git a/tests/wpt/web-platform-tests/.gitmodules b/tests/wpt/web-platform-tests/.gitmodules
index 90c91af579f..f40c77f6331 100644
--- a/tests/wpt/web-platform-tests/.gitmodules
+++ b/tests/wpt/web-platform-tests/.gitmodules
@@ -1,6 +1,3 @@
-[submodule "tools/html5lib/html5lib/tests/testdata"]
- path = tools/html5lib/html5lib/tests/testdata
- url = https://github.com/html5lib/html5lib-tests.git
[submodule "resources/webidl2/test/widlproc"]
path = resources/webidl2/test/widlproc
url = https://github.com/dontcallmedom/widlproc.git \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self.html b/tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self.html
deleted file mode 100644
index 83cf53583ce..00000000000
--- a/tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<link rel="match" href="drawimage_canvas_self_ref.html">
-<canvas id="dest" height="100" width="100"></canvas>
-<script>
-var canvasWidth = canvasHeight = 100;
-var destWidth = canvasWidth / 4;
-var destHeight = canvasHeight / 4;
-var destCanvas = document.getElementById('dest');
-var destCtx = destCanvas.getContext('2d');
-
-destCtx.fillStyle = 'red';
-destCtx.fillRect(0, 0, canvasWidth, canvasHeight);
-destCtx.fillStyle = 'green';
-destCtx.fillRect(0, 0, canvasWidth / 2, canvasHeight / 2);
-destCtx.drawImage(destCanvas,
- 0, 0, destWidth, destHeight,
- canvasWidth / 2, canvasHeight / 2, destWidth, destHeight);
-</script>
diff --git a/tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self_ref.html b/tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self_ref.html
deleted file mode 100644
index 9f297cacdcd..00000000000
--- a/tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self_ref.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<canvas id="dest" height="100" width="100"></canvas>
-<script>
-var canvasWidth = canvasHeight = 100;
-var destCanvas = document.getElementById('dest');
-var destCtx = destCanvas.getContext('2d');
-destCtx.fillStyle = 'red';
-destCtx.fillRect(0, 0, canvasWidth, canvasHeight);
-destCtx.fillStyle = 'green';
-destCtx.fillRect(0, 0, canvasWidth / 2, canvasHeight / 2);
-destCtx.fillRect(canvasWidth / 2, canvasHeight / 2, canvasWidth / 4, canvasHeight / 4);
-</script>
diff --git a/tests/wpt/web-platform-tests/FileAPI/FileReaderSync.worker.js b/tests/wpt/web-platform-tests/FileAPI/FileReaderSync.worker.js
index 77af6a7a6a2..3d7a0222f31 100644
--- a/tests/wpt/web-platform-tests/FileAPI/FileReaderSync.worker.js
+++ b/tests/wpt/web-platform-tests/FileAPI/FileReaderSync.worker.js
@@ -1,28 +1,56 @@
importScripts("/resources/testharness.js");
-var blob, readerSync;
-setup(function() {
- readerSync = new FileReaderSync();
- blob = new Blob(["test"]);
+var blob, empty_blob, readerSync;
+setup(() => {
+ readerSync = new FileReaderSync();
+ blob = new Blob(["test"]);
+ empty_blob = new Blob();
});
-test(function() {
- assert_true(readerSync instanceof FileReaderSync);
+test(() => {
+ assert_true(readerSync instanceof FileReaderSync);
}, "Interface");
-test(function() {
- var text = readerSync.readAsText(blob);
- assert_equals(text, "test");
+test(() => {
+ var text = readerSync.readAsText(blob);
+ assert_equals(text, "test");
}, "readAsText");
-test(function() {
- var data = readerSync.readAsDataURL(blob);
- assert_equals(data.indexOf("data:"), 0);
+test(() => {
+ var text = readerSync.readAsText(empty_blob);
+ assert_equals(text, "");
+}, "readAsText with empty blob");
+
+test(() => {
+ var data = readerSync.readAsDataURL(blob);
+ assert_equals(data.indexOf("data:"), 0);
}, "readAsDataURL");
-test(function() {
- var data = readerSync.readAsArrayBuffer(blob);
- assert_true(data instanceof ArrayBuffer);
+test(() => {
+ var data = readerSync.readAsDataURL(empty_blob);
+ assert_equals(data.indexOf("data:"), 0);
+}, "readAsDataURL with empty blob");
+
+test(() => {
+ var data = readerSync.readAsBinaryString(blob);
+ assert_equals(data, "test");
+}, "readAsBinaryString");
+
+test(() => {
+ var data = readerSync.readAsBinaryString(empty_blob);
+ assert_equals(data, "");
+}, "readAsBinaryString with empty blob");
+
+test(() => {
+ var data = readerSync.readAsArrayBuffer(blob);
+ assert_true(data instanceof ArrayBuffer);
+ assert_equals(data.byteLength, "test".length);
}, "readAsArrayBuffer");
+test(() => {
+ var data = readerSync.readAsArrayBuffer(empty_blob);
+ assert_true(data instanceof ArrayBuffer);
+ assert_equals(data.byteLength, 0);
+}, "readAsArrayBuffer with empty blob");
+
done();
diff --git a/tests/wpt/web-platform-tests/README.md b/tests/wpt/web-platform-tests/README.md
index 84cd627eafd..773dbf346b0 100644
--- a/tests/wpt/web-platform-tests/README.md
+++ b/tests/wpt/web-platform-tests/README.md
@@ -433,7 +433,7 @@ upstream review.
Search filters to find things to review:
* [Open PRs (excluding vendor exports)](https://github.com/web-platform-tests/wpt/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+-label%3A%22mozilla%3Agecko-sync%22+-label%3A%22chromium-export%22+-label%3A%22webkit-export%22+-label%3A%22servo-export%22)
-* [Reviewed but still open PRs (excluding vendor exports)](https://github.com/web-platform-tests/wpt/pulls?q=is%3Apr+is%3Aopen+-label%3Amozilla%3Agecko-sync+-label%3Achromium-export+-label%3Awebkit-export+-label%3Aservo-export+review%3Aapproved) (Merge? Something left to fix? Ping other reviewer?)
+* [Reviewed but still open PRs (excluding vendor exports)](https://github.com/web-platform-tests/wpt/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+-label%3Amozilla%3Agecko-sync+-label%3Achromium-export+-label%3Awebkit-export+-label%3Aservo-export+review%3Aapproved+-label%3A%22do+not+merge+yet%22+-label%3A%22status%3Aneeds-spec-decision%22) (Merge? Something left to fix? Ping other reviewer?)
* [Open PRs without owners](https://github.com/web-platform-tests/wpt/pulls?q=is%3Apr+is%3Aopen+label%3Astatus%3Aneeds-owners)
* [Open PRs with label `infra` (excluding vendor exports)](https://github.com/web-platform-tests/wpt/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+label%3Ainfra+-label%3A%22mozilla%3Agecko-sync%22+-label%3A%22chromium-export%22+-label%3A%22webkit-export%22+-label%3A%22servo-export%22)
* [Open PRs with label `docs` (excluding vendor exports)](https://github.com/web-platform-tests/wpt/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+label%3Adocs+-label%3A%22mozilla%3Agecko-sync%22+-label%3A%22chromium-export%22+-label%3A%22webkit-export%22+-label%3A%22servo-export%22)
diff --git a/tests/wpt/web-platform-tests/content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html b/tests/wpt/web-platform-tests/content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html
index e83cbaf1f35..e21bede418c 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html
+++ b/tests/wpt/web-platform-tests/content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html
@@ -12,17 +12,13 @@
<body>
<script>
var t = async_test("iframe still inherits correct CSP");
- </script>
-
- <iframe id="x" srcdoc="<a href='about:blank'>123</a>"></iframe>
- <script>
window.onmessage = t.step_func_done(function(e) {
assert_equals(e.data, "frame-src");
});
- x = document.getElementById('x');
- x.onload = function() {
+ function doDocWrite() {
+ x = document.getElementById('x');
x.location = "";
// While document.write is deprecated I did not find another way to reproduce
@@ -34,8 +30,14 @@
'<iframe src="../support/fail.html"></iframe>'
);
x.contentDocument.close();
+
+ var s = document.createElement('script');
+ s.async = true;
+ s.defer = true;
+ s.src = '../support/checkReport.sub.js?reportField=violated-directive&reportValue=frame-src%20%27none%27';
+ document.lastChild.appendChild(s);
}
</script>
- <script async defer src='../support/checkReport.sub.js?reportField=violated-directive&reportValue=frame-src%20%27none%27''></script>
+ <iframe id="x" onload="doDocWrite()" srcdoc="<a href='about:blank'>123</a>"></iframe>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/available-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/available-001.xht
index 494c214a646..c93f013ddb1 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/available-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/available-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/available-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/available-002.xht
index efeef4b9627..dd6e4d4bb99 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/available-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/available-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001-ref.xht
index ed5b68c76ae..38828583892 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001.xht
index e5a6008e79e..9897c475d5c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002-ref.xht
index b658f8bc516..36088764ce5 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002.xht
index 01bd78306ef..63a3c0b3b68 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003-ref.xht
index 660eebd2532..ef3fe81feb3 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003.xht
index d5747adfea5..79ae40b029b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004-ref.xht
index f88f9bff644..a120a27e7af 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004.xht
index d3a3a0fa7fc..e473f4c28c5 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005-ref.xht
index 23682016271..0ef4b05ce4b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005.xht
index 7852758de89..3aee0900ad7 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006-ref.xht
index f17849aacf8..ddc20d36e68 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006.xht
index 2b9867eb546..00b5cc97b94 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007-ref.xht
index 59defed6a2c..41b00cd09ab 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007.xht
index ea617ed6a7e..e125ba1a74a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008-ref.xht
index 46fda4183ec..f88be5a7f98 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008.xht
index ce55626ee61..ca201352ad8 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001-ref.xht
index 61600f03ee9..7e25d310851 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001.xht
index 76aa1d5e98d..c9d22c90fec 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002-ref.xht
index 8807dfd6acd..2422204adb4 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002.xht
index e65c72860f2..f1144ac17a2 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003-ref.xht
index 3b41fa621f4..80fadc5089d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003.xht
index f5db6520638..72dca32170a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001-ref.xht
index 5e9265674e4..c421fd16d39 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001.xht
index 7582afe041f..33a67fd16e6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001-ref.xht
index 1cc6d8e7ab9..6f742c972eb 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001.xht
index 6468278e713..338162da2fc 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002-ref.xht
index 233b0523c02..d292e75e098 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002.xht
index 490747a8b51..b18fdb94528 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003-ref.xht
index 5c479e7318a..e2a7242ef85 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003.xht
index 725f2fcea53..34d58f1cac4 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001-ref.xht
index 43076d2ba43..15a317dcc03 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001.xht
index e30189c698b..d06ea2d3f45 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001-ref.xht
index 31644ba5b86..d597415b8c9 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001.xht
index 30cb149dc85..d3891b92833 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-length-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-length-001-ref.xht
index 61a8a5d9491..1a99ec0edd9 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/header-length-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/header-length-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-length-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-length-001.xht
index da85eb31059..7ac89559f81 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/header-length-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/header-length-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-length-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-length-002-ref.xht
index 9a2f97df8c7..0719e2fca42 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/header-length-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/header-length-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-length-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-length-002.xht
index f9635d392b1..100514a1aed 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/header-length-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/header-length-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001-ref.xht
index 644e685fdc9..b3e80b91d71 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001.xht
index 4ba6218f8bb..b024f83d3f2 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001-ref.xht
index 845d14651e0..fd1dd5c2e86 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001.xht
index 36c2ee430bc..15b540418d4 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-signature-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-signature-001-ref.xht
index 83b77acffc7..a7cfadb9808 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/header-signature-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/header-signature-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-signature-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-signature-001.xht
index 1cabf3c97bb..5ae39feb03e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/header-signature-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/header-signature-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001-ref.xht
index 8ceae402ec7..ab74d24ead3 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001.xht
index 394876a4408..769343b6617 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002-ref.xht
index 3e41d1c3c8f..b79656fc73f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002.xht
index 0fb4920d4ae..7821f073cda 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001-ref.xht
index 74cbea4fb65..2fb8e345f6f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001.xht
index 72c523d78ca..d63472b3b49 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002-ref.xht
index e6cd20fae24..334f2efe3bc 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002.xht
index 04bc0136a90..a1bedf2e1b1 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001-ref.xht
index 9b36d39195c..17910334229 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001.xht
index 53ef02f1bd4..5a4f64384e3 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001-ref.xht
index a029377ba4f..7f2f75a54a3 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001.xht
index e203c10a121..5a50ae8559a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002-ref.xht
index 094888446d2..cc24c2cee57 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002.xht
index ce8fd6f43ad..1cec6e1240c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003-ref.xht
index 8dc5807677d..f8796b61947 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003.xht
index 9bdd78d3291..ce82fb15598 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004-ref.xht
index c30e2d87bf7..cba52bda11a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004.xht
index c3dfd0079a4..a9d206ab1de 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005-ref.xht
index dd5bd47a376..6ee737921b4 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005.xht
index 80fe8811059..ada1e0ed0c8 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006-ref.xht
index 1e7a876d747..d07847ac25d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006.xht
index 7ef5c2b3b18..b3580dc5a05 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001-ref.xht
index cf91f567a55..9e332d2c19e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001.xht
index db86381d486..9471d401ceb 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002-ref.xht
index 2088e6e6956..cf702283801 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002.xht
index 2fccf77a5fe..8a9b7bbf66c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003-ref.xht
index e6c037f2371..c794fb09545 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003.xht
index b976512cc63..d63a5bfbb2f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004-ref.xht
index 24bfad470cb..99a57a6e2ea 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004.xht
index 7a4e5f1703c..276dfc8528b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005-ref.xht
index 232e02c3d06..b2614c79e76 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005.xht
index d3d0943ce73..662d57d0b73 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006-ref.xht
index cddfe1ffd30..4f62d09a92e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006.xht
index 9eb102cb380..f8c1542aee1 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007-ref.xht
index bb06af3b2f4..61857f57bf5 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007.xht
index 571b5c2e36b..aa187eade3d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008-ref.xht
index e2289e8d3f8..4483f95cf00 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008.xht
index 586274f3a02..81fb1bf045d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009-ref.xht
index 083dfbbb29b..fde8b957989 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009.xht
index 052daf9c75a..49f8e86e23e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010-ref.xht
index 05d0e26cc69..82cfbad843b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010.xht
index f52623e5f56..ba21b4fe9c6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011-ref.xht
index 14b073f0be1..a27f3d7257c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011.xht
index 7eb6bb9e068..db20d27ac5c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012-ref.xht
index 74e305dbf18..b558ad39cac 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012.xht
index 39e8eafa781..c2e156cd37f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013-ref.xht
index 35075cb9623..74131924dfc 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013.xht
index c04a679c6a7..e52f935e27e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014-ref.xht
index 88102534932..98a0d9eff9b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014.xht
index 7a4e914b799..19b4b2c90b4 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015-ref.xht
index d6357bc8288..2924ffc68c2 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015.xht
index f3fc96bc976..227dd39cc89 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016-ref.xht
index 591349315b2..2fe2680bacb 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016.xht
index 24807b46683..5e1d69fe358 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017-ref.xht
index acc91e76c01..60e03a15824 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017.xht
index d93e9d2fc46..b8b1bea7540 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018-ref.xht
index cf57224e438..de243814c4b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018.xht
index 988029a7ab7..e478d49405e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019-ref.xht
index 9b37273f321..9594daa359b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019.xht
index 6332e78a8a0..908710db9f2 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020-ref.xht
index de0733cfbf6..0103ea17bdf 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020.xht
index 00593cb69d6..36f71ae0172 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021-ref.xht
index 297a7e93976..84c99872c3e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021.xht
index 79c690d4197..0b1b864308b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022-ref.xht
index ed606c087a4..7901e4c27c1 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022.xht
index ad0b9ed1bf2..765fe623162 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023-ref.xht
index 686d5fd0bd7..5c971edfe4e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023.xht
index a8898d61470..fca660ed287 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024-ref.xht
index d0a66285ac5..f2a2ffc91c5 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024.xht
index 20aec9d3b89..aa911a25254 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025-ref.xht
index 3739bff838a..be087ea9449 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025.xht
index 894935da22b..5f37b4c0b87 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026-ref.xht
index c3c101db3bb..acf7a92736d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026.xht
index 4cd7b9aff63..7ac2efd3e29 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027-ref.xht
index d216909ad67..7348e86319e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027.xht
index 451afa456cd..be6655ce0e9 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028-ref.xht
index ba8631981c7..38b9464158c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028.xht
index 7567c7ed481..16795ad5584 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029-ref.xht
index 8d5e4cc434c..51117d00226 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029.xht
index 3add190565e..ef827f1af8c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030-ref.xht
index 15a9124f696..6728da7d988 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030.xht
index 6e6bf224568..4987376bbca 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001-ref.xht
index 4e6a1654c1d..f0ff4475ffc 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001.xht
index e1f01aba0e0..f2036e0c9ad 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002-ref.xht
index 1d02c98b9b1..09257e203ad 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002.xht
index d5c7bfa25ac..1bedbe51152 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003-ref.xht
index b24e02372cc..dd8e19ca3ed 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003.xht
index 2916cde1c3f..755ec761ee2 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004-ref.xht
index 2c0b58c5b8b..b0a7eae6bce 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004.xht
index b12fff3f2cb..0342c6d007e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005-ref.xht
index c1b31eee0eb..09c69c721a7 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005.xht
index fc63b381b4d..ec016921bd8 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006-ref.xht
index acba5fe976c..21786c889ca 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006.xht
index 963e57200f9..fe5901933fb 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007-ref.xht
index d1d0661a524..7aa4443467b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007.xht
index cb99b51a513..eba69ef054b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008-ref.xht
index 3357a97fb76..c0235836be5 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008.xht
index 63835d12e91..dde83aada4a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009-ref.xht
index ebc54cf192a..58cc8a67c97 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009.xht
index fa76352bf42..dfc9fefabc1 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010-ref.xht
index 49c35eca5a3..041da846864 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010.xht
index 3eb968939fb..236a8abb939 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011-ref.xht
index 41180a47690..0a2554a0df7 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011.xht
index bb51400c319..5e96f4ebac6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001-ref.xht
index 2eccfa0c2b4..78dbbcb1ff0 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001.xht
index 8d561f908c1..0426902a005 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002-ref.xht
index 210b6acaf9d..733322d27bf 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002.xht
index 3773b4eb162..d03b025759b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003-ref.xht
index b7345fcf39d..1a90cafdbe2 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003.xht
index ad17d425b12..3c022483b83 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004-ref.xht
index 58815830723..5dc7472d266 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004.xht
index 079c036b64d..d4c61c5e30b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005-ref.xht
index f92bef47acf..19893c2b6db 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005.xht
index 3bd34fb911c..fca34323785 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006-ref.xht
index be62dd4a0ad..b67124f394c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006.xht
index c309e8e3db6..fa049ab4453 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007-ref.xht
index 0679a7cc29e..7c392e24d58 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007.xht
index 99583885b33..679eb3501ca 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001-ref.xht
index 4dd4882ccf0..8cb02608548 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001.xht
index da6b4234902..9037a5187f3 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002-ref.xht
index 5f7f49d323c..ffbeb0831d6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002.xht
index 1e6e33c79c8..81f1aba207c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003-ref.xht
index 25bcb2e67bb..256ec2e2f7f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003.xht
index 4a09915fe83..9c3f097ea99 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004-ref.xht
index d7735f0f561..854752cdc07 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004.xht
index 5f33d8e892e..59b4b0761ba 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005-ref.xht
index 19d54bdb3af..c96732e7a42 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005.xht
index 1458176a185..db67c98b734 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006-ref.xht
index d23cd8ffb75..02d558f3cce 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006.xht
index 02d0f29ac33..7983a22be93 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007-ref.xht
index 444efc7f0d7..9b0b8a5c027 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007.xht
index d1e05dfdc76..b79c27615b3 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008-ref.xht
index 08aa7ac6056..31a50fb9a32 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008.xht
index 06050b4272b..1f8284db1f4 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009-ref.xht
index 2f59b764f41..8ece3e3222c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009.xht
index 3d55c4d246f..e412d8bfd49 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010-ref.xht
index c2de5d3688f..372ce67b107 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010.xht
index f0eb8fe0824..7efc023847e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011-ref.xht
index 5ac4e4361f6..87c08323ab4 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011.xht
index 70b0726c2b0..a2ea3832b0e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012-ref.xht
index 6c2ef0f7bdf..93a2e9f91f2 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012.xht
index 29326933f09..36805634b27 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013-ref.xht
index 544448cc794..3c089912f22 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013.xht
index 9b77e4f09f4..727ca4d292b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014-ref.xht
index eaf00dffacc..11f5fc18a68 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014.xht
index 0eabe5f301d..945f1fe2c67 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015-ref.xht
index 69f93647546..8b9abf7eab6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015.xht
index 999fc6ed1c9..1da62452cc7 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016-ref.xht
index 86122db1d15..aa6997c2c32 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016.xht
index 42a13cb89f7..76e0ddb51a7 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017-ref.xht
index fc199601a86..fdb3deace68 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017.xht
index 7cb27c2eb6c..5135914740c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018-ref.xht
index fbb88c09728..cf9f7385e61 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018.xht
index e06fccdb3ae..29c21582a16 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019-ref.xht
index 3b3be991e76..ffd7da7186a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019.xht
index 7dea5bf41b8..cd8595359d7 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020-ref.xht
index 7a9ae18b55b..ad1549475bd 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020.xht
index 7b5260182a0..bbf9fa62e26 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021-ref.xht
index f875aeb58f5..08489bfeb8e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021.xht
index dff82addea8..719f48b599f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022-ref.xht
index 25d55b9bf3f..89807edcdfa 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022.xht
index d88d3c6a149..3a24b993a97 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023-ref.xht
index 11796275000..b035c79fd84 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023.xht
index 562ccddd3ac..2ce0cb87f02 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024-ref.xht
index 88f87738bf6..c1d142d70bc 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024.xht
index 5fd4321e363..cf108b762c6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025-ref.xht
index 19f1d5f2c53..a8b3d57de19 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025.xht
index ca515947f77..c825aeb51c0 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026-ref.xht
index 5d810a64acf..b780fa576b6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026.xht
index b76a6dfa350..741cd98ac8f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027-ref.xht
index 48f76c97778..9ce1f70c474 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027.xht
index 6340954f5d8..64e0151cc64 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028-ref.xht
index 0b062d5e552..5011445e2be 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028.xht
index ba9f333a077..533f0681879 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029-ref.xht
index 8f95e8a8508..ed67746cc72 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029.xht
index 7812595fff6..442edc34548 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030-ref.xht
index 134249b8a19..f9cbd230242 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030.xht
index 7146a0dd89a..873e7b7e7fe 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031-ref.xht
index 380726824bd..d619643e117 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031.xht
index fe4beb3fe0d..79650aed720 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032-ref.xht
index 2298334a1e4..3816bc34924 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032.xht
index b5426d566bc..f63c8049d4c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001-ref.xht
index 28f50e1f6f6..1ae37fb8b62 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001.xht
index 2b45c19fa1d..580fdad9dca 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002-ref.xht
index 457d93d6654..8f77f1f68dd 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002.xht
index 7aa67d72265..a5699d9388d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003-ref.xht
index babac89591b..9923ff27cb5 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003.xht
index bef479caeb7..0d232649948 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004-ref.xht
index 17cdcb88323..8728810f94d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004.xht
index 0e2d0a6a251..193d3bc3202 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005-ref.xht
index 10203aaea18..257221ad3d8 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005.xht
index 949d85db553..b5de63fdecd 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006-ref.xht
index 04ac88aa516..e2324cedd88 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006.xht
index cc1b38a6729..59080410cae 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007-ref.xht
index e979f3f030a..7a3b582727d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007.xht
index d916f0d3248..8f5041de426 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008-ref.xht
index 3888a9d1459..b4d48586eb3 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008.xht
index 792d95a5ffd..d89228937d4 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009-ref.xht
index 98418b3d730..5caca3cda7a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009.xht
index 203c2ee289e..3e710a90cb9 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010-ref.xht
index 132ff2c7663..37dd06e8b1c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010.xht
index ee27c877ace..3fa5d219ee5 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011-ref.xht
index fa122dc16e2..99cb8525be1 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011.xht
index 7b3e5e902b1..e1ce7b12c0c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012-ref.xht
index d6b98b76e95..7a5d540ee19 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012.xht
index 53ca2213b7a..bf60af8821e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013-ref.xht
index 44a322488c7..a4242625566 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013.xht
index 0c3cd023370..a02b80f383f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014-ref.xht
index f7051a3cf76..10508b56261 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014.xht
index 029a579751b..717262ef213 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015-ref.xht
index 0ee4bc9e69e..77f62555d93 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015.xht
index 825cd9a0a16..0221c4f4dfa 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016-ref.xht
index 31d15ee6ed7..56bb888e29b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016.xht
index a35daa8f46d..bb92c0f71ef 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017-ref.xht
index f8666b36faf..ffa183926a8 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017.xht
index ca044a70146..153818839d8 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018-ref.xht
index 6ff676e2137..b8803b41023 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018.xht
index 69cd5960f61..0c2c8ac6483 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019-ref.xht
index 7bfb6ff6d03..0a9b481775f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019.xht
index 495934bbcf1..924ef854836 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020-ref.xht
index 62f5b6bb395..2875d4d0059 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020.xht
index 540cf9f13ab..c970a685ec0 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021-ref.xht
index 31412bc365c..d7004863b7f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021.xht
index b8b736e5ca2..4987130b991 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022-ref.xht
index 3b588573317..8e397ec1e0f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022.xht
index e06f93c6883..5904ee72210 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023-ref.xht
index 1caaf71a2cc..c3bae5adf1e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023.xht
index 330b3c1b147..31c89c2b5a2 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024-ref.xht
index 62d3896293d..b459614e53f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024.xht
index 455cf07306c..864ade19234 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025-ref.xht
index fac5c079d81..2dffc2a2d5c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025.xht
index cd9ba04ee82..935229408cc 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026-ref.xht
index 5ff37c597c7..5b1c188fe11 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026.xht
index a2d912ed974..65898373d9f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027-ref.xht
index f58614d1cba..20506eb4694 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027.xht
index 781a3daa2e2..4a57328f453 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028-ref.xht
index 906d169e73e..ea8448f234c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028.xht
index e6a62a03246..9318a32ca35 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029-ref.xht
index a37622dcb20..4900e7eb448 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029.xht
index 5350694edcc..139bc0a787c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030-ref.xht
index 53ec7040970..80b424a616a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030.xht
index 9a704e0b167..92aaac17e65 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031-ref.xht
index 904c263fc58..12b53d8c151 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031.xht
index 9fe368dcc52..b0a72742155 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032-ref.xht
index e8e45c9277c..d2252c9d4d1 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032.xht
index f38b0e13fa6..11927e5b841 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033-ref.xht
index 7d93a838cf8..dc4b410bc48 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033.xht
index 08d2a158c05..60167d40c6d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034-ref.xht
index f049f281ae9..893e746e272 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034.xht
index 2941331d84a..eb33ee887fc 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035-ref.xht
index 2e9c0a4d788..fc823a3573a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035.xht
index b5ea7ed01ee..93f42ec3f73 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036-ref.xht
index f4e180ede7e..128ed2f2809 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036.xht
index c3fd7c0061a..e62f0d04dd0 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037-ref.xht
index 7841954063f..abff1a62fe4 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037.xht
index 65af2e362f8..dd606a86bb5 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038-ref.xht
index 962995c1176..f6b4dc2a711 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038.xht
index a5f8276c57f..ab70032baf7 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039-ref.xht
index 3c2a00200e2..1cb9a9aabae 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039.xht
index 3d2d810bc2e..0d0d310b09e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040-ref.xht
index 7262eceb9ca..7f49b2814b2 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040.xht
index 9011b68be25..16a25a468a0 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041-ref.xht
index 9455fe103cd..0c400f51824 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041.xht
index d0e332f757d..058bab9a464 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042-ref.xht
index 17964ced702..0c2b968fc2f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042.xht
index 9a123c09801..76f738771ba 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043-ref.xht
index 4041e08e64b..f0cb455254c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043.xht
index a412063d7f3..c274ef4e5a6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044-ref.xht
index eeee8133157..e85822b0224 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044.xht
index a6e33c3c4cc..64bec35e7e5 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045-ref.xht
index 238f61d0722..99c70c0ab24 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045.xht
index 144a09465af..70e5f7c8873 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046-ref.xht
index a70963c06d4..234aa03fc27 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046.xht
index 5634b2694a7..52537bd211a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047-ref.xht
index a3d295dad96..a4b30113055 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047.xht
index 5fa7cf1315d..2324d271927 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048-ref.xht
index 8f3dcc4f385..5581a23abd0 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048.xht
index 6f6738bb371..ada0e9db962 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049-ref.xht
index d1980580d2b..247253a1283 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049.xht
index d7f9618851e..345dec4a676 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050-ref.xht
index 4fda603b128..10b5ed1526d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050.xht
index 694158feb5d..d9857d66021 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001-ref.xht
index 9a4d73b9c50..41e7e621c8b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001.xht
index d51dad08c95..90b0a6a28b8 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002-ref.xht
index 9eafd4813d7..9ce36cb5520 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002.xht
index f31d582f468..bf575cf6299 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003-ref.xht
index 5c6173c9a2e..b373eefbda0 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003.xht
index 32d1d8f9484..5c767817bea 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004-ref.xht
index 8207b775a86..d2bd9579d34 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004.xht
index cb14c0020d0..4f2ae4253a7 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005-ref.xht
index 2752872600f..687322b87d4 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005.xht
index 9ecc90dedb5..3f56ce888e6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006-ref.xht
index 6b43b9e26b1..ac64c0b9c40 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006.xht
index d6f7fdc020f..22596e83f57 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007-ref.xht
index b155db4f9f8..fa4d8ffd773 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007.xht
index 5299797afe9..eb873685ce8 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008-ref.xht
index a8d06a1991a..8f8f693a176 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008.xht
index adb1938bbd3..18cd6cbf256 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009-ref.xht
index bd561774a6a..5dbf3a1bf7a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009.xht
index 2f8c50b7080..73abdbb47f6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010-ref.xht
index df83cc60c9e..e35102d0d07 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010.xht
index 5288aa03b99..9339b9b4682 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011-ref.xht
index 4f664ad580e..5e48fa15d7f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011.xht
index df585c275a8..d8ef5814a9b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012-ref.xht
index c2519bcd370..3d8261f9f50 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012.xht
index dffb528de02..e1667bf5868 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013-ref.xht
index 1ae86b0ada2..cebfa5547b1 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013.xht
index f46e36402f7..90eb0d1bfbe 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014-ref.xht
index 6bd75166351..8229c0c8203 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014.xht
index 973f166bf3b..5b56279d1d6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015-ref.xht
index 4a5406ee6f0..07ae0f7571a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015.xht
index 5a846a982e8..85b05c916b7 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016-ref.xht
index 581b55b9624..a81065feb3a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016.xht
index b0b0fa61f9a..ecd1714e53f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017-ref.xht
index 9dd084f30b4..ca0a368bc43 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017.xht
index 1968de3638f..e88ed7df9f0 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018-ref.xht
index 031053f4474..366f68ef5b8 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018.xht
index 54989fa599c..9fa105cab23 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019-ref.xht
index 126fb6f1766..ff1c5e172e0 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019.xht
index 3ff146e90ec..7de65f7497e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020-ref.xht
index a3f5e8a0117..c3d451ff47e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020.xht
index 28095c297b2..5c3fec390c0 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021-ref.xht
index 28356e49aa0..f32f2b4a513 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021.xht
index 4f7dfea2d15..d67b3bbc099 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022-ref.xht
index b9835adfc17..ab86634d1f6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022.xht
index 95dbb9e5439..f8c66b9a91a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023-ref.xht
index 72e430c79bc..3fc791b4013 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023.xht
index e55bce8fb14..f8806db4f52 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024-ref.xht
index 2ab50d9e92f..1e643e65bc5 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024.xht
index cde9e4c8dee..8c52881952b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025-ref.xht
index 59dd793d158..3ad4b70989e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025.xht
index f3aa026d489..da200c0090e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026-ref.xht
index 13ff2b92e78..5cc1cc41770 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026.xht
index 0ddab169e2f..fc942a5263f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027-ref.xht
index 870f1ee743d..ccde52d6029 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027.xht
index 73641077c77..2f9a28f0825 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028-ref.xht
index a7b75c077d8..69307bdd902 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028.xht
index 13ec26fa4c2..30a802e5717 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029-ref.xht
index 7794b4b309d..35bdfd779eb 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029.xht
index cc7641d1ff5..425ce7aa351 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030-ref.xht
index 28fdc02aea7..aa52bc93e2d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030.xht
index 8120b080561..512ba15511f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031-ref.xht
index 86f0836c87e..9d4a618e4bf 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031.xht
index 964fd8d991f..2ea71218b90 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032-ref.xht
index 6b8141a079e..447b345b6ab 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032.xht
index e167c741179..d8c835bced2 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033-ref.xht
index 6d264385a16..49f2af0fd24 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033.xht
index ce9d3231db5..a1f8183bd55 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001-ref.xht
index 2e3051590de..d28202a6f05 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001.xht
index 2950f2be5d6..fafc0d1a982 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002-ref.xht
index 61fb8c6b7e5..f0fbf887877 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002.xht
index e3c5f400339..0c306cbb37b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003-ref.xht
index e0092b9982b..5353ec3f67b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003.xht
index f4e3c830b98..fdbca2c53e5 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004-ref.xht
index fc9ddc87a49..98865d0348c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004.xht
index 6addf0eac93..e58d013a338 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005-ref.xht
index 03ad42905b4..3c9194eb4b3 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005.xht
index b61a49efa77..f4de99562c0 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006-ref.xht
index 31709ca24e2..a9433cdecdd 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006.xht
index 51505b24615..9d23323dbd8 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007-ref.xht
index fe48e360010..26fcbeaba59 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007.xht
index d2519e5dd61..474a9f2de2a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008-ref.xht
index b94d0a042b8..180897e68d2 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008.xht
index 7a06375925a..22d4d714147 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009-ref.xht
index 7142f54009e..1aae1a582df 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009.xht
index 21cb35d16f4..330c868ecd8 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010-ref.xht
index e8593b842a6..ce0c0faef27 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010.xht
index c23e6c4303b..5410ec57247 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001-ref.xht
index c157fd84b2f..acfddb1a068 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001.xht
index 36b447d9f28..a89f58ec421 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002-ref.xht
index 30d64883a8c..44f7a50985a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002.xht
index 0945287df57..591e5cc73c6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003-ref.xht
index 4a689ef9fb9..b0b95ccc032 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003.xht
index 22ec57bf361..fe30a6a07fd 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004-ref.xht
index 5c3ebc53354..5f6cf032367 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004.xht
index 27d8b4a506c..148eaf597bc 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005-ref.xht
index 801b7a38489..2400dd1e2ac 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005.xht
index cae7156a454..0e098d541be 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006-ref.xht
index 8ce00985a77..6783ed032e2 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006.xht
index 28cf56af09a..ddd56222b66 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001-ref.xht
index 630aa67af10..af7e199c35b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001.xht
index 03418449087..2a520247080 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002-ref.xht
index 1753b2e7fa0..c74af76aa08 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002.xht
index 1a428f92428..e060ebe1b17 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003-ref.xht
index d8e6cbb820a..aea664632b4 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003.xht
index 51457d08430..38615df5dbd 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004-ref.xht
index 5501b955bd4..95cf51e5186 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004.xht
index e7a2ec992f3..951ee5f58e7 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005-ref.xht
index 2255e280737..4c1fe3f8328 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005.xht
index 735d055a897..a27963ba62f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006-ref.xht
index 7655bc0e4b5..8ebe117ac46 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006.xht
index cc807f8c591..352b7fc5a83 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007-ref.xht
index 6ab8c706023..915c6bf9c12 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007.xht
index 7b7f6eda5ae..c526e028be7 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008-ref.xht
index fb77d285926..0a159d30df3 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008.xht
index 3f8e57fdcca..fc6d3f51275 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009-ref.xht
index 628860f0fa8..412af550983 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009.xht
index 27f1b967117..1d2652cf8e1 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010-ref.xht
index e4d09476c07..4d87a13a5ff 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010.xht
index c28c7c8bc70..1b9b49525cd 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011-ref.xht
index fe6f924f3f5..8e147615f63 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011.xht
index 093bd4462fb..190cd156f50 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012-ref.xht
index 4c26662ec65..7572e21548b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012.xht
index b2b44509104..781d63f40a6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013-ref.xht
index 13a6250583b..37aec9cba4c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013.xht
index 136f52c3a72..a2c78fadc60 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014-ref.xht
index 58cfda95e4a..edcb775f98d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014.xht
index 6a0e6944e77..59c9a2c2caf 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015-ref.xht
index 0029aa61c93..04d8c191c56 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015.xht
index cea7d135c6b..9fae1626ab3 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016-ref.xht
index 4f73920b804..0b7ace6a735 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016.xht
index 21b5869eab7..de1a4e56791 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017-ref.xht
index 3767dd52a9d..af2409addc8 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017.xht
index ac949b719e1..c8286248167 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018-ref.xht
index 5a98ab9cfbc..fe197c9c6c6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018.xht
index 61ea5bc43b9..c9f3d971b4d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019-ref.xht
index c22de59c9cc..ef78c16cae8 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019.xht
index 18d8c3c496e..fd6b4739bbd 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020-ref.xht
index 97a22843abd..dc68913f697 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020.xht
index b8fb1fff624..9540cf33968 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021-ref.xht
index 39c5272b58c..477658a45ef 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021.xht
index 23c6b0d5ab8..3197f14ffd5 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022-ref.xht
index 8d4504f18f9..d189b3f4cc5 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022.xht
index 887bd48e465..82b6bdc9a5c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023-ref.xht
index 3864d20215a..e1d76e87eca 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023.xht
index 0291c356802..e147b7d9d98 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024-ref.xht
index ade7baa6ba0..30cad4f1392 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024.xht
index 0278970494c..cb64cf6bc44 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025-ref.xht
index 22d1150b91a..ec4beb6911e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025.xht
index 549e2ae4da2..a637413ac42 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026-ref.xht
index c3acbbdad12..0d8d7e78459 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026.xht
index c939766557d..942a3a1ae28 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027-ref.xht
index 079c6d501ef..5befcb5b090 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027.xht
index 441b1efac0d..913bd3dedb4 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028-ref.xht
index 0e54cce4b32..f19f63ca2fc 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028.xht
index f5f70dec7f1..4c87a166863 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029-ref.xht
index 674f9d19a8c..1fe32f823b9 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029.xht
index 2c79965ce5d..e40eb5b9f63 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030-ref.xht
index 5143caea89a..2ec0c8bc05d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030.xht
index c23b29bce97..13d44c9d234 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001-ref.xht
index 2146d55afa5..72d9e076d15 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001.xht
index 8f05162a788..1d1bad56903 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002-ref.xht
index 940d73e9f82..235541f8849 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002.xht
index b6e7f9c44a1..daa99d93f66 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003-ref.xht
index 935515d22f7..4fe2ce087e7 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003.xht
index aeed38b38f8..8b7d3dfa1ca 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005-ref.xht
index ef62b2f8262..2808ec80fe0 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005.xht
index 5516ae23415..f1adddd3551 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006-ref.xht
index af2869291c5..6800d9f85b4 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006.xht
index 6bcff4a3835..8d80b0f6dab 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007-ref.xht
index a812572075f..baf4c71977f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007.xht
index a6bfc062830..a51f490950b 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001-ref.xht
index 1564ac6f916..889ed26d850 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001.xht
index 73fa2f14c94..086089fcd96 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002-ref.xht
index 9cdbb38e64e..74f38a6eb81 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002.xht
index 5a5a4b6ac9d..f2dc70146f9 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003-ref.xht
index 1b3e63a03e8..acb11326192 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003.xht
index 1c5d35afcd4..f6324eb4dca 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004-ref.xht
index c2140a473a6..885eb597a3d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004.xht
index 58219eb421d..471ac25ae5e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006-ref.xht
index 08f4b72e6e1..083cc04d59e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006.xht
index 5540e92051d..88873b97008 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007-ref.xht
index 33864135fc8..1cb3909e1a2 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007.xht
index 54ddd7a1183..dcc4f519eec 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008-ref.xht
index 77795aeef0e..17aecbdcd0d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008.xht
index 47e1c9ed316..d8a4ea7f2e6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009-ref.xht
index e338e7277bc..ae20d3c2d7f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009.xht
index 69a515ccb5e..419f0aab4c6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010-ref.xht
index f087ec9e5a2..f432446220c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010.xht
index 68ec33bbb58..3a6ea34612e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011-ref.xht
index 22348fc1f0a..ca85a88d4df 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011.xht
index 2b2a3bf23c7..acb06e79705 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012-ref.xht
index ea6309c35f4..eaa74182078 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012.xht
index 763618bab68..35fe1bf54a5 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001-ref.xht
index 05679261966..fa727b98c8c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001.xht
index b21c06c7529..e97bbbacca0 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002-ref.xht
index e6998b2aad0..c2296b2a5cf 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002.xht
index 8cbc7605c7d..16583b97bdd 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003-ref.xht
index 0f1d9a39e71..ce783be0a3d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003.xht
index 05fd27d2d7d..c7e45ae07b3 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004-ref.xht
index ecbca33328c..3f9fc913bff 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004.xht
index f90b5b202c5..5f04b21e794 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005-ref.xht
index e0a1757f862..76c7138598a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005.xht
index 8a8d833bb11..616e527521a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006-ref.xht
index a6c5e707851..3fc5cc78d25 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006.xht
index fc19dedfc5f..a245c0ed28c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007-ref.xht
index 68187959f6d..92db0bbf800 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007.xht
index 6060a0a4860..854cf67ef84 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001-ref.xht
index 32c5413c1cf..ff52caee245 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001.xht
index 85eb544d88d..9a9cc04f684 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002-ref.xht
index 8eea4cfcede..5f17e1f32cb 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002.xht
index 65394188034..fbcd9beb2e7 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/support/available-001a.xht b/tests/wpt/web-platform-tests/css/WOFF2/support/available-001a.xht
index 09029569542..6d0ad65936f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/support/available-001a.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/support/available-001a.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/support/available-001b.xht b/tests/wpt/web-platform-tests/css/WOFF2/support/available-001b.xht
index f7f569497b9..189a89677a7 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/support/available-001b.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/support/available-001b.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/support/available-002a.xht b/tests/wpt/web-platform-tests/css/WOFF2/support/available-002a.xht
index 067adf8d661..ff9f51083ff 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/support/available-002a.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/support/available-002a.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/support/available-002b.xht b/tests/wpt/web-platform-tests/css/WOFF2/support/available-002b.xht
index ee59eaa5d3a..ccbd5aabf07 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/support/available-002b.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/support/available-002b.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001-ref.xht
index ab995af5685..4d916f251ed 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001.xht
index 3ce3c8cc0db..d1f67828948 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002-ref.xht
index 1ac313de797..ef03c56f149 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002.xht
index 5388db19591..f331212726d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001-ref.xht
index e5f2a2d2a1b..ad11214b8e8 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001.xht
index 2b2100894e2..7be424a673a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001-ref.xht
index 6a5e13a9f35..44f27a1aed8 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001.xht
index 4a1bf59670c..08bf25e55a4 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002-ref.xht
index ec745a387b3..1004e16b1ae 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002.xht
index 5550ede5ac0..15271e73ce2 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003-ref.xht
index 6080f215c72..a8e51bd5110 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003.xht
index 13f003209d1..7406b6419ba 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004-ref.xht
index f2578f215a8..60303ca2771 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004.xht
index 3f4ffe7b8cb..b177e85e3ec 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001-ref.xht
index 374d15c7769..e4b1afbd3a6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001.xht
index 08045652d9e..5c72c5f2cd3 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001-ref.xht
index 85026404ef6..3b329b1cc38 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001.xht
index c6976fd78f8..fc6cb7a45eb 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002-ref.xht
index b7916df3986..8023e9c57cd 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002.xht
index 073731ae906..90b485e40d5 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003-ref.xht
index fcb193f8abb..fa07590afac 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003.xht
index 9d7d18a41d7..40da4df2062 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001-ref.xht
index e971644ba2c..6a6d68bdbbf 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001.xht
index 5a408eadb9f..b5b8e24848e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002-ref.xht
index b6231b72646..d4bfdd22552 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002.xht
index 0adbd23390a..c3857334be7 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003-ref.xht
index f95b76077a9..dfb62bf21b1 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003.xht
index a9caabd58ba..e2e339c29e0 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001-ref.xht
index e85e7de1c86..67dab5c07a6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001.xht
index 3d960f779fc..21164679d68 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001-ref.xht
index d307fbdbf8b..5fd36b9ddfb 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001.xht
index 4b873d15316..913cd528eb9 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001-ref.xht
index dbc114b2d88..714432eceff 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001.xht
index 1e4b6bd65da..0f3968fbaa1 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002-ref.xht
index ae1b09aa22a..70a448f7830 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002.xht
index d2d6f72a0e7..9ff041c12c3 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001-ref.xht
index 301f14801f7..8bdcdbdf40d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001.xht
index 867f7acecb0..75b5f3f5462 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002-ref.xht
index 8424043c54c..d0eb050cf01 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002.xht
index 9f413ea5533..5d047cb59c1 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003-ref.xht
index 2b2d252afba..573597f666a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003.xht
index 25e5cfaa391..b2b6731f89e 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004-ref.xht
index fa07e22bc23..e92e8b43783 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004.xht
index c5289d2fd17..184303c6e2d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/testcaseindex.xht b/tests/wpt/web-platform-tests/css/WOFF2/testcaseindex.xht
index 0997db372f4..e2b8dc58516 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/testcaseindex.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/testcaseindex.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>WOFF 2.0: User Agent Test Suite</title>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-001-ref.xht
index c7a94c3c392..7250e3197aa 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/valid-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-001-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-001.xht
index f63e6f5af34..ed85515cba9 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/valid-001.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-001.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-002-ref.xht
index 36d57b15345..aa50b96f608 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/valid-002-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-002-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-002.xht
index c8d1794d109..7e09c2a9b17 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/valid-002.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-002.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-003-ref.xht
index d3135408c2c..515b674936f 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/valid-003-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-003-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-003.xht
index 7883a88a47d..0151c028a1c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/valid-003.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-003.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-004-ref.xht
index 763e305ef4f..862f28b2c5a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/valid-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-004-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-004.xht
index 4b17feb0025..2ea190b960a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/valid-004.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-004.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-005-ref.xht
index b794143115e..763f036f29c 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/valid-005-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-005-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-005.xht
index d73dbc8ee42..713b25b19d6 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/valid-005.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-005.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-006-ref.xht
index 32f7e1dfd09..2ce9aac5483 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/valid-006-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-006-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-006.xht
index d372cd7afd4..b50a9f38806 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/valid-006.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-006.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-007-ref.xht
index dd5f794b31c..75d94540122 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/valid-007-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-007-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-007.xht
index 6821eeb9b5b..7c23d1e399d 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/valid-007.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-007.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-008-ref.xht
index f9e884de212..737a6094e1a 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/valid-008-ref.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-008-ref.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-008.xht
index afc09135f84..a3892510ee3 100644
--- a/tests/wpt/web-platform-tests/css/WOFF2/valid-008.xht
+++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-008.xht
@@ -1,4 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
diff --git a/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002-ref.html b/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002-ref.html
deleted file mode 100644
index 16bcb212c41..00000000000
--- a/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002-ref.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta charset="utf-8">
- <title>Dynamically set animation-play-state to paused (reference)</title>
- <style>
- #container {
- position: absolute;
- left: 0;
- top: 3em;
- }
- #coveringRectLinear, #coveringRectSteps {
- position: absolute;
- background: lightgreen;
- width: 40px;
- height: 70px;
- left: 80px;
- transform-origin: 50% 10%;
- transform: translate(36px, 0) rotate(144deg);
- }
- #coveringRectLinear {
- top: 50px;
- }
- #coveringRectSteps {
- top: 150px;
- }
- </style>
- </head>
- <body>
- <p>This test passes if you see two rotated green rectangles and no red.</p>
- <div id="container">
- <div id="coveringRectLinear"></div>
- <div id="coveringRectSteps"></div>
- </div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002.html b/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002.html
deleted file mode 100644
index 210d0274b85..00000000000
--- a/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html class="reftest-wait">
- <head>
- <meta charset="utf-8">
- <title>Dynamically set animation-play-state to paused</title>
- <link rel="author" title="Igalia S.L." href="https://www.igalia.com/">
- <link rel="help" href="https://drafts.csswg.org/css-animations-1/#animation-play-state">
- <meta name="assert" content="Visually check that complex animations stop
- when animation-play-state is set to paused">
- <link rel="match" href="set-animation-play-state-to-paused-002-ref.html">
- <style>
- #container {
- position: absolute;
- left: 0;
- top: 3em;
- }
- #lineLinear, #lineSteps {
- position: absolute;
- background: red;
- width: 10px;
- height: 50px;
- left: 95px;
- transform-origin: 50% 0%;
- }
- #coveringRectLinear, #coveringRectSteps {
- position: absolute;
- background: lightgreen;
- width: 40px;
- height: 70px;
- left: 80px;
- transform-origin: 50% 10%;
- transform: translate(36px, 0) rotate(144deg);
- }
- #coveringRectLinear, #lineLinear {
- top: 50px;
- }
- #coveringRectSteps, #lineSteps {
- top: 150px;
- }
- #lineLinear {
- animation: rotate 2s linear;
- }
- #lineSteps {
- animation: rotate 2s steps(360, end);
- }
- .pause {
- opacity: 0.6;
- animation-play-state: paused !important;
- }
- @keyframes rotate
- {
- 100% {
- transform: translate(90px, 0) rotate(360deg);
- }
- }
- </style>
- <script>
- var start = null;
- var animationDuration = 2000;
- var coveringRectAngle = 144;
- var rectFinalAngle = 360;
- function step(timestamp) {
- if (!start) start = timestamp;
- var progress = timestamp - start;
-
- // Pause the animations when the squares pass under the covering rect.
- var targetProgress = animationDuration * coveringRectAngle / rectFinalAngle;
- if (progress >= targetProgress) {
- document.getElementById("lineLinear").classList.add("pause");
- document.getElementById("lineSteps").classList.add("pause");
- }
-
- // Wait a bit so that the squares pass the covering rect if the
- // animation fails to be paused.
- var delta = 200;
- if (progress < targetProgress + delta)
- window.requestAnimationFrame(step)
- else
- document.documentElement.classList.remove("reftest-wait");
- }
- function runTest() {
- window.requestAnimationFrame(step);
- }
- </script>
- </head>
- <body onload="runTest()">
- <p>This test passes if you see two rotated green rectangles and no red.</p>
- <div id="container">
- <div id="lineLinear"></div>
- <div id="coveringRectLinear"></div>
- <div id="lineSteps"></div>
- <div id="coveringRectSteps"></div>
- </div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-layout-015.html b/tests/wpt/web-platform-tests/css/css-contain/contain-layout-015.html
new file mode 100644
index 00000000000..9c5f6757b0e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-layout-015.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>CSS Containment Test: Layout containment ink overflow</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-layout">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#ink-overflow">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<meta name=assert content="Layout containment treats the element overflowing contents as ink overflow.">
+
+<style>
+#wrapper {
+ width: 100px;
+ height: 100px;
+ overflow: auto;
+ background: red;
+}
+
+#contain-layout {
+ contain: layout;
+ width: 50px;
+ height: 50px;
+}
+
+#overflow {
+ width: 200px;
+ height: 200px;
+ background: green;
+}
+</style>
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div id="wrapper">
+ <div id="contain-layout">
+ <div id="overflow"></div>
+ </div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-001.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-001.html
index b6d4ea5aa78..ad84dc23fe7 100644
--- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-001.html
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-001.html
@@ -33,7 +33,7 @@
<div id="reference-overlapped-red"></div>
<div id="constrained-flex">
- <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" />
+ <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" />
</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-002.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-002.html
index 765344883b5..3849d454a02 100644
--- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-002.html
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-002.html
@@ -35,7 +35,7 @@
<div id="reference-overlapped-red"></div>
<div id="constrained-flex">
- <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" />
+ <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" />
</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-003.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-003.html
index be40dcb493c..a3ee677bd97 100644
--- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-003.html
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-003.html
@@ -35,7 +35,7 @@
<div id="reference-overlapped-red"></div>
<div id="constrained-flex">
- <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" />
+ <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" />
</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-001.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-001.html
index 63d77664075..14fabf760ca 100644
--- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-001.html
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-001.html
@@ -32,7 +32,7 @@
<div id="reference-overlapped-red"></div>
<div id="constrained-flex">
- <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" />
+ <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" />
</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-002.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-002.html
index 89a87e5845c..9f2c63240f8 100644
--- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-002.html
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-002.html
@@ -33,7 +33,7 @@
<div id="reference-overlapped-red"></div>
<div id="constrained-flex">
- <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" />
+ <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" />
</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-003.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-003.html
index 3cfcd2ceb4d..a3a8e4a0e38 100644
--- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-003.html
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-003.html
@@ -33,7 +33,7 @@
<div id="reference-overlapped-red"></div>
<div id="constrained-flex">
- <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" />
+ <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" />
</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-006.xht b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-006.xht
index ef0e32f8346..1387c6f1d14 100644
--- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-006.xht
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-006.xht
@@ -32,7 +32,7 @@
<div id="reference-overlapped-red"></div>
<div id="constrained-flex">
- <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" />
+ <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" />
</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-008.xht b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-008.xht
index bbae2cac9dd..ead7a424b37 100644
--- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-008.xht
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-008.xht
@@ -32,7 +32,7 @@
<div id="reference-overlapped-red"></div>
<div id="constrained-flex">
- <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" />
+ <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" />
</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-006.xht b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-006.xht
index 24bcf2502a1..1b06ecab7d2 100644
--- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-006.xht
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-006.xht
@@ -30,7 +30,7 @@
<div id="reference-overlapped-red"></div>
<div id="constrained-flex">
- <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" />
+ <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" />
</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-008.xht b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-008.xht
index 411ce750a67..3daa38a450d 100644
--- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-008.xht
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-008.xht
@@ -30,7 +30,7 @@
<div id="reference-overlapped-red"></div>
<div id="constrained-flex">
- <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" />
+ <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" />
</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/idlharness.html b/tests/wpt/web-platform-tests/css/css-fonts/idlharness.html
new file mode 100644
index 00000000000..9209144c3e5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-fonts/idlharness.html
@@ -0,0 +1,19 @@
+<!doctype html>
+<title>css-fonts IDL tests</title>
+<link rel="help" href="https://drafts.csswg.org/css-fonts-4/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/WebIDLParser.js"></script>
+<script src="/resources/idlharness.js"></script>
+<script>
+ "use strict";
+
+ promise_test(async () => {
+ const idl_array = new IdlArray();
+ const idl = await fetch("/interfaces/css-fonts.idl").then(r => r.text());
+ const cssom = await fetch("/interfaces/cssom.idl").then(r => r.text());
+ idl_array.add_idls(idl);
+ idl_array.add_dependency_idls(cssom);
+ idl_array.test();
+ }, "Test IDL implementation of css-fonts API");
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-logical/logicalprops-quirklength.html b/tests/wpt/web-platform-tests/css/css-logical/logicalprops-quirklength.html
index 04317839f45..3e133db880c 100644
--- a/tests/wpt/web-platform-tests/css/css-logical/logicalprops-quirklength.html
+++ b/tests/wpt/web-platform-tests/css/css-logical/logicalprops-quirklength.html
@@ -1,7 +1,8 @@
<meta charset="utf-8">
-<title>CSS Logical Properties: {max-,min-}block-size</title>
+<title>CSS Logical Properties</title>
<link rel="author" title="Xu Xing" href="mailto:openxu@gmail.com">
<link rel="help" href="https://drafts.csswg.org/css-logical-props-1/#logical-dimension-properties">
+<link rel="help" href="https://drafts.csswg.org/css-logical-props-1/#logical-prop">
<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#logical-to-physical">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
@@ -23,7 +24,12 @@ var tests = [
{cssText:"inline-size: 1"},
{cssText:"min-inline-size: 1"},
{cssText:"max-inline-size: 1"},
+ {cssText:"margin-block-start: 1"},
+ {cssText:"margin-block-end: 1"},
+ {cssText:"margin-inline-start: 1"},
+ {cssText:"margin-inline-end: 1"},
];
+
tests.forEach(function(t) {
test(() => assert_false(isValidDeclaration(t.cssText)), 'Check that "' + t.cssText + '" is not valid in quirks mode');
});
diff --git a/tests/wpt/web-platform-tests/css/css-masking/idlharness.html b/tests/wpt/web-platform-tests/css/css-masking/idlharness.html
new file mode 100644
index 00000000000..71cca64c3e4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-masking/idlharness.html
@@ -0,0 +1,36 @@
+<!doctype html>
+<title>css-masking IDL tests</title>
+<link rel="help" href="https://drafts.fxtf.org/css-masking-1/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/WebIDLParser.js"></script>
+<script src="/resources/idlharness.js"></script>
+<script>
+ "use strict";
+
+ promise_test(async () => {
+ const idl_array = new IdlArray();
+ const idl = await fetch("/interfaces/css-masking.idl").then(r => r.text());
+ const dom = await fetch("/interfaces/dom.idl").then(r => r.text());
+ idl_array.add_idls(idl);
+ idl_array.add_untested_idls('interface SVGElement : Element {};');
+ idl_array.add_untested_idls('interface SVGAnimatedEnumeration {};');
+ idl_array.add_untested_idls('interface SVGAnimatedLength {};');
+ idl_array.add_untested_idls('interface SVGAnimatedTransformList {};');
+ idl_array.add_dependency_idls(dom); // Needed for Element
+ idl_array.add_objects({
+ SVGClipPathElement: [document.querySelector('#clip1')],
+ SVGMaskElement: [document.querySelector('#mask1')],
+ });
+ idl_array.test();
+ }, "Test IDL implementation of css-masking");
+</script>
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml">
+ <clipPath id="clip1">
+ <rect x="50" y="50" width="100" height="100" />
+ </clipPath>
+ <mask id="mask1" x="0" y="0" width="1" height="1" maskContentUnits="objectBoundingBox">
+ <rect x="0" y="0" width="1" height="1" fill="white" />
+ </mask>
+</svg>
diff --git a/tests/wpt/web-platform-tests/css/css-multicol/filter-with-abspos.html b/tests/wpt/web-platform-tests/css/css-multicol/filter-with-abspos.html
new file mode 100644
index 00000000000..763bf1fc5a1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-multicol/filter-with-abspos.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<title>Filtered block becomes containing block of absolutely positioned child</title>
+<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#FilterProperty" title="5. Graphic filters: the filter property">
+<meta name="assert" content="A filtered block will be a containing block for absolutely positioned descendants. If all this takes place inside a multicol container, this means that the absolutely positioned box also has the multicol container in its containing block, which means that it should be fragmented.">
+<div id="multicol" style="columns:2;">
+ <div id="container" style="height:100px;">
+ <!-- The spanner is here to trigger the crash in crbug.com/847328 -->
+ <div style="column-span:all;"></div>
+ <div id="abspos" style="position:absolute; height:100px;"></div>
+ </div>
+</div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+test(() => {
+ let container = document.getElementById("container");
+ let abspos = document.getElementById("abspos");
+ document.body.offsetTop;
+ assert_equals(abspos.getBoundingClientRect().height, 100);
+ container.style.filter = "opacity(0.5)";
+ assert_equals(abspos.getBoundingClientRect().height, 50);
+ // The last step will cause a crash if crbug.com/847328 is present
+ document.body.offsetTop;
+ abspos.style.display = "none";
+}, "Making a container filtered, and then removing an abspos child");
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-scoping/shadow-host-with-before-after.html b/tests/wpt/web-platform-tests/css/css-scoping/shadow-host-with-before-after.html
new file mode 100644
index 00000000000..87e1554f154
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-scoping/shadow-host-with-before-after.html
@@ -0,0 +1,83 @@
+<!doctype html>
+<title>CSS Test: Pseudo-elements and :host selector.</title>
+<link rel="author" title="Antti Koivisto" href="mailto:koivisto@iki.fi"/>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"/>
+<link rel="help" href="https://drafts.csswg.org/css-scoping/#selectors-data-model">
+<link rel="match" href="reference/green-box.html"/>
+<style>
+.test {
+ width: 100px;
+ height: 25px;
+ background: red;
+ color: red;
+}
+#host1, #host2 {
+ color: green;
+}
+#host3 div, #host4 div {
+ width: 50%;
+ height: 100%;
+ background: green;
+ display: inline-block;
+}
+</style>
+<p>Test passes if you see a single 100px by 100px green box below.</p>
+<div id="host1" class="test"></div>
+<div id="host2" class="test"></div>
+<div id="host3" class="test"><div>text</div></div>
+<div id="host4" class="test"><div>text</div></div>
+<script>
+
+host1.attachShadow({mode: 'closed'}).innerHTML = `<style>
+ :host::before, :host::after {
+ width: 50%;
+ height: 100%;
+ background: green;
+ display: inline-block;
+ content: "test";
+ }
+ </style>`;
+
+host2.attachShadow({mode: 'closed'}).innerHTML = `<style>
+ :host(.green)::before, :host(.green)::after {
+ width: 50%;
+ height: 100%;
+ background: green;
+ display: inline-block;
+ content: "test";
+ }
+ </style>`;
+
+getComputedStyle(host2).backgroundColor;
+host2.classList.add('green');
+
+host3.attachShadow({mode: 'closed'}).innerHTML = `<style>
+ :host {
+ color: green !important;
+ }
+ :host::before {
+ width: 50%;
+ height: 100%;
+ background: green;
+ display: inline-block;
+ content: "test";
+ }
+ </style><slot></slot>`;
+
+host4.attachShadow({mode: 'closed'}).innerHTML = `<style>
+ :host(.green) {
+ color: green !important;
+ }
+ :host(.green)::after {
+ width: 50%;
+ height: 100%;
+ background: green;
+ display: inline-block;
+ content: "test";
+ }
+ </style><slot></slot>`;
+
+getComputedStyle(host4).backgroundColor;
+host4.classList.add('green');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-scoping/shadow-reassign-dynamic-002.html b/tests/wpt/web-platform-tests/css/css-scoping/shadow-reassign-dynamic-002.html
new file mode 100644
index 00000000000..7874e2e1398
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-scoping/shadow-reassign-dynamic-002.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Scoping: Dynamic reassignment of a slot.</title>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="help" href="https://drafts.csswg.org/css-scoping/#selectors-data-model">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1465572">
+<link rel="match" href="reference/green-box.html"/>
+<div id="host">
+ FAIL
+ <div style="background: green" slot="the-slot"></div>
+</div>
+<script>
+ document.body.offsetTop;
+ host.attachShadow({ mode: "open" }).innerHTML = `
+ <style>::slotted(div) { width: 100px; height: 100px }</style>
+ <p>Test passes if you see a single 100px by 100px green box below.</p>
+ <slot>FAIL</slot>
+ `;
+ document.body.offsetTop;
+ host.shadowRoot.querySelector("slot").setAttribute("name", "the-slot");
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-scoping/whitespace-crash-001.html b/tests/wpt/web-platform-tests/css/css-scoping/whitespace-crash-001.html
new file mode 100644
index 00000000000..d3b4a8a4ad2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-scoping/whitespace-crash-001.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Scoping: Dynamic shadow root creation and whitespace optimization crash.</title>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="help" href="https://drafts.csswg.org/css-scoping/#selectors-data-model">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1465572">
+<link rel="match" href="reference/green-box.html"/>
+<p>Test passes if you see a single 100px by 100px green box below.</p>
+<!--
+ It's important for the test-case that there's whitespace inside the host,
+ and that it's not assigned to any slot.
+-->
+<div id="host">
+ <div style="display: inline" slot="the-slot"></div>
+</div>
+<script>
+ // Flush layout before creating a ShadowRoot, so that the whitespace ends up
+ // suppressed.
+ document.body.offsetTop;
+ host.attachShadow({ mode: "open" }).innerHTML = `
+ <style>
+ ::slotted(div) {
+ width: 100px;
+ height: 100px;
+ background: green;
+ }
+ </style>
+ <slot name="the-slot"></slot>
+ `;
+ document.body.offsetTop;
+ host.firstElementChild.style.display = "block"; // or anything else that reframes the <div>.
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html
new file mode 100644
index 00000000000..e4a7ef4a385
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: overflow-wrap: break-word and intrinsic sizing</title>
+<link rel="author" title="Florian Rivoal" href="http://florian.rivoal.net/">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#overflow-wrap-property">
+<meta name="flags" content="">
+<link rel="match" href="reference/overflow-wrap-min-content-size-001-ref.html">
+<meta name="assert" content="Soft wrap opportunities introduced by overflow-wrap:break-word **are** considered when calculating min-content intrinsic sizes.">
+<style>
+table {
+ overflow-wrap: break-word;
+ max-width: 0;
+ border: 0;
+ border-collapse: collapse;
+}
+td {
+ padding: 0;
+ background: green;
+ color: transparent;
+}
+#red {
+ position: absolute;
+ z-index: -1;
+ background: red;
+ color: transparent;
+}
+</style>
+
+<p>Test passes if there is a green box below and no red.
+<div id=red>X<br>X<br>X<br>X</div>
+<table><tr><td>XXXX</table>
+
+<!--
+ width:min-content on the div directly without using a table
+ would achieve the goal of this test, and be a lot simpler.
+
+ However, width:min-content is not yet widely supported.
+
+ Using a table, and forcing it to be as small as possible
+ will achieve min-content sizing of the div in all browsers.
+-->
diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html
new file mode 100644
index 00000000000..99d964777c6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test reference</title>
+<link rel="author" title="Florian Rivoal" href="http://florian.rivoal.net/">
+<style>
+div {
+ position: absolute;
+ background: green;
+ color: transparent;
+}
+</style>
+
+<p>Test passes if there is a green box below and no red.
+<div>X<br>X<br>X<br>X</div>
diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-alias.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-alias.html
new file mode 100644
index 00000000000..74e8aa23124
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-alias.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#propdef-word-wrap">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/866">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="test" style="word-wrap: break-word; overflow-wrap: break-word;"></div>
+<script>
+test(function() {
+ const div = document.getElementById("test");
+ assert_equals(div.style.cssText, "overflow-wrap: break-word;", "Only overflow-wrap should appear when serializing the declaration.");
+ assert_equals(div.style.wordWrap, "break-word");
+ assert_equals(div.style.overflowWrap, "break-word");
+ assert_equals(getComputedStyle(div).wordWrap, "break-word");
+ assert_equals(getComputedStyle(div).overflowWrap, "break-word");
+}, "word-wrap should be defined as an alias of overflow-wrap");
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-001-manual.html b/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-001-manual.html
new file mode 100644
index 00000000000..4d4be0d303a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-001-manual.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<meta charset="utf-8">
+<title>CSS Basic User Interface Test: pointer cursor on svg links</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+<link rel="help" href="https://drafts.csswg.org/css-ui-4/#cursor">
+<meta name="flags" content="interact">
+<meta name="assert" content="The pointer cursor is applied to SVG links">
+<style>
+</style>
+<body>
+ <p>The test passes if, when moved over the blue text, the cursor indicates a link. Often rendered as the backside of a hand with the index finger poiting and the other fingers closed.</p>
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <a xlink:href=""><text x="0" y="16" font-size="16" fill="blue">Hover me</text></a>
+ </svg>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-002-manual.html b/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-002-manual.html
new file mode 100644
index 00000000000..fc9c2a3d63f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-002-manual.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html lang="en">
+<meta charset="utf-8">
+<title>CSS Basic User Interface Test: pointer cursor on svg links</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+<link rel="help" href="https://drafts.csswg.org/css-ui-4/#cursor">
+<meta name="flags" content="interact">
+<meta name="assert" content="The pointer cursor is applied to HTML links">
+<style>
+</style>
+<body>
+ <p>The test passes if, when moved over the blue text, the cursor indicates a link. Often rendered as the backside of a hand with the index finger poiting and the other fingers closed.</p>
+ <a href="" style="color: blue">Hover me</a>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-003-manual.html b/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-003-manual.html
new file mode 100644
index 00000000000..ceaa1748475
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-003-manual.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang="en">
+<meta charset="utf-8">
+<title>CSS Basic User Interface Test: pointer cursor on svg links</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+<link rel="help" href="https://drafts.csswg.org/css-ui-4/#cursor">
+<meta name="flags" content="interact">
+<meta name="assert" content="The pointer cursor is applied to HTML image maps">
+<style>
+</style>
+<body>
+ <p>The test passes if, when moved over the blue box, the cursor indicates a link. Often rendered as the backside of a hand with the index finger poiting and the other fingers closed.</p>
+ <map name="m1"><area coords="0,0,100,100" href=""></map>
+ <img usemap="#m1" src="../support/swatch-blue.png" alt="blue square" width=100 height=100>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/cssom-view/dom-element-scroll.html b/tests/wpt/web-platform-tests/css/cssom-view/dom-element-scroll.html
new file mode 100644
index 00000000000..3f3e27aaf67
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/cssom-view/dom-element-scroll.html
@@ -0,0 +1,100 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>dom-element-scroll tests</title>
+<link rel="help" href="https://drafts.csswg.org/cssom-view/#dom-element-scrolltop">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ #section1 {
+ width: 300px;
+ height: 500px;
+ top: 16px;
+ left: 16px;
+ border: inset gray 3px;
+ background: white;
+ }
+
+ #scrollable {
+ width: 400px;
+ height: 700px;
+ background: linear-gradient(135deg, red, blue);
+ }
+
+ #section2 {
+ width: 300px;
+ height: 500px;
+ top: 16px;
+ left: 16px;
+ border: inset gray 3px;
+ background: white;
+ }
+
+ #unscrollable {
+ width: 200px;
+ height: 300px;
+ background: linear-gradient(135deg, red, blue);
+ }
+</style>
+<section id="section1">
+ <div id="scrollable"></div>
+</section>
+<section id="section2">
+ <div id="unscrollable"></div>
+</section>
+<script>
+ var section1 = document.getElementById("section1");
+ var section2 = document.getElementById("section2");
+
+ test(function () {
+ // let it be "hidden" to have scrolling box
+ section1.style.overflow = "hidden";
+
+ section1.scroll(50, 60);
+ assert_equals(section1.scrollLeft, 50, "changed scrollLeft should be 50");
+ assert_equals(section1.scrollTop, 60, "changed scrollTop should be 60");
+
+ section1.scroll(0, 0); // back to the origin
+ }, "Element test for having scrolling box");
+
+ test(function () {
+ section1.scroll(10, 20);
+ assert_equals(section1.scrollLeft, 10, "changed scrollLeft should be 10");
+ assert_equals(section1.scrollTop, 20, "changed scrollTop should be 20");
+
+ section1.scroll(0, 0); // back to the origin
+ }, "Element test for having overflow");
+
+ test(function () {
+ // make it not "hidden" to not have scrolling box
+ section1.style.overflow = "visible";
+
+ section1.scroll(50, 0);
+ assert_equals(section1.scrollLeft, 0, "changed scrollLeft should be 0");
+ assert_equals(section1.scrollTop, 0, "changed scrollTop should be 0");
+
+ section1.scroll(0, 60);
+ assert_equals(section1.scrollLeft, 0, "changed scrollLeft should be 0");
+ assert_equals(section1.scrollTop, 0, "changed scrollTop should be 0");
+
+ section1.scroll(50, 60);
+ assert_equals(section1.scrollLeft, 0, "changed scrollLeft should be 0");
+ assert_equals(section1.scrollTop, 0, "changed scrollTop should be 0");
+
+ section1.scroll(0, 0); // back to the origin
+ }, "Element test for not having scrolling box");
+
+ test(function () {
+ section2.scroll(0, 20);
+ assert_equals(section2.scrollLeft, 0, "changed scrollLeft should be 0");
+ assert_equals(section2.scrollTop, 0, "changed scrollTop should be 0");
+
+ section2.scroll(10, 0);
+ assert_equals(section2.scrollLeft, 0, "changed scrollLeft should be 0");
+ assert_equals(section2.scrollTop, 0, "changed scrollTop should be 0");
+
+ section2.scroll(10, 20);
+ assert_equals(section2.scrollLeft, 0, "changed scrollLeft should be 0");
+ assert_equals(section2.scrollTop, 0, "changed scrollTop should be 0");
+ }, "Element test for not having overflow");
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/cssom/computed-style-set-property.html b/tests/wpt/web-platform-tests/css/cssom/computed-style-set-property.html
index a5fcc156a38..65678526817 100644
--- a/tests/wpt/web-platform-tests/css/cssom/computed-style-set-property.html
+++ b/tests/wpt/web-platform-tests/css/cssom/computed-style-set-property.html
@@ -1,4 +1,4 @@
-<!DOCTYPE>
+<!DOCTYPE html>
<title>NoModificationAllowedError when mutating read only properties</title>
<link rel="author" title="Anders Hartvoll Ruud" href="andruud@chromium.org">
<link rel="help" href="https://www.w3.org/TR/cssom-1/#dom-cssstyledeclaration-setpropertyvalue">
diff --git a/tests/wpt/web-platform-tests/css/geometry/DOMPoint-001.html b/tests/wpt/web-platform-tests/css/geometry/DOMPoint-001.html
index 0554d3f5401..40d2f631a89 100644
--- a/tests/wpt/web-platform-tests/css/geometry/DOMPoint-001.html
+++ b/tests/wpt/web-platform-tests/css/geometry/DOMPoint-001.html
@@ -36,40 +36,22 @@
checkDOMPoint(new DOMPoint(1, 2, 3, 4, 5), {x:1, y:2, z:3, w:4});
},'testConstructor5');
test(function() {
- checkDOMPoint(new DOMPoint({}), {x:0, y:0, z:0, w:1});
+ checkDOMPoint(new DOMPoint({}), {x:NaN, y:0, z:0, w:1});
},'testConstructorDictionary0');
test(function() {
- checkDOMPoint(new DOMPoint({x:1}), {x:1, y:0, z:0, w:1});
+ checkDOMPoint(new DOMPoint({x:1}), {x:NaN, y:0, z:0, w:1});
},'testConstructorDictionary1');
test(function() {
- checkDOMPoint(new DOMPoint({x:1, y:2}), {x:1, y:2, z:0, w:1});
+ checkDOMPoint(new DOMPoint({x:1, y:2}), {x:NaN, y:0, z:0, w:1});
},'testConstructorDictionary2');
test(function() {
- checkDOMPoint(new DOMPoint({x:1, y:2, z:3}), {x:1, y:2, z:3, w:1});
- },'testConstructorDictionary3');
- test(function() {
- checkDOMPoint(new DOMPoint({x:1, y:2, z:3, w:4}), {x:1, y:2, z:3, w:4});
- },'testConstructorDictionary4');
- test(function() {
- checkDOMPoint(new DOMPoint({x:1, y:2, z:3, w:4, v:5}), {x:1, y:2, z:3, w:4});
- },'testConstructorDictionary5');
- test(function() {
- checkDOMPoint(new DOMPoint({x:1, z:3}), {x:1, y:0, z:3, w:1});
- },'testConstructorDictionary2irregular');
- test(function() {
- checkDOMPoint(new DOMPoint({x:1, y: undefined, z:3}), {x:1, y:0, z:3, w:1});
- },'testConstructorDictionary2undefined');
- test(function() {
- checkDOMPoint(new DOMPoint({x:1, z:3}), {x:1, y:0, z:3, w:1});
- },'testConstructorDOMPoint');
- test(function() {
checkDOMPoint(new DOMPoint(1, undefined), {x:1, y:0, z:0, w:1});
},'testConstructor2undefined');
test(function() {
checkDOMPoint(new DOMPoint("a", "b"), {x:NaN, y:NaN, z:0, w:1});
},'testConstructorUndefined1');
test(function() {
- checkDOMPoint(new DOMPoint({x:"a", y:"b"}), {x:NaN, y:NaN, z:0, w:1});
+ checkDOMPoint(new DOMPoint({x:"a", y:"b"}), {x:NaN, y:0, z:0, w:1});
},'testConstructorUndefined2');
test(function() {
checkDOMPoint(new DOMPointReadOnly(), {x:0, y:0, z:0, w:1});
diff --git a/tests/wpt/web-platform-tests/css/selectors/focus-visible-007.html b/tests/wpt/web-platform-tests/css/selectors/focus-visible-007.html
new file mode 100644
index 00000000000..53d91cbd92c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/selectors/focus-visible-007.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8" />
+ <title>CSS Test (Selectors): Keyboard focus enables :focus-visible</title>
+ <link rel="author" title="Alice Boxhall" href="aboxhall@chromium.org" />
+ <link rel="help" href="https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/resources/testdriver.js"></script>
+ <script src="/resources/testdriver-vendor.js"></script>
+ <style>
+ body[data-hadkeydown] #one:focus-visible { background-color: rgb(128, 196, 128); }
+ body:not([data-hadkeydown]) #one:focus-visible { background-color: rgb(196, 128, 128); }
+
+ body:not([data-hadkeydown]) #two:focus-visible { background-color: rgb(196, 128, 128); }
+ body:not([data-hadkeydown]) #two:focus:not(:focus-visible) {
+ background-color: rgb(128, 196, 128);
+ }
+ </style>
+</head>
+<body>
+ <div id="one" tabindex="0">Click me first.</div>
+ <div id="two" tabindex="0">Click me second.</div>
+ <script>
+ document.body.addEventListener("keydown", (e) => {
+ delete document.body.dataset.hadmousedown;
+ document.body.dataset.hadkeydown = "";
+ }, true);
+
+ document.body.addEventListener("mousedown", (e) => {
+ document.body.dataset.hadmousedown = "";
+ }, true);
+
+ document.body.addEventListener("focus", (e) => {
+ if ("hadmousedown" in document.body.dataset) {
+ delete document.body.dataset.hadmousedown;
+ delete document.body.dataset.hadkeydown;
+ }
+ }, true);
+
+ async_test(async function(t) {
+ let tested_modality_change = false;
+ let tested_modality_unchanged_by_mouse_click = false;
+ let tested_mouse_focus_after_modality_change = false;
+
+ // TODO(crbug.com/828858): Remove this check once bug is resolved.
+ test_driver.send_keys(document.body, "\uE050").then(t.step_func(() => {
+ const handle_initial_focus = t.step_func(() => {
+ one.addEventListener("keyup", t.step_func(test_modality_change));
+ one.removeEventListener("focus", handle_initial_focus);
+
+ test_driver.send_keys(one, "\uE050");
+ });
+
+ const test_modality_change = t.step_func(() => {
+ assert_equals(getComputedStyle(one).backgroundColor, "rgb(128, 196, 128)");
+ tested_modality_change = true;
+ one.removeEventListener("keyup", test_modality_change);
+ one.addEventListener("click", test_modality_unchanged_by_mouse_click);
+ test_driver.click(one);
+ });
+
+ const test_modality_unchanged_by_mouse_click = t.step_func(() => {
+ assert_true(tested_modality_change);
+ assert_equals(getComputedStyle(one).backgroundColor, "rgb(128, 196, 128)");
+ tested_modality_unchanged_by_mouse_click = true;
+ one.removeEventListener("click", test_modality_unchanged_by_mouse_click);
+ two.addEventListener("focus", test_mouse_focus_after_modality_change);
+ test_driver.click(two);
+ });
+
+ const test_mouse_focus_after_modality_change = t.step_func(() => {
+ assert_true(tested_modality_unchanged_by_mouse_click);
+ assert_false("hadkeydown" in document.body.dataset);
+ assert_equals(getComputedStyle(two).backgroundColor, "rgb(128, 196, 128)");
+ tested_mouse_focus_after_modality_change = true;
+ t.done();
+ });
+
+ one.addEventListener("focus", handle_initial_focus);
+ test_driver.click(one);
+ })).catch(t.step_func((e) => {
+ // TODO(crbug.com/828858): Remove this check once bug is resolved.
+ assert_true(false, "send_keys not implmented yet");
+ t.done();
+ }));
+ }, "Using keyboard while element is focused should trigger :focus-visible; using mouse without moving focus should not cancel it; moving focus using mouse should cancel it.");
+ </script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/docs/_appendix/github-intro.md b/tests/wpt/web-platform-tests/docs/_appendix/github-intro.md
index a9919d0019e..7c78e35d029 100644
--- a/tests/wpt/web-platform-tests/docs/_appendix/github-intro.md
+++ b/tests/wpt/web-platform-tests/docs/_appendix/github-intro.md
@@ -105,6 +105,14 @@ repository.
For additional information, please see the [GitHub docs][github-fork-docs].
+## Configure your environment
+
+If all you intend to do is to load [manual tests][manual-tests] or [ref tests][ref-tests] from your local file system,
+the above setup should be sufficient.
+But many tests (and in particular, all [testharness.js tests][testharness-tests]) require a local web server.
+
+See [Local Setup][local-setup] for more information.
+
## Branch
Now that you have everything locally, create a branch for your tests.
@@ -362,6 +370,10 @@ If you do not expect work with more PRs from the same author,
you may also discard your connection to their repo:
`git remote remove <author-id>`
+[local-setup]: {{ site.baseurl }}/introduction.html#local-setup
+[manual-tests]: {{ site.baseurl }}/writing-tests/manual.html
+[ref-tests]: {{ site.baseurl }}/writing-tests/reftests.html
+[testharness-tests]: {{ site.baseurl }}/writing-tests/testharness.html
[branch]: #branch
[commit]: #commit
[clone]: #clone
diff --git a/tests/wpt/web-platform-tests/dom/events/event-global-extra.window.js b/tests/wpt/web-platform-tests/dom/events/event-global-extra.window.js
new file mode 100644
index 00000000000..f2687696680
--- /dev/null
+++ b/tests/wpt/web-platform-tests/dom/events/event-global-extra.window.js
@@ -0,0 +1,90 @@
+const otherWindow = document.body.appendChild(document.createElement("iframe")).contentWindow;
+
+["EventTarget", "XMLHttpRequest"].forEach(constructorName => {
+ async_test(t => {
+ const eventTarget = new otherWindow[constructorName]();
+ eventTarget.addEventListener("hi", t.step_func_done(e => {
+ assert_equals(otherWindow.event, undefined);
+ assert_equals(e, window.event);
+ }));
+ eventTarget.dispatchEvent(new Event("hi"));
+ }, "window.event for constructors from another global: " + constructorName);
+});
+
+// XXX: It would be good to test a subclass of EventTarget once we sort out
+// https://github.com/heycam/webidl/issues/540
+
+async_test(t => {
+ const element = document.body.appendChild(otherWindow.document.createElement("meh"));
+ element.addEventListener("yo", t.step_func_done(e => {
+ assert_equals(e, window.event);
+ }));
+ element.dispatchEvent(new Event("yo"));
+}, "window.event and element from another document");
+
+async_test(t => {
+ const doc = otherWindow.document,
+ element = doc.body.appendChild(doc.createElement("meh")),
+ child = element.appendChild(doc.createElement("bleh"));
+ element.addEventListener("yoyo", t.step_func(e => {
+ document.body.appendChild(element);
+ assert_equals(element.ownerDocument, document);
+ assert_equals(window.event, e);
+ assert_equals(otherWindow.event, undefined);
+ }), true);
+ element.addEventListener("yoyo", t.step_func(e => {
+ assert_equals(element.ownerDocument, document);
+ assert_equals(window.event, e);
+ assert_equals(otherWindow.event, undefined);
+ }), true);
+ child.addEventListener("yoyo", t.step_func_done(e => {
+ assert_equals(child.ownerDocument, document);
+ assert_equals(window.event, e);
+ assert_equals(otherWindow.event, undefined);
+ }));
+ child.dispatchEvent(new Event("yoyo"));
+}, "window.event and moving an element post-dispatch");
+
+test(t => {
+ const host = document.createElement("div"),
+ shadow = host.attachShadow({ mode: "open" }),
+ child = shadow.appendChild(document.createElement("trala")),
+ furtherChild = child.appendChild(document.createElement("waddup"));
+ let counter = 0;
+ host.addEventListener("hi", t.step_func(e => {
+ assert_equals(window.event, e);
+ assert_equals(counter++, 3);
+ }));
+ child.addEventListener("hi", t.step_func(e => {
+ assert_equals(window.event, e);
+ assert_equals(counter++, 2);
+ }));
+ furtherChild.addEventListener("hi", t.step_func(e => {
+ host.appendChild(child);
+ assert_equals(window.event, e);
+ assert_equals(counter++, 0);
+ }));
+ furtherChild.addEventListener("hi", t.step_func(e => {
+ assert_equals(window.event, e);
+ assert_equals(counter++, 1);
+ }));
+ furtherChild.dispatchEvent(new Event("hi", { composed: true, bubbles: true }));
+ assert_equals(counter, 4);
+}, "window.event should not be affected by nodes moving post-dispatch");
+
+async_test(t => {
+ const frame = document.body.appendChild(document.createElement("iframe"));
+ frame.src = "resources/event-global-extra-frame.html";
+ frame.onload = t.step_func_done(() => {
+ const event = new Event("hi");
+ document.addEventListener("hi", frame.contentWindow.listener); // listener intentionally not wrapped in t.step_func
+ document.addEventListener("hi", t.step_func(e => {
+ assert_equals(event, e);
+ assert_equals(window.event, e);
+ }));
+ document.dispatchEvent(event);
+ assert_equals(frameState.event, event);
+ assert_equals(frameState.windowEvent, event);
+ assert_equals(frameState.parentEvent, undefined);
+ });
+}, "Listener from a different global");
diff --git a/tests/wpt/web-platform-tests/dom/events/event-global.html b/tests/wpt/web-platform-tests/dom/events/event-global.html
new file mode 100644
index 00000000000..5cb1b1416aa
--- /dev/null
+++ b/tests/wpt/web-platform-tests/dom/events/event-global.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<title>window.event tests</title>
+<link rel="author" title="Mike Taylor" href="mailto:miketaylr@gmail.com">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id=log></div>
+<script>
+test(t => {
+ assert_own_property(window, "event");
+ assert_equals(window.event, undefined);
+}, "event exists on window, which is initially set to undefined");
+
+async_test(t => {
+ let target = document.createElement("div");
+ assert_equals(window.event, undefined, "undefined before dispatch");
+
+ let clickEvent = new Event("click");
+ target.addEventListener("click", t.step_func_done(e => {
+ assert_equals(window.event, clickEvent, "window.event set to current event during dispatch");
+ }));
+
+ target.dispatchEvent(clickEvent);
+ assert_equals(window.event, undefined, "undefined after dispatch");
+}, "window.event is only defined during dispatch");
+
+async_test(t => {
+ let parent = document.createElement("div");
+ let root = parent.attachShadow({mode: "closed"});
+ let span = document.createElement("span");
+ root.appendChild(span);
+
+ span.addEventListener("test", t.step_func(e => {
+ assert_equals(window.event, undefined);
+ assert_not_equals(window.event, e);
+ }));
+
+ parent.addEventListener("test", t.step_func_done(e => {
+ assert_equals(window.event, e);
+ assert_not_equals(window.event, undefined);
+ }));
+
+ parent.dispatchEvent(new Event("test", {composed: true}));
+}, "window.event is undefined if the target is in a shadow tree (event dispatched outside shadow tree)");
+
+async_test(t => {
+ let parent = document.createElement("div");
+ let root = parent.attachShadow({mode: "closed"});
+ let span = document.createElement("span");
+ root.appendChild(span);
+ let shadowNode = root.firstElementChild;
+
+ shadowNode.addEventListener("test", t.step_func((e) => {
+ assert_not_equals(window.event, e);
+ assert_equals(window.event, undefined);
+ }));
+
+ parent.addEventListener("test", t.step_func_done(e => {
+ assert_equals(window.event, e);
+ assert_not_equals(window.event, undefined);
+ }));
+
+ shadowNode.dispatchEvent(new Event("test", {composed: true, bubbles: true}));
+}, "window.event is undefined if the target is in a shadow tree (event dispatched inside shadow tree)");
+
+async_test(t => {
+ let target1 = document.createElement("div");
+ let target2 = document.createElement("div");
+
+ target2.addEventListener("dude", t.step_func(() => {
+ assert_equals(window.event.type, "dude");
+ }));
+
+ target1.addEventListener("cool", t.step_func_done(() => {
+ assert_equals(window.event.type, "cool", "got expected event from global event during dispatch");
+ target2.dispatchEvent(new Event("dude"));
+ assert_equals(window.event.type, "cool", "got expected event from global event after handling a different event handler callback");
+ }));
+
+ target1.dispatchEvent(new Event("cool"));
+}, "window.event is set to the current event during dispatch");
+
+async_test(t => {
+ let target = document.createElement("div");
+
+ target.addEventListener("click", t.step_func_done(e => {
+ assert_equals(e, window.event);
+ }));
+
+ target.dispatchEvent(new Event("click"));
+}, "window.event is set to the current event, which is the event passed to dispatch");
+</script>
diff --git a/tests/wpt/web-platform-tests/dom/events/resources/event-global-extra-frame.html b/tests/wpt/web-platform-tests/dom/events/resources/event-global-extra-frame.html
new file mode 100644
index 00000000000..241dda8b66f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/dom/events/resources/event-global-extra-frame.html
@@ -0,0 +1,9 @@
+<script>
+function listener(e) {
+ parent.frameState = {
+ event: e,
+ windowEvent: window.event,
+ parentEvent: parent.event
+ }
+}
+</script>
diff --git a/tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht.xht b/tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht.xht
index 3915aee42cf..f6d8280b7cd 100644
--- a/tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht.xht
+++ b/tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht.xht
@@ -1,6 +1,7 @@
<!DOCTYPE html>
<html id="html" lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head id="head">
+<meta name="timeout" content="long" />
<title>Selectors-API Test Suite: XHTML</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All.html b/tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All.html
index a1793df4e8c..465898c67c0 100644
--- a/tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All.html
+++ b/tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<meta charset="UTF-8">
+<meta name=timeout content=long>
<title>Selectors-API Test Suite: HTML</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/web-platform-tests/fetch/api/resources/echo-content.py b/tests/wpt/web-platform-tests/fetch/api/resources/echo-content.py
index 5c39e838181..9a038f329c8 100644
--- a/tests/wpt/web-platform-tests/fetch/api/resources/echo-content.py
+++ b/tests/wpt/web-platform-tests/fetch/api/resources/echo-content.py
@@ -2,8 +2,9 @@ def main(request, response):
headers = [("X-Request-Method", request.method),
("X-Request-Content-Length", request.headers.get("Content-Length", "NO")),
- ("X-Request-Content-Type", request.headers.get("Content-Type", "NO"))]
-
+ ("X-Request-Content-Type", request.headers.get("Content-Type", "NO")),
+ # Avoid any kind of content sniffing on the response.
+ ("Content-Type", "text/plain")]
content = request.body
return headers, content
diff --git a/tests/wpt/web-platform-tests/fetch/range/general.any.js b/tests/wpt/web-platform-tests/fetch/range/general.any.js
index 2e49ed1e0f9..656ac1ceea2 100644
--- a/tests/wpt/web-platform-tests/fetch/range/general.any.js
+++ b/tests/wpt/web-platform-tests/fetch/range/general.any.js
@@ -1,3 +1,5 @@
+// META: script=/common/utils.js
+
// Helpers that return headers objects with a particular guard
function headersGuardNone(fill) {
if (fill) return new Headers(fill);
@@ -58,3 +60,31 @@ test(() => {
assert_false(headers.has('Range'));
}, `Privileged header not allowed for guard type: request-no-cors`);
+promise_test(async () => {
+ const wavURL = new URL('resources/long-wav.py', location);
+ const stashTakeURL = new URL('resources/stash-take.py', location);
+
+ function changeToken() {
+ const stashToken = token();
+ wavURL.searchParams.set('accept-encoding-key', stashToken);
+ stashTakeURL.searchParams.set('key', stashToken);
+ }
+
+ const rangeHeaders = [
+ 'bytes=0-10',
+ 'foo=0-10',
+ 'foo',
+ ''
+ ];
+
+ for (const rangeHeader of rangeHeaders) {
+ changeToken();
+
+ await fetch(wavURL, {
+ headers: { Range: rangeHeader }
+ });
+
+ const response = await fetch(stashTakeURL);
+ assert_equals(await response.json(), 'identity', `Expect identity accept-encoding if range header is ${JSON.stringify(rangeHeader)}`);
+ }
+}, `Fetch with range header will be sent with Accept-Encoding: identity`);
diff --git a/tests/wpt/web-platform-tests/fetch/range/general.window.js b/tests/wpt/web-platform-tests/fetch/range/general.window.js
new file mode 100644
index 00000000000..afe80d63a6b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/range/general.window.js
@@ -0,0 +1,29 @@
+// META: script=resources/utils.js
+// META: script=/common/utils.js
+
+const onload = new Promise(r => window.addEventListener('load', r));
+
+// It's weird that browsers do this, but it should continue to work.
+promise_test(async t => {
+ await loadScript('resources/partial-script.py?pretend-offset=90000');
+ assert_true(self.scriptExecuted);
+}, `Script executed from partial response`);
+
+promise_test(async () => {
+ const wavURL = new URL('resources/long-wav.py', location);
+ const stashTakeURL = new URL('resources/stash-take.py', location);
+ const stashToken = token();
+ wavURL.searchParams.set('accept-encoding-key', stashToken);
+ stashTakeURL.searchParams.set('key', stashToken);
+
+ // The testing framework waits for window onload. If the audio element
+ // is appended before onload, it extends it, and the test times out.
+ await onload;
+
+ const audio = appendAudio(document, wavURL);
+ await new Promise(r => audio.addEventListener('progress', r));
+ audio.remove();
+
+ const response = await fetch(stashTakeURL);
+ assert_equals(await response.json(), 'identity', `Expect identity accept-encoding on media request`);
+}, `Fetch with range header will be sent with Accept-Encoding: identity`);
diff --git a/tests/wpt/web-platform-tests/fetch/range/partial-script.window.js b/tests/wpt/web-platform-tests/fetch/range/partial-script.window.js
deleted file mode 100644
index 36b4bba31aa..00000000000
--- a/tests/wpt/web-platform-tests/fetch/range/partial-script.window.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// META: script=resources/utils.js
-
-// It's weird that browsers do this, but it should continue to work.
-promise_test(async t => {
- await loadScript('resources/partial-script.py?pretend-offset=90000');
- assert_true(self.scriptExecuted);
-}, `Script executed from partial response`);
diff --git a/tests/wpt/web-platform-tests/fetch/range/resources/long-wav.py b/tests/wpt/web-platform-tests/fetch/range/resources/long-wav.py
index d510767c309..5df28eb741e 100644
--- a/tests/wpt/web-platform-tests/fetch/range/resources/long-wav.py
+++ b/tests/wpt/web-platform-tests/fetch/range/resources/long-wav.py
@@ -50,11 +50,28 @@ def main(request, response):
response.headers.set("Cache-Control", "no-cache")
range_header = request.headers.get('Range', '')
+ range_header_match = range_header and re.search(r'^bytes=(\d*)-(\d*)$', range_header)
range_received_key = request.GET.first('range-received-key', '')
+ accept_encoding_key = request.GET.first('accept-encoding-key', '')
if range_received_key and range_header:
+ # Remove any current value
+ request.server.stash.take(range_received_key, '/fetch/range/')
# This is later collected using stash-take.py
- request.stash.put(range_received_key, 'range-header-received', '/fetch/range/')
+ request.server.stash.put(range_received_key, 'range-header-received', '/fetch/range/')
+
+ if accept_encoding_key:
+ # Remove any current value
+ request.server.stash.take(
+ accept_encoding_key,
+ '/fetch/range/'
+ )
+ # This is later collected using stash-take.py
+ request.server.stash.put(
+ accept_encoding_key,
+ request.headers.get('Accept-Encoding', ''),
+ '/fetch/range/'
+ )
# Audio details
sample_rate = 8000
@@ -66,9 +83,9 @@ def main(request, response):
bytes_remaining_to_send = total_length
initial_write = ''
- if range_header:
+ if range_header_match:
response.status = 206
- start, end = re.search(r'^bytes=(\d*)-(\d*)$', range_header).groups()
+ start, end = range_header_match.groups()
start = int(start)
end = int(end) if end else 0
diff --git a/tests/wpt/web-platform-tests/fetch/range/resources/range-sw.js b/tests/wpt/web-platform-tests/fetch/range/resources/range-sw.js
index 1dfee58e452..3680c0c471d 100644
--- a/tests/wpt/web-platform-tests/fetch/range/resources/range-sw.js
+++ b/tests/wpt/web-platform-tests/fetch/range/resources/range-sw.js
@@ -31,6 +31,9 @@ addEventListener('fetch', event => {
case 'use-stored-ranged-response':
useStoredRangeResponse(event);
return;
+ case 'broadcast-accept-encoding':
+ broadcastAcceptEncoding(event);
+ return;
}
});
@@ -108,7 +111,7 @@ function rangeHeaderPassthroughTest(event) {
promise_test(async () => {
await fetch(event.request);
const response = await fetch('stash-take.py?key=' + key);
- assert_equals(await response.json(), '"range-header-received"');
+ assert_equals(await response.json(), 'range-header-received');
resolve();
}, `Include range header in network request`);
@@ -140,3 +143,17 @@ function useStoredRangeResponse(event) {
return response.clone();
}());
}
+
+function broadcastAcceptEncoding(event) {
+ /** @type Request */
+ const request = event.request;
+ const id = new URL(request.url).searchParams.get('id');
+
+ broadcast({
+ id,
+ acceptEncoding: request.headers.get('Accept-Encoding')
+ });
+
+ // Just send back any response, it isn't important for the test.
+ event.respondWith(new Response(''));
+}
diff --git a/tests/wpt/web-platform-tests/fetch/range/resources/utils.js b/tests/wpt/web-platform-tests/fetch/range/resources/utils.js
index 567f231d030..16ed737f63e 100644
--- a/tests/wpt/web-platform-tests/fetch/range/resources/utils.js
+++ b/tests/wpt/web-platform-tests/fetch/range/resources/utils.js
@@ -7,3 +7,18 @@ function loadScript(url, { doc = document }={}) {
doc.body.appendChild(script);
})
}
+
+/**
+ *
+ * @param {Document} document
+ * @param {string|URL} url
+ * @returns {HTMLAudioElement}
+ */
+function appendAudio(document, url) {
+ const audio = document.createElement('audio');
+ audio.muted = true;
+ audio.src = url;
+ audio.preload = true;
+ document.body.appendChild(audio);
+ return audio;
+}
diff --git a/tests/wpt/web-platform-tests/fetch/range/sw.https.window.js b/tests/wpt/web-platform-tests/fetch/range/sw.https.window.js
index aa3d2c478dd..faaee86734e 100644
--- a/tests/wpt/web-platform-tests/fetch/range/sw.https.window.js
+++ b/tests/wpt/web-platform-tests/fetch/range/sw.https.window.js
@@ -4,28 +4,21 @@
// META: script=resources/utils.js
const { REMOTE_HOST } = get_host_info();
-const SCOPE = 'resources/basic.html' + Math.random();
-
-function appendAudio(document, url) {
- const audio = document.createElement('audio');
- audio.muted = true;
- audio.src = url;
- audio.preload = true;
- document.body.appendChild(audio);
-}
+const BASE_SCOPE = 'resources/basic.html?';
async function cleanup() {
for (const iframe of document.querySelectorAll('.test-iframe')) {
iframe.parentNode.removeChild(iframe);
}
- const reg = await navigator.serviceWorker.getRegistration(SCOPE);
- if (reg) await reg.unregister();
+ for (const reg of await navigator.serviceWorker.getRegistrations()) {
+ await reg.unregister();
+ }
}
-async function setupRegistration(t) {
+async function setupRegistration(t, scope) {
await cleanup();
- const reg = await navigator.serviceWorker.register('resources/range-sw.js', { scope: SCOPE });
+ const reg = await navigator.serviceWorker.register('resources/range-sw.js', { scope });
await wait_for_state(t, reg.installing, 'activated');
return reg;
}
@@ -35,14 +28,15 @@ function awaitMessage(obj, id) {
obj.addEventListener('message', function listener(event) {
if (event.data.id !== id) return;
obj.removeEventListener('message', listener);
- resolve();
+ resolve(event.data);
});
});
}
promise_test(async t => {
- const reg = await setupRegistration(t);
- const iframe = await with_iframe(SCOPE);
+ const scope = BASE_SCOPE + Math.random();
+ const reg = await setupRegistration(t, scope);
+ const iframe = await with_iframe(scope);
const w = iframe.contentWindow;
// Trigger a cross-origin range request using media
@@ -55,8 +49,9 @@ promise_test(async t => {
}, `Defer range header filter tests to service worker`);
promise_test(async t => {
- const reg = await setupRegistration(t);
- const iframe = await with_iframe(SCOPE);
+ const scope = BASE_SCOPE + Math.random();
+ const reg = await setupRegistration(t, scope);
+ const iframe = await with_iframe(scope);
const w = iframe.contentWindow;
// Trigger a cross-origin range request using media
@@ -71,8 +66,9 @@ promise_test(async t => {
}, `Defer range header passthrough tests to service worker`);
promise_test(async t => {
- await setupRegistration(t);
- const iframe = await with_iframe(SCOPE);
+ const scope = BASE_SCOPE + Math.random();
+ await setupRegistration(t, scope);
+ const iframe = await with_iframe(scope);
const w = iframe.contentWindow;
const id = Math.random() + '';
const storedRangeResponse = awaitMessage(w.navigator.serviceWorker, id);
@@ -102,8 +98,9 @@ promise_test(async t => {
}, `Ranged response not allowed following no-cors ranged request`);
promise_test(async t => {
- await setupRegistration(t);
- const iframe = await with_iframe(SCOPE);
+ const scope = BASE_SCOPE + Math.random();
+ await setupRegistration(t, scope);
+ const iframe = await with_iframe(scope);
const w = iframe.contentWindow;
const id = Math.random() + '';
const storedRangeResponse = awaitMessage(w.navigator.serviceWorker, id);
@@ -126,3 +123,29 @@ promise_test(async t => {
assert_true(w.scriptExecuted, `Partial response should be executed`);
}, `Non-opaque ranged response executed`);
+
+promise_test(async t => {
+ const scope = BASE_SCOPE + Math.random();
+ await setupRegistration(t, scope);
+ const iframe = await with_iframe(scope);
+ const w = iframe.contentWindow;
+ const fetchId = Math.random() + '';
+ const fetchBroadcast = awaitMessage(w.navigator.serviceWorker, fetchId);
+ const audioId = Math.random() + '';
+ const audioBroadcast = awaitMessage(w.navigator.serviceWorker, audioId);
+
+ const url = new URL('long-wav.py', w.location);
+ url.searchParams.set('action', 'broadcast-accept-encoding');
+ url.searchParams.set('id', fetchId);
+
+ await w.fetch(url, {
+ headers: { Range: 'bytes=0-10' }
+ });
+
+ assert_equals((await fetchBroadcast).acceptEncoding, null, "Accept-Encoding should not be set for fetch");
+
+ url.searchParams.set('id', audioId);
+ appendAudio(w.document, url);
+
+ assert_equals((await audioBroadcast).acceptEncoding, null, "Accept-Encoding should not be set for media");
+}, `Accept-Encoding should not appear in a service worker`);
diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/hashchange_event.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/hashchange_event.html
index 287e7a6ef1d..b7111255f8b 100644
--- a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/hashchange_event.html
+++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/hashchange_event.html
@@ -18,11 +18,11 @@ window.onload = t.step_func(function () {
location.hash = 'foo';
window.onhashchange = t.step_func(function (e) {
- assert_true(e.isTrusted);
- assert_equals(e.target, window);
- assert_equals(e.type, "hashchange");
- assert_true(e instanceof HashChangeEvent);
- assert_true(e.bubbles, "bubble");
+ assert_true(e.isTrusted, "isTrusted");
+ assert_equals(e.target, window, "target");
+ assert_equals(e.type, "hashchange", "type");
+ assert_true(e instanceof HashChangeEvent, "is HashChangeEvent");
+ assert_false(e.bubbles, "bubbles");
assert_false(e.cancelable, "cancelable");
oldURLs.push(e.oldURL);
newURLs.push(e.newURL);
diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/popstate_event.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/popstate_event.html
index 7630b991843..a41fabf9686 100644
--- a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/popstate_event.html
+++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/popstate_event.html
@@ -15,6 +15,13 @@ window.onload = t.step_func(function () {
history.back();
window.onpopstate = t.step_func(function (e) {
+ assert_true(e.isTrusted, "isTrusted");
+ assert_equals(e.target, window, "target");
+ assert_equals(e.type, "popstate", "type");
+ assert_true(e instanceof PopStateEvent, "is PopStateEvent");
+ assert_false(e.bubbles, "bubbles");
+ assert_false(e.cancelable, "cancelable");
+
states.push(e.state);
if (states.length === 2) {
diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html
new file mode 100644
index 00000000000..0c11b587eb1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<title>beforeunload and unload events fire after window.close() in script-closeable browsing context</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="log"></div>
+<script>
+beforeunload_fired = false;
+var t = async_test();
+
+onload = t.step_func(function() {
+ window.close();
+});
+
+onbeforeunload = t.step_func(function() {
+ beforeunload_fired = true;
+});
+
+onunload = t.step_func(function() {
+ assert_true(beforeunload_fired);
+ t.done()
+});
+</script>
diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable-1.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable-1.html
new file mode 100644
index 00000000000..3a557ce34ea
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable-1.html
@@ -0,0 +1,10 @@
+<!doctype html>
+script-uncloseable-1
+<script>
+onbeforeunload = function() {
+ parent.beforeunload_fired = true;
+};
+onunload = function() {
+ parent.unload_fired = true;
+};
+</script>
diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable.html
new file mode 100644
index 00000000000..f6a17d740b5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<title>beforeunload and unload events do not fire after window.close() in script-uncloseable browsing context</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="log"></div>
+<script>
+var beforeunload_fired = false;
+var unload_fired = false;
+var t = async_test();
+
+onload = t.step_func(function() {
+ var iframe = document.getElementsByTagName("iframe")[0]
+ iframe.onload = t.step_func(function() {
+ iframe.contentWindow.close()
+ t.step_timeout(function() {
+ assert_false(beforeunload_fired);
+ assert_false(unload_fired);
+ t.done();
+ }, 1000);
+ });
+ iframe.src = "prompt-and-unload-script-uncloseable-1.html";
+});
+</script>
+<iframe></iframe>
diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004-1.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004-1.html
new file mode 100644
index 00000000000..a3ca82f520a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004-1.html
@@ -0,0 +1,28 @@
+<!doctype html>
+004-1
+<script>
+var handleBeforeUnload = function() {
+ parent.beforeunload_fired = true;
+ removeListener();
+ setTimeout(function() {
+ parent.timeout_fired = true;
+ }, 1000);
+}
+
+var removeListener = function() {
+ assert_true(window.removeEventListener('beforeunload', handleBeforeUnload, false));
+}
+
+window.addEventListener('beforeunload', handleBeforeUnload, false);
+
+onload = function() {
+ if (!parent.loaded) {
+ parent.loaded = true;
+ location="004-2.html?" + Math.random();
+ }
+}
+</script>
+// child frame with no onbeforeunload listener. Should leave the parent as unsalvageable.
+// Adding the iframe prevents potential implementation bugs where the the recursive steps of #prompt-to-unload-a-document
+// would overwrite the salvageable state of the parent.
+<iframe></iframe>
diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004-2.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004-2.html
new file mode 100644
index 00000000000..1a605b1b3d5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004-2.html
@@ -0,0 +1,5 @@
+<!doctype html>
+004-2
+<script>
+onload = function() {setTimeout(parent.t.step_func(function() {parent.start_test(); history.go(-1)}), 100)}
+</script>
diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004.html
new file mode 100644
index 00000000000..7076a4dd18e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004.html
@@ -0,0 +1,29 @@
+<!doctype html>
+<title>salvagable state of document after setting beforeunload listener</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="log"></div>
+<script>
+var t = async_test();
+
+var loaded = false;
+var beforeunload_fired = false;
+var timeout_fired = false;
+
+function start_test() {
+ step_timeout(
+ t.step_func(function() {
+ assert_true(beforeunload_fired);
+ assert_false(timeout_fired);
+ t.done()
+ }), 1000);
+}
+
+onload = function() {
+ var iframe = document.getElementsByTagName("iframe")[0]
+ onload = null;
+ iframe.src="004-1.html?" + Math.random();
+};
+
+</script>
+<iframe></iframe>
diff --git a/tests/wpt/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html b/tests/wpt/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html
index f9489c3be32..7d1d430c0de 100644
--- a/tests/wpt/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html
+++ b/tests/wpt/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html
@@ -1,6 +1,12 @@
<!doctype html>
<meta charset=utf-8>
<title>window.open() with "noopener" tests</title>
+
+<meta name="variant" content="?indexed">
+<meta name="variant" content="?_self">
+<meta name="variant" content="?_parent">
+<meta name="variant" content="?_top">
+
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script>
@@ -28,7 +34,6 @@ var testData = [
shouldReuse: false },
];
-var tests = [];
/**
* Loop over our testData array and kick off an async test for each entry. Each
* async test opens a window using window.open() with some per-test unique name,
@@ -39,56 +44,59 @@ var tests = [];
* cases and non-null in the cases when the existing window gets reused) and so
* forth.
*/
-for (var i = 0; i < testData.length; ++i) {
- var test = testData[i];
- var t = async_test(test.testDescription);
- tests.push(t);
- t.secondWindowFeatureString = test.secondWindowFeatureString;
- t.windowName = "someuniquename" + i;
+function indexedTests() {
+ var tests = [];
+ for(var i = 0; i < testData.length; ++i) {
+ var test = testData[i];
+ var t = async_test(test.testDescription);
+ tests.push(t);
+ t.secondWindowFeatureString = test.secondWindowFeatureString;
+ t.windowName = "someuniquename" + i;
- if (test.shouldReuse) {
- t.step(function() {
- var windowName = this.windowName;
+ if (test.shouldReuse) {
+ t.step(function() {
+ var windowName = this.windowName;
- var w1 = window.open("", windowName);
- this.add_cleanup(function() { w1.close(); });
+ var w1 = window.open("", windowName);
+ this.add_cleanup(function() { w1.close(); });
- assert_equals(w1.opener, window);
+ assert_equals(w1.opener, window);
- var w2 = window.open("", windowName, this.secondWindowFeatureString);
- assert_equals(w2, w1);
- assert_equals(w2.opener, w1.opener);
- assert_equals(w2.opener, window);
- this.done();
- });
- } else {
- t.step(function() {
- var w1;
- this.add_cleanup(function() {
- w1.close();
- channel.postMessage(null);
+ var w2 = window.open("", windowName, this.secondWindowFeatureString);
+ assert_equals(w2, w1);
+ assert_equals(w2.opener, w1.opener);
+ assert_equals(w2.opener, window);
+ this.done();
});
+ } else {
+ t.step(function() {
+ var w1;
+ this.add_cleanup(function() {
+ w1.close();
+ channel.postMessage(null);
+ });
- var windowName = this.windowName;
- var channel = new BroadcastChannel(windowName);
+ var windowName = this.windowName;
+ var channel = new BroadcastChannel(windowName);
- channel.onmessage = this.step_func_done(function(e) {
- var data = e.data;
- assert_equals(data.name, windowName, "Should have the right name");
- assert_equals(data.haveOpener, false, "Should not have opener");
- assert_equals(w1.opener, window);
- assert_equals(w1.location.href, "about:blank");
- });
+ channel.onmessage = this.step_func_done(function(e) {
+ var data = e.data;
+ assert_equals(data.name, windowName, "Should have the right name");
+ assert_equals(data.haveOpener, false, "Should not have opener");
+ assert_equals(w1.opener, window);
+ assert_equals(w1.location.href, "about:blank");
+ });
- w1 = window.open("", windowName);
- assert_equals(w1.opener, window);
+ w1 = window.open("", windowName);
+ assert_equals(w1.opener, window);
- var w2 = window.open("support/noopener-target.html?" + windowName,
- windowName, this.secondWindowFeatureString);
- assert_equals(w2, null);
+ var w2 = window.open("support/noopener-target.html?" + windowName,
+ windowName, this.secondWindowFeatureString);
+ assert_equals(w2, null);
- assert_equals(w1.opener, window);
- });
+ assert_equals(w1.opener, window);
+ });
+ }
}
}
@@ -96,13 +104,27 @@ for (var i = 0; i < testData.length; ++i) {
* Loop over the special targets that ignore noopener and check that doing a
* window.open() with those targets correctly reuses the existing window.
*/
-for (var target of ["_self", "_parent", "_top"]) {
- var t = async_test("noopener window.open targeting " + target);
- tests.push(t);
- t.openedWindow = window.open(`javascript:var w2 = window.open("", "${target}", "noopener"); this.checkValues(w2); this.close(); void(0);`);
- assert_equals(t.openedWindow.opener, window);
- t.openedWindow.checkValues = t.step_func_done(function(win) {
- assert_equals(win, this.openedWindow);
- });
+function specialTargetTest(target) {
+ if (["_self", "_parent", "_top"].includes(target)) {
+ var t = async_test("noopener window.open targeting " + target);
+ t.openedWindow = window.open(`javascript:var w2 = window.open("", "${target}", "noopener"); this.checkValues(w2); this.close(); void(0);`);
+ assert_equals(t.openedWindow.opener, window);
+ t.openedWindow.checkValues = t.step_func_done(function(win) {
+ assert_equals(win, this.openedWindow);
+ });
+ } else {
+ throw 'testError: special target must be one of: _self, _parent, _top'
+ }
+}
+
+/**
+ * Parse the Query string, check if it matches keyword 'indexed' to run the indexed tests,
+ * otherwise test it as a special target
+ */
+var variant = window.location.href.split("?")[1]
+if(variant == "indexed") {
+ indexedTests();
+} else {
+ specialTargetTest(variant);
}
</script>
diff --git a/tests/wpt/web-platform-tests/input-device-capabilities/OWNERS b/tests/wpt/web-platform-tests/input-device-capabilities/OWNERS
new file mode 100644
index 00000000000..097ba63e510
--- /dev/null
+++ b/tests/wpt/web-platform-tests/input-device-capabilities/OWNERS
@@ -0,0 +1,2 @@
+@SummerLW
+@NavidZ
diff --git a/tests/wpt/web-platform-tests/input-device-capabilities/interfaces.html b/tests/wpt/web-platform-tests/input-device-capabilities/interfaces.html
new file mode 100644
index 00000000000..178ce5aa892
--- /dev/null
+++ b/tests/wpt/web-platform-tests/input-device-capabilities/interfaces.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<title>Input Device Capabilities IDL tests</title>
+<link rel="help" href="https://wicg.github.io/InputDeviceCapabilities/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/WebIDLParser.js"></script>
+<script src="/resources/idlharness.js"></script>
+<script>
+ "use strict";
+
+ promise_test(async () => {
+ const idl_array = new IdlArray();
+ const idl = await (await fetch("/interfaces/InputDeviceCapabilities.idl")).text();
+ const uievents = await (await fetch("/interfaces/uievents.idl")).text();
+ const dom = await (await fetch("/interfaces/dom.idl")).text();
+ idl_array.add_idls(idl);
+ idl_array.add_dependency_idls(uievents);
+ idl_array.add_dependency_idls(dom);
+ idl_array.add_objects({
+ InputDeviceCapabilities: ["new InputDeviceCapabilities"],
+ });
+ idl_array.test();
+ }, "Test driver");
+</script>
diff --git a/tests/wpt/web-platform-tests/interfaces/InputDeviceCapabilities.idl b/tests/wpt/web-platform-tests/interfaces/InputDeviceCapabilities.idl
new file mode 100644
index 00000000000..6be9be7aa60
--- /dev/null
+++ b/tests/wpt/web-platform-tests/interfaces/InputDeviceCapabilities.idl
@@ -0,0 +1,22 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the
+// "Input Device Capabilities" spec.
+// See: https://wicg.github.io/InputDeviceCapabilities/
+
+[Constructor(optional InputDeviceCapabilitiesInit deviceInitDict)]
+interface InputDeviceCapabilities {
+ readonly attribute boolean firesTouchEvents;
+ readonly attribute boolean pointerMovementScrolls;
+};
+
+dictionary InputDeviceCapabilitiesInit {
+ boolean firesTouchEvents = false;
+ boolean pointerMovementScrolls = false;
+};
+partial interface UIEvent {
+ readonly attribute InputDeviceCapabilities? sourceCapabilities;
+};
+
+partial dictionary UIEventInit {
+ InputDeviceCapabilities? sourceCapabilities = null;
+};
diff --git a/tests/wpt/web-platform-tests/interfaces/ResizeObserver.idl b/tests/wpt/web-platform-tests/interfaces/ResizeObserver.idl
new file mode 100644
index 00000000000..a75a11c965c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/interfaces/ResizeObserver.idl
@@ -0,0 +1,30 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the
+// "Resize Observer 1" spec.
+// See: https://wicg.github.io/ResizeObserver/
+
+[Constructor(ResizeObserverCallback callback),
+ Exposed=Window]
+interface ResizeObserver {
+ void observe(Element target);
+ void unobserve(Element target);
+ void disconnect();
+};
+
+callback ResizeObserverCallback = void (sequence<ResizeObserverEntry> entries, ResizeObserver observer);
+
+[Constructor(Element target)
+]
+interface ResizeObserverEntry {
+ readonly attribute Element target;
+ readonly attribute DOMRectReadOnly contentRect;
+};
+
+[Constructor(Element target)
+]
+interface ResizeObservation {
+ readonly attribute Element target;
+ readonly attribute float broadcastWidth;
+ readonly attribute float broadcastHeight;
+ boolean isActive();
+};
diff --git a/tests/wpt/web-platform-tests/interfaces/css-fonts.idl b/tests/wpt/web-platform-tests/interfaces/css-fonts.idl
new file mode 100644
index 00000000000..7cb29f28432
--- /dev/null
+++ b/tests/wpt/web-platform-tests/interfaces/css-fonts.idl
@@ -0,0 +1,35 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the
+// "CSS Fonts Module Level 4" spec.
+// See: https://drafts.csswg.org/css-fonts-4/
+
+[Exposed=Window]
+interface CSSFontFaceRule : CSSRule {
+ readonly attribute CSSStyleDeclaration style;
+};
+
+partial interface CSSRule { const unsigned short FONT_FEATURE_VALUES_RULE = 14;
+};
+interface CSSFontFeatureValuesRule : CSSRule { attribute CSSOMString fontFamily;
+ readonly attribute CSSFontFeatureValuesMap annotation;
+ readonly attribute CSSFontFeatureValuesMap ornaments;
+ readonly attribute CSSFontFeatureValuesMap stylistic;
+ readonly attribute CSSFontFeatureValuesMap swash;
+ readonly attribute CSSFontFeatureValuesMap characterVariant;
+ readonly attribute CSSFontFeatureValuesMap styleset;
+};
+
+interface CSSFontFeatureValuesMap {
+ maplike<CSSOMString, sequence<unsigned long>>;
+ void set(CSSOMString featureValueName,
+ (unsigned long or sequence<unsigned long>) values);
+};
+partial interface CSSRule {
+ const unsigned short FONT_PALETTE_VALUES_RULE = 15;
+};
+
+interface CSSFontPaletteValuesRule : CSSRule {
+ maplike<unsigned long, (CSSOMString or CSSOMRGBColor)>;
+ attribute CSSOMString fontFamily;
+ attribute CSSOMString basePalette;
+};
diff --git a/tests/wpt/web-platform-tests/interfaces/css-masking.idl b/tests/wpt/web-platform-tests/interfaces/css-masking.idl
new file mode 100644
index 00000000000..726e0a0454c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/interfaces/css-masking.idl
@@ -0,0 +1,18 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the
+// "CSS Masking Module Level 1" spec.
+// See: https://drafts.fxtf.org/css-masking-1/
+
+interface SVGClipPathElement : SVGElement {
+ readonly attribute SVGAnimatedEnumeration clipPathUnits;
+ readonly attribute SVGAnimatedTransformList transform;
+};
+
+interface SVGMaskElement : SVGElement {
+ readonly attribute SVGAnimatedEnumeration maskUnits;
+ readonly attribute SVGAnimatedEnumeration maskContentUnits;
+ readonly attribute SVGAnimatedLength x;
+ readonly attribute SVGAnimatedLength y;
+ readonly attribute SVGAnimatedLength width;
+ readonly attribute SVGAnimatedLength height;
+};
diff --git a/tests/wpt/web-platform-tests/interfaces/dom.idl b/tests/wpt/web-platform-tests/interfaces/dom.idl
index 45cae33f896..3779e3d6141 100644
--- a/tests/wpt/web-platform-tests/interfaces/dom.idl
+++ b/tests/wpt/web-platform-tests/interfaces/dom.idl
@@ -35,6 +35,11 @@ dictionary EventInit {
};
+partial interface Window {
+ [Replaceable] readonly attribute any event;
+};
+
+
[Constructor(DOMString type, optional CustomEventInit eventInitDict),
Exposed=(Window,Worker)]
interface CustomEvent : Event {
diff --git a/tests/wpt/web-platform-tests/interfaces/performance-timeline.idl b/tests/wpt/web-platform-tests/interfaces/performance-timeline.idl
new file mode 100644
index 00000000000..857be8c6dac
--- /dev/null
+++ b/tests/wpt/web-platform-tests/interfaces/performance-timeline.idl
@@ -0,0 +1,40 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the
+// "Performance Timeline Level 2" spec.
+// See: https://w3c.github.io/performance-timeline/
+
+partial interface Performance {
+ PerformanceEntryList getEntries();
+ PerformanceEntryList getEntriesByType(DOMString type);
+ PerformanceEntryList getEntriesByName(DOMString name,
+ optional DOMString type);
+};
+typedef sequence<PerformanceEntry> PerformanceEntryList;
+[Exposed=(Window,Worker)]
+interface PerformanceEntry {
+ readonly attribute DOMString name;
+ readonly attribute DOMString entryType;
+ readonly attribute DOMHighResTimeStamp startTime;
+ readonly attribute DOMHighResTimeStamp duration;
+ [Default] object toJSON();
+};
+callback PerformanceObserverCallback = void (PerformanceObserverEntryList entries,
+ PerformanceObserver observer);
+[Constructor(PerformanceObserverCallback callback),
+ Exposed=(Window,Worker)]
+interface PerformanceObserver {
+ void observe(PerformanceObserverInit options);
+ void disconnect();
+ PerformanceEntryList takeRecords();
+};
+dictionary PerformanceObserverInit {
+ required sequence<DOMString> entryTypes;
+ boolean buffered = false;
+};
+[Exposed=(Window,Worker)]
+interface PerformanceObserverEntryList {
+ PerformanceEntryList getEntries();
+ PerformanceEntryList getEntriesByType(DOMString type);
+ PerformanceEntryList getEntriesByName(DOMString name,
+ optional DOMString type);
+};
diff --git a/tests/wpt/web-platform-tests/interfaces/permissions.idl b/tests/wpt/web-platform-tests/interfaces/permissions.idl
new file mode 100644
index 00000000000..9b088b27d42
--- /dev/null
+++ b/tests/wpt/web-platform-tests/interfaces/permissions.idl
@@ -0,0 +1,53 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the
+// "Permissions" spec.
+// See: https://w3c.github.io/permissions/
+
+dictionary PermissionDescriptor {
+ required PermissionName name;
+};
+
+enum PermissionState {
+ "granted",
+ "denied",
+ "prompt",
+};
+
+[Exposed=(Window,Worker)]
+interface PermissionStatus : EventTarget {
+ readonly attribute PermissionState state;
+ attribute EventHandler onchange;
+};
+
+[Exposed=(Window)]
+partial interface Navigator {
+ readonly attribute Permissions permissions;
+};
+
+[Exposed=(Worker)]
+partial interface WorkerNavigator {
+ readonly attribute Permissions permissions;
+};
+
+[Exposed=(Window,Worker)]
+interface Permissions {
+ Promise<PermissionStatus> query(object permissionDesc);
+};
+
+dictionary PushPermissionDescriptor : PermissionDescriptor {
+ boolean userVisibleOnly = false;
+};
+
+dictionary MidiPermissionDescriptor : PermissionDescriptor {
+ boolean sysex = false;
+};
+
+dictionary DevicePermissionDescriptor : PermissionDescriptor {
+ DOMString deviceId;
+};
+
+dictionary PermissionSetParameters {
+ required PermissionDescriptor descriptor;
+ required PermissionState state;
+ boolean oneRealm = false;
+};
diff --git a/tests/wpt/web-platform-tests/interfaces/user-timing.idl b/tests/wpt/web-platform-tests/interfaces/user-timing.idl
new file mode 100644
index 00000000000..576ee5357a9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/interfaces/user-timing.idl
@@ -0,0 +1,19 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content of this file was automatically extracted from the
+// "User Timing Level 2" spec.
+// See: https://w3c.github.io/user-timing/
+
+partial interface Performance {
+ void mark(DOMString markName);
+ void clearMarks(optional DOMString markName);
+ void measure(DOMString measureName,
+ optional DOMString startMark,
+ optional DOMString endMark);
+ void clearMeasures(optional DOMString measureName);
+};
+[Exposed=(Window,Worker)]
+interface PerformanceMark : PerformanceEntry {
+};
+[Exposed=(Window,Worker)]
+interface PerformanceMeasure : PerformanceEntry {
+};
diff --git a/tests/wpt/web-platform-tests/lifecycle/freeze.html b/tests/wpt/web-platform-tests/lifecycle/freeze.html
index 66bbbffd1fa..88e32c9d3b0 100644
--- a/tests/wpt/web-platform-tests/lifecycle/freeze.html
+++ b/tests/wpt/web-platform-tests/lifecycle/freeze.html
@@ -6,7 +6,8 @@
<script>
var test = async_test('Test freeze callback.');
-var childWindow = window.open('resources/window.html', 'Child Window');
+window.open('resources/window.html', 'Child Window');
+
var total_steps = 0;
const StepStatus = {
diff --git a/tests/wpt/web-platform-tests/lifecycle/resources/window.html b/tests/wpt/web-platform-tests/lifecycle/resources/window.html
index 1e52587c526..69fdbc09866 100644
--- a/tests/wpt/web-platform-tests/lifecycle/resources/window.html
+++ b/tests/wpt/web-platform-tests/lifecycle/resources/window.html
@@ -45,6 +45,15 @@ function testXHR(async) {
};
}
+function testSendBeacon() {
+ var name = 'testSendBeacon';
+ window.opener.add_step(name);
+ if (navigator.sendBeacon("foo.txt", "data=1"))
+ window.opener.step_success(name);
+ else
+ window.opener.step_fail(name);
+}
+
window.document.addEventListener("freeze", () => {
// Testing fetch, only fetch keepalive should succeed.
testFetch(true /* keepalive */);
@@ -52,11 +61,12 @@ window.document.addEventListener("freeze", () => {
// Testing XHR, both sync and async should fail.
testXHR(true /* async */);
testXHR(false /* sync */);
+ // Testing navigator.sendBeacon, which should be allowed.
+ testSendBeacon();
window.opener.step_success(freezingStepName);
});
onload = function() {
- window.opener.focus();
window.opener.add_step(freezingStepName);
test_driver.freeze();
};
diff --git a/tests/wpt/web-platform-tests/performance-timeline/idlharness.any.js b/tests/wpt/web-platform-tests/performance-timeline/idlharness.any.js
new file mode 100644
index 00000000000..b15a667b256
--- /dev/null
+++ b/tests/wpt/web-platform-tests/performance-timeline/idlharness.any.js
@@ -0,0 +1,26 @@
+// META: global=window,worker
+// META: script=/resources/WebIDLParser.js
+// META: script=/resources/idlharness.js
+
+// https://w3c.github.io/performance-timeline/
+
+'use strict';
+
+promise_test(async () => {
+ const idl_array = new IdlArray();
+ const idl = await fetch("/interfaces/performance-timeline.idl").then(r => r.text());
+ const dom = await fetch("/interfaces/dom.idl").then(r => r.text());
+ const hrtime = await fetch("/interfaces/hr-time.idl").then(r => r.text());
+
+ // create first mark
+ self.performance.mark("mark");
+
+ idl_array.add_idls(idl);
+ idl_array.add_dependency_idls(hrtime);
+ idl_array.add_dependency_idls(dom);
+ idl_array.add_objects({
+ Performance: ["performance"],
+ PerformanceMark: [self.performance.getEntriesByName("mark")[0]],
+ });
+ idl_array.test();
+}, "Test IDL implementation of performance-timeline API");
diff --git a/tests/wpt/web-platform-tests/performance-timeline/idlharness.html b/tests/wpt/web-platform-tests/performance-timeline/idlharness.html
deleted file mode 100644
index 8cef4fb3fc9..00000000000
--- a/tests/wpt/web-platform-tests/performance-timeline/idlharness.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<title>Performance Timeline IDL tests</title>
-<link rel="author" title="W3C" href="http://www.w3.org/" />
-<link rel="help" href="http://www.w3.org/TR/performance-timeline/#performanceentry"/>
-<link rel="help" href="http://www.w3.org/TR/performance-timeline/#performance"/>
-<link rel="help" href="http://www.w3.org/TR/performance-timeline/#performanceentrylist"/>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/WebIDLParser.js"></script>
-<script src="/resources/idlharness.js"></script>
-</head>
-<body>
-<h1>Performance Timeline IDL tests</h1>
-<div id="log"></div>
-
-<pre id='untested_idl' style='display:none'>
-interface Performance {
-};
-
-typedef double DOMHighResTimeStamp;
-
-[Exposed=(Window,Worker)]
-interface PerformanceMark : PerformanceEntry {
-};
-</pre>
-
-<pre id='idl'>
-[Exposed=(Window,Worker)]
-interface PerformanceEntry {
- readonly attribute DOMString name;
- readonly attribute DOMString entryType;
- readonly attribute DOMHighResTimeStamp startTime;
- readonly attribute DOMHighResTimeStamp duration;
- [Default] object toJSON();
-};
-
-partial interface Performance {
- PerformanceEntryList getEntries();
- PerformanceEntryList getEntriesByType(DOMString type);
- PerformanceEntryList getEntriesByName(DOMString name,
- optional DOMString type);
-};
-
-typedef sequence &lt;PerformanceEntry> PerformanceEntryList;
-
-dictionary PerformanceObserverInit {
- required sequence&lt;DOMString> entryTypes;
- boolean buffered = false;
-};
-
-[Exposed=(Window,Worker)]
-interface PerformanceObserverEntryList {
- PerformanceEntryList getEntries();
- PerformanceEntryList getEntriesByType(DOMString type);
- PerformanceEntryList getEntriesByName(DOMString name,
- optional DOMString type);
-};
-
-callback PerformanceObserverCallback = void (PerformanceObserverEntryList entries,
- PerformanceObserver observer);
-
-[Constructor(PerformanceObserverCallback callback),
- Exposed=(Window,Worker)]
-interface PerformanceObserver {
- void observe(PerformanceObserverInit options);
- void disconnect();
- PerformanceEntryList takeRecords();
-};
-</pre>
-
-<script>
-var idl_array;
-setup(function() {
- idl_array = new IdlArray();
- idl_array.add_untested_idls(document.getElementById("untested_idl").textContent);
- idl_array.add_idls(document.getElementById("idl").textContent);
- // create first mark
- self.performance.mark("mark");
- idl_array.add_objects({
- Performance: ["window.performance"],
- PerformanceMark: [self.performance.getEntriesByName("mark")[0]]
- });
-});
-idl_array.test();
-</script>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/permissions/OWNERS b/tests/wpt/web-platform-tests/permissions/OWNERS
new file mode 100644
index 00000000000..7259a0abd3d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/permissions/OWNERS
@@ -0,0 +1,3 @@
+@jyasskin
+@mounirlamouri
+@marcoscaceres
diff --git a/tests/wpt/web-platform-tests/permissions/interfaces.any.js b/tests/wpt/web-platform-tests/permissions/interfaces.any.js
new file mode 100644
index 00000000000..c20f422bf43
--- /dev/null
+++ b/tests/wpt/web-platform-tests/permissions/interfaces.any.js
@@ -0,0 +1,38 @@
+// META: script=/resources/WebIDLParser.js
+// META: script=/resources/idlharness.js
+
+"use strict";
+
+if (self.importScripts) {
+ importScripts("/resources/testharness.js");
+ importScripts("/resources/WebIDLParser.js", "/resources/idlharness.js");
+}
+
+// https://w3c.github.io/permissions/#idl-index
+
+promise_test(async () => {
+
+ const permissions_idl = await fetch("/interfaces/permissions.idl")
+ .then(response => response.text());
+ const idl_array = new IdlArray();
+
+ idl_array.add_untested_idls('interface Navigator {};');
+ idl_array.add_untested_idls('[Exposed=(Window,Worker)] interface EventTarget {};');
+ idl_array.add_untested_idls('interface EventHandler {};');
+ idl_array.add_untested_idls('interface WorkerNavigator {};');
+ idl_array.add_idls(permissions_idl);
+
+ self.permissionStatus = await navigator.permissions.query({ name: "geolocation" });
+
+ if (self.GLOBAL.isWorker()) {
+ idl_array.add_objects({ WorkerNavigator: ['navigator'] });
+ } else {
+ idl_array.add_objects({ Navigator: ['navigator'] });
+ }
+
+ idl_array.add_objects({
+ Permissions: ['navigator.permissions'],
+ PermissionStatus: ['permissionStatus']
+ });
+ idl_array.test();
+}, "Test IDL implementation of Permissions API");
diff --git a/tests/wpt/web-platform-tests/resize-observer/idlharness.html b/tests/wpt/web-platform-tests/resize-observer/idlharness.html
new file mode 100644
index 00000000000..51ab4fd24e5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resize-observer/idlharness.html
@@ -0,0 +1,20 @@
+<!doctype html>
+<title>ResizeObserver IDL tests</title>
+<link rel="help" href="https://wicg.github.io/ResizeObserver/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/WebIDLParser.js"></script>
+<script src="/resources/idlharness.js"></script>
+<script>
+ "use strict";
+
+ promise_test(async () => {
+ const idl_array = new IdlArray();
+ const idl = await fetch("/interfaces/ResizeObserver.idl").then(r => r.text());
+ idl_array.add_idls(idl);
+ idl_array.add_objects({
+ ResizeObserver: ["new ResizeObserver(entries => {})"],
+ });
+ idl_array.test();
+ }, "Test IDL implementation of ResizeObserver");
+</script>
diff --git a/tests/wpt/web-platform-tests/resources/idlharness.js b/tests/wpt/web-platform-tests/resources/idlharness.js
index d00572492df..484094eb9e4 100644
--- a/tests/wpt/web-platform-tests/resources/idlharness.js
+++ b/tests/wpt/web-platform-tests/resources/idlharness.js
@@ -662,42 +662,48 @@ IdlArray.prototype.is_json_type = function(type)
};
function exposure_set(object, default_set) {
- var exposed = object.extAttrs.filter(function(a) { return a.name == "Exposed" });
- if (exposed.length > 1) {
+ var exposed = object.extAttrs && object.extAttrs.filter(a => a.name === "Exposed");
+ if (exposed && exposed.length > 1) {
throw new IdlHarnessError(
`Multiple 'Exposed' extended attributes on ${object.name}`);
}
- if (exposed.length === 0) {
- return default_set;
+ let result = default_set || ["Window"];
+ if (result && !(result instanceof Set)) {
+ result = new Set(result);
}
-
- var set = exposed[0].rhs.value;
- // Could be a list or a string.
- if (typeof set == "string") {
- set = [ set ];
+ if (exposed && exposed.length) {
+ var set = exposed[0].rhs.value;
+ // Could be a list or a string.
+ if (typeof set == "string") {
+ set = [ set ];
+ }
+ result = new Set(set);
}
- return set;
+ if (result && result.has("Worker")) {
+ result.delete("Worker");
+ result.add("DedicatedWorker");
+ result.add("ServiceWorker");
+ result.add("SharedWorker");
+ }
+ return result;
}
function exposed_in(globals) {
if ('document' in self) {
- return globals.indexOf("Window") >= 0;
+ return globals.has("Window");
}
if ('DedicatedWorkerGlobalScope' in self &&
self instanceof DedicatedWorkerGlobalScope) {
- return globals.indexOf("Worker") >= 0 ||
- globals.indexOf("DedicatedWorker") >= 0;
+ return globals.has("DedicatedWorker");
}
if ('SharedWorkerGlobalScope' in self &&
self instanceof SharedWorkerGlobalScope) {
- return globals.indexOf("Worker") >= 0 ||
- globals.indexOf("SharedWorker") >= 0;
+ return globals.has("SharedWorker");
}
if ('ServiceWorkerGlobalScope' in self &&
self instanceof ServiceWorkerGlobalScope) {
- return globals.indexOf("Worker") >= 0 ||
- globals.indexOf("ServiceWorker") >= 0;
+ return globals.has("ServiceWorker");
}
throw new IdlHarnessError("Unexpected global object");
}
@@ -737,27 +743,7 @@ IdlArray.prototype.test = function()
// First merge in all the partial interfaces and implements statements we
// encountered.
- this.partials.forEach(function(parsed_idl)
- {
- if (!(parsed_idl.name in this.members)
- || !(this.members[parsed_idl.name] instanceof IdlInterface
- || this.members[parsed_idl.name] instanceof IdlDictionary))
- {
- throw new IdlHarnessError(`Partial ${parsed_idl.type} ${parsed_idl.name} with no original ${parsed_idl.type}`);
- }
- if (parsed_idl.extAttrs)
- {
- parsed_idl.extAttrs.forEach(function(extAttr)
- {
- this.members[parsed_idl.name].extAttrs.push(extAttr);
- }.bind(this));
- }
- parsed_idl.members.forEach(function(member)
- {
- this.members[parsed_idl.name].members.push(new IdlInterfaceMember(member));
- }.bind(this));
- }.bind(this));
- this.partials = [];
+ this.collapse_partials();
for (var lhs in this["implements"])
{
@@ -814,7 +800,7 @@ IdlArray.prototype.test = function()
return;
}
- var globals = exposure_set(member, ["Window"]);
+ var globals = exposure_set(member);
member.exposed = exposed_in(globals);
member.exposureSet = globals;
}.bind(this));
@@ -834,6 +820,78 @@ IdlArray.prototype.test = function()
};
//@}
+IdlArray.prototype.collapse_partials = function()
+//@{
+{
+ const testedPartials = new Map();
+ this.partials.forEach(function(parsed_idl)
+ {
+ const originalExists = parsed_idl.name in this.members
+ && (this.members[parsed_idl.name] instanceof IdlInterface
+ || this.members[parsed_idl.name] instanceof IdlDictionary);
+
+ let partialTestName = parsed_idl.name;
+ if (!parsed_idl.untested) {
+ // Ensure unique test name in case of multiple partials.
+ let partialTestCount = 1;
+ if (testedPartials.has(parsed_idl.name)) {
+ partialTestCount += testedPartials.get(parsed_idl.name);
+ partialTestName = `${partialTestName}[${partialTestCount}]`;
+ }
+ testedPartials.set(parsed_idl.name, partialTestCount);
+
+ test(function () {
+ assert_true(originalExists, `Original ${parsed_idl.type} should be defined`);
+ }.bind(this), `Partial ${parsed_idl.type} ${partialTestName}: original ${parsed_idl.type} defined`);
+ }
+ if (!originalExists) {
+ // Not good.. but keep calm and carry on.
+ return;
+ }
+
+ if (parsed_idl.extAttrs)
+ {
+ // Special-case "Exposed". Must be a subset of original interface's exposure.
+ // Exposed on a partial is the equivalent of having the same Exposed on all nested members.
+ // See https://github.com/heycam/webidl/issues/154 for discrepency between Exposed and
+ // other extended attributes on partial interfaces.
+ const exposureAttr = parsed_idl.extAttrs.find(a => a.name === "Exposed");
+ if (exposureAttr) {
+ if (!parsed_idl.untested) {
+ test(function () {
+ const partialExposure = exposure_set(parsed_idl);
+ const memberExposure = exposure_set(this.members[parsed_idl.name]);
+ partialExposure.forEach(name => {
+ if (!memberExposure || !memberExposure.has(name)) {
+ throw new IdlHarnessError(
+ `Partial ${parsed_idl.name} ${parsed_idl.type} is exposed to '${name}', the original ${parsed_idl.type} is not.`);
+ }
+ });
+ }.bind(this), `Partial ${parsed_idl.type} ${partialTestName}: valid exposure set`);
+ }
+ parsed_idl.members.forEach(function (member) {
+ member.extAttrs.push(exposureAttr);
+ }.bind(this));
+ }
+
+ parsed_idl.extAttrs.forEach(function(extAttr)
+ {
+ // "Exposed" already handled above.
+ if (extAttr.name === "Exposed") {
+ return;
+ }
+ this.members[parsed_idl.name].extAttrs.push(extAttr);
+ }.bind(this));
+ }
+ parsed_idl.members.forEach(function(member)
+ {
+ this.members[parsed_idl.name].members.push(new IdlInterfaceMember(member));
+ }.bind(this));
+ }.bind(this));
+ this.partials = [];
+}
+
+//@}
IdlArray.prototype.assert_type_is = function(value, type)
//@{
{
@@ -1529,7 +1587,7 @@ IdlInterface.prototype.test_self = function()
if (this.is_callback()) {
throw new IdlHarnessError("Invalid IDL: LegacyWindowAlias extended attribute on non-interface " + this.name);
}
- if (this.exposureSet.indexOf("Window") === -1) {
+ if (!this.exposureSet.has("Window")) {
throw new IdlHarnessError("Invalid IDL: LegacyWindowAlias extended attribute on " + this.name + " which is not exposed in Window");
}
// TODO: when testing of [NoInterfaceObject] interfaces is supported,
diff --git a/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlDictionary/test_partial_interface_of.html b/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlDictionary/test_partial_interface_of.html
new file mode 100644
index 00000000000..7bb435708f3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlDictionary/test_partial_interface_of.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML>
+<html>
+
+<head>
+ <meta charset="utf-8">
+ <title>idlharness: Partial dictionary</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/resources/WebIDLParser.js"></script>
+ <script src="/resources/idlharness.js"></script>
+</head>
+
+<body>
+ <p>Verify the series of sub-tests that are executed for "partial" dictionary objects.</p>
+ <script>
+ "use strict";
+
+ // No original existence
+ (() => {
+ const idlArray = new IdlArray();
+ idlArray.add_idls('partial dictionary A {};');
+ idlArray.test();
+ })();
+
+ // Multiple partials existence
+ (() => {
+ const idlArray = new IdlArray();
+ idlArray.add_untested_idls('partial dictionary B {};');
+ idlArray.add_idls('partial dictionary B {};');
+ idlArray.add_idls('partial dictionary B {};');
+ idlArray.add_idls('partial dictionary B {};');
+ idlArray.add_idls('dictionary B {};');
+ idlArray.test();
+ })();
+ </script>
+ <script type="text/json" id="expected">
+{
+ "summarized_status": {
+ "status_string": "OK",
+ "message": null
+ },
+ "summarized_tests": [
+ {
+ "name": "Partial dictionary A: original dictionary defined",
+ "status_string": "FAIL",
+ "properties": {},
+ "message": "assert_true: Original dictionary should be defined expected true got false"
+ },
+ {
+ "name": "Partial dictionary B: original dictionary defined",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "Partial dictionary B[2]: original dictionary defined",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "Partial dictionary B[3]: original dictionary defined",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ }
+ ],
+ "type": "complete"
+}
+</script>
+</body>
+
+</html>
diff --git a/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlInterface/test_partial_interface_of.html b/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlInterface/test_partial_interface_of.html
new file mode 100644
index 00000000000..75019c60da6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlInterface/test_partial_interface_of.html
@@ -0,0 +1,110 @@
+<!DOCTYPE HTML>
+<html>
+
+<head>
+ <meta charset="utf-8">
+ <title>idlharness: Partail interface</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/resources/WebIDLParser.js"></script>
+ <script src="/resources/idlharness.js"></script>
+</head>
+
+<body>
+ <p>Verify the series of sub-tests that are executed for "partial" interface objects.</p>
+ <script>
+ "use strict";
+
+ // No original existence
+ (() => {
+ const idlArray = new IdlArray();
+ idlArray.add_idls('partial interface A {};');
+ idlArray.test();
+ })();
+
+ // Valid exposure (Note: Worker -> {Shared,Dedicated,Service}Worker)
+ (() => {
+ const idlArray = new IdlArray();
+ idlArray.add_untested_idls(`
+ [Exposed=(Worker)]
+ interface B {};
+
+ [Exposed=(DedicatedWorker, ServiceWorker, SharedWorker)]
+ interface C {};`);
+ idlArray.add_idls(`
+ [Exposed=(DedicatedWorker, ServiceWorker, SharedWorker)]
+ partial interface B {};
+
+ [Exposed=(Worker)]
+ partial interface C {};`);
+ idlArray.collapse_partials();
+ })();
+
+ // Invalid exposure
+ (() => {
+ const idlArray = new IdlArray();
+ idlArray.add_untested_idls(`
+ [Exposed=(Window, ServiceWorker)]
+ interface D {};`);
+ idlArray.add_idls(`
+ [Exposed=(DedicatedWorker)]
+ partial interface D {};`);
+ idlArray.collapse_partials();
+ })();
+ </script>
+ <script type="text/json" id="expected">
+{
+ "summarized_status": {
+ "status_string": "OK",
+ "message": null
+ },
+ "summarized_tests": [
+ {
+ "name": "Partial interface A: original interface defined",
+ "status_string": "FAIL",
+ "properties": {},
+ "message": "assert_true: Original interface should be defined expected true got false"
+ },
+ {
+ "name": "Partial interface B: original interface defined",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "Partial interface B: valid exposure set",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "Partial interface C: original interface defined",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "Partial interface C: valid exposure set",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "Partial interface D: original interface defined",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "Partial interface D: valid exposure set",
+ "status_string": "FAIL",
+ "properties": {},
+ "message": "Partial D interface is exposed to 'DedicatedWorker', the original interface is not."
+ }
+ ],
+ "type": "complete"
+}
+</script>
+</body>
+
+</html>
diff --git a/tests/wpt/web-platform-tests/resources/test/tests/unit/IdlDictionary/test_partial_dictionary.html b/tests/wpt/web-platform-tests/resources/test/tests/unit/IdlDictionary/test_partial_dictionary.html
index cfcea545ffa..d6137f6895f 100644
--- a/tests/wpt/web-platform-tests/resources/test/tests/unit/IdlDictionary/test_partial_dictionary.html
+++ b/tests/wpt/web-platform-tests/resources/test/tests/unit/IdlDictionary/test_partial_dictionary.html
@@ -33,12 +33,6 @@ test(() => {
let members = idlArray.members["A"].members.map(m => m.name);
assert_array_equals(members, ["B", "C"], 'A should contain B, C');
}, 'Partial dictionaries');
-
-test(() => {
- let idlArray = new IdlArray();
- idlArray.add_idls('partial dictionary D {};');
- idlArray.assert_throws('Partial dictionary D with no original dictionary', i => i.test());
-}, 'Partial-only dictionary definition')
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/resources/test/tests/unit/basic.html b/tests/wpt/web-platform-tests/resources/test/tests/unit/basic.html
index 439c203dc95..7998a2ab8b7 100644
--- a/tests/wpt/web-platform-tests/resources/test/tests/unit/basic.html
+++ b/tests/wpt/web-platform-tests/resources/test/tests/unit/basic.html
@@ -29,28 +29,15 @@
test(function() {
assert_equals(typeof WebIDL2.parse("interface Foo {};"), "object");
}, 'WebIDL2 parse method should produce an AST for correct WebIDL');
- for (let type of ['dictionary', 'interface']) {
- test(function() {
+ test(function () {
+ try {
let i = new IdlArray();
- i.add_untested_idls(`partial ${type} A {};`);
- i.assert_throws(new IdlHarnessError(`Partial ${type} A with no original ${type}`), i => i.test());
- }, `assert_throws should handle ${type} IdlHarnessError`);
- test(function() {
- let i = new IdlArray();
- i.add_untested_idls(`partial ${type} A {};`);
- i.assert_throws(`Partial ${type} A with no original ${type}`, i => i.test());
- }, `assert_throws should handle ${type} IdlHarnessError from message`);
- test(function () {
- try {
- let i = new IdlArray();
- i.add_untested_idls(`${type} A {};`);
- i.assert_throws(`Partial ${type} A with no original ${type}`, i => i.test());
- } catch (e) {
- assert_true(e instanceof IdlHarnessError);
- }
- }, `assert_throws should throw if no ${type} IdlHarnessError thrown`);
- }
+ i.add_untested_idls(`interface C {};`);
+ i.assert_throws('Anything', i => i.test());
+ } catch (e) {
+ assert_true(e instanceof IdlHarnessError);
+ }
+ }, `assert_throws should throw if no IdlHarnessError thrown`);
</script>
</body>
</html>
-
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js
index 03b778bd845..b763b8145e5 100644
--- a/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js
@@ -1 +1 @@
-testServerTiming(document.currentScript, [{"name":"metric"}])
+testServerTiming(document.currentScript, [{"name":"metric","dur":123.4}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js
index e6946c38dbb..1bc4d7fea66 100644
--- a/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js
@@ -1 +1 @@
-testServerTiming(document.currentScript, [{"name":"metric1"}])
+testServerTiming(document.currentScript, [{"name":"metric1"},{"name":"metric2"}])
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event.https.html
index 8ecf8e6cbe8..ecb1c142231 100644
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event.https.html
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event.https.html
@@ -10,15 +10,21 @@ function wait(ms) {
return new Promise(resolve => step_timeout(resolve, ms));
}
-async_test(function(t) {
- const scope = 'resources/simple.html?headers';
- service_worker_unregister_and_register(t, worker, scope)
- .then(function(reg) {
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(function() { return with_iframe(scope); })
+promise_test(async t => {
+ const scope = 'resources/';
+ const registration =
+ await service_worker_unregister_and_register(t, worker, scope);
+ await wait_for_state(t, registration.installing, 'activated');
+ promise_test(t => {
+ return registration.unregister();
+ }, 'restore global state');
+ }, 'global setup');
+
+promise_test(t => {
+ const page_url = 'resources/simple.html?headers';
+ return with_iframe(page_url)
.then(function(frame) {
- t.add_cleanup(function() { frame.remove(); });
+ t.add_cleanup(() => { frame.remove(); });
const headers = JSON.parse(frame.contentDocument.body.textContent);
const header_names = {};
for (const [name, value] of headers) {
@@ -29,20 +35,14 @@ async_test(function(t) {
header_names.hasOwnProperty('accept'),
'request includes "Accept" header as inserted by Fetch'
);
-
- return service_worker_unregister_and_done(t, scope);
- })
- .catch(unreached_rejection(t));
+ });
}, 'Service Worker headers in the request of a fetch event');
-async_test(function(t) {
- var scope = 'resources/simple.html?string';
- service_worker_unregister_and_register(t, worker, scope)
- .then(function(reg) {
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(function() { return with_iframe(scope); })
+promise_test(t => {
+ const page_url = 'resources/simple.html?string';
+ return with_iframe(page_url)
.then(function(frame) {
+ t.add_cleanup(() => { frame.remove(); });
assert_equals(
frame.contentDocument.body.textContent,
'Test string',
@@ -55,23 +55,17 @@ async_test(function(t) {
frame.contentDocument.characterSet,
'UTF-8',
'The character set of the response created with a string should be UTF-8');
- frame.remove();
- return service_worker_unregister_and_done(t, scope);
- })
- .catch(unreached_rejection(t));
+ });
}, 'Service Worker responds to fetch event with string');
-async_test(function(t) {
- var scope = 'resources/simple.html?string';
+promise_test(t => {
+ const page_url = 'resources/simple.html?string';
var frame;
- service_worker_unregister_and_register(t, worker, scope)
- .then(function(reg) {
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(function() { return with_iframe(scope) })
+ return with_iframe(page_url)
.then(function(f) {
frame = f;
- return frame.contentWindow.fetch(scope + "#foo")
+ t.add_cleanup(() => { frame.remove(); });
+ return frame.contentWindow.fetch(page_url + "#foo")
})
.then(function(response) { return response.text() })
.then(function(text) {
@@ -79,58 +73,40 @@ async_test(function(t) {
text,
'Test string',
'Service Worker should respond to fetch with a test string');
- frame.remove();
- return service_worker_unregister_and_done(t, scope);
- })
- .catch(unreached_rejection(t));
+ });
}, 'Service Worker responds to fetch event using request fragment with string');
-async_test(function(t) {
- var scope = 'resources/simple.html?blob';
- service_worker_unregister_and_register(t, worker, scope)
- .then(function(reg) {
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(function() { return with_iframe(scope); })
- .then(function(frame) {
+promise_test(t => {
+ const page_url = 'resources/simple.html?blob';
+ return with_iframe(page_url)
+ .then(frame => {
+ t.add_cleanup(() => { frame.remove(); });
assert_equals(
frame.contentDocument.body.textContent,
'Test blob',
'Service Worker should respond to fetch with a test string');
- frame.remove();
- return service_worker_unregister_and_done(t, scope);
- })
- .catch(unreached_rejection(t));
+ });
}, 'Service Worker responds to fetch event with blob body');
-async_test(function(t) {
- var scope = 'resources/simple.html?referrer';
- service_worker_unregister_and_register(t, worker, scope)
- .then(function(reg) {
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(function() { return with_iframe(scope); })
- .then(function(frame) {
+promise_test(t => {
+ const page_url = 'resources/simple.html?referrer';
+ return with_iframe(page_url)
+ .then(frame => {
+ t.add_cleanup(() => { frame.remove(); });
assert_equals(
frame.contentDocument.body.textContent,
'Referrer: ' + document.location.href,
'Service Worker should respond to fetch with the referrer URL');
- frame.remove();
- return service_worker_unregister_and_done(t, scope);
- })
- .catch(unreached_rejection(t));
+ });
}, 'Service Worker responds to fetch event with the referrer URL');
-async_test(function(t) {
- var scope = 'resources/simple.html?clientId';
+promise_test(t => {
+ const page_url = 'resources/simple.html?clientId';
var frame;
- service_worker_unregister_and_register(t, worker, scope)
- .then(function(reg) {
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(function() { return with_iframe(scope); })
+ return with_iframe(page_url)
.then(function(f) {
frame = f;
+ t.add_cleanup(() => { frame.remove(); });
assert_equals(
frame.contentDocument.body.textContent,
'Client ID Not Found',
@@ -144,61 +120,40 @@ async_test(function(t) {
response_text.substr(0, 15),
'Client ID Found',
'Service Worker should respond to fetch with an existing client id');
- frame.remove();
- return service_worker_unregister_and_done(t, scope);
- })
- .catch(unreached_rejection(t));
+ });
}, 'Service Worker responds to fetch event with an existing client id');
-async_test(function(t) {
- var scope = 'resources/simple.html?ignore';
- service_worker_unregister_and_register(t, worker, scope)
- .then(function(reg) {
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(function() { return with_iframe(scope); })
+promise_test(t => {
+ const page_url = 'resources/simple.html?ignore';
+ return with_iframe(page_url)
.then(function(frame) {
+ t.add_cleanup(() => { frame.remove(); });
assert_equals(frame.contentDocument.body.textContent,
'Here\'s a simple html file.\n',
'Response should come from fallback to native fetch');
- frame.remove();
- return service_worker_unregister_and_done(t, scope);
- })
- .catch(unreached_rejection(t));
+ });
}, 'Service Worker does not respond to fetch event');
-async_test(function(t) {
- var scope = 'resources/simple.html?null';
- service_worker_unregister_and_register(t, worker, scope)
- .then(function(reg) {
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(function() { return with_iframe(scope); })
+promise_test(t => {
+ const page_url = 'resources/simple.html?null';
+ return with_iframe(page_url)
.then(function(frame) {
+ t.add_cleanup(() => { frame.remove(); });
assert_equals(frame.contentDocument.body.textContent,
'',
'Response should be the empty string');
- frame.remove();
- return service_worker_unregister_and_done(t, scope);
- })
- .catch(unreached_rejection(t));
+ });
}, 'Service Worker responds to fetch event with null response body');
-async_test(function(t) {
- var scope = 'resources/simple.html?fetch';
- service_worker_unregister_and_register(t, worker, scope)
- .then(function(reg) {
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(function() { return with_iframe(scope); })
+promise_test(t => {
+ const page_url = 'resources/simple.html?fetch';
+ return with_iframe(page_url)
.then(function(frame) {
+ t.add_cleanup(() => { frame.remove(); });
assert_equals(frame.contentDocument.body.textContent,
'Here\'s an other html file.\n',
'Response should come from fetched other file');
- frame.remove();
- return service_worker_unregister_and_done(t, scope);
- })
- .catch(unreached_rejection(t));
+ });
}, 'Service Worker fetches other file in fetch event');
// Creates a form and an iframe and does a form submission that navigates the
@@ -232,82 +187,54 @@ function submit_form(action_url) {
}
promise_test(t => {
- const scope = 'resources/simple.html?form-post';
- let registration;
- return service_worker_unregister_and_register(t, worker, scope)
- .then(reg => {
- registration = reg;
- add_completion_callback(() => { reg.unregister(); });
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(() => {
- return submit_form(scope);
- })
+ const page_url = 'resources/simple.html?form-post';
+ return submit_form(page_url)
.then(frame => {
+ t.add_cleanup(() => { frame.remove(); });
assert_equals(frame.contentDocument.body.textContent,
'POST:application/x-www-form-urlencoded:' +
'testName1=testValue1&testName2=testValue2');
- frame.remove();
- return registration.unregister();
});
}, 'Service Worker responds to fetch event with POST form');
promise_test(t => {
- // Add '?ignore' to scope so the service worker falls back to network.
- const scope = 'resources/echo-content.py?ignore';
- let registration;
- return service_worker_unregister_and_register(t, worker, scope)
- .then(reg => {
- registration = reg;
- add_completion_callback(() => { reg.unregister(); });
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(() => {
- return submit_form(scope);
- })
+ // Add '?ignore' so the service worker falls back to network.
+ const page_url = 'resources/echo-content.py?ignore';
+ return submit_form(page_url)
.then(frame => {
+ t.add_cleanup(() => { frame.remove(); });
assert_equals(frame.contentDocument.body.textContent,
'testName1=testValue1&testName2=testValue2');
- frame.remove();
- return registration.unregister();
});
}, 'Service Worker falls back to network in fetch event with POST form');
-async_test(function(t) {
- var scope = 'resources/simple.html?multiple-respond-with';
- service_worker_unregister_and_register(t, worker, scope)
- .then(function(reg) {
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(function() { return with_iframe(scope); })
- .then(function(frame) {
+promise_test(t => {
+ const page_url = 'resources/simple.html?multiple-respond-with';
+ return with_iframe(page_url)
+ .then(frame => {
+ t.add_cleanup(() => { frame.remove(); });
assert_equals(
frame.contentDocument.body.textContent,
'(0)(1)[InvalidStateError](2)[InvalidStateError]',
'Multiple calls of respondWith must throw InvalidStateErrors.');
- frame.remove();
- return service_worker_unregister_and_done(t, scope);
- })
- .catch(unreached_rejection(t));
+ });
}, 'Multiple calls of respondWith must throw InvalidStateErrors');
-async_test(function(t) {
- var scope = 'resources/simple.html?used-check';
+promise_test(t => {
+ const page_url = 'resources/simple.html?used-check';
var first_frame;
- service_worker_unregister_and_register(t, worker, scope)
- .then(function(reg) {
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(function() { return with_iframe(scope); })
+ return with_iframe(page_url)
.then(function(frame) {
assert_equals(frame.contentDocument.body.textContent,
'Here\'s an other html file.\n',
'Response should come from fetched other file');
first_frame = frame;
- return with_iframe(scope);
+ t.add_cleanup(() => { first_frame.remove(); });
+ return with_iframe(page_url);
})
.then(function(frame) {
- // When we access to the scope in the second time, the content of the
+ t.add_cleanup(() => { frame.remove(); });
+ // When we access to the page_url in the second time, the content of the
// response is generated inside the ServiceWorker. The body contains
// the value of bodyUsed of the first response which is already
// consumed by FetchEvent.respondWith method.
@@ -315,46 +242,33 @@ async_test(function(t) {
frame.contentDocument.body.textContent,
'bodyUsed: true',
'event.respondWith must set the used flag.');
- first_frame.remove();
- frame.remove();
- return service_worker_unregister_and_done(t, scope);
- })
- .catch(unreached_rejection(t));
+ });
}, 'Service Worker event.respondWith must set the used flag');
-async_test(function(t) {
- var scope = 'resources/simple.html?fragment-check';
+promise_test(t => {
+ const page_url = 'resources/simple.html?fragment-check';
var fragment = '#/some/fragment';
var first_frame;
- service_worker_unregister_and_register(t, worker, scope)
- .then(function(reg) {
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(function() { return with_iframe(scope + fragment); })
+ return with_iframe(page_url + fragment)
.then(function(frame) {
+ t.add_cleanup(() => { frame.remove(); });
assert_equals(
frame.contentDocument.body.textContent,
'Fragment Found :' + fragment,
'Service worker should expose URL fragments in request.');
- frame.remove();
- return service_worker_unregister_and_done(t, scope);
- })
- .catch(unreached_rejection(t));
+ });
}, 'Service Worker should expose FetchEvent URL fragments.');
-async_test(function(t) {
- var scope = 'resources/simple.html?cache';
+promise_test(t => {
+ const page_url = 'resources/simple.html?cache';
var frame;
var cacheTypes = [
undefined, 'default', 'no-store', 'reload', 'no-cache', 'force-cache', 'only-if-cached'
];
- service_worker_unregister_and_register(t, worker, scope)
- .then(function(reg) {
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(function() { return with_iframe(scope); })
+ return with_iframe(page_url)
.then(function(f) {
frame = f;
+ t.add_cleanup(() => { frame.remove(); });
assert_equals(frame.contentWindow.document.body.textContent, 'default');
var tests = cacheTypes.map(function(type) {
return new Promise(function(resolve, reject) {
@@ -364,7 +278,7 @@ async_test(function(t) {
// requires the mode to be same-origin.
init.mode = 'same-origin';
}
- return frame.contentWindow.fetch(scope + '=' + type, init)
+ return frame.contentWindow.fetch(page_url + '=' + type, init)
.then(function(response) { return response.text(); })
.then(function(response_text) {
var expected = (type === undefined) ? 'default' : type;
@@ -391,21 +305,16 @@ async_test(function(t) {
});
frame.contentWindow.location.reload();
});
- })
- .then(function() {
- frame.remove();
- return service_worker_unregister_and_done(t, scope);
- })
- .catch(unreached_rejection(t));
+ });
}, 'Service Worker responds to fetch event with the correct cache types');
-async_test(function(t) {
- var scope = 'resources/simple.html?eventsource';
+promise_test(t => {
+ const page_url = 'resources/simple.html?eventsource';
var frame;
function test_eventsource(opts) {
return new Promise(function(resolve, reject) {
- var eventSource = new frame.contentWindow.EventSource(scope, opts);
+ var eventSource = new frame.contentWindow.EventSource(page_url, opts);
eventSource.addEventListener('message', function(msg) {
eventSource.close();
try {
@@ -430,73 +339,54 @@ async_test(function(t) {
});
}
- service_worker_unregister_and_register(t, worker, scope)
- .then(function(reg) {
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(function() { return with_iframe(scope); })
+ return with_iframe(page_url)
.then(function(f) {
frame = f;
+ t.add_cleanup(() => { frame.remove(); });
return test_eventsource({ withCredentials: false });
})
.then(function() {
return test_eventsource({ withCredentials: true });
- })
- .then(function() {
- frame.remove();
- return service_worker_unregister_and_done(t, scope);
- })
- .catch(unreached_rejection(t));
+ });
}, 'Service Worker should intercept EventSource');
-async_test(function(t) {
- var scope = 'resources/simple.html?integrity';
+promise_test(t => {
+ const page_url = 'resources/simple.html?integrity';
var frame;
var integrity_metadata = 'gs0nqru8KbsrIt5YToQqS9fYao4GQJXtcId610g7cCU=';
- service_worker_unregister_and_register(t, worker, scope)
- .then(function(reg) {
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(function() { return with_iframe(scope); })
+ return with_iframe(page_url)
.then(function(f) {
frame = f;
+ t.add_cleanup(() => { frame.remove(); });
// A request has associated integrity metadata (a string).
// Unless stated otherwise, it is the empty string.
assert_equals(
frame.contentDocument.body.textContent, '');
- return frame.contentWindow.fetch(scope, {'integrity': integrity_metadata});
+ return frame.contentWindow.fetch(page_url, {'integrity': integrity_metadata});
})
.then(response => {
return response.text();
})
.then(response_text => {
assert_equals(response_text, integrity_metadata, 'integrity');
- frame.remove();
- return service_worker_unregister_and_done(t, scope);
- })
- .catch(unreached_rejection(t));
+ });
}, 'Service Worker responds to fetch event with the correct integrity_metadata');
// Test that the service worker can read FetchEvent#body when it is a string.
// It responds with request body it read.
promise_test(t => {
- // Set scope to "?ignore" so the service worker falls back to network
+ // Set page_url to "?ignore" so the service worker falls back to network
// for the main resource request, and add a suffix to avoid colliding
// with other tests.
- const scope = 'resources/simple.html?ignore-for-request-body-string';
+ const page_url = 'resources/simple.html?ignore-for-request-body-string';
let frame;
- return service_worker_unregister_and_register(t, worker, scope)
- .then(reg => {
- add_completion_callback(() => { reg.unregister(); });
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(() => {
- return with_iframe(scope); })
+ return with_iframe(page_url)
.then(f => {
frame = f;
+ t.add_cleanup(() => { frame.remove(); });
return frame.contentWindow.fetch('simple.html?request-body', {
method: 'POST',
body: 'i am the request body'
@@ -506,7 +396,6 @@ promise_test(t => {
return response.text();
})
.then(response_text => {
- frame.remove();
assert_equals(response_text, 'i am the request body');
});
}, 'FetchEvent#body is a string');
@@ -514,21 +403,16 @@ promise_test(t => {
// Test that the request body is sent to network upon network fallback,
// for a string body.
promise_test(t => {
- // Set scope to "?ignore" so the service worker falls back to network
+ // Set page_url to "?ignore" so the service worker falls back to network
// for the main resource request, and add a suffix to avoid colliding
// with other tests.
- const scope = 'resources/?ignore-for-request-body-fallback-string';
+ const page_url = 'resources/?ignore-for-request-body-fallback-string';
let frame;
- return service_worker_unregister_and_register(t, worker, scope)
- .then(reg => {
- add_completion_callback(() => { reg.unregister(); });
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(() => {
- return with_iframe(scope); })
+ return with_iframe(page_url)
.then(f => {
frame = f;
+ t.add_cleanup(() => { frame.remove(); });
// Add "?ignore" so the service worker falls back to echo-content.py.
const echo_url = '/fetch/api/resources/echo-content.py?ignore';
return frame.contentWindow.fetch(echo_url, {
@@ -540,7 +424,6 @@ promise_test(t => {
return response.text();
})
.then(response_text => {
- frame.remove();
assert_equals(
response_text,
'i am the request body',
@@ -551,21 +434,16 @@ promise_test(t => {
// Test that the service worker can read FetchEvent#body when it is a blob.
// It responds with request body it read.
promise_test(t => {
- // Set scope to "?ignore" so the service worker falls back to network
+ // Set page_url to "?ignore" so the service worker falls back to network
// for the main resource request, and add a suffix to avoid colliding
// with other tests.
- const scope = 'resources/simple.html?ignore-for-request-body-blob';
+ const page_url = 'resources/simple.html?ignore-for-request-body-blob';
let frame;
- return service_worker_unregister_and_register(t, worker, scope)
- .then(reg => {
- add_completion_callback(() => { reg.unregister(); });
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(() => {
- return with_iframe(scope); })
+ return with_iframe(page_url)
.then(f => {
frame = f;
+ t.add_cleanup(() => { frame.remove(); });
const blob = new Blob(['it\'s me the blob', ' ', 'and more blob!']);
return frame.contentWindow.fetch('simple.html?request-body', {
method: 'POST',
@@ -576,7 +454,6 @@ promise_test(t => {
return response.text();
})
.then(response_text => {
- frame.remove();
assert_equals(response_text, 'it\'s me the blob and more blob!');
});
}, 'FetchEvent#body is a blob');
@@ -584,21 +461,16 @@ promise_test(t => {
// Test that the request body is sent to network upon network fallback,
// for a blob body.
promise_test(t => {
- // Set scope to "?ignore" so the service worker falls back to network
+ // Set page_url to "?ignore" so the service worker falls back to network
// for the main resource request, and add a suffix to avoid colliding
// with other tests.
- const scope = 'resources/simple.html?ignore-for-request-body-fallback-blob';
+ const page_url = 'resources/simple.html?ignore-for-request-body-fallback-blob';
let frame;
- return service_worker_unregister_and_register(t, worker, scope)
- .then(reg => {
- add_completion_callback(() => { reg.unregister(); });
- return wait_for_state(t, reg.installing, 'activated');
- })
- .then(() => {
- return with_iframe(scope); })
+ return with_iframe(page_url)
.then(f => {
frame = f;
+ t.add_cleanup(() => { frame.remove(); });
const blob = new Blob(['it\'s me the blob', ' ', 'and more blob!']);
// Add "?ignore" so the service worker falls back to echo-content.py.
const echo_url = '/fetch/api/resources/echo-content.py?ignore';
@@ -611,7 +483,6 @@ promise_test(t => {
return response.text();
})
.then(response_text => {
- frame.remove();
assert_equals(
response_text,
'it\'s me the blob and more blob!',
@@ -620,461 +491,316 @@ promise_test(t => {
}, 'FetchEvent#body is a blob and is passed to network fallback');
promise_test(async (t) => {
- const scope = 'resources/simple.html?keepalive';
-
- const reg = await service_worker_unregister_and_register(t, worker, scope);
- await wait_for_state(t, reg.installing, 'activated');
- const frame = await with_iframe(scope);
+ const page_url = 'resources/simple.html?keepalive';
+ const frame = await with_iframe(page_url);
+ t.add_cleanup(() => { frame.remove(); });
assert_equals(frame.contentDocument.body.textContent, 'false');
- const response = await frame.contentWindow.fetch(scope, {keepalive: true});
+ const response = await frame.contentWindow.fetch(page_url, {keepalive: true});
const text = await response.text();
assert_equals(text, 'true');
- frame.remove();
- await service_worker_unregister_and_done(t, scope);
}, 'Service Worker responds to fetch event with the correct keepalive value');
promise_test(async (t) => {
- const scope = 'resources/simple.html?isReloadNavigation';
- let frame;
- let reg;
- try {
- reg = await service_worker_unregister_and_register(t, worker, scope);
- await wait_for_state(t, reg.installing, 'activated');
- frame = await with_iframe(scope);
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isReloadNavigation = false');
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.location.reload();
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isReloadNavigation = true');
- } finally {
- if (frame) {
- frame.remove();
- }
- if (reg) {
- await reg.unregister();
- }
- }
+ const page_url = 'resources/simple.html?isReloadNavigation';
+ const frame = await with_iframe(page_url);
+ t.add_cleanup(() => { frame.remove(); });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isReloadNavigation = false');
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.location.reload();
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isReloadNavigation = true');
}, 'FetchEvent#request.isReloadNavigation is true (location.reload())');
promise_test(async (t) => {
- const scope = 'resources/simple.html?isReloadNavigation';
- let frame;
- let reg;
- try {
- reg = await service_worker_unregister_and_register(t, worker, scope);
- await wait_for_state(t, reg.installing, 'activated');
- frame = await with_iframe(scope);
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isReloadNavigation = false');
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.history.go(0);
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isReloadNavigation = true');
- } finally {
- if (frame) {
- frame.remove();
- }
- if (reg) {
- await reg.unregister();
- }
- }
+ const page_url = 'resources/simple.html?isReloadNavigation';
+ const frame = await with_iframe(page_url);
+ t.add_cleanup(() => { frame.remove(); });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isReloadNavigation = false');
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.history.go(0);
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isReloadNavigation = true');
}, 'FetchEvent#request.isReloadNavigation is true (history.go(0))');
promise_test(async (t) => {
- const scope = 'resources/simple.html?isReloadNavigation';
- let frame;
- let reg;
-
- try {
- reg = await service_worker_unregister_and_register(t, worker, scope);
- await wait_for_state(t, reg.installing, 'activated');
- frame = await with_iframe(scope);
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isReloadNavigation = false');
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- const form = frame.contentDocument.createElement('form');
- form.method = 'POST';
- form.name = 'form';
- form.action = new Request(scope).url;
- frame.contentDocument.body.appendChild(form);
- form.submit();
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = POST, isReloadNavigation = false');
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.location.reload();
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = POST, isReloadNavigation = true');
- } finally {
- if (frame) {
- frame.remove();
- }
- if (reg) {
- await reg.unregister();
- }
- }
+ const page_url = 'resources/simple.html?isReloadNavigation';
+ const frame = await with_iframe(page_url);
+ t.add_cleanup(() => { frame.remove(); });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isReloadNavigation = false');
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ const form = frame.contentDocument.createElement('form');
+ form.method = 'POST';
+ form.name = 'form';
+ form.action = new Request(page_url).url;
+ frame.contentDocument.body.appendChild(form);
+ form.submit();
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = POST, isReloadNavigation = false');
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.location.reload();
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = POST, isReloadNavigation = true');
}, 'FetchEvent#request.isReloadNavigation is true (POST + location.reload())');
promise_test(async (t) => {
- const scope = 'resources/simple.html?isReloadNavigation';
+ const page_url = 'resources/simple.html?isReloadNavigation';
const anotherUrl = new Request('resources/simple.html').url;
- let frame;
- let reg;
-
- try {
- reg = await service_worker_unregister_and_register(t, worker, scope);
- await wait_for_state(t, reg.installing, 'activated');
- frame = await with_iframe(scope);
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isReloadNavigation = false');
- // Use step_timeout(0) to ensure the history entry is created for Blink
- // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
- await wait(0);
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.src = anotherUrl;
- });
- assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.history.go(-1);
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isReloadNavigation = false');
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.history.go(0);
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isReloadNavigation = true');
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.history.go(1);
- });
- assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
- } finally {
- if (frame) {
- frame.remove();
- }
- if (reg) {
- await reg.unregister();
- }
- }
+ let frame = await with_iframe(page_url);
+ t.add_cleanup(() => { frame.remove(); });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isReloadNavigation = false');
+ // Use step_timeout(0) to ensure the history entry is created for Blink
+ // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+ await wait(0);
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.src = anotherUrl;
+ });
+ assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.history.go(-1);
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isReloadNavigation = false');
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.history.go(0);
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isReloadNavigation = true');
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.history.go(1);
+ });
+ assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
}, 'FetchEvent#request.isReloadNavigation is true (with history traversal)');
promise_test(async (t) => {
- const scope = 'resources/simple.html?isHistoryNavigation';
- const anotherUrl = new Request('resources/simple.html').url;
- let frame;
- let reg;
-
- try {
- reg = await service_worker_unregister_and_register(t, worker, scope);
- await wait_for_state(t, reg.installing, 'activated');
- frame = await with_iframe(scope);
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isHistoryNavigation = false');
- // Use step_timeout(0) to ensure the history entry is created for Blink
- // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
- await wait(0);
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.src = anotherUrl;
- });
- assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.history.go(-1);
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isHistoryNavigation = true');
- } finally {
- if (frame) {
- frame.remove();
- }
- if (reg) {
- await reg.unregister();
- }
- }
+ const page_url = 'resources/simple.html?isHistoryNavigation';
+ const anotherUrl = new Request('resources/simple.html?ignore').url;
+ const frame = await with_iframe(page_url);
+ t.add_cleanup(() => { frame.remove(); });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isHistoryNavigation = false');
+ // Use step_timeout(0) to ensure the history entry is created for Blink
+ // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+ await wait(0);
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.src = anotherUrl;
+ });
+ assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.history.go(-1);
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isHistoryNavigation = true');
}, 'FetchEvent#request.isHistoryNavigation is true (with history.go(-1))');
promise_test(async (t) => {
- const scope = 'resources/simple.html?isHistoryNavigation';
- const anotherUrl = new Request('resources/simple.html').url;
- let frame;
- let reg;
-
- try {
- reg = await service_worker_unregister_and_register(t, worker, scope);
- await wait_for_state(t, reg.installing, 'activated');
- frame = await with_iframe(anotherUrl);
- assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
- // Use step_timeout(0) to ensure the history entry is created for Blink
- // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
- await wait(0);
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.src = scope;
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isHistoryNavigation = false');
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.history.go(-1);
- });
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.history.go(1);
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isHistoryNavigation = true');
- } finally {
- if (frame) {
- frame.remove();
- }
- if (reg) {
- await reg.unregister();
- }
- }
+ const page_url = 'resources/simple.html?isHistoryNavigation';
+ const anotherUrl = new Request('resources/simple.html?ignore').url;
+ const frame = await with_iframe(anotherUrl);
+ t.add_cleanup(() => { frame.remove(); });
+ assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+ // Use step_timeout(0) to ensure the history entry is created for Blink
+ // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+ await wait(0);
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.src = page_url;
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isHistoryNavigation = false');
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.history.go(-1);
+ });
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.history.go(1);
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isHistoryNavigation = true');
}, 'FetchEvent#request.isHistoryNavigation is true (with history.go(1))');
promise_test(async (t) => {
- const scope = 'resources/simple.html?isHistoryNavigation';
- const anotherUrl = new Request('resources/simple.html').url;
- let frame;
- let reg;
-
- try {
- reg = await service_worker_unregister_and_register(t, worker, scope);
- await wait_for_state(t, reg.installing, 'activated');
- frame = await with_iframe(anotherUrl);
- assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
- // Use step_timeout(0) to ensure the history entry is created for Blink
- // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
- await wait(0);
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.src = scope;
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isHistoryNavigation = false');
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.history.go(-1);
- });
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.history.go(1);
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isHistoryNavigation = true');
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.history.go(0);
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isHistoryNavigation = false');
- } finally {
- if (frame) {
- frame.remove();
- }
- if (reg) {
- await reg.unregister();
- }
- }
+ const page_url = 'resources/simple.html?isHistoryNavigation';
+ const anotherUrl = new Request('resources/simple.html?ignore').url;
+ const frame = await with_iframe(anotherUrl);
+ t.add_cleanup(() => { frame.remove(); });
+ assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+ // Use step_timeout(0) to ensure the history entry is created for Blink
+ // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+ await wait(0);
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.src = page_url;
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isHistoryNavigation = false');
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.history.go(-1);
+ });
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.history.go(1);
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isHistoryNavigation = true');
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.history.go(0);
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isHistoryNavigation = false');
}, 'FetchEvent#request.isHistoryNavigation is false (with history.go(0))');
promise_test(async (t) => {
- const scope = 'resources/simple.html?isHistoryNavigation';
- const anotherUrl = new Request('resources/simple.html').url;
- let frame;
- let reg;
-
- try {
- reg = await service_worker_unregister_and_register(t, worker, scope);
- await wait_for_state(t, reg.installing, 'activated');
- frame = await with_iframe(anotherUrl);
- assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
- // Use step_timeout(0) to ensure the history entry is created for Blink
- // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
- await wait(0);
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.src = scope;
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isHistoryNavigation = false');
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.history.go(-1);
- });
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.history.go(1);
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isHistoryNavigation = true');
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.location.reload();
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isHistoryNavigation = false');
- } finally {
- if (frame) {
- frame.remove();
- }
- if (reg) {
- await reg.unregister();
- }
- }
+ const page_url = 'resources/simple.html?isHistoryNavigation';
+ const anotherUrl = new Request('resources/simple.html?ignore').url;
+ const frame = await with_iframe(anotherUrl);
+ t.add_cleanup(() => { frame.remove(); });
+ assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+ // Use step_timeout(0) to ensure the history entry is created for Blink
+ // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+ await wait(0);
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.src = page_url;
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isHistoryNavigation = false');
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.history.go(-1);
+ });
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.history.go(1);
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isHistoryNavigation = true');
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.location.reload();
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isHistoryNavigation = false');
}, 'FetchEvent#request.isHistoryNavigation is false (with location.reload)');
promise_test(async (t) => {
- const scope = 'resources/simple.html?isHistoryNavigation';
- const anotherUrl = new Request('resources/simple.html').url;
- const oneAnotherUrl = new Request('resources/simple.html?').url;
- let frame;
- let reg;
-
- try {
- reg = await service_worker_unregister_and_register(t, worker, scope);
- await wait_for_state(t, reg.installing, 'activated');
- frame = await with_iframe(scope);
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isHistoryNavigation = false');
- // Use step_timeout(0) to ensure the history entry is created for Blink
- // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
- await wait(0);
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.src = anotherUrl;
- });
- assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
- await wait(0);
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.src = oneAnotherUrl;
- });
- assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.history.go(-2);
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isHistoryNavigation = true');
- } finally {
- if (frame) {
- frame.remove();
- }
- if (reg) {
- await reg.unregister();
- }
- }
+ const page_url = 'resources/simple.html?isHistoryNavigation';
+ const anotherUrl = new Request('resources/simple.html?ignore').url;
+ const oneAnotherUrl = new Request('resources/simple.html?ignore2').url;
+
+ const frame = await with_iframe(page_url);
+ t.add_cleanup(() => { frame.remove(); });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isHistoryNavigation = false');
+ // Use step_timeout(0) to ensure the history entry is created for Blink
+ // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+ await wait(0);
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.src = anotherUrl;
+ });
+ assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+ await wait(0);
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.src = oneAnotherUrl;
+ });
+ assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.history.go(-2);
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isHistoryNavigation = true');
}, 'FetchEvent#request.isHistoryNavigation is true (with history.go(-2))');
promise_test(async (t) => {
- const scope = 'resources/simple.html?isHistoryNavigation';
- const anotherUrl = new Request('resources/simple.html').url;
- const oneAnotherUrl = new Request('resources/simple.html?').url;
- let frame;
- let reg;
-
- try {
- reg = await service_worker_unregister_and_register(t, worker, scope);
- await wait_for_state(t, reg.installing, 'activated');
- frame = await with_iframe(anotherUrl);
- assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
- // Use step_timeout(0) to ensure the history entry is created for Blink
- // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
- await wait(0);
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.src = oneAnotherUrl;
- });
- assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
- await wait(0);
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.src = scope;
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isHistoryNavigation = false');
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.history.go(-2);
- });
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.history.go(2);
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isHistoryNavigation = true');
- } finally {
- if (frame) {
- frame.remove();
- }
- if (reg) {
- await reg.unregister();
- }
- }
+ const page_url = 'resources/simple.html?isHistoryNavigation';
+ const anotherUrl = new Request('resources/simple.html?ignore').url;
+ const oneAnotherUrl = new Request('resources/simple.html?ignore2').url;
+ const frame = await with_iframe(anotherUrl);
+ t.add_cleanup(() => { frame.remove(); });
+ assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+ // Use step_timeout(0) to ensure the history entry is created for Blink
+ // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+ await wait(0);
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.src = oneAnotherUrl;
+ });
+ assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+ await wait(0);
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.src = page_url;
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isHistoryNavigation = false');
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.history.go(-2);
+ });
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.history.go(2);
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isHistoryNavigation = true');
}, 'FetchEvent#request.isHistoryNavigation is true (with history.go(2))');
promise_test(async (t) => {
- const scope = 'resources/simple.html?isHistoryNavigation';
- const anotherUrl = new Request('resources/simple.html').url;
- let frame;
- let reg;
-
- try {
- reg = await service_worker_unregister_and_register(t, worker, scope);
- await wait_for_state(t, reg.installing, 'activated');
- frame = await with_iframe(scope);
- assert_equals(frame.contentDocument.body.textContent,
- 'method = GET, isHistoryNavigation = false');
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- const form = frame.contentDocument.createElement('form');
- form.method = 'POST';
- form.name = 'form';
- form.action = new Request(scope).url;
- frame.contentDocument.body.appendChild(form);
- form.submit();
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = POST, isHistoryNavigation = false');
- // Use step_timeout(0) to ensure the history entry is created for Blink
- // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
- await wait(0);
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.src = anotherUrl;
- });
- assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
- await wait(0);
- await new Promise((resolve) => {
- frame.addEventListener('load', resolve);
- frame.contentWindow.history.go(-1);
- });
- assert_equals(frame.contentDocument.body.textContent,
- 'method = POST, isHistoryNavigation = true');
- } finally {
- if (frame) {
- frame.remove();
- }
- if (reg) {
- await reg.unregister();
- }
- }
+ const page_url = 'resources/simple.html?isHistoryNavigation';
+ const anotherUrl = new Request('resources/simple.html?ignore').url;
+ const frame = await with_iframe(page_url);
+ t.add_cleanup(() => { frame.remove(); });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = GET, isHistoryNavigation = false');
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ const form = frame.contentDocument.createElement('form');
+ form.method = 'POST';
+ form.name = 'form';
+ form.action = new Request(page_url).url;
+ frame.contentDocument.body.appendChild(form);
+ form.submit();
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = POST, isHistoryNavigation = false');
+ // Use step_timeout(0) to ensure the history entry is created for Blink
+ // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
+ await wait(0);
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.src = anotherUrl;
+ });
+ assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n");
+ await wait(0);
+ await new Promise((resolve) => {
+ frame.addEventListener('load', resolve);
+ frame.contentWindow.history.go(-1);
+ });
+ assert_equals(frame.contentDocument.body.textContent,
+ 'method = POST, isHistoryNavigation = true');
}, 'FetchEvent#request.isHistoryNavigation is true (POST + history.go(-1))');
-
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html
deleted file mode 100644
index 7835f60a2ca..00000000000
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<title>Service Worker: Mime type checking of CSS files fetched via SW.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="resources/test-helpers.sub.js"></script>
-<script>
-
-function getElementColorInFrame(frame, id) {
- var element = frame.contentDocument.getElementById(id);
- var style = frame.contentWindow.getComputedStyle(element, '');
- return style['color'];
-}
-
-promise_test(function(t) {
- var SCOPE =
- 'resources/fetch-request-css-cross-origin-mime-check-iframe.html';
- var SCRIPT =
- 'resources/fetch-request-css-cross-origin-mime-check-worker.js';
- var EXPECTED_COLOR = 'rgb(0, 0, 255)';
-
- return service_worker_unregister_and_register(t, SCRIPT, SCOPE)
- .then(r => wait_for_state(t, r.installing, 'activated'))
- .then(_ => with_iframe(SCOPE) )
- .then(f => {
- assert_equals(
- getElementColorInFrame(f, 'crossOriginCss'),
- EXPECTED_COLOR,
- 'The color must be overridden by cross origin CSS.');
- assert_equals(
- getElementColorInFrame(f, 'crossOriginHtml'),
- EXPECTED_COLOR,
- 'The color must not be overridden by cross origin non CSS file.');
- assert_equals(
- getElementColorInFrame(f, 'sameOriginCss'),
- EXPECTED_COLOR,
- 'The color must be overridden by same origin CSS.');
- assert_equals(
- getElementColorInFrame(f, 'sameOriginHtml'),
- EXPECTED_COLOR,
- 'The color must be overridden by same origin non CSS file.');
- assert_equals(
- getElementColorInFrame(f, 'synthetic'),
- EXPECTED_COLOR,
- 'The color must be overridden by synthetic CSS.');
- f.remove();
- return service_worker_unregister_and_done(t, SCOPE);
- });
- }, 'Mime type checking of CSS files fetched via SW.');
-</script>
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin.https.html
new file mode 100644
index 00000000000..2cdfdea996f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin.https.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<title>Service Worker: Cross-origin CSS files fetched via SW.</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="resources/test-helpers.sub.js"></script>
+<script>
+
+function getElementColorInFrame(frame, id) {
+ var element = frame.contentDocument.getElementById(id);
+ var style = frame.contentWindow.getComputedStyle(element, '');
+ return style['color'];
+}
+
+promise_test(async t => {
+ var SCOPE =
+ 'resources/fetch-request-css-cross-origin';
+ var SCRIPT =
+ 'resources/fetch-request-css-cross-origin-worker.js';
+ let registration = await service_worker_unregister_and_register(
+ t, SCRIPT, SCOPE);
+ promise_test(async t => {
+ await registration.unregister();
+ }, 'cleanup global state');
+
+ await wait_for_state(t, registration.installing, 'activated');
+}, 'setup global state');
+
+promise_test(async t => {
+ const EXPECTED_COLOR = 'rgb(0, 0, 255)';
+ const PAGE =
+ 'resources/fetch-request-css-cross-origin-mime-check-iframe.html';
+
+ const f = await with_iframe(PAGE);
+ t.add_cleanup(() => {f.remove(); });
+ assert_equals(
+ getElementColorInFrame(f, 'crossOriginCss'),
+ EXPECTED_COLOR,
+ 'The color must be overridden by cross origin CSS.');
+ assert_equals(
+ getElementColorInFrame(f, 'crossOriginHtml'),
+ EXPECTED_COLOR,
+ 'The color must not be overridden by cross origin non CSS file.');
+ assert_equals(
+ getElementColorInFrame(f, 'sameOriginCss'),
+ EXPECTED_COLOR,
+ 'The color must be overridden by same origin CSS.');
+ assert_equals(
+ getElementColorInFrame(f, 'sameOriginHtml'),
+ EXPECTED_COLOR,
+ 'The color must be overridden by same origin non CSS file.');
+ assert_equals(
+ getElementColorInFrame(f, 'synthetic'),
+ EXPECTED_COLOR,
+ 'The color must be overridden by synthetic CSS.');
+}, 'MIME checking of CSS resources fetched via service worker when Content-Type is not set.');
+
+promise_test(async t => {
+ const PAGE =
+ 'resources/fetch-request-css-cross-origin-read-contents.html';
+
+ const f = await with_iframe(PAGE);
+ t.add_cleanup(() => {f.remove(); });
+ assert_throws('SecurityError', () => {
+ f.contentDocument.styleSheets[0].cssRules[0].cssText;
+ });
+ assert_equals(
+ f.contentDocument.styleSheets[1].cssRules[0].cssText,
+ '#crossOriginCss { color: blue; }',
+ 'cross-origin CORS approved response');
+ assert_equals(
+ f.contentDocument.styleSheets[2].cssRules[0].cssText,
+ '#sameOriginCss { color: blue; }',
+ 'same-origin response');
+ assert_equals(
+ f.contentDocument.styleSheets[3].cssRules[0].cssText,
+ '#synthetic { color: blue; }',
+ 'service worker generated response');
+ }, 'Same-origin policy for access to CSS resources fetched via service worker');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html
index 64c277d94dc..dbcc6eab1f8 100644
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<title>Service Worker: Registration-updateViaCache</title>
+<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="resources/testharness-helpers.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html
index dcb82871354..9a4adedb84d 100644
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html
@@ -5,11 +5,11 @@
#sameOriginHtml { color: red; }
#synthetic { color: red; }
</style>
-<link href="./cross-origin-css.css" rel="stylesheet" type="text/css">
-<link href="./cross-origin-html.css" rel="stylesheet" type="text/css">
+<link href="./cross-origin-css.css?mime=no" rel="stylesheet" type="text/css">
+<link href="./cross-origin-html.css?mime=no" rel="stylesheet" type="text/css">
<link href="./fetch-request-css-cross-origin-mime-check-same.css" rel="stylesheet" type="text/css">
<link href="./fetch-request-css-cross-origin-mime-check-same.html" rel="stylesheet" type="text/css">
-<link href="./synthetic.css" rel="stylesheet" type="text/css">
+<link href="./synthetic.css?mime=no" rel="stylesheet" type="text/css">
<h1 id=crossOriginCss>I should be blue</h1>
<h1 id=crossOriginHtml>I should be blue</h1>
<h1 id=sameOriginCss>I should be blue</h1>
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js
deleted file mode 100644
index 274142f5ce4..00000000000
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js
+++ /dev/null
@@ -1,20 +0,0 @@
-importScripts('/common/get-host-info.sub.js');
-importScripts('test-helpers.sub.js');
-
-self.addEventListener('fetch', function(event) {
- if (event.request.url.indexOf('cross-origin-css.css') != -1) {
- event.respondWith(fetch(
- get_host_info()['HTTPS_REMOTE_ORIGIN'] + base_path() +
- 'fetch-request-css-cross-origin-mime-check-cross.css',
- {mode: 'no-cors'}));
- } else if (event.request.url.indexOf('cross-origin-html.css') != -1) {
- event.respondWith(fetch(
- get_host_info()['HTTPS_REMOTE_ORIGIN'] + base_path() +
- 'fetch-request-css-cross-origin-mime-check-cross.html',
- {mode: 'no-cors'}));
- } else if (event.request.url.indexOf('synthetic.css') != -1) {
- event.respondWith(new Response("#synthetic { color: blue; }"));
- } else {
- event.respondWith(fetch(event.request));
- }
- });
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-read-contents.html b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-read-contents.html
new file mode 100644
index 00000000000..c902366b023
--- /dev/null
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-read-contents.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>iframe: cross-origin CSS via service worker</title>
+
+<!-- Service worker responds with a cross-origin opaque response. -->
+<link href="cross-origin-css.css" rel="stylesheet" type="text/css">
+
+<!-- Service worker responds with a cross-origin CORS approved response. -->
+<link href="cross-origin-css.css?cors" rel="stylesheet" type="text/css">
+
+<!-- Service worker falls back to network. This is a same-origin response. -->
+<link href="fetch-request-css-cross-origin-mime-check-same.css" rel="stylesheet" type="text/css">
+
+<!-- Service worker responds with a new Response() synthetic response. -->
+<link href="synthetic.css" rel="stylesheet" type="text/css">
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-worker.js
new file mode 100644
index 00000000000..a71e91216c1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-worker.js
@@ -0,0 +1,65 @@
+importScripts('/common/get-host-info.sub.js');
+importScripts('test-helpers.sub.js');
+
+const HOST_INFO = get_host_info();
+const REMOTE_ORIGIN = HOST_INFO.HTTPS_REMOTE_ORIGIN;
+const BASE_PATH = base_path();
+const CSS_FILE = 'fetch-request-css-cross-origin-mime-check-cross.css';
+const HTML_FILE = 'fetch-request-css-cross-origin-mime-check-cross.html';
+
+function add_pipe_header(url_str, header) {
+ if (url_str.indexOf('?pipe=') == -1) {
+ url_str += '?pipe=';
+ } else {
+ url_str += '|';
+ }
+ url_str += `header${header}`;
+ return url_str;
+}
+
+self.addEventListener('fetch', function(event) {
+ const url = new URL(event.request.url);
+
+ const use_mime =
+ (url.searchParams.get('mime') != 'no');
+ const mime_header = '(Content-Type, text/css)';
+
+ const use_cors =
+ (url.searchParams.has('cors'));
+ const cors_header = '(Access-Control-Allow-Origin, *)';
+
+ const file = url.pathname.substring(url.pathname.lastIndexOf('/') + 1);
+
+ // Respond with a cross-origin CSS resource, using CORS if desired.
+ if (file == 'cross-origin-css.css') {
+ let fetch_url = REMOTE_ORIGIN + BASE_PATH + CSS_FILE;
+ if (use_mime)
+ fetch_url = add_pipe_header(fetch_url, mime_header);
+ if (use_cors)
+ fetch_url = add_pipe_header(fetch_url, cors_header);
+ const mode = use_cors ? 'cors' : 'no-cors';
+ event.respondWith(fetch(fetch_url, {'mode': mode}));
+ return;
+ }
+
+ // Respond with a cross-origin CSS resource with an HTML name. This is only
+ // used in the MIME sniffing test, so MIME is never added.
+ if (file == 'cross-origin-html.css') {
+ const fetch_url = REMOTE_ORIGIN + BASE_PATH + HTML_FILE;
+ event.respondWith(fetch(fetch_url, {mode: 'no-cors'}));
+ return;
+ }
+
+ // Respond with synthetic CSS.
+ if (file == 'synthetic.css') {
+ let headers = {};
+ if (use_mime) {
+ headers['Content-Type'] = 'text/css';
+ }
+
+ event.respondWith(new Response("#synthetic { color: blue; }", {headers}));
+ return;
+ }
+
+ // Otherwise, fallback to network.
+ });
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/.gitignore b/tests/wpt/web-platform-tests/tools/html5lib/.gitignore
deleted file mode 100644
index 73d97fec073..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/.gitignore
+++ /dev/null
@@ -1,20 +0,0 @@
-# Because we never want compiled Python
-__pycache__/
-*.pyc
-
-# Ignore stuff produced by distutils
-/build/
-/dist/
-/MANIFEST
-
-# Generated by parse.py -p
-stats.prof
-
-# From cover (esp. in combination with nose)
-.coverage
-
-# Because tox's data is inherently local
-/.tox/
-
-# We have no interest in built Sphinx files
-/doc/_build
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/.travis.yml b/tests/wpt/web-platform-tests/tools/html5lib/.travis.yml
deleted file mode 100644
index dd3130019e7..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/.travis.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-language: python
-python:
- - "2.6"
- - "2.7"
- - "3.2"
- - "3.3"
- - "3.4"
- - "pypy"
-
-env:
- - USE_OPTIONAL=true
- - USE_OPTIONAL=false
-
-matrix:
- exclude:
- - python: "2.7"
- env: USE_OPTIONAL=false
- - python: "3.4"
- env: USE_OPTIONAL=false
- include:
- - python: "2.7"
- env: USE_OPTIONAL=false FLAKE=true
- - python: "3.4"
- env: USE_OPTIONAL=false FLAKE=true
-
-before_install:
- - git submodule update --init --recursive
-
-install:
- - bash requirements-install.sh
-
-script:
- - nosetests
- - bash flake8-run.sh
-
-after_script:
- - python debug-info.py
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/CHANGES.rst b/tests/wpt/web-platform-tests/tools/html5lib/CHANGES.rst
deleted file mode 100644
index 1431b3c9b8f..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/CHANGES.rst
+++ /dev/null
@@ -1,171 +0,0 @@
-Change Log
-----------
-
-0.9999
-~~~~~~
-
-Released on XXX, 2014
-
-* XXX
-
-
-0.999
-~~~~~
-
-Released on December 23, 2013
-
-* Fix #127: add work-around for CPython issue #20007: .read(0) on
- http.client.HTTPResponse drops the rest of the content.
-
-* Fix #115: lxml treewalker can now deal with fragments containing, at
- their root level, text nodes with non-ASCII characters on Python 2.
-
-
-0.99
-~~~~
-
-Released on September 10, 2013
-
-* No library changes from 1.0b3; released as 0.99 as pip has changed
- behaviour from 1.4 to avoid installing pre-release versions per
- PEP 440.
-
-
-1.0b3
-~~~~~
-
-Released on July 24, 2013
-
-* Removed ``RecursiveTreeWalker`` from ``treewalkers._base``. Any
- implementation using it should be moved to
- ``NonRecursiveTreeWalker``, as everything bundled with html5lib has
- for years.
-
-* Fix #67 so that ``BufferedStream`` to correctly returns a bytes
- object, thereby fixing any case where html5lib is passed a
- non-seekable RawIOBase-like object.
-
-
-1.0b2
-~~~~~
-
-Released on June 27, 2013
-
-* Removed reordering of attributes within the serializer. There is now
- an ``alphabetical_attributes`` option which preserves the previous
- behaviour through a new filter. This allows attribute order to be
- preserved through html5lib if the tree builder preserves order.
-
-* Removed ``dom2sax`` from DOM treebuilders. It has been replaced by
- ``treeadapters.sax.to_sax`` which is generic and supports any
- treewalker; it also resolves all known bugs with ``dom2sax``.
-
-* Fix treewalker assertions on hitting bytes strings on
- Python 2. Previous to 1.0b1, treewalkers coped with mixed
- bytes/unicode data on Python 2; this reintroduces this prior
- behaviour on Python 2. Behaviour is unchanged on Python 3.
-
-
-1.0b1
-~~~~~
-
-Released on May 17, 2013
-
-* Implementation updated to implement the `HTML specification
- <http://www.whatwg.org/specs/web-apps/current-work/>`_ as of 5th May
- 2013 (`SVN <http://svn.whatwg.org/webapps/>`_ revision r7867).
-
-* Python 3.2+ supported in a single codebase using the ``six`` library.
-
-* Removed support for Python 2.5 and older.
-
-* Removed the deprecated Beautiful Soup 3 treebuilder.
- ``beautifulsoup4`` can use ``html5lib`` as a parser instead. Note that
- since it doesn't support namespaces, foreign content like SVG and
- MathML is parsed incorrectly.
-
-* Removed ``simpletree`` from the package. The default tree builder is
- now ``etree`` (using the ``xml.etree.cElementTree`` implementation if
- available, and ``xml.etree.ElementTree`` otherwise).
-
-* Removed the ``XHTMLSerializer`` as it never actually guaranteed its
- output was well-formed XML, and hence provided little of use.
-
-* Removed default DOM treebuilder, so ``html5lib.treebuilders.dom`` is no
- longer supported. ``html5lib.treebuilders.getTreeBuilder("dom")`` will
- return the default DOM treebuilder, which uses ``xml.dom.minidom``.
-
-* Optional heuristic character encoding detection now based on
- ``charade`` for Python 2.6 - 3.3 compatibility.
-
-* Optional ``Genshi`` treewalker support fixed.
-
-* Many bugfixes, including:
-
- * #33: null in attribute value breaks XML AttValue;
-
- * #4: nested, indirect descendant, <button> causes infinite loop;
-
- * `Google Code 215
- <http://code.google.com/p/html5lib/issues/detail?id=215>`_: Properly
- detect seekable streams;
-
- * `Google Code 206
- <http://code.google.com/p/html5lib/issues/detail?id=206>`_: add
- support for <video preload=...>, <audio preload=...>;
-
- * `Google Code 205
- <http://code.google.com/p/html5lib/issues/detail?id=205>`_: add
- support for <video poster=...>;
-
- * `Google Code 202
- <http://code.google.com/p/html5lib/issues/detail?id=202>`_: Unicode
- file breaks InputStream.
-
-* Source code is now mostly PEP 8 compliant.
-
-* Test harness has been improved and now depends on ``nose``.
-
-* Documentation updated and moved to http://html5lib.readthedocs.org/.
-
-
-0.95
-~~~~
-
-Released on February 11, 2012
-
-
-0.90
-~~~~
-
-Released on January 17, 2010
-
-
-0.11.1
-~~~~~~
-
-Released on June 12, 2008
-
-
-0.11
-~~~~
-
-Released on June 10, 2008
-
-
-0.10
-~~~~
-
-Released on October 7, 2007
-
-
-0.9
-~~~
-
-Released on March 11, 2007
-
-
-0.2
-~~~
-
-Released on January 8, 2007
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.rst b/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.rst
deleted file mode 100644
index d4ed12b4646..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.rst
+++ /dev/null
@@ -1,77 +0,0 @@
-html5lib Package
-================
-
-:mod:`html5lib` Package
------------------------
-
-.. automodule:: html5lib.__init__
- :members:
- :undoc-members:
- :show-inheritance:
-
-:mod:`constants` Module
------------------------
-
-.. automodule:: html5lib.constants
- :members:
- :undoc-members:
- :show-inheritance:
-
-:mod:`html5parser` Module
--------------------------
-
-.. automodule:: html5lib.html5parser
- :members:
- :undoc-members:
- :show-inheritance:
-
-:mod:`ihatexml` Module
-----------------------
-
-.. automodule:: html5lib.ihatexml
- :members:
- :undoc-members:
- :show-inheritance:
-
-:mod:`inputstream` Module
--------------------------
-
-.. automodule:: html5lib.inputstream
- :members:
- :undoc-members:
- :show-inheritance:
-
-:mod:`sanitizer` Module
------------------------
-
-.. automodule:: html5lib.sanitizer
- :members:
- :undoc-members:
- :show-inheritance:
-
-:mod:`tokenizer` Module
------------------------
-
-.. automodule:: html5lib.tokenizer
- :members:
- :undoc-members:
- :show-inheritance:
-
-:mod:`utils` Module
--------------------
-
-.. automodule:: html5lib.utils
- :members:
- :undoc-members:
- :show-inheritance:
-
-Subpackages
------------
-
-.. toctree::
-
- html5lib.filters
- html5lib.serializer
- html5lib.treebuilders
- html5lib.treewalkers
-
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.serializer.rst b/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.serializer.rst
deleted file mode 100644
index fa9547421b1..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.serializer.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-serializer Package
-==================
-
-:mod:`serializer` Package
--------------------------
-
-.. automodule:: html5lib.serializer
- :members:
- :undoc-members:
- :show-inheritance:
-
-:mod:`htmlserializer` Module
-----------------------------
-
-.. automodule:: html5lib.serializer.htmlserializer
- :members:
- :undoc-members:
- :show-inheritance:
-
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.treewalkers.rst b/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.treewalkers.rst
deleted file mode 100644
index 80595e2d7d0..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.treewalkers.rst
+++ /dev/null
@@ -1,59 +0,0 @@
-treewalkers Package
-===================
-
-:mod:`treewalkers` Package
---------------------------
-
-.. automodule:: html5lib.treewalkers
- :members:
- :undoc-members:
- :show-inheritance:
-
-:mod:`_base` Module
--------------------
-
-.. automodule:: html5lib.treewalkers._base
- :members:
- :undoc-members:
- :show-inheritance:
-
-:mod:`dom` Module
------------------
-
-.. automodule:: html5lib.treewalkers.dom
- :members:
- :undoc-members:
- :show-inheritance:
-
-:mod:`etree` Module
--------------------
-
-.. automodule:: html5lib.treewalkers.etree
- :members:
- :undoc-members:
- :show-inheritance:
-
-:mod:`genshistream` Module
---------------------------
-
-.. automodule:: html5lib.treewalkers.genshistream
- :members:
- :undoc-members:
- :show-inheritance:
-
-:mod:`lxmletree` Module
------------------------
-
-.. automodule:: html5lib.treewalkers.lxmletree
- :members:
- :undoc-members:
- :show-inheritance:
-
-:mod:`pulldom` Module
----------------------
-
-.. automodule:: html5lib.treewalkers.pulldom
- :members:
- :undoc-members:
- :show-inheritance:
-
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/flake8-run.sh b/tests/wpt/web-platform-tests/tools/html5lib/flake8-run.sh
deleted file mode 100755
index d1a587d3506..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/flake8-run.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash -e
-
-if [[ ! -x $(which flake8) ]]; then
- echo "fatal: flake8 not found on $PATH. Exiting."
- exit 1
-fi
-
-if [[ $TRAVIS != "true" || $FLAKE == "true" ]]; then
- find html5lib/ -name '*.py' -and -not -name 'constants.py' -print0 | xargs -0 flake8 --ignore=E501
- flake1=$?
- flake8 --max-line-length=99 --ignore=E126 html5lib/constants.py
- flake2=$?
- exit $[$flake1 || $flake2]
-fi
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/__init__.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/__init__.py
deleted file mode 100644
index a67a652b999..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/__init__.py
+++ /dev/null
@@ -1,23 +0,0 @@
-"""
-HTML parsing library based on the WHATWG "HTML5"
-specification. The parser is designed to be compatible with existing
-HTML found in the wild and implements well-defined error recovery that
-is largely compatible with modern desktop web browsers.
-
-Example usage:
-
-import html5lib
-f = open("my_document.html")
-tree = html5lib.parse(f)
-"""
-
-from __future__ import absolute_import, division, unicode_literals
-
-from .html5parser import HTMLParser, parse, parseFragment
-from .treebuilders import getTreeBuilder
-from .treewalkers import getTreeWalker
-from .serializer import serialize
-
-__all__ = ["HTMLParser", "parse", "parseFragment", "getTreeBuilder",
- "getTreeWalker", "serialize"]
-__version__ = "0.9999-dev"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/alphabeticalattributes.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/alphabeticalattributes.py
deleted file mode 100644
index fed6996c1d9..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/alphabeticalattributes.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-from . import _base
-
-try:
- from collections import OrderedDict
-except ImportError:
- from ordereddict import OrderedDict
-
-
-class Filter(_base.Filter):
- def __iter__(self):
- for token in _base.Filter.__iter__(self):
- if token["type"] in ("StartTag", "EmptyTag"):
- attrs = OrderedDict()
- for name, value in sorted(token["data"].items(),
- key=lambda x: x[0]):
- attrs[name] = value
- token["data"] = attrs
- yield token
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/lint.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/lint.py
deleted file mode 100644
index 7cc99a4ba7c..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/lint.py
+++ /dev/null
@@ -1,93 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-from gettext import gettext
-_ = gettext
-
-from . import _base
-from ..constants import cdataElements, rcdataElements, voidElements
-
-from ..constants import spaceCharacters
-spaceCharacters = "".join(spaceCharacters)
-
-
-class LintError(Exception):
- pass
-
-
-class Filter(_base.Filter):
- def __iter__(self):
- open_elements = []
- contentModelFlag = "PCDATA"
- for token in _base.Filter.__iter__(self):
- type = token["type"]
- if type in ("StartTag", "EmptyTag"):
- name = token["name"]
- if contentModelFlag != "PCDATA":
- raise LintError(_("StartTag not in PCDATA content model flag: %(tag)s") % {"tag": name})
- if not isinstance(name, str):
- raise LintError(_("Tag name is not a string: %(tag)r") % {"tag": name})
- if not name:
- raise LintError(_("Empty tag name"))
- if type == "StartTag" and name in voidElements:
- raise LintError(_("Void element reported as StartTag token: %(tag)s") % {"tag": name})
- elif type == "EmptyTag" and name not in voidElements:
- raise LintError(_("Non-void element reported as EmptyTag token: %(tag)s") % {"tag": token["name"]})
- if type == "StartTag":
- open_elements.append(name)
- for name, value in token["data"]:
- if not isinstance(name, str):
- raise LintError(_("Attribute name is not a string: %(name)r") % {"name": name})
- if not name:
- raise LintError(_("Empty attribute name"))
- if not isinstance(value, str):
- raise LintError(_("Attribute value is not a string: %(value)r") % {"value": value})
- if name in cdataElements:
- contentModelFlag = "CDATA"
- elif name in rcdataElements:
- contentModelFlag = "RCDATA"
- elif name == "plaintext":
- contentModelFlag = "PLAINTEXT"
-
- elif type == "EndTag":
- name = token["name"]
- if not isinstance(name, str):
- raise LintError(_("Tag name is not a string: %(tag)r") % {"tag": name})
- if not name:
- raise LintError(_("Empty tag name"))
- if name in voidElements:
- raise LintError(_("Void element reported as EndTag token: %(tag)s") % {"tag": name})
- start_name = open_elements.pop()
- if start_name != name:
- raise LintError(_("EndTag (%(end)s) does not match StartTag (%(start)s)") % {"end": name, "start": start_name})
- contentModelFlag = "PCDATA"
-
- elif type == "Comment":
- if contentModelFlag != "PCDATA":
- raise LintError(_("Comment not in PCDATA content model flag"))
-
- elif type in ("Characters", "SpaceCharacters"):
- data = token["data"]
- if not isinstance(data, str):
- raise LintError(_("Attribute name is not a string: %(name)r") % {"name": data})
- if not data:
- raise LintError(_("%(type)s token with empty data") % {"type": type})
- if type == "SpaceCharacters":
- data = data.strip(spaceCharacters)
- if data:
- raise LintError(_("Non-space character(s) found in SpaceCharacters token: %(token)r") % {"token": data})
-
- elif type == "Doctype":
- name = token["name"]
- if contentModelFlag != "PCDATA":
- raise LintError(_("Doctype not in PCDATA content model flag: %(name)s") % {"name": name})
- if not isinstance(name, str):
- raise LintError(_("Tag name is not a string: %(tag)r") % {"tag": name})
- # XXX: what to do with token["data"] ?
-
- elif type in ("ParseError", "SerializeError"):
- pass
-
- else:
- raise LintError(_("Unknown token type: %(type)s") % {"type": type})
-
- yield token
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/sanitizer.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/sanitizer.py
deleted file mode 100644
index b206b54e7a7..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/sanitizer.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-from . import _base
-from ..sanitizer import HTMLSanitizerMixin
-
-
-class Filter(_base.Filter, HTMLSanitizerMixin):
- def __iter__(self):
- for token in _base.Filter.__iter__(self):
- token = self.sanitize_token(token)
- if token:
- yield token
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/sanitizer.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/sanitizer.py
deleted file mode 100644
index 469d9b40c96..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/sanitizer.py
+++ /dev/null
@@ -1,271 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-import re
-from xml.sax.saxutils import escape, unescape
-
-from .tokenizer import HTMLTokenizer
-from .constants import tokenTypes
-
-
-class HTMLSanitizerMixin(object):
- """ sanitization of XHTML+MathML+SVG and of inline style attributes."""
-
- acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area',
- 'article', 'aside', 'audio', 'b', 'big', 'blockquote', 'br', 'button',
- 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup',
- 'command', 'datagrid', 'datalist', 'dd', 'del', 'details', 'dfn',
- 'dialog', 'dir', 'div', 'dl', 'dt', 'em', 'event-source', 'fieldset',
- 'figcaption', 'figure', 'footer', 'font', 'form', 'header', 'h1',
- 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'input', 'ins',
- 'keygen', 'kbd', 'label', 'legend', 'li', 'm', 'map', 'menu', 'meter',
- 'multicol', 'nav', 'nextid', 'ol', 'output', 'optgroup', 'option',
- 'p', 'pre', 'progress', 'q', 's', 'samp', 'section', 'select',
- 'small', 'sound', 'source', 'spacer', 'span', 'strike', 'strong',
- 'sub', 'sup', 'table', 'tbody', 'td', 'textarea', 'time', 'tfoot',
- 'th', 'thead', 'tr', 'tt', 'u', 'ul', 'var', 'video']
-
- mathml_elements = ['maction', 'math', 'merror', 'mfrac', 'mi',
- 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom',
- 'mprescripts', 'mroot', 'mrow', 'mspace', 'msqrt', 'mstyle', 'msub',
- 'msubsup', 'msup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder',
- 'munderover', 'none']
-
- svg_elements = ['a', 'animate', 'animateColor', 'animateMotion',
- 'animateTransform', 'clipPath', 'circle', 'defs', 'desc', 'ellipse',
- 'font-face', 'font-face-name', 'font-face-src', 'g', 'glyph', 'hkern',
- 'linearGradient', 'line', 'marker', 'metadata', 'missing-glyph',
- 'mpath', 'path', 'polygon', 'polyline', 'radialGradient', 'rect',
- 'set', 'stop', 'svg', 'switch', 'text', 'title', 'tspan', 'use']
-
- acceptable_attributes = ['abbr', 'accept', 'accept-charset', 'accesskey',
- 'action', 'align', 'alt', 'autocomplete', 'autofocus', 'axis',
- 'background', 'balance', 'bgcolor', 'bgproperties', 'border',
- 'bordercolor', 'bordercolordark', 'bordercolorlight', 'bottompadding',
- 'cellpadding', 'cellspacing', 'ch', 'challenge', 'char', 'charoff',
- 'choff', 'charset', 'checked', 'cite', 'class', 'clear', 'color',
- 'cols', 'colspan', 'compact', 'contenteditable', 'controls', 'coords',
- 'data', 'datafld', 'datapagesize', 'datasrc', 'datetime', 'default',
- 'delay', 'dir', 'disabled', 'draggable', 'dynsrc', 'enctype', 'end',
- 'face', 'for', 'form', 'frame', 'galleryimg', 'gutter', 'headers',
- 'height', 'hidefocus', 'hidden', 'high', 'href', 'hreflang', 'hspace',
- 'icon', 'id', 'inputmode', 'ismap', 'keytype', 'label', 'leftspacing',
- 'lang', 'list', 'longdesc', 'loop', 'loopcount', 'loopend',
- 'loopstart', 'low', 'lowsrc', 'max', 'maxlength', 'media', 'method',
- 'min', 'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'open',
- 'optimum', 'pattern', 'ping', 'point-size', 'poster', 'pqg', 'preload',
- 'prompt', 'radiogroup', 'readonly', 'rel', 'repeat-max', 'repeat-min',
- 'replace', 'required', 'rev', 'rightspacing', 'rows', 'rowspan',
- 'rules', 'scope', 'selected', 'shape', 'size', 'span', 'src', 'start',
- 'step', 'style', 'summary', 'suppress', 'tabindex', 'target',
- 'template', 'title', 'toppadding', 'type', 'unselectable', 'usemap',
- 'urn', 'valign', 'value', 'variable', 'volume', 'vspace', 'vrml',
- 'width', 'wrap', 'xml:lang']
-
- mathml_attributes = ['actiontype', 'align', 'columnalign', 'columnalign',
- 'columnalign', 'columnlines', 'columnspacing', 'columnspan', 'depth',
- 'display', 'displaystyle', 'equalcolumns', 'equalrows', 'fence',
- 'fontstyle', 'fontweight', 'frame', 'height', 'linethickness', 'lspace',
- 'mathbackground', 'mathcolor', 'mathvariant', 'mathvariant', 'maxsize',
- 'minsize', 'other', 'rowalign', 'rowalign', 'rowalign', 'rowlines',
- 'rowspacing', 'rowspan', 'rspace', 'scriptlevel', 'selection',
- 'separator', 'stretchy', 'width', 'width', 'xlink:href', 'xlink:show',
- 'xlink:type', 'xmlns', 'xmlns:xlink']
-
- svg_attributes = ['accent-height', 'accumulate', 'additive', 'alphabetic',
- 'arabic-form', 'ascent', 'attributeName', 'attributeType',
- 'baseProfile', 'bbox', 'begin', 'by', 'calcMode', 'cap-height',
- 'class', 'clip-path', 'color', 'color-rendering', 'content', 'cx',
- 'cy', 'd', 'dx', 'dy', 'descent', 'display', 'dur', 'end', 'fill',
- 'fill-opacity', 'fill-rule', 'font-family', 'font-size',
- 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'from',
- 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'gradientUnits', 'hanging',
- 'height', 'horiz-adv-x', 'horiz-origin-x', 'id', 'ideographic', 'k',
- 'keyPoints', 'keySplines', 'keyTimes', 'lang', 'marker-end',
- 'marker-mid', 'marker-start', 'markerHeight', 'markerUnits',
- 'markerWidth', 'mathematical', 'max', 'min', 'name', 'offset',
- 'opacity', 'orient', 'origin', 'overline-position',
- 'overline-thickness', 'panose-1', 'path', 'pathLength', 'points',
- 'preserveAspectRatio', 'r', 'refX', 'refY', 'repeatCount',
- 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart',
- 'rotate', 'rx', 'ry', 'slope', 'stemh', 'stemv', 'stop-color',
- 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness',
- 'stroke', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap',
- 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity',
- 'stroke-width', 'systemLanguage', 'target', 'text-anchor', 'to',
- 'transform', 'type', 'u1', 'u2', 'underline-position',
- 'underline-thickness', 'unicode', 'unicode-range', 'units-per-em',
- 'values', 'version', 'viewBox', 'visibility', 'width', 'widths', 'x',
- 'x-height', 'x1', 'x2', 'xlink:actuate', 'xlink:arcrole',
- 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type',
- 'xml:base', 'xml:lang', 'xml:space', 'xmlns', 'xmlns:xlink', 'y',
- 'y1', 'y2', 'zoomAndPan']
-
- attr_val_is_uri = ['href', 'src', 'cite', 'action', 'longdesc', 'poster',
- 'xlink:href', 'xml:base']
-
- svg_attr_val_allows_ref = ['clip-path', 'color-profile', 'cursor', 'fill',
- 'filter', 'marker', 'marker-start', 'marker-mid', 'marker-end',
- 'mask', 'stroke']
-
- svg_allow_local_href = ['altGlyph', 'animate', 'animateColor',
- 'animateMotion', 'animateTransform', 'cursor', 'feImage', 'filter',
- 'linearGradient', 'pattern', 'radialGradient', 'textpath', 'tref',
- 'set', 'use']
-
- acceptable_css_properties = ['azimuth', 'background-color',
- 'border-bottom-color', 'border-collapse', 'border-color',
- 'border-left-color', 'border-right-color', 'border-top-color', 'clear',
- 'color', 'cursor', 'direction', 'display', 'elevation', 'float', 'font',
- 'font-family', 'font-size', 'font-style', 'font-variant', 'font-weight',
- 'height', 'letter-spacing', 'line-height', 'overflow', 'pause',
- 'pause-after', 'pause-before', 'pitch', 'pitch-range', 'richness',
- 'speak', 'speak-header', 'speak-numeral', 'speak-punctuation',
- 'speech-rate', 'stress', 'text-align', 'text-decoration', 'text-indent',
- 'unicode-bidi', 'vertical-align', 'voice-family', 'volume',
- 'white-space', 'width']
-
- acceptable_css_keywords = ['auto', 'aqua', 'black', 'block', 'blue',
- 'bold', 'both', 'bottom', 'brown', 'center', 'collapse', 'dashed',
- 'dotted', 'fuchsia', 'gray', 'green', '!important', 'italic', 'left',
- 'lime', 'maroon', 'medium', 'none', 'navy', 'normal', 'nowrap', 'olive',
- 'pointer', 'purple', 'red', 'right', 'solid', 'silver', 'teal', 'top',
- 'transparent', 'underline', 'white', 'yellow']
-
- acceptable_svg_properties = ['fill', 'fill-opacity', 'fill-rule',
- 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin',
- 'stroke-opacity']
-
- acceptable_protocols = ['ed2k', 'ftp', 'http', 'https', 'irc',
- 'mailto', 'news', 'gopher', 'nntp', 'telnet', 'webcal',
- 'xmpp', 'callto', 'feed', 'urn', 'aim', 'rsync', 'tag',
- 'ssh', 'sftp', 'rtsp', 'afs']
-
- # subclasses may define their own versions of these constants
- allowed_elements = acceptable_elements + mathml_elements + svg_elements
- allowed_attributes = acceptable_attributes + mathml_attributes + svg_attributes
- allowed_css_properties = acceptable_css_properties
- allowed_css_keywords = acceptable_css_keywords
- allowed_svg_properties = acceptable_svg_properties
- allowed_protocols = acceptable_protocols
-
- # Sanitize the +html+, escaping all elements not in ALLOWED_ELEMENTS, and
- # stripping out all # attributes not in ALLOWED_ATTRIBUTES. Style
- # attributes are parsed, and a restricted set, # specified by
- # ALLOWED_CSS_PROPERTIES and ALLOWED_CSS_KEYWORDS, are allowed through.
- # attributes in ATTR_VAL_IS_URI are scanned, and only URI schemes specified
- # in ALLOWED_PROTOCOLS are allowed.
- #
- # sanitize_html('<script> do_nasty_stuff() </script>')
- # => &lt;script> do_nasty_stuff() &lt;/script>
- # sanitize_html('<a href="javascript: sucker();">Click here for $100</a>')
- # => <a>Click here for $100</a>
- def sanitize_token(self, token):
-
- # accommodate filters which use token_type differently
- token_type = token["type"]
- if token_type in list(tokenTypes.keys()):
- token_type = tokenTypes[token_type]
-
- if token_type in (tokenTypes["StartTag"], tokenTypes["EndTag"],
- tokenTypes["EmptyTag"]):
- if token["name"] in self.allowed_elements:
- return self.allowed_token(token, token_type)
- else:
- return self.disallowed_token(token, token_type)
- elif token_type == tokenTypes["Comment"]:
- pass
- else:
- return token
-
- def allowed_token(self, token, token_type):
- if "data" in token:
- attrs = dict([(name, val) for name, val in
- token["data"][::-1]
- if name in self.allowed_attributes])
- for attr in self.attr_val_is_uri:
- if attr not in attrs:
- continue
- val_unescaped = re.sub("[`\000-\040\177-\240\s]+", '',
- unescape(attrs[attr])).lower()
- # remove replacement characters from unescaped characters
- val_unescaped = val_unescaped.replace("\ufffd", "")
- if (re.match("^[a-z0-9][-+.a-z0-9]*:", val_unescaped) and
- (val_unescaped.split(':')[0] not in
- self.allowed_protocols)):
- del attrs[attr]
- for attr in self.svg_attr_val_allows_ref:
- if attr in attrs:
- attrs[attr] = re.sub(r'url\s*\(\s*[^#\s][^)]+?\)',
- ' ',
- unescape(attrs[attr]))
- if (token["name"] in self.svg_allow_local_href and
- 'xlink:href' in attrs and re.search('^\s*[^#\s].*',
- attrs['xlink:href'])):
- del attrs['xlink:href']
- if 'style' in attrs:
- attrs['style'] = self.sanitize_css(attrs['style'])
- token["data"] = [[name, val] for name, val in list(attrs.items())]
- return token
-
- def disallowed_token(self, token, token_type):
- if token_type == tokenTypes["EndTag"]:
- token["data"] = "</%s>" % token["name"]
- elif token["data"]:
- attrs = ''.join([' %s="%s"' % (k, escape(v)) for k, v in token["data"]])
- token["data"] = "<%s%s>" % (token["name"], attrs)
- else:
- token["data"] = "<%s>" % token["name"]
- if token.get("selfClosing"):
- token["data"] = token["data"][:-1] + "/>"
-
- if token["type"] in list(tokenTypes.keys()):
- token["type"] = "Characters"
- else:
- token["type"] = tokenTypes["Characters"]
-
- del token["name"]
- return token
-
- def sanitize_css(self, style):
- # disallow urls
- style = re.compile('url\s*\(\s*[^\s)]+?\s*\)\s*').sub(' ', style)
-
- # gauntlet
- if not re.match("""^([:,;#%.\sa-zA-Z0-9!]|\w-\w|'[\s\w]+'|"[\s\w]+"|\([\d,\s]+\))*$""", style):
- return ''
- if not re.match("^\s*([-\w]+\s*:[^:;]*(;\s*|$))*$", style):
- return ''
-
- clean = []
- for prop, value in re.findall("([-\w]+)\s*:\s*([^:;]*)", style):
- if not value:
- continue
- if prop.lower() in self.allowed_css_properties:
- clean.append(prop + ': ' + value + ';')
- elif prop.split('-')[0].lower() in ['background', 'border', 'margin',
- 'padding']:
- for keyword in value.split():
- if keyword not in self.acceptable_css_keywords and \
- not re.match("^(#[0-9a-f]+|rgb\(\d+%?,\d*%?,?\d*%?\)?|\d{0,2}\.?\d{0,2}(cm|em|ex|in|mm|pc|pt|px|%|,|\))?)$", keyword):
- break
- else:
- clean.append(prop + ': ' + value + ';')
- elif prop.lower() in self.allowed_svg_properties:
- clean.append(prop + ': ' + value + ';')
-
- return ' '.join(clean)
-
-
-class HTMLSanitizer(HTMLTokenizer, HTMLSanitizerMixin):
- def __init__(self, stream, encoding=None, parseMeta=True, useChardet=True,
- lowercaseElementName=False, lowercaseAttrName=False, parser=None):
- # Change case matching defaults as we only output lowercase html anyway
- # This solution doesn't seem ideal...
- HTMLTokenizer.__init__(self, stream, encoding, parseMeta, useChardet,
- lowercaseElementName, lowercaseAttrName, parser=parser)
-
- def __iter__(self):
- for token in HTMLTokenizer.__iter__(self):
- token = self.sanitize_token(token)
- if token:
- yield token
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/serializer/__init__.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/serializer/__init__.py
deleted file mode 100644
index 8380839a6d3..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/serializer/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-from .. import treewalkers
-
-from .htmlserializer import HTMLSerializer
-
-
-def serialize(input, tree="etree", format="html", encoding=None,
- **serializer_opts):
- # XXX: Should we cache this?
- walker = treewalkers.getTreeWalker(tree)
- if format == "html":
- s = HTMLSerializer(**serializer_opts)
- else:
- raise ValueError("type must be html")
- return s.render(walker(input), encoding)
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/serializer/htmlserializer.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/serializer/htmlserializer.py
deleted file mode 100644
index 4a891ff56c4..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/serializer/htmlserializer.py
+++ /dev/null
@@ -1,320 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-from six import text_type
-
-import gettext
-_ = gettext.gettext
-
-try:
- from functools import reduce
-except ImportError:
- pass
-
-from ..constants import voidElements, booleanAttributes, spaceCharacters
-from ..constants import rcdataElements, entities, xmlEntities
-from .. import utils
-from xml.sax.saxutils import escape
-
-spaceCharacters = "".join(spaceCharacters)
-
-try:
- from codecs import register_error, xmlcharrefreplace_errors
-except ImportError:
- unicode_encode_errors = "strict"
-else:
- unicode_encode_errors = "htmlentityreplace"
-
- encode_entity_map = {}
- is_ucs4 = len("\U0010FFFF") == 1
- for k, v in list(entities.items()):
- # skip multi-character entities
- if ((is_ucs4 and len(v) > 1) or
- (not is_ucs4 and len(v) > 2)):
- continue
- if v != "&":
- if len(v) == 2:
- v = utils.surrogatePairToCodepoint(v)
- else:
- v = ord(v)
- if v not in encode_entity_map or k.islower():
- # prefer &lt; over &LT; and similarly for &amp;, &gt;, etc.
- encode_entity_map[v] = k
-
- def htmlentityreplace_errors(exc):
- if isinstance(exc, (UnicodeEncodeError, UnicodeTranslateError)):
- res = []
- codepoints = []
- skip = False
- for i, c in enumerate(exc.object[exc.start:exc.end]):
- if skip:
- skip = False
- continue
- index = i + exc.start
- if utils.isSurrogatePair(exc.object[index:min([exc.end, index + 2])]):
- codepoint = utils.surrogatePairToCodepoint(exc.object[index:index + 2])
- skip = True
- else:
- codepoint = ord(c)
- codepoints.append(codepoint)
- for cp in codepoints:
- e = encode_entity_map.get(cp)
- if e:
- res.append("&")
- res.append(e)
- if not e.endswith(";"):
- res.append(";")
- else:
- res.append("&#x%s;" % (hex(cp)[2:]))
- return ("".join(res), exc.end)
- else:
- return xmlcharrefreplace_errors(exc)
-
- register_error(unicode_encode_errors, htmlentityreplace_errors)
-
- del register_error
-
-
-class HTMLSerializer(object):
-
- # attribute quoting options
- quote_attr_values = False
- quote_char = '"'
- use_best_quote_char = True
-
- # tag syntax options
- omit_optional_tags = True
- minimize_boolean_attributes = True
- use_trailing_solidus = False
- space_before_trailing_solidus = True
-
- # escaping options
- escape_lt_in_attrs = False
- escape_rcdata = False
- resolve_entities = True
-
- # miscellaneous options
- alphabetical_attributes = False
- inject_meta_charset = True
- strip_whitespace = False
- sanitize = False
-
- options = ("quote_attr_values", "quote_char", "use_best_quote_char",
- "omit_optional_tags", "minimize_boolean_attributes",
- "use_trailing_solidus", "space_before_trailing_solidus",
- "escape_lt_in_attrs", "escape_rcdata", "resolve_entities",
- "alphabetical_attributes", "inject_meta_charset",
- "strip_whitespace", "sanitize")
-
- def __init__(self, **kwargs):
- """Initialize HTMLSerializer.
-
- Keyword options (default given first unless specified) include:
-
- inject_meta_charset=True|False
- Whether it insert a meta element to define the character set of the
- document.
- quote_attr_values=True|False
- Whether to quote attribute values that don't require quoting
- per HTML5 parsing rules.
- quote_char=u'"'|u"'"
- Use given quote character for attribute quoting. Default is to
- use double quote unless attribute value contains a double quote,
- in which case single quotes are used instead.
- escape_lt_in_attrs=False|True
- Whether to escape < in attribute values.
- escape_rcdata=False|True
- Whether to escape characters that need to be escaped within normal
- elements within rcdata elements such as style.
- resolve_entities=True|False
- Whether to resolve named character entities that appear in the
- source tree. The XML predefined entities &lt; &gt; &amp; &quot; &apos;
- are unaffected by this setting.
- strip_whitespace=False|True
- Whether to remove semantically meaningless whitespace. (This
- compresses all whitespace to a single space except within pre.)
- minimize_boolean_attributes=True|False
- Shortens boolean attributes to give just the attribute value,
- for example <input disabled="disabled"> becomes <input disabled>.
- use_trailing_solidus=False|True
- Includes a close-tag slash at the end of the start tag of void
- elements (empty elements whose end tag is forbidden). E.g. <hr/>.
- space_before_trailing_solidus=True|False
- Places a space immediately before the closing slash in a tag
- using a trailing solidus. E.g. <hr />. Requires use_trailing_solidus.
- sanitize=False|True
- Strip all unsafe or unknown constructs from output.
- See `html5lib user documentation`_
- omit_optional_tags=True|False
- Omit start/end tags that are optional.
- alphabetical_attributes=False|True
- Reorder attributes to be in alphabetical order.
-
- .. _html5lib user documentation: http://code.google.com/p/html5lib/wiki/UserDocumentation
- """
- if 'quote_char' in kwargs:
- self.use_best_quote_char = False
- for attr in self.options:
- setattr(self, attr, kwargs.get(attr, getattr(self, attr)))
- self.errors = []
- self.strict = False
-
- def encode(self, string):
- assert(isinstance(string, text_type))
- if self.encoding:
- return string.encode(self.encoding, unicode_encode_errors)
- else:
- return string
-
- def encodeStrict(self, string):
- assert(isinstance(string, text_type))
- if self.encoding:
- return string.encode(self.encoding, "strict")
- else:
- return string
-
- def serialize(self, treewalker, encoding=None):
- self.encoding = encoding
- in_cdata = False
- self.errors = []
-
- if encoding and self.inject_meta_charset:
- from ..filters.inject_meta_charset import Filter
- treewalker = Filter(treewalker, encoding)
- # WhitespaceFilter should be used before OptionalTagFilter
- # for maximum efficiently of this latter filter
- if self.strip_whitespace:
- from ..filters.whitespace import Filter
- treewalker = Filter(treewalker)
- if self.sanitize:
- from ..filters.sanitizer import Filter
- treewalker = Filter(treewalker)
- if self.omit_optional_tags:
- from ..filters.optionaltags import Filter
- treewalker = Filter(treewalker)
- # Alphabetical attributes must be last, as other filters
- # could add attributes and alter the order
- if self.alphabetical_attributes:
- from ..filters.alphabeticalattributes import Filter
- treewalker = Filter(treewalker)
-
- for token in treewalker:
- type = token["type"]
- if type == "Doctype":
- doctype = "<!DOCTYPE %s" % token["name"]
-
- if token["publicId"]:
- doctype += ' PUBLIC "%s"' % token["publicId"]
- elif token["systemId"]:
- doctype += " SYSTEM"
- if token["systemId"]:
- if token["systemId"].find('"') >= 0:
- if token["systemId"].find("'") >= 0:
- self.serializeError(_("System identifer contains both single and double quote characters"))
- quote_char = "'"
- else:
- quote_char = '"'
- doctype += " %s%s%s" % (quote_char, token["systemId"], quote_char)
-
- doctype += ">"
- yield self.encodeStrict(doctype)
-
- elif type in ("Characters", "SpaceCharacters"):
- if type == "SpaceCharacters" or in_cdata:
- if in_cdata and token["data"].find("</") >= 0:
- self.serializeError(_("Unexpected </ in CDATA"))
- yield self.encode(token["data"])
- else:
- yield self.encode(escape(token["data"]))
-
- elif type in ("StartTag", "EmptyTag"):
- name = token["name"]
- yield self.encodeStrict("<%s" % name)
- if name in rcdataElements and not self.escape_rcdata:
- in_cdata = True
- elif in_cdata:
- self.serializeError(_("Unexpected child element of a CDATA element"))
- for (attr_namespace, attr_name), attr_value in token["data"].items():
- # TODO: Add namespace support here
- k = attr_name
- v = attr_value
- yield self.encodeStrict(' ')
-
- yield self.encodeStrict(k)
- if not self.minimize_boolean_attributes or \
- (k not in booleanAttributes.get(name, tuple())
- and k not in booleanAttributes.get("", tuple())):
- yield self.encodeStrict("=")
- if self.quote_attr_values or not v:
- quote_attr = True
- else:
- quote_attr = reduce(lambda x, y: x or (y in v),
- spaceCharacters + ">\"'=", False)
- v = v.replace("&", "&amp;")
- if self.escape_lt_in_attrs:
- v = v.replace("<", "&lt;")
- if quote_attr:
- quote_char = self.quote_char
- if self.use_best_quote_char:
- if "'" in v and '"' not in v:
- quote_char = '"'
- elif '"' in v and "'" not in v:
- quote_char = "'"
- if quote_char == "'":
- v = v.replace("'", "&#39;")
- else:
- v = v.replace('"', "&quot;")
- yield self.encodeStrict(quote_char)
- yield self.encode(v)
- yield self.encodeStrict(quote_char)
- else:
- yield self.encode(v)
- if name in voidElements and self.use_trailing_solidus:
- if self.space_before_trailing_solidus:
- yield self.encodeStrict(" /")
- else:
- yield self.encodeStrict("/")
- yield self.encode(">")
-
- elif type == "EndTag":
- name = token["name"]
- if name in rcdataElements:
- in_cdata = False
- elif in_cdata:
- self.serializeError(_("Unexpected child element of a CDATA element"))
- yield self.encodeStrict("</%s>" % name)
-
- elif type == "Comment":
- data = token["data"]
- if data.find("--") >= 0:
- self.serializeError(_("Comment contains --"))
- yield self.encodeStrict("<!--%s-->" % token["data"])
-
- elif type == "Entity":
- name = token["name"]
- key = name + ";"
- if key not in entities:
- self.serializeError(_("Entity %s not recognized" % name))
- if self.resolve_entities and key not in xmlEntities:
- data = entities[key]
- else:
- data = "&%s;" % name
- yield self.encodeStrict(data)
-
- else:
- self.serializeError(token["data"])
-
- def render(self, treewalker, encoding=None):
- if encoding:
- return b"".join(list(self.serialize(treewalker, encoding)))
- else:
- return "".join(list(self.serialize(treewalker)))
-
- def serializeError(self, data="XXX ERROR MESSAGE NEEDED"):
- # XXX The idea is to make data mandatory.
- self.errors.append(data)
- if self.strict:
- raise SerializeError
-
-
-def SerializeError(Exception):
- """Error in serialized tree"""
- pass
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/README b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/README
deleted file mode 100644
index c564b6836e4..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/README
+++ /dev/null
@@ -1 +0,0 @@
-Each testcase file can be run through nose (using ``nosetests``). \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/mockParser.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/mockParser.py
deleted file mode 100644
index ef31527e82d..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/mockParser.py
+++ /dev/null
@@ -1,41 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-import sys
-import os
-
-if __name__ == '__main__':
- # Allow us to import from the src directory
- os.chdir(os.path.split(os.path.abspath(__file__))[0])
- sys.path.insert(0, os.path.abspath(os.path.join(os.pardir, "src")))
-
-from html5lib.tokenizer import HTMLTokenizer
-
-
-class HTMLParser(object):
- """ Fake parser to test tokenizer output """
- def parse(self, stream, output=True):
- tokenizer = HTMLTokenizer(stream)
- for token in tokenizer:
- if output:
- print(token)
-
-if __name__ == "__main__":
- x = HTMLParser()
- if len(sys.argv) > 1:
- if len(sys.argv) > 2:
- import hotshot
- import hotshot.stats
- prof = hotshot.Profile('stats.prof')
- prof.runcall(x.parse, sys.argv[1], False)
- prof.close()
- stats = hotshot.stats.load('stats.prof')
- stats.strip_dirs()
- stats.sort_stats('time')
- stats.print_stats()
- else:
- x.parse(sys.argv[1])
- else:
- print("""Usage: python mockParser.py filename [stats]
- If stats is specified the hotshots profiler will run and output the
- stats instead.
- """)
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/performance/concatenation.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/performance/concatenation.py
deleted file mode 100644
index a1465036e52..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/performance/concatenation.py
+++ /dev/null
@@ -1,36 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-
-def f1():
- x = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
- y = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
- z = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
- x += y + z
-
-
-def f2():
- x = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
- y = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
- z = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
- x = x + y + z
-
-
-def f3():
- x = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
- y = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
- z = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
- x = "".join((x, y, z))
-
-
-def f4():
- x = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
- y = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
- z = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
- x = "%s%s%s" % (x, y, z)
-
-import timeit
-for x in range(4):
- statement = "f%s" % (x + 1)
- t = timeit.Timer(statement, "from __main__ import " + statement)
- r = t.repeat(3, 1000000)
- print(r, min(r))
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_encoding.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_encoding.py
deleted file mode 100644
index d774ce0f600..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_encoding.py
+++ /dev/null
@@ -1,67 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-import os
-import unittest
-
-try:
- unittest.TestCase.assertEqual
-except AttributeError:
- unittest.TestCase.assertEqual = unittest.TestCase.assertEquals
-
-from .support import get_data_files, TestData, test_dir, errorMessage
-from html5lib import HTMLParser, inputstream
-
-
-class Html5EncodingTestCase(unittest.TestCase):
- def test_codec_name_a(self):
- self.assertEqual(inputstream.codecName("utf-8"), "utf-8")
-
- def test_codec_name_b(self):
- self.assertEqual(inputstream.codecName("utf8"), "utf-8")
-
- def test_codec_name_c(self):
- self.assertEqual(inputstream.codecName(" utf8 "), "utf-8")
-
- def test_codec_name_d(self):
- self.assertEqual(inputstream.codecName("ISO_8859--1"), "windows-1252")
-
-
-def runParserEncodingTest(data, encoding):
- p = HTMLParser()
- assert p.documentEncoding is None
- p.parse(data, useChardet=False)
- encoding = encoding.lower().decode("ascii")
-
- assert encoding == p.documentEncoding, errorMessage(data, encoding, p.documentEncoding)
-
-
-def runPreScanEncodingTest(data, encoding):
- stream = inputstream.HTMLBinaryInputStream(data, chardet=False)
- encoding = encoding.lower().decode("ascii")
-
- # Very crude way to ignore irrelevant tests
- if len(data) > stream.numBytesMeta:
- return
-
- assert encoding == stream.charEncoding[0], errorMessage(data, encoding, stream.charEncoding[0])
-
-
-def test_encoding():
- for filename in get_data_files("encoding"):
- tests = TestData(filename, b"data", encoding=None)
- for idx, test in enumerate(tests):
- yield (runParserEncodingTest, test[b'data'], test[b'encoding'])
- yield (runPreScanEncodingTest, test[b'data'], test[b'encoding'])
-
-try:
- try:
- import charade # flake8: noqa
- except ImportError:
- import chardet # flake8: noqa
-except ImportError:
- print("charade/chardet not found, skipping chardet tests")
-else:
- def test_chardet():
- with open(os.path.join(test_dir, "encoding" , "chardet", "test_big5.txt"), "rb") as fp:
- encoding = inputstream.HTMLInputStream(fp.read()).charEncoding
- assert encoding[0].lower() == "big5"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_parser.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_parser.py
deleted file mode 100644
index 230cdb42d59..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_parser.py
+++ /dev/null
@@ -1,96 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-import os
-import sys
-import traceback
-import warnings
-import re
-
-warnings.simplefilter("error")
-
-from .support import get_data_files
-from .support import TestData, convert, convertExpected, treeTypes
-from html5lib import html5parser, constants
-
-# Run the parse error checks
-checkParseErrors = False
-
-# XXX - There should just be one function here but for some reason the testcase
-# format differs from the treedump format by a single space character
-
-
-def convertTreeDump(data):
- return "\n".join(convert(3)(data).split("\n")[1:])
-
-namespaceExpected = re.compile(r"^(\s*)<(\S+)>", re.M).sub
-
-
-def runParserTest(innerHTML, input, expected, errors, treeClass,
- namespaceHTMLElements):
- with warnings.catch_warnings(record=True) as caughtWarnings:
- warnings.simplefilter("always")
- p = html5parser.HTMLParser(tree=treeClass,
- namespaceHTMLElements=namespaceHTMLElements)
-
- try:
- if innerHTML:
- document = p.parseFragment(input, innerHTML)
- else:
- document = p.parse(input)
- except:
- errorMsg = "\n".join(["\n\nInput:", input, "\nExpected:", expected,
- "\nTraceback:", traceback.format_exc()])
- assert False, errorMsg
-
- otherWarnings = [x for x in caughtWarnings
- if not issubclass(x.category, constants.DataLossWarning)]
- assert len(otherWarnings) == 0, [(x.category, x.message) for x in otherWarnings]
- if len(caughtWarnings):
- return
-
- output = convertTreeDump(p.tree.testSerializer(document))
-
- expected = convertExpected(expected)
- if namespaceHTMLElements:
- expected = namespaceExpected(r"\1<html \2>", expected)
-
- errorMsg = "\n".join(["\n\nInput:", input, "\nExpected:", expected,
- "\nReceived:", output])
- assert expected == output, errorMsg
-
- errStr = []
- for (line, col), errorcode, datavars in p.errors:
- assert isinstance(datavars, dict), "%s, %s" % (errorcode, repr(datavars))
- errStr.append("Line: %i Col: %i %s" % (line, col,
- constants.E[errorcode] % datavars))
-
- errorMsg2 = "\n".join(["\n\nInput:", input,
- "\nExpected errors (" + str(len(errors)) + "):\n" + "\n".join(errors),
- "\nActual errors (" + str(len(p.errors)) + "):\n" + "\n".join(errStr)])
- if checkParseErrors:
- assert len(p.errors) == len(errors), errorMsg2
-
-
-def test_parser():
- sys.stderr.write('Testing tree builders ' + " ".join(list(treeTypes.keys())) + "\n")
- files = get_data_files('tree-construction')
-
- for filename in files:
- testName = os.path.basename(filename).replace(".dat", "")
- if testName in ("template",):
- continue
-
- tests = TestData(filename, "data")
-
- for index, test in enumerate(tests):
- input, errors, innerHTML, expected = [test[key] for key in
- ('data', 'errors',
- 'document-fragment',
- 'document')]
- if errors:
- errors = errors.split("\n")
-
- for treeName, treeCls in treeTypes.items():
- for namespaceHTMLElements in (True, False):
- yield (runParserTest, innerHTML, input, expected, errors, treeCls,
- namespaceHTMLElements)
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_parser2.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_parser2.py
deleted file mode 100644
index 20bbdf3179c..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_parser2.py
+++ /dev/null
@@ -1,64 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-import io
-
-from . import support # flake8: noqa
-from html5lib import html5parser
-from html5lib.constants import namespaces
-from html5lib import treebuilders
-
-import unittest
-
-# tests that aren't autogenerated from text files
-
-
-class MoreParserTests(unittest.TestCase):
-
- def setUp(self):
- self.dom_tree = treebuilders.getTreeBuilder("dom")
-
- def test_assertDoctypeCloneable(self):
- parser = html5parser.HTMLParser(tree=self.dom_tree)
- doc = parser.parse('<!DOCTYPE HTML>')
- self.assertTrue(doc.cloneNode(True))
-
- def test_line_counter(self):
- # http://groups.google.com/group/html5lib-discuss/browse_frm/thread/f4f00e4a2f26d5c0
- parser = html5parser.HTMLParser(tree=self.dom_tree)
- parser.parse("<pre>\nx\n&gt;\n</pre>")
-
- def test_namespace_html_elements_0_dom(self):
- parser = html5parser.HTMLParser(tree=self.dom_tree, namespaceHTMLElements=True)
- doc = parser.parse("<html></html>")
- self.assertTrue(doc.childNodes[0].namespaceURI == namespaces["html"])
-
- def test_namespace_html_elements_1_dom(self):
- parser = html5parser.HTMLParser(tree=self.dom_tree, namespaceHTMLElements=False)
- doc = parser.parse("<html></html>")
- self.assertTrue(doc.childNodes[0].namespaceURI is None)
-
- def test_namespace_html_elements_0_etree(self):
- parser = html5parser.HTMLParser(namespaceHTMLElements=True)
- doc = parser.parse("<html></html>")
- self.assertTrue(list(doc)[0].tag == "{%s}html" % (namespaces["html"],))
-
- def test_namespace_html_elements_1_etree(self):
- parser = html5parser.HTMLParser(namespaceHTMLElements=False)
- doc = parser.parse("<html></html>")
- self.assertTrue(list(doc)[0].tag == "html")
-
- def test_unicode_file(self):
- parser = html5parser.HTMLParser()
- parser.parse(io.StringIO("a"))
-
-
-def buildTestSuite():
- return unittest.defaultTestLoader.loadTestsFromName(__name__)
-
-
-def main():
- buildTestSuite()
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_sanitizer.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_sanitizer.py
deleted file mode 100644
index 1cc687dfcad..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_sanitizer.py
+++ /dev/null
@@ -1,105 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-try:
- import json
-except ImportError:
- import simplejson as json
-
-from html5lib import html5parser, sanitizer, constants, treebuilders
-
-
-def toxmlFactory():
- tree = treebuilders.getTreeBuilder("etree")
-
- def toxml(element):
- # encode/decode roundtrip required for Python 2.6 compatibility
- result_bytes = tree.implementation.tostring(element, encoding="utf-8")
- return result_bytes.decode("utf-8")
-
- return toxml
-
-
-def runSanitizerTest(name, expected, input, toxml=None):
- if toxml is None:
- toxml = toxmlFactory()
- expected = ''.join([toxml(token) for token in html5parser.HTMLParser().
- parseFragment(expected)])
- expected = json.loads(json.dumps(expected))
- assert expected == sanitize_html(input)
-
-
-def sanitize_html(stream, toxml=None):
- if toxml is None:
- toxml = toxmlFactory()
- return ''.join([toxml(token) for token in
- html5parser.HTMLParser(tokenizer=sanitizer.HTMLSanitizer).
- parseFragment(stream)])
-
-
-def test_should_handle_astral_plane_characters():
- assert '<html:p xmlns:html="http://www.w3.org/1999/xhtml">\U0001d4b5 \U0001d538</html:p>' == sanitize_html("<p>&#x1d4b5; &#x1d538;</p>")
-
-
-def test_sanitizer():
- toxml = toxmlFactory()
- for tag_name in sanitizer.HTMLSanitizer.allowed_elements:
- if tag_name in ['caption', 'col', 'colgroup', 'optgroup', 'option', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr']:
- continue # TODO
- if tag_name != tag_name.lower():
- continue # TODO
- if tag_name == 'image':
- yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name,
- "<img title=\"1\"/>foo &lt;bad&gt;bar&lt;/bad&gt; baz",
- "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name),
- toxml)
- elif tag_name == 'br':
- yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name,
- "<br title=\"1\"/>foo &lt;bad&gt;bar&lt;/bad&gt; baz<br/>",
- "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name),
- toxml)
- elif tag_name in constants.voidElements:
- yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name,
- "<%s title=\"1\"/>foo &lt;bad&gt;bar&lt;/bad&gt; baz" % tag_name,
- "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name),
- toxml)
- else:
- yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name,
- "<%s title=\"1\">foo &lt;bad&gt;bar&lt;/bad&gt; baz</%s>" % (tag_name, tag_name),
- "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name),
- toxml)
-
- for tag_name in sanitizer.HTMLSanitizer.allowed_elements:
- tag_name = tag_name.upper()
- yield (runSanitizerTest, "test_should_forbid_%s_tag" % tag_name,
- "&lt;%s title=\"1\"&gt;foo &lt;bad&gt;bar&lt;/bad&gt; baz&lt;/%s&gt;" % (tag_name, tag_name),
- "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name),
- toxml)
-
- for attribute_name in sanitizer.HTMLSanitizer.allowed_attributes:
- if attribute_name != attribute_name.lower():
- continue # TODO
- if attribute_name == 'style':
- continue
- yield (runSanitizerTest, "test_should_allow_%s_attribute" % attribute_name,
- "<p %s=\"foo\">foo &lt;bad&gt;bar&lt;/bad&gt; baz</p>" % attribute_name,
- "<p %s='foo'>foo <bad>bar</bad> baz</p>" % attribute_name,
- toxml)
-
- for attribute_name in sanitizer.HTMLSanitizer.allowed_attributes:
- attribute_name = attribute_name.upper()
- yield (runSanitizerTest, "test_should_forbid_%s_attribute" % attribute_name,
- "<p>foo &lt;bad&gt;bar&lt;/bad&gt; baz</p>",
- "<p %s='display: none;'>foo <bad>bar</bad> baz</p>" % attribute_name,
- toxml)
-
- for protocol in sanitizer.HTMLSanitizer.allowed_protocols:
- yield (runSanitizerTest, "test_should_allow_%s_uris" % protocol,
- "<a href=\"%s\">foo</a>" % protocol,
- """<a href="%s">foo</a>""" % protocol,
- toxml)
-
- for protocol in sanitizer.HTMLSanitizer.allowed_protocols:
- yield (runSanitizerTest, "test_should_allow_uppercase_%s_uris" % protocol,
- "<a href=\"%s\">foo</a>" % protocol,
- """<a href="%s">foo</a>""" % protocol,
- toxml)
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_serializer.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_serializer.py
deleted file mode 100644
index 3c37feff70b..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_serializer.py
+++ /dev/null
@@ -1,178 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-import json
-import unittest
-
-from .support import get_data_files
-
-try:
- unittest.TestCase.assertEqual
-except AttributeError:
- unittest.TestCase.assertEqual = unittest.TestCase.assertEquals
-
-import html5lib
-from html5lib import constants
-from html5lib.serializer import HTMLSerializer, serialize
-from html5lib.treewalkers._base import TreeWalker
-
-optionals_loaded = []
-
-try:
- from lxml import etree
- optionals_loaded.append("lxml")
-except ImportError:
- pass
-
-default_namespace = constants.namespaces["html"]
-
-
-class JsonWalker(TreeWalker):
- def __iter__(self):
- for token in self.tree:
- type = token[0]
- if type == "StartTag":
- if len(token) == 4:
- namespace, name, attrib = token[1:4]
- else:
- namespace = default_namespace
- name, attrib = token[1:3]
- yield self.startTag(namespace, name, self._convertAttrib(attrib))
- elif type == "EndTag":
- if len(token) == 3:
- namespace, name = token[1:3]
- else:
- namespace = default_namespace
- name = token[1]
- yield self.endTag(namespace, name)
- elif type == "EmptyTag":
- if len(token) == 4:
- namespace, name, attrib = token[1:]
- else:
- namespace = default_namespace
- name, attrib = token[1:]
- for token in self.emptyTag(namespace, name, self._convertAttrib(attrib)):
- yield token
- elif type == "Comment":
- yield self.comment(token[1])
- elif type in ("Characters", "SpaceCharacters"):
- for token in self.text(token[1]):
- yield token
- elif type == "Doctype":
- if len(token) == 4:
- yield self.doctype(token[1], token[2], token[3])
- elif len(token) == 3:
- yield self.doctype(token[1], token[2])
- else:
- yield self.doctype(token[1])
- else:
- raise ValueError("Unknown token type: " + type)
-
- def _convertAttrib(self, attribs):
- """html5lib tree-walkers use a dict of (namespace, name): value for
- attributes, but JSON cannot represent this. Convert from the format
- in the serializer tests (a list of dicts with "namespace", "name",
- and "value" as keys) to html5lib's tree-walker format."""
- attrs = {}
- for attrib in attribs:
- name = (attrib["namespace"], attrib["name"])
- assert(name not in attrs)
- attrs[name] = attrib["value"]
- return attrs
-
-
-def serialize_html(input, options):
- options = dict([(str(k), v) for k, v in options.items()])
- stream = JsonWalker(input)
- serializer = HTMLSerializer(alphabetical_attributes=True, **options)
- return serializer.render(stream, options.get("encoding", None))
-
-
-def runSerializerTest(input, expected, options):
- encoding = options.get("encoding", None)
-
- if encoding:
- encode = lambda x: x.encode(encoding)
- expected = list(map(encode, expected))
-
- result = serialize_html(input, options)
- if len(expected) == 1:
- assert expected[0] == result, "Expected:\n%s\nActual:\n%s\nOptions:\n%s" % (expected[0], result, str(options))
- elif result not in expected:
- assert False, "Expected: %s, Received: %s" % (expected, result)
-
-
-class EncodingTestCase(unittest.TestCase):
- def throwsWithLatin1(self, input):
- self.assertRaises(UnicodeEncodeError, serialize_html, input, {"encoding": "iso-8859-1"})
-
- def testDoctypeName(self):
- self.throwsWithLatin1([["Doctype", "\u0101"]])
-
- def testDoctypePublicId(self):
- self.throwsWithLatin1([["Doctype", "potato", "\u0101"]])
-
- def testDoctypeSystemId(self):
- self.throwsWithLatin1([["Doctype", "potato", "potato", "\u0101"]])
-
- def testCdataCharacters(self):
- runSerializerTest([["StartTag", "http://www.w3.org/1999/xhtml", "style", {}], ["Characters", "\u0101"]],
- ["<style>&amacr;"], {"encoding": "iso-8859-1"})
-
- def testCharacters(self):
- runSerializerTest([["Characters", "\u0101"]],
- ["&amacr;"], {"encoding": "iso-8859-1"})
-
- def testStartTagName(self):
- self.throwsWithLatin1([["StartTag", "http://www.w3.org/1999/xhtml", "\u0101", []]])
-
- def testEmptyTagName(self):
- self.throwsWithLatin1([["EmptyTag", "http://www.w3.org/1999/xhtml", "\u0101", []]])
-
- def testAttributeName(self):
- self.throwsWithLatin1([["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": None, "name": "\u0101", "value": "potato"}]]])
-
- def testAttributeValue(self):
- runSerializerTest([["StartTag", "http://www.w3.org/1999/xhtml", "span",
- [{"namespace": None, "name": "potato", "value": "\u0101"}]]],
- ["<span potato=&amacr;>"], {"encoding": "iso-8859-1"})
-
- def testEndTagName(self):
- self.throwsWithLatin1([["EndTag", "http://www.w3.org/1999/xhtml", "\u0101"]])
-
- def testComment(self):
- self.throwsWithLatin1([["Comment", "\u0101"]])
-
-
-if "lxml" in optionals_loaded:
- class LxmlTestCase(unittest.TestCase):
- def setUp(self):
- self.parser = etree.XMLParser(resolve_entities=False)
- self.treewalker = html5lib.getTreeWalker("lxml")
- self.serializer = HTMLSerializer()
-
- def testEntityReplacement(self):
- doc = """<!DOCTYPE html SYSTEM "about:legacy-compat"><html>&beta;</html>"""
- tree = etree.fromstring(doc, parser=self.parser).getroottree()
- result = serialize(tree, tree="lxml", omit_optional_tags=False)
- self.assertEqual("""<!DOCTYPE html SYSTEM "about:legacy-compat"><html>\u03B2</html>""", result)
-
- def testEntityXML(self):
- doc = """<!DOCTYPE html SYSTEM "about:legacy-compat"><html>&gt;</html>"""
- tree = etree.fromstring(doc, parser=self.parser).getroottree()
- result = serialize(tree, tree="lxml", omit_optional_tags=False)
- self.assertEqual("""<!DOCTYPE html SYSTEM "about:legacy-compat"><html>&gt;</html>""", result)
-
- def testEntityNoResolve(self):
- doc = """<!DOCTYPE html SYSTEM "about:legacy-compat"><html>&beta;</html>"""
- tree = etree.fromstring(doc, parser=self.parser).getroottree()
- result = serialize(tree, tree="lxml", omit_optional_tags=False,
- resolve_entities=False)
- self.assertEqual("""<!DOCTYPE html SYSTEM "about:legacy-compat"><html>&beta;</html>""", result)
-
-
-def test_serializer():
- for filename in get_data_files('serializer', '*.test'):
- with open(filename) as fp:
- tests = json.load(fp)
- for index, test in enumerate(tests['tests']):
- yield runSerializerTest, test["input"], test["expected"], test.get("options", {})
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_stream.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_stream.py
deleted file mode 100644
index 2a876c1dbfd..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_stream.py
+++ /dev/null
@@ -1,183 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-from . import support # flake8: noqa
-import unittest
-import codecs
-from io import BytesIO
-
-from six.moves import http_client
-
-from html5lib.inputstream import (BufferedStream, HTMLInputStream,
- HTMLUnicodeInputStream, HTMLBinaryInputStream)
-
-class BufferedStreamTest(unittest.TestCase):
- def test_basic(self):
- s = b"abc"
- fp = BufferedStream(BytesIO(s))
- read = fp.read(10)
- assert read == s
-
- def test_read_length(self):
- fp = BufferedStream(BytesIO(b"abcdef"))
- read1 = fp.read(1)
- assert read1 == b"a"
- read2 = fp.read(2)
- assert read2 == b"bc"
- read3 = fp.read(3)
- assert read3 == b"def"
- read4 = fp.read(4)
- assert read4 == b""
-
- def test_tell(self):
- fp = BufferedStream(BytesIO(b"abcdef"))
- read1 = fp.read(1)
- assert fp.tell() == 1
- read2 = fp.read(2)
- assert fp.tell() == 3
- read3 = fp.read(3)
- assert fp.tell() == 6
- read4 = fp.read(4)
- assert fp.tell() == 6
-
- def test_seek(self):
- fp = BufferedStream(BytesIO(b"abcdef"))
- read1 = fp.read(1)
- assert read1 == b"a"
- fp.seek(0)
- read2 = fp.read(1)
- assert read2 == b"a"
- read3 = fp.read(2)
- assert read3 == b"bc"
- fp.seek(2)
- read4 = fp.read(2)
- assert read4 == b"cd"
- fp.seek(4)
- read5 = fp.read(2)
- assert read5 == b"ef"
-
- def test_seek_tell(self):
- fp = BufferedStream(BytesIO(b"abcdef"))
- read1 = fp.read(1)
- assert fp.tell() == 1
- fp.seek(0)
- read2 = fp.read(1)
- assert fp.tell() == 1
- read3 = fp.read(2)
- assert fp.tell() == 3
- fp.seek(2)
- read4 = fp.read(2)
- assert fp.tell() == 4
- fp.seek(4)
- read5 = fp.read(2)
- assert fp.tell() == 6
-
-
-class HTMLUnicodeInputStreamShortChunk(HTMLUnicodeInputStream):
- _defaultChunkSize = 2
-
-
-class HTMLBinaryInputStreamShortChunk(HTMLBinaryInputStream):
- _defaultChunkSize = 2
-
-
-class HTMLInputStreamTest(unittest.TestCase):
-
- def test_char_ascii(self):
- stream = HTMLInputStream(b"'", encoding='ascii')
- self.assertEqual(stream.charEncoding[0], 'ascii')
- self.assertEqual(stream.char(), "'")
-
- def test_char_utf8(self):
- stream = HTMLInputStream('\u2018'.encode('utf-8'), encoding='utf-8')
- self.assertEqual(stream.charEncoding[0], 'utf-8')
- self.assertEqual(stream.char(), '\u2018')
-
- def test_char_win1252(self):
- stream = HTMLInputStream("\xa9\xf1\u2019".encode('windows-1252'))
- self.assertEqual(stream.charEncoding[0], 'windows-1252')
- self.assertEqual(stream.char(), "\xa9")
- self.assertEqual(stream.char(), "\xf1")
- self.assertEqual(stream.char(), "\u2019")
-
- def test_bom(self):
- stream = HTMLInputStream(codecs.BOM_UTF8 + b"'")
- self.assertEqual(stream.charEncoding[0], 'utf-8')
- self.assertEqual(stream.char(), "'")
-
- def test_utf_16(self):
- stream = HTMLInputStream((' ' * 1025).encode('utf-16'))
- self.assertTrue(stream.charEncoding[0] in ['utf-16-le', 'utf-16-be'], stream.charEncoding)
- self.assertEqual(len(stream.charsUntil(' ', True)), 1025)
-
- def test_newlines(self):
- stream = HTMLBinaryInputStreamShortChunk(codecs.BOM_UTF8 + b"a\nbb\r\nccc\rddddxe")
- self.assertEqual(stream.position(), (1, 0))
- self.assertEqual(stream.charsUntil('c'), "a\nbb\n")
- self.assertEqual(stream.position(), (3, 0))
- self.assertEqual(stream.charsUntil('x'), "ccc\ndddd")
- self.assertEqual(stream.position(), (4, 4))
- self.assertEqual(stream.charsUntil('e'), "x")
- self.assertEqual(stream.position(), (4, 5))
-
- def test_newlines2(self):
- size = HTMLUnicodeInputStream._defaultChunkSize
- stream = HTMLInputStream("\r" * size + "\n")
- self.assertEqual(stream.charsUntil('x'), "\n" * size)
-
- def test_position(self):
- stream = HTMLBinaryInputStreamShortChunk(codecs.BOM_UTF8 + b"a\nbb\nccc\nddde\nf\ngh")
- self.assertEqual(stream.position(), (1, 0))
- self.assertEqual(stream.charsUntil('c'), "a\nbb\n")
- self.assertEqual(stream.position(), (3, 0))
- stream.unget("\n")
- self.assertEqual(stream.position(), (2, 2))
- self.assertEqual(stream.charsUntil('c'), "\n")
- self.assertEqual(stream.position(), (3, 0))
- stream.unget("\n")
- self.assertEqual(stream.position(), (2, 2))
- self.assertEqual(stream.char(), "\n")
- self.assertEqual(stream.position(), (3, 0))
- self.assertEqual(stream.charsUntil('e'), "ccc\nddd")
- self.assertEqual(stream.position(), (4, 3))
- self.assertEqual(stream.charsUntil('h'), "e\nf\ng")
- self.assertEqual(stream.position(), (6, 1))
-
- def test_position2(self):
- stream = HTMLUnicodeInputStreamShortChunk("abc\nd")
- self.assertEqual(stream.position(), (1, 0))
- self.assertEqual(stream.char(), "a")
- self.assertEqual(stream.position(), (1, 1))
- self.assertEqual(stream.char(), "b")
- self.assertEqual(stream.position(), (1, 2))
- self.assertEqual(stream.char(), "c")
- self.assertEqual(stream.position(), (1, 3))
- self.assertEqual(stream.char(), "\n")
- self.assertEqual(stream.position(), (2, 0))
- self.assertEqual(stream.char(), "d")
- self.assertEqual(stream.position(), (2, 1))
-
- def test_python_issue_20007(self):
- """
- Make sure we have a work-around for Python bug #20007
- http://bugs.python.org/issue20007
- """
- class FakeSocket(object):
- def makefile(self, _mode, _bufsize=None):
- return BytesIO(b"HTTP/1.1 200 Ok\r\n\r\nText")
-
- source = http_client.HTTPResponse(FakeSocket())
- source.begin()
- stream = HTMLInputStream(source)
- self.assertEqual(stream.charsUntil(" "), "Text")
-
-
-def buildTestSuite():
- return unittest.defaultTestLoader.loadTestsFromName(__name__)
-
-
-def main():
- buildTestSuite()
- unittest.main()
-
-if __name__ == '__main__':
- main()
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_treewalkers.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_treewalkers.py
deleted file mode 100644
index b7756035c26..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_treewalkers.py
+++ /dev/null
@@ -1,353 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-import os
-import sys
-import unittest
-import warnings
-from difflib import unified_diff
-
-try:
- unittest.TestCase.assertEqual
-except AttributeError:
- unittest.TestCase.assertEqual = unittest.TestCase.assertEquals
-
-from .support import get_data_files, TestData, convertExpected
-
-from html5lib import html5parser, treewalkers, treebuilders, constants
-
-
-def PullDOMAdapter(node):
- from xml.dom import Node
- from xml.dom.pulldom import START_ELEMENT, END_ELEMENT, COMMENT, CHARACTERS
-
- if node.nodeType in (Node.DOCUMENT_NODE, Node.DOCUMENT_FRAGMENT_NODE):
- for childNode in node.childNodes:
- for event in PullDOMAdapter(childNode):
- yield event
-
- elif node.nodeType == Node.DOCUMENT_TYPE_NODE:
- raise NotImplementedError("DOCTYPE nodes are not supported by PullDOM")
-
- elif node.nodeType == Node.COMMENT_NODE:
- yield COMMENT, node
-
- elif node.nodeType in (Node.TEXT_NODE, Node.CDATA_SECTION_NODE):
- yield CHARACTERS, node
-
- elif node.nodeType == Node.ELEMENT_NODE:
- yield START_ELEMENT, node
- for childNode in node.childNodes:
- for event in PullDOMAdapter(childNode):
- yield event
- yield END_ELEMENT, node
-
- else:
- raise NotImplementedError("Node type not supported: " + str(node.nodeType))
-
-treeTypes = {
- "DOM": {"builder": treebuilders.getTreeBuilder("dom"),
- "walker": treewalkers.getTreeWalker("dom")},
- "PullDOM": {"builder": treebuilders.getTreeBuilder("dom"),
- "adapter": PullDOMAdapter,
- "walker": treewalkers.getTreeWalker("pulldom")},
-}
-
-# Try whatever etree implementations are available from a list that are
-#"supposed" to work
-try:
- import xml.etree.ElementTree as ElementTree
-except ImportError:
- pass
-else:
- treeTypes['ElementTree'] = \
- {"builder": treebuilders.getTreeBuilder("etree", ElementTree),
- "walker": treewalkers.getTreeWalker("etree", ElementTree)}
-
-try:
- import xml.etree.cElementTree as ElementTree
-except ImportError:
- pass
-else:
- treeTypes['cElementTree'] = \
- {"builder": treebuilders.getTreeBuilder("etree", ElementTree),
- "walker": treewalkers.getTreeWalker("etree", ElementTree)}
-
-
-try:
- import lxml.etree as ElementTree # flake8: noqa
-except ImportError:
- pass
-else:
- treeTypes['lxml_native'] = \
- {"builder": treebuilders.getTreeBuilder("lxml"),
- "walker": treewalkers.getTreeWalker("lxml")}
-
-
-try:
- from genshi.core import QName, Attrs
- from genshi.core import START, END, TEXT, COMMENT, DOCTYPE
-except ImportError:
- pass
-else:
- def GenshiAdapter(tree):
- text = None
- for token in treewalkers.getTreeWalker("dom")(tree):
- type = token["type"]
- if type in ("Characters", "SpaceCharacters"):
- if text is None:
- text = token["data"]
- else:
- text += token["data"]
- elif text is not None:
- yield TEXT, text, (None, -1, -1)
- text = None
-
- if type in ("StartTag", "EmptyTag"):
- if token["namespace"]:
- name = "{%s}%s" % (token["namespace"], token["name"])
- else:
- name = token["name"]
- attrs = Attrs([(QName("{%s}%s" % attr if attr[0] is not None else attr[1]), value)
- for attr, value in token["data"].items()])
- yield (START, (QName(name), attrs), (None, -1, -1))
- if type == "EmptyTag":
- type = "EndTag"
-
- if type == "EndTag":
- if token["namespace"]:
- name = "{%s}%s" % (token["namespace"], token["name"])
- else:
- name = token["name"]
-
- yield END, QName(name), (None, -1, -1)
-
- elif type == "Comment":
- yield COMMENT, token["data"], (None, -1, -1)
-
- elif type == "Doctype":
- yield DOCTYPE, (token["name"], token["publicId"],
- token["systemId"]), (None, -1, -1)
-
- else:
- pass # FIXME: What to do?
-
- if text is not None:
- yield TEXT, text, (None, -1, -1)
-
- treeTypes["genshi"] = \
- {"builder": treebuilders.getTreeBuilder("dom"),
- "adapter": GenshiAdapter,
- "walker": treewalkers.getTreeWalker("genshi")}
-
-
-def concatenateCharacterTokens(tokens):
- charactersToken = None
- for token in tokens:
- type = token["type"]
- if type in ("Characters", "SpaceCharacters"):
- if charactersToken is None:
- charactersToken = {"type": "Characters", "data": token["data"]}
- else:
- charactersToken["data"] += token["data"]
- else:
- if charactersToken is not None:
- yield charactersToken
- charactersToken = None
- yield token
- if charactersToken is not None:
- yield charactersToken
-
-
-def convertTokens(tokens):
- output = []
- indent = 0
- for token in concatenateCharacterTokens(tokens):
- type = token["type"]
- if type in ("StartTag", "EmptyTag"):
- if (token["namespace"] and
- token["namespace"] != constants.namespaces["html"]):
- if token["namespace"] in constants.prefixes:
- name = constants.prefixes[token["namespace"]]
- else:
- name = token["namespace"]
- name += " " + token["name"]
- else:
- name = token["name"]
- output.append("%s<%s>" % (" " * indent, name))
- indent += 2
- attrs = token["data"]
- if attrs:
- # TODO: Remove this if statement, attrs should always exist
- for (namespace, name), value in sorted(attrs.items()):
- if namespace:
- if namespace in constants.prefixes:
- outputname = constants.prefixes[namespace]
- else:
- outputname = namespace
- outputname += " " + name
- else:
- outputname = name
- output.append("%s%s=\"%s\"" % (" " * indent, outputname, value))
- if type == "EmptyTag":
- indent -= 2
- elif type == "EndTag":
- indent -= 2
- elif type == "Comment":
- output.append("%s<!-- %s -->" % (" " * indent, token["data"]))
- elif type == "Doctype":
- if token["name"]:
- if token["publicId"]:
- output.append("""%s<!DOCTYPE %s "%s" "%s">""" %
- (" " * indent, token["name"],
- token["publicId"],
- token["systemId"] and token["systemId"] or ""))
- elif token["systemId"]:
- output.append("""%s<!DOCTYPE %s "" "%s">""" %
- (" " * indent, token["name"],
- token["systemId"]))
- else:
- output.append("%s<!DOCTYPE %s>" % (" " * indent,
- token["name"]))
- else:
- output.append("%s<!DOCTYPE >" % (" " * indent,))
- elif type in ("Characters", "SpaceCharacters"):
- output.append("%s\"%s\"" % (" " * indent, token["data"]))
- else:
- pass # TODO: what to do with errors?
- return "\n".join(output)
-
-import re
-attrlist = re.compile(r"^(\s+)\w+=.*(\n\1\w+=.*)+", re.M)
-
-
-def sortattrs(x):
- lines = x.group(0).split("\n")
- lines.sort()
- return "\n".join(lines)
-
-
-class TokenTestCase(unittest.TestCase):
- def test_all_tokens(self):
- expected = [
- {'data': {}, 'type': 'StartTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'html'},
- {'data': {}, 'type': 'StartTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'head'},
- {'data': {}, 'type': 'EndTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'head'},
- {'data': {}, 'type': 'StartTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'body'},
- {'data': 'a', 'type': 'Characters'},
- {'data': {}, 'type': 'StartTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'div'},
- {'data': 'b', 'type': 'Characters'},
- {'data': {}, 'type': 'EndTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'div'},
- {'data': 'c', 'type': 'Characters'},
- {'data': {}, 'type': 'EndTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'body'},
- {'data': {}, 'type': 'EndTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'html'}
- ]
- for treeName, treeCls in treeTypes.items():
- p = html5parser.HTMLParser(tree=treeCls["builder"])
- document = p.parse("<html><head></head><body>a<div>b</div>c</body></html>")
- document = treeCls.get("adapter", lambda x: x)(document)
- output = treeCls["walker"](document)
- for expectedToken, outputToken in zip(expected, output):
- self.assertEqual(expectedToken, outputToken)
-
-
-def runTreewalkerTest(innerHTML, input, expected, errors, treeClass):
- warnings.resetwarnings()
- warnings.simplefilter("error")
- try:
- p = html5parser.HTMLParser(tree=treeClass["builder"])
- if innerHTML:
- document = p.parseFragment(input, innerHTML)
- else:
- document = p.parse(input)
- except constants.DataLossWarning:
- # Ignore testcases we know we don't pass
- return
-
- document = treeClass.get("adapter", lambda x: x)(document)
- try:
- output = convertTokens(treeClass["walker"](document))
- output = attrlist.sub(sortattrs, output)
- expected = attrlist.sub(sortattrs, convertExpected(expected))
- diff = "".join(unified_diff([line + "\n" for line in expected.splitlines()],
- [line + "\n" for line in output.splitlines()],
- "Expected", "Received"))
- assert expected == output, "\n".join([
- "", "Input:", input,
- "", "Expected:", expected,
- "", "Received:", output,
- "", "Diff:", diff,
- ])
- except NotImplementedError:
- pass # Amnesty for those that confess...
-
-
-def test_treewalker():
- sys.stdout.write('Testing tree walkers ' + " ".join(list(treeTypes.keys())) + "\n")
-
- for treeName, treeCls in treeTypes.items():
- files = get_data_files('tree-construction')
- for filename in files:
- testName = os.path.basename(filename).replace(".dat", "")
- if testName in ("template",):
- continue
-
- tests = TestData(filename, "data")
-
- for index, test in enumerate(tests):
- (input, errors,
- innerHTML, expected) = [test[key] for key in ("data", "errors",
- "document-fragment",
- "document")]
- errors = errors.split("\n")
- yield runTreewalkerTest, innerHTML, input, expected, errors, treeCls
-
-
-def set_attribute_on_first_child(docfrag, name, value, treeName):
- """naively sets an attribute on the first child of the document
- fragment passed in"""
- setter = {'ElementTree': lambda d: d[0].set,
- 'DOM': lambda d: d.firstChild.setAttribute}
- setter['cElementTree'] = setter['ElementTree']
- try:
- setter.get(treeName, setter['DOM'])(docfrag)(name, value)
- except AttributeError:
- setter['ElementTree'](docfrag)(name, value)
-
-
-def runTreewalkerEditTest(intext, expected, attrs_to_add, tree):
- """tests what happens when we add attributes to the intext"""
- treeName, treeClass = tree
- parser = html5parser.HTMLParser(tree=treeClass["builder"])
- document = parser.parseFragment(intext)
- for nom, val in attrs_to_add:
- set_attribute_on_first_child(document, nom, val, treeName)
-
- document = treeClass.get("adapter", lambda x: x)(document)
- output = convertTokens(treeClass["walker"](document))
- output = attrlist.sub(sortattrs, output)
- if not output in expected:
- raise AssertionError("TreewalkerEditTest: %s\nExpected:\n%s\nReceived:\n%s" % (treeName, expected, output))
-
-
-def test_treewalker_six_mix():
- """Str/Unicode mix. If str attrs added to tree"""
-
- # On Python 2.x string literals are of type str. Unless, like this
- # file, the programmer imports unicode_literals from __future__.
- # In that case, string literals become objects of type unicode.
-
- # This test simulates a Py2 user, modifying attributes on a document
- # fragment but not using the u'' syntax nor importing unicode_literals
- sm_tests = [
- ('<a href="http://example.com">Example</a>',
- [(str('class'), str('test123'))],
- '<a>\n class="test123"\n href="http://example.com"\n "Example"'),
-
- ('<link href="http://example.com/cow">',
- [(str('rel'), str('alternate'))],
- '<link>\n href="http://example.com/cow"\n rel="alternate"\n "Example"')
- ]
-
- for tree in treeTypes.items():
- for intext, attrs, expected in sm_tests:
- yield runTreewalkerEditTest, intext, expected, attrs, tree
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_whitespace_filter.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_whitespace_filter.py
deleted file mode 100644
index 9ed27fd6ac0..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_whitespace_filter.py
+++ /dev/null
@@ -1,133 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-import unittest
-
-from html5lib.filters.whitespace import Filter
-from html5lib.constants import spaceCharacters
-spaceCharacters = "".join(spaceCharacters)
-
-try:
- unittest.TestCase.assertEqual
-except AttributeError:
- unittest.TestCase.assertEqual = unittest.TestCase.assertEquals
-
-
-class TestCase(unittest.TestCase):
- def runTest(self, input, expected):
- output = list(Filter(input))
- errorMsg = "\n".join(["\n\nInput:", str(input),
- "\nExpected:", str(expected),
- "\nReceived:", str(output)])
- self.assertEqual(output, expected, errorMsg)
-
- def runTestUnmodifiedOutput(self, input):
- self.runTest(input, input)
-
- def testPhrasingElements(self):
- self.runTestUnmodifiedOutput(
- [{"type": "Characters", "data": "This is a "},
- {"type": "StartTag", "name": "span", "data": []},
- {"type": "Characters", "data": "phrase"},
- {"type": "EndTag", "name": "span", "data": []},
- {"type": "SpaceCharacters", "data": " "},
- {"type": "Characters", "data": "with"},
- {"type": "SpaceCharacters", "data": " "},
- {"type": "StartTag", "name": "em", "data": []},
- {"type": "Characters", "data": "emphasised text"},
- {"type": "EndTag", "name": "em", "data": []},
- {"type": "Characters", "data": " and an "},
- {"type": "StartTag", "name": "img", "data": [["alt", "image"]]},
- {"type": "Characters", "data": "."}])
-
- def testLeadingWhitespace(self):
- self.runTest(
- [{"type": "StartTag", "name": "p", "data": []},
- {"type": "SpaceCharacters", "data": spaceCharacters},
- {"type": "Characters", "data": "foo"},
- {"type": "EndTag", "name": "p", "data": []}],
- [{"type": "StartTag", "name": "p", "data": []},
- {"type": "SpaceCharacters", "data": " "},
- {"type": "Characters", "data": "foo"},
- {"type": "EndTag", "name": "p", "data": []}])
-
- def testLeadingWhitespaceAsCharacters(self):
- self.runTest(
- [{"type": "StartTag", "name": "p", "data": []},
- {"type": "Characters", "data": spaceCharacters + "foo"},
- {"type": "EndTag", "name": "p", "data": []}],
- [{"type": "StartTag", "name": "p", "data": []},
- {"type": "Characters", "data": " foo"},
- {"type": "EndTag", "name": "p", "data": []}])
-
- def testTrailingWhitespace(self):
- self.runTest(
- [{"type": "StartTag", "name": "p", "data": []},
- {"type": "Characters", "data": "foo"},
- {"type": "SpaceCharacters", "data": spaceCharacters},
- {"type": "EndTag", "name": "p", "data": []}],
- [{"type": "StartTag", "name": "p", "data": []},
- {"type": "Characters", "data": "foo"},
- {"type": "SpaceCharacters", "data": " "},
- {"type": "EndTag", "name": "p", "data": []}])
-
- def testTrailingWhitespaceAsCharacters(self):
- self.runTest(
- [{"type": "StartTag", "name": "p", "data": []},
- {"type": "Characters", "data": "foo" + spaceCharacters},
- {"type": "EndTag", "name": "p", "data": []}],
- [{"type": "StartTag", "name": "p", "data": []},
- {"type": "Characters", "data": "foo "},
- {"type": "EndTag", "name": "p", "data": []}])
-
- def testWhitespace(self):
- self.runTest(
- [{"type": "StartTag", "name": "p", "data": []},
- {"type": "Characters", "data": "foo" + spaceCharacters + "bar"},
- {"type": "EndTag", "name": "p", "data": []}],
- [{"type": "StartTag", "name": "p", "data": []},
- {"type": "Characters", "data": "foo bar"},
- {"type": "EndTag", "name": "p", "data": []}])
-
- def testLeadingWhitespaceInPre(self):
- self.runTestUnmodifiedOutput(
- [{"type": "StartTag", "name": "pre", "data": []},
- {"type": "SpaceCharacters", "data": spaceCharacters},
- {"type": "Characters", "data": "foo"},
- {"type": "EndTag", "name": "pre", "data": []}])
-
- def testLeadingWhitespaceAsCharactersInPre(self):
- self.runTestUnmodifiedOutput(
- [{"type": "StartTag", "name": "pre", "data": []},
- {"type": "Characters", "data": spaceCharacters + "foo"},
- {"type": "EndTag", "name": "pre", "data": []}])
-
- def testTrailingWhitespaceInPre(self):
- self.runTestUnmodifiedOutput(
- [{"type": "StartTag", "name": "pre", "data": []},
- {"type": "Characters", "data": "foo"},
- {"type": "SpaceCharacters", "data": spaceCharacters},
- {"type": "EndTag", "name": "pre", "data": []}])
-
- def testTrailingWhitespaceAsCharactersInPre(self):
- self.runTestUnmodifiedOutput(
- [{"type": "StartTag", "name": "pre", "data": []},
- {"type": "Characters", "data": "foo" + spaceCharacters},
- {"type": "EndTag", "name": "pre", "data": []}])
-
- def testWhitespaceInPre(self):
- self.runTestUnmodifiedOutput(
- [{"type": "StartTag", "name": "pre", "data": []},
- {"type": "Characters", "data": "foo" + spaceCharacters + "bar"},
- {"type": "EndTag", "name": "pre", "data": []}])
-
-
-def buildTestSuite():
- return unittest.defaultTestLoader.loadTestsFromName(__name__)
-
-
-def main():
- buildTestSuite()
- unittest.main()
-
-if __name__ == "__main__":
- main()
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/AUTHORS.rst b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/AUTHORS.rst
deleted file mode 100644
index 4a7de17ad45..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/AUTHORS.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-Credits
-=======
-
-The ``html5lib`` test data is maintained by:
-
-- James Graham
-- Geoffrey Sneddon
-
-
-Contributors
-------------
-
-- Adam Barth
-- Andi Sidwell
-- Anne van Kesteren
-- David Flanagan
-- Edward Z. Yang
-- Geoffrey Sneddon
-- Henri Sivonen
-- Ian Hickson
-- Jacques Distler
-- James Graham
-- Lachlan Hunt
-- lantis63
-- Mark Pilgrim
-- Mats Palmgren
-- Ms2ger
-- Nolan Waite
-- Philip Taylor
-- Rafael Weinstein
-- Ryan King
-- Sam Ruby
-- Simon Pieters
-- Thomas Broyer
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/LICENSE b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/LICENSE
deleted file mode 100644
index 8812371b41c..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-Copyright (c) 2006-2013 James Graham, Geoffrey Sneddon, and
-other contributors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/chardet/test_big5.txt b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/chardet/test_big5.txt
deleted file mode 100644
index 91074c98d21..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/chardet/test_big5.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-ѤlmDwgn Ĥ@~|Q
-
-ѤlDg
-
-Ĥ@
-
-DiDAD`DCWiWAD`WCLAWѦalQAWUC
-G`LAH[䧮F`AH[uC̡APXӲWAPפ
-ȡCȤSȡAC
-
-ĤG
-
-ѤUҪAcoQҪAoCGLۥ͡A
-ۦAuۧΡAU۶ɡAn۩MAeHCOHtHBuL
-vơAuvСCU@jӤAͦӤAӤA\
-ӥ~CҰߥ~AOHhC
-
-ĤT
-
-|AϥQQofAϥsQiAϥߤ
-COHutHvvAߡA両AzӡAj䰩C`ϥLL
-CϤҴ̤]CuLvAhLvC
-
-ĥ|
-
-uDvRAӥΤΤաCWAUvQUAѨɡAM
-APСQ祿ΦsC^֤lHHҤC
-
-
-ѦaAHU쪯QtHAHʩm쪯CѦaAS
-GHӤ}AʦӷUXChƽaApuC
-
-
-AOץȦɡCȦɤAOפѦaڡCYsAΤԡC
-
-ĤC
-
-Ѫa[CѦaҥHB[̡AH䤣ۥ͡AG[COHtH
-ӨA~䨭ӨsCDHLpHGনpC
-
-ĤK
-
-WYCQUӤCBHҴcAGXDC~aAߵ
-WAPAHAFvAƵAʵɡCҰߤAGLסC
-
-ĤE
-
-ӬդApwQӾUAiOCɺAuQIQ
-źAۿSC\EhAѤDC
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/test-yahoo-jp.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/test-yahoo-jp.dat
deleted file mode 100644
index 3c25ecb2b1b..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/test-yahoo-jp.dat
+++ /dev/null
@@ -1,10 +0,0 @@
-#data
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
-<!--京-->
-<title>Yahoo! JAPAN</title>
-<meta name="description" content="日本最大級のポータルサイト。検索、オークション、ニュース、メール、コミュニティ、ショッピング、など80以上のサービスを展開。あなたの生活をより豊かにする「ライフ・エンジン」を目指していきます。">
-<style type="text/css" media="all">
-#encoding
-euc_jp
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/tests1.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/tests1.dat
deleted file mode 100644
index 5b585e735f1..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/tests1.dat
+++ /dev/null
@@ -1,394 +0,0 @@
-#data
-<!DOCTYPE HTML>
-<!-- (control test - for the other tests to work, this should pass - you may have to set your defaults appropriately) -->
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta charset="ISO-8859-1">
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta charset="iso8859-2">
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<meta charset='iso8859-2'>
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<meta charset=iso8859-2>
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<meta
-charset=iso8859-2>
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<metacharset=iso8859-2>
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta http-equiv="Content-Type" content="text/html; charset=iso8859-2">
-<!-- XXX this is a tough one, not sure how to do this one, unless we explictly do content= processing -->
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<meta content="text/html; charset=iso8859-2" http-equiv="Content-Type">
-<!-- XXX this is a tough one, not sure how to do this one, unless we explictly do content= processing -->
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<meta http-equiv="Content-Type" content=text/html; charset=iso8859-2>
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<meta http-equiv="Content-Type content="text/html; charset=iso8859-2">
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<meta http-equiv="Content-Type " content="text/html; charset=iso8859-2">
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta content="text/html; charset=iso8859-2" http-equiv="Content-Type ">
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta http-equiv="Content-Type>" content="text/html; charset=iso8859-2">
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta content="text/html; charset=iso8859-2" http-equiv="Content-Type>">
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta http-equiv="Content-Style-Type" content="text/html; charset=iso8859-2">
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta content="text/html; charset=iso8859-2" http-equiv="Content-Style-Type">
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta name="Content-Style-Type" content="text/html; charset=iso8859-2">
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta content="text/html; charset=iso8859-2" name="Content-Style-Type">
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta content="text/html; charset=iso8859-2">
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta content=" text/html; charset = iso8859-2 ">
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta content="
-text/html; charset=iso8859-2
-" http-equiv="Content-Type">
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<meta charset="
-iso8859-2
-">
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<meta charset=
-iso8859-2
->
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<meta charset="iso8859-2>
-<p>"</p>
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta charset=iso8859-2">
-<p>"</p>
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<meta " charset=iso8859-2>
-<p>"</p>
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<meta test" charset=iso8859-2>
-<p>"</p>
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<meta test=" charset=iso8859-2>
-<p>"</p>
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta test="' charset=iso8859-2>
-<p>"'</p>
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta test='" charset=iso8859-2>
-<p>'"</p>
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta test="" charset=iso8859-2>
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<meta test=x" charset=iso8859-2>
-<p>"</p>
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<head></head><p title="x>
-<meta test=x" charset=iso8859-2>
-<p>"</p>
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<head></head><p title="x>
-<meta test=x charset=iso8859-2>
-<p>"</p>
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<head></head><p title="x>
-<meta charset=iso8859-2>
-<p>"</p>
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<head></head><p title="x>">
-<meta charset=iso8859-2>
-<p>"</p>
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<meta charset="ISO-8859-1">
-<meta charset="iso8859-2">
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<meta charset="iso8859-2">
-<meta charset="ISO-8859-1">
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<!--<meta charset="ISO-8859-1">-->
-<meta charset="iso8859-2">
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<!--<meta charset="iso8859-2">-->
-<meta charset="ISO-8859-1">
-#encoding
-Windows-1252
-
-#data
-<!DOCTYPE HTML>
-<!-- Starts with UTF-8 BOM -->
-#encoding
-UTF-8
-
-#data
-<!DOCTYPE HTML>
-<meta charset="ISO-8859-1">
-<!-- Starts with UTF-8 BOM -->
-#encoding
-UTF-8
-
-#data
-<!-- 511 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
-<meta charset="iso8859-2">
-#encoding
-iso8859-2
-
-#data
-<!-- 512 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
-<meta charset="iso8859-2">
-#encoding
-iso8859-2
-
-#data
-<!-- 1024 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
-<meta charset="iso8859-2">
-#encoding
-iso8859-2
-
-#data
-<!-- 1025 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz-->
-<meta charset="iso8859-2">
-#encoding
-iso8859-2
-
-#data
-<!-- 2048 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
-<meta charset="iso8859-2">
-#encoding
-iso8859-2
-
-#data
-<!-- 2049 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz-->
-<meta charset="iso8859-2">
-#encoding
-iso8859-2
-
-#data
-<!-- 4096 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
-<meta charset="iso8859-2">
-#encoding
-iso8859-2
-
-#data
-<!-- 4097 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz-->
-<meta charset="iso8859-2">
-#encoding
-iso8859-2
-
-#data
-<!-- 8192 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
-<meta charset="iso8859-2">
-#encoding
-iso8859-2
-
-#data
-<!-- 8193 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz-->
-<meta charset="iso8859-2">
-#encoding
-iso8859-2
-
-#data
-<!-- multi-script test -->
-<script>alert('step 1 of 3 ("")')</script>
-<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-<script>alert('step 2 of 3 ("")')</script>
-<meta charset="iso8859-2">
-<script>alert('step 3 of 3 ("")')</script>
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<script>document.write('<meta charset="ISO-8859-' + '2">')</script>
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<script>document.write('<meta charset="iso8859-2">')</script>
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<script type="text/plain"><meta charset="iso8859-2"></script>
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<style type="text/plain"><meta charset="iso8859-2"></style>
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<p><meta charset="iso8859-2"></p>
-#encoding
-iso8859-2
-
-#data
-<!DOCTYPE HTML>
-<meta charset="bogus">
-<meta charset="iso8859-2">
-#encoding
-iso8859-2
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/tests2.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/tests2.dat
deleted file mode 100644
index eee44984d6b..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/tests2.dat
+++ /dev/null
@@ -1,115 +0,0 @@
-#data
-<meta
-#encoding
-windows-1252
-
-#data
-<
-#encoding
-windows-1252
-
-#data
-<!
-#encoding
-windows-1252
-
-#data
-<meta charset = "
-#encoding
-windows-1252
-
-#data
-<meta charset=euc_jp
-#encoding
-windows-1252
-
-#data
-<meta <meta charset='euc_jp'>
-#encoding
-euc_jp
-
-#data
-<meta charset = 'euc_jp'>
-#encoding
-euc_jp
-
-#data
-<!-- -->
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-#encoding
-utf-8
-
-#data
-<!-- -->
-<meta http-equiv="Content-Type" content="text/html; charset=utf
-#encoding
-windows-1252
-
-#data
-<meta http-equiv="Content-Type<meta charset="utf-8">
-#encoding
-windows-1252
-
-#data
-<meta http-equiv="Content-Type" content="text/html; charset='utf-8'">
-#encoding
-utf-8
-
-#data
-<meta http-equiv="Content-Type" content="text/html; charset='utf-8">
-#encoding
-windows-1252
-
-#data
-<meta
-#encoding
-windows-1252
-
-#data
-<meta charset =
-#encoding
-windows-1252
-
-#data
-<meta charset= utf-8
->
-#encoding
-utf-8
-
-#data
-<meta content = "text/html;
-#encoding
-windows-1252
-
-#data
-<meta charset="UTF-16">
-#encoding
-utf-8
-
-#data
-<meta charset="UTF-16LE">
-#encoding
-utf-8
-
-#data
-<meta charset="UTF-16BE">
-#encoding
-utf-8
-
-#data
-<html a=ñ>
-<meta charset="utf-8">
-#encoding
-utf-8
-
-#data
-<html ñ>
-<meta charset="utf-8">
-#encoding
-utf-8
-
-#data
-<html>ñ
-<meta charset="utf-8">
-#encoding
-utf-8
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/core.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/core.test
deleted file mode 100644
index c0b4222d2d9..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/core.test
+++ /dev/null
@@ -1,125 +0,0 @@
-{"tests": [
-
-{"description": "proper attribute value escaping",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "test \"with\" &quot;"}]]],
- "expected": ["<span title='test \"with\" &amp;quot;'>"]
-},
-
-{"description": "proper attribute value non-quoting",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo"}]]],
- "expected": ["<span title=foo>"],
- "xhtml": ["<span title=\"foo\">"]
-},
-
-{"description": "proper attribute value non-quoting (with <)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo<bar"}]]],
- "expected": ["<span title=foo<bar>"],
- "xhtml": ["<span title=\"foo&lt;bar\">"]
-},
-
-{"description": "proper attribute value quoting (with =)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo=bar"}]]],
- "expected": ["<span title=\"foo=bar\">"]
-},
-
-{"description": "proper attribute value quoting (with >)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo>bar"}]]],
- "expected": ["<span title=\"foo>bar\">"]
-},
-
-{"description": "proper attribute value quoting (with \")",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\"bar"}]]],
- "expected": ["<span title='foo\"bar'>"]
-},
-
-{"description": "proper attribute value quoting (with ')",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo'bar"}]]],
- "expected": ["<span title=\"foo'bar\">"]
-},
-
-{"description": "proper attribute value quoting (with both \" and ')",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo'bar\"baz"}]]],
- "expected": ["<span title=\"foo'bar&quot;baz\">"]
-},
-
-{"description": "proper attribute value quoting (with space)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo bar"}]]],
- "expected": ["<span title=\"foo bar\">"]
-},
-
-{"description": "proper attribute value quoting (with tab)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\tbar"}]]],
- "expected": ["<span title=\"foo\tbar\">"]
-},
-
-{"description": "proper attribute value quoting (with LF)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\nbar"}]]],
- "expected": ["<span title=\"foo\nbar\">"]
-},
-
-{"description": "proper attribute value quoting (with CR)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\rbar"}]]],
- "expected": ["<span title=\"foo\rbar\">"]
-},
-
-{"description": "proper attribute value non-quoting (with linetab)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\u000Bbar"}]]],
- "expected": ["<span title=foo\u000Bbar>"],
- "xhtml": ["<span title=\"foo\u000Bbar\">"]
-},
-
-{"description": "proper attribute value quoting (with form feed)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\u000Cbar"}]]],
- "expected": ["<span title=\"foo\u000Cbar\">"]
-},
-
-{"description": "void element (as EmptyTag token)",
- "input": [["EmptyTag", "img", {}]],
- "expected": ["<img>"],
- "xhtml": ["<img />"]
-},
-
-{"description": "void element (as StartTag token)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "img", {}]],
- "expected": ["<img>"],
- "xhtml": ["<img />"]
-},
-
-{"description": "doctype in error",
- "input": [["Doctype", "foo"]],
- "expected": ["<!DOCTYPE foo>"]
-},
-
-{"description": "character data",
- "options": {"encoding":"utf-8"},
- "input": [["Characters", "a<b>c&d"]],
- "expected": ["a&lt;b&gt;c&amp;d"]
-},
-
-{"description": "rcdata",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "script", {}], ["Characters", "a<b>c&d"]],
- "expected": ["<script>a<b>c&d"],
- "xhtml": ["<script>a&lt;b&gt;c&amp;d"]
-},
-
-{"description": "doctype",
- "input": [["Doctype", "HTML"]],
- "expected": ["<!DOCTYPE HTML>"]
-},
-
-{"description": "HTML 4.01 DOCTYPE",
- "input": [["Doctype", "HTML", "-//W3C//DTD HTML 4.01//EN", "http://www.w3.org/TR/html4/strict.dtd"]],
- "expected": ["<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">"]
-},
-
-{"description": "HTML 4.01 DOCTYPE without system identifer",
- "input": [["Doctype", "HTML", "-//W3C//DTD HTML 4.01//EN"]],
- "expected": ["<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">"]
-},
-
-{"description": "IBM DOCTYPE without public identifer",
- "input": [["Doctype", "html", "", "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"]],
- "expected": ["<!DOCTYPE html SYSTEM \"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd\">"]
-}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/injectmeta.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/injectmeta.test
deleted file mode 100644
index feaaa44f839..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/injectmeta.test
+++ /dev/null
@@ -1,66 +0,0 @@
-{"tests": [
-
-{"description": "no encoding",
- "options": {"inject_meta_charset": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": [""],
- "xhtml": ["<head></head>"]
-},
-
-{"description": "empytag head",
- "options": {"inject_meta_charset": true, "encoding":"utf-8"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": ["<meta charset=utf-8>"],
- "xhtml": ["<head><meta charset=\"utf-8\" /></head>"]
-},
-
-{"description": "head w/title",
- "options": {"inject_meta_charset": true, "encoding":"utf-8"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["StartTag", "http://www.w3.org/1999/xhtml","title",{}], ["Characters", "foo"],["EndTag", "http://www.w3.org/1999/xhtml", "title"], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": ["<meta charset=utf-8><title>foo</title>"],
- "xhtml": ["<head><meta charset=\"utf-8\" /><title>foo</title></head>"]
-},
-
-{"description": "head w/meta-charset",
- "options": {"inject_meta_charset": true, "encoding":"utf-8"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "charset", "value": "ascii"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": ["<meta charset=utf-8>"],
- "xhtml": ["<head><meta charset=\"utf-8\" /></head>"]
-},
-
-{"description": "head w/ two meta-charset",
- "options": {"inject_meta_charset": true, "encoding":"utf-8"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "charset", "value": "ascii"}]], ["EmptyTag","meta",[{"namespace": null, "name": "charset", "value": "ascii"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": ["<meta charset=utf-8><meta charset=utf-8>", "<head><meta charset=utf-8><meta charset=ascii>"],
- "xhtml": ["<head><meta charset=\"utf-8\" /><meta charset=\"utf-8\" /></head>", "<head><meta charset=\"utf-8\" /><meta charset=\"ascii\" /></head>"]
-},
-
-{"description": "head w/robots",
- "options": {"inject_meta_charset": true, "encoding":"utf-8"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "name", "value": "robots"},{"namespace": null, "name": "content", "value": "noindex"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": ["<meta charset=utf-8><meta content=noindex name=robots>"],
- "xhtml": ["<head><meta charset=\"utf-8\" /><meta content=\"noindex\" name=\"robots\" /></head>"]
-},
-
-{"description": "head w/robots & charset",
- "options": {"inject_meta_charset": true, "encoding":"utf-8"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "name", "value": "robots"},{"namespace": null, "name": "content", "value": "noindex"}]], ["EmptyTag","meta",[{"namespace": null, "name": "charset", "value": "ascii"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": ["<meta content=noindex name=robots><meta charset=utf-8>"],
- "xhtml": ["<head><meta content=\"noindex\" name=\"robots\" /><meta charset=\"utf-8\" /></head>"]
-},
-
-{"description": "head w/ charset in http-equiv content-type",
- "options": {"inject_meta_charset": true, "encoding":"utf-8"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "http-equiv", "value": "content-type"}, {"namespace": null, "name": "content", "value": "text/html; charset=ascii"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": ["<meta content=\"text/html; charset=utf-8\" http-equiv=content-type>"],
- "xhtml": ["<head><meta content=\"text/html; charset=utf-8\" http-equiv=\"content-type\" /></head>"]
-},
-
-{"description": "head w/robots & charset in http-equiv content-type",
- "options": {"inject_meta_charset": true, "encoding":"utf-8"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "name", "value": "robots"},{"namespace": null, "name": "content", "value": "noindex"}]], ["EmptyTag","meta",[{"namespace": null, "name": "http-equiv", "value": "content-type"}, {"namespace": null, "name": "content", "value": "text/html; charset=ascii"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": ["<meta content=noindex name=robots><meta content=\"text/html; charset=utf-8\" http-equiv=content-type>"],
- "xhtml": ["<head><meta content=\"noindex\" name=\"robots\" /><meta content=\"text/html; charset=utf-8\" http-equiv=\"content-type\" /></head>"]
-}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/optionaltags.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/optionaltags.test
deleted file mode 100644
index 80a5edf8968..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/optionaltags.test
+++ /dev/null
@@ -1,965 +0,0 @@
-{"tests": [
-
-{"description": "html start-tag followed by text, with attributes",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", [{"namespace": null, "name": "lang", "value": "en"}]], ["Characters", "foo"]],
- "expected": ["<html lang=en>foo"]
-},
-
-
-
-{"description": "html start-tag followed by comment",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}], ["Comment", "foo"]],
- "expected": ["<html><!--foo-->"]
-},
-
-{"description": "html start-tag followed by space character",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}], ["Characters", " foo"]],
- "expected": ["<html> foo"]
-},
-
-{"description": "html start-tag followed by text",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}], ["Characters", "foo"]],
- "expected": ["foo"]
-},
-
-{"description": "html start-tag followed by start-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<foo>"]
-},
-
-{"description": "html start-tag followed by end-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "html start-tag at EOF (shouldn't ever happen?!)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}]],
- "expected": [""]
-},
-
-
-
-{"description": "html end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"], ["Comment", "foo"]],
- "expected": ["</html><!--foo-->"]
-},
-
-{"description": "html end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"], ["Characters", " foo"]],
- "expected": ["</html> foo"]
-},
-
-{"description": "html end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"], ["Characters", "foo"]],
- "expected": ["foo"]
-},
-
-{"description": "html end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<foo>"]
-},
-
-{"description": "html end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "html end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "head start-tag followed by comment",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["Comment", "foo"]],
- "expected": ["<head><!--foo-->"]
-},
-
-{"description": "head start-tag followed by space character",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["Characters", " foo"]],
- "expected": ["<head> foo"]
-},
-
-{"description": "head start-tag followed by text",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["Characters", "foo"]],
- "expected": ["<head>foo"]
-},
-
-{"description": "head start-tag followed by start-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<foo>"]
-},
-
-{"description": "head start-tag followed by end-tag (shouldn't ever happen?!)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["<head></foo>", "</foo>"]
-},
-
-{"description": "empty head element",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": [""]
-},
-
-{"description": "head start-tag followed by empty-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag", "foo", {}]],
- "expected": ["<foo>"]
-},
-
-{"description": "head start-tag at EOF (shouldn't ever happen?!)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}]],
- "expected": ["<head>", ""]
-},
-
-
-
-{"description": "head end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"], ["Comment", "foo"]],
- "expected": ["</head><!--foo-->"]
-},
-
-{"description": "head end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"], ["Characters", " foo"]],
- "expected": ["</head> foo"]
-},
-
-{"description": "head end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"], ["Characters", "foo"]],
- "expected": ["foo"]
-},
-
-{"description": "head end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<foo>"]
-},
-
-{"description": "head end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "head end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "body start-tag followed by comment",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}], ["Comment", "foo"]],
- "expected": ["<body><!--foo-->"]
-},
-
-{"description": "body start-tag followed by space character",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}], ["Characters", " foo"]],
- "expected": ["<body> foo"]
-},
-
-{"description": "body start-tag followed by text",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}], ["Characters", "foo"]],
- "expected": ["foo"]
-},
-
-{"description": "body start-tag followed by start-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<foo>"]
-},
-
-{"description": "body start-tag followed by end-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "body start-tag at EOF (shouldn't ever happen?!)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}]],
- "expected": [""]
-},
-
-
-
-{"description": "body end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"], ["Comment", "foo"]],
- "expected": ["</body><!--foo-->"]
-},
-
-{"description": "body end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"], ["Characters", " foo"]],
- "expected": ["</body> foo"]
-},
-
-{"description": "body end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"], ["Characters", "foo"]],
- "expected": ["foo"]
-},
-
-{"description": "body end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<foo>"]
-},
-
-{"description": "body end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "body end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "li end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["Comment", "foo"]],
- "expected": ["</li><!--foo-->"]
-},
-
-{"description": "li end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["Characters", " foo"]],
- "expected": ["</li> foo"]
-},
-
-{"description": "li end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["Characters", "foo"]],
- "expected": ["</li>foo"]
-},
-
-{"description": "li end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</li><foo>"]
-},
-
-{"description": "li end-tag followed by li start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["StartTag", "http://www.w3.org/1999/xhtml", "li", {}]],
- "expected": ["<li>"]
-},
-
-{"description": "li end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "li end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "dt end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["Comment", "foo"]],
- "expected": ["</dt><!--foo-->"]
-},
-
-{"description": "dt end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["Characters", " foo"]],
- "expected": ["</dt> foo"]
-},
-
-{"description": "dt end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["Characters", "foo"]],
- "expected": ["</dt>foo"]
-},
-
-{"description": "dt end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</dt><foo>"]
-},
-
-{"description": "dt end-tag followed by dt start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["StartTag", "http://www.w3.org/1999/xhtml", "dt", {}]],
- "expected": ["<dt>"]
-},
-
-{"description": "dt end-tag followed by dd start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["StartTag", "http://www.w3.org/1999/xhtml", "dd", {}]],
- "expected": ["<dd>"]
-},
-
-{"description": "dt end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</dt></foo>"]
-},
-
-{"description": "dt end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"]],
- "expected": ["</dt>"]
-},
-
-
-
-
-{"description": "dd end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["Comment", "foo"]],
- "expected": ["</dd><!--foo-->"]
-},
-
-{"description": "dd end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["Characters", " foo"]],
- "expected": ["</dd> foo"]
-},
-
-{"description": "dd end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["Characters", "foo"]],
- "expected": ["</dd>foo"]
-},
-
-{"description": "dd end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</dd><foo>"]
-},
-
-{"description": "dd end-tag followed by dd start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["StartTag", "http://www.w3.org/1999/xhtml", "dd", {}]],
- "expected": ["<dd>"]
-},
-
-{"description": "dd end-tag followed by dt start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["StartTag", "http://www.w3.org/1999/xhtml", "dt", {}]],
- "expected": ["<dt>"]
-},
-
-{"description": "dd end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "dd end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "p end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["Comment", "foo"]],
- "expected": ["</p><!--foo-->"]
-},
-
-{"description": "p end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["Characters", " foo"]],
- "expected": ["</p> foo"]
-},
-
-{"description": "p end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["Characters", "foo"]],
- "expected": ["</p>foo"]
-},
-
-{"description": "p end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</p><foo>"]
-},
-
-{"description": "p end-tag followed by address start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "address", {}]],
- "expected": ["<address>"]
-},
-
-{"description": "p end-tag followed by article start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "article", {}]],
- "expected": ["<article>"]
-},
-
-{"description": "p end-tag followed by aside start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "aside", {}]],
- "expected": ["<aside>"]
-},
-
-{"description": "p end-tag followed by blockquote start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "blockquote", {}]],
- "expected": ["<blockquote>"]
-},
-
-{"description": "p end-tag followed by datagrid start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "datagrid", {}]],
- "expected": ["<datagrid>"]
-},
-
-{"description": "p end-tag followed by dialog start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "dialog", {}]],
- "expected": ["<dialog>"]
-},
-
-{"description": "p end-tag followed by dir start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "dir", {}]],
- "expected": ["<dir>"]
-},
-
-{"description": "p end-tag followed by div start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "div", {}]],
- "expected": ["<div>"]
-},
-
-{"description": "p end-tag followed by dl start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "dl", {}]],
- "expected": ["<dl>"]
-},
-
-{"description": "p end-tag followed by fieldset start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "fieldset", {}]],
- "expected": ["<fieldset>"]
-},
-
-{"description": "p end-tag followed by footer start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "footer", {}]],
- "expected": ["<footer>"]
-},
-
-{"description": "p end-tag followed by form start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "form", {}]],
- "expected": ["<form>"]
-},
-
-{"description": "p end-tag followed by h1 start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h1", {}]],
- "expected": ["<h1>"]
-},
-
-{"description": "p end-tag followed by h2 start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h2", {}]],
- "expected": ["<h2>"]
-},
-
-{"description": "p end-tag followed by h3 start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h3", {}]],
- "expected": ["<h3>"]
-},
-
-{"description": "p end-tag followed by h4 start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h4", {}]],
- "expected": ["<h4>"]
-},
-
-{"description": "p end-tag followed by h5 start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h5", {}]],
- "expected": ["<h5>"]
-},
-
-{"description": "p end-tag followed by h6 start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h6", {}]],
- "expected": ["<h6>"]
-},
-
-{"description": "p end-tag followed by header start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "header", {}]],
- "expected": ["<header>"]
-},
-
-{"description": "p end-tag followed by hr empty-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["EmptyTag", "hr", {}]],
- "expected": ["<hr>"]
-},
-
-{"description": "p end-tag followed by menu start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "menu", {}]],
- "expected": ["<menu>"]
-},
-
-{"description": "p end-tag followed by nav start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "nav", {}]],
- "expected": ["<nav>"]
-},
-
-{"description": "p end-tag followed by ol start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "ol", {}]],
- "expected": ["<ol>"]
-},
-
-{"description": "p end-tag followed by p start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "p", {}]],
- "expected": ["<p>"]
-},
-
-{"description": "p end-tag followed by pre start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "pre", {}]],
- "expected": ["<pre>"]
-},
-
-{"description": "p end-tag followed by section start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "section", {}]],
- "expected": ["<section>"]
-},
-
-{"description": "p end-tag followed by table start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "table", {}]],
- "expected": ["<table>"]
-},
-
-{"description": "p end-tag followed by ul start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "ul", {}]],
- "expected": ["<ul>"]
-},
-
-{"description": "p end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "p end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "optgroup end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["Comment", "foo"]],
- "expected": ["</optgroup><!--foo-->"]
-},
-
-{"description": "optgroup end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["Characters", " foo"]],
- "expected": ["</optgroup> foo"]
-},
-
-{"description": "optgroup end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["Characters", "foo"]],
- "expected": ["</optgroup>foo"]
-},
-
-{"description": "optgroup end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</optgroup><foo>"]
-},
-
-{"description": "optgroup end-tag followed by optgroup start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["StartTag", "http://www.w3.org/1999/xhtml", "optgroup", {}]],
- "expected": ["<optgroup>"]
-},
-
-{"description": "optgroup end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "optgroup end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "option end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["Comment", "foo"]],
- "expected": ["</option><!--foo-->"]
-},
-
-{"description": "option end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["Characters", " foo"]],
- "expected": ["</option> foo"]
-},
-
-{"description": "option end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["Characters", "foo"]],
- "expected": ["</option>foo"]
-},
-
-{"description": "option end-tag followed by optgroup start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["StartTag", "http://www.w3.org/1999/xhtml", "optgroup", {}]],
- "expected": ["<optgroup>"]
-},
-
-{"description": "option end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</option><foo>"]
-},
-
-{"description": "option end-tag followed by option start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["StartTag", "http://www.w3.org/1999/xhtml", "option", {}]],
- "expected": ["<option>"]
-},
-
-{"description": "option end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "option end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "colgroup start-tag followed by comment",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["Comment", "foo"]],
- "expected": ["<colgroup><!--foo-->"]
-},
-
-{"description": "colgroup start-tag followed by space character",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["Characters", " foo"]],
- "expected": ["<colgroup> foo"]
-},
-
-{"description": "colgroup start-tag followed by text",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["Characters", "foo"]],
- "expected": ["<colgroup>foo"]
-},
-
-{"description": "colgroup start-tag followed by start-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<colgroup><foo>"]
-},
-
-{"description": "first colgroup in a table with a col child",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "table", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["EmptyTag", "col", {}]],
- "expected": ["<table><col>"]
-},
-
-{"description": "colgroup with a col child, following another colgroup",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "col", {}]],
- "expected": ["</colgroup><col>", "<colgroup><col>"]
-},
-
-{"description": "colgroup start-tag followed by end-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["<colgroup></foo>"]
-},
-
-{"description": "colgroup start-tag at EOF",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}]],
- "expected": ["<colgroup>"]
-},
-
-
-
-{"description": "colgroup end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["Comment", "foo"]],
- "expected": ["</colgroup><!--foo-->"]
-},
-
-{"description": "colgroup end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["Characters", " foo"]],
- "expected": ["</colgroup> foo"]
-},
-
-{"description": "colgroup end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["Characters", "foo"]],
- "expected": ["foo"]
-},
-
-{"description": "colgroup end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<foo>"]
-},
-
-{"description": "colgroup end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "colgroup end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "thead end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["Comment", "foo"]],
- "expected": ["</thead><!--foo-->"]
-},
-
-{"description": "thead end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["Characters", " foo"]],
- "expected": ["</thead> foo"]
-},
-
-{"description": "thead end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["Characters", "foo"]],
- "expected": ["</thead>foo"]
-},
-
-{"description": "thead end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</thead><foo>"]
-},
-
-{"description": "thead end-tag followed by tbody start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}]],
- "expected": ["<tbody>"]
-},
-
-{"description": "thead end-tag followed by tfoot start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["StartTag", "http://www.w3.org/1999/xhtml", "tfoot", {}]],
- "expected": ["<tfoot>"]
-},
-
-{"description": "thead end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</thead></foo>"]
-},
-
-{"description": "thead end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"]],
- "expected": ["</thead>"]
-},
-
-
-
-
-{"description": "tbody start-tag followed by comment",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["Comment", "foo"]],
- "expected": ["<tbody><!--foo-->"]
-},
-
-{"description": "tbody start-tag followed by space character",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["Characters", " foo"]],
- "expected": ["<tbody> foo"]
-},
-
-{"description": "tbody start-tag followed by text",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["Characters", "foo"]],
- "expected": ["<tbody>foo"]
-},
-
-{"description": "tbody start-tag followed by start-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<tbody><foo>"]
-},
-
-{"description": "first tbody in a table with a tr child",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "table", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "tr", {}]],
- "expected": ["<table><tr>"]
-},
-
-{"description": "tbody with a tr child, following another tbody",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "tr", {}]],
- "expected": ["<tbody><tr>", "</tbody><tr>"]
-},
-
-{"description": "tbody with a tr child, following a thead",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "tr", {}]],
- "expected": ["<tbody><tr>", "</thead><tr>"]
-},
-
-{"description": "tbody with a tr child, following a tfoot",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "tr", {}]],
- "expected": ["<tbody><tr>", "</tfoot><tr>"]
-},
-
-{"description": "tbody start-tag followed by end-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["<tbody></foo>"]
-},
-
-{"description": "tbody start-tag at EOF",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}]],
- "expected": ["<tbody>"]
-},
-
-
-
-{"description": "tbody end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["Comment", "foo"]],
- "expected": ["</tbody><!--foo-->"]
-},
-
-{"description": "tbody end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["Characters", " foo"]],
- "expected": ["</tbody> foo"]
-},
-
-{"description": "tbody end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["Characters", "foo"]],
- "expected": ["</tbody>foo"]
-},
-
-{"description": "tbody end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</tbody><foo>"]
-},
-
-{"description": "tbody end-tag followed by tbody start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}]],
- "expected": ["<tbody>", "</tbody>"]
-},
-
-{"description": "tbody end-tag followed by tfoot start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["StartTag", "http://www.w3.org/1999/xhtml", "tfoot", {}]],
- "expected": ["<tfoot>"]
-},
-
-{"description": "tbody end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "tbody end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "tfoot end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["Comment", "foo"]],
- "expected": ["</tfoot><!--foo-->"]
-},
-
-{"description": "tfoot end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["Characters", " foo"]],
- "expected": ["</tfoot> foo"]
-},
-
-{"description": "tfoot end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["Characters", "foo"]],
- "expected": ["</tfoot>foo"]
-},
-
-{"description": "tfoot end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</tfoot><foo>"]
-},
-
-{"description": "tfoot end-tag followed by tbody start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}]],
- "expected": ["<tbody>", "</tfoot>"]
-},
-
-{"description": "tfoot end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "tfoot end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "tr end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["Comment", "foo"]],
- "expected": ["</tr><!--foo-->"]
-},
-
-{"description": "tr end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["Characters", " foo"]],
- "expected": ["</tr> foo"]
-},
-
-{"description": "tr end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["Characters", "foo"]],
- "expected": ["</tr>foo"]
-},
-
-{"description": "tr end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</tr><foo>"]
-},
-
-{"description": "tr end-tag followed by tr start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["StartTag", "http://www.w3.org/1999/xhtml", "tr", {}]],
- "expected": ["<tr>", "</tr>"]
-},
-
-{"description": "tr end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "tr end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "td end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["Comment", "foo"]],
- "expected": ["</td><!--foo-->"]
-},
-
-{"description": "td end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["Characters", " foo"]],
- "expected": ["</td> foo"]
-},
-
-{"description": "td end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["Characters", "foo"]],
- "expected": ["</td>foo"]
-},
-
-{"description": "td end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</td><foo>"]
-},
-
-{"description": "td end-tag followed by td start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["StartTag", "http://www.w3.org/1999/xhtml", "td", {}]],
- "expected": ["<td>", "</td>"]
-},
-
-{"description": "td end-tag followed by th start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["StartTag", "http://www.w3.org/1999/xhtml", "th", {}]],
- "expected": ["<th>", "</td>"]
-},
-
-{"description": "td end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "td end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "th end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["Comment", "foo"]],
- "expected": ["</th><!--foo-->"]
-},
-
-{"description": "th end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["Characters", " foo"]],
- "expected": ["</th> foo"]
-},
-
-{"description": "th end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["Characters", "foo"]],
- "expected": ["</th>foo"]
-},
-
-{"description": "th end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</th><foo>"]
-},
-
-{"description": "th end-tag followed by th start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["StartTag", "http://www.w3.org/1999/xhtml", "th", {}]],
- "expected": ["<th>", "</th>"]
-},
-
-{"description": "th end-tag followed by td start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["StartTag", "http://www.w3.org/1999/xhtml", "td", {}]],
- "expected": ["<td>", "</th>"]
-},
-
-{"description": "th end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "th end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml" , "th"]],
- "expected": [""]
-}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/options.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/options.test
deleted file mode 100644
index 6f342dd3f73..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/options.test
+++ /dev/null
@@ -1,60 +0,0 @@
-{"tests":[
-
-{"description": "quote_char=\"'\"",
- "options": {"quote_char": "'"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "test 'with' quote_char"}]]],
- "expected": ["<span title='test &#39;with&#39; quote_char'>"]
-},
-
-{"description": "quote_attr_values=true",
- "options": {"quote_attr_values": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "button", [{"namespace": null, "name": "disabled", "value" :"disabled"}]]],
- "expected": ["<button disabled>"],
- "xhtml": ["<button disabled=\"disabled\">"]
-},
-
-{"description": "quote_attr_values=true with irrelevant",
- "options": {"quote_attr_values": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "div", [{"namespace": null, "name": "irrelevant", "value" :"irrelevant"}]]],
- "expected": ["<div irrelevant>"],
- "xhtml": ["<div irrelevant=\"irrelevant\">"]
-},
-
-{"description": "use_trailing_solidus=true with void element",
- "options": {"use_trailing_solidus": true},
- "input": [["EmptyTag", "img", {}]],
- "expected": ["<img />"]
-},
-
-{"description": "use_trailing_solidus=true with non-void element",
- "options": {"use_trailing_solidus": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "div", {}]],
- "expected": ["<div>"]
-},
-
-{"description": "minimize_boolean_attributes=false",
- "options": {"minimize_boolean_attributes": false},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "div", [{"namespace": null, "name": "irrelevant", "value" :"irrelevant"}]]],
- "expected": ["<div irrelevant=irrelevant>"],
- "xhtml": ["<div irrelevant=\"irrelevant\">"]
-},
-
-{"description": "minimize_boolean_attributes=false with empty value",
- "options": {"minimize_boolean_attributes": false},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "div", [{"namespace": null, "name": "irrelevant", "value" :""}]]],
- "expected": ["<div irrelevant=\"\">"]
-},
-
-{"description": "escape less than signs in attribute values",
- "options": {"escape_lt_in_attrs": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "a", [{"namespace": null, "name": "title", "value": "a<b>c&d"}]]],
- "expected": ["<a title=\"a&lt;b>c&amp;d\">"]
-},
-
-{"description": "rcdata",
- "options": {"escape_rcdata": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "script", {}], ["Characters", "a<b>c&d"]],
- "expected": ["<script>a&lt;b&gt;c&amp;d"]
-}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/whitespace.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/whitespace.test
deleted file mode 100644
index e5d050d3bee..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/whitespace.test
+++ /dev/null
@@ -1,51 +0,0 @@
-{"tests": [
-
-{"description": "bare text with leading spaces",
- "options": {"strip_whitespace": true},
- "input": [["Characters", "\t\r\n\u000C foo"]],
- "expected": [" foo"]
-},
-
-{"description": "bare text with trailing spaces",
- "options": {"strip_whitespace": true},
- "input": [["Characters", "foo \t\r\n\u000C"]],
- "expected": ["foo "]
-},
-
-{"description": "bare text with inner spaces",
- "options": {"strip_whitespace": true},
- "input": [["Characters", "foo \t\r\n\u000C bar"]],
- "expected": ["foo bar"]
-},
-
-{"description": "text within <pre>",
- "options": {"strip_whitespace": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "pre", {}], ["Characters", "\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C"], ["EndTag", "http://www.w3.org/1999/xhtml", "pre"]],
- "expected": ["<pre>\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C</pre>"]
-},
-
-{"description": "text within <pre>, with inner markup",
- "options": {"strip_whitespace": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "pre", {}], ["Characters", "\t\r\n\u000C fo"], ["StartTag", "http://www.w3.org/1999/xhtml", "span", {}], ["Characters", "o \t\r\n\u000C b"], ["EndTag", "http://www.w3.org/1999/xhtml", "span"], ["Characters", "ar \t\r\n\u000C"], ["EndTag", "http://www.w3.org/1999/xhtml", "pre"]],
- "expected": ["<pre>\t\r\n\u000C fo<span>o \t\r\n\u000C b</span>ar \t\r\n\u000C</pre>"]
-},
-
-{"description": "text within <textarea>",
- "options": {"strip_whitespace": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "textarea", {}], ["Characters", "\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C"], ["EndTag", "http://www.w3.org/1999/xhtml", "textarea"]],
- "expected": ["<textarea>\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C</textarea>"]
-},
-
-{"description": "text within <script>",
- "options": {"strip_whitespace": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "script", {}], ["Characters", "\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C"], ["EndTag", "http://www.w3.org/1999/xhtml", "script"]],
- "expected": ["<script>\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C</script>"]
-},
-
-{"description": "text within <style>",
- "options": {"strip_whitespace": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "style", {}], ["Characters", "\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C"], ["EndTag", "http://www.w3.org/1999/xhtml", "style"]],
- "expected": ["<style>\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C</style>"]
-}
-
-]} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/sniffer/htmlOrFeed.json b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/sniffer/htmlOrFeed.json
deleted file mode 100644
index c1506dbcdde..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/sniffer/htmlOrFeed.json
+++ /dev/null
@@ -1,43 +0,0 @@
-[
- {"type": "text/html", "input": ""},
- {"type": "text/html", "input": "<!---->"},
- {"type": "text/html", "input": "<!--asdfaslkjdf;laksjdf as;dkfjsd-->"},
- {"type": "text/html", "input": "<!"},
- {"type": "text/html", "input": "\t"},
- {"type": "text/html", "input": "<!>"},
- {"type": "text/html", "input": "<?"},
- {"type": "text/html", "input": "<??>"},
- {"type": "application/rss+xml", "input": "<rss"},
- {"type": "application/atom+xml", "input": "<feed"},
- {"type": "text/html", "input": "<html"},
- {"type": "text/html", "input": "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>302 Found</title>\n</head><body>\n<h1>Found</h1>\n<p>The document has moved <a href=\"http://feeds.feedburner.com/gofug\">here</a>.</p>\n</body></html>\n"},
- {"type": "text/html", "input": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\r\n<HTML><HEAD>\r\n <link rel=\"stylesheet\" type=\"text/css\" href=\"http://cache.blogads.com/289619328/feed.css\" /><link rel=\"stylesheet\" type=\"text/css\" href=\"http://cache.blogads.com/431602649/feed.css\" />\r\n<link rel=\"stylesheet\" type=\"text/css\" href=\"http://cache.blogads.com/382549546/feed.css\" />\r\n<link rel=\"stylesheet\" type=\"text/css\" href=\"http://cache.blogads.com/314618017/feed.css\" /><META http-equiv=\"expires\" content="},
- {"type": "text/html", "input": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n<html>\r\n<head>\r\n<title>Xiaxue - Chicken pie blogger.</title><meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"><style type=\"text/css\">\r\n<style type=\"text/css\">\r\n<!--\r\nbody {\r\n background-color: #FFF2F2;\r\n}\r\n.style1 {font-family: Georgia, \"Times New Roman\", Times, serif}\r\n.style2 {\r\n color: #8a567c;\r\n font-size: 14px;\r\n font-family: Georgia, \"Times New Roman\", Times, serif;\r\n}\r"},
- {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n<head> \r\n<title>Google Operating System</title>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<meta name=\"Description\" content=\"Unofficial news and tips about Google. A blog that watches Google's latest developments and the attempts to move your operating system online.\" />\r\n<meta name=\"generator\" c"},
- {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n<head>\r\n <title>Assimilated Press</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<meta name=\"MSSmartTagsPreventParsing\" content=\"true\" />\r\n<meta name=\"generator\" content=\"Blogger\" />\r\n<link rel=\"alternate\" type=\"application/atom+xml\" title=\"Assimilated Press - Atom\" href=\"http://assimila"},
- {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n<head>\r\n <title>PostSecret</title>\r\n<META name=\"keywords\" Content=\"secrets, postcard, secret, postcards, postsecret, postsecrets,online confessional, post secret, post secrets, artomatic, post a secret\"><META name=\"discription\" Content=\"See a Secret...Share a Secret\"> <meta http-equiv=\"Content-Type\" content=\"te"},
- {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>\n <head>\n \n <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>\n <meta content='true' name='MSSmartTagsPreventParsing'/>\n <meta content='blogger' name='generator'/>\n <link rel=\"alternate\" typ"},
- {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"ja\">\n<head profile=\"http://gmpg.org/xfn/11\"> \n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /> \n<title> CMS Lever</title><link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"http://s.wordpress.com/wp-content/themes/pub/twenty-eight/2813.css\"/>\n<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" h"},
- {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"en\"><head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<title> Park Avenue Peerage</title>\t<meta name=\"generator\" content=\"WordPress.com\" />\t<!-- feeds -->\n\t<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" href=\"http://parkavenuepeerage.wordpress.com/feed/\" />\t<link rel=\"pingback\" href="},
- {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"ja\"><head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<title> \u884c\u96f2\u6d41\u6c34 -like a floating clouds and running water-</title>\t<meta name=\"generator\" content=\"WordPress.com\" />\t<!-- feeds -->\n\t<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" href=\"http://shw4.wordpress.com/feed/\" />\t<li"},
- {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<meta name=\"generator\" content=\"http://www.typepad.com/\" />\n<title>Go Fug Yourself</title><link rel=\"stylesheet\" href=\"http://gofugyourself.typepad.com/go_fug_yourself/styles.css\" type=\"text/css\" />\n<link rel=\"alternate\" type=\"application/atom+xml\" title=\"Atom\" "},
- {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"en\"><head profile=\"http://gmpg.org/xfn/11\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /><title> Ladies&#8230;</title><meta name=\"generator\" content=\"WordPress.com\" /> <!-- leave this for stats --><link rel=\"stylesheet\" href=\"http://s.wordpress.com/wp-content/themes/default/style.css?1\" type=\"tex"},
- {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n <title>The Sartorialist</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<meta name=\"MSSmartTagsPreventParsing\" content=\"true\" />\r\n<meta name=\"generator\" content=\"Blogger\" />\r\n<link rel=\"alternate\" type=\"application/atom+xml\" title=\"The Sartorialist - Atom\" href=\"http://thesartorialist.blogspot"},
- {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />\n<meta name=\"generator\" content=\"http://www.typepad.com/\" />\n<title>Creating Passionate Users</title><link rel=\"stylesheet\" href=\"http://headrush.typepad.com/creating_passionate_users/styles.css\" type=\"text/css\" />\n<link rel=\"alternate\" type"},
- {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" id=\"sixapart-standard\">\n<head>\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n\t<meta name=\"generator\" content=\"http://www.typepad.com/\" />\n\t\n\t\n <meta name=\"keywords\" content=\"marketing, blog, seth, ideas, respect, permission\" />\n <meta name=\"description\" content=\"Seth Godin's riffs on marketing, respect, and the "},
- {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" id=\"sixapart-standard\">\n<head>\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n\t<meta name=\"generator\" content=\"http://www.typepad.com/\" />\n\t\n\t\n \n <meta name=\"description\" content=\" Western Civilization hangs in the balance. This blog is part of the solution,the cure. Get your heads out of the sand and Fight the G"},
- {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=pahrefhttpwwwfeedburnercomtarget_blankimgsrchttpwwwfeedburnercomfbimagespubpowered_by_fbgifaltPoweredbyFeedBurnerstyleborder0ap\" />\n<title> From Under the Rotunda</title>\n<link rel=\"stylesheet\" href=\"http://s.wordpress.com/wp-content/themes/pub/andreas04/style.css\" type=\"text/css\""},
- {"type": "application/atom+xml", "input": "<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href=\"http://www.blogger.com/styles/atom.css\" type=\"text/css\"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-10861780</id><updated>2007-07-27T12:38:50.888-07:00</updated><title type='text'>Official Google Blog</title><link rel='alternate' type='text/html' href='http://googleblog.blogspot.com/'/><link rel='next' type='application/atom+xml' href='http://googleblog.blogs"},
- {"type": "application/rss+xml", "input": "<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-10861780</atom:id><lastBuildDate>Fri, 27 Jul 2007 19:38:50 +0000</lastBuildDate><title>Official Google Blog</title><description/><link>http://googleblog.blogspot.com/</link><managingEditor>Eric Case</managingEditor><generator>Blogger</generator><openSearch:totalResults>729</openSearch:totalResults><openSearc"},
- {"type": "application/rss+xml", "input": "<?xml version=\"1.0\" encoding=\"pahrefhttpwwwfeedburnercomtarget_blankimgsrchttpwwwfeedburnercomfbimagespubpowered_by_fbgifaltPoweredbyFeedBurnerstyleborder0ap\"?>\n<!-- generator=\"wordpress/MU\" -->\n<rss version=\"2.0\"\n\txmlns:content=\"http://purl.org/rss/1.0/modules/content/\"\n\txmlns:wfw=\"http://wellformedweb.org/CommentAPI/\"\n\txmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n\t><channel>\n\t<title>From Under the Rotunda</title>\n\t<link>http://dannybernardi.wordpress.com</link>\n\t<description>The Monographs of Danny Ber"},
- {"type": "application/rss+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- generator=\"wordpress/MU\" -->\n<rss version=\"2.0\"\n\txmlns:content=\"http://purl.org/rss/1.0/modules/content/\"\n\txmlns:wfw=\"http://wellformedweb.org/CommentAPI/\"\n\txmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n\t><channel>\n\t<title>CMS Lever</title>\n\t<link>http://kanaguri.wordpress.com</link>\n\t<description>CMS\u306e\u6c17\u306b\u306a\u3063\u305f\u3053\u3068</description>\n\t<pubDate>Wed, 18 Jul 2007 21:26:22 +0000</pubDate>\n\t<generator>http://wordpress.org/?v=MU</generator>\n\t<language>ja</languag"},
- {"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<feed xmlns=\"http://www.w3.org/2005/Atom\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:thr=\"http://purl.org/syndication/thread/1.0\">\n <title>Atlas Shrugs</title>\n <link rel=\"self\" type=\"application/atom+xml\" href=\"http://atlasshrugs2000.typepad.com/atlas_shrugs/atom.xml\" />\n <link rel=\"alternate\" type=\"text/html\" href=\"http://atlasshrugs2000.typepad.com/atlas_shrugs/\" />\n <id>tag:typepad.com,2003:weblog-132946</id>\n <updated>2007-08-15T16:07:34-04"},
- {"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/atom10full.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><feed xmlns=\"http://www.w3.org/2005/Atom\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:thr=\"http://purl.org/syndication/thread/1.0\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\">\r\n <title>Creating Passionate Users</title>\r\n "},
- {"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/atom10full.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><feed xmlns=\"http://www.w3.org/2005/Atom\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\">\r\n <title>Seth's Blog</title>\r\n <link rel=\"alternate\" type=\"text/html\" href=\"http://sethgodin.typepad.com/seths_blog/\" />\r\n <link rel=\"s"},
- {"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/atom10full.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><feed xmlns=\"http://www.w3.org/2005/Atom\" xmlns:openSearch=\"http://a9.com/-/spec/opensearchrss/1.0/\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\"><id>tag:blogger.com,1999:blog-32454861</id><updated>2007-07-31T21:44:09.867+02:00</upd"},
- {"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/atomfull.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><feed xmlns=\"http://purl.org/atom/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\" version=\"0.3\">\r\n <title>Go Fug Yourself</title>\r\n <link rel=\"alternate\" type=\"text/html\" href=\"http://go"},
- {"type": "application/rss+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/rss2full.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><rss xmlns:creativeCommons=\"http://backend.userland.com/creativeCommonsRssModule\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\" version=\"2.0\"><channel><title>Google Operating System</title><link>http://googlesystem.blogspot.com/</link>"},
- {"type": "application/rss+xml", "input": "<?xml version=\"1.0\" encoding=\"\"?>\n<!-- generator=\"wordpress/MU\" -->\n<rss version=\"2.0\"\n\txmlns:content=\"http://purl.org/rss/1.0/modules/content/\"\n\txmlns:wfw=\"http://wellformedweb.org/CommentAPI/\"\n\txmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n\t><channel>\n\t<title>Nunublog</title>\n\t<link>http://nunubh.wordpress.com</link>\n\t<description>Just Newbie Blog!</description>\n\t<pubDate>Mon, 09 Jul 2007 18:54:09 +0000</pubDate>\n\t<generator>http://wordpress.org/?v=MU</generator>\n\t<language>id</language>\n\t\t\t<item>\n\t\t<ti"},
- {"type": "text/html", "input": "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n<HEAD>\r\n<TITLE>Design*Sponge</TITLE><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<meta name=\"MSSmartTagsPreventParsing\" content=\"true\" />\r\n<meta name=\"generator\" content=\"Blogger\" />\r\n<link rel=\"alternate\" type=\"application/atom+xml\" title=\"Design*Sponge - Atom\" href=\"http://designsponge.blogspot.com/feeds/posts/default\" />\r\n<link rel=\"alternate\" type=\"application/rss+xml\" title=\"Design*Sponge - RSS\" href="},
- {"type": "text/html", "input": "<HTML>\n<HEAD>\n<TITLE>Moved Temporarily</TITLE>\n</HEAD>\n<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\">\n<H1>Moved Temporarily</H1>\nThe document has moved <A HREF=\"http://feeds.feedburner.com/thesecretdiaryofstevejobs\">here</A>.\n</BODY>\n</HTML>\n"}
-] \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/README.md b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/README.md
deleted file mode 100644
index 4218c26bb0f..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-Tokenizer tests
-===============
-
-The test format is [JSON](http://www.json.org/). This has the advantage
-that the syntax allows backward-compatible extensions to the tests and
-the disadvantage that it is relatively verbose.
-
-Basic Structure
----------------
-
- {"tests": [
-     {"description": "Test description",
-     "input": "input_string",
-     "output": [expected_output_tokens],
-     "initialStates": [initial_states],
-     "lastStartTag": last_start_tag,
-     "ignoreErrorOrder": ignore_error_order
-     }
- ]}
-
-Multiple tests per file are allowed simply by adding more objects to the
-"tests" list.
-
-`description`, `input` and `output` are always present. The other values
-are optional.
-
-### Test set-up
-
-`test.input` is a string containing the characters to pass to the
-tokenizer. Specifically, it represents the characters of the **input
-stream**, and so implementations are expected to perform the processing
-described in the spec's **Preprocessing the input stream** section
-before feeding the result to the tokenizer.
-
-If `test.doubleEscaped` is present and `true`, then `test.input` is not
-quite as described above. Instead, it must first be subjected to another
-round of unescaping (i.e., in addition to any unescaping involved in the
-JSON import), and the result of *that* represents the characters of the
-input stream. Currently, the only unescaping required by this option is
-to convert each sequence of the form \\uHHHH (where H is a hex digit)
-into the corresponding Unicode code point. (Note that this option also
-affects the interpretation of `test.output`.)
-
-`test.initialStates` is a list of strings, each being the name of a
-tokenizer state. The test should be run once for each string, using it
-to set the tokenizer's initial state for that run. If
-`test.initialStates` is omitted, it defaults to `["data state"]`.
-
-`test.lastStartTag` is a lowercase string that should be used as "the
-tag name of the last start tag to have been emitted from this
-tokenizer", referenced in the spec's definition of **appropriate end tag
-token**. If it is omitted, it is treated as if "no start tag has been
-emitted from this tokenizer".
-
-### Test results
-
-`test.output` is a list of tokens, ordered with the first produced by
-the tokenizer the first (leftmost) in the list. The list must mach the
-**complete** list of tokens that the tokenizer should produce. Valid
-tokens are:
-
- ["DOCTYPE", name, public_id, system_id, correctness]
- ["StartTag", name, {attributes}*, true*]
- ["StartTag", name, {attributes}]
- ["EndTag", name]
- ["Comment", data]
- ["Character", data]
- "ParseError"
-
-`public_id` and `system_id` are either strings or `null`. `correctness`
-is either `true` or `false`; `true` corresponds to the force-quirks flag
-being false, and vice-versa.
-
-When the self-closing flag is set, the `StartTag` array has `true` as
-its fourth entry. When the flag is not set, the array has only three
-entries for backwards compatibility.
-
-All adjacent character tokens are coalesced into a single
-`["Character", data]` token.
-
-If `test.doubleEscaped` is present and `true`, then every string within
-`test.output` must be further unescaped (as described above) before
-comparing with the tokenizer's output.
-
-`test.ignoreErrorOrder` is a boolean value indicating that the order of
-`ParseError` tokens relative to other tokens in the output stream is
-unimportant, and implementations should ignore such differences between
-their output and `expected_output_tokens`. (This is used for errors
-emitted by the input stream preprocessing stage, since it is useful to
-test that code but it is undefined when the errors occur). If it is
-omitted, it defaults to `false`.
-
-xmlViolation tests
-------------------
-
-`tokenizer/xmlViolation.test` differs from the above in a couple of
-ways:
-
-- The name of the single member of the top-level JSON object is
- "xmlViolationTests" instead of "tests".
-- Each test's expected output assumes that implementation is applying
- the tweaks given in the spec's "Coercing an HTML DOM into an
- infoset" section.
-
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/contentModelFlags.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/contentModelFlags.test
deleted file mode 100644
index 89b8170c6bc..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/contentModelFlags.test
+++ /dev/null
@@ -1,81 +0,0 @@
-{"tests": [
-
-{"description":"PLAINTEXT content model flag",
-"initialStates":["PLAINTEXT state"],
-"lastStartTag":"plaintext",
-"input":"<head>&body;",
-"output":[["Character", "<head>&body;"]]},
-
-{"description":"End tag closing RCDATA or RAWTEXT",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foo</xmp>",
-"output":[["Character", "foo"], ["EndTag", "xmp"]]},
-
-{"description":"End tag closing RCDATA or RAWTEXT (case-insensitivity)",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foo</xMp>",
-"output":[["Character", "foo"], ["EndTag", "xmp"]]},
-
-{"description":"End tag closing RCDATA or RAWTEXT (ending with space)",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foo</xmp ",
-"output":[["Character", "foo"], "ParseError"]},
-
-{"description":"End tag closing RCDATA or RAWTEXT (ending with EOF)",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foo</xmp",
-"output":[["Character", "foo</xmp"]]},
-
-{"description":"End tag closing RCDATA or RAWTEXT (ending with slash)",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foo</xmp/",
-"output":[["Character", "foo"], "ParseError"]},
-
-{"description":"End tag not closing RCDATA or RAWTEXT (ending with left-angle-bracket)",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foo</xmp<",
-"output":[["Character", "foo</xmp<"]]},
-
-{"description":"End tag with incorrect name in RCDATA or RAWTEXT",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"</foo>bar</xmp>",
-"output":[["Character", "</foo>bar"], ["EndTag", "xmp"]]},
-
-{"description":"Partial end tags leading straight into partial end tags",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"</xmp</xmp</xmp>",
-"output":[["Character", "</xmp</xmp"], ["EndTag", "xmp"]]},
-
-{"description":"End tag with incorrect name in RCDATA or RAWTEXT (starting like correct name)",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"</foo>bar</xmpaar>",
-"output":[["Character", "</foo>bar</xmpaar>"]]},
-
-{"description":"End tag closing RCDATA or RAWTEXT, switching back to PCDATA",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foo</xmp></baz>",
-"output":[["Character", "foo"], ["EndTag", "xmp"], ["EndTag", "baz"]]},
-
-{"description":"RAWTEXT w/ something looking like an entity",
-"initialStates":["RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"&foo;",
-"output":[["Character", "&foo;"]]},
-
-{"description":"RCDATA w/ an entity",
-"initialStates":["RCDATA state"],
-"lastStartTag":"textarea",
-"input":"&lt;",
-"output":[["Character", "<"]]}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/domjs.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/domjs.test
deleted file mode 100644
index 8f1e42f354f..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/domjs.test
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "tests": [
- {
- "description":"CR in bogus comment state",
- "input":"<?\u000d",
- "output":["ParseError", ["Comment", "?\u000a"]]
- },
- {
- "description":"CRLF in bogus comment state",
- "input":"<?\u000d\u000a",
- "output":["ParseError", ["Comment", "?\u000a"]]
- },
- {
- "description":"CRLFLF in bogus comment state",
- "input":"<?\u000d\u000a\u000a",
- "output":["ParseError", ["Comment", "?\u000a\u000a"]]
- },
- {
- "description":"NUL in RCDATA and RAWTEXT",
- "doubleEscaped":true,
- "initialStates":["RCDATA state", "RAWTEXT state"],
- "input":"\\u0000",
- "output":["ParseError", ["Character", "\\uFFFD"]]
- },
- {
- "description":"leading U+FEFF must pass through",
- "doubleEscaped":true,
- "input":"\\uFEFFfoo\\uFEFFbar",
- "output":[["Character", "\\uFEFFfoo\\uFEFFbar"]]
- },
- {
- "description":"Non BMP-charref in in RCDATA",
- "initialStates":["RCDATA state"],
- "input":"&NotEqualTilde;",
- "output":[["Character", "\u2242\u0338"]]
- },
- {
- "description":"Bad charref in in RCDATA",
- "initialStates":["RCDATA state"],
- "input":"&NotEqualTild;",
- "output":["ParseError", ["Character", "&NotEqualTild;"]]
- },
- {
- "description":"lowercase endtags in RCDATA and RAWTEXT",
- "initialStates":["RCDATA state", "RAWTEXT state"],
- "lastStartTag":"xmp",
- "input":"</XMP>",
- "output":[["EndTag","xmp"]]
- },
- {
- "description":"bad endtag in RCDATA and RAWTEXT",
- "initialStates":["RCDATA state", "RAWTEXT state"],
- "lastStartTag":"xmp",
- "input":"</ XMP>",
- "output":[["Character","</ XMP>"]]
- },
- {
- "description":"bad endtag in RCDATA and RAWTEXT",
- "initialStates":["RCDATA state", "RAWTEXT state"],
- "lastStartTag":"xmp",
- "input":"</xm>",
- "output":[["Character","</xm>"]]
- },
- {
- "description":"bad endtag in RCDATA and RAWTEXT",
- "initialStates":["RCDATA state", "RAWTEXT state"],
- "lastStartTag":"xmp",
- "input":"</xm ",
- "output":[["Character","</xm "]]
- },
- {
- "description":"bad endtag in RCDATA and RAWTEXT",
- "initialStates":["RCDATA state", "RAWTEXT state"],
- "lastStartTag":"xmp",
- "input":"</xm/",
- "output":[["Character","</xm/"]]
- },
- {
- "description":"Non BMP-charref in attribute",
- "input":"<p id=\"&NotEqualTilde;\">",
- "output":[["StartTag", "p", {"id":"\u2242\u0338"}]]
- },
- {
- "description":"--!NUL in comment ",
- "doubleEscaped":true,
- "input":"<!----!\\u0000-->",
- "output":["ParseError", "ParseError", ["Comment", "--!\\uFFFD"]]
- },
- {
- "description":"space EOF after doctype ",
- "input":"<!DOCTYPE html ",
- "output":["ParseError", ["DOCTYPE", "html", null, null , false]]
- }
-
- ]
-}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/entities.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/entities.test
deleted file mode 100644
index 27b85a1cd0b..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/entities.test
+++ /dev/null
@@ -1,283 +0,0 @@
-{"tests": [
-
-{"description": "Undefined named entity in attribute value ending in semicolon and whose name starts with a known entity name.",
-"input":"<h a='&noti;'>",
-"output": [["StartTag", "h", {"a": "&noti;"}]]},
-
-{"description": "Entity name followed by the equals sign in an attribute value.",
-"input":"<h a='&lang='>",
-"output": [["StartTag", "h", {"a": "&lang="}]]},
-
-{"description": "CR as numeric entity",
-"input":"&#013;",
-"output": ["ParseError", ["Character", "\r"]]},
-
-{"description": "CR as hexadecimal numeric entity",
-"input":"&#x00D;",
-"output": ["ParseError", ["Character", "\r"]]},
-
-{"description": "Windows-1252 EURO SIGN numeric entity.",
-"input":"&#0128;",
-"output": ["ParseError", ["Character", "\u20AC"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.",
-"input":"&#0129;",
-"output": ["ParseError", ["Character", "\u0081"]]},
-
-{"description": "Windows-1252 SINGLE LOW-9 QUOTATION MARK numeric entity.",
-"input":"&#0130;",
-"output": ["ParseError", ["Character", "\u201A"]]},
-
-{"description": "Windows-1252 LATIN SMALL LETTER F WITH HOOK numeric entity.",
-"input":"&#0131;",
-"output": ["ParseError", ["Character", "\u0192"]]},
-
-{"description": "Windows-1252 DOUBLE LOW-9 QUOTATION MARK numeric entity.",
-"input":"&#0132;",
-"output": ["ParseError", ["Character", "\u201E"]]},
-
-{"description": "Windows-1252 HORIZONTAL ELLIPSIS numeric entity.",
-"input":"&#0133;",
-"output": ["ParseError", ["Character", "\u2026"]]},
-
-{"description": "Windows-1252 DAGGER numeric entity.",
-"input":"&#0134;",
-"output": ["ParseError", ["Character", "\u2020"]]},
-
-{"description": "Windows-1252 DOUBLE DAGGER numeric entity.",
-"input":"&#0135;",
-"output": ["ParseError", ["Character", "\u2021"]]},
-
-{"description": "Windows-1252 MODIFIER LETTER CIRCUMFLEX ACCENT numeric entity.",
-"input":"&#0136;",
-"output": ["ParseError", ["Character", "\u02C6"]]},
-
-{"description": "Windows-1252 PER MILLE SIGN numeric entity.",
-"input":"&#0137;",
-"output": ["ParseError", ["Character", "\u2030"]]},
-
-{"description": "Windows-1252 LATIN CAPITAL LETTER S WITH CARON numeric entity.",
-"input":"&#0138;",
-"output": ["ParseError", ["Character", "\u0160"]]},
-
-{"description": "Windows-1252 SINGLE LEFT-POINTING ANGLE QUOTATION MARK numeric entity.",
-"input":"&#0139;",
-"output": ["ParseError", ["Character", "\u2039"]]},
-
-{"description": "Windows-1252 LATIN CAPITAL LIGATURE OE numeric entity.",
-"input":"&#0140;",
-"output": ["ParseError", ["Character", "\u0152"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.",
-"input":"&#0141;",
-"output": ["ParseError", ["Character", "\u008D"]]},
-
-{"description": "Windows-1252 LATIN CAPITAL LETTER Z WITH CARON numeric entity.",
-"input":"&#0142;",
-"output": ["ParseError", ["Character", "\u017D"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.",
-"input":"&#0143;",
-"output": ["ParseError", ["Character", "\u008F"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.",
-"input":"&#0144;",
-"output": ["ParseError", ["Character", "\u0090"]]},
-
-{"description": "Windows-1252 LEFT SINGLE QUOTATION MARK numeric entity.",
-"input":"&#0145;",
-"output": ["ParseError", ["Character", "\u2018"]]},
-
-{"description": "Windows-1252 RIGHT SINGLE QUOTATION MARK numeric entity.",
-"input":"&#0146;",
-"output": ["ParseError", ["Character", "\u2019"]]},
-
-{"description": "Windows-1252 LEFT DOUBLE QUOTATION MARK numeric entity.",
-"input":"&#0147;",
-"output": ["ParseError", ["Character", "\u201C"]]},
-
-{"description": "Windows-1252 RIGHT DOUBLE QUOTATION MARK numeric entity.",
-"input":"&#0148;",
-"output": ["ParseError", ["Character", "\u201D"]]},
-
-{"description": "Windows-1252 BULLET numeric entity.",
-"input":"&#0149;",
-"output": ["ParseError", ["Character", "\u2022"]]},
-
-{"description": "Windows-1252 EN DASH numeric entity.",
-"input":"&#0150;",
-"output": ["ParseError", ["Character", "\u2013"]]},
-
-{"description": "Windows-1252 EM DASH numeric entity.",
-"input":"&#0151;",
-"output": ["ParseError", ["Character", "\u2014"]]},
-
-{"description": "Windows-1252 SMALL TILDE numeric entity.",
-"input":"&#0152;",
-"output": ["ParseError", ["Character", "\u02DC"]]},
-
-{"description": "Windows-1252 TRADE MARK SIGN numeric entity.",
-"input":"&#0153;",
-"output": ["ParseError", ["Character", "\u2122"]]},
-
-{"description": "Windows-1252 LATIN SMALL LETTER S WITH CARON numeric entity.",
-"input":"&#0154;",
-"output": ["ParseError", ["Character", "\u0161"]]},
-
-{"description": "Windows-1252 SINGLE RIGHT-POINTING ANGLE QUOTATION MARK numeric entity.",
-"input":"&#0155;",
-"output": ["ParseError", ["Character", "\u203A"]]},
-
-{"description": "Windows-1252 LATIN SMALL LIGATURE OE numeric entity.",
-"input":"&#0156;",
-"output": ["ParseError", ["Character", "\u0153"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.",
-"input":"&#0157;",
-"output": ["ParseError", ["Character", "\u009D"]]},
-
-{"description": "Windows-1252 EURO SIGN hexadecimal numeric entity.",
-"input":"&#x080;",
-"output": ["ParseError", ["Character", "\u20AC"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.",
-"input":"&#x081;",
-"output": ["ParseError", ["Character", "\u0081"]]},
-
-{"description": "Windows-1252 SINGLE LOW-9 QUOTATION MARK hexadecimal numeric entity.",
-"input":"&#x082;",
-"output": ["ParseError", ["Character", "\u201A"]]},
-
-{"description": "Windows-1252 LATIN SMALL LETTER F WITH HOOK hexadecimal numeric entity.",
-"input":"&#x083;",
-"output": ["ParseError", ["Character", "\u0192"]]},
-
-{"description": "Windows-1252 DOUBLE LOW-9 QUOTATION MARK hexadecimal numeric entity.",
-"input":"&#x084;",
-"output": ["ParseError", ["Character", "\u201E"]]},
-
-{"description": "Windows-1252 HORIZONTAL ELLIPSIS hexadecimal numeric entity.",
-"input":"&#x085;",
-"output": ["ParseError", ["Character", "\u2026"]]},
-
-{"description": "Windows-1252 DAGGER hexadecimal numeric entity.",
-"input":"&#x086;",
-"output": ["ParseError", ["Character", "\u2020"]]},
-
-{"description": "Windows-1252 DOUBLE DAGGER hexadecimal numeric entity.",
-"input":"&#x087;",
-"output": ["ParseError", ["Character", "\u2021"]]},
-
-{"description": "Windows-1252 MODIFIER LETTER CIRCUMFLEX ACCENT hexadecimal numeric entity.",
-"input":"&#x088;",
-"output": ["ParseError", ["Character", "\u02C6"]]},
-
-{"description": "Windows-1252 PER MILLE SIGN hexadecimal numeric entity.",
-"input":"&#x089;",
-"output": ["ParseError", ["Character", "\u2030"]]},
-
-{"description": "Windows-1252 LATIN CAPITAL LETTER S WITH CARON hexadecimal numeric entity.",
-"input":"&#x08A;",
-"output": ["ParseError", ["Character", "\u0160"]]},
-
-{"description": "Windows-1252 SINGLE LEFT-POINTING ANGLE QUOTATION MARK hexadecimal numeric entity.",
-"input":"&#x08B;",
-"output": ["ParseError", ["Character", "\u2039"]]},
-
-{"description": "Windows-1252 LATIN CAPITAL LIGATURE OE hexadecimal numeric entity.",
-"input":"&#x08C;",
-"output": ["ParseError", ["Character", "\u0152"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.",
-"input":"&#x08D;",
-"output": ["ParseError", ["Character", "\u008D"]]},
-
-{"description": "Windows-1252 LATIN CAPITAL LETTER Z WITH CARON hexadecimal numeric entity.",
-"input":"&#x08E;",
-"output": ["ParseError", ["Character", "\u017D"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.",
-"input":"&#x08F;",
-"output": ["ParseError", ["Character", "\u008F"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.",
-"input":"&#x090;",
-"output": ["ParseError", ["Character", "\u0090"]]},
-
-{"description": "Windows-1252 LEFT SINGLE QUOTATION MARK hexadecimal numeric entity.",
-"input":"&#x091;",
-"output": ["ParseError", ["Character", "\u2018"]]},
-
-{"description": "Windows-1252 RIGHT SINGLE QUOTATION MARK hexadecimal numeric entity.",
-"input":"&#x092;",
-"output": ["ParseError", ["Character", "\u2019"]]},
-
-{"description": "Windows-1252 LEFT DOUBLE QUOTATION MARK hexadecimal numeric entity.",
-"input":"&#x093;",
-"output": ["ParseError", ["Character", "\u201C"]]},
-
-{"description": "Windows-1252 RIGHT DOUBLE QUOTATION MARK hexadecimal numeric entity.",
-"input":"&#x094;",
-"output": ["ParseError", ["Character", "\u201D"]]},
-
-{"description": "Windows-1252 BULLET hexadecimal numeric entity.",
-"input":"&#x095;",
-"output": ["ParseError", ["Character", "\u2022"]]},
-
-{"description": "Windows-1252 EN DASH hexadecimal numeric entity.",
-"input":"&#x096;",
-"output": ["ParseError", ["Character", "\u2013"]]},
-
-{"description": "Windows-1252 EM DASH hexadecimal numeric entity.",
-"input":"&#x097;",
-"output": ["ParseError", ["Character", "\u2014"]]},
-
-{"description": "Windows-1252 SMALL TILDE hexadecimal numeric entity.",
-"input":"&#x098;",
-"output": ["ParseError", ["Character", "\u02DC"]]},
-
-{"description": "Windows-1252 TRADE MARK SIGN hexadecimal numeric entity.",
-"input":"&#x099;",
-"output": ["ParseError", ["Character", "\u2122"]]},
-
-{"description": "Windows-1252 LATIN SMALL LETTER S WITH CARON hexadecimal numeric entity.",
-"input":"&#x09A;",
-"output": ["ParseError", ["Character", "\u0161"]]},
-
-{"description": "Windows-1252 SINGLE RIGHT-POINTING ANGLE QUOTATION MARK hexadecimal numeric entity.",
-"input":"&#x09B;",
-"output": ["ParseError", ["Character", "\u203A"]]},
-
-{"description": "Windows-1252 LATIN SMALL LIGATURE OE hexadecimal numeric entity.",
-"input":"&#x09C;",
-"output": ["ParseError", ["Character", "\u0153"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.",
-"input":"&#x09D;",
-"output": ["ParseError", ["Character", "\u009D"]]},
-
-{"description": "Windows-1252 LATIN SMALL LETTER Z WITH CARON hexadecimal numeric entity.",
-"input":"&#x09E;",
-"output": ["ParseError", ["Character", "\u017E"]]},
-
-{"description": "Windows-1252 LATIN CAPITAL LETTER Y WITH DIAERESIS hexadecimal numeric entity.",
-"input":"&#x09F;",
-"output": ["ParseError", ["Character", "\u0178"]]},
-
-{"description": "Decimal numeric entity followed by hex character a.",
-"input":"&#97a",
-"output": ["ParseError", ["Character", "aa"]]},
-
-{"description": "Decimal numeric entity followed by hex character A.",
-"input":"&#97A",
-"output": ["ParseError", ["Character", "aA"]]},
-
-{"description": "Decimal numeric entity followed by hex character f.",
-"input":"&#97f",
-"output": ["ParseError", ["Character", "af"]]},
-
-{"description": "Decimal numeric entity followed by hex character A.",
-"input":"&#97F",
-"output": ["ParseError", ["Character", "aF"]]}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/escapeFlag.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/escapeFlag.test
deleted file mode 100644
index 18cb4309e05..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/escapeFlag.test
+++ /dev/null
@@ -1,33 +0,0 @@
-{"tests": [
-
-{"description":"Commented close tag in RCDATA or RAWTEXT",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foo<!--</xmp>--></xmp>",
-"output":[["Character", "foo<!--"], ["EndTag", "xmp"], ["Character", "-->"], ["EndTag", "xmp"]]},
-
-{"description":"Bogus comment in RCDATA or RAWTEXT",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foo<!-->baz</xmp>",
-"output":[["Character", "foo<!-->baz"], ["EndTag", "xmp"]]},
-
-{"description":"End tag surrounded by bogus comment in RCDATA or RAWTEXT",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foo<!--></xmp><!-->baz</xmp>",
-"output":[["Character", "foo<!-->"], ["EndTag", "xmp"], "ParseError", ["Comment", ""], ["Character", "baz"], ["EndTag", "xmp"]]},
-
-{"description":"Commented entities in RCDATA",
-"initialStates":["RCDATA state"],
-"lastStartTag":"xmp",
-"input":" &amp; <!-- &amp; --> &amp; </xmp>",
-"output":[["Character", " & <!-- & --> & "], ["EndTag", "xmp"]]},
-
-{"description":"Incorrect comment ending sequences in RCDATA or RAWTEXT",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foo<!-- x --x>x-- >x--!>x--<></xmp>",
-"output":[["Character", "foo<!-- x --x>x-- >x--!>x--<>"], ["EndTag", "xmp"]]}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/namedEntities.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/namedEntities.test
deleted file mode 100644
index 14db2ede0f1..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/namedEntities.test
+++ /dev/null
@@ -1,42210 +0,0 @@
-{
- "tests": [
- {
- "input": "&AElig",
- "description": "Named entity: AElig without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c6"
- ]
- ]
- },
- {
- "input": "&AElig;",
- "description": "Named entity: AElig; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c6"
- ]
- ]
- },
- {
- "input": "&AMP",
- "description": "Named entity: AMP without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "&"
- ]
- ]
- },
- {
- "input": "&AMP;",
- "description": "Named entity: AMP; with a semi-colon",
- "output": [
- [
- "Character",
- "&"
- ]
- ]
- },
- {
- "input": "&Aacute",
- "description": "Named entity: Aacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c1"
- ]
- ]
- },
- {
- "input": "&Aacute;",
- "description": "Named entity: Aacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c1"
- ]
- ]
- },
- {
- "input": "&Abreve",
- "description": "Bad named entity: Abreve without a semi-colon",
- "output": [
- [
- "Character",
- "&Abreve"
- ]
- ]
- },
- {
- "input": "&Abreve;",
- "description": "Named entity: Abreve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0102"
- ]
- ]
- },
- {
- "input": "&Acirc",
- "description": "Named entity: Acirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c2"
- ]
- ]
- },
- {
- "input": "&Acirc;",
- "description": "Named entity: Acirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c2"
- ]
- ]
- },
- {
- "input": "&Acy",
- "description": "Bad named entity: Acy without a semi-colon",
- "output": [
- [
- "Character",
- "&Acy"
- ]
- ]
- },
- {
- "input": "&Acy;",
- "description": "Named entity: Acy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0410"
- ]
- ]
- },
- {
- "input": "&Afr",
- "description": "Bad named entity: Afr without a semi-colon",
- "output": [
- [
- "Character",
- "&Afr"
- ]
- ]
- },
- {
- "input": "&Afr;",
- "description": "Named entity: Afr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd04"
- ]
- ]
- },
- {
- "input": "&Agrave",
- "description": "Named entity: Agrave without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c0"
- ]
- ]
- },
- {
- "input": "&Agrave;",
- "description": "Named entity: Agrave; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c0"
- ]
- ]
- },
- {
- "input": "&Alpha",
- "description": "Bad named entity: Alpha without a semi-colon",
- "output": [
- [
- "Character",
- "&Alpha"
- ]
- ]
- },
- {
- "input": "&Alpha;",
- "description": "Named entity: Alpha; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0391"
- ]
- ]
- },
- {
- "input": "&Amacr",
- "description": "Bad named entity: Amacr without a semi-colon",
- "output": [
- [
- "Character",
- "&Amacr"
- ]
- ]
- },
- {
- "input": "&Amacr;",
- "description": "Named entity: Amacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0100"
- ]
- ]
- },
- {
- "input": "&And",
- "description": "Bad named entity: And without a semi-colon",
- "output": [
- [
- "Character",
- "&And"
- ]
- ]
- },
- {
- "input": "&And;",
- "description": "Named entity: And; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a53"
- ]
- ]
- },
- {
- "input": "&Aogon",
- "description": "Bad named entity: Aogon without a semi-colon",
- "output": [
- [
- "Character",
- "&Aogon"
- ]
- ]
- },
- {
- "input": "&Aogon;",
- "description": "Named entity: Aogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0104"
- ]
- ]
- },
- {
- "input": "&Aopf",
- "description": "Bad named entity: Aopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Aopf"
- ]
- ]
- },
- {
- "input": "&Aopf;",
- "description": "Named entity: Aopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd38"
- ]
- ]
- },
- {
- "input": "&ApplyFunction",
- "description": "Bad named entity: ApplyFunction without a semi-colon",
- "output": [
- [
- "Character",
- "&ApplyFunction"
- ]
- ]
- },
- {
- "input": "&ApplyFunction;",
- "description": "Named entity: ApplyFunction; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2061"
- ]
- ]
- },
- {
- "input": "&Aring",
- "description": "Named entity: Aring without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c5"
- ]
- ]
- },
- {
- "input": "&Aring;",
- "description": "Named entity: Aring; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c5"
- ]
- ]
- },
- {
- "input": "&Ascr",
- "description": "Bad named entity: Ascr without a semi-colon",
- "output": [
- [
- "Character",
- "&Ascr"
- ]
- ]
- },
- {
- "input": "&Ascr;",
- "description": "Named entity: Ascr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udc9c"
- ]
- ]
- },
- {
- "input": "&Assign",
- "description": "Bad named entity: Assign without a semi-colon",
- "output": [
- [
- "Character",
- "&Assign"
- ]
- ]
- },
- {
- "input": "&Assign;",
- "description": "Named entity: Assign; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2254"
- ]
- ]
- },
- {
- "input": "&Atilde",
- "description": "Named entity: Atilde without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c3"
- ]
- ]
- },
- {
- "input": "&Atilde;",
- "description": "Named entity: Atilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c3"
- ]
- ]
- },
- {
- "input": "&Auml",
- "description": "Named entity: Auml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c4"
- ]
- ]
- },
- {
- "input": "&Auml;",
- "description": "Named entity: Auml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c4"
- ]
- ]
- },
- {
- "input": "&Backslash",
- "description": "Bad named entity: Backslash without a semi-colon",
- "output": [
- [
- "Character",
- "&Backslash"
- ]
- ]
- },
- {
- "input": "&Backslash;",
- "description": "Named entity: Backslash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2216"
- ]
- ]
- },
- {
- "input": "&Barv",
- "description": "Bad named entity: Barv without a semi-colon",
- "output": [
- [
- "Character",
- "&Barv"
- ]
- ]
- },
- {
- "input": "&Barv;",
- "description": "Named entity: Barv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ae7"
- ]
- ]
- },
- {
- "input": "&Barwed",
- "description": "Bad named entity: Barwed without a semi-colon",
- "output": [
- [
- "Character",
- "&Barwed"
- ]
- ]
- },
- {
- "input": "&Barwed;",
- "description": "Named entity: Barwed; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2306"
- ]
- ]
- },
- {
- "input": "&Bcy",
- "description": "Bad named entity: Bcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Bcy"
- ]
- ]
- },
- {
- "input": "&Bcy;",
- "description": "Named entity: Bcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0411"
- ]
- ]
- },
- {
- "input": "&Because",
- "description": "Bad named entity: Because without a semi-colon",
- "output": [
- [
- "Character",
- "&Because"
- ]
- ]
- },
- {
- "input": "&Because;",
- "description": "Named entity: Because; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2235"
- ]
- ]
- },
- {
- "input": "&Bernoullis",
- "description": "Bad named entity: Bernoullis without a semi-colon",
- "output": [
- [
- "Character",
- "&Bernoullis"
- ]
- ]
- },
- {
- "input": "&Bernoullis;",
- "description": "Named entity: Bernoullis; with a semi-colon",
- "output": [
- [
- "Character",
- "\u212c"
- ]
- ]
- },
- {
- "input": "&Beta",
- "description": "Bad named entity: Beta without a semi-colon",
- "output": [
- [
- "Character",
- "&Beta"
- ]
- ]
- },
- {
- "input": "&Beta;",
- "description": "Named entity: Beta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0392"
- ]
- ]
- },
- {
- "input": "&Bfr",
- "description": "Bad named entity: Bfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Bfr"
- ]
- ]
- },
- {
- "input": "&Bfr;",
- "description": "Named entity: Bfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd05"
- ]
- ]
- },
- {
- "input": "&Bopf",
- "description": "Bad named entity: Bopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Bopf"
- ]
- ]
- },
- {
- "input": "&Bopf;",
- "description": "Named entity: Bopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd39"
- ]
- ]
- },
- {
- "input": "&Breve",
- "description": "Bad named entity: Breve without a semi-colon",
- "output": [
- [
- "Character",
- "&Breve"
- ]
- ]
- },
- {
- "input": "&Breve;",
- "description": "Named entity: Breve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02d8"
- ]
- ]
- },
- {
- "input": "&Bscr",
- "description": "Bad named entity: Bscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Bscr"
- ]
- ]
- },
- {
- "input": "&Bscr;",
- "description": "Named entity: Bscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u212c"
- ]
- ]
- },
- {
- "input": "&Bumpeq",
- "description": "Bad named entity: Bumpeq without a semi-colon",
- "output": [
- [
- "Character",
- "&Bumpeq"
- ]
- ]
- },
- {
- "input": "&Bumpeq;",
- "description": "Named entity: Bumpeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224e"
- ]
- ]
- },
- {
- "input": "&CHcy",
- "description": "Bad named entity: CHcy without a semi-colon",
- "output": [
- [
- "Character",
- "&CHcy"
- ]
- ]
- },
- {
- "input": "&CHcy;",
- "description": "Named entity: CHcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0427"
- ]
- ]
- },
- {
- "input": "&COPY",
- "description": "Named entity: COPY without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a9"
- ]
- ]
- },
- {
- "input": "&COPY;",
- "description": "Named entity: COPY; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a9"
- ]
- ]
- },
- {
- "input": "&Cacute",
- "description": "Bad named entity: Cacute without a semi-colon",
- "output": [
- [
- "Character",
- "&Cacute"
- ]
- ]
- },
- {
- "input": "&Cacute;",
- "description": "Named entity: Cacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0106"
- ]
- ]
- },
- {
- "input": "&Cap",
- "description": "Bad named entity: Cap without a semi-colon",
- "output": [
- [
- "Character",
- "&Cap"
- ]
- ]
- },
- {
- "input": "&Cap;",
- "description": "Named entity: Cap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d2"
- ]
- ]
- },
- {
- "input": "&CapitalDifferentialD",
- "description": "Bad named entity: CapitalDifferentialD without a semi-colon",
- "output": [
- [
- "Character",
- "&CapitalDifferentialD"
- ]
- ]
- },
- {
- "input": "&CapitalDifferentialD;",
- "description": "Named entity: CapitalDifferentialD; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2145"
- ]
- ]
- },
- {
- "input": "&Cayleys",
- "description": "Bad named entity: Cayleys without a semi-colon",
- "output": [
- [
- "Character",
- "&Cayleys"
- ]
- ]
- },
- {
- "input": "&Cayleys;",
- "description": "Named entity: Cayleys; with a semi-colon",
- "output": [
- [
- "Character",
- "\u212d"
- ]
- ]
- },
- {
- "input": "&Ccaron",
- "description": "Bad named entity: Ccaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Ccaron"
- ]
- ]
- },
- {
- "input": "&Ccaron;",
- "description": "Named entity: Ccaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u010c"
- ]
- ]
- },
- {
- "input": "&Ccedil",
- "description": "Named entity: Ccedil without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c7"
- ]
- ]
- },
- {
- "input": "&Ccedil;",
- "description": "Named entity: Ccedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c7"
- ]
- ]
- },
- {
- "input": "&Ccirc",
- "description": "Bad named entity: Ccirc without a semi-colon",
- "output": [
- [
- "Character",
- "&Ccirc"
- ]
- ]
- },
- {
- "input": "&Ccirc;",
- "description": "Named entity: Ccirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0108"
- ]
- ]
- },
- {
- "input": "&Cconint",
- "description": "Bad named entity: Cconint without a semi-colon",
- "output": [
- [
- "Character",
- "&Cconint"
- ]
- ]
- },
- {
- "input": "&Cconint;",
- "description": "Named entity: Cconint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2230"
- ]
- ]
- },
- {
- "input": "&Cdot",
- "description": "Bad named entity: Cdot without a semi-colon",
- "output": [
- [
- "Character",
- "&Cdot"
- ]
- ]
- },
- {
- "input": "&Cdot;",
- "description": "Named entity: Cdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u010a"
- ]
- ]
- },
- {
- "input": "&Cedilla",
- "description": "Bad named entity: Cedilla without a semi-colon",
- "output": [
- [
- "Character",
- "&Cedilla"
- ]
- ]
- },
- {
- "input": "&Cedilla;",
- "description": "Named entity: Cedilla; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b8"
- ]
- ]
- },
- {
- "input": "&CenterDot",
- "description": "Bad named entity: CenterDot without a semi-colon",
- "output": [
- [
- "Character",
- "&CenterDot"
- ]
- ]
- },
- {
- "input": "&CenterDot;",
- "description": "Named entity: CenterDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b7"
- ]
- ]
- },
- {
- "input": "&Cfr",
- "description": "Bad named entity: Cfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Cfr"
- ]
- ]
- },
- {
- "input": "&Cfr;",
- "description": "Named entity: Cfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u212d"
- ]
- ]
- },
- {
- "input": "&Chi",
- "description": "Bad named entity: Chi without a semi-colon",
- "output": [
- [
- "Character",
- "&Chi"
- ]
- ]
- },
- {
- "input": "&Chi;",
- "description": "Named entity: Chi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a7"
- ]
- ]
- },
- {
- "input": "&CircleDot",
- "description": "Bad named entity: CircleDot without a semi-colon",
- "output": [
- [
- "Character",
- "&CircleDot"
- ]
- ]
- },
- {
- "input": "&CircleDot;",
- "description": "Named entity: CircleDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2299"
- ]
- ]
- },
- {
- "input": "&CircleMinus",
- "description": "Bad named entity: CircleMinus without a semi-colon",
- "output": [
- [
- "Character",
- "&CircleMinus"
- ]
- ]
- },
- {
- "input": "&CircleMinus;",
- "description": "Named entity: CircleMinus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2296"
- ]
- ]
- },
- {
- "input": "&CirclePlus",
- "description": "Bad named entity: CirclePlus without a semi-colon",
- "output": [
- [
- "Character",
- "&CirclePlus"
- ]
- ]
- },
- {
- "input": "&CirclePlus;",
- "description": "Named entity: CirclePlus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2295"
- ]
- ]
- },
- {
- "input": "&CircleTimes",
- "description": "Bad named entity: CircleTimes without a semi-colon",
- "output": [
- [
- "Character",
- "&CircleTimes"
- ]
- ]
- },
- {
- "input": "&CircleTimes;",
- "description": "Named entity: CircleTimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2297"
- ]
- ]
- },
- {
- "input": "&ClockwiseContourIntegral",
- "description": "Bad named entity: ClockwiseContourIntegral without a semi-colon",
- "output": [
- [
- "Character",
- "&ClockwiseContourIntegral"
- ]
- ]
- },
- {
- "input": "&ClockwiseContourIntegral;",
- "description": "Named entity: ClockwiseContourIntegral; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2232"
- ]
- ]
- },
- {
- "input": "&CloseCurlyDoubleQuote",
- "description": "Bad named entity: CloseCurlyDoubleQuote without a semi-colon",
- "output": [
- [
- "Character",
- "&CloseCurlyDoubleQuote"
- ]
- ]
- },
- {
- "input": "&CloseCurlyDoubleQuote;",
- "description": "Named entity: CloseCurlyDoubleQuote; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201d"
- ]
- ]
- },
- {
- "input": "&CloseCurlyQuote",
- "description": "Bad named entity: CloseCurlyQuote without a semi-colon",
- "output": [
- [
- "Character",
- "&CloseCurlyQuote"
- ]
- ]
- },
- {
- "input": "&CloseCurlyQuote;",
- "description": "Named entity: CloseCurlyQuote; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2019"
- ]
- ]
- },
- {
- "input": "&Colon",
- "description": "Bad named entity: Colon without a semi-colon",
- "output": [
- [
- "Character",
- "&Colon"
- ]
- ]
- },
- {
- "input": "&Colon;",
- "description": "Named entity: Colon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2237"
- ]
- ]
- },
- {
- "input": "&Colone",
- "description": "Bad named entity: Colone without a semi-colon",
- "output": [
- [
- "Character",
- "&Colone"
- ]
- ]
- },
- {
- "input": "&Colone;",
- "description": "Named entity: Colone; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a74"
- ]
- ]
- },
- {
- "input": "&Congruent",
- "description": "Bad named entity: Congruent without a semi-colon",
- "output": [
- [
- "Character",
- "&Congruent"
- ]
- ]
- },
- {
- "input": "&Congruent;",
- "description": "Named entity: Congruent; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2261"
- ]
- ]
- },
- {
- "input": "&Conint",
- "description": "Bad named entity: Conint without a semi-colon",
- "output": [
- [
- "Character",
- "&Conint"
- ]
- ]
- },
- {
- "input": "&Conint;",
- "description": "Named entity: Conint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222f"
- ]
- ]
- },
- {
- "input": "&ContourIntegral",
- "description": "Bad named entity: ContourIntegral without a semi-colon",
- "output": [
- [
- "Character",
- "&ContourIntegral"
- ]
- ]
- },
- {
- "input": "&ContourIntegral;",
- "description": "Named entity: ContourIntegral; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222e"
- ]
- ]
- },
- {
- "input": "&Copf",
- "description": "Bad named entity: Copf without a semi-colon",
- "output": [
- [
- "Character",
- "&Copf"
- ]
- ]
- },
- {
- "input": "&Copf;",
- "description": "Named entity: Copf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2102"
- ]
- ]
- },
- {
- "input": "&Coproduct",
- "description": "Bad named entity: Coproduct without a semi-colon",
- "output": [
- [
- "Character",
- "&Coproduct"
- ]
- ]
- },
- {
- "input": "&Coproduct;",
- "description": "Named entity: Coproduct; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2210"
- ]
- ]
- },
- {
- "input": "&CounterClockwiseContourIntegral",
- "description": "Bad named entity: CounterClockwiseContourIntegral without a semi-colon",
- "output": [
- [
- "Character",
- "&CounterClockwiseContourIntegral"
- ]
- ]
- },
- {
- "input": "&CounterClockwiseContourIntegral;",
- "description": "Named entity: CounterClockwiseContourIntegral; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2233"
- ]
- ]
- },
- {
- "input": "&Cross",
- "description": "Bad named entity: Cross without a semi-colon",
- "output": [
- [
- "Character",
- "&Cross"
- ]
- ]
- },
- {
- "input": "&Cross;",
- "description": "Named entity: Cross; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a2f"
- ]
- ]
- },
- {
- "input": "&Cscr",
- "description": "Bad named entity: Cscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Cscr"
- ]
- ]
- },
- {
- "input": "&Cscr;",
- "description": "Named entity: Cscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udc9e"
- ]
- ]
- },
- {
- "input": "&Cup",
- "description": "Bad named entity: Cup without a semi-colon",
- "output": [
- [
- "Character",
- "&Cup"
- ]
- ]
- },
- {
- "input": "&Cup;",
- "description": "Named entity: Cup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d3"
- ]
- ]
- },
- {
- "input": "&CupCap",
- "description": "Bad named entity: CupCap without a semi-colon",
- "output": [
- [
- "Character",
- "&CupCap"
- ]
- ]
- },
- {
- "input": "&CupCap;",
- "description": "Named entity: CupCap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224d"
- ]
- ]
- },
- {
- "input": "&DD",
- "description": "Bad named entity: DD without a semi-colon",
- "output": [
- [
- "Character",
- "&DD"
- ]
- ]
- },
- {
- "input": "&DD;",
- "description": "Named entity: DD; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2145"
- ]
- ]
- },
- {
- "input": "&DDotrahd",
- "description": "Bad named entity: DDotrahd without a semi-colon",
- "output": [
- [
- "Character",
- "&DDotrahd"
- ]
- ]
- },
- {
- "input": "&DDotrahd;",
- "description": "Named entity: DDotrahd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2911"
- ]
- ]
- },
- {
- "input": "&DJcy",
- "description": "Bad named entity: DJcy without a semi-colon",
- "output": [
- [
- "Character",
- "&DJcy"
- ]
- ]
- },
- {
- "input": "&DJcy;",
- "description": "Named entity: DJcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0402"
- ]
- ]
- },
- {
- "input": "&DScy",
- "description": "Bad named entity: DScy without a semi-colon",
- "output": [
- [
- "Character",
- "&DScy"
- ]
- ]
- },
- {
- "input": "&DScy;",
- "description": "Named entity: DScy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0405"
- ]
- ]
- },
- {
- "input": "&DZcy",
- "description": "Bad named entity: DZcy without a semi-colon",
- "output": [
- [
- "Character",
- "&DZcy"
- ]
- ]
- },
- {
- "input": "&DZcy;",
- "description": "Named entity: DZcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u040f"
- ]
- ]
- },
- {
- "input": "&Dagger",
- "description": "Bad named entity: Dagger without a semi-colon",
- "output": [
- [
- "Character",
- "&Dagger"
- ]
- ]
- },
- {
- "input": "&Dagger;",
- "description": "Named entity: Dagger; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2021"
- ]
- ]
- },
- {
- "input": "&Darr",
- "description": "Bad named entity: Darr without a semi-colon",
- "output": [
- [
- "Character",
- "&Darr"
- ]
- ]
- },
- {
- "input": "&Darr;",
- "description": "Named entity: Darr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a1"
- ]
- ]
- },
- {
- "input": "&Dashv",
- "description": "Bad named entity: Dashv without a semi-colon",
- "output": [
- [
- "Character",
- "&Dashv"
- ]
- ]
- },
- {
- "input": "&Dashv;",
- "description": "Named entity: Dashv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ae4"
- ]
- ]
- },
- {
- "input": "&Dcaron",
- "description": "Bad named entity: Dcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Dcaron"
- ]
- ]
- },
- {
- "input": "&Dcaron;",
- "description": "Named entity: Dcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u010e"
- ]
- ]
- },
- {
- "input": "&Dcy",
- "description": "Bad named entity: Dcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Dcy"
- ]
- ]
- },
- {
- "input": "&Dcy;",
- "description": "Named entity: Dcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0414"
- ]
- ]
- },
- {
- "input": "&Del",
- "description": "Bad named entity: Del without a semi-colon",
- "output": [
- [
- "Character",
- "&Del"
- ]
- ]
- },
- {
- "input": "&Del;",
- "description": "Named entity: Del; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2207"
- ]
- ]
- },
- {
- "input": "&Delta",
- "description": "Bad named entity: Delta without a semi-colon",
- "output": [
- [
- "Character",
- "&Delta"
- ]
- ]
- },
- {
- "input": "&Delta;",
- "description": "Named entity: Delta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0394"
- ]
- ]
- },
- {
- "input": "&Dfr",
- "description": "Bad named entity: Dfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Dfr"
- ]
- ]
- },
- {
- "input": "&Dfr;",
- "description": "Named entity: Dfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd07"
- ]
- ]
- },
- {
- "input": "&DiacriticalAcute",
- "description": "Bad named entity: DiacriticalAcute without a semi-colon",
- "output": [
- [
- "Character",
- "&DiacriticalAcute"
- ]
- ]
- },
- {
- "input": "&DiacriticalAcute;",
- "description": "Named entity: DiacriticalAcute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b4"
- ]
- ]
- },
- {
- "input": "&DiacriticalDot",
- "description": "Bad named entity: DiacriticalDot without a semi-colon",
- "output": [
- [
- "Character",
- "&DiacriticalDot"
- ]
- ]
- },
- {
- "input": "&DiacriticalDot;",
- "description": "Named entity: DiacriticalDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02d9"
- ]
- ]
- },
- {
- "input": "&DiacriticalDoubleAcute",
- "description": "Bad named entity: DiacriticalDoubleAcute without a semi-colon",
- "output": [
- [
- "Character",
- "&DiacriticalDoubleAcute"
- ]
- ]
- },
- {
- "input": "&DiacriticalDoubleAcute;",
- "description": "Named entity: DiacriticalDoubleAcute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02dd"
- ]
- ]
- },
- {
- "input": "&DiacriticalGrave",
- "description": "Bad named entity: DiacriticalGrave without a semi-colon",
- "output": [
- [
- "Character",
- "&DiacriticalGrave"
- ]
- ]
- },
- {
- "input": "&DiacriticalGrave;",
- "description": "Named entity: DiacriticalGrave; with a semi-colon",
- "output": [
- [
- "Character",
- "`"
- ]
- ]
- },
- {
- "input": "&DiacriticalTilde",
- "description": "Bad named entity: DiacriticalTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&DiacriticalTilde"
- ]
- ]
- },
- {
- "input": "&DiacriticalTilde;",
- "description": "Named entity: DiacriticalTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02dc"
- ]
- ]
- },
- {
- "input": "&Diamond",
- "description": "Bad named entity: Diamond without a semi-colon",
- "output": [
- [
- "Character",
- "&Diamond"
- ]
- ]
- },
- {
- "input": "&Diamond;",
- "description": "Named entity: Diamond; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c4"
- ]
- ]
- },
- {
- "input": "&DifferentialD",
- "description": "Bad named entity: DifferentialD without a semi-colon",
- "output": [
- [
- "Character",
- "&DifferentialD"
- ]
- ]
- },
- {
- "input": "&DifferentialD;",
- "description": "Named entity: DifferentialD; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2146"
- ]
- ]
- },
- {
- "input": "&Dopf",
- "description": "Bad named entity: Dopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Dopf"
- ]
- ]
- },
- {
- "input": "&Dopf;",
- "description": "Named entity: Dopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd3b"
- ]
- ]
- },
- {
- "input": "&Dot",
- "description": "Bad named entity: Dot without a semi-colon",
- "output": [
- [
- "Character",
- "&Dot"
- ]
- ]
- },
- {
- "input": "&Dot;",
- "description": "Named entity: Dot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a8"
- ]
- ]
- },
- {
- "input": "&DotDot",
- "description": "Bad named entity: DotDot without a semi-colon",
- "output": [
- [
- "Character",
- "&DotDot"
- ]
- ]
- },
- {
- "input": "&DotDot;",
- "description": "Named entity: DotDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u20dc"
- ]
- ]
- },
- {
- "input": "&DotEqual",
- "description": "Bad named entity: DotEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&DotEqual"
- ]
- ]
- },
- {
- "input": "&DotEqual;",
- "description": "Named entity: DotEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2250"
- ]
- ]
- },
- {
- "input": "&DoubleContourIntegral",
- "description": "Bad named entity: DoubleContourIntegral without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleContourIntegral"
- ]
- ]
- },
- {
- "input": "&DoubleContourIntegral;",
- "description": "Named entity: DoubleContourIntegral; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222f"
- ]
- ]
- },
- {
- "input": "&DoubleDot",
- "description": "Bad named entity: DoubleDot without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleDot"
- ]
- ]
- },
- {
- "input": "&DoubleDot;",
- "description": "Named entity: DoubleDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a8"
- ]
- ]
- },
- {
- "input": "&DoubleDownArrow",
- "description": "Bad named entity: DoubleDownArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleDownArrow"
- ]
- ]
- },
- {
- "input": "&DoubleDownArrow;",
- "description": "Named entity: DoubleDownArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d3"
- ]
- ]
- },
- {
- "input": "&DoubleLeftArrow",
- "description": "Bad named entity: DoubleLeftArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleLeftArrow"
- ]
- ]
- },
- {
- "input": "&DoubleLeftArrow;",
- "description": "Named entity: DoubleLeftArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d0"
- ]
- ]
- },
- {
- "input": "&DoubleLeftRightArrow",
- "description": "Bad named entity: DoubleLeftRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleLeftRightArrow"
- ]
- ]
- },
- {
- "input": "&DoubleLeftRightArrow;",
- "description": "Named entity: DoubleLeftRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d4"
- ]
- ]
- },
- {
- "input": "&DoubleLeftTee",
- "description": "Bad named entity: DoubleLeftTee without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleLeftTee"
- ]
- ]
- },
- {
- "input": "&DoubleLeftTee;",
- "description": "Named entity: DoubleLeftTee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ae4"
- ]
- ]
- },
- {
- "input": "&DoubleLongLeftArrow",
- "description": "Bad named entity: DoubleLongLeftArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleLongLeftArrow"
- ]
- ]
- },
- {
- "input": "&DoubleLongLeftArrow;",
- "description": "Named entity: DoubleLongLeftArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f8"
- ]
- ]
- },
- {
- "input": "&DoubleLongLeftRightArrow",
- "description": "Bad named entity: DoubleLongLeftRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleLongLeftRightArrow"
- ]
- ]
- },
- {
- "input": "&DoubleLongLeftRightArrow;",
- "description": "Named entity: DoubleLongLeftRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27fa"
- ]
- ]
- },
- {
- "input": "&DoubleLongRightArrow",
- "description": "Bad named entity: DoubleLongRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleLongRightArrow"
- ]
- ]
- },
- {
- "input": "&DoubleLongRightArrow;",
- "description": "Named entity: DoubleLongRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f9"
- ]
- ]
- },
- {
- "input": "&DoubleRightArrow",
- "description": "Bad named entity: DoubleRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleRightArrow"
- ]
- ]
- },
- {
- "input": "&DoubleRightArrow;",
- "description": "Named entity: DoubleRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d2"
- ]
- ]
- },
- {
- "input": "&DoubleRightTee",
- "description": "Bad named entity: DoubleRightTee without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleRightTee"
- ]
- ]
- },
- {
- "input": "&DoubleRightTee;",
- "description": "Named entity: DoubleRightTee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a8"
- ]
- ]
- },
- {
- "input": "&DoubleUpArrow",
- "description": "Bad named entity: DoubleUpArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleUpArrow"
- ]
- ]
- },
- {
- "input": "&DoubleUpArrow;",
- "description": "Named entity: DoubleUpArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d1"
- ]
- ]
- },
- {
- "input": "&DoubleUpDownArrow",
- "description": "Bad named entity: DoubleUpDownArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleUpDownArrow"
- ]
- ]
- },
- {
- "input": "&DoubleUpDownArrow;",
- "description": "Named entity: DoubleUpDownArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d5"
- ]
- ]
- },
- {
- "input": "&DoubleVerticalBar",
- "description": "Bad named entity: DoubleVerticalBar without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleVerticalBar"
- ]
- ]
- },
- {
- "input": "&DoubleVerticalBar;",
- "description": "Named entity: DoubleVerticalBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2225"
- ]
- ]
- },
- {
- "input": "&DownArrow",
- "description": "Bad named entity: DownArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DownArrow"
- ]
- ]
- },
- {
- "input": "&DownArrow;",
- "description": "Named entity: DownArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2193"
- ]
- ]
- },
- {
- "input": "&DownArrowBar",
- "description": "Bad named entity: DownArrowBar without a semi-colon",
- "output": [
- [
- "Character",
- "&DownArrowBar"
- ]
- ]
- },
- {
- "input": "&DownArrowBar;",
- "description": "Named entity: DownArrowBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2913"
- ]
- ]
- },
- {
- "input": "&DownArrowUpArrow",
- "description": "Bad named entity: DownArrowUpArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DownArrowUpArrow"
- ]
- ]
- },
- {
- "input": "&DownArrowUpArrow;",
- "description": "Named entity: DownArrowUpArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21f5"
- ]
- ]
- },
- {
- "input": "&DownBreve",
- "description": "Bad named entity: DownBreve without a semi-colon",
- "output": [
- [
- "Character",
- "&DownBreve"
- ]
- ]
- },
- {
- "input": "&DownBreve;",
- "description": "Named entity: DownBreve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0311"
- ]
- ]
- },
- {
- "input": "&DownLeftRightVector",
- "description": "Bad named entity: DownLeftRightVector without a semi-colon",
- "output": [
- [
- "Character",
- "&DownLeftRightVector"
- ]
- ]
- },
- {
- "input": "&DownLeftRightVector;",
- "description": "Named entity: DownLeftRightVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2950"
- ]
- ]
- },
- {
- "input": "&DownLeftTeeVector",
- "description": "Bad named entity: DownLeftTeeVector without a semi-colon",
- "output": [
- [
- "Character",
- "&DownLeftTeeVector"
- ]
- ]
- },
- {
- "input": "&DownLeftTeeVector;",
- "description": "Named entity: DownLeftTeeVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u295e"
- ]
- ]
- },
- {
- "input": "&DownLeftVector",
- "description": "Bad named entity: DownLeftVector without a semi-colon",
- "output": [
- [
- "Character",
- "&DownLeftVector"
- ]
- ]
- },
- {
- "input": "&DownLeftVector;",
- "description": "Named entity: DownLeftVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bd"
- ]
- ]
- },
- {
- "input": "&DownLeftVectorBar",
- "description": "Bad named entity: DownLeftVectorBar without a semi-colon",
- "output": [
- [
- "Character",
- "&DownLeftVectorBar"
- ]
- ]
- },
- {
- "input": "&DownLeftVectorBar;",
- "description": "Named entity: DownLeftVectorBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2956"
- ]
- ]
- },
- {
- "input": "&DownRightTeeVector",
- "description": "Bad named entity: DownRightTeeVector without a semi-colon",
- "output": [
- [
- "Character",
- "&DownRightTeeVector"
- ]
- ]
- },
- {
- "input": "&DownRightTeeVector;",
- "description": "Named entity: DownRightTeeVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u295f"
- ]
- ]
- },
- {
- "input": "&DownRightVector",
- "description": "Bad named entity: DownRightVector without a semi-colon",
- "output": [
- [
- "Character",
- "&DownRightVector"
- ]
- ]
- },
- {
- "input": "&DownRightVector;",
- "description": "Named entity: DownRightVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c1"
- ]
- ]
- },
- {
- "input": "&DownRightVectorBar",
- "description": "Bad named entity: DownRightVectorBar without a semi-colon",
- "output": [
- [
- "Character",
- "&DownRightVectorBar"
- ]
- ]
- },
- {
- "input": "&DownRightVectorBar;",
- "description": "Named entity: DownRightVectorBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2957"
- ]
- ]
- },
- {
- "input": "&DownTee",
- "description": "Bad named entity: DownTee without a semi-colon",
- "output": [
- [
- "Character",
- "&DownTee"
- ]
- ]
- },
- {
- "input": "&DownTee;",
- "description": "Named entity: DownTee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a4"
- ]
- ]
- },
- {
- "input": "&DownTeeArrow",
- "description": "Bad named entity: DownTeeArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DownTeeArrow"
- ]
- ]
- },
- {
- "input": "&DownTeeArrow;",
- "description": "Named entity: DownTeeArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a7"
- ]
- ]
- },
- {
- "input": "&Downarrow",
- "description": "Bad named entity: Downarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Downarrow"
- ]
- ]
- },
- {
- "input": "&Downarrow;",
- "description": "Named entity: Downarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d3"
- ]
- ]
- },
- {
- "input": "&Dscr",
- "description": "Bad named entity: Dscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Dscr"
- ]
- ]
- },
- {
- "input": "&Dscr;",
- "description": "Named entity: Dscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udc9f"
- ]
- ]
- },
- {
- "input": "&Dstrok",
- "description": "Bad named entity: Dstrok without a semi-colon",
- "output": [
- [
- "Character",
- "&Dstrok"
- ]
- ]
- },
- {
- "input": "&Dstrok;",
- "description": "Named entity: Dstrok; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0110"
- ]
- ]
- },
- {
- "input": "&ENG",
- "description": "Bad named entity: ENG without a semi-colon",
- "output": [
- [
- "Character",
- "&ENG"
- ]
- ]
- },
- {
- "input": "&ENG;",
- "description": "Named entity: ENG; with a semi-colon",
- "output": [
- [
- "Character",
- "\u014a"
- ]
- ]
- },
- {
- "input": "&ETH",
- "description": "Named entity: ETH without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d0"
- ]
- ]
- },
- {
- "input": "&ETH;",
- "description": "Named entity: ETH; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d0"
- ]
- ]
- },
- {
- "input": "&Eacute",
- "description": "Named entity: Eacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c9"
- ]
- ]
- },
- {
- "input": "&Eacute;",
- "description": "Named entity: Eacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c9"
- ]
- ]
- },
- {
- "input": "&Ecaron",
- "description": "Bad named entity: Ecaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Ecaron"
- ]
- ]
- },
- {
- "input": "&Ecaron;",
- "description": "Named entity: Ecaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u011a"
- ]
- ]
- },
- {
- "input": "&Ecirc",
- "description": "Named entity: Ecirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ca"
- ]
- ]
- },
- {
- "input": "&Ecirc;",
- "description": "Named entity: Ecirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ca"
- ]
- ]
- },
- {
- "input": "&Ecy",
- "description": "Bad named entity: Ecy without a semi-colon",
- "output": [
- [
- "Character",
- "&Ecy"
- ]
- ]
- },
- {
- "input": "&Ecy;",
- "description": "Named entity: Ecy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u042d"
- ]
- ]
- },
- {
- "input": "&Edot",
- "description": "Bad named entity: Edot without a semi-colon",
- "output": [
- [
- "Character",
- "&Edot"
- ]
- ]
- },
- {
- "input": "&Edot;",
- "description": "Named entity: Edot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0116"
- ]
- ]
- },
- {
- "input": "&Efr",
- "description": "Bad named entity: Efr without a semi-colon",
- "output": [
- [
- "Character",
- "&Efr"
- ]
- ]
- },
- {
- "input": "&Efr;",
- "description": "Named entity: Efr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd08"
- ]
- ]
- },
- {
- "input": "&Egrave",
- "description": "Named entity: Egrave without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c8"
- ]
- ]
- },
- {
- "input": "&Egrave;",
- "description": "Named entity: Egrave; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c8"
- ]
- ]
- },
- {
- "input": "&Element",
- "description": "Bad named entity: Element without a semi-colon",
- "output": [
- [
- "Character",
- "&Element"
- ]
- ]
- },
- {
- "input": "&Element;",
- "description": "Named entity: Element; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2208"
- ]
- ]
- },
- {
- "input": "&Emacr",
- "description": "Bad named entity: Emacr without a semi-colon",
- "output": [
- [
- "Character",
- "&Emacr"
- ]
- ]
- },
- {
- "input": "&Emacr;",
- "description": "Named entity: Emacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0112"
- ]
- ]
- },
- {
- "input": "&EmptySmallSquare",
- "description": "Bad named entity: EmptySmallSquare without a semi-colon",
- "output": [
- [
- "Character",
- "&EmptySmallSquare"
- ]
- ]
- },
- {
- "input": "&EmptySmallSquare;",
- "description": "Named entity: EmptySmallSquare; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25fb"
- ]
- ]
- },
- {
- "input": "&EmptyVerySmallSquare",
- "description": "Bad named entity: EmptyVerySmallSquare without a semi-colon",
- "output": [
- [
- "Character",
- "&EmptyVerySmallSquare"
- ]
- ]
- },
- {
- "input": "&EmptyVerySmallSquare;",
- "description": "Named entity: EmptyVerySmallSquare; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25ab"
- ]
- ]
- },
- {
- "input": "&Eogon",
- "description": "Bad named entity: Eogon without a semi-colon",
- "output": [
- [
- "Character",
- "&Eogon"
- ]
- ]
- },
- {
- "input": "&Eogon;",
- "description": "Named entity: Eogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0118"
- ]
- ]
- },
- {
- "input": "&Eopf",
- "description": "Bad named entity: Eopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Eopf"
- ]
- ]
- },
- {
- "input": "&Eopf;",
- "description": "Named entity: Eopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd3c"
- ]
- ]
- },
- {
- "input": "&Epsilon",
- "description": "Bad named entity: Epsilon without a semi-colon",
- "output": [
- [
- "Character",
- "&Epsilon"
- ]
- ]
- },
- {
- "input": "&Epsilon;",
- "description": "Named entity: Epsilon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0395"
- ]
- ]
- },
- {
- "input": "&Equal",
- "description": "Bad named entity: Equal without a semi-colon",
- "output": [
- [
- "Character",
- "&Equal"
- ]
- ]
- },
- {
- "input": "&Equal;",
- "description": "Named entity: Equal; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a75"
- ]
- ]
- },
- {
- "input": "&EqualTilde",
- "description": "Bad named entity: EqualTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&EqualTilde"
- ]
- ]
- },
- {
- "input": "&EqualTilde;",
- "description": "Named entity: EqualTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2242"
- ]
- ]
- },
- {
- "input": "&Equilibrium",
- "description": "Bad named entity: Equilibrium without a semi-colon",
- "output": [
- [
- "Character",
- "&Equilibrium"
- ]
- ]
- },
- {
- "input": "&Equilibrium;",
- "description": "Named entity: Equilibrium; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cc"
- ]
- ]
- },
- {
- "input": "&Escr",
- "description": "Bad named entity: Escr without a semi-colon",
- "output": [
- [
- "Character",
- "&Escr"
- ]
- ]
- },
- {
- "input": "&Escr;",
- "description": "Named entity: Escr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2130"
- ]
- ]
- },
- {
- "input": "&Esim",
- "description": "Bad named entity: Esim without a semi-colon",
- "output": [
- [
- "Character",
- "&Esim"
- ]
- ]
- },
- {
- "input": "&Esim;",
- "description": "Named entity: Esim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a73"
- ]
- ]
- },
- {
- "input": "&Eta",
- "description": "Bad named entity: Eta without a semi-colon",
- "output": [
- [
- "Character",
- "&Eta"
- ]
- ]
- },
- {
- "input": "&Eta;",
- "description": "Named entity: Eta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0397"
- ]
- ]
- },
- {
- "input": "&Euml",
- "description": "Named entity: Euml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00cb"
- ]
- ]
- },
- {
- "input": "&Euml;",
- "description": "Named entity: Euml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00cb"
- ]
- ]
- },
- {
- "input": "&Exists",
- "description": "Bad named entity: Exists without a semi-colon",
- "output": [
- [
- "Character",
- "&Exists"
- ]
- ]
- },
- {
- "input": "&Exists;",
- "description": "Named entity: Exists; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2203"
- ]
- ]
- },
- {
- "input": "&ExponentialE",
- "description": "Bad named entity: ExponentialE without a semi-colon",
- "output": [
- [
- "Character",
- "&ExponentialE"
- ]
- ]
- },
- {
- "input": "&ExponentialE;",
- "description": "Named entity: ExponentialE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2147"
- ]
- ]
- },
- {
- "input": "&Fcy",
- "description": "Bad named entity: Fcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Fcy"
- ]
- ]
- },
- {
- "input": "&Fcy;",
- "description": "Named entity: Fcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0424"
- ]
- ]
- },
- {
- "input": "&Ffr",
- "description": "Bad named entity: Ffr without a semi-colon",
- "output": [
- [
- "Character",
- "&Ffr"
- ]
- ]
- },
- {
- "input": "&Ffr;",
- "description": "Named entity: Ffr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd09"
- ]
- ]
- },
- {
- "input": "&FilledSmallSquare",
- "description": "Bad named entity: FilledSmallSquare without a semi-colon",
- "output": [
- [
- "Character",
- "&FilledSmallSquare"
- ]
- ]
- },
- {
- "input": "&FilledSmallSquare;",
- "description": "Named entity: FilledSmallSquare; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25fc"
- ]
- ]
- },
- {
- "input": "&FilledVerySmallSquare",
- "description": "Bad named entity: FilledVerySmallSquare without a semi-colon",
- "output": [
- [
- "Character",
- "&FilledVerySmallSquare"
- ]
- ]
- },
- {
- "input": "&FilledVerySmallSquare;",
- "description": "Named entity: FilledVerySmallSquare; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25aa"
- ]
- ]
- },
- {
- "input": "&Fopf",
- "description": "Bad named entity: Fopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Fopf"
- ]
- ]
- },
- {
- "input": "&Fopf;",
- "description": "Named entity: Fopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd3d"
- ]
- ]
- },
- {
- "input": "&ForAll",
- "description": "Bad named entity: ForAll without a semi-colon",
- "output": [
- [
- "Character",
- "&ForAll"
- ]
- ]
- },
- {
- "input": "&ForAll;",
- "description": "Named entity: ForAll; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2200"
- ]
- ]
- },
- {
- "input": "&Fouriertrf",
- "description": "Bad named entity: Fouriertrf without a semi-colon",
- "output": [
- [
- "Character",
- "&Fouriertrf"
- ]
- ]
- },
- {
- "input": "&Fouriertrf;",
- "description": "Named entity: Fouriertrf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2131"
- ]
- ]
- },
- {
- "input": "&Fscr",
- "description": "Bad named entity: Fscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Fscr"
- ]
- ]
- },
- {
- "input": "&Fscr;",
- "description": "Named entity: Fscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2131"
- ]
- ]
- },
- {
- "input": "&GJcy",
- "description": "Bad named entity: GJcy without a semi-colon",
- "output": [
- [
- "Character",
- "&GJcy"
- ]
- ]
- },
- {
- "input": "&GJcy;",
- "description": "Named entity: GJcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0403"
- ]
- ]
- },
- {
- "input": "&GT",
- "description": "Named entity: GT without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- ">"
- ]
- ]
- },
- {
- "input": "&GT;",
- "description": "Named entity: GT; with a semi-colon",
- "output": [
- [
- "Character",
- ">"
- ]
- ]
- },
- {
- "input": "&Gamma",
- "description": "Bad named entity: Gamma without a semi-colon",
- "output": [
- [
- "Character",
- "&Gamma"
- ]
- ]
- },
- {
- "input": "&Gamma;",
- "description": "Named entity: Gamma; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0393"
- ]
- ]
- },
- {
- "input": "&Gammad",
- "description": "Bad named entity: Gammad without a semi-colon",
- "output": [
- [
- "Character",
- "&Gammad"
- ]
- ]
- },
- {
- "input": "&Gammad;",
- "description": "Named entity: Gammad; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03dc"
- ]
- ]
- },
- {
- "input": "&Gbreve",
- "description": "Bad named entity: Gbreve without a semi-colon",
- "output": [
- [
- "Character",
- "&Gbreve"
- ]
- ]
- },
- {
- "input": "&Gbreve;",
- "description": "Named entity: Gbreve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u011e"
- ]
- ]
- },
- {
- "input": "&Gcedil",
- "description": "Bad named entity: Gcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&Gcedil"
- ]
- ]
- },
- {
- "input": "&Gcedil;",
- "description": "Named entity: Gcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0122"
- ]
- ]
- },
- {
- "input": "&Gcirc",
- "description": "Bad named entity: Gcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&Gcirc"
- ]
- ]
- },
- {
- "input": "&Gcirc;",
- "description": "Named entity: Gcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u011c"
- ]
- ]
- },
- {
- "input": "&Gcy",
- "description": "Bad named entity: Gcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Gcy"
- ]
- ]
- },
- {
- "input": "&Gcy;",
- "description": "Named entity: Gcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0413"
- ]
- ]
- },
- {
- "input": "&Gdot",
- "description": "Bad named entity: Gdot without a semi-colon",
- "output": [
- [
- "Character",
- "&Gdot"
- ]
- ]
- },
- {
- "input": "&Gdot;",
- "description": "Named entity: Gdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0120"
- ]
- ]
- },
- {
- "input": "&Gfr",
- "description": "Bad named entity: Gfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Gfr"
- ]
- ]
- },
- {
- "input": "&Gfr;",
- "description": "Named entity: Gfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd0a"
- ]
- ]
- },
- {
- "input": "&Gg",
- "description": "Bad named entity: Gg without a semi-colon",
- "output": [
- [
- "Character",
- "&Gg"
- ]
- ]
- },
- {
- "input": "&Gg;",
- "description": "Named entity: Gg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d9"
- ]
- ]
- },
- {
- "input": "&Gopf",
- "description": "Bad named entity: Gopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Gopf"
- ]
- ]
- },
- {
- "input": "&Gopf;",
- "description": "Named entity: Gopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd3e"
- ]
- ]
- },
- {
- "input": "&GreaterEqual",
- "description": "Bad named entity: GreaterEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&GreaterEqual"
- ]
- ]
- },
- {
- "input": "&GreaterEqual;",
- "description": "Named entity: GreaterEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2265"
- ]
- ]
- },
- {
- "input": "&GreaterEqualLess",
- "description": "Bad named entity: GreaterEqualLess without a semi-colon",
- "output": [
- [
- "Character",
- "&GreaterEqualLess"
- ]
- ]
- },
- {
- "input": "&GreaterEqualLess;",
- "description": "Named entity: GreaterEqualLess; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22db"
- ]
- ]
- },
- {
- "input": "&GreaterFullEqual",
- "description": "Bad named entity: GreaterFullEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&GreaterFullEqual"
- ]
- ]
- },
- {
- "input": "&GreaterFullEqual;",
- "description": "Named entity: GreaterFullEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2267"
- ]
- ]
- },
- {
- "input": "&GreaterGreater",
- "description": "Bad named entity: GreaterGreater without a semi-colon",
- "output": [
- [
- "Character",
- "&GreaterGreater"
- ]
- ]
- },
- {
- "input": "&GreaterGreater;",
- "description": "Named entity: GreaterGreater; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa2"
- ]
- ]
- },
- {
- "input": "&GreaterLess",
- "description": "Bad named entity: GreaterLess without a semi-colon",
- "output": [
- [
- "Character",
- "&GreaterLess"
- ]
- ]
- },
- {
- "input": "&GreaterLess;",
- "description": "Named entity: GreaterLess; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2277"
- ]
- ]
- },
- {
- "input": "&GreaterSlantEqual",
- "description": "Bad named entity: GreaterSlantEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&GreaterSlantEqual"
- ]
- ]
- },
- {
- "input": "&GreaterSlantEqual;",
- "description": "Named entity: GreaterSlantEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7e"
- ]
- ]
- },
- {
- "input": "&GreaterTilde",
- "description": "Bad named entity: GreaterTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&GreaterTilde"
- ]
- ]
- },
- {
- "input": "&GreaterTilde;",
- "description": "Named entity: GreaterTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2273"
- ]
- ]
- },
- {
- "input": "&Gscr",
- "description": "Bad named entity: Gscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Gscr"
- ]
- ]
- },
- {
- "input": "&Gscr;",
- "description": "Named entity: Gscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udca2"
- ]
- ]
- },
- {
- "input": "&Gt",
- "description": "Bad named entity: Gt without a semi-colon",
- "output": [
- [
- "Character",
- "&Gt"
- ]
- ]
- },
- {
- "input": "&Gt;",
- "description": "Named entity: Gt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226b"
- ]
- ]
- },
- {
- "input": "&HARDcy",
- "description": "Bad named entity: HARDcy without a semi-colon",
- "output": [
- [
- "Character",
- "&HARDcy"
- ]
- ]
- },
- {
- "input": "&HARDcy;",
- "description": "Named entity: HARDcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u042a"
- ]
- ]
- },
- {
- "input": "&Hacek",
- "description": "Bad named entity: Hacek without a semi-colon",
- "output": [
- [
- "Character",
- "&Hacek"
- ]
- ]
- },
- {
- "input": "&Hacek;",
- "description": "Named entity: Hacek; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02c7"
- ]
- ]
- },
- {
- "input": "&Hat",
- "description": "Bad named entity: Hat without a semi-colon",
- "output": [
- [
- "Character",
- "&Hat"
- ]
- ]
- },
- {
- "input": "&Hat;",
- "description": "Named entity: Hat; with a semi-colon",
- "output": [
- [
- "Character",
- "^"
- ]
- ]
- },
- {
- "input": "&Hcirc",
- "description": "Bad named entity: Hcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&Hcirc"
- ]
- ]
- },
- {
- "input": "&Hcirc;",
- "description": "Named entity: Hcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0124"
- ]
- ]
- },
- {
- "input": "&Hfr",
- "description": "Bad named entity: Hfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Hfr"
- ]
- ]
- },
- {
- "input": "&Hfr;",
- "description": "Named entity: Hfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210c"
- ]
- ]
- },
- {
- "input": "&HilbertSpace",
- "description": "Bad named entity: HilbertSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&HilbertSpace"
- ]
- ]
- },
- {
- "input": "&HilbertSpace;",
- "description": "Named entity: HilbertSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210b"
- ]
- ]
- },
- {
- "input": "&Hopf",
- "description": "Bad named entity: Hopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Hopf"
- ]
- ]
- },
- {
- "input": "&Hopf;",
- "description": "Named entity: Hopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210d"
- ]
- ]
- },
- {
- "input": "&HorizontalLine",
- "description": "Bad named entity: HorizontalLine without a semi-colon",
- "output": [
- [
- "Character",
- "&HorizontalLine"
- ]
- ]
- },
- {
- "input": "&HorizontalLine;",
- "description": "Named entity: HorizontalLine; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2500"
- ]
- ]
- },
- {
- "input": "&Hscr",
- "description": "Bad named entity: Hscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Hscr"
- ]
- ]
- },
- {
- "input": "&Hscr;",
- "description": "Named entity: Hscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210b"
- ]
- ]
- },
- {
- "input": "&Hstrok",
- "description": "Bad named entity: Hstrok without a semi-colon",
- "output": [
- [
- "Character",
- "&Hstrok"
- ]
- ]
- },
- {
- "input": "&Hstrok;",
- "description": "Named entity: Hstrok; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0126"
- ]
- ]
- },
- {
- "input": "&HumpDownHump",
- "description": "Bad named entity: HumpDownHump without a semi-colon",
- "output": [
- [
- "Character",
- "&HumpDownHump"
- ]
- ]
- },
- {
- "input": "&HumpDownHump;",
- "description": "Named entity: HumpDownHump; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224e"
- ]
- ]
- },
- {
- "input": "&HumpEqual",
- "description": "Bad named entity: HumpEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&HumpEqual"
- ]
- ]
- },
- {
- "input": "&HumpEqual;",
- "description": "Named entity: HumpEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224f"
- ]
- ]
- },
- {
- "input": "&IEcy",
- "description": "Bad named entity: IEcy without a semi-colon",
- "output": [
- [
- "Character",
- "&IEcy"
- ]
- ]
- },
- {
- "input": "&IEcy;",
- "description": "Named entity: IEcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0415"
- ]
- ]
- },
- {
- "input": "&IJlig",
- "description": "Bad named entity: IJlig without a semi-colon",
- "output": [
- [
- "Character",
- "&IJlig"
- ]
- ]
- },
- {
- "input": "&IJlig;",
- "description": "Named entity: IJlig; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0132"
- ]
- ]
- },
- {
- "input": "&IOcy",
- "description": "Bad named entity: IOcy without a semi-colon",
- "output": [
- [
- "Character",
- "&IOcy"
- ]
- ]
- },
- {
- "input": "&IOcy;",
- "description": "Named entity: IOcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0401"
- ]
- ]
- },
- {
- "input": "&Iacute",
- "description": "Named entity: Iacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00cd"
- ]
- ]
- },
- {
- "input": "&Iacute;",
- "description": "Named entity: Iacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00cd"
- ]
- ]
- },
- {
- "input": "&Icirc",
- "description": "Named entity: Icirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ce"
- ]
- ]
- },
- {
- "input": "&Icirc;",
- "description": "Named entity: Icirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ce"
- ]
- ]
- },
- {
- "input": "&Icy",
- "description": "Bad named entity: Icy without a semi-colon",
- "output": [
- [
- "Character",
- "&Icy"
- ]
- ]
- },
- {
- "input": "&Icy;",
- "description": "Named entity: Icy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0418"
- ]
- ]
- },
- {
- "input": "&Idot",
- "description": "Bad named entity: Idot without a semi-colon",
- "output": [
- [
- "Character",
- "&Idot"
- ]
- ]
- },
- {
- "input": "&Idot;",
- "description": "Named entity: Idot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0130"
- ]
- ]
- },
- {
- "input": "&Ifr",
- "description": "Bad named entity: Ifr without a semi-colon",
- "output": [
- [
- "Character",
- "&Ifr"
- ]
- ]
- },
- {
- "input": "&Ifr;",
- "description": "Named entity: Ifr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2111"
- ]
- ]
- },
- {
- "input": "&Igrave",
- "description": "Named entity: Igrave without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00cc"
- ]
- ]
- },
- {
- "input": "&Igrave;",
- "description": "Named entity: Igrave; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00cc"
- ]
- ]
- },
- {
- "input": "&Im",
- "description": "Bad named entity: Im without a semi-colon",
- "output": [
- [
- "Character",
- "&Im"
- ]
- ]
- },
- {
- "input": "&Im;",
- "description": "Named entity: Im; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2111"
- ]
- ]
- },
- {
- "input": "&Imacr",
- "description": "Bad named entity: Imacr without a semi-colon",
- "output": [
- [
- "Character",
- "&Imacr"
- ]
- ]
- },
- {
- "input": "&Imacr;",
- "description": "Named entity: Imacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u012a"
- ]
- ]
- },
- {
- "input": "&ImaginaryI",
- "description": "Bad named entity: ImaginaryI without a semi-colon",
- "output": [
- [
- "Character",
- "&ImaginaryI"
- ]
- ]
- },
- {
- "input": "&ImaginaryI;",
- "description": "Named entity: ImaginaryI; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2148"
- ]
- ]
- },
- {
- "input": "&Implies",
- "description": "Bad named entity: Implies without a semi-colon",
- "output": [
- [
- "Character",
- "&Implies"
- ]
- ]
- },
- {
- "input": "&Implies;",
- "description": "Named entity: Implies; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d2"
- ]
- ]
- },
- {
- "input": "&Int",
- "description": "Bad named entity: Int without a semi-colon",
- "output": [
- [
- "Character",
- "&Int"
- ]
- ]
- },
- {
- "input": "&Int;",
- "description": "Named entity: Int; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222c"
- ]
- ]
- },
- {
- "input": "&Integral",
- "description": "Bad named entity: Integral without a semi-colon",
- "output": [
- [
- "Character",
- "&Integral"
- ]
- ]
- },
- {
- "input": "&Integral;",
- "description": "Named entity: Integral; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222b"
- ]
- ]
- },
- {
- "input": "&Intersection",
- "description": "Bad named entity: Intersection without a semi-colon",
- "output": [
- [
- "Character",
- "&Intersection"
- ]
- ]
- },
- {
- "input": "&Intersection;",
- "description": "Named entity: Intersection; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c2"
- ]
- ]
- },
- {
- "input": "&InvisibleComma",
- "description": "Bad named entity: InvisibleComma without a semi-colon",
- "output": [
- [
- "Character",
- "&InvisibleComma"
- ]
- ]
- },
- {
- "input": "&InvisibleComma;",
- "description": "Named entity: InvisibleComma; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2063"
- ]
- ]
- },
- {
- "input": "&InvisibleTimes",
- "description": "Bad named entity: InvisibleTimes without a semi-colon",
- "output": [
- [
- "Character",
- "&InvisibleTimes"
- ]
- ]
- },
- {
- "input": "&InvisibleTimes;",
- "description": "Named entity: InvisibleTimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2062"
- ]
- ]
- },
- {
- "input": "&Iogon",
- "description": "Bad named entity: Iogon without a semi-colon",
- "output": [
- [
- "Character",
- "&Iogon"
- ]
- ]
- },
- {
- "input": "&Iogon;",
- "description": "Named entity: Iogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u012e"
- ]
- ]
- },
- {
- "input": "&Iopf",
- "description": "Bad named entity: Iopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Iopf"
- ]
- ]
- },
- {
- "input": "&Iopf;",
- "description": "Named entity: Iopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd40"
- ]
- ]
- },
- {
- "input": "&Iota",
- "description": "Bad named entity: Iota without a semi-colon",
- "output": [
- [
- "Character",
- "&Iota"
- ]
- ]
- },
- {
- "input": "&Iota;",
- "description": "Named entity: Iota; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0399"
- ]
- ]
- },
- {
- "input": "&Iscr",
- "description": "Bad named entity: Iscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Iscr"
- ]
- ]
- },
- {
- "input": "&Iscr;",
- "description": "Named entity: Iscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2110"
- ]
- ]
- },
- {
- "input": "&Itilde",
- "description": "Bad named entity: Itilde without a semi-colon",
- "output": [
- [
- "Character",
- "&Itilde"
- ]
- ]
- },
- {
- "input": "&Itilde;",
- "description": "Named entity: Itilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0128"
- ]
- ]
- },
- {
- "input": "&Iukcy",
- "description": "Bad named entity: Iukcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Iukcy"
- ]
- ]
- },
- {
- "input": "&Iukcy;",
- "description": "Named entity: Iukcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0406"
- ]
- ]
- },
- {
- "input": "&Iuml",
- "description": "Named entity: Iuml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00cf"
- ]
- ]
- },
- {
- "input": "&Iuml;",
- "description": "Named entity: Iuml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00cf"
- ]
- ]
- },
- {
- "input": "&Jcirc",
- "description": "Bad named entity: Jcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&Jcirc"
- ]
- ]
- },
- {
- "input": "&Jcirc;",
- "description": "Named entity: Jcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0134"
- ]
- ]
- },
- {
- "input": "&Jcy",
- "description": "Bad named entity: Jcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Jcy"
- ]
- ]
- },
- {
- "input": "&Jcy;",
- "description": "Named entity: Jcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0419"
- ]
- ]
- },
- {
- "input": "&Jfr",
- "description": "Bad named entity: Jfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Jfr"
- ]
- ]
- },
- {
- "input": "&Jfr;",
- "description": "Named entity: Jfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd0d"
- ]
- ]
- },
- {
- "input": "&Jopf",
- "description": "Bad named entity: Jopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Jopf"
- ]
- ]
- },
- {
- "input": "&Jopf;",
- "description": "Named entity: Jopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd41"
- ]
- ]
- },
- {
- "input": "&Jscr",
- "description": "Bad named entity: Jscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Jscr"
- ]
- ]
- },
- {
- "input": "&Jscr;",
- "description": "Named entity: Jscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udca5"
- ]
- ]
- },
- {
- "input": "&Jsercy",
- "description": "Bad named entity: Jsercy without a semi-colon",
- "output": [
- [
- "Character",
- "&Jsercy"
- ]
- ]
- },
- {
- "input": "&Jsercy;",
- "description": "Named entity: Jsercy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0408"
- ]
- ]
- },
- {
- "input": "&Jukcy",
- "description": "Bad named entity: Jukcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Jukcy"
- ]
- ]
- },
- {
- "input": "&Jukcy;",
- "description": "Named entity: Jukcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0404"
- ]
- ]
- },
- {
- "input": "&KHcy",
- "description": "Bad named entity: KHcy without a semi-colon",
- "output": [
- [
- "Character",
- "&KHcy"
- ]
- ]
- },
- {
- "input": "&KHcy;",
- "description": "Named entity: KHcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0425"
- ]
- ]
- },
- {
- "input": "&KJcy",
- "description": "Bad named entity: KJcy without a semi-colon",
- "output": [
- [
- "Character",
- "&KJcy"
- ]
- ]
- },
- {
- "input": "&KJcy;",
- "description": "Named entity: KJcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u040c"
- ]
- ]
- },
- {
- "input": "&Kappa",
- "description": "Bad named entity: Kappa without a semi-colon",
- "output": [
- [
- "Character",
- "&Kappa"
- ]
- ]
- },
- {
- "input": "&Kappa;",
- "description": "Named entity: Kappa; with a semi-colon",
- "output": [
- [
- "Character",
- "\u039a"
- ]
- ]
- },
- {
- "input": "&Kcedil",
- "description": "Bad named entity: Kcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&Kcedil"
- ]
- ]
- },
- {
- "input": "&Kcedil;",
- "description": "Named entity: Kcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0136"
- ]
- ]
- },
- {
- "input": "&Kcy",
- "description": "Bad named entity: Kcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Kcy"
- ]
- ]
- },
- {
- "input": "&Kcy;",
- "description": "Named entity: Kcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u041a"
- ]
- ]
- },
- {
- "input": "&Kfr",
- "description": "Bad named entity: Kfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Kfr"
- ]
- ]
- },
- {
- "input": "&Kfr;",
- "description": "Named entity: Kfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd0e"
- ]
- ]
- },
- {
- "input": "&Kopf",
- "description": "Bad named entity: Kopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Kopf"
- ]
- ]
- },
- {
- "input": "&Kopf;",
- "description": "Named entity: Kopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd42"
- ]
- ]
- },
- {
- "input": "&Kscr",
- "description": "Bad named entity: Kscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Kscr"
- ]
- ]
- },
- {
- "input": "&Kscr;",
- "description": "Named entity: Kscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udca6"
- ]
- ]
- },
- {
- "input": "&LJcy",
- "description": "Bad named entity: LJcy without a semi-colon",
- "output": [
- [
- "Character",
- "&LJcy"
- ]
- ]
- },
- {
- "input": "&LJcy;",
- "description": "Named entity: LJcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0409"
- ]
- ]
- },
- {
- "input": "&LT",
- "description": "Named entity: LT without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "<"
- ]
- ]
- },
- {
- "input": "&LT;",
- "description": "Named entity: LT; with a semi-colon",
- "output": [
- [
- "Character",
- "<"
- ]
- ]
- },
- {
- "input": "&Lacute",
- "description": "Bad named entity: Lacute without a semi-colon",
- "output": [
- [
- "Character",
- "&Lacute"
- ]
- ]
- },
- {
- "input": "&Lacute;",
- "description": "Named entity: Lacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0139"
- ]
- ]
- },
- {
- "input": "&Lambda",
- "description": "Bad named entity: Lambda without a semi-colon",
- "output": [
- [
- "Character",
- "&Lambda"
- ]
- ]
- },
- {
- "input": "&Lambda;",
- "description": "Named entity: Lambda; with a semi-colon",
- "output": [
- [
- "Character",
- "\u039b"
- ]
- ]
- },
- {
- "input": "&Lang",
- "description": "Bad named entity: Lang without a semi-colon",
- "output": [
- [
- "Character",
- "&Lang"
- ]
- ]
- },
- {
- "input": "&Lang;",
- "description": "Named entity: Lang; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27ea"
- ]
- ]
- },
- {
- "input": "&Laplacetrf",
- "description": "Bad named entity: Laplacetrf without a semi-colon",
- "output": [
- [
- "Character",
- "&Laplacetrf"
- ]
- ]
- },
- {
- "input": "&Laplacetrf;",
- "description": "Named entity: Laplacetrf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2112"
- ]
- ]
- },
- {
- "input": "&Larr",
- "description": "Bad named entity: Larr without a semi-colon",
- "output": [
- [
- "Character",
- "&Larr"
- ]
- ]
- },
- {
- "input": "&Larr;",
- "description": "Named entity: Larr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219e"
- ]
- ]
- },
- {
- "input": "&Lcaron",
- "description": "Bad named entity: Lcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Lcaron"
- ]
- ]
- },
- {
- "input": "&Lcaron;",
- "description": "Named entity: Lcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u013d"
- ]
- ]
- },
- {
- "input": "&Lcedil",
- "description": "Bad named entity: Lcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&Lcedil"
- ]
- ]
- },
- {
- "input": "&Lcedil;",
- "description": "Named entity: Lcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u013b"
- ]
- ]
- },
- {
- "input": "&Lcy",
- "description": "Bad named entity: Lcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Lcy"
- ]
- ]
- },
- {
- "input": "&Lcy;",
- "description": "Named entity: Lcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u041b"
- ]
- ]
- },
- {
- "input": "&LeftAngleBracket",
- "description": "Bad named entity: LeftAngleBracket without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftAngleBracket"
- ]
- ]
- },
- {
- "input": "&LeftAngleBracket;",
- "description": "Named entity: LeftAngleBracket; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e8"
- ]
- ]
- },
- {
- "input": "&LeftArrow",
- "description": "Bad named entity: LeftArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftArrow"
- ]
- ]
- },
- {
- "input": "&LeftArrow;",
- "description": "Named entity: LeftArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2190"
- ]
- ]
- },
- {
- "input": "&LeftArrowBar",
- "description": "Bad named entity: LeftArrowBar without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftArrowBar"
- ]
- ]
- },
- {
- "input": "&LeftArrowBar;",
- "description": "Named entity: LeftArrowBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21e4"
- ]
- ]
- },
- {
- "input": "&LeftArrowRightArrow",
- "description": "Bad named entity: LeftArrowRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftArrowRightArrow"
- ]
- ]
- },
- {
- "input": "&LeftArrowRightArrow;",
- "description": "Named entity: LeftArrowRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c6"
- ]
- ]
- },
- {
- "input": "&LeftCeiling",
- "description": "Bad named entity: LeftCeiling without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftCeiling"
- ]
- ]
- },
- {
- "input": "&LeftCeiling;",
- "description": "Named entity: LeftCeiling; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2308"
- ]
- ]
- },
- {
- "input": "&LeftDoubleBracket",
- "description": "Bad named entity: LeftDoubleBracket without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftDoubleBracket"
- ]
- ]
- },
- {
- "input": "&LeftDoubleBracket;",
- "description": "Named entity: LeftDoubleBracket; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e6"
- ]
- ]
- },
- {
- "input": "&LeftDownTeeVector",
- "description": "Bad named entity: LeftDownTeeVector without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftDownTeeVector"
- ]
- ]
- },
- {
- "input": "&LeftDownTeeVector;",
- "description": "Named entity: LeftDownTeeVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2961"
- ]
- ]
- },
- {
- "input": "&LeftDownVector",
- "description": "Bad named entity: LeftDownVector without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftDownVector"
- ]
- ]
- },
- {
- "input": "&LeftDownVector;",
- "description": "Named entity: LeftDownVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c3"
- ]
- ]
- },
- {
- "input": "&LeftDownVectorBar",
- "description": "Bad named entity: LeftDownVectorBar without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftDownVectorBar"
- ]
- ]
- },
- {
- "input": "&LeftDownVectorBar;",
- "description": "Named entity: LeftDownVectorBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2959"
- ]
- ]
- },
- {
- "input": "&LeftFloor",
- "description": "Bad named entity: LeftFloor without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftFloor"
- ]
- ]
- },
- {
- "input": "&LeftFloor;",
- "description": "Named entity: LeftFloor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u230a"
- ]
- ]
- },
- {
- "input": "&LeftRightArrow",
- "description": "Bad named entity: LeftRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftRightArrow"
- ]
- ]
- },
- {
- "input": "&LeftRightArrow;",
- "description": "Named entity: LeftRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2194"
- ]
- ]
- },
- {
- "input": "&LeftRightVector",
- "description": "Bad named entity: LeftRightVector without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftRightVector"
- ]
- ]
- },
- {
- "input": "&LeftRightVector;",
- "description": "Named entity: LeftRightVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u294e"
- ]
- ]
- },
- {
- "input": "&LeftTee",
- "description": "Bad named entity: LeftTee without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftTee"
- ]
- ]
- },
- {
- "input": "&LeftTee;",
- "description": "Named entity: LeftTee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a3"
- ]
- ]
- },
- {
- "input": "&LeftTeeArrow",
- "description": "Bad named entity: LeftTeeArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftTeeArrow"
- ]
- ]
- },
- {
- "input": "&LeftTeeArrow;",
- "description": "Named entity: LeftTeeArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a4"
- ]
- ]
- },
- {
- "input": "&LeftTeeVector",
- "description": "Bad named entity: LeftTeeVector without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftTeeVector"
- ]
- ]
- },
- {
- "input": "&LeftTeeVector;",
- "description": "Named entity: LeftTeeVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u295a"
- ]
- ]
- },
- {
- "input": "&LeftTriangle",
- "description": "Bad named entity: LeftTriangle without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftTriangle"
- ]
- ]
- },
- {
- "input": "&LeftTriangle;",
- "description": "Named entity: LeftTriangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b2"
- ]
- ]
- },
- {
- "input": "&LeftTriangleBar",
- "description": "Bad named entity: LeftTriangleBar without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftTriangleBar"
- ]
- ]
- },
- {
- "input": "&LeftTriangleBar;",
- "description": "Named entity: LeftTriangleBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29cf"
- ]
- ]
- },
- {
- "input": "&LeftTriangleEqual",
- "description": "Bad named entity: LeftTriangleEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftTriangleEqual"
- ]
- ]
- },
- {
- "input": "&LeftTriangleEqual;",
- "description": "Named entity: LeftTriangleEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b4"
- ]
- ]
- },
- {
- "input": "&LeftUpDownVector",
- "description": "Bad named entity: LeftUpDownVector without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftUpDownVector"
- ]
- ]
- },
- {
- "input": "&LeftUpDownVector;",
- "description": "Named entity: LeftUpDownVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2951"
- ]
- ]
- },
- {
- "input": "&LeftUpTeeVector",
- "description": "Bad named entity: LeftUpTeeVector without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftUpTeeVector"
- ]
- ]
- },
- {
- "input": "&LeftUpTeeVector;",
- "description": "Named entity: LeftUpTeeVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2960"
- ]
- ]
- },
- {
- "input": "&LeftUpVector",
- "description": "Bad named entity: LeftUpVector without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftUpVector"
- ]
- ]
- },
- {
- "input": "&LeftUpVector;",
- "description": "Named entity: LeftUpVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bf"
- ]
- ]
- },
- {
- "input": "&LeftUpVectorBar",
- "description": "Bad named entity: LeftUpVectorBar without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftUpVectorBar"
- ]
- ]
- },
- {
- "input": "&LeftUpVectorBar;",
- "description": "Named entity: LeftUpVectorBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2958"
- ]
- ]
- },
- {
- "input": "&LeftVector",
- "description": "Bad named entity: LeftVector without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftVector"
- ]
- ]
- },
- {
- "input": "&LeftVector;",
- "description": "Named entity: LeftVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bc"
- ]
- ]
- },
- {
- "input": "&LeftVectorBar",
- "description": "Bad named entity: LeftVectorBar without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftVectorBar"
- ]
- ]
- },
- {
- "input": "&LeftVectorBar;",
- "description": "Named entity: LeftVectorBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2952"
- ]
- ]
- },
- {
- "input": "&Leftarrow",
- "description": "Bad named entity: Leftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Leftarrow"
- ]
- ]
- },
- {
- "input": "&Leftarrow;",
- "description": "Named entity: Leftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d0"
- ]
- ]
- },
- {
- "input": "&Leftrightarrow",
- "description": "Bad named entity: Leftrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Leftrightarrow"
- ]
- ]
- },
- {
- "input": "&Leftrightarrow;",
- "description": "Named entity: Leftrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d4"
- ]
- ]
- },
- {
- "input": "&LessEqualGreater",
- "description": "Bad named entity: LessEqualGreater without a semi-colon",
- "output": [
- [
- "Character",
- "&LessEqualGreater"
- ]
- ]
- },
- {
- "input": "&LessEqualGreater;",
- "description": "Named entity: LessEqualGreater; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22da"
- ]
- ]
- },
- {
- "input": "&LessFullEqual",
- "description": "Bad named entity: LessFullEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&LessFullEqual"
- ]
- ]
- },
- {
- "input": "&LessFullEqual;",
- "description": "Named entity: LessFullEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2266"
- ]
- ]
- },
- {
- "input": "&LessGreater",
- "description": "Bad named entity: LessGreater without a semi-colon",
- "output": [
- [
- "Character",
- "&LessGreater"
- ]
- ]
- },
- {
- "input": "&LessGreater;",
- "description": "Named entity: LessGreater; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2276"
- ]
- ]
- },
- {
- "input": "&LessLess",
- "description": "Bad named entity: LessLess without a semi-colon",
- "output": [
- [
- "Character",
- "&LessLess"
- ]
- ]
- },
- {
- "input": "&LessLess;",
- "description": "Named entity: LessLess; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa1"
- ]
- ]
- },
- {
- "input": "&LessSlantEqual",
- "description": "Bad named entity: LessSlantEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&LessSlantEqual"
- ]
- ]
- },
- {
- "input": "&LessSlantEqual;",
- "description": "Named entity: LessSlantEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7d"
- ]
- ]
- },
- {
- "input": "&LessTilde",
- "description": "Bad named entity: LessTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&LessTilde"
- ]
- ]
- },
- {
- "input": "&LessTilde;",
- "description": "Named entity: LessTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2272"
- ]
- ]
- },
- {
- "input": "&Lfr",
- "description": "Bad named entity: Lfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Lfr"
- ]
- ]
- },
- {
- "input": "&Lfr;",
- "description": "Named entity: Lfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd0f"
- ]
- ]
- },
- {
- "input": "&Ll",
- "description": "Bad named entity: Ll without a semi-colon",
- "output": [
- [
- "Character",
- "&Ll"
- ]
- ]
- },
- {
- "input": "&Ll;",
- "description": "Named entity: Ll; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d8"
- ]
- ]
- },
- {
- "input": "&Lleftarrow",
- "description": "Bad named entity: Lleftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Lleftarrow"
- ]
- ]
- },
- {
- "input": "&Lleftarrow;",
- "description": "Named entity: Lleftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21da"
- ]
- ]
- },
- {
- "input": "&Lmidot",
- "description": "Bad named entity: Lmidot without a semi-colon",
- "output": [
- [
- "Character",
- "&Lmidot"
- ]
- ]
- },
- {
- "input": "&Lmidot;",
- "description": "Named entity: Lmidot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u013f"
- ]
- ]
- },
- {
- "input": "&LongLeftArrow",
- "description": "Bad named entity: LongLeftArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LongLeftArrow"
- ]
- ]
- },
- {
- "input": "&LongLeftArrow;",
- "description": "Named entity: LongLeftArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f5"
- ]
- ]
- },
- {
- "input": "&LongLeftRightArrow",
- "description": "Bad named entity: LongLeftRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LongLeftRightArrow"
- ]
- ]
- },
- {
- "input": "&LongLeftRightArrow;",
- "description": "Named entity: LongLeftRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f7"
- ]
- ]
- },
- {
- "input": "&LongRightArrow",
- "description": "Bad named entity: LongRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LongRightArrow"
- ]
- ]
- },
- {
- "input": "&LongRightArrow;",
- "description": "Named entity: LongRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f6"
- ]
- ]
- },
- {
- "input": "&Longleftarrow",
- "description": "Bad named entity: Longleftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Longleftarrow"
- ]
- ]
- },
- {
- "input": "&Longleftarrow;",
- "description": "Named entity: Longleftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f8"
- ]
- ]
- },
- {
- "input": "&Longleftrightarrow",
- "description": "Bad named entity: Longleftrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Longleftrightarrow"
- ]
- ]
- },
- {
- "input": "&Longleftrightarrow;",
- "description": "Named entity: Longleftrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27fa"
- ]
- ]
- },
- {
- "input": "&Longrightarrow",
- "description": "Bad named entity: Longrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Longrightarrow"
- ]
- ]
- },
- {
- "input": "&Longrightarrow;",
- "description": "Named entity: Longrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f9"
- ]
- ]
- },
- {
- "input": "&Lopf",
- "description": "Bad named entity: Lopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Lopf"
- ]
- ]
- },
- {
- "input": "&Lopf;",
- "description": "Named entity: Lopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd43"
- ]
- ]
- },
- {
- "input": "&LowerLeftArrow",
- "description": "Bad named entity: LowerLeftArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LowerLeftArrow"
- ]
- ]
- },
- {
- "input": "&LowerLeftArrow;",
- "description": "Named entity: LowerLeftArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2199"
- ]
- ]
- },
- {
- "input": "&LowerRightArrow",
- "description": "Bad named entity: LowerRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LowerRightArrow"
- ]
- ]
- },
- {
- "input": "&LowerRightArrow;",
- "description": "Named entity: LowerRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2198"
- ]
- ]
- },
- {
- "input": "&Lscr",
- "description": "Bad named entity: Lscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Lscr"
- ]
- ]
- },
- {
- "input": "&Lscr;",
- "description": "Named entity: Lscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2112"
- ]
- ]
- },
- {
- "input": "&Lsh",
- "description": "Bad named entity: Lsh without a semi-colon",
- "output": [
- [
- "Character",
- "&Lsh"
- ]
- ]
- },
- {
- "input": "&Lsh;",
- "description": "Named entity: Lsh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b0"
- ]
- ]
- },
- {
- "input": "&Lstrok",
- "description": "Bad named entity: Lstrok without a semi-colon",
- "output": [
- [
- "Character",
- "&Lstrok"
- ]
- ]
- },
- {
- "input": "&Lstrok;",
- "description": "Named entity: Lstrok; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0141"
- ]
- ]
- },
- {
- "input": "&Lt",
- "description": "Bad named entity: Lt without a semi-colon",
- "output": [
- [
- "Character",
- "&Lt"
- ]
- ]
- },
- {
- "input": "&Lt;",
- "description": "Named entity: Lt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226a"
- ]
- ]
- },
- {
- "input": "&Map",
- "description": "Bad named entity: Map without a semi-colon",
- "output": [
- [
- "Character",
- "&Map"
- ]
- ]
- },
- {
- "input": "&Map;",
- "description": "Named entity: Map; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2905"
- ]
- ]
- },
- {
- "input": "&Mcy",
- "description": "Bad named entity: Mcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Mcy"
- ]
- ]
- },
- {
- "input": "&Mcy;",
- "description": "Named entity: Mcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u041c"
- ]
- ]
- },
- {
- "input": "&MediumSpace",
- "description": "Bad named entity: MediumSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&MediumSpace"
- ]
- ]
- },
- {
- "input": "&MediumSpace;",
- "description": "Named entity: MediumSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u205f"
- ]
- ]
- },
- {
- "input": "&Mellintrf",
- "description": "Bad named entity: Mellintrf without a semi-colon",
- "output": [
- [
- "Character",
- "&Mellintrf"
- ]
- ]
- },
- {
- "input": "&Mellintrf;",
- "description": "Named entity: Mellintrf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2133"
- ]
- ]
- },
- {
- "input": "&Mfr",
- "description": "Bad named entity: Mfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Mfr"
- ]
- ]
- },
- {
- "input": "&Mfr;",
- "description": "Named entity: Mfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd10"
- ]
- ]
- },
- {
- "input": "&MinusPlus",
- "description": "Bad named entity: MinusPlus without a semi-colon",
- "output": [
- [
- "Character",
- "&MinusPlus"
- ]
- ]
- },
- {
- "input": "&MinusPlus;",
- "description": "Named entity: MinusPlus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2213"
- ]
- ]
- },
- {
- "input": "&Mopf",
- "description": "Bad named entity: Mopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Mopf"
- ]
- ]
- },
- {
- "input": "&Mopf;",
- "description": "Named entity: Mopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd44"
- ]
- ]
- },
- {
- "input": "&Mscr",
- "description": "Bad named entity: Mscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Mscr"
- ]
- ]
- },
- {
- "input": "&Mscr;",
- "description": "Named entity: Mscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2133"
- ]
- ]
- },
- {
- "input": "&Mu",
- "description": "Bad named entity: Mu without a semi-colon",
- "output": [
- [
- "Character",
- "&Mu"
- ]
- ]
- },
- {
- "input": "&Mu;",
- "description": "Named entity: Mu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u039c"
- ]
- ]
- },
- {
- "input": "&NJcy",
- "description": "Bad named entity: NJcy without a semi-colon",
- "output": [
- [
- "Character",
- "&NJcy"
- ]
- ]
- },
- {
- "input": "&NJcy;",
- "description": "Named entity: NJcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u040a"
- ]
- ]
- },
- {
- "input": "&Nacute",
- "description": "Bad named entity: Nacute without a semi-colon",
- "output": [
- [
- "Character",
- "&Nacute"
- ]
- ]
- },
- {
- "input": "&Nacute;",
- "description": "Named entity: Nacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0143"
- ]
- ]
- },
- {
- "input": "&Ncaron",
- "description": "Bad named entity: Ncaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Ncaron"
- ]
- ]
- },
- {
- "input": "&Ncaron;",
- "description": "Named entity: Ncaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0147"
- ]
- ]
- },
- {
- "input": "&Ncedil",
- "description": "Bad named entity: Ncedil without a semi-colon",
- "output": [
- [
- "Character",
- "&Ncedil"
- ]
- ]
- },
- {
- "input": "&Ncedil;",
- "description": "Named entity: Ncedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0145"
- ]
- ]
- },
- {
- "input": "&Ncy",
- "description": "Bad named entity: Ncy without a semi-colon",
- "output": [
- [
- "Character",
- "&Ncy"
- ]
- ]
- },
- {
- "input": "&Ncy;",
- "description": "Named entity: Ncy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u041d"
- ]
- ]
- },
- {
- "input": "&NegativeMediumSpace",
- "description": "Bad named entity: NegativeMediumSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&NegativeMediumSpace"
- ]
- ]
- },
- {
- "input": "&NegativeMediumSpace;",
- "description": "Named entity: NegativeMediumSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200b"
- ]
- ]
- },
- {
- "input": "&NegativeThickSpace",
- "description": "Bad named entity: NegativeThickSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&NegativeThickSpace"
- ]
- ]
- },
- {
- "input": "&NegativeThickSpace;",
- "description": "Named entity: NegativeThickSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200b"
- ]
- ]
- },
- {
- "input": "&NegativeThinSpace",
- "description": "Bad named entity: NegativeThinSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&NegativeThinSpace"
- ]
- ]
- },
- {
- "input": "&NegativeThinSpace;",
- "description": "Named entity: NegativeThinSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200b"
- ]
- ]
- },
- {
- "input": "&NegativeVeryThinSpace",
- "description": "Bad named entity: NegativeVeryThinSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&NegativeVeryThinSpace"
- ]
- ]
- },
- {
- "input": "&NegativeVeryThinSpace;",
- "description": "Named entity: NegativeVeryThinSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200b"
- ]
- ]
- },
- {
- "input": "&NestedGreaterGreater",
- "description": "Bad named entity: NestedGreaterGreater without a semi-colon",
- "output": [
- [
- "Character",
- "&NestedGreaterGreater"
- ]
- ]
- },
- {
- "input": "&NestedGreaterGreater;",
- "description": "Named entity: NestedGreaterGreater; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226b"
- ]
- ]
- },
- {
- "input": "&NestedLessLess",
- "description": "Bad named entity: NestedLessLess without a semi-colon",
- "output": [
- [
- "Character",
- "&NestedLessLess"
- ]
- ]
- },
- {
- "input": "&NestedLessLess;",
- "description": "Named entity: NestedLessLess; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226a"
- ]
- ]
- },
- {
- "input": "&NewLine",
- "description": "Bad named entity: NewLine without a semi-colon",
- "output": [
- [
- "Character",
- "&NewLine"
- ]
- ]
- },
- {
- "input": "&NewLine;",
- "description": "Named entity: NewLine; with a semi-colon",
- "output": [
- [
- "Character",
- "\n"
- ]
- ]
- },
- {
- "input": "&Nfr",
- "description": "Bad named entity: Nfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Nfr"
- ]
- ]
- },
- {
- "input": "&Nfr;",
- "description": "Named entity: Nfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd11"
- ]
- ]
- },
- {
- "input": "&NoBreak",
- "description": "Bad named entity: NoBreak without a semi-colon",
- "output": [
- [
- "Character",
- "&NoBreak"
- ]
- ]
- },
- {
- "input": "&NoBreak;",
- "description": "Named entity: NoBreak; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2060"
- ]
- ]
- },
- {
- "input": "&NonBreakingSpace",
- "description": "Bad named entity: NonBreakingSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&NonBreakingSpace"
- ]
- ]
- },
- {
- "input": "&NonBreakingSpace;",
- "description": "Named entity: NonBreakingSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a0"
- ]
- ]
- },
- {
- "input": "&Nopf",
- "description": "Bad named entity: Nopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Nopf"
- ]
- ]
- },
- {
- "input": "&Nopf;",
- "description": "Named entity: Nopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2115"
- ]
- ]
- },
- {
- "input": "&Not",
- "description": "Bad named entity: Not without a semi-colon",
- "output": [
- [
- "Character",
- "&Not"
- ]
- ]
- },
- {
- "input": "&Not;",
- "description": "Named entity: Not; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aec"
- ]
- ]
- },
- {
- "input": "&NotCongruent",
- "description": "Bad named entity: NotCongruent without a semi-colon",
- "output": [
- [
- "Character",
- "&NotCongruent"
- ]
- ]
- },
- {
- "input": "&NotCongruent;",
- "description": "Named entity: NotCongruent; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2262"
- ]
- ]
- },
- {
- "input": "&NotCupCap",
- "description": "Bad named entity: NotCupCap without a semi-colon",
- "output": [
- [
- "Character",
- "&NotCupCap"
- ]
- ]
- },
- {
- "input": "&NotCupCap;",
- "description": "Named entity: NotCupCap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226d"
- ]
- ]
- },
- {
- "input": "&NotDoubleVerticalBar",
- "description": "Bad named entity: NotDoubleVerticalBar without a semi-colon",
- "output": [
- [
- "Character",
- "&NotDoubleVerticalBar"
- ]
- ]
- },
- {
- "input": "&NotDoubleVerticalBar;",
- "description": "Named entity: NotDoubleVerticalBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2226"
- ]
- ]
- },
- {
- "input": "&NotElement",
- "description": "Bad named entity: NotElement without a semi-colon",
- "output": [
- [
- "Character",
- "&NotElement"
- ]
- ]
- },
- {
- "input": "&NotElement;",
- "description": "Named entity: NotElement; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2209"
- ]
- ]
- },
- {
- "input": "&NotEqual",
- "description": "Bad named entity: NotEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotEqual"
- ]
- ]
- },
- {
- "input": "&NotEqual;",
- "description": "Named entity: NotEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2260"
- ]
- ]
- },
- {
- "input": "&NotEqualTilde",
- "description": "Bad named entity: NotEqualTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&NotEqualTilde"
- ]
- ]
- },
- {
- "input": "&NotEqualTilde;",
- "description": "Named entity: NotEqualTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2242\u0338"
- ]
- ]
- },
- {
- "input": "&NotExists",
- "description": "Bad named entity: NotExists without a semi-colon",
- "output": [
- [
- "Character",
- "&NotExists"
- ]
- ]
- },
- {
- "input": "&NotExists;",
- "description": "Named entity: NotExists; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2204"
- ]
- ]
- },
- {
- "input": "&NotGreater",
- "description": "Bad named entity: NotGreater without a semi-colon",
- "output": [
- [
- "Character",
- "&NotGreater"
- ]
- ]
- },
- {
- "input": "&NotGreater;",
- "description": "Named entity: NotGreater; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226f"
- ]
- ]
- },
- {
- "input": "&NotGreaterEqual",
- "description": "Bad named entity: NotGreaterEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotGreaterEqual"
- ]
- ]
- },
- {
- "input": "&NotGreaterEqual;",
- "description": "Named entity: NotGreaterEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2271"
- ]
- ]
- },
- {
- "input": "&NotGreaterFullEqual",
- "description": "Bad named entity: NotGreaterFullEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotGreaterFullEqual"
- ]
- ]
- },
- {
- "input": "&NotGreaterFullEqual;",
- "description": "Named entity: NotGreaterFullEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2267\u0338"
- ]
- ]
- },
- {
- "input": "&NotGreaterGreater",
- "description": "Bad named entity: NotGreaterGreater without a semi-colon",
- "output": [
- [
- "Character",
- "&NotGreaterGreater"
- ]
- ]
- },
- {
- "input": "&NotGreaterGreater;",
- "description": "Named entity: NotGreaterGreater; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226b\u0338"
- ]
- ]
- },
- {
- "input": "&NotGreaterLess",
- "description": "Bad named entity: NotGreaterLess without a semi-colon",
- "output": [
- [
- "Character",
- "&NotGreaterLess"
- ]
- ]
- },
- {
- "input": "&NotGreaterLess;",
- "description": "Named entity: NotGreaterLess; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2279"
- ]
- ]
- },
- {
- "input": "&NotGreaterSlantEqual",
- "description": "Bad named entity: NotGreaterSlantEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotGreaterSlantEqual"
- ]
- ]
- },
- {
- "input": "&NotGreaterSlantEqual;",
- "description": "Named entity: NotGreaterSlantEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7e\u0338"
- ]
- ]
- },
- {
- "input": "&NotGreaterTilde",
- "description": "Bad named entity: NotGreaterTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&NotGreaterTilde"
- ]
- ]
- },
- {
- "input": "&NotGreaterTilde;",
- "description": "Named entity: NotGreaterTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2275"
- ]
- ]
- },
- {
- "input": "&NotHumpDownHump",
- "description": "Bad named entity: NotHumpDownHump without a semi-colon",
- "output": [
- [
- "Character",
- "&NotHumpDownHump"
- ]
- ]
- },
- {
- "input": "&NotHumpDownHump;",
- "description": "Named entity: NotHumpDownHump; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224e\u0338"
- ]
- ]
- },
- {
- "input": "&NotHumpEqual",
- "description": "Bad named entity: NotHumpEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotHumpEqual"
- ]
- ]
- },
- {
- "input": "&NotHumpEqual;",
- "description": "Named entity: NotHumpEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224f\u0338"
- ]
- ]
- },
- {
- "input": "&NotLeftTriangle",
- "description": "Bad named entity: NotLeftTriangle without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLeftTriangle"
- ]
- ]
- },
- {
- "input": "&NotLeftTriangle;",
- "description": "Named entity: NotLeftTriangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ea"
- ]
- ]
- },
- {
- "input": "&NotLeftTriangleBar",
- "description": "Bad named entity: NotLeftTriangleBar without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLeftTriangleBar"
- ]
- ]
- },
- {
- "input": "&NotLeftTriangleBar;",
- "description": "Named entity: NotLeftTriangleBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29cf\u0338"
- ]
- ]
- },
- {
- "input": "&NotLeftTriangleEqual",
- "description": "Bad named entity: NotLeftTriangleEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLeftTriangleEqual"
- ]
- ]
- },
- {
- "input": "&NotLeftTriangleEqual;",
- "description": "Named entity: NotLeftTriangleEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ec"
- ]
- ]
- },
- {
- "input": "&NotLess",
- "description": "Bad named entity: NotLess without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLess"
- ]
- ]
- },
- {
- "input": "&NotLess;",
- "description": "Named entity: NotLess; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226e"
- ]
- ]
- },
- {
- "input": "&NotLessEqual",
- "description": "Bad named entity: NotLessEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLessEqual"
- ]
- ]
- },
- {
- "input": "&NotLessEqual;",
- "description": "Named entity: NotLessEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2270"
- ]
- ]
- },
- {
- "input": "&NotLessGreater",
- "description": "Bad named entity: NotLessGreater without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLessGreater"
- ]
- ]
- },
- {
- "input": "&NotLessGreater;",
- "description": "Named entity: NotLessGreater; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2278"
- ]
- ]
- },
- {
- "input": "&NotLessLess",
- "description": "Bad named entity: NotLessLess without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLessLess"
- ]
- ]
- },
- {
- "input": "&NotLessLess;",
- "description": "Named entity: NotLessLess; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226a\u0338"
- ]
- ]
- },
- {
- "input": "&NotLessSlantEqual",
- "description": "Bad named entity: NotLessSlantEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLessSlantEqual"
- ]
- ]
- },
- {
- "input": "&NotLessSlantEqual;",
- "description": "Named entity: NotLessSlantEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7d\u0338"
- ]
- ]
- },
- {
- "input": "&NotLessTilde",
- "description": "Bad named entity: NotLessTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLessTilde"
- ]
- ]
- },
- {
- "input": "&NotLessTilde;",
- "description": "Named entity: NotLessTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2274"
- ]
- ]
- },
- {
- "input": "&NotNestedGreaterGreater",
- "description": "Bad named entity: NotNestedGreaterGreater without a semi-colon",
- "output": [
- [
- "Character",
- "&NotNestedGreaterGreater"
- ]
- ]
- },
- {
- "input": "&NotNestedGreaterGreater;",
- "description": "Named entity: NotNestedGreaterGreater; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa2\u0338"
- ]
- ]
- },
- {
- "input": "&NotNestedLessLess",
- "description": "Bad named entity: NotNestedLessLess without a semi-colon",
- "output": [
- [
- "Character",
- "&NotNestedLessLess"
- ]
- ]
- },
- {
- "input": "&NotNestedLessLess;",
- "description": "Named entity: NotNestedLessLess; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa1\u0338"
- ]
- ]
- },
- {
- "input": "&NotPrecedes",
- "description": "Bad named entity: NotPrecedes without a semi-colon",
- "output": [
- [
- "Character",
- "&NotPrecedes"
- ]
- ]
- },
- {
- "input": "&NotPrecedes;",
- "description": "Named entity: NotPrecedes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2280"
- ]
- ]
- },
- {
- "input": "&NotPrecedesEqual",
- "description": "Bad named entity: NotPrecedesEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotPrecedesEqual"
- ]
- ]
- },
- {
- "input": "&NotPrecedesEqual;",
- "description": "Named entity: NotPrecedesEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aaf\u0338"
- ]
- ]
- },
- {
- "input": "&NotPrecedesSlantEqual",
- "description": "Bad named entity: NotPrecedesSlantEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotPrecedesSlantEqual"
- ]
- ]
- },
- {
- "input": "&NotPrecedesSlantEqual;",
- "description": "Named entity: NotPrecedesSlantEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e0"
- ]
- ]
- },
- {
- "input": "&NotReverseElement",
- "description": "Bad named entity: NotReverseElement without a semi-colon",
- "output": [
- [
- "Character",
- "&NotReverseElement"
- ]
- ]
- },
- {
- "input": "&NotReverseElement;",
- "description": "Named entity: NotReverseElement; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220c"
- ]
- ]
- },
- {
- "input": "&NotRightTriangle",
- "description": "Bad named entity: NotRightTriangle without a semi-colon",
- "output": [
- [
- "Character",
- "&NotRightTriangle"
- ]
- ]
- },
- {
- "input": "&NotRightTriangle;",
- "description": "Named entity: NotRightTriangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22eb"
- ]
- ]
- },
- {
- "input": "&NotRightTriangleBar",
- "description": "Bad named entity: NotRightTriangleBar without a semi-colon",
- "output": [
- [
- "Character",
- "&NotRightTriangleBar"
- ]
- ]
- },
- {
- "input": "&NotRightTriangleBar;",
- "description": "Named entity: NotRightTriangleBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29d0\u0338"
- ]
- ]
- },
- {
- "input": "&NotRightTriangleEqual",
- "description": "Bad named entity: NotRightTriangleEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotRightTriangleEqual"
- ]
- ]
- },
- {
- "input": "&NotRightTriangleEqual;",
- "description": "Named entity: NotRightTriangleEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ed"
- ]
- ]
- },
- {
- "input": "&NotSquareSubset",
- "description": "Bad named entity: NotSquareSubset without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSquareSubset"
- ]
- ]
- },
- {
- "input": "&NotSquareSubset;",
- "description": "Named entity: NotSquareSubset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228f\u0338"
- ]
- ]
- },
- {
- "input": "&NotSquareSubsetEqual",
- "description": "Bad named entity: NotSquareSubsetEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSquareSubsetEqual"
- ]
- ]
- },
- {
- "input": "&NotSquareSubsetEqual;",
- "description": "Named entity: NotSquareSubsetEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e2"
- ]
- ]
- },
- {
- "input": "&NotSquareSuperset",
- "description": "Bad named entity: NotSquareSuperset without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSquareSuperset"
- ]
- ]
- },
- {
- "input": "&NotSquareSuperset;",
- "description": "Named entity: NotSquareSuperset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2290\u0338"
- ]
- ]
- },
- {
- "input": "&NotSquareSupersetEqual",
- "description": "Bad named entity: NotSquareSupersetEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSquareSupersetEqual"
- ]
- ]
- },
- {
- "input": "&NotSquareSupersetEqual;",
- "description": "Named entity: NotSquareSupersetEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e3"
- ]
- ]
- },
- {
- "input": "&NotSubset",
- "description": "Bad named entity: NotSubset without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSubset"
- ]
- ]
- },
- {
- "input": "&NotSubset;",
- "description": "Named entity: NotSubset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2282\u20d2"
- ]
- ]
- },
- {
- "input": "&NotSubsetEqual",
- "description": "Bad named entity: NotSubsetEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSubsetEqual"
- ]
- ]
- },
- {
- "input": "&NotSubsetEqual;",
- "description": "Named entity: NotSubsetEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2288"
- ]
- ]
- },
- {
- "input": "&NotSucceeds",
- "description": "Bad named entity: NotSucceeds without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSucceeds"
- ]
- ]
- },
- {
- "input": "&NotSucceeds;",
- "description": "Named entity: NotSucceeds; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2281"
- ]
- ]
- },
- {
- "input": "&NotSucceedsEqual",
- "description": "Bad named entity: NotSucceedsEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSucceedsEqual"
- ]
- ]
- },
- {
- "input": "&NotSucceedsEqual;",
- "description": "Named entity: NotSucceedsEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab0\u0338"
- ]
- ]
- },
- {
- "input": "&NotSucceedsSlantEqual",
- "description": "Bad named entity: NotSucceedsSlantEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSucceedsSlantEqual"
- ]
- ]
- },
- {
- "input": "&NotSucceedsSlantEqual;",
- "description": "Named entity: NotSucceedsSlantEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e1"
- ]
- ]
- },
- {
- "input": "&NotSucceedsTilde",
- "description": "Bad named entity: NotSucceedsTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSucceedsTilde"
- ]
- ]
- },
- {
- "input": "&NotSucceedsTilde;",
- "description": "Named entity: NotSucceedsTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227f\u0338"
- ]
- ]
- },
- {
- "input": "&NotSuperset",
- "description": "Bad named entity: NotSuperset without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSuperset"
- ]
- ]
- },
- {
- "input": "&NotSuperset;",
- "description": "Named entity: NotSuperset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2283\u20d2"
- ]
- ]
- },
- {
- "input": "&NotSupersetEqual",
- "description": "Bad named entity: NotSupersetEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSupersetEqual"
- ]
- ]
- },
- {
- "input": "&NotSupersetEqual;",
- "description": "Named entity: NotSupersetEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2289"
- ]
- ]
- },
- {
- "input": "&NotTilde",
- "description": "Bad named entity: NotTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&NotTilde"
- ]
- ]
- },
- {
- "input": "&NotTilde;",
- "description": "Named entity: NotTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2241"
- ]
- ]
- },
- {
- "input": "&NotTildeEqual",
- "description": "Bad named entity: NotTildeEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotTildeEqual"
- ]
- ]
- },
- {
- "input": "&NotTildeEqual;",
- "description": "Named entity: NotTildeEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2244"
- ]
- ]
- },
- {
- "input": "&NotTildeFullEqual",
- "description": "Bad named entity: NotTildeFullEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotTildeFullEqual"
- ]
- ]
- },
- {
- "input": "&NotTildeFullEqual;",
- "description": "Named entity: NotTildeFullEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2247"
- ]
- ]
- },
- {
- "input": "&NotTildeTilde",
- "description": "Bad named entity: NotTildeTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&NotTildeTilde"
- ]
- ]
- },
- {
- "input": "&NotTildeTilde;",
- "description": "Named entity: NotTildeTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2249"
- ]
- ]
- },
- {
- "input": "&NotVerticalBar",
- "description": "Bad named entity: NotVerticalBar without a semi-colon",
- "output": [
- [
- "Character",
- "&NotVerticalBar"
- ]
- ]
- },
- {
- "input": "&NotVerticalBar;",
- "description": "Named entity: NotVerticalBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2224"
- ]
- ]
- },
- {
- "input": "&Nscr",
- "description": "Bad named entity: Nscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Nscr"
- ]
- ]
- },
- {
- "input": "&Nscr;",
- "description": "Named entity: Nscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udca9"
- ]
- ]
- },
- {
- "input": "&Ntilde",
- "description": "Named entity: Ntilde without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d1"
- ]
- ]
- },
- {
- "input": "&Ntilde;",
- "description": "Named entity: Ntilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d1"
- ]
- ]
- },
- {
- "input": "&Nu",
- "description": "Bad named entity: Nu without a semi-colon",
- "output": [
- [
- "Character",
- "&Nu"
- ]
- ]
- },
- {
- "input": "&Nu;",
- "description": "Named entity: Nu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u039d"
- ]
- ]
- },
- {
- "input": "&OElig",
- "description": "Bad named entity: OElig without a semi-colon",
- "output": [
- [
- "Character",
- "&OElig"
- ]
- ]
- },
- {
- "input": "&OElig;",
- "description": "Named entity: OElig; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0152"
- ]
- ]
- },
- {
- "input": "&Oacute",
- "description": "Named entity: Oacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d3"
- ]
- ]
- },
- {
- "input": "&Oacute;",
- "description": "Named entity: Oacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d3"
- ]
- ]
- },
- {
- "input": "&Ocirc",
- "description": "Named entity: Ocirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d4"
- ]
- ]
- },
- {
- "input": "&Ocirc;",
- "description": "Named entity: Ocirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d4"
- ]
- ]
- },
- {
- "input": "&Ocy",
- "description": "Bad named entity: Ocy without a semi-colon",
- "output": [
- [
- "Character",
- "&Ocy"
- ]
- ]
- },
- {
- "input": "&Ocy;",
- "description": "Named entity: Ocy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u041e"
- ]
- ]
- },
- {
- "input": "&Odblac",
- "description": "Bad named entity: Odblac without a semi-colon",
- "output": [
- [
- "Character",
- "&Odblac"
- ]
- ]
- },
- {
- "input": "&Odblac;",
- "description": "Named entity: Odblac; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0150"
- ]
- ]
- },
- {
- "input": "&Ofr",
- "description": "Bad named entity: Ofr without a semi-colon",
- "output": [
- [
- "Character",
- "&Ofr"
- ]
- ]
- },
- {
- "input": "&Ofr;",
- "description": "Named entity: Ofr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd12"
- ]
- ]
- },
- {
- "input": "&Ograve",
- "description": "Named entity: Ograve without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d2"
- ]
- ]
- },
- {
- "input": "&Ograve;",
- "description": "Named entity: Ograve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d2"
- ]
- ]
- },
- {
- "input": "&Omacr",
- "description": "Bad named entity: Omacr without a semi-colon",
- "output": [
- [
- "Character",
- "&Omacr"
- ]
- ]
- },
- {
- "input": "&Omacr;",
- "description": "Named entity: Omacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u014c"
- ]
- ]
- },
- {
- "input": "&Omega",
- "description": "Bad named entity: Omega without a semi-colon",
- "output": [
- [
- "Character",
- "&Omega"
- ]
- ]
- },
- {
- "input": "&Omega;",
- "description": "Named entity: Omega; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a9"
- ]
- ]
- },
- {
- "input": "&Omicron",
- "description": "Bad named entity: Omicron without a semi-colon",
- "output": [
- [
- "Character",
- "&Omicron"
- ]
- ]
- },
- {
- "input": "&Omicron;",
- "description": "Named entity: Omicron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u039f"
- ]
- ]
- },
- {
- "input": "&Oopf",
- "description": "Bad named entity: Oopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Oopf"
- ]
- ]
- },
- {
- "input": "&Oopf;",
- "description": "Named entity: Oopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd46"
- ]
- ]
- },
- {
- "input": "&OpenCurlyDoubleQuote",
- "description": "Bad named entity: OpenCurlyDoubleQuote without a semi-colon",
- "output": [
- [
- "Character",
- "&OpenCurlyDoubleQuote"
- ]
- ]
- },
- {
- "input": "&OpenCurlyDoubleQuote;",
- "description": "Named entity: OpenCurlyDoubleQuote; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201c"
- ]
- ]
- },
- {
- "input": "&OpenCurlyQuote",
- "description": "Bad named entity: OpenCurlyQuote without a semi-colon",
- "output": [
- [
- "Character",
- "&OpenCurlyQuote"
- ]
- ]
- },
- {
- "input": "&OpenCurlyQuote;",
- "description": "Named entity: OpenCurlyQuote; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2018"
- ]
- ]
- },
- {
- "input": "&Or",
- "description": "Bad named entity: Or without a semi-colon",
- "output": [
- [
- "Character",
- "&Or"
- ]
- ]
- },
- {
- "input": "&Or;",
- "description": "Named entity: Or; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a54"
- ]
- ]
- },
- {
- "input": "&Oscr",
- "description": "Bad named entity: Oscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Oscr"
- ]
- ]
- },
- {
- "input": "&Oscr;",
- "description": "Named entity: Oscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcaa"
- ]
- ]
- },
- {
- "input": "&Oslash",
- "description": "Named entity: Oslash without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d8"
- ]
- ]
- },
- {
- "input": "&Oslash;",
- "description": "Named entity: Oslash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d8"
- ]
- ]
- },
- {
- "input": "&Otilde",
- "description": "Named entity: Otilde without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d5"
- ]
- ]
- },
- {
- "input": "&Otilde;",
- "description": "Named entity: Otilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d5"
- ]
- ]
- },
- {
- "input": "&Otimes",
- "description": "Bad named entity: Otimes without a semi-colon",
- "output": [
- [
- "Character",
- "&Otimes"
- ]
- ]
- },
- {
- "input": "&Otimes;",
- "description": "Named entity: Otimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a37"
- ]
- ]
- },
- {
- "input": "&Ouml",
- "description": "Named entity: Ouml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d6"
- ]
- ]
- },
- {
- "input": "&Ouml;",
- "description": "Named entity: Ouml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d6"
- ]
- ]
- },
- {
- "input": "&OverBar",
- "description": "Bad named entity: OverBar without a semi-colon",
- "output": [
- [
- "Character",
- "&OverBar"
- ]
- ]
- },
- {
- "input": "&OverBar;",
- "description": "Named entity: OverBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u203e"
- ]
- ]
- },
- {
- "input": "&OverBrace",
- "description": "Bad named entity: OverBrace without a semi-colon",
- "output": [
- [
- "Character",
- "&OverBrace"
- ]
- ]
- },
- {
- "input": "&OverBrace;",
- "description": "Named entity: OverBrace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23de"
- ]
- ]
- },
- {
- "input": "&OverBracket",
- "description": "Bad named entity: OverBracket without a semi-colon",
- "output": [
- [
- "Character",
- "&OverBracket"
- ]
- ]
- },
- {
- "input": "&OverBracket;",
- "description": "Named entity: OverBracket; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b4"
- ]
- ]
- },
- {
- "input": "&OverParenthesis",
- "description": "Bad named entity: OverParenthesis without a semi-colon",
- "output": [
- [
- "Character",
- "&OverParenthesis"
- ]
- ]
- },
- {
- "input": "&OverParenthesis;",
- "description": "Named entity: OverParenthesis; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23dc"
- ]
- ]
- },
- {
- "input": "&PartialD",
- "description": "Bad named entity: PartialD without a semi-colon",
- "output": [
- [
- "Character",
- "&PartialD"
- ]
- ]
- },
- {
- "input": "&PartialD;",
- "description": "Named entity: PartialD; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2202"
- ]
- ]
- },
- {
- "input": "&Pcy",
- "description": "Bad named entity: Pcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Pcy"
- ]
- ]
- },
- {
- "input": "&Pcy;",
- "description": "Named entity: Pcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u041f"
- ]
- ]
- },
- {
- "input": "&Pfr",
- "description": "Bad named entity: Pfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Pfr"
- ]
- ]
- },
- {
- "input": "&Pfr;",
- "description": "Named entity: Pfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd13"
- ]
- ]
- },
- {
- "input": "&Phi",
- "description": "Bad named entity: Phi without a semi-colon",
- "output": [
- [
- "Character",
- "&Phi"
- ]
- ]
- },
- {
- "input": "&Phi;",
- "description": "Named entity: Phi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a6"
- ]
- ]
- },
- {
- "input": "&Pi",
- "description": "Bad named entity: Pi without a semi-colon",
- "output": [
- [
- "Character",
- "&Pi"
- ]
- ]
- },
- {
- "input": "&Pi;",
- "description": "Named entity: Pi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a0"
- ]
- ]
- },
- {
- "input": "&PlusMinus",
- "description": "Bad named entity: PlusMinus without a semi-colon",
- "output": [
- [
- "Character",
- "&PlusMinus"
- ]
- ]
- },
- {
- "input": "&PlusMinus;",
- "description": "Named entity: PlusMinus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b1"
- ]
- ]
- },
- {
- "input": "&Poincareplane",
- "description": "Bad named entity: Poincareplane without a semi-colon",
- "output": [
- [
- "Character",
- "&Poincareplane"
- ]
- ]
- },
- {
- "input": "&Poincareplane;",
- "description": "Named entity: Poincareplane; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210c"
- ]
- ]
- },
- {
- "input": "&Popf",
- "description": "Bad named entity: Popf without a semi-colon",
- "output": [
- [
- "Character",
- "&Popf"
- ]
- ]
- },
- {
- "input": "&Popf;",
- "description": "Named entity: Popf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2119"
- ]
- ]
- },
- {
- "input": "&Pr",
- "description": "Bad named entity: Pr without a semi-colon",
- "output": [
- [
- "Character",
- "&Pr"
- ]
- ]
- },
- {
- "input": "&Pr;",
- "description": "Named entity: Pr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2abb"
- ]
- ]
- },
- {
- "input": "&Precedes",
- "description": "Bad named entity: Precedes without a semi-colon",
- "output": [
- [
- "Character",
- "&Precedes"
- ]
- ]
- },
- {
- "input": "&Precedes;",
- "description": "Named entity: Precedes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227a"
- ]
- ]
- },
- {
- "input": "&PrecedesEqual",
- "description": "Bad named entity: PrecedesEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&PrecedesEqual"
- ]
- ]
- },
- {
- "input": "&PrecedesEqual;",
- "description": "Named entity: PrecedesEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aaf"
- ]
- ]
- },
- {
- "input": "&PrecedesSlantEqual",
- "description": "Bad named entity: PrecedesSlantEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&PrecedesSlantEqual"
- ]
- ]
- },
- {
- "input": "&PrecedesSlantEqual;",
- "description": "Named entity: PrecedesSlantEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227c"
- ]
- ]
- },
- {
- "input": "&PrecedesTilde",
- "description": "Bad named entity: PrecedesTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&PrecedesTilde"
- ]
- ]
- },
- {
- "input": "&PrecedesTilde;",
- "description": "Named entity: PrecedesTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227e"
- ]
- ]
- },
- {
- "input": "&Prime",
- "description": "Bad named entity: Prime without a semi-colon",
- "output": [
- [
- "Character",
- "&Prime"
- ]
- ]
- },
- {
- "input": "&Prime;",
- "description": "Named entity: Prime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2033"
- ]
- ]
- },
- {
- "input": "&Product",
- "description": "Bad named entity: Product without a semi-colon",
- "output": [
- [
- "Character",
- "&Product"
- ]
- ]
- },
- {
- "input": "&Product;",
- "description": "Named entity: Product; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220f"
- ]
- ]
- },
- {
- "input": "&Proportion",
- "description": "Bad named entity: Proportion without a semi-colon",
- "output": [
- [
- "Character",
- "&Proportion"
- ]
- ]
- },
- {
- "input": "&Proportion;",
- "description": "Named entity: Proportion; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2237"
- ]
- ]
- },
- {
- "input": "&Proportional",
- "description": "Bad named entity: Proportional without a semi-colon",
- "output": [
- [
- "Character",
- "&Proportional"
- ]
- ]
- },
- {
- "input": "&Proportional;",
- "description": "Named entity: Proportional; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221d"
- ]
- ]
- },
- {
- "input": "&Pscr",
- "description": "Bad named entity: Pscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Pscr"
- ]
- ]
- },
- {
- "input": "&Pscr;",
- "description": "Named entity: Pscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcab"
- ]
- ]
- },
- {
- "input": "&Psi",
- "description": "Bad named entity: Psi without a semi-colon",
- "output": [
- [
- "Character",
- "&Psi"
- ]
- ]
- },
- {
- "input": "&Psi;",
- "description": "Named entity: Psi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a8"
- ]
- ]
- },
- {
- "input": "&QUOT",
- "description": "Named entity: QUOT without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\""
- ]
- ]
- },
- {
- "input": "&QUOT;",
- "description": "Named entity: QUOT; with a semi-colon",
- "output": [
- [
- "Character",
- "\""
- ]
- ]
- },
- {
- "input": "&Qfr",
- "description": "Bad named entity: Qfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Qfr"
- ]
- ]
- },
- {
- "input": "&Qfr;",
- "description": "Named entity: Qfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd14"
- ]
- ]
- },
- {
- "input": "&Qopf",
- "description": "Bad named entity: Qopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Qopf"
- ]
- ]
- },
- {
- "input": "&Qopf;",
- "description": "Named entity: Qopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211a"
- ]
- ]
- },
- {
- "input": "&Qscr",
- "description": "Bad named entity: Qscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Qscr"
- ]
- ]
- },
- {
- "input": "&Qscr;",
- "description": "Named entity: Qscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcac"
- ]
- ]
- },
- {
- "input": "&RBarr",
- "description": "Bad named entity: RBarr without a semi-colon",
- "output": [
- [
- "Character",
- "&RBarr"
- ]
- ]
- },
- {
- "input": "&RBarr;",
- "description": "Named entity: RBarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2910"
- ]
- ]
- },
- {
- "input": "&REG",
- "description": "Named entity: REG without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ae"
- ]
- ]
- },
- {
- "input": "&REG;",
- "description": "Named entity: REG; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ae"
- ]
- ]
- },
- {
- "input": "&Racute",
- "description": "Bad named entity: Racute without a semi-colon",
- "output": [
- [
- "Character",
- "&Racute"
- ]
- ]
- },
- {
- "input": "&Racute;",
- "description": "Named entity: Racute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0154"
- ]
- ]
- },
- {
- "input": "&Rang",
- "description": "Bad named entity: Rang without a semi-colon",
- "output": [
- [
- "Character",
- "&Rang"
- ]
- ]
- },
- {
- "input": "&Rang;",
- "description": "Named entity: Rang; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27eb"
- ]
- ]
- },
- {
- "input": "&Rarr",
- "description": "Bad named entity: Rarr without a semi-colon",
- "output": [
- [
- "Character",
- "&Rarr"
- ]
- ]
- },
- {
- "input": "&Rarr;",
- "description": "Named entity: Rarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a0"
- ]
- ]
- },
- {
- "input": "&Rarrtl",
- "description": "Bad named entity: Rarrtl without a semi-colon",
- "output": [
- [
- "Character",
- "&Rarrtl"
- ]
- ]
- },
- {
- "input": "&Rarrtl;",
- "description": "Named entity: Rarrtl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2916"
- ]
- ]
- },
- {
- "input": "&Rcaron",
- "description": "Bad named entity: Rcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Rcaron"
- ]
- ]
- },
- {
- "input": "&Rcaron;",
- "description": "Named entity: Rcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0158"
- ]
- ]
- },
- {
- "input": "&Rcedil",
- "description": "Bad named entity: Rcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&Rcedil"
- ]
- ]
- },
- {
- "input": "&Rcedil;",
- "description": "Named entity: Rcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0156"
- ]
- ]
- },
- {
- "input": "&Rcy",
- "description": "Bad named entity: Rcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Rcy"
- ]
- ]
- },
- {
- "input": "&Rcy;",
- "description": "Named entity: Rcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0420"
- ]
- ]
- },
- {
- "input": "&Re",
- "description": "Bad named entity: Re without a semi-colon",
- "output": [
- [
- "Character",
- "&Re"
- ]
- ]
- },
- {
- "input": "&Re;",
- "description": "Named entity: Re; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211c"
- ]
- ]
- },
- {
- "input": "&ReverseElement",
- "description": "Bad named entity: ReverseElement without a semi-colon",
- "output": [
- [
- "Character",
- "&ReverseElement"
- ]
- ]
- },
- {
- "input": "&ReverseElement;",
- "description": "Named entity: ReverseElement; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220b"
- ]
- ]
- },
- {
- "input": "&ReverseEquilibrium",
- "description": "Bad named entity: ReverseEquilibrium without a semi-colon",
- "output": [
- [
- "Character",
- "&ReverseEquilibrium"
- ]
- ]
- },
- {
- "input": "&ReverseEquilibrium;",
- "description": "Named entity: ReverseEquilibrium; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cb"
- ]
- ]
- },
- {
- "input": "&ReverseUpEquilibrium",
- "description": "Bad named entity: ReverseUpEquilibrium without a semi-colon",
- "output": [
- [
- "Character",
- "&ReverseUpEquilibrium"
- ]
- ]
- },
- {
- "input": "&ReverseUpEquilibrium;",
- "description": "Named entity: ReverseUpEquilibrium; with a semi-colon",
- "output": [
- [
- "Character",
- "\u296f"
- ]
- ]
- },
- {
- "input": "&Rfr",
- "description": "Bad named entity: Rfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Rfr"
- ]
- ]
- },
- {
- "input": "&Rfr;",
- "description": "Named entity: Rfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211c"
- ]
- ]
- },
- {
- "input": "&Rho",
- "description": "Bad named entity: Rho without a semi-colon",
- "output": [
- [
- "Character",
- "&Rho"
- ]
- ]
- },
- {
- "input": "&Rho;",
- "description": "Named entity: Rho; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a1"
- ]
- ]
- },
- {
- "input": "&RightAngleBracket",
- "description": "Bad named entity: RightAngleBracket without a semi-colon",
- "output": [
- [
- "Character",
- "&RightAngleBracket"
- ]
- ]
- },
- {
- "input": "&RightAngleBracket;",
- "description": "Named entity: RightAngleBracket; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e9"
- ]
- ]
- },
- {
- "input": "&RightArrow",
- "description": "Bad named entity: RightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&RightArrow"
- ]
- ]
- },
- {
- "input": "&RightArrow;",
- "description": "Named entity: RightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2192"
- ]
- ]
- },
- {
- "input": "&RightArrowBar",
- "description": "Bad named entity: RightArrowBar without a semi-colon",
- "output": [
- [
- "Character",
- "&RightArrowBar"
- ]
- ]
- },
- {
- "input": "&RightArrowBar;",
- "description": "Named entity: RightArrowBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21e5"
- ]
- ]
- },
- {
- "input": "&RightArrowLeftArrow",
- "description": "Bad named entity: RightArrowLeftArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&RightArrowLeftArrow"
- ]
- ]
- },
- {
- "input": "&RightArrowLeftArrow;",
- "description": "Named entity: RightArrowLeftArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c4"
- ]
- ]
- },
- {
- "input": "&RightCeiling",
- "description": "Bad named entity: RightCeiling without a semi-colon",
- "output": [
- [
- "Character",
- "&RightCeiling"
- ]
- ]
- },
- {
- "input": "&RightCeiling;",
- "description": "Named entity: RightCeiling; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2309"
- ]
- ]
- },
- {
- "input": "&RightDoubleBracket",
- "description": "Bad named entity: RightDoubleBracket without a semi-colon",
- "output": [
- [
- "Character",
- "&RightDoubleBracket"
- ]
- ]
- },
- {
- "input": "&RightDoubleBracket;",
- "description": "Named entity: RightDoubleBracket; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e7"
- ]
- ]
- },
- {
- "input": "&RightDownTeeVector",
- "description": "Bad named entity: RightDownTeeVector without a semi-colon",
- "output": [
- [
- "Character",
- "&RightDownTeeVector"
- ]
- ]
- },
- {
- "input": "&RightDownTeeVector;",
- "description": "Named entity: RightDownTeeVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u295d"
- ]
- ]
- },
- {
- "input": "&RightDownVector",
- "description": "Bad named entity: RightDownVector without a semi-colon",
- "output": [
- [
- "Character",
- "&RightDownVector"
- ]
- ]
- },
- {
- "input": "&RightDownVector;",
- "description": "Named entity: RightDownVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c2"
- ]
- ]
- },
- {
- "input": "&RightDownVectorBar",
- "description": "Bad named entity: RightDownVectorBar without a semi-colon",
- "output": [
- [
- "Character",
- "&RightDownVectorBar"
- ]
- ]
- },
- {
- "input": "&RightDownVectorBar;",
- "description": "Named entity: RightDownVectorBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2955"
- ]
- ]
- },
- {
- "input": "&RightFloor",
- "description": "Bad named entity: RightFloor without a semi-colon",
- "output": [
- [
- "Character",
- "&RightFloor"
- ]
- ]
- },
- {
- "input": "&RightFloor;",
- "description": "Named entity: RightFloor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u230b"
- ]
- ]
- },
- {
- "input": "&RightTee",
- "description": "Bad named entity: RightTee without a semi-colon",
- "output": [
- [
- "Character",
- "&RightTee"
- ]
- ]
- },
- {
- "input": "&RightTee;",
- "description": "Named entity: RightTee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a2"
- ]
- ]
- },
- {
- "input": "&RightTeeArrow",
- "description": "Bad named entity: RightTeeArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&RightTeeArrow"
- ]
- ]
- },
- {
- "input": "&RightTeeArrow;",
- "description": "Named entity: RightTeeArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a6"
- ]
- ]
- },
- {
- "input": "&RightTeeVector",
- "description": "Bad named entity: RightTeeVector without a semi-colon",
- "output": [
- [
- "Character",
- "&RightTeeVector"
- ]
- ]
- },
- {
- "input": "&RightTeeVector;",
- "description": "Named entity: RightTeeVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u295b"
- ]
- ]
- },
- {
- "input": "&RightTriangle",
- "description": "Bad named entity: RightTriangle without a semi-colon",
- "output": [
- [
- "Character",
- "&RightTriangle"
- ]
- ]
- },
- {
- "input": "&RightTriangle;",
- "description": "Named entity: RightTriangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b3"
- ]
- ]
- },
- {
- "input": "&RightTriangleBar",
- "description": "Bad named entity: RightTriangleBar without a semi-colon",
- "output": [
- [
- "Character",
- "&RightTriangleBar"
- ]
- ]
- },
- {
- "input": "&RightTriangleBar;",
- "description": "Named entity: RightTriangleBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29d0"
- ]
- ]
- },
- {
- "input": "&RightTriangleEqual",
- "description": "Bad named entity: RightTriangleEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&RightTriangleEqual"
- ]
- ]
- },
- {
- "input": "&RightTriangleEqual;",
- "description": "Named entity: RightTriangleEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b5"
- ]
- ]
- },
- {
- "input": "&RightUpDownVector",
- "description": "Bad named entity: RightUpDownVector without a semi-colon",
- "output": [
- [
- "Character",
- "&RightUpDownVector"
- ]
- ]
- },
- {
- "input": "&RightUpDownVector;",
- "description": "Named entity: RightUpDownVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u294f"
- ]
- ]
- },
- {
- "input": "&RightUpTeeVector",
- "description": "Bad named entity: RightUpTeeVector without a semi-colon",
- "output": [
- [
- "Character",
- "&RightUpTeeVector"
- ]
- ]
- },
- {
- "input": "&RightUpTeeVector;",
- "description": "Named entity: RightUpTeeVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u295c"
- ]
- ]
- },
- {
- "input": "&RightUpVector",
- "description": "Bad named entity: RightUpVector without a semi-colon",
- "output": [
- [
- "Character",
- "&RightUpVector"
- ]
- ]
- },
- {
- "input": "&RightUpVector;",
- "description": "Named entity: RightUpVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21be"
- ]
- ]
- },
- {
- "input": "&RightUpVectorBar",
- "description": "Bad named entity: RightUpVectorBar without a semi-colon",
- "output": [
- [
- "Character",
- "&RightUpVectorBar"
- ]
- ]
- },
- {
- "input": "&RightUpVectorBar;",
- "description": "Named entity: RightUpVectorBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2954"
- ]
- ]
- },
- {
- "input": "&RightVector",
- "description": "Bad named entity: RightVector without a semi-colon",
- "output": [
- [
- "Character",
- "&RightVector"
- ]
- ]
- },
- {
- "input": "&RightVector;",
- "description": "Named entity: RightVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c0"
- ]
- ]
- },
- {
- "input": "&RightVectorBar",
- "description": "Bad named entity: RightVectorBar without a semi-colon",
- "output": [
- [
- "Character",
- "&RightVectorBar"
- ]
- ]
- },
- {
- "input": "&RightVectorBar;",
- "description": "Named entity: RightVectorBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2953"
- ]
- ]
- },
- {
- "input": "&Rightarrow",
- "description": "Bad named entity: Rightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Rightarrow"
- ]
- ]
- },
- {
- "input": "&Rightarrow;",
- "description": "Named entity: Rightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d2"
- ]
- ]
- },
- {
- "input": "&Ropf",
- "description": "Bad named entity: Ropf without a semi-colon",
- "output": [
- [
- "Character",
- "&Ropf"
- ]
- ]
- },
- {
- "input": "&Ropf;",
- "description": "Named entity: Ropf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211d"
- ]
- ]
- },
- {
- "input": "&RoundImplies",
- "description": "Bad named entity: RoundImplies without a semi-colon",
- "output": [
- [
- "Character",
- "&RoundImplies"
- ]
- ]
- },
- {
- "input": "&RoundImplies;",
- "description": "Named entity: RoundImplies; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2970"
- ]
- ]
- },
- {
- "input": "&Rrightarrow",
- "description": "Bad named entity: Rrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Rrightarrow"
- ]
- ]
- },
- {
- "input": "&Rrightarrow;",
- "description": "Named entity: Rrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21db"
- ]
- ]
- },
- {
- "input": "&Rscr",
- "description": "Bad named entity: Rscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Rscr"
- ]
- ]
- },
- {
- "input": "&Rscr;",
- "description": "Named entity: Rscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211b"
- ]
- ]
- },
- {
- "input": "&Rsh",
- "description": "Bad named entity: Rsh without a semi-colon",
- "output": [
- [
- "Character",
- "&Rsh"
- ]
- ]
- },
- {
- "input": "&Rsh;",
- "description": "Named entity: Rsh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b1"
- ]
- ]
- },
- {
- "input": "&RuleDelayed",
- "description": "Bad named entity: RuleDelayed without a semi-colon",
- "output": [
- [
- "Character",
- "&RuleDelayed"
- ]
- ]
- },
- {
- "input": "&RuleDelayed;",
- "description": "Named entity: RuleDelayed; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29f4"
- ]
- ]
- },
- {
- "input": "&SHCHcy",
- "description": "Bad named entity: SHCHcy without a semi-colon",
- "output": [
- [
- "Character",
- "&SHCHcy"
- ]
- ]
- },
- {
- "input": "&SHCHcy;",
- "description": "Named entity: SHCHcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0429"
- ]
- ]
- },
- {
- "input": "&SHcy",
- "description": "Bad named entity: SHcy without a semi-colon",
- "output": [
- [
- "Character",
- "&SHcy"
- ]
- ]
- },
- {
- "input": "&SHcy;",
- "description": "Named entity: SHcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0428"
- ]
- ]
- },
- {
- "input": "&SOFTcy",
- "description": "Bad named entity: SOFTcy without a semi-colon",
- "output": [
- [
- "Character",
- "&SOFTcy"
- ]
- ]
- },
- {
- "input": "&SOFTcy;",
- "description": "Named entity: SOFTcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u042c"
- ]
- ]
- },
- {
- "input": "&Sacute",
- "description": "Bad named entity: Sacute without a semi-colon",
- "output": [
- [
- "Character",
- "&Sacute"
- ]
- ]
- },
- {
- "input": "&Sacute;",
- "description": "Named entity: Sacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u015a"
- ]
- ]
- },
- {
- "input": "&Sc",
- "description": "Bad named entity: Sc without a semi-colon",
- "output": [
- [
- "Character",
- "&Sc"
- ]
- ]
- },
- {
- "input": "&Sc;",
- "description": "Named entity: Sc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2abc"
- ]
- ]
- },
- {
- "input": "&Scaron",
- "description": "Bad named entity: Scaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Scaron"
- ]
- ]
- },
- {
- "input": "&Scaron;",
- "description": "Named entity: Scaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0160"
- ]
- ]
- },
- {
- "input": "&Scedil",
- "description": "Bad named entity: Scedil without a semi-colon",
- "output": [
- [
- "Character",
- "&Scedil"
- ]
- ]
- },
- {
- "input": "&Scedil;",
- "description": "Named entity: Scedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u015e"
- ]
- ]
- },
- {
- "input": "&Scirc",
- "description": "Bad named entity: Scirc without a semi-colon",
- "output": [
- [
- "Character",
- "&Scirc"
- ]
- ]
- },
- {
- "input": "&Scirc;",
- "description": "Named entity: Scirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u015c"
- ]
- ]
- },
- {
- "input": "&Scy",
- "description": "Bad named entity: Scy without a semi-colon",
- "output": [
- [
- "Character",
- "&Scy"
- ]
- ]
- },
- {
- "input": "&Scy;",
- "description": "Named entity: Scy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0421"
- ]
- ]
- },
- {
- "input": "&Sfr",
- "description": "Bad named entity: Sfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Sfr"
- ]
- ]
- },
- {
- "input": "&Sfr;",
- "description": "Named entity: Sfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd16"
- ]
- ]
- },
- {
- "input": "&ShortDownArrow",
- "description": "Bad named entity: ShortDownArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&ShortDownArrow"
- ]
- ]
- },
- {
- "input": "&ShortDownArrow;",
- "description": "Named entity: ShortDownArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2193"
- ]
- ]
- },
- {
- "input": "&ShortLeftArrow",
- "description": "Bad named entity: ShortLeftArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&ShortLeftArrow"
- ]
- ]
- },
- {
- "input": "&ShortLeftArrow;",
- "description": "Named entity: ShortLeftArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2190"
- ]
- ]
- },
- {
- "input": "&ShortRightArrow",
- "description": "Bad named entity: ShortRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&ShortRightArrow"
- ]
- ]
- },
- {
- "input": "&ShortRightArrow;",
- "description": "Named entity: ShortRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2192"
- ]
- ]
- },
- {
- "input": "&ShortUpArrow",
- "description": "Bad named entity: ShortUpArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&ShortUpArrow"
- ]
- ]
- },
- {
- "input": "&ShortUpArrow;",
- "description": "Named entity: ShortUpArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2191"
- ]
- ]
- },
- {
- "input": "&Sigma",
- "description": "Bad named entity: Sigma without a semi-colon",
- "output": [
- [
- "Character",
- "&Sigma"
- ]
- ]
- },
- {
- "input": "&Sigma;",
- "description": "Named entity: Sigma; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a3"
- ]
- ]
- },
- {
- "input": "&SmallCircle",
- "description": "Bad named entity: SmallCircle without a semi-colon",
- "output": [
- [
- "Character",
- "&SmallCircle"
- ]
- ]
- },
- {
- "input": "&SmallCircle;",
- "description": "Named entity: SmallCircle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2218"
- ]
- ]
- },
- {
- "input": "&Sopf",
- "description": "Bad named entity: Sopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Sopf"
- ]
- ]
- },
- {
- "input": "&Sopf;",
- "description": "Named entity: Sopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd4a"
- ]
- ]
- },
- {
- "input": "&Sqrt",
- "description": "Bad named entity: Sqrt without a semi-colon",
- "output": [
- [
- "Character",
- "&Sqrt"
- ]
- ]
- },
- {
- "input": "&Sqrt;",
- "description": "Named entity: Sqrt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221a"
- ]
- ]
- },
- {
- "input": "&Square",
- "description": "Bad named entity: Square without a semi-colon",
- "output": [
- [
- "Character",
- "&Square"
- ]
- ]
- },
- {
- "input": "&Square;",
- "description": "Named entity: Square; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25a1"
- ]
- ]
- },
- {
- "input": "&SquareIntersection",
- "description": "Bad named entity: SquareIntersection without a semi-colon",
- "output": [
- [
- "Character",
- "&SquareIntersection"
- ]
- ]
- },
- {
- "input": "&SquareIntersection;",
- "description": "Named entity: SquareIntersection; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2293"
- ]
- ]
- },
- {
- "input": "&SquareSubset",
- "description": "Bad named entity: SquareSubset without a semi-colon",
- "output": [
- [
- "Character",
- "&SquareSubset"
- ]
- ]
- },
- {
- "input": "&SquareSubset;",
- "description": "Named entity: SquareSubset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228f"
- ]
- ]
- },
- {
- "input": "&SquareSubsetEqual",
- "description": "Bad named entity: SquareSubsetEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&SquareSubsetEqual"
- ]
- ]
- },
- {
- "input": "&SquareSubsetEqual;",
- "description": "Named entity: SquareSubsetEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2291"
- ]
- ]
- },
- {
- "input": "&SquareSuperset",
- "description": "Bad named entity: SquareSuperset without a semi-colon",
- "output": [
- [
- "Character",
- "&SquareSuperset"
- ]
- ]
- },
- {
- "input": "&SquareSuperset;",
- "description": "Named entity: SquareSuperset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2290"
- ]
- ]
- },
- {
- "input": "&SquareSupersetEqual",
- "description": "Bad named entity: SquareSupersetEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&SquareSupersetEqual"
- ]
- ]
- },
- {
- "input": "&SquareSupersetEqual;",
- "description": "Named entity: SquareSupersetEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2292"
- ]
- ]
- },
- {
- "input": "&SquareUnion",
- "description": "Bad named entity: SquareUnion without a semi-colon",
- "output": [
- [
- "Character",
- "&SquareUnion"
- ]
- ]
- },
- {
- "input": "&SquareUnion;",
- "description": "Named entity: SquareUnion; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2294"
- ]
- ]
- },
- {
- "input": "&Sscr",
- "description": "Bad named entity: Sscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Sscr"
- ]
- ]
- },
- {
- "input": "&Sscr;",
- "description": "Named entity: Sscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcae"
- ]
- ]
- },
- {
- "input": "&Star",
- "description": "Bad named entity: Star without a semi-colon",
- "output": [
- [
- "Character",
- "&Star"
- ]
- ]
- },
- {
- "input": "&Star;",
- "description": "Named entity: Star; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c6"
- ]
- ]
- },
- {
- "input": "&Sub",
- "description": "Bad named entity: Sub without a semi-colon",
- "output": [
- [
- "Character",
- "&Sub"
- ]
- ]
- },
- {
- "input": "&Sub;",
- "description": "Named entity: Sub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d0"
- ]
- ]
- },
- {
- "input": "&Subset",
- "description": "Bad named entity: Subset without a semi-colon",
- "output": [
- [
- "Character",
- "&Subset"
- ]
- ]
- },
- {
- "input": "&Subset;",
- "description": "Named entity: Subset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d0"
- ]
- ]
- },
- {
- "input": "&SubsetEqual",
- "description": "Bad named entity: SubsetEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&SubsetEqual"
- ]
- ]
- },
- {
- "input": "&SubsetEqual;",
- "description": "Named entity: SubsetEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2286"
- ]
- ]
- },
- {
- "input": "&Succeeds",
- "description": "Bad named entity: Succeeds without a semi-colon",
- "output": [
- [
- "Character",
- "&Succeeds"
- ]
- ]
- },
- {
- "input": "&Succeeds;",
- "description": "Named entity: Succeeds; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227b"
- ]
- ]
- },
- {
- "input": "&SucceedsEqual",
- "description": "Bad named entity: SucceedsEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&SucceedsEqual"
- ]
- ]
- },
- {
- "input": "&SucceedsEqual;",
- "description": "Named entity: SucceedsEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab0"
- ]
- ]
- },
- {
- "input": "&SucceedsSlantEqual",
- "description": "Bad named entity: SucceedsSlantEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&SucceedsSlantEqual"
- ]
- ]
- },
- {
- "input": "&SucceedsSlantEqual;",
- "description": "Named entity: SucceedsSlantEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227d"
- ]
- ]
- },
- {
- "input": "&SucceedsTilde",
- "description": "Bad named entity: SucceedsTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&SucceedsTilde"
- ]
- ]
- },
- {
- "input": "&SucceedsTilde;",
- "description": "Named entity: SucceedsTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227f"
- ]
- ]
- },
- {
- "input": "&SuchThat",
- "description": "Bad named entity: SuchThat without a semi-colon",
- "output": [
- [
- "Character",
- "&SuchThat"
- ]
- ]
- },
- {
- "input": "&SuchThat;",
- "description": "Named entity: SuchThat; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220b"
- ]
- ]
- },
- {
- "input": "&Sum",
- "description": "Bad named entity: Sum without a semi-colon",
- "output": [
- [
- "Character",
- "&Sum"
- ]
- ]
- },
- {
- "input": "&Sum;",
- "description": "Named entity: Sum; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2211"
- ]
- ]
- },
- {
- "input": "&Sup",
- "description": "Bad named entity: Sup without a semi-colon",
- "output": [
- [
- "Character",
- "&Sup"
- ]
- ]
- },
- {
- "input": "&Sup;",
- "description": "Named entity: Sup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d1"
- ]
- ]
- },
- {
- "input": "&Superset",
- "description": "Bad named entity: Superset without a semi-colon",
- "output": [
- [
- "Character",
- "&Superset"
- ]
- ]
- },
- {
- "input": "&Superset;",
- "description": "Named entity: Superset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2283"
- ]
- ]
- },
- {
- "input": "&SupersetEqual",
- "description": "Bad named entity: SupersetEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&SupersetEqual"
- ]
- ]
- },
- {
- "input": "&SupersetEqual;",
- "description": "Named entity: SupersetEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2287"
- ]
- ]
- },
- {
- "input": "&Supset",
- "description": "Bad named entity: Supset without a semi-colon",
- "output": [
- [
- "Character",
- "&Supset"
- ]
- ]
- },
- {
- "input": "&Supset;",
- "description": "Named entity: Supset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d1"
- ]
- ]
- },
- {
- "input": "&THORN",
- "description": "Named entity: THORN without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00de"
- ]
- ]
- },
- {
- "input": "&THORN;",
- "description": "Named entity: THORN; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00de"
- ]
- ]
- },
- {
- "input": "&TRADE",
- "description": "Bad named entity: TRADE without a semi-colon",
- "output": [
- [
- "Character",
- "&TRADE"
- ]
- ]
- },
- {
- "input": "&TRADE;",
- "description": "Named entity: TRADE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2122"
- ]
- ]
- },
- {
- "input": "&TSHcy",
- "description": "Bad named entity: TSHcy without a semi-colon",
- "output": [
- [
- "Character",
- "&TSHcy"
- ]
- ]
- },
- {
- "input": "&TSHcy;",
- "description": "Named entity: TSHcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u040b"
- ]
- ]
- },
- {
- "input": "&TScy",
- "description": "Bad named entity: TScy without a semi-colon",
- "output": [
- [
- "Character",
- "&TScy"
- ]
- ]
- },
- {
- "input": "&TScy;",
- "description": "Named entity: TScy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0426"
- ]
- ]
- },
- {
- "input": "&Tab",
- "description": "Bad named entity: Tab without a semi-colon",
- "output": [
- [
- "Character",
- "&Tab"
- ]
- ]
- },
- {
- "input": "&Tab;",
- "description": "Named entity: Tab; with a semi-colon",
- "output": [
- [
- "Character",
- "\t"
- ]
- ]
- },
- {
- "input": "&Tau",
- "description": "Bad named entity: Tau without a semi-colon",
- "output": [
- [
- "Character",
- "&Tau"
- ]
- ]
- },
- {
- "input": "&Tau;",
- "description": "Named entity: Tau; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a4"
- ]
- ]
- },
- {
- "input": "&Tcaron",
- "description": "Bad named entity: Tcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Tcaron"
- ]
- ]
- },
- {
- "input": "&Tcaron;",
- "description": "Named entity: Tcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0164"
- ]
- ]
- },
- {
- "input": "&Tcedil",
- "description": "Bad named entity: Tcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&Tcedil"
- ]
- ]
- },
- {
- "input": "&Tcedil;",
- "description": "Named entity: Tcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0162"
- ]
- ]
- },
- {
- "input": "&Tcy",
- "description": "Bad named entity: Tcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Tcy"
- ]
- ]
- },
- {
- "input": "&Tcy;",
- "description": "Named entity: Tcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0422"
- ]
- ]
- },
- {
- "input": "&Tfr",
- "description": "Bad named entity: Tfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Tfr"
- ]
- ]
- },
- {
- "input": "&Tfr;",
- "description": "Named entity: Tfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd17"
- ]
- ]
- },
- {
- "input": "&Therefore",
- "description": "Bad named entity: Therefore without a semi-colon",
- "output": [
- [
- "Character",
- "&Therefore"
- ]
- ]
- },
- {
- "input": "&Therefore;",
- "description": "Named entity: Therefore; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2234"
- ]
- ]
- },
- {
- "input": "&Theta",
- "description": "Bad named entity: Theta without a semi-colon",
- "output": [
- [
- "Character",
- "&Theta"
- ]
- ]
- },
- {
- "input": "&Theta;",
- "description": "Named entity: Theta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0398"
- ]
- ]
- },
- {
- "input": "&ThickSpace",
- "description": "Bad named entity: ThickSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&ThickSpace"
- ]
- ]
- },
- {
- "input": "&ThickSpace;",
- "description": "Named entity: ThickSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u205f\u200a"
- ]
- ]
- },
- {
- "input": "&ThinSpace",
- "description": "Bad named entity: ThinSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&ThinSpace"
- ]
- ]
- },
- {
- "input": "&ThinSpace;",
- "description": "Named entity: ThinSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2009"
- ]
- ]
- },
- {
- "input": "&Tilde",
- "description": "Bad named entity: Tilde without a semi-colon",
- "output": [
- [
- "Character",
- "&Tilde"
- ]
- ]
- },
- {
- "input": "&Tilde;",
- "description": "Named entity: Tilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223c"
- ]
- ]
- },
- {
- "input": "&TildeEqual",
- "description": "Bad named entity: TildeEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&TildeEqual"
- ]
- ]
- },
- {
- "input": "&TildeEqual;",
- "description": "Named entity: TildeEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2243"
- ]
- ]
- },
- {
- "input": "&TildeFullEqual",
- "description": "Bad named entity: TildeFullEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&TildeFullEqual"
- ]
- ]
- },
- {
- "input": "&TildeFullEqual;",
- "description": "Named entity: TildeFullEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2245"
- ]
- ]
- },
- {
- "input": "&TildeTilde",
- "description": "Bad named entity: TildeTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&TildeTilde"
- ]
- ]
- },
- {
- "input": "&TildeTilde;",
- "description": "Named entity: TildeTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2248"
- ]
- ]
- },
- {
- "input": "&Topf",
- "description": "Bad named entity: Topf without a semi-colon",
- "output": [
- [
- "Character",
- "&Topf"
- ]
- ]
- },
- {
- "input": "&Topf;",
- "description": "Named entity: Topf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd4b"
- ]
- ]
- },
- {
- "input": "&TripleDot",
- "description": "Bad named entity: TripleDot without a semi-colon",
- "output": [
- [
- "Character",
- "&TripleDot"
- ]
- ]
- },
- {
- "input": "&TripleDot;",
- "description": "Named entity: TripleDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u20db"
- ]
- ]
- },
- {
- "input": "&Tscr",
- "description": "Bad named entity: Tscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Tscr"
- ]
- ]
- },
- {
- "input": "&Tscr;",
- "description": "Named entity: Tscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcaf"
- ]
- ]
- },
- {
- "input": "&Tstrok",
- "description": "Bad named entity: Tstrok without a semi-colon",
- "output": [
- [
- "Character",
- "&Tstrok"
- ]
- ]
- },
- {
- "input": "&Tstrok;",
- "description": "Named entity: Tstrok; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0166"
- ]
- ]
- },
- {
- "input": "&Uacute",
- "description": "Named entity: Uacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00da"
- ]
- ]
- },
- {
- "input": "&Uacute;",
- "description": "Named entity: Uacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00da"
- ]
- ]
- },
- {
- "input": "&Uarr",
- "description": "Bad named entity: Uarr without a semi-colon",
- "output": [
- [
- "Character",
- "&Uarr"
- ]
- ]
- },
- {
- "input": "&Uarr;",
- "description": "Named entity: Uarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219f"
- ]
- ]
- },
- {
- "input": "&Uarrocir",
- "description": "Bad named entity: Uarrocir without a semi-colon",
- "output": [
- [
- "Character",
- "&Uarrocir"
- ]
- ]
- },
- {
- "input": "&Uarrocir;",
- "description": "Named entity: Uarrocir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2949"
- ]
- ]
- },
- {
- "input": "&Ubrcy",
- "description": "Bad named entity: Ubrcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Ubrcy"
- ]
- ]
- },
- {
- "input": "&Ubrcy;",
- "description": "Named entity: Ubrcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u040e"
- ]
- ]
- },
- {
- "input": "&Ubreve",
- "description": "Bad named entity: Ubreve without a semi-colon",
- "output": [
- [
- "Character",
- "&Ubreve"
- ]
- ]
- },
- {
- "input": "&Ubreve;",
- "description": "Named entity: Ubreve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u016c"
- ]
- ]
- },
- {
- "input": "&Ucirc",
- "description": "Named entity: Ucirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00db"
- ]
- ]
- },
- {
- "input": "&Ucirc;",
- "description": "Named entity: Ucirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00db"
- ]
- ]
- },
- {
- "input": "&Ucy",
- "description": "Bad named entity: Ucy without a semi-colon",
- "output": [
- [
- "Character",
- "&Ucy"
- ]
- ]
- },
- {
- "input": "&Ucy;",
- "description": "Named entity: Ucy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0423"
- ]
- ]
- },
- {
- "input": "&Udblac",
- "description": "Bad named entity: Udblac without a semi-colon",
- "output": [
- [
- "Character",
- "&Udblac"
- ]
- ]
- },
- {
- "input": "&Udblac;",
- "description": "Named entity: Udblac; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0170"
- ]
- ]
- },
- {
- "input": "&Ufr",
- "description": "Bad named entity: Ufr without a semi-colon",
- "output": [
- [
- "Character",
- "&Ufr"
- ]
- ]
- },
- {
- "input": "&Ufr;",
- "description": "Named entity: Ufr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd18"
- ]
- ]
- },
- {
- "input": "&Ugrave",
- "description": "Named entity: Ugrave without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d9"
- ]
- ]
- },
- {
- "input": "&Ugrave;",
- "description": "Named entity: Ugrave; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d9"
- ]
- ]
- },
- {
- "input": "&Umacr",
- "description": "Bad named entity: Umacr without a semi-colon",
- "output": [
- [
- "Character",
- "&Umacr"
- ]
- ]
- },
- {
- "input": "&Umacr;",
- "description": "Named entity: Umacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u016a"
- ]
- ]
- },
- {
- "input": "&UnderBar",
- "description": "Bad named entity: UnderBar without a semi-colon",
- "output": [
- [
- "Character",
- "&UnderBar"
- ]
- ]
- },
- {
- "input": "&UnderBar;",
- "description": "Named entity: UnderBar; with a semi-colon",
- "output": [
- [
- "Character",
- "_"
- ]
- ]
- },
- {
- "input": "&UnderBrace",
- "description": "Bad named entity: UnderBrace without a semi-colon",
- "output": [
- [
- "Character",
- "&UnderBrace"
- ]
- ]
- },
- {
- "input": "&UnderBrace;",
- "description": "Named entity: UnderBrace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23df"
- ]
- ]
- },
- {
- "input": "&UnderBracket",
- "description": "Bad named entity: UnderBracket without a semi-colon",
- "output": [
- [
- "Character",
- "&UnderBracket"
- ]
- ]
- },
- {
- "input": "&UnderBracket;",
- "description": "Named entity: UnderBracket; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b5"
- ]
- ]
- },
- {
- "input": "&UnderParenthesis",
- "description": "Bad named entity: UnderParenthesis without a semi-colon",
- "output": [
- [
- "Character",
- "&UnderParenthesis"
- ]
- ]
- },
- {
- "input": "&UnderParenthesis;",
- "description": "Named entity: UnderParenthesis; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23dd"
- ]
- ]
- },
- {
- "input": "&Union",
- "description": "Bad named entity: Union without a semi-colon",
- "output": [
- [
- "Character",
- "&Union"
- ]
- ]
- },
- {
- "input": "&Union;",
- "description": "Named entity: Union; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c3"
- ]
- ]
- },
- {
- "input": "&UnionPlus",
- "description": "Bad named entity: UnionPlus without a semi-colon",
- "output": [
- [
- "Character",
- "&UnionPlus"
- ]
- ]
- },
- {
- "input": "&UnionPlus;",
- "description": "Named entity: UnionPlus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228e"
- ]
- ]
- },
- {
- "input": "&Uogon",
- "description": "Bad named entity: Uogon without a semi-colon",
- "output": [
- [
- "Character",
- "&Uogon"
- ]
- ]
- },
- {
- "input": "&Uogon;",
- "description": "Named entity: Uogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0172"
- ]
- ]
- },
- {
- "input": "&Uopf",
- "description": "Bad named entity: Uopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Uopf"
- ]
- ]
- },
- {
- "input": "&Uopf;",
- "description": "Named entity: Uopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd4c"
- ]
- ]
- },
- {
- "input": "&UpArrow",
- "description": "Bad named entity: UpArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&UpArrow"
- ]
- ]
- },
- {
- "input": "&UpArrow;",
- "description": "Named entity: UpArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2191"
- ]
- ]
- },
- {
- "input": "&UpArrowBar",
- "description": "Bad named entity: UpArrowBar without a semi-colon",
- "output": [
- [
- "Character",
- "&UpArrowBar"
- ]
- ]
- },
- {
- "input": "&UpArrowBar;",
- "description": "Named entity: UpArrowBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2912"
- ]
- ]
- },
- {
- "input": "&UpArrowDownArrow",
- "description": "Bad named entity: UpArrowDownArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&UpArrowDownArrow"
- ]
- ]
- },
- {
- "input": "&UpArrowDownArrow;",
- "description": "Named entity: UpArrowDownArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c5"
- ]
- ]
- },
- {
- "input": "&UpDownArrow",
- "description": "Bad named entity: UpDownArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&UpDownArrow"
- ]
- ]
- },
- {
- "input": "&UpDownArrow;",
- "description": "Named entity: UpDownArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2195"
- ]
- ]
- },
- {
- "input": "&UpEquilibrium",
- "description": "Bad named entity: UpEquilibrium without a semi-colon",
- "output": [
- [
- "Character",
- "&UpEquilibrium"
- ]
- ]
- },
- {
- "input": "&UpEquilibrium;",
- "description": "Named entity: UpEquilibrium; with a semi-colon",
- "output": [
- [
- "Character",
- "\u296e"
- ]
- ]
- },
- {
- "input": "&UpTee",
- "description": "Bad named entity: UpTee without a semi-colon",
- "output": [
- [
- "Character",
- "&UpTee"
- ]
- ]
- },
- {
- "input": "&UpTee;",
- "description": "Named entity: UpTee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a5"
- ]
- ]
- },
- {
- "input": "&UpTeeArrow",
- "description": "Bad named entity: UpTeeArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&UpTeeArrow"
- ]
- ]
- },
- {
- "input": "&UpTeeArrow;",
- "description": "Named entity: UpTeeArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a5"
- ]
- ]
- },
- {
- "input": "&Uparrow",
- "description": "Bad named entity: Uparrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Uparrow"
- ]
- ]
- },
- {
- "input": "&Uparrow;",
- "description": "Named entity: Uparrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d1"
- ]
- ]
- },
- {
- "input": "&Updownarrow",
- "description": "Bad named entity: Updownarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Updownarrow"
- ]
- ]
- },
- {
- "input": "&Updownarrow;",
- "description": "Named entity: Updownarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d5"
- ]
- ]
- },
- {
- "input": "&UpperLeftArrow",
- "description": "Bad named entity: UpperLeftArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&UpperLeftArrow"
- ]
- ]
- },
- {
- "input": "&UpperLeftArrow;",
- "description": "Named entity: UpperLeftArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2196"
- ]
- ]
- },
- {
- "input": "&UpperRightArrow",
- "description": "Bad named entity: UpperRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&UpperRightArrow"
- ]
- ]
- },
- {
- "input": "&UpperRightArrow;",
- "description": "Named entity: UpperRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2197"
- ]
- ]
- },
- {
- "input": "&Upsi",
- "description": "Bad named entity: Upsi without a semi-colon",
- "output": [
- [
- "Character",
- "&Upsi"
- ]
- ]
- },
- {
- "input": "&Upsi;",
- "description": "Named entity: Upsi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d2"
- ]
- ]
- },
- {
- "input": "&Upsilon",
- "description": "Bad named entity: Upsilon without a semi-colon",
- "output": [
- [
- "Character",
- "&Upsilon"
- ]
- ]
- },
- {
- "input": "&Upsilon;",
- "description": "Named entity: Upsilon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a5"
- ]
- ]
- },
- {
- "input": "&Uring",
- "description": "Bad named entity: Uring without a semi-colon",
- "output": [
- [
- "Character",
- "&Uring"
- ]
- ]
- },
- {
- "input": "&Uring;",
- "description": "Named entity: Uring; with a semi-colon",
- "output": [
- [
- "Character",
- "\u016e"
- ]
- ]
- },
- {
- "input": "&Uscr",
- "description": "Bad named entity: Uscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Uscr"
- ]
- ]
- },
- {
- "input": "&Uscr;",
- "description": "Named entity: Uscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb0"
- ]
- ]
- },
- {
- "input": "&Utilde",
- "description": "Bad named entity: Utilde without a semi-colon",
- "output": [
- [
- "Character",
- "&Utilde"
- ]
- ]
- },
- {
- "input": "&Utilde;",
- "description": "Named entity: Utilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0168"
- ]
- ]
- },
- {
- "input": "&Uuml",
- "description": "Named entity: Uuml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00dc"
- ]
- ]
- },
- {
- "input": "&Uuml;",
- "description": "Named entity: Uuml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00dc"
- ]
- ]
- },
- {
- "input": "&VDash",
- "description": "Bad named entity: VDash without a semi-colon",
- "output": [
- [
- "Character",
- "&VDash"
- ]
- ]
- },
- {
- "input": "&VDash;",
- "description": "Named entity: VDash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ab"
- ]
- ]
- },
- {
- "input": "&Vbar",
- "description": "Bad named entity: Vbar without a semi-colon",
- "output": [
- [
- "Character",
- "&Vbar"
- ]
- ]
- },
- {
- "input": "&Vbar;",
- "description": "Named entity: Vbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aeb"
- ]
- ]
- },
- {
- "input": "&Vcy",
- "description": "Bad named entity: Vcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Vcy"
- ]
- ]
- },
- {
- "input": "&Vcy;",
- "description": "Named entity: Vcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0412"
- ]
- ]
- },
- {
- "input": "&Vdash",
- "description": "Bad named entity: Vdash without a semi-colon",
- "output": [
- [
- "Character",
- "&Vdash"
- ]
- ]
- },
- {
- "input": "&Vdash;",
- "description": "Named entity: Vdash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a9"
- ]
- ]
- },
- {
- "input": "&Vdashl",
- "description": "Bad named entity: Vdashl without a semi-colon",
- "output": [
- [
- "Character",
- "&Vdashl"
- ]
- ]
- },
- {
- "input": "&Vdashl;",
- "description": "Named entity: Vdashl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ae6"
- ]
- ]
- },
- {
- "input": "&Vee",
- "description": "Bad named entity: Vee without a semi-colon",
- "output": [
- [
- "Character",
- "&Vee"
- ]
- ]
- },
- {
- "input": "&Vee;",
- "description": "Named entity: Vee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c1"
- ]
- ]
- },
- {
- "input": "&Verbar",
- "description": "Bad named entity: Verbar without a semi-colon",
- "output": [
- [
- "Character",
- "&Verbar"
- ]
- ]
- },
- {
- "input": "&Verbar;",
- "description": "Named entity: Verbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2016"
- ]
- ]
- },
- {
- "input": "&Vert",
- "description": "Bad named entity: Vert without a semi-colon",
- "output": [
- [
- "Character",
- "&Vert"
- ]
- ]
- },
- {
- "input": "&Vert;",
- "description": "Named entity: Vert; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2016"
- ]
- ]
- },
- {
- "input": "&VerticalBar",
- "description": "Bad named entity: VerticalBar without a semi-colon",
- "output": [
- [
- "Character",
- "&VerticalBar"
- ]
- ]
- },
- {
- "input": "&VerticalBar;",
- "description": "Named entity: VerticalBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2223"
- ]
- ]
- },
- {
- "input": "&VerticalLine",
- "description": "Bad named entity: VerticalLine without a semi-colon",
- "output": [
- [
- "Character",
- "&VerticalLine"
- ]
- ]
- },
- {
- "input": "&VerticalLine;",
- "description": "Named entity: VerticalLine; with a semi-colon",
- "output": [
- [
- "Character",
- "|"
- ]
- ]
- },
- {
- "input": "&VerticalSeparator",
- "description": "Bad named entity: VerticalSeparator without a semi-colon",
- "output": [
- [
- "Character",
- "&VerticalSeparator"
- ]
- ]
- },
- {
- "input": "&VerticalSeparator;",
- "description": "Named entity: VerticalSeparator; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2758"
- ]
- ]
- },
- {
- "input": "&VerticalTilde",
- "description": "Bad named entity: VerticalTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&VerticalTilde"
- ]
- ]
- },
- {
- "input": "&VerticalTilde;",
- "description": "Named entity: VerticalTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2240"
- ]
- ]
- },
- {
- "input": "&VeryThinSpace",
- "description": "Bad named entity: VeryThinSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&VeryThinSpace"
- ]
- ]
- },
- {
- "input": "&VeryThinSpace;",
- "description": "Named entity: VeryThinSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200a"
- ]
- ]
- },
- {
- "input": "&Vfr",
- "description": "Bad named entity: Vfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Vfr"
- ]
- ]
- },
- {
- "input": "&Vfr;",
- "description": "Named entity: Vfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd19"
- ]
- ]
- },
- {
- "input": "&Vopf",
- "description": "Bad named entity: Vopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Vopf"
- ]
- ]
- },
- {
- "input": "&Vopf;",
- "description": "Named entity: Vopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd4d"
- ]
- ]
- },
- {
- "input": "&Vscr",
- "description": "Bad named entity: Vscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Vscr"
- ]
- ]
- },
- {
- "input": "&Vscr;",
- "description": "Named entity: Vscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb1"
- ]
- ]
- },
- {
- "input": "&Vvdash",
- "description": "Bad named entity: Vvdash without a semi-colon",
- "output": [
- [
- "Character",
- "&Vvdash"
- ]
- ]
- },
- {
- "input": "&Vvdash;",
- "description": "Named entity: Vvdash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22aa"
- ]
- ]
- },
- {
- "input": "&Wcirc",
- "description": "Bad named entity: Wcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&Wcirc"
- ]
- ]
- },
- {
- "input": "&Wcirc;",
- "description": "Named entity: Wcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0174"
- ]
- ]
- },
- {
- "input": "&Wedge",
- "description": "Bad named entity: Wedge without a semi-colon",
- "output": [
- [
- "Character",
- "&Wedge"
- ]
- ]
- },
- {
- "input": "&Wedge;",
- "description": "Named entity: Wedge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c0"
- ]
- ]
- },
- {
- "input": "&Wfr",
- "description": "Bad named entity: Wfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Wfr"
- ]
- ]
- },
- {
- "input": "&Wfr;",
- "description": "Named entity: Wfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd1a"
- ]
- ]
- },
- {
- "input": "&Wopf",
- "description": "Bad named entity: Wopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Wopf"
- ]
- ]
- },
- {
- "input": "&Wopf;",
- "description": "Named entity: Wopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd4e"
- ]
- ]
- },
- {
- "input": "&Wscr",
- "description": "Bad named entity: Wscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Wscr"
- ]
- ]
- },
- {
- "input": "&Wscr;",
- "description": "Named entity: Wscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb2"
- ]
- ]
- },
- {
- "input": "&Xfr",
- "description": "Bad named entity: Xfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Xfr"
- ]
- ]
- },
- {
- "input": "&Xfr;",
- "description": "Named entity: Xfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd1b"
- ]
- ]
- },
- {
- "input": "&Xi",
- "description": "Bad named entity: Xi without a semi-colon",
- "output": [
- [
- "Character",
- "&Xi"
- ]
- ]
- },
- {
- "input": "&Xi;",
- "description": "Named entity: Xi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u039e"
- ]
- ]
- },
- {
- "input": "&Xopf",
- "description": "Bad named entity: Xopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Xopf"
- ]
- ]
- },
- {
- "input": "&Xopf;",
- "description": "Named entity: Xopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd4f"
- ]
- ]
- },
- {
- "input": "&Xscr",
- "description": "Bad named entity: Xscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Xscr"
- ]
- ]
- },
- {
- "input": "&Xscr;",
- "description": "Named entity: Xscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb3"
- ]
- ]
- },
- {
- "input": "&YAcy",
- "description": "Bad named entity: YAcy without a semi-colon",
- "output": [
- [
- "Character",
- "&YAcy"
- ]
- ]
- },
- {
- "input": "&YAcy;",
- "description": "Named entity: YAcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u042f"
- ]
- ]
- },
- {
- "input": "&YIcy",
- "description": "Bad named entity: YIcy without a semi-colon",
- "output": [
- [
- "Character",
- "&YIcy"
- ]
- ]
- },
- {
- "input": "&YIcy;",
- "description": "Named entity: YIcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0407"
- ]
- ]
- },
- {
- "input": "&YUcy",
- "description": "Bad named entity: YUcy without a semi-colon",
- "output": [
- [
- "Character",
- "&YUcy"
- ]
- ]
- },
- {
- "input": "&YUcy;",
- "description": "Named entity: YUcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u042e"
- ]
- ]
- },
- {
- "input": "&Yacute",
- "description": "Named entity: Yacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00dd"
- ]
- ]
- },
- {
- "input": "&Yacute;",
- "description": "Named entity: Yacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00dd"
- ]
- ]
- },
- {
- "input": "&Ycirc",
- "description": "Bad named entity: Ycirc without a semi-colon",
- "output": [
- [
- "Character",
- "&Ycirc"
- ]
- ]
- },
- {
- "input": "&Ycirc;",
- "description": "Named entity: Ycirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0176"
- ]
- ]
- },
- {
- "input": "&Ycy",
- "description": "Bad named entity: Ycy without a semi-colon",
- "output": [
- [
- "Character",
- "&Ycy"
- ]
- ]
- },
- {
- "input": "&Ycy;",
- "description": "Named entity: Ycy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u042b"
- ]
- ]
- },
- {
- "input": "&Yfr",
- "description": "Bad named entity: Yfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Yfr"
- ]
- ]
- },
- {
- "input": "&Yfr;",
- "description": "Named entity: Yfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd1c"
- ]
- ]
- },
- {
- "input": "&Yopf",
- "description": "Bad named entity: Yopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Yopf"
- ]
- ]
- },
- {
- "input": "&Yopf;",
- "description": "Named entity: Yopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd50"
- ]
- ]
- },
- {
- "input": "&Yscr",
- "description": "Bad named entity: Yscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Yscr"
- ]
- ]
- },
- {
- "input": "&Yscr;",
- "description": "Named entity: Yscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb4"
- ]
- ]
- },
- {
- "input": "&Yuml",
- "description": "Bad named entity: Yuml without a semi-colon",
- "output": [
- [
- "Character",
- "&Yuml"
- ]
- ]
- },
- {
- "input": "&Yuml;",
- "description": "Named entity: Yuml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0178"
- ]
- ]
- },
- {
- "input": "&ZHcy",
- "description": "Bad named entity: ZHcy without a semi-colon",
- "output": [
- [
- "Character",
- "&ZHcy"
- ]
- ]
- },
- {
- "input": "&ZHcy;",
- "description": "Named entity: ZHcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0416"
- ]
- ]
- },
- {
- "input": "&Zacute",
- "description": "Bad named entity: Zacute without a semi-colon",
- "output": [
- [
- "Character",
- "&Zacute"
- ]
- ]
- },
- {
- "input": "&Zacute;",
- "description": "Named entity: Zacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0179"
- ]
- ]
- },
- {
- "input": "&Zcaron",
- "description": "Bad named entity: Zcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Zcaron"
- ]
- ]
- },
- {
- "input": "&Zcaron;",
- "description": "Named entity: Zcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u017d"
- ]
- ]
- },
- {
- "input": "&Zcy",
- "description": "Bad named entity: Zcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Zcy"
- ]
- ]
- },
- {
- "input": "&Zcy;",
- "description": "Named entity: Zcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0417"
- ]
- ]
- },
- {
- "input": "&Zdot",
- "description": "Bad named entity: Zdot without a semi-colon",
- "output": [
- [
- "Character",
- "&Zdot"
- ]
- ]
- },
- {
- "input": "&Zdot;",
- "description": "Named entity: Zdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u017b"
- ]
- ]
- },
- {
- "input": "&ZeroWidthSpace",
- "description": "Bad named entity: ZeroWidthSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&ZeroWidthSpace"
- ]
- ]
- },
- {
- "input": "&ZeroWidthSpace;",
- "description": "Named entity: ZeroWidthSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200b"
- ]
- ]
- },
- {
- "input": "&Zeta",
- "description": "Bad named entity: Zeta without a semi-colon",
- "output": [
- [
- "Character",
- "&Zeta"
- ]
- ]
- },
- {
- "input": "&Zeta;",
- "description": "Named entity: Zeta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0396"
- ]
- ]
- },
- {
- "input": "&Zfr",
- "description": "Bad named entity: Zfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Zfr"
- ]
- ]
- },
- {
- "input": "&Zfr;",
- "description": "Named entity: Zfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2128"
- ]
- ]
- },
- {
- "input": "&Zopf",
- "description": "Bad named entity: Zopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Zopf"
- ]
- ]
- },
- {
- "input": "&Zopf;",
- "description": "Named entity: Zopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2124"
- ]
- ]
- },
- {
- "input": "&Zscr",
- "description": "Bad named entity: Zscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Zscr"
- ]
- ]
- },
- {
- "input": "&Zscr;",
- "description": "Named entity: Zscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb5"
- ]
- ]
- },
- {
- "input": "&aacute",
- "description": "Named entity: aacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e1"
- ]
- ]
- },
- {
- "input": "&aacute;",
- "description": "Named entity: aacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e1"
- ]
- ]
- },
- {
- "input": "&abreve",
- "description": "Bad named entity: abreve without a semi-colon",
- "output": [
- [
- "Character",
- "&abreve"
- ]
- ]
- },
- {
- "input": "&abreve;",
- "description": "Named entity: abreve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0103"
- ]
- ]
- },
- {
- "input": "&ac",
- "description": "Bad named entity: ac without a semi-colon",
- "output": [
- [
- "Character",
- "&ac"
- ]
- ]
- },
- {
- "input": "&ac;",
- "description": "Named entity: ac; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223e"
- ]
- ]
- },
- {
- "input": "&acE",
- "description": "Bad named entity: acE without a semi-colon",
- "output": [
- [
- "Character",
- "&acE"
- ]
- ]
- },
- {
- "input": "&acE;",
- "description": "Named entity: acE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223e\u0333"
- ]
- ]
- },
- {
- "input": "&acd",
- "description": "Bad named entity: acd without a semi-colon",
- "output": [
- [
- "Character",
- "&acd"
- ]
- ]
- },
- {
- "input": "&acd;",
- "description": "Named entity: acd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223f"
- ]
- ]
- },
- {
- "input": "&acirc",
- "description": "Named entity: acirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e2"
- ]
- ]
- },
- {
- "input": "&acirc;",
- "description": "Named entity: acirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e2"
- ]
- ]
- },
- {
- "input": "&acute",
- "description": "Named entity: acute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b4"
- ]
- ]
- },
- {
- "input": "&acute;",
- "description": "Named entity: acute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b4"
- ]
- ]
- },
- {
- "input": "&acy",
- "description": "Bad named entity: acy without a semi-colon",
- "output": [
- [
- "Character",
- "&acy"
- ]
- ]
- },
- {
- "input": "&acy;",
- "description": "Named entity: acy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0430"
- ]
- ]
- },
- {
- "input": "&aelig",
- "description": "Named entity: aelig without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e6"
- ]
- ]
- },
- {
- "input": "&aelig;",
- "description": "Named entity: aelig; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e6"
- ]
- ]
- },
- {
- "input": "&af",
- "description": "Bad named entity: af without a semi-colon",
- "output": [
- [
- "Character",
- "&af"
- ]
- ]
- },
- {
- "input": "&af;",
- "description": "Named entity: af; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2061"
- ]
- ]
- },
- {
- "input": "&afr",
- "description": "Bad named entity: afr without a semi-colon",
- "output": [
- [
- "Character",
- "&afr"
- ]
- ]
- },
- {
- "input": "&afr;",
- "description": "Named entity: afr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd1e"
- ]
- ]
- },
- {
- "input": "&agrave",
- "description": "Named entity: agrave without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e0"
- ]
- ]
- },
- {
- "input": "&agrave;",
- "description": "Named entity: agrave; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e0"
- ]
- ]
- },
- {
- "input": "&alefsym",
- "description": "Bad named entity: alefsym without a semi-colon",
- "output": [
- [
- "Character",
- "&alefsym"
- ]
- ]
- },
- {
- "input": "&alefsym;",
- "description": "Named entity: alefsym; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2135"
- ]
- ]
- },
- {
- "input": "&aleph",
- "description": "Bad named entity: aleph without a semi-colon",
- "output": [
- [
- "Character",
- "&aleph"
- ]
- ]
- },
- {
- "input": "&aleph;",
- "description": "Named entity: aleph; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2135"
- ]
- ]
- },
- {
- "input": "&alpha",
- "description": "Bad named entity: alpha without a semi-colon",
- "output": [
- [
- "Character",
- "&alpha"
- ]
- ]
- },
- {
- "input": "&alpha;",
- "description": "Named entity: alpha; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b1"
- ]
- ]
- },
- {
- "input": "&amacr",
- "description": "Bad named entity: amacr without a semi-colon",
- "output": [
- [
- "Character",
- "&amacr"
- ]
- ]
- },
- {
- "input": "&amacr;",
- "description": "Named entity: amacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0101"
- ]
- ]
- },
- {
- "input": "&amalg",
- "description": "Bad named entity: amalg without a semi-colon",
- "output": [
- [
- "Character",
- "&amalg"
- ]
- ]
- },
- {
- "input": "&amalg;",
- "description": "Named entity: amalg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a3f"
- ]
- ]
- },
- {
- "input": "&amp",
- "description": "Named entity: amp without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "&"
- ]
- ]
- },
- {
- "input": "&amp;",
- "description": "Named entity: amp; with a semi-colon",
- "output": [
- [
- "Character",
- "&"
- ]
- ]
- },
- {
- "input": "&and",
- "description": "Bad named entity: and without a semi-colon",
- "output": [
- [
- "Character",
- "&and"
- ]
- ]
- },
- {
- "input": "&and;",
- "description": "Named entity: and; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2227"
- ]
- ]
- },
- {
- "input": "&andand",
- "description": "Bad named entity: andand without a semi-colon",
- "output": [
- [
- "Character",
- "&andand"
- ]
- ]
- },
- {
- "input": "&andand;",
- "description": "Named entity: andand; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a55"
- ]
- ]
- },
- {
- "input": "&andd",
- "description": "Bad named entity: andd without a semi-colon",
- "output": [
- [
- "Character",
- "&andd"
- ]
- ]
- },
- {
- "input": "&andd;",
- "description": "Named entity: andd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a5c"
- ]
- ]
- },
- {
- "input": "&andslope",
- "description": "Bad named entity: andslope without a semi-colon",
- "output": [
- [
- "Character",
- "&andslope"
- ]
- ]
- },
- {
- "input": "&andslope;",
- "description": "Named entity: andslope; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a58"
- ]
- ]
- },
- {
- "input": "&andv",
- "description": "Bad named entity: andv without a semi-colon",
- "output": [
- [
- "Character",
- "&andv"
- ]
- ]
- },
- {
- "input": "&andv;",
- "description": "Named entity: andv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a5a"
- ]
- ]
- },
- {
- "input": "&ang",
- "description": "Bad named entity: ang without a semi-colon",
- "output": [
- [
- "Character",
- "&ang"
- ]
- ]
- },
- {
- "input": "&ang;",
- "description": "Named entity: ang; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2220"
- ]
- ]
- },
- {
- "input": "&ange",
- "description": "Bad named entity: ange without a semi-colon",
- "output": [
- [
- "Character",
- "&ange"
- ]
- ]
- },
- {
- "input": "&ange;",
- "description": "Named entity: ange; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29a4"
- ]
- ]
- },
- {
- "input": "&angle",
- "description": "Bad named entity: angle without a semi-colon",
- "output": [
- [
- "Character",
- "&angle"
- ]
- ]
- },
- {
- "input": "&angle;",
- "description": "Named entity: angle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2220"
- ]
- ]
- },
- {
- "input": "&angmsd",
- "description": "Bad named entity: angmsd without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsd"
- ]
- ]
- },
- {
- "input": "&angmsd;",
- "description": "Named entity: angmsd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2221"
- ]
- ]
- },
- {
- "input": "&angmsdaa",
- "description": "Bad named entity: angmsdaa without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsdaa"
- ]
- ]
- },
- {
- "input": "&angmsdaa;",
- "description": "Named entity: angmsdaa; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29a8"
- ]
- ]
- },
- {
- "input": "&angmsdab",
- "description": "Bad named entity: angmsdab without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsdab"
- ]
- ]
- },
- {
- "input": "&angmsdab;",
- "description": "Named entity: angmsdab; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29a9"
- ]
- ]
- },
- {
- "input": "&angmsdac",
- "description": "Bad named entity: angmsdac without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsdac"
- ]
- ]
- },
- {
- "input": "&angmsdac;",
- "description": "Named entity: angmsdac; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29aa"
- ]
- ]
- },
- {
- "input": "&angmsdad",
- "description": "Bad named entity: angmsdad without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsdad"
- ]
- ]
- },
- {
- "input": "&angmsdad;",
- "description": "Named entity: angmsdad; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29ab"
- ]
- ]
- },
- {
- "input": "&angmsdae",
- "description": "Bad named entity: angmsdae without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsdae"
- ]
- ]
- },
- {
- "input": "&angmsdae;",
- "description": "Named entity: angmsdae; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29ac"
- ]
- ]
- },
- {
- "input": "&angmsdaf",
- "description": "Bad named entity: angmsdaf without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsdaf"
- ]
- ]
- },
- {
- "input": "&angmsdaf;",
- "description": "Named entity: angmsdaf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29ad"
- ]
- ]
- },
- {
- "input": "&angmsdag",
- "description": "Bad named entity: angmsdag without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsdag"
- ]
- ]
- },
- {
- "input": "&angmsdag;",
- "description": "Named entity: angmsdag; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29ae"
- ]
- ]
- },
- {
- "input": "&angmsdah",
- "description": "Bad named entity: angmsdah without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsdah"
- ]
- ]
- },
- {
- "input": "&angmsdah;",
- "description": "Named entity: angmsdah; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29af"
- ]
- ]
- },
- {
- "input": "&angrt",
- "description": "Bad named entity: angrt without a semi-colon",
- "output": [
- [
- "Character",
- "&angrt"
- ]
- ]
- },
- {
- "input": "&angrt;",
- "description": "Named entity: angrt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221f"
- ]
- ]
- },
- {
- "input": "&angrtvb",
- "description": "Bad named entity: angrtvb without a semi-colon",
- "output": [
- [
- "Character",
- "&angrtvb"
- ]
- ]
- },
- {
- "input": "&angrtvb;",
- "description": "Named entity: angrtvb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22be"
- ]
- ]
- },
- {
- "input": "&angrtvbd",
- "description": "Bad named entity: angrtvbd without a semi-colon",
- "output": [
- [
- "Character",
- "&angrtvbd"
- ]
- ]
- },
- {
- "input": "&angrtvbd;",
- "description": "Named entity: angrtvbd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u299d"
- ]
- ]
- },
- {
- "input": "&angsph",
- "description": "Bad named entity: angsph without a semi-colon",
- "output": [
- [
- "Character",
- "&angsph"
- ]
- ]
- },
- {
- "input": "&angsph;",
- "description": "Named entity: angsph; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2222"
- ]
- ]
- },
- {
- "input": "&angst",
- "description": "Bad named entity: angst without a semi-colon",
- "output": [
- [
- "Character",
- "&angst"
- ]
- ]
- },
- {
- "input": "&angst;",
- "description": "Named entity: angst; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c5"
- ]
- ]
- },
- {
- "input": "&angzarr",
- "description": "Bad named entity: angzarr without a semi-colon",
- "output": [
- [
- "Character",
- "&angzarr"
- ]
- ]
- },
- {
- "input": "&angzarr;",
- "description": "Named entity: angzarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u237c"
- ]
- ]
- },
- {
- "input": "&aogon",
- "description": "Bad named entity: aogon without a semi-colon",
- "output": [
- [
- "Character",
- "&aogon"
- ]
- ]
- },
- {
- "input": "&aogon;",
- "description": "Named entity: aogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0105"
- ]
- ]
- },
- {
- "input": "&aopf",
- "description": "Bad named entity: aopf without a semi-colon",
- "output": [
- [
- "Character",
- "&aopf"
- ]
- ]
- },
- {
- "input": "&aopf;",
- "description": "Named entity: aopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd52"
- ]
- ]
- },
- {
- "input": "&ap",
- "description": "Bad named entity: ap without a semi-colon",
- "output": [
- [
- "Character",
- "&ap"
- ]
- ]
- },
- {
- "input": "&ap;",
- "description": "Named entity: ap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2248"
- ]
- ]
- },
- {
- "input": "&apE",
- "description": "Bad named entity: apE without a semi-colon",
- "output": [
- [
- "Character",
- "&apE"
- ]
- ]
- },
- {
- "input": "&apE;",
- "description": "Named entity: apE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a70"
- ]
- ]
- },
- {
- "input": "&apacir",
- "description": "Bad named entity: apacir without a semi-colon",
- "output": [
- [
- "Character",
- "&apacir"
- ]
- ]
- },
- {
- "input": "&apacir;",
- "description": "Named entity: apacir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a6f"
- ]
- ]
- },
- {
- "input": "&ape",
- "description": "Bad named entity: ape without a semi-colon",
- "output": [
- [
- "Character",
- "&ape"
- ]
- ]
- },
- {
- "input": "&ape;",
- "description": "Named entity: ape; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224a"
- ]
- ]
- },
- {
- "input": "&apid",
- "description": "Bad named entity: apid without a semi-colon",
- "output": [
- [
- "Character",
- "&apid"
- ]
- ]
- },
- {
- "input": "&apid;",
- "description": "Named entity: apid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224b"
- ]
- ]
- },
- {
- "input": "&apos",
- "description": "Bad named entity: apos without a semi-colon",
- "output": [
- [
- "Character",
- "&apos"
- ]
- ]
- },
- {
- "input": "&apos;",
- "description": "Named entity: apos; with a semi-colon",
- "output": [
- [
- "Character",
- "'"
- ]
- ]
- },
- {
- "input": "&approx",
- "description": "Bad named entity: approx without a semi-colon",
- "output": [
- [
- "Character",
- "&approx"
- ]
- ]
- },
- {
- "input": "&approx;",
- "description": "Named entity: approx; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2248"
- ]
- ]
- },
- {
- "input": "&approxeq",
- "description": "Bad named entity: approxeq without a semi-colon",
- "output": [
- [
- "Character",
- "&approxeq"
- ]
- ]
- },
- {
- "input": "&approxeq;",
- "description": "Named entity: approxeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224a"
- ]
- ]
- },
- {
- "input": "&aring",
- "description": "Named entity: aring without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e5"
- ]
- ]
- },
- {
- "input": "&aring;",
- "description": "Named entity: aring; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e5"
- ]
- ]
- },
- {
- "input": "&ascr",
- "description": "Bad named entity: ascr without a semi-colon",
- "output": [
- [
- "Character",
- "&ascr"
- ]
- ]
- },
- {
- "input": "&ascr;",
- "description": "Named entity: ascr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb6"
- ]
- ]
- },
- {
- "input": "&ast",
- "description": "Bad named entity: ast without a semi-colon",
- "output": [
- [
- "Character",
- "&ast"
- ]
- ]
- },
- {
- "input": "&ast;",
- "description": "Named entity: ast; with a semi-colon",
- "output": [
- [
- "Character",
- "*"
- ]
- ]
- },
- {
- "input": "&asymp",
- "description": "Bad named entity: asymp without a semi-colon",
- "output": [
- [
- "Character",
- "&asymp"
- ]
- ]
- },
- {
- "input": "&asymp;",
- "description": "Named entity: asymp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2248"
- ]
- ]
- },
- {
- "input": "&asympeq",
- "description": "Bad named entity: asympeq without a semi-colon",
- "output": [
- [
- "Character",
- "&asympeq"
- ]
- ]
- },
- {
- "input": "&asympeq;",
- "description": "Named entity: asympeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224d"
- ]
- ]
- },
- {
- "input": "&atilde",
- "description": "Named entity: atilde without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e3"
- ]
- ]
- },
- {
- "input": "&atilde;",
- "description": "Named entity: atilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e3"
- ]
- ]
- },
- {
- "input": "&auml",
- "description": "Named entity: auml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e4"
- ]
- ]
- },
- {
- "input": "&auml;",
- "description": "Named entity: auml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e4"
- ]
- ]
- },
- {
- "input": "&awconint",
- "description": "Bad named entity: awconint without a semi-colon",
- "output": [
- [
- "Character",
- "&awconint"
- ]
- ]
- },
- {
- "input": "&awconint;",
- "description": "Named entity: awconint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2233"
- ]
- ]
- },
- {
- "input": "&awint",
- "description": "Bad named entity: awint without a semi-colon",
- "output": [
- [
- "Character",
- "&awint"
- ]
- ]
- },
- {
- "input": "&awint;",
- "description": "Named entity: awint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a11"
- ]
- ]
- },
- {
- "input": "&bNot",
- "description": "Bad named entity: bNot without a semi-colon",
- "output": [
- [
- "Character",
- "&bNot"
- ]
- ]
- },
- {
- "input": "&bNot;",
- "description": "Named entity: bNot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aed"
- ]
- ]
- },
- {
- "input": "&backcong",
- "description": "Bad named entity: backcong without a semi-colon",
- "output": [
- [
- "Character",
- "&backcong"
- ]
- ]
- },
- {
- "input": "&backcong;",
- "description": "Named entity: backcong; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224c"
- ]
- ]
- },
- {
- "input": "&backepsilon",
- "description": "Bad named entity: backepsilon without a semi-colon",
- "output": [
- [
- "Character",
- "&backepsilon"
- ]
- ]
- },
- {
- "input": "&backepsilon;",
- "description": "Named entity: backepsilon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f6"
- ]
- ]
- },
- {
- "input": "&backprime",
- "description": "Bad named entity: backprime without a semi-colon",
- "output": [
- [
- "Character",
- "&backprime"
- ]
- ]
- },
- {
- "input": "&backprime;",
- "description": "Named entity: backprime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2035"
- ]
- ]
- },
- {
- "input": "&backsim",
- "description": "Bad named entity: backsim without a semi-colon",
- "output": [
- [
- "Character",
- "&backsim"
- ]
- ]
- },
- {
- "input": "&backsim;",
- "description": "Named entity: backsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223d"
- ]
- ]
- },
- {
- "input": "&backsimeq",
- "description": "Bad named entity: backsimeq without a semi-colon",
- "output": [
- [
- "Character",
- "&backsimeq"
- ]
- ]
- },
- {
- "input": "&backsimeq;",
- "description": "Named entity: backsimeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22cd"
- ]
- ]
- },
- {
- "input": "&barvee",
- "description": "Bad named entity: barvee without a semi-colon",
- "output": [
- [
- "Character",
- "&barvee"
- ]
- ]
- },
- {
- "input": "&barvee;",
- "description": "Named entity: barvee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22bd"
- ]
- ]
- },
- {
- "input": "&barwed",
- "description": "Bad named entity: barwed without a semi-colon",
- "output": [
- [
- "Character",
- "&barwed"
- ]
- ]
- },
- {
- "input": "&barwed;",
- "description": "Named entity: barwed; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2305"
- ]
- ]
- },
- {
- "input": "&barwedge",
- "description": "Bad named entity: barwedge without a semi-colon",
- "output": [
- [
- "Character",
- "&barwedge"
- ]
- ]
- },
- {
- "input": "&barwedge;",
- "description": "Named entity: barwedge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2305"
- ]
- ]
- },
- {
- "input": "&bbrk",
- "description": "Bad named entity: bbrk without a semi-colon",
- "output": [
- [
- "Character",
- "&bbrk"
- ]
- ]
- },
- {
- "input": "&bbrk;",
- "description": "Named entity: bbrk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b5"
- ]
- ]
- },
- {
- "input": "&bbrktbrk",
- "description": "Bad named entity: bbrktbrk without a semi-colon",
- "output": [
- [
- "Character",
- "&bbrktbrk"
- ]
- ]
- },
- {
- "input": "&bbrktbrk;",
- "description": "Named entity: bbrktbrk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b6"
- ]
- ]
- },
- {
- "input": "&bcong",
- "description": "Bad named entity: bcong without a semi-colon",
- "output": [
- [
- "Character",
- "&bcong"
- ]
- ]
- },
- {
- "input": "&bcong;",
- "description": "Named entity: bcong; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224c"
- ]
- ]
- },
- {
- "input": "&bcy",
- "description": "Bad named entity: bcy without a semi-colon",
- "output": [
- [
- "Character",
- "&bcy"
- ]
- ]
- },
- {
- "input": "&bcy;",
- "description": "Named entity: bcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0431"
- ]
- ]
- },
- {
- "input": "&bdquo",
- "description": "Bad named entity: bdquo without a semi-colon",
- "output": [
- [
- "Character",
- "&bdquo"
- ]
- ]
- },
- {
- "input": "&bdquo;",
- "description": "Named entity: bdquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201e"
- ]
- ]
- },
- {
- "input": "&becaus",
- "description": "Bad named entity: becaus without a semi-colon",
- "output": [
- [
- "Character",
- "&becaus"
- ]
- ]
- },
- {
- "input": "&becaus;",
- "description": "Named entity: becaus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2235"
- ]
- ]
- },
- {
- "input": "&because",
- "description": "Bad named entity: because without a semi-colon",
- "output": [
- [
- "Character",
- "&because"
- ]
- ]
- },
- {
- "input": "&because;",
- "description": "Named entity: because; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2235"
- ]
- ]
- },
- {
- "input": "&bemptyv",
- "description": "Bad named entity: bemptyv without a semi-colon",
- "output": [
- [
- "Character",
- "&bemptyv"
- ]
- ]
- },
- {
- "input": "&bemptyv;",
- "description": "Named entity: bemptyv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b0"
- ]
- ]
- },
- {
- "input": "&bepsi",
- "description": "Bad named entity: bepsi without a semi-colon",
- "output": [
- [
- "Character",
- "&bepsi"
- ]
- ]
- },
- {
- "input": "&bepsi;",
- "description": "Named entity: bepsi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f6"
- ]
- ]
- },
- {
- "input": "&bernou",
- "description": "Bad named entity: bernou without a semi-colon",
- "output": [
- [
- "Character",
- "&bernou"
- ]
- ]
- },
- {
- "input": "&bernou;",
- "description": "Named entity: bernou; with a semi-colon",
- "output": [
- [
- "Character",
- "\u212c"
- ]
- ]
- },
- {
- "input": "&beta",
- "description": "Bad named entity: beta without a semi-colon",
- "output": [
- [
- "Character",
- "&beta"
- ]
- ]
- },
- {
- "input": "&beta;",
- "description": "Named entity: beta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b2"
- ]
- ]
- },
- {
- "input": "&beth",
- "description": "Bad named entity: beth without a semi-colon",
- "output": [
- [
- "Character",
- "&beth"
- ]
- ]
- },
- {
- "input": "&beth;",
- "description": "Named entity: beth; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2136"
- ]
- ]
- },
- {
- "input": "&between",
- "description": "Bad named entity: between without a semi-colon",
- "output": [
- [
- "Character",
- "&between"
- ]
- ]
- },
- {
- "input": "&between;",
- "description": "Named entity: between; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226c"
- ]
- ]
- },
- {
- "input": "&bfr",
- "description": "Bad named entity: bfr without a semi-colon",
- "output": [
- [
- "Character",
- "&bfr"
- ]
- ]
- },
- {
- "input": "&bfr;",
- "description": "Named entity: bfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd1f"
- ]
- ]
- },
- {
- "input": "&bigcap",
- "description": "Bad named entity: bigcap without a semi-colon",
- "output": [
- [
- "Character",
- "&bigcap"
- ]
- ]
- },
- {
- "input": "&bigcap;",
- "description": "Named entity: bigcap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c2"
- ]
- ]
- },
- {
- "input": "&bigcirc",
- "description": "Bad named entity: bigcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&bigcirc"
- ]
- ]
- },
- {
- "input": "&bigcirc;",
- "description": "Named entity: bigcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25ef"
- ]
- ]
- },
- {
- "input": "&bigcup",
- "description": "Bad named entity: bigcup without a semi-colon",
- "output": [
- [
- "Character",
- "&bigcup"
- ]
- ]
- },
- {
- "input": "&bigcup;",
- "description": "Named entity: bigcup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c3"
- ]
- ]
- },
- {
- "input": "&bigodot",
- "description": "Bad named entity: bigodot without a semi-colon",
- "output": [
- [
- "Character",
- "&bigodot"
- ]
- ]
- },
- {
- "input": "&bigodot;",
- "description": "Named entity: bigodot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a00"
- ]
- ]
- },
- {
- "input": "&bigoplus",
- "description": "Bad named entity: bigoplus without a semi-colon",
- "output": [
- [
- "Character",
- "&bigoplus"
- ]
- ]
- },
- {
- "input": "&bigoplus;",
- "description": "Named entity: bigoplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a01"
- ]
- ]
- },
- {
- "input": "&bigotimes",
- "description": "Bad named entity: bigotimes without a semi-colon",
- "output": [
- [
- "Character",
- "&bigotimes"
- ]
- ]
- },
- {
- "input": "&bigotimes;",
- "description": "Named entity: bigotimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a02"
- ]
- ]
- },
- {
- "input": "&bigsqcup",
- "description": "Bad named entity: bigsqcup without a semi-colon",
- "output": [
- [
- "Character",
- "&bigsqcup"
- ]
- ]
- },
- {
- "input": "&bigsqcup;",
- "description": "Named entity: bigsqcup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a06"
- ]
- ]
- },
- {
- "input": "&bigstar",
- "description": "Bad named entity: bigstar without a semi-colon",
- "output": [
- [
- "Character",
- "&bigstar"
- ]
- ]
- },
- {
- "input": "&bigstar;",
- "description": "Named entity: bigstar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2605"
- ]
- ]
- },
- {
- "input": "&bigtriangledown",
- "description": "Bad named entity: bigtriangledown without a semi-colon",
- "output": [
- [
- "Character",
- "&bigtriangledown"
- ]
- ]
- },
- {
- "input": "&bigtriangledown;",
- "description": "Named entity: bigtriangledown; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25bd"
- ]
- ]
- },
- {
- "input": "&bigtriangleup",
- "description": "Bad named entity: bigtriangleup without a semi-colon",
- "output": [
- [
- "Character",
- "&bigtriangleup"
- ]
- ]
- },
- {
- "input": "&bigtriangleup;",
- "description": "Named entity: bigtriangleup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b3"
- ]
- ]
- },
- {
- "input": "&biguplus",
- "description": "Bad named entity: biguplus without a semi-colon",
- "output": [
- [
- "Character",
- "&biguplus"
- ]
- ]
- },
- {
- "input": "&biguplus;",
- "description": "Named entity: biguplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a04"
- ]
- ]
- },
- {
- "input": "&bigvee",
- "description": "Bad named entity: bigvee without a semi-colon",
- "output": [
- [
- "Character",
- "&bigvee"
- ]
- ]
- },
- {
- "input": "&bigvee;",
- "description": "Named entity: bigvee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c1"
- ]
- ]
- },
- {
- "input": "&bigwedge",
- "description": "Bad named entity: bigwedge without a semi-colon",
- "output": [
- [
- "Character",
- "&bigwedge"
- ]
- ]
- },
- {
- "input": "&bigwedge;",
- "description": "Named entity: bigwedge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c0"
- ]
- ]
- },
- {
- "input": "&bkarow",
- "description": "Bad named entity: bkarow without a semi-colon",
- "output": [
- [
- "Character",
- "&bkarow"
- ]
- ]
- },
- {
- "input": "&bkarow;",
- "description": "Named entity: bkarow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u290d"
- ]
- ]
- },
- {
- "input": "&blacklozenge",
- "description": "Bad named entity: blacklozenge without a semi-colon",
- "output": [
- [
- "Character",
- "&blacklozenge"
- ]
- ]
- },
- {
- "input": "&blacklozenge;",
- "description": "Named entity: blacklozenge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29eb"
- ]
- ]
- },
- {
- "input": "&blacksquare",
- "description": "Bad named entity: blacksquare without a semi-colon",
- "output": [
- [
- "Character",
- "&blacksquare"
- ]
- ]
- },
- {
- "input": "&blacksquare;",
- "description": "Named entity: blacksquare; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25aa"
- ]
- ]
- },
- {
- "input": "&blacktriangle",
- "description": "Bad named entity: blacktriangle without a semi-colon",
- "output": [
- [
- "Character",
- "&blacktriangle"
- ]
- ]
- },
- {
- "input": "&blacktriangle;",
- "description": "Named entity: blacktriangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b4"
- ]
- ]
- },
- {
- "input": "&blacktriangledown",
- "description": "Bad named entity: blacktriangledown without a semi-colon",
- "output": [
- [
- "Character",
- "&blacktriangledown"
- ]
- ]
- },
- {
- "input": "&blacktriangledown;",
- "description": "Named entity: blacktriangledown; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25be"
- ]
- ]
- },
- {
- "input": "&blacktriangleleft",
- "description": "Bad named entity: blacktriangleleft without a semi-colon",
- "output": [
- [
- "Character",
- "&blacktriangleleft"
- ]
- ]
- },
- {
- "input": "&blacktriangleleft;",
- "description": "Named entity: blacktriangleleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25c2"
- ]
- ]
- },
- {
- "input": "&blacktriangleright",
- "description": "Bad named entity: blacktriangleright without a semi-colon",
- "output": [
- [
- "Character",
- "&blacktriangleright"
- ]
- ]
- },
- {
- "input": "&blacktriangleright;",
- "description": "Named entity: blacktriangleright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b8"
- ]
- ]
- },
- {
- "input": "&blank",
- "description": "Bad named entity: blank without a semi-colon",
- "output": [
- [
- "Character",
- "&blank"
- ]
- ]
- },
- {
- "input": "&blank;",
- "description": "Named entity: blank; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2423"
- ]
- ]
- },
- {
- "input": "&blk12",
- "description": "Bad named entity: blk12 without a semi-colon",
- "output": [
- [
- "Character",
- "&blk12"
- ]
- ]
- },
- {
- "input": "&blk12;",
- "description": "Named entity: blk12; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2592"
- ]
- ]
- },
- {
- "input": "&blk14",
- "description": "Bad named entity: blk14 without a semi-colon",
- "output": [
- [
- "Character",
- "&blk14"
- ]
- ]
- },
- {
- "input": "&blk14;",
- "description": "Named entity: blk14; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2591"
- ]
- ]
- },
- {
- "input": "&blk34",
- "description": "Bad named entity: blk34 without a semi-colon",
- "output": [
- [
- "Character",
- "&blk34"
- ]
- ]
- },
- {
- "input": "&blk34;",
- "description": "Named entity: blk34; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2593"
- ]
- ]
- },
- {
- "input": "&block",
- "description": "Bad named entity: block without a semi-colon",
- "output": [
- [
- "Character",
- "&block"
- ]
- ]
- },
- {
- "input": "&block;",
- "description": "Named entity: block; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2588"
- ]
- ]
- },
- {
- "input": "&bne",
- "description": "Bad named entity: bne without a semi-colon",
- "output": [
- [
- "Character",
- "&bne"
- ]
- ]
- },
- {
- "input": "&bne;",
- "description": "Named entity: bne; with a semi-colon",
- "output": [
- [
- "Character",
- "=\u20e5"
- ]
- ]
- },
- {
- "input": "&bnequiv",
- "description": "Bad named entity: bnequiv without a semi-colon",
- "output": [
- [
- "Character",
- "&bnequiv"
- ]
- ]
- },
- {
- "input": "&bnequiv;",
- "description": "Named entity: bnequiv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2261\u20e5"
- ]
- ]
- },
- {
- "input": "&bnot",
- "description": "Bad named entity: bnot without a semi-colon",
- "output": [
- [
- "Character",
- "&bnot"
- ]
- ]
- },
- {
- "input": "&bnot;",
- "description": "Named entity: bnot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2310"
- ]
- ]
- },
- {
- "input": "&bopf",
- "description": "Bad named entity: bopf without a semi-colon",
- "output": [
- [
- "Character",
- "&bopf"
- ]
- ]
- },
- {
- "input": "&bopf;",
- "description": "Named entity: bopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd53"
- ]
- ]
- },
- {
- "input": "&bot",
- "description": "Bad named entity: bot without a semi-colon",
- "output": [
- [
- "Character",
- "&bot"
- ]
- ]
- },
- {
- "input": "&bot;",
- "description": "Named entity: bot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a5"
- ]
- ]
- },
- {
- "input": "&bottom",
- "description": "Bad named entity: bottom without a semi-colon",
- "output": [
- [
- "Character",
- "&bottom"
- ]
- ]
- },
- {
- "input": "&bottom;",
- "description": "Named entity: bottom; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a5"
- ]
- ]
- },
- {
- "input": "&bowtie",
- "description": "Bad named entity: bowtie without a semi-colon",
- "output": [
- [
- "Character",
- "&bowtie"
- ]
- ]
- },
- {
- "input": "&bowtie;",
- "description": "Named entity: bowtie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c8"
- ]
- ]
- },
- {
- "input": "&boxDL",
- "description": "Bad named entity: boxDL without a semi-colon",
- "output": [
- [
- "Character",
- "&boxDL"
- ]
- ]
- },
- {
- "input": "&boxDL;",
- "description": "Named entity: boxDL; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2557"
- ]
- ]
- },
- {
- "input": "&boxDR",
- "description": "Bad named entity: boxDR without a semi-colon",
- "output": [
- [
- "Character",
- "&boxDR"
- ]
- ]
- },
- {
- "input": "&boxDR;",
- "description": "Named entity: boxDR; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2554"
- ]
- ]
- },
- {
- "input": "&boxDl",
- "description": "Bad named entity: boxDl without a semi-colon",
- "output": [
- [
- "Character",
- "&boxDl"
- ]
- ]
- },
- {
- "input": "&boxDl;",
- "description": "Named entity: boxDl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2556"
- ]
- ]
- },
- {
- "input": "&boxDr",
- "description": "Bad named entity: boxDr without a semi-colon",
- "output": [
- [
- "Character",
- "&boxDr"
- ]
- ]
- },
- {
- "input": "&boxDr;",
- "description": "Named entity: boxDr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2553"
- ]
- ]
- },
- {
- "input": "&boxH",
- "description": "Bad named entity: boxH without a semi-colon",
- "output": [
- [
- "Character",
- "&boxH"
- ]
- ]
- },
- {
- "input": "&boxH;",
- "description": "Named entity: boxH; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2550"
- ]
- ]
- },
- {
- "input": "&boxHD",
- "description": "Bad named entity: boxHD without a semi-colon",
- "output": [
- [
- "Character",
- "&boxHD"
- ]
- ]
- },
- {
- "input": "&boxHD;",
- "description": "Named entity: boxHD; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2566"
- ]
- ]
- },
- {
- "input": "&boxHU",
- "description": "Bad named entity: boxHU without a semi-colon",
- "output": [
- [
- "Character",
- "&boxHU"
- ]
- ]
- },
- {
- "input": "&boxHU;",
- "description": "Named entity: boxHU; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2569"
- ]
- ]
- },
- {
- "input": "&boxHd",
- "description": "Bad named entity: boxHd without a semi-colon",
- "output": [
- [
- "Character",
- "&boxHd"
- ]
- ]
- },
- {
- "input": "&boxHd;",
- "description": "Named entity: boxHd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2564"
- ]
- ]
- },
- {
- "input": "&boxHu",
- "description": "Bad named entity: boxHu without a semi-colon",
- "output": [
- [
- "Character",
- "&boxHu"
- ]
- ]
- },
- {
- "input": "&boxHu;",
- "description": "Named entity: boxHu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2567"
- ]
- ]
- },
- {
- "input": "&boxUL",
- "description": "Bad named entity: boxUL without a semi-colon",
- "output": [
- [
- "Character",
- "&boxUL"
- ]
- ]
- },
- {
- "input": "&boxUL;",
- "description": "Named entity: boxUL; with a semi-colon",
- "output": [
- [
- "Character",
- "\u255d"
- ]
- ]
- },
- {
- "input": "&boxUR",
- "description": "Bad named entity: boxUR without a semi-colon",
- "output": [
- [
- "Character",
- "&boxUR"
- ]
- ]
- },
- {
- "input": "&boxUR;",
- "description": "Named entity: boxUR; with a semi-colon",
- "output": [
- [
- "Character",
- "\u255a"
- ]
- ]
- },
- {
- "input": "&boxUl",
- "description": "Bad named entity: boxUl without a semi-colon",
- "output": [
- [
- "Character",
- "&boxUl"
- ]
- ]
- },
- {
- "input": "&boxUl;",
- "description": "Named entity: boxUl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u255c"
- ]
- ]
- },
- {
- "input": "&boxUr",
- "description": "Bad named entity: boxUr without a semi-colon",
- "output": [
- [
- "Character",
- "&boxUr"
- ]
- ]
- },
- {
- "input": "&boxUr;",
- "description": "Named entity: boxUr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2559"
- ]
- ]
- },
- {
- "input": "&boxV",
- "description": "Bad named entity: boxV without a semi-colon",
- "output": [
- [
- "Character",
- "&boxV"
- ]
- ]
- },
- {
- "input": "&boxV;",
- "description": "Named entity: boxV; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2551"
- ]
- ]
- },
- {
- "input": "&boxVH",
- "description": "Bad named entity: boxVH without a semi-colon",
- "output": [
- [
- "Character",
- "&boxVH"
- ]
- ]
- },
- {
- "input": "&boxVH;",
- "description": "Named entity: boxVH; with a semi-colon",
- "output": [
- [
- "Character",
- "\u256c"
- ]
- ]
- },
- {
- "input": "&boxVL",
- "description": "Bad named entity: boxVL without a semi-colon",
- "output": [
- [
- "Character",
- "&boxVL"
- ]
- ]
- },
- {
- "input": "&boxVL;",
- "description": "Named entity: boxVL; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2563"
- ]
- ]
- },
- {
- "input": "&boxVR",
- "description": "Bad named entity: boxVR without a semi-colon",
- "output": [
- [
- "Character",
- "&boxVR"
- ]
- ]
- },
- {
- "input": "&boxVR;",
- "description": "Named entity: boxVR; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2560"
- ]
- ]
- },
- {
- "input": "&boxVh",
- "description": "Bad named entity: boxVh without a semi-colon",
- "output": [
- [
- "Character",
- "&boxVh"
- ]
- ]
- },
- {
- "input": "&boxVh;",
- "description": "Named entity: boxVh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u256b"
- ]
- ]
- },
- {
- "input": "&boxVl",
- "description": "Bad named entity: boxVl without a semi-colon",
- "output": [
- [
- "Character",
- "&boxVl"
- ]
- ]
- },
- {
- "input": "&boxVl;",
- "description": "Named entity: boxVl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2562"
- ]
- ]
- },
- {
- "input": "&boxVr",
- "description": "Bad named entity: boxVr without a semi-colon",
- "output": [
- [
- "Character",
- "&boxVr"
- ]
- ]
- },
- {
- "input": "&boxVr;",
- "description": "Named entity: boxVr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u255f"
- ]
- ]
- },
- {
- "input": "&boxbox",
- "description": "Bad named entity: boxbox without a semi-colon",
- "output": [
- [
- "Character",
- "&boxbox"
- ]
- ]
- },
- {
- "input": "&boxbox;",
- "description": "Named entity: boxbox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29c9"
- ]
- ]
- },
- {
- "input": "&boxdL",
- "description": "Bad named entity: boxdL without a semi-colon",
- "output": [
- [
- "Character",
- "&boxdL"
- ]
- ]
- },
- {
- "input": "&boxdL;",
- "description": "Named entity: boxdL; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2555"
- ]
- ]
- },
- {
- "input": "&boxdR",
- "description": "Bad named entity: boxdR without a semi-colon",
- "output": [
- [
- "Character",
- "&boxdR"
- ]
- ]
- },
- {
- "input": "&boxdR;",
- "description": "Named entity: boxdR; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2552"
- ]
- ]
- },
- {
- "input": "&boxdl",
- "description": "Bad named entity: boxdl without a semi-colon",
- "output": [
- [
- "Character",
- "&boxdl"
- ]
- ]
- },
- {
- "input": "&boxdl;",
- "description": "Named entity: boxdl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2510"
- ]
- ]
- },
- {
- "input": "&boxdr",
- "description": "Bad named entity: boxdr without a semi-colon",
- "output": [
- [
- "Character",
- "&boxdr"
- ]
- ]
- },
- {
- "input": "&boxdr;",
- "description": "Named entity: boxdr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u250c"
- ]
- ]
- },
- {
- "input": "&boxh",
- "description": "Bad named entity: boxh without a semi-colon",
- "output": [
- [
- "Character",
- "&boxh"
- ]
- ]
- },
- {
- "input": "&boxh;",
- "description": "Named entity: boxh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2500"
- ]
- ]
- },
- {
- "input": "&boxhD",
- "description": "Bad named entity: boxhD without a semi-colon",
- "output": [
- [
- "Character",
- "&boxhD"
- ]
- ]
- },
- {
- "input": "&boxhD;",
- "description": "Named entity: boxhD; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2565"
- ]
- ]
- },
- {
- "input": "&boxhU",
- "description": "Bad named entity: boxhU without a semi-colon",
- "output": [
- [
- "Character",
- "&boxhU"
- ]
- ]
- },
- {
- "input": "&boxhU;",
- "description": "Named entity: boxhU; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2568"
- ]
- ]
- },
- {
- "input": "&boxhd",
- "description": "Bad named entity: boxhd without a semi-colon",
- "output": [
- [
- "Character",
- "&boxhd"
- ]
- ]
- },
- {
- "input": "&boxhd;",
- "description": "Named entity: boxhd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u252c"
- ]
- ]
- },
- {
- "input": "&boxhu",
- "description": "Bad named entity: boxhu without a semi-colon",
- "output": [
- [
- "Character",
- "&boxhu"
- ]
- ]
- },
- {
- "input": "&boxhu;",
- "description": "Named entity: boxhu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2534"
- ]
- ]
- },
- {
- "input": "&boxminus",
- "description": "Bad named entity: boxminus without a semi-colon",
- "output": [
- [
- "Character",
- "&boxminus"
- ]
- ]
- },
- {
- "input": "&boxminus;",
- "description": "Named entity: boxminus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229f"
- ]
- ]
- },
- {
- "input": "&boxplus",
- "description": "Bad named entity: boxplus without a semi-colon",
- "output": [
- [
- "Character",
- "&boxplus"
- ]
- ]
- },
- {
- "input": "&boxplus;",
- "description": "Named entity: boxplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229e"
- ]
- ]
- },
- {
- "input": "&boxtimes",
- "description": "Bad named entity: boxtimes without a semi-colon",
- "output": [
- [
- "Character",
- "&boxtimes"
- ]
- ]
- },
- {
- "input": "&boxtimes;",
- "description": "Named entity: boxtimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a0"
- ]
- ]
- },
- {
- "input": "&boxuL",
- "description": "Bad named entity: boxuL without a semi-colon",
- "output": [
- [
- "Character",
- "&boxuL"
- ]
- ]
- },
- {
- "input": "&boxuL;",
- "description": "Named entity: boxuL; with a semi-colon",
- "output": [
- [
- "Character",
- "\u255b"
- ]
- ]
- },
- {
- "input": "&boxuR",
- "description": "Bad named entity: boxuR without a semi-colon",
- "output": [
- [
- "Character",
- "&boxuR"
- ]
- ]
- },
- {
- "input": "&boxuR;",
- "description": "Named entity: boxuR; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2558"
- ]
- ]
- },
- {
- "input": "&boxul",
- "description": "Bad named entity: boxul without a semi-colon",
- "output": [
- [
- "Character",
- "&boxul"
- ]
- ]
- },
- {
- "input": "&boxul;",
- "description": "Named entity: boxul; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2518"
- ]
- ]
- },
- {
- "input": "&boxur",
- "description": "Bad named entity: boxur without a semi-colon",
- "output": [
- [
- "Character",
- "&boxur"
- ]
- ]
- },
- {
- "input": "&boxur;",
- "description": "Named entity: boxur; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2514"
- ]
- ]
- },
- {
- "input": "&boxv",
- "description": "Bad named entity: boxv without a semi-colon",
- "output": [
- [
- "Character",
- "&boxv"
- ]
- ]
- },
- {
- "input": "&boxv;",
- "description": "Named entity: boxv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2502"
- ]
- ]
- },
- {
- "input": "&boxvH",
- "description": "Bad named entity: boxvH without a semi-colon",
- "output": [
- [
- "Character",
- "&boxvH"
- ]
- ]
- },
- {
- "input": "&boxvH;",
- "description": "Named entity: boxvH; with a semi-colon",
- "output": [
- [
- "Character",
- "\u256a"
- ]
- ]
- },
- {
- "input": "&boxvL",
- "description": "Bad named entity: boxvL without a semi-colon",
- "output": [
- [
- "Character",
- "&boxvL"
- ]
- ]
- },
- {
- "input": "&boxvL;",
- "description": "Named entity: boxvL; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2561"
- ]
- ]
- },
- {
- "input": "&boxvR",
- "description": "Bad named entity: boxvR without a semi-colon",
- "output": [
- [
- "Character",
- "&boxvR"
- ]
- ]
- },
- {
- "input": "&boxvR;",
- "description": "Named entity: boxvR; with a semi-colon",
- "output": [
- [
- "Character",
- "\u255e"
- ]
- ]
- },
- {
- "input": "&boxvh",
- "description": "Bad named entity: boxvh without a semi-colon",
- "output": [
- [
- "Character",
- "&boxvh"
- ]
- ]
- },
- {
- "input": "&boxvh;",
- "description": "Named entity: boxvh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u253c"
- ]
- ]
- },
- {
- "input": "&boxvl",
- "description": "Bad named entity: boxvl without a semi-colon",
- "output": [
- [
- "Character",
- "&boxvl"
- ]
- ]
- },
- {
- "input": "&boxvl;",
- "description": "Named entity: boxvl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2524"
- ]
- ]
- },
- {
- "input": "&boxvr",
- "description": "Bad named entity: boxvr without a semi-colon",
- "output": [
- [
- "Character",
- "&boxvr"
- ]
- ]
- },
- {
- "input": "&boxvr;",
- "description": "Named entity: boxvr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u251c"
- ]
- ]
- },
- {
- "input": "&bprime",
- "description": "Bad named entity: bprime without a semi-colon",
- "output": [
- [
- "Character",
- "&bprime"
- ]
- ]
- },
- {
- "input": "&bprime;",
- "description": "Named entity: bprime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2035"
- ]
- ]
- },
- {
- "input": "&breve",
- "description": "Bad named entity: breve without a semi-colon",
- "output": [
- [
- "Character",
- "&breve"
- ]
- ]
- },
- {
- "input": "&breve;",
- "description": "Named entity: breve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02d8"
- ]
- ]
- },
- {
- "input": "&brvbar",
- "description": "Named entity: brvbar without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a6"
- ]
- ]
- },
- {
- "input": "&brvbar;",
- "description": "Named entity: brvbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a6"
- ]
- ]
- },
- {
- "input": "&bscr",
- "description": "Bad named entity: bscr without a semi-colon",
- "output": [
- [
- "Character",
- "&bscr"
- ]
- ]
- },
- {
- "input": "&bscr;",
- "description": "Named entity: bscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb7"
- ]
- ]
- },
- {
- "input": "&bsemi",
- "description": "Bad named entity: bsemi without a semi-colon",
- "output": [
- [
- "Character",
- "&bsemi"
- ]
- ]
- },
- {
- "input": "&bsemi;",
- "description": "Named entity: bsemi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u204f"
- ]
- ]
- },
- {
- "input": "&bsim",
- "description": "Bad named entity: bsim without a semi-colon",
- "output": [
- [
- "Character",
- "&bsim"
- ]
- ]
- },
- {
- "input": "&bsim;",
- "description": "Named entity: bsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223d"
- ]
- ]
- },
- {
- "input": "&bsime",
- "description": "Bad named entity: bsime without a semi-colon",
- "output": [
- [
- "Character",
- "&bsime"
- ]
- ]
- },
- {
- "input": "&bsime;",
- "description": "Named entity: bsime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22cd"
- ]
- ]
- },
- {
- "input": "&bsol",
- "description": "Bad named entity: bsol without a semi-colon",
- "output": [
- [
- "Character",
- "&bsol"
- ]
- ]
- },
- {
- "input": "&bsol;",
- "description": "Named entity: bsol; with a semi-colon",
- "output": [
- [
- "Character",
- "\\"
- ]
- ]
- },
- {
- "input": "&bsolb",
- "description": "Bad named entity: bsolb without a semi-colon",
- "output": [
- [
- "Character",
- "&bsolb"
- ]
- ]
- },
- {
- "input": "&bsolb;",
- "description": "Named entity: bsolb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29c5"
- ]
- ]
- },
- {
- "input": "&bsolhsub",
- "description": "Bad named entity: bsolhsub without a semi-colon",
- "output": [
- [
- "Character",
- "&bsolhsub"
- ]
- ]
- },
- {
- "input": "&bsolhsub;",
- "description": "Named entity: bsolhsub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27c8"
- ]
- ]
- },
- {
- "input": "&bull",
- "description": "Bad named entity: bull without a semi-colon",
- "output": [
- [
- "Character",
- "&bull"
- ]
- ]
- },
- {
- "input": "&bull;",
- "description": "Named entity: bull; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2022"
- ]
- ]
- },
- {
- "input": "&bullet",
- "description": "Bad named entity: bullet without a semi-colon",
- "output": [
- [
- "Character",
- "&bullet"
- ]
- ]
- },
- {
- "input": "&bullet;",
- "description": "Named entity: bullet; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2022"
- ]
- ]
- },
- {
- "input": "&bump",
- "description": "Bad named entity: bump without a semi-colon",
- "output": [
- [
- "Character",
- "&bump"
- ]
- ]
- },
- {
- "input": "&bump;",
- "description": "Named entity: bump; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224e"
- ]
- ]
- },
- {
- "input": "&bumpE",
- "description": "Bad named entity: bumpE without a semi-colon",
- "output": [
- [
- "Character",
- "&bumpE"
- ]
- ]
- },
- {
- "input": "&bumpE;",
- "description": "Named entity: bumpE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aae"
- ]
- ]
- },
- {
- "input": "&bumpe",
- "description": "Bad named entity: bumpe without a semi-colon",
- "output": [
- [
- "Character",
- "&bumpe"
- ]
- ]
- },
- {
- "input": "&bumpe;",
- "description": "Named entity: bumpe; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224f"
- ]
- ]
- },
- {
- "input": "&bumpeq",
- "description": "Bad named entity: bumpeq without a semi-colon",
- "output": [
- [
- "Character",
- "&bumpeq"
- ]
- ]
- },
- {
- "input": "&bumpeq;",
- "description": "Named entity: bumpeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224f"
- ]
- ]
- },
- {
- "input": "&cacute",
- "description": "Bad named entity: cacute without a semi-colon",
- "output": [
- [
- "Character",
- "&cacute"
- ]
- ]
- },
- {
- "input": "&cacute;",
- "description": "Named entity: cacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0107"
- ]
- ]
- },
- {
- "input": "&cap",
- "description": "Bad named entity: cap without a semi-colon",
- "output": [
- [
- "Character",
- "&cap"
- ]
- ]
- },
- {
- "input": "&cap;",
- "description": "Named entity: cap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2229"
- ]
- ]
- },
- {
- "input": "&capand",
- "description": "Bad named entity: capand without a semi-colon",
- "output": [
- [
- "Character",
- "&capand"
- ]
- ]
- },
- {
- "input": "&capand;",
- "description": "Named entity: capand; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a44"
- ]
- ]
- },
- {
- "input": "&capbrcup",
- "description": "Bad named entity: capbrcup without a semi-colon",
- "output": [
- [
- "Character",
- "&capbrcup"
- ]
- ]
- },
- {
- "input": "&capbrcup;",
- "description": "Named entity: capbrcup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a49"
- ]
- ]
- },
- {
- "input": "&capcap",
- "description": "Bad named entity: capcap without a semi-colon",
- "output": [
- [
- "Character",
- "&capcap"
- ]
- ]
- },
- {
- "input": "&capcap;",
- "description": "Named entity: capcap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a4b"
- ]
- ]
- },
- {
- "input": "&capcup",
- "description": "Bad named entity: capcup without a semi-colon",
- "output": [
- [
- "Character",
- "&capcup"
- ]
- ]
- },
- {
- "input": "&capcup;",
- "description": "Named entity: capcup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a47"
- ]
- ]
- },
- {
- "input": "&capdot",
- "description": "Bad named entity: capdot without a semi-colon",
- "output": [
- [
- "Character",
- "&capdot"
- ]
- ]
- },
- {
- "input": "&capdot;",
- "description": "Named entity: capdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a40"
- ]
- ]
- },
- {
- "input": "&caps",
- "description": "Bad named entity: caps without a semi-colon",
- "output": [
- [
- "Character",
- "&caps"
- ]
- ]
- },
- {
- "input": "&caps;",
- "description": "Named entity: caps; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2229\ufe00"
- ]
- ]
- },
- {
- "input": "&caret",
- "description": "Bad named entity: caret without a semi-colon",
- "output": [
- [
- "Character",
- "&caret"
- ]
- ]
- },
- {
- "input": "&caret;",
- "description": "Named entity: caret; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2041"
- ]
- ]
- },
- {
- "input": "&caron",
- "description": "Bad named entity: caron without a semi-colon",
- "output": [
- [
- "Character",
- "&caron"
- ]
- ]
- },
- {
- "input": "&caron;",
- "description": "Named entity: caron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02c7"
- ]
- ]
- },
- {
- "input": "&ccaps",
- "description": "Bad named entity: ccaps without a semi-colon",
- "output": [
- [
- "Character",
- "&ccaps"
- ]
- ]
- },
- {
- "input": "&ccaps;",
- "description": "Named entity: ccaps; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a4d"
- ]
- ]
- },
- {
- "input": "&ccaron",
- "description": "Bad named entity: ccaron without a semi-colon",
- "output": [
- [
- "Character",
- "&ccaron"
- ]
- ]
- },
- {
- "input": "&ccaron;",
- "description": "Named entity: ccaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u010d"
- ]
- ]
- },
- {
- "input": "&ccedil",
- "description": "Named entity: ccedil without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e7"
- ]
- ]
- },
- {
- "input": "&ccedil;",
- "description": "Named entity: ccedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e7"
- ]
- ]
- },
- {
- "input": "&ccirc",
- "description": "Bad named entity: ccirc without a semi-colon",
- "output": [
- [
- "Character",
- "&ccirc"
- ]
- ]
- },
- {
- "input": "&ccirc;",
- "description": "Named entity: ccirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0109"
- ]
- ]
- },
- {
- "input": "&ccups",
- "description": "Bad named entity: ccups without a semi-colon",
- "output": [
- [
- "Character",
- "&ccups"
- ]
- ]
- },
- {
- "input": "&ccups;",
- "description": "Named entity: ccups; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a4c"
- ]
- ]
- },
- {
- "input": "&ccupssm",
- "description": "Bad named entity: ccupssm without a semi-colon",
- "output": [
- [
- "Character",
- "&ccupssm"
- ]
- ]
- },
- {
- "input": "&ccupssm;",
- "description": "Named entity: ccupssm; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a50"
- ]
- ]
- },
- {
- "input": "&cdot",
- "description": "Bad named entity: cdot without a semi-colon",
- "output": [
- [
- "Character",
- "&cdot"
- ]
- ]
- },
- {
- "input": "&cdot;",
- "description": "Named entity: cdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u010b"
- ]
- ]
- },
- {
- "input": "&cedil",
- "description": "Named entity: cedil without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b8"
- ]
- ]
- },
- {
- "input": "&cedil;",
- "description": "Named entity: cedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b8"
- ]
- ]
- },
- {
- "input": "&cemptyv",
- "description": "Bad named entity: cemptyv without a semi-colon",
- "output": [
- [
- "Character",
- "&cemptyv"
- ]
- ]
- },
- {
- "input": "&cemptyv;",
- "description": "Named entity: cemptyv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b2"
- ]
- ]
- },
- {
- "input": "&cent",
- "description": "Named entity: cent without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a2"
- ]
- ]
- },
- {
- "input": "&cent;",
- "description": "Named entity: cent; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a2"
- ]
- ]
- },
- {
- "input": "&centerdot;",
- "description": "Named entity: centerdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b7"
- ]
- ]
- },
- {
- "input": "&cfr",
- "description": "Bad named entity: cfr without a semi-colon",
- "output": [
- [
- "Character",
- "&cfr"
- ]
- ]
- },
- {
- "input": "&cfr;",
- "description": "Named entity: cfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd20"
- ]
- ]
- },
- {
- "input": "&chcy",
- "description": "Bad named entity: chcy without a semi-colon",
- "output": [
- [
- "Character",
- "&chcy"
- ]
- ]
- },
- {
- "input": "&chcy;",
- "description": "Named entity: chcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0447"
- ]
- ]
- },
- {
- "input": "&check",
- "description": "Bad named entity: check without a semi-colon",
- "output": [
- [
- "Character",
- "&check"
- ]
- ]
- },
- {
- "input": "&check;",
- "description": "Named entity: check; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2713"
- ]
- ]
- },
- {
- "input": "&checkmark",
- "description": "Bad named entity: checkmark without a semi-colon",
- "output": [
- [
- "Character",
- "&checkmark"
- ]
- ]
- },
- {
- "input": "&checkmark;",
- "description": "Named entity: checkmark; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2713"
- ]
- ]
- },
- {
- "input": "&chi",
- "description": "Bad named entity: chi without a semi-colon",
- "output": [
- [
- "Character",
- "&chi"
- ]
- ]
- },
- {
- "input": "&chi;",
- "description": "Named entity: chi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c7"
- ]
- ]
- },
- {
- "input": "&cir",
- "description": "Bad named entity: cir without a semi-colon",
- "output": [
- [
- "Character",
- "&cir"
- ]
- ]
- },
- {
- "input": "&cir;",
- "description": "Named entity: cir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25cb"
- ]
- ]
- },
- {
- "input": "&cirE",
- "description": "Bad named entity: cirE without a semi-colon",
- "output": [
- [
- "Character",
- "&cirE"
- ]
- ]
- },
- {
- "input": "&cirE;",
- "description": "Named entity: cirE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29c3"
- ]
- ]
- },
- {
- "input": "&circ",
- "description": "Bad named entity: circ without a semi-colon",
- "output": [
- [
- "Character",
- "&circ"
- ]
- ]
- },
- {
- "input": "&circ;",
- "description": "Named entity: circ; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02c6"
- ]
- ]
- },
- {
- "input": "&circeq",
- "description": "Bad named entity: circeq without a semi-colon",
- "output": [
- [
- "Character",
- "&circeq"
- ]
- ]
- },
- {
- "input": "&circeq;",
- "description": "Named entity: circeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2257"
- ]
- ]
- },
- {
- "input": "&circlearrowleft",
- "description": "Bad named entity: circlearrowleft without a semi-colon",
- "output": [
- [
- "Character",
- "&circlearrowleft"
- ]
- ]
- },
- {
- "input": "&circlearrowleft;",
- "description": "Named entity: circlearrowleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ba"
- ]
- ]
- },
- {
- "input": "&circlearrowright",
- "description": "Bad named entity: circlearrowright without a semi-colon",
- "output": [
- [
- "Character",
- "&circlearrowright"
- ]
- ]
- },
- {
- "input": "&circlearrowright;",
- "description": "Named entity: circlearrowright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bb"
- ]
- ]
- },
- {
- "input": "&circledR",
- "description": "Bad named entity: circledR without a semi-colon",
- "output": [
- [
- "Character",
- "&circledR"
- ]
- ]
- },
- {
- "input": "&circledR;",
- "description": "Named entity: circledR; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ae"
- ]
- ]
- },
- {
- "input": "&circledS",
- "description": "Bad named entity: circledS without a semi-colon",
- "output": [
- [
- "Character",
- "&circledS"
- ]
- ]
- },
- {
- "input": "&circledS;",
- "description": "Named entity: circledS; with a semi-colon",
- "output": [
- [
- "Character",
- "\u24c8"
- ]
- ]
- },
- {
- "input": "&circledast",
- "description": "Bad named entity: circledast without a semi-colon",
- "output": [
- [
- "Character",
- "&circledast"
- ]
- ]
- },
- {
- "input": "&circledast;",
- "description": "Named entity: circledast; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229b"
- ]
- ]
- },
- {
- "input": "&circledcirc",
- "description": "Bad named entity: circledcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&circledcirc"
- ]
- ]
- },
- {
- "input": "&circledcirc;",
- "description": "Named entity: circledcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229a"
- ]
- ]
- },
- {
- "input": "&circleddash",
- "description": "Bad named entity: circleddash without a semi-colon",
- "output": [
- [
- "Character",
- "&circleddash"
- ]
- ]
- },
- {
- "input": "&circleddash;",
- "description": "Named entity: circleddash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229d"
- ]
- ]
- },
- {
- "input": "&cire",
- "description": "Bad named entity: cire without a semi-colon",
- "output": [
- [
- "Character",
- "&cire"
- ]
- ]
- },
- {
- "input": "&cire;",
- "description": "Named entity: cire; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2257"
- ]
- ]
- },
- {
- "input": "&cirfnint",
- "description": "Bad named entity: cirfnint without a semi-colon",
- "output": [
- [
- "Character",
- "&cirfnint"
- ]
- ]
- },
- {
- "input": "&cirfnint;",
- "description": "Named entity: cirfnint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a10"
- ]
- ]
- },
- {
- "input": "&cirmid",
- "description": "Bad named entity: cirmid without a semi-colon",
- "output": [
- [
- "Character",
- "&cirmid"
- ]
- ]
- },
- {
- "input": "&cirmid;",
- "description": "Named entity: cirmid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aef"
- ]
- ]
- },
- {
- "input": "&cirscir",
- "description": "Bad named entity: cirscir without a semi-colon",
- "output": [
- [
- "Character",
- "&cirscir"
- ]
- ]
- },
- {
- "input": "&cirscir;",
- "description": "Named entity: cirscir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29c2"
- ]
- ]
- },
- {
- "input": "&clubs",
- "description": "Bad named entity: clubs without a semi-colon",
- "output": [
- [
- "Character",
- "&clubs"
- ]
- ]
- },
- {
- "input": "&clubs;",
- "description": "Named entity: clubs; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2663"
- ]
- ]
- },
- {
- "input": "&clubsuit",
- "description": "Bad named entity: clubsuit without a semi-colon",
- "output": [
- [
- "Character",
- "&clubsuit"
- ]
- ]
- },
- {
- "input": "&clubsuit;",
- "description": "Named entity: clubsuit; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2663"
- ]
- ]
- },
- {
- "input": "&colon",
- "description": "Bad named entity: colon without a semi-colon",
- "output": [
- [
- "Character",
- "&colon"
- ]
- ]
- },
- {
- "input": "&colon;",
- "description": "Named entity: colon; with a semi-colon",
- "output": [
- [
- "Character",
- ":"
- ]
- ]
- },
- {
- "input": "&colone",
- "description": "Bad named entity: colone without a semi-colon",
- "output": [
- [
- "Character",
- "&colone"
- ]
- ]
- },
- {
- "input": "&colone;",
- "description": "Named entity: colone; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2254"
- ]
- ]
- },
- {
- "input": "&coloneq",
- "description": "Bad named entity: coloneq without a semi-colon",
- "output": [
- [
- "Character",
- "&coloneq"
- ]
- ]
- },
- {
- "input": "&coloneq;",
- "description": "Named entity: coloneq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2254"
- ]
- ]
- },
- {
- "input": "&comma",
- "description": "Bad named entity: comma without a semi-colon",
- "output": [
- [
- "Character",
- "&comma"
- ]
- ]
- },
- {
- "input": "&comma;",
- "description": "Named entity: comma; with a semi-colon",
- "output": [
- [
- "Character",
- ","
- ]
- ]
- },
- {
- "input": "&commat",
- "description": "Bad named entity: commat without a semi-colon",
- "output": [
- [
- "Character",
- "&commat"
- ]
- ]
- },
- {
- "input": "&commat;",
- "description": "Named entity: commat; with a semi-colon",
- "output": [
- [
- "Character",
- "@"
- ]
- ]
- },
- {
- "input": "&comp",
- "description": "Bad named entity: comp without a semi-colon",
- "output": [
- [
- "Character",
- "&comp"
- ]
- ]
- },
- {
- "input": "&comp;",
- "description": "Named entity: comp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2201"
- ]
- ]
- },
- {
- "input": "&compfn",
- "description": "Bad named entity: compfn without a semi-colon",
- "output": [
- [
- "Character",
- "&compfn"
- ]
- ]
- },
- {
- "input": "&compfn;",
- "description": "Named entity: compfn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2218"
- ]
- ]
- },
- {
- "input": "&complement",
- "description": "Bad named entity: complement without a semi-colon",
- "output": [
- [
- "Character",
- "&complement"
- ]
- ]
- },
- {
- "input": "&complement;",
- "description": "Named entity: complement; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2201"
- ]
- ]
- },
- {
- "input": "&complexes",
- "description": "Bad named entity: complexes without a semi-colon",
- "output": [
- [
- "Character",
- "&complexes"
- ]
- ]
- },
- {
- "input": "&complexes;",
- "description": "Named entity: complexes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2102"
- ]
- ]
- },
- {
- "input": "&cong",
- "description": "Bad named entity: cong without a semi-colon",
- "output": [
- [
- "Character",
- "&cong"
- ]
- ]
- },
- {
- "input": "&cong;",
- "description": "Named entity: cong; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2245"
- ]
- ]
- },
- {
- "input": "&congdot",
- "description": "Bad named entity: congdot without a semi-colon",
- "output": [
- [
- "Character",
- "&congdot"
- ]
- ]
- },
- {
- "input": "&congdot;",
- "description": "Named entity: congdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a6d"
- ]
- ]
- },
- {
- "input": "&conint",
- "description": "Bad named entity: conint without a semi-colon",
- "output": [
- [
- "Character",
- "&conint"
- ]
- ]
- },
- {
- "input": "&conint;",
- "description": "Named entity: conint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222e"
- ]
- ]
- },
- {
- "input": "&copf",
- "description": "Bad named entity: copf without a semi-colon",
- "output": [
- [
- "Character",
- "&copf"
- ]
- ]
- },
- {
- "input": "&copf;",
- "description": "Named entity: copf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd54"
- ]
- ]
- },
- {
- "input": "&coprod",
- "description": "Bad named entity: coprod without a semi-colon",
- "output": [
- [
- "Character",
- "&coprod"
- ]
- ]
- },
- {
- "input": "&coprod;",
- "description": "Named entity: coprod; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2210"
- ]
- ]
- },
- {
- "input": "&copy",
- "description": "Named entity: copy without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a9"
- ]
- ]
- },
- {
- "input": "&copy;",
- "description": "Named entity: copy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a9"
- ]
- ]
- },
- {
- "input": "&copysr;",
- "description": "Named entity: copysr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2117"
- ]
- ]
- },
- {
- "input": "&crarr",
- "description": "Bad named entity: crarr without a semi-colon",
- "output": [
- [
- "Character",
- "&crarr"
- ]
- ]
- },
- {
- "input": "&crarr;",
- "description": "Named entity: crarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b5"
- ]
- ]
- },
- {
- "input": "&cross",
- "description": "Bad named entity: cross without a semi-colon",
- "output": [
- [
- "Character",
- "&cross"
- ]
- ]
- },
- {
- "input": "&cross;",
- "description": "Named entity: cross; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2717"
- ]
- ]
- },
- {
- "input": "&cscr",
- "description": "Bad named entity: cscr without a semi-colon",
- "output": [
- [
- "Character",
- "&cscr"
- ]
- ]
- },
- {
- "input": "&cscr;",
- "description": "Named entity: cscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb8"
- ]
- ]
- },
- {
- "input": "&csub",
- "description": "Bad named entity: csub without a semi-colon",
- "output": [
- [
- "Character",
- "&csub"
- ]
- ]
- },
- {
- "input": "&csub;",
- "description": "Named entity: csub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acf"
- ]
- ]
- },
- {
- "input": "&csube",
- "description": "Bad named entity: csube without a semi-colon",
- "output": [
- [
- "Character",
- "&csube"
- ]
- ]
- },
- {
- "input": "&csube;",
- "description": "Named entity: csube; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad1"
- ]
- ]
- },
- {
- "input": "&csup",
- "description": "Bad named entity: csup without a semi-colon",
- "output": [
- [
- "Character",
- "&csup"
- ]
- ]
- },
- {
- "input": "&csup;",
- "description": "Named entity: csup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad0"
- ]
- ]
- },
- {
- "input": "&csupe",
- "description": "Bad named entity: csupe without a semi-colon",
- "output": [
- [
- "Character",
- "&csupe"
- ]
- ]
- },
- {
- "input": "&csupe;",
- "description": "Named entity: csupe; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad2"
- ]
- ]
- },
- {
- "input": "&ctdot",
- "description": "Bad named entity: ctdot without a semi-colon",
- "output": [
- [
- "Character",
- "&ctdot"
- ]
- ]
- },
- {
- "input": "&ctdot;",
- "description": "Named entity: ctdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ef"
- ]
- ]
- },
- {
- "input": "&cudarrl",
- "description": "Bad named entity: cudarrl without a semi-colon",
- "output": [
- [
- "Character",
- "&cudarrl"
- ]
- ]
- },
- {
- "input": "&cudarrl;",
- "description": "Named entity: cudarrl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2938"
- ]
- ]
- },
- {
- "input": "&cudarrr",
- "description": "Bad named entity: cudarrr without a semi-colon",
- "output": [
- [
- "Character",
- "&cudarrr"
- ]
- ]
- },
- {
- "input": "&cudarrr;",
- "description": "Named entity: cudarrr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2935"
- ]
- ]
- },
- {
- "input": "&cuepr",
- "description": "Bad named entity: cuepr without a semi-colon",
- "output": [
- [
- "Character",
- "&cuepr"
- ]
- ]
- },
- {
- "input": "&cuepr;",
- "description": "Named entity: cuepr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22de"
- ]
- ]
- },
- {
- "input": "&cuesc",
- "description": "Bad named entity: cuesc without a semi-colon",
- "output": [
- [
- "Character",
- "&cuesc"
- ]
- ]
- },
- {
- "input": "&cuesc;",
- "description": "Named entity: cuesc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22df"
- ]
- ]
- },
- {
- "input": "&cularr",
- "description": "Bad named entity: cularr without a semi-colon",
- "output": [
- [
- "Character",
- "&cularr"
- ]
- ]
- },
- {
- "input": "&cularr;",
- "description": "Named entity: cularr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b6"
- ]
- ]
- },
- {
- "input": "&cularrp",
- "description": "Bad named entity: cularrp without a semi-colon",
- "output": [
- [
- "Character",
- "&cularrp"
- ]
- ]
- },
- {
- "input": "&cularrp;",
- "description": "Named entity: cularrp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u293d"
- ]
- ]
- },
- {
- "input": "&cup",
- "description": "Bad named entity: cup without a semi-colon",
- "output": [
- [
- "Character",
- "&cup"
- ]
- ]
- },
- {
- "input": "&cup;",
- "description": "Named entity: cup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222a"
- ]
- ]
- },
- {
- "input": "&cupbrcap",
- "description": "Bad named entity: cupbrcap without a semi-colon",
- "output": [
- [
- "Character",
- "&cupbrcap"
- ]
- ]
- },
- {
- "input": "&cupbrcap;",
- "description": "Named entity: cupbrcap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a48"
- ]
- ]
- },
- {
- "input": "&cupcap",
- "description": "Bad named entity: cupcap without a semi-colon",
- "output": [
- [
- "Character",
- "&cupcap"
- ]
- ]
- },
- {
- "input": "&cupcap;",
- "description": "Named entity: cupcap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a46"
- ]
- ]
- },
- {
- "input": "&cupcup",
- "description": "Bad named entity: cupcup without a semi-colon",
- "output": [
- [
- "Character",
- "&cupcup"
- ]
- ]
- },
- {
- "input": "&cupcup;",
- "description": "Named entity: cupcup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a4a"
- ]
- ]
- },
- {
- "input": "&cupdot",
- "description": "Bad named entity: cupdot without a semi-colon",
- "output": [
- [
- "Character",
- "&cupdot"
- ]
- ]
- },
- {
- "input": "&cupdot;",
- "description": "Named entity: cupdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228d"
- ]
- ]
- },
- {
- "input": "&cupor",
- "description": "Bad named entity: cupor without a semi-colon",
- "output": [
- [
- "Character",
- "&cupor"
- ]
- ]
- },
- {
- "input": "&cupor;",
- "description": "Named entity: cupor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a45"
- ]
- ]
- },
- {
- "input": "&cups",
- "description": "Bad named entity: cups without a semi-colon",
- "output": [
- [
- "Character",
- "&cups"
- ]
- ]
- },
- {
- "input": "&cups;",
- "description": "Named entity: cups; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222a\ufe00"
- ]
- ]
- },
- {
- "input": "&curarr",
- "description": "Bad named entity: curarr without a semi-colon",
- "output": [
- [
- "Character",
- "&curarr"
- ]
- ]
- },
- {
- "input": "&curarr;",
- "description": "Named entity: curarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b7"
- ]
- ]
- },
- {
- "input": "&curarrm",
- "description": "Bad named entity: curarrm without a semi-colon",
- "output": [
- [
- "Character",
- "&curarrm"
- ]
- ]
- },
- {
- "input": "&curarrm;",
- "description": "Named entity: curarrm; with a semi-colon",
- "output": [
- [
- "Character",
- "\u293c"
- ]
- ]
- },
- {
- "input": "&curlyeqprec",
- "description": "Bad named entity: curlyeqprec without a semi-colon",
- "output": [
- [
- "Character",
- "&curlyeqprec"
- ]
- ]
- },
- {
- "input": "&curlyeqprec;",
- "description": "Named entity: curlyeqprec; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22de"
- ]
- ]
- },
- {
- "input": "&curlyeqsucc",
- "description": "Bad named entity: curlyeqsucc without a semi-colon",
- "output": [
- [
- "Character",
- "&curlyeqsucc"
- ]
- ]
- },
- {
- "input": "&curlyeqsucc;",
- "description": "Named entity: curlyeqsucc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22df"
- ]
- ]
- },
- {
- "input": "&curlyvee",
- "description": "Bad named entity: curlyvee without a semi-colon",
- "output": [
- [
- "Character",
- "&curlyvee"
- ]
- ]
- },
- {
- "input": "&curlyvee;",
- "description": "Named entity: curlyvee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ce"
- ]
- ]
- },
- {
- "input": "&curlywedge",
- "description": "Bad named entity: curlywedge without a semi-colon",
- "output": [
- [
- "Character",
- "&curlywedge"
- ]
- ]
- },
- {
- "input": "&curlywedge;",
- "description": "Named entity: curlywedge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22cf"
- ]
- ]
- },
- {
- "input": "&curren",
- "description": "Named entity: curren without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a4"
- ]
- ]
- },
- {
- "input": "&curren;",
- "description": "Named entity: curren; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a4"
- ]
- ]
- },
- {
- "input": "&curvearrowleft",
- "description": "Bad named entity: curvearrowleft without a semi-colon",
- "output": [
- [
- "Character",
- "&curvearrowleft"
- ]
- ]
- },
- {
- "input": "&curvearrowleft;",
- "description": "Named entity: curvearrowleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b6"
- ]
- ]
- },
- {
- "input": "&curvearrowright",
- "description": "Bad named entity: curvearrowright without a semi-colon",
- "output": [
- [
- "Character",
- "&curvearrowright"
- ]
- ]
- },
- {
- "input": "&curvearrowright;",
- "description": "Named entity: curvearrowright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b7"
- ]
- ]
- },
- {
- "input": "&cuvee",
- "description": "Bad named entity: cuvee without a semi-colon",
- "output": [
- [
- "Character",
- "&cuvee"
- ]
- ]
- },
- {
- "input": "&cuvee;",
- "description": "Named entity: cuvee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ce"
- ]
- ]
- },
- {
- "input": "&cuwed",
- "description": "Bad named entity: cuwed without a semi-colon",
- "output": [
- [
- "Character",
- "&cuwed"
- ]
- ]
- },
- {
- "input": "&cuwed;",
- "description": "Named entity: cuwed; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22cf"
- ]
- ]
- },
- {
- "input": "&cwconint",
- "description": "Bad named entity: cwconint without a semi-colon",
- "output": [
- [
- "Character",
- "&cwconint"
- ]
- ]
- },
- {
- "input": "&cwconint;",
- "description": "Named entity: cwconint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2232"
- ]
- ]
- },
- {
- "input": "&cwint",
- "description": "Bad named entity: cwint without a semi-colon",
- "output": [
- [
- "Character",
- "&cwint"
- ]
- ]
- },
- {
- "input": "&cwint;",
- "description": "Named entity: cwint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2231"
- ]
- ]
- },
- {
- "input": "&cylcty",
- "description": "Bad named entity: cylcty without a semi-colon",
- "output": [
- [
- "Character",
- "&cylcty"
- ]
- ]
- },
- {
- "input": "&cylcty;",
- "description": "Named entity: cylcty; with a semi-colon",
- "output": [
- [
- "Character",
- "\u232d"
- ]
- ]
- },
- {
- "input": "&dArr",
- "description": "Bad named entity: dArr without a semi-colon",
- "output": [
- [
- "Character",
- "&dArr"
- ]
- ]
- },
- {
- "input": "&dArr;",
- "description": "Named entity: dArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d3"
- ]
- ]
- },
- {
- "input": "&dHar",
- "description": "Bad named entity: dHar without a semi-colon",
- "output": [
- [
- "Character",
- "&dHar"
- ]
- ]
- },
- {
- "input": "&dHar;",
- "description": "Named entity: dHar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2965"
- ]
- ]
- },
- {
- "input": "&dagger",
- "description": "Bad named entity: dagger without a semi-colon",
- "output": [
- [
- "Character",
- "&dagger"
- ]
- ]
- },
- {
- "input": "&dagger;",
- "description": "Named entity: dagger; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2020"
- ]
- ]
- },
- {
- "input": "&daleth",
- "description": "Bad named entity: daleth without a semi-colon",
- "output": [
- [
- "Character",
- "&daleth"
- ]
- ]
- },
- {
- "input": "&daleth;",
- "description": "Named entity: daleth; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2138"
- ]
- ]
- },
- {
- "input": "&darr",
- "description": "Bad named entity: darr without a semi-colon",
- "output": [
- [
- "Character",
- "&darr"
- ]
- ]
- },
- {
- "input": "&darr;",
- "description": "Named entity: darr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2193"
- ]
- ]
- },
- {
- "input": "&dash",
- "description": "Bad named entity: dash without a semi-colon",
- "output": [
- [
- "Character",
- "&dash"
- ]
- ]
- },
- {
- "input": "&dash;",
- "description": "Named entity: dash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2010"
- ]
- ]
- },
- {
- "input": "&dashv",
- "description": "Bad named entity: dashv without a semi-colon",
- "output": [
- [
- "Character",
- "&dashv"
- ]
- ]
- },
- {
- "input": "&dashv;",
- "description": "Named entity: dashv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a3"
- ]
- ]
- },
- {
- "input": "&dbkarow",
- "description": "Bad named entity: dbkarow without a semi-colon",
- "output": [
- [
- "Character",
- "&dbkarow"
- ]
- ]
- },
- {
- "input": "&dbkarow;",
- "description": "Named entity: dbkarow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u290f"
- ]
- ]
- },
- {
- "input": "&dblac",
- "description": "Bad named entity: dblac without a semi-colon",
- "output": [
- [
- "Character",
- "&dblac"
- ]
- ]
- },
- {
- "input": "&dblac;",
- "description": "Named entity: dblac; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02dd"
- ]
- ]
- },
- {
- "input": "&dcaron",
- "description": "Bad named entity: dcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&dcaron"
- ]
- ]
- },
- {
- "input": "&dcaron;",
- "description": "Named entity: dcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u010f"
- ]
- ]
- },
- {
- "input": "&dcy",
- "description": "Bad named entity: dcy without a semi-colon",
- "output": [
- [
- "Character",
- "&dcy"
- ]
- ]
- },
- {
- "input": "&dcy;",
- "description": "Named entity: dcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0434"
- ]
- ]
- },
- {
- "input": "&dd",
- "description": "Bad named entity: dd without a semi-colon",
- "output": [
- [
- "Character",
- "&dd"
- ]
- ]
- },
- {
- "input": "&dd;",
- "description": "Named entity: dd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2146"
- ]
- ]
- },
- {
- "input": "&ddagger",
- "description": "Bad named entity: ddagger without a semi-colon",
- "output": [
- [
- "Character",
- "&ddagger"
- ]
- ]
- },
- {
- "input": "&ddagger;",
- "description": "Named entity: ddagger; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2021"
- ]
- ]
- },
- {
- "input": "&ddarr",
- "description": "Bad named entity: ddarr without a semi-colon",
- "output": [
- [
- "Character",
- "&ddarr"
- ]
- ]
- },
- {
- "input": "&ddarr;",
- "description": "Named entity: ddarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ca"
- ]
- ]
- },
- {
- "input": "&ddotseq",
- "description": "Bad named entity: ddotseq without a semi-colon",
- "output": [
- [
- "Character",
- "&ddotseq"
- ]
- ]
- },
- {
- "input": "&ddotseq;",
- "description": "Named entity: ddotseq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a77"
- ]
- ]
- },
- {
- "input": "&deg",
- "description": "Named entity: deg without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b0"
- ]
- ]
- },
- {
- "input": "&deg;",
- "description": "Named entity: deg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b0"
- ]
- ]
- },
- {
- "input": "&delta",
- "description": "Bad named entity: delta without a semi-colon",
- "output": [
- [
- "Character",
- "&delta"
- ]
- ]
- },
- {
- "input": "&delta;",
- "description": "Named entity: delta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b4"
- ]
- ]
- },
- {
- "input": "&demptyv",
- "description": "Bad named entity: demptyv without a semi-colon",
- "output": [
- [
- "Character",
- "&demptyv"
- ]
- ]
- },
- {
- "input": "&demptyv;",
- "description": "Named entity: demptyv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b1"
- ]
- ]
- },
- {
- "input": "&dfisht",
- "description": "Bad named entity: dfisht without a semi-colon",
- "output": [
- [
- "Character",
- "&dfisht"
- ]
- ]
- },
- {
- "input": "&dfisht;",
- "description": "Named entity: dfisht; with a semi-colon",
- "output": [
- [
- "Character",
- "\u297f"
- ]
- ]
- },
- {
- "input": "&dfr",
- "description": "Bad named entity: dfr without a semi-colon",
- "output": [
- [
- "Character",
- "&dfr"
- ]
- ]
- },
- {
- "input": "&dfr;",
- "description": "Named entity: dfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd21"
- ]
- ]
- },
- {
- "input": "&dharl",
- "description": "Bad named entity: dharl without a semi-colon",
- "output": [
- [
- "Character",
- "&dharl"
- ]
- ]
- },
- {
- "input": "&dharl;",
- "description": "Named entity: dharl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c3"
- ]
- ]
- },
- {
- "input": "&dharr",
- "description": "Bad named entity: dharr without a semi-colon",
- "output": [
- [
- "Character",
- "&dharr"
- ]
- ]
- },
- {
- "input": "&dharr;",
- "description": "Named entity: dharr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c2"
- ]
- ]
- },
- {
- "input": "&diam",
- "description": "Bad named entity: diam without a semi-colon",
- "output": [
- [
- "Character",
- "&diam"
- ]
- ]
- },
- {
- "input": "&diam;",
- "description": "Named entity: diam; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c4"
- ]
- ]
- },
- {
- "input": "&diamond",
- "description": "Bad named entity: diamond without a semi-colon",
- "output": [
- [
- "Character",
- "&diamond"
- ]
- ]
- },
- {
- "input": "&diamond;",
- "description": "Named entity: diamond; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c4"
- ]
- ]
- },
- {
- "input": "&diamondsuit",
- "description": "Bad named entity: diamondsuit without a semi-colon",
- "output": [
- [
- "Character",
- "&diamondsuit"
- ]
- ]
- },
- {
- "input": "&diamondsuit;",
- "description": "Named entity: diamondsuit; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2666"
- ]
- ]
- },
- {
- "input": "&diams",
- "description": "Bad named entity: diams without a semi-colon",
- "output": [
- [
- "Character",
- "&diams"
- ]
- ]
- },
- {
- "input": "&diams;",
- "description": "Named entity: diams; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2666"
- ]
- ]
- },
- {
- "input": "&die",
- "description": "Bad named entity: die without a semi-colon",
- "output": [
- [
- "Character",
- "&die"
- ]
- ]
- },
- {
- "input": "&die;",
- "description": "Named entity: die; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a8"
- ]
- ]
- },
- {
- "input": "&digamma",
- "description": "Bad named entity: digamma without a semi-colon",
- "output": [
- [
- "Character",
- "&digamma"
- ]
- ]
- },
- {
- "input": "&digamma;",
- "description": "Named entity: digamma; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03dd"
- ]
- ]
- },
- {
- "input": "&disin",
- "description": "Bad named entity: disin without a semi-colon",
- "output": [
- [
- "Character",
- "&disin"
- ]
- ]
- },
- {
- "input": "&disin;",
- "description": "Named entity: disin; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f2"
- ]
- ]
- },
- {
- "input": "&div",
- "description": "Bad named entity: div without a semi-colon",
- "output": [
- [
- "Character",
- "&div"
- ]
- ]
- },
- {
- "input": "&div;",
- "description": "Named entity: div; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f7"
- ]
- ]
- },
- {
- "input": "&divide",
- "description": "Named entity: divide without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f7"
- ]
- ]
- },
- {
- "input": "&divide;",
- "description": "Named entity: divide; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f7"
- ]
- ]
- },
- {
- "input": "&divideontimes;",
- "description": "Named entity: divideontimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c7"
- ]
- ]
- },
- {
- "input": "&divonx",
- "description": "Bad named entity: divonx without a semi-colon",
- "output": [
- [
- "Character",
- "&divonx"
- ]
- ]
- },
- {
- "input": "&divonx;",
- "description": "Named entity: divonx; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c7"
- ]
- ]
- },
- {
- "input": "&djcy",
- "description": "Bad named entity: djcy without a semi-colon",
- "output": [
- [
- "Character",
- "&djcy"
- ]
- ]
- },
- {
- "input": "&djcy;",
- "description": "Named entity: djcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0452"
- ]
- ]
- },
- {
- "input": "&dlcorn",
- "description": "Bad named entity: dlcorn without a semi-colon",
- "output": [
- [
- "Character",
- "&dlcorn"
- ]
- ]
- },
- {
- "input": "&dlcorn;",
- "description": "Named entity: dlcorn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u231e"
- ]
- ]
- },
- {
- "input": "&dlcrop",
- "description": "Bad named entity: dlcrop without a semi-colon",
- "output": [
- [
- "Character",
- "&dlcrop"
- ]
- ]
- },
- {
- "input": "&dlcrop;",
- "description": "Named entity: dlcrop; with a semi-colon",
- "output": [
- [
- "Character",
- "\u230d"
- ]
- ]
- },
- {
- "input": "&dollar",
- "description": "Bad named entity: dollar without a semi-colon",
- "output": [
- [
- "Character",
- "&dollar"
- ]
- ]
- },
- {
- "input": "&dollar;",
- "description": "Named entity: dollar; with a semi-colon",
- "output": [
- [
- "Character",
- "$"
- ]
- ]
- },
- {
- "input": "&dopf",
- "description": "Bad named entity: dopf without a semi-colon",
- "output": [
- [
- "Character",
- "&dopf"
- ]
- ]
- },
- {
- "input": "&dopf;",
- "description": "Named entity: dopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd55"
- ]
- ]
- },
- {
- "input": "&dot",
- "description": "Bad named entity: dot without a semi-colon",
- "output": [
- [
- "Character",
- "&dot"
- ]
- ]
- },
- {
- "input": "&dot;",
- "description": "Named entity: dot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02d9"
- ]
- ]
- },
- {
- "input": "&doteq",
- "description": "Bad named entity: doteq without a semi-colon",
- "output": [
- [
- "Character",
- "&doteq"
- ]
- ]
- },
- {
- "input": "&doteq;",
- "description": "Named entity: doteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2250"
- ]
- ]
- },
- {
- "input": "&doteqdot",
- "description": "Bad named entity: doteqdot without a semi-colon",
- "output": [
- [
- "Character",
- "&doteqdot"
- ]
- ]
- },
- {
- "input": "&doteqdot;",
- "description": "Named entity: doteqdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2251"
- ]
- ]
- },
- {
- "input": "&dotminus",
- "description": "Bad named entity: dotminus without a semi-colon",
- "output": [
- [
- "Character",
- "&dotminus"
- ]
- ]
- },
- {
- "input": "&dotminus;",
- "description": "Named entity: dotminus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2238"
- ]
- ]
- },
- {
- "input": "&dotplus",
- "description": "Bad named entity: dotplus without a semi-colon",
- "output": [
- [
- "Character",
- "&dotplus"
- ]
- ]
- },
- {
- "input": "&dotplus;",
- "description": "Named entity: dotplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2214"
- ]
- ]
- },
- {
- "input": "&dotsquare",
- "description": "Bad named entity: dotsquare without a semi-colon",
- "output": [
- [
- "Character",
- "&dotsquare"
- ]
- ]
- },
- {
- "input": "&dotsquare;",
- "description": "Named entity: dotsquare; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a1"
- ]
- ]
- },
- {
- "input": "&doublebarwedge",
- "description": "Bad named entity: doublebarwedge without a semi-colon",
- "output": [
- [
- "Character",
- "&doublebarwedge"
- ]
- ]
- },
- {
- "input": "&doublebarwedge;",
- "description": "Named entity: doublebarwedge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2306"
- ]
- ]
- },
- {
- "input": "&downarrow",
- "description": "Bad named entity: downarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&downarrow"
- ]
- ]
- },
- {
- "input": "&downarrow;",
- "description": "Named entity: downarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2193"
- ]
- ]
- },
- {
- "input": "&downdownarrows",
- "description": "Bad named entity: downdownarrows without a semi-colon",
- "output": [
- [
- "Character",
- "&downdownarrows"
- ]
- ]
- },
- {
- "input": "&downdownarrows;",
- "description": "Named entity: downdownarrows; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ca"
- ]
- ]
- },
- {
- "input": "&downharpoonleft",
- "description": "Bad named entity: downharpoonleft without a semi-colon",
- "output": [
- [
- "Character",
- "&downharpoonleft"
- ]
- ]
- },
- {
- "input": "&downharpoonleft;",
- "description": "Named entity: downharpoonleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c3"
- ]
- ]
- },
- {
- "input": "&downharpoonright",
- "description": "Bad named entity: downharpoonright without a semi-colon",
- "output": [
- [
- "Character",
- "&downharpoonright"
- ]
- ]
- },
- {
- "input": "&downharpoonright;",
- "description": "Named entity: downharpoonright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c2"
- ]
- ]
- },
- {
- "input": "&drbkarow",
- "description": "Bad named entity: drbkarow without a semi-colon",
- "output": [
- [
- "Character",
- "&drbkarow"
- ]
- ]
- },
- {
- "input": "&drbkarow;",
- "description": "Named entity: drbkarow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2910"
- ]
- ]
- },
- {
- "input": "&drcorn",
- "description": "Bad named entity: drcorn without a semi-colon",
- "output": [
- [
- "Character",
- "&drcorn"
- ]
- ]
- },
- {
- "input": "&drcorn;",
- "description": "Named entity: drcorn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u231f"
- ]
- ]
- },
- {
- "input": "&drcrop",
- "description": "Bad named entity: drcrop without a semi-colon",
- "output": [
- [
- "Character",
- "&drcrop"
- ]
- ]
- },
- {
- "input": "&drcrop;",
- "description": "Named entity: drcrop; with a semi-colon",
- "output": [
- [
- "Character",
- "\u230c"
- ]
- ]
- },
- {
- "input": "&dscr",
- "description": "Bad named entity: dscr without a semi-colon",
- "output": [
- [
- "Character",
- "&dscr"
- ]
- ]
- },
- {
- "input": "&dscr;",
- "description": "Named entity: dscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb9"
- ]
- ]
- },
- {
- "input": "&dscy",
- "description": "Bad named entity: dscy without a semi-colon",
- "output": [
- [
- "Character",
- "&dscy"
- ]
- ]
- },
- {
- "input": "&dscy;",
- "description": "Named entity: dscy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0455"
- ]
- ]
- },
- {
- "input": "&dsol",
- "description": "Bad named entity: dsol without a semi-colon",
- "output": [
- [
- "Character",
- "&dsol"
- ]
- ]
- },
- {
- "input": "&dsol;",
- "description": "Named entity: dsol; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29f6"
- ]
- ]
- },
- {
- "input": "&dstrok",
- "description": "Bad named entity: dstrok without a semi-colon",
- "output": [
- [
- "Character",
- "&dstrok"
- ]
- ]
- },
- {
- "input": "&dstrok;",
- "description": "Named entity: dstrok; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0111"
- ]
- ]
- },
- {
- "input": "&dtdot",
- "description": "Bad named entity: dtdot without a semi-colon",
- "output": [
- [
- "Character",
- "&dtdot"
- ]
- ]
- },
- {
- "input": "&dtdot;",
- "description": "Named entity: dtdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f1"
- ]
- ]
- },
- {
- "input": "&dtri",
- "description": "Bad named entity: dtri without a semi-colon",
- "output": [
- [
- "Character",
- "&dtri"
- ]
- ]
- },
- {
- "input": "&dtri;",
- "description": "Named entity: dtri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25bf"
- ]
- ]
- },
- {
- "input": "&dtrif",
- "description": "Bad named entity: dtrif without a semi-colon",
- "output": [
- [
- "Character",
- "&dtrif"
- ]
- ]
- },
- {
- "input": "&dtrif;",
- "description": "Named entity: dtrif; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25be"
- ]
- ]
- },
- {
- "input": "&duarr",
- "description": "Bad named entity: duarr without a semi-colon",
- "output": [
- [
- "Character",
- "&duarr"
- ]
- ]
- },
- {
- "input": "&duarr;",
- "description": "Named entity: duarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21f5"
- ]
- ]
- },
- {
- "input": "&duhar",
- "description": "Bad named entity: duhar without a semi-colon",
- "output": [
- [
- "Character",
- "&duhar"
- ]
- ]
- },
- {
- "input": "&duhar;",
- "description": "Named entity: duhar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u296f"
- ]
- ]
- },
- {
- "input": "&dwangle",
- "description": "Bad named entity: dwangle without a semi-colon",
- "output": [
- [
- "Character",
- "&dwangle"
- ]
- ]
- },
- {
- "input": "&dwangle;",
- "description": "Named entity: dwangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29a6"
- ]
- ]
- },
- {
- "input": "&dzcy",
- "description": "Bad named entity: dzcy without a semi-colon",
- "output": [
- [
- "Character",
- "&dzcy"
- ]
- ]
- },
- {
- "input": "&dzcy;",
- "description": "Named entity: dzcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u045f"
- ]
- ]
- },
- {
- "input": "&dzigrarr",
- "description": "Bad named entity: dzigrarr without a semi-colon",
- "output": [
- [
- "Character",
- "&dzigrarr"
- ]
- ]
- },
- {
- "input": "&dzigrarr;",
- "description": "Named entity: dzigrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27ff"
- ]
- ]
- },
- {
- "input": "&eDDot",
- "description": "Bad named entity: eDDot without a semi-colon",
- "output": [
- [
- "Character",
- "&eDDot"
- ]
- ]
- },
- {
- "input": "&eDDot;",
- "description": "Named entity: eDDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a77"
- ]
- ]
- },
- {
- "input": "&eDot",
- "description": "Bad named entity: eDot without a semi-colon",
- "output": [
- [
- "Character",
- "&eDot"
- ]
- ]
- },
- {
- "input": "&eDot;",
- "description": "Named entity: eDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2251"
- ]
- ]
- },
- {
- "input": "&eacute",
- "description": "Named entity: eacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e9"
- ]
- ]
- },
- {
- "input": "&eacute;",
- "description": "Named entity: eacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e9"
- ]
- ]
- },
- {
- "input": "&easter",
- "description": "Bad named entity: easter without a semi-colon",
- "output": [
- [
- "Character",
- "&easter"
- ]
- ]
- },
- {
- "input": "&easter;",
- "description": "Named entity: easter; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a6e"
- ]
- ]
- },
- {
- "input": "&ecaron",
- "description": "Bad named entity: ecaron without a semi-colon",
- "output": [
- [
- "Character",
- "&ecaron"
- ]
- ]
- },
- {
- "input": "&ecaron;",
- "description": "Named entity: ecaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u011b"
- ]
- ]
- },
- {
- "input": "&ecir",
- "description": "Bad named entity: ecir without a semi-colon",
- "output": [
- [
- "Character",
- "&ecir"
- ]
- ]
- },
- {
- "input": "&ecir;",
- "description": "Named entity: ecir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2256"
- ]
- ]
- },
- {
- "input": "&ecirc",
- "description": "Named entity: ecirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ea"
- ]
- ]
- },
- {
- "input": "&ecirc;",
- "description": "Named entity: ecirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ea"
- ]
- ]
- },
- {
- "input": "&ecolon",
- "description": "Bad named entity: ecolon without a semi-colon",
- "output": [
- [
- "Character",
- "&ecolon"
- ]
- ]
- },
- {
- "input": "&ecolon;",
- "description": "Named entity: ecolon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2255"
- ]
- ]
- },
- {
- "input": "&ecy",
- "description": "Bad named entity: ecy without a semi-colon",
- "output": [
- [
- "Character",
- "&ecy"
- ]
- ]
- },
- {
- "input": "&ecy;",
- "description": "Named entity: ecy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u044d"
- ]
- ]
- },
- {
- "input": "&edot",
- "description": "Bad named entity: edot without a semi-colon",
- "output": [
- [
- "Character",
- "&edot"
- ]
- ]
- },
- {
- "input": "&edot;",
- "description": "Named entity: edot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0117"
- ]
- ]
- },
- {
- "input": "&ee",
- "description": "Bad named entity: ee without a semi-colon",
- "output": [
- [
- "Character",
- "&ee"
- ]
- ]
- },
- {
- "input": "&ee;",
- "description": "Named entity: ee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2147"
- ]
- ]
- },
- {
- "input": "&efDot",
- "description": "Bad named entity: efDot without a semi-colon",
- "output": [
- [
- "Character",
- "&efDot"
- ]
- ]
- },
- {
- "input": "&efDot;",
- "description": "Named entity: efDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2252"
- ]
- ]
- },
- {
- "input": "&efr",
- "description": "Bad named entity: efr without a semi-colon",
- "output": [
- [
- "Character",
- "&efr"
- ]
- ]
- },
- {
- "input": "&efr;",
- "description": "Named entity: efr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd22"
- ]
- ]
- },
- {
- "input": "&eg",
- "description": "Bad named entity: eg without a semi-colon",
- "output": [
- [
- "Character",
- "&eg"
- ]
- ]
- },
- {
- "input": "&eg;",
- "description": "Named entity: eg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a9a"
- ]
- ]
- },
- {
- "input": "&egrave",
- "description": "Named entity: egrave without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e8"
- ]
- ]
- },
- {
- "input": "&egrave;",
- "description": "Named entity: egrave; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e8"
- ]
- ]
- },
- {
- "input": "&egs",
- "description": "Bad named entity: egs without a semi-colon",
- "output": [
- [
- "Character",
- "&egs"
- ]
- ]
- },
- {
- "input": "&egs;",
- "description": "Named entity: egs; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a96"
- ]
- ]
- },
- {
- "input": "&egsdot",
- "description": "Bad named entity: egsdot without a semi-colon",
- "output": [
- [
- "Character",
- "&egsdot"
- ]
- ]
- },
- {
- "input": "&egsdot;",
- "description": "Named entity: egsdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a98"
- ]
- ]
- },
- {
- "input": "&el",
- "description": "Bad named entity: el without a semi-colon",
- "output": [
- [
- "Character",
- "&el"
- ]
- ]
- },
- {
- "input": "&el;",
- "description": "Named entity: el; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a99"
- ]
- ]
- },
- {
- "input": "&elinters",
- "description": "Bad named entity: elinters without a semi-colon",
- "output": [
- [
- "Character",
- "&elinters"
- ]
- ]
- },
- {
- "input": "&elinters;",
- "description": "Named entity: elinters; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23e7"
- ]
- ]
- },
- {
- "input": "&ell",
- "description": "Bad named entity: ell without a semi-colon",
- "output": [
- [
- "Character",
- "&ell"
- ]
- ]
- },
- {
- "input": "&ell;",
- "description": "Named entity: ell; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2113"
- ]
- ]
- },
- {
- "input": "&els",
- "description": "Bad named entity: els without a semi-colon",
- "output": [
- [
- "Character",
- "&els"
- ]
- ]
- },
- {
- "input": "&els;",
- "description": "Named entity: els; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a95"
- ]
- ]
- },
- {
- "input": "&elsdot",
- "description": "Bad named entity: elsdot without a semi-colon",
- "output": [
- [
- "Character",
- "&elsdot"
- ]
- ]
- },
- {
- "input": "&elsdot;",
- "description": "Named entity: elsdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a97"
- ]
- ]
- },
- {
- "input": "&emacr",
- "description": "Bad named entity: emacr without a semi-colon",
- "output": [
- [
- "Character",
- "&emacr"
- ]
- ]
- },
- {
- "input": "&emacr;",
- "description": "Named entity: emacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0113"
- ]
- ]
- },
- {
- "input": "&empty",
- "description": "Bad named entity: empty without a semi-colon",
- "output": [
- [
- "Character",
- "&empty"
- ]
- ]
- },
- {
- "input": "&empty;",
- "description": "Named entity: empty; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2205"
- ]
- ]
- },
- {
- "input": "&emptyset",
- "description": "Bad named entity: emptyset without a semi-colon",
- "output": [
- [
- "Character",
- "&emptyset"
- ]
- ]
- },
- {
- "input": "&emptyset;",
- "description": "Named entity: emptyset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2205"
- ]
- ]
- },
- {
- "input": "&emptyv",
- "description": "Bad named entity: emptyv without a semi-colon",
- "output": [
- [
- "Character",
- "&emptyv"
- ]
- ]
- },
- {
- "input": "&emptyv;",
- "description": "Named entity: emptyv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2205"
- ]
- ]
- },
- {
- "input": "&emsp",
- "description": "Bad named entity: emsp without a semi-colon",
- "output": [
- [
- "Character",
- "&emsp"
- ]
- ]
- },
- {
- "input": "&emsp13",
- "description": "Bad named entity: emsp13 without a semi-colon",
- "output": [
- [
- "Character",
- "&emsp13"
- ]
- ]
- },
- {
- "input": "&emsp13;",
- "description": "Named entity: emsp13; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2004"
- ]
- ]
- },
- {
- "input": "&emsp14",
- "description": "Bad named entity: emsp14 without a semi-colon",
- "output": [
- [
- "Character",
- "&emsp14"
- ]
- ]
- },
- {
- "input": "&emsp14;",
- "description": "Named entity: emsp14; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2005"
- ]
- ]
- },
- {
- "input": "&emsp;",
- "description": "Named entity: emsp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2003"
- ]
- ]
- },
- {
- "input": "&eng",
- "description": "Bad named entity: eng without a semi-colon",
- "output": [
- [
- "Character",
- "&eng"
- ]
- ]
- },
- {
- "input": "&eng;",
- "description": "Named entity: eng; with a semi-colon",
- "output": [
- [
- "Character",
- "\u014b"
- ]
- ]
- },
- {
- "input": "&ensp",
- "description": "Bad named entity: ensp without a semi-colon",
- "output": [
- [
- "Character",
- "&ensp"
- ]
- ]
- },
- {
- "input": "&ensp;",
- "description": "Named entity: ensp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2002"
- ]
- ]
- },
- {
- "input": "&eogon",
- "description": "Bad named entity: eogon without a semi-colon",
- "output": [
- [
- "Character",
- "&eogon"
- ]
- ]
- },
- {
- "input": "&eogon;",
- "description": "Named entity: eogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0119"
- ]
- ]
- },
- {
- "input": "&eopf",
- "description": "Bad named entity: eopf without a semi-colon",
- "output": [
- [
- "Character",
- "&eopf"
- ]
- ]
- },
- {
- "input": "&eopf;",
- "description": "Named entity: eopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd56"
- ]
- ]
- },
- {
- "input": "&epar",
- "description": "Bad named entity: epar without a semi-colon",
- "output": [
- [
- "Character",
- "&epar"
- ]
- ]
- },
- {
- "input": "&epar;",
- "description": "Named entity: epar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d5"
- ]
- ]
- },
- {
- "input": "&eparsl",
- "description": "Bad named entity: eparsl without a semi-colon",
- "output": [
- [
- "Character",
- "&eparsl"
- ]
- ]
- },
- {
- "input": "&eparsl;",
- "description": "Named entity: eparsl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29e3"
- ]
- ]
- },
- {
- "input": "&eplus",
- "description": "Bad named entity: eplus without a semi-colon",
- "output": [
- [
- "Character",
- "&eplus"
- ]
- ]
- },
- {
- "input": "&eplus;",
- "description": "Named entity: eplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a71"
- ]
- ]
- },
- {
- "input": "&epsi",
- "description": "Bad named entity: epsi without a semi-colon",
- "output": [
- [
- "Character",
- "&epsi"
- ]
- ]
- },
- {
- "input": "&epsi;",
- "description": "Named entity: epsi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b5"
- ]
- ]
- },
- {
- "input": "&epsilon",
- "description": "Bad named entity: epsilon without a semi-colon",
- "output": [
- [
- "Character",
- "&epsilon"
- ]
- ]
- },
- {
- "input": "&epsilon;",
- "description": "Named entity: epsilon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b5"
- ]
- ]
- },
- {
- "input": "&epsiv",
- "description": "Bad named entity: epsiv without a semi-colon",
- "output": [
- [
- "Character",
- "&epsiv"
- ]
- ]
- },
- {
- "input": "&epsiv;",
- "description": "Named entity: epsiv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f5"
- ]
- ]
- },
- {
- "input": "&eqcirc",
- "description": "Bad named entity: eqcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&eqcirc"
- ]
- ]
- },
- {
- "input": "&eqcirc;",
- "description": "Named entity: eqcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2256"
- ]
- ]
- },
- {
- "input": "&eqcolon",
- "description": "Bad named entity: eqcolon without a semi-colon",
- "output": [
- [
- "Character",
- "&eqcolon"
- ]
- ]
- },
- {
- "input": "&eqcolon;",
- "description": "Named entity: eqcolon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2255"
- ]
- ]
- },
- {
- "input": "&eqsim",
- "description": "Bad named entity: eqsim without a semi-colon",
- "output": [
- [
- "Character",
- "&eqsim"
- ]
- ]
- },
- {
- "input": "&eqsim;",
- "description": "Named entity: eqsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2242"
- ]
- ]
- },
- {
- "input": "&eqslantgtr",
- "description": "Bad named entity: eqslantgtr without a semi-colon",
- "output": [
- [
- "Character",
- "&eqslantgtr"
- ]
- ]
- },
- {
- "input": "&eqslantgtr;",
- "description": "Named entity: eqslantgtr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a96"
- ]
- ]
- },
- {
- "input": "&eqslantless",
- "description": "Bad named entity: eqslantless without a semi-colon",
- "output": [
- [
- "Character",
- "&eqslantless"
- ]
- ]
- },
- {
- "input": "&eqslantless;",
- "description": "Named entity: eqslantless; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a95"
- ]
- ]
- },
- {
- "input": "&equals",
- "description": "Bad named entity: equals without a semi-colon",
- "output": [
- [
- "Character",
- "&equals"
- ]
- ]
- },
- {
- "input": "&equals;",
- "description": "Named entity: equals; with a semi-colon",
- "output": [
- [
- "Character",
- "="
- ]
- ]
- },
- {
- "input": "&equest",
- "description": "Bad named entity: equest without a semi-colon",
- "output": [
- [
- "Character",
- "&equest"
- ]
- ]
- },
- {
- "input": "&equest;",
- "description": "Named entity: equest; with a semi-colon",
- "output": [
- [
- "Character",
- "\u225f"
- ]
- ]
- },
- {
- "input": "&equiv",
- "description": "Bad named entity: equiv without a semi-colon",
- "output": [
- [
- "Character",
- "&equiv"
- ]
- ]
- },
- {
- "input": "&equiv;",
- "description": "Named entity: equiv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2261"
- ]
- ]
- },
- {
- "input": "&equivDD",
- "description": "Bad named entity: equivDD without a semi-colon",
- "output": [
- [
- "Character",
- "&equivDD"
- ]
- ]
- },
- {
- "input": "&equivDD;",
- "description": "Named entity: equivDD; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a78"
- ]
- ]
- },
- {
- "input": "&eqvparsl",
- "description": "Bad named entity: eqvparsl without a semi-colon",
- "output": [
- [
- "Character",
- "&eqvparsl"
- ]
- ]
- },
- {
- "input": "&eqvparsl;",
- "description": "Named entity: eqvparsl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29e5"
- ]
- ]
- },
- {
- "input": "&erDot",
- "description": "Bad named entity: erDot without a semi-colon",
- "output": [
- [
- "Character",
- "&erDot"
- ]
- ]
- },
- {
- "input": "&erDot;",
- "description": "Named entity: erDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2253"
- ]
- ]
- },
- {
- "input": "&erarr",
- "description": "Bad named entity: erarr without a semi-colon",
- "output": [
- [
- "Character",
- "&erarr"
- ]
- ]
- },
- {
- "input": "&erarr;",
- "description": "Named entity: erarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2971"
- ]
- ]
- },
- {
- "input": "&escr",
- "description": "Bad named entity: escr without a semi-colon",
- "output": [
- [
- "Character",
- "&escr"
- ]
- ]
- },
- {
- "input": "&escr;",
- "description": "Named entity: escr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u212f"
- ]
- ]
- },
- {
- "input": "&esdot",
- "description": "Bad named entity: esdot without a semi-colon",
- "output": [
- [
- "Character",
- "&esdot"
- ]
- ]
- },
- {
- "input": "&esdot;",
- "description": "Named entity: esdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2250"
- ]
- ]
- },
- {
- "input": "&esim",
- "description": "Bad named entity: esim without a semi-colon",
- "output": [
- [
- "Character",
- "&esim"
- ]
- ]
- },
- {
- "input": "&esim;",
- "description": "Named entity: esim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2242"
- ]
- ]
- },
- {
- "input": "&eta",
- "description": "Bad named entity: eta without a semi-colon",
- "output": [
- [
- "Character",
- "&eta"
- ]
- ]
- },
- {
- "input": "&eta;",
- "description": "Named entity: eta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b7"
- ]
- ]
- },
- {
- "input": "&eth",
- "description": "Named entity: eth without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f0"
- ]
- ]
- },
- {
- "input": "&eth;",
- "description": "Named entity: eth; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f0"
- ]
- ]
- },
- {
- "input": "&euml",
- "description": "Named entity: euml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00eb"
- ]
- ]
- },
- {
- "input": "&euml;",
- "description": "Named entity: euml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00eb"
- ]
- ]
- },
- {
- "input": "&euro",
- "description": "Bad named entity: euro without a semi-colon",
- "output": [
- [
- "Character",
- "&euro"
- ]
- ]
- },
- {
- "input": "&euro;",
- "description": "Named entity: euro; with a semi-colon",
- "output": [
- [
- "Character",
- "\u20ac"
- ]
- ]
- },
- {
- "input": "&excl",
- "description": "Bad named entity: excl without a semi-colon",
- "output": [
- [
- "Character",
- "&excl"
- ]
- ]
- },
- {
- "input": "&excl;",
- "description": "Named entity: excl; with a semi-colon",
- "output": [
- [
- "Character",
- "!"
- ]
- ]
- },
- {
- "input": "&exist",
- "description": "Bad named entity: exist without a semi-colon",
- "output": [
- [
- "Character",
- "&exist"
- ]
- ]
- },
- {
- "input": "&exist;",
- "description": "Named entity: exist; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2203"
- ]
- ]
- },
- {
- "input": "&expectation",
- "description": "Bad named entity: expectation without a semi-colon",
- "output": [
- [
- "Character",
- "&expectation"
- ]
- ]
- },
- {
- "input": "&expectation;",
- "description": "Named entity: expectation; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2130"
- ]
- ]
- },
- {
- "input": "&exponentiale",
- "description": "Bad named entity: exponentiale without a semi-colon",
- "output": [
- [
- "Character",
- "&exponentiale"
- ]
- ]
- },
- {
- "input": "&exponentiale;",
- "description": "Named entity: exponentiale; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2147"
- ]
- ]
- },
- {
- "input": "&fallingdotseq",
- "description": "Bad named entity: fallingdotseq without a semi-colon",
- "output": [
- [
- "Character",
- "&fallingdotseq"
- ]
- ]
- },
- {
- "input": "&fallingdotseq;",
- "description": "Named entity: fallingdotseq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2252"
- ]
- ]
- },
- {
- "input": "&fcy",
- "description": "Bad named entity: fcy without a semi-colon",
- "output": [
- [
- "Character",
- "&fcy"
- ]
- ]
- },
- {
- "input": "&fcy;",
- "description": "Named entity: fcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0444"
- ]
- ]
- },
- {
- "input": "&female",
- "description": "Bad named entity: female without a semi-colon",
- "output": [
- [
- "Character",
- "&female"
- ]
- ]
- },
- {
- "input": "&female;",
- "description": "Named entity: female; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2640"
- ]
- ]
- },
- {
- "input": "&ffilig",
- "description": "Bad named entity: ffilig without a semi-colon",
- "output": [
- [
- "Character",
- "&ffilig"
- ]
- ]
- },
- {
- "input": "&ffilig;",
- "description": "Named entity: ffilig; with a semi-colon",
- "output": [
- [
- "Character",
- "\ufb03"
- ]
- ]
- },
- {
- "input": "&fflig",
- "description": "Bad named entity: fflig without a semi-colon",
- "output": [
- [
- "Character",
- "&fflig"
- ]
- ]
- },
- {
- "input": "&fflig;",
- "description": "Named entity: fflig; with a semi-colon",
- "output": [
- [
- "Character",
- "\ufb00"
- ]
- ]
- },
- {
- "input": "&ffllig",
- "description": "Bad named entity: ffllig without a semi-colon",
- "output": [
- [
- "Character",
- "&ffllig"
- ]
- ]
- },
- {
- "input": "&ffllig;",
- "description": "Named entity: ffllig; with a semi-colon",
- "output": [
- [
- "Character",
- "\ufb04"
- ]
- ]
- },
- {
- "input": "&ffr",
- "description": "Bad named entity: ffr without a semi-colon",
- "output": [
- [
- "Character",
- "&ffr"
- ]
- ]
- },
- {
- "input": "&ffr;",
- "description": "Named entity: ffr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd23"
- ]
- ]
- },
- {
- "input": "&filig",
- "description": "Bad named entity: filig without a semi-colon",
- "output": [
- [
- "Character",
- "&filig"
- ]
- ]
- },
- {
- "input": "&filig;",
- "description": "Named entity: filig; with a semi-colon",
- "output": [
- [
- "Character",
- "\ufb01"
- ]
- ]
- },
- {
- "input": "&fjlig",
- "description": "Bad named entity: fjlig without a semi-colon",
- "output": [
- [
- "Character",
- "&fjlig"
- ]
- ]
- },
- {
- "input": "&fjlig;",
- "description": "Named entity: fjlig; with a semi-colon",
- "output": [
- [
- "Character",
- "fj"
- ]
- ]
- },
- {
- "input": "&flat",
- "description": "Bad named entity: flat without a semi-colon",
- "output": [
- [
- "Character",
- "&flat"
- ]
- ]
- },
- {
- "input": "&flat;",
- "description": "Named entity: flat; with a semi-colon",
- "output": [
- [
- "Character",
- "\u266d"
- ]
- ]
- },
- {
- "input": "&fllig",
- "description": "Bad named entity: fllig without a semi-colon",
- "output": [
- [
- "Character",
- "&fllig"
- ]
- ]
- },
- {
- "input": "&fllig;",
- "description": "Named entity: fllig; with a semi-colon",
- "output": [
- [
- "Character",
- "\ufb02"
- ]
- ]
- },
- {
- "input": "&fltns",
- "description": "Bad named entity: fltns without a semi-colon",
- "output": [
- [
- "Character",
- "&fltns"
- ]
- ]
- },
- {
- "input": "&fltns;",
- "description": "Named entity: fltns; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b1"
- ]
- ]
- },
- {
- "input": "&fnof",
- "description": "Bad named entity: fnof without a semi-colon",
- "output": [
- [
- "Character",
- "&fnof"
- ]
- ]
- },
- {
- "input": "&fnof;",
- "description": "Named entity: fnof; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0192"
- ]
- ]
- },
- {
- "input": "&fopf",
- "description": "Bad named entity: fopf without a semi-colon",
- "output": [
- [
- "Character",
- "&fopf"
- ]
- ]
- },
- {
- "input": "&fopf;",
- "description": "Named entity: fopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd57"
- ]
- ]
- },
- {
- "input": "&forall",
- "description": "Bad named entity: forall without a semi-colon",
- "output": [
- [
- "Character",
- "&forall"
- ]
- ]
- },
- {
- "input": "&forall;",
- "description": "Named entity: forall; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2200"
- ]
- ]
- },
- {
- "input": "&fork",
- "description": "Bad named entity: fork without a semi-colon",
- "output": [
- [
- "Character",
- "&fork"
- ]
- ]
- },
- {
- "input": "&fork;",
- "description": "Named entity: fork; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d4"
- ]
- ]
- },
- {
- "input": "&forkv",
- "description": "Bad named entity: forkv without a semi-colon",
- "output": [
- [
- "Character",
- "&forkv"
- ]
- ]
- },
- {
- "input": "&forkv;",
- "description": "Named entity: forkv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad9"
- ]
- ]
- },
- {
- "input": "&fpartint",
- "description": "Bad named entity: fpartint without a semi-colon",
- "output": [
- [
- "Character",
- "&fpartint"
- ]
- ]
- },
- {
- "input": "&fpartint;",
- "description": "Named entity: fpartint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a0d"
- ]
- ]
- },
- {
- "input": "&frac12",
- "description": "Named entity: frac12 without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00bd"
- ]
- ]
- },
- {
- "input": "&frac12;",
- "description": "Named entity: frac12; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00bd"
- ]
- ]
- },
- {
- "input": "&frac13",
- "description": "Bad named entity: frac13 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac13"
- ]
- ]
- },
- {
- "input": "&frac13;",
- "description": "Named entity: frac13; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2153"
- ]
- ]
- },
- {
- "input": "&frac14",
- "description": "Named entity: frac14 without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00bc"
- ]
- ]
- },
- {
- "input": "&frac14;",
- "description": "Named entity: frac14; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00bc"
- ]
- ]
- },
- {
- "input": "&frac15",
- "description": "Bad named entity: frac15 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac15"
- ]
- ]
- },
- {
- "input": "&frac15;",
- "description": "Named entity: frac15; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2155"
- ]
- ]
- },
- {
- "input": "&frac16",
- "description": "Bad named entity: frac16 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac16"
- ]
- ]
- },
- {
- "input": "&frac16;",
- "description": "Named entity: frac16; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2159"
- ]
- ]
- },
- {
- "input": "&frac18",
- "description": "Bad named entity: frac18 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac18"
- ]
- ]
- },
- {
- "input": "&frac18;",
- "description": "Named entity: frac18; with a semi-colon",
- "output": [
- [
- "Character",
- "\u215b"
- ]
- ]
- },
- {
- "input": "&frac23",
- "description": "Bad named entity: frac23 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac23"
- ]
- ]
- },
- {
- "input": "&frac23;",
- "description": "Named entity: frac23; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2154"
- ]
- ]
- },
- {
- "input": "&frac25",
- "description": "Bad named entity: frac25 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac25"
- ]
- ]
- },
- {
- "input": "&frac25;",
- "description": "Named entity: frac25; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2156"
- ]
- ]
- },
- {
- "input": "&frac34",
- "description": "Named entity: frac34 without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00be"
- ]
- ]
- },
- {
- "input": "&frac34;",
- "description": "Named entity: frac34; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00be"
- ]
- ]
- },
- {
- "input": "&frac35",
- "description": "Bad named entity: frac35 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac35"
- ]
- ]
- },
- {
- "input": "&frac35;",
- "description": "Named entity: frac35; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2157"
- ]
- ]
- },
- {
- "input": "&frac38",
- "description": "Bad named entity: frac38 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac38"
- ]
- ]
- },
- {
- "input": "&frac38;",
- "description": "Named entity: frac38; with a semi-colon",
- "output": [
- [
- "Character",
- "\u215c"
- ]
- ]
- },
- {
- "input": "&frac45",
- "description": "Bad named entity: frac45 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac45"
- ]
- ]
- },
- {
- "input": "&frac45;",
- "description": "Named entity: frac45; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2158"
- ]
- ]
- },
- {
- "input": "&frac56",
- "description": "Bad named entity: frac56 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac56"
- ]
- ]
- },
- {
- "input": "&frac56;",
- "description": "Named entity: frac56; with a semi-colon",
- "output": [
- [
- "Character",
- "\u215a"
- ]
- ]
- },
- {
- "input": "&frac58",
- "description": "Bad named entity: frac58 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac58"
- ]
- ]
- },
- {
- "input": "&frac58;",
- "description": "Named entity: frac58; with a semi-colon",
- "output": [
- [
- "Character",
- "\u215d"
- ]
- ]
- },
- {
- "input": "&frac78",
- "description": "Bad named entity: frac78 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac78"
- ]
- ]
- },
- {
- "input": "&frac78;",
- "description": "Named entity: frac78; with a semi-colon",
- "output": [
- [
- "Character",
- "\u215e"
- ]
- ]
- },
- {
- "input": "&frasl",
- "description": "Bad named entity: frasl without a semi-colon",
- "output": [
- [
- "Character",
- "&frasl"
- ]
- ]
- },
- {
- "input": "&frasl;",
- "description": "Named entity: frasl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2044"
- ]
- ]
- },
- {
- "input": "&frown",
- "description": "Bad named entity: frown without a semi-colon",
- "output": [
- [
- "Character",
- "&frown"
- ]
- ]
- },
- {
- "input": "&frown;",
- "description": "Named entity: frown; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2322"
- ]
- ]
- },
- {
- "input": "&fscr",
- "description": "Bad named entity: fscr without a semi-colon",
- "output": [
- [
- "Character",
- "&fscr"
- ]
- ]
- },
- {
- "input": "&fscr;",
- "description": "Named entity: fscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcbb"
- ]
- ]
- },
- {
- "input": "&gE",
- "description": "Bad named entity: gE without a semi-colon",
- "output": [
- [
- "Character",
- "&gE"
- ]
- ]
- },
- {
- "input": "&gE;",
- "description": "Named entity: gE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2267"
- ]
- ]
- },
- {
- "input": "&gEl",
- "description": "Bad named entity: gEl without a semi-colon",
- "output": [
- [
- "Character",
- "&gEl"
- ]
- ]
- },
- {
- "input": "&gEl;",
- "description": "Named entity: gEl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8c"
- ]
- ]
- },
- {
- "input": "&gacute",
- "description": "Bad named entity: gacute without a semi-colon",
- "output": [
- [
- "Character",
- "&gacute"
- ]
- ]
- },
- {
- "input": "&gacute;",
- "description": "Named entity: gacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u01f5"
- ]
- ]
- },
- {
- "input": "&gamma",
- "description": "Bad named entity: gamma without a semi-colon",
- "output": [
- [
- "Character",
- "&gamma"
- ]
- ]
- },
- {
- "input": "&gamma;",
- "description": "Named entity: gamma; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b3"
- ]
- ]
- },
- {
- "input": "&gammad",
- "description": "Bad named entity: gammad without a semi-colon",
- "output": [
- [
- "Character",
- "&gammad"
- ]
- ]
- },
- {
- "input": "&gammad;",
- "description": "Named entity: gammad; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03dd"
- ]
- ]
- },
- {
- "input": "&gap",
- "description": "Bad named entity: gap without a semi-colon",
- "output": [
- [
- "Character",
- "&gap"
- ]
- ]
- },
- {
- "input": "&gap;",
- "description": "Named entity: gap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a86"
- ]
- ]
- },
- {
- "input": "&gbreve",
- "description": "Bad named entity: gbreve without a semi-colon",
- "output": [
- [
- "Character",
- "&gbreve"
- ]
- ]
- },
- {
- "input": "&gbreve;",
- "description": "Named entity: gbreve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u011f"
- ]
- ]
- },
- {
- "input": "&gcirc",
- "description": "Bad named entity: gcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&gcirc"
- ]
- ]
- },
- {
- "input": "&gcirc;",
- "description": "Named entity: gcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u011d"
- ]
- ]
- },
- {
- "input": "&gcy",
- "description": "Bad named entity: gcy without a semi-colon",
- "output": [
- [
- "Character",
- "&gcy"
- ]
- ]
- },
- {
- "input": "&gcy;",
- "description": "Named entity: gcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0433"
- ]
- ]
- },
- {
- "input": "&gdot",
- "description": "Bad named entity: gdot without a semi-colon",
- "output": [
- [
- "Character",
- "&gdot"
- ]
- ]
- },
- {
- "input": "&gdot;",
- "description": "Named entity: gdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0121"
- ]
- ]
- },
- {
- "input": "&ge",
- "description": "Bad named entity: ge without a semi-colon",
- "output": [
- [
- "Character",
- "&ge"
- ]
- ]
- },
- {
- "input": "&ge;",
- "description": "Named entity: ge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2265"
- ]
- ]
- },
- {
- "input": "&gel",
- "description": "Bad named entity: gel without a semi-colon",
- "output": [
- [
- "Character",
- "&gel"
- ]
- ]
- },
- {
- "input": "&gel;",
- "description": "Named entity: gel; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22db"
- ]
- ]
- },
- {
- "input": "&geq",
- "description": "Bad named entity: geq without a semi-colon",
- "output": [
- [
- "Character",
- "&geq"
- ]
- ]
- },
- {
- "input": "&geq;",
- "description": "Named entity: geq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2265"
- ]
- ]
- },
- {
- "input": "&geqq",
- "description": "Bad named entity: geqq without a semi-colon",
- "output": [
- [
- "Character",
- "&geqq"
- ]
- ]
- },
- {
- "input": "&geqq;",
- "description": "Named entity: geqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2267"
- ]
- ]
- },
- {
- "input": "&geqslant",
- "description": "Bad named entity: geqslant without a semi-colon",
- "output": [
- [
- "Character",
- "&geqslant"
- ]
- ]
- },
- {
- "input": "&geqslant;",
- "description": "Named entity: geqslant; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7e"
- ]
- ]
- },
- {
- "input": "&ges",
- "description": "Bad named entity: ges without a semi-colon",
- "output": [
- [
- "Character",
- "&ges"
- ]
- ]
- },
- {
- "input": "&ges;",
- "description": "Named entity: ges; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7e"
- ]
- ]
- },
- {
- "input": "&gescc",
- "description": "Bad named entity: gescc without a semi-colon",
- "output": [
- [
- "Character",
- "&gescc"
- ]
- ]
- },
- {
- "input": "&gescc;",
- "description": "Named entity: gescc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa9"
- ]
- ]
- },
- {
- "input": "&gesdot",
- "description": "Bad named entity: gesdot without a semi-colon",
- "output": [
- [
- "Character",
- "&gesdot"
- ]
- ]
- },
- {
- "input": "&gesdot;",
- "description": "Named entity: gesdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a80"
- ]
- ]
- },
- {
- "input": "&gesdoto",
- "description": "Bad named entity: gesdoto without a semi-colon",
- "output": [
- [
- "Character",
- "&gesdoto"
- ]
- ]
- },
- {
- "input": "&gesdoto;",
- "description": "Named entity: gesdoto; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a82"
- ]
- ]
- },
- {
- "input": "&gesdotol",
- "description": "Bad named entity: gesdotol without a semi-colon",
- "output": [
- [
- "Character",
- "&gesdotol"
- ]
- ]
- },
- {
- "input": "&gesdotol;",
- "description": "Named entity: gesdotol; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a84"
- ]
- ]
- },
- {
- "input": "&gesl",
- "description": "Bad named entity: gesl without a semi-colon",
- "output": [
- [
- "Character",
- "&gesl"
- ]
- ]
- },
- {
- "input": "&gesl;",
- "description": "Named entity: gesl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22db\ufe00"
- ]
- ]
- },
- {
- "input": "&gesles",
- "description": "Bad named entity: gesles without a semi-colon",
- "output": [
- [
- "Character",
- "&gesles"
- ]
- ]
- },
- {
- "input": "&gesles;",
- "description": "Named entity: gesles; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a94"
- ]
- ]
- },
- {
- "input": "&gfr",
- "description": "Bad named entity: gfr without a semi-colon",
- "output": [
- [
- "Character",
- "&gfr"
- ]
- ]
- },
- {
- "input": "&gfr;",
- "description": "Named entity: gfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd24"
- ]
- ]
- },
- {
- "input": "&gg",
- "description": "Bad named entity: gg without a semi-colon",
- "output": [
- [
- "Character",
- "&gg"
- ]
- ]
- },
- {
- "input": "&gg;",
- "description": "Named entity: gg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226b"
- ]
- ]
- },
- {
- "input": "&ggg",
- "description": "Bad named entity: ggg without a semi-colon",
- "output": [
- [
- "Character",
- "&ggg"
- ]
- ]
- },
- {
- "input": "&ggg;",
- "description": "Named entity: ggg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d9"
- ]
- ]
- },
- {
- "input": "&gimel",
- "description": "Bad named entity: gimel without a semi-colon",
- "output": [
- [
- "Character",
- "&gimel"
- ]
- ]
- },
- {
- "input": "&gimel;",
- "description": "Named entity: gimel; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2137"
- ]
- ]
- },
- {
- "input": "&gjcy",
- "description": "Bad named entity: gjcy without a semi-colon",
- "output": [
- [
- "Character",
- "&gjcy"
- ]
- ]
- },
- {
- "input": "&gjcy;",
- "description": "Named entity: gjcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0453"
- ]
- ]
- },
- {
- "input": "&gl",
- "description": "Bad named entity: gl without a semi-colon",
- "output": [
- [
- "Character",
- "&gl"
- ]
- ]
- },
- {
- "input": "&gl;",
- "description": "Named entity: gl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2277"
- ]
- ]
- },
- {
- "input": "&glE",
- "description": "Bad named entity: glE without a semi-colon",
- "output": [
- [
- "Character",
- "&glE"
- ]
- ]
- },
- {
- "input": "&glE;",
- "description": "Named entity: glE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a92"
- ]
- ]
- },
- {
- "input": "&gla",
- "description": "Bad named entity: gla without a semi-colon",
- "output": [
- [
- "Character",
- "&gla"
- ]
- ]
- },
- {
- "input": "&gla;",
- "description": "Named entity: gla; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa5"
- ]
- ]
- },
- {
- "input": "&glj",
- "description": "Bad named entity: glj without a semi-colon",
- "output": [
- [
- "Character",
- "&glj"
- ]
- ]
- },
- {
- "input": "&glj;",
- "description": "Named entity: glj; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa4"
- ]
- ]
- },
- {
- "input": "&gnE",
- "description": "Bad named entity: gnE without a semi-colon",
- "output": [
- [
- "Character",
- "&gnE"
- ]
- ]
- },
- {
- "input": "&gnE;",
- "description": "Named entity: gnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2269"
- ]
- ]
- },
- {
- "input": "&gnap",
- "description": "Bad named entity: gnap without a semi-colon",
- "output": [
- [
- "Character",
- "&gnap"
- ]
- ]
- },
- {
- "input": "&gnap;",
- "description": "Named entity: gnap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8a"
- ]
- ]
- },
- {
- "input": "&gnapprox",
- "description": "Bad named entity: gnapprox without a semi-colon",
- "output": [
- [
- "Character",
- "&gnapprox"
- ]
- ]
- },
- {
- "input": "&gnapprox;",
- "description": "Named entity: gnapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8a"
- ]
- ]
- },
- {
- "input": "&gne",
- "description": "Bad named entity: gne without a semi-colon",
- "output": [
- [
- "Character",
- "&gne"
- ]
- ]
- },
- {
- "input": "&gne;",
- "description": "Named entity: gne; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a88"
- ]
- ]
- },
- {
- "input": "&gneq",
- "description": "Bad named entity: gneq without a semi-colon",
- "output": [
- [
- "Character",
- "&gneq"
- ]
- ]
- },
- {
- "input": "&gneq;",
- "description": "Named entity: gneq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a88"
- ]
- ]
- },
- {
- "input": "&gneqq",
- "description": "Bad named entity: gneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&gneqq"
- ]
- ]
- },
- {
- "input": "&gneqq;",
- "description": "Named entity: gneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2269"
- ]
- ]
- },
- {
- "input": "&gnsim",
- "description": "Bad named entity: gnsim without a semi-colon",
- "output": [
- [
- "Character",
- "&gnsim"
- ]
- ]
- },
- {
- "input": "&gnsim;",
- "description": "Named entity: gnsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e7"
- ]
- ]
- },
- {
- "input": "&gopf",
- "description": "Bad named entity: gopf without a semi-colon",
- "output": [
- [
- "Character",
- "&gopf"
- ]
- ]
- },
- {
- "input": "&gopf;",
- "description": "Named entity: gopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd58"
- ]
- ]
- },
- {
- "input": "&grave",
- "description": "Bad named entity: grave without a semi-colon",
- "output": [
- [
- "Character",
- "&grave"
- ]
- ]
- },
- {
- "input": "&grave;",
- "description": "Named entity: grave; with a semi-colon",
- "output": [
- [
- "Character",
- "`"
- ]
- ]
- },
- {
- "input": "&gscr",
- "description": "Bad named entity: gscr without a semi-colon",
- "output": [
- [
- "Character",
- "&gscr"
- ]
- ]
- },
- {
- "input": "&gscr;",
- "description": "Named entity: gscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210a"
- ]
- ]
- },
- {
- "input": "&gsim",
- "description": "Bad named entity: gsim without a semi-colon",
- "output": [
- [
- "Character",
- "&gsim"
- ]
- ]
- },
- {
- "input": "&gsim;",
- "description": "Named entity: gsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2273"
- ]
- ]
- },
- {
- "input": "&gsime",
- "description": "Bad named entity: gsime without a semi-colon",
- "output": [
- [
- "Character",
- "&gsime"
- ]
- ]
- },
- {
- "input": "&gsime;",
- "description": "Named entity: gsime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8e"
- ]
- ]
- },
- {
- "input": "&gsiml",
- "description": "Bad named entity: gsiml without a semi-colon",
- "output": [
- [
- "Character",
- "&gsiml"
- ]
- ]
- },
- {
- "input": "&gsiml;",
- "description": "Named entity: gsiml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a90"
- ]
- ]
- },
- {
- "input": "&gt",
- "description": "Named entity: gt without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- ">"
- ]
- ]
- },
- {
- "input": "&gt;",
- "description": "Named entity: gt; with a semi-colon",
- "output": [
- [
- "Character",
- ">"
- ]
- ]
- },
- {
- "input": "&gtcc;",
- "description": "Named entity: gtcc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa7"
- ]
- ]
- },
- {
- "input": "&gtcir;",
- "description": "Named entity: gtcir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7a"
- ]
- ]
- },
- {
- "input": "&gtdot;",
- "description": "Named entity: gtdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d7"
- ]
- ]
- },
- {
- "input": "&gtlPar;",
- "description": "Named entity: gtlPar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2995"
- ]
- ]
- },
- {
- "input": "&gtquest;",
- "description": "Named entity: gtquest; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7c"
- ]
- ]
- },
- {
- "input": "&gtrapprox;",
- "description": "Named entity: gtrapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a86"
- ]
- ]
- },
- {
- "input": "&gtrarr;",
- "description": "Named entity: gtrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2978"
- ]
- ]
- },
- {
- "input": "&gtrdot;",
- "description": "Named entity: gtrdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d7"
- ]
- ]
- },
- {
- "input": "&gtreqless;",
- "description": "Named entity: gtreqless; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22db"
- ]
- ]
- },
- {
- "input": "&gtreqqless;",
- "description": "Named entity: gtreqqless; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8c"
- ]
- ]
- },
- {
- "input": "&gtrless;",
- "description": "Named entity: gtrless; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2277"
- ]
- ]
- },
- {
- "input": "&gtrsim;",
- "description": "Named entity: gtrsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2273"
- ]
- ]
- },
- {
- "input": "&gvertneqq",
- "description": "Bad named entity: gvertneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&gvertneqq"
- ]
- ]
- },
- {
- "input": "&gvertneqq;",
- "description": "Named entity: gvertneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2269\ufe00"
- ]
- ]
- },
- {
- "input": "&gvnE",
- "description": "Bad named entity: gvnE without a semi-colon",
- "output": [
- [
- "Character",
- "&gvnE"
- ]
- ]
- },
- {
- "input": "&gvnE;",
- "description": "Named entity: gvnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2269\ufe00"
- ]
- ]
- },
- {
- "input": "&hArr",
- "description": "Bad named entity: hArr without a semi-colon",
- "output": [
- [
- "Character",
- "&hArr"
- ]
- ]
- },
- {
- "input": "&hArr;",
- "description": "Named entity: hArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d4"
- ]
- ]
- },
- {
- "input": "&hairsp",
- "description": "Bad named entity: hairsp without a semi-colon",
- "output": [
- [
- "Character",
- "&hairsp"
- ]
- ]
- },
- {
- "input": "&hairsp;",
- "description": "Named entity: hairsp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200a"
- ]
- ]
- },
- {
- "input": "&half",
- "description": "Bad named entity: half without a semi-colon",
- "output": [
- [
- "Character",
- "&half"
- ]
- ]
- },
- {
- "input": "&half;",
- "description": "Named entity: half; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00bd"
- ]
- ]
- },
- {
- "input": "&hamilt",
- "description": "Bad named entity: hamilt without a semi-colon",
- "output": [
- [
- "Character",
- "&hamilt"
- ]
- ]
- },
- {
- "input": "&hamilt;",
- "description": "Named entity: hamilt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210b"
- ]
- ]
- },
- {
- "input": "&hardcy",
- "description": "Bad named entity: hardcy without a semi-colon",
- "output": [
- [
- "Character",
- "&hardcy"
- ]
- ]
- },
- {
- "input": "&hardcy;",
- "description": "Named entity: hardcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u044a"
- ]
- ]
- },
- {
- "input": "&harr",
- "description": "Bad named entity: harr without a semi-colon",
- "output": [
- [
- "Character",
- "&harr"
- ]
- ]
- },
- {
- "input": "&harr;",
- "description": "Named entity: harr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2194"
- ]
- ]
- },
- {
- "input": "&harrcir",
- "description": "Bad named entity: harrcir without a semi-colon",
- "output": [
- [
- "Character",
- "&harrcir"
- ]
- ]
- },
- {
- "input": "&harrcir;",
- "description": "Named entity: harrcir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2948"
- ]
- ]
- },
- {
- "input": "&harrw",
- "description": "Bad named entity: harrw without a semi-colon",
- "output": [
- [
- "Character",
- "&harrw"
- ]
- ]
- },
- {
- "input": "&harrw;",
- "description": "Named entity: harrw; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ad"
- ]
- ]
- },
- {
- "input": "&hbar",
- "description": "Bad named entity: hbar without a semi-colon",
- "output": [
- [
- "Character",
- "&hbar"
- ]
- ]
- },
- {
- "input": "&hbar;",
- "description": "Named entity: hbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210f"
- ]
- ]
- },
- {
- "input": "&hcirc",
- "description": "Bad named entity: hcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&hcirc"
- ]
- ]
- },
- {
- "input": "&hcirc;",
- "description": "Named entity: hcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0125"
- ]
- ]
- },
- {
- "input": "&hearts",
- "description": "Bad named entity: hearts without a semi-colon",
- "output": [
- [
- "Character",
- "&hearts"
- ]
- ]
- },
- {
- "input": "&hearts;",
- "description": "Named entity: hearts; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2665"
- ]
- ]
- },
- {
- "input": "&heartsuit",
- "description": "Bad named entity: heartsuit without a semi-colon",
- "output": [
- [
- "Character",
- "&heartsuit"
- ]
- ]
- },
- {
- "input": "&heartsuit;",
- "description": "Named entity: heartsuit; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2665"
- ]
- ]
- },
- {
- "input": "&hellip",
- "description": "Bad named entity: hellip without a semi-colon",
- "output": [
- [
- "Character",
- "&hellip"
- ]
- ]
- },
- {
- "input": "&hellip;",
- "description": "Named entity: hellip; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2026"
- ]
- ]
- },
- {
- "input": "&hercon",
- "description": "Bad named entity: hercon without a semi-colon",
- "output": [
- [
- "Character",
- "&hercon"
- ]
- ]
- },
- {
- "input": "&hercon;",
- "description": "Named entity: hercon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b9"
- ]
- ]
- },
- {
- "input": "&hfr",
- "description": "Bad named entity: hfr without a semi-colon",
- "output": [
- [
- "Character",
- "&hfr"
- ]
- ]
- },
- {
- "input": "&hfr;",
- "description": "Named entity: hfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd25"
- ]
- ]
- },
- {
- "input": "&hksearow",
- "description": "Bad named entity: hksearow without a semi-colon",
- "output": [
- [
- "Character",
- "&hksearow"
- ]
- ]
- },
- {
- "input": "&hksearow;",
- "description": "Named entity: hksearow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2925"
- ]
- ]
- },
- {
- "input": "&hkswarow",
- "description": "Bad named entity: hkswarow without a semi-colon",
- "output": [
- [
- "Character",
- "&hkswarow"
- ]
- ]
- },
- {
- "input": "&hkswarow;",
- "description": "Named entity: hkswarow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2926"
- ]
- ]
- },
- {
- "input": "&hoarr",
- "description": "Bad named entity: hoarr without a semi-colon",
- "output": [
- [
- "Character",
- "&hoarr"
- ]
- ]
- },
- {
- "input": "&hoarr;",
- "description": "Named entity: hoarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ff"
- ]
- ]
- },
- {
- "input": "&homtht",
- "description": "Bad named entity: homtht without a semi-colon",
- "output": [
- [
- "Character",
- "&homtht"
- ]
- ]
- },
- {
- "input": "&homtht;",
- "description": "Named entity: homtht; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223b"
- ]
- ]
- },
- {
- "input": "&hookleftarrow",
- "description": "Bad named entity: hookleftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&hookleftarrow"
- ]
- ]
- },
- {
- "input": "&hookleftarrow;",
- "description": "Named entity: hookleftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a9"
- ]
- ]
- },
- {
- "input": "&hookrightarrow",
- "description": "Bad named entity: hookrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&hookrightarrow"
- ]
- ]
- },
- {
- "input": "&hookrightarrow;",
- "description": "Named entity: hookrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21aa"
- ]
- ]
- },
- {
- "input": "&hopf",
- "description": "Bad named entity: hopf without a semi-colon",
- "output": [
- [
- "Character",
- "&hopf"
- ]
- ]
- },
- {
- "input": "&hopf;",
- "description": "Named entity: hopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd59"
- ]
- ]
- },
- {
- "input": "&horbar",
- "description": "Bad named entity: horbar without a semi-colon",
- "output": [
- [
- "Character",
- "&horbar"
- ]
- ]
- },
- {
- "input": "&horbar;",
- "description": "Named entity: horbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2015"
- ]
- ]
- },
- {
- "input": "&hscr",
- "description": "Bad named entity: hscr without a semi-colon",
- "output": [
- [
- "Character",
- "&hscr"
- ]
- ]
- },
- {
- "input": "&hscr;",
- "description": "Named entity: hscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcbd"
- ]
- ]
- },
- {
- "input": "&hslash",
- "description": "Bad named entity: hslash without a semi-colon",
- "output": [
- [
- "Character",
- "&hslash"
- ]
- ]
- },
- {
- "input": "&hslash;",
- "description": "Named entity: hslash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210f"
- ]
- ]
- },
- {
- "input": "&hstrok",
- "description": "Bad named entity: hstrok without a semi-colon",
- "output": [
- [
- "Character",
- "&hstrok"
- ]
- ]
- },
- {
- "input": "&hstrok;",
- "description": "Named entity: hstrok; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0127"
- ]
- ]
- },
- {
- "input": "&hybull",
- "description": "Bad named entity: hybull without a semi-colon",
- "output": [
- [
- "Character",
- "&hybull"
- ]
- ]
- },
- {
- "input": "&hybull;",
- "description": "Named entity: hybull; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2043"
- ]
- ]
- },
- {
- "input": "&hyphen",
- "description": "Bad named entity: hyphen without a semi-colon",
- "output": [
- [
- "Character",
- "&hyphen"
- ]
- ]
- },
- {
- "input": "&hyphen;",
- "description": "Named entity: hyphen; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2010"
- ]
- ]
- },
- {
- "input": "&iacute",
- "description": "Named entity: iacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ed"
- ]
- ]
- },
- {
- "input": "&iacute;",
- "description": "Named entity: iacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ed"
- ]
- ]
- },
- {
- "input": "&ic",
- "description": "Bad named entity: ic without a semi-colon",
- "output": [
- [
- "Character",
- "&ic"
- ]
- ]
- },
- {
- "input": "&ic;",
- "description": "Named entity: ic; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2063"
- ]
- ]
- },
- {
- "input": "&icirc",
- "description": "Named entity: icirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ee"
- ]
- ]
- },
- {
- "input": "&icirc;",
- "description": "Named entity: icirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ee"
- ]
- ]
- },
- {
- "input": "&icy",
- "description": "Bad named entity: icy without a semi-colon",
- "output": [
- [
- "Character",
- "&icy"
- ]
- ]
- },
- {
- "input": "&icy;",
- "description": "Named entity: icy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0438"
- ]
- ]
- },
- {
- "input": "&iecy",
- "description": "Bad named entity: iecy without a semi-colon",
- "output": [
- [
- "Character",
- "&iecy"
- ]
- ]
- },
- {
- "input": "&iecy;",
- "description": "Named entity: iecy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0435"
- ]
- ]
- },
- {
- "input": "&iexcl",
- "description": "Named entity: iexcl without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a1"
- ]
- ]
- },
- {
- "input": "&iexcl;",
- "description": "Named entity: iexcl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a1"
- ]
- ]
- },
- {
- "input": "&iff",
- "description": "Bad named entity: iff without a semi-colon",
- "output": [
- [
- "Character",
- "&iff"
- ]
- ]
- },
- {
- "input": "&iff;",
- "description": "Named entity: iff; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d4"
- ]
- ]
- },
- {
- "input": "&ifr",
- "description": "Bad named entity: ifr without a semi-colon",
- "output": [
- [
- "Character",
- "&ifr"
- ]
- ]
- },
- {
- "input": "&ifr;",
- "description": "Named entity: ifr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd26"
- ]
- ]
- },
- {
- "input": "&igrave",
- "description": "Named entity: igrave without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ec"
- ]
- ]
- },
- {
- "input": "&igrave;",
- "description": "Named entity: igrave; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ec"
- ]
- ]
- },
- {
- "input": "&ii",
- "description": "Bad named entity: ii without a semi-colon",
- "output": [
- [
- "Character",
- "&ii"
- ]
- ]
- },
- {
- "input": "&ii;",
- "description": "Named entity: ii; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2148"
- ]
- ]
- },
- {
- "input": "&iiiint",
- "description": "Bad named entity: iiiint without a semi-colon",
- "output": [
- [
- "Character",
- "&iiiint"
- ]
- ]
- },
- {
- "input": "&iiiint;",
- "description": "Named entity: iiiint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a0c"
- ]
- ]
- },
- {
- "input": "&iiint",
- "description": "Bad named entity: iiint without a semi-colon",
- "output": [
- [
- "Character",
- "&iiint"
- ]
- ]
- },
- {
- "input": "&iiint;",
- "description": "Named entity: iiint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222d"
- ]
- ]
- },
- {
- "input": "&iinfin",
- "description": "Bad named entity: iinfin without a semi-colon",
- "output": [
- [
- "Character",
- "&iinfin"
- ]
- ]
- },
- {
- "input": "&iinfin;",
- "description": "Named entity: iinfin; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29dc"
- ]
- ]
- },
- {
- "input": "&iiota",
- "description": "Bad named entity: iiota without a semi-colon",
- "output": [
- [
- "Character",
- "&iiota"
- ]
- ]
- },
- {
- "input": "&iiota;",
- "description": "Named entity: iiota; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2129"
- ]
- ]
- },
- {
- "input": "&ijlig",
- "description": "Bad named entity: ijlig without a semi-colon",
- "output": [
- [
- "Character",
- "&ijlig"
- ]
- ]
- },
- {
- "input": "&ijlig;",
- "description": "Named entity: ijlig; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0133"
- ]
- ]
- },
- {
- "input": "&imacr",
- "description": "Bad named entity: imacr without a semi-colon",
- "output": [
- [
- "Character",
- "&imacr"
- ]
- ]
- },
- {
- "input": "&imacr;",
- "description": "Named entity: imacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u012b"
- ]
- ]
- },
- {
- "input": "&image",
- "description": "Bad named entity: image without a semi-colon",
- "output": [
- [
- "Character",
- "&image"
- ]
- ]
- },
- {
- "input": "&image;",
- "description": "Named entity: image; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2111"
- ]
- ]
- },
- {
- "input": "&imagline",
- "description": "Bad named entity: imagline without a semi-colon",
- "output": [
- [
- "Character",
- "&imagline"
- ]
- ]
- },
- {
- "input": "&imagline;",
- "description": "Named entity: imagline; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2110"
- ]
- ]
- },
- {
- "input": "&imagpart",
- "description": "Bad named entity: imagpart without a semi-colon",
- "output": [
- [
- "Character",
- "&imagpart"
- ]
- ]
- },
- {
- "input": "&imagpart;",
- "description": "Named entity: imagpart; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2111"
- ]
- ]
- },
- {
- "input": "&imath",
- "description": "Bad named entity: imath without a semi-colon",
- "output": [
- [
- "Character",
- "&imath"
- ]
- ]
- },
- {
- "input": "&imath;",
- "description": "Named entity: imath; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0131"
- ]
- ]
- },
- {
- "input": "&imof",
- "description": "Bad named entity: imof without a semi-colon",
- "output": [
- [
- "Character",
- "&imof"
- ]
- ]
- },
- {
- "input": "&imof;",
- "description": "Named entity: imof; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b7"
- ]
- ]
- },
- {
- "input": "&imped",
- "description": "Bad named entity: imped without a semi-colon",
- "output": [
- [
- "Character",
- "&imped"
- ]
- ]
- },
- {
- "input": "&imped;",
- "description": "Named entity: imped; with a semi-colon",
- "output": [
- [
- "Character",
- "\u01b5"
- ]
- ]
- },
- {
- "input": "&in",
- "description": "Bad named entity: in without a semi-colon",
- "output": [
- [
- "Character",
- "&in"
- ]
- ]
- },
- {
- "input": "&in;",
- "description": "Named entity: in; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2208"
- ]
- ]
- },
- {
- "input": "&incare",
- "description": "Bad named entity: incare without a semi-colon",
- "output": [
- [
- "Character",
- "&incare"
- ]
- ]
- },
- {
- "input": "&incare;",
- "description": "Named entity: incare; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2105"
- ]
- ]
- },
- {
- "input": "&infin",
- "description": "Bad named entity: infin without a semi-colon",
- "output": [
- [
- "Character",
- "&infin"
- ]
- ]
- },
- {
- "input": "&infin;",
- "description": "Named entity: infin; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221e"
- ]
- ]
- },
- {
- "input": "&infintie",
- "description": "Bad named entity: infintie without a semi-colon",
- "output": [
- [
- "Character",
- "&infintie"
- ]
- ]
- },
- {
- "input": "&infintie;",
- "description": "Named entity: infintie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29dd"
- ]
- ]
- },
- {
- "input": "&inodot",
- "description": "Bad named entity: inodot without a semi-colon",
- "output": [
- [
- "Character",
- "&inodot"
- ]
- ]
- },
- {
- "input": "&inodot;",
- "description": "Named entity: inodot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0131"
- ]
- ]
- },
- {
- "input": "&int",
- "description": "Bad named entity: int without a semi-colon",
- "output": [
- [
- "Character",
- "&int"
- ]
- ]
- },
- {
- "input": "&int;",
- "description": "Named entity: int; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222b"
- ]
- ]
- },
- {
- "input": "&intcal",
- "description": "Bad named entity: intcal without a semi-colon",
- "output": [
- [
- "Character",
- "&intcal"
- ]
- ]
- },
- {
- "input": "&intcal;",
- "description": "Named entity: intcal; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ba"
- ]
- ]
- },
- {
- "input": "&integers",
- "description": "Bad named entity: integers without a semi-colon",
- "output": [
- [
- "Character",
- "&integers"
- ]
- ]
- },
- {
- "input": "&integers;",
- "description": "Named entity: integers; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2124"
- ]
- ]
- },
- {
- "input": "&intercal",
- "description": "Bad named entity: intercal without a semi-colon",
- "output": [
- [
- "Character",
- "&intercal"
- ]
- ]
- },
- {
- "input": "&intercal;",
- "description": "Named entity: intercal; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ba"
- ]
- ]
- },
- {
- "input": "&intlarhk",
- "description": "Bad named entity: intlarhk without a semi-colon",
- "output": [
- [
- "Character",
- "&intlarhk"
- ]
- ]
- },
- {
- "input": "&intlarhk;",
- "description": "Named entity: intlarhk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a17"
- ]
- ]
- },
- {
- "input": "&intprod",
- "description": "Bad named entity: intprod without a semi-colon",
- "output": [
- [
- "Character",
- "&intprod"
- ]
- ]
- },
- {
- "input": "&intprod;",
- "description": "Named entity: intprod; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a3c"
- ]
- ]
- },
- {
- "input": "&iocy",
- "description": "Bad named entity: iocy without a semi-colon",
- "output": [
- [
- "Character",
- "&iocy"
- ]
- ]
- },
- {
- "input": "&iocy;",
- "description": "Named entity: iocy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0451"
- ]
- ]
- },
- {
- "input": "&iogon",
- "description": "Bad named entity: iogon without a semi-colon",
- "output": [
- [
- "Character",
- "&iogon"
- ]
- ]
- },
- {
- "input": "&iogon;",
- "description": "Named entity: iogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u012f"
- ]
- ]
- },
- {
- "input": "&iopf",
- "description": "Bad named entity: iopf without a semi-colon",
- "output": [
- [
- "Character",
- "&iopf"
- ]
- ]
- },
- {
- "input": "&iopf;",
- "description": "Named entity: iopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd5a"
- ]
- ]
- },
- {
- "input": "&iota",
- "description": "Bad named entity: iota without a semi-colon",
- "output": [
- [
- "Character",
- "&iota"
- ]
- ]
- },
- {
- "input": "&iota;",
- "description": "Named entity: iota; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b9"
- ]
- ]
- },
- {
- "input": "&iprod",
- "description": "Bad named entity: iprod without a semi-colon",
- "output": [
- [
- "Character",
- "&iprod"
- ]
- ]
- },
- {
- "input": "&iprod;",
- "description": "Named entity: iprod; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a3c"
- ]
- ]
- },
- {
- "input": "&iquest",
- "description": "Named entity: iquest without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00bf"
- ]
- ]
- },
- {
- "input": "&iquest;",
- "description": "Named entity: iquest; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00bf"
- ]
- ]
- },
- {
- "input": "&iscr",
- "description": "Bad named entity: iscr without a semi-colon",
- "output": [
- [
- "Character",
- "&iscr"
- ]
- ]
- },
- {
- "input": "&iscr;",
- "description": "Named entity: iscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcbe"
- ]
- ]
- },
- {
- "input": "&isin",
- "description": "Bad named entity: isin without a semi-colon",
- "output": [
- [
- "Character",
- "&isin"
- ]
- ]
- },
- {
- "input": "&isin;",
- "description": "Named entity: isin; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2208"
- ]
- ]
- },
- {
- "input": "&isinE",
- "description": "Bad named entity: isinE without a semi-colon",
- "output": [
- [
- "Character",
- "&isinE"
- ]
- ]
- },
- {
- "input": "&isinE;",
- "description": "Named entity: isinE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f9"
- ]
- ]
- },
- {
- "input": "&isindot",
- "description": "Bad named entity: isindot without a semi-colon",
- "output": [
- [
- "Character",
- "&isindot"
- ]
- ]
- },
- {
- "input": "&isindot;",
- "description": "Named entity: isindot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f5"
- ]
- ]
- },
- {
- "input": "&isins",
- "description": "Bad named entity: isins without a semi-colon",
- "output": [
- [
- "Character",
- "&isins"
- ]
- ]
- },
- {
- "input": "&isins;",
- "description": "Named entity: isins; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f4"
- ]
- ]
- },
- {
- "input": "&isinsv",
- "description": "Bad named entity: isinsv without a semi-colon",
- "output": [
- [
- "Character",
- "&isinsv"
- ]
- ]
- },
- {
- "input": "&isinsv;",
- "description": "Named entity: isinsv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f3"
- ]
- ]
- },
- {
- "input": "&isinv",
- "description": "Bad named entity: isinv without a semi-colon",
- "output": [
- [
- "Character",
- "&isinv"
- ]
- ]
- },
- {
- "input": "&isinv;",
- "description": "Named entity: isinv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2208"
- ]
- ]
- },
- {
- "input": "&it",
- "description": "Bad named entity: it without a semi-colon",
- "output": [
- [
- "Character",
- "&it"
- ]
- ]
- },
- {
- "input": "&it;",
- "description": "Named entity: it; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2062"
- ]
- ]
- },
- {
- "input": "&itilde",
- "description": "Bad named entity: itilde without a semi-colon",
- "output": [
- [
- "Character",
- "&itilde"
- ]
- ]
- },
- {
- "input": "&itilde;",
- "description": "Named entity: itilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0129"
- ]
- ]
- },
- {
- "input": "&iukcy",
- "description": "Bad named entity: iukcy without a semi-colon",
- "output": [
- [
- "Character",
- "&iukcy"
- ]
- ]
- },
- {
- "input": "&iukcy;",
- "description": "Named entity: iukcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0456"
- ]
- ]
- },
- {
- "input": "&iuml",
- "description": "Named entity: iuml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ef"
- ]
- ]
- },
- {
- "input": "&iuml;",
- "description": "Named entity: iuml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ef"
- ]
- ]
- },
- {
- "input": "&jcirc",
- "description": "Bad named entity: jcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&jcirc"
- ]
- ]
- },
- {
- "input": "&jcirc;",
- "description": "Named entity: jcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0135"
- ]
- ]
- },
- {
- "input": "&jcy",
- "description": "Bad named entity: jcy without a semi-colon",
- "output": [
- [
- "Character",
- "&jcy"
- ]
- ]
- },
- {
- "input": "&jcy;",
- "description": "Named entity: jcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0439"
- ]
- ]
- },
- {
- "input": "&jfr",
- "description": "Bad named entity: jfr without a semi-colon",
- "output": [
- [
- "Character",
- "&jfr"
- ]
- ]
- },
- {
- "input": "&jfr;",
- "description": "Named entity: jfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd27"
- ]
- ]
- },
- {
- "input": "&jmath",
- "description": "Bad named entity: jmath without a semi-colon",
- "output": [
- [
- "Character",
- "&jmath"
- ]
- ]
- },
- {
- "input": "&jmath;",
- "description": "Named entity: jmath; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0237"
- ]
- ]
- },
- {
- "input": "&jopf",
- "description": "Bad named entity: jopf without a semi-colon",
- "output": [
- [
- "Character",
- "&jopf"
- ]
- ]
- },
- {
- "input": "&jopf;",
- "description": "Named entity: jopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd5b"
- ]
- ]
- },
- {
- "input": "&jscr",
- "description": "Bad named entity: jscr without a semi-colon",
- "output": [
- [
- "Character",
- "&jscr"
- ]
- ]
- },
- {
- "input": "&jscr;",
- "description": "Named entity: jscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcbf"
- ]
- ]
- },
- {
- "input": "&jsercy",
- "description": "Bad named entity: jsercy without a semi-colon",
- "output": [
- [
- "Character",
- "&jsercy"
- ]
- ]
- },
- {
- "input": "&jsercy;",
- "description": "Named entity: jsercy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0458"
- ]
- ]
- },
- {
- "input": "&jukcy",
- "description": "Bad named entity: jukcy without a semi-colon",
- "output": [
- [
- "Character",
- "&jukcy"
- ]
- ]
- },
- {
- "input": "&jukcy;",
- "description": "Named entity: jukcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0454"
- ]
- ]
- },
- {
- "input": "&kappa",
- "description": "Bad named entity: kappa without a semi-colon",
- "output": [
- [
- "Character",
- "&kappa"
- ]
- ]
- },
- {
- "input": "&kappa;",
- "description": "Named entity: kappa; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03ba"
- ]
- ]
- },
- {
- "input": "&kappav",
- "description": "Bad named entity: kappav without a semi-colon",
- "output": [
- [
- "Character",
- "&kappav"
- ]
- ]
- },
- {
- "input": "&kappav;",
- "description": "Named entity: kappav; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f0"
- ]
- ]
- },
- {
- "input": "&kcedil",
- "description": "Bad named entity: kcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&kcedil"
- ]
- ]
- },
- {
- "input": "&kcedil;",
- "description": "Named entity: kcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0137"
- ]
- ]
- },
- {
- "input": "&kcy",
- "description": "Bad named entity: kcy without a semi-colon",
- "output": [
- [
- "Character",
- "&kcy"
- ]
- ]
- },
- {
- "input": "&kcy;",
- "description": "Named entity: kcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u043a"
- ]
- ]
- },
- {
- "input": "&kfr",
- "description": "Bad named entity: kfr without a semi-colon",
- "output": [
- [
- "Character",
- "&kfr"
- ]
- ]
- },
- {
- "input": "&kfr;",
- "description": "Named entity: kfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd28"
- ]
- ]
- },
- {
- "input": "&kgreen",
- "description": "Bad named entity: kgreen without a semi-colon",
- "output": [
- [
- "Character",
- "&kgreen"
- ]
- ]
- },
- {
- "input": "&kgreen;",
- "description": "Named entity: kgreen; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0138"
- ]
- ]
- },
- {
- "input": "&khcy",
- "description": "Bad named entity: khcy without a semi-colon",
- "output": [
- [
- "Character",
- "&khcy"
- ]
- ]
- },
- {
- "input": "&khcy;",
- "description": "Named entity: khcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0445"
- ]
- ]
- },
- {
- "input": "&kjcy",
- "description": "Bad named entity: kjcy without a semi-colon",
- "output": [
- [
- "Character",
- "&kjcy"
- ]
- ]
- },
- {
- "input": "&kjcy;",
- "description": "Named entity: kjcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u045c"
- ]
- ]
- },
- {
- "input": "&kopf",
- "description": "Bad named entity: kopf without a semi-colon",
- "output": [
- [
- "Character",
- "&kopf"
- ]
- ]
- },
- {
- "input": "&kopf;",
- "description": "Named entity: kopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd5c"
- ]
- ]
- },
- {
- "input": "&kscr",
- "description": "Bad named entity: kscr without a semi-colon",
- "output": [
- [
- "Character",
- "&kscr"
- ]
- ]
- },
- {
- "input": "&kscr;",
- "description": "Named entity: kscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc0"
- ]
- ]
- },
- {
- "input": "&lAarr",
- "description": "Bad named entity: lAarr without a semi-colon",
- "output": [
- [
- "Character",
- "&lAarr"
- ]
- ]
- },
- {
- "input": "&lAarr;",
- "description": "Named entity: lAarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21da"
- ]
- ]
- },
- {
- "input": "&lArr",
- "description": "Bad named entity: lArr without a semi-colon",
- "output": [
- [
- "Character",
- "&lArr"
- ]
- ]
- },
- {
- "input": "&lArr;",
- "description": "Named entity: lArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d0"
- ]
- ]
- },
- {
- "input": "&lAtail",
- "description": "Bad named entity: lAtail without a semi-colon",
- "output": [
- [
- "Character",
- "&lAtail"
- ]
- ]
- },
- {
- "input": "&lAtail;",
- "description": "Named entity: lAtail; with a semi-colon",
- "output": [
- [
- "Character",
- "\u291b"
- ]
- ]
- },
- {
- "input": "&lBarr",
- "description": "Bad named entity: lBarr without a semi-colon",
- "output": [
- [
- "Character",
- "&lBarr"
- ]
- ]
- },
- {
- "input": "&lBarr;",
- "description": "Named entity: lBarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u290e"
- ]
- ]
- },
- {
- "input": "&lE",
- "description": "Bad named entity: lE without a semi-colon",
- "output": [
- [
- "Character",
- "&lE"
- ]
- ]
- },
- {
- "input": "&lE;",
- "description": "Named entity: lE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2266"
- ]
- ]
- },
- {
- "input": "&lEg",
- "description": "Bad named entity: lEg without a semi-colon",
- "output": [
- [
- "Character",
- "&lEg"
- ]
- ]
- },
- {
- "input": "&lEg;",
- "description": "Named entity: lEg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8b"
- ]
- ]
- },
- {
- "input": "&lHar",
- "description": "Bad named entity: lHar without a semi-colon",
- "output": [
- [
- "Character",
- "&lHar"
- ]
- ]
- },
- {
- "input": "&lHar;",
- "description": "Named entity: lHar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2962"
- ]
- ]
- },
- {
- "input": "&lacute",
- "description": "Bad named entity: lacute without a semi-colon",
- "output": [
- [
- "Character",
- "&lacute"
- ]
- ]
- },
- {
- "input": "&lacute;",
- "description": "Named entity: lacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u013a"
- ]
- ]
- },
- {
- "input": "&laemptyv",
- "description": "Bad named entity: laemptyv without a semi-colon",
- "output": [
- [
- "Character",
- "&laemptyv"
- ]
- ]
- },
- {
- "input": "&laemptyv;",
- "description": "Named entity: laemptyv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b4"
- ]
- ]
- },
- {
- "input": "&lagran",
- "description": "Bad named entity: lagran without a semi-colon",
- "output": [
- [
- "Character",
- "&lagran"
- ]
- ]
- },
- {
- "input": "&lagran;",
- "description": "Named entity: lagran; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2112"
- ]
- ]
- },
- {
- "input": "&lambda",
- "description": "Bad named entity: lambda without a semi-colon",
- "output": [
- [
- "Character",
- "&lambda"
- ]
- ]
- },
- {
- "input": "&lambda;",
- "description": "Named entity: lambda; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03bb"
- ]
- ]
- },
- {
- "input": "&lang",
- "description": "Bad named entity: lang without a semi-colon",
- "output": [
- [
- "Character",
- "&lang"
- ]
- ]
- },
- {
- "input": "&lang;",
- "description": "Named entity: lang; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e8"
- ]
- ]
- },
- {
- "input": "&langd",
- "description": "Bad named entity: langd without a semi-colon",
- "output": [
- [
- "Character",
- "&langd"
- ]
- ]
- },
- {
- "input": "&langd;",
- "description": "Named entity: langd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2991"
- ]
- ]
- },
- {
- "input": "&langle",
- "description": "Bad named entity: langle without a semi-colon",
- "output": [
- [
- "Character",
- "&langle"
- ]
- ]
- },
- {
- "input": "&langle;",
- "description": "Named entity: langle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e8"
- ]
- ]
- },
- {
- "input": "&lap",
- "description": "Bad named entity: lap without a semi-colon",
- "output": [
- [
- "Character",
- "&lap"
- ]
- ]
- },
- {
- "input": "&lap;",
- "description": "Named entity: lap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a85"
- ]
- ]
- },
- {
- "input": "&laquo",
- "description": "Named entity: laquo without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ab"
- ]
- ]
- },
- {
- "input": "&laquo;",
- "description": "Named entity: laquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ab"
- ]
- ]
- },
- {
- "input": "&larr",
- "description": "Bad named entity: larr without a semi-colon",
- "output": [
- [
- "Character",
- "&larr"
- ]
- ]
- },
- {
- "input": "&larr;",
- "description": "Named entity: larr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2190"
- ]
- ]
- },
- {
- "input": "&larrb",
- "description": "Bad named entity: larrb without a semi-colon",
- "output": [
- [
- "Character",
- "&larrb"
- ]
- ]
- },
- {
- "input": "&larrb;",
- "description": "Named entity: larrb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21e4"
- ]
- ]
- },
- {
- "input": "&larrbfs",
- "description": "Bad named entity: larrbfs without a semi-colon",
- "output": [
- [
- "Character",
- "&larrbfs"
- ]
- ]
- },
- {
- "input": "&larrbfs;",
- "description": "Named entity: larrbfs; with a semi-colon",
- "output": [
- [
- "Character",
- "\u291f"
- ]
- ]
- },
- {
- "input": "&larrfs",
- "description": "Bad named entity: larrfs without a semi-colon",
- "output": [
- [
- "Character",
- "&larrfs"
- ]
- ]
- },
- {
- "input": "&larrfs;",
- "description": "Named entity: larrfs; with a semi-colon",
- "output": [
- [
- "Character",
- "\u291d"
- ]
- ]
- },
- {
- "input": "&larrhk",
- "description": "Bad named entity: larrhk without a semi-colon",
- "output": [
- [
- "Character",
- "&larrhk"
- ]
- ]
- },
- {
- "input": "&larrhk;",
- "description": "Named entity: larrhk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a9"
- ]
- ]
- },
- {
- "input": "&larrlp",
- "description": "Bad named entity: larrlp without a semi-colon",
- "output": [
- [
- "Character",
- "&larrlp"
- ]
- ]
- },
- {
- "input": "&larrlp;",
- "description": "Named entity: larrlp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ab"
- ]
- ]
- },
- {
- "input": "&larrpl",
- "description": "Bad named entity: larrpl without a semi-colon",
- "output": [
- [
- "Character",
- "&larrpl"
- ]
- ]
- },
- {
- "input": "&larrpl;",
- "description": "Named entity: larrpl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2939"
- ]
- ]
- },
- {
- "input": "&larrsim",
- "description": "Bad named entity: larrsim without a semi-colon",
- "output": [
- [
- "Character",
- "&larrsim"
- ]
- ]
- },
- {
- "input": "&larrsim;",
- "description": "Named entity: larrsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2973"
- ]
- ]
- },
- {
- "input": "&larrtl",
- "description": "Bad named entity: larrtl without a semi-colon",
- "output": [
- [
- "Character",
- "&larrtl"
- ]
- ]
- },
- {
- "input": "&larrtl;",
- "description": "Named entity: larrtl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a2"
- ]
- ]
- },
- {
- "input": "&lat",
- "description": "Bad named entity: lat without a semi-colon",
- "output": [
- [
- "Character",
- "&lat"
- ]
- ]
- },
- {
- "input": "&lat;",
- "description": "Named entity: lat; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aab"
- ]
- ]
- },
- {
- "input": "&latail",
- "description": "Bad named entity: latail without a semi-colon",
- "output": [
- [
- "Character",
- "&latail"
- ]
- ]
- },
- {
- "input": "&latail;",
- "description": "Named entity: latail; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2919"
- ]
- ]
- },
- {
- "input": "&late",
- "description": "Bad named entity: late without a semi-colon",
- "output": [
- [
- "Character",
- "&late"
- ]
- ]
- },
- {
- "input": "&late;",
- "description": "Named entity: late; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aad"
- ]
- ]
- },
- {
- "input": "&lates",
- "description": "Bad named entity: lates without a semi-colon",
- "output": [
- [
- "Character",
- "&lates"
- ]
- ]
- },
- {
- "input": "&lates;",
- "description": "Named entity: lates; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aad\ufe00"
- ]
- ]
- },
- {
- "input": "&lbarr",
- "description": "Bad named entity: lbarr without a semi-colon",
- "output": [
- [
- "Character",
- "&lbarr"
- ]
- ]
- },
- {
- "input": "&lbarr;",
- "description": "Named entity: lbarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u290c"
- ]
- ]
- },
- {
- "input": "&lbbrk",
- "description": "Bad named entity: lbbrk without a semi-colon",
- "output": [
- [
- "Character",
- "&lbbrk"
- ]
- ]
- },
- {
- "input": "&lbbrk;",
- "description": "Named entity: lbbrk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2772"
- ]
- ]
- },
- {
- "input": "&lbrace",
- "description": "Bad named entity: lbrace without a semi-colon",
- "output": [
- [
- "Character",
- "&lbrace"
- ]
- ]
- },
- {
- "input": "&lbrace;",
- "description": "Named entity: lbrace; with a semi-colon",
- "output": [
- [
- "Character",
- "{"
- ]
- ]
- },
- {
- "input": "&lbrack",
- "description": "Bad named entity: lbrack without a semi-colon",
- "output": [
- [
- "Character",
- "&lbrack"
- ]
- ]
- },
- {
- "input": "&lbrack;",
- "description": "Named entity: lbrack; with a semi-colon",
- "output": [
- [
- "Character",
- "["
- ]
- ]
- },
- {
- "input": "&lbrke",
- "description": "Bad named entity: lbrke without a semi-colon",
- "output": [
- [
- "Character",
- "&lbrke"
- ]
- ]
- },
- {
- "input": "&lbrke;",
- "description": "Named entity: lbrke; with a semi-colon",
- "output": [
- [
- "Character",
- "\u298b"
- ]
- ]
- },
- {
- "input": "&lbrksld",
- "description": "Bad named entity: lbrksld without a semi-colon",
- "output": [
- [
- "Character",
- "&lbrksld"
- ]
- ]
- },
- {
- "input": "&lbrksld;",
- "description": "Named entity: lbrksld; with a semi-colon",
- "output": [
- [
- "Character",
- "\u298f"
- ]
- ]
- },
- {
- "input": "&lbrkslu",
- "description": "Bad named entity: lbrkslu without a semi-colon",
- "output": [
- [
- "Character",
- "&lbrkslu"
- ]
- ]
- },
- {
- "input": "&lbrkslu;",
- "description": "Named entity: lbrkslu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u298d"
- ]
- ]
- },
- {
- "input": "&lcaron",
- "description": "Bad named entity: lcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&lcaron"
- ]
- ]
- },
- {
- "input": "&lcaron;",
- "description": "Named entity: lcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u013e"
- ]
- ]
- },
- {
- "input": "&lcedil",
- "description": "Bad named entity: lcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&lcedil"
- ]
- ]
- },
- {
- "input": "&lcedil;",
- "description": "Named entity: lcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u013c"
- ]
- ]
- },
- {
- "input": "&lceil",
- "description": "Bad named entity: lceil without a semi-colon",
- "output": [
- [
- "Character",
- "&lceil"
- ]
- ]
- },
- {
- "input": "&lceil;",
- "description": "Named entity: lceil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2308"
- ]
- ]
- },
- {
- "input": "&lcub",
- "description": "Bad named entity: lcub without a semi-colon",
- "output": [
- [
- "Character",
- "&lcub"
- ]
- ]
- },
- {
- "input": "&lcub;",
- "description": "Named entity: lcub; with a semi-colon",
- "output": [
- [
- "Character",
- "{"
- ]
- ]
- },
- {
- "input": "&lcy",
- "description": "Bad named entity: lcy without a semi-colon",
- "output": [
- [
- "Character",
- "&lcy"
- ]
- ]
- },
- {
- "input": "&lcy;",
- "description": "Named entity: lcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u043b"
- ]
- ]
- },
- {
- "input": "&ldca",
- "description": "Bad named entity: ldca without a semi-colon",
- "output": [
- [
- "Character",
- "&ldca"
- ]
- ]
- },
- {
- "input": "&ldca;",
- "description": "Named entity: ldca; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2936"
- ]
- ]
- },
- {
- "input": "&ldquo",
- "description": "Bad named entity: ldquo without a semi-colon",
- "output": [
- [
- "Character",
- "&ldquo"
- ]
- ]
- },
- {
- "input": "&ldquo;",
- "description": "Named entity: ldquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201c"
- ]
- ]
- },
- {
- "input": "&ldquor",
- "description": "Bad named entity: ldquor without a semi-colon",
- "output": [
- [
- "Character",
- "&ldquor"
- ]
- ]
- },
- {
- "input": "&ldquor;",
- "description": "Named entity: ldquor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201e"
- ]
- ]
- },
- {
- "input": "&ldrdhar",
- "description": "Bad named entity: ldrdhar without a semi-colon",
- "output": [
- [
- "Character",
- "&ldrdhar"
- ]
- ]
- },
- {
- "input": "&ldrdhar;",
- "description": "Named entity: ldrdhar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2967"
- ]
- ]
- },
- {
- "input": "&ldrushar",
- "description": "Bad named entity: ldrushar without a semi-colon",
- "output": [
- [
- "Character",
- "&ldrushar"
- ]
- ]
- },
- {
- "input": "&ldrushar;",
- "description": "Named entity: ldrushar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u294b"
- ]
- ]
- },
- {
- "input": "&ldsh",
- "description": "Bad named entity: ldsh without a semi-colon",
- "output": [
- [
- "Character",
- "&ldsh"
- ]
- ]
- },
- {
- "input": "&ldsh;",
- "description": "Named entity: ldsh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b2"
- ]
- ]
- },
- {
- "input": "&le",
- "description": "Bad named entity: le without a semi-colon",
- "output": [
- [
- "Character",
- "&le"
- ]
- ]
- },
- {
- "input": "&le;",
- "description": "Named entity: le; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2264"
- ]
- ]
- },
- {
- "input": "&leftarrow",
- "description": "Bad named entity: leftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&leftarrow"
- ]
- ]
- },
- {
- "input": "&leftarrow;",
- "description": "Named entity: leftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2190"
- ]
- ]
- },
- {
- "input": "&leftarrowtail",
- "description": "Bad named entity: leftarrowtail without a semi-colon",
- "output": [
- [
- "Character",
- "&leftarrowtail"
- ]
- ]
- },
- {
- "input": "&leftarrowtail;",
- "description": "Named entity: leftarrowtail; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a2"
- ]
- ]
- },
- {
- "input": "&leftharpoondown",
- "description": "Bad named entity: leftharpoondown without a semi-colon",
- "output": [
- [
- "Character",
- "&leftharpoondown"
- ]
- ]
- },
- {
- "input": "&leftharpoondown;",
- "description": "Named entity: leftharpoondown; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bd"
- ]
- ]
- },
- {
- "input": "&leftharpoonup",
- "description": "Bad named entity: leftharpoonup without a semi-colon",
- "output": [
- [
- "Character",
- "&leftharpoonup"
- ]
- ]
- },
- {
- "input": "&leftharpoonup;",
- "description": "Named entity: leftharpoonup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bc"
- ]
- ]
- },
- {
- "input": "&leftleftarrows",
- "description": "Bad named entity: leftleftarrows without a semi-colon",
- "output": [
- [
- "Character",
- "&leftleftarrows"
- ]
- ]
- },
- {
- "input": "&leftleftarrows;",
- "description": "Named entity: leftleftarrows; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c7"
- ]
- ]
- },
- {
- "input": "&leftrightarrow",
- "description": "Bad named entity: leftrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&leftrightarrow"
- ]
- ]
- },
- {
- "input": "&leftrightarrow;",
- "description": "Named entity: leftrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2194"
- ]
- ]
- },
- {
- "input": "&leftrightarrows",
- "description": "Bad named entity: leftrightarrows without a semi-colon",
- "output": [
- [
- "Character",
- "&leftrightarrows"
- ]
- ]
- },
- {
- "input": "&leftrightarrows;",
- "description": "Named entity: leftrightarrows; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c6"
- ]
- ]
- },
- {
- "input": "&leftrightharpoons",
- "description": "Bad named entity: leftrightharpoons without a semi-colon",
- "output": [
- [
- "Character",
- "&leftrightharpoons"
- ]
- ]
- },
- {
- "input": "&leftrightharpoons;",
- "description": "Named entity: leftrightharpoons; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cb"
- ]
- ]
- },
- {
- "input": "&leftrightsquigarrow",
- "description": "Bad named entity: leftrightsquigarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&leftrightsquigarrow"
- ]
- ]
- },
- {
- "input": "&leftrightsquigarrow;",
- "description": "Named entity: leftrightsquigarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ad"
- ]
- ]
- },
- {
- "input": "&leftthreetimes",
- "description": "Bad named entity: leftthreetimes without a semi-colon",
- "output": [
- [
- "Character",
- "&leftthreetimes"
- ]
- ]
- },
- {
- "input": "&leftthreetimes;",
- "description": "Named entity: leftthreetimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22cb"
- ]
- ]
- },
- {
- "input": "&leg",
- "description": "Bad named entity: leg without a semi-colon",
- "output": [
- [
- "Character",
- "&leg"
- ]
- ]
- },
- {
- "input": "&leg;",
- "description": "Named entity: leg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22da"
- ]
- ]
- },
- {
- "input": "&leq",
- "description": "Bad named entity: leq without a semi-colon",
- "output": [
- [
- "Character",
- "&leq"
- ]
- ]
- },
- {
- "input": "&leq;",
- "description": "Named entity: leq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2264"
- ]
- ]
- },
- {
- "input": "&leqq",
- "description": "Bad named entity: leqq without a semi-colon",
- "output": [
- [
- "Character",
- "&leqq"
- ]
- ]
- },
- {
- "input": "&leqq;",
- "description": "Named entity: leqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2266"
- ]
- ]
- },
- {
- "input": "&leqslant",
- "description": "Bad named entity: leqslant without a semi-colon",
- "output": [
- [
- "Character",
- "&leqslant"
- ]
- ]
- },
- {
- "input": "&leqslant;",
- "description": "Named entity: leqslant; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7d"
- ]
- ]
- },
- {
- "input": "&les",
- "description": "Bad named entity: les without a semi-colon",
- "output": [
- [
- "Character",
- "&les"
- ]
- ]
- },
- {
- "input": "&les;",
- "description": "Named entity: les; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7d"
- ]
- ]
- },
- {
- "input": "&lescc",
- "description": "Bad named entity: lescc without a semi-colon",
- "output": [
- [
- "Character",
- "&lescc"
- ]
- ]
- },
- {
- "input": "&lescc;",
- "description": "Named entity: lescc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa8"
- ]
- ]
- },
- {
- "input": "&lesdot",
- "description": "Bad named entity: lesdot without a semi-colon",
- "output": [
- [
- "Character",
- "&lesdot"
- ]
- ]
- },
- {
- "input": "&lesdot;",
- "description": "Named entity: lesdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7f"
- ]
- ]
- },
- {
- "input": "&lesdoto",
- "description": "Bad named entity: lesdoto without a semi-colon",
- "output": [
- [
- "Character",
- "&lesdoto"
- ]
- ]
- },
- {
- "input": "&lesdoto;",
- "description": "Named entity: lesdoto; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a81"
- ]
- ]
- },
- {
- "input": "&lesdotor",
- "description": "Bad named entity: lesdotor without a semi-colon",
- "output": [
- [
- "Character",
- "&lesdotor"
- ]
- ]
- },
- {
- "input": "&lesdotor;",
- "description": "Named entity: lesdotor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a83"
- ]
- ]
- },
- {
- "input": "&lesg",
- "description": "Bad named entity: lesg without a semi-colon",
- "output": [
- [
- "Character",
- "&lesg"
- ]
- ]
- },
- {
- "input": "&lesg;",
- "description": "Named entity: lesg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22da\ufe00"
- ]
- ]
- },
- {
- "input": "&lesges",
- "description": "Bad named entity: lesges without a semi-colon",
- "output": [
- [
- "Character",
- "&lesges"
- ]
- ]
- },
- {
- "input": "&lesges;",
- "description": "Named entity: lesges; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a93"
- ]
- ]
- },
- {
- "input": "&lessapprox",
- "description": "Bad named entity: lessapprox without a semi-colon",
- "output": [
- [
- "Character",
- "&lessapprox"
- ]
- ]
- },
- {
- "input": "&lessapprox;",
- "description": "Named entity: lessapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a85"
- ]
- ]
- },
- {
- "input": "&lessdot",
- "description": "Bad named entity: lessdot without a semi-colon",
- "output": [
- [
- "Character",
- "&lessdot"
- ]
- ]
- },
- {
- "input": "&lessdot;",
- "description": "Named entity: lessdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d6"
- ]
- ]
- },
- {
- "input": "&lesseqgtr",
- "description": "Bad named entity: lesseqgtr without a semi-colon",
- "output": [
- [
- "Character",
- "&lesseqgtr"
- ]
- ]
- },
- {
- "input": "&lesseqgtr;",
- "description": "Named entity: lesseqgtr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22da"
- ]
- ]
- },
- {
- "input": "&lesseqqgtr",
- "description": "Bad named entity: lesseqqgtr without a semi-colon",
- "output": [
- [
- "Character",
- "&lesseqqgtr"
- ]
- ]
- },
- {
- "input": "&lesseqqgtr;",
- "description": "Named entity: lesseqqgtr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8b"
- ]
- ]
- },
- {
- "input": "&lessgtr",
- "description": "Bad named entity: lessgtr without a semi-colon",
- "output": [
- [
- "Character",
- "&lessgtr"
- ]
- ]
- },
- {
- "input": "&lessgtr;",
- "description": "Named entity: lessgtr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2276"
- ]
- ]
- },
- {
- "input": "&lesssim",
- "description": "Bad named entity: lesssim without a semi-colon",
- "output": [
- [
- "Character",
- "&lesssim"
- ]
- ]
- },
- {
- "input": "&lesssim;",
- "description": "Named entity: lesssim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2272"
- ]
- ]
- },
- {
- "input": "&lfisht",
- "description": "Bad named entity: lfisht without a semi-colon",
- "output": [
- [
- "Character",
- "&lfisht"
- ]
- ]
- },
- {
- "input": "&lfisht;",
- "description": "Named entity: lfisht; with a semi-colon",
- "output": [
- [
- "Character",
- "\u297c"
- ]
- ]
- },
- {
- "input": "&lfloor",
- "description": "Bad named entity: lfloor without a semi-colon",
- "output": [
- [
- "Character",
- "&lfloor"
- ]
- ]
- },
- {
- "input": "&lfloor;",
- "description": "Named entity: lfloor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u230a"
- ]
- ]
- },
- {
- "input": "&lfr",
- "description": "Bad named entity: lfr without a semi-colon",
- "output": [
- [
- "Character",
- "&lfr"
- ]
- ]
- },
- {
- "input": "&lfr;",
- "description": "Named entity: lfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd29"
- ]
- ]
- },
- {
- "input": "&lg",
- "description": "Bad named entity: lg without a semi-colon",
- "output": [
- [
- "Character",
- "&lg"
- ]
- ]
- },
- {
- "input": "&lg;",
- "description": "Named entity: lg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2276"
- ]
- ]
- },
- {
- "input": "&lgE",
- "description": "Bad named entity: lgE without a semi-colon",
- "output": [
- [
- "Character",
- "&lgE"
- ]
- ]
- },
- {
- "input": "&lgE;",
- "description": "Named entity: lgE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a91"
- ]
- ]
- },
- {
- "input": "&lhard",
- "description": "Bad named entity: lhard without a semi-colon",
- "output": [
- [
- "Character",
- "&lhard"
- ]
- ]
- },
- {
- "input": "&lhard;",
- "description": "Named entity: lhard; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bd"
- ]
- ]
- },
- {
- "input": "&lharu",
- "description": "Bad named entity: lharu without a semi-colon",
- "output": [
- [
- "Character",
- "&lharu"
- ]
- ]
- },
- {
- "input": "&lharu;",
- "description": "Named entity: lharu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bc"
- ]
- ]
- },
- {
- "input": "&lharul",
- "description": "Bad named entity: lharul without a semi-colon",
- "output": [
- [
- "Character",
- "&lharul"
- ]
- ]
- },
- {
- "input": "&lharul;",
- "description": "Named entity: lharul; with a semi-colon",
- "output": [
- [
- "Character",
- "\u296a"
- ]
- ]
- },
- {
- "input": "&lhblk",
- "description": "Bad named entity: lhblk without a semi-colon",
- "output": [
- [
- "Character",
- "&lhblk"
- ]
- ]
- },
- {
- "input": "&lhblk;",
- "description": "Named entity: lhblk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2584"
- ]
- ]
- },
- {
- "input": "&ljcy",
- "description": "Bad named entity: ljcy without a semi-colon",
- "output": [
- [
- "Character",
- "&ljcy"
- ]
- ]
- },
- {
- "input": "&ljcy;",
- "description": "Named entity: ljcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0459"
- ]
- ]
- },
- {
- "input": "&ll",
- "description": "Bad named entity: ll without a semi-colon",
- "output": [
- [
- "Character",
- "&ll"
- ]
- ]
- },
- {
- "input": "&ll;",
- "description": "Named entity: ll; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226a"
- ]
- ]
- },
- {
- "input": "&llarr",
- "description": "Bad named entity: llarr without a semi-colon",
- "output": [
- [
- "Character",
- "&llarr"
- ]
- ]
- },
- {
- "input": "&llarr;",
- "description": "Named entity: llarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c7"
- ]
- ]
- },
- {
- "input": "&llcorner",
- "description": "Bad named entity: llcorner without a semi-colon",
- "output": [
- [
- "Character",
- "&llcorner"
- ]
- ]
- },
- {
- "input": "&llcorner;",
- "description": "Named entity: llcorner; with a semi-colon",
- "output": [
- [
- "Character",
- "\u231e"
- ]
- ]
- },
- {
- "input": "&llhard",
- "description": "Bad named entity: llhard without a semi-colon",
- "output": [
- [
- "Character",
- "&llhard"
- ]
- ]
- },
- {
- "input": "&llhard;",
- "description": "Named entity: llhard; with a semi-colon",
- "output": [
- [
- "Character",
- "\u296b"
- ]
- ]
- },
- {
- "input": "&lltri",
- "description": "Bad named entity: lltri without a semi-colon",
- "output": [
- [
- "Character",
- "&lltri"
- ]
- ]
- },
- {
- "input": "&lltri;",
- "description": "Named entity: lltri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25fa"
- ]
- ]
- },
- {
- "input": "&lmidot",
- "description": "Bad named entity: lmidot without a semi-colon",
- "output": [
- [
- "Character",
- "&lmidot"
- ]
- ]
- },
- {
- "input": "&lmidot;",
- "description": "Named entity: lmidot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0140"
- ]
- ]
- },
- {
- "input": "&lmoust",
- "description": "Bad named entity: lmoust without a semi-colon",
- "output": [
- [
- "Character",
- "&lmoust"
- ]
- ]
- },
- {
- "input": "&lmoust;",
- "description": "Named entity: lmoust; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b0"
- ]
- ]
- },
- {
- "input": "&lmoustache",
- "description": "Bad named entity: lmoustache without a semi-colon",
- "output": [
- [
- "Character",
- "&lmoustache"
- ]
- ]
- },
- {
- "input": "&lmoustache;",
- "description": "Named entity: lmoustache; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b0"
- ]
- ]
- },
- {
- "input": "&lnE",
- "description": "Bad named entity: lnE without a semi-colon",
- "output": [
- [
- "Character",
- "&lnE"
- ]
- ]
- },
- {
- "input": "&lnE;",
- "description": "Named entity: lnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2268"
- ]
- ]
- },
- {
- "input": "&lnap",
- "description": "Bad named entity: lnap without a semi-colon",
- "output": [
- [
- "Character",
- "&lnap"
- ]
- ]
- },
- {
- "input": "&lnap;",
- "description": "Named entity: lnap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a89"
- ]
- ]
- },
- {
- "input": "&lnapprox",
- "description": "Bad named entity: lnapprox without a semi-colon",
- "output": [
- [
- "Character",
- "&lnapprox"
- ]
- ]
- },
- {
- "input": "&lnapprox;",
- "description": "Named entity: lnapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a89"
- ]
- ]
- },
- {
- "input": "&lne",
- "description": "Bad named entity: lne without a semi-colon",
- "output": [
- [
- "Character",
- "&lne"
- ]
- ]
- },
- {
- "input": "&lne;",
- "description": "Named entity: lne; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a87"
- ]
- ]
- },
- {
- "input": "&lneq",
- "description": "Bad named entity: lneq without a semi-colon",
- "output": [
- [
- "Character",
- "&lneq"
- ]
- ]
- },
- {
- "input": "&lneq;",
- "description": "Named entity: lneq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a87"
- ]
- ]
- },
- {
- "input": "&lneqq",
- "description": "Bad named entity: lneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&lneqq"
- ]
- ]
- },
- {
- "input": "&lneqq;",
- "description": "Named entity: lneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2268"
- ]
- ]
- },
- {
- "input": "&lnsim",
- "description": "Bad named entity: lnsim without a semi-colon",
- "output": [
- [
- "Character",
- "&lnsim"
- ]
- ]
- },
- {
- "input": "&lnsim;",
- "description": "Named entity: lnsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e6"
- ]
- ]
- },
- {
- "input": "&loang",
- "description": "Bad named entity: loang without a semi-colon",
- "output": [
- [
- "Character",
- "&loang"
- ]
- ]
- },
- {
- "input": "&loang;",
- "description": "Named entity: loang; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27ec"
- ]
- ]
- },
- {
- "input": "&loarr",
- "description": "Bad named entity: loarr without a semi-colon",
- "output": [
- [
- "Character",
- "&loarr"
- ]
- ]
- },
- {
- "input": "&loarr;",
- "description": "Named entity: loarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21fd"
- ]
- ]
- },
- {
- "input": "&lobrk",
- "description": "Bad named entity: lobrk without a semi-colon",
- "output": [
- [
- "Character",
- "&lobrk"
- ]
- ]
- },
- {
- "input": "&lobrk;",
- "description": "Named entity: lobrk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e6"
- ]
- ]
- },
- {
- "input": "&longleftarrow",
- "description": "Bad named entity: longleftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&longleftarrow"
- ]
- ]
- },
- {
- "input": "&longleftarrow;",
- "description": "Named entity: longleftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f5"
- ]
- ]
- },
- {
- "input": "&longleftrightarrow",
- "description": "Bad named entity: longleftrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&longleftrightarrow"
- ]
- ]
- },
- {
- "input": "&longleftrightarrow;",
- "description": "Named entity: longleftrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f7"
- ]
- ]
- },
- {
- "input": "&longmapsto",
- "description": "Bad named entity: longmapsto without a semi-colon",
- "output": [
- [
- "Character",
- "&longmapsto"
- ]
- ]
- },
- {
- "input": "&longmapsto;",
- "description": "Named entity: longmapsto; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27fc"
- ]
- ]
- },
- {
- "input": "&longrightarrow",
- "description": "Bad named entity: longrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&longrightarrow"
- ]
- ]
- },
- {
- "input": "&longrightarrow;",
- "description": "Named entity: longrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f6"
- ]
- ]
- },
- {
- "input": "&looparrowleft",
- "description": "Bad named entity: looparrowleft without a semi-colon",
- "output": [
- [
- "Character",
- "&looparrowleft"
- ]
- ]
- },
- {
- "input": "&looparrowleft;",
- "description": "Named entity: looparrowleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ab"
- ]
- ]
- },
- {
- "input": "&looparrowright",
- "description": "Bad named entity: looparrowright without a semi-colon",
- "output": [
- [
- "Character",
- "&looparrowright"
- ]
- ]
- },
- {
- "input": "&looparrowright;",
- "description": "Named entity: looparrowright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ac"
- ]
- ]
- },
- {
- "input": "&lopar",
- "description": "Bad named entity: lopar without a semi-colon",
- "output": [
- [
- "Character",
- "&lopar"
- ]
- ]
- },
- {
- "input": "&lopar;",
- "description": "Named entity: lopar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2985"
- ]
- ]
- },
- {
- "input": "&lopf",
- "description": "Bad named entity: lopf without a semi-colon",
- "output": [
- [
- "Character",
- "&lopf"
- ]
- ]
- },
- {
- "input": "&lopf;",
- "description": "Named entity: lopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd5d"
- ]
- ]
- },
- {
- "input": "&loplus",
- "description": "Bad named entity: loplus without a semi-colon",
- "output": [
- [
- "Character",
- "&loplus"
- ]
- ]
- },
- {
- "input": "&loplus;",
- "description": "Named entity: loplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a2d"
- ]
- ]
- },
- {
- "input": "&lotimes",
- "description": "Bad named entity: lotimes without a semi-colon",
- "output": [
- [
- "Character",
- "&lotimes"
- ]
- ]
- },
- {
- "input": "&lotimes;",
- "description": "Named entity: lotimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a34"
- ]
- ]
- },
- {
- "input": "&lowast",
- "description": "Bad named entity: lowast without a semi-colon",
- "output": [
- [
- "Character",
- "&lowast"
- ]
- ]
- },
- {
- "input": "&lowast;",
- "description": "Named entity: lowast; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2217"
- ]
- ]
- },
- {
- "input": "&lowbar",
- "description": "Bad named entity: lowbar without a semi-colon",
- "output": [
- [
- "Character",
- "&lowbar"
- ]
- ]
- },
- {
- "input": "&lowbar;",
- "description": "Named entity: lowbar; with a semi-colon",
- "output": [
- [
- "Character",
- "_"
- ]
- ]
- },
- {
- "input": "&loz",
- "description": "Bad named entity: loz without a semi-colon",
- "output": [
- [
- "Character",
- "&loz"
- ]
- ]
- },
- {
- "input": "&loz;",
- "description": "Named entity: loz; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25ca"
- ]
- ]
- },
- {
- "input": "&lozenge",
- "description": "Bad named entity: lozenge without a semi-colon",
- "output": [
- [
- "Character",
- "&lozenge"
- ]
- ]
- },
- {
- "input": "&lozenge;",
- "description": "Named entity: lozenge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25ca"
- ]
- ]
- },
- {
- "input": "&lozf",
- "description": "Bad named entity: lozf without a semi-colon",
- "output": [
- [
- "Character",
- "&lozf"
- ]
- ]
- },
- {
- "input": "&lozf;",
- "description": "Named entity: lozf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29eb"
- ]
- ]
- },
- {
- "input": "&lpar",
- "description": "Bad named entity: lpar without a semi-colon",
- "output": [
- [
- "Character",
- "&lpar"
- ]
- ]
- },
- {
- "input": "&lpar;",
- "description": "Named entity: lpar; with a semi-colon",
- "output": [
- [
- "Character",
- "("
- ]
- ]
- },
- {
- "input": "&lparlt",
- "description": "Bad named entity: lparlt without a semi-colon",
- "output": [
- [
- "Character",
- "&lparlt"
- ]
- ]
- },
- {
- "input": "&lparlt;",
- "description": "Named entity: lparlt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2993"
- ]
- ]
- },
- {
- "input": "&lrarr",
- "description": "Bad named entity: lrarr without a semi-colon",
- "output": [
- [
- "Character",
- "&lrarr"
- ]
- ]
- },
- {
- "input": "&lrarr;",
- "description": "Named entity: lrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c6"
- ]
- ]
- },
- {
- "input": "&lrcorner",
- "description": "Bad named entity: lrcorner without a semi-colon",
- "output": [
- [
- "Character",
- "&lrcorner"
- ]
- ]
- },
- {
- "input": "&lrcorner;",
- "description": "Named entity: lrcorner; with a semi-colon",
- "output": [
- [
- "Character",
- "\u231f"
- ]
- ]
- },
- {
- "input": "&lrhar",
- "description": "Bad named entity: lrhar without a semi-colon",
- "output": [
- [
- "Character",
- "&lrhar"
- ]
- ]
- },
- {
- "input": "&lrhar;",
- "description": "Named entity: lrhar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cb"
- ]
- ]
- },
- {
- "input": "&lrhard",
- "description": "Bad named entity: lrhard without a semi-colon",
- "output": [
- [
- "Character",
- "&lrhard"
- ]
- ]
- },
- {
- "input": "&lrhard;",
- "description": "Named entity: lrhard; with a semi-colon",
- "output": [
- [
- "Character",
- "\u296d"
- ]
- ]
- },
- {
- "input": "&lrm",
- "description": "Bad named entity: lrm without a semi-colon",
- "output": [
- [
- "Character",
- "&lrm"
- ]
- ]
- },
- {
- "input": "&lrm;",
- "description": "Named entity: lrm; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200e"
- ]
- ]
- },
- {
- "input": "&lrtri",
- "description": "Bad named entity: lrtri without a semi-colon",
- "output": [
- [
- "Character",
- "&lrtri"
- ]
- ]
- },
- {
- "input": "&lrtri;",
- "description": "Named entity: lrtri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22bf"
- ]
- ]
- },
- {
- "input": "&lsaquo",
- "description": "Bad named entity: lsaquo without a semi-colon",
- "output": [
- [
- "Character",
- "&lsaquo"
- ]
- ]
- },
- {
- "input": "&lsaquo;",
- "description": "Named entity: lsaquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2039"
- ]
- ]
- },
- {
- "input": "&lscr",
- "description": "Bad named entity: lscr without a semi-colon",
- "output": [
- [
- "Character",
- "&lscr"
- ]
- ]
- },
- {
- "input": "&lscr;",
- "description": "Named entity: lscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc1"
- ]
- ]
- },
- {
- "input": "&lsh",
- "description": "Bad named entity: lsh without a semi-colon",
- "output": [
- [
- "Character",
- "&lsh"
- ]
- ]
- },
- {
- "input": "&lsh;",
- "description": "Named entity: lsh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b0"
- ]
- ]
- },
- {
- "input": "&lsim",
- "description": "Bad named entity: lsim without a semi-colon",
- "output": [
- [
- "Character",
- "&lsim"
- ]
- ]
- },
- {
- "input": "&lsim;",
- "description": "Named entity: lsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2272"
- ]
- ]
- },
- {
- "input": "&lsime",
- "description": "Bad named entity: lsime without a semi-colon",
- "output": [
- [
- "Character",
- "&lsime"
- ]
- ]
- },
- {
- "input": "&lsime;",
- "description": "Named entity: lsime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8d"
- ]
- ]
- },
- {
- "input": "&lsimg",
- "description": "Bad named entity: lsimg without a semi-colon",
- "output": [
- [
- "Character",
- "&lsimg"
- ]
- ]
- },
- {
- "input": "&lsimg;",
- "description": "Named entity: lsimg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8f"
- ]
- ]
- },
- {
- "input": "&lsqb",
- "description": "Bad named entity: lsqb without a semi-colon",
- "output": [
- [
- "Character",
- "&lsqb"
- ]
- ]
- },
- {
- "input": "&lsqb;",
- "description": "Named entity: lsqb; with a semi-colon",
- "output": [
- [
- "Character",
- "["
- ]
- ]
- },
- {
- "input": "&lsquo",
- "description": "Bad named entity: lsquo without a semi-colon",
- "output": [
- [
- "Character",
- "&lsquo"
- ]
- ]
- },
- {
- "input": "&lsquo;",
- "description": "Named entity: lsquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2018"
- ]
- ]
- },
- {
- "input": "&lsquor",
- "description": "Bad named entity: lsquor without a semi-colon",
- "output": [
- [
- "Character",
- "&lsquor"
- ]
- ]
- },
- {
- "input": "&lsquor;",
- "description": "Named entity: lsquor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201a"
- ]
- ]
- },
- {
- "input": "&lstrok",
- "description": "Bad named entity: lstrok without a semi-colon",
- "output": [
- [
- "Character",
- "&lstrok"
- ]
- ]
- },
- {
- "input": "&lstrok;",
- "description": "Named entity: lstrok; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0142"
- ]
- ]
- },
- {
- "input": "&lt",
- "description": "Named entity: lt without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "<"
- ]
- ]
- },
- {
- "input": "&lt;",
- "description": "Named entity: lt; with a semi-colon",
- "output": [
- [
- "Character",
- "<"
- ]
- ]
- },
- {
- "input": "&ltcc;",
- "description": "Named entity: ltcc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa6"
- ]
- ]
- },
- {
- "input": "&ltcir;",
- "description": "Named entity: ltcir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a79"
- ]
- ]
- },
- {
- "input": "&ltdot;",
- "description": "Named entity: ltdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d6"
- ]
- ]
- },
- {
- "input": "&lthree;",
- "description": "Named entity: lthree; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22cb"
- ]
- ]
- },
- {
- "input": "&ltimes;",
- "description": "Named entity: ltimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c9"
- ]
- ]
- },
- {
- "input": "&ltlarr;",
- "description": "Named entity: ltlarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2976"
- ]
- ]
- },
- {
- "input": "&ltquest;",
- "description": "Named entity: ltquest; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7b"
- ]
- ]
- },
- {
- "input": "&ltrPar;",
- "description": "Named entity: ltrPar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2996"
- ]
- ]
- },
- {
- "input": "&ltri;",
- "description": "Named entity: ltri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25c3"
- ]
- ]
- },
- {
- "input": "&ltrie;",
- "description": "Named entity: ltrie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b4"
- ]
- ]
- },
- {
- "input": "&ltrif;",
- "description": "Named entity: ltrif; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25c2"
- ]
- ]
- },
- {
- "input": "&lurdshar",
- "description": "Bad named entity: lurdshar without a semi-colon",
- "output": [
- [
- "Character",
- "&lurdshar"
- ]
- ]
- },
- {
- "input": "&lurdshar;",
- "description": "Named entity: lurdshar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u294a"
- ]
- ]
- },
- {
- "input": "&luruhar",
- "description": "Bad named entity: luruhar without a semi-colon",
- "output": [
- [
- "Character",
- "&luruhar"
- ]
- ]
- },
- {
- "input": "&luruhar;",
- "description": "Named entity: luruhar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2966"
- ]
- ]
- },
- {
- "input": "&lvertneqq",
- "description": "Bad named entity: lvertneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&lvertneqq"
- ]
- ]
- },
- {
- "input": "&lvertneqq;",
- "description": "Named entity: lvertneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2268\ufe00"
- ]
- ]
- },
- {
- "input": "&lvnE",
- "description": "Bad named entity: lvnE without a semi-colon",
- "output": [
- [
- "Character",
- "&lvnE"
- ]
- ]
- },
- {
- "input": "&lvnE;",
- "description": "Named entity: lvnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2268\ufe00"
- ]
- ]
- },
- {
- "input": "&mDDot",
- "description": "Bad named entity: mDDot without a semi-colon",
- "output": [
- [
- "Character",
- "&mDDot"
- ]
- ]
- },
- {
- "input": "&mDDot;",
- "description": "Named entity: mDDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223a"
- ]
- ]
- },
- {
- "input": "&macr",
- "description": "Named entity: macr without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00af"
- ]
- ]
- },
- {
- "input": "&macr;",
- "description": "Named entity: macr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00af"
- ]
- ]
- },
- {
- "input": "&male",
- "description": "Bad named entity: male without a semi-colon",
- "output": [
- [
- "Character",
- "&male"
- ]
- ]
- },
- {
- "input": "&male;",
- "description": "Named entity: male; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2642"
- ]
- ]
- },
- {
- "input": "&malt",
- "description": "Bad named entity: malt without a semi-colon",
- "output": [
- [
- "Character",
- "&malt"
- ]
- ]
- },
- {
- "input": "&malt;",
- "description": "Named entity: malt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2720"
- ]
- ]
- },
- {
- "input": "&maltese",
- "description": "Bad named entity: maltese without a semi-colon",
- "output": [
- [
- "Character",
- "&maltese"
- ]
- ]
- },
- {
- "input": "&maltese;",
- "description": "Named entity: maltese; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2720"
- ]
- ]
- },
- {
- "input": "&map",
- "description": "Bad named entity: map without a semi-colon",
- "output": [
- [
- "Character",
- "&map"
- ]
- ]
- },
- {
- "input": "&map;",
- "description": "Named entity: map; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a6"
- ]
- ]
- },
- {
- "input": "&mapsto",
- "description": "Bad named entity: mapsto without a semi-colon",
- "output": [
- [
- "Character",
- "&mapsto"
- ]
- ]
- },
- {
- "input": "&mapsto;",
- "description": "Named entity: mapsto; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a6"
- ]
- ]
- },
- {
- "input": "&mapstodown",
- "description": "Bad named entity: mapstodown without a semi-colon",
- "output": [
- [
- "Character",
- "&mapstodown"
- ]
- ]
- },
- {
- "input": "&mapstodown;",
- "description": "Named entity: mapstodown; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a7"
- ]
- ]
- },
- {
- "input": "&mapstoleft",
- "description": "Bad named entity: mapstoleft without a semi-colon",
- "output": [
- [
- "Character",
- "&mapstoleft"
- ]
- ]
- },
- {
- "input": "&mapstoleft;",
- "description": "Named entity: mapstoleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a4"
- ]
- ]
- },
- {
- "input": "&mapstoup",
- "description": "Bad named entity: mapstoup without a semi-colon",
- "output": [
- [
- "Character",
- "&mapstoup"
- ]
- ]
- },
- {
- "input": "&mapstoup;",
- "description": "Named entity: mapstoup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a5"
- ]
- ]
- },
- {
- "input": "&marker",
- "description": "Bad named entity: marker without a semi-colon",
- "output": [
- [
- "Character",
- "&marker"
- ]
- ]
- },
- {
- "input": "&marker;",
- "description": "Named entity: marker; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25ae"
- ]
- ]
- },
- {
- "input": "&mcomma",
- "description": "Bad named entity: mcomma without a semi-colon",
- "output": [
- [
- "Character",
- "&mcomma"
- ]
- ]
- },
- {
- "input": "&mcomma;",
- "description": "Named entity: mcomma; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a29"
- ]
- ]
- },
- {
- "input": "&mcy",
- "description": "Bad named entity: mcy without a semi-colon",
- "output": [
- [
- "Character",
- "&mcy"
- ]
- ]
- },
- {
- "input": "&mcy;",
- "description": "Named entity: mcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u043c"
- ]
- ]
- },
- {
- "input": "&mdash",
- "description": "Bad named entity: mdash without a semi-colon",
- "output": [
- [
- "Character",
- "&mdash"
- ]
- ]
- },
- {
- "input": "&mdash;",
- "description": "Named entity: mdash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2014"
- ]
- ]
- },
- {
- "input": "&measuredangle",
- "description": "Bad named entity: measuredangle without a semi-colon",
- "output": [
- [
- "Character",
- "&measuredangle"
- ]
- ]
- },
- {
- "input": "&measuredangle;",
- "description": "Named entity: measuredangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2221"
- ]
- ]
- },
- {
- "input": "&mfr",
- "description": "Bad named entity: mfr without a semi-colon",
- "output": [
- [
- "Character",
- "&mfr"
- ]
- ]
- },
- {
- "input": "&mfr;",
- "description": "Named entity: mfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd2a"
- ]
- ]
- },
- {
- "input": "&mho",
- "description": "Bad named entity: mho without a semi-colon",
- "output": [
- [
- "Character",
- "&mho"
- ]
- ]
- },
- {
- "input": "&mho;",
- "description": "Named entity: mho; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2127"
- ]
- ]
- },
- {
- "input": "&micro",
- "description": "Named entity: micro without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b5"
- ]
- ]
- },
- {
- "input": "&micro;",
- "description": "Named entity: micro; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b5"
- ]
- ]
- },
- {
- "input": "&mid",
- "description": "Bad named entity: mid without a semi-colon",
- "output": [
- [
- "Character",
- "&mid"
- ]
- ]
- },
- {
- "input": "&mid;",
- "description": "Named entity: mid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2223"
- ]
- ]
- },
- {
- "input": "&midast",
- "description": "Bad named entity: midast without a semi-colon",
- "output": [
- [
- "Character",
- "&midast"
- ]
- ]
- },
- {
- "input": "&midast;",
- "description": "Named entity: midast; with a semi-colon",
- "output": [
- [
- "Character",
- "*"
- ]
- ]
- },
- {
- "input": "&midcir",
- "description": "Bad named entity: midcir without a semi-colon",
- "output": [
- [
- "Character",
- "&midcir"
- ]
- ]
- },
- {
- "input": "&midcir;",
- "description": "Named entity: midcir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2af0"
- ]
- ]
- },
- {
- "input": "&middot",
- "description": "Named entity: middot without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b7"
- ]
- ]
- },
- {
- "input": "&middot;",
- "description": "Named entity: middot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b7"
- ]
- ]
- },
- {
- "input": "&minus",
- "description": "Bad named entity: minus without a semi-colon",
- "output": [
- [
- "Character",
- "&minus"
- ]
- ]
- },
- {
- "input": "&minus;",
- "description": "Named entity: minus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2212"
- ]
- ]
- },
- {
- "input": "&minusb",
- "description": "Bad named entity: minusb without a semi-colon",
- "output": [
- [
- "Character",
- "&minusb"
- ]
- ]
- },
- {
- "input": "&minusb;",
- "description": "Named entity: minusb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229f"
- ]
- ]
- },
- {
- "input": "&minusd",
- "description": "Bad named entity: minusd without a semi-colon",
- "output": [
- [
- "Character",
- "&minusd"
- ]
- ]
- },
- {
- "input": "&minusd;",
- "description": "Named entity: minusd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2238"
- ]
- ]
- },
- {
- "input": "&minusdu",
- "description": "Bad named entity: minusdu without a semi-colon",
- "output": [
- [
- "Character",
- "&minusdu"
- ]
- ]
- },
- {
- "input": "&minusdu;",
- "description": "Named entity: minusdu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a2a"
- ]
- ]
- },
- {
- "input": "&mlcp",
- "description": "Bad named entity: mlcp without a semi-colon",
- "output": [
- [
- "Character",
- "&mlcp"
- ]
- ]
- },
- {
- "input": "&mlcp;",
- "description": "Named entity: mlcp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2adb"
- ]
- ]
- },
- {
- "input": "&mldr",
- "description": "Bad named entity: mldr without a semi-colon",
- "output": [
- [
- "Character",
- "&mldr"
- ]
- ]
- },
- {
- "input": "&mldr;",
- "description": "Named entity: mldr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2026"
- ]
- ]
- },
- {
- "input": "&mnplus",
- "description": "Bad named entity: mnplus without a semi-colon",
- "output": [
- [
- "Character",
- "&mnplus"
- ]
- ]
- },
- {
- "input": "&mnplus;",
- "description": "Named entity: mnplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2213"
- ]
- ]
- },
- {
- "input": "&models",
- "description": "Bad named entity: models without a semi-colon",
- "output": [
- [
- "Character",
- "&models"
- ]
- ]
- },
- {
- "input": "&models;",
- "description": "Named entity: models; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a7"
- ]
- ]
- },
- {
- "input": "&mopf",
- "description": "Bad named entity: mopf without a semi-colon",
- "output": [
- [
- "Character",
- "&mopf"
- ]
- ]
- },
- {
- "input": "&mopf;",
- "description": "Named entity: mopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd5e"
- ]
- ]
- },
- {
- "input": "&mp",
- "description": "Bad named entity: mp without a semi-colon",
- "output": [
- [
- "Character",
- "&mp"
- ]
- ]
- },
- {
- "input": "&mp;",
- "description": "Named entity: mp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2213"
- ]
- ]
- },
- {
- "input": "&mscr",
- "description": "Bad named entity: mscr without a semi-colon",
- "output": [
- [
- "Character",
- "&mscr"
- ]
- ]
- },
- {
- "input": "&mscr;",
- "description": "Named entity: mscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc2"
- ]
- ]
- },
- {
- "input": "&mstpos",
- "description": "Bad named entity: mstpos without a semi-colon",
- "output": [
- [
- "Character",
- "&mstpos"
- ]
- ]
- },
- {
- "input": "&mstpos;",
- "description": "Named entity: mstpos; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223e"
- ]
- ]
- },
- {
- "input": "&mu",
- "description": "Bad named entity: mu without a semi-colon",
- "output": [
- [
- "Character",
- "&mu"
- ]
- ]
- },
- {
- "input": "&mu;",
- "description": "Named entity: mu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03bc"
- ]
- ]
- },
- {
- "input": "&multimap",
- "description": "Bad named entity: multimap without a semi-colon",
- "output": [
- [
- "Character",
- "&multimap"
- ]
- ]
- },
- {
- "input": "&multimap;",
- "description": "Named entity: multimap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b8"
- ]
- ]
- },
- {
- "input": "&mumap",
- "description": "Bad named entity: mumap without a semi-colon",
- "output": [
- [
- "Character",
- "&mumap"
- ]
- ]
- },
- {
- "input": "&mumap;",
- "description": "Named entity: mumap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b8"
- ]
- ]
- },
- {
- "input": "&nGg",
- "description": "Bad named entity: nGg without a semi-colon",
- "output": [
- [
- "Character",
- "&nGg"
- ]
- ]
- },
- {
- "input": "&nGg;",
- "description": "Named entity: nGg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d9\u0338"
- ]
- ]
- },
- {
- "input": "&nGt",
- "description": "Bad named entity: nGt without a semi-colon",
- "output": [
- [
- "Character",
- "&nGt"
- ]
- ]
- },
- {
- "input": "&nGt;",
- "description": "Named entity: nGt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226b\u20d2"
- ]
- ]
- },
- {
- "input": "&nGtv",
- "description": "Bad named entity: nGtv without a semi-colon",
- "output": [
- [
- "Character",
- "&nGtv"
- ]
- ]
- },
- {
- "input": "&nGtv;",
- "description": "Named entity: nGtv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226b\u0338"
- ]
- ]
- },
- {
- "input": "&nLeftarrow",
- "description": "Bad named entity: nLeftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&nLeftarrow"
- ]
- ]
- },
- {
- "input": "&nLeftarrow;",
- "description": "Named entity: nLeftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cd"
- ]
- ]
- },
- {
- "input": "&nLeftrightarrow",
- "description": "Bad named entity: nLeftrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&nLeftrightarrow"
- ]
- ]
- },
- {
- "input": "&nLeftrightarrow;",
- "description": "Named entity: nLeftrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ce"
- ]
- ]
- },
- {
- "input": "&nLl",
- "description": "Bad named entity: nLl without a semi-colon",
- "output": [
- [
- "Character",
- "&nLl"
- ]
- ]
- },
- {
- "input": "&nLl;",
- "description": "Named entity: nLl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d8\u0338"
- ]
- ]
- },
- {
- "input": "&nLt",
- "description": "Bad named entity: nLt without a semi-colon",
- "output": [
- [
- "Character",
- "&nLt"
- ]
- ]
- },
- {
- "input": "&nLt;",
- "description": "Named entity: nLt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226a\u20d2"
- ]
- ]
- },
- {
- "input": "&nLtv",
- "description": "Bad named entity: nLtv without a semi-colon",
- "output": [
- [
- "Character",
- "&nLtv"
- ]
- ]
- },
- {
- "input": "&nLtv;",
- "description": "Named entity: nLtv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226a\u0338"
- ]
- ]
- },
- {
- "input": "&nRightarrow",
- "description": "Bad named entity: nRightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&nRightarrow"
- ]
- ]
- },
- {
- "input": "&nRightarrow;",
- "description": "Named entity: nRightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cf"
- ]
- ]
- },
- {
- "input": "&nVDash",
- "description": "Bad named entity: nVDash without a semi-colon",
- "output": [
- [
- "Character",
- "&nVDash"
- ]
- ]
- },
- {
- "input": "&nVDash;",
- "description": "Named entity: nVDash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22af"
- ]
- ]
- },
- {
- "input": "&nVdash",
- "description": "Bad named entity: nVdash without a semi-colon",
- "output": [
- [
- "Character",
- "&nVdash"
- ]
- ]
- },
- {
- "input": "&nVdash;",
- "description": "Named entity: nVdash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ae"
- ]
- ]
- },
- {
- "input": "&nabla",
- "description": "Bad named entity: nabla without a semi-colon",
- "output": [
- [
- "Character",
- "&nabla"
- ]
- ]
- },
- {
- "input": "&nabla;",
- "description": "Named entity: nabla; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2207"
- ]
- ]
- },
- {
- "input": "&nacute",
- "description": "Bad named entity: nacute without a semi-colon",
- "output": [
- [
- "Character",
- "&nacute"
- ]
- ]
- },
- {
- "input": "&nacute;",
- "description": "Named entity: nacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0144"
- ]
- ]
- },
- {
- "input": "&nang",
- "description": "Bad named entity: nang without a semi-colon",
- "output": [
- [
- "Character",
- "&nang"
- ]
- ]
- },
- {
- "input": "&nang;",
- "description": "Named entity: nang; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2220\u20d2"
- ]
- ]
- },
- {
- "input": "&nap",
- "description": "Bad named entity: nap without a semi-colon",
- "output": [
- [
- "Character",
- "&nap"
- ]
- ]
- },
- {
- "input": "&nap;",
- "description": "Named entity: nap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2249"
- ]
- ]
- },
- {
- "input": "&napE",
- "description": "Bad named entity: napE without a semi-colon",
- "output": [
- [
- "Character",
- "&napE"
- ]
- ]
- },
- {
- "input": "&napE;",
- "description": "Named entity: napE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a70\u0338"
- ]
- ]
- },
- {
- "input": "&napid",
- "description": "Bad named entity: napid without a semi-colon",
- "output": [
- [
- "Character",
- "&napid"
- ]
- ]
- },
- {
- "input": "&napid;",
- "description": "Named entity: napid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224b\u0338"
- ]
- ]
- },
- {
- "input": "&napos",
- "description": "Bad named entity: napos without a semi-colon",
- "output": [
- [
- "Character",
- "&napos"
- ]
- ]
- },
- {
- "input": "&napos;",
- "description": "Named entity: napos; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0149"
- ]
- ]
- },
- {
- "input": "&napprox",
- "description": "Bad named entity: napprox without a semi-colon",
- "output": [
- [
- "Character",
- "&napprox"
- ]
- ]
- },
- {
- "input": "&napprox;",
- "description": "Named entity: napprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2249"
- ]
- ]
- },
- {
- "input": "&natur",
- "description": "Bad named entity: natur without a semi-colon",
- "output": [
- [
- "Character",
- "&natur"
- ]
- ]
- },
- {
- "input": "&natur;",
- "description": "Named entity: natur; with a semi-colon",
- "output": [
- [
- "Character",
- "\u266e"
- ]
- ]
- },
- {
- "input": "&natural",
- "description": "Bad named entity: natural without a semi-colon",
- "output": [
- [
- "Character",
- "&natural"
- ]
- ]
- },
- {
- "input": "&natural;",
- "description": "Named entity: natural; with a semi-colon",
- "output": [
- [
- "Character",
- "\u266e"
- ]
- ]
- },
- {
- "input": "&naturals",
- "description": "Bad named entity: naturals without a semi-colon",
- "output": [
- [
- "Character",
- "&naturals"
- ]
- ]
- },
- {
- "input": "&naturals;",
- "description": "Named entity: naturals; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2115"
- ]
- ]
- },
- {
- "input": "&nbsp",
- "description": "Named entity: nbsp without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a0"
- ]
- ]
- },
- {
- "input": "&nbsp;",
- "description": "Named entity: nbsp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a0"
- ]
- ]
- },
- {
- "input": "&nbump",
- "description": "Bad named entity: nbump without a semi-colon",
- "output": [
- [
- "Character",
- "&nbump"
- ]
- ]
- },
- {
- "input": "&nbump;",
- "description": "Named entity: nbump; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224e\u0338"
- ]
- ]
- },
- {
- "input": "&nbumpe",
- "description": "Bad named entity: nbumpe without a semi-colon",
- "output": [
- [
- "Character",
- "&nbumpe"
- ]
- ]
- },
- {
- "input": "&nbumpe;",
- "description": "Named entity: nbumpe; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224f\u0338"
- ]
- ]
- },
- {
- "input": "&ncap",
- "description": "Bad named entity: ncap without a semi-colon",
- "output": [
- [
- "Character",
- "&ncap"
- ]
- ]
- },
- {
- "input": "&ncap;",
- "description": "Named entity: ncap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a43"
- ]
- ]
- },
- {
- "input": "&ncaron",
- "description": "Bad named entity: ncaron without a semi-colon",
- "output": [
- [
- "Character",
- "&ncaron"
- ]
- ]
- },
- {
- "input": "&ncaron;",
- "description": "Named entity: ncaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0148"
- ]
- ]
- },
- {
- "input": "&ncedil",
- "description": "Bad named entity: ncedil without a semi-colon",
- "output": [
- [
- "Character",
- "&ncedil"
- ]
- ]
- },
- {
- "input": "&ncedil;",
- "description": "Named entity: ncedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0146"
- ]
- ]
- },
- {
- "input": "&ncong",
- "description": "Bad named entity: ncong without a semi-colon",
- "output": [
- [
- "Character",
- "&ncong"
- ]
- ]
- },
- {
- "input": "&ncong;",
- "description": "Named entity: ncong; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2247"
- ]
- ]
- },
- {
- "input": "&ncongdot",
- "description": "Bad named entity: ncongdot without a semi-colon",
- "output": [
- [
- "Character",
- "&ncongdot"
- ]
- ]
- },
- {
- "input": "&ncongdot;",
- "description": "Named entity: ncongdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a6d\u0338"
- ]
- ]
- },
- {
- "input": "&ncup",
- "description": "Bad named entity: ncup without a semi-colon",
- "output": [
- [
- "Character",
- "&ncup"
- ]
- ]
- },
- {
- "input": "&ncup;",
- "description": "Named entity: ncup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a42"
- ]
- ]
- },
- {
- "input": "&ncy",
- "description": "Bad named entity: ncy without a semi-colon",
- "output": [
- [
- "Character",
- "&ncy"
- ]
- ]
- },
- {
- "input": "&ncy;",
- "description": "Named entity: ncy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u043d"
- ]
- ]
- },
- {
- "input": "&ndash",
- "description": "Bad named entity: ndash without a semi-colon",
- "output": [
- [
- "Character",
- "&ndash"
- ]
- ]
- },
- {
- "input": "&ndash;",
- "description": "Named entity: ndash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2013"
- ]
- ]
- },
- {
- "input": "&ne",
- "description": "Bad named entity: ne without a semi-colon",
- "output": [
- [
- "Character",
- "&ne"
- ]
- ]
- },
- {
- "input": "&ne;",
- "description": "Named entity: ne; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2260"
- ]
- ]
- },
- {
- "input": "&neArr",
- "description": "Bad named entity: neArr without a semi-colon",
- "output": [
- [
- "Character",
- "&neArr"
- ]
- ]
- },
- {
- "input": "&neArr;",
- "description": "Named entity: neArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d7"
- ]
- ]
- },
- {
- "input": "&nearhk",
- "description": "Bad named entity: nearhk without a semi-colon",
- "output": [
- [
- "Character",
- "&nearhk"
- ]
- ]
- },
- {
- "input": "&nearhk;",
- "description": "Named entity: nearhk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2924"
- ]
- ]
- },
- {
- "input": "&nearr",
- "description": "Bad named entity: nearr without a semi-colon",
- "output": [
- [
- "Character",
- "&nearr"
- ]
- ]
- },
- {
- "input": "&nearr;",
- "description": "Named entity: nearr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2197"
- ]
- ]
- },
- {
- "input": "&nearrow",
- "description": "Bad named entity: nearrow without a semi-colon",
- "output": [
- [
- "Character",
- "&nearrow"
- ]
- ]
- },
- {
- "input": "&nearrow;",
- "description": "Named entity: nearrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2197"
- ]
- ]
- },
- {
- "input": "&nedot",
- "description": "Bad named entity: nedot without a semi-colon",
- "output": [
- [
- "Character",
- "&nedot"
- ]
- ]
- },
- {
- "input": "&nedot;",
- "description": "Named entity: nedot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2250\u0338"
- ]
- ]
- },
- {
- "input": "&nequiv",
- "description": "Bad named entity: nequiv without a semi-colon",
- "output": [
- [
- "Character",
- "&nequiv"
- ]
- ]
- },
- {
- "input": "&nequiv;",
- "description": "Named entity: nequiv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2262"
- ]
- ]
- },
- {
- "input": "&nesear",
- "description": "Bad named entity: nesear without a semi-colon",
- "output": [
- [
- "Character",
- "&nesear"
- ]
- ]
- },
- {
- "input": "&nesear;",
- "description": "Named entity: nesear; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2928"
- ]
- ]
- },
- {
- "input": "&nesim",
- "description": "Bad named entity: nesim without a semi-colon",
- "output": [
- [
- "Character",
- "&nesim"
- ]
- ]
- },
- {
- "input": "&nesim;",
- "description": "Named entity: nesim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2242\u0338"
- ]
- ]
- },
- {
- "input": "&nexist",
- "description": "Bad named entity: nexist without a semi-colon",
- "output": [
- [
- "Character",
- "&nexist"
- ]
- ]
- },
- {
- "input": "&nexist;",
- "description": "Named entity: nexist; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2204"
- ]
- ]
- },
- {
- "input": "&nexists",
- "description": "Bad named entity: nexists without a semi-colon",
- "output": [
- [
- "Character",
- "&nexists"
- ]
- ]
- },
- {
- "input": "&nexists;",
- "description": "Named entity: nexists; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2204"
- ]
- ]
- },
- {
- "input": "&nfr",
- "description": "Bad named entity: nfr without a semi-colon",
- "output": [
- [
- "Character",
- "&nfr"
- ]
- ]
- },
- {
- "input": "&nfr;",
- "description": "Named entity: nfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd2b"
- ]
- ]
- },
- {
- "input": "&ngE",
- "description": "Bad named entity: ngE without a semi-colon",
- "output": [
- [
- "Character",
- "&ngE"
- ]
- ]
- },
- {
- "input": "&ngE;",
- "description": "Named entity: ngE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2267\u0338"
- ]
- ]
- },
- {
- "input": "&nge",
- "description": "Bad named entity: nge without a semi-colon",
- "output": [
- [
- "Character",
- "&nge"
- ]
- ]
- },
- {
- "input": "&nge;",
- "description": "Named entity: nge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2271"
- ]
- ]
- },
- {
- "input": "&ngeq",
- "description": "Bad named entity: ngeq without a semi-colon",
- "output": [
- [
- "Character",
- "&ngeq"
- ]
- ]
- },
- {
- "input": "&ngeq;",
- "description": "Named entity: ngeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2271"
- ]
- ]
- },
- {
- "input": "&ngeqq",
- "description": "Bad named entity: ngeqq without a semi-colon",
- "output": [
- [
- "Character",
- "&ngeqq"
- ]
- ]
- },
- {
- "input": "&ngeqq;",
- "description": "Named entity: ngeqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2267\u0338"
- ]
- ]
- },
- {
- "input": "&ngeqslant",
- "description": "Bad named entity: ngeqslant without a semi-colon",
- "output": [
- [
- "Character",
- "&ngeqslant"
- ]
- ]
- },
- {
- "input": "&ngeqslant;",
- "description": "Named entity: ngeqslant; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7e\u0338"
- ]
- ]
- },
- {
- "input": "&nges",
- "description": "Bad named entity: nges without a semi-colon",
- "output": [
- [
- "Character",
- "&nges"
- ]
- ]
- },
- {
- "input": "&nges;",
- "description": "Named entity: nges; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7e\u0338"
- ]
- ]
- },
- {
- "input": "&ngsim",
- "description": "Bad named entity: ngsim without a semi-colon",
- "output": [
- [
- "Character",
- "&ngsim"
- ]
- ]
- },
- {
- "input": "&ngsim;",
- "description": "Named entity: ngsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2275"
- ]
- ]
- },
- {
- "input": "&ngt",
- "description": "Bad named entity: ngt without a semi-colon",
- "output": [
- [
- "Character",
- "&ngt"
- ]
- ]
- },
- {
- "input": "&ngt;",
- "description": "Named entity: ngt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226f"
- ]
- ]
- },
- {
- "input": "&ngtr",
- "description": "Bad named entity: ngtr without a semi-colon",
- "output": [
- [
- "Character",
- "&ngtr"
- ]
- ]
- },
- {
- "input": "&ngtr;",
- "description": "Named entity: ngtr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226f"
- ]
- ]
- },
- {
- "input": "&nhArr",
- "description": "Bad named entity: nhArr without a semi-colon",
- "output": [
- [
- "Character",
- "&nhArr"
- ]
- ]
- },
- {
- "input": "&nhArr;",
- "description": "Named entity: nhArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ce"
- ]
- ]
- },
- {
- "input": "&nharr",
- "description": "Bad named entity: nharr without a semi-colon",
- "output": [
- [
- "Character",
- "&nharr"
- ]
- ]
- },
- {
- "input": "&nharr;",
- "description": "Named entity: nharr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ae"
- ]
- ]
- },
- {
- "input": "&nhpar",
- "description": "Bad named entity: nhpar without a semi-colon",
- "output": [
- [
- "Character",
- "&nhpar"
- ]
- ]
- },
- {
- "input": "&nhpar;",
- "description": "Named entity: nhpar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2af2"
- ]
- ]
- },
- {
- "input": "&ni",
- "description": "Bad named entity: ni without a semi-colon",
- "output": [
- [
- "Character",
- "&ni"
- ]
- ]
- },
- {
- "input": "&ni;",
- "description": "Named entity: ni; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220b"
- ]
- ]
- },
- {
- "input": "&nis",
- "description": "Bad named entity: nis without a semi-colon",
- "output": [
- [
- "Character",
- "&nis"
- ]
- ]
- },
- {
- "input": "&nis;",
- "description": "Named entity: nis; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22fc"
- ]
- ]
- },
- {
- "input": "&nisd",
- "description": "Bad named entity: nisd without a semi-colon",
- "output": [
- [
- "Character",
- "&nisd"
- ]
- ]
- },
- {
- "input": "&nisd;",
- "description": "Named entity: nisd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22fa"
- ]
- ]
- },
- {
- "input": "&niv",
- "description": "Bad named entity: niv without a semi-colon",
- "output": [
- [
- "Character",
- "&niv"
- ]
- ]
- },
- {
- "input": "&niv;",
- "description": "Named entity: niv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220b"
- ]
- ]
- },
- {
- "input": "&njcy",
- "description": "Bad named entity: njcy without a semi-colon",
- "output": [
- [
- "Character",
- "&njcy"
- ]
- ]
- },
- {
- "input": "&njcy;",
- "description": "Named entity: njcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u045a"
- ]
- ]
- },
- {
- "input": "&nlArr",
- "description": "Bad named entity: nlArr without a semi-colon",
- "output": [
- [
- "Character",
- "&nlArr"
- ]
- ]
- },
- {
- "input": "&nlArr;",
- "description": "Named entity: nlArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cd"
- ]
- ]
- },
- {
- "input": "&nlE",
- "description": "Bad named entity: nlE without a semi-colon",
- "output": [
- [
- "Character",
- "&nlE"
- ]
- ]
- },
- {
- "input": "&nlE;",
- "description": "Named entity: nlE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2266\u0338"
- ]
- ]
- },
- {
- "input": "&nlarr",
- "description": "Bad named entity: nlarr without a semi-colon",
- "output": [
- [
- "Character",
- "&nlarr"
- ]
- ]
- },
- {
- "input": "&nlarr;",
- "description": "Named entity: nlarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219a"
- ]
- ]
- },
- {
- "input": "&nldr",
- "description": "Bad named entity: nldr without a semi-colon",
- "output": [
- [
- "Character",
- "&nldr"
- ]
- ]
- },
- {
- "input": "&nldr;",
- "description": "Named entity: nldr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2025"
- ]
- ]
- },
- {
- "input": "&nle",
- "description": "Bad named entity: nle without a semi-colon",
- "output": [
- [
- "Character",
- "&nle"
- ]
- ]
- },
- {
- "input": "&nle;",
- "description": "Named entity: nle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2270"
- ]
- ]
- },
- {
- "input": "&nleftarrow",
- "description": "Bad named entity: nleftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&nleftarrow"
- ]
- ]
- },
- {
- "input": "&nleftarrow;",
- "description": "Named entity: nleftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219a"
- ]
- ]
- },
- {
- "input": "&nleftrightarrow",
- "description": "Bad named entity: nleftrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&nleftrightarrow"
- ]
- ]
- },
- {
- "input": "&nleftrightarrow;",
- "description": "Named entity: nleftrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ae"
- ]
- ]
- },
- {
- "input": "&nleq",
- "description": "Bad named entity: nleq without a semi-colon",
- "output": [
- [
- "Character",
- "&nleq"
- ]
- ]
- },
- {
- "input": "&nleq;",
- "description": "Named entity: nleq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2270"
- ]
- ]
- },
- {
- "input": "&nleqq",
- "description": "Bad named entity: nleqq without a semi-colon",
- "output": [
- [
- "Character",
- "&nleqq"
- ]
- ]
- },
- {
- "input": "&nleqq;",
- "description": "Named entity: nleqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2266\u0338"
- ]
- ]
- },
- {
- "input": "&nleqslant",
- "description": "Bad named entity: nleqslant without a semi-colon",
- "output": [
- [
- "Character",
- "&nleqslant"
- ]
- ]
- },
- {
- "input": "&nleqslant;",
- "description": "Named entity: nleqslant; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7d\u0338"
- ]
- ]
- },
- {
- "input": "&nles",
- "description": "Bad named entity: nles without a semi-colon",
- "output": [
- [
- "Character",
- "&nles"
- ]
- ]
- },
- {
- "input": "&nles;",
- "description": "Named entity: nles; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7d\u0338"
- ]
- ]
- },
- {
- "input": "&nless",
- "description": "Bad named entity: nless without a semi-colon",
- "output": [
- [
- "Character",
- "&nless"
- ]
- ]
- },
- {
- "input": "&nless;",
- "description": "Named entity: nless; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226e"
- ]
- ]
- },
- {
- "input": "&nlsim",
- "description": "Bad named entity: nlsim without a semi-colon",
- "output": [
- [
- "Character",
- "&nlsim"
- ]
- ]
- },
- {
- "input": "&nlsim;",
- "description": "Named entity: nlsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2274"
- ]
- ]
- },
- {
- "input": "&nlt",
- "description": "Bad named entity: nlt without a semi-colon",
- "output": [
- [
- "Character",
- "&nlt"
- ]
- ]
- },
- {
- "input": "&nlt;",
- "description": "Named entity: nlt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226e"
- ]
- ]
- },
- {
- "input": "&nltri",
- "description": "Bad named entity: nltri without a semi-colon",
- "output": [
- [
- "Character",
- "&nltri"
- ]
- ]
- },
- {
- "input": "&nltri;",
- "description": "Named entity: nltri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ea"
- ]
- ]
- },
- {
- "input": "&nltrie",
- "description": "Bad named entity: nltrie without a semi-colon",
- "output": [
- [
- "Character",
- "&nltrie"
- ]
- ]
- },
- {
- "input": "&nltrie;",
- "description": "Named entity: nltrie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ec"
- ]
- ]
- },
- {
- "input": "&nmid",
- "description": "Bad named entity: nmid without a semi-colon",
- "output": [
- [
- "Character",
- "&nmid"
- ]
- ]
- },
- {
- "input": "&nmid;",
- "description": "Named entity: nmid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2224"
- ]
- ]
- },
- {
- "input": "&nopf",
- "description": "Bad named entity: nopf without a semi-colon",
- "output": [
- [
- "Character",
- "&nopf"
- ]
- ]
- },
- {
- "input": "&nopf;",
- "description": "Named entity: nopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd5f"
- ]
- ]
- },
- {
- "input": "&not",
- "description": "Named entity: not without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ac"
- ]
- ]
- },
- {
- "input": "&not;",
- "description": "Named entity: not; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ac"
- ]
- ]
- },
- {
- "input": "&notin;",
- "description": "Named entity: notin; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2209"
- ]
- ]
- },
- {
- "input": "&notinE;",
- "description": "Named entity: notinE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f9\u0338"
- ]
- ]
- },
- {
- "input": "&notindot;",
- "description": "Named entity: notindot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f5\u0338"
- ]
- ]
- },
- {
- "input": "&notinva;",
- "description": "Named entity: notinva; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2209"
- ]
- ]
- },
- {
- "input": "&notinvb;",
- "description": "Named entity: notinvb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f7"
- ]
- ]
- },
- {
- "input": "&notinvc;",
- "description": "Named entity: notinvc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f6"
- ]
- ]
- },
- {
- "input": "&notni;",
- "description": "Named entity: notni; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220c"
- ]
- ]
- },
- {
- "input": "&notniva;",
- "description": "Named entity: notniva; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220c"
- ]
- ]
- },
- {
- "input": "&notnivb;",
- "description": "Named entity: notnivb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22fe"
- ]
- ]
- },
- {
- "input": "&notnivc;",
- "description": "Named entity: notnivc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22fd"
- ]
- ]
- },
- {
- "input": "&npar",
- "description": "Bad named entity: npar without a semi-colon",
- "output": [
- [
- "Character",
- "&npar"
- ]
- ]
- },
- {
- "input": "&npar;",
- "description": "Named entity: npar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2226"
- ]
- ]
- },
- {
- "input": "&nparallel",
- "description": "Bad named entity: nparallel without a semi-colon",
- "output": [
- [
- "Character",
- "&nparallel"
- ]
- ]
- },
- {
- "input": "&nparallel;",
- "description": "Named entity: nparallel; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2226"
- ]
- ]
- },
- {
- "input": "&nparsl",
- "description": "Bad named entity: nparsl without a semi-colon",
- "output": [
- [
- "Character",
- "&nparsl"
- ]
- ]
- },
- {
- "input": "&nparsl;",
- "description": "Named entity: nparsl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2afd\u20e5"
- ]
- ]
- },
- {
- "input": "&npart",
- "description": "Bad named entity: npart without a semi-colon",
- "output": [
- [
- "Character",
- "&npart"
- ]
- ]
- },
- {
- "input": "&npart;",
- "description": "Named entity: npart; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2202\u0338"
- ]
- ]
- },
- {
- "input": "&npolint",
- "description": "Bad named entity: npolint without a semi-colon",
- "output": [
- [
- "Character",
- "&npolint"
- ]
- ]
- },
- {
- "input": "&npolint;",
- "description": "Named entity: npolint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a14"
- ]
- ]
- },
- {
- "input": "&npr",
- "description": "Bad named entity: npr without a semi-colon",
- "output": [
- [
- "Character",
- "&npr"
- ]
- ]
- },
- {
- "input": "&npr;",
- "description": "Named entity: npr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2280"
- ]
- ]
- },
- {
- "input": "&nprcue",
- "description": "Bad named entity: nprcue without a semi-colon",
- "output": [
- [
- "Character",
- "&nprcue"
- ]
- ]
- },
- {
- "input": "&nprcue;",
- "description": "Named entity: nprcue; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e0"
- ]
- ]
- },
- {
- "input": "&npre",
- "description": "Bad named entity: npre without a semi-colon",
- "output": [
- [
- "Character",
- "&npre"
- ]
- ]
- },
- {
- "input": "&npre;",
- "description": "Named entity: npre; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aaf\u0338"
- ]
- ]
- },
- {
- "input": "&nprec",
- "description": "Bad named entity: nprec without a semi-colon",
- "output": [
- [
- "Character",
- "&nprec"
- ]
- ]
- },
- {
- "input": "&nprec;",
- "description": "Named entity: nprec; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2280"
- ]
- ]
- },
- {
- "input": "&npreceq",
- "description": "Bad named entity: npreceq without a semi-colon",
- "output": [
- [
- "Character",
- "&npreceq"
- ]
- ]
- },
- {
- "input": "&npreceq;",
- "description": "Named entity: npreceq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aaf\u0338"
- ]
- ]
- },
- {
- "input": "&nrArr",
- "description": "Bad named entity: nrArr without a semi-colon",
- "output": [
- [
- "Character",
- "&nrArr"
- ]
- ]
- },
- {
- "input": "&nrArr;",
- "description": "Named entity: nrArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cf"
- ]
- ]
- },
- {
- "input": "&nrarr",
- "description": "Bad named entity: nrarr without a semi-colon",
- "output": [
- [
- "Character",
- "&nrarr"
- ]
- ]
- },
- {
- "input": "&nrarr;",
- "description": "Named entity: nrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219b"
- ]
- ]
- },
- {
- "input": "&nrarrc",
- "description": "Bad named entity: nrarrc without a semi-colon",
- "output": [
- [
- "Character",
- "&nrarrc"
- ]
- ]
- },
- {
- "input": "&nrarrc;",
- "description": "Named entity: nrarrc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2933\u0338"
- ]
- ]
- },
- {
- "input": "&nrarrw",
- "description": "Bad named entity: nrarrw without a semi-colon",
- "output": [
- [
- "Character",
- "&nrarrw"
- ]
- ]
- },
- {
- "input": "&nrarrw;",
- "description": "Named entity: nrarrw; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219d\u0338"
- ]
- ]
- },
- {
- "input": "&nrightarrow",
- "description": "Bad named entity: nrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&nrightarrow"
- ]
- ]
- },
- {
- "input": "&nrightarrow;",
- "description": "Named entity: nrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219b"
- ]
- ]
- },
- {
- "input": "&nrtri",
- "description": "Bad named entity: nrtri without a semi-colon",
- "output": [
- [
- "Character",
- "&nrtri"
- ]
- ]
- },
- {
- "input": "&nrtri;",
- "description": "Named entity: nrtri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22eb"
- ]
- ]
- },
- {
- "input": "&nrtrie",
- "description": "Bad named entity: nrtrie without a semi-colon",
- "output": [
- [
- "Character",
- "&nrtrie"
- ]
- ]
- },
- {
- "input": "&nrtrie;",
- "description": "Named entity: nrtrie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ed"
- ]
- ]
- },
- {
- "input": "&nsc",
- "description": "Bad named entity: nsc without a semi-colon",
- "output": [
- [
- "Character",
- "&nsc"
- ]
- ]
- },
- {
- "input": "&nsc;",
- "description": "Named entity: nsc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2281"
- ]
- ]
- },
- {
- "input": "&nsccue",
- "description": "Bad named entity: nsccue without a semi-colon",
- "output": [
- [
- "Character",
- "&nsccue"
- ]
- ]
- },
- {
- "input": "&nsccue;",
- "description": "Named entity: nsccue; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e1"
- ]
- ]
- },
- {
- "input": "&nsce",
- "description": "Bad named entity: nsce without a semi-colon",
- "output": [
- [
- "Character",
- "&nsce"
- ]
- ]
- },
- {
- "input": "&nsce;",
- "description": "Named entity: nsce; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab0\u0338"
- ]
- ]
- },
- {
- "input": "&nscr",
- "description": "Bad named entity: nscr without a semi-colon",
- "output": [
- [
- "Character",
- "&nscr"
- ]
- ]
- },
- {
- "input": "&nscr;",
- "description": "Named entity: nscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc3"
- ]
- ]
- },
- {
- "input": "&nshortmid",
- "description": "Bad named entity: nshortmid without a semi-colon",
- "output": [
- [
- "Character",
- "&nshortmid"
- ]
- ]
- },
- {
- "input": "&nshortmid;",
- "description": "Named entity: nshortmid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2224"
- ]
- ]
- },
- {
- "input": "&nshortparallel",
- "description": "Bad named entity: nshortparallel without a semi-colon",
- "output": [
- [
- "Character",
- "&nshortparallel"
- ]
- ]
- },
- {
- "input": "&nshortparallel;",
- "description": "Named entity: nshortparallel; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2226"
- ]
- ]
- },
- {
- "input": "&nsim",
- "description": "Bad named entity: nsim without a semi-colon",
- "output": [
- [
- "Character",
- "&nsim"
- ]
- ]
- },
- {
- "input": "&nsim;",
- "description": "Named entity: nsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2241"
- ]
- ]
- },
- {
- "input": "&nsime",
- "description": "Bad named entity: nsime without a semi-colon",
- "output": [
- [
- "Character",
- "&nsime"
- ]
- ]
- },
- {
- "input": "&nsime;",
- "description": "Named entity: nsime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2244"
- ]
- ]
- },
- {
- "input": "&nsimeq",
- "description": "Bad named entity: nsimeq without a semi-colon",
- "output": [
- [
- "Character",
- "&nsimeq"
- ]
- ]
- },
- {
- "input": "&nsimeq;",
- "description": "Named entity: nsimeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2244"
- ]
- ]
- },
- {
- "input": "&nsmid",
- "description": "Bad named entity: nsmid without a semi-colon",
- "output": [
- [
- "Character",
- "&nsmid"
- ]
- ]
- },
- {
- "input": "&nsmid;",
- "description": "Named entity: nsmid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2224"
- ]
- ]
- },
- {
- "input": "&nspar",
- "description": "Bad named entity: nspar without a semi-colon",
- "output": [
- [
- "Character",
- "&nspar"
- ]
- ]
- },
- {
- "input": "&nspar;",
- "description": "Named entity: nspar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2226"
- ]
- ]
- },
- {
- "input": "&nsqsube",
- "description": "Bad named entity: nsqsube without a semi-colon",
- "output": [
- [
- "Character",
- "&nsqsube"
- ]
- ]
- },
- {
- "input": "&nsqsube;",
- "description": "Named entity: nsqsube; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e2"
- ]
- ]
- },
- {
- "input": "&nsqsupe",
- "description": "Bad named entity: nsqsupe without a semi-colon",
- "output": [
- [
- "Character",
- "&nsqsupe"
- ]
- ]
- },
- {
- "input": "&nsqsupe;",
- "description": "Named entity: nsqsupe; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e3"
- ]
- ]
- },
- {
- "input": "&nsub",
- "description": "Bad named entity: nsub without a semi-colon",
- "output": [
- [
- "Character",
- "&nsub"
- ]
- ]
- },
- {
- "input": "&nsub;",
- "description": "Named entity: nsub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2284"
- ]
- ]
- },
- {
- "input": "&nsubE",
- "description": "Bad named entity: nsubE without a semi-colon",
- "output": [
- [
- "Character",
- "&nsubE"
- ]
- ]
- },
- {
- "input": "&nsubE;",
- "description": "Named entity: nsubE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac5\u0338"
- ]
- ]
- },
- {
- "input": "&nsube",
- "description": "Bad named entity: nsube without a semi-colon",
- "output": [
- [
- "Character",
- "&nsube"
- ]
- ]
- },
- {
- "input": "&nsube;",
- "description": "Named entity: nsube; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2288"
- ]
- ]
- },
- {
- "input": "&nsubset",
- "description": "Bad named entity: nsubset without a semi-colon",
- "output": [
- [
- "Character",
- "&nsubset"
- ]
- ]
- },
- {
- "input": "&nsubset;",
- "description": "Named entity: nsubset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2282\u20d2"
- ]
- ]
- },
- {
- "input": "&nsubseteq",
- "description": "Bad named entity: nsubseteq without a semi-colon",
- "output": [
- [
- "Character",
- "&nsubseteq"
- ]
- ]
- },
- {
- "input": "&nsubseteq;",
- "description": "Named entity: nsubseteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2288"
- ]
- ]
- },
- {
- "input": "&nsubseteqq",
- "description": "Bad named entity: nsubseteqq without a semi-colon",
- "output": [
- [
- "Character",
- "&nsubseteqq"
- ]
- ]
- },
- {
- "input": "&nsubseteqq;",
- "description": "Named entity: nsubseteqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac5\u0338"
- ]
- ]
- },
- {
- "input": "&nsucc",
- "description": "Bad named entity: nsucc without a semi-colon",
- "output": [
- [
- "Character",
- "&nsucc"
- ]
- ]
- },
- {
- "input": "&nsucc;",
- "description": "Named entity: nsucc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2281"
- ]
- ]
- },
- {
- "input": "&nsucceq",
- "description": "Bad named entity: nsucceq without a semi-colon",
- "output": [
- [
- "Character",
- "&nsucceq"
- ]
- ]
- },
- {
- "input": "&nsucceq;",
- "description": "Named entity: nsucceq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab0\u0338"
- ]
- ]
- },
- {
- "input": "&nsup",
- "description": "Bad named entity: nsup without a semi-colon",
- "output": [
- [
- "Character",
- "&nsup"
- ]
- ]
- },
- {
- "input": "&nsup;",
- "description": "Named entity: nsup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2285"
- ]
- ]
- },
- {
- "input": "&nsupE",
- "description": "Bad named entity: nsupE without a semi-colon",
- "output": [
- [
- "Character",
- "&nsupE"
- ]
- ]
- },
- {
- "input": "&nsupE;",
- "description": "Named entity: nsupE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac6\u0338"
- ]
- ]
- },
- {
- "input": "&nsupe",
- "description": "Bad named entity: nsupe without a semi-colon",
- "output": [
- [
- "Character",
- "&nsupe"
- ]
- ]
- },
- {
- "input": "&nsupe;",
- "description": "Named entity: nsupe; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2289"
- ]
- ]
- },
- {
- "input": "&nsupset",
- "description": "Bad named entity: nsupset without a semi-colon",
- "output": [
- [
- "Character",
- "&nsupset"
- ]
- ]
- },
- {
- "input": "&nsupset;",
- "description": "Named entity: nsupset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2283\u20d2"
- ]
- ]
- },
- {
- "input": "&nsupseteq",
- "description": "Bad named entity: nsupseteq without a semi-colon",
- "output": [
- [
- "Character",
- "&nsupseteq"
- ]
- ]
- },
- {
- "input": "&nsupseteq;",
- "description": "Named entity: nsupseteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2289"
- ]
- ]
- },
- {
- "input": "&nsupseteqq",
- "description": "Bad named entity: nsupseteqq without a semi-colon",
- "output": [
- [
- "Character",
- "&nsupseteqq"
- ]
- ]
- },
- {
- "input": "&nsupseteqq;",
- "description": "Named entity: nsupseteqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac6\u0338"
- ]
- ]
- },
- {
- "input": "&ntgl",
- "description": "Bad named entity: ntgl without a semi-colon",
- "output": [
- [
- "Character",
- "&ntgl"
- ]
- ]
- },
- {
- "input": "&ntgl;",
- "description": "Named entity: ntgl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2279"
- ]
- ]
- },
- {
- "input": "&ntilde",
- "description": "Named entity: ntilde without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f1"
- ]
- ]
- },
- {
- "input": "&ntilde;",
- "description": "Named entity: ntilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f1"
- ]
- ]
- },
- {
- "input": "&ntlg",
- "description": "Bad named entity: ntlg without a semi-colon",
- "output": [
- [
- "Character",
- "&ntlg"
- ]
- ]
- },
- {
- "input": "&ntlg;",
- "description": "Named entity: ntlg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2278"
- ]
- ]
- },
- {
- "input": "&ntriangleleft",
- "description": "Bad named entity: ntriangleleft without a semi-colon",
- "output": [
- [
- "Character",
- "&ntriangleleft"
- ]
- ]
- },
- {
- "input": "&ntriangleleft;",
- "description": "Named entity: ntriangleleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ea"
- ]
- ]
- },
- {
- "input": "&ntrianglelefteq",
- "description": "Bad named entity: ntrianglelefteq without a semi-colon",
- "output": [
- [
- "Character",
- "&ntrianglelefteq"
- ]
- ]
- },
- {
- "input": "&ntrianglelefteq;",
- "description": "Named entity: ntrianglelefteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ec"
- ]
- ]
- },
- {
- "input": "&ntriangleright",
- "description": "Bad named entity: ntriangleright without a semi-colon",
- "output": [
- [
- "Character",
- "&ntriangleright"
- ]
- ]
- },
- {
- "input": "&ntriangleright;",
- "description": "Named entity: ntriangleright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22eb"
- ]
- ]
- },
- {
- "input": "&ntrianglerighteq",
- "description": "Bad named entity: ntrianglerighteq without a semi-colon",
- "output": [
- [
- "Character",
- "&ntrianglerighteq"
- ]
- ]
- },
- {
- "input": "&ntrianglerighteq;",
- "description": "Named entity: ntrianglerighteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ed"
- ]
- ]
- },
- {
- "input": "&nu",
- "description": "Bad named entity: nu without a semi-colon",
- "output": [
- [
- "Character",
- "&nu"
- ]
- ]
- },
- {
- "input": "&nu;",
- "description": "Named entity: nu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03bd"
- ]
- ]
- },
- {
- "input": "&num",
- "description": "Bad named entity: num without a semi-colon",
- "output": [
- [
- "Character",
- "&num"
- ]
- ]
- },
- {
- "input": "&num;",
- "description": "Named entity: num; with a semi-colon",
- "output": [
- [
- "Character",
- "#"
- ]
- ]
- },
- {
- "input": "&numero",
- "description": "Bad named entity: numero without a semi-colon",
- "output": [
- [
- "Character",
- "&numero"
- ]
- ]
- },
- {
- "input": "&numero;",
- "description": "Named entity: numero; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2116"
- ]
- ]
- },
- {
- "input": "&numsp",
- "description": "Bad named entity: numsp without a semi-colon",
- "output": [
- [
- "Character",
- "&numsp"
- ]
- ]
- },
- {
- "input": "&numsp;",
- "description": "Named entity: numsp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2007"
- ]
- ]
- },
- {
- "input": "&nvDash",
- "description": "Bad named entity: nvDash without a semi-colon",
- "output": [
- [
- "Character",
- "&nvDash"
- ]
- ]
- },
- {
- "input": "&nvDash;",
- "description": "Named entity: nvDash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ad"
- ]
- ]
- },
- {
- "input": "&nvHarr",
- "description": "Bad named entity: nvHarr without a semi-colon",
- "output": [
- [
- "Character",
- "&nvHarr"
- ]
- ]
- },
- {
- "input": "&nvHarr;",
- "description": "Named entity: nvHarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2904"
- ]
- ]
- },
- {
- "input": "&nvap",
- "description": "Bad named entity: nvap without a semi-colon",
- "output": [
- [
- "Character",
- "&nvap"
- ]
- ]
- },
- {
- "input": "&nvap;",
- "description": "Named entity: nvap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224d\u20d2"
- ]
- ]
- },
- {
- "input": "&nvdash",
- "description": "Bad named entity: nvdash without a semi-colon",
- "output": [
- [
- "Character",
- "&nvdash"
- ]
- ]
- },
- {
- "input": "&nvdash;",
- "description": "Named entity: nvdash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ac"
- ]
- ]
- },
- {
- "input": "&nvge",
- "description": "Bad named entity: nvge without a semi-colon",
- "output": [
- [
- "Character",
- "&nvge"
- ]
- ]
- },
- {
- "input": "&nvge;",
- "description": "Named entity: nvge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2265\u20d2"
- ]
- ]
- },
- {
- "input": "&nvgt",
- "description": "Bad named entity: nvgt without a semi-colon",
- "output": [
- [
- "Character",
- "&nvgt"
- ]
- ]
- },
- {
- "input": "&nvgt;",
- "description": "Named entity: nvgt; with a semi-colon",
- "output": [
- [
- "Character",
- ">\u20d2"
- ]
- ]
- },
- {
- "input": "&nvinfin",
- "description": "Bad named entity: nvinfin without a semi-colon",
- "output": [
- [
- "Character",
- "&nvinfin"
- ]
- ]
- },
- {
- "input": "&nvinfin;",
- "description": "Named entity: nvinfin; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29de"
- ]
- ]
- },
- {
- "input": "&nvlArr",
- "description": "Bad named entity: nvlArr without a semi-colon",
- "output": [
- [
- "Character",
- "&nvlArr"
- ]
- ]
- },
- {
- "input": "&nvlArr;",
- "description": "Named entity: nvlArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2902"
- ]
- ]
- },
- {
- "input": "&nvle",
- "description": "Bad named entity: nvle without a semi-colon",
- "output": [
- [
- "Character",
- "&nvle"
- ]
- ]
- },
- {
- "input": "&nvle;",
- "description": "Named entity: nvle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2264\u20d2"
- ]
- ]
- },
- {
- "input": "&nvlt",
- "description": "Bad named entity: nvlt without a semi-colon",
- "output": [
- [
- "Character",
- "&nvlt"
- ]
- ]
- },
- {
- "input": "&nvlt;",
- "description": "Named entity: nvlt; with a semi-colon",
- "output": [
- [
- "Character",
- "<\u20d2"
- ]
- ]
- },
- {
- "input": "&nvltrie",
- "description": "Bad named entity: nvltrie without a semi-colon",
- "output": [
- [
- "Character",
- "&nvltrie"
- ]
- ]
- },
- {
- "input": "&nvltrie;",
- "description": "Named entity: nvltrie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b4\u20d2"
- ]
- ]
- },
- {
- "input": "&nvrArr",
- "description": "Bad named entity: nvrArr without a semi-colon",
- "output": [
- [
- "Character",
- "&nvrArr"
- ]
- ]
- },
- {
- "input": "&nvrArr;",
- "description": "Named entity: nvrArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2903"
- ]
- ]
- },
- {
- "input": "&nvrtrie",
- "description": "Bad named entity: nvrtrie without a semi-colon",
- "output": [
- [
- "Character",
- "&nvrtrie"
- ]
- ]
- },
- {
- "input": "&nvrtrie;",
- "description": "Named entity: nvrtrie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b5\u20d2"
- ]
- ]
- },
- {
- "input": "&nvsim",
- "description": "Bad named entity: nvsim without a semi-colon",
- "output": [
- [
- "Character",
- "&nvsim"
- ]
- ]
- },
- {
- "input": "&nvsim;",
- "description": "Named entity: nvsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223c\u20d2"
- ]
- ]
- },
- {
- "input": "&nwArr",
- "description": "Bad named entity: nwArr without a semi-colon",
- "output": [
- [
- "Character",
- "&nwArr"
- ]
- ]
- },
- {
- "input": "&nwArr;",
- "description": "Named entity: nwArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d6"
- ]
- ]
- },
- {
- "input": "&nwarhk",
- "description": "Bad named entity: nwarhk without a semi-colon",
- "output": [
- [
- "Character",
- "&nwarhk"
- ]
- ]
- },
- {
- "input": "&nwarhk;",
- "description": "Named entity: nwarhk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2923"
- ]
- ]
- },
- {
- "input": "&nwarr",
- "description": "Bad named entity: nwarr without a semi-colon",
- "output": [
- [
- "Character",
- "&nwarr"
- ]
- ]
- },
- {
- "input": "&nwarr;",
- "description": "Named entity: nwarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2196"
- ]
- ]
- },
- {
- "input": "&nwarrow",
- "description": "Bad named entity: nwarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&nwarrow"
- ]
- ]
- },
- {
- "input": "&nwarrow;",
- "description": "Named entity: nwarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2196"
- ]
- ]
- },
- {
- "input": "&nwnear",
- "description": "Bad named entity: nwnear without a semi-colon",
- "output": [
- [
- "Character",
- "&nwnear"
- ]
- ]
- },
- {
- "input": "&nwnear;",
- "description": "Named entity: nwnear; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2927"
- ]
- ]
- },
- {
- "input": "&oS",
- "description": "Bad named entity: oS without a semi-colon",
- "output": [
- [
- "Character",
- "&oS"
- ]
- ]
- },
- {
- "input": "&oS;",
- "description": "Named entity: oS; with a semi-colon",
- "output": [
- [
- "Character",
- "\u24c8"
- ]
- ]
- },
- {
- "input": "&oacute",
- "description": "Named entity: oacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f3"
- ]
- ]
- },
- {
- "input": "&oacute;",
- "description": "Named entity: oacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f3"
- ]
- ]
- },
- {
- "input": "&oast",
- "description": "Bad named entity: oast without a semi-colon",
- "output": [
- [
- "Character",
- "&oast"
- ]
- ]
- },
- {
- "input": "&oast;",
- "description": "Named entity: oast; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229b"
- ]
- ]
- },
- {
- "input": "&ocir",
- "description": "Bad named entity: ocir without a semi-colon",
- "output": [
- [
- "Character",
- "&ocir"
- ]
- ]
- },
- {
- "input": "&ocir;",
- "description": "Named entity: ocir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229a"
- ]
- ]
- },
- {
- "input": "&ocirc",
- "description": "Named entity: ocirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f4"
- ]
- ]
- },
- {
- "input": "&ocirc;",
- "description": "Named entity: ocirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f4"
- ]
- ]
- },
- {
- "input": "&ocy",
- "description": "Bad named entity: ocy without a semi-colon",
- "output": [
- [
- "Character",
- "&ocy"
- ]
- ]
- },
- {
- "input": "&ocy;",
- "description": "Named entity: ocy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u043e"
- ]
- ]
- },
- {
- "input": "&odash",
- "description": "Bad named entity: odash without a semi-colon",
- "output": [
- [
- "Character",
- "&odash"
- ]
- ]
- },
- {
- "input": "&odash;",
- "description": "Named entity: odash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229d"
- ]
- ]
- },
- {
- "input": "&odblac",
- "description": "Bad named entity: odblac without a semi-colon",
- "output": [
- [
- "Character",
- "&odblac"
- ]
- ]
- },
- {
- "input": "&odblac;",
- "description": "Named entity: odblac; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0151"
- ]
- ]
- },
- {
- "input": "&odiv",
- "description": "Bad named entity: odiv without a semi-colon",
- "output": [
- [
- "Character",
- "&odiv"
- ]
- ]
- },
- {
- "input": "&odiv;",
- "description": "Named entity: odiv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a38"
- ]
- ]
- },
- {
- "input": "&odot",
- "description": "Bad named entity: odot without a semi-colon",
- "output": [
- [
- "Character",
- "&odot"
- ]
- ]
- },
- {
- "input": "&odot;",
- "description": "Named entity: odot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2299"
- ]
- ]
- },
- {
- "input": "&odsold",
- "description": "Bad named entity: odsold without a semi-colon",
- "output": [
- [
- "Character",
- "&odsold"
- ]
- ]
- },
- {
- "input": "&odsold;",
- "description": "Named entity: odsold; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29bc"
- ]
- ]
- },
- {
- "input": "&oelig",
- "description": "Bad named entity: oelig without a semi-colon",
- "output": [
- [
- "Character",
- "&oelig"
- ]
- ]
- },
- {
- "input": "&oelig;",
- "description": "Named entity: oelig; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0153"
- ]
- ]
- },
- {
- "input": "&ofcir",
- "description": "Bad named entity: ofcir without a semi-colon",
- "output": [
- [
- "Character",
- "&ofcir"
- ]
- ]
- },
- {
- "input": "&ofcir;",
- "description": "Named entity: ofcir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29bf"
- ]
- ]
- },
- {
- "input": "&ofr",
- "description": "Bad named entity: ofr without a semi-colon",
- "output": [
- [
- "Character",
- "&ofr"
- ]
- ]
- },
- {
- "input": "&ofr;",
- "description": "Named entity: ofr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd2c"
- ]
- ]
- },
- {
- "input": "&ogon",
- "description": "Bad named entity: ogon without a semi-colon",
- "output": [
- [
- "Character",
- "&ogon"
- ]
- ]
- },
- {
- "input": "&ogon;",
- "description": "Named entity: ogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02db"
- ]
- ]
- },
- {
- "input": "&ograve",
- "description": "Named entity: ograve without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f2"
- ]
- ]
- },
- {
- "input": "&ograve;",
- "description": "Named entity: ograve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f2"
- ]
- ]
- },
- {
- "input": "&ogt",
- "description": "Bad named entity: ogt without a semi-colon",
- "output": [
- [
- "Character",
- "&ogt"
- ]
- ]
- },
- {
- "input": "&ogt;",
- "description": "Named entity: ogt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29c1"
- ]
- ]
- },
- {
- "input": "&ohbar",
- "description": "Bad named entity: ohbar without a semi-colon",
- "output": [
- [
- "Character",
- "&ohbar"
- ]
- ]
- },
- {
- "input": "&ohbar;",
- "description": "Named entity: ohbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b5"
- ]
- ]
- },
- {
- "input": "&ohm",
- "description": "Bad named entity: ohm without a semi-colon",
- "output": [
- [
- "Character",
- "&ohm"
- ]
- ]
- },
- {
- "input": "&ohm;",
- "description": "Named entity: ohm; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a9"
- ]
- ]
- },
- {
- "input": "&oint",
- "description": "Bad named entity: oint without a semi-colon",
- "output": [
- [
- "Character",
- "&oint"
- ]
- ]
- },
- {
- "input": "&oint;",
- "description": "Named entity: oint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222e"
- ]
- ]
- },
- {
- "input": "&olarr",
- "description": "Bad named entity: olarr without a semi-colon",
- "output": [
- [
- "Character",
- "&olarr"
- ]
- ]
- },
- {
- "input": "&olarr;",
- "description": "Named entity: olarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ba"
- ]
- ]
- },
- {
- "input": "&olcir",
- "description": "Bad named entity: olcir without a semi-colon",
- "output": [
- [
- "Character",
- "&olcir"
- ]
- ]
- },
- {
- "input": "&olcir;",
- "description": "Named entity: olcir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29be"
- ]
- ]
- },
- {
- "input": "&olcross",
- "description": "Bad named entity: olcross without a semi-colon",
- "output": [
- [
- "Character",
- "&olcross"
- ]
- ]
- },
- {
- "input": "&olcross;",
- "description": "Named entity: olcross; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29bb"
- ]
- ]
- },
- {
- "input": "&oline",
- "description": "Bad named entity: oline without a semi-colon",
- "output": [
- [
- "Character",
- "&oline"
- ]
- ]
- },
- {
- "input": "&oline;",
- "description": "Named entity: oline; with a semi-colon",
- "output": [
- [
- "Character",
- "\u203e"
- ]
- ]
- },
- {
- "input": "&olt",
- "description": "Bad named entity: olt without a semi-colon",
- "output": [
- [
- "Character",
- "&olt"
- ]
- ]
- },
- {
- "input": "&olt;",
- "description": "Named entity: olt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29c0"
- ]
- ]
- },
- {
- "input": "&omacr",
- "description": "Bad named entity: omacr without a semi-colon",
- "output": [
- [
- "Character",
- "&omacr"
- ]
- ]
- },
- {
- "input": "&omacr;",
- "description": "Named entity: omacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u014d"
- ]
- ]
- },
- {
- "input": "&omega",
- "description": "Bad named entity: omega without a semi-colon",
- "output": [
- [
- "Character",
- "&omega"
- ]
- ]
- },
- {
- "input": "&omega;",
- "description": "Named entity: omega; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c9"
- ]
- ]
- },
- {
- "input": "&omicron",
- "description": "Bad named entity: omicron without a semi-colon",
- "output": [
- [
- "Character",
- "&omicron"
- ]
- ]
- },
- {
- "input": "&omicron;",
- "description": "Named entity: omicron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03bf"
- ]
- ]
- },
- {
- "input": "&omid",
- "description": "Bad named entity: omid without a semi-colon",
- "output": [
- [
- "Character",
- "&omid"
- ]
- ]
- },
- {
- "input": "&omid;",
- "description": "Named entity: omid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b6"
- ]
- ]
- },
- {
- "input": "&ominus",
- "description": "Bad named entity: ominus without a semi-colon",
- "output": [
- [
- "Character",
- "&ominus"
- ]
- ]
- },
- {
- "input": "&ominus;",
- "description": "Named entity: ominus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2296"
- ]
- ]
- },
- {
- "input": "&oopf",
- "description": "Bad named entity: oopf without a semi-colon",
- "output": [
- [
- "Character",
- "&oopf"
- ]
- ]
- },
- {
- "input": "&oopf;",
- "description": "Named entity: oopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd60"
- ]
- ]
- },
- {
- "input": "&opar",
- "description": "Bad named entity: opar without a semi-colon",
- "output": [
- [
- "Character",
- "&opar"
- ]
- ]
- },
- {
- "input": "&opar;",
- "description": "Named entity: opar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b7"
- ]
- ]
- },
- {
- "input": "&operp",
- "description": "Bad named entity: operp without a semi-colon",
- "output": [
- [
- "Character",
- "&operp"
- ]
- ]
- },
- {
- "input": "&operp;",
- "description": "Named entity: operp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b9"
- ]
- ]
- },
- {
- "input": "&oplus",
- "description": "Bad named entity: oplus without a semi-colon",
- "output": [
- [
- "Character",
- "&oplus"
- ]
- ]
- },
- {
- "input": "&oplus;",
- "description": "Named entity: oplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2295"
- ]
- ]
- },
- {
- "input": "&or",
- "description": "Bad named entity: or without a semi-colon",
- "output": [
- [
- "Character",
- "&or"
- ]
- ]
- },
- {
- "input": "&or;",
- "description": "Named entity: or; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2228"
- ]
- ]
- },
- {
- "input": "&orarr",
- "description": "Bad named entity: orarr without a semi-colon",
- "output": [
- [
- "Character",
- "&orarr"
- ]
- ]
- },
- {
- "input": "&orarr;",
- "description": "Named entity: orarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bb"
- ]
- ]
- },
- {
- "input": "&ord",
- "description": "Bad named entity: ord without a semi-colon",
- "output": [
- [
- "Character",
- "&ord"
- ]
- ]
- },
- {
- "input": "&ord;",
- "description": "Named entity: ord; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a5d"
- ]
- ]
- },
- {
- "input": "&order",
- "description": "Bad named entity: order without a semi-colon",
- "output": [
- [
- "Character",
- "&order"
- ]
- ]
- },
- {
- "input": "&order;",
- "description": "Named entity: order; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2134"
- ]
- ]
- },
- {
- "input": "&orderof",
- "description": "Bad named entity: orderof without a semi-colon",
- "output": [
- [
- "Character",
- "&orderof"
- ]
- ]
- },
- {
- "input": "&orderof;",
- "description": "Named entity: orderof; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2134"
- ]
- ]
- },
- {
- "input": "&ordf",
- "description": "Named entity: ordf without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00aa"
- ]
- ]
- },
- {
- "input": "&ordf;",
- "description": "Named entity: ordf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00aa"
- ]
- ]
- },
- {
- "input": "&ordm",
- "description": "Named entity: ordm without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ba"
- ]
- ]
- },
- {
- "input": "&ordm;",
- "description": "Named entity: ordm; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ba"
- ]
- ]
- },
- {
- "input": "&origof",
- "description": "Bad named entity: origof without a semi-colon",
- "output": [
- [
- "Character",
- "&origof"
- ]
- ]
- },
- {
- "input": "&origof;",
- "description": "Named entity: origof; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b6"
- ]
- ]
- },
- {
- "input": "&oror",
- "description": "Bad named entity: oror without a semi-colon",
- "output": [
- [
- "Character",
- "&oror"
- ]
- ]
- },
- {
- "input": "&oror;",
- "description": "Named entity: oror; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a56"
- ]
- ]
- },
- {
- "input": "&orslope",
- "description": "Bad named entity: orslope without a semi-colon",
- "output": [
- [
- "Character",
- "&orslope"
- ]
- ]
- },
- {
- "input": "&orslope;",
- "description": "Named entity: orslope; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a57"
- ]
- ]
- },
- {
- "input": "&orv",
- "description": "Bad named entity: orv without a semi-colon",
- "output": [
- [
- "Character",
- "&orv"
- ]
- ]
- },
- {
- "input": "&orv;",
- "description": "Named entity: orv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a5b"
- ]
- ]
- },
- {
- "input": "&oscr",
- "description": "Bad named entity: oscr without a semi-colon",
- "output": [
- [
- "Character",
- "&oscr"
- ]
- ]
- },
- {
- "input": "&oscr;",
- "description": "Named entity: oscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2134"
- ]
- ]
- },
- {
- "input": "&oslash",
- "description": "Named entity: oslash without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f8"
- ]
- ]
- },
- {
- "input": "&oslash;",
- "description": "Named entity: oslash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f8"
- ]
- ]
- },
- {
- "input": "&osol",
- "description": "Bad named entity: osol without a semi-colon",
- "output": [
- [
- "Character",
- "&osol"
- ]
- ]
- },
- {
- "input": "&osol;",
- "description": "Named entity: osol; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2298"
- ]
- ]
- },
- {
- "input": "&otilde",
- "description": "Named entity: otilde without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f5"
- ]
- ]
- },
- {
- "input": "&otilde;",
- "description": "Named entity: otilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f5"
- ]
- ]
- },
- {
- "input": "&otimes",
- "description": "Bad named entity: otimes without a semi-colon",
- "output": [
- [
- "Character",
- "&otimes"
- ]
- ]
- },
- {
- "input": "&otimes;",
- "description": "Named entity: otimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2297"
- ]
- ]
- },
- {
- "input": "&otimesas",
- "description": "Bad named entity: otimesas without a semi-colon",
- "output": [
- [
- "Character",
- "&otimesas"
- ]
- ]
- },
- {
- "input": "&otimesas;",
- "description": "Named entity: otimesas; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a36"
- ]
- ]
- },
- {
- "input": "&ouml",
- "description": "Named entity: ouml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f6"
- ]
- ]
- },
- {
- "input": "&ouml;",
- "description": "Named entity: ouml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f6"
- ]
- ]
- },
- {
- "input": "&ovbar",
- "description": "Bad named entity: ovbar without a semi-colon",
- "output": [
- [
- "Character",
- "&ovbar"
- ]
- ]
- },
- {
- "input": "&ovbar;",
- "description": "Named entity: ovbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u233d"
- ]
- ]
- },
- {
- "input": "&par",
- "description": "Bad named entity: par without a semi-colon",
- "output": [
- [
- "Character",
- "&par"
- ]
- ]
- },
- {
- "input": "&par;",
- "description": "Named entity: par; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2225"
- ]
- ]
- },
- {
- "input": "&para",
- "description": "Named entity: para without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b6"
- ]
- ]
- },
- {
- "input": "&para;",
- "description": "Named entity: para; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b6"
- ]
- ]
- },
- {
- "input": "&parallel;",
- "description": "Named entity: parallel; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2225"
- ]
- ]
- },
- {
- "input": "&parsim",
- "description": "Bad named entity: parsim without a semi-colon",
- "output": [
- [
- "Character",
- "&parsim"
- ]
- ]
- },
- {
- "input": "&parsim;",
- "description": "Named entity: parsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2af3"
- ]
- ]
- },
- {
- "input": "&parsl",
- "description": "Bad named entity: parsl without a semi-colon",
- "output": [
- [
- "Character",
- "&parsl"
- ]
- ]
- },
- {
- "input": "&parsl;",
- "description": "Named entity: parsl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2afd"
- ]
- ]
- },
- {
- "input": "&part",
- "description": "Bad named entity: part without a semi-colon",
- "output": [
- [
- "Character",
- "&part"
- ]
- ]
- },
- {
- "input": "&part;",
- "description": "Named entity: part; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2202"
- ]
- ]
- },
- {
- "input": "&pcy",
- "description": "Bad named entity: pcy without a semi-colon",
- "output": [
- [
- "Character",
- "&pcy"
- ]
- ]
- },
- {
- "input": "&pcy;",
- "description": "Named entity: pcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u043f"
- ]
- ]
- },
- {
- "input": "&percnt",
- "description": "Bad named entity: percnt without a semi-colon",
- "output": [
- [
- "Character",
- "&percnt"
- ]
- ]
- },
- {
- "input": "&percnt;",
- "description": "Named entity: percnt; with a semi-colon",
- "output": [
- [
- "Character",
- "%"
- ]
- ]
- },
- {
- "input": "&period",
- "description": "Bad named entity: period without a semi-colon",
- "output": [
- [
- "Character",
- "&period"
- ]
- ]
- },
- {
- "input": "&period;",
- "description": "Named entity: period; with a semi-colon",
- "output": [
- [
- "Character",
- "."
- ]
- ]
- },
- {
- "input": "&permil",
- "description": "Bad named entity: permil without a semi-colon",
- "output": [
- [
- "Character",
- "&permil"
- ]
- ]
- },
- {
- "input": "&permil;",
- "description": "Named entity: permil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2030"
- ]
- ]
- },
- {
- "input": "&perp",
- "description": "Bad named entity: perp without a semi-colon",
- "output": [
- [
- "Character",
- "&perp"
- ]
- ]
- },
- {
- "input": "&perp;",
- "description": "Named entity: perp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a5"
- ]
- ]
- },
- {
- "input": "&pertenk",
- "description": "Bad named entity: pertenk without a semi-colon",
- "output": [
- [
- "Character",
- "&pertenk"
- ]
- ]
- },
- {
- "input": "&pertenk;",
- "description": "Named entity: pertenk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2031"
- ]
- ]
- },
- {
- "input": "&pfr",
- "description": "Bad named entity: pfr without a semi-colon",
- "output": [
- [
- "Character",
- "&pfr"
- ]
- ]
- },
- {
- "input": "&pfr;",
- "description": "Named entity: pfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd2d"
- ]
- ]
- },
- {
- "input": "&phi",
- "description": "Bad named entity: phi without a semi-colon",
- "output": [
- [
- "Character",
- "&phi"
- ]
- ]
- },
- {
- "input": "&phi;",
- "description": "Named entity: phi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c6"
- ]
- ]
- },
- {
- "input": "&phiv",
- "description": "Bad named entity: phiv without a semi-colon",
- "output": [
- [
- "Character",
- "&phiv"
- ]
- ]
- },
- {
- "input": "&phiv;",
- "description": "Named entity: phiv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d5"
- ]
- ]
- },
- {
- "input": "&phmmat",
- "description": "Bad named entity: phmmat without a semi-colon",
- "output": [
- [
- "Character",
- "&phmmat"
- ]
- ]
- },
- {
- "input": "&phmmat;",
- "description": "Named entity: phmmat; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2133"
- ]
- ]
- },
- {
- "input": "&phone",
- "description": "Bad named entity: phone without a semi-colon",
- "output": [
- [
- "Character",
- "&phone"
- ]
- ]
- },
- {
- "input": "&phone;",
- "description": "Named entity: phone; with a semi-colon",
- "output": [
- [
- "Character",
- "\u260e"
- ]
- ]
- },
- {
- "input": "&pi",
- "description": "Bad named entity: pi without a semi-colon",
- "output": [
- [
- "Character",
- "&pi"
- ]
- ]
- },
- {
- "input": "&pi;",
- "description": "Named entity: pi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c0"
- ]
- ]
- },
- {
- "input": "&pitchfork",
- "description": "Bad named entity: pitchfork without a semi-colon",
- "output": [
- [
- "Character",
- "&pitchfork"
- ]
- ]
- },
- {
- "input": "&pitchfork;",
- "description": "Named entity: pitchfork; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d4"
- ]
- ]
- },
- {
- "input": "&piv",
- "description": "Bad named entity: piv without a semi-colon",
- "output": [
- [
- "Character",
- "&piv"
- ]
- ]
- },
- {
- "input": "&piv;",
- "description": "Named entity: piv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d6"
- ]
- ]
- },
- {
- "input": "&planck",
- "description": "Bad named entity: planck without a semi-colon",
- "output": [
- [
- "Character",
- "&planck"
- ]
- ]
- },
- {
- "input": "&planck;",
- "description": "Named entity: planck; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210f"
- ]
- ]
- },
- {
- "input": "&planckh",
- "description": "Bad named entity: planckh without a semi-colon",
- "output": [
- [
- "Character",
- "&planckh"
- ]
- ]
- },
- {
- "input": "&planckh;",
- "description": "Named entity: planckh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210e"
- ]
- ]
- },
- {
- "input": "&plankv",
- "description": "Bad named entity: plankv without a semi-colon",
- "output": [
- [
- "Character",
- "&plankv"
- ]
- ]
- },
- {
- "input": "&plankv;",
- "description": "Named entity: plankv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210f"
- ]
- ]
- },
- {
- "input": "&plus",
- "description": "Bad named entity: plus without a semi-colon",
- "output": [
- [
- "Character",
- "&plus"
- ]
- ]
- },
- {
- "input": "&plus;",
- "description": "Named entity: plus; with a semi-colon",
- "output": [
- [
- "Character",
- "+"
- ]
- ]
- },
- {
- "input": "&plusacir",
- "description": "Bad named entity: plusacir without a semi-colon",
- "output": [
- [
- "Character",
- "&plusacir"
- ]
- ]
- },
- {
- "input": "&plusacir;",
- "description": "Named entity: plusacir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a23"
- ]
- ]
- },
- {
- "input": "&plusb",
- "description": "Bad named entity: plusb without a semi-colon",
- "output": [
- [
- "Character",
- "&plusb"
- ]
- ]
- },
- {
- "input": "&plusb;",
- "description": "Named entity: plusb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229e"
- ]
- ]
- },
- {
- "input": "&pluscir",
- "description": "Bad named entity: pluscir without a semi-colon",
- "output": [
- [
- "Character",
- "&pluscir"
- ]
- ]
- },
- {
- "input": "&pluscir;",
- "description": "Named entity: pluscir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a22"
- ]
- ]
- },
- {
- "input": "&plusdo",
- "description": "Bad named entity: plusdo without a semi-colon",
- "output": [
- [
- "Character",
- "&plusdo"
- ]
- ]
- },
- {
- "input": "&plusdo;",
- "description": "Named entity: plusdo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2214"
- ]
- ]
- },
- {
- "input": "&plusdu",
- "description": "Bad named entity: plusdu without a semi-colon",
- "output": [
- [
- "Character",
- "&plusdu"
- ]
- ]
- },
- {
- "input": "&plusdu;",
- "description": "Named entity: plusdu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a25"
- ]
- ]
- },
- {
- "input": "&pluse",
- "description": "Bad named entity: pluse without a semi-colon",
- "output": [
- [
- "Character",
- "&pluse"
- ]
- ]
- },
- {
- "input": "&pluse;",
- "description": "Named entity: pluse; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a72"
- ]
- ]
- },
- {
- "input": "&plusmn",
- "description": "Named entity: plusmn without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b1"
- ]
- ]
- },
- {
- "input": "&plusmn;",
- "description": "Named entity: plusmn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b1"
- ]
- ]
- },
- {
- "input": "&plussim",
- "description": "Bad named entity: plussim without a semi-colon",
- "output": [
- [
- "Character",
- "&plussim"
- ]
- ]
- },
- {
- "input": "&plussim;",
- "description": "Named entity: plussim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a26"
- ]
- ]
- },
- {
- "input": "&plustwo",
- "description": "Bad named entity: plustwo without a semi-colon",
- "output": [
- [
- "Character",
- "&plustwo"
- ]
- ]
- },
- {
- "input": "&plustwo;",
- "description": "Named entity: plustwo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a27"
- ]
- ]
- },
- {
- "input": "&pm",
- "description": "Bad named entity: pm without a semi-colon",
- "output": [
- [
- "Character",
- "&pm"
- ]
- ]
- },
- {
- "input": "&pm;",
- "description": "Named entity: pm; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b1"
- ]
- ]
- },
- {
- "input": "&pointint",
- "description": "Bad named entity: pointint without a semi-colon",
- "output": [
- [
- "Character",
- "&pointint"
- ]
- ]
- },
- {
- "input": "&pointint;",
- "description": "Named entity: pointint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a15"
- ]
- ]
- },
- {
- "input": "&popf",
- "description": "Bad named entity: popf without a semi-colon",
- "output": [
- [
- "Character",
- "&popf"
- ]
- ]
- },
- {
- "input": "&popf;",
- "description": "Named entity: popf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd61"
- ]
- ]
- },
- {
- "input": "&pound",
- "description": "Named entity: pound without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a3"
- ]
- ]
- },
- {
- "input": "&pound;",
- "description": "Named entity: pound; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a3"
- ]
- ]
- },
- {
- "input": "&pr",
- "description": "Bad named entity: pr without a semi-colon",
- "output": [
- [
- "Character",
- "&pr"
- ]
- ]
- },
- {
- "input": "&pr;",
- "description": "Named entity: pr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227a"
- ]
- ]
- },
- {
- "input": "&prE",
- "description": "Bad named entity: prE without a semi-colon",
- "output": [
- [
- "Character",
- "&prE"
- ]
- ]
- },
- {
- "input": "&prE;",
- "description": "Named entity: prE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab3"
- ]
- ]
- },
- {
- "input": "&prap",
- "description": "Bad named entity: prap without a semi-colon",
- "output": [
- [
- "Character",
- "&prap"
- ]
- ]
- },
- {
- "input": "&prap;",
- "description": "Named entity: prap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab7"
- ]
- ]
- },
- {
- "input": "&prcue",
- "description": "Bad named entity: prcue without a semi-colon",
- "output": [
- [
- "Character",
- "&prcue"
- ]
- ]
- },
- {
- "input": "&prcue;",
- "description": "Named entity: prcue; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227c"
- ]
- ]
- },
- {
- "input": "&pre",
- "description": "Bad named entity: pre without a semi-colon",
- "output": [
- [
- "Character",
- "&pre"
- ]
- ]
- },
- {
- "input": "&pre;",
- "description": "Named entity: pre; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aaf"
- ]
- ]
- },
- {
- "input": "&prec",
- "description": "Bad named entity: prec without a semi-colon",
- "output": [
- [
- "Character",
- "&prec"
- ]
- ]
- },
- {
- "input": "&prec;",
- "description": "Named entity: prec; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227a"
- ]
- ]
- },
- {
- "input": "&precapprox",
- "description": "Bad named entity: precapprox without a semi-colon",
- "output": [
- [
- "Character",
- "&precapprox"
- ]
- ]
- },
- {
- "input": "&precapprox;",
- "description": "Named entity: precapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab7"
- ]
- ]
- },
- {
- "input": "&preccurlyeq",
- "description": "Bad named entity: preccurlyeq without a semi-colon",
- "output": [
- [
- "Character",
- "&preccurlyeq"
- ]
- ]
- },
- {
- "input": "&preccurlyeq;",
- "description": "Named entity: preccurlyeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227c"
- ]
- ]
- },
- {
- "input": "&preceq",
- "description": "Bad named entity: preceq without a semi-colon",
- "output": [
- [
- "Character",
- "&preceq"
- ]
- ]
- },
- {
- "input": "&preceq;",
- "description": "Named entity: preceq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aaf"
- ]
- ]
- },
- {
- "input": "&precnapprox",
- "description": "Bad named entity: precnapprox without a semi-colon",
- "output": [
- [
- "Character",
- "&precnapprox"
- ]
- ]
- },
- {
- "input": "&precnapprox;",
- "description": "Named entity: precnapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab9"
- ]
- ]
- },
- {
- "input": "&precneqq",
- "description": "Bad named entity: precneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&precneqq"
- ]
- ]
- },
- {
- "input": "&precneqq;",
- "description": "Named entity: precneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab5"
- ]
- ]
- },
- {
- "input": "&precnsim",
- "description": "Bad named entity: precnsim without a semi-colon",
- "output": [
- [
- "Character",
- "&precnsim"
- ]
- ]
- },
- {
- "input": "&precnsim;",
- "description": "Named entity: precnsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e8"
- ]
- ]
- },
- {
- "input": "&precsim",
- "description": "Bad named entity: precsim without a semi-colon",
- "output": [
- [
- "Character",
- "&precsim"
- ]
- ]
- },
- {
- "input": "&precsim;",
- "description": "Named entity: precsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227e"
- ]
- ]
- },
- {
- "input": "&prime",
- "description": "Bad named entity: prime without a semi-colon",
- "output": [
- [
- "Character",
- "&prime"
- ]
- ]
- },
- {
- "input": "&prime;",
- "description": "Named entity: prime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2032"
- ]
- ]
- },
- {
- "input": "&primes",
- "description": "Bad named entity: primes without a semi-colon",
- "output": [
- [
- "Character",
- "&primes"
- ]
- ]
- },
- {
- "input": "&primes;",
- "description": "Named entity: primes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2119"
- ]
- ]
- },
- {
- "input": "&prnE",
- "description": "Bad named entity: prnE without a semi-colon",
- "output": [
- [
- "Character",
- "&prnE"
- ]
- ]
- },
- {
- "input": "&prnE;",
- "description": "Named entity: prnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab5"
- ]
- ]
- },
- {
- "input": "&prnap",
- "description": "Bad named entity: prnap without a semi-colon",
- "output": [
- [
- "Character",
- "&prnap"
- ]
- ]
- },
- {
- "input": "&prnap;",
- "description": "Named entity: prnap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab9"
- ]
- ]
- },
- {
- "input": "&prnsim",
- "description": "Bad named entity: prnsim without a semi-colon",
- "output": [
- [
- "Character",
- "&prnsim"
- ]
- ]
- },
- {
- "input": "&prnsim;",
- "description": "Named entity: prnsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e8"
- ]
- ]
- },
- {
- "input": "&prod",
- "description": "Bad named entity: prod without a semi-colon",
- "output": [
- [
- "Character",
- "&prod"
- ]
- ]
- },
- {
- "input": "&prod;",
- "description": "Named entity: prod; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220f"
- ]
- ]
- },
- {
- "input": "&profalar",
- "description": "Bad named entity: profalar without a semi-colon",
- "output": [
- [
- "Character",
- "&profalar"
- ]
- ]
- },
- {
- "input": "&profalar;",
- "description": "Named entity: profalar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u232e"
- ]
- ]
- },
- {
- "input": "&profline",
- "description": "Bad named entity: profline without a semi-colon",
- "output": [
- [
- "Character",
- "&profline"
- ]
- ]
- },
- {
- "input": "&profline;",
- "description": "Named entity: profline; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2312"
- ]
- ]
- },
- {
- "input": "&profsurf",
- "description": "Bad named entity: profsurf without a semi-colon",
- "output": [
- [
- "Character",
- "&profsurf"
- ]
- ]
- },
- {
- "input": "&profsurf;",
- "description": "Named entity: profsurf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2313"
- ]
- ]
- },
- {
- "input": "&prop",
- "description": "Bad named entity: prop without a semi-colon",
- "output": [
- [
- "Character",
- "&prop"
- ]
- ]
- },
- {
- "input": "&prop;",
- "description": "Named entity: prop; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221d"
- ]
- ]
- },
- {
- "input": "&propto",
- "description": "Bad named entity: propto without a semi-colon",
- "output": [
- [
- "Character",
- "&propto"
- ]
- ]
- },
- {
- "input": "&propto;",
- "description": "Named entity: propto; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221d"
- ]
- ]
- },
- {
- "input": "&prsim",
- "description": "Bad named entity: prsim without a semi-colon",
- "output": [
- [
- "Character",
- "&prsim"
- ]
- ]
- },
- {
- "input": "&prsim;",
- "description": "Named entity: prsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227e"
- ]
- ]
- },
- {
- "input": "&prurel",
- "description": "Bad named entity: prurel without a semi-colon",
- "output": [
- [
- "Character",
- "&prurel"
- ]
- ]
- },
- {
- "input": "&prurel;",
- "description": "Named entity: prurel; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b0"
- ]
- ]
- },
- {
- "input": "&pscr",
- "description": "Bad named entity: pscr without a semi-colon",
- "output": [
- [
- "Character",
- "&pscr"
- ]
- ]
- },
- {
- "input": "&pscr;",
- "description": "Named entity: pscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc5"
- ]
- ]
- },
- {
- "input": "&psi",
- "description": "Bad named entity: psi without a semi-colon",
- "output": [
- [
- "Character",
- "&psi"
- ]
- ]
- },
- {
- "input": "&psi;",
- "description": "Named entity: psi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c8"
- ]
- ]
- },
- {
- "input": "&puncsp",
- "description": "Bad named entity: puncsp without a semi-colon",
- "output": [
- [
- "Character",
- "&puncsp"
- ]
- ]
- },
- {
- "input": "&puncsp;",
- "description": "Named entity: puncsp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2008"
- ]
- ]
- },
- {
- "input": "&qfr",
- "description": "Bad named entity: qfr without a semi-colon",
- "output": [
- [
- "Character",
- "&qfr"
- ]
- ]
- },
- {
- "input": "&qfr;",
- "description": "Named entity: qfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd2e"
- ]
- ]
- },
- {
- "input": "&qint",
- "description": "Bad named entity: qint without a semi-colon",
- "output": [
- [
- "Character",
- "&qint"
- ]
- ]
- },
- {
- "input": "&qint;",
- "description": "Named entity: qint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a0c"
- ]
- ]
- },
- {
- "input": "&qopf",
- "description": "Bad named entity: qopf without a semi-colon",
- "output": [
- [
- "Character",
- "&qopf"
- ]
- ]
- },
- {
- "input": "&qopf;",
- "description": "Named entity: qopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd62"
- ]
- ]
- },
- {
- "input": "&qprime",
- "description": "Bad named entity: qprime without a semi-colon",
- "output": [
- [
- "Character",
- "&qprime"
- ]
- ]
- },
- {
- "input": "&qprime;",
- "description": "Named entity: qprime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2057"
- ]
- ]
- },
- {
- "input": "&qscr",
- "description": "Bad named entity: qscr without a semi-colon",
- "output": [
- [
- "Character",
- "&qscr"
- ]
- ]
- },
- {
- "input": "&qscr;",
- "description": "Named entity: qscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc6"
- ]
- ]
- },
- {
- "input": "&quaternions",
- "description": "Bad named entity: quaternions without a semi-colon",
- "output": [
- [
- "Character",
- "&quaternions"
- ]
- ]
- },
- {
- "input": "&quaternions;",
- "description": "Named entity: quaternions; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210d"
- ]
- ]
- },
- {
- "input": "&quatint",
- "description": "Bad named entity: quatint without a semi-colon",
- "output": [
- [
- "Character",
- "&quatint"
- ]
- ]
- },
- {
- "input": "&quatint;",
- "description": "Named entity: quatint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a16"
- ]
- ]
- },
- {
- "input": "&quest",
- "description": "Bad named entity: quest without a semi-colon",
- "output": [
- [
- "Character",
- "&quest"
- ]
- ]
- },
- {
- "input": "&quest;",
- "description": "Named entity: quest; with a semi-colon",
- "output": [
- [
- "Character",
- "?"
- ]
- ]
- },
- {
- "input": "&questeq",
- "description": "Bad named entity: questeq without a semi-colon",
- "output": [
- [
- "Character",
- "&questeq"
- ]
- ]
- },
- {
- "input": "&questeq;",
- "description": "Named entity: questeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u225f"
- ]
- ]
- },
- {
- "input": "&quot",
- "description": "Named entity: quot without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\""
- ]
- ]
- },
- {
- "input": "&quot;",
- "description": "Named entity: quot; with a semi-colon",
- "output": [
- [
- "Character",
- "\""
- ]
- ]
- },
- {
- "input": "&rAarr",
- "description": "Bad named entity: rAarr without a semi-colon",
- "output": [
- [
- "Character",
- "&rAarr"
- ]
- ]
- },
- {
- "input": "&rAarr;",
- "description": "Named entity: rAarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21db"
- ]
- ]
- },
- {
- "input": "&rArr",
- "description": "Bad named entity: rArr without a semi-colon",
- "output": [
- [
- "Character",
- "&rArr"
- ]
- ]
- },
- {
- "input": "&rArr;",
- "description": "Named entity: rArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d2"
- ]
- ]
- },
- {
- "input": "&rAtail",
- "description": "Bad named entity: rAtail without a semi-colon",
- "output": [
- [
- "Character",
- "&rAtail"
- ]
- ]
- },
- {
- "input": "&rAtail;",
- "description": "Named entity: rAtail; with a semi-colon",
- "output": [
- [
- "Character",
- "\u291c"
- ]
- ]
- },
- {
- "input": "&rBarr",
- "description": "Bad named entity: rBarr without a semi-colon",
- "output": [
- [
- "Character",
- "&rBarr"
- ]
- ]
- },
- {
- "input": "&rBarr;",
- "description": "Named entity: rBarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u290f"
- ]
- ]
- },
- {
- "input": "&rHar",
- "description": "Bad named entity: rHar without a semi-colon",
- "output": [
- [
- "Character",
- "&rHar"
- ]
- ]
- },
- {
- "input": "&rHar;",
- "description": "Named entity: rHar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2964"
- ]
- ]
- },
- {
- "input": "&race",
- "description": "Bad named entity: race without a semi-colon",
- "output": [
- [
- "Character",
- "&race"
- ]
- ]
- },
- {
- "input": "&race;",
- "description": "Named entity: race; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223d\u0331"
- ]
- ]
- },
- {
- "input": "&racute",
- "description": "Bad named entity: racute without a semi-colon",
- "output": [
- [
- "Character",
- "&racute"
- ]
- ]
- },
- {
- "input": "&racute;",
- "description": "Named entity: racute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0155"
- ]
- ]
- },
- {
- "input": "&radic",
- "description": "Bad named entity: radic without a semi-colon",
- "output": [
- [
- "Character",
- "&radic"
- ]
- ]
- },
- {
- "input": "&radic;",
- "description": "Named entity: radic; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221a"
- ]
- ]
- },
- {
- "input": "&raemptyv",
- "description": "Bad named entity: raemptyv without a semi-colon",
- "output": [
- [
- "Character",
- "&raemptyv"
- ]
- ]
- },
- {
- "input": "&raemptyv;",
- "description": "Named entity: raemptyv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b3"
- ]
- ]
- },
- {
- "input": "&rang",
- "description": "Bad named entity: rang without a semi-colon",
- "output": [
- [
- "Character",
- "&rang"
- ]
- ]
- },
- {
- "input": "&rang;",
- "description": "Named entity: rang; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e9"
- ]
- ]
- },
- {
- "input": "&rangd",
- "description": "Bad named entity: rangd without a semi-colon",
- "output": [
- [
- "Character",
- "&rangd"
- ]
- ]
- },
- {
- "input": "&rangd;",
- "description": "Named entity: rangd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2992"
- ]
- ]
- },
- {
- "input": "&range",
- "description": "Bad named entity: range without a semi-colon",
- "output": [
- [
- "Character",
- "&range"
- ]
- ]
- },
- {
- "input": "&range;",
- "description": "Named entity: range; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29a5"
- ]
- ]
- },
- {
- "input": "&rangle",
- "description": "Bad named entity: rangle without a semi-colon",
- "output": [
- [
- "Character",
- "&rangle"
- ]
- ]
- },
- {
- "input": "&rangle;",
- "description": "Named entity: rangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e9"
- ]
- ]
- },
- {
- "input": "&raquo",
- "description": "Named entity: raquo without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00bb"
- ]
- ]
- },
- {
- "input": "&raquo;",
- "description": "Named entity: raquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00bb"
- ]
- ]
- },
- {
- "input": "&rarr",
- "description": "Bad named entity: rarr without a semi-colon",
- "output": [
- [
- "Character",
- "&rarr"
- ]
- ]
- },
- {
- "input": "&rarr;",
- "description": "Named entity: rarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2192"
- ]
- ]
- },
- {
- "input": "&rarrap",
- "description": "Bad named entity: rarrap without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrap"
- ]
- ]
- },
- {
- "input": "&rarrap;",
- "description": "Named entity: rarrap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2975"
- ]
- ]
- },
- {
- "input": "&rarrb",
- "description": "Bad named entity: rarrb without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrb"
- ]
- ]
- },
- {
- "input": "&rarrb;",
- "description": "Named entity: rarrb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21e5"
- ]
- ]
- },
- {
- "input": "&rarrbfs",
- "description": "Bad named entity: rarrbfs without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrbfs"
- ]
- ]
- },
- {
- "input": "&rarrbfs;",
- "description": "Named entity: rarrbfs; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2920"
- ]
- ]
- },
- {
- "input": "&rarrc",
- "description": "Bad named entity: rarrc without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrc"
- ]
- ]
- },
- {
- "input": "&rarrc;",
- "description": "Named entity: rarrc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2933"
- ]
- ]
- },
- {
- "input": "&rarrfs",
- "description": "Bad named entity: rarrfs without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrfs"
- ]
- ]
- },
- {
- "input": "&rarrfs;",
- "description": "Named entity: rarrfs; with a semi-colon",
- "output": [
- [
- "Character",
- "\u291e"
- ]
- ]
- },
- {
- "input": "&rarrhk",
- "description": "Bad named entity: rarrhk without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrhk"
- ]
- ]
- },
- {
- "input": "&rarrhk;",
- "description": "Named entity: rarrhk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21aa"
- ]
- ]
- },
- {
- "input": "&rarrlp",
- "description": "Bad named entity: rarrlp without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrlp"
- ]
- ]
- },
- {
- "input": "&rarrlp;",
- "description": "Named entity: rarrlp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ac"
- ]
- ]
- },
- {
- "input": "&rarrpl",
- "description": "Bad named entity: rarrpl without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrpl"
- ]
- ]
- },
- {
- "input": "&rarrpl;",
- "description": "Named entity: rarrpl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2945"
- ]
- ]
- },
- {
- "input": "&rarrsim",
- "description": "Bad named entity: rarrsim without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrsim"
- ]
- ]
- },
- {
- "input": "&rarrsim;",
- "description": "Named entity: rarrsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2974"
- ]
- ]
- },
- {
- "input": "&rarrtl",
- "description": "Bad named entity: rarrtl without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrtl"
- ]
- ]
- },
- {
- "input": "&rarrtl;",
- "description": "Named entity: rarrtl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a3"
- ]
- ]
- },
- {
- "input": "&rarrw",
- "description": "Bad named entity: rarrw without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrw"
- ]
- ]
- },
- {
- "input": "&rarrw;",
- "description": "Named entity: rarrw; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219d"
- ]
- ]
- },
- {
- "input": "&ratail",
- "description": "Bad named entity: ratail without a semi-colon",
- "output": [
- [
- "Character",
- "&ratail"
- ]
- ]
- },
- {
- "input": "&ratail;",
- "description": "Named entity: ratail; with a semi-colon",
- "output": [
- [
- "Character",
- "\u291a"
- ]
- ]
- },
- {
- "input": "&ratio",
- "description": "Bad named entity: ratio without a semi-colon",
- "output": [
- [
- "Character",
- "&ratio"
- ]
- ]
- },
- {
- "input": "&ratio;",
- "description": "Named entity: ratio; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2236"
- ]
- ]
- },
- {
- "input": "&rationals",
- "description": "Bad named entity: rationals without a semi-colon",
- "output": [
- [
- "Character",
- "&rationals"
- ]
- ]
- },
- {
- "input": "&rationals;",
- "description": "Named entity: rationals; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211a"
- ]
- ]
- },
- {
- "input": "&rbarr",
- "description": "Bad named entity: rbarr without a semi-colon",
- "output": [
- [
- "Character",
- "&rbarr"
- ]
- ]
- },
- {
- "input": "&rbarr;",
- "description": "Named entity: rbarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u290d"
- ]
- ]
- },
- {
- "input": "&rbbrk",
- "description": "Bad named entity: rbbrk without a semi-colon",
- "output": [
- [
- "Character",
- "&rbbrk"
- ]
- ]
- },
- {
- "input": "&rbbrk;",
- "description": "Named entity: rbbrk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2773"
- ]
- ]
- },
- {
- "input": "&rbrace",
- "description": "Bad named entity: rbrace without a semi-colon",
- "output": [
- [
- "Character",
- "&rbrace"
- ]
- ]
- },
- {
- "input": "&rbrace;",
- "description": "Named entity: rbrace; with a semi-colon",
- "output": [
- [
- "Character",
- "}"
- ]
- ]
- },
- {
- "input": "&rbrack",
- "description": "Bad named entity: rbrack without a semi-colon",
- "output": [
- [
- "Character",
- "&rbrack"
- ]
- ]
- },
- {
- "input": "&rbrack;",
- "description": "Named entity: rbrack; with a semi-colon",
- "output": [
- [
- "Character",
- "]"
- ]
- ]
- },
- {
- "input": "&rbrke",
- "description": "Bad named entity: rbrke without a semi-colon",
- "output": [
- [
- "Character",
- "&rbrke"
- ]
- ]
- },
- {
- "input": "&rbrke;",
- "description": "Named entity: rbrke; with a semi-colon",
- "output": [
- [
- "Character",
- "\u298c"
- ]
- ]
- },
- {
- "input": "&rbrksld",
- "description": "Bad named entity: rbrksld without a semi-colon",
- "output": [
- [
- "Character",
- "&rbrksld"
- ]
- ]
- },
- {
- "input": "&rbrksld;",
- "description": "Named entity: rbrksld; with a semi-colon",
- "output": [
- [
- "Character",
- "\u298e"
- ]
- ]
- },
- {
- "input": "&rbrkslu",
- "description": "Bad named entity: rbrkslu without a semi-colon",
- "output": [
- [
- "Character",
- "&rbrkslu"
- ]
- ]
- },
- {
- "input": "&rbrkslu;",
- "description": "Named entity: rbrkslu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2990"
- ]
- ]
- },
- {
- "input": "&rcaron",
- "description": "Bad named entity: rcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&rcaron"
- ]
- ]
- },
- {
- "input": "&rcaron;",
- "description": "Named entity: rcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0159"
- ]
- ]
- },
- {
- "input": "&rcedil",
- "description": "Bad named entity: rcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&rcedil"
- ]
- ]
- },
- {
- "input": "&rcedil;",
- "description": "Named entity: rcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0157"
- ]
- ]
- },
- {
- "input": "&rceil",
- "description": "Bad named entity: rceil without a semi-colon",
- "output": [
- [
- "Character",
- "&rceil"
- ]
- ]
- },
- {
- "input": "&rceil;",
- "description": "Named entity: rceil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2309"
- ]
- ]
- },
- {
- "input": "&rcub",
- "description": "Bad named entity: rcub without a semi-colon",
- "output": [
- [
- "Character",
- "&rcub"
- ]
- ]
- },
- {
- "input": "&rcub;",
- "description": "Named entity: rcub; with a semi-colon",
- "output": [
- [
- "Character",
- "}"
- ]
- ]
- },
- {
- "input": "&rcy",
- "description": "Bad named entity: rcy without a semi-colon",
- "output": [
- [
- "Character",
- "&rcy"
- ]
- ]
- },
- {
- "input": "&rcy;",
- "description": "Named entity: rcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0440"
- ]
- ]
- },
- {
- "input": "&rdca",
- "description": "Bad named entity: rdca without a semi-colon",
- "output": [
- [
- "Character",
- "&rdca"
- ]
- ]
- },
- {
- "input": "&rdca;",
- "description": "Named entity: rdca; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2937"
- ]
- ]
- },
- {
- "input": "&rdldhar",
- "description": "Bad named entity: rdldhar without a semi-colon",
- "output": [
- [
- "Character",
- "&rdldhar"
- ]
- ]
- },
- {
- "input": "&rdldhar;",
- "description": "Named entity: rdldhar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2969"
- ]
- ]
- },
- {
- "input": "&rdquo",
- "description": "Bad named entity: rdquo without a semi-colon",
- "output": [
- [
- "Character",
- "&rdquo"
- ]
- ]
- },
- {
- "input": "&rdquo;",
- "description": "Named entity: rdquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201d"
- ]
- ]
- },
- {
- "input": "&rdquor",
- "description": "Bad named entity: rdquor without a semi-colon",
- "output": [
- [
- "Character",
- "&rdquor"
- ]
- ]
- },
- {
- "input": "&rdquor;",
- "description": "Named entity: rdquor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201d"
- ]
- ]
- },
- {
- "input": "&rdsh",
- "description": "Bad named entity: rdsh without a semi-colon",
- "output": [
- [
- "Character",
- "&rdsh"
- ]
- ]
- },
- {
- "input": "&rdsh;",
- "description": "Named entity: rdsh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b3"
- ]
- ]
- },
- {
- "input": "&real",
- "description": "Bad named entity: real without a semi-colon",
- "output": [
- [
- "Character",
- "&real"
- ]
- ]
- },
- {
- "input": "&real;",
- "description": "Named entity: real; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211c"
- ]
- ]
- },
- {
- "input": "&realine",
- "description": "Bad named entity: realine without a semi-colon",
- "output": [
- [
- "Character",
- "&realine"
- ]
- ]
- },
- {
- "input": "&realine;",
- "description": "Named entity: realine; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211b"
- ]
- ]
- },
- {
- "input": "&realpart",
- "description": "Bad named entity: realpart without a semi-colon",
- "output": [
- [
- "Character",
- "&realpart"
- ]
- ]
- },
- {
- "input": "&realpart;",
- "description": "Named entity: realpart; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211c"
- ]
- ]
- },
- {
- "input": "&reals",
- "description": "Bad named entity: reals without a semi-colon",
- "output": [
- [
- "Character",
- "&reals"
- ]
- ]
- },
- {
- "input": "&reals;",
- "description": "Named entity: reals; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211d"
- ]
- ]
- },
- {
- "input": "&rect",
- "description": "Bad named entity: rect without a semi-colon",
- "output": [
- [
- "Character",
- "&rect"
- ]
- ]
- },
- {
- "input": "&rect;",
- "description": "Named entity: rect; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25ad"
- ]
- ]
- },
- {
- "input": "&reg",
- "description": "Named entity: reg without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ae"
- ]
- ]
- },
- {
- "input": "&reg;",
- "description": "Named entity: reg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ae"
- ]
- ]
- },
- {
- "input": "&rfisht",
- "description": "Bad named entity: rfisht without a semi-colon",
- "output": [
- [
- "Character",
- "&rfisht"
- ]
- ]
- },
- {
- "input": "&rfisht;",
- "description": "Named entity: rfisht; with a semi-colon",
- "output": [
- [
- "Character",
- "\u297d"
- ]
- ]
- },
- {
- "input": "&rfloor",
- "description": "Bad named entity: rfloor without a semi-colon",
- "output": [
- [
- "Character",
- "&rfloor"
- ]
- ]
- },
- {
- "input": "&rfloor;",
- "description": "Named entity: rfloor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u230b"
- ]
- ]
- },
- {
- "input": "&rfr",
- "description": "Bad named entity: rfr without a semi-colon",
- "output": [
- [
- "Character",
- "&rfr"
- ]
- ]
- },
- {
- "input": "&rfr;",
- "description": "Named entity: rfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd2f"
- ]
- ]
- },
- {
- "input": "&rhard",
- "description": "Bad named entity: rhard without a semi-colon",
- "output": [
- [
- "Character",
- "&rhard"
- ]
- ]
- },
- {
- "input": "&rhard;",
- "description": "Named entity: rhard; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c1"
- ]
- ]
- },
- {
- "input": "&rharu",
- "description": "Bad named entity: rharu without a semi-colon",
- "output": [
- [
- "Character",
- "&rharu"
- ]
- ]
- },
- {
- "input": "&rharu;",
- "description": "Named entity: rharu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c0"
- ]
- ]
- },
- {
- "input": "&rharul",
- "description": "Bad named entity: rharul without a semi-colon",
- "output": [
- [
- "Character",
- "&rharul"
- ]
- ]
- },
- {
- "input": "&rharul;",
- "description": "Named entity: rharul; with a semi-colon",
- "output": [
- [
- "Character",
- "\u296c"
- ]
- ]
- },
- {
- "input": "&rho",
- "description": "Bad named entity: rho without a semi-colon",
- "output": [
- [
- "Character",
- "&rho"
- ]
- ]
- },
- {
- "input": "&rho;",
- "description": "Named entity: rho; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c1"
- ]
- ]
- },
- {
- "input": "&rhov",
- "description": "Bad named entity: rhov without a semi-colon",
- "output": [
- [
- "Character",
- "&rhov"
- ]
- ]
- },
- {
- "input": "&rhov;",
- "description": "Named entity: rhov; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f1"
- ]
- ]
- },
- {
- "input": "&rightarrow",
- "description": "Bad named entity: rightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&rightarrow"
- ]
- ]
- },
- {
- "input": "&rightarrow;",
- "description": "Named entity: rightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2192"
- ]
- ]
- },
- {
- "input": "&rightarrowtail",
- "description": "Bad named entity: rightarrowtail without a semi-colon",
- "output": [
- [
- "Character",
- "&rightarrowtail"
- ]
- ]
- },
- {
- "input": "&rightarrowtail;",
- "description": "Named entity: rightarrowtail; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a3"
- ]
- ]
- },
- {
- "input": "&rightharpoondown",
- "description": "Bad named entity: rightharpoondown without a semi-colon",
- "output": [
- [
- "Character",
- "&rightharpoondown"
- ]
- ]
- },
- {
- "input": "&rightharpoondown;",
- "description": "Named entity: rightharpoondown; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c1"
- ]
- ]
- },
- {
- "input": "&rightharpoonup",
- "description": "Bad named entity: rightharpoonup without a semi-colon",
- "output": [
- [
- "Character",
- "&rightharpoonup"
- ]
- ]
- },
- {
- "input": "&rightharpoonup;",
- "description": "Named entity: rightharpoonup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c0"
- ]
- ]
- },
- {
- "input": "&rightleftarrows",
- "description": "Bad named entity: rightleftarrows without a semi-colon",
- "output": [
- [
- "Character",
- "&rightleftarrows"
- ]
- ]
- },
- {
- "input": "&rightleftarrows;",
- "description": "Named entity: rightleftarrows; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c4"
- ]
- ]
- },
- {
- "input": "&rightleftharpoons",
- "description": "Bad named entity: rightleftharpoons without a semi-colon",
- "output": [
- [
- "Character",
- "&rightleftharpoons"
- ]
- ]
- },
- {
- "input": "&rightleftharpoons;",
- "description": "Named entity: rightleftharpoons; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cc"
- ]
- ]
- },
- {
- "input": "&rightrightarrows",
- "description": "Bad named entity: rightrightarrows without a semi-colon",
- "output": [
- [
- "Character",
- "&rightrightarrows"
- ]
- ]
- },
- {
- "input": "&rightrightarrows;",
- "description": "Named entity: rightrightarrows; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c9"
- ]
- ]
- },
- {
- "input": "&rightsquigarrow",
- "description": "Bad named entity: rightsquigarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&rightsquigarrow"
- ]
- ]
- },
- {
- "input": "&rightsquigarrow;",
- "description": "Named entity: rightsquigarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219d"
- ]
- ]
- },
- {
- "input": "&rightthreetimes",
- "description": "Bad named entity: rightthreetimes without a semi-colon",
- "output": [
- [
- "Character",
- "&rightthreetimes"
- ]
- ]
- },
- {
- "input": "&rightthreetimes;",
- "description": "Named entity: rightthreetimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22cc"
- ]
- ]
- },
- {
- "input": "&ring",
- "description": "Bad named entity: ring without a semi-colon",
- "output": [
- [
- "Character",
- "&ring"
- ]
- ]
- },
- {
- "input": "&ring;",
- "description": "Named entity: ring; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02da"
- ]
- ]
- },
- {
- "input": "&risingdotseq",
- "description": "Bad named entity: risingdotseq without a semi-colon",
- "output": [
- [
- "Character",
- "&risingdotseq"
- ]
- ]
- },
- {
- "input": "&risingdotseq;",
- "description": "Named entity: risingdotseq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2253"
- ]
- ]
- },
- {
- "input": "&rlarr",
- "description": "Bad named entity: rlarr without a semi-colon",
- "output": [
- [
- "Character",
- "&rlarr"
- ]
- ]
- },
- {
- "input": "&rlarr;",
- "description": "Named entity: rlarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c4"
- ]
- ]
- },
- {
- "input": "&rlhar",
- "description": "Bad named entity: rlhar without a semi-colon",
- "output": [
- [
- "Character",
- "&rlhar"
- ]
- ]
- },
- {
- "input": "&rlhar;",
- "description": "Named entity: rlhar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cc"
- ]
- ]
- },
- {
- "input": "&rlm",
- "description": "Bad named entity: rlm without a semi-colon",
- "output": [
- [
- "Character",
- "&rlm"
- ]
- ]
- },
- {
- "input": "&rlm;",
- "description": "Named entity: rlm; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200f"
- ]
- ]
- },
- {
- "input": "&rmoust",
- "description": "Bad named entity: rmoust without a semi-colon",
- "output": [
- [
- "Character",
- "&rmoust"
- ]
- ]
- },
- {
- "input": "&rmoust;",
- "description": "Named entity: rmoust; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b1"
- ]
- ]
- },
- {
- "input": "&rmoustache",
- "description": "Bad named entity: rmoustache without a semi-colon",
- "output": [
- [
- "Character",
- "&rmoustache"
- ]
- ]
- },
- {
- "input": "&rmoustache;",
- "description": "Named entity: rmoustache; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b1"
- ]
- ]
- },
- {
- "input": "&rnmid",
- "description": "Bad named entity: rnmid without a semi-colon",
- "output": [
- [
- "Character",
- "&rnmid"
- ]
- ]
- },
- {
- "input": "&rnmid;",
- "description": "Named entity: rnmid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aee"
- ]
- ]
- },
- {
- "input": "&roang",
- "description": "Bad named entity: roang without a semi-colon",
- "output": [
- [
- "Character",
- "&roang"
- ]
- ]
- },
- {
- "input": "&roang;",
- "description": "Named entity: roang; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27ed"
- ]
- ]
- },
- {
- "input": "&roarr",
- "description": "Bad named entity: roarr without a semi-colon",
- "output": [
- [
- "Character",
- "&roarr"
- ]
- ]
- },
- {
- "input": "&roarr;",
- "description": "Named entity: roarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21fe"
- ]
- ]
- },
- {
- "input": "&robrk",
- "description": "Bad named entity: robrk without a semi-colon",
- "output": [
- [
- "Character",
- "&robrk"
- ]
- ]
- },
- {
- "input": "&robrk;",
- "description": "Named entity: robrk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e7"
- ]
- ]
- },
- {
- "input": "&ropar",
- "description": "Bad named entity: ropar without a semi-colon",
- "output": [
- [
- "Character",
- "&ropar"
- ]
- ]
- },
- {
- "input": "&ropar;",
- "description": "Named entity: ropar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2986"
- ]
- ]
- },
- {
- "input": "&ropf",
- "description": "Bad named entity: ropf without a semi-colon",
- "output": [
- [
- "Character",
- "&ropf"
- ]
- ]
- },
- {
- "input": "&ropf;",
- "description": "Named entity: ropf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd63"
- ]
- ]
- },
- {
- "input": "&roplus",
- "description": "Bad named entity: roplus without a semi-colon",
- "output": [
- [
- "Character",
- "&roplus"
- ]
- ]
- },
- {
- "input": "&roplus;",
- "description": "Named entity: roplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a2e"
- ]
- ]
- },
- {
- "input": "&rotimes",
- "description": "Bad named entity: rotimes without a semi-colon",
- "output": [
- [
- "Character",
- "&rotimes"
- ]
- ]
- },
- {
- "input": "&rotimes;",
- "description": "Named entity: rotimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a35"
- ]
- ]
- },
- {
- "input": "&rpar",
- "description": "Bad named entity: rpar without a semi-colon",
- "output": [
- [
- "Character",
- "&rpar"
- ]
- ]
- },
- {
- "input": "&rpar;",
- "description": "Named entity: rpar; with a semi-colon",
- "output": [
- [
- "Character",
- ")"
- ]
- ]
- },
- {
- "input": "&rpargt",
- "description": "Bad named entity: rpargt without a semi-colon",
- "output": [
- [
- "Character",
- "&rpargt"
- ]
- ]
- },
- {
- "input": "&rpargt;",
- "description": "Named entity: rpargt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2994"
- ]
- ]
- },
- {
- "input": "&rppolint",
- "description": "Bad named entity: rppolint without a semi-colon",
- "output": [
- [
- "Character",
- "&rppolint"
- ]
- ]
- },
- {
- "input": "&rppolint;",
- "description": "Named entity: rppolint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a12"
- ]
- ]
- },
- {
- "input": "&rrarr",
- "description": "Bad named entity: rrarr without a semi-colon",
- "output": [
- [
- "Character",
- "&rrarr"
- ]
- ]
- },
- {
- "input": "&rrarr;",
- "description": "Named entity: rrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c9"
- ]
- ]
- },
- {
- "input": "&rsaquo",
- "description": "Bad named entity: rsaquo without a semi-colon",
- "output": [
- [
- "Character",
- "&rsaquo"
- ]
- ]
- },
- {
- "input": "&rsaquo;",
- "description": "Named entity: rsaquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u203a"
- ]
- ]
- },
- {
- "input": "&rscr",
- "description": "Bad named entity: rscr without a semi-colon",
- "output": [
- [
- "Character",
- "&rscr"
- ]
- ]
- },
- {
- "input": "&rscr;",
- "description": "Named entity: rscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc7"
- ]
- ]
- },
- {
- "input": "&rsh",
- "description": "Bad named entity: rsh without a semi-colon",
- "output": [
- [
- "Character",
- "&rsh"
- ]
- ]
- },
- {
- "input": "&rsh;",
- "description": "Named entity: rsh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b1"
- ]
- ]
- },
- {
- "input": "&rsqb",
- "description": "Bad named entity: rsqb without a semi-colon",
- "output": [
- [
- "Character",
- "&rsqb"
- ]
- ]
- },
- {
- "input": "&rsqb;",
- "description": "Named entity: rsqb; with a semi-colon",
- "output": [
- [
- "Character",
- "]"
- ]
- ]
- },
- {
- "input": "&rsquo",
- "description": "Bad named entity: rsquo without a semi-colon",
- "output": [
- [
- "Character",
- "&rsquo"
- ]
- ]
- },
- {
- "input": "&rsquo;",
- "description": "Named entity: rsquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2019"
- ]
- ]
- },
- {
- "input": "&rsquor",
- "description": "Bad named entity: rsquor without a semi-colon",
- "output": [
- [
- "Character",
- "&rsquor"
- ]
- ]
- },
- {
- "input": "&rsquor;",
- "description": "Named entity: rsquor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2019"
- ]
- ]
- },
- {
- "input": "&rthree",
- "description": "Bad named entity: rthree without a semi-colon",
- "output": [
- [
- "Character",
- "&rthree"
- ]
- ]
- },
- {
- "input": "&rthree;",
- "description": "Named entity: rthree; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22cc"
- ]
- ]
- },
- {
- "input": "&rtimes",
- "description": "Bad named entity: rtimes without a semi-colon",
- "output": [
- [
- "Character",
- "&rtimes"
- ]
- ]
- },
- {
- "input": "&rtimes;",
- "description": "Named entity: rtimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ca"
- ]
- ]
- },
- {
- "input": "&rtri",
- "description": "Bad named entity: rtri without a semi-colon",
- "output": [
- [
- "Character",
- "&rtri"
- ]
- ]
- },
- {
- "input": "&rtri;",
- "description": "Named entity: rtri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b9"
- ]
- ]
- },
- {
- "input": "&rtrie",
- "description": "Bad named entity: rtrie without a semi-colon",
- "output": [
- [
- "Character",
- "&rtrie"
- ]
- ]
- },
- {
- "input": "&rtrie;",
- "description": "Named entity: rtrie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b5"
- ]
- ]
- },
- {
- "input": "&rtrif",
- "description": "Bad named entity: rtrif without a semi-colon",
- "output": [
- [
- "Character",
- "&rtrif"
- ]
- ]
- },
- {
- "input": "&rtrif;",
- "description": "Named entity: rtrif; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b8"
- ]
- ]
- },
- {
- "input": "&rtriltri",
- "description": "Bad named entity: rtriltri without a semi-colon",
- "output": [
- [
- "Character",
- "&rtriltri"
- ]
- ]
- },
- {
- "input": "&rtriltri;",
- "description": "Named entity: rtriltri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29ce"
- ]
- ]
- },
- {
- "input": "&ruluhar",
- "description": "Bad named entity: ruluhar without a semi-colon",
- "output": [
- [
- "Character",
- "&ruluhar"
- ]
- ]
- },
- {
- "input": "&ruluhar;",
- "description": "Named entity: ruluhar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2968"
- ]
- ]
- },
- {
- "input": "&rx",
- "description": "Bad named entity: rx without a semi-colon",
- "output": [
- [
- "Character",
- "&rx"
- ]
- ]
- },
- {
- "input": "&rx;",
- "description": "Named entity: rx; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211e"
- ]
- ]
- },
- {
- "input": "&sacute",
- "description": "Bad named entity: sacute without a semi-colon",
- "output": [
- [
- "Character",
- "&sacute"
- ]
- ]
- },
- {
- "input": "&sacute;",
- "description": "Named entity: sacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u015b"
- ]
- ]
- },
- {
- "input": "&sbquo",
- "description": "Bad named entity: sbquo without a semi-colon",
- "output": [
- [
- "Character",
- "&sbquo"
- ]
- ]
- },
- {
- "input": "&sbquo;",
- "description": "Named entity: sbquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201a"
- ]
- ]
- },
- {
- "input": "&sc",
- "description": "Bad named entity: sc without a semi-colon",
- "output": [
- [
- "Character",
- "&sc"
- ]
- ]
- },
- {
- "input": "&sc;",
- "description": "Named entity: sc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227b"
- ]
- ]
- },
- {
- "input": "&scE",
- "description": "Bad named entity: scE without a semi-colon",
- "output": [
- [
- "Character",
- "&scE"
- ]
- ]
- },
- {
- "input": "&scE;",
- "description": "Named entity: scE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab4"
- ]
- ]
- },
- {
- "input": "&scap",
- "description": "Bad named entity: scap without a semi-colon",
- "output": [
- [
- "Character",
- "&scap"
- ]
- ]
- },
- {
- "input": "&scap;",
- "description": "Named entity: scap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab8"
- ]
- ]
- },
- {
- "input": "&scaron",
- "description": "Bad named entity: scaron without a semi-colon",
- "output": [
- [
- "Character",
- "&scaron"
- ]
- ]
- },
- {
- "input": "&scaron;",
- "description": "Named entity: scaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0161"
- ]
- ]
- },
- {
- "input": "&sccue",
- "description": "Bad named entity: sccue without a semi-colon",
- "output": [
- [
- "Character",
- "&sccue"
- ]
- ]
- },
- {
- "input": "&sccue;",
- "description": "Named entity: sccue; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227d"
- ]
- ]
- },
- {
- "input": "&sce",
- "description": "Bad named entity: sce without a semi-colon",
- "output": [
- [
- "Character",
- "&sce"
- ]
- ]
- },
- {
- "input": "&sce;",
- "description": "Named entity: sce; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab0"
- ]
- ]
- },
- {
- "input": "&scedil",
- "description": "Bad named entity: scedil without a semi-colon",
- "output": [
- [
- "Character",
- "&scedil"
- ]
- ]
- },
- {
- "input": "&scedil;",
- "description": "Named entity: scedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u015f"
- ]
- ]
- },
- {
- "input": "&scirc",
- "description": "Bad named entity: scirc without a semi-colon",
- "output": [
- [
- "Character",
- "&scirc"
- ]
- ]
- },
- {
- "input": "&scirc;",
- "description": "Named entity: scirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u015d"
- ]
- ]
- },
- {
- "input": "&scnE",
- "description": "Bad named entity: scnE without a semi-colon",
- "output": [
- [
- "Character",
- "&scnE"
- ]
- ]
- },
- {
- "input": "&scnE;",
- "description": "Named entity: scnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab6"
- ]
- ]
- },
- {
- "input": "&scnap",
- "description": "Bad named entity: scnap without a semi-colon",
- "output": [
- [
- "Character",
- "&scnap"
- ]
- ]
- },
- {
- "input": "&scnap;",
- "description": "Named entity: scnap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aba"
- ]
- ]
- },
- {
- "input": "&scnsim",
- "description": "Bad named entity: scnsim without a semi-colon",
- "output": [
- [
- "Character",
- "&scnsim"
- ]
- ]
- },
- {
- "input": "&scnsim;",
- "description": "Named entity: scnsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e9"
- ]
- ]
- },
- {
- "input": "&scpolint",
- "description": "Bad named entity: scpolint without a semi-colon",
- "output": [
- [
- "Character",
- "&scpolint"
- ]
- ]
- },
- {
- "input": "&scpolint;",
- "description": "Named entity: scpolint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a13"
- ]
- ]
- },
- {
- "input": "&scsim",
- "description": "Bad named entity: scsim without a semi-colon",
- "output": [
- [
- "Character",
- "&scsim"
- ]
- ]
- },
- {
- "input": "&scsim;",
- "description": "Named entity: scsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227f"
- ]
- ]
- },
- {
- "input": "&scy",
- "description": "Bad named entity: scy without a semi-colon",
- "output": [
- [
- "Character",
- "&scy"
- ]
- ]
- },
- {
- "input": "&scy;",
- "description": "Named entity: scy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0441"
- ]
- ]
- },
- {
- "input": "&sdot",
- "description": "Bad named entity: sdot without a semi-colon",
- "output": [
- [
- "Character",
- "&sdot"
- ]
- ]
- },
- {
- "input": "&sdot;",
- "description": "Named entity: sdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c5"
- ]
- ]
- },
- {
- "input": "&sdotb",
- "description": "Bad named entity: sdotb without a semi-colon",
- "output": [
- [
- "Character",
- "&sdotb"
- ]
- ]
- },
- {
- "input": "&sdotb;",
- "description": "Named entity: sdotb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a1"
- ]
- ]
- },
- {
- "input": "&sdote",
- "description": "Bad named entity: sdote without a semi-colon",
- "output": [
- [
- "Character",
- "&sdote"
- ]
- ]
- },
- {
- "input": "&sdote;",
- "description": "Named entity: sdote; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a66"
- ]
- ]
- },
- {
- "input": "&seArr",
- "description": "Bad named entity: seArr without a semi-colon",
- "output": [
- [
- "Character",
- "&seArr"
- ]
- ]
- },
- {
- "input": "&seArr;",
- "description": "Named entity: seArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d8"
- ]
- ]
- },
- {
- "input": "&searhk",
- "description": "Bad named entity: searhk without a semi-colon",
- "output": [
- [
- "Character",
- "&searhk"
- ]
- ]
- },
- {
- "input": "&searhk;",
- "description": "Named entity: searhk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2925"
- ]
- ]
- },
- {
- "input": "&searr",
- "description": "Bad named entity: searr without a semi-colon",
- "output": [
- [
- "Character",
- "&searr"
- ]
- ]
- },
- {
- "input": "&searr;",
- "description": "Named entity: searr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2198"
- ]
- ]
- },
- {
- "input": "&searrow",
- "description": "Bad named entity: searrow without a semi-colon",
- "output": [
- [
- "Character",
- "&searrow"
- ]
- ]
- },
- {
- "input": "&searrow;",
- "description": "Named entity: searrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2198"
- ]
- ]
- },
- {
- "input": "&sect",
- "description": "Named entity: sect without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a7"
- ]
- ]
- },
- {
- "input": "&sect;",
- "description": "Named entity: sect; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a7"
- ]
- ]
- },
- {
- "input": "&semi",
- "description": "Bad named entity: semi without a semi-colon",
- "output": [
- [
- "Character",
- "&semi"
- ]
- ]
- },
- {
- "input": "&semi;",
- "description": "Named entity: semi; with a semi-colon",
- "output": [
- [
- "Character",
- ";"
- ]
- ]
- },
- {
- "input": "&seswar",
- "description": "Bad named entity: seswar without a semi-colon",
- "output": [
- [
- "Character",
- "&seswar"
- ]
- ]
- },
- {
- "input": "&seswar;",
- "description": "Named entity: seswar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2929"
- ]
- ]
- },
- {
- "input": "&setminus",
- "description": "Bad named entity: setminus without a semi-colon",
- "output": [
- [
- "Character",
- "&setminus"
- ]
- ]
- },
- {
- "input": "&setminus;",
- "description": "Named entity: setminus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2216"
- ]
- ]
- },
- {
- "input": "&setmn",
- "description": "Bad named entity: setmn without a semi-colon",
- "output": [
- [
- "Character",
- "&setmn"
- ]
- ]
- },
- {
- "input": "&setmn;",
- "description": "Named entity: setmn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2216"
- ]
- ]
- },
- {
- "input": "&sext",
- "description": "Bad named entity: sext without a semi-colon",
- "output": [
- [
- "Character",
- "&sext"
- ]
- ]
- },
- {
- "input": "&sext;",
- "description": "Named entity: sext; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2736"
- ]
- ]
- },
- {
- "input": "&sfr",
- "description": "Bad named entity: sfr without a semi-colon",
- "output": [
- [
- "Character",
- "&sfr"
- ]
- ]
- },
- {
- "input": "&sfr;",
- "description": "Named entity: sfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd30"
- ]
- ]
- },
- {
- "input": "&sfrown",
- "description": "Bad named entity: sfrown without a semi-colon",
- "output": [
- [
- "Character",
- "&sfrown"
- ]
- ]
- },
- {
- "input": "&sfrown;",
- "description": "Named entity: sfrown; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2322"
- ]
- ]
- },
- {
- "input": "&sharp",
- "description": "Bad named entity: sharp without a semi-colon",
- "output": [
- [
- "Character",
- "&sharp"
- ]
- ]
- },
- {
- "input": "&sharp;",
- "description": "Named entity: sharp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u266f"
- ]
- ]
- },
- {
- "input": "&shchcy",
- "description": "Bad named entity: shchcy without a semi-colon",
- "output": [
- [
- "Character",
- "&shchcy"
- ]
- ]
- },
- {
- "input": "&shchcy;",
- "description": "Named entity: shchcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0449"
- ]
- ]
- },
- {
- "input": "&shcy",
- "description": "Bad named entity: shcy without a semi-colon",
- "output": [
- [
- "Character",
- "&shcy"
- ]
- ]
- },
- {
- "input": "&shcy;",
- "description": "Named entity: shcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0448"
- ]
- ]
- },
- {
- "input": "&shortmid",
- "description": "Bad named entity: shortmid without a semi-colon",
- "output": [
- [
- "Character",
- "&shortmid"
- ]
- ]
- },
- {
- "input": "&shortmid;",
- "description": "Named entity: shortmid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2223"
- ]
- ]
- },
- {
- "input": "&shortparallel",
- "description": "Bad named entity: shortparallel without a semi-colon",
- "output": [
- [
- "Character",
- "&shortparallel"
- ]
- ]
- },
- {
- "input": "&shortparallel;",
- "description": "Named entity: shortparallel; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2225"
- ]
- ]
- },
- {
- "input": "&shy",
- "description": "Named entity: shy without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ad"
- ]
- ]
- },
- {
- "input": "&shy;",
- "description": "Named entity: shy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ad"
- ]
- ]
- },
- {
- "input": "&sigma",
- "description": "Bad named entity: sigma without a semi-colon",
- "output": [
- [
- "Character",
- "&sigma"
- ]
- ]
- },
- {
- "input": "&sigma;",
- "description": "Named entity: sigma; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c3"
- ]
- ]
- },
- {
- "input": "&sigmaf",
- "description": "Bad named entity: sigmaf without a semi-colon",
- "output": [
- [
- "Character",
- "&sigmaf"
- ]
- ]
- },
- {
- "input": "&sigmaf;",
- "description": "Named entity: sigmaf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c2"
- ]
- ]
- },
- {
- "input": "&sigmav",
- "description": "Bad named entity: sigmav without a semi-colon",
- "output": [
- [
- "Character",
- "&sigmav"
- ]
- ]
- },
- {
- "input": "&sigmav;",
- "description": "Named entity: sigmav; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c2"
- ]
- ]
- },
- {
- "input": "&sim",
- "description": "Bad named entity: sim without a semi-colon",
- "output": [
- [
- "Character",
- "&sim"
- ]
- ]
- },
- {
- "input": "&sim;",
- "description": "Named entity: sim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223c"
- ]
- ]
- },
- {
- "input": "&simdot",
- "description": "Bad named entity: simdot without a semi-colon",
- "output": [
- [
- "Character",
- "&simdot"
- ]
- ]
- },
- {
- "input": "&simdot;",
- "description": "Named entity: simdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a6a"
- ]
- ]
- },
- {
- "input": "&sime",
- "description": "Bad named entity: sime without a semi-colon",
- "output": [
- [
- "Character",
- "&sime"
- ]
- ]
- },
- {
- "input": "&sime;",
- "description": "Named entity: sime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2243"
- ]
- ]
- },
- {
- "input": "&simeq",
- "description": "Bad named entity: simeq without a semi-colon",
- "output": [
- [
- "Character",
- "&simeq"
- ]
- ]
- },
- {
- "input": "&simeq;",
- "description": "Named entity: simeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2243"
- ]
- ]
- },
- {
- "input": "&simg",
- "description": "Bad named entity: simg without a semi-colon",
- "output": [
- [
- "Character",
- "&simg"
- ]
- ]
- },
- {
- "input": "&simg;",
- "description": "Named entity: simg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a9e"
- ]
- ]
- },
- {
- "input": "&simgE",
- "description": "Bad named entity: simgE without a semi-colon",
- "output": [
- [
- "Character",
- "&simgE"
- ]
- ]
- },
- {
- "input": "&simgE;",
- "description": "Named entity: simgE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa0"
- ]
- ]
- },
- {
- "input": "&siml",
- "description": "Bad named entity: siml without a semi-colon",
- "output": [
- [
- "Character",
- "&siml"
- ]
- ]
- },
- {
- "input": "&siml;",
- "description": "Named entity: siml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a9d"
- ]
- ]
- },
- {
- "input": "&simlE",
- "description": "Bad named entity: simlE without a semi-colon",
- "output": [
- [
- "Character",
- "&simlE"
- ]
- ]
- },
- {
- "input": "&simlE;",
- "description": "Named entity: simlE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a9f"
- ]
- ]
- },
- {
- "input": "&simne",
- "description": "Bad named entity: simne without a semi-colon",
- "output": [
- [
- "Character",
- "&simne"
- ]
- ]
- },
- {
- "input": "&simne;",
- "description": "Named entity: simne; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2246"
- ]
- ]
- },
- {
- "input": "&simplus",
- "description": "Bad named entity: simplus without a semi-colon",
- "output": [
- [
- "Character",
- "&simplus"
- ]
- ]
- },
- {
- "input": "&simplus;",
- "description": "Named entity: simplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a24"
- ]
- ]
- },
- {
- "input": "&simrarr",
- "description": "Bad named entity: simrarr without a semi-colon",
- "output": [
- [
- "Character",
- "&simrarr"
- ]
- ]
- },
- {
- "input": "&simrarr;",
- "description": "Named entity: simrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2972"
- ]
- ]
- },
- {
- "input": "&slarr",
- "description": "Bad named entity: slarr without a semi-colon",
- "output": [
- [
- "Character",
- "&slarr"
- ]
- ]
- },
- {
- "input": "&slarr;",
- "description": "Named entity: slarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2190"
- ]
- ]
- },
- {
- "input": "&smallsetminus",
- "description": "Bad named entity: smallsetminus without a semi-colon",
- "output": [
- [
- "Character",
- "&smallsetminus"
- ]
- ]
- },
- {
- "input": "&smallsetminus;",
- "description": "Named entity: smallsetminus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2216"
- ]
- ]
- },
- {
- "input": "&smashp",
- "description": "Bad named entity: smashp without a semi-colon",
- "output": [
- [
- "Character",
- "&smashp"
- ]
- ]
- },
- {
- "input": "&smashp;",
- "description": "Named entity: smashp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a33"
- ]
- ]
- },
- {
- "input": "&smeparsl",
- "description": "Bad named entity: smeparsl without a semi-colon",
- "output": [
- [
- "Character",
- "&smeparsl"
- ]
- ]
- },
- {
- "input": "&smeparsl;",
- "description": "Named entity: smeparsl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29e4"
- ]
- ]
- },
- {
- "input": "&smid",
- "description": "Bad named entity: smid without a semi-colon",
- "output": [
- [
- "Character",
- "&smid"
- ]
- ]
- },
- {
- "input": "&smid;",
- "description": "Named entity: smid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2223"
- ]
- ]
- },
- {
- "input": "&smile",
- "description": "Bad named entity: smile without a semi-colon",
- "output": [
- [
- "Character",
- "&smile"
- ]
- ]
- },
- {
- "input": "&smile;",
- "description": "Named entity: smile; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2323"
- ]
- ]
- },
- {
- "input": "&smt",
- "description": "Bad named entity: smt without a semi-colon",
- "output": [
- [
- "Character",
- "&smt"
- ]
- ]
- },
- {
- "input": "&smt;",
- "description": "Named entity: smt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aaa"
- ]
- ]
- },
- {
- "input": "&smte",
- "description": "Bad named entity: smte without a semi-colon",
- "output": [
- [
- "Character",
- "&smte"
- ]
- ]
- },
- {
- "input": "&smte;",
- "description": "Named entity: smte; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aac"
- ]
- ]
- },
- {
- "input": "&smtes",
- "description": "Bad named entity: smtes without a semi-colon",
- "output": [
- [
- "Character",
- "&smtes"
- ]
- ]
- },
- {
- "input": "&smtes;",
- "description": "Named entity: smtes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aac\ufe00"
- ]
- ]
- },
- {
- "input": "&softcy",
- "description": "Bad named entity: softcy without a semi-colon",
- "output": [
- [
- "Character",
- "&softcy"
- ]
- ]
- },
- {
- "input": "&softcy;",
- "description": "Named entity: softcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u044c"
- ]
- ]
- },
- {
- "input": "&sol",
- "description": "Bad named entity: sol without a semi-colon",
- "output": [
- [
- "Character",
- "&sol"
- ]
- ]
- },
- {
- "input": "&sol;",
- "description": "Named entity: sol; with a semi-colon",
- "output": [
- [
- "Character",
- "/"
- ]
- ]
- },
- {
- "input": "&solb",
- "description": "Bad named entity: solb without a semi-colon",
- "output": [
- [
- "Character",
- "&solb"
- ]
- ]
- },
- {
- "input": "&solb;",
- "description": "Named entity: solb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29c4"
- ]
- ]
- },
- {
- "input": "&solbar",
- "description": "Bad named entity: solbar without a semi-colon",
- "output": [
- [
- "Character",
- "&solbar"
- ]
- ]
- },
- {
- "input": "&solbar;",
- "description": "Named entity: solbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u233f"
- ]
- ]
- },
- {
- "input": "&sopf",
- "description": "Bad named entity: sopf without a semi-colon",
- "output": [
- [
- "Character",
- "&sopf"
- ]
- ]
- },
- {
- "input": "&sopf;",
- "description": "Named entity: sopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd64"
- ]
- ]
- },
- {
- "input": "&spades",
- "description": "Bad named entity: spades without a semi-colon",
- "output": [
- [
- "Character",
- "&spades"
- ]
- ]
- },
- {
- "input": "&spades;",
- "description": "Named entity: spades; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2660"
- ]
- ]
- },
- {
- "input": "&spadesuit",
- "description": "Bad named entity: spadesuit without a semi-colon",
- "output": [
- [
- "Character",
- "&spadesuit"
- ]
- ]
- },
- {
- "input": "&spadesuit;",
- "description": "Named entity: spadesuit; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2660"
- ]
- ]
- },
- {
- "input": "&spar",
- "description": "Bad named entity: spar without a semi-colon",
- "output": [
- [
- "Character",
- "&spar"
- ]
- ]
- },
- {
- "input": "&spar;",
- "description": "Named entity: spar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2225"
- ]
- ]
- },
- {
- "input": "&sqcap",
- "description": "Bad named entity: sqcap without a semi-colon",
- "output": [
- [
- "Character",
- "&sqcap"
- ]
- ]
- },
- {
- "input": "&sqcap;",
- "description": "Named entity: sqcap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2293"
- ]
- ]
- },
- {
- "input": "&sqcaps",
- "description": "Bad named entity: sqcaps without a semi-colon",
- "output": [
- [
- "Character",
- "&sqcaps"
- ]
- ]
- },
- {
- "input": "&sqcaps;",
- "description": "Named entity: sqcaps; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2293\ufe00"
- ]
- ]
- },
- {
- "input": "&sqcup",
- "description": "Bad named entity: sqcup without a semi-colon",
- "output": [
- [
- "Character",
- "&sqcup"
- ]
- ]
- },
- {
- "input": "&sqcup;",
- "description": "Named entity: sqcup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2294"
- ]
- ]
- },
- {
- "input": "&sqcups",
- "description": "Bad named entity: sqcups without a semi-colon",
- "output": [
- [
- "Character",
- "&sqcups"
- ]
- ]
- },
- {
- "input": "&sqcups;",
- "description": "Named entity: sqcups; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2294\ufe00"
- ]
- ]
- },
- {
- "input": "&sqsub",
- "description": "Bad named entity: sqsub without a semi-colon",
- "output": [
- [
- "Character",
- "&sqsub"
- ]
- ]
- },
- {
- "input": "&sqsub;",
- "description": "Named entity: sqsub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228f"
- ]
- ]
- },
- {
- "input": "&sqsube",
- "description": "Bad named entity: sqsube without a semi-colon",
- "output": [
- [
- "Character",
- "&sqsube"
- ]
- ]
- },
- {
- "input": "&sqsube;",
- "description": "Named entity: sqsube; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2291"
- ]
- ]
- },
- {
- "input": "&sqsubset",
- "description": "Bad named entity: sqsubset without a semi-colon",
- "output": [
- [
- "Character",
- "&sqsubset"
- ]
- ]
- },
- {
- "input": "&sqsubset;",
- "description": "Named entity: sqsubset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228f"
- ]
- ]
- },
- {
- "input": "&sqsubseteq",
- "description": "Bad named entity: sqsubseteq without a semi-colon",
- "output": [
- [
- "Character",
- "&sqsubseteq"
- ]
- ]
- },
- {
- "input": "&sqsubseteq;",
- "description": "Named entity: sqsubseteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2291"
- ]
- ]
- },
- {
- "input": "&sqsup",
- "description": "Bad named entity: sqsup without a semi-colon",
- "output": [
- [
- "Character",
- "&sqsup"
- ]
- ]
- },
- {
- "input": "&sqsup;",
- "description": "Named entity: sqsup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2290"
- ]
- ]
- },
- {
- "input": "&sqsupe",
- "description": "Bad named entity: sqsupe without a semi-colon",
- "output": [
- [
- "Character",
- "&sqsupe"
- ]
- ]
- },
- {
- "input": "&sqsupe;",
- "description": "Named entity: sqsupe; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2292"
- ]
- ]
- },
- {
- "input": "&sqsupset",
- "description": "Bad named entity: sqsupset without a semi-colon",
- "output": [
- [
- "Character",
- "&sqsupset"
- ]
- ]
- },
- {
- "input": "&sqsupset;",
- "description": "Named entity: sqsupset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2290"
- ]
- ]
- },
- {
- "input": "&sqsupseteq",
- "description": "Bad named entity: sqsupseteq without a semi-colon",
- "output": [
- [
- "Character",
- "&sqsupseteq"
- ]
- ]
- },
- {
- "input": "&sqsupseteq;",
- "description": "Named entity: sqsupseteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2292"
- ]
- ]
- },
- {
- "input": "&squ",
- "description": "Bad named entity: squ without a semi-colon",
- "output": [
- [
- "Character",
- "&squ"
- ]
- ]
- },
- {
- "input": "&squ;",
- "description": "Named entity: squ; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25a1"
- ]
- ]
- },
- {
- "input": "&square",
- "description": "Bad named entity: square without a semi-colon",
- "output": [
- [
- "Character",
- "&square"
- ]
- ]
- },
- {
- "input": "&square;",
- "description": "Named entity: square; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25a1"
- ]
- ]
- },
- {
- "input": "&squarf",
- "description": "Bad named entity: squarf without a semi-colon",
- "output": [
- [
- "Character",
- "&squarf"
- ]
- ]
- },
- {
- "input": "&squarf;",
- "description": "Named entity: squarf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25aa"
- ]
- ]
- },
- {
- "input": "&squf",
- "description": "Bad named entity: squf without a semi-colon",
- "output": [
- [
- "Character",
- "&squf"
- ]
- ]
- },
- {
- "input": "&squf;",
- "description": "Named entity: squf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25aa"
- ]
- ]
- },
- {
- "input": "&srarr",
- "description": "Bad named entity: srarr without a semi-colon",
- "output": [
- [
- "Character",
- "&srarr"
- ]
- ]
- },
- {
- "input": "&srarr;",
- "description": "Named entity: srarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2192"
- ]
- ]
- },
- {
- "input": "&sscr",
- "description": "Bad named entity: sscr without a semi-colon",
- "output": [
- [
- "Character",
- "&sscr"
- ]
- ]
- },
- {
- "input": "&sscr;",
- "description": "Named entity: sscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc8"
- ]
- ]
- },
- {
- "input": "&ssetmn",
- "description": "Bad named entity: ssetmn without a semi-colon",
- "output": [
- [
- "Character",
- "&ssetmn"
- ]
- ]
- },
- {
- "input": "&ssetmn;",
- "description": "Named entity: ssetmn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2216"
- ]
- ]
- },
- {
- "input": "&ssmile",
- "description": "Bad named entity: ssmile without a semi-colon",
- "output": [
- [
- "Character",
- "&ssmile"
- ]
- ]
- },
- {
- "input": "&ssmile;",
- "description": "Named entity: ssmile; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2323"
- ]
- ]
- },
- {
- "input": "&sstarf",
- "description": "Bad named entity: sstarf without a semi-colon",
- "output": [
- [
- "Character",
- "&sstarf"
- ]
- ]
- },
- {
- "input": "&sstarf;",
- "description": "Named entity: sstarf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c6"
- ]
- ]
- },
- {
- "input": "&star",
- "description": "Bad named entity: star without a semi-colon",
- "output": [
- [
- "Character",
- "&star"
- ]
- ]
- },
- {
- "input": "&star;",
- "description": "Named entity: star; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2606"
- ]
- ]
- },
- {
- "input": "&starf",
- "description": "Bad named entity: starf without a semi-colon",
- "output": [
- [
- "Character",
- "&starf"
- ]
- ]
- },
- {
- "input": "&starf;",
- "description": "Named entity: starf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2605"
- ]
- ]
- },
- {
- "input": "&straightepsilon",
- "description": "Bad named entity: straightepsilon without a semi-colon",
- "output": [
- [
- "Character",
- "&straightepsilon"
- ]
- ]
- },
- {
- "input": "&straightepsilon;",
- "description": "Named entity: straightepsilon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f5"
- ]
- ]
- },
- {
- "input": "&straightphi",
- "description": "Bad named entity: straightphi without a semi-colon",
- "output": [
- [
- "Character",
- "&straightphi"
- ]
- ]
- },
- {
- "input": "&straightphi;",
- "description": "Named entity: straightphi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d5"
- ]
- ]
- },
- {
- "input": "&strns",
- "description": "Bad named entity: strns without a semi-colon",
- "output": [
- [
- "Character",
- "&strns"
- ]
- ]
- },
- {
- "input": "&strns;",
- "description": "Named entity: strns; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00af"
- ]
- ]
- },
- {
- "input": "&sub",
- "description": "Bad named entity: sub without a semi-colon",
- "output": [
- [
- "Character",
- "&sub"
- ]
- ]
- },
- {
- "input": "&sub;",
- "description": "Named entity: sub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2282"
- ]
- ]
- },
- {
- "input": "&subE",
- "description": "Bad named entity: subE without a semi-colon",
- "output": [
- [
- "Character",
- "&subE"
- ]
- ]
- },
- {
- "input": "&subE;",
- "description": "Named entity: subE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac5"
- ]
- ]
- },
- {
- "input": "&subdot",
- "description": "Bad named entity: subdot without a semi-colon",
- "output": [
- [
- "Character",
- "&subdot"
- ]
- ]
- },
- {
- "input": "&subdot;",
- "description": "Named entity: subdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2abd"
- ]
- ]
- },
- {
- "input": "&sube",
- "description": "Bad named entity: sube without a semi-colon",
- "output": [
- [
- "Character",
- "&sube"
- ]
- ]
- },
- {
- "input": "&sube;",
- "description": "Named entity: sube; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2286"
- ]
- ]
- },
- {
- "input": "&subedot",
- "description": "Bad named entity: subedot without a semi-colon",
- "output": [
- [
- "Character",
- "&subedot"
- ]
- ]
- },
- {
- "input": "&subedot;",
- "description": "Named entity: subedot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac3"
- ]
- ]
- },
- {
- "input": "&submult",
- "description": "Bad named entity: submult without a semi-colon",
- "output": [
- [
- "Character",
- "&submult"
- ]
- ]
- },
- {
- "input": "&submult;",
- "description": "Named entity: submult; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac1"
- ]
- ]
- },
- {
- "input": "&subnE",
- "description": "Bad named entity: subnE without a semi-colon",
- "output": [
- [
- "Character",
- "&subnE"
- ]
- ]
- },
- {
- "input": "&subnE;",
- "description": "Named entity: subnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acb"
- ]
- ]
- },
- {
- "input": "&subne",
- "description": "Bad named entity: subne without a semi-colon",
- "output": [
- [
- "Character",
- "&subne"
- ]
- ]
- },
- {
- "input": "&subne;",
- "description": "Named entity: subne; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228a"
- ]
- ]
- },
- {
- "input": "&subplus",
- "description": "Bad named entity: subplus without a semi-colon",
- "output": [
- [
- "Character",
- "&subplus"
- ]
- ]
- },
- {
- "input": "&subplus;",
- "description": "Named entity: subplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2abf"
- ]
- ]
- },
- {
- "input": "&subrarr",
- "description": "Bad named entity: subrarr without a semi-colon",
- "output": [
- [
- "Character",
- "&subrarr"
- ]
- ]
- },
- {
- "input": "&subrarr;",
- "description": "Named entity: subrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2979"
- ]
- ]
- },
- {
- "input": "&subset",
- "description": "Bad named entity: subset without a semi-colon",
- "output": [
- [
- "Character",
- "&subset"
- ]
- ]
- },
- {
- "input": "&subset;",
- "description": "Named entity: subset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2282"
- ]
- ]
- },
- {
- "input": "&subseteq",
- "description": "Bad named entity: subseteq without a semi-colon",
- "output": [
- [
- "Character",
- "&subseteq"
- ]
- ]
- },
- {
- "input": "&subseteq;",
- "description": "Named entity: subseteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2286"
- ]
- ]
- },
- {
- "input": "&subseteqq",
- "description": "Bad named entity: subseteqq without a semi-colon",
- "output": [
- [
- "Character",
- "&subseteqq"
- ]
- ]
- },
- {
- "input": "&subseteqq;",
- "description": "Named entity: subseteqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac5"
- ]
- ]
- },
- {
- "input": "&subsetneq",
- "description": "Bad named entity: subsetneq without a semi-colon",
- "output": [
- [
- "Character",
- "&subsetneq"
- ]
- ]
- },
- {
- "input": "&subsetneq;",
- "description": "Named entity: subsetneq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228a"
- ]
- ]
- },
- {
- "input": "&subsetneqq",
- "description": "Bad named entity: subsetneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&subsetneqq"
- ]
- ]
- },
- {
- "input": "&subsetneqq;",
- "description": "Named entity: subsetneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acb"
- ]
- ]
- },
- {
- "input": "&subsim",
- "description": "Bad named entity: subsim without a semi-colon",
- "output": [
- [
- "Character",
- "&subsim"
- ]
- ]
- },
- {
- "input": "&subsim;",
- "description": "Named entity: subsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac7"
- ]
- ]
- },
- {
- "input": "&subsub",
- "description": "Bad named entity: subsub without a semi-colon",
- "output": [
- [
- "Character",
- "&subsub"
- ]
- ]
- },
- {
- "input": "&subsub;",
- "description": "Named entity: subsub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad5"
- ]
- ]
- },
- {
- "input": "&subsup",
- "description": "Bad named entity: subsup without a semi-colon",
- "output": [
- [
- "Character",
- "&subsup"
- ]
- ]
- },
- {
- "input": "&subsup;",
- "description": "Named entity: subsup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad3"
- ]
- ]
- },
- {
- "input": "&succ",
- "description": "Bad named entity: succ without a semi-colon",
- "output": [
- [
- "Character",
- "&succ"
- ]
- ]
- },
- {
- "input": "&succ;",
- "description": "Named entity: succ; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227b"
- ]
- ]
- },
- {
- "input": "&succapprox",
- "description": "Bad named entity: succapprox without a semi-colon",
- "output": [
- [
- "Character",
- "&succapprox"
- ]
- ]
- },
- {
- "input": "&succapprox;",
- "description": "Named entity: succapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab8"
- ]
- ]
- },
- {
- "input": "&succcurlyeq",
- "description": "Bad named entity: succcurlyeq without a semi-colon",
- "output": [
- [
- "Character",
- "&succcurlyeq"
- ]
- ]
- },
- {
- "input": "&succcurlyeq;",
- "description": "Named entity: succcurlyeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227d"
- ]
- ]
- },
- {
- "input": "&succeq",
- "description": "Bad named entity: succeq without a semi-colon",
- "output": [
- [
- "Character",
- "&succeq"
- ]
- ]
- },
- {
- "input": "&succeq;",
- "description": "Named entity: succeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab0"
- ]
- ]
- },
- {
- "input": "&succnapprox",
- "description": "Bad named entity: succnapprox without a semi-colon",
- "output": [
- [
- "Character",
- "&succnapprox"
- ]
- ]
- },
- {
- "input": "&succnapprox;",
- "description": "Named entity: succnapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aba"
- ]
- ]
- },
- {
- "input": "&succneqq",
- "description": "Bad named entity: succneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&succneqq"
- ]
- ]
- },
- {
- "input": "&succneqq;",
- "description": "Named entity: succneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab6"
- ]
- ]
- },
- {
- "input": "&succnsim",
- "description": "Bad named entity: succnsim without a semi-colon",
- "output": [
- [
- "Character",
- "&succnsim"
- ]
- ]
- },
- {
- "input": "&succnsim;",
- "description": "Named entity: succnsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e9"
- ]
- ]
- },
- {
- "input": "&succsim",
- "description": "Bad named entity: succsim without a semi-colon",
- "output": [
- [
- "Character",
- "&succsim"
- ]
- ]
- },
- {
- "input": "&succsim;",
- "description": "Named entity: succsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227f"
- ]
- ]
- },
- {
- "input": "&sum",
- "description": "Bad named entity: sum without a semi-colon",
- "output": [
- [
- "Character",
- "&sum"
- ]
- ]
- },
- {
- "input": "&sum;",
- "description": "Named entity: sum; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2211"
- ]
- ]
- },
- {
- "input": "&sung",
- "description": "Bad named entity: sung without a semi-colon",
- "output": [
- [
- "Character",
- "&sung"
- ]
- ]
- },
- {
- "input": "&sung;",
- "description": "Named entity: sung; with a semi-colon",
- "output": [
- [
- "Character",
- "\u266a"
- ]
- ]
- },
- {
- "input": "&sup",
- "description": "Bad named entity: sup without a semi-colon",
- "output": [
- [
- "Character",
- "&sup"
- ]
- ]
- },
- {
- "input": "&sup1",
- "description": "Named entity: sup1 without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b9"
- ]
- ]
- },
- {
- "input": "&sup1;",
- "description": "Named entity: sup1; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b9"
- ]
- ]
- },
- {
- "input": "&sup2",
- "description": "Named entity: sup2 without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b2"
- ]
- ]
- },
- {
- "input": "&sup2;",
- "description": "Named entity: sup2; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b2"
- ]
- ]
- },
- {
- "input": "&sup3",
- "description": "Named entity: sup3 without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b3"
- ]
- ]
- },
- {
- "input": "&sup3;",
- "description": "Named entity: sup3; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b3"
- ]
- ]
- },
- {
- "input": "&sup;",
- "description": "Named entity: sup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2283"
- ]
- ]
- },
- {
- "input": "&supE",
- "description": "Bad named entity: supE without a semi-colon",
- "output": [
- [
- "Character",
- "&supE"
- ]
- ]
- },
- {
- "input": "&supE;",
- "description": "Named entity: supE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac6"
- ]
- ]
- },
- {
- "input": "&supdot",
- "description": "Bad named entity: supdot without a semi-colon",
- "output": [
- [
- "Character",
- "&supdot"
- ]
- ]
- },
- {
- "input": "&supdot;",
- "description": "Named entity: supdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2abe"
- ]
- ]
- },
- {
- "input": "&supdsub",
- "description": "Bad named entity: supdsub without a semi-colon",
- "output": [
- [
- "Character",
- "&supdsub"
- ]
- ]
- },
- {
- "input": "&supdsub;",
- "description": "Named entity: supdsub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad8"
- ]
- ]
- },
- {
- "input": "&supe",
- "description": "Bad named entity: supe without a semi-colon",
- "output": [
- [
- "Character",
- "&supe"
- ]
- ]
- },
- {
- "input": "&supe;",
- "description": "Named entity: supe; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2287"
- ]
- ]
- },
- {
- "input": "&supedot",
- "description": "Bad named entity: supedot without a semi-colon",
- "output": [
- [
- "Character",
- "&supedot"
- ]
- ]
- },
- {
- "input": "&supedot;",
- "description": "Named entity: supedot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac4"
- ]
- ]
- },
- {
- "input": "&suphsol",
- "description": "Bad named entity: suphsol without a semi-colon",
- "output": [
- [
- "Character",
- "&suphsol"
- ]
- ]
- },
- {
- "input": "&suphsol;",
- "description": "Named entity: suphsol; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27c9"
- ]
- ]
- },
- {
- "input": "&suphsub",
- "description": "Bad named entity: suphsub without a semi-colon",
- "output": [
- [
- "Character",
- "&suphsub"
- ]
- ]
- },
- {
- "input": "&suphsub;",
- "description": "Named entity: suphsub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad7"
- ]
- ]
- },
- {
- "input": "&suplarr",
- "description": "Bad named entity: suplarr without a semi-colon",
- "output": [
- [
- "Character",
- "&suplarr"
- ]
- ]
- },
- {
- "input": "&suplarr;",
- "description": "Named entity: suplarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u297b"
- ]
- ]
- },
- {
- "input": "&supmult",
- "description": "Bad named entity: supmult without a semi-colon",
- "output": [
- [
- "Character",
- "&supmult"
- ]
- ]
- },
- {
- "input": "&supmult;",
- "description": "Named entity: supmult; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac2"
- ]
- ]
- },
- {
- "input": "&supnE",
- "description": "Bad named entity: supnE without a semi-colon",
- "output": [
- [
- "Character",
- "&supnE"
- ]
- ]
- },
- {
- "input": "&supnE;",
- "description": "Named entity: supnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acc"
- ]
- ]
- },
- {
- "input": "&supne",
- "description": "Bad named entity: supne without a semi-colon",
- "output": [
- [
- "Character",
- "&supne"
- ]
- ]
- },
- {
- "input": "&supne;",
- "description": "Named entity: supne; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228b"
- ]
- ]
- },
- {
- "input": "&supplus",
- "description": "Bad named entity: supplus without a semi-colon",
- "output": [
- [
- "Character",
- "&supplus"
- ]
- ]
- },
- {
- "input": "&supplus;",
- "description": "Named entity: supplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac0"
- ]
- ]
- },
- {
- "input": "&supset",
- "description": "Bad named entity: supset without a semi-colon",
- "output": [
- [
- "Character",
- "&supset"
- ]
- ]
- },
- {
- "input": "&supset;",
- "description": "Named entity: supset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2283"
- ]
- ]
- },
- {
- "input": "&supseteq",
- "description": "Bad named entity: supseteq without a semi-colon",
- "output": [
- [
- "Character",
- "&supseteq"
- ]
- ]
- },
- {
- "input": "&supseteq;",
- "description": "Named entity: supseteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2287"
- ]
- ]
- },
- {
- "input": "&supseteqq",
- "description": "Bad named entity: supseteqq without a semi-colon",
- "output": [
- [
- "Character",
- "&supseteqq"
- ]
- ]
- },
- {
- "input": "&supseteqq;",
- "description": "Named entity: supseteqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac6"
- ]
- ]
- },
- {
- "input": "&supsetneq",
- "description": "Bad named entity: supsetneq without a semi-colon",
- "output": [
- [
- "Character",
- "&supsetneq"
- ]
- ]
- },
- {
- "input": "&supsetneq;",
- "description": "Named entity: supsetneq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228b"
- ]
- ]
- },
- {
- "input": "&supsetneqq",
- "description": "Bad named entity: supsetneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&supsetneqq"
- ]
- ]
- },
- {
- "input": "&supsetneqq;",
- "description": "Named entity: supsetneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acc"
- ]
- ]
- },
- {
- "input": "&supsim",
- "description": "Bad named entity: supsim without a semi-colon",
- "output": [
- [
- "Character",
- "&supsim"
- ]
- ]
- },
- {
- "input": "&supsim;",
- "description": "Named entity: supsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac8"
- ]
- ]
- },
- {
- "input": "&supsub",
- "description": "Bad named entity: supsub without a semi-colon",
- "output": [
- [
- "Character",
- "&supsub"
- ]
- ]
- },
- {
- "input": "&supsub;",
- "description": "Named entity: supsub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad4"
- ]
- ]
- },
- {
- "input": "&supsup",
- "description": "Bad named entity: supsup without a semi-colon",
- "output": [
- [
- "Character",
- "&supsup"
- ]
- ]
- },
- {
- "input": "&supsup;",
- "description": "Named entity: supsup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad6"
- ]
- ]
- },
- {
- "input": "&swArr",
- "description": "Bad named entity: swArr without a semi-colon",
- "output": [
- [
- "Character",
- "&swArr"
- ]
- ]
- },
- {
- "input": "&swArr;",
- "description": "Named entity: swArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d9"
- ]
- ]
- },
- {
- "input": "&swarhk",
- "description": "Bad named entity: swarhk without a semi-colon",
- "output": [
- [
- "Character",
- "&swarhk"
- ]
- ]
- },
- {
- "input": "&swarhk;",
- "description": "Named entity: swarhk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2926"
- ]
- ]
- },
- {
- "input": "&swarr",
- "description": "Bad named entity: swarr without a semi-colon",
- "output": [
- [
- "Character",
- "&swarr"
- ]
- ]
- },
- {
- "input": "&swarr;",
- "description": "Named entity: swarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2199"
- ]
- ]
- },
- {
- "input": "&swarrow",
- "description": "Bad named entity: swarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&swarrow"
- ]
- ]
- },
- {
- "input": "&swarrow;",
- "description": "Named entity: swarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2199"
- ]
- ]
- },
- {
- "input": "&swnwar",
- "description": "Bad named entity: swnwar without a semi-colon",
- "output": [
- [
- "Character",
- "&swnwar"
- ]
- ]
- },
- {
- "input": "&swnwar;",
- "description": "Named entity: swnwar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u292a"
- ]
- ]
- },
- {
- "input": "&szlig",
- "description": "Named entity: szlig without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00df"
- ]
- ]
- },
- {
- "input": "&szlig;",
- "description": "Named entity: szlig; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00df"
- ]
- ]
- },
- {
- "input": "&target",
- "description": "Bad named entity: target without a semi-colon",
- "output": [
- [
- "Character",
- "&target"
- ]
- ]
- },
- {
- "input": "&target;",
- "description": "Named entity: target; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2316"
- ]
- ]
- },
- {
- "input": "&tau",
- "description": "Bad named entity: tau without a semi-colon",
- "output": [
- [
- "Character",
- "&tau"
- ]
- ]
- },
- {
- "input": "&tau;",
- "description": "Named entity: tau; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c4"
- ]
- ]
- },
- {
- "input": "&tbrk",
- "description": "Bad named entity: tbrk without a semi-colon",
- "output": [
- [
- "Character",
- "&tbrk"
- ]
- ]
- },
- {
- "input": "&tbrk;",
- "description": "Named entity: tbrk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b4"
- ]
- ]
- },
- {
- "input": "&tcaron",
- "description": "Bad named entity: tcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&tcaron"
- ]
- ]
- },
- {
- "input": "&tcaron;",
- "description": "Named entity: tcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0165"
- ]
- ]
- },
- {
- "input": "&tcedil",
- "description": "Bad named entity: tcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&tcedil"
- ]
- ]
- },
- {
- "input": "&tcedil;",
- "description": "Named entity: tcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0163"
- ]
- ]
- },
- {
- "input": "&tcy",
- "description": "Bad named entity: tcy without a semi-colon",
- "output": [
- [
- "Character",
- "&tcy"
- ]
- ]
- },
- {
- "input": "&tcy;",
- "description": "Named entity: tcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0442"
- ]
- ]
- },
- {
- "input": "&tdot",
- "description": "Bad named entity: tdot without a semi-colon",
- "output": [
- [
- "Character",
- "&tdot"
- ]
- ]
- },
- {
- "input": "&tdot;",
- "description": "Named entity: tdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u20db"
- ]
- ]
- },
- {
- "input": "&telrec",
- "description": "Bad named entity: telrec without a semi-colon",
- "output": [
- [
- "Character",
- "&telrec"
- ]
- ]
- },
- {
- "input": "&telrec;",
- "description": "Named entity: telrec; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2315"
- ]
- ]
- },
- {
- "input": "&tfr",
- "description": "Bad named entity: tfr without a semi-colon",
- "output": [
- [
- "Character",
- "&tfr"
- ]
- ]
- },
- {
- "input": "&tfr;",
- "description": "Named entity: tfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd31"
- ]
- ]
- },
- {
- "input": "&there4",
- "description": "Bad named entity: there4 without a semi-colon",
- "output": [
- [
- "Character",
- "&there4"
- ]
- ]
- },
- {
- "input": "&there4;",
- "description": "Named entity: there4; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2234"
- ]
- ]
- },
- {
- "input": "&therefore",
- "description": "Bad named entity: therefore without a semi-colon",
- "output": [
- [
- "Character",
- "&therefore"
- ]
- ]
- },
- {
- "input": "&therefore;",
- "description": "Named entity: therefore; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2234"
- ]
- ]
- },
- {
- "input": "&theta",
- "description": "Bad named entity: theta without a semi-colon",
- "output": [
- [
- "Character",
- "&theta"
- ]
- ]
- },
- {
- "input": "&theta;",
- "description": "Named entity: theta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b8"
- ]
- ]
- },
- {
- "input": "&thetasym",
- "description": "Bad named entity: thetasym without a semi-colon",
- "output": [
- [
- "Character",
- "&thetasym"
- ]
- ]
- },
- {
- "input": "&thetasym;",
- "description": "Named entity: thetasym; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d1"
- ]
- ]
- },
- {
- "input": "&thetav",
- "description": "Bad named entity: thetav without a semi-colon",
- "output": [
- [
- "Character",
- "&thetav"
- ]
- ]
- },
- {
- "input": "&thetav;",
- "description": "Named entity: thetav; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d1"
- ]
- ]
- },
- {
- "input": "&thickapprox",
- "description": "Bad named entity: thickapprox without a semi-colon",
- "output": [
- [
- "Character",
- "&thickapprox"
- ]
- ]
- },
- {
- "input": "&thickapprox;",
- "description": "Named entity: thickapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2248"
- ]
- ]
- },
- {
- "input": "&thicksim",
- "description": "Bad named entity: thicksim without a semi-colon",
- "output": [
- [
- "Character",
- "&thicksim"
- ]
- ]
- },
- {
- "input": "&thicksim;",
- "description": "Named entity: thicksim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223c"
- ]
- ]
- },
- {
- "input": "&thinsp",
- "description": "Bad named entity: thinsp without a semi-colon",
- "output": [
- [
- "Character",
- "&thinsp"
- ]
- ]
- },
- {
- "input": "&thinsp;",
- "description": "Named entity: thinsp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2009"
- ]
- ]
- },
- {
- "input": "&thkap",
- "description": "Bad named entity: thkap without a semi-colon",
- "output": [
- [
- "Character",
- "&thkap"
- ]
- ]
- },
- {
- "input": "&thkap;",
- "description": "Named entity: thkap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2248"
- ]
- ]
- },
- {
- "input": "&thksim",
- "description": "Bad named entity: thksim without a semi-colon",
- "output": [
- [
- "Character",
- "&thksim"
- ]
- ]
- },
- {
- "input": "&thksim;",
- "description": "Named entity: thksim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223c"
- ]
- ]
- },
- {
- "input": "&thorn",
- "description": "Named entity: thorn without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00fe"
- ]
- ]
- },
- {
- "input": "&thorn;",
- "description": "Named entity: thorn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00fe"
- ]
- ]
- },
- {
- "input": "&tilde",
- "description": "Bad named entity: tilde without a semi-colon",
- "output": [
- [
- "Character",
- "&tilde"
- ]
- ]
- },
- {
- "input": "&tilde;",
- "description": "Named entity: tilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02dc"
- ]
- ]
- },
- {
- "input": "&times",
- "description": "Named entity: times without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d7"
- ]
- ]
- },
- {
- "input": "&times;",
- "description": "Named entity: times; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d7"
- ]
- ]
- },
- {
- "input": "&timesb;",
- "description": "Named entity: timesb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a0"
- ]
- ]
- },
- {
- "input": "&timesbar;",
- "description": "Named entity: timesbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a31"
- ]
- ]
- },
- {
- "input": "&timesd;",
- "description": "Named entity: timesd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a30"
- ]
- ]
- },
- {
- "input": "&tint",
- "description": "Bad named entity: tint without a semi-colon",
- "output": [
- [
- "Character",
- "&tint"
- ]
- ]
- },
- {
- "input": "&tint;",
- "description": "Named entity: tint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222d"
- ]
- ]
- },
- {
- "input": "&toea",
- "description": "Bad named entity: toea without a semi-colon",
- "output": [
- [
- "Character",
- "&toea"
- ]
- ]
- },
- {
- "input": "&toea;",
- "description": "Named entity: toea; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2928"
- ]
- ]
- },
- {
- "input": "&top",
- "description": "Bad named entity: top without a semi-colon",
- "output": [
- [
- "Character",
- "&top"
- ]
- ]
- },
- {
- "input": "&top;",
- "description": "Named entity: top; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a4"
- ]
- ]
- },
- {
- "input": "&topbot",
- "description": "Bad named entity: topbot without a semi-colon",
- "output": [
- [
- "Character",
- "&topbot"
- ]
- ]
- },
- {
- "input": "&topbot;",
- "description": "Named entity: topbot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2336"
- ]
- ]
- },
- {
- "input": "&topcir",
- "description": "Bad named entity: topcir without a semi-colon",
- "output": [
- [
- "Character",
- "&topcir"
- ]
- ]
- },
- {
- "input": "&topcir;",
- "description": "Named entity: topcir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2af1"
- ]
- ]
- },
- {
- "input": "&topf",
- "description": "Bad named entity: topf without a semi-colon",
- "output": [
- [
- "Character",
- "&topf"
- ]
- ]
- },
- {
- "input": "&topf;",
- "description": "Named entity: topf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd65"
- ]
- ]
- },
- {
- "input": "&topfork",
- "description": "Bad named entity: topfork without a semi-colon",
- "output": [
- [
- "Character",
- "&topfork"
- ]
- ]
- },
- {
- "input": "&topfork;",
- "description": "Named entity: topfork; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ada"
- ]
- ]
- },
- {
- "input": "&tosa",
- "description": "Bad named entity: tosa without a semi-colon",
- "output": [
- [
- "Character",
- "&tosa"
- ]
- ]
- },
- {
- "input": "&tosa;",
- "description": "Named entity: tosa; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2929"
- ]
- ]
- },
- {
- "input": "&tprime",
- "description": "Bad named entity: tprime without a semi-colon",
- "output": [
- [
- "Character",
- "&tprime"
- ]
- ]
- },
- {
- "input": "&tprime;",
- "description": "Named entity: tprime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2034"
- ]
- ]
- },
- {
- "input": "&trade",
- "description": "Bad named entity: trade without a semi-colon",
- "output": [
- [
- "Character",
- "&trade"
- ]
- ]
- },
- {
- "input": "&trade;",
- "description": "Named entity: trade; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2122"
- ]
- ]
- },
- {
- "input": "&triangle",
- "description": "Bad named entity: triangle without a semi-colon",
- "output": [
- [
- "Character",
- "&triangle"
- ]
- ]
- },
- {
- "input": "&triangle;",
- "description": "Named entity: triangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b5"
- ]
- ]
- },
- {
- "input": "&triangledown",
- "description": "Bad named entity: triangledown without a semi-colon",
- "output": [
- [
- "Character",
- "&triangledown"
- ]
- ]
- },
- {
- "input": "&triangledown;",
- "description": "Named entity: triangledown; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25bf"
- ]
- ]
- },
- {
- "input": "&triangleleft",
- "description": "Bad named entity: triangleleft without a semi-colon",
- "output": [
- [
- "Character",
- "&triangleleft"
- ]
- ]
- },
- {
- "input": "&triangleleft;",
- "description": "Named entity: triangleleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25c3"
- ]
- ]
- },
- {
- "input": "&trianglelefteq",
- "description": "Bad named entity: trianglelefteq without a semi-colon",
- "output": [
- [
- "Character",
- "&trianglelefteq"
- ]
- ]
- },
- {
- "input": "&trianglelefteq;",
- "description": "Named entity: trianglelefteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b4"
- ]
- ]
- },
- {
- "input": "&triangleq",
- "description": "Bad named entity: triangleq without a semi-colon",
- "output": [
- [
- "Character",
- "&triangleq"
- ]
- ]
- },
- {
- "input": "&triangleq;",
- "description": "Named entity: triangleq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u225c"
- ]
- ]
- },
- {
- "input": "&triangleright",
- "description": "Bad named entity: triangleright without a semi-colon",
- "output": [
- [
- "Character",
- "&triangleright"
- ]
- ]
- },
- {
- "input": "&triangleright;",
- "description": "Named entity: triangleright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b9"
- ]
- ]
- },
- {
- "input": "&trianglerighteq",
- "description": "Bad named entity: trianglerighteq without a semi-colon",
- "output": [
- [
- "Character",
- "&trianglerighteq"
- ]
- ]
- },
- {
- "input": "&trianglerighteq;",
- "description": "Named entity: trianglerighteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b5"
- ]
- ]
- },
- {
- "input": "&tridot",
- "description": "Bad named entity: tridot without a semi-colon",
- "output": [
- [
- "Character",
- "&tridot"
- ]
- ]
- },
- {
- "input": "&tridot;",
- "description": "Named entity: tridot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25ec"
- ]
- ]
- },
- {
- "input": "&trie",
- "description": "Bad named entity: trie without a semi-colon",
- "output": [
- [
- "Character",
- "&trie"
- ]
- ]
- },
- {
- "input": "&trie;",
- "description": "Named entity: trie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u225c"
- ]
- ]
- },
- {
- "input": "&triminus",
- "description": "Bad named entity: triminus without a semi-colon",
- "output": [
- [
- "Character",
- "&triminus"
- ]
- ]
- },
- {
- "input": "&triminus;",
- "description": "Named entity: triminus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a3a"
- ]
- ]
- },
- {
- "input": "&triplus",
- "description": "Bad named entity: triplus without a semi-colon",
- "output": [
- [
- "Character",
- "&triplus"
- ]
- ]
- },
- {
- "input": "&triplus;",
- "description": "Named entity: triplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a39"
- ]
- ]
- },
- {
- "input": "&trisb",
- "description": "Bad named entity: trisb without a semi-colon",
- "output": [
- [
- "Character",
- "&trisb"
- ]
- ]
- },
- {
- "input": "&trisb;",
- "description": "Named entity: trisb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29cd"
- ]
- ]
- },
- {
- "input": "&tritime",
- "description": "Bad named entity: tritime without a semi-colon",
- "output": [
- [
- "Character",
- "&tritime"
- ]
- ]
- },
- {
- "input": "&tritime;",
- "description": "Named entity: tritime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a3b"
- ]
- ]
- },
- {
- "input": "&trpezium",
- "description": "Bad named entity: trpezium without a semi-colon",
- "output": [
- [
- "Character",
- "&trpezium"
- ]
- ]
- },
- {
- "input": "&trpezium;",
- "description": "Named entity: trpezium; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23e2"
- ]
- ]
- },
- {
- "input": "&tscr",
- "description": "Bad named entity: tscr without a semi-colon",
- "output": [
- [
- "Character",
- "&tscr"
- ]
- ]
- },
- {
- "input": "&tscr;",
- "description": "Named entity: tscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc9"
- ]
- ]
- },
- {
- "input": "&tscy",
- "description": "Bad named entity: tscy without a semi-colon",
- "output": [
- [
- "Character",
- "&tscy"
- ]
- ]
- },
- {
- "input": "&tscy;",
- "description": "Named entity: tscy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0446"
- ]
- ]
- },
- {
- "input": "&tshcy",
- "description": "Bad named entity: tshcy without a semi-colon",
- "output": [
- [
- "Character",
- "&tshcy"
- ]
- ]
- },
- {
- "input": "&tshcy;",
- "description": "Named entity: tshcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u045b"
- ]
- ]
- },
- {
- "input": "&tstrok",
- "description": "Bad named entity: tstrok without a semi-colon",
- "output": [
- [
- "Character",
- "&tstrok"
- ]
- ]
- },
- {
- "input": "&tstrok;",
- "description": "Named entity: tstrok; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0167"
- ]
- ]
- },
- {
- "input": "&twixt",
- "description": "Bad named entity: twixt without a semi-colon",
- "output": [
- [
- "Character",
- "&twixt"
- ]
- ]
- },
- {
- "input": "&twixt;",
- "description": "Named entity: twixt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226c"
- ]
- ]
- },
- {
- "input": "&twoheadleftarrow",
- "description": "Bad named entity: twoheadleftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&twoheadleftarrow"
- ]
- ]
- },
- {
- "input": "&twoheadleftarrow;",
- "description": "Named entity: twoheadleftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219e"
- ]
- ]
- },
- {
- "input": "&twoheadrightarrow",
- "description": "Bad named entity: twoheadrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&twoheadrightarrow"
- ]
- ]
- },
- {
- "input": "&twoheadrightarrow;",
- "description": "Named entity: twoheadrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a0"
- ]
- ]
- },
- {
- "input": "&uArr",
- "description": "Bad named entity: uArr without a semi-colon",
- "output": [
- [
- "Character",
- "&uArr"
- ]
- ]
- },
- {
- "input": "&uArr;",
- "description": "Named entity: uArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d1"
- ]
- ]
- },
- {
- "input": "&uHar",
- "description": "Bad named entity: uHar without a semi-colon",
- "output": [
- [
- "Character",
- "&uHar"
- ]
- ]
- },
- {
- "input": "&uHar;",
- "description": "Named entity: uHar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2963"
- ]
- ]
- },
- {
- "input": "&uacute",
- "description": "Named entity: uacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00fa"
- ]
- ]
- },
- {
- "input": "&uacute;",
- "description": "Named entity: uacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00fa"
- ]
- ]
- },
- {
- "input": "&uarr",
- "description": "Bad named entity: uarr without a semi-colon",
- "output": [
- [
- "Character",
- "&uarr"
- ]
- ]
- },
- {
- "input": "&uarr;",
- "description": "Named entity: uarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2191"
- ]
- ]
- },
- {
- "input": "&ubrcy",
- "description": "Bad named entity: ubrcy without a semi-colon",
- "output": [
- [
- "Character",
- "&ubrcy"
- ]
- ]
- },
- {
- "input": "&ubrcy;",
- "description": "Named entity: ubrcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u045e"
- ]
- ]
- },
- {
- "input": "&ubreve",
- "description": "Bad named entity: ubreve without a semi-colon",
- "output": [
- [
- "Character",
- "&ubreve"
- ]
- ]
- },
- {
- "input": "&ubreve;",
- "description": "Named entity: ubreve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u016d"
- ]
- ]
- },
- {
- "input": "&ucirc",
- "description": "Named entity: ucirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00fb"
- ]
- ]
- },
- {
- "input": "&ucirc;",
- "description": "Named entity: ucirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00fb"
- ]
- ]
- },
- {
- "input": "&ucy",
- "description": "Bad named entity: ucy without a semi-colon",
- "output": [
- [
- "Character",
- "&ucy"
- ]
- ]
- },
- {
- "input": "&ucy;",
- "description": "Named entity: ucy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0443"
- ]
- ]
- },
- {
- "input": "&udarr",
- "description": "Bad named entity: udarr without a semi-colon",
- "output": [
- [
- "Character",
- "&udarr"
- ]
- ]
- },
- {
- "input": "&udarr;",
- "description": "Named entity: udarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c5"
- ]
- ]
- },
- {
- "input": "&udblac",
- "description": "Bad named entity: udblac without a semi-colon",
- "output": [
- [
- "Character",
- "&udblac"
- ]
- ]
- },
- {
- "input": "&udblac;",
- "description": "Named entity: udblac; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0171"
- ]
- ]
- },
- {
- "input": "&udhar",
- "description": "Bad named entity: udhar without a semi-colon",
- "output": [
- [
- "Character",
- "&udhar"
- ]
- ]
- },
- {
- "input": "&udhar;",
- "description": "Named entity: udhar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u296e"
- ]
- ]
- },
- {
- "input": "&ufisht",
- "description": "Bad named entity: ufisht without a semi-colon",
- "output": [
- [
- "Character",
- "&ufisht"
- ]
- ]
- },
- {
- "input": "&ufisht;",
- "description": "Named entity: ufisht; with a semi-colon",
- "output": [
- [
- "Character",
- "\u297e"
- ]
- ]
- },
- {
- "input": "&ufr",
- "description": "Bad named entity: ufr without a semi-colon",
- "output": [
- [
- "Character",
- "&ufr"
- ]
- ]
- },
- {
- "input": "&ufr;",
- "description": "Named entity: ufr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd32"
- ]
- ]
- },
- {
- "input": "&ugrave",
- "description": "Named entity: ugrave without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f9"
- ]
- ]
- },
- {
- "input": "&ugrave;",
- "description": "Named entity: ugrave; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f9"
- ]
- ]
- },
- {
- "input": "&uharl",
- "description": "Bad named entity: uharl without a semi-colon",
- "output": [
- [
- "Character",
- "&uharl"
- ]
- ]
- },
- {
- "input": "&uharl;",
- "description": "Named entity: uharl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bf"
- ]
- ]
- },
- {
- "input": "&uharr",
- "description": "Bad named entity: uharr without a semi-colon",
- "output": [
- [
- "Character",
- "&uharr"
- ]
- ]
- },
- {
- "input": "&uharr;",
- "description": "Named entity: uharr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21be"
- ]
- ]
- },
- {
- "input": "&uhblk",
- "description": "Bad named entity: uhblk without a semi-colon",
- "output": [
- [
- "Character",
- "&uhblk"
- ]
- ]
- },
- {
- "input": "&uhblk;",
- "description": "Named entity: uhblk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2580"
- ]
- ]
- },
- {
- "input": "&ulcorn",
- "description": "Bad named entity: ulcorn without a semi-colon",
- "output": [
- [
- "Character",
- "&ulcorn"
- ]
- ]
- },
- {
- "input": "&ulcorn;",
- "description": "Named entity: ulcorn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u231c"
- ]
- ]
- },
- {
- "input": "&ulcorner",
- "description": "Bad named entity: ulcorner without a semi-colon",
- "output": [
- [
- "Character",
- "&ulcorner"
- ]
- ]
- },
- {
- "input": "&ulcorner;",
- "description": "Named entity: ulcorner; with a semi-colon",
- "output": [
- [
- "Character",
- "\u231c"
- ]
- ]
- },
- {
- "input": "&ulcrop",
- "description": "Bad named entity: ulcrop without a semi-colon",
- "output": [
- [
- "Character",
- "&ulcrop"
- ]
- ]
- },
- {
- "input": "&ulcrop;",
- "description": "Named entity: ulcrop; with a semi-colon",
- "output": [
- [
- "Character",
- "\u230f"
- ]
- ]
- },
- {
- "input": "&ultri",
- "description": "Bad named entity: ultri without a semi-colon",
- "output": [
- [
- "Character",
- "&ultri"
- ]
- ]
- },
- {
- "input": "&ultri;",
- "description": "Named entity: ultri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25f8"
- ]
- ]
- },
- {
- "input": "&umacr",
- "description": "Bad named entity: umacr without a semi-colon",
- "output": [
- [
- "Character",
- "&umacr"
- ]
- ]
- },
- {
- "input": "&umacr;",
- "description": "Named entity: umacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u016b"
- ]
- ]
- },
- {
- "input": "&uml",
- "description": "Named entity: uml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a8"
- ]
- ]
- },
- {
- "input": "&uml;",
- "description": "Named entity: uml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a8"
- ]
- ]
- },
- {
- "input": "&uogon",
- "description": "Bad named entity: uogon without a semi-colon",
- "output": [
- [
- "Character",
- "&uogon"
- ]
- ]
- },
- {
- "input": "&uogon;",
- "description": "Named entity: uogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0173"
- ]
- ]
- },
- {
- "input": "&uopf",
- "description": "Bad named entity: uopf without a semi-colon",
- "output": [
- [
- "Character",
- "&uopf"
- ]
- ]
- },
- {
- "input": "&uopf;",
- "description": "Named entity: uopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd66"
- ]
- ]
- },
- {
- "input": "&uparrow",
- "description": "Bad named entity: uparrow without a semi-colon",
- "output": [
- [
- "Character",
- "&uparrow"
- ]
- ]
- },
- {
- "input": "&uparrow;",
- "description": "Named entity: uparrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2191"
- ]
- ]
- },
- {
- "input": "&updownarrow",
- "description": "Bad named entity: updownarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&updownarrow"
- ]
- ]
- },
- {
- "input": "&updownarrow;",
- "description": "Named entity: updownarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2195"
- ]
- ]
- },
- {
- "input": "&upharpoonleft",
- "description": "Bad named entity: upharpoonleft without a semi-colon",
- "output": [
- [
- "Character",
- "&upharpoonleft"
- ]
- ]
- },
- {
- "input": "&upharpoonleft;",
- "description": "Named entity: upharpoonleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bf"
- ]
- ]
- },
- {
- "input": "&upharpoonright",
- "description": "Bad named entity: upharpoonright without a semi-colon",
- "output": [
- [
- "Character",
- "&upharpoonright"
- ]
- ]
- },
- {
- "input": "&upharpoonright;",
- "description": "Named entity: upharpoonright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21be"
- ]
- ]
- },
- {
- "input": "&uplus",
- "description": "Bad named entity: uplus without a semi-colon",
- "output": [
- [
- "Character",
- "&uplus"
- ]
- ]
- },
- {
- "input": "&uplus;",
- "description": "Named entity: uplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228e"
- ]
- ]
- },
- {
- "input": "&upsi",
- "description": "Bad named entity: upsi without a semi-colon",
- "output": [
- [
- "Character",
- "&upsi"
- ]
- ]
- },
- {
- "input": "&upsi;",
- "description": "Named entity: upsi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c5"
- ]
- ]
- },
- {
- "input": "&upsih",
- "description": "Bad named entity: upsih without a semi-colon",
- "output": [
- [
- "Character",
- "&upsih"
- ]
- ]
- },
- {
- "input": "&upsih;",
- "description": "Named entity: upsih; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d2"
- ]
- ]
- },
- {
- "input": "&upsilon",
- "description": "Bad named entity: upsilon without a semi-colon",
- "output": [
- [
- "Character",
- "&upsilon"
- ]
- ]
- },
- {
- "input": "&upsilon;",
- "description": "Named entity: upsilon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c5"
- ]
- ]
- },
- {
- "input": "&upuparrows",
- "description": "Bad named entity: upuparrows without a semi-colon",
- "output": [
- [
- "Character",
- "&upuparrows"
- ]
- ]
- },
- {
- "input": "&upuparrows;",
- "description": "Named entity: upuparrows; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c8"
- ]
- ]
- },
- {
- "input": "&urcorn",
- "description": "Bad named entity: urcorn without a semi-colon",
- "output": [
- [
- "Character",
- "&urcorn"
- ]
- ]
- },
- {
- "input": "&urcorn;",
- "description": "Named entity: urcorn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u231d"
- ]
- ]
- },
- {
- "input": "&urcorner",
- "description": "Bad named entity: urcorner without a semi-colon",
- "output": [
- [
- "Character",
- "&urcorner"
- ]
- ]
- },
- {
- "input": "&urcorner;",
- "description": "Named entity: urcorner; with a semi-colon",
- "output": [
- [
- "Character",
- "\u231d"
- ]
- ]
- },
- {
- "input": "&urcrop",
- "description": "Bad named entity: urcrop without a semi-colon",
- "output": [
- [
- "Character",
- "&urcrop"
- ]
- ]
- },
- {
- "input": "&urcrop;",
- "description": "Named entity: urcrop; with a semi-colon",
- "output": [
- [
- "Character",
- "\u230e"
- ]
- ]
- },
- {
- "input": "&uring",
- "description": "Bad named entity: uring without a semi-colon",
- "output": [
- [
- "Character",
- "&uring"
- ]
- ]
- },
- {
- "input": "&uring;",
- "description": "Named entity: uring; with a semi-colon",
- "output": [
- [
- "Character",
- "\u016f"
- ]
- ]
- },
- {
- "input": "&urtri",
- "description": "Bad named entity: urtri without a semi-colon",
- "output": [
- [
- "Character",
- "&urtri"
- ]
- ]
- },
- {
- "input": "&urtri;",
- "description": "Named entity: urtri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25f9"
- ]
- ]
- },
- {
- "input": "&uscr",
- "description": "Bad named entity: uscr without a semi-colon",
- "output": [
- [
- "Character",
- "&uscr"
- ]
- ]
- },
- {
- "input": "&uscr;",
- "description": "Named entity: uscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcca"
- ]
- ]
- },
- {
- "input": "&utdot",
- "description": "Bad named entity: utdot without a semi-colon",
- "output": [
- [
- "Character",
- "&utdot"
- ]
- ]
- },
- {
- "input": "&utdot;",
- "description": "Named entity: utdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f0"
- ]
- ]
- },
- {
- "input": "&utilde",
- "description": "Bad named entity: utilde without a semi-colon",
- "output": [
- [
- "Character",
- "&utilde"
- ]
- ]
- },
- {
- "input": "&utilde;",
- "description": "Named entity: utilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0169"
- ]
- ]
- },
- {
- "input": "&utri",
- "description": "Bad named entity: utri without a semi-colon",
- "output": [
- [
- "Character",
- "&utri"
- ]
- ]
- },
- {
- "input": "&utri;",
- "description": "Named entity: utri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b5"
- ]
- ]
- },
- {
- "input": "&utrif",
- "description": "Bad named entity: utrif without a semi-colon",
- "output": [
- [
- "Character",
- "&utrif"
- ]
- ]
- },
- {
- "input": "&utrif;",
- "description": "Named entity: utrif; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b4"
- ]
- ]
- },
- {
- "input": "&uuarr",
- "description": "Bad named entity: uuarr without a semi-colon",
- "output": [
- [
- "Character",
- "&uuarr"
- ]
- ]
- },
- {
- "input": "&uuarr;",
- "description": "Named entity: uuarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c8"
- ]
- ]
- },
- {
- "input": "&uuml",
- "description": "Named entity: uuml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00fc"
- ]
- ]
- },
- {
- "input": "&uuml;",
- "description": "Named entity: uuml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00fc"
- ]
- ]
- },
- {
- "input": "&uwangle",
- "description": "Bad named entity: uwangle without a semi-colon",
- "output": [
- [
- "Character",
- "&uwangle"
- ]
- ]
- },
- {
- "input": "&uwangle;",
- "description": "Named entity: uwangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29a7"
- ]
- ]
- },
- {
- "input": "&vArr",
- "description": "Bad named entity: vArr without a semi-colon",
- "output": [
- [
- "Character",
- "&vArr"
- ]
- ]
- },
- {
- "input": "&vArr;",
- "description": "Named entity: vArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d5"
- ]
- ]
- },
- {
- "input": "&vBar",
- "description": "Bad named entity: vBar without a semi-colon",
- "output": [
- [
- "Character",
- "&vBar"
- ]
- ]
- },
- {
- "input": "&vBar;",
- "description": "Named entity: vBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ae8"
- ]
- ]
- },
- {
- "input": "&vBarv",
- "description": "Bad named entity: vBarv without a semi-colon",
- "output": [
- [
- "Character",
- "&vBarv"
- ]
- ]
- },
- {
- "input": "&vBarv;",
- "description": "Named entity: vBarv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ae9"
- ]
- ]
- },
- {
- "input": "&vDash",
- "description": "Bad named entity: vDash without a semi-colon",
- "output": [
- [
- "Character",
- "&vDash"
- ]
- ]
- },
- {
- "input": "&vDash;",
- "description": "Named entity: vDash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a8"
- ]
- ]
- },
- {
- "input": "&vangrt",
- "description": "Bad named entity: vangrt without a semi-colon",
- "output": [
- [
- "Character",
- "&vangrt"
- ]
- ]
- },
- {
- "input": "&vangrt;",
- "description": "Named entity: vangrt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u299c"
- ]
- ]
- },
- {
- "input": "&varepsilon",
- "description": "Bad named entity: varepsilon without a semi-colon",
- "output": [
- [
- "Character",
- "&varepsilon"
- ]
- ]
- },
- {
- "input": "&varepsilon;",
- "description": "Named entity: varepsilon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f5"
- ]
- ]
- },
- {
- "input": "&varkappa",
- "description": "Bad named entity: varkappa without a semi-colon",
- "output": [
- [
- "Character",
- "&varkappa"
- ]
- ]
- },
- {
- "input": "&varkappa;",
- "description": "Named entity: varkappa; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f0"
- ]
- ]
- },
- {
- "input": "&varnothing",
- "description": "Bad named entity: varnothing without a semi-colon",
- "output": [
- [
- "Character",
- "&varnothing"
- ]
- ]
- },
- {
- "input": "&varnothing;",
- "description": "Named entity: varnothing; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2205"
- ]
- ]
- },
- {
- "input": "&varphi",
- "description": "Bad named entity: varphi without a semi-colon",
- "output": [
- [
- "Character",
- "&varphi"
- ]
- ]
- },
- {
- "input": "&varphi;",
- "description": "Named entity: varphi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d5"
- ]
- ]
- },
- {
- "input": "&varpi",
- "description": "Bad named entity: varpi without a semi-colon",
- "output": [
- [
- "Character",
- "&varpi"
- ]
- ]
- },
- {
- "input": "&varpi;",
- "description": "Named entity: varpi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d6"
- ]
- ]
- },
- {
- "input": "&varpropto",
- "description": "Bad named entity: varpropto without a semi-colon",
- "output": [
- [
- "Character",
- "&varpropto"
- ]
- ]
- },
- {
- "input": "&varpropto;",
- "description": "Named entity: varpropto; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221d"
- ]
- ]
- },
- {
- "input": "&varr",
- "description": "Bad named entity: varr without a semi-colon",
- "output": [
- [
- "Character",
- "&varr"
- ]
- ]
- },
- {
- "input": "&varr;",
- "description": "Named entity: varr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2195"
- ]
- ]
- },
- {
- "input": "&varrho",
- "description": "Bad named entity: varrho without a semi-colon",
- "output": [
- [
- "Character",
- "&varrho"
- ]
- ]
- },
- {
- "input": "&varrho;",
- "description": "Named entity: varrho; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f1"
- ]
- ]
- },
- {
- "input": "&varsigma",
- "description": "Bad named entity: varsigma without a semi-colon",
- "output": [
- [
- "Character",
- "&varsigma"
- ]
- ]
- },
- {
- "input": "&varsigma;",
- "description": "Named entity: varsigma; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c2"
- ]
- ]
- },
- {
- "input": "&varsubsetneq",
- "description": "Bad named entity: varsubsetneq without a semi-colon",
- "output": [
- [
- "Character",
- "&varsubsetneq"
- ]
- ]
- },
- {
- "input": "&varsubsetneq;",
- "description": "Named entity: varsubsetneq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228a\ufe00"
- ]
- ]
- },
- {
- "input": "&varsubsetneqq",
- "description": "Bad named entity: varsubsetneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&varsubsetneqq"
- ]
- ]
- },
- {
- "input": "&varsubsetneqq;",
- "description": "Named entity: varsubsetneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acb\ufe00"
- ]
- ]
- },
- {
- "input": "&varsupsetneq",
- "description": "Bad named entity: varsupsetneq without a semi-colon",
- "output": [
- [
- "Character",
- "&varsupsetneq"
- ]
- ]
- },
- {
- "input": "&varsupsetneq;",
- "description": "Named entity: varsupsetneq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228b\ufe00"
- ]
- ]
- },
- {
- "input": "&varsupsetneqq",
- "description": "Bad named entity: varsupsetneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&varsupsetneqq"
- ]
- ]
- },
- {
- "input": "&varsupsetneqq;",
- "description": "Named entity: varsupsetneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acc\ufe00"
- ]
- ]
- },
- {
- "input": "&vartheta",
- "description": "Bad named entity: vartheta without a semi-colon",
- "output": [
- [
- "Character",
- "&vartheta"
- ]
- ]
- },
- {
- "input": "&vartheta;",
- "description": "Named entity: vartheta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d1"
- ]
- ]
- },
- {
- "input": "&vartriangleleft",
- "description": "Bad named entity: vartriangleleft without a semi-colon",
- "output": [
- [
- "Character",
- "&vartriangleleft"
- ]
- ]
- },
- {
- "input": "&vartriangleleft;",
- "description": "Named entity: vartriangleleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b2"
- ]
- ]
- },
- {
- "input": "&vartriangleright",
- "description": "Bad named entity: vartriangleright without a semi-colon",
- "output": [
- [
- "Character",
- "&vartriangleright"
- ]
- ]
- },
- {
- "input": "&vartriangleright;",
- "description": "Named entity: vartriangleright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b3"
- ]
- ]
- },
- {
- "input": "&vcy",
- "description": "Bad named entity: vcy without a semi-colon",
- "output": [
- [
- "Character",
- "&vcy"
- ]
- ]
- },
- {
- "input": "&vcy;",
- "description": "Named entity: vcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0432"
- ]
- ]
- },
- {
- "input": "&vdash",
- "description": "Bad named entity: vdash without a semi-colon",
- "output": [
- [
- "Character",
- "&vdash"
- ]
- ]
- },
- {
- "input": "&vdash;",
- "description": "Named entity: vdash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a2"
- ]
- ]
- },
- {
- "input": "&vee",
- "description": "Bad named entity: vee without a semi-colon",
- "output": [
- [
- "Character",
- "&vee"
- ]
- ]
- },
- {
- "input": "&vee;",
- "description": "Named entity: vee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2228"
- ]
- ]
- },
- {
- "input": "&veebar",
- "description": "Bad named entity: veebar without a semi-colon",
- "output": [
- [
- "Character",
- "&veebar"
- ]
- ]
- },
- {
- "input": "&veebar;",
- "description": "Named entity: veebar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22bb"
- ]
- ]
- },
- {
- "input": "&veeeq",
- "description": "Bad named entity: veeeq without a semi-colon",
- "output": [
- [
- "Character",
- "&veeeq"
- ]
- ]
- },
- {
- "input": "&veeeq;",
- "description": "Named entity: veeeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u225a"
- ]
- ]
- },
- {
- "input": "&vellip",
- "description": "Bad named entity: vellip without a semi-colon",
- "output": [
- [
- "Character",
- "&vellip"
- ]
- ]
- },
- {
- "input": "&vellip;",
- "description": "Named entity: vellip; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ee"
- ]
- ]
- },
- {
- "input": "&verbar",
- "description": "Bad named entity: verbar without a semi-colon",
- "output": [
- [
- "Character",
- "&verbar"
- ]
- ]
- },
- {
- "input": "&verbar;",
- "description": "Named entity: verbar; with a semi-colon",
- "output": [
- [
- "Character",
- "|"
- ]
- ]
- },
- {
- "input": "&vert",
- "description": "Bad named entity: vert without a semi-colon",
- "output": [
- [
- "Character",
- "&vert"
- ]
- ]
- },
- {
- "input": "&vert;",
- "description": "Named entity: vert; with a semi-colon",
- "output": [
- [
- "Character",
- "|"
- ]
- ]
- },
- {
- "input": "&vfr",
- "description": "Bad named entity: vfr without a semi-colon",
- "output": [
- [
- "Character",
- "&vfr"
- ]
- ]
- },
- {
- "input": "&vfr;",
- "description": "Named entity: vfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd33"
- ]
- ]
- },
- {
- "input": "&vltri",
- "description": "Bad named entity: vltri without a semi-colon",
- "output": [
- [
- "Character",
- "&vltri"
- ]
- ]
- },
- {
- "input": "&vltri;",
- "description": "Named entity: vltri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b2"
- ]
- ]
- },
- {
- "input": "&vnsub",
- "description": "Bad named entity: vnsub without a semi-colon",
- "output": [
- [
- "Character",
- "&vnsub"
- ]
- ]
- },
- {
- "input": "&vnsub;",
- "description": "Named entity: vnsub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2282\u20d2"
- ]
- ]
- },
- {
- "input": "&vnsup",
- "description": "Bad named entity: vnsup without a semi-colon",
- "output": [
- [
- "Character",
- "&vnsup"
- ]
- ]
- },
- {
- "input": "&vnsup;",
- "description": "Named entity: vnsup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2283\u20d2"
- ]
- ]
- },
- {
- "input": "&vopf",
- "description": "Bad named entity: vopf without a semi-colon",
- "output": [
- [
- "Character",
- "&vopf"
- ]
- ]
- },
- {
- "input": "&vopf;",
- "description": "Named entity: vopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd67"
- ]
- ]
- },
- {
- "input": "&vprop",
- "description": "Bad named entity: vprop without a semi-colon",
- "output": [
- [
- "Character",
- "&vprop"
- ]
- ]
- },
- {
- "input": "&vprop;",
- "description": "Named entity: vprop; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221d"
- ]
- ]
- },
- {
- "input": "&vrtri",
- "description": "Bad named entity: vrtri without a semi-colon",
- "output": [
- [
- "Character",
- "&vrtri"
- ]
- ]
- },
- {
- "input": "&vrtri;",
- "description": "Named entity: vrtri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b3"
- ]
- ]
- },
- {
- "input": "&vscr",
- "description": "Bad named entity: vscr without a semi-colon",
- "output": [
- [
- "Character",
- "&vscr"
- ]
- ]
- },
- {
- "input": "&vscr;",
- "description": "Named entity: vscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udccb"
- ]
- ]
- },
- {
- "input": "&vsubnE",
- "description": "Bad named entity: vsubnE without a semi-colon",
- "output": [
- [
- "Character",
- "&vsubnE"
- ]
- ]
- },
- {
- "input": "&vsubnE;",
- "description": "Named entity: vsubnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acb\ufe00"
- ]
- ]
- },
- {
- "input": "&vsubne",
- "description": "Bad named entity: vsubne without a semi-colon",
- "output": [
- [
- "Character",
- "&vsubne"
- ]
- ]
- },
- {
- "input": "&vsubne;",
- "description": "Named entity: vsubne; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228a\ufe00"
- ]
- ]
- },
- {
- "input": "&vsupnE",
- "description": "Bad named entity: vsupnE without a semi-colon",
- "output": [
- [
- "Character",
- "&vsupnE"
- ]
- ]
- },
- {
- "input": "&vsupnE;",
- "description": "Named entity: vsupnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acc\ufe00"
- ]
- ]
- },
- {
- "input": "&vsupne",
- "description": "Bad named entity: vsupne without a semi-colon",
- "output": [
- [
- "Character",
- "&vsupne"
- ]
- ]
- },
- {
- "input": "&vsupne;",
- "description": "Named entity: vsupne; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228b\ufe00"
- ]
- ]
- },
- {
- "input": "&vzigzag",
- "description": "Bad named entity: vzigzag without a semi-colon",
- "output": [
- [
- "Character",
- "&vzigzag"
- ]
- ]
- },
- {
- "input": "&vzigzag;",
- "description": "Named entity: vzigzag; with a semi-colon",
- "output": [
- [
- "Character",
- "\u299a"
- ]
- ]
- },
- {
- "input": "&wcirc",
- "description": "Bad named entity: wcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&wcirc"
- ]
- ]
- },
- {
- "input": "&wcirc;",
- "description": "Named entity: wcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0175"
- ]
- ]
- },
- {
- "input": "&wedbar",
- "description": "Bad named entity: wedbar without a semi-colon",
- "output": [
- [
- "Character",
- "&wedbar"
- ]
- ]
- },
- {
- "input": "&wedbar;",
- "description": "Named entity: wedbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a5f"
- ]
- ]
- },
- {
- "input": "&wedge",
- "description": "Bad named entity: wedge without a semi-colon",
- "output": [
- [
- "Character",
- "&wedge"
- ]
- ]
- },
- {
- "input": "&wedge;",
- "description": "Named entity: wedge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2227"
- ]
- ]
- },
- {
- "input": "&wedgeq",
- "description": "Bad named entity: wedgeq without a semi-colon",
- "output": [
- [
- "Character",
- "&wedgeq"
- ]
- ]
- },
- {
- "input": "&wedgeq;",
- "description": "Named entity: wedgeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2259"
- ]
- ]
- },
- {
- "input": "&weierp",
- "description": "Bad named entity: weierp without a semi-colon",
- "output": [
- [
- "Character",
- "&weierp"
- ]
- ]
- },
- {
- "input": "&weierp;",
- "description": "Named entity: weierp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2118"
- ]
- ]
- },
- {
- "input": "&wfr",
- "description": "Bad named entity: wfr without a semi-colon",
- "output": [
- [
- "Character",
- "&wfr"
- ]
- ]
- },
- {
- "input": "&wfr;",
- "description": "Named entity: wfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd34"
- ]
- ]
- },
- {
- "input": "&wopf",
- "description": "Bad named entity: wopf without a semi-colon",
- "output": [
- [
- "Character",
- "&wopf"
- ]
- ]
- },
- {
- "input": "&wopf;",
- "description": "Named entity: wopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd68"
- ]
- ]
- },
- {
- "input": "&wp",
- "description": "Bad named entity: wp without a semi-colon",
- "output": [
- [
- "Character",
- "&wp"
- ]
- ]
- },
- {
- "input": "&wp;",
- "description": "Named entity: wp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2118"
- ]
- ]
- },
- {
- "input": "&wr",
- "description": "Bad named entity: wr without a semi-colon",
- "output": [
- [
- "Character",
- "&wr"
- ]
- ]
- },
- {
- "input": "&wr;",
- "description": "Named entity: wr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2240"
- ]
- ]
- },
- {
- "input": "&wreath",
- "description": "Bad named entity: wreath without a semi-colon",
- "output": [
- [
- "Character",
- "&wreath"
- ]
- ]
- },
- {
- "input": "&wreath;",
- "description": "Named entity: wreath; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2240"
- ]
- ]
- },
- {
- "input": "&wscr",
- "description": "Bad named entity: wscr without a semi-colon",
- "output": [
- [
- "Character",
- "&wscr"
- ]
- ]
- },
- {
- "input": "&wscr;",
- "description": "Named entity: wscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udccc"
- ]
- ]
- },
- {
- "input": "&xcap",
- "description": "Bad named entity: xcap without a semi-colon",
- "output": [
- [
- "Character",
- "&xcap"
- ]
- ]
- },
- {
- "input": "&xcap;",
- "description": "Named entity: xcap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c2"
- ]
- ]
- },
- {
- "input": "&xcirc",
- "description": "Bad named entity: xcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&xcirc"
- ]
- ]
- },
- {
- "input": "&xcirc;",
- "description": "Named entity: xcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25ef"
- ]
- ]
- },
- {
- "input": "&xcup",
- "description": "Bad named entity: xcup without a semi-colon",
- "output": [
- [
- "Character",
- "&xcup"
- ]
- ]
- },
- {
- "input": "&xcup;",
- "description": "Named entity: xcup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c3"
- ]
- ]
- },
- {
- "input": "&xdtri",
- "description": "Bad named entity: xdtri without a semi-colon",
- "output": [
- [
- "Character",
- "&xdtri"
- ]
- ]
- },
- {
- "input": "&xdtri;",
- "description": "Named entity: xdtri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25bd"
- ]
- ]
- },
- {
- "input": "&xfr",
- "description": "Bad named entity: xfr without a semi-colon",
- "output": [
- [
- "Character",
- "&xfr"
- ]
- ]
- },
- {
- "input": "&xfr;",
- "description": "Named entity: xfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd35"
- ]
- ]
- },
- {
- "input": "&xhArr",
- "description": "Bad named entity: xhArr without a semi-colon",
- "output": [
- [
- "Character",
- "&xhArr"
- ]
- ]
- },
- {
- "input": "&xhArr;",
- "description": "Named entity: xhArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27fa"
- ]
- ]
- },
- {
- "input": "&xharr",
- "description": "Bad named entity: xharr without a semi-colon",
- "output": [
- [
- "Character",
- "&xharr"
- ]
- ]
- },
- {
- "input": "&xharr;",
- "description": "Named entity: xharr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f7"
- ]
- ]
- },
- {
- "input": "&xi",
- "description": "Bad named entity: xi without a semi-colon",
- "output": [
- [
- "Character",
- "&xi"
- ]
- ]
- },
- {
- "input": "&xi;",
- "description": "Named entity: xi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03be"
- ]
- ]
- },
- {
- "input": "&xlArr",
- "description": "Bad named entity: xlArr without a semi-colon",
- "output": [
- [
- "Character",
- "&xlArr"
- ]
- ]
- },
- {
- "input": "&xlArr;",
- "description": "Named entity: xlArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f8"
- ]
- ]
- },
- {
- "input": "&xlarr",
- "description": "Bad named entity: xlarr without a semi-colon",
- "output": [
- [
- "Character",
- "&xlarr"
- ]
- ]
- },
- {
- "input": "&xlarr;",
- "description": "Named entity: xlarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f5"
- ]
- ]
- },
- {
- "input": "&xmap",
- "description": "Bad named entity: xmap without a semi-colon",
- "output": [
- [
- "Character",
- "&xmap"
- ]
- ]
- },
- {
- "input": "&xmap;",
- "description": "Named entity: xmap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27fc"
- ]
- ]
- },
- {
- "input": "&xnis",
- "description": "Bad named entity: xnis without a semi-colon",
- "output": [
- [
- "Character",
- "&xnis"
- ]
- ]
- },
- {
- "input": "&xnis;",
- "description": "Named entity: xnis; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22fb"
- ]
- ]
- },
- {
- "input": "&xodot",
- "description": "Bad named entity: xodot without a semi-colon",
- "output": [
- [
- "Character",
- "&xodot"
- ]
- ]
- },
- {
- "input": "&xodot;",
- "description": "Named entity: xodot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a00"
- ]
- ]
- },
- {
- "input": "&xopf",
- "description": "Bad named entity: xopf without a semi-colon",
- "output": [
- [
- "Character",
- "&xopf"
- ]
- ]
- },
- {
- "input": "&xopf;",
- "description": "Named entity: xopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd69"
- ]
- ]
- },
- {
- "input": "&xoplus",
- "description": "Bad named entity: xoplus without a semi-colon",
- "output": [
- [
- "Character",
- "&xoplus"
- ]
- ]
- },
- {
- "input": "&xoplus;",
- "description": "Named entity: xoplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a01"
- ]
- ]
- },
- {
- "input": "&xotime",
- "description": "Bad named entity: xotime without a semi-colon",
- "output": [
- [
- "Character",
- "&xotime"
- ]
- ]
- },
- {
- "input": "&xotime;",
- "description": "Named entity: xotime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a02"
- ]
- ]
- },
- {
- "input": "&xrArr",
- "description": "Bad named entity: xrArr without a semi-colon",
- "output": [
- [
- "Character",
- "&xrArr"
- ]
- ]
- },
- {
- "input": "&xrArr;",
- "description": "Named entity: xrArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f9"
- ]
- ]
- },
- {
- "input": "&xrarr",
- "description": "Bad named entity: xrarr without a semi-colon",
- "output": [
- [
- "Character",
- "&xrarr"
- ]
- ]
- },
- {
- "input": "&xrarr;",
- "description": "Named entity: xrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f6"
- ]
- ]
- },
- {
- "input": "&xscr",
- "description": "Bad named entity: xscr without a semi-colon",
- "output": [
- [
- "Character",
- "&xscr"
- ]
- ]
- },
- {
- "input": "&xscr;",
- "description": "Named entity: xscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udccd"
- ]
- ]
- },
- {
- "input": "&xsqcup",
- "description": "Bad named entity: xsqcup without a semi-colon",
- "output": [
- [
- "Character",
- "&xsqcup"
- ]
- ]
- },
- {
- "input": "&xsqcup;",
- "description": "Named entity: xsqcup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a06"
- ]
- ]
- },
- {
- "input": "&xuplus",
- "description": "Bad named entity: xuplus without a semi-colon",
- "output": [
- [
- "Character",
- "&xuplus"
- ]
- ]
- },
- {
- "input": "&xuplus;",
- "description": "Named entity: xuplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a04"
- ]
- ]
- },
- {
- "input": "&xutri",
- "description": "Bad named entity: xutri without a semi-colon",
- "output": [
- [
- "Character",
- "&xutri"
- ]
- ]
- },
- {
- "input": "&xutri;",
- "description": "Named entity: xutri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b3"
- ]
- ]
- },
- {
- "input": "&xvee",
- "description": "Bad named entity: xvee without a semi-colon",
- "output": [
- [
- "Character",
- "&xvee"
- ]
- ]
- },
- {
- "input": "&xvee;",
- "description": "Named entity: xvee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c1"
- ]
- ]
- },
- {
- "input": "&xwedge",
- "description": "Bad named entity: xwedge without a semi-colon",
- "output": [
- [
- "Character",
- "&xwedge"
- ]
- ]
- },
- {
- "input": "&xwedge;",
- "description": "Named entity: xwedge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c0"
- ]
- ]
- },
- {
- "input": "&yacute",
- "description": "Named entity: yacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00fd"
- ]
- ]
- },
- {
- "input": "&yacute;",
- "description": "Named entity: yacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00fd"
- ]
- ]
- },
- {
- "input": "&yacy",
- "description": "Bad named entity: yacy without a semi-colon",
- "output": [
- [
- "Character",
- "&yacy"
- ]
- ]
- },
- {
- "input": "&yacy;",
- "description": "Named entity: yacy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u044f"
- ]
- ]
- },
- {
- "input": "&ycirc",
- "description": "Bad named entity: ycirc without a semi-colon",
- "output": [
- [
- "Character",
- "&ycirc"
- ]
- ]
- },
- {
- "input": "&ycirc;",
- "description": "Named entity: ycirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0177"
- ]
- ]
- },
- {
- "input": "&ycy",
- "description": "Bad named entity: ycy without a semi-colon",
- "output": [
- [
- "Character",
- "&ycy"
- ]
- ]
- },
- {
- "input": "&ycy;",
- "description": "Named entity: ycy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u044b"
- ]
- ]
- },
- {
- "input": "&yen",
- "description": "Named entity: yen without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a5"
- ]
- ]
- },
- {
- "input": "&yen;",
- "description": "Named entity: yen; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a5"
- ]
- ]
- },
- {
- "input": "&yfr",
- "description": "Bad named entity: yfr without a semi-colon",
- "output": [
- [
- "Character",
- "&yfr"
- ]
- ]
- },
- {
- "input": "&yfr;",
- "description": "Named entity: yfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd36"
- ]
- ]
- },
- {
- "input": "&yicy",
- "description": "Bad named entity: yicy without a semi-colon",
- "output": [
- [
- "Character",
- "&yicy"
- ]
- ]
- },
- {
- "input": "&yicy;",
- "description": "Named entity: yicy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0457"
- ]
- ]
- },
- {
- "input": "&yopf",
- "description": "Bad named entity: yopf without a semi-colon",
- "output": [
- [
- "Character",
- "&yopf"
- ]
- ]
- },
- {
- "input": "&yopf;",
- "description": "Named entity: yopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd6a"
- ]
- ]
- },
- {
- "input": "&yscr",
- "description": "Bad named entity: yscr without a semi-colon",
- "output": [
- [
- "Character",
- "&yscr"
- ]
- ]
- },
- {
- "input": "&yscr;",
- "description": "Named entity: yscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcce"
- ]
- ]
- },
- {
- "input": "&yucy",
- "description": "Bad named entity: yucy without a semi-colon",
- "output": [
- [
- "Character",
- "&yucy"
- ]
- ]
- },
- {
- "input": "&yucy;",
- "description": "Named entity: yucy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u044e"
- ]
- ]
- },
- {
- "input": "&yuml",
- "description": "Named entity: yuml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ff"
- ]
- ]
- },
- {
- "input": "&yuml;",
- "description": "Named entity: yuml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ff"
- ]
- ]
- },
- {
- "input": "&zacute",
- "description": "Bad named entity: zacute without a semi-colon",
- "output": [
- [
- "Character",
- "&zacute"
- ]
- ]
- },
- {
- "input": "&zacute;",
- "description": "Named entity: zacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u017a"
- ]
- ]
- },
- {
- "input": "&zcaron",
- "description": "Bad named entity: zcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&zcaron"
- ]
- ]
- },
- {
- "input": "&zcaron;",
- "description": "Named entity: zcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u017e"
- ]
- ]
- },
- {
- "input": "&zcy",
- "description": "Bad named entity: zcy without a semi-colon",
- "output": [
- [
- "Character",
- "&zcy"
- ]
- ]
- },
- {
- "input": "&zcy;",
- "description": "Named entity: zcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0437"
- ]
- ]
- },
- {
- "input": "&zdot",
- "description": "Bad named entity: zdot without a semi-colon",
- "output": [
- [
- "Character",
- "&zdot"
- ]
- ]
- },
- {
- "input": "&zdot;",
- "description": "Named entity: zdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u017c"
- ]
- ]
- },
- {
- "input": "&zeetrf",
- "description": "Bad named entity: zeetrf without a semi-colon",
- "output": [
- [
- "Character",
- "&zeetrf"
- ]
- ]
- },
- {
- "input": "&zeetrf;",
- "description": "Named entity: zeetrf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2128"
- ]
- ]
- },
- {
- "input": "&zeta",
- "description": "Bad named entity: zeta without a semi-colon",
- "output": [
- [
- "Character",
- "&zeta"
- ]
- ]
- },
- {
- "input": "&zeta;",
- "description": "Named entity: zeta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b6"
- ]
- ]
- },
- {
- "input": "&zfr",
- "description": "Bad named entity: zfr without a semi-colon",
- "output": [
- [
- "Character",
- "&zfr"
- ]
- ]
- },
- {
- "input": "&zfr;",
- "description": "Named entity: zfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd37"
- ]
- ]
- },
- {
- "input": "&zhcy",
- "description": "Bad named entity: zhcy without a semi-colon",
- "output": [
- [
- "Character",
- "&zhcy"
- ]
- ]
- },
- {
- "input": "&zhcy;",
- "description": "Named entity: zhcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0436"
- ]
- ]
- },
- {
- "input": "&zigrarr",
- "description": "Bad named entity: zigrarr without a semi-colon",
- "output": [
- [
- "Character",
- "&zigrarr"
- ]
- ]
- },
- {
- "input": "&zigrarr;",
- "description": "Named entity: zigrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21dd"
- ]
- ]
- },
- {
- "input": "&zopf",
- "description": "Bad named entity: zopf without a semi-colon",
- "output": [
- [
- "Character",
- "&zopf"
- ]
- ]
- },
- {
- "input": "&zopf;",
- "description": "Named entity: zopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd6b"
- ]
- ]
- },
- {
- "input": "&zscr",
- "description": "Bad named entity: zscr without a semi-colon",
- "output": [
- [
- "Character",
- "&zscr"
- ]
- ]
- },
- {
- "input": "&zscr;",
- "description": "Named entity: zscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udccf"
- ]
- ]
- },
- {
- "input": "&zwj",
- "description": "Bad named entity: zwj without a semi-colon",
- "output": [
- [
- "Character",
- "&zwj"
- ]
- ]
- },
- {
- "input": "&zwj;",
- "description": "Named entity: zwj; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200d"
- ]
- ]
- },
- {
- "input": "&zwnj",
- "description": "Bad named entity: zwnj without a semi-colon",
- "output": [
- [
- "Character",
- "&zwnj"
- ]
- ]
- },
- {
- "input": "&zwnj;",
- "description": "Named entity: zwnj; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200c"
- ]
- ]
- }
- ]
-} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/numericEntities.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/numericEntities.test
deleted file mode 100644
index 36c82281cd9..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/numericEntities.test
+++ /dev/null
@@ -1,1313 +0,0 @@
-{"tests": [
-
-{"description": "Invalid numeric entity character U+0000",
-"input": "&#x0000;",
-"output": ["ParseError", ["Character", "\uFFFD"]]},
-
-{"description": "Invalid numeric entity character U+0001",
-"input": "&#x0001;",
-"output": ["ParseError", ["Character", "\u0001"]]},
-
-{"description": "Invalid numeric entity character U+0002",
-"input": "&#x0002;",
-"output": ["ParseError", ["Character", "\u0002"]]},
-
-{"description": "Invalid numeric entity character U+0003",
-"input": "&#x0003;",
-"output": ["ParseError", ["Character", "\u0003"]]},
-
-{"description": "Invalid numeric entity character U+0004",
-"input": "&#x0004;",
-"output": ["ParseError", ["Character", "\u0004"]]},
-
-{"description": "Invalid numeric entity character U+0005",
-"input": "&#x0005;",
-"output": ["ParseError", ["Character", "\u0005"]]},
-
-{"description": "Invalid numeric entity character U+0006",
-"input": "&#x0006;",
-"output": ["ParseError", ["Character", "\u0006"]]},
-
-{"description": "Invalid numeric entity character U+0007",
-"input": "&#x0007;",
-"output": ["ParseError", ["Character", "\u0007"]]},
-
-{"description": "Invalid numeric entity character U+0008",
-"input": "&#x0008;",
-"output": ["ParseError", ["Character", "\u0008"]]},
-
-{"description": "Invalid numeric entity character U+000B",
-"input": "&#x000b;",
-"output": ["ParseError", ["Character", "\u000b"]]},
-
-{"description": "Invalid numeric entity character U+000E",
-"input": "&#x000e;",
-"output": ["ParseError", ["Character", "\u000e"]]},
-
-{"description": "Invalid numeric entity character U+000F",
-"input": "&#x000f;",
-"output": ["ParseError", ["Character", "\u000f"]]},
-
-{"description": "Invalid numeric entity character U+0010",
-"input": "&#x0010;",
-"output": ["ParseError", ["Character", "\u0010"]]},
-
-{"description": "Invalid numeric entity character U+0011",
-"input": "&#x0011;",
-"output": ["ParseError", ["Character", "\u0011"]]},
-
-{"description": "Invalid numeric entity character U+0012",
-"input": "&#x0012;",
-"output": ["ParseError", ["Character", "\u0012"]]},
-
-{"description": "Invalid numeric entity character U+0013",
-"input": "&#x0013;",
-"output": ["ParseError", ["Character", "\u0013"]]},
-
-{"description": "Invalid numeric entity character U+0014",
-"input": "&#x0014;",
-"output": ["ParseError", ["Character", "\u0014"]]},
-
-{"description": "Invalid numeric entity character U+0015",
-"input": "&#x0015;",
-"output": ["ParseError", ["Character", "\u0015"]]},
-
-{"description": "Invalid numeric entity character U+0016",
-"input": "&#x0016;",
-"output": ["ParseError", ["Character", "\u0016"]]},
-
-{"description": "Invalid numeric entity character U+0017",
-"input": "&#x0017;",
-"output": ["ParseError", ["Character", "\u0017"]]},
-
-{"description": "Invalid numeric entity character U+0018",
-"input": "&#x0018;",
-"output": ["ParseError", ["Character", "\u0018"]]},
-
-{"description": "Invalid numeric entity character U+0019",
-"input": "&#x0019;",
-"output": ["ParseError", ["Character", "\u0019"]]},
-
-{"description": "Invalid numeric entity character U+001A",
-"input": "&#x001a;",
-"output": ["ParseError", ["Character", "\u001a"]]},
-
-{"description": "Invalid numeric entity character U+001B",
-"input": "&#x001b;",
-"output": ["ParseError", ["Character", "\u001b"]]},
-
-{"description": "Invalid numeric entity character U+001C",
-"input": "&#x001c;",
-"output": ["ParseError", ["Character", "\u001c"]]},
-
-{"description": "Invalid numeric entity character U+001D",
-"input": "&#x001d;",
-"output": ["ParseError", ["Character", "\u001d"]]},
-
-{"description": "Invalid numeric entity character U+001E",
-"input": "&#x001e;",
-"output": ["ParseError", ["Character", "\u001e"]]},
-
-{"description": "Invalid numeric entity character U+001F",
-"input": "&#x001f;",
-"output": ["ParseError", ["Character", "\u001f"]]},
-
-{"description": "Invalid numeric entity character U+007F",
-"input": "&#x007f;",
-"output": ["ParseError", ["Character", "\u007f"]]},
-
-{"description": "Invalid numeric entity character U+D800",
-"input": "&#xd800;",
-"output": ["ParseError", ["Character", "\uFFFD"]]},
-
-{"description": "Invalid numeric entity character U+DFFF",
-"input": "&#xdfff;",
-"output": ["ParseError", ["Character", "\uFFFD"]]},
-
-{"description": "Invalid numeric entity character U+FDD0",
-"input": "&#xfdd0;",
-"output": ["ParseError", ["Character", "\ufdd0"]]},
-
-{"description": "Invalid numeric entity character U+FDD1",
-"input": "&#xfdd1;",
-"output": ["ParseError", ["Character", "\ufdd1"]]},
-
-{"description": "Invalid numeric entity character U+FDD2",
-"input": "&#xfdd2;",
-"output": ["ParseError", ["Character", "\ufdd2"]]},
-
-{"description": "Invalid numeric entity character U+FDD3",
-"input": "&#xfdd3;",
-"output": ["ParseError", ["Character", "\ufdd3"]]},
-
-{"description": "Invalid numeric entity character U+FDD4",
-"input": "&#xfdd4;",
-"output": ["ParseError", ["Character", "\ufdd4"]]},
-
-{"description": "Invalid numeric entity character U+FDD5",
-"input": "&#xfdd5;",
-"output": ["ParseError", ["Character", "\ufdd5"]]},
-
-{"description": "Invalid numeric entity character U+FDD6",
-"input": "&#xfdd6;",
-"output": ["ParseError", ["Character", "\ufdd6"]]},
-
-{"description": "Invalid numeric entity character U+FDD7",
-"input": "&#xfdd7;",
-"output": ["ParseError", ["Character", "\ufdd7"]]},
-
-{"description": "Invalid numeric entity character U+FDD8",
-"input": "&#xfdd8;",
-"output": ["ParseError", ["Character", "\ufdd8"]]},
-
-{"description": "Invalid numeric entity character U+FDD9",
-"input": "&#xfdd9;",
-"output": ["ParseError", ["Character", "\ufdd9"]]},
-
-{"description": "Invalid numeric entity character U+FDDA",
-"input": "&#xfdda;",
-"output": ["ParseError", ["Character", "\ufdda"]]},
-
-{"description": "Invalid numeric entity character U+FDDB",
-"input": "&#xfddb;",
-"output": ["ParseError", ["Character", "\ufddb"]]},
-
-{"description": "Invalid numeric entity character U+FDDC",
-"input": "&#xfddc;",
-"output": ["ParseError", ["Character", "\ufddc"]]},
-
-{"description": "Invalid numeric entity character U+FDDD",
-"input": "&#xfddd;",
-"output": ["ParseError", ["Character", "\ufddd"]]},
-
-{"description": "Invalid numeric entity character U+FDDE",
-"input": "&#xfdde;",
-"output": ["ParseError", ["Character", "\ufdde"]]},
-
-{"description": "Invalid numeric entity character U+FDDF",
-"input": "&#xfddf;",
-"output": ["ParseError", ["Character", "\ufddf"]]},
-
-{"description": "Invalid numeric entity character U+FDE0",
-"input": "&#xfde0;",
-"output": ["ParseError", ["Character", "\ufde0"]]},
-
-{"description": "Invalid numeric entity character U+FDE1",
-"input": "&#xfde1;",
-"output": ["ParseError", ["Character", "\ufde1"]]},
-
-{"description": "Invalid numeric entity character U+FDE2",
-"input": "&#xfde2;",
-"output": ["ParseError", ["Character", "\ufde2"]]},
-
-{"description": "Invalid numeric entity character U+FDE3",
-"input": "&#xfde3;",
-"output": ["ParseError", ["Character", "\ufde3"]]},
-
-{"description": "Invalid numeric entity character U+FDE4",
-"input": "&#xfde4;",
-"output": ["ParseError", ["Character", "\ufde4"]]},
-
-{"description": "Invalid numeric entity character U+FDE5",
-"input": "&#xfde5;",
-"output": ["ParseError", ["Character", "\ufde5"]]},
-
-{"description": "Invalid numeric entity character U+FDE6",
-"input": "&#xfde6;",
-"output": ["ParseError", ["Character", "\ufde6"]]},
-
-{"description": "Invalid numeric entity character U+FDE7",
-"input": "&#xfde7;",
-"output": ["ParseError", ["Character", "\ufde7"]]},
-
-{"description": "Invalid numeric entity character U+FDE8",
-"input": "&#xfde8;",
-"output": ["ParseError", ["Character", "\ufde8"]]},
-
-{"description": "Invalid numeric entity character U+FDE9",
-"input": "&#xfde9;",
-"output": ["ParseError", ["Character", "\ufde9"]]},
-
-{"description": "Invalid numeric entity character U+FDEA",
-"input": "&#xfdea;",
-"output": ["ParseError", ["Character", "\ufdea"]]},
-
-{"description": "Invalid numeric entity character U+FDEB",
-"input": "&#xfdeb;",
-"output": ["ParseError", ["Character", "\ufdeb"]]},
-
-{"description": "Invalid numeric entity character U+FDEC",
-"input": "&#xfdec;",
-"output": ["ParseError", ["Character", "\ufdec"]]},
-
-{"description": "Invalid numeric entity character U+FDED",
-"input": "&#xfded;",
-"output": ["ParseError", ["Character", "\ufded"]]},
-
-{"description": "Invalid numeric entity character U+FDEE",
-"input": "&#xfdee;",
-"output": ["ParseError", ["Character", "\ufdee"]]},
-
-{"description": "Invalid numeric entity character U+FDEF",
-"input": "&#xfdef;",
-"output": ["ParseError", ["Character", "\ufdef"]]},
-
-{"description": "Invalid numeric entity character U+FFFE",
-"input": "&#xfffe;",
-"output": ["ParseError", ["Character", "\ufffe"]]},
-
-{"description": "Invalid numeric entity character U+FFFF",
-"input": "&#xffff;",
-"output": ["ParseError", ["Character", "\uffff"]]},
-
-{"description": "Invalid numeric entity character U+1FFFE",
-"input": "&#x1fffe;",
-"output": ["ParseError", ["Character", "\uD83F\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+1FFFF",
-"input": "&#x1ffff;",
-"output": ["ParseError", ["Character", "\uD83F\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+2FFFE",
-"input": "&#x2fffe;",
-"output": ["ParseError", ["Character", "\uD87F\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+2FFFF",
-"input": "&#x2ffff;",
-"output": ["ParseError", ["Character", "\uD87F\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+3FFFE",
-"input": "&#x3fffe;",
-"output": ["ParseError", ["Character", "\uD8BF\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+3FFFF",
-"input": "&#x3ffff;",
-"output": ["ParseError", ["Character", "\uD8BF\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+4FFFE",
-"input": "&#x4fffe;",
-"output": ["ParseError", ["Character", "\uD8FF\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+4FFFF",
-"input": "&#x4ffff;",
-"output": ["ParseError", ["Character", "\uD8FF\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+5FFFE",
-"input": "&#x5fffe;",
-"output": ["ParseError", ["Character", "\uD93F\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+5FFFF",
-"input": "&#x5ffff;",
-"output": ["ParseError", ["Character", "\uD93F\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+6FFFE",
-"input": "&#x6fffe;",
-"output": ["ParseError", ["Character", "\uD97F\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+6FFFF",
-"input": "&#x6ffff;",
-"output": ["ParseError", ["Character", "\uD97F\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+7FFFE",
-"input": "&#x7fffe;",
-"output": ["ParseError", ["Character", "\uD9BF\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+7FFFF",
-"input": "&#x7ffff;",
-"output": ["ParseError", ["Character", "\uD9BF\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+8FFFE",
-"input": "&#x8fffe;",
-"output": ["ParseError", ["Character", "\uD9FF\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+8FFFF",
-"input": "&#x8ffff;",
-"output": ["ParseError", ["Character", "\uD9FF\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+9FFFE",
-"input": "&#x9fffe;",
-"output": ["ParseError", ["Character", "\uDA3F\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+9FFFF",
-"input": "&#x9ffff;",
-"output": ["ParseError", ["Character", "\uDA3F\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+AFFFE",
-"input": "&#xafffe;",
-"output": ["ParseError", ["Character", "\uDA7F\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+AFFFF",
-"input": "&#xaffff;",
-"output": ["ParseError", ["Character", "\uDA7F\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+BFFFE",
-"input": "&#xbfffe;",
-"output": ["ParseError", ["Character", "\uDABF\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+BFFFF",
-"input": "&#xbffff;",
-"output": ["ParseError", ["Character", "\uDABF\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+CFFFE",
-"input": "&#xcfffe;",
-"output": ["ParseError", ["Character", "\uDAFF\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+CFFFF",
-"input": "&#xcffff;",
-"output": ["ParseError", ["Character", "\uDAFF\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+DFFFE",
-"input": "&#xdfffe;",
-"output": ["ParseError", ["Character", "\uDB3F\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+DFFFF",
-"input": "&#xdffff;",
-"output": ["ParseError", ["Character", "\uDB3F\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+EFFFE",
-"input": "&#xefffe;",
-"output": ["ParseError", ["Character", "\uDB7F\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+EFFFF",
-"input": "&#xeffff;",
-"output": ["ParseError", ["Character", "\uDB7F\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+FFFFE",
-"input": "&#xffffe;",
-"output": ["ParseError", ["Character", "\uDBBF\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+FFFFF",
-"input": "&#xfffff;",
-"output": ["ParseError", ["Character", "\uDBBF\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+10FFFE",
-"input": "&#x10fffe;",
-"output": ["ParseError", ["Character", "\uDBFF\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+10FFFF",
-"input": "&#x10ffff;",
-"output": ["ParseError", ["Character", "\uDBFF\uDFFF"]]},
-
-{"description": "Valid numeric entity character U+0009",
-"input": "&#x0009;",
-"output": [["Character", "\u0009"]]},
-
-{"description": "Valid numeric entity character U+000A",
-"input": "&#x000a;",
-"output": [["Character", "\u000A"]]},
-
-{"description": "Valid numeric entity character U+0020",
-"input": "&#x0020;",
-"output": [["Character", "\u0020"]]},
-
-{"description": "Valid numeric entity character U+0021",
-"input": "&#x0021;",
-"output": [["Character", "\u0021"]]},
-
-{"description": "Valid numeric entity character U+0022",
-"input": "&#x0022;",
-"output": [["Character", "\u0022"]]},
-
-{"description": "Valid numeric entity character U+0023",
-"input": "&#x0023;",
-"output": [["Character", "\u0023"]]},
-
-{"description": "Valid numeric entity character U+0024",
-"input": "&#x0024;",
-"output": [["Character", "\u0024"]]},
-
-{"description": "Valid numeric entity character U+0025",
-"input": "&#x0025;",
-"output": [["Character", "\u0025"]]},
-
-{"description": "Valid numeric entity character U+0026",
-"input": "&#x0026;",
-"output": [["Character", "\u0026"]]},
-
-{"description": "Valid numeric entity character U+0027",
-"input": "&#x0027;",
-"output": [["Character", "\u0027"]]},
-
-{"description": "Valid numeric entity character U+0028",
-"input": "&#x0028;",
-"output": [["Character", "\u0028"]]},
-
-{"description": "Valid numeric entity character U+0029",
-"input": "&#x0029;",
-"output": [["Character", "\u0029"]]},
-
-{"description": "Valid numeric entity character U+002A",
-"input": "&#x002a;",
-"output": [["Character", "\u002A"]]},
-
-{"description": "Valid numeric entity character U+002B",
-"input": "&#x002b;",
-"output": [["Character", "\u002B"]]},
-
-{"description": "Valid numeric entity character U+002C",
-"input": "&#x002c;",
-"output": [["Character", "\u002C"]]},
-
-{"description": "Valid numeric entity character U+002D",
-"input": "&#x002d;",
-"output": [["Character", "\u002D"]]},
-
-{"description": "Valid numeric entity character U+002E",
-"input": "&#x002e;",
-"output": [["Character", "\u002E"]]},
-
-{"description": "Valid numeric entity character U+002F",
-"input": "&#x002f;",
-"output": [["Character", "\u002F"]]},
-
-{"description": "Valid numeric entity character U+0030",
-"input": "&#x0030;",
-"output": [["Character", "\u0030"]]},
-
-{"description": "Valid numeric entity character U+0031",
-"input": "&#x0031;",
-"output": [["Character", "\u0031"]]},
-
-{"description": "Valid numeric entity character U+0032",
-"input": "&#x0032;",
-"output": [["Character", "\u0032"]]},
-
-{"description": "Valid numeric entity character U+0033",
-"input": "&#x0033;",
-"output": [["Character", "\u0033"]]},
-
-{"description": "Valid numeric entity character U+0034",
-"input": "&#x0034;",
-"output": [["Character", "\u0034"]]},
-
-{"description": "Valid numeric entity character U+0035",
-"input": "&#x0035;",
-"output": [["Character", "\u0035"]]},
-
-{"description": "Valid numeric entity character U+0036",
-"input": "&#x0036;",
-"output": [["Character", "\u0036"]]},
-
-{"description": "Valid numeric entity character U+0037",
-"input": "&#x0037;",
-"output": [["Character", "\u0037"]]},
-
-{"description": "Valid numeric entity character U+0038",
-"input": "&#x0038;",
-"output": [["Character", "\u0038"]]},
-
-{"description": "Valid numeric entity character U+0039",
-"input": "&#x0039;",
-"output": [["Character", "\u0039"]]},
-
-{"description": "Valid numeric entity character U+003A",
-"input": "&#x003a;",
-"output": [["Character", "\u003A"]]},
-
-{"description": "Valid numeric entity character U+003B",
-"input": "&#x003b;",
-"output": [["Character", "\u003B"]]},
-
-{"description": "Valid numeric entity character U+003C",
-"input": "&#x003c;",
-"output": [["Character", "\u003C"]]},
-
-{"description": "Valid numeric entity character U+003D",
-"input": "&#x003d;",
-"output": [["Character", "\u003D"]]},
-
-{"description": "Valid numeric entity character U+003E",
-"input": "&#x003e;",
-"output": [["Character", "\u003E"]]},
-
-{"description": "Valid numeric entity character U+003F",
-"input": "&#x003f;",
-"output": [["Character", "\u003F"]]},
-
-{"description": "Valid numeric entity character U+0040",
-"input": "&#x0040;",
-"output": [["Character", "\u0040"]]},
-
-{"description": "Valid numeric entity character U+0041",
-"input": "&#x0041;",
-"output": [["Character", "\u0041"]]},
-
-{"description": "Valid numeric entity character U+0042",
-"input": "&#x0042;",
-"output": [["Character", "\u0042"]]},
-
-{"description": "Valid numeric entity character U+0043",
-"input": "&#x0043;",
-"output": [["Character", "\u0043"]]},
-
-{"description": "Valid numeric entity character U+0044",
-"input": "&#x0044;",
-"output": [["Character", "\u0044"]]},
-
-{"description": "Valid numeric entity character U+0045",
-"input": "&#x0045;",
-"output": [["Character", "\u0045"]]},
-
-{"description": "Valid numeric entity character U+0046",
-"input": "&#x0046;",
-"output": [["Character", "\u0046"]]},
-
-{"description": "Valid numeric entity character U+0047",
-"input": "&#x0047;",
-"output": [["Character", "\u0047"]]},
-
-{"description": "Valid numeric entity character U+0048",
-"input": "&#x0048;",
-"output": [["Character", "\u0048"]]},
-
-{"description": "Valid numeric entity character U+0049",
-"input": "&#x0049;",
-"output": [["Character", "\u0049"]]},
-
-{"description": "Valid numeric entity character U+004A",
-"input": "&#x004a;",
-"output": [["Character", "\u004A"]]},
-
-{"description": "Valid numeric entity character U+004B",
-"input": "&#x004b;",
-"output": [["Character", "\u004B"]]},
-
-{"description": "Valid numeric entity character U+004C",
-"input": "&#x004c;",
-"output": [["Character", "\u004C"]]},
-
-{"description": "Valid numeric entity character U+004D",
-"input": "&#x004d;",
-"output": [["Character", "\u004D"]]},
-
-{"description": "Valid numeric entity character U+004E",
-"input": "&#x004e;",
-"output": [["Character", "\u004E"]]},
-
-{"description": "Valid numeric entity character U+004F",
-"input": "&#x004f;",
-"output": [["Character", "\u004F"]]},
-
-{"description": "Valid numeric entity character U+0050",
-"input": "&#x0050;",
-"output": [["Character", "\u0050"]]},
-
-{"description": "Valid numeric entity character U+0051",
-"input": "&#x0051;",
-"output": [["Character", "\u0051"]]},
-
-{"description": "Valid numeric entity character U+0052",
-"input": "&#x0052;",
-"output": [["Character", "\u0052"]]},
-
-{"description": "Valid numeric entity character U+0053",
-"input": "&#x0053;",
-"output": [["Character", "\u0053"]]},
-
-{"description": "Valid numeric entity character U+0054",
-"input": "&#x0054;",
-"output": [["Character", "\u0054"]]},
-
-{"description": "Valid numeric entity character U+0055",
-"input": "&#x0055;",
-"output": [["Character", "\u0055"]]},
-
-{"description": "Valid numeric entity character U+0056",
-"input": "&#x0056;",
-"output": [["Character", "\u0056"]]},
-
-{"description": "Valid numeric entity character U+0057",
-"input": "&#x0057;",
-"output": [["Character", "\u0057"]]},
-
-{"description": "Valid numeric entity character U+0058",
-"input": "&#x0058;",
-"output": [["Character", "\u0058"]]},
-
-{"description": "Valid numeric entity character U+0059",
-"input": "&#x0059;",
-"output": [["Character", "\u0059"]]},
-
-{"description": "Valid numeric entity character U+005A",
-"input": "&#x005a;",
-"output": [["Character", "\u005A"]]},
-
-{"description": "Valid numeric entity character U+005B",
-"input": "&#x005b;",
-"output": [["Character", "\u005B"]]},
-
-{"description": "Valid numeric entity character U+005C",
-"input": "&#x005c;",
-"output": [["Character", "\u005C"]]},
-
-{"description": "Valid numeric entity character U+005D",
-"input": "&#x005d;",
-"output": [["Character", "\u005D"]]},
-
-{"description": "Valid numeric entity character U+005E",
-"input": "&#x005e;",
-"output": [["Character", "\u005E"]]},
-
-{"description": "Valid numeric entity character U+005F",
-"input": "&#x005f;",
-"output": [["Character", "\u005F"]]},
-
-{"description": "Valid numeric entity character U+0060",
-"input": "&#x0060;",
-"output": [["Character", "\u0060"]]},
-
-{"description": "Valid numeric entity character U+0061",
-"input": "&#x0061;",
-"output": [["Character", "\u0061"]]},
-
-{"description": "Valid numeric entity character U+0062",
-"input": "&#x0062;",
-"output": [["Character", "\u0062"]]},
-
-{"description": "Valid numeric entity character U+0063",
-"input": "&#x0063;",
-"output": [["Character", "\u0063"]]},
-
-{"description": "Valid numeric entity character U+0064",
-"input": "&#x0064;",
-"output": [["Character", "\u0064"]]},
-
-{"description": "Valid numeric entity character U+0065",
-"input": "&#x0065;",
-"output": [["Character", "\u0065"]]},
-
-{"description": "Valid numeric entity character U+0066",
-"input": "&#x0066;",
-"output": [["Character", "\u0066"]]},
-
-{"description": "Valid numeric entity character U+0067",
-"input": "&#x0067;",
-"output": [["Character", "\u0067"]]},
-
-{"description": "Valid numeric entity character U+0068",
-"input": "&#x0068;",
-"output": [["Character", "\u0068"]]},
-
-{"description": "Valid numeric entity character U+0069",
-"input": "&#x0069;",
-"output": [["Character", "\u0069"]]},
-
-{"description": "Valid numeric entity character U+006A",
-"input": "&#x006a;",
-"output": [["Character", "\u006A"]]},
-
-{"description": "Valid numeric entity character U+006B",
-"input": "&#x006b;",
-"output": [["Character", "\u006B"]]},
-
-{"description": "Valid numeric entity character U+006C",
-"input": "&#x006c;",
-"output": [["Character", "\u006C"]]},
-
-{"description": "Valid numeric entity character U+006D",
-"input": "&#x006d;",
-"output": [["Character", "\u006D"]]},
-
-{"description": "Valid numeric entity character U+006E",
-"input": "&#x006e;",
-"output": [["Character", "\u006E"]]},
-
-{"description": "Valid numeric entity character U+006F",
-"input": "&#x006f;",
-"output": [["Character", "\u006F"]]},
-
-{"description": "Valid numeric entity character U+0070",
-"input": "&#x0070;",
-"output": [["Character", "\u0070"]]},
-
-{"description": "Valid numeric entity character U+0071",
-"input": "&#x0071;",
-"output": [["Character", "\u0071"]]},
-
-{"description": "Valid numeric entity character U+0072",
-"input": "&#x0072;",
-"output": [["Character", "\u0072"]]},
-
-{"description": "Valid numeric entity character U+0073",
-"input": "&#x0073;",
-"output": [["Character", "\u0073"]]},
-
-{"description": "Valid numeric entity character U+0074",
-"input": "&#x0074;",
-"output": [["Character", "\u0074"]]},
-
-{"description": "Valid numeric entity character U+0075",
-"input": "&#x0075;",
-"output": [["Character", "\u0075"]]},
-
-{"description": "Valid numeric entity character U+0076",
-"input": "&#x0076;",
-"output": [["Character", "\u0076"]]},
-
-{"description": "Valid numeric entity character U+0077",
-"input": "&#x0077;",
-"output": [["Character", "\u0077"]]},
-
-{"description": "Valid numeric entity character U+0078",
-"input": "&#x0078;",
-"output": [["Character", "\u0078"]]},
-
-{"description": "Valid numeric entity character U+0079",
-"input": "&#x0079;",
-"output": [["Character", "\u0079"]]},
-
-{"description": "Valid numeric entity character U+007A",
-"input": "&#x007a;",
-"output": [["Character", "\u007A"]]},
-
-{"description": "Valid numeric entity character U+007B",
-"input": "&#x007b;",
-"output": [["Character", "\u007B"]]},
-
-{"description": "Valid numeric entity character U+007C",
-"input": "&#x007c;",
-"output": [["Character", "\u007C"]]},
-
-{"description": "Valid numeric entity character U+007D",
-"input": "&#x007d;",
-"output": [["Character", "\u007D"]]},
-
-{"description": "Valid numeric entity character U+007E",
-"input": "&#x007e;",
-"output": [["Character", "\u007E"]]},
-
-{"description": "Valid numeric entity character U+00A0",
-"input": "&#x00a0;",
-"output": [["Character", "\u00A0"]]},
-
-{"description": "Valid numeric entity character U+00A1",
-"input": "&#x00a1;",
-"output": [["Character", "\u00A1"]]},
-
-{"description": "Valid numeric entity character U+00A2",
-"input": "&#x00a2;",
-"output": [["Character", "\u00A2"]]},
-
-{"description": "Valid numeric entity character U+00A3",
-"input": "&#x00a3;",
-"output": [["Character", "\u00A3"]]},
-
-{"description": "Valid numeric entity character U+00A4",
-"input": "&#x00a4;",
-"output": [["Character", "\u00A4"]]},
-
-{"description": "Valid numeric entity character U+00A5",
-"input": "&#x00a5;",
-"output": [["Character", "\u00A5"]]},
-
-{"description": "Valid numeric entity character U+00A6",
-"input": "&#x00a6;",
-"output": [["Character", "\u00A6"]]},
-
-{"description": "Valid numeric entity character U+00A7",
-"input": "&#x00a7;",
-"output": [["Character", "\u00A7"]]},
-
-{"description": "Valid numeric entity character U+00A8",
-"input": "&#x00a8;",
-"output": [["Character", "\u00A8"]]},
-
-{"description": "Valid numeric entity character U+00A9",
-"input": "&#x00a9;",
-"output": [["Character", "\u00A9"]]},
-
-{"description": "Valid numeric entity character U+00AA",
-"input": "&#x00aa;",
-"output": [["Character", "\u00AA"]]},
-
-{"description": "Valid numeric entity character U+00AB",
-"input": "&#x00ab;",
-"output": [["Character", "\u00AB"]]},
-
-{"description": "Valid numeric entity character U+00AC",
-"input": "&#x00ac;",
-"output": [["Character", "\u00AC"]]},
-
-{"description": "Valid numeric entity character U+00AD",
-"input": "&#x00ad;",
-"output": [["Character", "\u00AD"]]},
-
-{"description": "Valid numeric entity character U+00AE",
-"input": "&#x00ae;",
-"output": [["Character", "\u00AE"]]},
-
-{"description": "Valid numeric entity character U+00AF",
-"input": "&#x00af;",
-"output": [["Character", "\u00AF"]]},
-
-{"description": "Valid numeric entity character U+00B0",
-"input": "&#x00b0;",
-"output": [["Character", "\u00B0"]]},
-
-{"description": "Valid numeric entity character U+00B1",
-"input": "&#x00b1;",
-"output": [["Character", "\u00B1"]]},
-
-{"description": "Valid numeric entity character U+00B2",
-"input": "&#x00b2;",
-"output": [["Character", "\u00B2"]]},
-
-{"description": "Valid numeric entity character U+00B3",
-"input": "&#x00b3;",
-"output": [["Character", "\u00B3"]]},
-
-{"description": "Valid numeric entity character U+00B4",
-"input": "&#x00b4;",
-"output": [["Character", "\u00B4"]]},
-
-{"description": "Valid numeric entity character U+00B5",
-"input": "&#x00b5;",
-"output": [["Character", "\u00B5"]]},
-
-{"description": "Valid numeric entity character U+00B6",
-"input": "&#x00b6;",
-"output": [["Character", "\u00B6"]]},
-
-{"description": "Valid numeric entity character U+00B7",
-"input": "&#x00b7;",
-"output": [["Character", "\u00B7"]]},
-
-{"description": "Valid numeric entity character U+00B8",
-"input": "&#x00b8;",
-"output": [["Character", "\u00B8"]]},
-
-{"description": "Valid numeric entity character U+00B9",
-"input": "&#x00b9;",
-"output": [["Character", "\u00B9"]]},
-
-{"description": "Valid numeric entity character U+00BA",
-"input": "&#x00ba;",
-"output": [["Character", "\u00BA"]]},
-
-{"description": "Valid numeric entity character U+00BB",
-"input": "&#x00bb;",
-"output": [["Character", "\u00BB"]]},
-
-{"description": "Valid numeric entity character U+00BC",
-"input": "&#x00bc;",
-"output": [["Character", "\u00BC"]]},
-
-{"description": "Valid numeric entity character U+00BD",
-"input": "&#x00bd;",
-"output": [["Character", "\u00BD"]]},
-
-{"description": "Valid numeric entity character U+00BE",
-"input": "&#x00be;",
-"output": [["Character", "\u00BE"]]},
-
-{"description": "Valid numeric entity character U+00BF",
-"input": "&#x00bf;",
-"output": [["Character", "\u00BF"]]},
-
-{"description": "Valid numeric entity character U+00C0",
-"input": "&#x00c0;",
-"output": [["Character", "\u00C0"]]},
-
-{"description": "Valid numeric entity character U+00C1",
-"input": "&#x00c1;",
-"output": [["Character", "\u00C1"]]},
-
-{"description": "Valid numeric entity character U+00C2",
-"input": "&#x00c2;",
-"output": [["Character", "\u00C2"]]},
-
-{"description": "Valid numeric entity character U+00C3",
-"input": "&#x00c3;",
-"output": [["Character", "\u00C3"]]},
-
-{"description": "Valid numeric entity character U+00C4",
-"input": "&#x00c4;",
-"output": [["Character", "\u00C4"]]},
-
-{"description": "Valid numeric entity character U+00C5",
-"input": "&#x00c5;",
-"output": [["Character", "\u00C5"]]},
-
-{"description": "Valid numeric entity character U+00C6",
-"input": "&#x00c6;",
-"output": [["Character", "\u00C6"]]},
-
-{"description": "Valid numeric entity character U+00C7",
-"input": "&#x00c7;",
-"output": [["Character", "\u00C7"]]},
-
-{"description": "Valid numeric entity character U+00C8",
-"input": "&#x00c8;",
-"output": [["Character", "\u00C8"]]},
-
-{"description": "Valid numeric entity character U+00C9",
-"input": "&#x00c9;",
-"output": [["Character", "\u00C9"]]},
-
-{"description": "Valid numeric entity character U+00CA",
-"input": "&#x00ca;",
-"output": [["Character", "\u00CA"]]},
-
-{"description": "Valid numeric entity character U+00CB",
-"input": "&#x00cb;",
-"output": [["Character", "\u00CB"]]},
-
-{"description": "Valid numeric entity character U+00CC",
-"input": "&#x00cc;",
-"output": [["Character", "\u00CC"]]},
-
-{"description": "Valid numeric entity character U+00CD",
-"input": "&#x00cd;",
-"output": [["Character", "\u00CD"]]},
-
-{"description": "Valid numeric entity character U+00CE",
-"input": "&#x00ce;",
-"output": [["Character", "\u00CE"]]},
-
-{"description": "Valid numeric entity character U+00CF",
-"input": "&#x00cf;",
-"output": [["Character", "\u00CF"]]},
-
-{"description": "Valid numeric entity character U+00D0",
-"input": "&#x00d0;",
-"output": [["Character", "\u00D0"]]},
-
-{"description": "Valid numeric entity character U+00D1",
-"input": "&#x00d1;",
-"output": [["Character", "\u00D1"]]},
-
-{"description": "Valid numeric entity character U+00D2",
-"input": "&#x00d2;",
-"output": [["Character", "\u00D2"]]},
-
-{"description": "Valid numeric entity character U+00D3",
-"input": "&#x00d3;",
-"output": [["Character", "\u00D3"]]},
-
-{"description": "Valid numeric entity character U+00D4",
-"input": "&#x00d4;",
-"output": [["Character", "\u00D4"]]},
-
-{"description": "Valid numeric entity character U+00D5",
-"input": "&#x00d5;",
-"output": [["Character", "\u00D5"]]},
-
-{"description": "Valid numeric entity character U+00D6",
-"input": "&#x00d6;",
-"output": [["Character", "\u00D6"]]},
-
-{"description": "Valid numeric entity character U+00D7",
-"input": "&#x00d7;",
-"output": [["Character", "\u00D7"]]},
-
-{"description": "Valid numeric entity character U+00D8",
-"input": "&#x00d8;",
-"output": [["Character", "\u00D8"]]},
-
-{"description": "Valid numeric entity character U+00D9",
-"input": "&#x00d9;",
-"output": [["Character", "\u00D9"]]},
-
-{"description": "Valid numeric entity character U+00DA",
-"input": "&#x00da;",
-"output": [["Character", "\u00DA"]]},
-
-{"description": "Valid numeric entity character U+00DB",
-"input": "&#x00db;",
-"output": [["Character", "\u00DB"]]},
-
-{"description": "Valid numeric entity character U+00DC",
-"input": "&#x00dc;",
-"output": [["Character", "\u00DC"]]},
-
-{"description": "Valid numeric entity character U+00DD",
-"input": "&#x00dd;",
-"output": [["Character", "\u00DD"]]},
-
-{"description": "Valid numeric entity character U+00DE",
-"input": "&#x00de;",
-"output": [["Character", "\u00DE"]]},
-
-{"description": "Valid numeric entity character U+00DF",
-"input": "&#x00df;",
-"output": [["Character", "\u00DF"]]},
-
-{"description": "Valid numeric entity character U+00E0",
-"input": "&#x00e0;",
-"output": [["Character", "\u00E0"]]},
-
-{"description": "Valid numeric entity character U+00E1",
-"input": "&#x00e1;",
-"output": [["Character", "\u00E1"]]},
-
-{"description": "Valid numeric entity character U+00E2",
-"input": "&#x00e2;",
-"output": [["Character", "\u00E2"]]},
-
-{"description": "Valid numeric entity character U+00E3",
-"input": "&#x00e3;",
-"output": [["Character", "\u00E3"]]},
-
-{"description": "Valid numeric entity character U+00E4",
-"input": "&#x00e4;",
-"output": [["Character", "\u00E4"]]},
-
-{"description": "Valid numeric entity character U+00E5",
-"input": "&#x00e5;",
-"output": [["Character", "\u00E5"]]},
-
-{"description": "Valid numeric entity character U+00E6",
-"input": "&#x00e6;",
-"output": [["Character", "\u00E6"]]},
-
-{"description": "Valid numeric entity character U+00E7",
-"input": "&#x00e7;",
-"output": [["Character", "\u00E7"]]},
-
-{"description": "Valid numeric entity character U+00E8",
-"input": "&#x00e8;",
-"output": [["Character", "\u00E8"]]},
-
-{"description": "Valid numeric entity character U+00E9",
-"input": "&#x00e9;",
-"output": [["Character", "\u00E9"]]},
-
-{"description": "Valid numeric entity character U+00EA",
-"input": "&#x00ea;",
-"output": [["Character", "\u00EA"]]},
-
-{"description": "Valid numeric entity character U+00EB",
-"input": "&#x00eb;",
-"output": [["Character", "\u00EB"]]},
-
-{"description": "Valid numeric entity character U+00EC",
-"input": "&#x00ec;",
-"output": [["Character", "\u00EC"]]},
-
-{"description": "Valid numeric entity character U+00ED",
-"input": "&#x00ed;",
-"output": [["Character", "\u00ED"]]},
-
-{"description": "Valid numeric entity character U+00EE",
-"input": "&#x00ee;",
-"output": [["Character", "\u00EE"]]},
-
-{"description": "Valid numeric entity character U+00EF",
-"input": "&#x00ef;",
-"output": [["Character", "\u00EF"]]},
-
-{"description": "Valid numeric entity character U+00F0",
-"input": "&#x00f0;",
-"output": [["Character", "\u00F0"]]},
-
-{"description": "Valid numeric entity character U+00F1",
-"input": "&#x00f1;",
-"output": [["Character", "\u00F1"]]},
-
-{"description": "Valid numeric entity character U+00F2",
-"input": "&#x00f2;",
-"output": [["Character", "\u00F2"]]},
-
-{"description": "Valid numeric entity character U+00F3",
-"input": "&#x00f3;",
-"output": [["Character", "\u00F3"]]},
-
-{"description": "Valid numeric entity character U+00F4",
-"input": "&#x00f4;",
-"output": [["Character", "\u00F4"]]},
-
-{"description": "Valid numeric entity character U+00F5",
-"input": "&#x00f5;",
-"output": [["Character", "\u00F5"]]},
-
-{"description": "Valid numeric entity character U+00F6",
-"input": "&#x00f6;",
-"output": [["Character", "\u00F6"]]},
-
-{"description": "Valid numeric entity character U+00F7",
-"input": "&#x00f7;",
-"output": [["Character", "\u00F7"]]},
-
-{"description": "Valid numeric entity character U+00F8",
-"input": "&#x00f8;",
-"output": [["Character", "\u00F8"]]},
-
-{"description": "Valid numeric entity character U+00F9",
-"input": "&#x00f9;",
-"output": [["Character", "\u00F9"]]},
-
-{"description": "Valid numeric entity character U+00FA",
-"input": "&#x00fa;",
-"output": [["Character", "\u00FA"]]},
-
-{"description": "Valid numeric entity character U+00FB",
-"input": "&#x00fb;",
-"output": [["Character", "\u00FB"]]},
-
-{"description": "Valid numeric entity character U+00FC",
-"input": "&#x00fc;",
-"output": [["Character", "\u00FC"]]},
-
-{"description": "Valid numeric entity character U+00FD",
-"input": "&#x00fd;",
-"output": [["Character", "\u00FD"]]},
-
-{"description": "Valid numeric entity character U+00FE",
-"input": "&#x00fe;",
-"output": [["Character", "\u00FE"]]},
-
-{"description": "Valid numeric entity character U+00FF",
-"input": "&#x00ff;",
-"output": [["Character", "\u00FF"]]},
-
-{"description": "Valid numeric entity character U+D7FF",
-"input": "&#xd7ff;",
-"output": [["Character", "\uD7FF"]]},
-
-{"description": "Valid numeric entity character U+E000",
-"input": "&#xe000;",
-"output": [["Character", "\uE000"]]},
-
-{"description": "Valid numeric entity character U+FDCF",
-"input": "&#xfdcf;",
-"output": [["Character", "\uFDCF"]]},
-
-{"description": "Valid numeric entity character U+FDF0",
-"input": "&#xfdf0;",
-"output": [["Character", "\uFDF0"]]},
-
-{"description": "Valid numeric entity character U+FFFD",
-"input": "&#xfffd;",
-"output": [["Character", "\uFFFD"]]},
-
-{"description": "Valid numeric entity character U+10000",
-"input": "&#x10000;",
-"output": [["Character", "\uD800\uDC00"]]},
-
-{"description": "Valid numeric entity character U+1FFFD",
-"input": "&#x1fffd;",
-"output": [["Character", "\uD83F\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+20000",
-"input": "&#x20000;",
-"output": [["Character", "\uD840\uDC00"]]},
-
-{"description": "Valid numeric entity character U+2FFFD",
-"input": "&#x2fffd;",
-"output": [["Character", "\uD87F\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+30000",
-"input": "&#x30000;",
-"output": [["Character", "\uD880\uDC00"]]},
-
-{"description": "Valid numeric entity character U+3FFFD",
-"input": "&#x3fffd;",
-"output": [["Character", "\uD8BF\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+40000",
-"input": "&#x40000;",
-"output": [["Character", "\uD8C0\uDC00"]]},
-
-{"description": "Valid numeric entity character U+4FFFD",
-"input": "&#x4fffd;",
-"output": [["Character", "\uD8FF\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+50000",
-"input": "&#x50000;",
-"output": [["Character", "\uD900\uDC00"]]},
-
-{"description": "Valid numeric entity character U+5FFFD",
-"input": "&#x5fffd;",
-"output": [["Character", "\uD93F\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+60000",
-"input": "&#x60000;",
-"output": [["Character", "\uD940\uDC00"]]},
-
-{"description": "Valid numeric entity character U+6FFFD",
-"input": "&#x6fffd;",
-"output": [["Character", "\uD97F\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+70000",
-"input": "&#x70000;",
-"output": [["Character", "\uD980\uDC00"]]},
-
-{"description": "Valid numeric entity character U+7FFFD",
-"input": "&#x7fffd;",
-"output": [["Character", "\uD9BF\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+80000",
-"input": "&#x80000;",
-"output": [["Character", "\uD9C0\uDC00"]]},
-
-{"description": "Valid numeric entity character U+8FFFD",
-"input": "&#x8fffd;",
-"output": [["Character", "\uD9FF\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+90000",
-"input": "&#x90000;",
-"output": [["Character", "\uDA00\uDC00"]]},
-
-{"description": "Valid numeric entity character U+9FFFD",
-"input": "&#x9fffd;",
-"output": [["Character", "\uDA3F\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+A0000",
-"input": "&#xa0000;",
-"output": [["Character", "\uDA40\uDC00"]]},
-
-{"description": "Valid numeric entity character U+AFFFD",
-"input": "&#xafffd;",
-"output": [["Character", "\uDA7F\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+B0000",
-"input": "&#xb0000;",
-"output": [["Character", "\uDA80\uDC00"]]},
-
-{"description": "Valid numeric entity character U+BFFFD",
-"input": "&#xbfffd;",
-"output": [["Character", "\uDABF\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+C0000",
-"input": "&#xc0000;",
-"output": [["Character", "\uDAC0\uDC00"]]},
-
-{"description": "Valid numeric entity character U+CFFFD",
-"input": "&#xcfffd;",
-"output": [["Character", "\uDAFF\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+D0000",
-"input": "&#xd0000;",
-"output": [["Character", "\uDB00\uDC00"]]},
-
-{"description": "Valid numeric entity character U+DFFFD",
-"input": "&#xdfffd;",
-"output": [["Character", "\uDB3F\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+E0000",
-"input": "&#xe0000;",
-"output": [["Character", "\uDB40\uDC00"]]},
-
-{"description": "Valid numeric entity character U+EFFFD",
-"input": "&#xefffd;",
-"output": [["Character", "\uDB7F\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+F0000",
-"input": "&#xf0000;",
-"output": [["Character", "\uDB80\uDC00"]]},
-
-{"description": "Valid numeric entity character U+FFFFD",
-"input": "&#xffffd;",
-"output": [["Character", "\uDBBF\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+100000",
-"input": "&#x100000;",
-"output": [["Character", "\uDBC0\uDC00"]]},
-
-{"description": "Valid numeric entity character U+10FFFD",
-"input": "&#x10fffd;",
-"output": [["Character", "\uDBFF\uDFFD"]]}
-
-]}
-
-
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/pendingSpecChanges.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/pendingSpecChanges.test
deleted file mode 100644
index 1b7dc3c7228..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/pendingSpecChanges.test
+++ /dev/null
@@ -1,7 +0,0 @@
-{"tests": [
-
-{"description":"<!---- >",
-"input":"<!---- >",
-"output":["ParseError", "ParseError", ["Comment","-- >"]]}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test1.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test1.test
deleted file mode 100644
index b97b2cbecf9..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test1.test
+++ /dev/null
@@ -1,196 +0,0 @@
-{"tests": [
-
-{"description":"Correct Doctype lowercase",
-"input":"<!DOCTYPE html>",
-"output":[["DOCTYPE", "html", null, null, true]]},
-
-{"description":"Correct Doctype uppercase",
-"input":"<!DOCTYPE HTML>",
-"output":[["DOCTYPE", "html", null, null, true]]},
-
-{"description":"Correct Doctype mixed case",
-"input":"<!DOCTYPE HtMl>",
-"output":[["DOCTYPE", "html", null, null, true]]},
-
-{"description":"Correct Doctype case with EOF",
-"input":"<!DOCTYPE HtMl",
-"output":["ParseError", ["DOCTYPE", "html", null, null, false]]},
-
-{"description":"Truncated doctype start",
-"input":"<!DOC>",
-"output":["ParseError", ["Comment", "DOC"]]},
-
-{"description":"Doctype in error",
-"input":"<!DOCTYPE foo>",
-"output":[["DOCTYPE", "foo", null, null, true]]},
-
-{"description":"Single Start Tag",
-"input":"<h>",
-"output":[["StartTag", "h", {}]]},
-
-{"description":"Empty end tag",
-"input":"</>",
-"output":["ParseError"]},
-
-{"description":"Empty start tag",
-"input":"<>",
-"output":["ParseError", ["Character", "<>"]]},
-
-{"description":"Start Tag w/attribute",
-"input":"<h a='b'>",
-"output":[["StartTag", "h", {"a":"b"}]]},
-
-{"description":"Start Tag w/attribute no quotes",
-"input":"<h a=b>",
-"output":[["StartTag", "h", {"a":"b"}]]},
-
-{"description":"Start/End Tag",
-"input":"<h></h>",
-"output":[["StartTag", "h", {}], ["EndTag", "h"]]},
-
-{"description":"Two unclosed start tags",
-"input":"<p>One<p>Two",
-"output":[["StartTag", "p", {}], ["Character", "One"], ["StartTag", "p", {}], ["Character", "Two"]]},
-
-{"description":"End Tag w/attribute",
-"input":"<h></h a='b'>",
-"output":[["StartTag", "h", {}], "ParseError", ["EndTag", "h"]]},
-
-{"description":"Multiple atts",
-"input":"<h a='b' c='d'>",
-"output":[["StartTag", "h", {"a":"b", "c":"d"}]]},
-
-{"description":"Multiple atts no space",
-"input":"<h a='b'c='d'>",
-"output":["ParseError", ["StartTag", "h", {"a":"b", "c":"d"}]]},
-
-{"description":"Repeated attr",
- "input":"<h a='b' a='d'>",
- "output":["ParseError", ["StartTag", "h", {"a":"b"}]]},
-
-{"description":"Simple comment",
- "input":"<!--comment-->",
- "output":[["Comment", "comment"]]},
-
-{"description":"Comment, Central dash no space",
- "input":"<!----->",
- "output":["ParseError", ["Comment", "-"]]},
-
-{"description":"Comment, two central dashes",
-"input":"<!-- --comment -->",
-"output":["ParseError", ["Comment", " --comment "]]},
-
-{"description":"Unfinished comment",
-"input":"<!--comment",
-"output":["ParseError", ["Comment", "comment"]]},
-
-{"description":"Start of a comment",
-"input":"<!-",
-"output":["ParseError", ["Comment", "-"]]},
-
-{"description":"Short comment",
- "input":"<!-->",
- "output":["ParseError", ["Comment", ""]]},
-
-{"description":"Short comment two",
- "input":"<!--->",
- "output":["ParseError", ["Comment", ""]]},
-
-{"description":"Short comment three",
- "input":"<!---->",
- "output":[["Comment", ""]]},
-
-
-{"description":"Ampersand EOF",
-"input":"&",
-"output":[["Character", "&"]]},
-
-{"description":"Ampersand ampersand EOF",
-"input":"&&",
-"output":[["Character", "&&"]]},
-
-{"description":"Ampersand space EOF",
-"input":"& ",
-"output":[["Character", "& "]]},
-
-{"description":"Unfinished entity",
-"input":"&f",
-"output":[["Character", "&f"]]},
-
-{"description":"Ampersand, number sign",
-"input":"&#",
-"output":["ParseError", ["Character", "&#"]]},
-
-{"description":"Unfinished numeric entity",
-"input":"&#x",
-"output":["ParseError", ["Character", "&#x"]]},
-
-{"description":"Entity with trailing semicolon (1)",
-"input":"I'm &not;it",
-"output":[["Character","I'm \u00ACit"]]},
-
-{"description":"Entity with trailing semicolon (2)",
-"input":"I'm &notin;",
-"output":[["Character","I'm \u2209"]]},
-
-{"description":"Entity without trailing semicolon (1)",
-"input":"I'm &notit",
-"output":[["Character","I'm "], "ParseError", ["Character", "\u00ACit"]]},
-
-{"description":"Entity without trailing semicolon (2)",
-"input":"I'm &notin",
-"output":[["Character","I'm "], "ParseError", ["Character", "\u00ACin"]]},
-
-{"description":"Partial entity match at end of file",
-"input":"I'm &no",
-"output":[["Character","I'm &no"]]},
-
-{"description":"Non-ASCII character reference name",
-"input":"&\u00AC;",
-"output":[["Character", "&\u00AC;"]]},
-
-{"description":"ASCII decimal entity",
-"input":"&#0036;",
-"output":[["Character","$"]]},
-
-{"description":"ASCII hexadecimal entity",
-"input":"&#x3f;",
-"output":[["Character","?"]]},
-
-{"description":"Hexadecimal entity in attribute",
-"input":"<h a='&#x3f;'></h>",
-"output":[["StartTag", "h", {"a":"?"}], ["EndTag", "h"]]},
-
-{"description":"Entity in attribute without semicolon ending in x",
-"input":"<h a='&notx'>",
-"output":[["StartTag", "h", {"a":"&notx"}]]},
-
-{"description":"Entity in attribute without semicolon ending in 1",
-"input":"<h a='&not1'>",
-"output":[["StartTag", "h", {"a":"&not1"}]]},
-
-{"description":"Entity in attribute without semicolon ending in i",
-"input":"<h a='&noti'>",
-"output":[["StartTag", "h", {"a":"&noti"}]]},
-
-{"description":"Entity in attribute without semicolon",
-"input":"<h a='&COPY'>",
-"output":["ParseError", ["StartTag", "h", {"a":"\u00A9"}]]},
-
-{"description":"Unquoted attribute ending in ampersand",
-"input":"<s o=& t>",
-"output":[["StartTag","s",{"o":"&","t":""}]]},
-
-{"description":"Unquoted attribute at end of tag with final character of &, with tag followed by characters",
-"input":"<a a=a&>foo",
-"output":[["StartTag", "a", {"a":"a&"}], ["Character", "foo"]]},
-
-{"description":"plaintext element",
- "input":"<plaintext>foobar",
- "output":[["StartTag","plaintext",{}], ["Character","foobar"]]},
-
-{"description":"Open angled bracket in unquoted attribute value state",
- "input":"<a a=f<>",
- "output":["ParseError", ["StartTag", "a", {"a":"f<"}]]}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test2.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test2.test
deleted file mode 100644
index 87a8eba3465..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test2.test
+++ /dev/null
@@ -1,179 +0,0 @@
-{"tests": [
-
-{"description":"DOCTYPE without name",
-"input":"<!DOCTYPE>",
-"output":["ParseError", "ParseError", ["DOCTYPE", null, null, null, false]]},
-
-{"description":"DOCTYPE without space before name",
-"input":"<!DOCTYPEhtml>",
-"output":["ParseError", ["DOCTYPE", "html", null, null, true]]},
-
-{"description":"Incorrect DOCTYPE without a space before name",
-"input":"<!DOCTYPEfoo>",
-"output":["ParseError", ["DOCTYPE", "foo", null, null, true]]},
-
-{"description":"DOCTYPE with publicId",
-"input":"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML Transitional 4.01//EN\">",
-"output":[["DOCTYPE", "html", "-//W3C//DTD HTML Transitional 4.01//EN", null, true]]},
-
-{"description":"DOCTYPE with EOF after PUBLIC",
-"input":"<!DOCTYPE html PUBLIC",
-"output":["ParseError", ["DOCTYPE", "html", null, null, false]]},
-
-{"description":"DOCTYPE with EOF after PUBLIC '",
-"input":"<!DOCTYPE html PUBLIC '",
-"output":["ParseError", ["DOCTYPE", "html", "", null, false]]},
-
-{"description":"DOCTYPE with EOF after PUBLIC 'x",
-"input":"<!DOCTYPE html PUBLIC 'x",
-"output":["ParseError", ["DOCTYPE", "html", "x", null, false]]},
-
-{"description":"DOCTYPE with systemId",
-"input":"<!DOCTYPE html SYSTEM \"-//W3C//DTD HTML Transitional 4.01//EN\">",
-"output":[["DOCTYPE", "html", null, "-//W3C//DTD HTML Transitional 4.01//EN", true]]},
-
-{"description":"DOCTYPE with publicId and systemId",
-"input":"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML Transitional 4.01//EN\" \"-//W3C//DTD HTML Transitional 4.01//EN\">",
-"output":[["DOCTYPE", "html", "-//W3C//DTD HTML Transitional 4.01//EN", "-//W3C//DTD HTML Transitional 4.01//EN", true]]},
-
-{"description":"DOCTYPE with > in double-quoted publicId",
-"input":"<!DOCTYPE html PUBLIC \">x",
-"output":["ParseError", ["DOCTYPE", "html", "", null, false], ["Character", "x"]]},
-
-{"description":"DOCTYPE with > in single-quoted publicId",
-"input":"<!DOCTYPE html PUBLIC '>x",
-"output":["ParseError", ["DOCTYPE", "html", "", null, false], ["Character", "x"]]},
-
-{"description":"DOCTYPE with > in double-quoted systemId",
-"input":"<!DOCTYPE html PUBLIC \"foo\" \">x",
-"output":["ParseError", ["DOCTYPE", "html", "foo", "", false], ["Character", "x"]]},
-
-{"description":"DOCTYPE with > in single-quoted systemId",
-"input":"<!DOCTYPE html PUBLIC 'foo' '>x",
-"output":["ParseError", ["DOCTYPE", "html", "foo", "", false], ["Character", "x"]]},
-
-{"description":"Incomplete doctype",
-"input":"<!DOCTYPE html ",
-"output":["ParseError", ["DOCTYPE", "html", null, null, false]]},
-
-{"description":"Numeric entity representing the NUL character",
-"input":"&#0000;",
-"output":["ParseError", ["Character", "\uFFFD"]]},
-
-{"description":"Hexadecimal entity representing the NUL character",
-"input":"&#x0000;",
-"output":["ParseError", ["Character", "\uFFFD"]]},
-
-{"description":"Numeric entity representing a codepoint after 1114111 (U+10FFFF)",
-"input":"&#2225222;",
-"output":["ParseError", ["Character", "\uFFFD"]]},
-
-{"description":"Hexadecimal entity representing a codepoint after 1114111 (U+10FFFF)",
-"input":"&#x1010FFFF;",
-"output":["ParseError", ["Character", "\uFFFD"]]},
-
-{"description":"Hexadecimal entity pair representing a surrogate pair",
-"input":"&#xD869;&#xDED6;",
-"output":["ParseError", ["Character", "\uFFFD"], "ParseError", ["Character", "\uFFFD"]]},
-
-{"description":"Hexadecimal entity with mixed uppercase and lowercase",
-"input":"&#xaBcD;",
-"output":[["Character", "\uABCD"]]},
-
-{"description":"Entity without a name",
-"input":"&;",
-"output":[["Character", "&;"]]},
-
-{"description":"Unescaped ampersand in attribute value",
-"input":"<h a='&'>",
-"output":[["StartTag", "h", { "a":"&" }]]},
-
-{"description":"StartTag containing <",
-"input":"<a<b>",
-"output":[["StartTag", "a<b", { }]]},
-
-{"description":"Non-void element containing trailing /",
-"input":"<h/>",
-"output":[["StartTag","h",{},true]]},
-
-{"description":"Void element with permitted slash",
-"input":"<br/>",
-"output":[["StartTag","br",{},true]]},
-
-{"description":"Void element with permitted slash (with attribute)",
-"input":"<br foo='bar'/>",
-"output":[["StartTag","br",{"foo":"bar"},true]]},
-
-{"description":"StartTag containing /",
-"input":"<h/a='b'>",
-"output":["ParseError", ["StartTag", "h", { "a":"b" }]]},
-
-{"description":"Double-quoted attribute value",
-"input":"<h a=\"b\">",
-"output":[["StartTag", "h", { "a":"b" }]]},
-
-{"description":"Unescaped </",
-"input":"</",
-"output":["ParseError", ["Character", "</"]]},
-
-{"description":"Illegal end tag name",
-"input":"</1>",
-"output":["ParseError", ["Comment", "1"]]},
-
-{"description":"Simili processing instruction",
-"input":"<?namespace>",
-"output":["ParseError", ["Comment", "?namespace"]]},
-
-{"description":"A bogus comment stops at >, even if preceeded by two dashes",
-"input":"<?foo-->",
-"output":["ParseError", ["Comment", "?foo--"]]},
-
-{"description":"Unescaped <",
-"input":"foo < bar",
-"output":[["Character", "foo "], "ParseError", ["Character", "< bar"]]},
-
-{"description":"Null Byte Replacement",
-"input":"\u0000",
-"output":["ParseError", ["Character", "\u0000"]]},
-
-{"description":"Comment with dash",
-"input":"<!---x",
-"output":["ParseError", ["Comment", "-x"]]},
-
-{"description":"Entity + newline",
-"input":"\nx\n&gt;\n",
-"output":[["Character","\nx\n>\n"]]},
-
-{"description":"Start tag with no attributes but space before the greater-than sign",
-"input":"<h >",
-"output":[["StartTag", "h", {}]]},
-
-{"description":"Empty attribute followed by uppercase attribute",
-"input":"<h a B=''>",
-"output":[["StartTag", "h", {"a":"", "b":""}]]},
-
-{"description":"Double-quote after attribute name",
-"input":"<h a \">",
-"output":["ParseError", ["StartTag", "h", {"a":"", "\"":""}]]},
-
-{"description":"Single-quote after attribute name",
-"input":"<h a '>",
-"output":["ParseError", ["StartTag", "h", {"a":"", "'":""}]]},
-
-{"description":"Empty end tag with following characters",
-"input":"a</>bc",
-"output":[["Character", "a"], "ParseError", ["Character", "bc"]]},
-
-{"description":"Empty end tag with following tag",
-"input":"a</><b>c",
-"output":[["Character", "a"], "ParseError", ["StartTag", "b", {}], ["Character", "c"]]},
-
-{"description":"Empty end tag with following comment",
-"input":"a</><!--b-->c",
-"output":[["Character", "a"], "ParseError", ["Comment", "b"], ["Character", "c"]]},
-
-{"description":"Empty end tag with following end tag",
-"input":"a</></b>c",
-"output":[["Character", "a"], "ParseError", ["EndTag", "b"], ["Character", "c"]]}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test3.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test3.test
deleted file mode 100644
index 8fc529a2ba4..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test3.test
+++ /dev/null
@@ -1,6047 +0,0 @@
-{"tests": [
-
-{"description":"",
-"input":"",
-"output":[]},
-
-{"description":"\\u0009",
-"input":"\u0009",
-"output":[["Character", "\u0009"]]},
-
-{"description":"\\u000A",
-"input":"\u000A",
-"output":[["Character", "\u000A"]]},
-
-{"description":"\\u000B",
-"input":"\u000B",
-"output":["ParseError", ["Character", "\u000B"]]},
-
-{"description":"\\u000C",
-"input":"\u000C",
-"output":[["Character", "\u000C"]]},
-
-{"description":" ",
-"input":" ",
-"output":[["Character", " "]]},
-
-{"description":"!",
-"input":"!",
-"output":[["Character", "!"]]},
-
-{"description":"\"",
-"input":"\"",
-"output":[["Character", "\""]]},
-
-{"description":"%",
-"input":"%",
-"output":[["Character", "%"]]},
-
-{"description":"&",
-"input":"&",
-"output":[["Character", "&"]]},
-
-{"description":"'",
-"input":"'",
-"output":[["Character", "'"]]},
-
-{"description":",",
-"input":",",
-"output":[["Character", ","]]},
-
-{"description":"-",
-"input":"-",
-"output":[["Character", "-"]]},
-
-{"description":".",
-"input":".",
-"output":[["Character", "."]]},
-
-{"description":"/",
-"input":"/",
-"output":[["Character", "/"]]},
-
-{"description":"0",
-"input":"0",
-"output":[["Character", "0"]]},
-
-{"description":"1",
-"input":"1",
-"output":[["Character", "1"]]},
-
-{"description":"9",
-"input":"9",
-"output":[["Character", "9"]]},
-
-{"description":";",
-"input":";",
-"output":[["Character", ";"]]},
-
-{"description":"<",
-"input":"<",
-"output":["ParseError", ["Character", "<"]]},
-
-{"description":"<\\u0000",
-"input":"<\u0000",
-"output":["ParseError", ["Character", "<"], "ParseError", ["Character", "\u0000"]]},
-
-{"description":"<\\u0009",
-"input":"<\u0009",
-"output":["ParseError", ["Character", "<\u0009"]]},
-
-{"description":"<\\u000A",
-"input":"<\u000A",
-"output":["ParseError", ["Character", "<\u000A"]]},
-
-{"description":"<\\u000B",
-"input":"<\u000B",
-"output":["ParseError", "ParseError", ["Character", "<\u000B"]]},
-
-{"description":"<\\u000C",
-"input":"<\u000C",
-"output":["ParseError", ["Character", "<\u000C"]]},
-
-{"description":"< ",
-"input":"< ",
-"output":["ParseError", ["Character", "< "]]},
-
-{"description":"<!",
-"input":"<!",
-"output":["ParseError", ["Comment", ""]]},
-
-{"description":"<!\\u0000",
-"input":"<!\u0000",
-"output":["ParseError", ["Comment", "\uFFFD"]]},
-
-{"description":"<!\\u0009",
-"input":"<!\u0009",
-"output":["ParseError", ["Comment", "\u0009"]]},
-
-{"description":"<!\\u000A",
-"input":"<!\u000A",
-"output":["ParseError", ["Comment", "\u000A"]]},
-
-{"description":"<!\\u000B",
-"input":"<!\u000B",
-"output":["ParseError", "ParseError", ["Comment", "\u000B"]]},
-
-{"description":"<!\\u000C",
-"input":"<!\u000C",
-"output":["ParseError", ["Comment", "\u000C"]]},
-
-{"description":"<! ",
-"input":"<! ",
-"output":["ParseError", ["Comment", " "]]},
-
-{"description":"<!!",
-"input":"<!!",
-"output":["ParseError", ["Comment", "!"]]},
-
-{"description":"<!\"",
-"input":"<!\"",
-"output":["ParseError", ["Comment", "\""]]},
-
-{"description":"<!&",
-"input":"<!&",
-"output":["ParseError", ["Comment", "&"]]},
-
-{"description":"<!'",
-"input":"<!'",
-"output":["ParseError", ["Comment", "'"]]},
-
-{"description":"<!-",
-"input":"<!-",
-"output":["ParseError", ["Comment", "-"]]},
-
-{"description":"<!--",
-"input":"<!--",
-"output":["ParseError", ["Comment", ""]]},
-
-{"description":"<!--\\u0000",
-"input":"<!--\u0000",
-"output":["ParseError", "ParseError", ["Comment", "\uFFFD"]]},
-
-{"description":"<!--\\u0009",
-"input":"<!--\u0009",
-"output":["ParseError", ["Comment", "\u0009"]]},
-
-{"description":"<!--\\u000A",
-"input":"<!--\u000A",
-"output":["ParseError", ["Comment", "\u000A"]]},
-
-{"description":"<!--\\u000B",
-"input":"<!--\u000B",
-"output":["ParseError", "ParseError", ["Comment", "\u000B"]]},
-
-{"description":"<!--\\u000C",
-"input":"<!--\u000C",
-"output":["ParseError", ["Comment", "\u000C"]]},
-
-{"description":"<!-- ",
-"input":"<!-- ",
-"output":["ParseError", ["Comment", " "]]},
-
-{"description":"<!-- \\u0000",
-"input":"<!-- \u0000",
-"output":["ParseError", "ParseError", ["Comment", " \uFFFD"]]},
-
-{"description":"<!-- \\u0009",
-"input":"<!-- \u0009",
-"output":["ParseError", ["Comment", " \u0009"]]},
-
-{"description":"<!-- \\u000A",
-"input":"<!-- \u000A",
-"output":["ParseError", ["Comment", " \u000A"]]},
-
-{"description":"<!-- \\u000B",
-"input":"<!-- \u000B",
-"output":["ParseError", "ParseError", ["Comment", " \u000B"]]},
-
-{"description":"<!-- \\u000C",
-"input":"<!-- \u000C",
-"output":["ParseError", ["Comment", " \u000C"]]},
-
-{"description":"<!-- ",
-"input":"<!-- ",
-"output":["ParseError", ["Comment", " "]]},
-
-{"description":"<!-- !",
-"input":"<!-- !",
-"output":["ParseError", ["Comment", " !"]]},
-
-{"description":"<!-- \"",
-"input":"<!-- \"",
-"output":["ParseError", ["Comment", " \""]]},
-
-{"description":"<!-- &",
-"input":"<!-- &",
-"output":["ParseError", ["Comment", " &"]]},
-
-{"description":"<!-- '",
-"input":"<!-- '",
-"output":["ParseError", ["Comment", " '"]]},
-
-{"description":"<!-- ,",
-"input":"<!-- ,",
-"output":["ParseError", ["Comment", " ,"]]},
-
-{"description":"<!-- -",
-"input":"<!-- -",
-"output":["ParseError", ["Comment", " "]]},
-
-{"description":"<!-- -\\u0000",
-"input":"<!-- -\u0000",
-"output":["ParseError", "ParseError", ["Comment", " -\uFFFD"]]},
-
-{"description":"<!-- -\\u0009",
-"input":"<!-- -\u0009",
-"output":["ParseError", ["Comment", " -\u0009"]]},
-
-{"description":"<!-- -\\u000A",
-"input":"<!-- -\u000A",
-"output":["ParseError", ["Comment", " -\u000A"]]},
-
-{"description":"<!-- -\\u000B",
-"input":"<!-- -\u000B",
-"output":["ParseError", "ParseError", ["Comment", " -\u000B"]]},
-
-{"description":"<!-- -\\u000C",
-"input":"<!-- -\u000C",
-"output":["ParseError", ["Comment", " -\u000C"]]},
-
-{"description":"<!-- - ",
-"input":"<!-- - ",
-"output":["ParseError", ["Comment", " - "]]},
-
-{"description":"<!-- -!",
-"input":"<!-- -!",
-"output":["ParseError", ["Comment", " -!"]]},
-
-{"description":"<!-- -\"",
-"input":"<!-- -\"",
-"output":["ParseError", ["Comment", " -\""]]},
-
-{"description":"<!-- -&",
-"input":"<!-- -&",
-"output":["ParseError", ["Comment", " -&"]]},
-
-{"description":"<!-- -'",
-"input":"<!-- -'",
-"output":["ParseError", ["Comment", " -'"]]},
-
-{"description":"<!-- -,",
-"input":"<!-- -,",
-"output":["ParseError", ["Comment", " -,"]]},
-
-{"description":"<!-- --",
-"input":"<!-- --",
-"output":["ParseError", ["Comment", " "]]},
-
-{"description":"<!-- -.",
-"input":"<!-- -.",
-"output":["ParseError", ["Comment", " -."]]},
-
-{"description":"<!-- -/",
-"input":"<!-- -/",
-"output":["ParseError", ["Comment", " -/"]]},
-
-{"description":"<!-- -0",
-"input":"<!-- -0",
-"output":["ParseError", ["Comment", " -0"]]},
-
-{"description":"<!-- -1",
-"input":"<!-- -1",
-"output":["ParseError", ["Comment", " -1"]]},
-
-{"description":"<!-- -9",
-"input":"<!-- -9",
-"output":["ParseError", ["Comment", " -9"]]},
-
-{"description":"<!-- -<",
-"input":"<!-- -<",
-"output":["ParseError", ["Comment", " -<"]]},
-
-{"description":"<!-- -=",
-"input":"<!-- -=",
-"output":["ParseError", ["Comment", " -="]]},
-
-{"description":"<!-- ->",
-"input":"<!-- ->",
-"output":["ParseError", ["Comment", " ->"]]},
-
-{"description":"<!-- -?",
-"input":"<!-- -?",
-"output":["ParseError", ["Comment", " -?"]]},
-
-{"description":"<!-- -@",
-"input":"<!-- -@",
-"output":["ParseError", ["Comment", " -@"]]},
-
-{"description":"<!-- -A",
-"input":"<!-- -A",
-"output":["ParseError", ["Comment", " -A"]]},
-
-{"description":"<!-- -B",
-"input":"<!-- -B",
-"output":["ParseError", ["Comment", " -B"]]},
-
-{"description":"<!-- -Y",
-"input":"<!-- -Y",
-"output":["ParseError", ["Comment", " -Y"]]},
-
-{"description":"<!-- -Z",
-"input":"<!-- -Z",
-"output":["ParseError", ["Comment", " -Z"]]},
-
-{"description":"<!-- -`",
-"input":"<!-- -`",
-"output":["ParseError", ["Comment", " -`"]]},
-
-{"description":"<!-- -a",
-"input":"<!-- -a",
-"output":["ParseError", ["Comment", " -a"]]},
-
-{"description":"<!-- -b",
-"input":"<!-- -b",
-"output":["ParseError", ["Comment", " -b"]]},
-
-{"description":"<!-- -y",
-"input":"<!-- -y",
-"output":["ParseError", ["Comment", " -y"]]},
-
-{"description":"<!-- -z",
-"input":"<!-- -z",
-"output":["ParseError", ["Comment", " -z"]]},
-
-{"description":"<!-- -{",
-"input":"<!-- -{",
-"output":["ParseError", ["Comment", " -{"]]},
-
-{"description":"<!-- -\\uDBC0\\uDC00",
-"input":"<!-- -\uDBC0\uDC00",
-"output":["ParseError", ["Comment", " -\uDBC0\uDC00"]]},
-
-{"description":"<!-- .",
-"input":"<!-- .",
-"output":["ParseError", ["Comment", " ."]]},
-
-{"description":"<!-- /",
-"input":"<!-- /",
-"output":["ParseError", ["Comment", " /"]]},
-
-{"description":"<!-- 0",
-"input":"<!-- 0",
-"output":["ParseError", ["Comment", " 0"]]},
-
-{"description":"<!-- 1",
-"input":"<!-- 1",
-"output":["ParseError", ["Comment", " 1"]]},
-
-{"description":"<!-- 9",
-"input":"<!-- 9",
-"output":["ParseError", ["Comment", " 9"]]},
-
-{"description":"<!-- <",
-"input":"<!-- <",
-"output":["ParseError", ["Comment", " <"]]},
-
-{"description":"<!-- =",
-"input":"<!-- =",
-"output":["ParseError", ["Comment", " ="]]},
-
-{"description":"<!-- >",
-"input":"<!-- >",
-"output":["ParseError", ["Comment", " >"]]},
-
-{"description":"<!-- ?",
-"input":"<!-- ?",
-"output":["ParseError", ["Comment", " ?"]]},
-
-{"description":"<!-- @",
-"input":"<!-- @",
-"output":["ParseError", ["Comment", " @"]]},
-
-{"description":"<!-- A",
-"input":"<!-- A",
-"output":["ParseError", ["Comment", " A"]]},
-
-{"description":"<!-- B",
-"input":"<!-- B",
-"output":["ParseError", ["Comment", " B"]]},
-
-{"description":"<!-- Y",
-"input":"<!-- Y",
-"output":["ParseError", ["Comment", " Y"]]},
-
-{"description":"<!-- Z",
-"input":"<!-- Z",
-"output":["ParseError", ["Comment", " Z"]]},
-
-{"description":"<!-- `",
-"input":"<!-- `",
-"output":["ParseError", ["Comment", " `"]]},
-
-{"description":"<!-- a",
-"input":"<!-- a",
-"output":["ParseError", ["Comment", " a"]]},
-
-{"description":"<!-- b",
-"input":"<!-- b",
-"output":["ParseError", ["Comment", " b"]]},
-
-{"description":"<!-- y",
-"input":"<!-- y",
-"output":["ParseError", ["Comment", " y"]]},
-
-{"description":"<!-- z",
-"input":"<!-- z",
-"output":["ParseError", ["Comment", " z"]]},
-
-{"description":"<!-- {",
-"input":"<!-- {",
-"output":["ParseError", ["Comment", " {"]]},
-
-{"description":"<!-- \\uDBC0\\uDC00",
-"input":"<!-- \uDBC0\uDC00",
-"output":["ParseError", ["Comment", " \uDBC0\uDC00"]]},
-
-{"description":"<!--!",
-"input":"<!--!",
-"output":["ParseError", ["Comment", "!"]]},
-
-{"description":"<!--\"",
-"input":"<!--\"",
-"output":["ParseError", ["Comment", "\""]]},
-
-{"description":"<!--&",
-"input":"<!--&",
-"output":["ParseError", ["Comment", "&"]]},
-
-{"description":"<!--'",
-"input":"<!--'",
-"output":["ParseError", ["Comment", "'"]]},
-
-{"description":"<!--,",
-"input":"<!--,",
-"output":["ParseError", ["Comment", ","]]},
-
-{"description":"<!---",
-"input":"<!---",
-"output":["ParseError", ["Comment", ""]]},
-
-{"description":"<!---\\u0000",
-"input":"<!---\u0000",
-"output":["ParseError", "ParseError", ["Comment", "-\uFFFD"]]},
-
-{"description":"<!---\\u0009",
-"input":"<!---\u0009",
-"output":["ParseError", ["Comment", "-\u0009"]]},
-
-{"description":"<!---\\u000A",
-"input":"<!---\u000A",
-"output":["ParseError", ["Comment", "-\u000A"]]},
-
-{"description":"<!---\\u000B",
-"input":"<!---\u000B",
-"output":["ParseError", "ParseError", ["Comment", "-\u000B"]]},
-
-{"description":"<!---\\u000C",
-"input":"<!---\u000C",
-"output":["ParseError", ["Comment", "-\u000C"]]},
-
-{"description":"<!--- ",
-"input":"<!--- ",
-"output":["ParseError", ["Comment", "- "]]},
-
-{"description":"<!---!",
-"input":"<!---!",
-"output":["ParseError", ["Comment", "-!"]]},
-
-{"description":"<!---\"",
-"input":"<!---\"",
-"output":["ParseError", ["Comment", "-\""]]},
-
-{"description":"<!---&",
-"input":"<!---&",
-"output":["ParseError", ["Comment", "-&"]]},
-
-{"description":"<!---'",
-"input":"<!---'",
-"output":["ParseError", ["Comment", "-'"]]},
-
-{"description":"<!---,",
-"input":"<!---,",
-"output":["ParseError", ["Comment", "-,"]]},
-
-{"description":"<!----",
-"input":"<!----",
-"output":["ParseError", ["Comment", ""]]},
-
-{"description":"<!----\\u0000",
-"input":"<!----\u0000",
-"output":["ParseError", "ParseError", ["Comment", "--\uFFFD"]]},
-
-{"description":"<!----\\u0009",
-"input":"<!----\u0009",
-"output":["ParseError", "ParseError", ["Comment", "--\u0009"]]},
-
-{"description":"<!----\\u000A",
-"input":"<!----\u000A",
-"output":["ParseError", "ParseError", ["Comment", "--\u000A"]]},
-
-{"description":"<!----\\u000B",
-"input":"<!----\u000B",
-"output":["ParseError", "ParseError", "ParseError", ["Comment", "--\u000B"]]},
-
-{"description":"<!----\\u000C",
-"input":"<!----\u000C",
-"output":["ParseError", "ParseError", ["Comment", "--\u000C"]]},
-
-{"description":"<!---- ",
-"input":"<!---- ",
-"output":["ParseError", "ParseError", ["Comment", "-- "]]},
-
-{"description":"<!---- -",
-"input":"<!---- -",
-"output":["ParseError", "ParseError", ["Comment", "-- "]]},
-
-{"description":"<!---- --",
-"input":"<!---- --",
-"output":["ParseError", "ParseError", ["Comment", "-- "]]},
-
-{"description":"<!---- -->",
-"input":"<!---- -->",
-"output":["ParseError", ["Comment", "-- "]]},
-
-{"description":"<!---- -->",
-"input":"<!---- -->",
-"output":["ParseError", ["Comment", "-- "]]},
-
-{"description":"<!---- a-->",
-"input":"<!---- a-->",
-"output":["ParseError", ["Comment", "-- a"]]},
-
-{"description":"<!----!",
-"input":"<!----!",
-"output":["ParseError", "ParseError", ["Comment", ""]]},
-
-{"description":"<!----!>",
-"input":"<!----!>",
-"output":["ParseError", ["Comment", ""]]},
-
-{"description":"<!----!a",
-"input":"<!----!a",
-"output":["ParseError", "ParseError", ["Comment", "--!a"]]},
-
-{"description":"<!----!a-",
-"input":"<!----!a-",
-"output":["ParseError", "ParseError", ["Comment", "--!a"]]},
-
-{"description":"<!----!a--",
-"input":"<!----!a--",
-"output":["ParseError", "ParseError", ["Comment", "--!a"]]},
-
-{"description":"<!----!a-->",
-"input":"<!----!a-->",
-"output":["ParseError", ["Comment", "--!a"]]},
-
-{"description":"<!----!-",
-"input":"<!----!-",
-"output":["ParseError", "ParseError", ["Comment", "--!"]]},
-
-{"description":"<!----!--",
-"input":"<!----!--",
-"output":["ParseError", "ParseError", ["Comment", "--!"]]},
-
-{"description":"<!----!-->",
-"input":"<!----!-->",
-"output":["ParseError", ["Comment", "--!"]]},
-
-{"description":"<!----\"",
-"input":"<!----\"",
-"output":["ParseError", "ParseError", ["Comment", "--\""]]},
-
-{"description":"<!----&",
-"input":"<!----&",
-"output":["ParseError", "ParseError", ["Comment", "--&"]]},
-
-{"description":"<!----'",
-"input":"<!----'",
-"output":["ParseError", "ParseError", ["Comment", "--'"]]},
-
-{"description":"<!----,",
-"input":"<!----,",
-"output":["ParseError", "ParseError", ["Comment", "--,"]]},
-
-{"description":"<!-----",
-"input":"<!-----",
-"output":["ParseError", "ParseError", ["Comment", "-"]]},
-
-{"description":"<!----.",
-"input":"<!----.",
-"output":["ParseError", "ParseError", ["Comment", "--."]]},
-
-{"description":"<!----/",
-"input":"<!----/",
-"output":["ParseError", "ParseError", ["Comment", "--/"]]},
-
-{"description":"<!----0",
-"input":"<!----0",
-"output":["ParseError", "ParseError", ["Comment", "--0"]]},
-
-{"description":"<!----1",
-"input":"<!----1",
-"output":["ParseError", "ParseError", ["Comment", "--1"]]},
-
-{"description":"<!----9",
-"input":"<!----9",
-"output":["ParseError", "ParseError", ["Comment", "--9"]]},
-
-{"description":"<!----<",
-"input":"<!----<",
-"output":["ParseError", "ParseError", ["Comment", "--<"]]},
-
-{"description":"<!----=",
-"input":"<!----=",
-"output":["ParseError", "ParseError", ["Comment", "--="]]},
-
-{"description":"<!---->",
-"input":"<!---->",
-"output":[["Comment", ""]]},
-
-{"description":"<!----?",
-"input":"<!----?",
-"output":["ParseError", "ParseError", ["Comment", "--?"]]},
-
-{"description":"<!----@",
-"input":"<!----@",
-"output":["ParseError", "ParseError", ["Comment", "--@"]]},
-
-{"description":"<!----A",
-"input":"<!----A",
-"output":["ParseError", "ParseError", ["Comment", "--A"]]},
-
-{"description":"<!----B",
-"input":"<!----B",
-"output":["ParseError", "ParseError", ["Comment", "--B"]]},
-
-{"description":"<!----Y",
-"input":"<!----Y",
-"output":["ParseError", "ParseError", ["Comment", "--Y"]]},
-
-{"description":"<!----Z",
-"input":"<!----Z",
-"output":["ParseError", "ParseError", ["Comment", "--Z"]]},
-
-{"description":"<!----`",
-"input":"<!----`",
-"output":["ParseError", "ParseError", ["Comment", "--`"]]},
-
-{"description":"<!----a",
-"input":"<!----a",
-"output":["ParseError", "ParseError", ["Comment", "--a"]]},
-
-{"description":"<!----b",
-"input":"<!----b",
-"output":["ParseError", "ParseError", ["Comment", "--b"]]},
-
-{"description":"<!----y",
-"input":"<!----y",
-"output":["ParseError", "ParseError", ["Comment", "--y"]]},
-
-{"description":"<!----z",
-"input":"<!----z",
-"output":["ParseError", "ParseError", ["Comment", "--z"]]},
-
-{"description":"<!----{",
-"input":"<!----{",
-"output":["ParseError", "ParseError", ["Comment", "--{"]]},
-
-{"description":"<!----\\uDBC0\\uDC00",
-"input":"<!----\uDBC0\uDC00",
-"output":["ParseError", "ParseError", ["Comment", "--\uDBC0\uDC00"]]},
-
-{"description":"<!---.",
-"input":"<!---.",
-"output":["ParseError", ["Comment", "-."]]},
-
-{"description":"<!---/",
-"input":"<!---/",
-"output":["ParseError", ["Comment", "-/"]]},
-
-{"description":"<!---0",
-"input":"<!---0",
-"output":["ParseError", ["Comment", "-0"]]},
-
-{"description":"<!---1",
-"input":"<!---1",
-"output":["ParseError", ["Comment", "-1"]]},
-
-{"description":"<!---9",
-"input":"<!---9",
-"output":["ParseError", ["Comment", "-9"]]},
-
-{"description":"<!---<",
-"input":"<!---<",
-"output":["ParseError", ["Comment", "-<"]]},
-
-{"description":"<!---=",
-"input":"<!---=",
-"output":["ParseError", ["Comment", "-="]]},
-
-{"description":"<!--->",
-"input":"<!--->",
-"output":["ParseError", ["Comment", ""]]},
-
-{"description":"<!---?",
-"input":"<!---?",
-"output":["ParseError", ["Comment", "-?"]]},
-
-{"description":"<!---@",
-"input":"<!---@",
-"output":["ParseError", ["Comment", "-@"]]},
-
-{"description":"<!---A",
-"input":"<!---A",
-"output":["ParseError", ["Comment", "-A"]]},
-
-{"description":"<!---B",
-"input":"<!---B",
-"output":["ParseError", ["Comment", "-B"]]},
-
-{"description":"<!---Y",
-"input":"<!---Y",
-"output":["ParseError", ["Comment", "-Y"]]},
-
-{"description":"<!---Z",
-"input":"<!---Z",
-"output":["ParseError", ["Comment", "-Z"]]},
-
-{"description":"<!---`",
-"input":"<!---`",
-"output":["ParseError", ["Comment", "-`"]]},
-
-{"description":"<!---a",
-"input":"<!---a",
-"output":["ParseError", ["Comment", "-a"]]},
-
-{"description":"<!---b",
-"input":"<!---b",
-"output":["ParseError", ["Comment", "-b"]]},
-
-{"description":"<!---y",
-"input":"<!---y",
-"output":["ParseError", ["Comment", "-y"]]},
-
-{"description":"<!---z",
-"input":"<!---z",
-"output":["ParseError", ["Comment", "-z"]]},
-
-{"description":"<!---{",
-"input":"<!---{",
-"output":["ParseError", ["Comment", "-{"]]},
-
-{"description":"<!---\\uDBC0\\uDC00",
-"input":"<!---\uDBC0\uDC00",
-"output":["ParseError", ["Comment", "-\uDBC0\uDC00"]]},
-
-{"description":"<!--.",
-"input":"<!--.",
-"output":["ParseError", ["Comment", "."]]},
-
-{"description":"<!--/",
-"input":"<!--/",
-"output":["ParseError", ["Comment", "/"]]},
-
-{"description":"<!--0",
-"input":"<!--0",
-"output":["ParseError", ["Comment", "0"]]},
-
-{"description":"<!--1",
-"input":"<!--1",
-"output":["ParseError", ["Comment", "1"]]},
-
-{"description":"<!--9",
-"input":"<!--9",
-"output":["ParseError", ["Comment", "9"]]},
-
-{"description":"<!--<",
-"input":"<!--<",
-"output":["ParseError", ["Comment", "<"]]},
-
-{"description":"<!--=",
-"input":"<!--=",
-"output":["ParseError", ["Comment", "="]]},
-
-{"description":"<!-->",
-"input":"<!-->",
-"output":["ParseError", ["Comment", ""]]},
-
-{"description":"<!--?",
-"input":"<!--?",
-"output":["ParseError", ["Comment", "?"]]},
-
-{"description":"<!--@",
-"input":"<!--@",
-"output":["ParseError", ["Comment", "@"]]},
-
-{"description":"<!--A",
-"input":"<!--A",
-"output":["ParseError", ["Comment", "A"]]},
-
-{"description":"<!--B",
-"input":"<!--B",
-"output":["ParseError", ["Comment", "B"]]},
-
-{"description":"<!--Y",
-"input":"<!--Y",
-"output":["ParseError", ["Comment", "Y"]]},
-
-{"description":"<!--Z",
-"input":"<!--Z",
-"output":["ParseError", ["Comment", "Z"]]},
-
-{"description":"<!--`",
-"input":"<!--`",
-"output":["ParseError", ["Comment", "`"]]},
-
-{"description":"<!--a",
-"input":"<!--a",
-"output":["ParseError", ["Comment", "a"]]},
-
-{"description":"<!--b",
-"input":"<!--b",
-"output":["ParseError", ["Comment", "b"]]},
-
-{"description":"<!--y",
-"input":"<!--y",
-"output":["ParseError", ["Comment", "y"]]},
-
-{"description":"<!--z",
-"input":"<!--z",
-"output":["ParseError", ["Comment", "z"]]},
-
-{"description":"<!--{",
-"input":"<!--{",
-"output":["ParseError", ["Comment", "{"]]},
-
-{"description":"<!--\\uDBC0\\uDC00",
-"input":"<!--\uDBC0\uDC00",
-"output":["ParseError", ["Comment", "\uDBC0\uDC00"]]},
-
-{"description":"<!/",
-"input":"<!/",
-"output":["ParseError", ["Comment", "/"]]},
-
-{"description":"<!0",
-"input":"<!0",
-"output":["ParseError", ["Comment", "0"]]},
-
-{"description":"<!1",
-"input":"<!1",
-"output":["ParseError", ["Comment", "1"]]},
-
-{"description":"<!9",
-"input":"<!9",
-"output":["ParseError", ["Comment", "9"]]},
-
-{"description":"<!<",
-"input":"<!<",
-"output":["ParseError", ["Comment", "<"]]},
-
-{"description":"<!=",
-"input":"<!=",
-"output":["ParseError", ["Comment", "="]]},
-
-{"description":"<!>",
-"input":"<!>",
-"output":["ParseError", ["Comment", ""]]},
-
-{"description":"<!?",
-"input":"<!?",
-"output":["ParseError", ["Comment", "?"]]},
-
-{"description":"<!@",
-"input":"<!@",
-"output":["ParseError", ["Comment", "@"]]},
-
-{"description":"<!A",
-"input":"<!A",
-"output":["ParseError", ["Comment", "A"]]},
-
-{"description":"<!B",
-"input":"<!B",
-"output":["ParseError", ["Comment", "B"]]},
-
-{"description":"<!DOCTYPE",
-"input":"<!DOCTYPE",
-"output":["ParseError", ["DOCTYPE", null, null, null, false]]},
-
-{"description":"<!DOCTYPE\\u0000",
-"input":"<!DOCTYPE\u0000",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "\uFFFD", null, null, false]]},
-
-{"description":"<!DOCTYPE\\u0008",
-"input":"<!DOCTYPE\u0008",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "\u0008", null, null, false]]},
-
-{"description":"<!DOCTYPE\\u0009",
-"input":"<!DOCTYPE\u0009",
-"output":["ParseError", ["DOCTYPE", null, null, null, false]]},
-
-{"description":"<!DOCTYPE\\u000A",
-"input":"<!DOCTYPE\u000A",
-"output":["ParseError", ["DOCTYPE", null, null, null, false]]},
-
-{"description":"<!DOCTYPE\\u000B",
-"input":"<!DOCTYPE\u000B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "\u000B", null, null, false]]},
-
-{"description":"<!DOCTYPE\\u000C",
-"input":"<!DOCTYPE\u000C",
-"output":["ParseError", ["DOCTYPE", null, null, null, false]]},
-
-{"description":"<!DOCTYPE\\u000D",
-"input":"<!DOCTYPE\u000D",
-"output":["ParseError", ["DOCTYPE", null, null, null, false]]},
-
-{"description":"<!DOCTYPE\\u001F",
-"input":"<!DOCTYPE\u001F",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "\u001F", null, null, false]]},
-
-{"description":"<!DOCTYPE ",
-"input":"<!DOCTYPE ",
-"output":["ParseError", ["DOCTYPE", null, null, null, false]]},
-
-{"description":"<!DOCTYPE \\u0000",
-"input":"<!DOCTYPE \u0000",
-"output":["ParseError", "ParseError", ["DOCTYPE", "\uFFFD", null, null, false]]},
-
-{"description":"<!DOCTYPE \\u0008",
-"input":"<!DOCTYPE \u0008",
-"output":["ParseError", "ParseError", ["DOCTYPE", "\u0008", null, null, false]]},
-
-{"description":"<!DOCTYPE \\u0009",
-"input":"<!DOCTYPE \u0009",
-"output":["ParseError", ["DOCTYPE", null, null, null, false]]},
-
-{"description":"<!DOCTYPE \\u000A",
-"input":"<!DOCTYPE \u000A",
-"output":["ParseError", ["DOCTYPE", null, null, null, false]]},
-
-{"description":"<!DOCTYPE \\u000B",
-"input":"<!DOCTYPE \u000B",
-"output":["ParseError", "ParseError", ["DOCTYPE", "\u000B", null, null, false]]},
-
-{"description":"<!DOCTYPE \\u000C",
-"input":"<!DOCTYPE \u000C",
-"output":["ParseError", ["DOCTYPE", null, null, null, false]]},
-
-{"description":"<!DOCTYPE \\u000D",
-"input":"<!DOCTYPE \u000D",
-"output":["ParseError", ["DOCTYPE", null, null, null, false]]},
-
-{"description":"<!DOCTYPE \\u001F",
-"input":"<!DOCTYPE \u001F",
-"output":["ParseError", "ParseError", ["DOCTYPE", "\u001F", null, null, false]]},
-
-{"description":"<!DOCTYPE ",
-"input":"<!DOCTYPE ",
-"output":["ParseError", ["DOCTYPE", null, null, null, false]]},
-
-{"description":"<!DOCTYPE !",
-"input":"<!DOCTYPE !",
-"output":["ParseError", ["DOCTYPE", "!", null, null, false]]},
-
-{"description":"<!DOCTYPE \"",
-"input":"<!DOCTYPE \"",
-"output":["ParseError", ["DOCTYPE", "\"", null, null, false]]},
-
-{"description":"<!DOCTYPE &",
-"input":"<!DOCTYPE &",
-"output":["ParseError", ["DOCTYPE", "&", null, null, false]]},
-
-{"description":"<!DOCTYPE '",
-"input":"<!DOCTYPE '",
-"output":["ParseError", ["DOCTYPE", "'", null, null, false]]},
-
-{"description":"<!DOCTYPE -",
-"input":"<!DOCTYPE -",
-"output":["ParseError", ["DOCTYPE", "-", null, null, false]]},
-
-{"description":"<!DOCTYPE /",
-"input":"<!DOCTYPE /",
-"output":["ParseError", ["DOCTYPE", "/", null, null, false]]},
-
-{"description":"<!DOCTYPE 0",
-"input":"<!DOCTYPE 0",
-"output":["ParseError", ["DOCTYPE", "0", null, null, false]]},
-
-{"description":"<!DOCTYPE 1",
-"input":"<!DOCTYPE 1",
-"output":["ParseError", ["DOCTYPE", "1", null, null, false]]},
-
-{"description":"<!DOCTYPE 9",
-"input":"<!DOCTYPE 9",
-"output":["ParseError", ["DOCTYPE", "9", null, null, false]]},
-
-{"description":"<!DOCTYPE <",
-"input":"<!DOCTYPE <",
-"output":["ParseError", ["DOCTYPE", "<", null, null, false]]},
-
-{"description":"<!DOCTYPE =",
-"input":"<!DOCTYPE =",
-"output":["ParseError", ["DOCTYPE", "=", null, null, false]]},
-
-{"description":"<!DOCTYPE >",
-"input":"<!DOCTYPE >",
-"output":["ParseError", ["DOCTYPE", null, null, null, false]]},
-
-{"description":"<!DOCTYPE ?",
-"input":"<!DOCTYPE ?",
-"output":["ParseError", ["DOCTYPE", "?", null, null, false]]},
-
-{"description":"<!DOCTYPE @",
-"input":"<!DOCTYPE @",
-"output":["ParseError", ["DOCTYPE", "@", null, null, false]]},
-
-{"description":"<!DOCTYPE A",
-"input":"<!DOCTYPE A",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE B",
-"input":"<!DOCTYPE B",
-"output":["ParseError", ["DOCTYPE", "b", null, null, false]]},
-
-{"description":"<!DOCTYPE Y",
-"input":"<!DOCTYPE Y",
-"output":["ParseError", ["DOCTYPE", "y", null, null, false]]},
-
-{"description":"<!DOCTYPE Z",
-"input":"<!DOCTYPE Z",
-"output":["ParseError", ["DOCTYPE", "z", null, null, false]]},
-
-{"description":"<!DOCTYPE [",
-"input":"<!DOCTYPE [",
-"output":["ParseError", ["DOCTYPE", "[", null, null, false]]},
-
-{"description":"<!DOCTYPE `",
-"input":"<!DOCTYPE `",
-"output":["ParseError", ["DOCTYPE", "`", null, null, false]]},
-
-{"description":"<!DOCTYPE a",
-"input":"<!DOCTYPE a",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a\\u0000",
-"input":"<!DOCTYPE a\u0000",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a\uFFFD", null, null, false]]},
-
-{"description":"<!DOCTYPE a\\u0008",
-"input":"<!DOCTYPE a\u0008",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a\u0008", null, null, false]]},
-
-{"description":"<!DOCTYPE a\\u0009",
-"input":"<!DOCTYPE a\u0009",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a\\u000A",
-"input":"<!DOCTYPE a\u000A",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a\\u000B",
-"input":"<!DOCTYPE a\u000B",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a\u000B", null, null, false]]},
-
-{"description":"<!DOCTYPE a\\u000C",
-"input":"<!DOCTYPE a\u000C",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a\\u000D",
-"input":"<!DOCTYPE a\u000D",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a\\u001F",
-"input":"<!DOCTYPE a\u001F",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a\u001F", null, null, false]]},
-
-{"description":"<!DOCTYPE a ",
-"input":"<!DOCTYPE a ",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a \\u0000",
-"input":"<!DOCTYPE a \u0000",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a \\u0008",
-"input":"<!DOCTYPE a \u0008",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a \\u0009",
-"input":"<!DOCTYPE a \u0009",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a \\u000A",
-"input":"<!DOCTYPE a \u000A",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a \\u000B",
-"input":"<!DOCTYPE a \u000B",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a \\u000C",
-"input":"<!DOCTYPE a \u000C",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a \\u000D",
-"input":"<!DOCTYPE a \u000D",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a \\u001F",
-"input":"<!DOCTYPE a \u001F",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a ",
-"input":"<!DOCTYPE a ",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a !",
-"input":"<!DOCTYPE a !",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a \"",
-"input":"<!DOCTYPE a \"",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a &",
-"input":"<!DOCTYPE a &",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a '",
-"input":"<!DOCTYPE a '",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a -",
-"input":"<!DOCTYPE a -",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a /",
-"input":"<!DOCTYPE a /",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a 0",
-"input":"<!DOCTYPE a 0",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a 1",
-"input":"<!DOCTYPE a 1",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a 9",
-"input":"<!DOCTYPE a 9",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a <",
-"input":"<!DOCTYPE a <",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a =",
-"input":"<!DOCTYPE a =",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a >",
-"input":"<!DOCTYPE a >",
-"output":[["DOCTYPE", "a", null, null, true]]},
-
-{"description":"<!DOCTYPE a ?",
-"input":"<!DOCTYPE a ?",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a @",
-"input":"<!DOCTYPE a @",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a A",
-"input":"<!DOCTYPE a A",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a B",
-"input":"<!DOCTYPE a B",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC",
-"input":"<!DOCTYPE a PUBLIC",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\\u0000",
-"input":"<!DOCTYPE a PUBLIC\u0000",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\\u0008",
-"input":"<!DOCTYPE a PUBLIC\u0008",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\\u0009",
-"input":"<!DOCTYPE a PUBLIC\u0009",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\\u000A",
-"input":"<!DOCTYPE a PUBLIC\u000A",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\\u000B",
-"input":"<!DOCTYPE a PUBLIC\u000B",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\\u000C",
-"input":"<!DOCTYPE a PUBLIC\u000C",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\\u000D",
-"input":"<!DOCTYPE a PUBLIC\u000D",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\\u001F",
-"input":"<!DOCTYPE a PUBLIC\u001F",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC ",
-"input":"<!DOCTYPE a PUBLIC ",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC!",
-"input":"<!DOCTYPE a PUBLIC!",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"",
-"input":"<!DOCTYPE a PUBLIC\"",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"\\u0000",
-"input":"<!DOCTYPE a PUBLIC\"\u0000",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"\\u0009",
-"input":"<!DOCTYPE a PUBLIC\"\u0009",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u0009", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"\\u000A",
-"input":"<!DOCTYPE a PUBLIC\"\u000A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000A", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"\\u000B",
-"input":"<!DOCTYPE a PUBLIC\"\u000B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"\\u000C",
-"input":"<!DOCTYPE a PUBLIC\"\u000C",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000C", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\" ",
-"input":"<!DOCTYPE a PUBLIC\" ",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", " ", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"!",
-"input":"<!DOCTYPE a PUBLIC\"!",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "!", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"\"",
-"input":"<!DOCTYPE a PUBLIC\"\"",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"#",
-"input":"<!DOCTYPE a PUBLIC\"#",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "#", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"&",
-"input":"<!DOCTYPE a PUBLIC\"&",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "&", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"'",
-"input":"<!DOCTYPE a PUBLIC\"'",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "'", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"-",
-"input":"<!DOCTYPE a PUBLIC\"-",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "-", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"/",
-"input":"<!DOCTYPE a PUBLIC\"/",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "/", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"0",
-"input":"<!DOCTYPE a PUBLIC\"0",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "0", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"1",
-"input":"<!DOCTYPE a PUBLIC\"1",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "1", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"9",
-"input":"<!DOCTYPE a PUBLIC\"9",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "9", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"<",
-"input":"<!DOCTYPE a PUBLIC\"<",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "<", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"=",
-"input":"<!DOCTYPE a PUBLIC\"=",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "=", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\">",
-"input":"<!DOCTYPE a PUBLIC\">",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"?",
-"input":"<!DOCTYPE a PUBLIC\"?",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "?", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"@",
-"input":"<!DOCTYPE a PUBLIC\"@",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "@", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"A",
-"input":"<!DOCTYPE a PUBLIC\"A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "A", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"B",
-"input":"<!DOCTYPE a PUBLIC\"B",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "B", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"Y",
-"input":"<!DOCTYPE a PUBLIC\"Y",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Y", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"Z",
-"input":"<!DOCTYPE a PUBLIC\"Z",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Z", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"`",
-"input":"<!DOCTYPE a PUBLIC\"`",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "`", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"a",
-"input":"<!DOCTYPE a PUBLIC\"a",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "a", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"b",
-"input":"<!DOCTYPE a PUBLIC\"b",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "b", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"y",
-"input":"<!DOCTYPE a PUBLIC\"y",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "y", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"z",
-"input":"<!DOCTYPE a PUBLIC\"z",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "z", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"{",
-"input":"<!DOCTYPE a PUBLIC\"{",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "{", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\"\\uDBC0\\uDC00",
-"input":"<!DOCTYPE a PUBLIC\"\uDBC0\uDC00",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC#",
-"input":"<!DOCTYPE a PUBLIC#",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC&",
-"input":"<!DOCTYPE a PUBLIC&",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'",
-"input":"<!DOCTYPE a PUBLIC'",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'\\u0000",
-"input":"<!DOCTYPE a PUBLIC'\u0000",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'\\u0009",
-"input":"<!DOCTYPE a PUBLIC'\u0009",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u0009", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'\\u000A",
-"input":"<!DOCTYPE a PUBLIC'\u000A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000A", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'\\u000B",
-"input":"<!DOCTYPE a PUBLIC'\u000B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'\\u000C",
-"input":"<!DOCTYPE a PUBLIC'\u000C",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000C", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC' ",
-"input":"<!DOCTYPE a PUBLIC' ",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", " ", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'!",
-"input":"<!DOCTYPE a PUBLIC'!",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "!", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'\"",
-"input":"<!DOCTYPE a PUBLIC'\"",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\"", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'&",
-"input":"<!DOCTYPE a PUBLIC'&",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "&", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''",
-"input":"<!DOCTYPE a PUBLIC''",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''\\u0000",
-"input":"<!DOCTYPE a PUBLIC''\u0000",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''\\u0008",
-"input":"<!DOCTYPE a PUBLIC''\u0008",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''\\u0009",
-"input":"<!DOCTYPE a PUBLIC''\u0009",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''\\u000A",
-"input":"<!DOCTYPE a PUBLIC''\u000A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''\\u000B",
-"input":"<!DOCTYPE a PUBLIC''\u000B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''\\u000C",
-"input":"<!DOCTYPE a PUBLIC''\u000C",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''\\u000D",
-"input":"<!DOCTYPE a PUBLIC''\u000D",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''\\u001F",
-"input":"<!DOCTYPE a PUBLIC''\u001F",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'' ",
-"input":"<!DOCTYPE a PUBLIC'' ",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''!",
-"input":"<!DOCTYPE a PUBLIC''!",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''\"",
-"input":"<!DOCTYPE a PUBLIC''\"",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", "", false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''#",
-"input":"<!DOCTYPE a PUBLIC''#",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''&",
-"input":"<!DOCTYPE a PUBLIC''&",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'''",
-"input":"<!DOCTYPE a PUBLIC'''",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", "", false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''(",
-"input":"<!DOCTYPE a PUBLIC''(",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''-",
-"input":"<!DOCTYPE a PUBLIC''-",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''/",
-"input":"<!DOCTYPE a PUBLIC''/",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''0",
-"input":"<!DOCTYPE a PUBLIC''0",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''1",
-"input":"<!DOCTYPE a PUBLIC''1",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''9",
-"input":"<!DOCTYPE a PUBLIC''9",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''<",
-"input":"<!DOCTYPE a PUBLIC''<",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''=",
-"input":"<!DOCTYPE a PUBLIC''=",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''>",
-"input":"<!DOCTYPE a PUBLIC''>",
-"output":["ParseError", ["DOCTYPE", "a", "", null, true]]},
-
-{"description":"<!DOCTYPE a PUBLIC''?",
-"input":"<!DOCTYPE a PUBLIC''?",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''@",
-"input":"<!DOCTYPE a PUBLIC''@",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''A",
-"input":"<!DOCTYPE a PUBLIC''A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''B",
-"input":"<!DOCTYPE a PUBLIC''B",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''Y",
-"input":"<!DOCTYPE a PUBLIC''Y",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''Z",
-"input":"<!DOCTYPE a PUBLIC''Z",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''`",
-"input":"<!DOCTYPE a PUBLIC''`",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''a",
-"input":"<!DOCTYPE a PUBLIC''a",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''b",
-"input":"<!DOCTYPE a PUBLIC''b",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''y",
-"input":"<!DOCTYPE a PUBLIC''y",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''z",
-"input":"<!DOCTYPE a PUBLIC''z",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''{",
-"input":"<!DOCTYPE a PUBLIC''{",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC''\\uDBC0\\uDC00",
-"input":"<!DOCTYPE a PUBLIC''\uDBC0\uDC00",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'(",
-"input":"<!DOCTYPE a PUBLIC'(",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "(", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'-",
-"input":"<!DOCTYPE a PUBLIC'-",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "-", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'/",
-"input":"<!DOCTYPE a PUBLIC'/",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "/", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'0",
-"input":"<!DOCTYPE a PUBLIC'0",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "0", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'1",
-"input":"<!DOCTYPE a PUBLIC'1",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "1", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'9",
-"input":"<!DOCTYPE a PUBLIC'9",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "9", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'<",
-"input":"<!DOCTYPE a PUBLIC'<",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "<", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'=",
-"input":"<!DOCTYPE a PUBLIC'=",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "=", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'>",
-"input":"<!DOCTYPE a PUBLIC'>",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'?",
-"input":"<!DOCTYPE a PUBLIC'?",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "?", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'@",
-"input":"<!DOCTYPE a PUBLIC'@",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "@", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'A",
-"input":"<!DOCTYPE a PUBLIC'A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "A", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'B",
-"input":"<!DOCTYPE a PUBLIC'B",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "B", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'Y",
-"input":"<!DOCTYPE a PUBLIC'Y",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Y", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'Z",
-"input":"<!DOCTYPE a PUBLIC'Z",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Z", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'`",
-"input":"<!DOCTYPE a PUBLIC'`",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "`", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'a",
-"input":"<!DOCTYPE a PUBLIC'a",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "a", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'b",
-"input":"<!DOCTYPE a PUBLIC'b",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "b", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'y",
-"input":"<!DOCTYPE a PUBLIC'y",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "y", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'z",
-"input":"<!DOCTYPE a PUBLIC'z",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "z", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'{",
-"input":"<!DOCTYPE a PUBLIC'{",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "{", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC'\\uDBC0\\uDC00",
-"input":"<!DOCTYPE a PUBLIC'\uDBC0\uDC00",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC(",
-"input":"<!DOCTYPE a PUBLIC(",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC-",
-"input":"<!DOCTYPE a PUBLIC-",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC/",
-"input":"<!DOCTYPE a PUBLIC/",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC0",
-"input":"<!DOCTYPE a PUBLIC0",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC1",
-"input":"<!DOCTYPE a PUBLIC1",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC9",
-"input":"<!DOCTYPE a PUBLIC9",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC<",
-"input":"<!DOCTYPE a PUBLIC<",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC=",
-"input":"<!DOCTYPE a PUBLIC=",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC>",
-"input":"<!DOCTYPE a PUBLIC>",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC?",
-"input":"<!DOCTYPE a PUBLIC?",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC@",
-"input":"<!DOCTYPE a PUBLIC@",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLICA",
-"input":"<!DOCTYPE a PUBLICA",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLICB",
-"input":"<!DOCTYPE a PUBLICB",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLICY",
-"input":"<!DOCTYPE a PUBLICY",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLICZ",
-"input":"<!DOCTYPE a PUBLICZ",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC`",
-"input":"<!DOCTYPE a PUBLIC`",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLICa",
-"input":"<!DOCTYPE a PUBLICa",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLICb",
-"input":"<!DOCTYPE a PUBLICb",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLICy",
-"input":"<!DOCTYPE a PUBLICy",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLICz",
-"input":"<!DOCTYPE a PUBLICz",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC{",
-"input":"<!DOCTYPE a PUBLIC{",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a PUBLIC\\uDBC0\\uDC00",
-"input":"<!DOCTYPE a PUBLIC\uDBC0\uDC00",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM",
-"input":"<!DOCTYPE a SYSTEM",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\\u0000",
-"input":"<!DOCTYPE a SYSTEM\u0000",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\\u0008",
-"input":"<!DOCTYPE a SYSTEM\u0008",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\\u0009",
-"input":"<!DOCTYPE a SYSTEM\u0009",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\\u000A",
-"input":"<!DOCTYPE a SYSTEM\u000A",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\\u000B",
-"input":"<!DOCTYPE a SYSTEM\u000B",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\\u000C",
-"input":"<!DOCTYPE a SYSTEM\u000C",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\\u000D",
-"input":"<!DOCTYPE a SYSTEM\u000D",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\\u001F",
-"input":"<!DOCTYPE a SYSTEM\u001F",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM ",
-"input":"<!DOCTYPE a SYSTEM ",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM!",
-"input":"<!DOCTYPE a SYSTEM!",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"",
-"input":"<!DOCTYPE a SYSTEM\"",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"\\u0000",
-"input":"<!DOCTYPE a SYSTEM\"\u0000",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"\\u0009",
-"input":"<!DOCTYPE a SYSTEM\"\u0009",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u0009", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"\\u000A",
-"input":"<!DOCTYPE a SYSTEM\"\u000A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000A", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"\\u000B",
-"input":"<!DOCTYPE a SYSTEM\"\u000B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"\\u000C",
-"input":"<!DOCTYPE a SYSTEM\"\u000C",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000C", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\" ",
-"input":"<!DOCTYPE a SYSTEM\" ",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, " ", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"!",
-"input":"<!DOCTYPE a SYSTEM\"!",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "!", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"\"",
-"input":"<!DOCTYPE a SYSTEM\"\"",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"#",
-"input":"<!DOCTYPE a SYSTEM\"#",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "#", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"&",
-"input":"<!DOCTYPE a SYSTEM\"&",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "&", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"'",
-"input":"<!DOCTYPE a SYSTEM\"'",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "'", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"-",
-"input":"<!DOCTYPE a SYSTEM\"-",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "-", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"/",
-"input":"<!DOCTYPE a SYSTEM\"/",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "/", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"0",
-"input":"<!DOCTYPE a SYSTEM\"0",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "0", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"1",
-"input":"<!DOCTYPE a SYSTEM\"1",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "1", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"9",
-"input":"<!DOCTYPE a SYSTEM\"9",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "9", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"<",
-"input":"<!DOCTYPE a SYSTEM\"<",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "<", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"=",
-"input":"<!DOCTYPE a SYSTEM\"=",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "=", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\">",
-"input":"<!DOCTYPE a SYSTEM\">",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"?",
-"input":"<!DOCTYPE a SYSTEM\"?",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "?", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"@",
-"input":"<!DOCTYPE a SYSTEM\"@",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "@", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"A",
-"input":"<!DOCTYPE a SYSTEM\"A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "A", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"B",
-"input":"<!DOCTYPE a SYSTEM\"B",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "B", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"Y",
-"input":"<!DOCTYPE a SYSTEM\"Y",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Y", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"Z",
-"input":"<!DOCTYPE a SYSTEM\"Z",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Z", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"`",
-"input":"<!DOCTYPE a SYSTEM\"`",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "`", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"a",
-"input":"<!DOCTYPE a SYSTEM\"a",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "a", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"b",
-"input":"<!DOCTYPE a SYSTEM\"b",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "b", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"y",
-"input":"<!DOCTYPE a SYSTEM\"y",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "y", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"z",
-"input":"<!DOCTYPE a SYSTEM\"z",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "z", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"{",
-"input":"<!DOCTYPE a SYSTEM\"{",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "{", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\"\\uDBC0\\uDC00",
-"input":"<!DOCTYPE a SYSTEM\"\uDBC0\uDC00",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM#",
-"input":"<!DOCTYPE a SYSTEM#",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM&",
-"input":"<!DOCTYPE a SYSTEM&",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'",
-"input":"<!DOCTYPE a SYSTEM'",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'\\u0000",
-"input":"<!DOCTYPE a SYSTEM'\u0000",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'\\u0009",
-"input":"<!DOCTYPE a SYSTEM'\u0009",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u0009", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'\\u000A",
-"input":"<!DOCTYPE a SYSTEM'\u000A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000A", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'\\u000B",
-"input":"<!DOCTYPE a SYSTEM'\u000B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'\\u000C",
-"input":"<!DOCTYPE a SYSTEM'\u000C",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000C", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM' ",
-"input":"<!DOCTYPE a SYSTEM' ",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, " ", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'!",
-"input":"<!DOCTYPE a SYSTEM'!",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "!", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'\"",
-"input":"<!DOCTYPE a SYSTEM'\"",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\"", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'&",
-"input":"<!DOCTYPE a SYSTEM'&",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "&", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM''",
-"input":"<!DOCTYPE a SYSTEM''",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM''\\u0000",
-"input":"<!DOCTYPE a SYSTEM''\u0000",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''\\u0008",
-"input":"<!DOCTYPE a SYSTEM''\u0008",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''\\u0009",
-"input":"<!DOCTYPE a SYSTEM''\u0009",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM''\\u000A",
-"input":"<!DOCTYPE a SYSTEM''\u000A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM''\\u000B",
-"input":"<!DOCTYPE a SYSTEM''\u000B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''\\u000C",
-"input":"<!DOCTYPE a SYSTEM''\u000C",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM''\\u000D",
-"input":"<!DOCTYPE a SYSTEM''\u000D",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM''\\u001F",
-"input":"<!DOCTYPE a SYSTEM''\u001F",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM'' ",
-"input":"<!DOCTYPE a SYSTEM'' ",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM''!",
-"input":"<!DOCTYPE a SYSTEM''!",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''\"",
-"input":"<!DOCTYPE a SYSTEM''\"",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''&",
-"input":"<!DOCTYPE a SYSTEM''&",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM'''",
-"input":"<!DOCTYPE a SYSTEM'''",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''-",
-"input":"<!DOCTYPE a SYSTEM''-",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''/",
-"input":"<!DOCTYPE a SYSTEM''/",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''0",
-"input":"<!DOCTYPE a SYSTEM''0",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''1",
-"input":"<!DOCTYPE a SYSTEM''1",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''9",
-"input":"<!DOCTYPE a SYSTEM''9",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''<",
-"input":"<!DOCTYPE a SYSTEM''<",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''=",
-"input":"<!DOCTYPE a SYSTEM''=",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''>",
-"input":"<!DOCTYPE a SYSTEM''>",
-"output":["ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''?",
-"input":"<!DOCTYPE a SYSTEM''?",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''@",
-"input":"<!DOCTYPE a SYSTEM''@",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''A",
-"input":"<!DOCTYPE a SYSTEM''A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''B",
-"input":"<!DOCTYPE a SYSTEM''B",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''Y",
-"input":"<!DOCTYPE a SYSTEM''Y",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''Z",
-"input":"<!DOCTYPE a SYSTEM''Z",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''`",
-"input":"<!DOCTYPE a SYSTEM''`",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''a",
-"input":"<!DOCTYPE a SYSTEM''a",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''b",
-"input":"<!DOCTYPE a SYSTEM''b",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''y",
-"input":"<!DOCTYPE a SYSTEM''y",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''z",
-"input":"<!DOCTYPE a SYSTEM''z",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''{",
-"input":"<!DOCTYPE a SYSTEM''{",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM''\\uDBC0\\uDC00",
-"input":"<!DOCTYPE a SYSTEM''\uDBC0\uDC00",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPE a SYSTEM'(",
-"input":"<!DOCTYPE a SYSTEM'(",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "(", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'-",
-"input":"<!DOCTYPE a SYSTEM'-",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "-", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'/",
-"input":"<!DOCTYPE a SYSTEM'/",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "/", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'0",
-"input":"<!DOCTYPE a SYSTEM'0",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "0", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'1",
-"input":"<!DOCTYPE a SYSTEM'1",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "1", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'9",
-"input":"<!DOCTYPE a SYSTEM'9",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "9", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'<",
-"input":"<!DOCTYPE a SYSTEM'<",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "<", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'=",
-"input":"<!DOCTYPE a SYSTEM'=",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "=", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'>",
-"input":"<!DOCTYPE a SYSTEM'>",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'?",
-"input":"<!DOCTYPE a SYSTEM'?",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "?", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'@",
-"input":"<!DOCTYPE a SYSTEM'@",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "@", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'A",
-"input":"<!DOCTYPE a SYSTEM'A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "A", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'B",
-"input":"<!DOCTYPE a SYSTEM'B",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "B", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'Y",
-"input":"<!DOCTYPE a SYSTEM'Y",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Y", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'Z",
-"input":"<!DOCTYPE a SYSTEM'Z",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Z", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'`",
-"input":"<!DOCTYPE a SYSTEM'`",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "`", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'a",
-"input":"<!DOCTYPE a SYSTEM'a",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "a", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'b",
-"input":"<!DOCTYPE a SYSTEM'b",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "b", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'y",
-"input":"<!DOCTYPE a SYSTEM'y",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "y", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'z",
-"input":"<!DOCTYPE a SYSTEM'z",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "z", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'{",
-"input":"<!DOCTYPE a SYSTEM'{",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "{", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM'\\uDBC0\\uDC00",
-"input":"<!DOCTYPE a SYSTEM'\uDBC0\uDC00",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]},
-
-{"description":"<!DOCTYPE a SYSTEM(",
-"input":"<!DOCTYPE a SYSTEM(",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM-",
-"input":"<!DOCTYPE a SYSTEM-",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM/",
-"input":"<!DOCTYPE a SYSTEM/",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM0",
-"input":"<!DOCTYPE a SYSTEM0",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM1",
-"input":"<!DOCTYPE a SYSTEM1",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM9",
-"input":"<!DOCTYPE a SYSTEM9",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM<",
-"input":"<!DOCTYPE a SYSTEM<",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM=",
-"input":"<!DOCTYPE a SYSTEM=",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM>",
-"input":"<!DOCTYPE a SYSTEM>",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM?",
-"input":"<!DOCTYPE a SYSTEM?",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM@",
-"input":"<!DOCTYPE a SYSTEM@",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEMA",
-"input":"<!DOCTYPE a SYSTEMA",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEMB",
-"input":"<!DOCTYPE a SYSTEMB",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEMY",
-"input":"<!DOCTYPE a SYSTEMY",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEMZ",
-"input":"<!DOCTYPE a SYSTEMZ",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM`",
-"input":"<!DOCTYPE a SYSTEM`",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEMa",
-"input":"<!DOCTYPE a SYSTEMa",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEMb",
-"input":"<!DOCTYPE a SYSTEMb",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEMy",
-"input":"<!DOCTYPE a SYSTEMy",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEMz",
-"input":"<!DOCTYPE a SYSTEMz",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM{",
-"input":"<!DOCTYPE a SYSTEM{",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a SYSTEM\\uDBC0\\uDC00",
-"input":"<!DOCTYPE a SYSTEM\uDBC0\uDC00",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a Y",
-"input":"<!DOCTYPE a Y",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a Z",
-"input":"<!DOCTYPE a Z",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a `",
-"input":"<!DOCTYPE a `",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a",
-"input":"<!DOCTYPE a a",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a\\u0000",
-"input":"<!DOCTYPE a a\u0000",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a\\u0009",
-"input":"<!DOCTYPE a a\u0009",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a\\u000A",
-"input":"<!DOCTYPE a a\u000A",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a\\u000B",
-"input":"<!DOCTYPE a a\u000B",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a\\u000C",
-"input":"<!DOCTYPE a a\u000C",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a ",
-"input":"<!DOCTYPE a a ",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a!",
-"input":"<!DOCTYPE a a!",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a\"",
-"input":"<!DOCTYPE a a\"",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a&",
-"input":"<!DOCTYPE a a&",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a'",
-"input":"<!DOCTYPE a a'",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a-",
-"input":"<!DOCTYPE a a-",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a/",
-"input":"<!DOCTYPE a a/",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a0",
-"input":"<!DOCTYPE a a0",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a1",
-"input":"<!DOCTYPE a a1",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a9",
-"input":"<!DOCTYPE a a9",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a<",
-"input":"<!DOCTYPE a a<",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a=",
-"input":"<!DOCTYPE a a=",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a>",
-"input":"<!DOCTYPE a a>",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a?",
-"input":"<!DOCTYPE a a?",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a@",
-"input":"<!DOCTYPE a a@",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a aA",
-"input":"<!DOCTYPE a aA",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a aB",
-"input":"<!DOCTYPE a aB",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a aY",
-"input":"<!DOCTYPE a aY",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a aZ",
-"input":"<!DOCTYPE a aZ",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a`",
-"input":"<!DOCTYPE a a`",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a aa",
-"input":"<!DOCTYPE a aa",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a ab",
-"input":"<!DOCTYPE a ab",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a ay",
-"input":"<!DOCTYPE a ay",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a az",
-"input":"<!DOCTYPE a az",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a{",
-"input":"<!DOCTYPE a a{",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a a\\uDBC0\\uDC00",
-"input":"<!DOCTYPE a a\uDBC0\uDC00",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a b",
-"input":"<!DOCTYPE a b",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a y",
-"input":"<!DOCTYPE a y",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a z",
-"input":"<!DOCTYPE a z",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a {",
-"input":"<!DOCTYPE a {",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a \\uDBC0\\uDC00",
-"input":"<!DOCTYPE a \uDBC0\uDC00",
-"output":["ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPE a!",
-"input":"<!DOCTYPE a!",
-"output":["ParseError", ["DOCTYPE", "a!", null, null, false]]},
-
-{"description":"<!DOCTYPE a\"",
-"input":"<!DOCTYPE a\"",
-"output":["ParseError", ["DOCTYPE", "a\"", null, null, false]]},
-
-{"description":"<!DOCTYPE a&",
-"input":"<!DOCTYPE a&",
-"output":["ParseError", ["DOCTYPE", "a&", null, null, false]]},
-
-{"description":"<!DOCTYPE a'",
-"input":"<!DOCTYPE a'",
-"output":["ParseError", ["DOCTYPE", "a'", null, null, false]]},
-
-{"description":"<!DOCTYPE a-",
-"input":"<!DOCTYPE a-",
-"output":["ParseError", ["DOCTYPE", "a-", null, null, false]]},
-
-{"description":"<!DOCTYPE a/",
-"input":"<!DOCTYPE a/",
-"output":["ParseError", ["DOCTYPE", "a/", null, null, false]]},
-
-{"description":"<!DOCTYPE a0",
-"input":"<!DOCTYPE a0",
-"output":["ParseError", ["DOCTYPE", "a0", null, null, false]]},
-
-{"description":"<!DOCTYPE a1",
-"input":"<!DOCTYPE a1",
-"output":["ParseError", ["DOCTYPE", "a1", null, null, false]]},
-
-{"description":"<!DOCTYPE a9",
-"input":"<!DOCTYPE a9",
-"output":["ParseError", ["DOCTYPE", "a9", null, null, false]]},
-
-{"description":"<!DOCTYPE a<",
-"input":"<!DOCTYPE a<",
-"output":["ParseError", ["DOCTYPE", "a<", null, null, false]]},
-
-{"description":"<!DOCTYPE a=",
-"input":"<!DOCTYPE a=",
-"output":["ParseError", ["DOCTYPE", "a=", null, null, false]]},
-
-{"description":"<!DOCTYPE a>",
-"input":"<!DOCTYPE a>",
-"output":[["DOCTYPE", "a", null, null, true]]},
-
-{"description":"<!DOCTYPE a?",
-"input":"<!DOCTYPE a?",
-"output":["ParseError", ["DOCTYPE", "a?", null, null, false]]},
-
-{"description":"<!DOCTYPE a@",
-"input":"<!DOCTYPE a@",
-"output":["ParseError", ["DOCTYPE", "a@", null, null, false]]},
-
-{"description":"<!DOCTYPE aA",
-"input":"<!DOCTYPE aA",
-"output":["ParseError", ["DOCTYPE", "aa", null, null, false]]},
-
-{"description":"<!DOCTYPE aB",
-"input":"<!DOCTYPE aB",
-"output":["ParseError", ["DOCTYPE", "ab", null, null, false]]},
-
-{"description":"<!DOCTYPE aY",
-"input":"<!DOCTYPE aY",
-"output":["ParseError", ["DOCTYPE", "ay", null, null, false]]},
-
-{"description":"<!DOCTYPE aZ",
-"input":"<!DOCTYPE aZ",
-"output":["ParseError", ["DOCTYPE", "az", null, null, false]]},
-
-{"description":"<!DOCTYPE a[",
-"input":"<!DOCTYPE a[",
-"output":["ParseError", ["DOCTYPE", "a[", null, null, false]]},
-
-{"description":"<!DOCTYPE a`",
-"input":"<!DOCTYPE a`",
-"output":["ParseError", ["DOCTYPE", "a`", null, null, false]]},
-
-{"description":"<!DOCTYPE aa",
-"input":"<!DOCTYPE aa",
-"output":["ParseError", ["DOCTYPE", "aa", null, null, false]]},
-
-{"description":"<!DOCTYPE ab",
-"input":"<!DOCTYPE ab",
-"output":["ParseError", ["DOCTYPE", "ab", null, null, false]]},
-
-{"description":"<!DOCTYPE ay",
-"input":"<!DOCTYPE ay",
-"output":["ParseError", ["DOCTYPE", "ay", null, null, false]]},
-
-{"description":"<!DOCTYPE az",
-"input":"<!DOCTYPE az",
-"output":["ParseError", ["DOCTYPE", "az", null, null, false]]},
-
-{"description":"<!DOCTYPE a{",
-"input":"<!DOCTYPE a{",
-"output":["ParseError", ["DOCTYPE", "a{", null, null, false]]},
-
-{"description":"<!DOCTYPE a\\uDBC0\\uDC00",
-"input":"<!DOCTYPE a\uDBC0\uDC00",
-"output":["ParseError", ["DOCTYPE", "a\uDBC0\uDC00", null, null, false]]},
-
-{"description":"<!DOCTYPE b",
-"input":"<!DOCTYPE b",
-"output":["ParseError", ["DOCTYPE", "b", null, null, false]]},
-
-{"description":"<!DOCTYPE y",
-"input":"<!DOCTYPE y",
-"output":["ParseError", ["DOCTYPE", "y", null, null, false]]},
-
-{"description":"<!DOCTYPE z",
-"input":"<!DOCTYPE z",
-"output":["ParseError", ["DOCTYPE", "z", null, null, false]]},
-
-{"description":"<!DOCTYPE {",
-"input":"<!DOCTYPE {",
-"output":["ParseError", ["DOCTYPE", "{", null, null, false]]},
-
-{"description":"<!DOCTYPE \\uDBC0\\uDC00",
-"input":"<!DOCTYPE \uDBC0\uDC00",
-"output":["ParseError", ["DOCTYPE", "\uDBC0\uDC00", null, null, false]]},
-
-{"description":"<!DOCTYPE!",
-"input":"<!DOCTYPE!",
-"output":["ParseError", "ParseError", ["DOCTYPE", "!", null, null, false]]},
-
-{"description":"<!DOCTYPE\"",
-"input":"<!DOCTYPE\"",
-"output":["ParseError", "ParseError", ["DOCTYPE", "\"", null, null, false]]},
-
-{"description":"<!DOCTYPE&",
-"input":"<!DOCTYPE&",
-"output":["ParseError", "ParseError", ["DOCTYPE", "&", null, null, false]]},
-
-{"description":"<!DOCTYPE'",
-"input":"<!DOCTYPE'",
-"output":["ParseError", "ParseError", ["DOCTYPE", "'", null, null, false]]},
-
-{"description":"<!DOCTYPE-",
-"input":"<!DOCTYPE-",
-"output":["ParseError", "ParseError", ["DOCTYPE", "-", null, null, false]]},
-
-{"description":"<!DOCTYPE/",
-"input":"<!DOCTYPE/",
-"output":["ParseError", "ParseError", ["DOCTYPE", "/", null, null, false]]},
-
-{"description":"<!DOCTYPE0",
-"input":"<!DOCTYPE0",
-"output":["ParseError", "ParseError", ["DOCTYPE", "0", null, null, false]]},
-
-{"description":"<!DOCTYPE1",
-"input":"<!DOCTYPE1",
-"output":["ParseError", "ParseError", ["DOCTYPE", "1", null, null, false]]},
-
-{"description":"<!DOCTYPE9",
-"input":"<!DOCTYPE9",
-"output":["ParseError", "ParseError", ["DOCTYPE", "9", null, null, false]]},
-
-{"description":"<!DOCTYPE<",
-"input":"<!DOCTYPE<",
-"output":["ParseError", "ParseError", ["DOCTYPE", "<", null, null, false]]},
-
-{"description":"<!DOCTYPE=",
-"input":"<!DOCTYPE=",
-"output":["ParseError", "ParseError", ["DOCTYPE", "=", null, null, false]]},
-
-{"description":"<!DOCTYPE>",
-"input":"<!DOCTYPE>",
-"output":["ParseError", "ParseError", ["DOCTYPE", null, null, null, false]]},
-
-{"description":"<!DOCTYPE?",
-"input":"<!DOCTYPE?",
-"output":["ParseError", "ParseError", ["DOCTYPE", "?", null, null, false]]},
-
-{"description":"<!DOCTYPE@",
-"input":"<!DOCTYPE@",
-"output":["ParseError", "ParseError", ["DOCTYPE", "@", null, null, false]]},
-
-{"description":"<!DOCTYPEA",
-"input":"<!DOCTYPEA",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEB",
-"input":"<!DOCTYPEB",
-"output":["ParseError", "ParseError", ["DOCTYPE", "b", null, null, false]]},
-
-{"description":"<!DOCTYPEY",
-"input":"<!DOCTYPEY",
-"output":["ParseError", "ParseError", ["DOCTYPE", "y", null, null, false]]},
-
-{"description":"<!DOCTYPEZ",
-"input":"<!DOCTYPEZ",
-"output":["ParseError", "ParseError", ["DOCTYPE", "z", null, null, false]]},
-
-{"description":"<!DOCTYPE`",
-"input":"<!DOCTYPE`",
-"output":["ParseError", "ParseError", ["DOCTYPE", "`", null, null, false]]},
-
-{"description":"<!DOCTYPEa",
-"input":"<!DOCTYPEa",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa\\u0000",
-"input":"<!DOCTYPEa\u0000",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a\uFFFD", null, null, false]]},
-
-{"description":"<!DOCTYPEa\\u0008",
-"input":"<!DOCTYPEa\u0008",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a\u0008", null, null, false]]},
-
-{"description":"<!DOCTYPEa\\u0009",
-"input":"<!DOCTYPEa\u0009",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa\\u000A",
-"input":"<!DOCTYPEa\u000A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa\\u000B",
-"input":"<!DOCTYPEa\u000B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a\u000B", null, null, false]]},
-
-{"description":"<!DOCTYPEa\\u000C",
-"input":"<!DOCTYPEa\u000C",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa\\u000D",
-"input":"<!DOCTYPEa\u000D",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa\\u001F",
-"input":"<!DOCTYPEa\u001F",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a\u001F", null, null, false]]},
-
-{"description":"<!DOCTYPEa ",
-"input":"<!DOCTYPEa ",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa \\u0000",
-"input":"<!DOCTYPEa \u0000",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa \\u0008",
-"input":"<!DOCTYPEa \u0008",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa \\u0009",
-"input":"<!DOCTYPEa \u0009",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa \\u000A",
-"input":"<!DOCTYPEa \u000A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa \\u000B",
-"input":"<!DOCTYPEa \u000B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa \\u000C",
-"input":"<!DOCTYPEa \u000C",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa \\u000D",
-"input":"<!DOCTYPEa \u000D",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa \\u001F",
-"input":"<!DOCTYPEa \u001F",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa ",
-"input":"<!DOCTYPEa ",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa !",
-"input":"<!DOCTYPEa !",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa \"",
-"input":"<!DOCTYPEa \"",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa &",
-"input":"<!DOCTYPEa &",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa '",
-"input":"<!DOCTYPEa '",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa -",
-"input":"<!DOCTYPEa -",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa /",
-"input":"<!DOCTYPEa /",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa 0",
-"input":"<!DOCTYPEa 0",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa 1",
-"input":"<!DOCTYPEa 1",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa 9",
-"input":"<!DOCTYPEa 9",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa <",
-"input":"<!DOCTYPEa <",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa =",
-"input":"<!DOCTYPEa =",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa >",
-"input":"<!DOCTYPEa >",
-"output":["ParseError", ["DOCTYPE", "a", null, null, true]]},
-
-{"description":"<!DOCTYPEa ?",
-"input":"<!DOCTYPEa ?",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa @",
-"input":"<!DOCTYPEa @",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa A",
-"input":"<!DOCTYPEa A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa B",
-"input":"<!DOCTYPEa B",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC",
-"input":"<!DOCTYPEa PUBLIC",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\\u0000",
-"input":"<!DOCTYPEa PUBLIC\u0000",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\\u0008",
-"input":"<!DOCTYPEa PUBLIC\u0008",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\\u0009",
-"input":"<!DOCTYPEa PUBLIC\u0009",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\\u000A",
-"input":"<!DOCTYPEa PUBLIC\u000A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\\u000B",
-"input":"<!DOCTYPEa PUBLIC\u000B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\\u000C",
-"input":"<!DOCTYPEa PUBLIC\u000C",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\\u000D",
-"input":"<!DOCTYPEa PUBLIC\u000D",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\\u001F",
-"input":"<!DOCTYPEa PUBLIC\u001F",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC ",
-"input":"<!DOCTYPEa PUBLIC ",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC!",
-"input":"<!DOCTYPEa PUBLIC!",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"",
-"input":"<!DOCTYPEa PUBLIC\"",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"\\u0000",
-"input":"<!DOCTYPEa PUBLIC\"\u0000",
-"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"\\u0009",
-"input":"<!DOCTYPEa PUBLIC\"\u0009",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u0009", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"\\u000A",
-"input":"<!DOCTYPEa PUBLIC\"\u000A",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000A", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"\\u000B",
-"input":"<!DOCTYPEa PUBLIC\"\u000B",
-"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"\\u000C",
-"input":"<!DOCTYPEa PUBLIC\"\u000C",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000C", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\" ",
-"input":"<!DOCTYPEa PUBLIC\" ",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", " ", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"!",
-"input":"<!DOCTYPEa PUBLIC\"!",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "!", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"\"",
-"input":"<!DOCTYPEa PUBLIC\"\"",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"#",
-"input":"<!DOCTYPEa PUBLIC\"#",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "#", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"&",
-"input":"<!DOCTYPEa PUBLIC\"&",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "&", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"'",
-"input":"<!DOCTYPEa PUBLIC\"'",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "'", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"-",
-"input":"<!DOCTYPEa PUBLIC\"-",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "-", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"/",
-"input":"<!DOCTYPEa PUBLIC\"/",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "/", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"0",
-"input":"<!DOCTYPEa PUBLIC\"0",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "0", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"1",
-"input":"<!DOCTYPEa PUBLIC\"1",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "1", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"9",
-"input":"<!DOCTYPEa PUBLIC\"9",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "9", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"<",
-"input":"<!DOCTYPEa PUBLIC\"<",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "<", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"=",
-"input":"<!DOCTYPEa PUBLIC\"=",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "=", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\">",
-"input":"<!DOCTYPEa PUBLIC\">",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"?",
-"input":"<!DOCTYPEa PUBLIC\"?",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "?", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"@",
-"input":"<!DOCTYPEa PUBLIC\"@",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "@", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"A",
-"input":"<!DOCTYPEa PUBLIC\"A",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "A", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"B",
-"input":"<!DOCTYPEa PUBLIC\"B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "B", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"Y",
-"input":"<!DOCTYPEa PUBLIC\"Y",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "Y", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"Z",
-"input":"<!DOCTYPEa PUBLIC\"Z",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "Z", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"`",
-"input":"<!DOCTYPEa PUBLIC\"`",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "`", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"a",
-"input":"<!DOCTYPEa PUBLIC\"a",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "a", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"b",
-"input":"<!DOCTYPEa PUBLIC\"b",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "b", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"y",
-"input":"<!DOCTYPEa PUBLIC\"y",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "y", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"z",
-"input":"<!DOCTYPEa PUBLIC\"z",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "z", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"{",
-"input":"<!DOCTYPEa PUBLIC\"{",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "{", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\"\\uDBC0\\uDC00",
-"input":"<!DOCTYPEa PUBLIC\"\uDBC0\uDC00",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC#",
-"input":"<!DOCTYPEa PUBLIC#",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC&",
-"input":"<!DOCTYPEa PUBLIC&",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'",
-"input":"<!DOCTYPEa PUBLIC'",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'\\u0000",
-"input":"<!DOCTYPEa PUBLIC'\u0000",
-"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'\\u0009",
-"input":"<!DOCTYPEa PUBLIC'\u0009",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u0009", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'\\u000A",
-"input":"<!DOCTYPEa PUBLIC'\u000A",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000A", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'\\u000B",
-"input":"<!DOCTYPEa PUBLIC'\u000B",
-"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'\\u000C",
-"input":"<!DOCTYPEa PUBLIC'\u000C",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000C", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC' ",
-"input":"<!DOCTYPEa PUBLIC' ",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", " ", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'!",
-"input":"<!DOCTYPEa PUBLIC'!",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "!", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'\"",
-"input":"<!DOCTYPEa PUBLIC'\"",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\"", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'&",
-"input":"<!DOCTYPEa PUBLIC'&",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "&", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''",
-"input":"<!DOCTYPEa PUBLIC''",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''\\u0000",
-"input":"<!DOCTYPEa PUBLIC''\u0000",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''\\u0008",
-"input":"<!DOCTYPEa PUBLIC''\u0008",
-"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''\\u0009",
-"input":"<!DOCTYPEa PUBLIC''\u0009",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''\\u000A",
-"input":"<!DOCTYPEa PUBLIC''\u000A",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''\\u000B",
-"input":"<!DOCTYPEa PUBLIC''\u000B",
-"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''\\u000C",
-"input":"<!DOCTYPEa PUBLIC''\u000C",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''\\u000D",
-"input":"<!DOCTYPEa PUBLIC''\u000D",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''\\u001F",
-"input":"<!DOCTYPEa PUBLIC''\u001F",
-"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'' ",
-"input":"<!DOCTYPEa PUBLIC'' ",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''!",
-"input":"<!DOCTYPEa PUBLIC''!",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''\"",
-"input":"<!DOCTYPEa PUBLIC''\"",
-"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", "", false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''#",
-"input":"<!DOCTYPEa PUBLIC''#",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''&",
-"input":"<!DOCTYPEa PUBLIC''&",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'''",
-"input":"<!DOCTYPEa PUBLIC'''",
-"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", "", false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''(",
-"input":"<!DOCTYPEa PUBLIC''(",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''-",
-"input":"<!DOCTYPEa PUBLIC''-",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''/",
-"input":"<!DOCTYPEa PUBLIC''/",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''0",
-"input":"<!DOCTYPEa PUBLIC''0",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''1",
-"input":"<!DOCTYPEa PUBLIC''1",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''9",
-"input":"<!DOCTYPEa PUBLIC''9",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''<",
-"input":"<!DOCTYPEa PUBLIC''<",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''=",
-"input":"<!DOCTYPEa PUBLIC''=",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''>",
-"input":"<!DOCTYPEa PUBLIC''>",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, true]]},
-
-{"description":"<!DOCTYPEa PUBLIC''?",
-"input":"<!DOCTYPEa PUBLIC''?",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''@",
-"input":"<!DOCTYPEa PUBLIC''@",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''A",
-"input":"<!DOCTYPEa PUBLIC''A",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''B",
-"input":"<!DOCTYPEa PUBLIC''B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''Y",
-"input":"<!DOCTYPEa PUBLIC''Y",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''Z",
-"input":"<!DOCTYPEa PUBLIC''Z",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''`",
-"input":"<!DOCTYPEa PUBLIC''`",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''a",
-"input":"<!DOCTYPEa PUBLIC''a",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''b",
-"input":"<!DOCTYPEa PUBLIC''b",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''y",
-"input":"<!DOCTYPEa PUBLIC''y",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''z",
-"input":"<!DOCTYPEa PUBLIC''z",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''{",
-"input":"<!DOCTYPEa PUBLIC''{",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC''\\uDBC0\\uDC00",
-"input":"<!DOCTYPEa PUBLIC''\uDBC0\uDC00",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'(",
-"input":"<!DOCTYPEa PUBLIC'(",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "(", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'-",
-"input":"<!DOCTYPEa PUBLIC'-",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "-", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'/",
-"input":"<!DOCTYPEa PUBLIC'/",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "/", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'0",
-"input":"<!DOCTYPEa PUBLIC'0",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "0", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'1",
-"input":"<!DOCTYPEa PUBLIC'1",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "1", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'9",
-"input":"<!DOCTYPEa PUBLIC'9",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "9", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'<",
-"input":"<!DOCTYPEa PUBLIC'<",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "<", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'=",
-"input":"<!DOCTYPEa PUBLIC'=",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "=", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'>",
-"input":"<!DOCTYPEa PUBLIC'>",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'?",
-"input":"<!DOCTYPEa PUBLIC'?",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "?", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'@",
-"input":"<!DOCTYPEa PUBLIC'@",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "@", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'A",
-"input":"<!DOCTYPEa PUBLIC'A",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "A", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'B",
-"input":"<!DOCTYPEa PUBLIC'B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "B", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'Y",
-"input":"<!DOCTYPEa PUBLIC'Y",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "Y", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'Z",
-"input":"<!DOCTYPEa PUBLIC'Z",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "Z", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'`",
-"input":"<!DOCTYPEa PUBLIC'`",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "`", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'a",
-"input":"<!DOCTYPEa PUBLIC'a",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "a", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'b",
-"input":"<!DOCTYPEa PUBLIC'b",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "b", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'y",
-"input":"<!DOCTYPEa PUBLIC'y",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "y", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'z",
-"input":"<!DOCTYPEa PUBLIC'z",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "z", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'{",
-"input":"<!DOCTYPEa PUBLIC'{",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "{", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC'\\uDBC0\\uDC00",
-"input":"<!DOCTYPEa PUBLIC'\uDBC0\uDC00",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC(",
-"input":"<!DOCTYPEa PUBLIC(",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC-",
-"input":"<!DOCTYPEa PUBLIC-",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC/",
-"input":"<!DOCTYPEa PUBLIC/",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC0",
-"input":"<!DOCTYPEa PUBLIC0",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC1",
-"input":"<!DOCTYPEa PUBLIC1",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC9",
-"input":"<!DOCTYPEa PUBLIC9",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC<",
-"input":"<!DOCTYPEa PUBLIC<",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC=",
-"input":"<!DOCTYPEa PUBLIC=",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC>",
-"input":"<!DOCTYPEa PUBLIC>",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC?",
-"input":"<!DOCTYPEa PUBLIC?",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC@",
-"input":"<!DOCTYPEa PUBLIC@",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLICA",
-"input":"<!DOCTYPEa PUBLICA",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLICB",
-"input":"<!DOCTYPEa PUBLICB",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLICY",
-"input":"<!DOCTYPEa PUBLICY",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLICZ",
-"input":"<!DOCTYPEa PUBLICZ",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC`",
-"input":"<!DOCTYPEa PUBLIC`",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLICa",
-"input":"<!DOCTYPEa PUBLICa",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLICb",
-"input":"<!DOCTYPEa PUBLICb",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLICy",
-"input":"<!DOCTYPEa PUBLICy",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLICz",
-"input":"<!DOCTYPEa PUBLICz",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC{",
-"input":"<!DOCTYPEa PUBLIC{",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa PUBLIC\\uDBC0\\uDC00",
-"input":"<!DOCTYPEa PUBLIC\uDBC0\uDC00",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM",
-"input":"<!DOCTYPEa SYSTEM",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\\u0000",
-"input":"<!DOCTYPEa SYSTEM\u0000",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\\u0008",
-"input":"<!DOCTYPEa SYSTEM\u0008",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\\u0009",
-"input":"<!DOCTYPEa SYSTEM\u0009",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\\u000A",
-"input":"<!DOCTYPEa SYSTEM\u000A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\\u000B",
-"input":"<!DOCTYPEa SYSTEM\u000B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\\u000C",
-"input":"<!DOCTYPEa SYSTEM\u000C",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\\u000D",
-"input":"<!DOCTYPEa SYSTEM\u000D",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\\u001F",
-"input":"<!DOCTYPEa SYSTEM\u001F",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM ",
-"input":"<!DOCTYPEa SYSTEM ",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM!",
-"input":"<!DOCTYPEa SYSTEM!",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"",
-"input":"<!DOCTYPEa SYSTEM\"",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"\\u0000",
-"input":"<!DOCTYPEa SYSTEM\"\u0000",
-"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"\\u0009",
-"input":"<!DOCTYPEa SYSTEM\"\u0009",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u0009", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"\\u000A",
-"input":"<!DOCTYPEa SYSTEM\"\u000A",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000A", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"\\u000B",
-"input":"<!DOCTYPEa SYSTEM\"\u000B",
-"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"\\u000C",
-"input":"<!DOCTYPEa SYSTEM\"\u000C",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000C", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\" ",
-"input":"<!DOCTYPEa SYSTEM\" ",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, " ", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"!",
-"input":"<!DOCTYPEa SYSTEM\"!",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "!", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"\"",
-"input":"<!DOCTYPEa SYSTEM\"\"",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"#",
-"input":"<!DOCTYPEa SYSTEM\"#",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "#", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"&",
-"input":"<!DOCTYPEa SYSTEM\"&",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "&", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"'",
-"input":"<!DOCTYPEa SYSTEM\"'",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "'", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"-",
-"input":"<!DOCTYPEa SYSTEM\"-",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "-", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"/",
-"input":"<!DOCTYPEa SYSTEM\"/",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "/", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"0",
-"input":"<!DOCTYPEa SYSTEM\"0",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "0", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"1",
-"input":"<!DOCTYPEa SYSTEM\"1",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "1", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"9",
-"input":"<!DOCTYPEa SYSTEM\"9",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "9", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"<",
-"input":"<!DOCTYPEa SYSTEM\"<",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "<", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"=",
-"input":"<!DOCTYPEa SYSTEM\"=",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "=", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\">",
-"input":"<!DOCTYPEa SYSTEM\">",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"?",
-"input":"<!DOCTYPEa SYSTEM\"?",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "?", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"@",
-"input":"<!DOCTYPEa SYSTEM\"@",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "@", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"A",
-"input":"<!DOCTYPEa SYSTEM\"A",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "A", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"B",
-"input":"<!DOCTYPEa SYSTEM\"B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "B", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"Y",
-"input":"<!DOCTYPEa SYSTEM\"Y",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "Y", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"Z",
-"input":"<!DOCTYPEa SYSTEM\"Z",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "Z", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"`",
-"input":"<!DOCTYPEa SYSTEM\"`",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "`", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"a",
-"input":"<!DOCTYPEa SYSTEM\"a",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "a", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"b",
-"input":"<!DOCTYPEa SYSTEM\"b",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "b", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"y",
-"input":"<!DOCTYPEa SYSTEM\"y",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "y", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"z",
-"input":"<!DOCTYPEa SYSTEM\"z",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "z", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"{",
-"input":"<!DOCTYPEa SYSTEM\"{",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "{", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\"\\uDBC0\\uDC00",
-"input":"<!DOCTYPEa SYSTEM\"\uDBC0\uDC00",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM#",
-"input":"<!DOCTYPEa SYSTEM#",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM&",
-"input":"<!DOCTYPEa SYSTEM&",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'",
-"input":"<!DOCTYPEa SYSTEM'",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'\\u0000",
-"input":"<!DOCTYPEa SYSTEM'\u0000",
-"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'\\u0009",
-"input":"<!DOCTYPEa SYSTEM'\u0009",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u0009", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'\\u000A",
-"input":"<!DOCTYPEa SYSTEM'\u000A",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000A", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'\\u000B",
-"input":"<!DOCTYPEa SYSTEM'\u000B",
-"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'\\u000C",
-"input":"<!DOCTYPEa SYSTEM'\u000C",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000C", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM' ",
-"input":"<!DOCTYPEa SYSTEM' ",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, " ", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'!",
-"input":"<!DOCTYPEa SYSTEM'!",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "!", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'\"",
-"input":"<!DOCTYPEa SYSTEM'\"",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\"", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'&",
-"input":"<!DOCTYPEa SYSTEM'&",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "&", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM''",
-"input":"<!DOCTYPEa SYSTEM''",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM''\\u0000",
-"input":"<!DOCTYPEa SYSTEM''\u0000",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''\\u0008",
-"input":"<!DOCTYPEa SYSTEM''\u0008",
-"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''\\u0009",
-"input":"<!DOCTYPEa SYSTEM''\u0009",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM''\\u000A",
-"input":"<!DOCTYPEa SYSTEM''\u000A",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM''\\u000B",
-"input":"<!DOCTYPEa SYSTEM''\u000B",
-"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''\\u000C",
-"input":"<!DOCTYPEa SYSTEM''\u000C",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM''\\u000D",
-"input":"<!DOCTYPEa SYSTEM''\u000D",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM''\\u001F",
-"input":"<!DOCTYPEa SYSTEM''\u001F",
-"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM'' ",
-"input":"<!DOCTYPEa SYSTEM'' ",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM''!",
-"input":"<!DOCTYPEa SYSTEM''!",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''\"",
-"input":"<!DOCTYPEa SYSTEM''\"",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''&",
-"input":"<!DOCTYPEa SYSTEM''&",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM'''",
-"input":"<!DOCTYPEa SYSTEM'''",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''-",
-"input":"<!DOCTYPEa SYSTEM''-",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''/",
-"input":"<!DOCTYPEa SYSTEM''/",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''0",
-"input":"<!DOCTYPEa SYSTEM''0",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''1",
-"input":"<!DOCTYPEa SYSTEM''1",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''9",
-"input":"<!DOCTYPEa SYSTEM''9",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''<",
-"input":"<!DOCTYPEa SYSTEM''<",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''=",
-"input":"<!DOCTYPEa SYSTEM''=",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''>",
-"input":"<!DOCTYPEa SYSTEM''>",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''?",
-"input":"<!DOCTYPEa SYSTEM''?",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''@",
-"input":"<!DOCTYPEa SYSTEM''@",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''A",
-"input":"<!DOCTYPEa SYSTEM''A",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''B",
-"input":"<!DOCTYPEa SYSTEM''B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''Y",
-"input":"<!DOCTYPEa SYSTEM''Y",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''Z",
-"input":"<!DOCTYPEa SYSTEM''Z",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''`",
-"input":"<!DOCTYPEa SYSTEM''`",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''a",
-"input":"<!DOCTYPEa SYSTEM''a",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''b",
-"input":"<!DOCTYPEa SYSTEM''b",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''y",
-"input":"<!DOCTYPEa SYSTEM''y",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''z",
-"input":"<!DOCTYPEa SYSTEM''z",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''{",
-"input":"<!DOCTYPEa SYSTEM''{",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM''\\uDBC0\\uDC00",
-"input":"<!DOCTYPEa SYSTEM''\uDBC0\uDC00",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]},
-
-{"description":"<!DOCTYPEa SYSTEM'(",
-"input":"<!DOCTYPEa SYSTEM'(",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "(", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'-",
-"input":"<!DOCTYPEa SYSTEM'-",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "-", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'/",
-"input":"<!DOCTYPEa SYSTEM'/",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "/", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'0",
-"input":"<!DOCTYPEa SYSTEM'0",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "0", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'1",
-"input":"<!DOCTYPEa SYSTEM'1",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "1", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'9",
-"input":"<!DOCTYPEa SYSTEM'9",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "9", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'<",
-"input":"<!DOCTYPEa SYSTEM'<",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "<", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'=",
-"input":"<!DOCTYPEa SYSTEM'=",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "=", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'>",
-"input":"<!DOCTYPEa SYSTEM'>",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'?",
-"input":"<!DOCTYPEa SYSTEM'?",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "?", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'@",
-"input":"<!DOCTYPEa SYSTEM'@",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "@", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'A",
-"input":"<!DOCTYPEa SYSTEM'A",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "A", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'B",
-"input":"<!DOCTYPEa SYSTEM'B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "B", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'Y",
-"input":"<!DOCTYPEa SYSTEM'Y",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "Y", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'Z",
-"input":"<!DOCTYPEa SYSTEM'Z",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "Z", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'`",
-"input":"<!DOCTYPEa SYSTEM'`",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "`", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'a",
-"input":"<!DOCTYPEa SYSTEM'a",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "a", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'b",
-"input":"<!DOCTYPEa SYSTEM'b",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "b", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'y",
-"input":"<!DOCTYPEa SYSTEM'y",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "y", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'z",
-"input":"<!DOCTYPEa SYSTEM'z",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "z", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'{",
-"input":"<!DOCTYPEa SYSTEM'{",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "{", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM'\\uDBC0\\uDC00",
-"input":"<!DOCTYPEa SYSTEM'\uDBC0\uDC00",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]},
-
-{"description":"<!DOCTYPEa SYSTEM(",
-"input":"<!DOCTYPEa SYSTEM(",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM-",
-"input":"<!DOCTYPEa SYSTEM-",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM/",
-"input":"<!DOCTYPEa SYSTEM/",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM0",
-"input":"<!DOCTYPEa SYSTEM0",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM1",
-"input":"<!DOCTYPEa SYSTEM1",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM9",
-"input":"<!DOCTYPEa SYSTEM9",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM<",
-"input":"<!DOCTYPEa SYSTEM<",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM=",
-"input":"<!DOCTYPEa SYSTEM=",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM>",
-"input":"<!DOCTYPEa SYSTEM>",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM?",
-"input":"<!DOCTYPEa SYSTEM?",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM@",
-"input":"<!DOCTYPEa SYSTEM@",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEMA",
-"input":"<!DOCTYPEa SYSTEMA",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEMB",
-"input":"<!DOCTYPEa SYSTEMB",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEMY",
-"input":"<!DOCTYPEa SYSTEMY",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEMZ",
-"input":"<!DOCTYPEa SYSTEMZ",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM`",
-"input":"<!DOCTYPEa SYSTEM`",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEMa",
-"input":"<!DOCTYPEa SYSTEMa",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEMb",
-"input":"<!DOCTYPEa SYSTEMb",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEMy",
-"input":"<!DOCTYPEa SYSTEMy",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEMz",
-"input":"<!DOCTYPEa SYSTEMz",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM{",
-"input":"<!DOCTYPEa SYSTEM{",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa SYSTEM\\uDBC0\\uDC00",
-"input":"<!DOCTYPEa SYSTEM\uDBC0\uDC00",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa Y",
-"input":"<!DOCTYPEa Y",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa Z",
-"input":"<!DOCTYPEa Z",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa `",
-"input":"<!DOCTYPEa `",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a",
-"input":"<!DOCTYPEa a",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a\\u0000",
-"input":"<!DOCTYPEa a\u0000",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a\\u0009",
-"input":"<!DOCTYPEa a\u0009",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a\\u000A",
-"input":"<!DOCTYPEa a\u000A",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a\\u000B",
-"input":"<!DOCTYPEa a\u000B",
-"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a\\u000C",
-"input":"<!DOCTYPEa a\u000C",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a ",
-"input":"<!DOCTYPEa a ",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a!",
-"input":"<!DOCTYPEa a!",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a\"",
-"input":"<!DOCTYPEa a\"",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a&",
-"input":"<!DOCTYPEa a&",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a'",
-"input":"<!DOCTYPEa a'",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a-",
-"input":"<!DOCTYPEa a-",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a/",
-"input":"<!DOCTYPEa a/",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a0",
-"input":"<!DOCTYPEa a0",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a1",
-"input":"<!DOCTYPEa a1",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a9",
-"input":"<!DOCTYPEa a9",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a<",
-"input":"<!DOCTYPEa a<",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a=",
-"input":"<!DOCTYPEa a=",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a>",
-"input":"<!DOCTYPEa a>",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a?",
-"input":"<!DOCTYPEa a?",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a@",
-"input":"<!DOCTYPEa a@",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa aA",
-"input":"<!DOCTYPEa aA",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa aB",
-"input":"<!DOCTYPEa aB",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa aY",
-"input":"<!DOCTYPEa aY",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa aZ",
-"input":"<!DOCTYPEa aZ",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a`",
-"input":"<!DOCTYPEa a`",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa aa",
-"input":"<!DOCTYPEa aa",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa ab",
-"input":"<!DOCTYPEa ab",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa ay",
-"input":"<!DOCTYPEa ay",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa az",
-"input":"<!DOCTYPEa az",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a{",
-"input":"<!DOCTYPEa a{",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa a\\uDBC0\\uDC00",
-"input":"<!DOCTYPEa a\uDBC0\uDC00",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa b",
-"input":"<!DOCTYPEa b",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa y",
-"input":"<!DOCTYPEa y",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa z",
-"input":"<!DOCTYPEa z",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa {",
-"input":"<!DOCTYPEa {",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa \\uDBC0\\uDC00",
-"input":"<!DOCTYPEa \uDBC0\uDC00",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]},
-
-{"description":"<!DOCTYPEa!",
-"input":"<!DOCTYPEa!",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a!", null, null, false]]},
-
-{"description":"<!DOCTYPEa\"",
-"input":"<!DOCTYPEa\"",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a\"", null, null, false]]},
-
-{"description":"<!DOCTYPEa&",
-"input":"<!DOCTYPEa&",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a&", null, null, false]]},
-
-{"description":"<!DOCTYPEa'",
-"input":"<!DOCTYPEa'",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a'", null, null, false]]},
-
-{"description":"<!DOCTYPEa-",
-"input":"<!DOCTYPEa-",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a-", null, null, false]]},
-
-{"description":"<!DOCTYPEa/",
-"input":"<!DOCTYPEa/",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a/", null, null, false]]},
-
-{"description":"<!DOCTYPEa0",
-"input":"<!DOCTYPEa0",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a0", null, null, false]]},
-
-{"description":"<!DOCTYPEa1",
-"input":"<!DOCTYPEa1",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a1", null, null, false]]},
-
-{"description":"<!DOCTYPEa9",
-"input":"<!DOCTYPEa9",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a9", null, null, false]]},
-
-{"description":"<!DOCTYPEa<",
-"input":"<!DOCTYPEa<",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a<", null, null, false]]},
-
-{"description":"<!DOCTYPEa=",
-"input":"<!DOCTYPEa=",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a=", null, null, false]]},
-
-{"description":"<!DOCTYPEa>",
-"input":"<!DOCTYPEa>",
-"output":["ParseError", ["DOCTYPE", "a", null, null, true]]},
-
-{"description":"<!DOCTYPEa?",
-"input":"<!DOCTYPEa?",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a?", null, null, false]]},
-
-{"description":"<!DOCTYPEa@",
-"input":"<!DOCTYPEa@",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a@", null, null, false]]},
-
-{"description":"<!DOCTYPEaA",
-"input":"<!DOCTYPEaA",
-"output":["ParseError", "ParseError", ["DOCTYPE", "aa", null, null, false]]},
-
-{"description":"<!DOCTYPEaB",
-"input":"<!DOCTYPEaB",
-"output":["ParseError", "ParseError", ["DOCTYPE", "ab", null, null, false]]},
-
-{"description":"<!DOCTYPEaY",
-"input":"<!DOCTYPEaY",
-"output":["ParseError", "ParseError", ["DOCTYPE", "ay", null, null, false]]},
-
-{"description":"<!DOCTYPEaZ",
-"input":"<!DOCTYPEaZ",
-"output":["ParseError", "ParseError", ["DOCTYPE", "az", null, null, false]]},
-
-{"description":"<!DOCTYPEa[",
-"input":"<!DOCTYPEa[",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a[", null, null, false]]},
-
-{"description":"<!DOCTYPEa`",
-"input":"<!DOCTYPEa`",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a`", null, null, false]]},
-
-{"description":"<!DOCTYPEaa",
-"input":"<!DOCTYPEaa",
-"output":["ParseError", "ParseError", ["DOCTYPE", "aa", null, null, false]]},
-
-{"description":"<!DOCTYPEab",
-"input":"<!DOCTYPEab",
-"output":["ParseError", "ParseError", ["DOCTYPE", "ab", null, null, false]]},
-
-{"description":"<!DOCTYPEay",
-"input":"<!DOCTYPEay",
-"output":["ParseError", "ParseError", ["DOCTYPE", "ay", null, null, false]]},
-
-{"description":"<!DOCTYPEaz",
-"input":"<!DOCTYPEaz",
-"output":["ParseError", "ParseError", ["DOCTYPE", "az", null, null, false]]},
-
-{"description":"<!DOCTYPEa{",
-"input":"<!DOCTYPEa{",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a{", null, null, false]]},
-
-{"description":"<!DOCTYPEa\\uDBC0\\uDC00",
-"input":"<!DOCTYPEa\uDBC0\uDC00",
-"output":["ParseError", "ParseError", ["DOCTYPE", "a\uDBC0\uDC00", null, null, false]]},
-
-{"description":"<!DOCTYPEb",
-"input":"<!DOCTYPEb",
-"output":["ParseError", "ParseError", ["DOCTYPE", "b", null, null, false]]},
-
-{"description":"<!DOCTYPEy",
-"input":"<!DOCTYPEy",
-"output":["ParseError", "ParseError", ["DOCTYPE", "y", null, null, false]]},
-
-{"description":"<!DOCTYPEz",
-"input":"<!DOCTYPEz",
-"output":["ParseError", "ParseError", ["DOCTYPE", "z", null, null, false]]},
-
-{"description":"<!DOCTYPE{",
-"input":"<!DOCTYPE{",
-"output":["ParseError", "ParseError", ["DOCTYPE", "{", null, null, false]]},
-
-{"description":"<!DOCTYPE\\uDBC0\\uDC00",
-"input":"<!DOCTYPE\uDBC0\uDC00",
-"output":["ParseError", "ParseError", ["DOCTYPE", "\uDBC0\uDC00", null, null, false]]},
-
-{"description":"<!Y",
-"input":"<!Y",
-"output":["ParseError", ["Comment", "Y"]]},
-
-{"description":"<!Z",
-"input":"<!Z",
-"output":["ParseError", ["Comment", "Z"]]},
-
-{"description":"<!`",
-"input":"<!`",
-"output":["ParseError", ["Comment", "`"]]},
-
-{"description":"<!a",
-"input":"<!a",
-"output":["ParseError", ["Comment", "a"]]},
-
-{"description":"<!b",
-"input":"<!b",
-"output":["ParseError", ["Comment", "b"]]},
-
-{"description":"<!y",
-"input":"<!y",
-"output":["ParseError", ["Comment", "y"]]},
-
-{"description":"<!z",
-"input":"<!z",
-"output":["ParseError", ["Comment", "z"]]},
-
-{"description":"<!{",
-"input":"<!{",
-"output":["ParseError", ["Comment", "{"]]},
-
-{"description":"<!\\uDBC0\\uDC00",
-"input":"<!\uDBC0\uDC00",
-"output":["ParseError", ["Comment", "\uDBC0\uDC00"]]},
-
-{"description":"<\"",
-"input":"<\"",
-"output":["ParseError", ["Character", "<\""]]},
-
-{"description":"<&",
-"input":"<&",
-"output":["ParseError", ["Character", "<&"]]},
-
-{"description":"<'",
-"input":"<'",
-"output":["ParseError", ["Character", "<'"]]},
-
-{"description":"<-",
-"input":"<-",
-"output":["ParseError", ["Character", "<-"]]},
-
-{"description":"<.",
-"input":"<.",
-"output":["ParseError", ["Character", "<."]]},
-
-{"description":"</",
-"input":"</",
-"output":["ParseError", ["Character", "</"]]},
-
-{"description":"</\\u0000",
-"input":"</\u0000",
-"output":["ParseError", ["Comment", "\uFFFD"]]},
-
-{"description":"</\\u0009",
-"input":"</\u0009",
-"output":["ParseError", ["Comment", "\u0009"]]},
-
-{"description":"</\\u000A",
-"input":"</\u000A",
-"output":["ParseError", ["Comment", "\u000A"]]},
-
-{"description":"</\\u000B",
-"input":"</\u000B",
-"output":["ParseError", "ParseError", ["Comment", "\u000B"]]},
-
-{"description":"</\\u000C",
-"input":"</\u000C",
-"output":["ParseError", ["Comment", "\u000C"]]},
-
-{"description":"</ ",
-"input":"</ ",
-"output":["ParseError", ["Comment", " "]]},
-
-{"description":"</!",
-"input":"</!",
-"output":["ParseError", ["Comment", "!"]]},
-
-{"description":"</\"",
-"input":"</\"",
-"output":["ParseError", ["Comment", "\""]]},
-
-{"description":"</&",
-"input":"</&",
-"output":["ParseError", ["Comment", "&"]]},
-
-{"description":"</'",
-"input":"</'",
-"output":["ParseError", ["Comment", "'"]]},
-
-{"description":"</-",
-"input":"</-",
-"output":["ParseError", ["Comment", "-"]]},
-
-{"description":"<//",
-"input":"<//",
-"output":["ParseError", ["Comment", "/"]]},
-
-{"description":"</0",
-"input":"</0",
-"output":["ParseError", ["Comment", "0"]]},
-
-{"description":"</1",
-"input":"</1",
-"output":["ParseError", ["Comment", "1"]]},
-
-{"description":"</9",
-"input":"</9",
-"output":["ParseError", ["Comment", "9"]]},
-
-{"description":"</<",
-"input":"</<",
-"output":["ParseError", ["Comment", "<"]]},
-
-{"description":"</=",
-"input":"</=",
-"output":["ParseError", ["Comment", "="]]},
-
-{"description":"</>",
-"input":"</>",
-"output":["ParseError"]},
-
-{"description":"</?",
-"input":"</?",
-"output":["ParseError", ["Comment", "?"]]},
-
-{"description":"</@",
-"input":"</@",
-"output":["ParseError", ["Comment", "@"]]},
-
-{"description":"</A>",
-"input":"</A>",
-"output":[["EndTag", "a"]]},
-
-{"description":"</B>",
-"input":"</B>",
-"output":[["EndTag", "b"]]},
-
-{"description":"</Y>",
-"input":"</Y>",
-"output":[["EndTag", "y"]]},
-
-{"description":"</Z>",
-"input":"</Z>",
-"output":[["EndTag", "z"]]},
-
-{"description":"</[",
-"input":"</[",
-"output":["ParseError", ["Comment", "["]]},
-
-{"description":"</`",
-"input":"</`",
-"output":["ParseError", ["Comment", "`"]]},
-
-{"description":"</a>",
-"input":"</a>",
-"output":[["EndTag", "a"]]},
-
-{"description":"</b>",
-"input":"</b>",
-"output":[["EndTag", "b"]]},
-
-{"description":"</y>",
-"input":"</y>",
-"output":[["EndTag", "y"]]},
-
-{"description":"</z>",
-"input":"</z>",
-"output":[["EndTag", "z"]]},
-
-{"description":"</{",
-"input":"</{",
-"output":["ParseError", ["Comment", "{"]]},
-
-{"description":"</\\uDBC0\\uDC00",
-"input":"</\uDBC0\uDC00",
-"output":["ParseError", ["Comment", "\uDBC0\uDC00"]]},
-
-{"description":"<0",
-"input":"<0",
-"output":["ParseError", ["Character", "<0"]]},
-
-{"description":"<1",
-"input":"<1",
-"output":["ParseError", ["Character", "<1"]]},
-
-{"description":"<9",
-"input":"<9",
-"output":["ParseError", ["Character", "<9"]]},
-
-{"description":"<<",
-"input":"<<",
-"output":["ParseError", ["Character", "<"], "ParseError", ["Character", "<"]]},
-
-{"description":"<=",
-"input":"<=",
-"output":["ParseError", ["Character", "<="]]},
-
-{"description":"<>",
-"input":"<>",
-"output":["ParseError", ["Character", "<>"]]},
-
-{"description":"<?",
-"input":"<?",
-"output":["ParseError", ["Comment", "?"]]},
-
-{"description":"<?\\u0000",
-"input":"<?\u0000",
-"output":["ParseError", ["Comment", "?\uFFFD"]]},
-
-{"description":"<?\\u0009",
-"input":"<?\u0009",
-"output":["ParseError", ["Comment", "?\u0009"]]},
-
-{"description":"<?\\u000A",
-"input":"<?\u000A",
-"output":["ParseError", ["Comment", "?\u000A"]]},
-
-{"description":"<?\\u000B",
-"input":"<?\u000B",
-"output":["ParseError", "ParseError", ["Comment", "?\u000B"]]},
-
-{"description":"<?\\u000C",
-"input":"<?\u000C",
-"output":["ParseError", ["Comment", "?\u000C"]]},
-
-{"description":"<? ",
-"input":"<? ",
-"output":["ParseError", ["Comment", "? "]]},
-
-{"description":"<?!",
-"input":"<?!",
-"output":["ParseError", ["Comment", "?!"]]},
-
-{"description":"<?\"",
-"input":"<?\"",
-"output":["ParseError", ["Comment", "?\""]]},
-
-{"description":"<?&",
-"input":"<?&",
-"output":["ParseError", ["Comment", "?&"]]},
-
-{"description":"<?'",
-"input":"<?'",
-"output":["ParseError", ["Comment", "?'"]]},
-
-{"description":"<?-",
-"input":"<?-",
-"output":["ParseError", ["Comment", "?-"]]},
-
-{"description":"<?/",
-"input":"<?/",
-"output":["ParseError", ["Comment", "?/"]]},
-
-{"description":"<?0",
-"input":"<?0",
-"output":["ParseError", ["Comment", "?0"]]},
-
-{"description":"<?1",
-"input":"<?1",
-"output":["ParseError", ["Comment", "?1"]]},
-
-{"description":"<?9",
-"input":"<?9",
-"output":["ParseError", ["Comment", "?9"]]},
-
-{"description":"<?<",
-"input":"<?<",
-"output":["ParseError", ["Comment", "?<"]]},
-
-{"description":"<?=",
-"input":"<?=",
-"output":["ParseError", ["Comment", "?="]]},
-
-{"description":"<?>",
-"input":"<?>",
-"output":["ParseError", ["Comment", "?"]]},
-
-{"description":"<??",
-"input":"<??",
-"output":["ParseError", ["Comment", "??"]]},
-
-{"description":"<?@",
-"input":"<?@",
-"output":["ParseError", ["Comment", "?@"]]},
-
-{"description":"<?A",
-"input":"<?A",
-"output":["ParseError", ["Comment", "?A"]]},
-
-{"description":"<?B",
-"input":"<?B",
-"output":["ParseError", ["Comment", "?B"]]},
-
-{"description":"<?Y",
-"input":"<?Y",
-"output":["ParseError", ["Comment", "?Y"]]},
-
-{"description":"<?Z",
-"input":"<?Z",
-"output":["ParseError", ["Comment", "?Z"]]},
-
-{"description":"<?`",
-"input":"<?`",
-"output":["ParseError", ["Comment", "?`"]]},
-
-{"description":"<?a",
-"input":"<?a",
-"output":["ParseError", ["Comment", "?a"]]},
-
-{"description":"<?b",
-"input":"<?b",
-"output":["ParseError", ["Comment", "?b"]]},
-
-{"description":"<?y",
-"input":"<?y",
-"output":["ParseError", ["Comment", "?y"]]},
-
-{"description":"<?z",
-"input":"<?z",
-"output":["ParseError", ["Comment", "?z"]]},
-
-{"description":"<?{",
-"input":"<?{",
-"output":["ParseError", ["Comment", "?{"]]},
-
-{"description":"<?\\uDBC0\\uDC00",
-"input":"<?\uDBC0\uDC00",
-"output":["ParseError", ["Comment", "?\uDBC0\uDC00"]]},
-
-{"description":"<@",
-"input":"<@",
-"output":["ParseError", ["Character", "<@"]]},
-
-{"description":"<A>",
-"input":"<A>",
-"output":[["StartTag", "a", {}]]},
-
-{"description":"<B>",
-"input":"<B>",
-"output":[["StartTag", "b", {}]]},
-
-{"description":"<Y>",
-"input":"<Y>",
-"output":[["StartTag", "y", {}]]},
-
-{"description":"<Z>",
-"input":"<Z>",
-"output":[["StartTag", "z", {}]]},
-
-{"description":"<[",
-"input":"<[",
-"output":["ParseError", ["Character", "<["]]},
-
-{"description":"<`",
-"input":"<`",
-"output":["ParseError", ["Character", "<`"]]},
-
-{"description":"<a>",
-"input":"<a>",
-"output":[["StartTag", "a", {}]]},
-
-{"description":"<a\\u0000>",
-"input":"<a\u0000>",
-"output":["ParseError", ["StartTag", "a\uFFFD", {}]]},
-
-{"description":"<a\\u0008>",
-"input":"<a\u0008>",
-"output":["ParseError", ["StartTag", "a\u0008", {}]]},
-
-{"description":"<a\\u0009>",
-"input":"<a\u0009>",
-"output":[["StartTag", "a", {}]]},
-
-{"description":"<a\\u000A>",
-"input":"<a\u000A>",
-"output":[["StartTag", "a", {}]]},
-
-{"description":"<a\\u000B>",
-"input":"<a\u000B>",
-"output":["ParseError", ["StartTag", "a\u000B", {}]]},
-
-{"description":"<a\\u000C>",
-"input":"<a\u000C>",
-"output":[["StartTag", "a", {}]]},
-
-{"description":"<a\\u000D>",
-"input":"<a\u000D>",
-"output":[["StartTag", "a", {}]]},
-
-{"description":"<a\\u001F>",
-"input":"<a\u001F>",
-"output":["ParseError", ["StartTag", "a\u001F", {}]]},
-
-{"description":"<a >",
-"input":"<a >",
-"output":[["StartTag", "a", {}]]},
-
-{"description":"<a \\u0000>",
-"input":"<a \u0000>",
-"output":["ParseError", ["StartTag", "a", {"\uFFFD":""}]]},
-
-{"description":"<a \\u0008>",
-"input":"<a \u0008>",
-"output":["ParseError", ["StartTag", "a", {"\u0008":""}]]},
-
-{"description":"<a \\u0009>",
-"input":"<a \u0009>",
-"output":[["StartTag", "a", {}]]},
-
-{"description":"<a \\u000A>",
-"input":"<a \u000A>",
-"output":[["StartTag", "a", {}]]},
-
-{"description":"<a \\u000B>",
-"input":"<a \u000B>",
-"output":["ParseError", ["StartTag", "a", {"\u000B":""}]]},
-
-{"description":"<a \\u000C>",
-"input":"<a \u000C>",
-"output":[["StartTag", "a", {}]]},
-
-{"description":"<a \\u000D>",
-"input":"<a \u000D>",
-"output":[["StartTag", "a", {}]]},
-
-{"description":"<a \\u001F>",
-"input":"<a \u001F>",
-"output":["ParseError", ["StartTag", "a", {"\u001F":""}]]},
-
-{"description":"<a >",
-"input":"<a >",
-"output":[["StartTag", "a", {}]]},
-
-{"description":"<a !>",
-"input":"<a !>",
-"output":[["StartTag", "a", {"!":""}]]},
-
-{"description":"<a \">",
-"input":"<a \">",
-"output":["ParseError", ["StartTag", "a", {"\"":""}]]},
-
-{"description":"<a #>",
-"input":"<a #>",
-"output":[["StartTag", "a", {"#":""}]]},
-
-{"description":"<a &>",
-"input":"<a &>",
-"output":[["StartTag", "a", {"&":""}]]},
-
-{"description":"<a '>",
-"input":"<a '>",
-"output":["ParseError", ["StartTag", "a", {"'":""}]]},
-
-{"description":"<a (>",
-"input":"<a (>",
-"output":[["StartTag", "a", {"(":""}]]},
-
-{"description":"<a ->",
-"input":"<a ->",
-"output":[["StartTag", "a", {"-":""}]]},
-
-{"description":"<a .>",
-"input":"<a .>",
-"output":[["StartTag", "a", {".":""}]]},
-
-{"description":"<a />",
-"input":"<a />",
-"output":[["StartTag", "a", {}, true]]},
-
-{"description":"<a 0>",
-"input":"<a 0>",
-"output":[["StartTag", "a", {"0":""}]]},
-
-{"description":"<a 1>",
-"input":"<a 1>",
-"output":[["StartTag", "a", {"1":""}]]},
-
-{"description":"<a 9>",
-"input":"<a 9>",
-"output":[["StartTag", "a", {"9":""}]]},
-
-{"description":"<a <>",
-"input":"<a <>",
-"output":["ParseError", ["StartTag", "a", {"<":""}]]},
-
-{"description":"<a =>",
-"input":"<a =>",
-"output":["ParseError", ["StartTag", "a", {"=":""}]]},
-
-{"description":"<a >",
-"input":"<a >",
-"output":[["StartTag", "a", {}]]},
-
-{"description":"<a ?>",
-"input":"<a ?>",
-"output":[["StartTag", "a", {"?":""}]]},
-
-{"description":"<a @>",
-"input":"<a @>",
-"output":[["StartTag", "a", {"@":""}]]},
-
-{"description":"<a A>",
-"input":"<a A>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a B>",
-"input":"<a B>",
-"output":[["StartTag", "a", {"b":""}]]},
-
-{"description":"<a Y>",
-"input":"<a Y>",
-"output":[["StartTag", "a", {"y":""}]]},
-
-{"description":"<a Z>",
-"input":"<a Z>",
-"output":[["StartTag", "a", {"z":""}]]},
-
-{"description":"<a [>",
-"input":"<a [>",
-"output":[["StartTag", "a", {"[":""}]]},
-
-{"description":"<a `>",
-"input":"<a `>",
-"output":[["StartTag", "a", {"`":""}]]},
-
-{"description":"<a a>",
-"input":"<a a>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a\\u0000>",
-"input":"<a a\u0000>",
-"output":["ParseError", ["StartTag", "a", {"a\uFFFD":""}]]},
-
-{"description":"<a a\\u0008>",
-"input":"<a a\u0008>",
-"output":["ParseError", ["StartTag", "a", {"a\u0008":""}]]},
-
-{"description":"<a a\\u0009>",
-"input":"<a a\u0009>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a\\u000A>",
-"input":"<a a\u000A>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a\\u000B>",
-"input":"<a a\u000B>",
-"output":["ParseError", ["StartTag", "a", {"a\u000B":""}]]},
-
-{"description":"<a a\\u000C>",
-"input":"<a a\u000C>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a\\u000D>",
-"input":"<a a\u000D>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a\\u001F>",
-"input":"<a a\u001F>",
-"output":["ParseError", ["StartTag", "a", {"a\u001F":""}]]},
-
-{"description":"<a a >",
-"input":"<a a >",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a \\u0000>",
-"input":"<a a \u0000>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "\uFFFD":""}]]},
-
-{"description":"<a a \\u0008>",
-"input":"<a a \u0008>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "\u0008":""}]]},
-
-{"description":"<a a \\u0009>",
-"input":"<a a \u0009>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a \\u000A>",
-"input":"<a a \u000A>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a \\u000B>",
-"input":"<a a \u000B>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "\u000B":""}]]},
-
-{"description":"<a a \\u000C>",
-"input":"<a a \u000C>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a \\u000D>",
-"input":"<a a \u000D>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a \\u001F>",
-"input":"<a a \u001F>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "\u001F":""}]]},
-
-{"description":"<a a >",
-"input":"<a a >",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a !>",
-"input":"<a a !>",
-"output":[["StartTag", "a", {"a":"", "!":""}]]},
-
-{"description":"<a a \">",
-"input":"<a a \">",
-"output":["ParseError", ["StartTag", "a", {"a":"", "\"":""}]]},
-
-{"description":"<a a #>",
-"input":"<a a #>",
-"output":[["StartTag", "a", {"a":"", "#":""}]]},
-
-{"description":"<a a &>",
-"input":"<a a &>",
-"output":[["StartTag", "a", {"a":"", "&":""}]]},
-
-{"description":"<a a '>",
-"input":"<a a '>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "'":""}]]},
-
-{"description":"<a a (>",
-"input":"<a a (>",
-"output":[["StartTag", "a", {"a":"", "(":""}]]},
-
-{"description":"<a a ->",
-"input":"<a a ->",
-"output":[["StartTag", "a", {"a":"", "-":""}]]},
-
-{"description":"<a a .>",
-"input":"<a a .>",
-"output":[["StartTag", "a", {"a":"", ".":""}]]},
-
-{"description":"<a a />",
-"input":"<a a />",
-"output":[["StartTag", "a", {"a":""}, true]]},
-
-{"description":"<a a 0>",
-"input":"<a a 0>",
-"output":[["StartTag", "a", {"a":"", "0":""}]]},
-
-{"description":"<a a 1>",
-"input":"<a a 1>",
-"output":[["StartTag", "a", {"a":"", "1":""}]]},
-
-{"description":"<a a 9>",
-"input":"<a a 9>",
-"output":[["StartTag", "a", {"a":"", "9":""}]]},
-
-{"description":"<a a <>",
-"input":"<a a <>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "<":""}]]},
-
-{"description":"<a a =>",
-"input":"<a a =>",
-"output":["ParseError", ["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a >",
-"input":"<a a >",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a ?>",
-"input":"<a a ?>",
-"output":[["StartTag", "a", {"a":"", "?":""}]]},
-
-{"description":"<a a @>",
-"input":"<a a @>",
-"output":[["StartTag", "a", {"a":"", "@":""}]]},
-
-{"description":"<a a A>",
-"input":"<a a A>",
-"output":["ParseError", ["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a B>",
-"input":"<a a B>",
-"output":[["StartTag", "a", {"a":"", "b":""}]]},
-
-{"description":"<a a Y>",
-"input":"<a a Y>",
-"output":[["StartTag", "a", {"a":"", "y":""}]]},
-
-{"description":"<a a Z>",
-"input":"<a a Z>",
-"output":[["StartTag", "a", {"a":"", "z":""}]]},
-
-{"description":"<a a [>",
-"input":"<a a [>",
-"output":[["StartTag", "a", {"a":"", "[":""}]]},
-
-{"description":"<a a `>",
-"input":"<a a `>",
-"output":[["StartTag", "a", {"a":"", "`":""}]]},
-
-{"description":"<a a a>",
-"input":"<a a a>",
-"output":["ParseError", ["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a b>",
-"input":"<a a b>",
-"output":[["StartTag", "a", {"a":"", "b":""}]]},
-
-{"description":"<a a y>",
-"input":"<a a y>",
-"output":[["StartTag", "a", {"a":"", "y":""}]]},
-
-{"description":"<a a z>",
-"input":"<a a z>",
-"output":[["StartTag", "a", {"a":"", "z":""}]]},
-
-{"description":"<a a {>",
-"input":"<a a {>",
-"output":[["StartTag", "a", {"a":"", "{":""}]]},
-
-{"description":"<a a \\uDBC0\\uDC00>",
-"input":"<a a \uDBC0\uDC00>",
-"output":[["StartTag", "a", {"a":"", "\uDBC0\uDC00":""}]]},
-
-{"description":"<a a!>",
-"input":"<a a!>",
-"output":[["StartTag", "a", {"a!":""}]]},
-
-{"description":"<a a\">",
-"input":"<a a\">",
-"output":["ParseError", ["StartTag", "a", {"a\"":""}]]},
-
-{"description":"<a a#>",
-"input":"<a a#>",
-"output":[["StartTag", "a", {"a#":""}]]},
-
-{"description":"<a a&>",
-"input":"<a a&>",
-"output":[["StartTag", "a", {"a&":""}]]},
-
-{"description":"<a a'>",
-"input":"<a a'>",
-"output":["ParseError", ["StartTag", "a", {"a'":""}]]},
-
-{"description":"<a a(>",
-"input":"<a a(>",
-"output":[["StartTag", "a", {"a(":""}]]},
-
-{"description":"<a a->",
-"input":"<a a->",
-"output":[["StartTag", "a", {"a-":""}]]},
-
-{"description":"<a a.>",
-"input":"<a a.>",
-"output":[["StartTag", "a", {"a.":""}]]},
-
-{"description":"<a a/>",
-"input":"<a a/>",
-"output":[["StartTag", "a", {"a":""}, true]]},
-
-{"description":"<a a0>",
-"input":"<a a0>",
-"output":[["StartTag", "a", {"a0":""}]]},
-
-{"description":"<a a1>",
-"input":"<a a1>",
-"output":[["StartTag", "a", {"a1":""}]]},
-
-{"description":"<a a9>",
-"input":"<a a9>",
-"output":[["StartTag", "a", {"a9":""}]]},
-
-{"description":"<a a<>",
-"input":"<a a<>",
-"output":["ParseError", ["StartTag", "a", {"a<":""}]]},
-
-{"description":"<a a=>",
-"input":"<a a=>",
-"output":["ParseError", ["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=\\u0000>",
-"input":"<a a=\u0000>",
-"output":["ParseError", ["StartTag", "a", {"a":"\uFFFD"}]]},
-
-{"description":"<a a=\\u0008>",
-"input":"<a a=\u0008>",
-"output":["ParseError", ["StartTag", "a", {"a":"\u0008"}]]},
-
-{"description":"<a a=\\u0009>",
-"input":"<a a=\u0009>",
-"output":["ParseError", ["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=\\u000A>",
-"input":"<a a=\u000A>",
-"output":["ParseError", ["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=\\u000B>",
-"input":"<a a=\u000B>",
-"output":["ParseError", ["StartTag", "a", {"a":"\u000B"}]]},
-
-{"description":"<a a=\\u000C>",
-"input":"<a a=\u000C>",
-"output":["ParseError", ["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=\\u000D>",
-"input":"<a a=\u000D>",
-"output":["ParseError", ["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=\\u001F>",
-"input":"<a a=\u001F>",
-"output":["ParseError", ["StartTag", "a", {"a":"\u001F"}]]},
-
-{"description":"<a a= >",
-"input":"<a a= >",
-"output":["ParseError", ["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=!>",
-"input":"<a a=!>",
-"output":[["StartTag", "a", {"a":"!"}]]},
-
-{"description":"<a a=\"\">",
-"input":"<a a=\"\">",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=\"\\u0000\">",
-"input":"<a a=\"\u0000\">",
-"output":["ParseError", ["StartTag", "a", {"a":"\uFFFD"}]]},
-
-{"description":"<a a=\"\\u0009\">",
-"input":"<a a=\"\u0009\">",
-"output":[["StartTag", "a", {"a":"\u0009"}]]},
-
-{"description":"<a a=\"\\u000A\">",
-"input":"<a a=\"\u000A\">",
-"output":[["StartTag", "a", {"a":"\u000A"}]]},
-
-{"description":"<a a=\"\\u000B\">",
-"input":"<a a=\"\u000B\">",
-"output":["ParseError", ["StartTag", "a", {"a":"\u000B"}]]},
-
-{"description":"<a a=\"\\u000C\">",
-"input":"<a a=\"\u000C\">",
-"output":[["StartTag", "a", {"a":"\u000C"}]]},
-
-{"description":"<a a=\" \">",
-"input":"<a a=\" \">",
-"output":[["StartTag", "a", {"a":" "}]]},
-
-{"description":"<a a=\"!\">",
-"input":"<a a=\"!\">",
-"output":[["StartTag", "a", {"a":"!"}]]},
-
-{"description":"<a a=\"\">",
-"input":"<a a=\"\">",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=\"#\">",
-"input":"<a a=\"#\">",
-"output":[["StartTag", "a", {"a":"#"}]]},
-
-{"description":"<a a=\"%\">",
-"input":"<a a=\"%\">",
-"output":[["StartTag", "a", {"a":"%"}]]},
-
-{"description":"<a a=\"&\">",
-"input":"<a a=\"&\">",
-"output":[["StartTag", "a", {"a":"&"}]]},
-
-{"description":"<a a=\"'\">",
-"input":"<a a=\"'\">",
-"output":[["StartTag", "a", {"a":"'"}]]},
-
-{"description":"<a a=\"-\">",
-"input":"<a a=\"-\">",
-"output":[["StartTag", "a", {"a":"-"}]]},
-
-{"description":"<a a=\"/\">",
-"input":"<a a=\"/\">",
-"output":[["StartTag", "a", {"a":"/"}]]},
-
-{"description":"<a a=\"0\">",
-"input":"<a a=\"0\">",
-"output":[["StartTag", "a", {"a":"0"}]]},
-
-{"description":"<a a=\"1\">",
-"input":"<a a=\"1\">",
-"output":[["StartTag", "a", {"a":"1"}]]},
-
-{"description":"<a a=\"9\">",
-"input":"<a a=\"9\">",
-"output":[["StartTag", "a", {"a":"9"}]]},
-
-{"description":"<a a=\"<\">",
-"input":"<a a=\"<\">",
-"output":[["StartTag", "a", {"a":"<"}]]},
-
-{"description":"<a a=\"=\">",
-"input":"<a a=\"=\">",
-"output":[["StartTag", "a", {"a":"="}]]},
-
-{"description":"<a a=\">\">",
-"input":"<a a=\">\">",
-"output":[["StartTag", "a", {"a":">"}]]},
-
-{"description":"<a a=\"?\">",
-"input":"<a a=\"?\">",
-"output":[["StartTag", "a", {"a":"?"}]]},
-
-{"description":"<a a=\"@\">",
-"input":"<a a=\"@\">",
-"output":[["StartTag", "a", {"a":"@"}]]},
-
-{"description":"<a a=\"A\">",
-"input":"<a a=\"A\">",
-"output":[["StartTag", "a", {"a":"A"}]]},
-
-{"description":"<a a=\"B\">",
-"input":"<a a=\"B\">",
-"output":[["StartTag", "a", {"a":"B"}]]},
-
-{"description":"<a a=\"Y\">",
-"input":"<a a=\"Y\">",
-"output":[["StartTag", "a", {"a":"Y"}]]},
-
-{"description":"<a a=\"Z\">",
-"input":"<a a=\"Z\">",
-"output":[["StartTag", "a", {"a":"Z"}]]},
-
-{"description":"<a a=\"`\">",
-"input":"<a a=\"`\">",
-"output":[["StartTag", "a", {"a":"`"}]]},
-
-{"description":"<a a=\"a\">",
-"input":"<a a=\"a\">",
-"output":[["StartTag", "a", {"a":"a"}]]},
-
-{"description":"<a a=\"b\">",
-"input":"<a a=\"b\">",
-"output":[["StartTag", "a", {"a":"b"}]]},
-
-{"description":"<a a=\"y\">",
-"input":"<a a=\"y\">",
-"output":[["StartTag", "a", {"a":"y"}]]},
-
-{"description":"<a a=\"z\">",
-"input":"<a a=\"z\">",
-"output":[["StartTag", "a", {"a":"z"}]]},
-
-{"description":"<a a=\"{\">",
-"input":"<a a=\"{\">",
-"output":[["StartTag", "a", {"a":"{"}]]},
-
-{"description":"<a a=\"\\uDBC0\\uDC00\">",
-"input":"<a a=\"\uDBC0\uDC00\">",
-"output":[["StartTag", "a", {"a":"\uDBC0\uDC00"}]]},
-
-{"description":"<a a=#>",
-"input":"<a a=#>",
-"output":[["StartTag", "a", {"a":"#"}]]},
-
-{"description":"<a a=%>",
-"input":"<a a=%>",
-"output":[["StartTag", "a", {"a":"%"}]]},
-
-{"description":"<a a=&>",
-"input":"<a a=&>",
-"output":[["StartTag", "a", {"a":"&"}]]},
-
-{"description":"<a a=''>",
-"input":"<a a=''>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a='\\u0000'>",
-"input":"<a a='\u0000'>",
-"output":["ParseError", ["StartTag", "a", {"a":"\uFFFD"}]]},
-
-{"description":"<a a='\\u0009'>",
-"input":"<a a='\u0009'>",
-"output":[["StartTag", "a", {"a":"\u0009"}]]},
-
-{"description":"<a a='\\u000A'>",
-"input":"<a a='\u000A'>",
-"output":[["StartTag", "a", {"a":"\u000A"}]]},
-
-{"description":"<a a='\\u000B'>",
-"input":"<a a='\u000B'>",
-"output":["ParseError", ["StartTag", "a", {"a":"\u000B"}]]},
-
-{"description":"<a a='\\u000C'>",
-"input":"<a a='\u000C'>",
-"output":[["StartTag", "a", {"a":"\u000C"}]]},
-
-{"description":"<a a=' '>",
-"input":"<a a=' '>",
-"output":[["StartTag", "a", {"a":" "}]]},
-
-{"description":"<a a='!'>",
-"input":"<a a='!'>",
-"output":[["StartTag", "a", {"a":"!"}]]},
-
-{"description":"<a a='\"'>",
-"input":"<a a='\"'>",
-"output":[["StartTag", "a", {"a":"\""}]]},
-
-{"description":"<a a='%'>",
-"input":"<a a='%'>",
-"output":[["StartTag", "a", {"a":"%"}]]},
-
-{"description":"<a a='&'>",
-"input":"<a a='&'>",
-"output":[["StartTag", "a", {"a":"&"}]]},
-
-{"description":"<a a=''>",
-"input":"<a a=''>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=''\\u0000>",
-"input":"<a a=''\u0000>",
-"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\uFFFD":""}]]},
-
-{"description":"<a a=''\\u0008>",
-"input":"<a a=''\u0008>",
-"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u0008":""}]]},
-
-{"description":"<a a=''\\u0009>",
-"input":"<a a=''\u0009>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=''\\u000A>",
-"input":"<a a=''\u000A>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=''\\u000B>",
-"input":"<a a=''\u000B>",
-"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u000B":""}]]},
-
-{"description":"<a a=''\\u000C>",
-"input":"<a a=''\u000C>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=''\\u000D>",
-"input":"<a a=''\u000D>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=''\\u001F>",
-"input":"<a a=''\u001F>",
-"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u001F":""}]]},
-
-{"description":"<a a='' >",
-"input":"<a a='' >",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=''!>",
-"input":"<a a=''!>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "!":""}]]},
-
-{"description":"<a a=''\">",
-"input":"<a a=''\">",
-"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\"":""}]]},
-
-{"description":"<a a=''&>",
-"input":"<a a=''&>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "&":""}]]},
-
-{"description":"<a a='''>",
-"input":"<a a='''>",
-"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "'":""}]]},
-
-{"description":"<a a=''->",
-"input":"<a a=''->",
-"output":["ParseError", ["StartTag", "a", {"a":"", "-":""}]]},
-
-{"description":"<a a=''.>",
-"input":"<a a=''.>",
-"output":["ParseError", ["StartTag", "a", {"a":"", ".":""}]]},
-
-{"description":"<a a=''/>",
-"input":"<a a=''/>",
-"output":[["StartTag", "a", {"a":""}, true]]},
-
-{"description":"<a a=''0>",
-"input":"<a a=''0>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "0":""}]]},
-
-{"description":"<a a=''1>",
-"input":"<a a=''1>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "1":""}]]},
-
-{"description":"<a a=''9>",
-"input":"<a a=''9>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "9":""}]]},
-
-{"description":"<a a=''<>",
-"input":"<a a=''<>",
-"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "<":""}]]},
-
-{"description":"<a a=''=>",
-"input":"<a a=''=>",
-"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "=":""}]]},
-
-{"description":"<a a=''>",
-"input":"<a a=''>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=''?>",
-"input":"<a a=''?>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "?":""}]]},
-
-{"description":"<a a=''@>",
-"input":"<a a=''@>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "@":""}]]},
-
-{"description":"<a a=''A>",
-"input":"<a a=''A>",
-"output":["ParseError", "ParseError", ["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=''B>",
-"input":"<a a=''B>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "b":""}]]},
-
-{"description":"<a a=''Y>",
-"input":"<a a=''Y>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "y":""}]]},
-
-{"description":"<a a=''Z>",
-"input":"<a a=''Z>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "z":""}]]},
-
-{"description":"<a a=''`>",
-"input":"<a a=''`>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "`":""}]]},
-
-{"description":"<a a=''a>",
-"input":"<a a=''a>",
-"output":["ParseError", "ParseError", ["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=''b>",
-"input":"<a a=''b>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "b":""}]]},
-
-{"description":"<a a=''y>",
-"input":"<a a=''y>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "y":""}]]},
-
-{"description":"<a a=''z>",
-"input":"<a a=''z>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "z":""}]]},
-
-{"description":"<a a=''{>",
-"input":"<a a=''{>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "{":""}]]},
-
-{"description":"<a a=''\\uDBC0\\uDC00>",
-"input":"<a a=''\uDBC0\uDC00>",
-"output":["ParseError", ["StartTag", "a", {"a":"", "\uDBC0\uDC00":""}]]},
-
-{"description":"<a a='('>",
-"input":"<a a='('>",
-"output":[["StartTag", "a", {"a":"("}]]},
-
-{"description":"<a a='-'>",
-"input":"<a a='-'>",
-"output":[["StartTag", "a", {"a":"-"}]]},
-
-{"description":"<a a='/'>",
-"input":"<a a='/'>",
-"output":[["StartTag", "a", {"a":"/"}]]},
-
-{"description":"<a a='0'>",
-"input":"<a a='0'>",
-"output":[["StartTag", "a", {"a":"0"}]]},
-
-{"description":"<a a='1'>",
-"input":"<a a='1'>",
-"output":[["StartTag", "a", {"a":"1"}]]},
-
-{"description":"<a a='9'>",
-"input":"<a a='9'>",
-"output":[["StartTag", "a", {"a":"9"}]]},
-
-{"description":"<a a='<'>",
-"input":"<a a='<'>",
-"output":[["StartTag", "a", {"a":"<"}]]},
-
-{"description":"<a a='='>",
-"input":"<a a='='>",
-"output":[["StartTag", "a", {"a":"="}]]},
-
-{"description":"<a a='>'>",
-"input":"<a a='>'>",
-"output":[["StartTag", "a", {"a":">"}]]},
-
-{"description":"<a a='?'>",
-"input":"<a a='?'>",
-"output":[["StartTag", "a", {"a":"?"}]]},
-
-{"description":"<a a='@'>",
-"input":"<a a='@'>",
-"output":[["StartTag", "a", {"a":"@"}]]},
-
-{"description":"<a a='A'>",
-"input":"<a a='A'>",
-"output":[["StartTag", "a", {"a":"A"}]]},
-
-{"description":"<a a='B'>",
-"input":"<a a='B'>",
-"output":[["StartTag", "a", {"a":"B"}]]},
-
-{"description":"<a a='Y'>",
-"input":"<a a='Y'>",
-"output":[["StartTag", "a", {"a":"Y"}]]},
-
-{"description":"<a a='Z'>",
-"input":"<a a='Z'>",
-"output":[["StartTag", "a", {"a":"Z"}]]},
-
-{"description":"<a a='`'>",
-"input":"<a a='`'>",
-"output":[["StartTag", "a", {"a":"`"}]]},
-
-{"description":"<a a='a'>",
-"input":"<a a='a'>",
-"output":[["StartTag", "a", {"a":"a"}]]},
-
-{"description":"<a a='b'>",
-"input":"<a a='b'>",
-"output":[["StartTag", "a", {"a":"b"}]]},
-
-{"description":"<a a='y'>",
-"input":"<a a='y'>",
-"output":[["StartTag", "a", {"a":"y"}]]},
-
-{"description":"<a a='z'>",
-"input":"<a a='z'>",
-"output":[["StartTag", "a", {"a":"z"}]]},
-
-{"description":"<a a='{'>",
-"input":"<a a='{'>",
-"output":[["StartTag", "a", {"a":"{"}]]},
-
-{"description":"<a a='\\uDBC0\\uDC00'>",
-"input":"<a a='\uDBC0\uDC00'>",
-"output":[["StartTag", "a", {"a":"\uDBC0\uDC00"}]]},
-
-{"description":"<a a=(>",
-"input":"<a a=(>",
-"output":[["StartTag", "a", {"a":"("}]]},
-
-{"description":"<a a=->",
-"input":"<a a=->",
-"output":[["StartTag", "a", {"a":"-"}]]},
-
-{"description":"<a a=/>",
-"input":"<a a=/>",
-"output":[["StartTag", "a", {"a":"/"}]]},
-
-{"description":"<a a=0>",
-"input":"<a a=0>",
-"output":[["StartTag", "a", {"a":"0"}]]},
-
-{"description":"<a a=1>",
-"input":"<a a=1>",
-"output":[["StartTag", "a", {"a":"1"}]]},
-
-{"description":"<a a=9>",
-"input":"<a a=9>",
-"output":[["StartTag", "a", {"a":"9"}]]},
-
-{"description":"<a a=<>",
-"input":"<a a=<>",
-"output":["ParseError", ["StartTag", "a", {"a":"<"}]]},
-
-{"description":"<a a==>",
-"input":"<a a==>",
-"output":["ParseError", ["StartTag", "a", {"a":"="}]]},
-
-{"description":"<a a=>",
-"input":"<a a=>",
-"output":["ParseError", ["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a=?>",
-"input":"<a a=?>",
-"output":[["StartTag", "a", {"a":"?"}]]},
-
-{"description":"<a a=@>",
-"input":"<a a=@>",
-"output":[["StartTag", "a", {"a":"@"}]]},
-
-{"description":"<a a=A>",
-"input":"<a a=A>",
-"output":[["StartTag", "a", {"a":"A"}]]},
-
-{"description":"<a a=B>",
-"input":"<a a=B>",
-"output":[["StartTag", "a", {"a":"B"}]]},
-
-{"description":"<a a=Y>",
-"input":"<a a=Y>",
-"output":[["StartTag", "a", {"a":"Y"}]]},
-
-{"description":"<a a=Z>",
-"input":"<a a=Z>",
-"output":[["StartTag", "a", {"a":"Z"}]]},
-
-{"description":"<a a=`>",
-"input":"<a a=`>",
-"output":["ParseError", ["StartTag", "a", {"a":"`"}]]},
-
-{"description":"<a a=a>",
-"input":"<a a=a>",
-"output":[["StartTag", "a", {"a":"a"}]]},
-
-{"description":"<a a=a\\u0000>",
-"input":"<a a=a\u0000>",
-"output":["ParseError", ["StartTag", "a", {"a":"a\uFFFD"}]]},
-
-{"description":"<a a=a\\u0008>",
-"input":"<a a=a\u0008>",
-"output":["ParseError", ["StartTag", "a", {"a":"a\u0008"}]]},
-
-{"description":"<a a=a\\u0009>",
-"input":"<a a=a\u0009>",
-"output":[["StartTag", "a", {"a":"a"}]]},
-
-{"description":"<a a=a\\u000A>",
-"input":"<a a=a\u000A>",
-"output":[["StartTag", "a", {"a":"a"}]]},
-
-{"description":"<a a=a\\u000B>",
-"input":"<a a=a\u000B>",
-"output":["ParseError", ["StartTag", "a", {"a":"a\u000B"}]]},
-
-{"description":"<a a=a\\u000C>",
-"input":"<a a=a\u000C>",
-"output":[["StartTag", "a", {"a":"a"}]]},
-
-{"description":"<a a=a\\u000D>",
-"input":"<a a=a\u000D>",
-"output":[["StartTag", "a", {"a":"a"}]]},
-
-{"description":"<a a=a\\u001F>",
-"input":"<a a=a\u001F>",
-"output":["ParseError", ["StartTag", "a", {"a":"a\u001F"}]]},
-
-{"description":"<a a=a >",
-"input":"<a a=a >",
-"output":[["StartTag", "a", {"a":"a"}]]},
-
-{"description":"<a a=a!>",
-"input":"<a a=a!>",
-"output":[["StartTag", "a", {"a":"a!"}]]},
-
-{"description":"<a a=a\">",
-"input":"<a a=a\">",
-"output":["ParseError", ["StartTag", "a", {"a":"a\""}]]},
-
-{"description":"<a a=a#>",
-"input":"<a a=a#>",
-"output":[["StartTag", "a", {"a":"a#"}]]},
-
-{"description":"<a a=a%>",
-"input":"<a a=a%>",
-"output":[["StartTag", "a", {"a":"a%"}]]},
-
-{"description":"<a a=a&>",
-"input":"<a a=a&>",
-"output":[["StartTag", "a", {"a":"a&"}]]},
-
-{"description":"<a a=a'>",
-"input":"<a a=a'>",
-"output":["ParseError", ["StartTag", "a", {"a":"a'"}]]},
-
-{"description":"<a a=a(>",
-"input":"<a a=a(>",
-"output":[["StartTag", "a", {"a":"a("}]]},
-
-{"description":"<a a=a->",
-"input":"<a a=a->",
-"output":[["StartTag", "a", {"a":"a-"}]]},
-
-{"description":"<a a=a/>",
-"input":"<a a=a/>",
-"output":[["StartTag", "a", {"a":"a/"}]]},
-
-{"description":"<a a=a0>",
-"input":"<a a=a0>",
-"output":[["StartTag", "a", {"a":"a0"}]]},
-
-{"description":"<a a=a1>",
-"input":"<a a=a1>",
-"output":[["StartTag", "a", {"a":"a1"}]]},
-
-{"description":"<a a=a9>",
-"input":"<a a=a9>",
-"output":[["StartTag", "a", {"a":"a9"}]]},
-
-{"description":"<a a=a<>",
-"input":"<a a=a<>",
-"output":["ParseError", ["StartTag", "a", {"a":"a<"}]]},
-
-{"description":"<a a=a=>",
-"input":"<a a=a=>",
-"output":["ParseError", ["StartTag", "a", {"a":"a="}]]},
-
-{"description":"<a a=a>",
-"input":"<a a=a>",
-"output":[["StartTag", "a", {"a":"a"}]]},
-
-{"description":"<a a=a?>",
-"input":"<a a=a?>",
-"output":[["StartTag", "a", {"a":"a?"}]]},
-
-{"description":"<a a=a@>",
-"input":"<a a=a@>",
-"output":[["StartTag", "a", {"a":"a@"}]]},
-
-{"description":"<a a=aA>",
-"input":"<a a=aA>",
-"output":[["StartTag", "a", {"a":"aA"}]]},
-
-{"description":"<a a=aB>",
-"input":"<a a=aB>",
-"output":[["StartTag", "a", {"a":"aB"}]]},
-
-{"description":"<a a=aY>",
-"input":"<a a=aY>",
-"output":[["StartTag", "a", {"a":"aY"}]]},
-
-{"description":"<a a=aZ>",
-"input":"<a a=aZ>",
-"output":[["StartTag", "a", {"a":"aZ"}]]},
-
-{"description":"<a a=a`>",
-"input":"<a a=a`>",
-"output":["ParseError", ["StartTag", "a", {"a":"a`"}]]},
-
-{"description":"<a a=aa>",
-"input":"<a a=aa>",
-"output":[["StartTag", "a", {"a":"aa"}]]},
-
-{"description":"<a a=ab>",
-"input":"<a a=ab>",
-"output":[["StartTag", "a", {"a":"ab"}]]},
-
-{"description":"<a a=ay>",
-"input":"<a a=ay>",
-"output":[["StartTag", "a", {"a":"ay"}]]},
-
-{"description":"<a a=az>",
-"input":"<a a=az>",
-"output":[["StartTag", "a", {"a":"az"}]]},
-
-{"description":"<a a=a{>",
-"input":"<a a=a{>",
-"output":[["StartTag", "a", {"a":"a{"}]]},
-
-{"description":"<a a=a\\uDBC0\\uDC00>",
-"input":"<a a=a\uDBC0\uDC00>",
-"output":[["StartTag", "a", {"a":"a\uDBC0\uDC00"}]]},
-
-{"description":"<a a=b>",
-"input":"<a a=b>",
-"output":[["StartTag", "a", {"a":"b"}]]},
-
-{"description":"<a a=y>",
-"input":"<a a=y>",
-"output":[["StartTag", "a", {"a":"y"}]]},
-
-{"description":"<a a=z>",
-"input":"<a a=z>",
-"output":[["StartTag", "a", {"a":"z"}]]},
-
-{"description":"<a a={>",
-"input":"<a a={>",
-"output":[["StartTag", "a", {"a":"{"}]]},
-
-{"description":"<a a=\\uDBC0\\uDC00>",
-"input":"<a a=\uDBC0\uDC00>",
-"output":[["StartTag", "a", {"a":"\uDBC0\uDC00"}]]},
-
-{"description":"<a a>",
-"input":"<a a>",
-"output":[["StartTag", "a", {"a":""}]]},
-
-{"description":"<a a?>",
-"input":"<a a?>",
-"output":[["StartTag", "a", {"a?":""}]]},
-
-{"description":"<a a@>",
-"input":"<a a@>",
-"output":[["StartTag", "a", {"a@":""}]]},
-
-{"description":"<a aA>",
-"input":"<a aA>",
-"output":[["StartTag", "a", {"aa":""}]]},
-
-{"description":"<a aB>",
-"input":"<a aB>",
-"output":[["StartTag", "a", {"ab":""}]]},
-
-{"description":"<a aY>",
-"input":"<a aY>",
-"output":[["StartTag", "a", {"ay":""}]]},
-
-{"description":"<a aZ>",
-"input":"<a aZ>",
-"output":[["StartTag", "a", {"az":""}]]},
-
-{"description":"<a a[>",
-"input":"<a a[>",
-"output":[["StartTag", "a", {"a[":""}]]},
-
-{"description":"<a a`>",
-"input":"<a a`>",
-"output":[["StartTag", "a", {"a`":""}]]},
-
-{"description":"<a aa>",
-"input":"<a aa>",
-"output":[["StartTag", "a", {"aa":""}]]},
-
-{"description":"<a ab>",
-"input":"<a ab>",
-"output":[["StartTag", "a", {"ab":""}]]},
-
-{"description":"<a ay>",
-"input":"<a ay>",
-"output":[["StartTag", "a", {"ay":""}]]},
-
-{"description":"<a az>",
-"input":"<a az>",
-"output":[["StartTag", "a", {"az":""}]]},
-
-{"description":"<a a{>",
-"input":"<a a{>",
-"output":[["StartTag", "a", {"a{":""}]]},
-
-{"description":"<a a\\uDBC0\\uDC00>",
-"input":"<a a\uDBC0\uDC00>",
-"output":[["StartTag", "a", {"a\uDBC0\uDC00":""}]]},
-
-{"description":"<a b>",
-"input":"<a b>",
-"output":[["StartTag", "a", {"b":""}]]},
-
-{"description":"<a y>",
-"input":"<a y>",
-"output":[["StartTag", "a", {"y":""}]]},
-
-{"description":"<a z>",
-"input":"<a z>",
-"output":[["StartTag", "a", {"z":""}]]},
-
-{"description":"<a {>",
-"input":"<a {>",
-"output":[["StartTag", "a", {"{":""}]]},
-
-{"description":"<a \\uDBC0\\uDC00>",
-"input":"<a \uDBC0\uDC00>",
-"output":[["StartTag", "a", {"\uDBC0\uDC00":""}]]},
-
-{"description":"<a!>",
-"input":"<a!>",
-"output":[["StartTag", "a!", {}]]},
-
-{"description":"<a\">",
-"input":"<a\">",
-"output":[["StartTag", "a\"", {}]]},
-
-{"description":"<a&>",
-"input":"<a&>",
-"output":[["StartTag", "a&", {}]]},
-
-{"description":"<a'>",
-"input":"<a'>",
-"output":[["StartTag", "a'", {}]]},
-
-{"description":"<a->",
-"input":"<a->",
-"output":[["StartTag", "a-", {}]]},
-
-{"description":"<a.>",
-"input":"<a.>",
-"output":[["StartTag", "a.", {}]]},
-
-{"description":"<a/>",
-"input":"<a/>",
-"output":[["StartTag", "a", {}, true]]},
-
-{"description":"<a/\\u0000>",
-"input":"<a/\u0000>",
-"output":["ParseError", "ParseError", ["StartTag", "a", {"\uFFFD":""}]]},
-
-{"description":"<a/\\u0009>",
-"input":"<a/\u0009>",
-"output":["ParseError", ["StartTag", "a", {}]]},
-
-{"description":"<a/\\u000A>",
-"input":"<a/\u000A>",
-"output":["ParseError", ["StartTag", "a", {}]]},
-
-{"description":"<a/\\u000B>",
-"input":"<a/\u000B>",
-"output":["ParseError", "ParseError", ["StartTag", "a", {"\u000B":""}]]},
-
-{"description":"<a/\\u000C>",
-"input":"<a/\u000C>",
-"output":["ParseError", ["StartTag", "a", {}]]},
-
-{"description":"<a/ >",
-"input":"<a/ >",
-"output":["ParseError", ["StartTag", "a", {}]]},
-
-{"description":"<a/!>",
-"input":"<a/!>",
-"output":["ParseError", ["StartTag", "a", {"!":""}]]},
-
-{"description":"<a/\">",
-"input":"<a/\">",
-"output":["ParseError", "ParseError", ["StartTag", "a", {"\"":""}]]},
-
-{"description":"<a/&>",
-"input":"<a/&>",
-"output":["ParseError", ["StartTag", "a", {"&":""}]]},
-
-{"description":"<a/'>",
-"input":"<a/'>",
-"output":["ParseError", "ParseError", ["StartTag", "a", {"'":""}]]},
-
-{"description":"<a/->",
-"input":"<a/->",
-"output":["ParseError", ["StartTag", "a", {"-":""}]]},
-
-{"description":"<a//>",
-"input":"<a//>",
-"output":["ParseError", ["StartTag", "a", {}, true]]},
-
-{"description":"<a/0>",
-"input":"<a/0>",
-"output":["ParseError", ["StartTag", "a", {"0":""}]]},
-
-{"description":"<a/1>",
-"input":"<a/1>",
-"output":["ParseError", ["StartTag", "a", {"1":""}]]},
-
-{"description":"<a/9>",
-"input":"<a/9>",
-"output":["ParseError", ["StartTag", "a", {"9":""}]]},
-
-{"description":"<a/<>",
-"input":"<a/<>",
-"output":["ParseError", "ParseError", ["StartTag", "a", {"<":""}]]},
-
-{"description":"<a/=>",
-"input":"<a/=>",
-"output":["ParseError", "ParseError", ["StartTag", "a", {"=":""}]]},
-
-{"description":"<a/>",
-"input":"<a/>",
-"output":[["StartTag", "a", {}, true]]},
-
-{"description":"<a/?>",
-"input":"<a/?>",
-"output":["ParseError", ["StartTag", "a", {"?":""}]]},
-
-{"description":"<a/@>",
-"input":"<a/@>",
-"output":["ParseError", ["StartTag", "a", {"@":""}]]},
-
-{"description":"<a/A>",
-"input":"<a/A>",
-"output":["ParseError", ["StartTag", "a", {"a":""}]]},
-
-{"description":"<a/B>",
-"input":"<a/B>",
-"output":["ParseError", ["StartTag", "a", {"b":""}]]},
-
-{"description":"<a/Y>",
-"input":"<a/Y>",
-"output":["ParseError", ["StartTag", "a", {"y":""}]]},
-
-{"description":"<a/Z>",
-"input":"<a/Z>",
-"output":["ParseError", ["StartTag", "a", {"z":""}]]},
-
-{"description":"<a/`>",
-"input":"<a/`>",
-"output":["ParseError", ["StartTag", "a", {"`":""}]]},
-
-{"description":"<a/a>",
-"input":"<a/a>",
-"output":["ParseError", ["StartTag", "a", {"a":""}]]},
-
-{"description":"<a/b>",
-"input":"<a/b>",
-"output":["ParseError", ["StartTag", "a", {"b":""}]]},
-
-{"description":"<a/y>",
-"input":"<a/y>",
-"output":["ParseError", ["StartTag", "a", {"y":""}]]},
-
-{"description":"<a/z>",
-"input":"<a/z>",
-"output":["ParseError", ["StartTag", "a", {"z":""}]]},
-
-{"description":"<a/{>",
-"input":"<a/{>",
-"output":["ParseError", ["StartTag", "a", {"{":""}]]},
-
-{"description":"<a/\\uDBC0\\uDC00>",
-"input":"<a/\uDBC0\uDC00>",
-"output":["ParseError", ["StartTag", "a", {"\uDBC0\uDC00":""}]]},
-
-{"description":"<a0>",
-"input":"<a0>",
-"output":[["StartTag", "a0", {}]]},
-
-{"description":"<a1>",
-"input":"<a1>",
-"output":[["StartTag", "a1", {}]]},
-
-{"description":"<a9>",
-"input":"<a9>",
-"output":[["StartTag", "a9", {}]]},
-
-{"description":"<a<>",
-"input":"<a<>",
-"output":[["StartTag", "a<", {}]]},
-
-{"description":"<a=>",
-"input":"<a=>",
-"output":[["StartTag", "a=", {}]]},
-
-{"description":"<a>",
-"input":"<a>",
-"output":[["StartTag", "a", {}]]},
-
-{"description":"<a?>",
-"input":"<a?>",
-"output":[["StartTag", "a?", {}]]},
-
-{"description":"<a@>",
-"input":"<a@>",
-"output":[["StartTag", "a@", {}]]},
-
-{"description":"<aA>",
-"input":"<aA>",
-"output":[["StartTag", "aa", {}]]},
-
-{"description":"<aB>",
-"input":"<aB>",
-"output":[["StartTag", "ab", {}]]},
-
-{"description":"<aY>",
-"input":"<aY>",
-"output":[["StartTag", "ay", {}]]},
-
-{"description":"<aZ>",
-"input":"<aZ>",
-"output":[["StartTag", "az", {}]]},
-
-{"description":"<a[>",
-"input":"<a[>",
-"output":[["StartTag", "a[", {}]]},
-
-{"description":"<a`>",
-"input":"<a`>",
-"output":[["StartTag", "a`", {}]]},
-
-{"description":"<aa>",
-"input":"<aa>",
-"output":[["StartTag", "aa", {}]]},
-
-{"description":"<ab>",
-"input":"<ab>",
-"output":[["StartTag", "ab", {}]]},
-
-{"description":"<ay>",
-"input":"<ay>",
-"output":[["StartTag", "ay", {}]]},
-
-{"description":"<az>",
-"input":"<az>",
-"output":[["StartTag", "az", {}]]},
-
-{"description":"<a{>",
-"input":"<a{>",
-"output":[["StartTag", "a{", {}]]},
-
-{"description":"<a\\uDBC0\\uDC00>",
-"input":"<a\uDBC0\uDC00>",
-"output":[["StartTag", "a\uDBC0\uDC00", {}]]},
-
-{"description":"<b>",
-"input":"<b>",
-"output":[["StartTag", "b", {}]]},
-
-{"description":"<y>",
-"input":"<y>",
-"output":[["StartTag", "y", {}]]},
-
-{"description":"<z>",
-"input":"<z>",
-"output":[["StartTag", "z", {}]]},
-
-{"description":"<{",
-"input":"<{",
-"output":["ParseError", ["Character", "<{"]]},
-
-{"description":"<\\uDBC0\\uDC00",
-"input":"<\uDBC0\uDC00",
-"output":["ParseError", ["Character", "<\uDBC0\uDC00"]]},
-
-{"description":"=",
-"input":"=",
-"output":[["Character", "="]]},
-
-{"description":">",
-"input":">",
-"output":[["Character", ">"]]},
-
-{"description":"?",
-"input":"?",
-"output":[["Character", "?"]]},
-
-{"description":"@",
-"input":"@",
-"output":[["Character", "@"]]},
-
-{"description":"A",
-"input":"A",
-"output":[["Character", "A"]]},
-
-{"description":"B",
-"input":"B",
-"output":[["Character", "B"]]},
-
-{"description":"Y",
-"input":"Y",
-"output":[["Character", "Y"]]},
-
-{"description":"Z",
-"input":"Z",
-"output":[["Character", "Z"]]},
-
-{"description":"`",
-"input":"`",
-"output":[["Character", "`"]]},
-
-{"description":"a",
-"input":"a",
-"output":[["Character", "a"]]},
-
-{"description":"b",
-"input":"b",
-"output":[["Character", "b"]]},
-
-{"description":"y",
-"input":"y",
-"output":[["Character", "y"]]},
-
-{"description":"z",
-"input":"z",
-"output":[["Character", "z"]]},
-
-{"description":"{",
-"input":"{",
-"output":[["Character", "{"]]},
-
-{"description":"\\uDBC0\\uDC00",
-"input":"\uDBC0\uDC00",
-"output":[["Character", "\uDBC0\uDC00"]]}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test4.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test4.test
deleted file mode 100644
index 4be94b0c7e4..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test4.test
+++ /dev/null
@@ -1,344 +0,0 @@
-{"tests": [
-
-{"description":"< in attribute name",
-"input":"<z/0 <>",
-"output":["ParseError", "ParseError", ["StartTag", "z", {"0": "", "<": ""}]]},
-
-{"description":"< in attribute value",
-"input":"<z x=<>",
-"output":["ParseError", ["StartTag", "z", {"x": "<"}]]},
-
-{"description":"= in unquoted attribute value",
-"input":"<z z=z=z>",
-"output":["ParseError", ["StartTag", "z", {"z": "z=z"}]]},
-
-{"description":"= attribute",
-"input":"<z =>",
-"output":["ParseError", ["StartTag", "z", {"=": ""}]]},
-
-{"description":"== attribute",
-"input":"<z ==>",
-"output":["ParseError", "ParseError", ["StartTag", "z", {"=": ""}]]},
-
-{"description":"=== attribute",
-"input":"<z ===>",
-"output":["ParseError", "ParseError", ["StartTag", "z", {"=": "="}]]},
-
-{"description":"==== attribute",
-"input":"<z ====>",
-"output":["ParseError", "ParseError", "ParseError", ["StartTag", "z", {"=": "=="}]]},
-
-{"description":"\" after ampersand in double-quoted attribute value",
-"input":"<z z=\"&\">",
-"output":[["StartTag", "z", {"z": "&"}]]},
-
-{"description":"' after ampersand in double-quoted attribute value",
-"input":"<z z=\"&'\">",
-"output":[["StartTag", "z", {"z": "&'"}]]},
-
-{"description":"' after ampersand in single-quoted attribute value",
-"input":"<z z='&'>",
-"output":[["StartTag", "z", {"z": "&"}]]},
-
-{"description":"\" after ampersand in single-quoted attribute value",
-"input":"<z z='&\"'>",
-"output":[["StartTag", "z", {"z": "&\""}]]},
-
-{"description":"Text after bogus character reference",
-"input":"<z z='&xlink_xmlns;'>bar<z>",
-"output":[["StartTag","z",{"z":"&xlink_xmlns;"}],["Character","bar"],["StartTag","z",{}]]},
-
-{"description":"Text after hex character reference",
-"input":"<z z='&#x0020; foo'>bar<z>",
-"output":[["StartTag","z",{"z":" foo"}],["Character","bar"],["StartTag","z",{}]]},
-
-{"description":"Attribute name starting with \"",
-"input":"<foo \"='bar'>",
-"output":["ParseError", ["StartTag", "foo", {"\"": "bar"}]]},
-
-{"description":"Attribute name starting with '",
-"input":"<foo '='bar'>",
-"output":["ParseError", ["StartTag", "foo", {"'": "bar"}]]},
-
-{"description":"Attribute name containing \"",
-"input":"<foo a\"b='bar'>",
-"output":["ParseError", ["StartTag", "foo", {"a\"b": "bar"}]]},
-
-{"description":"Attribute name containing '",
-"input":"<foo a'b='bar'>",
-"output":["ParseError", ["StartTag", "foo", {"a'b": "bar"}]]},
-
-{"description":"Unquoted attribute value containing '",
-"input":"<foo a=b'c>",
-"output":["ParseError", ["StartTag", "foo", {"a": "b'c"}]]},
-
-{"description":"Unquoted attribute value containing \"",
-"input":"<foo a=b\"c>",
-"output":["ParseError", ["StartTag", "foo", {"a": "b\"c"}]]},
-
-{"description":"Double-quoted attribute value not followed by whitespace",
-"input":"<foo a=\"b\"c>",
-"output":["ParseError", ["StartTag", "foo", {"a": "b", "c": ""}]]},
-
-{"description":"Single-quoted attribute value not followed by whitespace",
-"input":"<foo a='b'c>",
-"output":["ParseError", ["StartTag", "foo", {"a": "b", "c": ""}]]},
-
-{"description":"Quoted attribute followed by permitted /",
-"input":"<br a='b'/>",
-"output":[["StartTag","br",{"a":"b"},true]]},
-
-{"description":"Quoted attribute followed by non-permitted /",
-"input":"<bar a='b'/>",
-"output":[["StartTag","bar",{"a":"b"},true]]},
-
-{"description":"CR EOF after doctype name",
-"input":"<!doctype html \r",
-"output":["ParseError", ["DOCTYPE", "html", null, null, false]]},
-
-{"description":"CR EOF in tag name",
-"input":"<z\r",
-"output":["ParseError"]},
-
-{"description":"Slash EOF in tag name",
-"input":"<z/",
-"output":["ParseError"]},
-
-{"description":"Zero hex numeric entity",
-"input":"&#x0",
-"output":["ParseError", "ParseError", ["Character", "\uFFFD"]]},
-
-{"description":"Zero decimal numeric entity",
-"input":"&#0",
-"output":["ParseError", "ParseError", ["Character", "\uFFFD"]]},
-
-{"description":"Zero-prefixed hex numeric entity",
-"input":"&#x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041;",
-"output":[["Character", "A"]]},
-
-{"description":"Zero-prefixed decimal numeric entity",
-"input":"&#000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065;",
-"output":[["Character", "A"]]},
-
-{"description":"Empty hex numeric entities",
-"input":"&#x &#X ",
-"output":["ParseError", ["Character", "&#x "], "ParseError", ["Character", "&#X "]]},
-
-{"description":"Empty decimal numeric entities",
-"input":"&# &#; ",
-"output":["ParseError", ["Character", "&# "], "ParseError", ["Character", "&#; "]]},
-
-{"description":"Non-BMP numeric entity",
-"input":"&#x10000;",
-"output":[["Character", "\uD800\uDC00"]]},
-
-{"description":"Maximum non-BMP numeric entity",
-"input":"&#X10FFFF;",
-"output":["ParseError", ["Character", "\uDBFF\uDFFF"]]},
-
-{"description":"Above maximum numeric entity",
-"input":"&#x110000;",
-"output":["ParseError", ["Character", "\uFFFD"]]},
-
-{"description":"32-bit hex numeric entity",
-"input":"&#x80000041;",
-"output":["ParseError", ["Character", "\uFFFD"]]},
-
-{"description":"33-bit hex numeric entity",
-"input":"&#x100000041;",
-"output":["ParseError", ["Character", "\uFFFD"]]},
-
-{"description":"33-bit decimal numeric entity",
-"input":"&#4294967361;",
-"output":["ParseError", ["Character", "\uFFFD"]]},
-
-{"description":"65-bit hex numeric entity",
-"input":"&#x10000000000000041;",
-"output":["ParseError", ["Character", "\uFFFD"]]},
-
-{"description":"65-bit decimal numeric entity",
-"input":"&#18446744073709551681;",
-"output":["ParseError", ["Character", "\uFFFD"]]},
-
-{"description":"Surrogate code point edge cases",
-"input":"&#xD7FF;&#xD800;&#xD801;&#xDFFE;&#xDFFF;&#xE000;",
-"output":[["Character", "\uD7FF"], "ParseError", ["Character", "\uFFFD"], "ParseError", ["Character", "\uFFFD"], "ParseError", ["Character", "\uFFFD"], "ParseError", ["Character", "\uFFFD\uE000"]]},
-
-{"description":"Uppercase start tag name",
-"input":"<X>",
-"output":[["StartTag", "x", {}]]},
-
-{"description":"Uppercase end tag name",
-"input":"</X>",
-"output":[["EndTag", "x"]]},
-
-{"description":"Uppercase attribute name",
-"input":"<x X>",
-"output":[["StartTag", "x", { "x":"" }]]},
-
-{"description":"Tag/attribute name case edge values",
-"input":"<x@AZ[`az{ @AZ[`az{>",
-"output":[["StartTag", "x@az[`az{", { "@az[`az{":"" }]]},
-
-{"description":"Duplicate different-case attributes",
-"input":"<x x=1 x=2 X=3>",
-"output":["ParseError", "ParseError", ["StartTag", "x", { "x":"1" }]]},
-
-{"description":"Uppercase close tag attributes",
-"input":"</x X>",
-"output":["ParseError", ["EndTag", "x"]]},
-
-{"description":"Duplicate close tag attributes",
-"input":"</x x x>",
-"output":["ParseError", "ParseError", ["EndTag", "x"]]},
-
-{"description":"Permitted slash",
-"input":"<br/>",
-"output":[["StartTag","br",{},true]]},
-
-{"description":"Non-permitted slash",
-"input":"<xr/>",
-"output":[["StartTag","xr",{},true]]},
-
-{"description":"Permitted slash but in close tag",
-"input":"</br/>",
-"output":["ParseError", ["EndTag", "br"]]},
-
-{"description":"Doctype public case-sensitivity (1)",
-"input":"<!DoCtYpE HtMl PuBlIc \"AbC\" \"XyZ\">",
-"output":[["DOCTYPE", "html", "AbC", "XyZ", true]]},
-
-{"description":"Doctype public case-sensitivity (2)",
-"input":"<!dOcTyPe hTmL pUbLiC \"aBc\" \"xYz\">",
-"output":[["DOCTYPE", "html", "aBc", "xYz", true]]},
-
-{"description":"Doctype system case-sensitivity (1)",
-"input":"<!DoCtYpE HtMl SyStEm \"XyZ\">",
-"output":[["DOCTYPE", "html", null, "XyZ", true]]},
-
-{"description":"Doctype system case-sensitivity (2)",
-"input":"<!dOcTyPe hTmL sYsTeM \"xYz\">",
-"output":[["DOCTYPE", "html", null, "xYz", true]]},
-
-{"description":"U+0000 in lookahead region after non-matching character",
-"input":"<!doc>\u0000",
-"output":["ParseError", ["Comment", "doc"], "ParseError", ["Character", "\u0000"]],
-"ignoreErrorOrder":true},
-
-{"description":"U+0000 in lookahead region",
-"input":"<!doc\u0000",
-"output":["ParseError", ["Comment", "doc\uFFFD"]],
-"ignoreErrorOrder":true},
-
-{"description":"U+0080 in lookahead region",
-"input":"<!doc\u0080",
-"output":["ParseError", "ParseError", ["Comment", "doc\u0080"]],
-"ignoreErrorOrder":true},
-
-{"description":"U+FDD1 in lookahead region",
-"input":"<!doc\uFDD1",
-"output":["ParseError", "ParseError", ["Comment", "doc\uFDD1"]],
-"ignoreErrorOrder":true},
-
-{"description":"U+1FFFF in lookahead region",
-"input":"<!doc\uD83F\uDFFF",
-"output":["ParseError", "ParseError", ["Comment", "doc\uD83F\uDFFF"]],
-"ignoreErrorOrder":true},
-
-{"description":"CR followed by non-LF",
-"input":"\r?",
-"output":[["Character", "\n?"]]},
-
-{"description":"CR at EOF",
-"input":"\r",
-"output":[["Character", "\n"]]},
-
-{"description":"LF at EOF",
-"input":"\n",
-"output":[["Character", "\n"]]},
-
-{"description":"CR LF",
-"input":"\r\n",
-"output":[["Character", "\n"]]},
-
-{"description":"CR CR",
-"input":"\r\r",
-"output":[["Character", "\n\n"]]},
-
-{"description":"LF LF",
-"input":"\n\n",
-"output":[["Character", "\n\n"]]},
-
-{"description":"LF CR",
-"input":"\n\r",
-"output":[["Character", "\n\n"]]},
-
-{"description":"text CR CR CR text",
-"input":"text\r\r\rtext",
-"output":[["Character", "text\n\n\ntext"]]},
-
-{"description":"Doctype publik",
-"input":"<!DOCTYPE html PUBLIK \"AbC\" \"XyZ\">",
-"output":["ParseError", ["DOCTYPE", "html", null, null, false]]},
-
-{"description":"Doctype publi",
-"input":"<!DOCTYPE html PUBLI",
-"output":["ParseError", ["DOCTYPE", "html", null, null, false]]},
-
-{"description":"Doctype sistem",
-"input":"<!DOCTYPE html SISTEM \"AbC\">",
-"output":["ParseError", ["DOCTYPE", "html", null, null, false]]},
-
-{"description":"Doctype sys",
-"input":"<!DOCTYPE html SYS",
-"output":["ParseError", ["DOCTYPE", "html", null, null, false]]},
-
-{"description":"Doctype html x>text",
-"input":"<!DOCTYPE html x>text",
-"output":["ParseError", ["DOCTYPE", "html", null, null, false], ["Character", "text"]]},
-
-{"description":"Grave accent in unquoted attribute",
-"input":"<a a=aa`>",
-"output":["ParseError", ["StartTag", "a", {"a":"aa`"}]]},
-
-{"description":"EOF in tag name state ",
-"input":"<a",
-"output":["ParseError"]},
-
-{"description":"EOF in tag name state",
-"input":"<a",
-"output":["ParseError"]},
-
-{"description":"EOF in before attribute name state",
-"input":"<a ",
-"output":["ParseError"]},
-
-{"description":"EOF in attribute name state",
-"input":"<a a",
-"output":["ParseError"]},
-
-{"description":"EOF in after attribute name state",
-"input":"<a a ",
-"output":["ParseError"]},
-
-{"description":"EOF in before attribute value state",
-"input":"<a a =",
-"output":["ParseError"]},
-
-{"description":"EOF in attribute value (double quoted) state",
-"input":"<a a =\"a",
-"output":["ParseError"]},
-
-{"description":"EOF in attribute value (single quoted) state",
-"input":"<a a ='a",
-"output":["ParseError"]},
-
-{"description":"EOF in attribute value (unquoted) state",
-"input":"<a a =a",
-"output":["ParseError"]},
-
-{"description":"EOF in after attribute value state",
-"input":"<a a ='a'",
-"output":["ParseError"]}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/unicodeChars.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/unicodeChars.test
deleted file mode 100644
index c7786682cbd..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/unicodeChars.test
+++ /dev/null
@@ -1,1295 +0,0 @@
-{"tests": [
-
-{"description": "Invalid Unicode character U+0001",
-"input": "\u0001",
-"output": ["ParseError", ["Character", "\u0001"]]},
-
-{"description": "Invalid Unicode character U+0002",
-"input": "\u0002",
-"output": ["ParseError", ["Character", "\u0002"]]},
-
-{"description": "Invalid Unicode character U+0003",
-"input": "\u0003",
-"output": ["ParseError", ["Character", "\u0003"]]},
-
-{"description": "Invalid Unicode character U+0004",
-"input": "\u0004",
-"output": ["ParseError", ["Character", "\u0004"]]},
-
-{"description": "Invalid Unicode character U+0005",
-"input": "\u0005",
-"output": ["ParseError", ["Character", "\u0005"]]},
-
-{"description": "Invalid Unicode character U+0006",
-"input": "\u0006",
-"output": ["ParseError", ["Character", "\u0006"]]},
-
-{"description": "Invalid Unicode character U+0007",
-"input": "\u0007",
-"output": ["ParseError", ["Character", "\u0007"]]},
-
-{"description": "Invalid Unicode character U+0008",
-"input": "\u0008",
-"output": ["ParseError", ["Character", "\u0008"]]},
-
-{"description": "Invalid Unicode character U+000B",
-"input": "\u000B",
-"output": ["ParseError", ["Character", "\u000B"]]},
-
-{"description": "Invalid Unicode character U+000E",
-"input": "\u000E",
-"output": ["ParseError", ["Character", "\u000E"]]},
-
-{"description": "Invalid Unicode character U+000F",
-"input": "\u000F",
-"output": ["ParseError", ["Character", "\u000F"]]},
-
-{"description": "Invalid Unicode character U+0010",
-"input": "\u0010",
-"output": ["ParseError", ["Character", "\u0010"]]},
-
-{"description": "Invalid Unicode character U+0011",
-"input": "\u0011",
-"output": ["ParseError", ["Character", "\u0011"]]},
-
-{"description": "Invalid Unicode character U+0012",
-"input": "\u0012",
-"output": ["ParseError", ["Character", "\u0012"]]},
-
-{"description": "Invalid Unicode character U+0013",
-"input": "\u0013",
-"output": ["ParseError", ["Character", "\u0013"]]},
-
-{"description": "Invalid Unicode character U+0014",
-"input": "\u0014",
-"output": ["ParseError", ["Character", "\u0014"]]},
-
-{"description": "Invalid Unicode character U+0015",
-"input": "\u0015",
-"output": ["ParseError", ["Character", "\u0015"]]},
-
-{"description": "Invalid Unicode character U+0016",
-"input": "\u0016",
-"output": ["ParseError", ["Character", "\u0016"]]},
-
-{"description": "Invalid Unicode character U+0017",
-"input": "\u0017",
-"output": ["ParseError", ["Character", "\u0017"]]},
-
-{"description": "Invalid Unicode character U+0018",
-"input": "\u0018",
-"output": ["ParseError", ["Character", "\u0018"]]},
-
-{"description": "Invalid Unicode character U+0019",
-"input": "\u0019",
-"output": ["ParseError", ["Character", "\u0019"]]},
-
-{"description": "Invalid Unicode character U+001A",
-"input": "\u001A",
-"output": ["ParseError", ["Character", "\u001A"]]},
-
-{"description": "Invalid Unicode character U+001B",
-"input": "\u001B",
-"output": ["ParseError", ["Character", "\u001B"]]},
-
-{"description": "Invalid Unicode character U+001C",
-"input": "\u001C",
-"output": ["ParseError", ["Character", "\u001C"]]},
-
-{"description": "Invalid Unicode character U+001D",
-"input": "\u001D",
-"output": ["ParseError", ["Character", "\u001D"]]},
-
-{"description": "Invalid Unicode character U+001E",
-"input": "\u001E",
-"output": ["ParseError", ["Character", "\u001E"]]},
-
-{"description": "Invalid Unicode character U+001F",
-"input": "\u001F",
-"output": ["ParseError", ["Character", "\u001F"]]},
-
-{"description": "Invalid Unicode character U+007F",
-"input": "\u007F",
-"output": ["ParseError", ["Character", "\u007F"]]},
-
-{"description": "Invalid Unicode character U+FDD0",
-"input": "\uFDD0",
-"output": ["ParseError", ["Character", "\uFDD0"]]},
-
-{"description": "Invalid Unicode character U+FDD1",
-"input": "\uFDD1",
-"output": ["ParseError", ["Character", "\uFDD1"]]},
-
-{"description": "Invalid Unicode character U+FDD2",
-"input": "\uFDD2",
-"output": ["ParseError", ["Character", "\uFDD2"]]},
-
-{"description": "Invalid Unicode character U+FDD3",
-"input": "\uFDD3",
-"output": ["ParseError", ["Character", "\uFDD3"]]},
-
-{"description": "Invalid Unicode character U+FDD4",
-"input": "\uFDD4",
-"output": ["ParseError", ["Character", "\uFDD4"]]},
-
-{"description": "Invalid Unicode character U+FDD5",
-"input": "\uFDD5",
-"output": ["ParseError", ["Character", "\uFDD5"]]},
-
-{"description": "Invalid Unicode character U+FDD6",
-"input": "\uFDD6",
-"output": ["ParseError", ["Character", "\uFDD6"]]},
-
-{"description": "Invalid Unicode character U+FDD7",
-"input": "\uFDD7",
-"output": ["ParseError", ["Character", "\uFDD7"]]},
-
-{"description": "Invalid Unicode character U+FDD8",
-"input": "\uFDD8",
-"output": ["ParseError", ["Character", "\uFDD8"]]},
-
-{"description": "Invalid Unicode character U+FDD9",
-"input": "\uFDD9",
-"output": ["ParseError", ["Character", "\uFDD9"]]},
-
-{"description": "Invalid Unicode character U+FDDA",
-"input": "\uFDDA",
-"output": ["ParseError", ["Character", "\uFDDA"]]},
-
-{"description": "Invalid Unicode character U+FDDB",
-"input": "\uFDDB",
-"output": ["ParseError", ["Character", "\uFDDB"]]},
-
-{"description": "Invalid Unicode character U+FDDC",
-"input": "\uFDDC",
-"output": ["ParseError", ["Character", "\uFDDC"]]},
-
-{"description": "Invalid Unicode character U+FDDD",
-"input": "\uFDDD",
-"output": ["ParseError", ["Character", "\uFDDD"]]},
-
-{"description": "Invalid Unicode character U+FDDE",
-"input": "\uFDDE",
-"output": ["ParseError", ["Character", "\uFDDE"]]},
-
-{"description": "Invalid Unicode character U+FDDF",
-"input": "\uFDDF",
-"output": ["ParseError", ["Character", "\uFDDF"]]},
-
-{"description": "Invalid Unicode character U+FDE0",
-"input": "\uFDE0",
-"output": ["ParseError", ["Character", "\uFDE0"]]},
-
-{"description": "Invalid Unicode character U+FDE1",
-"input": "\uFDE1",
-"output": ["ParseError", ["Character", "\uFDE1"]]},
-
-{"description": "Invalid Unicode character U+FDE2",
-"input": "\uFDE2",
-"output": ["ParseError", ["Character", "\uFDE2"]]},
-
-{"description": "Invalid Unicode character U+FDE3",
-"input": "\uFDE3",
-"output": ["ParseError", ["Character", "\uFDE3"]]},
-
-{"description": "Invalid Unicode character U+FDE4",
-"input": "\uFDE4",
-"output": ["ParseError", ["Character", "\uFDE4"]]},
-
-{"description": "Invalid Unicode character U+FDE5",
-"input": "\uFDE5",
-"output": ["ParseError", ["Character", "\uFDE5"]]},
-
-{"description": "Invalid Unicode character U+FDE6",
-"input": "\uFDE6",
-"output": ["ParseError", ["Character", "\uFDE6"]]},
-
-{"description": "Invalid Unicode character U+FDE7",
-"input": "\uFDE7",
-"output": ["ParseError", ["Character", "\uFDE7"]]},
-
-{"description": "Invalid Unicode character U+FDE8",
-"input": "\uFDE8",
-"output": ["ParseError", ["Character", "\uFDE8"]]},
-
-{"description": "Invalid Unicode character U+FDE9",
-"input": "\uFDE9",
-"output": ["ParseError", ["Character", "\uFDE9"]]},
-
-{"description": "Invalid Unicode character U+FDEA",
-"input": "\uFDEA",
-"output": ["ParseError", ["Character", "\uFDEA"]]},
-
-{"description": "Invalid Unicode character U+FDEB",
-"input": "\uFDEB",
-"output": ["ParseError", ["Character", "\uFDEB"]]},
-
-{"description": "Invalid Unicode character U+FDEC",
-"input": "\uFDEC",
-"output": ["ParseError", ["Character", "\uFDEC"]]},
-
-{"description": "Invalid Unicode character U+FDED",
-"input": "\uFDED",
-"output": ["ParseError", ["Character", "\uFDED"]]},
-
-{"description": "Invalid Unicode character U+FDEE",
-"input": "\uFDEE",
-"output": ["ParseError", ["Character", "\uFDEE"]]},
-
-{"description": "Invalid Unicode character U+FDEF",
-"input": "\uFDEF",
-"output": ["ParseError", ["Character", "\uFDEF"]]},
-
-{"description": "Invalid Unicode character U+FFFE",
-"input": "\uFFFE",
-"output": ["ParseError", ["Character", "\uFFFE"]]},
-
-{"description": "Invalid Unicode character U+FFFF",
-"input": "\uFFFF",
-"output": ["ParseError", ["Character", "\uFFFF"]]},
-
-{"description": "Invalid Unicode character U+1FFFE",
-"input": "\uD83F\uDFFE",
-"output": ["ParseError", ["Character", "\uD83F\uDFFE"]]},
-
-{"description": "Invalid Unicode character U+1FFFF",
-"input": "\uD83F\uDFFF",
-"output": ["ParseError", ["Character", "\uD83F\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+2FFFE",
-"input": "\uD87F\uDFFE",
-"output": ["ParseError", ["Character", "\uD87F\uDFFE"]]},
-
-{"description": "Invalid Unicode character U+2FFFF",
-"input": "\uD87F\uDFFF",
-"output": ["ParseError", ["Character", "\uD87F\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+3FFFE",
-"input": "\uD8BF\uDFFE",
-"output": ["ParseError", ["Character", "\uD8BF\uDFFE"]]},
-
-{"description": "Invalid Unicode character U+3FFFF",
-"input": "\uD8BF\uDFFF",
-"output": ["ParseError", ["Character", "\uD8BF\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+4FFFE",
-"input": "\uD8FF\uDFFE",
-"output": ["ParseError", ["Character", "\uD8FF\uDFFE"]]},
-
-{"description": "Invalid Unicode character U+4FFFF",
-"input": "\uD8FF\uDFFF",
-"output": ["ParseError", ["Character", "\uD8FF\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+5FFFE",
-"input": "\uD93F\uDFFE",
-"output": ["ParseError", ["Character", "\uD93F\uDFFE"]]},
-
-{"description": "Invalid Unicode character U+5FFFF",
-"input": "\uD93F\uDFFF",
-"output": ["ParseError", ["Character", "\uD93F\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+6FFFE",
-"input": "\uD97F\uDFFE",
-"output": ["ParseError", ["Character", "\uD97F\uDFFE"]]},
-
-{"description": "Invalid Unicode character U+6FFFF",
-"input": "\uD97F\uDFFF",
-"output": ["ParseError", ["Character", "\uD97F\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+7FFFE",
-"input": "\uD9BF\uDFFE",
-"output": ["ParseError", ["Character", "\uD9BF\uDFFE"]]},
-
-{"description": "Invalid Unicode character U+7FFFF",
-"input": "\uD9BF\uDFFF",
-"output": ["ParseError", ["Character", "\uD9BF\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+8FFFE",
-"input": "\uD9FF\uDFFE",
-"output": ["ParseError", ["Character", "\uD9FF\uDFFE"]]},
-
-{"description": "Invalid Unicode character U+8FFFF",
-"input": "\uD9FF\uDFFF",
-"output": ["ParseError", ["Character", "\uD9FF\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+9FFFE",
-"input": "\uDA3F\uDFFE",
-"output": ["ParseError", ["Character", "\uDA3F\uDFFE"]]},
-
-{"description": "Invalid Unicode character U+9FFFF",
-"input": "\uDA3F\uDFFF",
-"output": ["ParseError", ["Character", "\uDA3F\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+AFFFE",
-"input": "\uDA7F\uDFFE",
-"output": ["ParseError", ["Character", "\uDA7F\uDFFE"]]},
-
-{"description": "Invalid Unicode character U+AFFFF",
-"input": "\uDA7F\uDFFF",
-"output": ["ParseError", ["Character", "\uDA7F\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+BFFFE",
-"input": "\uDABF\uDFFE",
-"output": ["ParseError", ["Character", "\uDABF\uDFFE"]]},
-
-{"description": "Invalid Unicode character U+BFFFF",
-"input": "\uDABF\uDFFF",
-"output": ["ParseError", ["Character", "\uDABF\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+CFFFE",
-"input": "\uDAFF\uDFFE",
-"output": ["ParseError", ["Character", "\uDAFF\uDFFE"]]},
-
-{"description": "Invalid Unicode character U+CFFFF",
-"input": "\uDAFF\uDFFF",
-"output": ["ParseError", ["Character", "\uDAFF\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+DFFFE",
-"input": "\uDB3F\uDFFE",
-"output": ["ParseError", ["Character", "\uDB3F\uDFFE"]]},
-
-{"description": "Invalid Unicode character U+DFFFF",
-"input": "\uDB3F\uDFFF",
-"output": ["ParseError", ["Character", "\uDB3F\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+EFFFE",
-"input": "\uDB7F\uDFFE",
-"output": ["ParseError", ["Character", "\uDB7F\uDFFE"]]},
-
-{"description": "Invalid Unicode character U+EFFFF",
-"input": "\uDB7F\uDFFF",
-"output": ["ParseError", ["Character", "\uDB7F\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+FFFFE",
-"input": "\uDBBF\uDFFE",
-"output": ["ParseError", ["Character", "\uDBBF\uDFFE"]]},
-
-{"description": "Invalid Unicode character U+FFFFF",
-"input": "\uDBBF\uDFFF",
-"output": ["ParseError", ["Character", "\uDBBF\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+10FFFE",
-"input": "\uDBFF\uDFFE",
-"output": ["ParseError", ["Character", "\uDBFF\uDFFE"]]},
-
-{"description": "Invalid Unicode character U+10FFFF",
-"input": "\uDBFF\uDFFF",
-"output": ["ParseError", ["Character", "\uDBFF\uDFFF"]]},
-
-{"description": "Valid Unicode character U+0009",
-"input": "\u0009",
-"output": [["Character", "\u0009"]]},
-
-{"description": "Valid Unicode character U+000A",
-"input": "\u000A",
-"output": [["Character", "\u000A"]]},
-
-{"description": "Valid Unicode character U+0020",
-"input": "\u0020",
-"output": [["Character", "\u0020"]]},
-
-{"description": "Valid Unicode character U+0021",
-"input": "\u0021",
-"output": [["Character", "\u0021"]]},
-
-{"description": "Valid Unicode character U+0022",
-"input": "\u0022",
-"output": [["Character", "\u0022"]]},
-
-{"description": "Valid Unicode character U+0023",
-"input": "\u0023",
-"output": [["Character", "\u0023"]]},
-
-{"description": "Valid Unicode character U+0024",
-"input": "\u0024",
-"output": [["Character", "\u0024"]]},
-
-{"description": "Valid Unicode character U+0025",
-"input": "\u0025",
-"output": [["Character", "\u0025"]]},
-
-{"description": "Valid Unicode character U+0026",
-"input": "\u0026",
-"output": [["Character", "\u0026"]]},
-
-{"description": "Valid Unicode character U+0027",
-"input": "\u0027",
-"output": [["Character", "\u0027"]]},
-
-{"description": "Valid Unicode character U+0028",
-"input": "\u0028",
-"output": [["Character", "\u0028"]]},
-
-{"description": "Valid Unicode character U+0029",
-"input": "\u0029",
-"output": [["Character", "\u0029"]]},
-
-{"description": "Valid Unicode character U+002A",
-"input": "\u002A",
-"output": [["Character", "\u002A"]]},
-
-{"description": "Valid Unicode character U+002B",
-"input": "\u002B",
-"output": [["Character", "\u002B"]]},
-
-{"description": "Valid Unicode character U+002C",
-"input": "\u002C",
-"output": [["Character", "\u002C"]]},
-
-{"description": "Valid Unicode character U+002D",
-"input": "\u002D",
-"output": [["Character", "\u002D"]]},
-
-{"description": "Valid Unicode character U+002E",
-"input": "\u002E",
-"output": [["Character", "\u002E"]]},
-
-{"description": "Valid Unicode character U+002F",
-"input": "\u002F",
-"output": [["Character", "\u002F"]]},
-
-{"description": "Valid Unicode character U+0030",
-"input": "\u0030",
-"output": [["Character", "\u0030"]]},
-
-{"description": "Valid Unicode character U+0031",
-"input": "\u0031",
-"output": [["Character", "\u0031"]]},
-
-{"description": "Valid Unicode character U+0032",
-"input": "\u0032",
-"output": [["Character", "\u0032"]]},
-
-{"description": "Valid Unicode character U+0033",
-"input": "\u0033",
-"output": [["Character", "\u0033"]]},
-
-{"description": "Valid Unicode character U+0034",
-"input": "\u0034",
-"output": [["Character", "\u0034"]]},
-
-{"description": "Valid Unicode character U+0035",
-"input": "\u0035",
-"output": [["Character", "\u0035"]]},
-
-{"description": "Valid Unicode character U+0036",
-"input": "\u0036",
-"output": [["Character", "\u0036"]]},
-
-{"description": "Valid Unicode character U+0037",
-"input": "\u0037",
-"output": [["Character", "\u0037"]]},
-
-{"description": "Valid Unicode character U+0038",
-"input": "\u0038",
-"output": [["Character", "\u0038"]]},
-
-{"description": "Valid Unicode character U+0039",
-"input": "\u0039",
-"output": [["Character", "\u0039"]]},
-
-{"description": "Valid Unicode character U+003A",
-"input": "\u003A",
-"output": [["Character", "\u003A"]]},
-
-{"description": "Valid Unicode character U+003B",
-"input": "\u003B",
-"output": [["Character", "\u003B"]]},
-
-{"description": "Valid Unicode character U+003D",
-"input": "\u003D",
-"output": [["Character", "\u003D"]]},
-
-{"description": "Valid Unicode character U+003E",
-"input": "\u003E",
-"output": [["Character", "\u003E"]]},
-
-{"description": "Valid Unicode character U+003F",
-"input": "\u003F",
-"output": [["Character", "\u003F"]]},
-
-{"description": "Valid Unicode character U+0040",
-"input": "\u0040",
-"output": [["Character", "\u0040"]]},
-
-{"description": "Valid Unicode character U+0041",
-"input": "\u0041",
-"output": [["Character", "\u0041"]]},
-
-{"description": "Valid Unicode character U+0042",
-"input": "\u0042",
-"output": [["Character", "\u0042"]]},
-
-{"description": "Valid Unicode character U+0043",
-"input": "\u0043",
-"output": [["Character", "\u0043"]]},
-
-{"description": "Valid Unicode character U+0044",
-"input": "\u0044",
-"output": [["Character", "\u0044"]]},
-
-{"description": "Valid Unicode character U+0045",
-"input": "\u0045",
-"output": [["Character", "\u0045"]]},
-
-{"description": "Valid Unicode character U+0046",
-"input": "\u0046",
-"output": [["Character", "\u0046"]]},
-
-{"description": "Valid Unicode character U+0047",
-"input": "\u0047",
-"output": [["Character", "\u0047"]]},
-
-{"description": "Valid Unicode character U+0048",
-"input": "\u0048",
-"output": [["Character", "\u0048"]]},
-
-{"description": "Valid Unicode character U+0049",
-"input": "\u0049",
-"output": [["Character", "\u0049"]]},
-
-{"description": "Valid Unicode character U+004A",
-"input": "\u004A",
-"output": [["Character", "\u004A"]]},
-
-{"description": "Valid Unicode character U+004B",
-"input": "\u004B",
-"output": [["Character", "\u004B"]]},
-
-{"description": "Valid Unicode character U+004C",
-"input": "\u004C",
-"output": [["Character", "\u004C"]]},
-
-{"description": "Valid Unicode character U+004D",
-"input": "\u004D",
-"output": [["Character", "\u004D"]]},
-
-{"description": "Valid Unicode character U+004E",
-"input": "\u004E",
-"output": [["Character", "\u004E"]]},
-
-{"description": "Valid Unicode character U+004F",
-"input": "\u004F",
-"output": [["Character", "\u004F"]]},
-
-{"description": "Valid Unicode character U+0050",
-"input": "\u0050",
-"output": [["Character", "\u0050"]]},
-
-{"description": "Valid Unicode character U+0051",
-"input": "\u0051",
-"output": [["Character", "\u0051"]]},
-
-{"description": "Valid Unicode character U+0052",
-"input": "\u0052",
-"output": [["Character", "\u0052"]]},
-
-{"description": "Valid Unicode character U+0053",
-"input": "\u0053",
-"output": [["Character", "\u0053"]]},
-
-{"description": "Valid Unicode character U+0054",
-"input": "\u0054",
-"output": [["Character", "\u0054"]]},
-
-{"description": "Valid Unicode character U+0055",
-"input": "\u0055",
-"output": [["Character", "\u0055"]]},
-
-{"description": "Valid Unicode character U+0056",
-"input": "\u0056",
-"output": [["Character", "\u0056"]]},
-
-{"description": "Valid Unicode character U+0057",
-"input": "\u0057",
-"output": [["Character", "\u0057"]]},
-
-{"description": "Valid Unicode character U+0058",
-"input": "\u0058",
-"output": [["Character", "\u0058"]]},
-
-{"description": "Valid Unicode character U+0059",
-"input": "\u0059",
-"output": [["Character", "\u0059"]]},
-
-{"description": "Valid Unicode character U+005A",
-"input": "\u005A",
-"output": [["Character", "\u005A"]]},
-
-{"description": "Valid Unicode character U+005B",
-"input": "\u005B",
-"output": [["Character", "\u005B"]]},
-
-{"description": "Valid Unicode character U+005C",
-"input": "\u005C",
-"output": [["Character", "\u005C"]]},
-
-{"description": "Valid Unicode character U+005D",
-"input": "\u005D",
-"output": [["Character", "\u005D"]]},
-
-{"description": "Valid Unicode character U+005E",
-"input": "\u005E",
-"output": [["Character", "\u005E"]]},
-
-{"description": "Valid Unicode character U+005F",
-"input": "\u005F",
-"output": [["Character", "\u005F"]]},
-
-{"description": "Valid Unicode character U+0060",
-"input": "\u0060",
-"output": [["Character", "\u0060"]]},
-
-{"description": "Valid Unicode character U+0061",
-"input": "\u0061",
-"output": [["Character", "\u0061"]]},
-
-{"description": "Valid Unicode character U+0062",
-"input": "\u0062",
-"output": [["Character", "\u0062"]]},
-
-{"description": "Valid Unicode character U+0063",
-"input": "\u0063",
-"output": [["Character", "\u0063"]]},
-
-{"description": "Valid Unicode character U+0064",
-"input": "\u0064",
-"output": [["Character", "\u0064"]]},
-
-{"description": "Valid Unicode character U+0065",
-"input": "\u0065",
-"output": [["Character", "\u0065"]]},
-
-{"description": "Valid Unicode character U+0066",
-"input": "\u0066",
-"output": [["Character", "\u0066"]]},
-
-{"description": "Valid Unicode character U+0067",
-"input": "\u0067",
-"output": [["Character", "\u0067"]]},
-
-{"description": "Valid Unicode character U+0068",
-"input": "\u0068",
-"output": [["Character", "\u0068"]]},
-
-{"description": "Valid Unicode character U+0069",
-"input": "\u0069",
-"output": [["Character", "\u0069"]]},
-
-{"description": "Valid Unicode character U+006A",
-"input": "\u006A",
-"output": [["Character", "\u006A"]]},
-
-{"description": "Valid Unicode character U+006B",
-"input": "\u006B",
-"output": [["Character", "\u006B"]]},
-
-{"description": "Valid Unicode character U+006C",
-"input": "\u006C",
-"output": [["Character", "\u006C"]]},
-
-{"description": "Valid Unicode character U+006D",
-"input": "\u006D",
-"output": [["Character", "\u006D"]]},
-
-{"description": "Valid Unicode character U+006E",
-"input": "\u006E",
-"output": [["Character", "\u006E"]]},
-
-{"description": "Valid Unicode character U+006F",
-"input": "\u006F",
-"output": [["Character", "\u006F"]]},
-
-{"description": "Valid Unicode character U+0070",
-"input": "\u0070",
-"output": [["Character", "\u0070"]]},
-
-{"description": "Valid Unicode character U+0071",
-"input": "\u0071",
-"output": [["Character", "\u0071"]]},
-
-{"description": "Valid Unicode character U+0072",
-"input": "\u0072",
-"output": [["Character", "\u0072"]]},
-
-{"description": "Valid Unicode character U+0073",
-"input": "\u0073",
-"output": [["Character", "\u0073"]]},
-
-{"description": "Valid Unicode character U+0074",
-"input": "\u0074",
-"output": [["Character", "\u0074"]]},
-
-{"description": "Valid Unicode character U+0075",
-"input": "\u0075",
-"output": [["Character", "\u0075"]]},
-
-{"description": "Valid Unicode character U+0076",
-"input": "\u0076",
-"output": [["Character", "\u0076"]]},
-
-{"description": "Valid Unicode character U+0077",
-"input": "\u0077",
-"output": [["Character", "\u0077"]]},
-
-{"description": "Valid Unicode character U+0078",
-"input": "\u0078",
-"output": [["Character", "\u0078"]]},
-
-{"description": "Valid Unicode character U+0079",
-"input": "\u0079",
-"output": [["Character", "\u0079"]]},
-
-{"description": "Valid Unicode character U+007A",
-"input": "\u007A",
-"output": [["Character", "\u007A"]]},
-
-{"description": "Valid Unicode character U+007B",
-"input": "\u007B",
-"output": [["Character", "\u007B"]]},
-
-{"description": "Valid Unicode character U+007C",
-"input": "\u007C",
-"output": [["Character", "\u007C"]]},
-
-{"description": "Valid Unicode character U+007D",
-"input": "\u007D",
-"output": [["Character", "\u007D"]]},
-
-{"description": "Valid Unicode character U+007E",
-"input": "\u007E",
-"output": [["Character", "\u007E"]]},
-
-{"description": "Valid Unicode character U+00A0",
-"input": "\u00A0",
-"output": [["Character", "\u00A0"]]},
-
-{"description": "Valid Unicode character U+00A1",
-"input": "\u00A1",
-"output": [["Character", "\u00A1"]]},
-
-{"description": "Valid Unicode character U+00A2",
-"input": "\u00A2",
-"output": [["Character", "\u00A2"]]},
-
-{"description": "Valid Unicode character U+00A3",
-"input": "\u00A3",
-"output": [["Character", "\u00A3"]]},
-
-{"description": "Valid Unicode character U+00A4",
-"input": "\u00A4",
-"output": [["Character", "\u00A4"]]},
-
-{"description": "Valid Unicode character U+00A5",
-"input": "\u00A5",
-"output": [["Character", "\u00A5"]]},
-
-{"description": "Valid Unicode character U+00A6",
-"input": "\u00A6",
-"output": [["Character", "\u00A6"]]},
-
-{"description": "Valid Unicode character U+00A7",
-"input": "\u00A7",
-"output": [["Character", "\u00A7"]]},
-
-{"description": "Valid Unicode character U+00A8",
-"input": "\u00A8",
-"output": [["Character", "\u00A8"]]},
-
-{"description": "Valid Unicode character U+00A9",
-"input": "\u00A9",
-"output": [["Character", "\u00A9"]]},
-
-{"description": "Valid Unicode character U+00AA",
-"input": "\u00AA",
-"output": [["Character", "\u00AA"]]},
-
-{"description": "Valid Unicode character U+00AB",
-"input": "\u00AB",
-"output": [["Character", "\u00AB"]]},
-
-{"description": "Valid Unicode character U+00AC",
-"input": "\u00AC",
-"output": [["Character", "\u00AC"]]},
-
-{"description": "Valid Unicode character U+00AD",
-"input": "\u00AD",
-"output": [["Character", "\u00AD"]]},
-
-{"description": "Valid Unicode character U+00AE",
-"input": "\u00AE",
-"output": [["Character", "\u00AE"]]},
-
-{"description": "Valid Unicode character U+00AF",
-"input": "\u00AF",
-"output": [["Character", "\u00AF"]]},
-
-{"description": "Valid Unicode character U+00B0",
-"input": "\u00B0",
-"output": [["Character", "\u00B0"]]},
-
-{"description": "Valid Unicode character U+00B1",
-"input": "\u00B1",
-"output": [["Character", "\u00B1"]]},
-
-{"description": "Valid Unicode character U+00B2",
-"input": "\u00B2",
-"output": [["Character", "\u00B2"]]},
-
-{"description": "Valid Unicode character U+00B3",
-"input": "\u00B3",
-"output": [["Character", "\u00B3"]]},
-
-{"description": "Valid Unicode character U+00B4",
-"input": "\u00B4",
-"output": [["Character", "\u00B4"]]},
-
-{"description": "Valid Unicode character U+00B5",
-"input": "\u00B5",
-"output": [["Character", "\u00B5"]]},
-
-{"description": "Valid Unicode character U+00B6",
-"input": "\u00B6",
-"output": [["Character", "\u00B6"]]},
-
-{"description": "Valid Unicode character U+00B7",
-"input": "\u00B7",
-"output": [["Character", "\u00B7"]]},
-
-{"description": "Valid Unicode character U+00B8",
-"input": "\u00B8",
-"output": [["Character", "\u00B8"]]},
-
-{"description": "Valid Unicode character U+00B9",
-"input": "\u00B9",
-"output": [["Character", "\u00B9"]]},
-
-{"description": "Valid Unicode character U+00BA",
-"input": "\u00BA",
-"output": [["Character", "\u00BA"]]},
-
-{"description": "Valid Unicode character U+00BB",
-"input": "\u00BB",
-"output": [["Character", "\u00BB"]]},
-
-{"description": "Valid Unicode character U+00BC",
-"input": "\u00BC",
-"output": [["Character", "\u00BC"]]},
-
-{"description": "Valid Unicode character U+00BD",
-"input": "\u00BD",
-"output": [["Character", "\u00BD"]]},
-
-{"description": "Valid Unicode character U+00BE",
-"input": "\u00BE",
-"output": [["Character", "\u00BE"]]},
-
-{"description": "Valid Unicode character U+00BF",
-"input": "\u00BF",
-"output": [["Character", "\u00BF"]]},
-
-{"description": "Valid Unicode character U+00C0",
-"input": "\u00C0",
-"output": [["Character", "\u00C0"]]},
-
-{"description": "Valid Unicode character U+00C1",
-"input": "\u00C1",
-"output": [["Character", "\u00C1"]]},
-
-{"description": "Valid Unicode character U+00C2",
-"input": "\u00C2",
-"output": [["Character", "\u00C2"]]},
-
-{"description": "Valid Unicode character U+00C3",
-"input": "\u00C3",
-"output": [["Character", "\u00C3"]]},
-
-{"description": "Valid Unicode character U+00C4",
-"input": "\u00C4",
-"output": [["Character", "\u00C4"]]},
-
-{"description": "Valid Unicode character U+00C5",
-"input": "\u00C5",
-"output": [["Character", "\u00C5"]]},
-
-{"description": "Valid Unicode character U+00C6",
-"input": "\u00C6",
-"output": [["Character", "\u00C6"]]},
-
-{"description": "Valid Unicode character U+00C7",
-"input": "\u00C7",
-"output": [["Character", "\u00C7"]]},
-
-{"description": "Valid Unicode character U+00C8",
-"input": "\u00C8",
-"output": [["Character", "\u00C8"]]},
-
-{"description": "Valid Unicode character U+00C9",
-"input": "\u00C9",
-"output": [["Character", "\u00C9"]]},
-
-{"description": "Valid Unicode character U+00CA",
-"input": "\u00CA",
-"output": [["Character", "\u00CA"]]},
-
-{"description": "Valid Unicode character U+00CB",
-"input": "\u00CB",
-"output": [["Character", "\u00CB"]]},
-
-{"description": "Valid Unicode character U+00CC",
-"input": "\u00CC",
-"output": [["Character", "\u00CC"]]},
-
-{"description": "Valid Unicode character U+00CD",
-"input": "\u00CD",
-"output": [["Character", "\u00CD"]]},
-
-{"description": "Valid Unicode character U+00CE",
-"input": "\u00CE",
-"output": [["Character", "\u00CE"]]},
-
-{"description": "Valid Unicode character U+00CF",
-"input": "\u00CF",
-"output": [["Character", "\u00CF"]]},
-
-{"description": "Valid Unicode character U+00D0",
-"input": "\u00D0",
-"output": [["Character", "\u00D0"]]},
-
-{"description": "Valid Unicode character U+00D1",
-"input": "\u00D1",
-"output": [["Character", "\u00D1"]]},
-
-{"description": "Valid Unicode character U+00D2",
-"input": "\u00D2",
-"output": [["Character", "\u00D2"]]},
-
-{"description": "Valid Unicode character U+00D3",
-"input": "\u00D3",
-"output": [["Character", "\u00D3"]]},
-
-{"description": "Valid Unicode character U+00D4",
-"input": "\u00D4",
-"output": [["Character", "\u00D4"]]},
-
-{"description": "Valid Unicode character U+00D5",
-"input": "\u00D5",
-"output": [["Character", "\u00D5"]]},
-
-{"description": "Valid Unicode character U+00D6",
-"input": "\u00D6",
-"output": [["Character", "\u00D6"]]},
-
-{"description": "Valid Unicode character U+00D7",
-"input": "\u00D7",
-"output": [["Character", "\u00D7"]]},
-
-{"description": "Valid Unicode character U+00D8",
-"input": "\u00D8",
-"output": [["Character", "\u00D8"]]},
-
-{"description": "Valid Unicode character U+00D9",
-"input": "\u00D9",
-"output": [["Character", "\u00D9"]]},
-
-{"description": "Valid Unicode character U+00DA",
-"input": "\u00DA",
-"output": [["Character", "\u00DA"]]},
-
-{"description": "Valid Unicode character U+00DB",
-"input": "\u00DB",
-"output": [["Character", "\u00DB"]]},
-
-{"description": "Valid Unicode character U+00DC",
-"input": "\u00DC",
-"output": [["Character", "\u00DC"]]},
-
-{"description": "Valid Unicode character U+00DD",
-"input": "\u00DD",
-"output": [["Character", "\u00DD"]]},
-
-{"description": "Valid Unicode character U+00DE",
-"input": "\u00DE",
-"output": [["Character", "\u00DE"]]},
-
-{"description": "Valid Unicode character U+00DF",
-"input": "\u00DF",
-"output": [["Character", "\u00DF"]]},
-
-{"description": "Valid Unicode character U+00E0",
-"input": "\u00E0",
-"output": [["Character", "\u00E0"]]},
-
-{"description": "Valid Unicode character U+00E1",
-"input": "\u00E1",
-"output": [["Character", "\u00E1"]]},
-
-{"description": "Valid Unicode character U+00E2",
-"input": "\u00E2",
-"output": [["Character", "\u00E2"]]},
-
-{"description": "Valid Unicode character U+00E3",
-"input": "\u00E3",
-"output": [["Character", "\u00E3"]]},
-
-{"description": "Valid Unicode character U+00E4",
-"input": "\u00E4",
-"output": [["Character", "\u00E4"]]},
-
-{"description": "Valid Unicode character U+00E5",
-"input": "\u00E5",
-"output": [["Character", "\u00E5"]]},
-
-{"description": "Valid Unicode character U+00E6",
-"input": "\u00E6",
-"output": [["Character", "\u00E6"]]},
-
-{"description": "Valid Unicode character U+00E7",
-"input": "\u00E7",
-"output": [["Character", "\u00E7"]]},
-
-{"description": "Valid Unicode character U+00E8",
-"input": "\u00E8",
-"output": [["Character", "\u00E8"]]},
-
-{"description": "Valid Unicode character U+00E9",
-"input": "\u00E9",
-"output": [["Character", "\u00E9"]]},
-
-{"description": "Valid Unicode character U+00EA",
-"input": "\u00EA",
-"output": [["Character", "\u00EA"]]},
-
-{"description": "Valid Unicode character U+00EB",
-"input": "\u00EB",
-"output": [["Character", "\u00EB"]]},
-
-{"description": "Valid Unicode character U+00EC",
-"input": "\u00EC",
-"output": [["Character", "\u00EC"]]},
-
-{"description": "Valid Unicode character U+00ED",
-"input": "\u00ED",
-"output": [["Character", "\u00ED"]]},
-
-{"description": "Valid Unicode character U+00EE",
-"input": "\u00EE",
-"output": [["Character", "\u00EE"]]},
-
-{"description": "Valid Unicode character U+00EF",
-"input": "\u00EF",
-"output": [["Character", "\u00EF"]]},
-
-{"description": "Valid Unicode character U+00F0",
-"input": "\u00F0",
-"output": [["Character", "\u00F0"]]},
-
-{"description": "Valid Unicode character U+00F1",
-"input": "\u00F1",
-"output": [["Character", "\u00F1"]]},
-
-{"description": "Valid Unicode character U+00F2",
-"input": "\u00F2",
-"output": [["Character", "\u00F2"]]},
-
-{"description": "Valid Unicode character U+00F3",
-"input": "\u00F3",
-"output": [["Character", "\u00F3"]]},
-
-{"description": "Valid Unicode character U+00F4",
-"input": "\u00F4",
-"output": [["Character", "\u00F4"]]},
-
-{"description": "Valid Unicode character U+00F5",
-"input": "\u00F5",
-"output": [["Character", "\u00F5"]]},
-
-{"description": "Valid Unicode character U+00F6",
-"input": "\u00F6",
-"output": [["Character", "\u00F6"]]},
-
-{"description": "Valid Unicode character U+00F7",
-"input": "\u00F7",
-"output": [["Character", "\u00F7"]]},
-
-{"description": "Valid Unicode character U+00F8",
-"input": "\u00F8",
-"output": [["Character", "\u00F8"]]},
-
-{"description": "Valid Unicode character U+00F9",
-"input": "\u00F9",
-"output": [["Character", "\u00F9"]]},
-
-{"description": "Valid Unicode character U+00FA",
-"input": "\u00FA",
-"output": [["Character", "\u00FA"]]},
-
-{"description": "Valid Unicode character U+00FB",
-"input": "\u00FB",
-"output": [["Character", "\u00FB"]]},
-
-{"description": "Valid Unicode character U+00FC",
-"input": "\u00FC",
-"output": [["Character", "\u00FC"]]},
-
-{"description": "Valid Unicode character U+00FD",
-"input": "\u00FD",
-"output": [["Character", "\u00FD"]]},
-
-{"description": "Valid Unicode character U+00FE",
-"input": "\u00FE",
-"output": [["Character", "\u00FE"]]},
-
-{"description": "Valid Unicode character U+00FF",
-"input": "\u00FF",
-"output": [["Character", "\u00FF"]]},
-
-{"description": "Valid Unicode character U+D7FF",
-"input": "\uD7FF",
-"output": [["Character", "\uD7FF"]]},
-
-{"description": "Valid Unicode character U+E000",
-"input": "\uE000",
-"output": [["Character", "\uE000"]]},
-
-{"description": "Valid Unicode character U+FDCF",
-"input": "\uFDCF",
-"output": [["Character", "\uFDCF"]]},
-
-{"description": "Valid Unicode character U+FDF0",
-"input": "\uFDF0",
-"output": [["Character", "\uFDF0"]]},
-
-{"description": "Valid Unicode character U+FFFD",
-"input": "\uFFFD",
-"output": [["Character", "\uFFFD"]]},
-
-{"description": "Valid Unicode character U+10000",
-"input": "\uD800\uDC00",
-"output": [["Character", "\uD800\uDC00"]]},
-
-{"description": "Valid Unicode character U+1FFFD",
-"input": "\uD83F\uDFFD",
-"output": [["Character", "\uD83F\uDFFD"]]},
-
-{"description": "Valid Unicode character U+20000",
-"input": "\uD840\uDC00",
-"output": [["Character", "\uD840\uDC00"]]},
-
-{"description": "Valid Unicode character U+2FFFD",
-"input": "\uD87F\uDFFD",
-"output": [["Character", "\uD87F\uDFFD"]]},
-
-{"description": "Valid Unicode character U+30000",
-"input": "\uD880\uDC00",
-"output": [["Character", "\uD880\uDC00"]]},
-
-{"description": "Valid Unicode character U+3FFFD",
-"input": "\uD8BF\uDFFD",
-"output": [["Character", "\uD8BF\uDFFD"]]},
-
-{"description": "Valid Unicode character U+40000",
-"input": "\uD8C0\uDC00",
-"output": [["Character", "\uD8C0\uDC00"]]},
-
-{"description": "Valid Unicode character U+4FFFD",
-"input": "\uD8FF\uDFFD",
-"output": [["Character", "\uD8FF\uDFFD"]]},
-
-{"description": "Valid Unicode character U+50000",
-"input": "\uD900\uDC00",
-"output": [["Character", "\uD900\uDC00"]]},
-
-{"description": "Valid Unicode character U+5FFFD",
-"input": "\uD93F\uDFFD",
-"output": [["Character", "\uD93F\uDFFD"]]},
-
-{"description": "Valid Unicode character U+60000",
-"input": "\uD940\uDC00",
-"output": [["Character", "\uD940\uDC00"]]},
-
-{"description": "Valid Unicode character U+6FFFD",
-"input": "\uD97F\uDFFD",
-"output": [["Character", "\uD97F\uDFFD"]]},
-
-{"description": "Valid Unicode character U+70000",
-"input": "\uD980\uDC00",
-"output": [["Character", "\uD980\uDC00"]]},
-
-{"description": "Valid Unicode character U+7FFFD",
-"input": "\uD9BF\uDFFD",
-"output": [["Character", "\uD9BF\uDFFD"]]},
-
-{"description": "Valid Unicode character U+80000",
-"input": "\uD9C0\uDC00",
-"output": [["Character", "\uD9C0\uDC00"]]},
-
-{"description": "Valid Unicode character U+8FFFD",
-"input": "\uD9FF\uDFFD",
-"output": [["Character", "\uD9FF\uDFFD"]]},
-
-{"description": "Valid Unicode character U+90000",
-"input": "\uDA00\uDC00",
-"output": [["Character", "\uDA00\uDC00"]]},
-
-{"description": "Valid Unicode character U+9FFFD",
-"input": "\uDA3F\uDFFD",
-"output": [["Character", "\uDA3F\uDFFD"]]},
-
-{"description": "Valid Unicode character U+A0000",
-"input": "\uDA40\uDC00",
-"output": [["Character", "\uDA40\uDC00"]]},
-
-{"description": "Valid Unicode character U+AFFFD",
-"input": "\uDA7F\uDFFD",
-"output": [["Character", "\uDA7F\uDFFD"]]},
-
-{"description": "Valid Unicode character U+B0000",
-"input": "\uDA80\uDC00",
-"output": [["Character", "\uDA80\uDC00"]]},
-
-{"description": "Valid Unicode character U+BFFFD",
-"input": "\uDABF\uDFFD",
-"output": [["Character", "\uDABF\uDFFD"]]},
-
-{"description": "Valid Unicode character U+C0000",
-"input": "\uDAC0\uDC00",
-"output": [["Character", "\uDAC0\uDC00"]]},
-
-{"description": "Valid Unicode character U+CFFFD",
-"input": "\uDAFF\uDFFD",
-"output": [["Character", "\uDAFF\uDFFD"]]},
-
-{"description": "Valid Unicode character U+D0000",
-"input": "\uDB00\uDC00",
-"output": [["Character", "\uDB00\uDC00"]]},
-
-{"description": "Valid Unicode character U+DFFFD",
-"input": "\uDB3F\uDFFD",
-"output": [["Character", "\uDB3F\uDFFD"]]},
-
-{"description": "Valid Unicode character U+E0000",
-"input": "\uDB40\uDC00",
-"output": [["Character", "\uDB40\uDC00"]]},
-
-{"description": "Valid Unicode character U+EFFFD",
-"input": "\uDB7F\uDFFD",
-"output": [["Character", "\uDB7F\uDFFD"]]},
-
-{"description": "Valid Unicode character U+F0000",
-"input": "\uDB80\uDC00",
-"output": [["Character", "\uDB80\uDC00"]]},
-
-{"description": "Valid Unicode character U+FFFFD",
-"input": "\uDBBF\uDFFD",
-"output": [["Character", "\uDBBF\uDFFD"]]},
-
-{"description": "Valid Unicode character U+100000",
-"input": "\uDBC0\uDC00",
-"output": [["Character", "\uDBC0\uDC00"]]},
-
-{"description": "Valid Unicode character U+10FFFD",
-"input": "\uDBFF\uDFFD",
-"output": [["Character", "\uDBFF\uDFFD"]]}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/unicodeCharsProblematic.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/unicodeCharsProblematic.test
deleted file mode 100644
index 8fb54c411f7..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/unicodeCharsProblematic.test
+++ /dev/null
@@ -1,27 +0,0 @@
-{"tests" : [
-{"description": "Invalid Unicode character U+DFFF",
-"doubleEscaped":true,
-"input": "\\uDFFF",
-"output":["ParseError", ["Character", "\\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+D800",
-"doubleEscaped":true,
-"input": "\\uD800",
-"output":["ParseError", ["Character", "\\uD800"]]},
-
-{"description": "Invalid Unicode character U+DFFF with valid preceding character",
-"doubleEscaped":true,
-"input": "a\\uDFFF",
-"output":[["Character", "a"], "ParseError", ["Character", "\\uDFFF"]]},
-
-{"description": "Invalid Unicode character U+D800 with valid following character",
-"doubleEscaped":true,
-"input": "\\uD800a",
-"output":["ParseError", ["Character", "\\uD800a"]]},
-
-{"description":"CR followed by U+0000",
-"input":"\r\u0000",
-"output":[["Character", "\n"], "ParseError", ["Character", "\u0000"]],
-"ignoreErrorOrder":true}
-]
-} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/xmlViolation.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/xmlViolation.test
deleted file mode 100644
index 137d964295d..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/xmlViolation.test
+++ /dev/null
@@ -1,22 +0,0 @@
-{"xmlViolationTests": [
-
-{"description":"Non-XML character",
-"input":"a\uFFFFb",
-"ignoreErrorOrder":true,
-"output":["ParseError",["Character","a\uFFFDb"]]},
-
-{"description":"Non-XML space",
-"input":"a\u000Cb",
-"ignoreErrorOrder":true,
-"output":[["Character","a b"]]},
-
-{"description":"Double hyphen in comment",
-"input":"<!-- foo -- bar -->",
-"output":["ParseError",["Comment"," foo - - bar "]]},
-
-{"description":"FF between attributes",
-"input":"<a b=''\u000Cc=''>",
-"output":[["StartTag","a",{"b":"","c":""}]]}
-]}
-
-
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/README.md b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/README.md
deleted file mode 100644
index 2aba4bf860a..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/README.md
+++ /dev/null
@@ -1,98 +0,0 @@
-Tree Construction Tests
-=======================
-
-Each file containing tree construction tests consists of any number of
-tests separated by two newlines (LF) and a single newline before the end
-of the file. For instance:
-
- [TEST]LF
- LF
- [TEST]LF
- LF
- [TEST]LF
-
-Where [TEST] is the following format:
-
-Each test must begin with a string "\#data" followed by a newline (LF).
-All subsequent lines until a line that says "\#errors" are the test data
-and must be passed to the system being tested unchanged, except with the
-final newline (on the last line) removed.
-
-Then there must be a line that says "\#errors". It must be followed by
-one line per parse error that a conformant checker would return. It
-doesn't matter what those lines are, although they can't be
-"\#document-fragment", "\#document", "\#script-off", "\#script-on", or
-empty, the only thing that matters is that there be the right number
-of parse errors.
-
-Then there \*may\* be a line that says "\#document-fragment", which must
-be followed by a newline (LF), followed by a string of characters that
-indicates the context element, followed by a newline (LF). If this line
-is present the "\#data" must be parsed using the HTML fragment parsing
-algorithm with the context element as context.
-
-Then there \*may\* be a line that says "\#script-off" or
-"\#script-in". If a line that says "\#script-off" is present, the
-parser must set the scripting flag to disabled. If a line that says
-"\#script-on" is present, it must set it to enabled. Otherwise, the
-test should be run in both modes.
-
-Then there must be a line that says "\#document", which must be followed
-by a dump of the tree of the parsed DOM. Each node must be represented
-by a single line. Each line must start with "| ", followed by two spaces
-per parent node that the node has before the root document node.
-
-- Element nodes must be represented by a "`<`" then the *tag name
- string* "`>`", and all the attributes must be given, sorted
- lexicographically by UTF-16 code unit according to their *attribute
- name string*, on subsequent lines, as if they were children of the
- element node.
-- Attribute nodes must have the *attribute name string*, then an "="
- sign, then the attribute value in double quotes (").
-- Text nodes must be the string, in double quotes. Newlines aren't
- escaped.
-- Comments must be "`<`" then "`!-- `" then the data then "` -->`".
-- DOCTYPEs must be "`<!DOCTYPE `" then the name then if either of the
- system id or public id is non-empty a space, public id in
- double-quotes, another space an the system id in double-quotes, and
- then in any case "`>`".
-- Processing instructions must be "`<?`", then the target, then a
- space, then the data and then "`>`". (The HTML parser cannot emit
- processing instructions, but scripts can, and the WebVTT to DOM
- rules can emit them.)
-- Template contents are represented by the string "content" with the
- children below it.
-
-The *tag name string* is the local name prefixed by a namespace
-designator. For the HTML namespace, the namespace designator is the
-empty string, i.e. there's no prefix. For the SVG namespace, the
-namespace designator is "svg ". For the MathML namespace, the namespace
-designator is "math ".
-
-The *attribute name string* is the local name prefixed by a namespace
-designator. For no namespace, the namespace designator is the empty
-string, i.e. there's no prefix. For the XLink namespace, the namespace
-designator is "xlink ". For the XML namespace, the namespace designator
-is "xml ". For the XMLNS namespace, the namespace designator is "xmlns
-". Note the difference between "xlink:href" which is an attribute in no
-namespace with the local name "xlink:href" and "xlink href" which is an
-attribute in the xlink namespace with the local name "href".
-
-If there is also a "\#document-fragment" the bit following "\#document"
-must be a representation of the HTML fragment serialization for the
-context element given by "\#document-fragment".
-
-For example:
-
- #data
- <p>One<p>Two
- #errors
- 3: Missing document type declaration
- #document
- | <html>
- | <head>
- | <body>
- | <p>
- | "One"
- | <p>
- | "Two"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/adoption01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/adoption01.dat
deleted file mode 100644
index 2e1127e5178..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/adoption01.dat
+++ /dev/null
@@ -1,337 +0,0 @@
-#data
-<a><p></a></p>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,10): adoption-agency-1.3
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| <p>
-| <a>
-
-#data
-<a>1<p>2</a>3</p>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,12): adoption-agency-1.3
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| "1"
-| <p>
-| <a>
-| "2"
-| "3"
-
-#data
-<a>1<button>2</a>3</button>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,17): adoption-agency-1.3
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| "1"
-| <button>
-| <a>
-| "2"
-| "3"
-
-#data
-<a>1<b>2</a>3</b>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,12): adoption-agency-1.3
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| "1"
-| <b>
-| "2"
-| <b>
-| "3"
-
-#data
-<a>1<div>2<div>3</a>4</div>5</div>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,20): adoption-agency-1.3
-(1,20): adoption-agency-1.3
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| "1"
-| <div>
-| <a>
-| "2"
-| <div>
-| <a>
-| "3"
-| "4"
-| "5"
-
-#data
-<table><a>1<p>2</a>3</p>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,10): unexpected-start-tag-implies-table-voodoo
-(1,11): unexpected-character-implies-table-voodoo
-(1,14): unexpected-start-tag-implies-table-voodoo
-(1,15): unexpected-character-implies-table-voodoo
-(1,19): unexpected-end-tag-implies-table-voodoo
-(1,19): adoption-agency-1.3
-(1,20): unexpected-character-implies-table-voodoo
-(1,24): unexpected-end-tag-implies-table-voodoo
-(1,24): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| "1"
-| <p>
-| <a>
-| "2"
-| "3"
-| <table>
-
-#data
-<b><b><a><p></a>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,16): adoption-agency-1.3
-(1,16): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| <b>
-| <a>
-| <p>
-| <a>
-
-#data
-<b><a><b><p></a>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,16): adoption-agency-1.3
-(1,16): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| <a>
-| <b>
-| <b>
-| <p>
-| <a>
-
-#data
-<a><b><b><p></a>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,16): adoption-agency-1.3
-(1,16): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| <b>
-| <b>
-| <b>
-| <b>
-| <p>
-| <a>
-
-#data
-<p>1<s id="A">2<b id="B">3</p>4</s>5</b>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,30): unexpected-end-tag
-(1,35): adoption-agency-1.3
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| "1"
-| <s>
-| id="A"
-| "2"
-| <b>
-| id="B"
-| "3"
-| <s>
-| id="A"
-| <b>
-| id="B"
-| "4"
-| <b>
-| id="B"
-| "5"
-
-#data
-<table><a>1<td>2</td>3</table>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,10): unexpected-start-tag-implies-table-voodoo
-(1,11): unexpected-character-implies-table-voodoo
-(1,15): unexpected-cell-in-table-body
-(1,30): unexpected-implied-end-tag-in-table-view
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| "1"
-| <a>
-| "3"
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| "2"
-
-#data
-<table>A<td>B</td>C</table>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,8): unexpected-character-implies-table-voodoo
-(1,12): unexpected-cell-in-table-body
-(1,22): unexpected-character-implies-table-voodoo
-#document
-| <html>
-| <head>
-| <body>
-| "AC"
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| "B"
-
-#data
-<a><svg><tr><input></a>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,23): unexpected-end-tag
-(1,23): adoption-agency-1.3
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| <svg svg>
-| <svg tr>
-| <svg input>
-
-#data
-<div><a><b><div><div><div><div><div><div><div><div><div><div></a>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,65): adoption-agency-1.3
-(1,65): adoption-agency-1.3
-(1,65): adoption-agency-1.3
-(1,65): adoption-agency-1.3
-(1,65): adoption-agency-1.3
-(1,65): adoption-agency-1.3
-(1,65): adoption-agency-1.3
-(1,65): adoption-agency-1.3
-(1,65): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <a>
-| <b>
-| <b>
-| <div>
-| <a>
-| <div>
-| <a>
-| <div>
-| <a>
-| <div>
-| <a>
-| <div>
-| <a>
-| <div>
-| <a>
-| <div>
-| <a>
-| <div>
-| <a>
-| <div>
-| <div>
-
-#data
-<div><a><b><u><i><code><div></a>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,32): adoption-agency-1.3
-(1,32): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <a>
-| <b>
-| <u>
-| <i>
-| <code>
-| <u>
-| <i>
-| <code>
-| <div>
-| <a>
-
-#data
-<b><b><b><b>x</b></b></b></b>y
-#errors
-(1,3): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| <b>
-| <b>
-| <b>
-| "x"
-| "y"
-
-#data
-<p><b><b><b><b><p>x
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,18): unexpected-end-tag
-(1,19): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <b>
-| <b>
-| <b>
-| <b>
-| <p>
-| <b>
-| <b>
-| <b>
-| "x"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/adoption02.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/adoption02.dat
deleted file mode 100644
index e54d8033bac..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/adoption02.dat
+++ /dev/null
@@ -1,39 +0,0 @@
-#data
-<b>1<i>2<p>3</b>4
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,16): adoption-agency-1.3
-(1,17): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| "1"
-| <i>
-| "2"
-| <i>
-| <p>
-| <b>
-| "3"
-| "4"
-
-#data
-<a><div><style></style><address><a>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,35): unexpected-start-tag-implies-end-tag
-(1,35): adoption-agency-1.3
-(1,35): adoption-agency-1.3
-(1,35): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| <div>
-| <a>
-| <style>
-| <address>
-| <a>
-| <a>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/comments01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/comments01.dat
deleted file mode 100644
index 35ec6cced63..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/comments01.dat
+++ /dev/null
@@ -1,178 +0,0 @@
-#data
-FOO<!-- BAR -->BAZ
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <!-- BAR -->
-| "BAZ"
-
-#data
-FOO<!-- BAR --!>BAZ
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,15): unexpected-bang-after-double-dash-in-comment
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <!-- BAR -->
-| "BAZ"
-
-#data
-FOO<!-- BAR -- >BAZ
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,15): unexpected-char-in-comment
-(1,21): eof-in-comment
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <!-- BAR -- >BAZ -->
-
-#data
-FOO<!-- BAR -- <QUX> -- MUX -->BAZ
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,15): unexpected-char-in-comment
-(1,24): unexpected-char-in-comment
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <!-- BAR -- <QUX> -- MUX -->
-| "BAZ"
-
-#data
-FOO<!-- BAR -- <QUX> -- MUX --!>BAZ
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,15): unexpected-char-in-comment
-(1,24): unexpected-char-in-comment
-(1,31): unexpected-bang-after-double-dash-in-comment
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <!-- BAR -- <QUX> -- MUX -->
-| "BAZ"
-
-#data
-FOO<!-- BAR -- <QUX> -- MUX -- >BAZ
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,15): unexpected-char-in-comment
-(1,24): unexpected-char-in-comment
-(1,31): unexpected-char-in-comment
-(1,35): eof-in-comment
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <!-- BAR -- <QUX> -- MUX -- >BAZ -->
-
-#data
-FOO<!---->BAZ
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <!-- -->
-| "BAZ"
-
-#data
-FOO<!--->BAZ
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,9): incorrect-comment
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <!-- -->
-| "BAZ"
-
-#data
-FOO<!-->BAZ
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,8): incorrect-comment
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <!-- -->
-| "BAZ"
-
-#data
-<?xml version="1.0">Hi
-#errors
-(1,1): expected-tag-name-but-got-question-mark
-(1,22): expected-doctype-but-got-chars
-#document
-| <!-- ?xml version="1.0" -->
-| <html>
-| <head>
-| <body>
-| "Hi"
-
-#data
-<?xml version="1.0">
-#errors
-(1,1): expected-tag-name-but-got-question-mark
-(1,20): expected-doctype-but-got-eof
-#document
-| <!-- ?xml version="1.0" -->
-| <html>
-| <head>
-| <body>
-
-#data
-<?xml version
-#errors
-(1,1): expected-tag-name-but-got-question-mark
-(1,13): expected-doctype-but-got-eof
-#document
-| <!-- ?xml version -->
-| <html>
-| <head>
-| <body>
-
-#data
-FOO<!----->BAZ
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,10): unexpected-dash-after-double-dash-in-comment
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <!-- - -->
-| "BAZ"
-
-#data
-<html><!-- comment --><title>Comment before head</title>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <!-- comment -->
-| <head>
-| <title>
-| "Comment before head"
-| <body>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/doctype01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/doctype01.dat
deleted file mode 100644
index cec66389710..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/doctype01.dat
+++ /dev/null
@@ -1,424 +0,0 @@
-#data
-<!DOCTYPE html>Hello
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!dOctYpE HtMl>Hello
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPEhtml>Hello
-#errors
-(1,9): need-space-after-doctype
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE>Hello
-#errors
-(1,9): need-space-after-doctype
-(1,10): expected-doctype-name-but-got-right-bracket
-(1,10): unknown-doctype
-#document
-| <!DOCTYPE >
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE >Hello
-#errors
-(1,11): expected-doctype-name-but-got-right-bracket
-(1,11): unknown-doctype
-#document
-| <!DOCTYPE >
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato>Hello
-#errors
-(1,17): unknown-doctype
-#document
-| <!DOCTYPE potato>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato >Hello
-#errors
-(1,18): unknown-doctype
-#document
-| <!DOCTYPE potato>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato taco>Hello
-#errors
-(1,17): expected-space-or-right-bracket-in-doctype
-(1,22): unknown-doctype
-#document
-| <!DOCTYPE potato>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato taco "ddd>Hello
-#errors
-(1,17): expected-space-or-right-bracket-in-doctype
-(1,27): unknown-doctype
-#document
-| <!DOCTYPE potato>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato sYstEM>Hello
-#errors
-(1,24): unexpected-char-in-doctype
-(1,24): unknown-doctype
-#document
-| <!DOCTYPE potato>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato sYstEM >Hello
-#errors
-(1,28): unexpected-char-in-doctype
-(1,28): unknown-doctype
-#document
-| <!DOCTYPE potato>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato sYstEM ggg>Hello
-#errors
-(1,34): unexpected-char-in-doctype
-(1,37): unknown-doctype
-#document
-| <!DOCTYPE potato>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato SYSTEM taco >Hello
-#errors
-(1,25): unexpected-char-in-doctype
-(1,31): unknown-doctype
-#document
-| <!DOCTYPE potato>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato SYSTEM 'taco"'>Hello
-#errors
-(1,32): unknown-doctype
-#document
-| <!DOCTYPE potato "" "taco"">
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato SYSTEM "taco">Hello
-#errors
-(1,31): unknown-doctype
-#document
-| <!DOCTYPE potato "" "taco">
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato SYSTEM "tai'co">Hello
-#errors
-(1,33): unknown-doctype
-#document
-| <!DOCTYPE potato "" "tai'co">
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato SYSTEMtaco "ddd">Hello
-#errors
-(1,24): unexpected-char-in-doctype
-(1,34): unknown-doctype
-#document
-| <!DOCTYPE potato>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato grass SYSTEM taco>Hello
-#errors
-(1,17): expected-space-or-right-bracket-in-doctype
-(1,35): unknown-doctype
-#document
-| <!DOCTYPE potato>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato pUbLIc>Hello
-#errors
-(1,24): unexpected-end-of-doctype
-(1,24): unknown-doctype
-#document
-| <!DOCTYPE potato>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato pUbLIc >Hello
-#errors
-(1,25): unexpected-end-of-doctype
-(1,25): unknown-doctype
-#document
-| <!DOCTYPE potato>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato pUbLIcgoof>Hello
-#errors
-(1,24): unexpected-char-in-doctype
-(1,28): unknown-doctype
-#document
-| <!DOCTYPE potato>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato PUBLIC goof>Hello
-#errors
-(1,25): unexpected-char-in-doctype
-(1,29): unknown-doctype
-#document
-| <!DOCTYPE potato>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato PUBLIC "go'of">Hello
-#errors
-(1,32): unknown-doctype
-#document
-| <!DOCTYPE potato "go'of" "">
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato PUBLIC 'go'of'>Hello
-#errors
-(1,29): unexpected-char-in-doctype
-(1,32): unknown-doctype
-#document
-| <!DOCTYPE potato "go" "">
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato PUBLIC 'go:hh of' >Hello
-#errors
-(1,38): unknown-doctype
-#document
-| <!DOCTYPE potato "go:hh of" "">
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE potato PUBLIC "W3C-//dfdf" SYSTEM ggg>Hello
-#errors
-(1,38): unexpected-char-in-doctype
-(1,48): unknown-doctype
-#document
-| <!DOCTYPE potato "W3C-//dfdf" "">
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">Hello
-#errors
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE ...>Hello
-#errors
-(1,14): unknown-doctype
-#document
-| <!DOCTYPE ...>
-| <html>
-| <head>
-| <body>
-| "Hello"
-
-#data
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-#errors
-(2,58): unknown-doctype
-#document
-| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-| <html>
-| <head>
-| <body>
-
-#data
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
-#errors
-(2,54): unknown-doctype
-#document
-| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
-| <html>
-| <head>
-| <body>
-
-#data
-<!DOCTYPE root-element [SYSTEM OR PUBLIC FPI] "uri" [
-<!-- internal declarations -->
-]>
-#errors
-(1,23): expected-space-or-right-bracket-in-doctype
-(2,30): unknown-doctype
-#document
-| <!DOCTYPE root-element>
-| <html>
-| <head>
-| <body>
-| "]>"
-
-#data
-<!DOCTYPE html PUBLIC
- "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
- "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
-#errors
-(3,53): unknown-doctype
-#document
-| <!DOCTYPE html "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
-| <html>
-| <head>
-| <body>
-
-#data
-<!DOCTYPE HTML SYSTEM "http://www.w3.org/DTD/HTML4-strict.dtd"><body><b>Mine!</b></body>
-#errors
-(1,63): unknown-doctype
-#document
-| <!DOCTYPE html "" "http://www.w3.org/DTD/HTML4-strict.dtd">
-| <html>
-| <head>
-| <body>
-| <b>
-| "Mine!"
-
-#data
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
-#errors
-(1,50): unexpected-char-in-doctype
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-| <html>
-| <head>
-| <body>
-
-#data
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'>
-#errors
-(1,50): unexpected-char-in-doctype
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-| <html>
-| <head>
-| <body>
-
-#data
-<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'>
-#errors
-(1,21): unexpected-char-in-doctype
-(1,49): unexpected-char-in-doctype
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-| <html>
-| <head>
-| <body>
-
-#data
-<!DOCTYPE HTML PUBLIC'-//W3C//DTD HTML 4.01//EN''http://www.w3.org/TR/html4/strict.dtd'>
-#errors
-(1,21): unexpected-char-in-doctype
-(1,49): unexpected-char-in-doctype
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-| <html>
-| <head>
-| <body>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/domjs-unsafe.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/domjs-unsafe.dat
deleted file mode 100644
index 34b4e62716e..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/domjs-unsafe.dat
+++ /dev/null
Binary files differ
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/entities01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/entities01.dat
deleted file mode 100644
index 20d53a0fd5a..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/entities01.dat
+++ /dev/null
@@ -1,723 +0,0 @@
-#data
-FOO&gt;BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO>BAR"
-
-#data
-FOO&gtBAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,6): named-entity-without-semicolon
-#document
-| <html>
-| <head>
-| <body>
-| "FOO>BAR"
-
-#data
-FOO&gt BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,6): named-entity-without-semicolon
-#document
-| <html>
-| <head>
-| <body>
-| "FOO> BAR"
-
-#data
-FOO&gt;;;BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO>;;BAR"
-
-#data
-I'm &notit; I tell you
-#errors
-(1,4): expected-doctype-but-got-chars
-(1,9): named-entity-without-semicolon
-#document
-| <html>
-| <head>
-| <body>
-| "I'm ¬it; I tell you"
-
-#data
-I'm &notin; I tell you
-#errors
-(1,4): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "I'm ∉ I tell you"
-
-#data
-FOO& BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO& BAR"
-
-#data
-FOO&<BAR>
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,9): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| "FOO&"
-| <bar>
-
-#data
-FOO&&&&gt;BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO&&&>BAR"
-
-#data
-FOO&#41;BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO)BAR"
-
-#data
-FOO&#x41;BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOOABAR"
-
-#data
-FOO&#X41;BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOOABAR"
-
-#data
-FOO&#BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,5): expected-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO&#BAR"
-
-#data
-FOO&#ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,5): expected-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO&#ZOO"
-
-#data
-FOO&#xBAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,7): expected-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOOºR"
-
-#data
-FOO&#xZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,6): expected-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO&#xZOO"
-
-#data
-FOO&#XZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,6): expected-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO&#XZOO"
-
-#data
-FOO&#41BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,7): numeric-entity-without-semicolon
-#document
-| <html>
-| <head>
-| <body>
-| "FOO)BAR"
-
-#data
-FOO&#x41BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,10): numeric-entity-without-semicolon
-#document
-| <html>
-| <head>
-| <body>
-| "FOO䆺R"
-
-#data
-FOO&#x41ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,8): numeric-entity-without-semicolon
-#document
-| <html>
-| <head>
-| <body>
-| "FOOAZOO"
-
-#data
-FOO&#x0000;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO�ZOO"
-
-#data
-FOO&#x0078;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOOxZOO"
-
-#data
-FOO&#x0079;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOOyZOO"
-
-#data
-FOO&#x0080;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO€ZOO"
-
-#data
-FOO&#x0081;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOOZOO"
-
-#data
-FOO&#x0082;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO‚ZOO"
-
-#data
-FOO&#x0083;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOOƒZOO"
-
-#data
-FOO&#x0084;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO„ZOO"
-
-#data
-FOO&#x0085;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO…ZOO"
-
-#data
-FOO&#x0086;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO†ZOO"
-
-#data
-FOO&#x0087;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO‡ZOO"
-
-#data
-FOO&#x0088;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOOˆZOO"
-
-#data
-FOO&#x0089;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO‰ZOO"
-
-#data
-FOO&#x008A;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOOŠZOO"
-
-#data
-FOO&#x008B;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO‹ZOO"
-
-#data
-FOO&#x008C;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOOŒZOO"
-
-#data
-FOO&#x008D;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOOZOO"
-
-#data
-FOO&#x008E;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOOŽZOO"
-
-#data
-FOO&#x008F;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOOZOO"
-
-#data
-FOO&#x0090;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOOZOO"
-
-#data
-FOO&#x0091;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO‘ZOO"
-
-#data
-FOO&#x0092;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO’ZOO"
-
-#data
-FOO&#x0093;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO“ZOO"
-
-#data
-FOO&#x0094;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO”ZOO"
-
-#data
-FOO&#x0095;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO•ZOO"
-
-#data
-FOO&#x0096;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO–ZOO"
-
-#data
-FOO&#x0097;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO—ZOO"
-
-#data
-FOO&#x0098;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO˜ZOO"
-
-#data
-FOO&#x0099;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO™ZOO"
-
-#data
-FOO&#x009A;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOOšZOO"
-
-#data
-FOO&#x009B;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO›ZOO"
-
-#data
-FOO&#x009C;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOOœZOO"
-
-#data
-FOO&#x009D;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOOZOO"
-
-#data
-FOO&#x009E;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOOžZOO"
-
-#data
-FOO&#x009F;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOOŸZOO"
-
-#data
-FOO&#x00A0;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO ZOO"
-
-#data
-FOO&#xD7FF;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO퟿ZOO"
-
-#data
-FOO&#xD800;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO�ZOO"
-
-#data
-FOO&#xD801;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO�ZOO"
-
-#data
-FOO&#xDFFE;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO�ZOO"
-
-#data
-FOO&#xDFFF;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,11): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO�ZOO"
-
-#data
-FOO&#xE000;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOOZOO"
-
-#data
-FOO&#x10FFFE;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,13): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO􏿾ZOO"
-
-#data
-FOO&#x1087D4;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO􈟔ZOO"
-
-#data
-FOO&#x10FFFF;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,13): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO􏿿ZOO"
-
-#data
-FOO&#x110000;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,13): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO�ZOO"
-
-#data
-FOO&#xFFFFFF;ZOO
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,13): illegal-codepoint-for-numeric-entity
-#document
-| <html>
-| <head>
-| <body>
-| "FOO�ZOO"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/entities02.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/entities02.dat
deleted file mode 100644
index f117f068a01..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/entities02.dat
+++ /dev/null
@@ -1,283 +0,0 @@
-#data
-<div bar="ZZ&gt;YY"></div>
-#errors
-(1,20): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ>YY"
-
-#data
-<div bar="ZZ&"></div>
-#errors
-(1,15): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ&"
-
-#data
-<div bar='ZZ&'></div>
-#errors
-(1,15): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ&"
-
-#data
-<div bar=ZZ&></div>
-#errors
-(1,13): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ&"
-
-#data
-<div bar="ZZ&gt=YY"></div>
-#errors
-(1,15): named-entity-without-semicolon
-(1,20): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ&gt=YY"
-
-#data
-<div bar="ZZ&gt0YY"></div>
-#errors
-(1,20): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ&gt0YY"
-
-#data
-<div bar="ZZ&gt9YY"></div>
-#errors
-(1,20): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ&gt9YY"
-
-#data
-<div bar="ZZ&gtaYY"></div>
-#errors
-(1,20): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ&gtaYY"
-
-#data
-<div bar="ZZ&gtZYY"></div>
-#errors
-(1,20): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ&gtZYY"
-
-#data
-<div bar="ZZ&gt YY"></div>
-#errors
-(1,15): named-entity-without-semicolon
-(1,20): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ> YY"
-
-#data
-<div bar="ZZ&gt"></div>
-#errors
-(1,15): named-entity-without-semicolon
-(1,17): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ>"
-
-#data
-<div bar='ZZ&gt'></div>
-#errors
-(1,15): named-entity-without-semicolon
-(1,17): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ>"
-
-#data
-<div bar=ZZ&gt></div>
-#errors
-(1,14): named-entity-without-semicolon
-(1,15): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ>"
-
-#data
-<div bar="ZZ&pound_id=23"></div>
-#errors
-(1,18): named-entity-without-semicolon
-(1,26): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ£_id=23"
-
-#data
-<div bar="ZZ&prod_id=23"></div>
-#errors
-(1,25): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ&prod_id=23"
-
-#data
-<div bar="ZZ&pound;_id=23"></div>
-#errors
-(1,27): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ£_id=23"
-
-#data
-<div bar="ZZ&prod;_id=23"></div>
-#errors
-(1,26): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ∏_id=23"
-
-#data
-<div bar="ZZ&pound=23"></div>
-#errors
-(1,18): named-entity-without-semicolon
-(1,23): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ&pound=23"
-
-#data
-<div bar="ZZ&prod=23"></div>
-#errors
-(1,22): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| bar="ZZ&prod=23"
-
-#data
-<div>ZZ&pound_id=23</div>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,13): named-entity-without-semicolon
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| "ZZ£_id=23"
-
-#data
-<div>ZZ&prod_id=23</div>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| "ZZ&prod_id=23"
-
-#data
-<div>ZZ&pound;_id=23</div>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| "ZZ£_id=23"
-
-#data
-<div>ZZ&prod;_id=23</div>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| "ZZ∏_id=23"
-
-#data
-<div>ZZ&pound=23</div>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,13): named-entity-without-semicolon
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| "ZZ£=23"
-
-#data
-<div>ZZ&prod=23</div>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| "ZZ&prod=23"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/html5test-com.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/html5test-com.dat
deleted file mode 100644
index 8c6ec40cd74..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/html5test-com.dat
+++ /dev/null
@@ -1,291 +0,0 @@
-#data
-<div<div>
-#errors
-(1,9): expected-doctype-but-got-start-tag
-(1,9): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div<div>
-
-#data
-<div foo<bar=''>
-#errors
-(1,9): invalid-character-in-attribute-name
-(1,16): expected-doctype-but-got-start-tag
-(1,16): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| foo<bar=""
-
-#data
-<div foo=`bar`>
-#errors
-(1,10): equals-in-unquoted-attribute-value
-(1,14): unexpected-character-in-unquoted-attribute-value
-(1,15): expected-doctype-but-got-start-tag
-(1,15): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| foo="`bar`"
-
-#data
-<div \"foo=''>
-#errors
-(1,7): invalid-character-in-attribute-name
-(1,14): expected-doctype-but-got-start-tag
-(1,14): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| \"foo=""
-
-#data
-<a href='\nbar'></a>
-#errors
-(1,16): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| href="\nbar"
-
-#data
-<!DOCTYPE html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-
-#data
-&lang;&rang;
-#errors
-(1,6): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "⟨⟩"
-
-#data
-&apos;
-#errors
-(1,6): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "'"
-
-#data
-&ImaginaryI;
-#errors
-(1,12): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "ⅈ"
-
-#data
-&Kopf;
-#errors
-(1,6): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "𝕂"
-
-#data
-&notinva;
-#errors
-(1,9): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "∉"
-
-#data
-<?import namespace="foo" implementation="#bar">
-#errors
-(1,1): expected-tag-name-but-got-question-mark
-(1,47): expected-doctype-but-got-eof
-#document
-| <!-- ?import namespace="foo" implementation="#bar" -->
-| <html>
-| <head>
-| <body>
-
-#data
-<!--foo--bar-->
-#errors
-(1,10): unexpected-char-in-comment
-(1,15): expected-doctype-but-got-eof
-#document
-| <!-- foo--bar -->
-| <html>
-| <head>
-| <body>
-
-#data
-<![CDATA[x]]>
-#errors
-(1,2): expected-dashes-or-doctype
-(1,13): expected-doctype-but-got-eof
-#document
-| <!-- [CDATA[x]] -->
-| <html>
-| <head>
-| <body>
-
-#data
-<textarea><!--</textarea>--></textarea>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-(1,39): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <textarea>
-| "<!--"
-| "-->"
-
-#data
-<textarea><!--</textarea>-->
-#errors
-(1,10): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <textarea>
-| "<!--"
-| "-->"
-
-#data
-<style><!--</style>--></style>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,30): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <style>
-| "<!--"
-| <body>
-| "-->"
-
-#data
-<style><!--</style>-->
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <style>
-| "<!--"
-| <body>
-| "-->"
-
-#data
-<ul><li>A </li> <li>B</li></ul>
-#errors
-(1,4): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ul>
-| <li>
-| "A "
-| " "
-| <li>
-| "B"
-
-#data
-<table><form><input type=hidden><input></form><div></div></table>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,13): unexpected-form-in-table
-(1,32): unexpected-hidden-input-in-table
-(1,39): unexpected-start-tag-implies-table-voodoo
-(1,46): unexpected-end-tag-implies-table-voodoo
-(1,46): unexpected-end-tag
-(1,51): unexpected-start-tag-implies-table-voodoo
-(1,57): unexpected-end-tag-implies-table-voodoo
-#document
-| <html>
-| <head>
-| <body>
-| <input>
-| <div>
-| <table>
-| <form>
-| <input>
-| type="hidden"
-
-#data
-<i>A<b>B<p></i>C</b>D
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,15): adoption-agency-1.3
-(1,20): adoption-agency-1.3
-#document
-| <html>
-| <head>
-| <body>
-| <i>
-| "A"
-| <b>
-| "B"
-| <b>
-| <p>
-| <b>
-| <i>
-| "C"
-| "D"
-
-#data
-<div></div>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-
-#data
-<svg></svg>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-
-#data
-<math></math>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/inbody01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/inbody01.dat
deleted file mode 100644
index 10f6520f6fe..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/inbody01.dat
+++ /dev/null
@@ -1,54 +0,0 @@
-#data
-<button>1</foo>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,15): unexpected-end-tag
-(1,15): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <button>
-| "1"
-
-#data
-<foo>1<p>2</foo>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,16): unexpected-end-tag
-(1,16): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <foo>
-| "1"
-| <p>
-| "2"
-
-#data
-<dd>1</foo>
-#errors
-(1,4): expected-doctype-but-got-start-tag
-(1,11): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <dd>
-| "1"
-
-#data
-<foo>1<dd>2</foo>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,17): unexpected-end-tag
-(1,17): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <foo>
-| "1"
-| <dd>
-| "2"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/isindex.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/isindex.dat
deleted file mode 100644
index 42ef997f7ff..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/isindex.dat
+++ /dev/null
@@ -1,47 +0,0 @@
-#data
-<isindex>
-#errors
-(1,9): expected-doctype-but-got-start-tag
-(1,9): deprecated-tag
-#document
-| <html>
-| <head>
-| <body>
-| <form>
-| <hr>
-| <label>
-| "This is a searchable index. Enter search keywords: "
-| <input>
-| name="isindex"
-| <hr>
-
-#data
-<isindex name="A" action="B" prompt="C" foo="D">
-#errors
-(1,48): expected-doctype-but-got-start-tag
-(1,48): deprecated-tag
-#document
-| <html>
-| <head>
-| <body>
-| <form>
-| action="B"
-| <hr>
-| <label>
-| "C"
-| <input>
-| foo="D"
-| name="isindex"
-| <hr>
-
-#data
-<form><isindex>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,15): deprecated-tag
-(1,15): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <form>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/main-element.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/main-element.dat
deleted file mode 100644
index 4b103bb0fa3..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/main-element.dat
+++ /dev/null
@@ -1,46 +0,0 @@
-#data
-<!doctype html><p>foo<main>bar<p>baz
-#errors
-(1,36): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| "foo"
-| <main>
-| "bar"
-| <p>
-| "baz"
-
-#data
-<!doctype html><main><p>foo</main>bar
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <main>
-| <p>
-| "foo"
-| "bar"
-
-#data
-<!DOCTYPE html>xxx<svg><x><g><a><main><b>
-#errors
- * (1,42) unexpected HTML-like start tag token in foreign content
- * (1,42) unexpected end of file
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "xxx"
-| <svg svg>
-| <svg x>
-| <svg g>
-| <svg a>
-| <svg main>
-| <b>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/pending-spec-changes-plain-text-unsafe.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/pending-spec-changes-plain-text-unsafe.dat
deleted file mode 100644
index 3ee8cec904f..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/pending-spec-changes-plain-text-unsafe.dat
+++ /dev/null
Binary files differ
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/pending-spec-changes.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/pending-spec-changes.dat
deleted file mode 100644
index 1647d7f23a9..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/pending-spec-changes.dat
+++ /dev/null
@@ -1,46 +0,0 @@
-#data
-<input type="hidden"><frameset>
-#errors
-(1,21): expected-doctype-but-got-start-tag
-(1,31): unexpected-start-tag
-(1,31): eof-in-frameset
-#document
-| <html>
-| <head>
-| <frameset>
-
-#data
-<!DOCTYPE html><table><caption><svg>foo</table>bar
-#errors
-(1,47): unexpected-end-tag
-(1,47): end-table-tag-in-caption
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-| <svg svg>
-| "foo"
-| "bar"
-
-#data
-<table><tr><td><svg><desc><td></desc><circle>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,30): unexpected-cell-end-tag
-(1,37): unexpected-end-tag
-(1,45): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <svg svg>
-| <svg desc>
-| <td>
-| <circle>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/plain-text-unsafe.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/plain-text-unsafe.dat
deleted file mode 100644
index f40dd57607a..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/plain-text-unsafe.dat
+++ /dev/null
Binary files differ
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/ruby.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/ruby.dat
deleted file mode 100644
index 80d0c53313c..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/ruby.dat
+++ /dev/null
@@ -1,298 +0,0 @@
-#data
-<html><ruby>a<rb>b<rb></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rb>
-| "b"
-| <rb>
-
-#data
-<html><ruby>a<rb>b<rt></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rb>
-| "b"
-| <rt>
-
-#data
-<html><ruby>a<rb>b<rtc></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rb>
-| "b"
-| <rtc>
-
-#data
-<html><ruby>a<rb>b<rp></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rb>
-| "b"
-| <rp>
-
-#data
-<html><ruby>a<rb>b<span></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rb>
-| "b"
-| <span>
-
-#data
-<html><ruby>a<rt>b<rb></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rt>
-| "b"
-| <rb>
-
-#data
-<html><ruby>a<rt>b<rt></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rt>
-| "b"
-| <rt>
-
-#data
-<html><ruby>a<rt>b<rtc></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rt>
-| "b"
-| <rtc>
-
-#data
-<html><ruby>a<rt>b<rp></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rt>
-| "b"
-| <rp>
-
-#data
-<html><ruby>a<rt>b<span></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rt>
-| "b"
-| <span>
-
-#data
-<html><ruby>a<rtc>b<rb></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rtc>
-| "b"
-| <rb>
-
-#data
-<html><ruby>a<rtc>b<rt>c<rt>d</ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rtc>
-| "b"
-| <rt>
-| "c"
-| <rt>
-| "d"
-
-#data
-<html><ruby>a<rtc>b<rtc></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rtc>
-| "b"
-| <rtc>
-
-#data
-<html><ruby>a<rtc>b<rp></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rtc>
-| "b"
-| <rp>
-
-#data
-<html><ruby>a<rtc>b<span></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rtc>
-| "b"
-| <span>
-
-#data
-<html><ruby>a<rp>b<rb></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rp>
-| "b"
-| <rb>
-
-#data
-<html><ruby>a<rp>b<rt></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rp>
-| "b"
-| <rt>
-
-#data
-<html><ruby>a<rp>b<rtc></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rp>
-| "b"
-| <rtc>
-
-#data
-<html><ruby>a<rp>b<rp></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rp>
-| "b"
-| <rp>
-
-#data
-<html><ruby>a<rp>b<span></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rp>
-| "b"
-| <span>
-
-#data
-<html><ruby><rtc><ruby>a<rb>b<rt></ruby></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| <rtc>
-| <ruby>
-| "a"
-| <rb>
-| "b"
-| <rt>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scriptdata01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scriptdata01.dat
deleted file mode 100644
index ac698d282ff..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scriptdata01.dat
+++ /dev/null
@@ -1,365 +0,0 @@
-#data
-FOO<script>'Hello'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "'Hello'"
-| "BAR"
-
-#data
-FOO<script></script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "BAR"
-
-#data
-FOO<script></script >BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "BAR"
-
-#data
-FOO<script></script/>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,21): self-closing-flag-on-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "BAR"
-
-#data
-FOO<script></script/ >BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,20): unexpected-character-after-solidus-in-tag
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "BAR"
-
-#data
-FOO<script type="text/plain"></scriptx>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,42): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| type="text/plain"
-| "</scriptx>BAR"
-
-#data
-FOO<script></script foo=">" dd>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,31): attributes-in-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "BAR"
-
-#data
-FOO<script>'<'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "'<'"
-| "BAR"
-
-#data
-FOO<script>'<!'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "'<!'"
-| "BAR"
-
-#data
-FOO<script>'<!-'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "'<!-'"
-| "BAR"
-
-#data
-FOO<script>'<!--'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "'<!--'"
-| "BAR"
-
-#data
-FOO<script>'<!---'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "'<!---'"
-| "BAR"
-
-#data
-FOO<script>'<!-->'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "'<!-->'"
-| "BAR"
-
-#data
-FOO<script>'<!-->'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "'<!-->'"
-| "BAR"
-
-#data
-FOO<script>'<!-- potato'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "'<!-- potato'"
-| "BAR"
-
-#data
-FOO<script>'<!-- <sCrIpt'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "'<!-- <sCrIpt'"
-| "BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt>'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,56): expected-script-data-but-got-eof
-(1,56): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| type="text/plain"
-| "'<!-- <sCrIpt>'</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt> -'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,58): expected-script-data-but-got-eof
-(1,58): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| type="text/plain"
-| "'<!-- <sCrIpt> -'</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt> --'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,59): expected-script-data-but-got-eof
-(1,59): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| type="text/plain"
-| "'<!-- <sCrIpt> --'</script>BAR"
-
-#data
-FOO<script>'<!-- <sCrIpt> -->'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "'<!-- <sCrIpt> -->'"
-| "BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt> --!>'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,61): expected-script-data-but-got-eof
-(1,61): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| type="text/plain"
-| "'<!-- <sCrIpt> --!>'</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt> -- >'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,61): expected-script-data-but-got-eof
-(1,61): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| type="text/plain"
-| "'<!-- <sCrIpt> -- >'</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt '</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,56): expected-script-data-but-got-eof
-(1,56): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| type="text/plain"
-| "'<!-- <sCrIpt '</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-(1,56): expected-script-data-but-got-eof
-(1,56): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| type="text/plain"
-| "'<!-- <sCrIpt/'</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt\'</script>BAR
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| type="text/plain"
-| "'<!-- <sCrIpt\'"
-| "BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR</script>QUX
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| type="text/plain"
-| "'<!-- <sCrIpt/'</script>BAR"
-| "QUX"
-
-#data
-FOO<script><!--<script>-></script>--></script>QUX
-#errors
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "FOO"
-| <script>
-| "<!--<script>-></script>-->"
-| "QUX"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/adoption01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/adoption01.dat
deleted file mode 100644
index 4e08d0e84a0..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/adoption01.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-#data
-<p><b id="A"><script>document.getElementById("A").id = "B"</script></p>TEXT</b>
-#errors
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <b>
-| id="B"
-| <script>
-| "document.getElementById("A").id = "B""
-| <b>
-| id="A"
-| "TEXT"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/ark.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/ark.dat
deleted file mode 100644
index acbac41df16..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/ark.dat
+++ /dev/null
@@ -1,26 +0,0 @@
-#data
-<p><font size=4><font size=4><font size=4><script>document.getElementsByTagName("font")[2].setAttribute("size", "5");</script><font size=4><p>X
-#errors
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <font>
-| size="4"
-| <font>
-| size="4"
-| <font>
-| size="5"
-| <script>
-| "document.getElementsByTagName("font")[2].setAttribute("size", "5");"
-| <font>
-| size="4"
-| <p>
-| <font>
-| size="4"
-| <font>
-| size="4"
-| <font>
-| size="4"
-| "X"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/webkit01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/webkit01.dat
deleted file mode 100644
index ef4a41ca00b..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/webkit01.dat
+++ /dev/null
@@ -1,28 +0,0 @@
-#data
-1<script>document.write("2")</script>3
-#errors
-#document
-| <html>
-| <head>
-| <body>
-| "1"
-| <script>
-| "document.write("2")"
-| "23"
-
-#data
-1<script>document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")</script>4
-#errors
-#document
-| <html>
-| <head>
-| <body>
-| "1"
-| <script>
-| "document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")"
-| <script>
-| "document.write('2')"
-| "2"
-| <script>
-| "document.write('3')"
-| "34"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tables01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tables01.dat
deleted file mode 100644
index f0caaa3c5fc..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tables01.dat
+++ /dev/null
@@ -1,286 +0,0 @@
-#data
-<table><th>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,11): unexpected-cell-in-table-body
-(1,11): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <th>
-
-#data
-<table><td>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,11): unexpected-cell-in-table-body
-(1,11): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-
-#data
-<table><col foo='bar'>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,22): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <colgroup>
-| <col>
-| foo="bar"
-
-#data
-<table><colgroup></html>foo
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,24): unexpected-end-tag
-(1,27): foster-parenting-character-in-table
-(1,27): foster-parenting-character-in-table
-(1,27): foster-parenting-character-in-table
-(1,27): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| "foo"
-| <table>
-| <colgroup>
-
-#data
-<table></table><p>foo
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <p>
-| "foo"
-
-#data
-<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr><td>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,14): unexpected-end-tag
-(1,24): unexpected-end-tag
-(1,30): unexpected-end-tag
-(1,41): unexpected-end-tag
-(1,48): unexpected-end-tag
-(1,56): unexpected-end-tag
-(1,61): unexpected-end-tag
-(1,69): unexpected-end-tag
-(1,74): unexpected-end-tag
-(1,82): unexpected-end-tag
-(1,87): unexpected-end-tag
-(1,91): unexpected-cell-in-table-body
-(1,91): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-
-#data
-<table><select><option>3</select></table>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,15): unexpected-start-tag-implies-table-voodoo
-#document
-| <html>
-| <head>
-| <body>
-| <select>
-| <option>
-| "3"
-| <table>
-
-#data
-<table><select><table></table></select></table>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,15): unexpected-start-tag-implies-table-voodoo
-(1,22): unexpected-table-element-start-tag-in-select-in-table
-(1,22): unexpected-start-tag-implies-end-tag
-(1,39): unexpected-end-tag
-(1,47): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <select>
-| <table>
-| <table>
-
-#data
-<table><select></table>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,15): unexpected-start-tag-implies-table-voodoo
-(1,23): unexpected-table-element-end-tag-in-select-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <select>
-| <table>
-
-#data
-<table><select><option>A<tr><td>B</td></tr></table>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,15): unexpected-start-tag-implies-table-voodoo
-(1,28): unexpected-table-element-start-tag-in-select-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <select>
-| <option>
-| "A"
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| "B"
-
-#data
-<table><td></body></caption></col></colgroup></html>foo
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,11): unexpected-cell-in-table-body
-(1,18): unexpected-end-tag
-(1,28): unexpected-end-tag
-(1,34): unexpected-end-tag
-(1,45): unexpected-end-tag
-(1,52): unexpected-end-tag
-(1,55): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| "foo"
-
-#data
-<table><td>A</table>B
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,11): unexpected-cell-in-table-body
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| "A"
-| "B"
-
-#data
-<table><tr><caption>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,20): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <caption>
-
-#data
-<table><tr></body></caption></col></colgroup></html></td></th><td>foo
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,18): unexpected-end-tag-in-table-row
-(1,28): unexpected-end-tag-in-table-row
-(1,34): unexpected-end-tag-in-table-row
-(1,45): unexpected-end-tag-in-table-row
-(1,52): unexpected-end-tag-in-table-row
-(1,57): unexpected-end-tag-in-table-row
-(1,62): unexpected-end-tag-in-table-row
-(1,69): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| "foo"
-
-#data
-<table><td><tr>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,11): unexpected-cell-in-table-body
-(1,15): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <tr>
-
-#data
-<table><td><button><td>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,11): unexpected-cell-in-table-body
-(1,23): unexpected-cell-end-tag
-(1,23): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <button>
-| <td>
-
-#data
-<table><tr><td><svg><desc><td>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,30): unexpected-cell-end-tag
-(1,30): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <svg svg>
-| <svg desc>
-| <td>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/template.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/template.dat
deleted file mode 100644
index f370cc18607..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/template.dat
+++ /dev/null
@@ -1,1591 +0,0 @@
-#data
-<body><template>Hello</template>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| "Hello"
-
-#data
-<template>Hello</template>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <template>
-| content
-| "Hello"
-| <body>
-
-#data
-<template></template><div></div>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <body>
-| <div>
-
-#data
-<html><template>Hello</template>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <template>
-| content
-| "Hello"
-| <body>
-
-#data
-<head><template><div></div></template></head>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <div>
-| <body>
-
-#data
-<div><template><div><span></template><b>
-#errors
- * (1,6) missing DOCTYPE
- * (1,38) mismatched template end tag
- * (1,41) unexpected end of file
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <template>
-| content
-| <div>
-| <span>
-| <b>
-
-#data
-<div><template></div>Hello
-#errors
- * (1,6) missing DOCTYPE
- * (1,22) unexpected token in template
- * (1,27) unexpected end of file in template
- * (1,27) unexpected end of file
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <template>
-| content
-| "Hello"
-
-#data
-<div></template></div>
-#errors
- * (1,6) missing DOCTYPE
- * (1,17) unexpected template end tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-
-#data
-<table><template></template></table>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <template>
-| content
-
-#data
-<table><template></template></div>
-#errors
- * (1,8) missing DOCTYPE
- * (1,35) unexpected token in table - foster parenting
- * (1,35) unexpected end tag
- * (1,35) unexpected end of file
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <template>
-| content
-
-#data
-<table><div><template></template></div>
-#errors
- * (1,8) missing DOCTYPE
- * (1,13) unexpected token in table - foster parenting
- * (1,40) unexpected token in table - foster parenting
- * (1,40) unexpected end of file
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <template>
-| content
-| <table>
-
-#data
-<table><template></template><div></div>
-#errors
-no doctype
-bad div in table
-bad /div in table
-eof in table
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <table>
-| <template>
-| content
-
-#data
-<table> <template></template></table>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| " "
-| <template>
-| content
-
-#data
-<table><tbody><template></template></tbody>
-#errors
-no doctype
-eof in table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <template>
-| content
-
-#data
-<table><tbody><template></tbody></template>
-#errors
-no doctype
-bad /tbody
-eof in table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <template>
-| content
-
-#data
-<table><tbody><template></template></tbody></table>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <template>
-| content
-
-#data
-<table><thead><template></template></thead>
-#errors
-no doctype
-eof in table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <thead>
-| <template>
-| content
-
-#data
-<table><tfoot><template></template></tfoot>
-#errors
-no doctype
-eof in table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tfoot>
-| <template>
-| content
-
-#data
-<select><template></template></select>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <select>
-| <template>
-| content
-
-#data
-<select><template><option></option></template></select>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <select>
-| <template>
-| content
-| <option>
-
-#data
-<template><option></option></select><option></option></template>
-#errors
-no doctype
-bad /select
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <option>
-| <option>
-| <body>
-
-#data
-<select><template></template><option></select>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <select>
-| <template>
-| content
-| <option>
-
-#data
-<select><option><template></template></select>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <select>
-| <option>
-| <template>
-| content
-
-#data
-<select><template>
-#errors
-no doctype
-eof in template
-eof in select
-#document
-| <html>
-| <head>
-| <body>
-| <select>
-| <template>
-| content
-
-#data
-<select><option></option><template>
-#errors
-no doctype
-eof in template
-eof in select
-#document
-| <html>
-| <head>
-| <body>
-| <select>
-| <option>
-| <template>
-| content
-
-#data
-<select><option></option><template><option>
-#errors
-no doctype
-eof in template
-eof in select
-#document
-| <html>
-| <head>
-| <body>
-| <select>
-| <option>
-| <template>
-| content
-| <option>
-
-#data
-<table><thead><template><td></template></table>
-#errors
- * (1,8) missing DOCTYPE
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <thead>
-| <template>
-| content
-| <td>
-
-#data
-<table><template><thead></template></table>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <template>
-| content
-| <thead>
-
-#data
-<body><table><template><td></tr><div></template></table>
-#errors
-no doctype
-bad </tr>
-missing </div>
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <template>
-| content
-| <td>
-| <div>
-
-#data
-<table><template><thead></template></thead></table>
-#errors
-no doctype
-bad /thead after /template
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <template>
-| content
-| <thead>
-
-#data
-<table><thead><template><tr></template></table>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <thead>
-| <template>
-| content
-| <tr>
-
-#data
-<table><template><tr></template></table>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <template>
-| content
-| <tr>
-
-#data
-<table><tr><template><td>
-#errors
-no doctype
-eof in template
-eof in table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <template>
-| content
-| <td>
-
-#data
-<table><template><tr><template><td></template></tr></template></table>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <template>
-| content
-| <tr>
-| <template>
-| content
-| <td>
-
-#data
-<table><template><tr><template><td></td></template></tr></template></table>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <template>
-| content
-| <tr>
-| <template>
-| content
-| <td>
-
-#data
-<table><template><td></template>
-#errors
-no doctype
-eof in table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <template>
-| content
-| <td>
-
-#data
-<body><template><td></td></template>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <td>
-
-#data
-<body><template><template><tr></tr></template><td></td></template>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <template>
-| content
-| <tr>
-| <td>
-
-#data
-<table><colgroup><template><col>
-#errors
-no doctype
-eof in template
-eof in table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <colgroup>
-| <template>
-| content
-| <col>
-
-#data
-<frameset><template><frame></frame></template></frameset>
-#errors
- * (1,11) missing DOCTYPE
- * (1,21) unexpected start tag token
- * (1,36) unexpected end tag token
- * (1,47) unexpected end tag token
-#document
-| <html>
-| <head>
-| <frameset>
-| <frame>
-
-#data
-<template><frame></frame></frameset><frame></frame></template>
-#errors
- * (1,11) missing DOCTYPE
- * (1,18) unexpected start tag
- * (1,26) unexpected end tag
- * (1,37) unexpected end tag
- * (1,44) unexpected start tag
- * (1,52) unexpected end tag
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <body>
-
-#data
-<template><div><frameset><span></span></div><span></span></template>
-#errors
-no doctype
-bad frameset
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <div>
-| <span>
-| <span>
-| <body>
-
-#data
-<body><template><div><frameset><span></span></div><span></span></template></body>
-#errors
-no doctype
-bad frameset
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <div>
-| <span>
-| <span>
-
-#data
-<body><template><script>var i = 1;</script><td></td></template>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <script>
-| "var i = 1;"
-| <td>
-
-#data
-<body><template><tr><div></div></tr></template>
-#errors
-no doctype
-foster-parented div
-foster-parented /div
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <tr>
-| <div>
-
-#data
-<body><template><tr></tr><td></td></template>
-#errors
-no doctype
-unexpected <td>
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <tr>
-| <tr>
-| <td>
-
-#data
-<body><template><td></td></tr><td></td></template>
-#errors
-no doctype
-bad </tr>
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <td>
-| <td>
-
-#data
-<body><template><td></td><tbody><td></td></template>
-#errors
-no doctype
-bad <tbody>
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <td>
-| <td>
-
-#data
-<body><template><td></td><caption></caption><td></td></template>
-#errors
- * (1,7) missing DOCTYPE
- * (1,35) unexpected start tag in table row
- * (1,45) unexpected end tag in table row
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <td>
-| <td>
-
-#data
-<body><template><td></td><colgroup></caption><td></td></template>
-#errors
- * (1,7) missing DOCTYPE
- * (1,36) unexpected start tag in table row
- * (1,46) unexpected end tag in table row
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <td>
-| <td>
-
-#data
-<body><template><td></td></table><td></td></template>
-#errors
-no doctype
-bad </table>
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <td>
-| <td>
-
-#data
-<body><template><tr></tr><tbody><tr></tr></template>
-#errors
-no doctype
-bad <tbody>
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <tr>
-| <tr>
-
-#data
-<body><template><tr></tr><caption><tr></tr></template>
-#errors
-no doctype
-bad <caption>
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <tr>
-| <tr>
-
-#data
-<body><template><tr></tr></table><tr></tr></template>
-#errors
-no doctype
-bad </table>
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <tr>
-| <tr>
-
-#data
-<body><template><thead></thead><caption></caption><tbody></tbody></template>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <thead>
-| <caption>
-| <tbody>
-
-#data
-<body><template><thead></thead></table><tbody></tbody></template></body>
-#errors
-no doctype
-bad </table>
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <thead>
-| <tbody>
-
-#data
-<body><template><div><tr></tr></div></template>
-#errors
-no doctype
-bad tr
-bad /tr
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <div>
-
-#data
-<body><template><em>Hello</em></template>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <em>
-| "Hello"
-
-#data
-<body><template><!--comment--></template>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <!-- comment -->
-
-#data
-<body><template><style></style><td></td></template>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <style>
-| <td>
-
-#data
-<body><template><meta><td></td></template>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <meta>
-| <td>
-
-#data
-<body><template><link><td></td></template>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <link>
-| <td>
-
-#data
-<body><template><template><tr></tr></template><td></td></template>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <template>
-| content
-| <tr>
-| <td>
-
-#data
-<body><table><colgroup><template><col></col></template></colgroup></table></body>
-#errors
-no doctype
-bad /col
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <colgroup>
-| <template>
-| content
-| <col>
-
-#data
-<body a=b><template><div></div><body c=d><div></div></body></template></body>
-#errors
-no doctype
-bad <body>
-bad </body>
-#document
-| <html>
-| <head>
-| <body>
-| a="b"
-| <template>
-| content
-| <div>
-| <div>
-
-#data
-<html a=b><template><div><html b=c><span></template>
-#errors
-no doctype
-bad <html>
-missing end tags in template
-#document
-| <html>
-| a="b"
-| <head>
-| <template>
-| content
-| <div>
-| <span>
-| <body>
-
-#data
-<html a=b><template><col></col><html b=c><col></col></template>
-#errors
-no doctype
-bad /col
-bad html
-bad /col
-#document
-| <html>
-| a="b"
-| <head>
-| <template>
-| content
-| <col>
-| <col>
-| <body>
-
-#data
-<html a=b><template><frame></frame><html b=c><frame></frame></template>
-#errors
-no doctype
-bad frame
-bad /frame
-bad html
-bad frame
-bad /frame
-#document
-| <html>
-| a="b"
-| <head>
-| <template>
-| content
-| <body>
-
-#data
-<body><template><tr></tr><template></template><td></td></template>
-#errors
-no doctype
-unexpected <td>
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <tr>
-| <template>
-| content
-| <tr>
-| <td>
-
-#data
-<body><template><thead></thead><template><tr></tr></template><tr></tr><tfoot></tfoot></template>
-#errors
-no doctype
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <thead>
-| <template>
-| content
-| <tr>
-| <tbody>
-| <tr>
-| <tfoot>
-
-#data
-<body><template><template><b><template></template></template>text</template>
-#errors
-no doctype
-missing </b>
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <template>
-| content
-| <b>
-| <template>
-| content
-| "text"
-
-#data
-<body><template><col><colgroup>
-#errors
-no doctype
-bad colgroup
-eof in template
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <col>
-
-#data
-<body><template><col></colgroup>
-#errors
-no doctype
-bogus /colgroup
-eof in template
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <col>
-
-#data
-<body><template><col><colgroup></template></body>
-#errors
-no doctype
-bad colgroup
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <col>
-
-#data
-<body><template><col><div>
-#errors
- * (1,7) missing DOCTYPE
- * (1,27) unexpected token
- * (1,27) unexpected end of file in template
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <col>
-
-#data
-<body><template><col></div>
-#errors
-no doctype
-bad /div
-eof in template
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <col>
-
-#data
-<body><template><col>Hello
-#errors
-no doctype
-unexpected text
-eof in template
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <col>
-
-#data
-<body><template><i><menu>Foo</i>
-#errors
-no doctype
-mising /menu
-eof in template
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <i>
-| <menu>
-| <i>
-| "Foo"
-
-#data
-<body><template></div><div>Foo</div><template></template><tr></tr>
-#errors
-no doctype
-bogus /div
-bogus tr
-bogus /tr
-eof in template
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-| <div>
-| "Foo"
-| <template>
-| content
-
-#data
-<body><div><template></div><tr><td>Foo</td></tr></template>
-#errors
- * (1,7) missing DOCTYPE
- * (1,28) unexpected token in template
- * (1,60) unexpected end of file
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <template>
-| content
-| <tr>
-| <td>
-| "Foo"
-
-#data
-<template></figcaption><sub><table></table>
-#errors
-no doctype
-bad /figcaption
-eof in template
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <sub>
-| <table>
-| <body>
-
-#data
-<template><template>
-#errors
-no doctype
-eof in template
-eof in template
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <template>
-| content
-| <body>
-
-#data
-<template><div>
-#errors
-no doctype
-eof in template
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <div>
-| <body>
-
-#data
-<template><template><div>
-#errors
-no doctype
-eof in template
-eof in template
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <template>
-| content
-| <div>
-| <body>
-
-#data
-<template><template><table>
-#errors
-no doctype
-eof in template
-eof in template
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <template>
-| content
-| <table>
-| <body>
-
-#data
-<template><template><tbody>
-#errors
-no doctype
-eof in template
-eof in template
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <template>
-| content
-| <tbody>
-| <body>
-
-#data
-<template><template><tr>
-#errors
-no doctype
-eof in template
-eof in template
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <template>
-| content
-| <tr>
-| <body>
-
-#data
-<template><template><td>
-#errors
-no doctype
-eof in template
-eof in template
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <template>
-| content
-| <td>
-| <body>
-
-#data
-<template><template><caption>
-#errors
-no doctype
-eof in template
-eof in template
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <template>
-| content
-| <caption>
-| <body>
-
-#data
-<template><template><colgroup>
-#errors
-no doctype
-eof in template
-eof in template
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <template>
-| content
-| <colgroup>
-| <body>
-
-#data
-<template><template><col>
-#errors
-no doctype
-eof in template
-eof in template
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <template>
-| content
-| <col>
-| <body>
-
-#data
-<template><template><tbody><select>
-#errors
- * (1,11) missing DOCTYPE
- * (1,36) unexpected token in table - foster parenting
- * (1,36) unexpected end of file in template
- * (1,36) unexpected end of file in template
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <template>
-| content
-| <tbody>
-| <select>
-| <body>
-
-#data
-<template><template><table>Foo
-#errors
-no doctype
-foster-parenting text F
-foster-parenting text o
-foster-parenting text o
-eof
-eof
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <template>
-| content
-| "Foo"
-| <table>
-| <body>
-
-#data
-<template><template><frame>
-#errors
-no doctype
-bad tag
-eof
-eof
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <template>
-| content
-| <body>
-
-#data
-<template><template><script>var i
-#errors
-no doctype
-eof in script
-eof in template
-eof in template
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <template>
-| content
-| <script>
-| "var i"
-| <body>
-
-#data
-<template><template><style>var i
-#errors
-no doctype
-eof in style
-eof in template
-eof in template
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <template>
-| content
-| <style>
-| "var i"
-| <body>
-
-#data
-<template><table></template><body><span>Foo
-#errors
-no doctype
-missing /table
-bad eof
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <table>
-| <body>
-| <span>
-| "Foo"
-
-#data
-<template><td></template><body><span>Foo
-#errors
-no doctype
-bad eof
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <td>
-| <body>
-| <span>
-| "Foo"
-
-#data
-<template><object></template><body><span>Foo
-#errors
-no doctype
-missing /object
-bad eof
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <object>
-| <body>
-| <span>
-| "Foo"
-
-#data
-<template><svg><template>
-#errors
-no doctype
-eof in template
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <svg svg>
-| <svg template>
-| <body>
-
-#data
-<template><svg><foo><template><foreignObject><div></template><div>
-#errors
-no doctype
-ugly template closure
-bad eof
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <svg svg>
-| <svg foo>
-| <svg template>
-| <svg foreignObject>
-| <div>
-| <body>
-| <div>
-
-#data
-<dummy><template><span></dummy>
-#errors
-no doctype
-bad end tag </dummy>
-eof in template
-eof in dummy
-#document
-| <html>
-| <head>
-| <body>
-| <dummy>
-| <template>
-| content
-| <span>
-
-#data
-<body><table><tr><td><select><template>Foo</template><caption>A</table>
-#errors
-no doctype
-(1,62): unexpected-caption-in-select-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <select>
-| <template>
-| content
-| "Foo"
-| <caption>
-| "A"
-
-#data
-<body></body><template>
-#errors
-no doctype
-(1,23): template-after-body
-(1,24): eof-in-template
-#document
-| <html>
-| <head>
-| <body>
-| <template>
-| content
-
-#data
-<head></head><template>
-#errors
-no doctype
-(1,23): template-after-head
-(1,24): eof-in-template
-#document
-| <html>
-| <head>
-| <template>
-| content
-| <body>
-
-#data
-<head></head><template>Foo</template>
-#errors
-no doctype
-(1,23): template-after-head
-#document
-| <html>
-| <head>
-| <template>
-| content
-| "Foo"
-| <body>
-
-#data
-<!DOCTYPE HTML><dummy><table><template><table><template><table><script>
-#errors
-eof script
-eof template
-eof template
-eof table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <dummy>
-| <table>
-| <template>
-| content
-| <table>
-| <template>
-| content
-| <table>
-| <script>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests1.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests1.dat
deleted file mode 100644
index d6726e305ce..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests1.dat
+++ /dev/null
@@ -1,1959 +0,0 @@
-#data
-Test
-#errors
-(1,0): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "Test"
-
-#data
-<p>One<p>Two
-#errors
-(1,3): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| "One"
-| <p>
-| "Two"
-
-#data
-Line1<br>Line2<br>Line3<br>Line4
-#errors
-(1,0): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "Line1"
-| <br>
-| "Line2"
-| <br>
-| "Line3"
-| <br>
-| "Line4"
-
-#data
-<html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<head>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<body>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<html><head>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<html><head></head>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<html><head></head><body>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<html><head></head><body></body>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<html><head><body></body></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<html><head></body></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<html><head><body></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<html><body></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<body></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<head></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-</head>
-#errors
-(1,7): expected-doctype-but-got-end-tag
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-</body>
-#errors
-(1,7): expected-doctype-but-got-end-tag element.
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-</html>
-#errors
-(1,7): expected-doctype-but-got-end-tag element.
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<b><table><td><i></table>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,14): unexpected-cell-in-table-body
-(1,25): unexpected-cell-end-tag
-(1,25): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <i>
-
-#data
-<b><table><td></b><i></table>X
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,14): unexpected-cell-in-table-body
-(1,18): unexpected-end-tag
-(1,29): unexpected-cell-end-tag
-(1,30): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <i>
-| "X"
-
-#data
-<h1>Hello<h2>World
-#errors
-(1,4): expected-doctype-but-got-start-tag
-(1,13): unexpected-start-tag
-(1,18): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <h1>
-| "Hello"
-| <h2>
-| "World"
-
-#data
-<a><p>X<a>Y</a>Z</p></a>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,10): unexpected-start-tag-implies-end-tag
-(1,10): adoption-agency-1.3
-(1,24): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| <p>
-| <a>
-| "X"
-| <a>
-| "Y"
-| "Z"
-
-#data
-<b><button>foo</b>bar
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,18): adoption-agency-1.3
-(1,21): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| <button>
-| <b>
-| "foo"
-| "bar"
-
-#data
-<!DOCTYPE html><span><button>foo</span>bar
-#errors
-(1,39): unexpected-end-tag
-(1,42): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <span>
-| <button>
-| "foobar"
-
-#data
-<p><b><div><marquee></p></b></div>X
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,11): unexpected-end-tag
-(1,24): unexpected-end-tag
-(1,28): unexpected-end-tag
-(1,34): end-tag-too-early
-(1,35): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <b>
-| <div>
-| <b>
-| <marquee>
-| <p>
-| "X"
-
-#data
-<script><div></script></div><title><p></title><p><p>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,28): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <script>
-| "<div>"
-| <title>
-| "<p>"
-| <body>
-| <p>
-| <p>
-
-#data
-<!--><div>--<!-->
-#errors
-(1,5): incorrect-comment
-(1,10): expected-doctype-but-got-start-tag
-(1,17): incorrect-comment
-(1,17): expected-closing-tag-but-got-eof
-#document
-| <!-- -->
-| <html>
-| <head>
-| <body>
-| <div>
-| "--"
-| <!-- -->
-
-#data
-<p><hr></p>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,11): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <hr>
-| <p>
-
-#data
-<select><b><option><select><option></b></select>X
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,11): unexpected-start-tag-in-select
-(1,27): unexpected-select-in-select
-(1,39): unexpected-end-tag
-(1,48): unexpected-end-tag
-(1,49): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <select>
-| <option>
-| <option>
-| "X"
-
-#data
-<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,14): unexpected-cell-in-table-body
-(1,35): unexpected-start-tag-implies-end-tag
-(1,40): unexpected-cell-end-tag
-(1,43): unexpected-start-tag-implies-table-voodoo
-(1,43): unexpected-start-tag-implies-end-tag
-(1,43): unexpected-end-tag
-(1,63): unexpected-start-tag-implies-end-tag
-(1,64): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| <a>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <a>
-| <table>
-| <a>
-| <a>
-| <b>
-| "X"
-| "C"
-| <a>
-| "Y"
-
-#data
-<a X>0<b>1<a Y>2
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,15): unexpected-start-tag-implies-end-tag
-(1,15): adoption-agency-1.3
-(1,16): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| x=""
-| "0"
-| <b>
-| "1"
-| <b>
-| <a>
-| y=""
-| "2"
-
-#data
-<!-----><font><div>hello<table>excite!<b>me!<th><i>please!</tr><!--X-->
-#errors
-(1,7): unexpected-dash-after-double-dash-in-comment
-(1,14): expected-doctype-but-got-start-tag
-(1,41): unexpected-start-tag-implies-table-voodoo
-(1,48): foster-parenting-character-in-table
-(1,48): foster-parenting-character-in-table
-(1,48): foster-parenting-character-in-table
-(1,48): foster-parenting-character-in-table
-(1,48): foster-parenting-character-in-table
-(1,48): foster-parenting-character-in-table
-(1,48): foster-parenting-character-in-table
-(1,48): foster-parenting-character-in-table
-(1,48): foster-parenting-character-in-table
-(1,48): foster-parenting-character-in-table
-(1,48): unexpected-cell-in-table-body
-(1,63): unexpected-cell-end-tag
-(1,71): eof-in-table
-#document
-| <!-- - -->
-| <html>
-| <head>
-| <body>
-| <font>
-| <div>
-| "helloexcite!"
-| <b>
-| "me!"
-| <table>
-| <tbody>
-| <tr>
-| <th>
-| <i>
-| "please!"
-| <!-- X -->
-
-#data
-<!DOCTYPE html><li>hello<li>world<ul>how<li>do</ul>you</body><!--do-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <li>
-| "hello"
-| <li>
-| "world"
-| <ul>
-| "how"
-| <li>
-| "do"
-| "you"
-| <!-- do -->
-
-#data
-<!DOCTYPE html>A<option>B<optgroup>C<select>D</option>E
-#errors
-(1,54): unexpected-end-tag-in-select
-(1,55): eof-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "A"
-| <option>
-| "B"
-| <optgroup>
-| "C"
-| <select>
-| "DE"
-
-#data
-<
-#errors
-(1,1): expected-tag-name
-(1,1): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "<"
-
-#data
-<#
-#errors
-(1,1): expected-tag-name
-(1,1): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "<#"
-
-#data
-</
-#errors
-(1,2): expected-closing-tag-but-got-eof
-(1,2): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "</"
-
-#data
-</#
-#errors
-(1,2): expected-closing-tag-but-got-char
-(1,3): expected-doctype-but-got-eof
-#document
-| <!-- # -->
-| <html>
-| <head>
-| <body>
-
-#data
-<?
-#errors
-(1,1): expected-tag-name-but-got-question-mark
-(1,2): expected-doctype-but-got-eof
-#document
-| <!-- ? -->
-| <html>
-| <head>
-| <body>
-
-#data
-<?#
-#errors
-(1,1): expected-tag-name-but-got-question-mark
-(1,3): expected-doctype-but-got-eof
-#document
-| <!-- ?# -->
-| <html>
-| <head>
-| <body>
-
-#data
-<!
-#errors
-(1,2): expected-dashes-or-doctype
-(1,2): expected-doctype-but-got-eof
-#document
-| <!-- -->
-| <html>
-| <head>
-| <body>
-
-#data
-<!#
-#errors
-(1,2): expected-dashes-or-doctype
-(1,3): expected-doctype-but-got-eof
-#document
-| <!-- # -->
-| <html>
-| <head>
-| <body>
-
-#data
-<?COMMENT?>
-#errors
-(1,1): expected-tag-name-but-got-question-mark
-(1,11): expected-doctype-but-got-eof
-#document
-| <!-- ?COMMENT? -->
-| <html>
-| <head>
-| <body>
-
-#data
-<!COMMENT>
-#errors
-(1,2): expected-dashes-or-doctype
-(1,10): expected-doctype-but-got-eof
-#document
-| <!-- COMMENT -->
-| <html>
-| <head>
-| <body>
-
-#data
-</ COMMENT >
-#errors
-(1,2): expected-closing-tag-but-got-char
-(1,12): expected-doctype-but-got-eof
-#document
-| <!-- COMMENT -->
-| <html>
-| <head>
-| <body>
-
-#data
-<?COM--MENT?>
-#errors
-(1,1): expected-tag-name-but-got-question-mark
-(1,13): expected-doctype-but-got-eof
-#document
-| <!-- ?COM--MENT? -->
-| <html>
-| <head>
-| <body>
-
-#data
-<!COM--MENT>
-#errors
-(1,2): expected-dashes-or-doctype
-(1,12): expected-doctype-but-got-eof
-#document
-| <!-- COM--MENT -->
-| <html>
-| <head>
-| <body>
-
-#data
-</ COM--MENT >
-#errors
-(1,2): expected-closing-tag-but-got-char
-(1,14): expected-doctype-but-got-eof
-#document
-| <!-- COM--MENT -->
-| <html>
-| <head>
-| <body>
-
-#data
-<!DOCTYPE html><style> EOF
-#errors
-(1,26): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <style>
-| " EOF"
-| <body>
-
-#data
-<!DOCTYPE html><script> <!-- </script> --> </script> EOF
-#errors
-(1,52): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| " <!-- "
-| " "
-| <body>
-| "--> EOF"
-
-#data
-<b><p></b>TEST
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,10): adoption-agency-1.3
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| <p>
-| <b>
-| "TEST"
-
-#data
-<p id=a><b><p id=b></b>TEST
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,19): unexpected-end-tag
-(1,23): adoption-agency-1.2
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| id="a"
-| <b>
-| <p>
-| id="b"
-| "TEST"
-
-#data
-<b id=a><p><b id=b></p></b>TEST
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,23): unexpected-end-tag
-(1,27): adoption-agency-1.2
-(1,31): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| id="a"
-| <p>
-| <b>
-| id="b"
-| "TEST"
-
-#data
-<!DOCTYPE html><title>U-test</title><body><div><p>Test<u></p></div></body>
-#errors
-(1,61): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <title>
-| "U-test"
-| <body>
-| <div>
-| <p>
-| "Test"
-| <u>
-
-#data
-<!DOCTYPE html><font><table></font></table></font>
-#errors
-(1,35): unexpected-end-tag-implies-table-voodoo
-(1,35): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <font>
-| <table>
-
-#data
-<font><p>hello<b>cruel</font>world
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,29): adoption-agency-1.3
-(1,29): adoption-agency-1.3
-(1,34): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <font>
-| <p>
-| <font>
-| "hello"
-| <b>
-| "cruel"
-| <b>
-| "world"
-
-#data
-<b>Test</i>Test
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,11): unexpected-end-tag
-(1,15): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| "TestTest"
-
-#data
-<b>A<cite>B<div>C
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,17): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| "A"
-| <cite>
-| "B"
-| <div>
-| "C"
-
-#data
-<b>A<cite>B<div>C</cite>D
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,24): unexpected-end-tag
-(1,25): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| "A"
-| <cite>
-| "B"
-| <div>
-| "CD"
-
-#data
-<b>A<cite>B<div>C</b>D
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,21): adoption-agency-1.3
-(1,22): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| "A"
-| <cite>
-| "B"
-| <div>
-| <b>
-| "C"
-| "D"
-
-#data
-
-#errors
-(1,0): expected-doctype-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<DIV>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,5): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-
-#data
-<DIV> abc
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,9): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| " abc"
-
-#data
-<DIV> abc <B>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,13): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| " abc "
-| <b>
-
-#data
-<DIV> abc <B> def
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,17): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| " abc "
-| <b>
-| " def"
-
-#data
-<DIV> abc <B> def <I>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,21): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| " abc "
-| <b>
-| " def "
-| <i>
-
-#data
-<DIV> abc <B> def <I> ghi
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,25): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| " abc "
-| <b>
-| " def "
-| <i>
-| " ghi"
-
-#data
-<DIV> abc <B> def <I> ghi <P>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,29): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| " abc "
-| <b>
-| " def "
-| <i>
-| " ghi "
-| <p>
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,33): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| " abc "
-| <b>
-| " def "
-| <i>
-| " ghi "
-| <p>
-| " jkl"
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,38): adoption-agency-1.3
-(1,38): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| " abc "
-| <b>
-| " def "
-| <i>
-| " ghi "
-| <i>
-| <p>
-| <b>
-| " jkl "
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B> mno
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,38): adoption-agency-1.3
-(1,42): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| " abc "
-| <b>
-| " def "
-| <i>
-| " ghi "
-| <i>
-| <p>
-| <b>
-| " jkl "
-| " mno"
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,38): adoption-agency-1.3
-(1,47): adoption-agency-1.3
-(1,47): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| " abc "
-| <b>
-| " def "
-| <i>
-| " ghi "
-| <i>
-| <p>
-| <i>
-| <b>
-| " jkl "
-| " mno "
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,38): adoption-agency-1.3
-(1,47): adoption-agency-1.3
-(1,51): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| " abc "
-| <b>
-| " def "
-| <i>
-| " ghi "
-| <i>
-| <p>
-| <i>
-| <b>
-| " jkl "
-| " mno "
-| " pqr"
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,38): adoption-agency-1.3
-(1,47): adoption-agency-1.3
-(1,56): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| " abc "
-| <b>
-| " def "
-| <i>
-| " ghi "
-| <i>
-| <p>
-| <i>
-| <b>
-| " jkl "
-| " mno "
-| " pqr "
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> stu
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,38): adoption-agency-1.3
-(1,47): adoption-agency-1.3
-(1,60): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| " abc "
-| <b>
-| " def "
-| <i>
-| " ghi "
-| <i>
-| <p>
-| <i>
-| <b>
-| " jkl "
-| " mno "
-| " pqr "
-| " stu"
-
-#data
-<test attribute---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
-#errors
-(1,1040): expected-doctype-but-got-start-tag
-(1,1040): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <test>
-| attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=""
-
-#data
-<a href="blah">aba<table><a href="foo">br<tr><td></td></tr>x</table>aoe
-#errors
-(1,15): expected-doctype-but-got-start-tag
-(1,39): unexpected-start-tag-implies-table-voodoo
-(1,39): unexpected-start-tag-implies-end-tag
-(1,39): unexpected-end-tag
-(1,45): foster-parenting-character-in-table
-(1,45): foster-parenting-character-in-table
-(1,68): foster-parenting-character-in-table
-(1,71): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| href="blah"
-| "aba"
-| <a>
-| href="foo"
-| "br"
-| <a>
-| href="foo"
-| "x"
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <a>
-| href="foo"
-| "aoe"
-
-#data
-<a href="blah">aba<table><tr><td><a href="foo">br</td></tr>x</table>aoe
-#errors
-(1,15): expected-doctype-but-got-start-tag
-(1,54): unexpected-cell-end-tag
-(1,68): unexpected text in table
-(1,71): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| href="blah"
-| "abax"
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <a>
-| href="foo"
-| "br"
-| "aoe"
-
-#data
-<table><a href="blah">aba<tr><td><a href="foo">br</td></tr>x</table>aoe
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,22): unexpected-start-tag-implies-table-voodoo
-(1,29): foster-parenting-character-in-table
-(1,29): foster-parenting-character-in-table
-(1,29): foster-parenting-character-in-table
-(1,54): unexpected-cell-end-tag
-(1,68): foster-parenting-character-in-table
-(1,71): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| href="blah"
-| "aba"
-| <a>
-| href="blah"
-| "x"
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <a>
-| href="foo"
-| "br"
-| <a>
-| href="blah"
-| "aoe"
-
-#data
-<a href=a>aa<marquee>aa<a href=b>bb</marquee>aa
-#errors
-(1,10): expected-doctype-but-got-start-tag
-(1,45): end-tag-too-early
-(1,47): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| href="a"
-| "aa"
-| <marquee>
-| "aa"
-| <a>
-| href="b"
-| "bb"
-| "aa"
-
-#data
-<wbr><strike><code></strike><code><strike></code>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,28): adoption-agency-1.3
-(1,49): adoption-agency-1.3
-(1,49): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <wbr>
-| <strike>
-| <code>
-| <code>
-| <code>
-| <strike>
-
-#data
-<!DOCTYPE html><spacer>foo
-#errors
-(1,26): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <spacer>
-| "foo"
-
-#data
-<title><meta></title><link><title><meta></title>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <title>
-| "<meta>"
-| <link>
-| <title>
-| "<meta>"
-| <body>
-
-#data
-<style><!--</style><meta><script>--><link></script>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <style>
-| "<!--"
-| <meta>
-| <script>
-| "--><link>"
-| <body>
-
-#data
-<head><meta></head><link>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,25): unexpected-start-tag-out-of-my-head
-#document
-| <html>
-| <head>
-| <meta>
-| <link>
-| <body>
-
-#data
-<table><tr><tr><td><td><span><th><span>X</table>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,33): unexpected-cell-end-tag
-(1,48): unexpected-cell-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <tr>
-| <td>
-| <td>
-| <span>
-| <th>
-| <span>
-| "X"
-
-#data
-<body><body><base><link><meta><title><p></title><body><p></body>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,12): unexpected-start-tag
-(1,54): unexpected-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <base>
-| <link>
-| <meta>
-| <title>
-| "<p>"
-| <p>
-
-#data
-<textarea><p></textarea>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <textarea>
-| "<p>"
-
-#data
-<p><image></p>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,10): unexpected-start-tag-treated-as
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <img>
-
-#data
-<a><table><a></table><p><a><div><a>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,13): unexpected-start-tag-implies-table-voodoo
-(1,13): unexpected-start-tag-implies-end-tag
-(1,13): adoption-agency-1.3
-(1,27): unexpected-start-tag-implies-end-tag
-(1,27): adoption-agency-1.2
-(1,32): unexpected-end-tag
-(1,35): unexpected-start-tag-implies-end-tag
-(1,35): adoption-agency-1.2
-(1,35): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| <a>
-| <table>
-| <p>
-| <a>
-| <div>
-| <a>
-
-#data
-<head></p><meta><p>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,10): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <meta>
-| <body>
-| <p>
-
-#data
-<head></html><meta><p>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,19): expected-eof-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <meta>
-| <p>
-
-#data
-<b><table><td><i></table>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,14): unexpected-cell-in-table-body
-(1,25): unexpected-cell-end-tag
-(1,25): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <i>
-
-#data
-<b><table><td></b><i></table>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,14): unexpected-cell-in-table-body
-(1,18): unexpected-end-tag
-(1,29): unexpected-cell-end-tag
-(1,29): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <i>
-
-#data
-<h1><h2>
-#errors
-(1,4): expected-doctype-but-got-start-tag
-(1,8): unexpected-start-tag
-(1,8): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <h1>
-| <h2>
-
-#data
-<a><p><a></a></p></a>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,9): unexpected-start-tag-implies-end-tag
-(1,9): adoption-agency-1.3
-(1,21): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| <p>
-| <a>
-| <a>
-
-#data
-<b><button></b></button></b>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,15): adoption-agency-1.3
-(1,28): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| <button>
-| <b>
-
-#data
-<p><b><div><marquee></p></b></div>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,11): unexpected-end-tag
-(1,24): unexpected-end-tag
-(1,28): unexpected-end-tag
-(1,34): end-tag-too-early
-(1,34): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <b>
-| <div>
-| <b>
-| <marquee>
-| <p>
-
-#data
-<script></script></div><title></title><p><p>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,23): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <script>
-| <title>
-| <body>
-| <p>
-| <p>
-
-#data
-<p><hr></p>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,11): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <hr>
-| <p>
-
-#data
-<select><b><option><select><option></b></select>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,11): unexpected-start-tag-in-select
-(1,27): unexpected-select-in-select
-(1,39): unexpected-end-tag
-(1,48): unexpected-end-tag
-(1,48): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <select>
-| <option>
-| <option>
-
-#data
-<html><head><title></title><body></body></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <title>
-| <body>
-
-#data
-<a><table><td><a><table></table><a></tr><a></table><a>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,14): unexpected-cell-in-table-body
-(1,35): unexpected-start-tag-implies-end-tag
-(1,40): unexpected-cell-end-tag
-(1,43): unexpected-start-tag-implies-table-voodoo
-(1,43): unexpected-start-tag-implies-end-tag
-(1,43): unexpected-end-tag
-(1,54): unexpected-start-tag-implies-end-tag
-(1,54): adoption-agency-1.2
-(1,54): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| <a>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <a>
-| <table>
-| <a>
-| <a>
-
-#data
-<ul><li></li><div><li></div><li><li><div><li><address><li><b><em></b><li></ul>
-#errors
-(1,4): expected-doctype-but-got-start-tag
-(1,45): end-tag-too-early
-(1,58): end-tag-too-early
-(1,69): adoption-agency-1.3
-#document
-| <html>
-| <head>
-| <body>
-| <ul>
-| <li>
-| <div>
-| <li>
-| <li>
-| <li>
-| <div>
-| <li>
-| <address>
-| <li>
-| <b>
-| <em>
-| <li>
-
-#data
-<ul><li><ul></li><li>a</li></ul></li></ul>
-#errors
-(1,4): expected-doctype-but-got-start-tag
-(1,17): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ul>
-| <li>
-| <ul>
-| <li>
-| "a"
-
-#data
-<frameset><frame><frameset><frame></frameset><noframes></noframes></frameset>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <frameset>
-| <frame>
-| <frameset>
-| <frame>
-| <noframes>
-
-#data
-<h1><table><td><h3></table><h3></h1>
-#errors
-(1,4): expected-doctype-but-got-start-tag
-(1,15): unexpected-cell-in-table-body
-(1,27): unexpected-cell-end-tag
-(1,31): unexpected-start-tag
-(1,36): end-tag-too-early
-#document
-| <html>
-| <head>
-| <body>
-| <h1>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <h3>
-| <h3>
-
-#data
-<table><colgroup><col><colgroup><col><col><col><colgroup><col><col><thead><tr><td></table>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <colgroup>
-| <col>
-| <colgroup>
-| <col>
-| <col>
-| <col>
-| <colgroup>
-| <col>
-| <col>
-| <thead>
-| <tr>
-| <td>
-
-#data
-<table><col><tbody><col><tr><col><td><col></table><col>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,37): unexpected-cell-in-table-body
-(1,55): unexpected-start-tag-ignored
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <colgroup>
-| <col>
-| <tbody>
-| <colgroup>
-| <col>
-| <tbody>
-| <tr>
-| <colgroup>
-| <col>
-| <tbody>
-| <tr>
-| <td>
-| <colgroup>
-| <col>
-
-#data
-<table><colgroup><tbody><colgroup><tr><colgroup><td><colgroup></table><colgroup>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,52): unexpected-cell-in-table-body
-(1,80): unexpected-start-tag-ignored
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <colgroup>
-| <tbody>
-| <colgroup>
-| <tbody>
-| <tr>
-| <colgroup>
-| <tbody>
-| <tr>
-| <td>
-| <colgroup>
-
-#data
-</strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea>
-#errors
-(1,9): expected-doctype-but-got-end-tag
-(1,9): unexpected-end-tag-before-html
-(1,13): unexpected-end-tag-before-html
-(1,18): unexpected-end-tag-before-html
-(1,22): unexpected-end-tag-before-html
-(1,26): unexpected-end-tag-before-html
-(1,35): unexpected-end-tag-before-html
-(1,39): unexpected-end-tag-before-html
-(1,47): unexpected-end-tag-before-html
-(1,52): unexpected-end-tag-before-html
-(1,58): unexpected-end-tag-before-html
-(1,64): unexpected-end-tag-before-html
-(1,72): unexpected-end-tag-before-html
-(1,79): unexpected-end-tag-before-html
-(1,88): unexpected-end-tag-before-html
-(1,93): unexpected-end-tag-before-html
-(1,98): unexpected-end-tag-before-html
-(1,103): unexpected-end-tag-before-html
-(1,108): unexpected-end-tag-before-html
-(1,113): unexpected-end-tag-before-html
-(1,118): unexpected-end-tag-before-html
-(1,130): unexpected-end-tag-after-body
-(1,130): unexpected-end-tag-treated-as
-(1,134): unexpected-end-tag
-(1,140): unexpected-end-tag
-(1,148): unexpected-end-tag
-(1,155): unexpected-end-tag
-(1,163): unexpected-end-tag
-(1,172): unexpected-end-tag
-(1,180): unexpected-end-tag
-(1,185): unexpected-end-tag
-(1,190): unexpected-end-tag
-(1,195): unexpected-end-tag
-(1,203): unexpected-end-tag
-(1,210): unexpected-end-tag
-(1,217): unexpected-end-tag
-(1,225): unexpected-end-tag
-(1,230): unexpected-end-tag
-(1,238): unexpected-end-tag
-(1,244): unexpected-end-tag
-(1,251): unexpected-end-tag
-(1,258): unexpected-end-tag
-(1,269): unexpected-end-tag
-(1,279): unexpected-end-tag
-(1,287): unexpected-end-tag
-(1,296): unexpected-end-tag
-(1,300): unexpected-end-tag
-(1,305): unexpected-end-tag
-(1,310): unexpected-end-tag
-(1,320): unexpected-end-tag
-(1,331): unexpected-end-tag
-(1,339): unexpected-end-tag
-(1,347): unexpected-end-tag
-(1,355): unexpected-end-tag
-(1,365): end-tag-too-early
-(1,378): end-tag-too-early
-(1,387): end-tag-too-early
-(1,393): end-tag-too-early
-(1,399): end-tag-too-early
-(1,404): end-tag-too-early
-(1,415): end-tag-too-early
-(1,425): end-tag-too-early
-(1,432): end-tag-too-early
-(1,437): end-tag-too-early
-(1,442): end-tag-too-early
-(1,447): unexpected-end-tag
-(1,454): unexpected-end-tag
-(1,460): unexpected-end-tag
-(1,467): unexpected-end-tag
-(1,476): end-tag-too-early
-(1,486): end-tag-too-early
-(1,495): end-tag-too-early
-(1,513): expected-eof-but-got-end-tag
-(1,513): unexpected-end-tag
-(1,520): unexpected-end-tag
-(1,529): unexpected-end-tag
-(1,537): unexpected-end-tag
-(1,547): unexpected-end-tag
-(1,557): unexpected-end-tag
-(1,568): unexpected-end-tag
-(1,579): unexpected-end-tag
-(1,590): unexpected-end-tag
-(1,599): unexpected-end-tag
-(1,611): unexpected-end-tag
-(1,622): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <br>
-| <p>
-
-#data
-<table><tr></strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,20): unexpected-end-tag-implies-table-voodoo
-(1,20): unexpected-end-tag
-(1,24): unexpected-end-tag-implies-table-voodoo
-(1,24): unexpected-end-tag
-(1,29): unexpected-end-tag-implies-table-voodoo
-(1,29): unexpected-end-tag
-(1,33): unexpected-end-tag-implies-table-voodoo
-(1,33): unexpected-end-tag
-(1,37): unexpected-end-tag-implies-table-voodoo
-(1,37): unexpected-end-tag
-(1,46): unexpected-end-tag-implies-table-voodoo
-(1,46): unexpected-end-tag
-(1,50): unexpected-end-tag-implies-table-voodoo
-(1,50): unexpected-end-tag
-(1,58): unexpected-end-tag-implies-table-voodoo
-(1,58): unexpected-end-tag
-(1,63): unexpected-end-tag-implies-table-voodoo
-(1,63): unexpected-end-tag
-(1,69): unexpected-end-tag-implies-table-voodoo
-(1,69): end-tag-too-early
-(1,75): unexpected-end-tag-implies-table-voodoo
-(1,75): unexpected-end-tag
-(1,83): unexpected-end-tag-implies-table-voodoo
-(1,83): unexpected-end-tag
-(1,90): unexpected-end-tag-implies-table-voodoo
-(1,90): unexpected-end-tag
-(1,99): unexpected-end-tag-implies-table-voodoo
-(1,99): unexpected-end-tag
-(1,104): unexpected-end-tag-implies-table-voodoo
-(1,104): end-tag-too-early
-(1,109): unexpected-end-tag-implies-table-voodoo
-(1,109): end-tag-too-early
-(1,114): unexpected-end-tag-implies-table-voodoo
-(1,114): end-tag-too-early
-(1,119): unexpected-end-tag-implies-table-voodoo
-(1,119): end-tag-too-early
-(1,124): unexpected-end-tag-implies-table-voodoo
-(1,124): end-tag-too-early
-(1,129): unexpected-end-tag-implies-table-voodoo
-(1,129): end-tag-too-early
-(1,136): unexpected-end-tag-in-table-row
-(1,141): unexpected-end-tag-implies-table-voodoo
-(1,141): unexpected-end-tag-treated-as
-(1,145): unexpected-end-tag-implies-table-voodoo
-(1,145): unexpected-end-tag
-(1,151): unexpected-end-tag-implies-table-voodoo
-(1,151): unexpected-end-tag
-(1,159): unexpected-end-tag-implies-table-voodoo
-(1,159): unexpected-end-tag
-(1,166): unexpected-end-tag-implies-table-voodoo
-(1,166): unexpected-end-tag
-(1,174): unexpected-end-tag-implies-table-voodoo
-(1,174): unexpected-end-tag
-(1,183): unexpected-end-tag-implies-table-voodoo
-(1,183): unexpected-end-tag
-(1,196): unexpected-end-tag
-(1,201): unexpected-end-tag
-(1,206): unexpected-end-tag
-(1,214): unexpected-end-tag
-(1,221): unexpected-end-tag
-(1,228): unexpected-end-tag
-(1,236): unexpected-end-tag
-(1,241): unexpected-end-tag
-(1,249): unexpected-end-tag
-(1,255): unexpected-end-tag
-(1,262): unexpected-end-tag
-(1,269): unexpected-end-tag
-(1,280): unexpected-end-tag
-(1,290): unexpected-end-tag
-(1,298): unexpected-end-tag
-(1,307): unexpected-end-tag
-(1,311): unexpected-end-tag
-(1,316): unexpected-end-tag
-(1,321): unexpected-end-tag
-(1,331): unexpected-end-tag
-(1,342): unexpected-end-tag
-(1,350): unexpected-end-tag
-(1,358): unexpected-end-tag
-(1,366): unexpected-end-tag
-(1,376): end-tag-too-early
-(1,389): end-tag-too-early
-(1,398): end-tag-too-early
-(1,404): end-tag-too-early
-(1,410): end-tag-too-early
-(1,415): end-tag-too-early
-(1,426): end-tag-too-early
-(1,436): end-tag-too-early
-(1,443): end-tag-too-early
-(1,448): end-tag-too-early
-(1,453): end-tag-too-early
-(1,458): unexpected-end-tag
-(1,465): unexpected-end-tag
-(1,471): unexpected-end-tag
-(1,478): unexpected-end-tag
-(1,487): end-tag-too-early
-(1,497): end-tag-too-early
-(1,506): end-tag-too-early
-(1,524): expected-eof-but-got-end-tag
-(1,524): unexpected-end-tag
-(1,531): unexpected-end-tag
-(1,540): unexpected-end-tag
-(1,548): unexpected-end-tag
-(1,558): unexpected-end-tag
-(1,568): unexpected-end-tag
-(1,579): unexpected-end-tag
-(1,590): unexpected-end-tag
-(1,601): unexpected-end-tag
-(1,610): unexpected-end-tag
-(1,622): unexpected-end-tag
-(1,633): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <br>
-| <table>
-| <tbody>
-| <tr>
-| <p>
-
-#data
-<frameset>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-(1,10): eof-in-frameset
-#document
-| <html>
-| <head>
-| <frameset>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests10.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests10.dat
deleted file mode 100644
index 3e9a9f19b9c..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests10.dat
+++ /dev/null
@@ -1,847 +0,0 @@
-#data
-<!DOCTYPE html><svg></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-
-#data
-<!DOCTYPE html><svg></svg><![CDATA[a]]>
-#errors
-(1,28) expected-dashes-or-doctype
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <!-- [CDATA[a]] -->
-
-#data
-<!DOCTYPE html><body><svg></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-
-#data
-<!DOCTYPE html><body><select><svg></svg></select>
-#errors
-(1,34) unexpected-start-tag-in-select
-(1,40) unexpected-end-tag-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-
-#data
-<!DOCTYPE html><body><select><option><svg></svg></option></select>
-#errors
-(1,42) unexpected-start-tag-in-select
-(1,48) unexpected-end-tag-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| <option>
-
-#data
-<!DOCTYPE html><body><table><svg></svg></table>
-#errors
-(1,33) foster-parenting-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <table>
-
-#data
-<!DOCTYPE html><body><table><svg><g>foo</g></svg></table>
-#errors
-(1,33) foster-parenting-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg g>
-| "foo"
-| <table>
-
-#data
-<!DOCTYPE html><body><table><svg><g>foo</g><g>bar</g></svg></table>
-#errors
-(1,33) foster-parenting-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg g>
-| "foo"
-| <svg g>
-| "bar"
-| <table>
-
-#data
-<!DOCTYPE html><body><table><tbody><svg><g>foo</g><g>bar</g></svg></tbody></table>
-#errors
-(1,40) foster-parenting-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg g>
-| "foo"
-| <svg g>
-| "bar"
-| <table>
-| <tbody>
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><svg><g>foo</g><g>bar</g></svg></tr></tbody></table>
-#errors
-(1,44) foster-parenting-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg g>
-| "foo"
-| <svg g>
-| "bar"
-| <table>
-| <tbody>
-| <tr>
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <svg svg>
-| <svg g>
-| "foo"
-| <svg g>
-| "bar"
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</td></tr></tbody></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <svg svg>
-| <svg g>
-| "foo"
-| <svg g>
-| "bar"
-| <p>
-| "baz"
-
-#data
-<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</caption></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-| <svg svg>
-| <svg g>
-| "foo"
-| <svg g>
-| "bar"
-| <p>
-| "baz"
-
-#data
-<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
-#errors
-(1,65) unexpected-html-element-in-foreign-content
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-| <svg svg>
-| <svg g>
-| "foo"
-| <svg g>
-| "bar"
-| <p>
-| "baz"
-| <p>
-| "quux"
-
-#data
-<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g>baz</table><p>quux
-#errors
-(1,73) unexpected-end-tag
-(1,73) expected-one-end-tag-but-got-another
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-| <svg svg>
-| <svg g>
-| "foo"
-| <svg g>
-| "bar"
-| "baz"
-| <p>
-| "quux"
-
-#data
-<!DOCTYPE html><body><table><colgroup><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
-#errors
-(1,43) foster-parenting-start-tag svg
-(1,66) unexpected HTML-like start tag token in foreign content
-(1,66) foster-parenting-start-tag
-(1,67) foster-parenting-character
-(1,68) foster-parenting-character
-(1,69) foster-parenting-character
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg g>
-| "foo"
-| <svg g>
-| "bar"
-| <p>
-| "baz"
-| <table>
-| <colgroup>
-| <p>
-| "quux"
-
-#data
-<!DOCTYPE html><body><table><tr><td><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
-#errors
-(1,49) unexpected-start-tag-in-select
-(1,52) unexpected-start-tag-in-select
-(1,59) unexpected-end-tag-in-select
-(1,62) unexpected-start-tag-in-select
-(1,69) unexpected-end-tag-in-select
-(1,72) unexpected-start-tag-in-select
-(1,83) unexpected-table-element-end-tag-in-select-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <select>
-| "foobarbaz"
-| <p>
-| "quux"
-
-#data
-<!DOCTYPE html><body><table><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
-#errors
-(1,36) unexpected-start-tag-implies-table-voodoo
-(1,41) unexpected-start-tag-in-select
-(1,44) unexpected-start-tag-in-select
-(1,51) unexpected-end-tag-in-select
-(1,54) unexpected-start-tag-in-select
-(1,61) unexpected-end-tag-in-select
-(1,64) unexpected-start-tag-in-select
-(1,75) unexpected-table-element-end-tag-in-select-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| "foobarbaz"
-| <table>
-| <p>
-| "quux"
-
-#data
-<!DOCTYPE html><body></body></html><svg><g>foo</g><g>bar</g><p>baz
-#errors
-(1,40) expected-eof-but-got-start-tag
-(1,63) unexpected-html-element-in-foreign-content
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg g>
-| "foo"
-| <svg g>
-| "bar"
-| <p>
-| "baz"
-
-#data
-<!DOCTYPE html><body></body><svg><g>foo</g><g>bar</g><p>baz
-#errors
-(1,33) unexpected-start-tag-after-body
-(1,56) unexpected-html-element-in-foreign-content
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg g>
-| "foo"
-| <svg g>
-| "bar"
-| <p>
-| "baz"
-
-#data
-<!DOCTYPE html><frameset><svg><g></g><g></g><p><span>
-#errors
-(1,30) unexpected-start-tag-in-frameset
-(1,33) unexpected-start-tag-in-frameset
-(1,37) unexpected-end-tag-in-frameset
-(1,40) unexpected-start-tag-in-frameset
-(1,44) unexpected-end-tag-in-frameset
-(1,47) unexpected-start-tag-in-frameset
-(1,53) unexpected-start-tag-in-frameset
-(1,53) eof-in-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-
-#data
-<!DOCTYPE html><frameset></frameset><svg><g></g><g></g><p><span>
-#errors
-(1,41) unexpected-start-tag-after-frameset
-(1,44) unexpected-start-tag-after-frameset
-(1,48) unexpected-end-tag-after-frameset
-(1,51) unexpected-start-tag-after-frameset
-(1,55) unexpected-end-tag-after-frameset
-(1,58) unexpected-start-tag-after-frameset
-(1,64) unexpected-start-tag-after-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-
-#data
-<!DOCTYPE html><body xlink:href=foo><svg xlink:href=foo></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| xlink:href="foo"
-| <svg svg>
-| xlink href="foo"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo></g></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| xlink:href="foo"
-| xml:lang="en"
-| <svg svg>
-| <svg g>
-| xlink href="foo"
-| xml lang="en"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo /></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| xlink:href="foo"
-| xml:lang="en"
-| <svg svg>
-| <svg g>
-| xlink href="foo"
-| xml lang="en"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo />bar</svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| xlink:href="foo"
-| xml:lang="en"
-| <svg svg>
-| <svg g>
-| xlink href="foo"
-| xml lang="en"
-| "bar"
-
-#data
-<svg></path>
-#errors
-(1,5) expected-doctype-but-got-start-tag
-(1,12) unexpected-end-tag
-(1,12) unexpected-end-tag
-(1,12) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-
-#data
-<div><svg></div>a
-#errors
-(1,5) expected-doctype-but-got-start-tag
-(1,16) unexpected-end-tag
-(1,16) end-tag-too-early
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <svg svg>
-| "a"
-
-#data
-<div><svg><path></div>a
-#errors
-(1,5) expected-doctype-but-got-start-tag
-(1,22) unexpected-end-tag
-(1,22) end-tag-too-early
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <svg svg>
-| <svg path>
-| "a"
-
-#data
-<div><svg><path></svg><path>
-#errors
-(1,5) expected-doctype-but-got-start-tag
-(1,22) unexpected-end-tag
-(1,28) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <svg svg>
-| <svg path>
-| <path>
-
-#data
-<div><svg><path><foreignObject><math></div>a
-#errors
-(1,5) expected-doctype-but-got-start-tag
-(1,43) unexpected-end-tag
-(1,43) end-tag-too-early
-(1,44) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <svg svg>
-| <svg path>
-| <svg foreignObject>
-| <math math>
-| "a"
-
-#data
-<div><svg><path><foreignObject><p></div>a
-#errors
-(1,5) expected-doctype-but-got-start-tag
-(1,40) end-tag-too-early
-(1,41) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <svg svg>
-| <svg path>
-| <svg foreignObject>
-| <p>
-| "a"
-
-#data
-<!DOCTYPE html><svg><desc><div><svg><ul>a
-#errors
-(1,40) unexpected-html-element-in-foreign-content
-(1,41) expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg desc>
-| <div>
-| <svg svg>
-| <ul>
-| "a"
-
-#data
-<!DOCTYPE html><svg><desc><svg><ul>a
-#errors
-(1,35) unexpected-html-element-in-foreign-content
-(1,36) expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg desc>
-| <svg svg>
-| <ul>
-| "a"
-
-#data
-<!DOCTYPE html><p><svg><desc><p>
-#errors
-(1,32) expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <svg svg>
-| <svg desc>
-| <p>
-
-#data
-<!DOCTYPE html><p><svg><title><p>
-#errors
-(1,33) expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <svg svg>
-| <svg title>
-| <p>
-
-#data
-<div><svg><path><foreignObject><p></foreignObject><p>
-#errors
-(1,5) expected-doctype-but-got-start-tag
-(1,50) unexpected-end-tag
-(1,53) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <svg svg>
-| <svg path>
-| <svg foreignObject>
-| <p>
-| <p>
-
-#data
-<math><mi><div><object><div><span></span></div></object></div></mi><mi>
-#errors
-(1,6) expected-doctype-but-got-start-tag
-(1,71) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mi>
-| <div>
-| <object>
-| <div>
-| <span>
-| <math mi>
-
-#data
-<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi>
-#errors
-(1,6) expected-doctype-but-got-start-tag
-(1,83) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mi>
-| <svg svg>
-| <svg foreignObject>
-| <div>
-| <div>
-| <math mi>
-
-#data
-<svg><script></script><path>
-#errors
-(1,5) expected-doctype-but-got-start-tag
-(1,28) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg script>
-| <svg path>
-
-#data
-<table><svg></svg><tr>
-#errors
-(1,7) expected-doctype-but-got-start-tag
-(1,12) unexpected-start-tag-implies-table-voodoo
-(1,22) eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <table>
-| <tbody>
-| <tr>
-
-#data
-<math><mi><mglyph>
-#errors
-(1,6) expected-doctype-but-got-start-tag
-(1,18) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mi>
-| <math mglyph>
-
-#data
-<math><mi><malignmark>
-#errors
-(1,6) expected-doctype-but-got-start-tag
-(1,22) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mi>
-| <math malignmark>
-
-#data
-<math><mo><mglyph>
-#errors
-(1,6) expected-doctype-but-got-start-tag
-(1,18) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mo>
-| <math mglyph>
-
-#data
-<math><mo><malignmark>
-#errors
-(1,6) expected-doctype-but-got-start-tag
-(1,22) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mo>
-| <math malignmark>
-
-#data
-<math><mn><mglyph>
-#errors
-(1,6) expected-doctype-but-got-start-tag
-(1,18) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mn>
-| <math mglyph>
-
-#data
-<math><mn><malignmark>
-#errors
-(1,6) expected-doctype-but-got-start-tag
-(1,22) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mn>
-| <math malignmark>
-
-#data
-<math><ms><mglyph>
-#errors
-(1,6) expected-doctype-but-got-start-tag
-(1,18) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math ms>
-| <math mglyph>
-
-#data
-<math><ms><malignmark>
-#errors
-(1,6) expected-doctype-but-got-start-tag
-(1,22) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math ms>
-| <math malignmark>
-
-#data
-<math><mtext><mglyph>
-#errors
-(1,6) expected-doctype-but-got-start-tag
-(1,21) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mtext>
-| <math mglyph>
-
-#data
-<math><mtext><malignmark>
-#errors
-(1,6) expected-doctype-but-got-start-tag
-(1,25) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mtext>
-| <math malignmark>
-
-#data
-<math><annotation-xml><svg></svg></annotation-xml><mi>
-#errors
-(1,6) expected-doctype-but-got-start-tag
-(1,54) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math annotation-xml>
-| <svg svg>
-| <math mi>
-
-#data
-<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi>
-#errors
-(1,6) expected-doctype-but-got-start-tag
-(1,144) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math annotation-xml>
-| <svg svg>
-| <svg foreignObject>
-| <div>
-| <math math>
-| <math mi>
-| <span>
-| <svg path>
-| <math mi>
-
-#data
-<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi>
-#errors
-(1,6) expected-doctype-but-got-start-tag
-(1,153) expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math annotation-xml>
-| <svg svg>
-| <svg foreignObject>
-| <math math>
-| <math mi>
-| <svg svg>
-| <math mo>
-| <span>
-| <svg path>
-| <math mi>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests11.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests11.dat
deleted file mode 100644
index ad62cdf659b..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests11.dat
+++ /dev/null
@@ -1,482 +0,0 @@
-#data
-<!DOCTYPE html><body><svg attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| attributeName=""
-| attributeType=""
-| baseFrequency=""
-| baseProfile=""
-| calcMode=""
-| clipPathUnits=""
-| contentscripttype=""
-| contentstyletype=""
-| diffuseConstant=""
-| edgeMode=""
-| externalresourcesrequired=""
-| filterUnits=""
-| filterres=""
-| glyphRef=""
-| gradientTransform=""
-| gradientUnits=""
-| kernelMatrix=""
-| kernelUnitLength=""
-| keyPoints=""
-| keySplines=""
-| keyTimes=""
-| lengthAdjust=""
-| limitingConeAngle=""
-| markerHeight=""
-| markerUnits=""
-| markerWidth=""
-| maskContentUnits=""
-| maskUnits=""
-| numOctaves=""
-| pathLength=""
-| patternContentUnits=""
-| patternTransform=""
-| patternUnits=""
-| pointsAtX=""
-| pointsAtY=""
-| pointsAtZ=""
-| preserveAlpha=""
-| preserveAspectRatio=""
-| primitiveUnits=""
-| refX=""
-| refY=""
-| repeatCount=""
-| repeatDur=""
-| requiredExtensions=""
-| requiredFeatures=""
-| specularConstant=""
-| specularExponent=""
-| spreadMethod=""
-| startOffset=""
-| stdDeviation=""
-| stitchTiles=""
-| surfaceScale=""
-| systemLanguage=""
-| tableValues=""
-| targetX=""
-| targetY=""
-| textLength=""
-| viewBox=""
-| viewTarget=""
-| xChannelSelector=""
-| yChannelSelector=""
-| zoomAndPan=""
-
-#data
-<!DOCTYPE html><BODY><SVG ATTRIBUTENAME='' ATTRIBUTETYPE='' BASEFREQUENCY='' BASEPROFILE='' CALCMODE='' CLIPPATHUNITS='' CONTENTSCRIPTTYPE='' CONTENTSTYLETYPE='' DIFFUSECONSTANT='' EDGEMODE='' EXTERNALRESOURCESREQUIRED='' FILTERRES='' FILTERUNITS='' GLYPHREF='' GRADIENTTRANSFORM='' GRADIENTUNITS='' KERNELMATRIX='' KERNELUNITLENGTH='' KEYPOINTS='' KEYSPLINES='' KEYTIMES='' LENGTHADJUST='' LIMITINGCONEANGLE='' MARKERHEIGHT='' MARKERUNITS='' MARKERWIDTH='' MASKCONTENTUNITS='' MASKUNITS='' NUMOCTAVES='' PATHLENGTH='' PATTERNCONTENTUNITS='' PATTERNTRANSFORM='' PATTERNUNITS='' POINTSATX='' POINTSATY='' POINTSATZ='' PRESERVEALPHA='' PRESERVEASPECTRATIO='' PRIMITIVEUNITS='' REFX='' REFY='' REPEATCOUNT='' REPEATDUR='' REQUIREDEXTENSIONS='' REQUIREDFEATURES='' SPECULARCONSTANT='' SPECULAREXPONENT='' SPREADMETHOD='' STARTOFFSET='' STDDEVIATION='' STITCHTILES='' SURFACESCALE='' SYSTEMLANGUAGE='' TABLEVALUES='' TARGETX='' TARGETY='' TEXTLENGTH='' VIEWBOX='' VIEWTARGET='' XCHANNELSELECTOR='' YCHANNELSELECTOR='' ZOOMANDPAN=''></SVG>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| attributeName=""
-| attributeType=""
-| baseFrequency=""
-| baseProfile=""
-| calcMode=""
-| clipPathUnits=""
-| contentscripttype=""
-| contentstyletype=""
-| diffuseConstant=""
-| edgeMode=""
-| externalresourcesrequired=""
-| filterUnits=""
-| filterres=""
-| glyphRef=""
-| gradientTransform=""
-| gradientUnits=""
-| kernelMatrix=""
-| kernelUnitLength=""
-| keyPoints=""
-| keySplines=""
-| keyTimes=""
-| lengthAdjust=""
-| limitingConeAngle=""
-| markerHeight=""
-| markerUnits=""
-| markerWidth=""
-| maskContentUnits=""
-| maskUnits=""
-| numOctaves=""
-| pathLength=""
-| patternContentUnits=""
-| patternTransform=""
-| patternUnits=""
-| pointsAtX=""
-| pointsAtY=""
-| pointsAtZ=""
-| preserveAlpha=""
-| preserveAspectRatio=""
-| primitiveUnits=""
-| refX=""
-| refY=""
-| repeatCount=""
-| repeatDur=""
-| requiredExtensions=""
-| requiredFeatures=""
-| specularConstant=""
-| specularExponent=""
-| spreadMethod=""
-| startOffset=""
-| stdDeviation=""
-| stitchTiles=""
-| surfaceScale=""
-| systemLanguage=""
-| tableValues=""
-| targetX=""
-| targetY=""
-| textLength=""
-| viewBox=""
-| viewTarget=""
-| xChannelSelector=""
-| yChannelSelector=""
-| zoomAndPan=""
-
-#data
-<!DOCTYPE html><body><svg attributename='' attributetype='' basefrequency='' baseprofile='' calcmode='' clippathunits='' contentscripttype='' contentstyletype='' diffuseconstant='' edgemode='' externalresourcesrequired='' filterres='' filterunits='' glyphref='' gradienttransform='' gradientunits='' kernelmatrix='' kernelunitlength='' keypoints='' keysplines='' keytimes='' lengthadjust='' limitingconeangle='' markerheight='' markerunits='' markerwidth='' maskcontentunits='' maskunits='' numoctaves='' pathlength='' patterncontentunits='' patterntransform='' patternunits='' pointsatx='' pointsaty='' pointsatz='' preservealpha='' preserveaspectratio='' primitiveunits='' refx='' refy='' repeatcount='' repeatdur='' requiredextensions='' requiredfeatures='' specularconstant='' specularexponent='' spreadmethod='' startoffset='' stddeviation='' stitchtiles='' surfacescale='' systemlanguage='' tablevalues='' targetx='' targety='' textlength='' viewbox='' viewtarget='' xchannelselector='' ychannelselector='' zoomandpan=''></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| attributeName=""
-| attributeType=""
-| baseFrequency=""
-| baseProfile=""
-| calcMode=""
-| clipPathUnits=""
-| contentscripttype=""
-| contentstyletype=""
-| diffuseConstant=""
-| edgeMode=""
-| externalresourcesrequired=""
-| filterUnits=""
-| filterres=""
-| glyphRef=""
-| gradientTransform=""
-| gradientUnits=""
-| kernelMatrix=""
-| kernelUnitLength=""
-| keyPoints=""
-| keySplines=""
-| keyTimes=""
-| lengthAdjust=""
-| limitingConeAngle=""
-| markerHeight=""
-| markerUnits=""
-| markerWidth=""
-| maskContentUnits=""
-| maskUnits=""
-| numOctaves=""
-| pathLength=""
-| patternContentUnits=""
-| patternTransform=""
-| patternUnits=""
-| pointsAtX=""
-| pointsAtY=""
-| pointsAtZ=""
-| preserveAlpha=""
-| preserveAspectRatio=""
-| primitiveUnits=""
-| refX=""
-| refY=""
-| repeatCount=""
-| repeatDur=""
-| requiredExtensions=""
-| requiredFeatures=""
-| specularConstant=""
-| specularExponent=""
-| spreadMethod=""
-| startOffset=""
-| stdDeviation=""
-| stitchTiles=""
-| surfaceScale=""
-| systemLanguage=""
-| tableValues=""
-| targetX=""
-| targetY=""
-| textLength=""
-| viewBox=""
-| viewTarget=""
-| xChannelSelector=""
-| yChannelSelector=""
-| zoomAndPan=""
-
-#data
-<!DOCTYPE html><body><math attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-| attributename=""
-| attributetype=""
-| basefrequency=""
-| baseprofile=""
-| calcmode=""
-| clippathunits=""
-| contentscripttype=""
-| contentstyletype=""
-| diffuseconstant=""
-| edgemode=""
-| externalresourcesrequired=""
-| filterres=""
-| filterunits=""
-| glyphref=""
-| gradienttransform=""
-| gradientunits=""
-| kernelmatrix=""
-| kernelunitlength=""
-| keypoints=""
-| keysplines=""
-| keytimes=""
-| lengthadjust=""
-| limitingconeangle=""
-| markerheight=""
-| markerunits=""
-| markerwidth=""
-| maskcontentunits=""
-| maskunits=""
-| numoctaves=""
-| pathlength=""
-| patterncontentunits=""
-| patterntransform=""
-| patternunits=""
-| pointsatx=""
-| pointsaty=""
-| pointsatz=""
-| preservealpha=""
-| preserveaspectratio=""
-| primitiveunits=""
-| refx=""
-| refy=""
-| repeatcount=""
-| repeatdur=""
-| requiredextensions=""
-| requiredfeatures=""
-| specularconstant=""
-| specularexponent=""
-| spreadmethod=""
-| startoffset=""
-| stddeviation=""
-| stitchtiles=""
-| surfacescale=""
-| systemlanguage=""
-| tablevalues=""
-| targetx=""
-| targety=""
-| textlength=""
-| viewbox=""
-| viewtarget=""
-| xchannelselector=""
-| ychannelselector=""
-| zoomandpan=""
-
-#data
-<!DOCTYPE html><body><svg><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg altGlyph>
-| <svg altGlyphDef>
-| <svg altGlyphItem>
-| <svg animateColor>
-| <svg animateMotion>
-| <svg animateTransform>
-| <svg clipPath>
-| <svg feBlend>
-| <svg feColorMatrix>
-| <svg feComponentTransfer>
-| <svg feComposite>
-| <svg feConvolveMatrix>
-| <svg feDiffuseLighting>
-| <svg feDisplacementMap>
-| <svg feDistantLight>
-| <svg feFlood>
-| <svg feFuncA>
-| <svg feFuncB>
-| <svg feFuncG>
-| <svg feFuncR>
-| <svg feGaussianBlur>
-| <svg feImage>
-| <svg feMerge>
-| <svg feMergeNode>
-| <svg feMorphology>
-| <svg feOffset>
-| <svg fePointLight>
-| <svg feSpecularLighting>
-| <svg feSpotLight>
-| <svg feTile>
-| <svg feTurbulence>
-| <svg foreignObject>
-| <svg glyphRef>
-| <svg linearGradient>
-| <svg radialGradient>
-| <svg textPath>
-
-#data
-<!DOCTYPE html><body><svg><altglyph /><altglyphdef /><altglyphitem /><animatecolor /><animatemotion /><animatetransform /><clippath /><feblend /><fecolormatrix /><fecomponenttransfer /><fecomposite /><feconvolvematrix /><fediffuselighting /><fedisplacementmap /><fedistantlight /><feflood /><fefunca /><fefuncb /><fefuncg /><fefuncr /><fegaussianblur /><feimage /><femerge /><femergenode /><femorphology /><feoffset /><fepointlight /><fespecularlighting /><fespotlight /><fetile /><feturbulence /><foreignobject /><glyphref /><lineargradient /><radialgradient /><textpath /></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg altGlyph>
-| <svg altGlyphDef>
-| <svg altGlyphItem>
-| <svg animateColor>
-| <svg animateMotion>
-| <svg animateTransform>
-| <svg clipPath>
-| <svg feBlend>
-| <svg feColorMatrix>
-| <svg feComponentTransfer>
-| <svg feComposite>
-| <svg feConvolveMatrix>
-| <svg feDiffuseLighting>
-| <svg feDisplacementMap>
-| <svg feDistantLight>
-| <svg feFlood>
-| <svg feFuncA>
-| <svg feFuncB>
-| <svg feFuncG>
-| <svg feFuncR>
-| <svg feGaussianBlur>
-| <svg feImage>
-| <svg feMerge>
-| <svg feMergeNode>
-| <svg feMorphology>
-| <svg feOffset>
-| <svg fePointLight>
-| <svg feSpecularLighting>
-| <svg feSpotLight>
-| <svg feTile>
-| <svg feTurbulence>
-| <svg foreignObject>
-| <svg glyphRef>
-| <svg linearGradient>
-| <svg radialGradient>
-| <svg textPath>
-
-#data
-<!DOCTYPE html><BODY><SVG><ALTGLYPH /><ALTGLYPHDEF /><ALTGLYPHITEM /><ANIMATECOLOR /><ANIMATEMOTION /><ANIMATETRANSFORM /><CLIPPATH /><FEBLEND /><FECOLORMATRIX /><FECOMPONENTTRANSFER /><FECOMPOSITE /><FECONVOLVEMATRIX /><FEDIFFUSELIGHTING /><FEDISPLACEMENTMAP /><FEDISTANTLIGHT /><FEFLOOD /><FEFUNCA /><FEFUNCB /><FEFUNCG /><FEFUNCR /><FEGAUSSIANBLUR /><FEIMAGE /><FEMERGE /><FEMERGENODE /><FEMORPHOLOGY /><FEOFFSET /><FEPOINTLIGHT /><FESPECULARLIGHTING /><FESPOTLIGHT /><FETILE /><FETURBULENCE /><FOREIGNOBJECT /><GLYPHREF /><LINEARGRADIENT /><RADIALGRADIENT /><TEXTPATH /></SVG>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg altGlyph>
-| <svg altGlyphDef>
-| <svg altGlyphItem>
-| <svg animateColor>
-| <svg animateMotion>
-| <svg animateTransform>
-| <svg clipPath>
-| <svg feBlend>
-| <svg feColorMatrix>
-| <svg feComponentTransfer>
-| <svg feComposite>
-| <svg feConvolveMatrix>
-| <svg feDiffuseLighting>
-| <svg feDisplacementMap>
-| <svg feDistantLight>
-| <svg feFlood>
-| <svg feFuncA>
-| <svg feFuncB>
-| <svg feFuncG>
-| <svg feFuncR>
-| <svg feGaussianBlur>
-| <svg feImage>
-| <svg feMerge>
-| <svg feMergeNode>
-| <svg feMorphology>
-| <svg feOffset>
-| <svg fePointLight>
-| <svg feSpecularLighting>
-| <svg feSpotLight>
-| <svg feTile>
-| <svg feTurbulence>
-| <svg foreignObject>
-| <svg glyphRef>
-| <svg linearGradient>
-| <svg radialGradient>
-| <svg textPath>
-
-#data
-<!DOCTYPE html><body><math><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math altglyph>
-| <math altglyphdef>
-| <math altglyphitem>
-| <math animatecolor>
-| <math animatemotion>
-| <math animatetransform>
-| <math clippath>
-| <math feblend>
-| <math fecolormatrix>
-| <math fecomponenttransfer>
-| <math fecomposite>
-| <math feconvolvematrix>
-| <math fediffuselighting>
-| <math fedisplacementmap>
-| <math fedistantlight>
-| <math feflood>
-| <math fefunca>
-| <math fefuncb>
-| <math fefuncg>
-| <math fefuncr>
-| <math fegaussianblur>
-| <math feimage>
-| <math femerge>
-| <math femergenode>
-| <math femorphology>
-| <math feoffset>
-| <math fepointlight>
-| <math fespecularlighting>
-| <math fespotlight>
-| <math fetile>
-| <math feturbulence>
-| <math foreignobject>
-| <math glyphref>
-| <math lineargradient>
-| <math radialgradient>
-| <math textpath>
-
-#data
-<!DOCTYPE html><body><svg><solidColor /></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg solidcolor>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests12.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests12.dat
deleted file mode 100644
index 63107d277b6..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests12.dat
+++ /dev/null
@@ -1,62 +0,0 @@
-#data
-<!DOCTYPE html><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| "foo"
-| <math math>
-| <math mtext>
-| <i>
-| "baz"
-| <math annotation-xml>
-| <svg svg>
-| <svg desc>
-| <b>
-| "eggs"
-| <svg g>
-| <svg foreignObject>
-| <p>
-| "spam"
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <img>
-| <svg g>
-| "quux"
-| "bar"
-
-#data
-<!DOCTYPE html><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "foo"
-| <math math>
-| <math mtext>
-| <i>
-| "baz"
-| <math annotation-xml>
-| <svg svg>
-| <svg desc>
-| <b>
-| "eggs"
-| <svg g>
-| <svg foreignObject>
-| <p>
-| "spam"
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <img>
-| <svg g>
-| "quux"
-| "bar"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests14.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests14.dat
deleted file mode 100644
index a08b7649eba..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests14.dat
+++ /dev/null
@@ -1,75 +0,0 @@
-#data
-<!DOCTYPE html><html><body><xyz:abc></xyz:abc>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <xyz:abc>
-
-#data
-<!DOCTYPE html><html><body><xyz:abc></xyz:abc><span></span>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <xyz:abc>
-| <span>
-
-#data
-<!DOCTYPE html><html><html abc:def=gh><xyz:abc></xyz:abc>
-#errors
-(1,38): non-html-root
-#document
-| <!DOCTYPE html>
-| <html>
-| abc:def="gh"
-| <head>
-| <body>
-| <xyz:abc>
-
-#data
-<!DOCTYPE html><html xml:lang=bar><html xml:lang=foo>
-#errors
-(1,53): non-html-root
-#document
-| <!DOCTYPE html>
-| <html>
-| xml:lang="bar"
-| <head>
-| <body>
-
-#data
-<!DOCTYPE html><html 123=456>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| 123="456"
-| <head>
-| <body>
-
-#data
-<!DOCTYPE html><html 123=456><html 789=012>
-#errors
-(1,43): non-html-root
-#document
-| <!DOCTYPE html>
-| <html>
-| 123="456"
-| 789="012"
-| <head>
-| <body>
-
-#data
-<!DOCTYPE html><html><body 789=012>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| 789="012"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests15.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests15.dat
deleted file mode 100644
index 93d06a87170..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests15.dat
+++ /dev/null
@@ -1,216 +0,0 @@
-#data
-<!DOCTYPE html><p><b><i><u></p> <p>X
-#errors
-(1,31): unexpected-end-tag
-(1,36): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <b>
-| <i>
-| <u>
-| <b>
-| <i>
-| <u>
-| " "
-| <p>
-| "X"
-
-#data
-<p><b><i><u></p>
-<p>X
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,16): unexpected-end-tag
-(2,4): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <b>
-| <i>
-| <u>
-| <b>
-| <i>
-| <u>
-| "
-"
-| <p>
-| "X"
-
-#data
-<!doctype html></html> <head>
-#errors
-(1,29): expected-eof-but-got-start-tag
-(1,29): unexpected-start-tag-ignored
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| " "
-
-#data
-<!doctype html></body><meta>
-#errors
-(1,28): unexpected-start-tag-after-body
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <meta>
-
-#data
-<html></html><!-- foo -->
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <!-- foo -->
-
-#data
-<!doctype html></body><title>X</title>
-#errors
-(1,29): unexpected-start-tag-after-body
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <title>
-| "X"
-
-#data
-<!doctype html><table> X<meta></table>
-#errors
-(1,23): foster-parenting-character
-(1,24): foster-parenting-character
-(1,30): foster-parenting-start-character
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| " X"
-| <meta>
-| <table>
-
-#data
-<!doctype html><table> x</table>
-#errors
-(1,23): foster-parenting-character
-(1,24): foster-parenting-character
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| " x"
-| <table>
-
-#data
-<!doctype html><table> x </table>
-#errors
-(1,23): foster-parenting-character
-(1,24): foster-parenting-character
-(1,25): foster-parenting-character
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| " x "
-| <table>
-
-#data
-<!doctype html><table><tr> x</table>
-#errors
-(1,27): foster-parenting-character
-(1,28): foster-parenting-character
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| " x"
-| <table>
-| <tbody>
-| <tr>
-
-#data
-<!doctype html><table>X<style> <tr>x </style> </table>
-#errors
-(1,23): foster-parenting-character
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "X"
-| <table>
-| <style>
-| " <tr>x "
-| " "
-
-#data
-<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div>
-#errors
-(1,30): foster-parenting-start-tag
-(1,31): foster-parenting-character
-(1,32): foster-parenting-character
-(1,33): foster-parenting-character
-(1,37): foster-parenting-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <div>
-| <a>
-| "foo"
-| <table>
-| " "
-| <tbody>
-| <tr>
-| <td>
-| "bar"
-| " "
-
-#data
-<frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,7): unexpected-start-tag-ignored
-(1,15): unexpected-end-tag
-(1,23): unexpected-end-tag
-(1,33): unexpected-start-tag
-(1,99): expected-named-closing-tag-but-got-eof
-(1,99): eof-in-frameset
-#document
-| <html>
-| <head>
-| <frameset>
-| <frame>
-| <frameset>
-| <frame>
-| <noframes>
-| "</frameset><noframes>"
-
-#data
-<!DOCTYPE html><object></html>
-#errors
-(1,30): expected-body-in-scope
-(1,30): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <object>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests16.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests16.dat
deleted file mode 100644
index 12191577761..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests16.dat
+++ /dev/null
@@ -1,2458 +0,0 @@
-#data
-<!doctype html><script>
-#errors
-(1,23): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| <body>
-
-#data
-<!doctype html><script>a
-#errors
-(1,24): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "a"
-| <body>
-
-#data
-<!doctype html><script><
-#errors
-(1,24): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<"
-| <body>
-
-#data
-<!doctype html><script></
-#errors
-(1,25): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "</"
-| <body>
-
-#data
-<!doctype html><script></S
-#errors
-(1,26): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "</S"
-| <body>
-
-#data
-<!doctype html><script></SC
-#errors
-(1,27): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "</SC"
-| <body>
-
-#data
-<!doctype html><script></SCR
-#errors
-(1,28): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "</SCR"
-| <body>
-
-#data
-<!doctype html><script></SCRI
-#errors
-(1,29): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "</SCRI"
-| <body>
-
-#data
-<!doctype html><script></SCRIP
-#errors
-(1,30): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "</SCRIP"
-| <body>
-
-#data
-<!doctype html><script></SCRIPT
-#errors
-(1,31): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "</SCRIPT"
-| <body>
-
-#data
-<!doctype html><script></SCRIPT
-#errors
-(1,32): expected-attribute-name-but-got-eof
-(1,32): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| <body>
-
-#data
-<!doctype html><script></s
-#errors
-(1,26): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "</s"
-| <body>
-
-#data
-<!doctype html><script></sc
-#errors
-(1,27): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "</sc"
-| <body>
-
-#data
-<!doctype html><script></scr
-#errors
-(1,28): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "</scr"
-| <body>
-
-#data
-<!doctype html><script></scri
-#errors
-(1,29): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "</scri"
-| <body>
-
-#data
-<!doctype html><script></scrip
-#errors
-(1,30): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "</scrip"
-| <body>
-
-#data
-<!doctype html><script></script
-#errors
-(1,31): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "</script"
-| <body>
-
-#data
-<!doctype html><script></script
-#errors
-(1,32): expected-attribute-name-but-got-eof
-(1,32): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| <body>
-
-#data
-<!doctype html><script><!
-#errors
-(1,25): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!"
-| <body>
-
-#data
-<!doctype html><script><!a
-#errors
-(1,26): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!a"
-| <body>
-
-#data
-<!doctype html><script><!-
-#errors
-(1,26): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!-"
-| <body>
-
-#data
-<!doctype html><script><!-a
-#errors
-(1,27): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!-a"
-| <body>
-
-#data
-<!doctype html><script><!--
-#errors
-(1,27): expected-named-closing-tag-but-got-eof
-(1,27): unexpected-eof-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--"
-| <body>
-
-#data
-<!doctype html><script><!--a
-#errors
-(1,28): expected-named-closing-tag-but-got-eof
-(1,28): unexpected-eof-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--a"
-| <body>
-
-#data
-<!doctype html><script><!--<
-#errors
-(1,28): expected-named-closing-tag-but-got-eof
-(1,28): unexpected-eof-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<"
-| <body>
-
-#data
-<!doctype html><script><!--<a
-#errors
-(1,29): expected-named-closing-tag-but-got-eof
-(1,29): unexpected-eof-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<a"
-| <body>
-
-#data
-<!doctype html><script><!--</
-#errors
-(1,29): expected-named-closing-tag-but-got-eof
-(1,29): unexpected-eof-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--</"
-| <body>
-
-#data
-<!doctype html><script><!--</script
-#errors
-(1,35): expected-named-closing-tag-but-got-eof
-(1,35): unexpected-eof-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--</script"
-| <body>
-
-#data
-<!doctype html><script><!--</script
-#errors
-(1,36): expected-attribute-name-but-got-eof
-(1,36): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--"
-| <body>
-
-#data
-<!doctype html><script><!--<s
-#errors
-(1,29): expected-named-closing-tag-but-got-eof
-(1,29): unexpected-eof-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<s"
-| <body>
-
-#data
-<!doctype html><script><!--<script
-#errors
-(1,34): expected-named-closing-tag-but-got-eof
-(1,34): unexpected-eof-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script"
-| <body>
-
-#data
-<!doctype html><script><!--<script
-#errors
-(1,35): eof-in-script-in-script
-(1,35): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script "
-| <body>
-
-#data
-<!doctype html><script><!--<script <
-#errors
-(1,36): eof-in-script-in-script
-(1,36): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script <"
-| <body>
-
-#data
-<!doctype html><script><!--<script <a
-#errors
-(1,37): eof-in-script-in-script
-(1,37): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script <a"
-| <body>
-
-#data
-<!doctype html><script><!--<script </
-#errors
-(1,37): eof-in-script-in-script
-(1,37): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script </"
-| <body>
-
-#data
-<!doctype html><script><!--<script </s
-#errors
-(1,38): eof-in-script-in-script
-(1,38): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script </s"
-| <body>
-
-#data
-<!doctype html><script><!--<script </script
-#errors
-(1,43): eof-in-script-in-script
-(1,43): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script </script"
-| <body>
-
-#data
-<!doctype html><script><!--<script </scripta
-#errors
-(1,44): eof-in-script-in-script
-(1,44): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script </scripta"
-| <body>
-
-#data
-<!doctype html><script><!--<script </script
-#errors
-(1,44): expected-named-closing-tag-but-got-eof
-(1,44): unexpected-eof-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script </script "
-| <body>
-
-#data
-<!doctype html><script><!--<script </script>
-#errors
-(1,44): expected-named-closing-tag-but-got-eof
-(1,44): unexpected-eof-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script </script>"
-| <body>
-
-#data
-<!doctype html><script><!--<script </script/
-#errors
-(1,44): expected-named-closing-tag-but-got-eof
-(1,44): unexpected-eof-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script </script/"
-| <body>
-
-#data
-<!doctype html><script><!--<script </script <
-#errors
-(1,45): expected-named-closing-tag-but-got-eof
-(1,45): unexpected-eof-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script </script <"
-| <body>
-
-#data
-<!doctype html><script><!--<script </script <a
-#errors
-(1,46): expected-named-closing-tag-but-got-eof
-(1,46): unexpected-eof-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script </script <a"
-| <body>
-
-#data
-<!doctype html><script><!--<script </script </
-#errors
-(1,46): expected-named-closing-tag-but-got-eof
-(1,46): unexpected-eof-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script </script </"
-| <body>
-
-#data
-<!doctype html><script><!--<script </script </script
-#errors
-(1,52): expected-named-closing-tag-but-got-eof
-(1,52): unexpected-eof-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script </script </script"
-| <body>
-
-#data
-<!doctype html><script><!--<script </script </script
-#errors
-(1,53): expected-attribute-name-but-got-eof
-(1,53): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script </script "
-| <body>
-
-#data
-<!doctype html><script><!--<script </script </script/
-#errors
-(1,53): unexpected-EOF-after-solidus-in-tag
-(1,53): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script </script "
-| <body>
-
-#data
-<!doctype html><script><!--<script </script </script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script </script "
-| <body>
-
-#data
-<!doctype html><script><!--<script -
-#errors
-(1,36): eof-in-script-in-script
-(1,36): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script -"
-| <body>
-
-#data
-<!doctype html><script><!--<script -a
-#errors
-(1,37): eof-in-script-in-script
-(1,37): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script -a"
-| <body>
-
-#data
-<!doctype html><script><!--<script -<
-#errors
-(1,37): eof-in-script-in-script
-(1,37): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script -<"
-| <body>
-
-#data
-<!doctype html><script><!--<script --
-#errors
-(1,37): eof-in-script-in-script
-(1,37): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script --"
-| <body>
-
-#data
-<!doctype html><script><!--<script --a
-#errors
-(1,38): eof-in-script-in-script
-(1,38): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script --a"
-| <body>
-
-#data
-<!doctype html><script><!--<script --<
-#errors
-(1,38): eof-in-script-in-script
-(1,38): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script --<"
-| <body>
-
-#data
-<!doctype html><script><!--<script -->
-#errors
-(1,38): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script -->"
-| <body>
-
-#data
-<!doctype html><script><!--<script --><
-#errors
-(1,39): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script --><"
-| <body>
-
-#data
-<!doctype html><script><!--<script --></
-#errors
-(1,40): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script --></"
-| <body>
-
-#data
-<!doctype html><script><!--<script --></script
-#errors
-(1,46): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script --></script"
-| <body>
-
-#data
-<!doctype html><script><!--<script --></script
-#errors
-(1,47): expected-attribute-name-but-got-eof
-(1,47): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script -->"
-| <body>
-
-#data
-<!doctype html><script><!--<script --></script/
-#errors
-(1,47): unexpected-EOF-after-solidus-in-tag
-(1,47): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script -->"
-| <body>
-
-#data
-<!doctype html><script><!--<script --></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script -->"
-| <body>
-
-#data
-<!doctype html><script><!--<script><\/script>--></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script><\/script>-->"
-| <body>
-
-#data
-<!doctype html><script><!--<script></scr'+'ipt>--></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script></scr'+'ipt>-->"
-| <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script></script><script></script>"
-| <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script>--><!--</script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script></script><script></script>--><!--"
-| <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script>-- ></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script></script><script></script>-- >"
-| <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script>- -></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script></script><script></script>- ->"
-| <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script>- - ></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script></script><script></script>- - >"
-| <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script>-></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script></script><script></script>->"
-| <body>
-
-#data
-<!doctype html><script><!--<script>--!></script>X
-#errors
-(1,49): expected-named-closing-tag-but-got-eof
-(1,49): unexpected-EOF-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script>--!></script>X"
-| <body>
-
-#data
-<!doctype html><script><!--<scr'+'ipt></script>--></script>
-#errors
-(1,59): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<scr'+'ipt>"
-| <body>
-| "-->"
-
-#data
-<!doctype html><script><!--<script></scr'+'ipt></script>X
-#errors
-(1,57): expected-named-closing-tag-but-got-eof
-(1,57): unexpected-eof-in-text-mode
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "<!--<script></scr'+'ipt></script>X"
-| <body>
-
-#data
-<!doctype html><style><!--<style></style>--></style>
-#errors
-(1,52): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <style>
-| "<!--<style>"
-| <body>
-| "-->"
-
-#data
-<!doctype html><style><!--</style>X
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <style>
-| "<!--"
-| <body>
-| "X"
-
-#data
-<!doctype html><style><!--...</style>...--></style>
-#errors
-(1,51): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <style>
-| "<!--..."
-| <body>
-| "...-->"
-
-#data
-<!doctype html><style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <style>
-| "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>"
-| <body>
-| "X"
-
-#data
-<!doctype html><style><!--...<style><!--...--!></style>--></style>
-#errors
-(1,66): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <style>
-| "<!--...<style><!--...--!>"
-| <body>
-| "-->"
-
-#data
-<!doctype html><style><!--...</style><!-- --><style>@import ...</style>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <style>
-| "<!--..."
-| <!-- -->
-| <style>
-| "@import ..."
-| <body>
-
-#data
-<!doctype html><style>...<style><!--...</style><!-- --></style>
-#errors
-(1,63): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <style>
-| "...<style><!--..."
-| <!-- -->
-| <body>
-
-#data
-<!doctype html><style>...<!--[if IE]><style>...</style>X
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <style>
-| "...<!--[if IE]><style>..."
-| <body>
-| "X"
-
-#data
-<!doctype html><title><!--<title></title>--></title>
-#errors
-(1,52): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <title>
-| "<!--<title>"
-| <body>
-| "-->"
-
-#data
-<!doctype html><title>&lt;/title></title>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <title>
-| "</title>"
-| <body>
-
-#data
-<!doctype html><title>foo/title><link></head><body>X
-#errors
-(1,52): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <title>
-| "foo/title><link></head><body>X"
-| <body>
-
-#data
-<!doctype html><noscript><!--<noscript></noscript>--></noscript>
-#errors
-(1,64): unexpected-end-tag
-#script-on
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <noscript>
-| "<!--<noscript>"
-| <body>
-| "-->"
-
-#data
-<!doctype html><noscript><!--<noscript></noscript>--></noscript>
-#errors
-#script-off
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <noscript>
-| <!-- <noscript></noscript> -->
-| <body>
-
-#data
-<!doctype html><noscript><!--</noscript>X<noscript>--></noscript>
-#errors
-#script-on
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <noscript>
-| "<!--"
-| <body>
-| "X"
-| <noscript>
-| "-->"
-
-#data
-<!doctype html><noscript><!--</noscript>X<noscript>--></noscript>
-#errors
-#script-off
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <noscript>
-| <!-- </noscript>X<noscript> -->
-| <body>
-
-#data
-<!doctype html><noscript><iframe></noscript>X
-#errors
-#script-on
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <noscript>
-| "<iframe>"
-| <body>
-| "X"
-
-#data
-<!doctype html><noscript><iframe></noscript>X
-#errors
- * (1,34) unexpected token in head noscript
- * (1,46) unexpected EOF
-#script-off
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <noscript>
-| <body>
-| <iframe>
-| "</noscript>X"
-
-#data
-<!doctype html><noframes><!--<noframes></noframes>--></noframes>
-#errors
-(1,64): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <noframes>
-| "<!--<noframes>"
-| <body>
-| "-->"
-
-#data
-<!doctype html><noframes><body><script><!--...</script></body></noframes></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <noframes>
-| "<body><script><!--...</script></body>"
-| <body>
-
-#data
-<!doctype html><textarea><!--<textarea></textarea>--></textarea>
-#errors
-(1,64): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <textarea>
-| "<!--<textarea>"
-| "-->"
-
-#data
-<!doctype html><textarea>&lt;/textarea></textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <textarea>
-| "</textarea>"
-
-#data
-<!doctype html><textarea>&lt;</textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <textarea>
-| "<"
-
-#data
-<!doctype html><textarea>a&lt;b</textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <textarea>
-| "a<b"
-
-#data
-<!doctype html><iframe><!--<iframe></iframe>--></iframe>
-#errors
-(1,56): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <iframe>
-| "<!--<iframe>"
-| "-->"
-
-#data
-<!doctype html><iframe>...<!--X->...<!--/X->...</iframe>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <iframe>
-| "...<!--X->...<!--/X->..."
-
-#data
-<!doctype html><xmp><!--<xmp></xmp>--></xmp>
-#errors
-(1,44): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <xmp>
-| "<!--<xmp>"
-| "-->"
-
-#data
-<!doctype html><noembed><!--<noembed></noembed>--></noembed>
-#errors
-(1,60): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <noembed>
-| "<!--<noembed>"
-| "-->"
-
-#data
-<script>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,8): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| <body>
-
-#data
-<script>a
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,9): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "a"
-| <body>
-
-#data
-<script><
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,9): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<"
-| <body>
-
-#data
-<script></
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,10): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "</"
-| <body>
-
-#data
-<script></S
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,11): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "</S"
-| <body>
-
-#data
-<script></SC
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,12): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "</SC"
-| <body>
-
-#data
-<script></SCR
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,13): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "</SCR"
-| <body>
-
-#data
-<script></SCRI
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,14): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "</SCRI"
-| <body>
-
-#data
-<script></SCRIP
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,15): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "</SCRIP"
-| <body>
-
-#data
-<script></SCRIPT
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,16): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "</SCRIPT"
-| <body>
-
-#data
-<script></SCRIPT
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,17): expected-attribute-name-but-got-eof
-(1,17): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| <body>
-
-#data
-<script></s
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,11): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "</s"
-| <body>
-
-#data
-<script></sc
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,12): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "</sc"
-| <body>
-
-#data
-<script></scr
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,13): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "</scr"
-| <body>
-
-#data
-<script></scri
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,14): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "</scri"
-| <body>
-
-#data
-<script></scrip
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,15): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "</scrip"
-| <body>
-
-#data
-<script></script
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,16): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "</script"
-| <body>
-
-#data
-<script></script
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,17): expected-attribute-name-but-got-eof
-(1,17): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| <body>
-
-#data
-<script><!
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,10): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!"
-| <body>
-
-#data
-<script><!a
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,11): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!a"
-| <body>
-
-#data
-<script><!-
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,11): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!-"
-| <body>
-
-#data
-<script><!-a
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,12): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!-a"
-| <body>
-
-#data
-<script><!--
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,12): expected-named-closing-tag-but-got-eof
-(1,12): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--"
-| <body>
-
-#data
-<script><!--a
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,13): expected-named-closing-tag-but-got-eof
-(1,13): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--a"
-| <body>
-
-#data
-<script><!--<
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,13): expected-named-closing-tag-but-got-eof
-(1,13): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<"
-| <body>
-
-#data
-<script><!--<a
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,14): expected-named-closing-tag-but-got-eof
-(1,14): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<a"
-| <body>
-
-#data
-<script><!--</
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,14): expected-named-closing-tag-but-got-eof
-(1,14): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--</"
-| <body>
-
-#data
-<script><!--</script
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,20): expected-named-closing-tag-but-got-eof
-(1,20): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--</script"
-| <body>
-
-#data
-<script><!--</script
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,21): expected-attribute-name-but-got-eof
-(1,21): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--"
-| <body>
-
-#data
-<script><!--<s
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,14): expected-named-closing-tag-but-got-eof
-(1,14): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<s"
-| <body>
-
-#data
-<script><!--<script
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,19): expected-named-closing-tag-but-got-eof
-(1,19): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script"
-| <body>
-
-#data
-<script><!--<script
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,20): eof-in-script-in-script
-(1,20): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script "
-| <body>
-
-#data
-<script><!--<script <
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,21): eof-in-script-in-script
-(1,21): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script <"
-| <body>
-
-#data
-<script><!--<script <a
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,22): eof-in-script-in-script
-(1,22): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script <a"
-| <body>
-
-#data
-<script><!--<script </
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,22): eof-in-script-in-script
-(1,22): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script </"
-| <body>
-
-#data
-<script><!--<script </s
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,23): eof-in-script-in-script
-(1,23): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script </s"
-| <body>
-
-#data
-<script><!--<script </script
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,28): eof-in-script-in-script
-(1,28): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script </script"
-| <body>
-
-#data
-<script><!--<script </scripta
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,29): eof-in-script-in-script
-(1,29): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script </scripta"
-| <body>
-
-#data
-<script><!--<script </script
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,29): expected-named-closing-tag-but-got-eof
-(1,29): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script </script "
-| <body>
-
-#data
-<script><!--<script </script>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,29): expected-named-closing-tag-but-got-eof
-(1,29): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script </script>"
-| <body>
-
-#data
-<script><!--<script </script/
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,29): expected-named-closing-tag-but-got-eof
-(1,29): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script </script/"
-| <body>
-
-#data
-<script><!--<script </script <
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,30): expected-named-closing-tag-but-got-eof
-(1,30): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script </script <"
-| <body>
-
-#data
-<script><!--<script </script <a
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,31): expected-named-closing-tag-but-got-eof
-(1,31): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script </script <a"
-| <body>
-
-#data
-<script><!--<script </script </
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,31): expected-named-closing-tag-but-got-eof
-(1,31): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script </script </"
-| <body>
-
-#data
-<script><!--<script </script </script
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,37): expected-named-closing-tag-but-got-eof
-(1,37): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script </script </script"
-| <body>
-
-#data
-<script><!--<script </script </script
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,38): expected-attribute-name-but-got-eof
-(1,38): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script </script "
-| <body>
-
-#data
-<script><!--<script </script </script/
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,38): unexpected-EOF-after-solidus-in-tag
-(1,38): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script </script "
-| <body>
-
-#data
-<script><!--<script </script </script>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script </script "
-| <body>
-
-#data
-<script><!--<script -
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,21): eof-in-script-in-script
-(1,21): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script -"
-| <body>
-
-#data
-<script><!--<script -a
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,22): eof-in-script-in-script
-(1,22): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script -a"
-| <body>
-
-#data
-<script><!--<script --
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,22): eof-in-script-in-script
-(1,22): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script --"
-| <body>
-
-#data
-<script><!--<script --a
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,23): eof-in-script-in-script
-(1,23): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script --a"
-| <body>
-
-#data
-<script><!--<script -->
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,23): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script -->"
-| <body>
-
-#data
-<script><!--<script --><
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,24): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script --><"
-| <body>
-
-#data
-<script><!--<script --></
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,25): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script --></"
-| <body>
-
-#data
-<script><!--<script --></script
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,31): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script --></script"
-| <body>
-
-#data
-<script><!--<script --></script
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,32): expected-attribute-name-but-got-eof
-(1,32): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script -->"
-| <body>
-
-#data
-<script><!--<script --></script/
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,32): unexpected-EOF-after-solidus-in-tag
-(1,32): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script -->"
-| <body>
-
-#data
-<script><!--<script --></script>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script -->"
-| <body>
-
-#data
-<script><!--<script><\/script>--></script>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script><\/script>-->"
-| <body>
-
-#data
-<script><!--<script></scr'+'ipt>--></script>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script></scr'+'ipt>-->"
-| <body>
-
-#data
-<script><!--<script></script><script></script></script>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script></script><script></script>"
-| <body>
-
-#data
-<script><!--<script></script><script></script>--><!--</script>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script></script><script></script>--><!--"
-| <body>
-
-#data
-<script><!--<script></script><script></script>-- ></script>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script></script><script></script>-- >"
-| <body>
-
-#data
-<script><!--<script></script><script></script>- -></script>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script></script><script></script>- ->"
-| <body>
-
-#data
-<script><!--<script></script><script></script>- - ></script>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script></script><script></script>- - >"
-| <body>
-
-#data
-<script><!--<script></script><script></script>-></script>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script></script><script></script>->"
-| <body>
-
-#data
-<script><!--<script>--!></script>X
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,34): expected-named-closing-tag-but-got-eof
-(1,34): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script>--!></script>X"
-| <body>
-
-#data
-<script><!--<scr'+'ipt></script>--></script>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,44): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<scr'+'ipt>"
-| <body>
-| "-->"
-
-#data
-<script><!--<script></scr'+'ipt></script>X
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,42): expected-named-closing-tag-but-got-eof
-(1,42): unexpected-eof-in-text-mode
-#document
-| <html>
-| <head>
-| <script>
-| "<!--<script></scr'+'ipt></script>X"
-| <body>
-
-#data
-<style><!--<style></style>--></style>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,37): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <style>
-| "<!--<style>"
-| <body>
-| "-->"
-
-#data
-<style><!--</style>X
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <style>
-| "<!--"
-| <body>
-| "X"
-
-#data
-<style><!--...</style>...--></style>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,36): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <style>
-| "<!--..."
-| <body>
-| "...-->"
-
-#data
-<style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <style>
-| "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>"
-| <body>
-| "X"
-
-#data
-<style><!--...<style><!--...--!></style>--></style>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,51): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <style>
-| "<!--...<style><!--...--!>"
-| <body>
-| "-->"
-
-#data
-<style><!--...</style><!-- --><style>@import ...</style>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <style>
-| "<!--..."
-| <!-- -->
-| <style>
-| "@import ..."
-| <body>
-
-#data
-<style>...<style><!--...</style><!-- --></style>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,48): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <style>
-| "...<style><!--..."
-| <!-- -->
-| <body>
-
-#data
-<style>...<!--[if IE]><style>...</style>X
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <style>
-| "...<!--[if IE]><style>..."
-| <body>
-| "X"
-
-#data
-<title><!--<title></title>--></title>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,37): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <title>
-| "<!--<title>"
-| <body>
-| "-->"
-
-#data
-<title>&lt;/title></title>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <title>
-| "</title>"
-| <body>
-
-#data
-<title>foo/title><link></head><body>X
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,37): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <title>
-| "foo/title><link></head><body>X"
-| <body>
-
-#data
-<noscript><!--<noscript></noscript>--></noscript>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-(1,49): unexpected-end-tag
-#script-on
-#document
-| <html>
-| <head>
-| <noscript>
-| "<!--<noscript>"
-| <body>
-| "-->"
-
-#data
-<noscript><!--<noscript></noscript>--></noscript>
-#errors
- * (1,11) missing DOCTYPE
-#script-off
-#document
-| <html>
-| <head>
-| <noscript>
-| <!-- <noscript></noscript> -->
-| <body>
-
-#data
-<noscript><!--</noscript>X<noscript>--></noscript>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-#script-on
-#document
-| <html>
-| <head>
-| <noscript>
-| "<!--"
-| <body>
-| "X"
-| <noscript>
-| "-->"
-
-#data
-<noscript><!--</noscript>X<noscript>--></noscript>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-#script-off
-#document
-| <html>
-| <head>
-| <noscript>
-| <!-- </noscript>X<noscript> -->
-| <body>
-
-#data
-<noscript><iframe></noscript>X
-#errors
-(1,10): expected-doctype-but-got-start-tag
-#script-on
-#document
-| <html>
-| <head>
-| <noscript>
-| "<iframe>"
-| <body>
-| "X"
-
-#data
-<noscript><iframe></noscript>X
-#errors
- * (1,11) missing DOCTYPE
- * (1,19) unexpected token in head noscript
- * (1,31) unexpected EOF
-#script-off
-#document
-| <html>
-| <head>
-| <noscript>
-| <body>
-| <iframe>
-| "</noscript>X"
-
-#data
-<noframes><!--<noframes></noframes>--></noframes>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-(1,49): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <noframes>
-| "<!--<noframes>"
-| <body>
-| "-->"
-
-#data
-<noframes><body><script><!--...</script></body></noframes></html>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <noframes>
-| "<body><script><!--...</script></body>"
-| <body>
-
-#data
-<textarea><!--<textarea></textarea>--></textarea>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-(1,49): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <textarea>
-| "<!--<textarea>"
-| "-->"
-
-#data
-<textarea>&lt;/textarea></textarea>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <textarea>
-| "</textarea>"
-
-#data
-<iframe><!--<iframe></iframe>--></iframe>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,41): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <iframe>
-| "<!--<iframe>"
-| "-->"
-
-#data
-<iframe>...<!--X->...<!--/X->...</iframe>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <iframe>
-| "...<!--X->...<!--/X->..."
-
-#data
-<xmp><!--<xmp></xmp>--></xmp>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,29): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <xmp>
-| "<!--<xmp>"
-| "-->"
-
-#data
-<noembed><!--<noembed></noembed>--></noembed>
-#errors
-(1,9): expected-doctype-but-got-start-tag
-(1,45): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <noembed>
-| "<!--<noembed>"
-| "-->"
-
-#data
-<!doctype html><table>
-
-#errors
-(2,0): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| "
-"
-
-#data
-<!doctype html><table><td><span><font></span><span>
-#errors
-(1,26): unexpected-cell-in-table-body
-(1,45): unexpected-end-tag
-(1,51): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <span>
-| <font>
-| <font>
-| <span>
-
-#data
-<!doctype html><form><table></form><form></table></form>
-#errors
-(1,35): unexpected-end-tag-implies-table-voodoo
-(1,35): unexpected-end-tag
-(1,41): unexpected-form-in-table
-(1,56): unexpected-end-tag
-(1,56): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <form>
-| <table>
-| <form>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests17.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests17.dat
deleted file mode 100644
index e49bcf03142..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests17.dat
+++ /dev/null
@@ -1,179 +0,0 @@
-#data
-<!doctype html><table><tbody><select><tr>
-#errors
-(1,37): unexpected-start-tag-implies-table-voodoo
-(1,41): unexpected-table-element-start-tag-in-select-in-table
-(1,41): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| <table>
-| <tbody>
-| <tr>
-
-#data
-<!doctype html><table><tr><select><td>
-#errors
-(1,34): unexpected-start-tag-implies-table-voodoo
-(1,38): unexpected-table-element-start-tag-in-select-in-table
-(1,38): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-
-#data
-<!doctype html><table><tr><td><select><td>
-#errors
-(1,42): unexpected-table-element-start-tag-in-select-in-table
-(1,42): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <select>
-| <td>
-
-#data
-<!doctype html><table><tr><th><select><td>
-#errors
-(1,42): unexpected-table-element-start-tag-in-select-in-table
-(1,42): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <th>
-| <select>
-| <td>
-
-#data
-<!doctype html><table><caption><select><tr>
-#errors
-(1,43): unexpected-table-element-start-tag-in-select-in-table
-(1,43): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-| <select>
-| <tbody>
-| <tr>
-
-#data
-<!doctype html><select><tr>
-#errors
-(1,27): unexpected-start-tag-in-select
-(1,27): eof-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-
-#data
-<!doctype html><select><td>
-#errors
-(1,27): unexpected-start-tag-in-select
-(1,27): eof-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-
-#data
-<!doctype html><select><th>
-#errors
-(1,27): unexpected-start-tag-in-select
-(1,27): eof-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-
-#data
-<!doctype html><select><tbody>
-#errors
-(1,30): unexpected-start-tag-in-select
-(1,30): eof-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-
-#data
-<!doctype html><select><thead>
-#errors
-(1,30): unexpected-start-tag-in-select
-(1,30): eof-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-
-#data
-<!doctype html><select><tfoot>
-#errors
-(1,30): unexpected-start-tag-in-select
-(1,30): eof-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-
-#data
-<!doctype html><select><caption>
-#errors
-(1,32): unexpected-start-tag-in-select
-(1,32): eof-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-
-#data
-<!doctype html><table><tr></table>a
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| "a"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests18.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests18.dat
deleted file mode 100644
index 926bccb3875..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests18.dat
+++ /dev/null
@@ -1,322 +0,0 @@
-#data
-<!doctype html><plaintext></plaintext>
-#errors
-(1,38): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <plaintext>
-| "</plaintext>"
-
-#data
-<!doctype html><table><plaintext></plaintext>
-#errors
-(1,33): foster-parenting-start-tag
-(1,34): foster-parenting-character
-(1,35): foster-parenting-character
-(1,36): foster-parenting-character
-(1,37): foster-parenting-character
-(1,38): foster-parenting-character
-(1,39): foster-parenting-character
-(1,40): foster-parenting-character
-(1,41): foster-parenting-character
-(1,42): foster-parenting-character
-(1,43): foster-parenting-character
-(1,44): foster-parenting-character
-(1,45): foster-parenting-character
-(1,45): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <plaintext>
-| "</plaintext>"
-| <table>
-
-#data
-<!doctype html><table><tbody><plaintext></plaintext>
-#errors
-(1,40): foster-parenting-start-tag
-(1,41): foster-parenting-character
-(1,41): foster-parenting-character
-(1,41): foster-parenting-character
-(1,41): foster-parenting-character
-(1,41): foster-parenting-character
-(1,41): foster-parenting-character
-(1,41): foster-parenting-character
-(1,41): foster-parenting-character
-(1,41): foster-parenting-character
-(1,41): foster-parenting-character
-(1,41): foster-parenting-character
-(1,41): foster-parenting-character
-(1,52): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <plaintext>
-| "</plaintext>"
-| <table>
-| <tbody>
-
-#data
-<!doctype html><table><tbody><tr><plaintext></plaintext>
-#errors
-(1,44): foster-parenting-start-tag
-(1,45): foster-parenting-character
-(1,46): foster-parenting-character
-(1,47): foster-parenting-character
-(1,48): foster-parenting-character
-(1,49): foster-parenting-character
-(1,50): foster-parenting-character
-(1,51): foster-parenting-character
-(1,52): foster-parenting-character
-(1,53): foster-parenting-character
-(1,54): foster-parenting-character
-(1,55): foster-parenting-character
-(1,56): foster-parenting-character
-(1,56): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <plaintext>
-| "</plaintext>"
-| <table>
-| <tbody>
-| <tr>
-
-#data
-<!doctype html><table><td><plaintext></plaintext>
-#errors
-(1,26): unexpected-cell-in-table-body
-(1,49): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <plaintext>
-| "</plaintext>"
-
-#data
-<!doctype html><table><caption><plaintext></plaintext>
-#errors
-(1,54): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-| <plaintext>
-| "</plaintext>"
-
-#data
-<!doctype html><table><tr><style></script></style>abc
-#errors
-(1,51): foster-parenting-character
-(1,52): foster-parenting-character
-(1,53): foster-parenting-character
-(1,53): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "abc"
-| <table>
-| <tbody>
-| <tr>
-| <style>
-| "</script>"
-
-#data
-<!doctype html><table><tr><script></style></script>abc
-#errors
-(1,52): foster-parenting-character
-(1,53): foster-parenting-character
-(1,54): foster-parenting-character
-(1,54): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "abc"
-| <table>
-| <tbody>
-| <tr>
-| <script>
-| "</style>"
-
-#data
-<!doctype html><table><caption><style></script></style>abc
-#errors
-(1,58): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-| <style>
-| "</script>"
-| "abc"
-
-#data
-<!doctype html><table><td><style></script></style>abc
-#errors
-(1,26): unexpected-cell-in-table-body
-(1,53): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <style>
-| "</script>"
-| "abc"
-
-#data
-<!doctype html><select><script></style></script>abc
-#errors
-(1,51): eof-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| <script>
-| "</style>"
-| "abc"
-
-#data
-<!doctype html><table><select><script></style></script>abc
-#errors
-(1,30): unexpected-start-tag-implies-table-voodoo
-(1,58): eof-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| <script>
-| "</style>"
-| "abc"
-| <table>
-
-#data
-<!doctype html><table><tr><select><script></style></script>abc
-#errors
-(1,34): unexpected-start-tag-implies-table-voodoo
-(1,62): eof-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| <script>
-| "</style>"
-| "abc"
-| <table>
-| <tbody>
-| <tr>
-
-#data
-<!doctype html><frameset></frameset><noframes>abc
-#errors
-(1,49): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-| <noframes>
-| "abc"
-
-#data
-<!doctype html><frameset></frameset><noframes>abc</noframes><!--abc-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-| <noframes>
-| "abc"
-| <!-- abc -->
-
-#data
-<!doctype html><frameset></frameset></html><noframes>abc
-#errors
-(1,56): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-| <noframes>
-| "abc"
-
-#data
-<!doctype html><frameset></frameset></html><noframes>abc</noframes><!--abc-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-| <noframes>
-| "abc"
-| <!-- abc -->
-
-#data
-<!doctype html><table><tr></tbody><tfoot>
-#errors
-(1,41): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <tfoot>
-
-#data
-<!doctype html><table><td><svg></svg>abc<td>
-#errors
-(1,26): unexpected-cell-in-table-body
-(1,44): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <svg svg>
-| "abc"
-| <td>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests19.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests19.dat
deleted file mode 100644
index 02158c8bba8..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests19.dat
+++ /dev/null
@@ -1,1524 +0,0 @@
-#data
-<!doctype html><math><mn DefinitionUrl="foo">
-#errors
-(1,45): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mn>
-| definitionURL="foo"
-
-#data
-<!doctype html><html></p><!--foo-->
-#errors
-(1,25): end-tag-after-implied-root
-#document
-| <!DOCTYPE html>
-| <html>
-| <!-- foo -->
-| <head>
-| <body>
-
-#data
-<!doctype html><head></head></p><!--foo-->
-#errors
-(1,32): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <!-- foo -->
-| <body>
-
-#data
-<!doctype html><body><p><pre>
-#errors
-(1,29): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <pre>
-
-#data
-<!doctype html><body><p><listing>
-#errors
-(1,33): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <listing>
-
-#data
-<!doctype html><p><plaintext>
-#errors
-(1,29): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <plaintext>
-
-#data
-<!doctype html><p><h1>
-#errors
-(1,22): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <h1>
-
-#data
-<!doctype html><form><isindex>
-#errors
-(1,30): deprecated-tag
-(1,30): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <form>
-
-#data
-<!doctype html><isindex action="POST">
-#errors
-(1,38): deprecated-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <form>
-| action="POST"
-| <hr>
-| <label>
-| "This is a searchable index. Enter search keywords: "
-| <input>
-| name="isindex"
-| <hr>
-
-#data
-<!doctype html><isindex prompt="this is isindex">
-#errors
-(1,49): deprecated-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <form>
-| <hr>
-| <label>
-| "this is isindex"
-| <input>
-| name="isindex"
-| <hr>
-
-#data
-<!doctype html><isindex type="hidden">
-#errors
-(1,38): deprecated-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <form>
-| <hr>
-| <label>
-| "This is a searchable index. Enter search keywords: "
-| <input>
-| name="isindex"
-| type="hidden"
-| <hr>
-
-#data
-<!doctype html><isindex name="foo">
-#errors
-(1,35): deprecated-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <form>
-| <hr>
-| <label>
-| "This is a searchable index. Enter search keywords: "
-| <input>
-| name="isindex"
-| <hr>
-
-#data
-<!doctype html><ruby><p><rp>
-#errors
-(1,28): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <ruby>
-| <p>
-| <rp>
-
-#data
-<!doctype html><ruby><div><span><rp>
-#errors
-(1,36): XXX-undefined-error
-(1,36): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <ruby>
-| <div>
-| <span>
-| <rp>
-
-#data
-<!doctype html><ruby><div><p><rp>
-#errors
-(1,33): XXX-undefined-error
-(1,33): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <ruby>
-| <div>
-| <p>
-| <rp>
-
-#data
-<!doctype html><ruby><p><rt>
-#errors
-(1,28): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <ruby>
-| <p>
-| <rt>
-
-#data
-<!doctype html><ruby><div><span><rt>
-#errors
-(1,36): XXX-undefined-error
-(1,36): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <ruby>
-| <div>
-| <span>
-| <rt>
-
-#data
-<!doctype html><ruby><div><p><rt>
-#errors
-(1,33): XXX-undefined-error
-(1,33): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <ruby>
-| <div>
-| <p>
-| <rt>
-
-#data
-<html><ruby>a<rb>b<rt></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rb>
-| "b"
-| <rt>
-
-#data
-<html><ruby>a<rp>b<rt></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rp>
-| "b"
-| <rt>
-
-#data
-<html><ruby>a<rt>b<rt></ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rt>
-| "b"
-| <rt>
-
-#data
-<html><ruby>a<rtc>b<rt>c<rb>d</ruby></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| "a"
-| <rtc>
-| "b"
-| <rt>
-| "c"
-| <rb>
-| "d"
-
-#data
-<!doctype html><math/><foo>
-#errors
-(1,27): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-| <foo>
-
-#data
-<!doctype html><svg/><foo>
-#errors
-(1,26): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <foo>
-
-#data
-<!doctype html><div></body><!--foo-->
-#errors
-(1,27): expected-one-end-tag-but-got-another
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <div>
-| <!-- foo -->
-
-#data
-<!doctype html><h1><div><h3><span></h1>foo
-#errors
-(1,39): end-tag-too-early
-(1,42): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <h1>
-| <div>
-| <h3>
-| <span>
-| "foo"
-
-#data
-<!doctype html><p></h3>foo
-#errors
-(1,23): end-tag-too-early
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| "foo"
-
-#data
-<!doctype html><h3><li>abc</h2>foo
-#errors
-(1,31): end-tag-too-early
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <h3>
-| <li>
-| "abc"
-| "foo"
-
-#data
-<!doctype html><table>abc<!--foo-->
-#errors
-(1,23): foster-parenting-character
-(1,24): foster-parenting-character
-(1,25): foster-parenting-character
-(1,35): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "abc"
-| <table>
-| <!-- foo -->
-
-#data
-<!doctype html><table> <!--foo-->
-#errors
-(1,34): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| " "
-| <!-- foo -->
-
-#data
-<!doctype html><table> b <!--foo-->
-#errors
-(1,23): foster-parenting-character
-(1,24): foster-parenting-character
-(1,25): foster-parenting-character
-(1,35): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| " b "
-| <table>
-| <!-- foo -->
-
-#data
-<!doctype html><select><option><option>
-#errors
-(1,39): eof-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| <option>
-| <option>
-
-#data
-<!doctype html><select><option></optgroup>
-#errors
-(1,42): unexpected-end-tag-in-select
-(1,42): eof-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| <option>
-
-#data
-<!doctype html><select><option></optgroup>
-#errors
-(1,42): unexpected-end-tag-in-select
-(1,42): eof-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| <option>
-
-#data
-<!doctype html><dd><optgroup><dd>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <dd>
-| <optgroup>
-| <dd>
-
-#data
-<!doctype html><p><math><mi><p><h1>
-#errors
-(1,35): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <math math>
-| <math mi>
-| <p>
-| <h1>
-
-#data
-<!doctype html><p><math><mo><p><h1>
-#errors
-(1,35): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <math math>
-| <math mo>
-| <p>
-| <h1>
-
-#data
-<!doctype html><p><math><mn><p><h1>
-#errors
-(1,35): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <math math>
-| <math mn>
-| <p>
-| <h1>
-
-#data
-<!doctype html><p><math><ms><p><h1>
-#errors
-(1,35): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <math math>
-| <math ms>
-| <p>
-| <h1>
-
-#data
-<!doctype html><p><math><mtext><p><h1>
-#errors
-(1,38): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <math math>
-| <math mtext>
-| <p>
-| <h1>
-
-#data
-<!doctype html><frameset></noframes>
-#errors
-(1,36): unexpected-end-tag-in-frameset
-(1,36): eof-in-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-
-#data
-<!doctype html><html c=d><body></html><html a=b>
-#errors
-(1,48): non-html-root
-#document
-| <!DOCTYPE html>
-| <html>
-| a="b"
-| c="d"
-| <head>
-| <body>
-
-#data
-<!doctype html><html c=d><frameset></frameset></html><html a=b>
-#errors
-(1,63): non-html-root
-#document
-| <!DOCTYPE html>
-| <html>
-| a="b"
-| c="d"
-| <head>
-| <frameset>
-
-#data
-<!doctype html><html><frameset></frameset></html><!--foo-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-| <!-- foo -->
-
-#data
-<!doctype html><html><frameset></frameset></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-| " "
-
-#data
-<!doctype html><html><frameset></frameset></html>abc
-#errors
-(1,50): expected-eof-but-got-char
-(1,51): expected-eof-but-got-char
-(1,52): expected-eof-but-got-char
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-
-#data
-<!doctype html><html><frameset></frameset></html><p>
-#errors
-(1,52): expected-eof-but-got-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-
-#data
-<!doctype html><html><frameset></frameset></html></p>
-#errors
-(1,53): expected-eof-but-got-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-
-#data
-<html><frameset></frameset></html><!doctype html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,49): unexpected-doctype
-#document
-| <html>
-| <head>
-| <frameset>
-
-#data
-<!doctype html><body><frameset>
-#errors
-(1,31): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-
-#data
-<!doctype html><p><frameset><frame>
-#errors
-(1,28): unexpected-start-tag
-(1,35): eof-in-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-| <frame>
-
-#data
-<!doctype html><p>a<frameset>
-#errors
-(1,29): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| "a"
-
-#data
-<!doctype html><p> <frameset><frame>
-#errors
-(1,29): unexpected-start-tag
-(1,36): eof-in-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-| <frame>
-
-#data
-<!doctype html><pre><frameset>
-#errors
-(1,30): unexpected-start-tag
-(1,30): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <pre>
-
-#data
-<!doctype html><listing><frameset>
-#errors
-(1,34): unexpected-start-tag
-(1,34): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <listing>
-
-#data
-<!doctype html><li><frameset>
-#errors
-(1,29): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <li>
-
-#data
-<!doctype html><dd><frameset>
-#errors
-(1,29): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <dd>
-
-#data
-<!doctype html><dt><frameset>
-#errors
-(1,29): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <dt>
-
-#data
-<!doctype html><button><frameset>
-#errors
-(1,33): unexpected-start-tag
-(1,33): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <button>
-
-#data
-<!doctype html><applet><frameset>
-#errors
-(1,33): unexpected-start-tag
-(1,33): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <applet>
-
-#data
-<!doctype html><marquee><frameset>
-#errors
-(1,34): unexpected-start-tag
-(1,34): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <marquee>
-
-#data
-<!doctype html><object><frameset>
-#errors
-(1,33): unexpected-start-tag
-(1,33): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <object>
-
-#data
-<!doctype html><table><frameset>
-#errors
-(1,32): unexpected-start-tag-implies-table-voodoo
-(1,32): unexpected-start-tag
-(1,32): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-
-#data
-<!doctype html><area><frameset>
-#errors
-(1,31): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <area>
-
-#data
-<!doctype html><basefont><frameset>
-#errors
-(1,35): eof-in-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <basefont>
-| <frameset>
-
-#data
-<!doctype html><bgsound><frameset>
-#errors
-(1,34): eof-in-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <bgsound>
-| <frameset>
-
-#data
-<!doctype html><br><frameset>
-#errors
-(1,29): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <br>
-
-#data
-<!doctype html><embed><frameset>
-#errors
-(1,32): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <embed>
-
-#data
-<!doctype html><img><frameset>
-#errors
-(1,30): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <img>
-
-#data
-<!doctype html><input><frameset>
-#errors
-(1,32): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <input>
-
-#data
-<!doctype html><keygen><frameset>
-#errors
-(1,33): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <keygen>
-
-#data
-<!doctype html><wbr><frameset>
-#errors
-(1,30): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <wbr>
-
-#data
-<!doctype html><hr><frameset>
-#errors
-(1,29): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <hr>
-
-#data
-<!doctype html><textarea></textarea><frameset>
-#errors
-(1,46): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <textarea>
-
-#data
-<!doctype html><xmp></xmp><frameset>
-#errors
-(1,36): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <xmp>
-
-#data
-<!doctype html><iframe></iframe><frameset>
-#errors
-(1,42): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <iframe>
-
-#data
-<!doctype html><select></select><frameset>
-#errors
-(1,42): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-
-#data
-<!doctype html><svg></svg><frameset><frame>
-#errors
-(1,36): unexpected-start-tag
-(1,43): eof-in-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-| <frame>
-
-#data
-<!doctype html><math></math><frameset><frame>
-#errors
-(1,38): unexpected-start-tag
-(1,45): eof-in-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-| <frame>
-
-#data
-<!doctype html><svg><foreignObject><div> <frameset><frame>
-#errors
-(1,51): unexpected-start-tag
-(1,58): eof-in-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-| <frame>
-
-#data
-<!doctype html><svg>a</svg><frameset><frame>
-#errors
-(1,37): unexpected-start-tag
-(1,44): unexpected-start-tag-ignored
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "a"
-
-#data
-<!doctype html><svg> </svg><frameset><frame>
-#errors
-(1,37): unexpected-start-tag
-(1,44): eof-in-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-| <frame>
-
-#data
-<html>aaa<frameset></frameset>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,19): unexpected-start-tag
-(1,30): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| "aaa"
-
-#data
-<html> a <frameset></frameset>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,19): unexpected-start-tag
-(1,30): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| "a "
-
-#data
-<!doctype html><div><frameset>
-#errors
-(1,30): unexpected-start-tag
-(1,30): eof-in-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-
-#data
-<!doctype html><div><body><frameset>
-#errors
-(1,26): unexpected-start-tag
-(1,36): unexpected-start-tag
-(1,36): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <div>
-
-#data
-<!doctype html><p><math></p>a
-#errors
-(1,28): unexpected-end-tag
-(1,28): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <math math>
-| "a"
-
-#data
-<!doctype html><p><math><mn><span></p>a
-#errors
-(1,38): unexpected-end-tag
-(1,39): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <math math>
-| <math mn>
-| <span>
-| <p>
-| "a"
-
-#data
-<!doctype html><math></html>
-#errors
-(1,28): unexpected-end-tag
-(1,28): expected-one-end-tag-but-got-another
-(1,28): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-
-#data
-<!doctype html><meta charset="ascii">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <meta>
-| charset="ascii"
-| <body>
-
-#data
-<!doctype html><meta http-equiv="content-type" content="text/html;charset=ascii">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <meta>
-| content="text/html;charset=ascii"
-| http-equiv="content-type"
-| <body>
-
-#data
-<!doctype html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset="utf8">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <!-- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -->
-| <meta>
-| charset="utf8"
-| <body>
-
-#data
-<!doctype html><html a=b><head></head><html c=d>
-#errors
-(1,48): non-html-root
-#document
-| <!DOCTYPE html>
-| <html>
-| a="b"
-| c="d"
-| <head>
-| <body>
-
-#data
-<!doctype html><image/>
-#errors
-(1,23): image-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <img>
-
-#data
-<!doctype html>a<i>b<table>c<b>d</i>e</b>f
-#errors
-(1,28): foster-parenting-character
-(1,31): foster-parenting-start-tag
-(1,32): foster-parenting-character
-(1,36): foster-parenting-end-tag
-(1,36): adoption-agency-1.3
-(1,37): foster-parenting-character
-(1,41): foster-parenting-end-tag
-(1,42): foster-parenting-character
-(1,42): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "a"
-| <i>
-| "bc"
-| <b>
-| "de"
-| "f"
-| <table>
-
-#data
-<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f
-#errors
-(1,25): foster-parenting-start-tag
-(1,26): foster-parenting-character
-(1,29): foster-parenting-start-tag
-(1,30): foster-parenting-character
-(1,35): foster-parenting-start-tag
-(1,36): foster-parenting-character
-(1,39): foster-parenting-start-tag
-(1,40): foster-parenting-character
-(1,44): foster-parenting-end-tag
-(1,44): adoption-agency-1.3
-(1,44): adoption-agency-1.3
-(1,45): foster-parenting-character
-(1,49): foster-parenting-end-tag
-(1,49): adoption-agency-1.3
-(1,49): adoption-agency-1.3
-(1,50): foster-parenting-character
-(1,50): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <i>
-| "a"
-| <b>
-| "b"
-| <b>
-| <div>
-| <b>
-| <i>
-| "c"
-| <a>
-| "d"
-| <a>
-| "e"
-| <a>
-| "f"
-| <table>
-
-#data
-<!doctype html><i>a<b>b<div>c<a>d</i>e</b>f
-#errors
-(1,37): adoption-agency-1.3
-(1,37): adoption-agency-1.3
-(1,42): adoption-agency-1.3
-(1,42): adoption-agency-1.3
-(1,43): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <i>
-| "a"
-| <b>
-| "b"
-| <b>
-| <div>
-| <b>
-| <i>
-| "c"
-| <a>
-| "d"
-| <a>
-| "e"
-| <a>
-| "f"
-
-#data
-<!doctype html><table><i>a<b>b<div>c</i>
-#errors
-(1,25): foster-parenting-start-tag
-(1,26): foster-parenting-character
-(1,29): foster-parenting-start-tag
-(1,30): foster-parenting-character
-(1,35): foster-parenting-start-tag
-(1,36): foster-parenting-character
-(1,40): foster-parenting-end-tag
-(1,40): adoption-agency-1.3
-(1,40): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <i>
-| "a"
-| <b>
-| "b"
-| <b>
-| <div>
-| <i>
-| "c"
-| <table>
-
-#data
-<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f
-#errors
-(1,25): foster-parenting-start-tag
-(1,26): foster-parenting-character
-(1,29): foster-parenting-start-tag
-(1,30): foster-parenting-character
-(1,35): foster-parenting-start-tag
-(1,36): foster-parenting-character
-(1,39): foster-parenting-start-tag
-(1,40): foster-parenting-character
-(1,44): foster-parenting-end-tag
-(1,44): adoption-agency-1.3
-(1,44): adoption-agency-1.3
-(1,45): foster-parenting-character
-(1,49): foster-parenting-end-tag
-(1,44): adoption-agency-1.3
-(1,44): adoption-agency-1.3
-(1,50): foster-parenting-character
-(1,50): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <i>
-| "a"
-| <b>
-| "b"
-| <b>
-| <div>
-| <b>
-| <i>
-| "c"
-| <a>
-| "d"
-| <a>
-| "e"
-| <a>
-| "f"
-| <table>
-
-#data
-<!doctype html><table><i>a<div>b<tr>c<b>d</i>e
-#errors
-(1,25): foster-parenting-start-tag
-(1,26): foster-parenting-character
-(1,31): foster-parenting-start-tag
-(1,32): foster-parenting-character
-(1,37): foster-parenting-character
-(1,40): foster-parenting-start-tag
-(1,41): foster-parenting-character
-(1,45): foster-parenting-end-tag
-(1,45): adoption-agency-1.3
-(1,46): foster-parenting-character
-(1,46): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <i>
-| "a"
-| <div>
-| "b"
-| <i>
-| "c"
-| <b>
-| "d"
-| <b>
-| "e"
-| <table>
-| <tbody>
-| <tr>
-
-#data
-<!doctype html><table><td><table><i>a<div>b<b>c</i>d
-#errors
-(1,26): unexpected-cell-in-table-body
-(1,36): foster-parenting-start-tag
-(1,37): foster-parenting-character
-(1,42): foster-parenting-start-tag
-(1,43): foster-parenting-character
-(1,46): foster-parenting-start-tag
-(1,47): foster-parenting-character
-(1,51): foster-parenting-end-tag
-(1,51): adoption-agency-1.3
-(1,51): adoption-agency-1.3
-(1,52): foster-parenting-character
-(1,52): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <i>
-| "a"
-| <div>
-| <i>
-| "b"
-| <b>
-| "c"
-| <b>
-| "d"
-| <table>
-
-#data
-<!doctype html><body><bgsound>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <bgsound>
-
-#data
-<!doctype html><body><basefont>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <basefont>
-
-#data
-<!doctype html><a><b></a><basefont>
-#errors
-(1,25): adoption-agency-1.3
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <a>
-| <b>
-| <basefont>
-
-#data
-<!doctype html><a><b></a><bgsound>
-#errors
-(1,25): adoption-agency-1.3
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <a>
-| <b>
-| <bgsound>
-
-#data
-<!doctype html><figcaption><article></figcaption>a
-#errors
-(1,49): end-tag-too-early
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <figcaption>
-| <article>
-| "a"
-
-#data
-<!doctype html><summary><article></summary>a
-#errors
-(1,43): end-tag-too-early
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <summary>
-| <article>
-| "a"
-
-#data
-<!doctype html><p><a><plaintext>b
-#errors
-(1,32): unexpected-end-tag
-(1,33): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <a>
-| <plaintext>
-| <a>
-| "b"
-
-#data
-<!DOCTYPE html><div>a<a></div>b<p>c</p>d
-#errors
-(1,30): end-tag-too-early
-(1,40): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <div>
-| "a"
-| <a>
-| <a>
-| "b"
-| <p>
-| "c"
-| "d"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests2.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests2.dat
deleted file mode 100644
index 41953160f00..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests2.dat
+++ /dev/null
@@ -1,799 +0,0 @@
-#data
-<!DOCTYPE html>Test
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "Test"
-
-#data
-<textarea>test</div>test
-#errors
-(1,10): expected-doctype-but-got-start-tag
-(1,24): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <textarea>
-| "test</div>test"
-
-#data
-<table><td>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,11): unexpected-cell-in-table-body
-(1,11): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-
-#data
-<table><td>test</tbody></table>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,11): unexpected-cell-in-table-body
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| "test"
-
-#data
-<frame>test
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,7): unexpected-start-tag-ignored
-#document
-| <html>
-| <head>
-| <body>
-| "test"
-
-#data
-<!DOCTYPE html><frameset>test
-#errors
-(1,29): unexpected-char-in-frameset
-(1,29): unexpected-char-in-frameset
-(1,29): unexpected-char-in-frameset
-(1,29): unexpected-char-in-frameset
-(1,29): eof-in-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-
-#data
-<!DOCTYPE html><frameset> te st
-#errors
-(1,29): unexpected-char-in-frameset
-(1,29): unexpected-char-in-frameset
-(1,29): unexpected-char-in-frameset
-(1,29): unexpected-char-in-frameset
-(1,29): eof-in-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-| " "
-
-#data
-<!DOCTYPE html><frameset></frameset> te st
-#errors
-(1,29): unexpected-char-after-frameset
-(1,29): unexpected-char-after-frameset
-(1,29): unexpected-char-after-frameset
-(1,29): unexpected-char-after-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-| " "
-
-#data
-<!DOCTYPE html><frameset><!DOCTYPE html>
-#errors
-(1,40): unexpected-doctype
-(1,40): eof-in-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-
-#data
-<!DOCTYPE html><font><p><b>test</font>
-#errors
-(1,38): adoption-agency-1.3
-(1,38): adoption-agency-1.3
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <font>
-| <p>
-| <font>
-| <b>
-| "test"
-
-#data
-<!DOCTYPE html><dt><div><dd>
-#errors
-(1,28): end-tag-too-early
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <dt>
-| <div>
-| <dd>
-
-#data
-<script></x
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,11): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <script>
-| "</x"
-| <body>
-
-#data
-<table><plaintext><td>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,18): unexpected-start-tag-implies-table-voodoo
-(1,22): foster-parenting-character-in-table
-(1,22): foster-parenting-character-in-table
-(1,22): foster-parenting-character-in-table
-(1,22): foster-parenting-character-in-table
-(1,22): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <plaintext>
-| "<td>"
-| <table>
-
-#data
-<plaintext></plaintext>
-#errors
-(1,11): expected-doctype-but-got-start-tag
-(1,23): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <plaintext>
-| "</plaintext>"
-
-#data
-<!DOCTYPE html><table><tr>TEST
-#errors
-(1,30): foster-parenting-character-in-table
-(1,30): foster-parenting-character-in-table
-(1,30): foster-parenting-character-in-table
-(1,30): foster-parenting-character-in-table
-(1,30): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "TEST"
-| <table>
-| <tbody>
-| <tr>
-
-#data
-<!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4>
-#errors
-(1,37): unexpected-start-tag
-(1,53): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| t1="1"
-| t2="2"
-| t3="3"
-| t4="4"
-
-#data
-</b test
-#errors
-(1,8): eof-in-attribute-name
-(1,8): expected-doctype-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<!DOCTYPE html></b test<b &=&amp>X
-#errors
-(1,24): invalid-character-in-attribute-name
-(1,32): named-entity-without-semicolon
-(1,33): attributes-in-end-tag
-(1,33): unexpected-end-tag-before-html
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "X"
-
-#data
-<!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt
-#errors
-(1,9): need-space-after-doctype
-(1,54): expected-named-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| type="text/x-foobar;baz"
-| "X</SCRipt"
-| <body>
-
-#data
-&
-#errors
-(1,1): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "&"
-
-#data
-&#
-#errors
-(1,2): expected-numeric-entity
-(1,2): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "&#"
-
-#data
-&#X
-#errors
-(1,3): expected-numeric-entity
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "&#X"
-
-#data
-&#x
-#errors
-(1,3): expected-numeric-entity
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "&#x"
-
-#data
-&#45
-#errors
-(1,4): numeric-entity-without-semicolon
-(1,4): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "-"
-
-#data
-&x-test
-#errors
-(1,2): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "&x-test"
-
-#data
-<!doctypehtml><p><li>
-#errors
-(1,9): need-space-after-doctype
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <li>
-
-#data
-<!doctypehtml><p><dt>
-#errors
-(1,9): need-space-after-doctype
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <dt>
-
-#data
-<!doctypehtml><p><dd>
-#errors
-(1,9): need-space-after-doctype
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <dd>
-
-#data
-<!doctypehtml><p><form>
-#errors
-(1,9): need-space-after-doctype
-(1,23): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <form>
-
-#data
-<!DOCTYPE html><p></P>X
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| "X"
-
-#data
-&AMP
-#errors
-(1,4): named-entity-without-semicolon
-(1,4): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "&"
-
-#data
-&AMp;
-#errors
-(1,3): expected-named-entity
-(1,3): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "&AMp;"
-
-#data
-<!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY>
-#errors
-(1,110): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly>
-
-#data
-<!DOCTYPE html>X</body>X
-#errors
-(1,24): unexpected-char-after-body
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "XX"
-
-#data
-<!DOCTYPE html><!-- X
-#errors
-(1,21): eof-in-comment
-#document
-| <!DOCTYPE html>
-| <!-- X -->
-| <html>
-| <head>
-| <body>
-
-#data
-<!DOCTYPE html><table><caption>test TEST</caption><td>test
-#errors
-(1,54): unexpected-cell-in-table-body
-(1,58): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-| "test TEST"
-| <tbody>
-| <tr>
-| <td>
-| "test"
-
-#data
-<!DOCTYPE html><select><option><optgroup>
-#errors
-(1,41): eof-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| <option>
-| <optgroup>
-
-#data
-<!DOCTYPE html><select><optgroup><option></optgroup><option><select><option>
-#errors
-(1,68): unexpected-select-in-select
-(1,76): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| <optgroup>
-| <option>
-| <option>
-| <option>
-
-#data
-<!DOCTYPE html><select><optgroup><option><optgroup>
-#errors
-(1,51): eof-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| <optgroup>
-| <option>
-| <optgroup>
-
-#data
-<!DOCTYPE html><datalist><option>foo</datalist>bar
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <datalist>
-| <option>
-| "foo"
-| "bar"
-
-#data
-<!DOCTYPE html><font><input><input></font>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <font>
-| <input>
-| <input>
-
-#data
-<!DOCTYPE html><!-- XXX - XXX -->
-#errors
-#document
-| <!DOCTYPE html>
-| <!-- XXX - XXX -->
-| <html>
-| <head>
-| <body>
-
-#data
-<!DOCTYPE html><!-- XXX - XXX
-#errors
-(1,29): eof-in-comment
-#document
-| <!DOCTYPE html>
-| <!-- XXX - XXX -->
-| <html>
-| <head>
-| <body>
-
-#data
-<!DOCTYPE html><!-- XXX - XXX - XXX -->
-#errors
-#document
-| <!DOCTYPE html>
-| <!-- XXX - XXX - XXX -->
-| <html>
-| <head>
-| <body>
-
-#data
-<isindex test=x name=x>
-#errors
-(1,23): expected-doctype-but-got-start-tag
-(1,23): deprecated-tag
-#document
-| <html>
-| <head>
-| <body>
-| <form>
-| <hr>
-| <label>
-| "This is a searchable index. Enter search keywords: "
-| <input>
-| name="isindex"
-| test="x"
-| <hr>
-
-#data
-test
-test
-#errors
-(2,4): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "test
-test"
-
-#data
-<!DOCTYPE html><body><title>test</body></title>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <title>
-| "test</body>"
-
-#data
-<!DOCTYPE html><body><title>X</title><meta name=z><link rel=foo><style>
-x { content:"</style" } </style>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <title>
-| "X"
-| <meta>
-| name="z"
-| <link>
-| rel="foo"
-| <style>
-| "
-x { content:"</style" } "
-
-#data
-<!DOCTYPE html><select><optgroup></optgroup></select>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| <optgroup>
-
-#data
-
-
-#errors
-(2,1): expected-doctype-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<!DOCTYPE html> <html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-
-#data
-<!DOCTYPE html><script>
-</script> <title>x</title> </head>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <script>
-| "
-"
-| " "
-| <title>
-| "x"
-| " "
-| <body>
-
-#data
-<!DOCTYPE html><html><body><html id=x>
-#errors
-(1,38): non-html-root
-#document
-| <!DOCTYPE html>
-| <html>
-| id="x"
-| <head>
-| <body>
-
-#data
-<!DOCTYPE html>X</body><html id="x">
-#errors
-(1,36): non-html-root
-#document
-| <!DOCTYPE html>
-| <html>
-| id="x"
-| <head>
-| <body>
-| "X"
-
-#data
-<!DOCTYPE html><head><html id=x>
-#errors
-(1,32): non-html-root
-#document
-| <!DOCTYPE html>
-| <html>
-| id="x"
-| <head>
-| <body>
-
-#data
-<!DOCTYPE html>X</html>X
-#errors
-(1,24): expected-eof-but-got-char
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "XX"
-
-#data
-<!DOCTYPE html>X</html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "X "
-
-#data
-<!DOCTYPE html>X</html><p>X
-#errors
-(1,26): expected-eof-but-got-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "X"
-| <p>
-| "X"
-
-#data
-<!DOCTYPE html>X<p/x/y/z>
-#errors
-(1,19): unexpected-character-after-solidus-in-tag
-(1,21): unexpected-character-after-solidus-in-tag
-(1,23): unexpected-character-after-solidus-in-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "X"
-| <p>
-| x=""
-| y=""
-| z=""
-
-#data
-<!DOCTYPE html><!--x--
-#errors
-(1,22): eof-in-comment-double-dash
-#document
-| <!DOCTYPE html>
-| <!-- x -->
-| <html>
-| <head>
-| <body>
-
-#data
-<!DOCTYPE html><table><tr><td></p></table>
-#errors
-(1,34): unexpected-end-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <p>
-
-#data
-<!DOCTYPE <!DOCTYPE HTML>><!--<!--x-->-->
-#errors
-(1,20): expected-space-or-right-bracket-in-doctype
-(1,25): unknown-doctype
-(1,35): unexpected-char-in-comment
-#document
-| <!DOCTYPE <!doctype>
-| <html>
-| <head>
-| <body>
-| ">"
-| <!-- <!--x -->
-| "-->"
-
-#data
-<!doctype html><div><form></form><div></div></div>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <div>
-| <form>
-| <div>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests20.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests20.dat
deleted file mode 100644
index 52c5acdc6e6..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests20.dat
+++ /dev/null
@@ -1,516 +0,0 @@
-#data
-<!doctype html><p><button><button>
-#errors
-(1,34): unexpected-start-tag-implies-end-tag
-(1,34): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <button>
-
-#data
-<!doctype html><p><button><address>
-#errors
-(1,35): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <address>
-
-#data
-<!doctype html><p><button><blockquote>
-#errors
-(1,38): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <blockquote>
-
-#data
-<!doctype html><p><button><menu>
-#errors
-(1,32): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <menu>
-
-#data
-<!doctype html><p><button><p>
-#errors
-(1,29): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <p>
-
-#data
-<!doctype html><p><button><ul>
-#errors
-(1,30): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <ul>
-
-#data
-<!doctype html><p><button><h1>
-#errors
-(1,30): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <h1>
-
-#data
-<!doctype html><p><button><h6>
-#errors
-(1,30): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <h6>
-
-#data
-<!doctype html><p><button><listing>
-#errors
-(1,35): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <listing>
-
-#data
-<!doctype html><p><button><pre>
-#errors
-(1,31): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <pre>
-
-#data
-<!doctype html><p><button><form>
-#errors
-(1,32): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <form>
-
-#data
-<!doctype html><p><button><li>
-#errors
-(1,30): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <li>
-
-#data
-<!doctype html><p><button><dd>
-#errors
-(1,30): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <dd>
-
-#data
-<!doctype html><p><button><dt>
-#errors
-(1,30): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <dt>
-
-#data
-<!doctype html><p><button><plaintext>
-#errors
-(1,37): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <plaintext>
-
-#data
-<!doctype html><p><button><table>
-#errors
-(1,33): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <table>
-
-#data
-<!doctype html><p><button><hr>
-#errors
-(1,30): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <hr>
-
-#data
-<!doctype html><p><button><xmp>
-#errors
-(1,31): expected-named-closing-tag-but-got-eof
-(1,31): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <xmp>
-
-#data
-<!doctype html><p><button></p>
-#errors
-(1,30): unexpected-end-tag
-(1,30): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <button>
-| <p>
-
-#data
-<!doctype html><address><button></address>a
-#errors
-(1,42): end-tag-too-early
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <address>
-| <button>
-| "a"
-
-#data
-<!doctype html><address><button></address>a
-#errors
-(1,42): end-tag-too-early
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <address>
-| <button>
-| "a"
-
-#data
-<p><table></p>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,14): unexpected-end-tag-implies-table-voodoo
-(1,14): unexpected-end-tag
-(1,14): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <p>
-| <table>
-
-#data
-<!doctype html><svg>
-#errors
-(1,20): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-
-#data
-<!doctype html><p><figcaption>
-#errors
-(1,30): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <figcaption>
-
-#data
-<!doctype html><p><summary>
-#errors
-(1,27): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <summary>
-
-#data
-<!doctype html><form><table><form>
-#errors
-(1,34): unexpected-form-in-table
-(1,34): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <form>
-| <table>
-
-#data
-<!doctype html><table><form><form>
-#errors
-(1,28): unexpected-form-in-table
-(1,34): unexpected-form-in-table
-(1,34): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <form>
-
-#data
-<!doctype html><table><form></table><form>
-#errors
-(1,28): unexpected-form-in-table
-(1,42): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <form>
-
-#data
-<!doctype html><svg><foreignObject><p>
-#errors
-(1,38): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg foreignObject>
-| <p>
-
-#data
-<!doctype html><svg><title>abc
-#errors
-(1,30): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg title>
-| "abc"
-
-#data
-<option><span><option>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,22): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <option>
-| <span>
-| <option>
-
-#data
-<option><option>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,16): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <option>
-| <option>
-
-#data
-<math><annotation-xml><div>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,27): unexpected-html-element-in-foreign-content
-(1,27): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math annotation-xml>
-| <div>
-
-#data
-<math><annotation-xml encoding="application/svg+xml"><div>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,58): unexpected-html-element-in-foreign-content
-(1,58): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math annotation-xml>
-| encoding="application/svg+xml"
-| <div>
-
-#data
-<math><annotation-xml encoding="application/xhtml+xml"><div>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,60): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math annotation-xml>
-| encoding="application/xhtml+xml"
-| <div>
-
-#data
-<math><annotation-xml encoding="aPPlication/xhtmL+xMl"><div>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,60): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math annotation-xml>
-| encoding="aPPlication/xhtmL+xMl"
-| <div>
-
-#data
-<math><annotation-xml encoding="text/html"><div>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,48): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math annotation-xml>
-| encoding="text/html"
-| <div>
-
-#data
-<math><annotation-xml encoding="Text/htmL"><div>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,48): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math annotation-xml>
-| encoding="Text/htmL"
-| <div>
-
-#data
-<math><annotation-xml encoding=" text/html "><div>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,50): unexpected-html-element-in-foreign-content
-(1,50): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math annotation-xml>
-| encoding=" text/html "
-| <div>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests21.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests21.dat
deleted file mode 100644
index d384a55564c..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests21.dat
+++ /dev/null
@@ -1,305 +0,0 @@
-#data
-<svg><![CDATA[foo]]>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,20): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "foo"
-
-#data
-<math><![CDATA[foo]]>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,21): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| "foo"
-
-#data
-<div><![CDATA[foo]]>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,7): expected-dashes-or-doctype
-(1,20): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <!-- [CDATA[foo]] -->
-
-#data
-<svg><![CDATA[foo
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,17): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "foo"
-
-#data
-<svg><![CDATA[foo
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,17): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "foo"
-
-#data
-<svg><![CDATA[
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,14): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-
-#data
-<svg><![CDATA[]]>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,17): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-
-#data
-<svg><![CDATA[]] >]]>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,21): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "]] >"
-
-#data
-<svg><![CDATA[]] >]]>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,21): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "]] >"
-
-#data
-<svg><![CDATA[]]
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,16): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "]]"
-
-#data
-<svg><![CDATA[]
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,15): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "]"
-
-#data
-<svg><![CDATA[]>a
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,17): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "]>a"
-
-#data
-<!DOCTYPE html><svg><![CDATA[foo]]]>
-#errors
-(1,36): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "foo]"
-
-#data
-<!DOCTYPE html><svg><![CDATA[foo]]]]>
-#errors
-(1,37): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "foo]]"
-
-#data
-<!DOCTYPE html><svg><![CDATA[foo]]]]]>
-#errors
-(1,38): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "foo]]]"
-
-#data
-<svg><foreignObject><div><![CDATA[foo]]>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,27): expected-dashes-or-doctype
-(1,40): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg foreignObject>
-| <div>
-| <!-- [CDATA[foo]] -->
-
-#data
-<svg><![CDATA[<svg>]]>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,22): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "<svg>"
-
-#data
-<svg><![CDATA[</svg>a]]>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,24): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "</svg>a"
-
-#data
-<svg><![CDATA[<svg>a
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,20): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "<svg>a"
-
-#data
-<svg><![CDATA[</svg>a
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,21): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "</svg>a"
-
-#data
-<svg><![CDATA[<svg>]]><path>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,28): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "<svg>"
-| <svg path>
-
-#data
-<svg><![CDATA[<svg>]]></path>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,29): unexpected-end-tag
-(1,29): unexpected-end-tag
-(1,29): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "<svg>"
-
-#data
-<svg><![CDATA[<svg>]]><!--path-->
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,33): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "<svg>"
-| <!-- path -->
-
-#data
-<svg><![CDATA[<svg>]]>path
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,26): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "<svg>path"
-
-#data
-<svg><![CDATA[<!--svg-->]]>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,27): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| "<!--svg-->"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests22.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests22.dat
deleted file mode 100644
index 31e6d9e3310..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests22.dat
+++ /dev/null
@@ -1,190 +0,0 @@
-#data
-<a><b><big><em><strong><div>X</a>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,33): adoption-agency-1.3
-(1,33): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| <b>
-| <big>
-| <em>
-| <strong>
-| <big>
-| <em>
-| <strong>
-| <div>
-| <a>
-| "X"
-
-#data
-<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8>A</a>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,91): adoption-agency-1.3
-(1,91): adoption-agency-1.3
-(1,91): adoption-agency-1.3
-(1,91): adoption-agency-1.3
-(1,91): adoption-agency-1.3
-(1,91): adoption-agency-1.3
-(1,91): adoption-agency-1.3
-(1,91): adoption-agency-1.3
-(1,91): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| <b>
-| <b>
-| <div>
-| id="1"
-| <a>
-| <div>
-| id="2"
-| <a>
-| <div>
-| id="3"
-| <a>
-| <div>
-| id="4"
-| <a>
-| <div>
-| id="5"
-| <a>
-| <div>
-| id="6"
-| <a>
-| <div>
-| id="7"
-| <a>
-| <div>
-| id="8"
-| <a>
-| "A"
-
-#data
-<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9>A</a>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,101): adoption-agency-1.3
-(1,101): adoption-agency-1.3
-(1,101): adoption-agency-1.3
-(1,101): adoption-agency-1.3
-(1,101): adoption-agency-1.3
-(1,101): adoption-agency-1.3
-(1,101): adoption-agency-1.3
-(1,101): adoption-agency-1.3
-(1,101): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| <b>
-| <b>
-| <div>
-| id="1"
-| <a>
-| <div>
-| id="2"
-| <a>
-| <div>
-| id="3"
-| <a>
-| <div>
-| id="4"
-| <a>
-| <div>
-| id="5"
-| <a>
-| <div>
-| id="6"
-| <a>
-| <div>
-| id="7"
-| <a>
-| <div>
-| id="8"
-| <a>
-| <div>
-| id="9"
-| "A"
-
-#data
-<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9><div id=10>A</a>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,112): adoption-agency-1.3
-(1,112): adoption-agency-1.3
-(1,112): adoption-agency-1.3
-(1,112): adoption-agency-1.3
-(1,112): adoption-agency-1.3
-(1,112): adoption-agency-1.3
-(1,112): adoption-agency-1.3
-(1,112): adoption-agency-1.3
-(1,112): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| <b>
-| <b>
-| <div>
-| id="1"
-| <a>
-| <div>
-| id="2"
-| <a>
-| <div>
-| id="3"
-| <a>
-| <div>
-| id="4"
-| <a>
-| <div>
-| id="5"
-| <a>
-| <div>
-| id="6"
-| <a>
-| <div>
-| id="7"
-| <a>
-| <div>
-| id="8"
-| <a>
-| <div>
-| id="9"
-| <div>
-| id="10"
-| "A"
-
-#data
-<cite><b><cite><i><cite><i><cite><i><div>X</b>TEST
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,46): adoption-agency-1.3
-(1,50): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <cite>
-| <b>
-| <cite>
-| <i>
-| <cite>
-| <i>
-| <cite>
-| <i>
-| <i>
-| <i>
-| <div>
-| <b>
-| "X"
-| "TEST"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests23.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests23.dat
deleted file mode 100644
index 49e4a4ace58..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests23.dat
+++ /dev/null
@@ -1,168 +0,0 @@
-#data
-<p><font size=4><font color=red><font size=4><font size=4><font size=4><font size=4><font size=4><font color=red><p>X
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,116): unexpected-end-tag
-(1,117): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <font>
-| size="4"
-| <font>
-| color="red"
-| <font>
-| size="4"
-| <font>
-| size="4"
-| <font>
-| size="4"
-| <font>
-| size="4"
-| <font>
-| size="4"
-| <font>
-| color="red"
-| <p>
-| <font>
-| color="red"
-| <font>
-| size="4"
-| <font>
-| size="4"
-| <font>
-| size="4"
-| <font>
-| color="red"
-| "X"
-
-#data
-<p><font size=4><font size=4><font size=4><font size=4><p>X
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,58): unexpected-end-tag
-(1,59): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <font>
-| size="4"
-| <font>
-| size="4"
-| <font>
-| size="4"
-| <font>
-| size="4"
-| <p>
-| <font>
-| size="4"
-| <font>
-| size="4"
-| <font>
-| size="4"
-| "X"
-
-#data
-<p><font size=4><font size=4><font size=4><font size="5"><font size=4><p>X
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,73): unexpected-end-tag
-(1,74): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <font>
-| size="4"
-| <font>
-| size="4"
-| <font>
-| size="4"
-| <font>
-| size="5"
-| <font>
-| size="4"
-| <p>
-| <font>
-| size="4"
-| <font>
-| size="4"
-| <font>
-| size="5"
-| <font>
-| size="4"
-| "X"
-
-#data
-<p><font size=4 id=a><font size=4 id=b><font size=4><font size=4><p>X
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,68): unexpected-end-tag
-(1,69): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <font>
-| id="a"
-| size="4"
-| <font>
-| id="b"
-| size="4"
-| <font>
-| size="4"
-| <font>
-| size="4"
-| <p>
-| <font>
-| id="a"
-| size="4"
-| <font>
-| id="b"
-| size="4"
-| <font>
-| size="4"
-| <font>
-| size="4"
-| "X"
-
-#data
-<p><b id=a><b id=a><b id=a><b><object><b id=a><b id=a>X</object><p>Y
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,64): end-tag-too-early
-(1,67): unexpected-end-tag
-(1,68): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <b>
-| id="a"
-| <b>
-| id="a"
-| <b>
-| id="a"
-| <b>
-| <object>
-| <b>
-| id="a"
-| <b>
-| id="a"
-| "X"
-| <p>
-| <b>
-| id="a"
-| <b>
-| id="a"
-| <b>
-| id="a"
-| <b>
-| "Y"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests24.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests24.dat
deleted file mode 100644
index f6dc7eb48a5..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests24.dat
+++ /dev/null
@@ -1,79 +0,0 @@
-#data
-<!DOCTYPE html>&NotEqualTilde;
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "≂̸"
-
-#data
-<!DOCTYPE html>&NotEqualTilde;A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "≂̸A"
-
-#data
-<!DOCTYPE html>&ThickSpace;
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "  "
-
-#data
-<!DOCTYPE html>&ThickSpace;A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "  A"
-
-#data
-<!DOCTYPE html>&NotSubset;
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "⊂⃒"
-
-#data
-<!DOCTYPE html>&NotSubset;A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "⊂⃒A"
-
-#data
-<!DOCTYPE html>&Gopf;
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "𝔾"
-
-#data
-<!DOCTYPE html>&Gopf;A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "𝔾A"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests25.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests25.dat
deleted file mode 100644
index 103574ee4b7..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests25.dat
+++ /dev/null
@@ -1,232 +0,0 @@
-#data
-<!DOCTYPE html><body><foo>A
-#errors
-(1,27): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <foo>
-| "A"
-
-#data
-<!DOCTYPE html><body><area>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <area>
-| "A"
-
-#data
-<!DOCTYPE html><body><base>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <base>
-| "A"
-
-#data
-<!DOCTYPE html><body><basefont>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <basefont>
-| "A"
-
-#data
-<!DOCTYPE html><body><bgsound>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <bgsound>
-| "A"
-
-#data
-<!DOCTYPE html><body><br>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <br>
-| "A"
-
-#data
-<!DOCTYPE html><body><col>A
-#errors
-(1,26): unexpected-start-tag-ignored
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "A"
-
-#data
-<!DOCTYPE html><body><command>A
-#errors
-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <command>
-| "A"
-
-#data
-<!DOCTYPE html><body><menuitem>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <menuitem>
-| "A"
-
-#data
-<!DOCTYPE html><body><embed>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <embed>
-| "A"
-
-#data
-<!DOCTYPE html><body><frame>A
-#errors
-(1,28): unexpected-start-tag-ignored
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "A"
-
-#data
-<!DOCTYPE html><body><hr>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <hr>
-| "A"
-
-#data
-<!DOCTYPE html><body><img>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <img>
-| "A"
-
-#data
-<!DOCTYPE html><body><input>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <input>
-| "A"
-
-#data
-<!DOCTYPE html><body><keygen>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <keygen>
-| "A"
-
-#data
-<!DOCTYPE html><body><link>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <link>
-| "A"
-
-#data
-<!DOCTYPE html><body><meta>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <meta>
-| "A"
-
-#data
-<!DOCTYPE html><body><param>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <param>
-| "A"
-
-#data
-<!DOCTYPE html><body><source>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <source>
-| "A"
-
-#data
-<!DOCTYPE html><body><track>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <track>
-| "A"
-
-#data
-<!DOCTYPE html><body><wbr>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <wbr>
-| "A"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests26.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests26.dat
deleted file mode 100644
index 8964624a4f3..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests26.dat
+++ /dev/null
@@ -1,388 +0,0 @@
-#data
-<!DOCTYPE html><body><a href='#1'><nobr>1<nobr></a><br><a href='#2'><nobr>2<nobr></a><br><a href='#3'><nobr>3<nobr></a>
-#errors
-(1,47): unexpected-start-tag-implies-end-tag
-(1,51): adoption-agency-1.3
-(1,74): unexpected-start-tag-implies-end-tag
-(1,74): adoption-agency-1.3
-(1,81): unexpected-start-tag-implies-end-tag
-(1,85): adoption-agency-1.3
-(1,108): unexpected-start-tag-implies-end-tag
-(1,108): adoption-agency-1.3
-(1,115): unexpected-start-tag-implies-end-tag
-(1,119): adoption-agency-1.3
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <a>
-| href="#1"
-| <nobr>
-| "1"
-| <nobr>
-| <nobr>
-| <br>
-| <a>
-| href="#2"
-| <a>
-| href="#2"
-| <nobr>
-| "2"
-| <nobr>
-| <nobr>
-| <br>
-| <a>
-| href="#3"
-| <a>
-| href="#3"
-| <nobr>
-| "3"
-| <nobr>
-
-#data
-<!DOCTYPE html><body><b><nobr>1<nobr></b><i><nobr>2<nobr></i>3
-#errors
-(1,37): unexpected-start-tag-implies-end-tag
-(1,41): adoption-agency-1.3
-(1,50): unexpected-start-tag-implies-end-tag
-(1,50): adoption-agency-1.3
-(1,57): unexpected-start-tag-implies-end-tag
-(1,61): adoption-agency-1.3
-(1,62): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <b>
-| <nobr>
-| "1"
-| <nobr>
-| <nobr>
-| <i>
-| <i>
-| <nobr>
-| "2"
-| <nobr>
-| <nobr>
-| "3"
-
-#data
-<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3
-#errors
-(1,44): foster-parenting-start-tag
-(1,48): foster-parenting-end-tag
-(1,48): adoption-agency-1.3
-(1,51): foster-parenting-start-tag
-(1,57): foster-parenting-start-tag
-(1,57): nobr-already-in-scope
-(1,57): adoption-agency-1.2
-(1,58): foster-parenting-character
-(1,64): foster-parenting-start-tag
-(1,64): nobr-already-in-scope
-(1,68): foster-parenting-end-tag
-(1,68): adoption-agency-1.2
-(1,69): foster-parenting-character
-(1,69): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <b>
-| <nobr>
-| "1"
-| <nobr>
-| <i>
-| <i>
-| <nobr>
-| "2"
-| <nobr>
-| <nobr>
-| "3"
-| <table>
-
-#data
-<!DOCTYPE html><body><b><nobr>1<table><tr><td><nobr></b><i><nobr>2<nobr></i>3
-#errors
-(1,56): unexpected-end-tag
-(1,65): unexpected-start-tag-implies-end-tag
-(1,65): adoption-agency-1.3
-(1,72): unexpected-start-tag-implies-end-tag
-(1,76): adoption-agency-1.3
-(1,77): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <b>
-| <nobr>
-| "1"
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <nobr>
-| <i>
-| <i>
-| <nobr>
-| "2"
-| <nobr>
-| <nobr>
-| "3"
-
-#data
-<!DOCTYPE html><body><b><nobr>1<div><nobr></b><i><nobr>2<nobr></i>3
-#errors
-(1,42): unexpected-start-tag-implies-end-tag
-(1,42): adoption-agency-1.3
-(1,46): adoption-agency-1.3
-(1,46): adoption-agency-1.3
-(1,55): unexpected-start-tag-implies-end-tag
-(1,55): adoption-agency-1.3
-(1,62): unexpected-start-tag-implies-end-tag
-(1,66): adoption-agency-1.3
-(1,67): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <b>
-| <nobr>
-| "1"
-| <div>
-| <b>
-| <nobr>
-| <nobr>
-| <nobr>
-| <i>
-| <i>
-| <nobr>
-| "2"
-| <nobr>
-| <nobr>
-| "3"
-
-#data
-<!DOCTYPE html><body><b><nobr>1<nobr></b><div><i><nobr>2<nobr></i>3
-#errors
-(1,37): unexpected-start-tag-implies-end-tag
-(1,41): adoption-agency-1.3
-(1,55): unexpected-start-tag-implies-end-tag
-(1,55): adoption-agency-1.3
-(1,62): unexpected-start-tag-implies-end-tag
-(1,66): adoption-agency-1.3
-(1,67): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <b>
-| <nobr>
-| "1"
-| <nobr>
-| <div>
-| <nobr>
-| <i>
-| <i>
-| <nobr>
-| "2"
-| <nobr>
-| <nobr>
-| "3"
-
-#data
-<!DOCTYPE html><body><b><nobr>1<nobr><ins></b><i><nobr>
-#errors
-(1,37): unexpected-start-tag-implies-end-tag
-(1,46): adoption-agency-1.3
-(1,55): unexpected-start-tag-implies-end-tag
-(1,55): adoption-agency-1.3
-(1,55): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <b>
-| <nobr>
-| "1"
-| <nobr>
-| <ins>
-| <nobr>
-| <i>
-| <i>
-| <nobr>
-
-#data
-<!DOCTYPE html><body><b><nobr>1<ins><nobr></b><i>2
-#errors
-(1,42): unexpected-start-tag-implies-end-tag
-(1,42): adoption-agency-1.3
-(1,46): adoption-agency-1.3
-(1,50): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <b>
-| <nobr>
-| "1"
-| <ins>
-| <nobr>
-| <nobr>
-| <i>
-| "2"
-
-#data
-<!DOCTYPE html><body><b>1<nobr></b><i><nobr>2</i>
-#errors
-(1,35): adoption-agency-1.3
-(1,44): unexpected-start-tag-implies-end-tag
-(1,44): adoption-agency-1.3
-(1,49): adoption-agency-1.3
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <b>
-| "1"
-| <nobr>
-| <nobr>
-| <i>
-| <i>
-| <nobr>
-| "2"
-
-#data
-<p><code x</code></p>
-
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,11): invalid-character-in-attribute-name
-(1,12): unexpected-character-after-solidus-in-tag
-(1,21): unexpected-end-tag
-(2,0): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <code>
-| code=""
-| x<=""
-| <code>
-| code=""
-| x<=""
-| "
-"
-
-#data
-<!DOCTYPE html><svg><foreignObject><p><i></p>a
-#errors
-(1,45): unexpected-end-tag
-(1,46): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg foreignObject>
-| <p>
-| <i>
-| <i>
-| "a"
-
-#data
-<!DOCTYPE html><table><tr><td><svg><foreignObject><p><i></p>a
-#errors
-(1,60): unexpected-end-tag
-(1,61): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <svg svg>
-| <svg foreignObject>
-| <p>
-| <i>
-| <i>
-| "a"
-
-#data
-<!DOCTYPE html><math><mtext><p><i></p>a
-#errors
-(1,38): unexpected-end-tag
-(1,39): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mtext>
-| <p>
-| <i>
-| <i>
-| "a"
-
-#data
-<!DOCTYPE html><table><tr><td><math><mtext><p><i></p>a
-#errors
-(1,53): unexpected-end-tag
-(1,54): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <math math>
-| <math mtext>
-| <p>
-| <i>
-| <i>
-| "a"
-
-#data
-<!DOCTYPE html><body><div><!/div>a
-#errors
-(1,28): expected-dashes-or-doctype
-(1,34): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <div>
-| <!-- /div -->
-| "a"
-
-#data
-<button><p><button>
-#errors
-Line 1 Col 8 Unexpected start tag (button). Expected DOCTYPE.
-Line 1 Col 19 Unexpected start tag (button) implies end tag (button).
-Line 1 Col 19 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-| <head>
-| <body>
-| <button>
-| <p>
-| <button>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests3.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests3.dat
deleted file mode 100644
index c7583d99e8b..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests3.dat
+++ /dev/null
@@ -1,305 +0,0 @@
-#data
-<head></head><style></style>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,20): unexpected-start-tag-out-of-my-head
-#document
-| <html>
-| <head>
-| <style>
-| <body>
-
-#data
-<head></head><script></script>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,21): unexpected-start-tag-out-of-my-head
-#document
-| <html>
-| <head>
-| <script>
-| <body>
-
-#data
-<head></head><!-- --><style></style><!-- --><script></script>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,28): unexpected-start-tag-out-of-my-head
-(1,52): unexpected-start-tag-out-of-my-head
-#document
-| <html>
-| <head>
-| <style>
-| <script>
-| <!-- -->
-| <!-- -->
-| <body>
-
-#data
-<head></head><!-- -->x<style></style><!-- --><script></script>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <!-- -->
-| <body>
-| "x"
-| <style>
-| <!-- -->
-| <script>
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>
-</pre></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <pre>
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>
-foo</pre></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <pre>
-| "foo"
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>
-
-foo</pre></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <pre>
-| "
-foo"
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>
-foo
-</pre></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <pre>
-| "foo
-"
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>x</pre><span>
-</span></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <pre>
-| "x"
-| <span>
-| "
-"
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>x
-y</pre></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <pre>
-| "x
-y"
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>x<div>
-y</pre></body></html>
-#errors
-(2,7): end-tag-too-early
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <pre>
-| "x"
-| <div>
-| "
-y"
-
-#data
-<!DOCTYPE html><pre>&#x0a;&#x0a;A</pre>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <pre>
-| "
-A"
-
-#data
-<!DOCTYPE html><HTML><META><HEAD></HEAD></HTML>
-#errors
-(1,33): two-heads-are-not-better-than-one
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <meta>
-| <body>
-
-#data
-<!DOCTYPE html><HTML><HEAD><head></HEAD></HTML>
-#errors
-(1,33): two-heads-are-not-better-than-one
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-
-#data
-<textarea>foo<span>bar</span><i>baz
-#errors
-(1,10): expected-doctype-but-got-start-tag
-(1,35): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <textarea>
-| "foo<span>bar</span><i>baz"
-
-#data
-<title>foo<span>bar</em><i>baz
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,30): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <title>
-| "foo<span>bar</em><i>baz"
-| <body>
-
-#data
-<!DOCTYPE html><textarea>
-</textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <textarea>
-
-#data
-<!DOCTYPE html><textarea>
-foo</textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <textarea>
-| "foo"
-
-#data
-<!DOCTYPE html><textarea>
-
-foo</textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <textarea>
-| "
-foo"
-
-#data
-<!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html>
-#errors
-(1,60): end-tag-too-early
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <ul>
-| <li>
-| <div>
-| <p>
-| <li>
-
-#data
-<!doctype html><nobr><nobr><nobr>
-#errors
-(1,27): unexpected-start-tag-implies-end-tag
-(1,33): unexpected-start-tag-implies-end-tag
-(1,33): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <nobr>
-| <nobr>
-| <nobr>
-
-#data
-<!doctype html><nobr><nobr></nobr><nobr>
-#errors
-(1,27): unexpected-start-tag-implies-end-tag
-(1,40): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <nobr>
-| <nobr>
-| <nobr>
-
-#data
-<!doctype html><html><body><p><table></table></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <table>
-
-#data
-<p><table></table>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <table>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests4.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests4.dat
deleted file mode 100644
index 0a6174c36c0..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests4.dat
+++ /dev/null
@@ -1,58 +0,0 @@
-#data
-direct div content
-#errors
-#document-fragment
-div
-#document
-| "direct div content"
-
-#data
-direct textarea content
-#errors
-#document-fragment
-textarea
-#document
-| "direct textarea content"
-
-#data
-textarea content with <em>pseudo</em> <foo>markup
-#errors
-#document-fragment
-textarea
-#document
-| "textarea content with <em>pseudo</em> <foo>markup"
-
-#data
-this is &#x0043;DATA inside a <style> element
-#errors
-#document-fragment
-style
-#document
-| "this is &#x0043;DATA inside a <style> element"
-
-#data
-</plaintext>
-#errors
-#document-fragment
-plaintext
-#document
-| "</plaintext>"
-
-#data
-setting html's innerHTML
-#errors
-#document-fragment
-html
-#document
-| <head>
-| <body>
-| "setting html's innerHTML"
-
-#data
-<title>setting head's innerHTML</title>
-#errors
-#document-fragment
-head
-#document
-| <title>
-| "setting head's innerHTML"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests5.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests5.dat
deleted file mode 100644
index 1ef8cae4213..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests5.dat
+++ /dev/null
@@ -1,210 +0,0 @@
-#data
-<style> <!-- </style>x
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <style>
-| " <!-- "
-| <body>
-| "x"
-
-#data
-<style> <!-- </style> --> </style>x
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,34): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <style>
-| " <!-- "
-| " "
-| <body>
-| "--> x"
-
-#data
-<style> <!--> </style>x
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <style>
-| " <!--> "
-| <body>
-| "x"
-
-#data
-<style> <!---> </style>x
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <style>
-| " <!---> "
-| <body>
-| "x"
-
-#data
-<iframe> <!---> </iframe>x
-#errors
-(1,8): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <iframe>
-| " <!---> "
-| "x"
-
-#data
-<iframe> <!--- </iframe>->x</iframe> --> </iframe>x
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,36): unexpected-end-tag
-(1,50): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <iframe>
-| " <!--- "
-| "->x --> x"
-
-#data
-<script> <!-- </script> --> </script>x
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,37): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <script>
-| " <!-- "
-| " "
-| <body>
-| "--> x"
-
-#data
-<title> <!-- </title> --> </title>x
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,34): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <title>
-| " <!-- "
-| " "
-| <body>
-| "--> x"
-
-#data
-<textarea> <!--- </textarea>->x</textarea> --> </textarea>x
-#errors
-(1,10): expected-doctype-but-got-start-tag
-(1,42): unexpected-end-tag
-(1,58): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <textarea>
-| " <!--- "
-| "->x --> x"
-
-#data
-<style> <!</-- </style>x
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <style>
-| " <!</-- "
-| <body>
-| "x"
-
-#data
-<p><xmp></xmp>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <xmp>
-
-#data
-<xmp> <!-- > --> </xmp>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <xmp>
-| " <!-- > --> "
-
-#data
-<title>&amp;</title>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <title>
-| "&"
-| <body>
-
-#data
-<title><!--&amp;--></title>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <title>
-| "<!--&-->"
-| <body>
-
-#data
-<title><!--</title>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <title>
-| "<!--"
-| <body>
-
-#data
-<noscript><!--</noscript>--></noscript>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-(1,39): unexpected-end-tag
-#script-on
-#document
-| <html>
-| <head>
-| <noscript>
-| "<!--"
-| <body>
-| "-->"
-
-#data
-<noscript><!--</noscript>--></noscript>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-#script-off
-#document
-| <html>
-| <head>
-| <noscript>
-| <!-- </noscript> -->
-| <body>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests6.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests6.dat
deleted file mode 100644
index d774fc234a9..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests6.dat
+++ /dev/null
@@ -1,659 +0,0 @@
-#data
-<!doctype html></head> <head>
-#errors
-(1,29): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| " "
-| <body>
-
-#data
-<!doctype html><form><div></form><div>
-#errors
-(1,33): end-tag-too-early-ignored
-(1,38): expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <form>
-| <div>
-| <div>
-
-#data
-<!doctype html><title>&amp;</title>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <title>
-| "&"
-| <body>
-
-#data
-<!doctype html><title><!--&amp;--></title>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <title>
-| "<!--&-->"
-| <body>
-
-#data
-<!doctype>
-#errors
-(1,9): need-space-after-doctype
-(1,10): expected-doctype-name-but-got-right-bracket
-(1,10): unknown-doctype
-#document
-| <!DOCTYPE >
-| <html>
-| <head>
-| <body>
-
-#data
-<!---x
-#errors
-(1,6): eof-in-comment
-(1,6): expected-doctype-but-got-eof
-#document
-| <!-- -x -->
-| <html>
-| <head>
-| <body>
-
-#data
-<body>
-<div>
-#errors
-(1,6): unexpected-start-tag
-(2,5): expected-closing-tag-but-got-eof
-#document-fragment
-div
-#document
-| "
-"
-| <div>
-
-#data
-<frameset></frameset>
-foo
-#errors
-(1,10): expected-doctype-but-got-start-tag
-(2,1): unexpected-char-after-frameset
-(2,2): unexpected-char-after-frameset
-(2,3): unexpected-char-after-frameset
-#document
-| <html>
-| <head>
-| <frameset>
-| "
-"
-
-#data
-<frameset></frameset>
-<noframes>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-(2,10): expected-named-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <frameset>
-| "
-"
-| <noframes>
-
-#data
-<frameset></frameset>
-<div>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-(2,5): unexpected-start-tag-after-frameset
-#document
-| <html>
-| <head>
-| <frameset>
-| "
-"
-
-#data
-<frameset></frameset>
-</html>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <frameset>
-| "
-"
-
-#data
-<frameset></frameset>
-</div>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-(2,6): unexpected-end-tag-after-frameset
-#document
-| <html>
-| <head>
-| <frameset>
-| "
-"
-
-#data
-<form><form>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,12): unexpected-start-tag
-(1,12): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <form>
-
-#data
-<button><button>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,16): unexpected-start-tag-implies-end-tag
-(1,16): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <button>
-| <button>
-
-#data
-<table><tr><td></th>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,20): unexpected-end-tag
-(1,20): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-
-#data
-<table><caption><td>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,20): unexpected-cell-in-table-body
-(1,20): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-| <tbody>
-| <tr>
-| <td>
-
-#data
-<table><caption><div>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,21): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-| <div>
-
-#data
-</caption><div>
-#errors
-(1,10): XXX-undefined-error
-(1,15): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <div>
-
-#data
-<table><caption><div></caption>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,31): expected-one-end-tag-but-got-another
-(1,31): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-| <div>
-
-#data
-<table><caption></table>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-
-#data
-</table><div>
-#errors
-(1,8): unexpected-end-tag
-(1,13): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <div>
-
-#data
-<table><caption></body></col></colgroup></html></tbody></td></tfoot></th></thead></tr>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,23): unexpected-end-tag
-(1,29): unexpected-end-tag
-(1,40): unexpected-end-tag
-(1,47): unexpected-end-tag
-(1,55): unexpected-end-tag
-(1,60): unexpected-end-tag
-(1,68): unexpected-end-tag
-(1,73): unexpected-end-tag
-(1,81): unexpected-end-tag
-(1,86): unexpected-end-tag
-(1,86): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-
-#data
-<table><caption><div></div>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,27): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-| <div>
-
-#data
-<table><tr><td></body></caption></col></colgroup></html>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,22): unexpected-end-tag
-(1,32): unexpected-end-tag
-(1,38): unexpected-end-tag
-(1,49): unexpected-end-tag
-(1,56): unexpected-end-tag
-(1,56): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-
-#data
-</table></tbody></tfoot></thead></tr><div>
-#errors
-(1,8): unexpected-end-tag
-(1,16): unexpected-end-tag
-(1,24): unexpected-end-tag
-(1,32): unexpected-end-tag
-(1,37): unexpected-end-tag
-(1,42): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <div>
-
-#data
-<table><colgroup>foo
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,18): foster-parenting-character-in-table
-(1,19): foster-parenting-character-in-table
-(1,20): foster-parenting-character-in-table
-(1,20): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| "foo"
-| <table>
-| <colgroup>
-
-#data
-foo<col>
-#errors
-(1,1): unexpected-character-in-colgroup
-(1,2): unexpected-character-in-colgroup
-(1,3): unexpected-character-in-colgroup
-#document-fragment
-colgroup
-#document
-| <col>
-
-#data
-<table><colgroup></col>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,23): no-end-tag
-(1,23): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <colgroup>
-
-#data
-<frameset><div>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-(1,15): unexpected-start-tag-in-frameset
-(1,15): eof-in-frameset
-#document
-| <html>
-| <head>
-| <frameset>
-
-#data
-</frameset><frame>
-#errors
-(1,11): unexpected-frameset-in-frameset-innerhtml
-#document-fragment
-frameset
-#document
-| <frame>
-
-#data
-<frameset></div>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-(1,16): unexpected-end-tag-in-frameset
-(1,16): eof-in-frameset
-#document
-| <html>
-| <head>
-| <frameset>
-
-#data
-</body><div>
-#errors
-(1,7): unexpected-close-tag
-(1,12): expected-closing-tag-but-got-eof
-#document-fragment
-body
-#document
-| <div>
-
-#data
-<table><tr><div>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,16): unexpected-start-tag-implies-table-voodoo
-(1,16): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <table>
-| <tbody>
-| <tr>
-
-#data
-</tr><td>
-#errors
-(1,5): unexpected-end-tag
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-</tbody></tfoot></thead><td>
-#errors
-(1,8): unexpected-end-tag
-(1,16): unexpected-end-tag
-(1,24): unexpected-end-tag
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<table><tr><div><td>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,16): foster-parenting-start-tag
-(1,20): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-
-#data
-<caption><col><colgroup><tbody><tfoot><thead><tr>
-#errors
-(1,9): unexpected-start-tag
-(1,14): unexpected-start-tag
-(1,24): unexpected-start-tag
-(1,31): unexpected-start-tag
-(1,38): unexpected-start-tag
-(1,45): unexpected-start-tag
-#document-fragment
-tbody
-#document
-| <tr>
-
-#data
-<table><tbody></thead>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,22): unexpected-end-tag-in-table-body
-(1,22): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-
-#data
-</table><tr>
-#errors
-(1,8): unexpected-end-tag
-#document-fragment
-tbody
-#document
-| <tr>
-
-#data
-<table><tbody></body></caption></col></colgroup></html></td></th></tr>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,21): unexpected-end-tag-in-table-body
-(1,31): unexpected-end-tag-in-table-body
-(1,37): unexpected-end-tag-in-table-body
-(1,48): unexpected-end-tag-in-table-body
-(1,55): unexpected-end-tag-in-table-body
-(1,60): unexpected-end-tag-in-table-body
-(1,65): unexpected-end-tag-in-table-body
-(1,70): unexpected-end-tag-in-table-body
-(1,70): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-
-#data
-<table><tbody></div>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,20): unexpected-end-tag-implies-table-voodoo
-(1,20): end-tag-too-early
-(1,20): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-
-#data
-<table><table>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,14): unexpected-start-tag-implies-end-tag
-(1,14): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <table>
-
-#data
-<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,14): unexpected-end-tag
-(1,24): unexpected-end-tag
-(1,30): unexpected-end-tag
-(1,41): unexpected-end-tag
-(1,48): unexpected-end-tag
-(1,56): unexpected-end-tag
-(1,61): unexpected-end-tag
-(1,69): unexpected-end-tag
-(1,74): unexpected-end-tag
-(1,82): unexpected-end-tag
-(1,87): unexpected-end-tag
-(1,87): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-
-#data
-</table><tr>
-#errors
-(1,8): unexpected-end-tag
-#document-fragment
-table
-#document
-| <tbody>
-| <tr>
-
-#data
-<body></body></html>
-#errors
-(1,20): unexpected-end-tag-after-body-innerhtml
-#document-fragment
-html
-#document
-| <head>
-| <body>
-
-#data
-<html><frameset></frameset></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <frameset>
-| " "
-
-#data
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><html></html>
-#errors
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "">
-| <html>
-| <head>
-| <body>
-
-#data
-<param><frameset></frameset>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,17): unexpected-start-tag
-#document
-| <html>
-| <head>
-| <frameset>
-
-#data
-<source><frameset></frameset>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,18): unexpected-start-tag
-#document
-| <html>
-| <head>
-| <frameset>
-
-#data
-<track><frameset></frameset>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,17): unexpected-start-tag
-#document
-| <html>
-| <head>
-| <frameset>
-
-#data
-</html><frameset></frameset>
-#errors
-(1,7): expected-doctype-but-got-end-tag
-(1,17): expected-eof-but-got-start-tag
-(1,17): unexpected-start-tag
-#document
-| <html>
-| <head>
-| <frameset>
-
-#data
-</body><frameset></frameset>
-#errors
-(1,7): expected-doctype-but-got-end-tag
-(1,17): unexpected-start-tag-after-body
-(1,17): unexpected-start-tag
-#document
-| <html>
-| <head>
-| <frameset>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests7.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests7.dat
deleted file mode 100644
index d941d3d70be..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests7.dat
+++ /dev/null
@@ -1,403 +0,0 @@
-#data
-<!doctype html><body><title>X</title>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <title>
-| "X"
-
-#data
-<!doctype html><table><title>X</title></table>
-#errors
-(1,29): unexpected-start-tag-implies-table-voodoo
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <title>
-| "X"
-| <table>
-
-#data
-<!doctype html><head></head><title>X</title>
-#errors
-(1,35): unexpected-start-tag-out-of-my-head
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <title>
-| "X"
-| <body>
-
-#data
-<!doctype html></head><title>X</title>
-#errors
-(1,29): unexpected-start-tag-out-of-my-head
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <title>
-| "X"
-| <body>
-
-#data
-<!doctype html><table><meta></table>
-#errors
-(1,28): unexpected-start-tag-implies-table-voodoo
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <meta>
-| <table>
-
-#data
-<!doctype html><table>X<tr><td><table> <meta></table></table>
-#errors
-unexpected text in table
-(1,45): unexpected-start-tag-implies-table-voodoo
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "X"
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <meta>
-| <table>
-| " "
-
-#data
-<!doctype html><html> <head>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-
-#data
-<!doctype html> <head>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-
-#data
-<!doctype html><table><style> <tr>x </style> </table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <style>
-| " <tr>x "
-| " "
-
-#data
-<!doctype html><table><TBODY><script> <tr>x </script> </table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <script>
-| " <tr>x "
-| " "
-
-#data
-<!doctype html><p><applet><p>X</p></applet>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <p>
-| <applet>
-| <p>
-| "X"
-
-#data
-<!doctype html><listing>
-X</listing>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <listing>
-| "X"
-
-#data
-<!doctype html><select><input>X
-#errors
-(1,30): unexpected-input-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| <input>
-| "X"
-
-#data
-<!doctype html><select><select>X
-#errors
-(1,31): unexpected-select-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| "X"
-
-#data
-<!doctype html><table><input type=hidDEN></table>
-#errors
-(1,41): unexpected-hidden-input-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <input>
-| type="hidDEN"
-
-#data
-<!doctype html><table>X<input type=hidDEN></table>
-#errors
-(1,23): foster-parenting-character
-(1,42): unexpected-hidden-input-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| "X"
-| <table>
-| <input>
-| type="hidDEN"
-
-#data
-<!doctype html><table> <input type=hidDEN></table>
-#errors
-(1,43): unexpected-hidden-input-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| " "
-| <input>
-| type="hidDEN"
-
-#data
-<!doctype html><table> <input type='hidDEN'></table>
-#errors
-(1,45): unexpected-hidden-input-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| " "
-| <input>
-| type="hidDEN"
-
-#data
-<!doctype html><table><input type=" hidden"><input type=hidDEN></table>
-#errors
-(1,44): unexpected-start-tag-implies-table-voodoo
-(1,63): unexpected-hidden-input-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <input>
-| type=" hidden"
-| <table>
-| <input>
-| type="hidDEN"
-
-#data
-<!doctype html><table><select>X<tr>
-#errors
-(1,30): unexpected-start-tag-implies-table-voodoo
-(1,35): unexpected-table-element-start-tag-in-select-in-table
-(1,35): eof-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| "X"
-| <table>
-| <tbody>
-| <tr>
-
-#data
-<!doctype html><select>X</select>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| "X"
-
-#data
-<!DOCTYPE hTmL><html></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-
-#data
-<!DOCTYPE HTML><html></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-
-#data
-<body>X</body></body>
-#errors
-(1,21): unexpected-end-tag-after-body
-#document-fragment
-html
-#document
-| <head>
-| <body>
-| "X"
-
-#data
-<div><p>a</x> b
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,13): unexpected-end-tag
-(1,15): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <p>
-| "a b"
-
-#data
-<table><tr><td><code></code> </table>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <code>
-| " "
-
-#data
-<table><b><tr><td>aaa</td></tr>bbb</table>ccc
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,10): foster-parenting-start-tag
-(1,32): foster-parenting-character
-(1,33): foster-parenting-character
-(1,34): foster-parenting-character
-(1,45): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| <b>
-| "bbb"
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| "aaa"
-| <b>
-| "ccc"
-
-#data
-A<table><tr> B</tr> B</table>
-#errors
-(1,1): expected-doctype-but-got-chars
-(1,13): foster-parenting-character
-(1,14): foster-parenting-character
-(1,20): foster-parenting-character
-(1,21): foster-parenting-character
-#document
-| <html>
-| <head>
-| <body>
-| "A B B"
-| <table>
-| <tbody>
-| <tr>
-
-#data
-A<table><tr> B</tr> </em>C</table>
-#errors
-(1,1): expected-doctype-but-got-chars
-(1,13): foster-parenting-character
-(1,14): foster-parenting-character
-(1,20): foster-parenting-character
-(1,25): unexpected-end-tag
-(1,26): foster-parenting-character
-#document
-| <html>
-| <head>
-| <body>
-| "A BC"
-| <table>
-| <tbody>
-| <tr>
-| " "
-
-#data
-<select><keygen>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,16): unexpected-input-in-select
-#document
-| <html>
-| <head>
-| <body>
-| <select>
-| <keygen>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests8.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests8.dat
deleted file mode 100644
index 33dd96d3320..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests8.dat
+++ /dev/null
@@ -1,151 +0,0 @@
-#data
-<div>
-<div></div>
-</span>x
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(3,7): unexpected-end-tag
-(3,8): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| "
-"
-| <div>
-| "
-x"
-
-#data
-<div>x<div></div>
-</span>x
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(2,7): unexpected-end-tag
-(2,8): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| "x"
-| <div>
-| "
-x"
-
-#data
-<div>x<div></div>x</span>x
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,25): unexpected-end-tag
-(1,26): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| "x"
-| <div>
-| "xx"
-
-#data
-<div>x<div></div>y</span>z
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,25): unexpected-end-tag
-(1,26): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| "x"
-| <div>
-| "yz"
-
-#data
-<table><div>x<div></div>x</span>x
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,12): foster-parenting-start-tag
-(1,13): foster-parenting-character
-(1,18): foster-parenting-start-tag
-(1,24): foster-parenting-end-tag
-(1,25): foster-parenting-start-tag
-(1,32): foster-parenting-end-tag
-(1,32): unexpected-end-tag
-(1,33): foster-parenting-character
-(1,33): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| "x"
-| <div>
-| "xx"
-| <table>
-
-#data
-x<table>x
-#errors
-(1,1): expected-doctype-but-got-chars
-(1,9): foster-parenting-character
-(1,9): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| "xx"
-| <table>
-
-#data
-x<table><table>x
-#errors
-(1,1): expected-doctype-but-got-chars
-(1,15): unexpected-start-tag-implies-end-tag
-(1,16): foster-parenting-character
-(1,16): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| "x"
-| <table>
-| "x"
-| <table>
-
-#data
-<b>a<div></div><div></b>y
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,24): adoption-agency-1.3
-(1,25): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| "a"
-| <div>
-| <div>
-| <b>
-| "y"
-
-#data
-<a><div><p></a>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,15): adoption-agency-1.3
-(1,15): adoption-agency-1.3
-(1,15): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| <div>
-| <a>
-| <p>
-| <a>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests9.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests9.dat
deleted file mode 100644
index f8d04b23bc0..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests9.dat
+++ /dev/null
@@ -1,472 +0,0 @@
-#data
-<!DOCTYPE html><math></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-
-#data
-<!DOCTYPE html><body><math></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-
-#data
-<!DOCTYPE html><math><mi>
-#errors
-(1,25) expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mi>
-
-#data
-<!DOCTYPE html><math><annotation-xml><svg><u>
-#errors
-(1,45) unexpected-html-element-in-foreign-content
-(1,45) expected-closing-tag-but-got-eof
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math annotation-xml>
-| <svg svg>
-| <u>
-
-#data
-<!DOCTYPE html><body><select><math></math></select>
-#errors
-(1,35) unexpected-start-tag-in-select
-(1,42) unexpected-end-tag-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-
-#data
-<!DOCTYPE html><body><select><option><math></math></option></select>
-#errors
-(1,43) unexpected-start-tag-in-select
-(1,50) unexpected-end-tag-in-select
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| <option>
-
-#data
-<!DOCTYPE html><body><table><math></math></table>
-#errors
-(1,34) unexpected-start-tag-implies-table-voodoo
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-| <table>
-
-#data
-<!DOCTYPE html><body><table><math><mi>foo</mi></math></table>
-#errors
-(1,34) foster-parenting-start-token
-(1,39) foster-parenting-character
-(1,40) foster-parenting-character
-(1,41) foster-parenting-character
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mi>
-| "foo"
-| <table>
-
-#data
-<!DOCTYPE html><body><table><math><mi>foo</mi><mi>bar</mi></math></table>
-#errors
-(1,34) foster-parenting-start-tag
-(1,39) foster-parenting-character
-(1,40) foster-parenting-character
-(1,41) foster-parenting-character
-(1,51) foster-parenting-character
-(1,52) foster-parenting-character
-(1,53) foster-parenting-character
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mi>
-| "foo"
-| <math mi>
-| "bar"
-| <table>
-
-#data
-<!DOCTYPE html><body><table><tbody><math><mi>foo</mi><mi>bar</mi></math></tbody></table>
-#errors
-(1,41) foster-parenting-start-tag
-(1,46) foster-parenting-character
-(1,47) foster-parenting-character
-(1,48) foster-parenting-character
-(1,58) foster-parenting-character
-(1,59) foster-parenting-character
-(1,60) foster-parenting-character
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mi>
-| "foo"
-| <math mi>
-| "bar"
-| <table>
-| <tbody>
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><math><mi>foo</mi><mi>bar</mi></math></tr></tbody></table>
-#errors
-(1,45) foster-parenting-start-tag
-(1,50) foster-parenting-character
-(1,51) foster-parenting-character
-(1,52) foster-parenting-character
-(1,62) foster-parenting-character
-(1,63) foster-parenting-character
-(1,64) foster-parenting-character
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mi>
-| "foo"
-| <math mi>
-| "bar"
-| <table>
-| <tbody>
-| <tr>
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <math math>
-| <math mi>
-| "foo"
-| <math mi>
-| "bar"
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</td></tr></tbody></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <math math>
-| <math mi>
-| "foo"
-| <math mi>
-| "bar"
-| <p>
-| "baz"
-
-#data
-<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</caption></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-| <math math>
-| <math mi>
-| "foo"
-| <math mi>
-| "bar"
-| <p>
-| "baz"
-
-#data
-<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
-#errors
-(1,70) unexpected-html-element-in-foreign-content
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-| <math math>
-| <math mi>
-| "foo"
-| <math mi>
-| "bar"
-| <p>
-| "baz"
-| <p>
-| "quux"
-
-#data
-<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</table><p>quux
-#errors
-(1,78) unexpected-end-tag
-(1,78) expected-one-end-tag-but-got-another
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <caption>
-| <math math>
-| <math mi>
-| "foo"
-| <math mi>
-| "bar"
-| "baz"
-| <p>
-| "quux"
-
-#data
-<!DOCTYPE html><body><table><colgroup><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
-#errors
-(1,44) foster-parenting-start-tag
-(1,49) foster-parenting-character
-(1,50) foster-parenting-character
-(1,51) foster-parenting-character
-(1,61) foster-parenting-character
-(1,62) foster-parenting-character
-(1,63) foster-parenting-character
-(1,71) unexpected-html-element-in-foreign-content
-(1,71) foster-parenting-start-tag
-(1,63) foster-parenting-character
-(1,63) foster-parenting-character
-(1,63) foster-parenting-character
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mi>
-| "foo"
-| <math mi>
-| "bar"
-| <p>
-| "baz"
-| <table>
-| <colgroup>
-| <p>
-| "quux"
-
-#data
-<!DOCTYPE html><body><table><tr><td><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
-#errors
-(1,50) unexpected-start-tag-in-select
-(1,54) unexpected-start-tag-in-select
-(1,62) unexpected-end-tag-in-select
-(1,66) unexpected-start-tag-in-select
-(1,74) unexpected-end-tag-in-select
-(1,77) unexpected-start-tag-in-select
-(1,88) unexpected-table-element-end-tag-in-select-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <select>
-| "foobarbaz"
-| <p>
-| "quux"
-
-#data
-<!DOCTYPE html><body><table><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
-#errors
-(1,36) unexpected-start-tag-implies-table-voodoo
-(1,42) unexpected-start-tag-in-select
-(1,46) unexpected-start-tag-in-select
-(1,54) unexpected-end-tag-in-select
-(1,58) unexpected-start-tag-in-select
-(1,66) unexpected-end-tag-in-select
-(1,69) unexpected-start-tag-in-select
-(1,80) unexpected-table-element-end-tag-in-select-in-table
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <select>
-| "foobarbaz"
-| <table>
-| <p>
-| "quux"
-
-#data
-<!DOCTYPE html><body></body></html><math><mi>foo</mi><mi>bar</mi><p>baz
-#errors
-(1,41) expected-eof-but-got-start-tag
-(1,68) unexpected-html-element-in-foreign-content
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mi>
-| "foo"
-| <math mi>
-| "bar"
-| <p>
-| "baz"
-
-#data
-<!DOCTYPE html><body></body><math><mi>foo</mi><mi>bar</mi><p>baz
-#errors
-(1,34) unexpected-start-tag-after-body
-(1,61) unexpected-html-element-in-foreign-content
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mi>
-| "foo"
-| <math mi>
-| "bar"
-| <p>
-| "baz"
-
-#data
-<!DOCTYPE html><frameset><math><mi></mi><mi></mi><p><span>
-#errors
-(1,31) unexpected-start-tag-in-frameset
-(1,35) unexpected-start-tag-in-frameset
-(1,40) unexpected-end-tag-in-frameset
-(1,44) unexpected-start-tag-in-frameset
-(1,49) unexpected-end-tag-in-frameset
-(1,52) unexpected-start-tag-in-frameset
-(1,58) unexpected-start-tag-in-frameset
-(1,58) eof-in-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-
-#data
-<!DOCTYPE html><frameset></frameset><math><mi></mi><mi></mi><p><span>
-#errors
-(1,42) unexpected-start-tag-after-frameset
-(1,46) unexpected-start-tag-after-frameset
-(1,51) unexpected-end-tag-after-frameset
-(1,55) unexpected-start-tag-after-frameset
-(1,60) unexpected-end-tag-after-frameset
-(1,63) unexpected-start-tag-after-frameset
-(1,69) unexpected-start-tag-after-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-
-#data
-<!DOCTYPE html><body xlink:href=foo><math xlink:href=foo></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| xlink:href="foo"
-| <math math>
-| xlink href="foo"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo></mi></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| xlink:href="foo"
-| xml:lang="en"
-| <math math>
-| <math mi>
-| xlink href="foo"
-| xml lang="en"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo /></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| xlink:href="foo"
-| xml:lang="en"
-| <math math>
-| <math mi>
-| xlink href="foo"
-| xml lang="en"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo />bar</math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| xlink:href="foo"
-| xml:lang="en"
-| <math math>
-| <math mi>
-| xlink href="foo"
-| xml lang="en"
-| "bar"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests_innerHTML_1.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests_innerHTML_1.dat
deleted file mode 100644
index 9c5c18220d9..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests_innerHTML_1.dat
+++ /dev/null
@@ -1,891 +0,0 @@
-#data
-<body><span>
-#errors
-(1,6): unexpected-start-tag
-(1,12): expected-closing-tag-but-got-eof
-#document-fragment
-body
-#document
-| <span>
-
-#data
-<span><body>
-#errors
-(1,12): unexpected-start-tag
-(1,12): expected-closing-tag-but-got-eof
-#document-fragment
-body
-#document
-| <span>
-
-#data
-<span><body>
-#errors
-(1,12): unexpected-start-tag
-(1,12): expected-closing-tag-but-got-eof
-#document-fragment
-div
-#document
-| <span>
-
-#data
-<body><span>
-#errors
-(1,12): expected-closing-tag-but-got-eof
-#document-fragment
-html
-#document
-| <head>
-| <body>
-| <span>
-
-#data
-<frameset><span>
-#errors
-(1,10): unexpected-start-tag
-(1,16): expected-closing-tag-but-got-eof
-#document-fragment
-body
-#document
-| <span>
-
-#data
-<span><frameset>
-#errors
-(1,16): unexpected-start-tag
-(1,16): expected-closing-tag-but-got-eof
-#document-fragment
-body
-#document
-| <span>
-
-#data
-<span><frameset>
-#errors
-(1,16): unexpected-start-tag
-(1,16): expected-closing-tag-but-got-eof
-#document-fragment
-div
-#document
-| <span>
-
-#data
-<frameset><span>
-#errors
-(1,16): unexpected-start-tag-in-frameset
-(1,16): eof-in-frameset
-#document-fragment
-html
-#document
-| <head>
-| <frameset>
-
-#data
-<table><tr>
-#errors
-(1,7): unexpected-start-tag
-#document-fragment
-table
-#document
-| <tbody>
-| <tr>
-
-#data
-</table><tr>
-#errors
-(1,8): unexpected-end-tag
-#document-fragment
-table
-#document
-| <tbody>
-| <tr>
-
-#data
-<a>
-#errors
-(1,3): unexpected-start-tag-implies-table-voodoo
-(1,3): eof-in-table
-#document-fragment
-table
-#document
-| <a>
-
-#data
-<a>
-#errors
-(1,3): unexpected-start-tag-implies-table-voodoo
-(1,3): eof-in-table
-#document-fragment
-table
-#document
-| <a>
-
-#data
-<a><caption>a
-#errors
-(1,3): unexpected-start-tag-implies-table-voodoo
-(1,13): expected-closing-tag-but-got-eof
-#document-fragment
-table
-#document
-| <a>
-| <caption>
-| "a"
-
-#data
-<a><colgroup><col>
-#errors
-(1,3): foster-parenting-start-token
-(1,18): expected-closing-tag-but-got-eof
-#document-fragment
-table
-#document
-| <a>
-| <colgroup>
-| <col>
-
-#data
-<a><tbody><tr>
-#errors
-(1,3): foster-parenting-start-tag
-#document-fragment
-table
-#document
-| <a>
-| <tbody>
-| <tr>
-
-#data
-<a><tfoot><tr>
-#errors
-(1,3): foster-parenting-start-tag
-#document-fragment
-table
-#document
-| <a>
-| <tfoot>
-| <tr>
-
-#data
-<a><thead><tr>
-#errors
-(1,3): foster-parenting-start-tag
-#document-fragment
-table
-#document
-| <a>
-| <thead>
-| <tr>
-
-#data
-<a><tr>
-#errors
-(1,3): foster-parenting-start-tag
-#document-fragment
-table
-#document
-| <a>
-| <tbody>
-| <tr>
-
-#data
-<a><th>
-#errors
-(1,3): unexpected-start-tag-implies-table-voodoo
-(1,7): unexpected-cell-in-table-body
-#document-fragment
-table
-#document
-| <a>
-| <tbody>
-| <tr>
-| <th>
-
-#data
-<a><td>
-#errors
-(1,3): unexpected-start-tag-implies-table-voodoo
-(1,7): unexpected-cell-in-table-body
-#document-fragment
-table
-#document
-| <a>
-| <tbody>
-| <tr>
-| <td>
-
-#data
-<table></table><tbody>
-#errors
-(1,22): unexpected-start-tag
-#document-fragment
-caption
-#document
-| <table>
-
-#data
-</table><span>
-#errors
-(1,8): unexpected-end-tag
-(1,14): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <span>
-
-#data
-<span></table>
-#errors
-(1,14): unexpected-end-tag
-(1,14): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <span>
-
-#data
-</caption><span>
-#errors
-(1,10): XXX-undefined-error
-(1,16): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <span>
-
-#data
-<span></caption><span>
-#errors
-(1,16): XXX-undefined-error
-(1,22): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <span>
-| <span>
-
-#data
-<span><caption><span>
-#errors
-(1,15): unexpected-start-tag
-(1,21): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <span>
-| <span>
-
-#data
-<span><col><span>
-#errors
-(1,11): unexpected-start-tag
-(1,17): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <span>
-| <span>
-
-#data
-<span><colgroup><span>
-#errors
-(1,16): unexpected-start-tag
-(1,22): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <span>
-| <span>
-
-#data
-<span><html><span>
-#errors
-(1,12): non-html-root
-(1,18): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <span>
-| <span>
-
-#data
-<span><tbody><span>
-#errors
-(1,13): unexpected-start-tag
-(1,19): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <span>
-| <span>
-
-#data
-<span><td><span>
-#errors
-(1,10): unexpected-start-tag
-(1,16): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <span>
-| <span>
-
-#data
-<span><tfoot><span>
-#errors
-(1,13): unexpected-start-tag
-(1,19): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <span>
-| <span>
-
-#data
-<span><thead><span>
-#errors
-(1,13): unexpected-start-tag
-(1,19): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <span>
-| <span>
-
-#data
-<span><th><span>
-#errors
-(1,10): unexpected-start-tag
-(1,16): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <span>
-| <span>
-
-#data
-<span><tr><span>
-#errors
-(1,10): unexpected-start-tag
-(1,16): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <span>
-| <span>
-
-#data
-<span></table><span>
-#errors
-(1,14): unexpected-end-tag
-(1,20): expected-closing-tag-but-got-eof
-#document-fragment
-caption
-#document
-| <span>
-| <span>
-
-#data
-</colgroup><col>
-#errors
-(1,11): XXX-undefined-error
-#document-fragment
-colgroup
-#document
-| <col>
-
-#data
-<a><col>
-#errors
-(1,3): XXX-undefined-error
-#document-fragment
-colgroup
-#document
-| <col>
-
-#data
-<caption><a>
-#errors
-(1,9): XXX-undefined-error
-(1,12): unexpected-start-tag-implies-table-voodoo
-(1,12): eof-in-table
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<col><a>
-#errors
-(1,5): XXX-undefined-error
-(1,8): unexpected-start-tag-implies-table-voodoo
-(1,8): eof-in-table
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<colgroup><a>
-#errors
-(1,10): XXX-undefined-error
-(1,13): unexpected-start-tag-implies-table-voodoo
-(1,13): eof-in-table
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<tbody><a>
-#errors
-(1,7): XXX-undefined-error
-(1,10): unexpected-start-tag-implies-table-voodoo
-(1,10): eof-in-table
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<tfoot><a>
-#errors
-(1,7): XXX-undefined-error
-(1,10): unexpected-start-tag-implies-table-voodoo
-(1,10): eof-in-table
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<thead><a>
-#errors
-(1,7): XXX-undefined-error
-(1,10): unexpected-start-tag-implies-table-voodoo
-(1,10): eof-in-table
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-</table><a>
-#errors
-(1,8): XXX-undefined-error
-(1,11): unexpected-start-tag-implies-table-voodoo
-(1,11): eof-in-table
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<a><tr>
-#errors
-(1,3): unexpected-start-tag-implies-table-voodoo
-#document-fragment
-tbody
-#document
-| <a>
-| <tr>
-
-#data
-<a><td>
-#errors
-(1,3): unexpected-start-tag-implies-table-voodoo
-(1,7): unexpected-cell-in-table-body
-#document-fragment
-tbody
-#document
-| <a>
-| <tr>
-| <td>
-
-#data
-<a><td>
-#errors
-(1,3): unexpected-start-tag-implies-table-voodoo
-(1,7): unexpected-cell-in-table-body
-#document-fragment
-tbody
-#document
-| <a>
-| <tr>
-| <td>
-
-#data
-<a><td>
-#errors
-(1,3): unexpected-start-tag-implies-table-voodoo
-(1,7): unexpected-cell-in-table-body
-#document-fragment
-tbody
-#document
-| <a>
-| <tr>
-| <td>
-
-#data
-<td><table><tbody><a><tr>
-#errors
-(1,4): unexpected-cell-in-table-body
-(1,21): unexpected-start-tag-implies-table-voodoo
-(1,25): eof-in-table
-#document-fragment
-tbody
-#document
-| <tr>
-| <td>
-| <a>
-| <table>
-| <tbody>
-| <tr>
-
-#data
-</tr><td>
-#errors
-(1,5): XXX-undefined-error
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<td><table><a><tr></tr><tr>
-#errors
-(1,14): unexpected-start-tag-implies-table-voodoo
-(1,27): eof-in-table
-#document-fragment
-tr
-#document
-| <td>
-| <a>
-| <table>
-| <tbody>
-| <tr>
-| <tr>
-
-#data
-<caption><td>
-#errors
-(1,9): XXX-undefined-error
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<col><td>
-#errors
-(1,5): XXX-undefined-error
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<colgroup><td>
-#errors
-(1,10): XXX-undefined-error
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<tbody><td>
-#errors
-(1,7): XXX-undefined-error
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<tfoot><td>
-#errors
-(1,7): XXX-undefined-error
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<thead><td>
-#errors
-(1,7): XXX-undefined-error
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<tr><td>
-#errors
-(1,4): XXX-undefined-error
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-</table><td>
-#errors
-(1,8): XXX-undefined-error
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<td><table></table><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-| <table>
-| <td>
-
-#data
-<td><table></table><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-| <table>
-| <td>
-
-#data
-<caption><a>
-#errors
-(1,9): XXX-undefined-error
-(1,12): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<col><a>
-#errors
-(1,5): XXX-undefined-error
-(1,8): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<colgroup><a>
-#errors
-(1,10): XXX-undefined-error
-(1,13): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<tbody><a>
-#errors
-(1,7): XXX-undefined-error
-(1,10): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<tfoot><a>
-#errors
-(1,7): XXX-undefined-error
-(1,10): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<th><a>
-#errors
-(1,4): XXX-undefined-error
-(1,7): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<thead><a>
-#errors
-(1,7): XXX-undefined-error
-(1,10): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<tr><a>
-#errors
-(1,4): XXX-undefined-error
-(1,7): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</table><a>
-#errors
-(1,8): XXX-undefined-error
-(1,11): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</tbody><a>
-#errors
-(1,8): XXX-undefined-error
-(1,11): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</td><a>
-#errors
-(1,5): unexpected-end-tag
-(1,8): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</tfoot><a>
-#errors
-(1,8): XXX-undefined-error
-(1,11): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</thead><a>
-#errors
-(1,8): XXX-undefined-error
-(1,11): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</th><a>
-#errors
-(1,5): unexpected-end-tag
-(1,8): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</tr><a>
-#errors
-(1,5): XXX-undefined-error
-(1,8): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<table><td><td>
-#errors
-(1,11): unexpected-cell-in-table-body
-(1,15): expected-closing-tag-but-got-eof
-#document-fragment
-td
-#document
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| <td>
-
-#data
-</select><option>
-#errors
-(1,9): XXX-undefined-error
-(1,17): eof-in-select
-#document-fragment
-select
-#document
-| <option>
-
-#data
-<input><option>
-#errors
-(1,7): unexpected-input-in-select
-(1,15): eof-in-select
-#document-fragment
-select
-#document
-| <option>
-
-#data
-<keygen><option>
-#errors
-(1,8): unexpected-input-in-select
-(1,16): eof-in-select
-#document-fragment
-select
-#document
-| <option>
-
-#data
-<textarea><option>
-#errors
-(1,10): unexpected-input-in-select
-(1,18): eof-in-select
-#document-fragment
-select
-#document
-| <option>
-
-#data
-</html><!--abc-->
-#errors
-(1,7): unexpected-end-tag-after-body-innerhtml
-#document-fragment
-html
-#document
-| <head>
-| <body>
-| <!-- abc -->
-
-#data
-</frameset><frame>
-#errors
-(1,11): unexpected-frameset-in-frameset-innerhtml
-#document-fragment
-frameset
-#document
-| <frame>
-
-#data
-#errors
-#document-fragment
-html
-#document
-| <head>
-| <body>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tricky01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tricky01.dat
deleted file mode 100644
index 753502a2619..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tricky01.dat
+++ /dev/null
@@ -1,336 +0,0 @@
-#data
-<b><p>Bold </b> Not bold</p>
-Also not bold.
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,15): adoption-agency-1.3
-#document
-| <html>
-| <head>
-| <body>
-| <b>
-| <p>
-| <b>
-| "Bold "
-| " Not bold"
-| "
-Also not bold."
-
-#data
-<html>
-<font color=red><i>Italic and Red<p>Italic and Red </font> Just italic.</p> Italic only.</i> Plain
-<p>I should not be red. <font color=red>Red. <i>Italic and red.</p>
-<p>Italic and red. </i> Red.</font> I should not be red.</p>
-<b>Bold <i>Bold and italic</b> Only Italic </i> Plain
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(2,58): adoption-agency-1.3
-(3,67): unexpected-end-tag
-(4,23): adoption-agency-1.3
-(4,35): adoption-agency-1.3
-(5,30): adoption-agency-1.3
-#document
-| <html>
-| <head>
-| <body>
-| <font>
-| color="red"
-| <i>
-| "Italic and Red"
-| <i>
-| <p>
-| <font>
-| color="red"
-| "Italic and Red "
-| " Just italic."
-| " Italic only."
-| " Plain
-"
-| <p>
-| "I should not be red. "
-| <font>
-| color="red"
-| "Red. "
-| <i>
-| "Italic and red."
-| <font>
-| color="red"
-| <i>
-| "
-"
-| <p>
-| <font>
-| color="red"
-| <i>
-| "Italic and red. "
-| " Red."
-| " I should not be red."
-| "
-"
-| <b>
-| "Bold "
-| <i>
-| "Bold and italic"
-| <i>
-| " Only Italic "
-| " Plain"
-
-#data
-<html><body>
-<p><font size="7">First paragraph.</p>
-<p>Second paragraph.</p></font>
-<b><p><i>Bold and Italic</b> Italic</p>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(2,38): unexpected-end-tag
-(4,28): adoption-agency-1.3
-(4,28): adoption-agency-1.3
-(4,39): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| "
-"
-| <p>
-| <font>
-| size="7"
-| "First paragraph."
-| <font>
-| size="7"
-| "
-"
-| <p>
-| "Second paragraph."
-| "
-"
-| <b>
-| <p>
-| <b>
-| <i>
-| "Bold and Italic"
-| <i>
-| " Italic"
-
-#data
-<html>
-<dl>
-<dt><b>Boo
-<dd>Goo?
-</dl>
-</html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(4,4): end-tag-too-early
-(5,5): end-tag-too-early
-(6,7): expected-one-end-tag-but-got-another
-#document
-| <html>
-| <head>
-| <body>
-| <dl>
-| "
-"
-| <dt>
-| <b>
-| "Boo
-"
-| <dd>
-| <b>
-| "Goo?
-"
-| <b>
-| "
-"
-
-#data
-<html><body>
-<label><a><div>Hello<div>World</div></a></label>
-</body></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(2,40): adoption-agency-1.3
-(2,48): unexpected-end-tag
-(3,7): expected-one-end-tag-but-got-another
-#document
-| <html>
-| <head>
-| <body>
-| "
-"
-| <label>
-| <a>
-| <div>
-| <a>
-| "Hello"
-| <div>
-| "World"
-| "
-"
-
-#data
-<table><center> <font>a</center> <img> <tr><td> </td> </tr> </table>
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,15): foster-parenting-start-tag
-(1,16): foster-parenting-character
-(1,22): foster-parenting-start-tag
-(1,23): foster-parenting-character
-(1,32): foster-parenting-end-tag
-(1,32): end-tag-too-early
-(1,33): foster-parenting-character
-(1,38): foster-parenting-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <center>
-| " "
-| <font>
-| "a"
-| <font>
-| <img>
-| " "
-| <table>
-| " "
-| <tbody>
-| <tr>
-| <td>
-| " "
-| " "
-| " "
-
-#data
-<table><tr><p><a><p>You should see this text.
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,14): unexpected-start-tag-implies-table-voodoo
-(1,17): unexpected-start-tag-implies-table-voodoo
-(1,20): unexpected-start-tag-implies-table-voodoo
-(1,20): closing-non-current-p-element
-(1,21): foster-parenting-character
-(1,22): foster-parenting-character
-(1,23): foster-parenting-character
-(1,24): foster-parenting-character
-(1,25): foster-parenting-character
-(1,26): foster-parenting-character
-(1,27): foster-parenting-character
-(1,28): foster-parenting-character
-(1,29): foster-parenting-character
-(1,30): foster-parenting-character
-(1,31): foster-parenting-character
-(1,32): foster-parenting-character
-(1,33): foster-parenting-character
-(1,34): foster-parenting-character
-(1,35): foster-parenting-character
-(1,36): foster-parenting-character
-(1,37): foster-parenting-character
-(1,38): foster-parenting-character
-(1,39): foster-parenting-character
-(1,40): foster-parenting-character
-(1,41): foster-parenting-character
-(1,42): foster-parenting-character
-(1,43): foster-parenting-character
-(1,44): foster-parenting-character
-(1,45): foster-parenting-character
-(1,45): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| <a>
-| <p>
-| <a>
-| "You should see this text."
-| <table>
-| <tbody>
-| <tr>
-
-#data
-<TABLE>
-<TR>
-<CENTER><CENTER><TD></TD></TR><TR>
-<FONT>
-<TABLE><tr></tr></TABLE>
-</P>
-<a></font><font></a>
-This page contains an insanely badly-nested tag sequence.
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(3,8): unexpected-start-tag-implies-table-voodoo
-(3,16): unexpected-start-tag-implies-table-voodoo
-(4,6): unexpected-start-tag-implies-table-voodoo
-(4,6): unexpected character token in table (the newline)
-(5,7): unexpected-start-tag-implies-end-tag
-(6,4): unexpected p end tag
-(7,10): adoption-agency-1.3
-(7,20): adoption-agency-1.3
-(8,57): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <center>
-| <center>
-| <font>
-| "
-"
-| <table>
-| "
-"
-| <tbody>
-| <tr>
-| "
-"
-| <td>
-| <tr>
-| "
-"
-| <table>
-| <tbody>
-| <tr>
-| <font>
-| "
-"
-| <p>
-| "
-"
-| <a>
-| <a>
-| <font>
-| <font>
-| "
-This page contains an insanely badly-nested tag sequence."
-
-#data
-<html>
-<body>
-<b><nobr><div>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the
-nobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre>
-</body>
-</html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(3,56): adoption-agency-1.3
-(4,58): adoption-agency-1.3
-(5,7): expected-one-end-tag-but-got-another
-#document
-| <html>
-| <head>
-| <body>
-| "
-"
-| <b>
-| <nobr>
-| <div>
-| <b>
-| <nobr>
-| "This text is in a div inside a nobr"
-| "More text that should not be in the nobr, i.e., the
-nobr should have closed the div inside it implicitly. "
-| <pre>
-| "A pre tag outside everything else."
-| "
-
-"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/webkit01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/webkit01.dat
deleted file mode 100644
index c480accd95a..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/webkit01.dat
+++ /dev/null
@@ -1,705 +0,0 @@
-#data
-Test
-#errors
-(1,4): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "Test"
-
-#data
-<div></div>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-
-#data
-<div>Test</div>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| "Test"
-
-#data
-<di
-#errors
-(1,3): eof-in-tag-name
-(1,3): expected-doctype-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<div>Hello</div>
-<script>
-console.log("PASS");
-</script>
-<div>Bye</div>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| "Hello"
-| "
-"
-| <script>
-| "
-console.log("PASS");
-"
-| "
-"
-| <div>
-| "Bye"
-
-#data
-<div foo="bar">Hello</div>
-#errors
-(1,15): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| foo="bar"
-| "Hello"
-
-#data
-<div>Hello</div>
-<script>
-console.log("FOO<span>BAR</span>BAZ");
-</script>
-<div>Bye</div>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| "Hello"
-| "
-"
-| <script>
-| "
-console.log("FOO<span>BAR</span>BAZ");
-"
-| "
-"
-| <div>
-| "Bye"
-
-#data
-<foo bar="baz"></foo><potato quack="duck"></potato>
-#errors
-(1,15): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <foo>
-| bar="baz"
-| <potato>
-| quack="duck"
-
-#data
-<foo bar="baz"><potato quack="duck"></potato></foo>
-#errors
-(1,15): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <foo>
-| bar="baz"
-| <potato>
-| quack="duck"
-
-#data
-<foo></foo bar="baz"><potato></potato quack="duck">
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,21): attributes-in-end-tag
-(1,51): attributes-in-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <foo>
-| <potato>
-
-#data
-</ tttt>
-#errors
-(1,2): expected-closing-tag-but-got-char
-(1,8): expected-doctype-but-got-eof
-#document
-| <!-- tttt -->
-| <html>
-| <head>
-| <body>
-
-#data
-<div FOO ><img><img></div>
-#errors
-(1,10): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| foo=""
-| <img>
-| <img>
-
-#data
-<p>Test</p<p>Test2</p>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,13): unexpected-end-tag
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| "TestTest2"
-
-#data
-<rdar://problem/6869687>
-#errors
-(1,7): unexpected-character-after-solidus-in-tag
-(1,8): unexpected-character-after-solidus-in-tag
-(1,16): unexpected-character-after-solidus-in-tag
-(1,24): expected-doctype-but-got-start-tag
-(1,24): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <rdar:>
-| 6869687=""
-| problem=""
-
-#data
-<A>test< /A>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,8): expected-tag-name
-(1,12): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| "test< /A>"
-
-#data
-&lt;
-#errors
-(1,4): expected-doctype-but-got-chars
-#document
-| <html>
-| <head>
-| <body>
-| "<"
-
-#data
-<body foo='bar'><body foo='baz' yo='mama'>
-#errors
-(1,16): expected-doctype-but-got-start-tag
-(1,42): unexpected-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| foo="bar"
-| yo="mama"
-
-#data
-<body></br foo="bar"></body>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,21): attributes-in-end-tag
-(1,21): unexpected-end-tag-treated-as
-#document
-| <html>
-| <head>
-| <body>
-| <br>
-
-#data
-<bdy><br foo="bar"></body>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,26): expected-one-end-tag-but-got-another
-#document
-| <html>
-| <head>
-| <body>
-| <bdy>
-| <br>
-| foo="bar"
-
-#data
-<body></body></br foo="bar">
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,28): attributes-in-end-tag
-(1,28): unexpected-end-tag-after-body
-(1,28): unexpected-end-tag-treated-as
-#document
-| <html>
-| <head>
-| <body>
-| <br>
-
-#data
-<bdy></body><br foo="bar">
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,12): expected-one-end-tag-but-got-another
-(1,26): unexpected-start-tag-after-body
-(1,26): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <bdy>
-| <br>
-| foo="bar"
-
-#data
-<html><body></body></html><!-- Hi there -->
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <!-- Hi there -->
-
-#data
-<html><body></body></html>x<!-- Hi there -->
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,27): expected-eof-but-got-char
-#document
-| <html>
-| <head>
-| <body>
-| "x"
-| <!-- Hi there -->
-
-#data
-<html><body></body></html>x<!-- Hi there --></html><!-- Again -->
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,27): expected-eof-but-got-char
-#document
-| <html>
-| <head>
-| <body>
-| "x"
-| <!-- Hi there -->
-| <!-- Again -->
-
-#data
-<html><body></body></html>x<!-- Hi there --></body></html><!-- Again -->
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,27): expected-eof-but-got-char
-#document
-| <html>
-| <head>
-| <body>
-| "x"
-| <!-- Hi there -->
-| <!-- Again -->
-
-#data
-<html><body><ruby><div><rp>xx</rp></div></ruby></body></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,27): XXX-undefined-error
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| <div>
-| <rp>
-| "xx"
-
-#data
-<html><body><ruby><div><rt>xx</rt></div></ruby></body></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,27): XXX-undefined-error
-#document
-| <html>
-| <head>
-| <body>
-| <ruby>
-| <div>
-| <rt>
-| "xx"
-
-#data
-<html><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--></html><!--5--><noframes>C</noframes><!--6-->
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <frameset>
-| <!-- 1 -->
-| <noframes>
-| "A"
-| <!-- 2 -->
-| <!-- 3 -->
-| <noframes>
-| "B"
-| <!-- 4 -->
-| <noframes>
-| "C"
-| <!-- 5 -->
-| <!-- 6 -->
-
-#data
-<select><option>A<select><option>B<select><option>C<select><option>D<select><option>E<select><option>F<select><option>G<select>
-#errors
-(1,8): expected-doctype-but-got-start-tag
-(1,25): unexpected-select-in-select
-(1,59): unexpected-select-in-select
-(1,93): unexpected-select-in-select
-(1,127): unexpected-select-in-select
-(1,127): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <select>
-| <option>
-| "A"
-| <option>
-| "B"
-| <select>
-| <option>
-| "C"
-| <option>
-| "D"
-| <select>
-| <option>
-| "E"
-| <option>
-| "F"
-| <select>
-| <option>
-| "G"
-
-#data
-<dd><dd><dt><dt><dd><li><li>
-#errors
-(1,4): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <dd>
-| <dd>
-| <dt>
-| <dt>
-| <dd>
-| <li>
-| <li>
-
-#data
-<div><b></div><div><nobr>a<nobr>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,14): end-tag-too-early
-(1,32): unexpected-start-tag-implies-end-tag
-(1,32): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <b>
-| <div>
-| <b>
-| <nobr>
-| "a"
-| <nobr>
-
-#data
-<head></head>
-<body></body>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| "
-"
-| <body>
-
-#data
-<head></head> <style></style>ddd
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,21): unexpected-start-tag-out-of-my-head
-#document
-| <html>
-| <head>
-| <style>
-| " "
-| <body>
-| "ddd"
-
-#data
-<kbd><table></kbd><col><select><tr>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,18): unexpected-end-tag-implies-table-voodoo
-(1,18): unexpected-end-tag
-(1,31): unexpected-start-tag-implies-table-voodoo
-(1,35): unexpected-table-element-start-tag-in-select-in-table
-(1,35): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| <kbd>
-| <select>
-| <table>
-| <colgroup>
-| <col>
-| <tbody>
-| <tr>
-
-#data
-<kbd><table></kbd><col><select><tr></table><div>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,18): unexpected-end-tag-implies-table-voodoo
-(1,18): unexpected-end-tag
-(1,31): unexpected-start-tag-implies-table-voodoo
-(1,35): unexpected-table-element-start-tag-in-select-in-table
-(1,48): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <kbd>
-| <select>
-| <table>
-| <colgroup>
-| <col>
-| <tbody>
-| <tr>
-| <div>
-
-#data
-<a><li><style></style><title></title></a>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,41): adoption-agency-1.3
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| <li>
-| <a>
-| <style>
-| <title>
-
-#data
-<font></p><p><meta><title></title></font>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,10): unexpected-end-tag
-(1,41): adoption-agency-1.3
-#document
-| <html>
-| <head>
-| <body>
-| <font>
-| <p>
-| <p>
-| <font>
-| <meta>
-| <title>
-
-#data
-<a><center><title></title><a>
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,29): unexpected-start-tag-implies-end-tag
-(1,29): adoption-agency-1.3
-(1,29): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <a>
-| <center>
-| <a>
-| <title>
-| <a>
-
-#data
-<svg><title><div>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,17): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg title>
-| <div>
-
-#data
-<svg><title><rect><div>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,23): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg title>
-| <rect>
-| <div>
-
-#data
-<svg><title><svg><div>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,22): unexpected-html-element-in-foreign-content
-(1,22): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg title>
-| <svg svg>
-| <div>
-
-#data
-<img <="" FAIL>
-#errors
-(1,6): invalid-character-in-attribute-name
-(1,15): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <img>
-| <=""
-| fail=""
-
-#data
-<ul><li><div id='foo'/>A</li><li>B<div>C</div></li></ul>
-#errors
-(1,4): expected-doctype-but-got-start-tag
-(1,23): non-void-element-with-trailing-solidus
-(1,29): end-tag-too-early
-#document
-| <html>
-| <head>
-| <body>
-| <ul>
-| <li>
-| <div>
-| id="foo"
-| "A"
-| <li>
-| "B"
-| <div>
-| "C"
-
-#data
-<svg><em><desc></em>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,9): unexpected-html-element-in-foreign-content
-(1,20): adoption-agency-1.3
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <em>
-| <desc>
-
-#data
-<svg><tfoot></mi><td>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-(1,17): unexpected-end-tag
-(1,17): unexpected-end-tag
-(1,21): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <svg svg>
-| <svg tfoot>
-| <svg td>
-
-#data
-<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <math math>
-| <math mrow>
-| <math mrow>
-| <math mn>
-| "1"
-| <math mi>
-| "a"
-
-#data
-<!doctype html><input type="hidden"><frameset>
-#errors
-(1,46): unexpected-start-tag
-(1,46): eof-in-frameset
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <frameset>
-
-#data
-<!doctype html><input type="button"><frameset>
-#errors
-(1,46): unexpected-start-tag
-#document
-| <!DOCTYPE html>
-| <html>
-| <head>
-| <body>
-| <input>
-| type="button"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/webkit02.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/webkit02.dat
deleted file mode 100644
index 1ce90dfe13d..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/webkit02.dat
+++ /dev/null
@@ -1,134 +0,0 @@
-#data
-<foo bar=qux/>
-#errors
-(1,14): expected-doctype-but-got-start-tag
-(1,14): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <foo>
-| bar="qux/"
-
-#data
-<p id="status"><noscript><strong>A</strong></noscript><span>B</span></p>
-#errors
-(1,15): expected-doctype-but-got-start-tag
-#script-on
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| id="status"
-| <noscript>
-| "<strong>A</strong>"
-| <span>
-| "B"
-
-#data
-<p id="status"><noscript><strong>A</strong></noscript><span>B</span></p>
-#errors
-(1,15): expected-doctype-but-got-start-tag
-#script-off
-#document
-| <html>
-| <head>
-| <body>
-| <p>
-| id="status"
-| <noscript>
-| <strong>
-| "A"
-| <span>
-| "B"
-
-#data
-<div><sarcasm><div></div></sarcasm></div>
-#errors
-(1,5): expected-doctype-but-got-start-tag
-#document
-| <html>
-| <head>
-| <body>
-| <div>
-| <sarcasm>
-| <div>
-
-#data
-<html><body><img src="" border="0" alt="><div>A</div></body></html>
-#errors
-(1,6): expected-doctype-but-got-start-tag
-(1,67): eof-in-attribute-value-double-quote
-#document
-| <html>
-| <head>
-| <body>
-
-#data
-<table><td></tbody>A
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,11): unexpected-cell-in-table-body
-(1,20): foster-parenting-character
-(1,20): eof-in-table
-#document
-| <html>
-| <head>
-| <body>
-| "A"
-| <table>
-| <tbody>
-| <tr>
-| <td>
-
-#data
-<table><td></thead>A
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,11): unexpected-cell-in-table-body
-(1,19): XXX-undefined-error
-(1,20): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| "A"
-
-#data
-<table><td></tfoot>A
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,11): unexpected-cell-in-table-body
-(1,19): XXX-undefined-error
-(1,20): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <tbody>
-| <tr>
-| <td>
-| "A"
-
-#data
-<table><thead><td></tbody>A
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,18): unexpected-cell-in-table-body
-(1,26): XXX-undefined-error
-(1,27): expected-closing-tag-but-got-eof
-#document
-| <html>
-| <head>
-| <body>
-| <table>
-| <thead>
-| <tr>
-| <td>
-| "A"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/attributes.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/attributes.test
deleted file mode 100755
index 2815976bff8..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/attributes.test
+++ /dev/null
@@ -1,1035 +0,0 @@
-{"tests": [
-
-{"description": "allowed 'class' attribute on <span>",
-"input": "<span class>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'contenteditable' attribute on <span>",
-"input": "<span contenteditable>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'contextmenu' attribute on <span>",
-"input": "<span contextmenu>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'dir' attribute on <span>",
-"input": "<span dir>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'draggable' attribute on <span>",
-"input": "<span draggable>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'id' attribute on <span>",
-"input": "<span id>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'irrelevant' attribute on <span>",
-"input": "<span irrelevant>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'lang' attribute on <span>",
-"input": "<span lang>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'ref' attribute on <span>",
-"input": "<span ref>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'tabindex' attribute on <span>",
-"input": "<span tabindex>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'template' attribute on <span>",
-"input": "<span template>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'title' attribute on <span>",
-"input": "<span title>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onabort' attribute on <span>",
-"input": "<span onabort>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onbeforeunload' attribute on <span>",
-"input": "<span onbeforeunload>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onblur' attribute on <span>",
-"input": "<span onblur>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onchange' attribute on <span>",
-"input": "<span onchange>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onclick' attribute on <span>",
-"input": "<span onclick>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'oncontextmenu' attribute on <span>",
-"input": "<span oncontextmenu>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'ondblclick' attribute on <span>",
-"input": "<span ondblclick>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'ondrag' attribute on <span>",
-"input": "<span ondrag>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'ondragend' attribute on <span>",
-"input": "<span ondragend>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'ondragenter' attribute on <span>",
-"input": "<span ondragenter>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'ondragleave' attribute on <span>",
-"input": "<span ondragleave>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'ondragover' attribute on <span>",
-"input": "<span ondragover>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'ondragstart' attribute on <span>",
-"input": "<span ondragstart>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'ondrop' attribute on <span>",
-"input": "<span ondrop>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onerror' attribute on <span>",
-"input": "<span onerror>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onfocus' attribute on <span>",
-"input": "<span onfocus>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onkeydown' attribute on <span>",
-"input": "<span onkeydown>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onkeypress' attribute on <span>",
-"input": "<span onkeypress>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onkeyup' attribute on <span>",
-"input": "<span onkeyup>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onload' attribute on <span>",
-"input": "<span onload>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onmessage' attribute on <span>",
-"input": "<span onmessage>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onmousedown' attribute on <span>",
-"input": "<span onmousedown>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onmousemove' attribute on <span>",
-"input": "<span onmousemove>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onmouseout' attribute on <span>",
-"input": "<span onmouseout>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onmouseover' attribute on <span>",
-"input": "<span onmouseover>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onmouseup' attribute on <span>",
-"input": "<span onmouseup>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onmousewheel' attribute on <span>",
-"input": "<span onmousewheel>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onresize' attribute on <span>",
-"input": "<span onresize>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onscroll' attribute on <span>",
-"input": "<span onscroll>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onselect' attribute on <span>",
-"input": "<span onselect>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onsubmit' attribute on <span>",
-"input": "<span onsubmit>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onunload' attribute on <span>",
-"input": "<span onunload>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'type' attribute on <command>",
-"input": "<command type>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'label' attribute on <command>",
-"input": "<command label>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'icon' attribute on <command>",
-"input": "<command icon>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'hidden' attribute on <command>",
-"input": "<command hidden>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'disabled' attribute on <command>",
-"input": "<command disabled>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'checked' attribute on <command>",
-"input": "<command checked>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'radiogroup' attribute on <command>",
-"input": "<command radiogroup>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'default' attribute on <command>",
-"input": "<command default>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'value' attribute on <meter>",
-"input": "<meter value>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'min' attribute on <meter>",
-"input": "<meter min>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'low' attribute on <meter>",
-"input": "<meter low>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'high' attribute on <meter>",
-"input": "<meter high>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'max' attribute on <meter>",
-"input": "<meter max>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'optimum' attribute on <meter>",
-"input": "<meter optimum>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'cite' attribute on <ins>",
-"input": "<ins cite>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'datetime' attribute on <ins>",
-"input": "<ins datetime>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'multiple' attribute on <datagrid>",
-"input": "<datagrid multiple>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'disabled' attribute on <datagrid>",
-"input": "<datagrid disabled>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'name' attribute on <meta>",
-"input": "<meta name>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'http-equiv' attribute on <meta>",
-"input": "<meta http-equiv>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'content' attribute on <meta>",
-"input": "<meta content>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'charset' attribute on <meta>",
-"input": "<meta charset>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'src' attribute on <video>",
-"input": "<video src>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'autoplay' attribute on <video>",
-"input": "<video autoplay>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'start' attribute on <video>",
-"input": "<video start>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'loopstart' attribute on <video>",
-"input": "<video loopstart>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'loopend' attribute on <video>",
-"input": "<video loopend>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'end' attribute on <video>",
-"input": "<video end>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'loopcount' attribute on <video>",
-"input": "<video loopcount>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'controls' attribute on <video>",
-"input": "<video controls>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'style' attribute on <font>",
-"input": "<font style>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'media' attribute on <style>",
-"input": "<style media>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'type' attribute on <style>",
-"input": "<style type>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'scoped' attribute on <style>",
-"input": "<style scoped>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'alt' attribute on <img>",
-"input": "<img alt>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'src' attribute on <img>",
-"input": "<img src>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'usemap' attribute on <img>",
-"input": "<img usemap>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'ismap' attribute on <img>",
-"input": "<img ismap>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'height' attribute on <img>",
-"input": "<img height>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'width' attribute on <img>",
-"input": "<img width>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'alt' attribute on <area>",
-"input": "<area alt>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'coords' attribute on <area>",
-"input": "<area coords>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'shape' attribute on <area>",
-"input": "<area shape>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'href' attribute on <area>",
-"input": "<area href>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'target' attribute on <area>",
-"input": "<area target>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'ping' attribute on <area>",
-"input": "<area ping>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'rel' attribute on <area>",
-"input": "<area rel>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'media' attribute on <area>",
-"input": "<area media>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'hreflang' attribute on <area>",
-"input": "<area hreflang>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'type' attribute on <area>",
-"input": "<area type>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'type' attribute on <menu>",
-"input": "<menu type>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'label' attribute on <menu>",
-"input": "<menu label>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'autosubmit' attribute on <menu>",
-"input": "<menu autosubmit>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'name' attribute on <param>",
-"input": "<param name>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'value' attribute on <param>",
-"input": "<param value>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'value' attribute on <li>",
-"input": "<li value>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'src' attribute on <source>",
-"input": "<source src>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'type' attribute on <source>",
-"input": "<source type>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'media' attribute on <source>",
-"input": "<source media>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'xmlns' attribute on <html>",
-"input": "<html xmlns>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'open' attribute on <details>",
-"input": "<details open>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'colspan' attribute on <th>",
-"input": "<th colspan>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'rowspan' attribute on <th>",
-"input": "<th rowspan>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'scope' attribute on <th>",
-"input": "<th scope>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'value' attribute on <progress>",
-"input": "<progress value>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'max' attribute on <progress>",
-"input": "<progress max>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'colspan' attribute on <td>",
-"input": "<td colspan>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'rowspan' attribute on <td>",
-"input": "<td rowspan>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'cite' attribute on <blockquote>",
-"input": "<blockquote cite>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'data' attribute on <object>",
-"input": "<object data>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'type' attribute on <object>",
-"input": "<object type>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'usemap' attribute on <object>",
-"input": "<object usemap>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'height' attribute on <object>",
-"input": "<object height>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'width' attribute on <object>",
-"input": "<object width>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'height' attribute on <canvas>",
-"input": "<canvas height>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'width' attribute on <canvas>",
-"input": "<canvas width>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'href' attribute on <base>",
-"input": "<base href>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'target' attribute on <base>",
-"input": "<base target>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'href' attribute on <link>",
-"input": "<link href>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'rel' attribute on <link>",
-"input": "<link rel>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'media' attribute on <link>",
-"input": "<link media>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'hreflang' attribute on <link>",
-"input": "<link hreflang>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'type' attribute on <link>",
-"input": "<link type>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'href' attribute on <a>",
-"input": "<a href>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'target' attribute on <a>",
-"input": "<a target>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'ping' attribute on <a>",
-"input": "<a ping>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'rel' attribute on <a>",
-"input": "<a rel>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'media' attribute on <a>",
-"input": "<a media>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'hreflang' attribute on <a>",
-"input": "<a hreflang>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'type' attribute on <a>",
-"input": "<a type>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'src' attribute on <event-source>",
-"input": "<event-source src>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'start' attribute on <ol>",
-"input": "<ol start>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'span' attribute on <colgroup>",
-"input": "<colgroup span>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'src' attribute on <script>",
-"input": "<script src>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'defer' attribute on <script>",
-"input": "<script defer>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'async' attribute on <script>",
-"input": "<script async>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'type' attribute on <script>",
-"input": "<script type>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'cite' attribute on <q>",
-"input": "<q cite>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'cite' attribute on <del>",
-"input": "<del cite>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'datetime' attribute on <del>",
-"input": "<del datetime>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'src' attribute on <iframe>",
-"input": "<iframe src>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'datetime' attribute on <time>",
-"input": "<time datetime>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'src' attribute on <audio>",
-"input": "<audio src>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'autoplay' attribute on <audio>",
-"input": "<audio autoplay>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'start' attribute on <audio>",
-"input": "<audio start>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'loopstart' attribute on <audio>",
-"input": "<audio loopstart>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'loopend' attribute on <audio>",
-"input": "<audio loopend>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'end' attribute on <audio>",
-"input": "<audio end>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'loopcount' attribute on <audio>",
-"input": "<audio loopcount>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'controls' attribute on <audio>",
-"input": "<audio controls>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'span' attribute on <col>",
-"input": "<col span>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'disabled' attribute on <fieldset>",
-"input": "<fieldset disabled>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'form' attribute on <fieldset>",
-"input": "<fieldset form>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onsubmit' attribute on <form>",
-"input": "<form onsubmit>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'name' attribute on <form>",
-"input": "<form name>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onreset' attribute on <form>",
-"input": "<form onreset>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'accept' attribute on <form>",
-"input": "<form accept>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'replace' attribute on <form>",
-"input": "<form replace>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'accept-charset' attribute on <form>",
-"input": "<form accept-charset>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'action' attribute on <form>",
-"input": "<form action>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'data' attribute on <form>",
-"input": "<form data>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'method' attribute on <form>",
-"input": "<form method>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'enctype' attribute on <form>",
-"input": "<form enctype>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'rows' attribute on <textarea>",
-"input": "<textarea rows>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'name' attribute on <textarea>",
-"input": "<textarea name>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'form' attribute on <textarea>",
-"input": "<textarea form>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'required' attribute on <textarea>",
-"input": "<textarea required>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'cols' attribute on <textarea>",
-"input": "<textarea cols>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'accept' attribute on <textarea>",
-"input": "<textarea accept>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'disabled' attribute on <textarea>",
-"input": "<textarea disabled>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'readonly' attribute on <textarea>",
-"input": "<textarea readonly>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'wrap' attribute on <textarea>",
-"input": "<textarea wrap>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'autofocus' attribute on <textarea>",
-"input": "<textarea autofocus>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'maxlength' attribute on <textarea>",
-"input": "<textarea maxlength>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'a' attribute on <datalist>",
-"input": "<datalist a>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "allowed 'd' attribute on <datalist>",
-"input": "<datalist d>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "allowed 't' attribute on <datalist>",
-"input": "<datalist t>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "allowed 'action' attribute on <button>",
-"input": "<button action>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'enctype' attribute on <button>",
-"input": "<button enctype>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'method' attribute on <button>",
-"input": "<button method>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'replace' attribute on <button>",
-"input": "<button replace>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'template' attribute on <button>",
-"input": "<button template>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'name' attribute on <button>",
-"input": "<button name>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'form' attribute on <button>",
-"input": "<button form>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'value' attribute on <button>",
-"input": "<button value>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'disabled' attribute on <button>",
-"input": "<button disabled>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'autofocus' attribute on <button>",
-"input": "<button autofocus>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'type' attribute on <button>",
-"input": "<button type>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'accesskey' attribute on <label>",
-"input": "<label accesskey>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'form' attribute on <label>",
-"input": "<label form>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'for' attribute on <label>",
-"input": "<label for>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'disabled' attribute on <optgroup>",
-"input": "<optgroup disabled>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'label' attribute on <optgroup>",
-"input": "<optgroup label>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onforminput' attribute on <output>",
-"input": "<output onforminput>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'onformchange' attribute on <output>",
-"input": "<output onformchange>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'name' attribute on <output>",
-"input": "<output name>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'form' attribute on <output>",
-"input": "<output form>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'for' attribute on <output>",
-"input": "<output for>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'multiple' attribute on <select>",
-"input": "<select multiple>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'name' attribute on <select>",
-"input": "<select name>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'form' attribute on <select>",
-"input": "<select form>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'accesskey' attribute on <select>",
-"input": "<select accesskey>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'disabled' attribute on <select>",
-"input": "<select disabled>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'autofocus' attribute on <select>",
-"input": "<select autofocus>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'data' attribute on <select>",
-"input": "<select data>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'size' attribute on <select>",
-"input": "<select size>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'selected' attribute on <option>",
-"input": "<option selected>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'value' attribute on <option>",
-"input": "<option value>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'label' attribute on <option>",
-"input": "<option label>",
-"fail-if": "unknown-attribute"},
-
-{"description": "allowed 'disabled' attribute on <option>",
-"input": "<option disabled>",
-"fail-if": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <command>",
-"input": "<command foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <meter>",
-"input": "<meter foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <ins>",
-"input": "<ins foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <datagrid>",
-"input": "<datagrid foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <meta>",
-"input": "<meta foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <video>",
-"input": "<video foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <font>",
-"input": "<font foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <style>",
-"input": "<style foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <img>",
-"input": "<img foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <area>",
-"input": "<area foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <menu>",
-"input": "<menu foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <param>",
-"input": "<param foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <li>",
-"input": "<li foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <source>",
-"input": "<source foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <html>",
-"input": "<html foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <details>",
-"input": "<details foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <th>",
-"input": "<th foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <progress>",
-"input": "<progress foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <td>",
-"input": "<td foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <blockquote>",
-"input": "<blockquote foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <object>",
-"input": "<object foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <canvas>",
-"input": "<canvas foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <base>",
-"input": "<base foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <link>",
-"input": "<link foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <a>",
-"input": "<a foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <event-source>",
-"input": "<event-source foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <ol>",
-"input": "<ol foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <colgroup>",
-"input": "<colgroup foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <script>",
-"input": "<script foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <q>",
-"input": "<q foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <del>",
-"input": "<del foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <iframe>",
-"input": "<iframe foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <time>",
-"input": "<time foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <audio>",
-"input": "<audio foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <col>",
-"input": "<col foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "missing required 'href' attribute on <link>",
-"input": "<link rel>",
-"fail-unless": "missing-required-attribute"},
-
-{"description": "missing required 'rel' attribute on <link>",
-"input": "<link href>",
-"fail-unless": "missing-required-attribute"},
-
-{"description": "missing required 'dir' attribute on <bdo>",
-"input": "<bdo>",
-"fail-unless": "missing-required-attribute"},
-
-{"description": "missing required 'src' attribute on <img>",
-"input": "<img>",
-"fail-unless": "missing-required-attribute"},
-
-{"description": "missing required 'src' attribute on <embed>",
-"input": "<embed>",
-"fail-unless": "missing-required-attribute"},
-
-{"description": "missing required 'name' attribute on <param>",
-"input": "<param value>",
-"fail-unless": "missing-required-attribute"},
-
-{"description": "missing required 'value' attribute on <param>",
-"input": "<param name>",
-"fail-unless": "missing-required-attribute"},
-
-{"description": "missing required 'src' attribute on <source>",
-"input": "<source>",
-"fail-unless": "missing-required-attribute"},
-
-{"description": "missing required 'id' attribute on <map>",
-"input": "<map>",
-"fail-unless": "missing-required-attribute"}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/base-href-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/base-href-attribute.test
deleted file mode 100755
index 83a626a79a3..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/base-href-attribute.test
+++ /dev/null
@@ -1,787 +0,0 @@
-{"tests": [
-
-{"description": "base href contains invalid URI due to leading space",
-"input": "<base href=' http://www.example.com/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to trailing space",
-"input": "<base href='http://www.example.com/ '",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to space in scheme",
-"input": "<base href='ht tp://www.example.com/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to space in domain",
-"input": "<base href='http://www.example. com/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to space in path",
-"input": "<base href='http://www.example.com/a b'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to space in fragment",
-"input": "<base href='http://www.example.com/a#b c'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to space in query",
-"input": "<base href='http://www.example.com/a?b c'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to leading tab",
-"input": "<base href='\thttp://www.example.com/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to trailing tab",
-"input": "<base href='http://www.example.com/\t'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to tab in scheme",
-"input": "<base href='ht\ttp://www.example.com/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to tab in domain",
-"input": "<base href='http://www.example.\tcom/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to tab in path",
-"input": "<base href='http://www.example.com/a\tb'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to tab in fragment",
-"input": "<base href='http://www.example.com/a#b\tc'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to tab in query",
-"input": "<base href='http://www.example.com/a?b\tc'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to leading LF",
-"input": "<base href='\nhttp://www.example.com/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to LF in scheme",
-"input": "<base href='ht\ntp://www.example.com/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to LF in domain",
-"input": "<base href='http://www.example.\ncom/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to LF in path",
-"input": "<base href='http://www.example.com/a\nb'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to LF in fragment",
-"input": "<base href='http://www.example.com/a#b\nc'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to LF in query",
-"input": "<base href='http://www.example.com/a?b\nc'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to leading LT",
-"input": "<base href='\u000Bhttp://www.example.com/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to trailing LT",
-"input": "<base href='http://www.example.com/\u000B'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to LT in scheme",
-"input": "<base href='ht\u000Btp://www.example.com/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to LT in domain",
-"input": "<base href='http://www.example.\u000Bcom/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to LT in path",
-"input": "<base href='http://www.example.com/a\u000Bb'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to LT in fragment",
-"input": "<base href='http://www.example.com/a#b\u000Bc'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to LT in query",
-"input": "<base href='http://www.example.com/a?b\u000Bc'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to leading FF",
-"input": "<base href='\u000Chttp://www.example.com/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to trailing FF",
-"input": "<base href='http://www.example.com/\u000C'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to FF in scheme",
-"input": "<base href='ht\u000Ctp://www.example.com/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to FF in domain",
-"input": "<base href='http://www.example.\u000Ccom/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to FF in path",
-"input": "<base href='http://www.example.com/a\u000Cb'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to FF in fragment",
-"input": "<base href='http://www.example.com/a#b\u000Cc'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to FF in query",
-"input": "<base href='http://www.example.com/a?b\u000Cc'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to leading CR",
-"input": "<base href='\rhttp://www.example.com/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to CR in scheme",
-"input": "<base href='ht\rtp://www.example.com/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to CR in domain",
-"input": "<base href='http://www.example.\rcom/'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to CR in path",
-"input": "<base href='http://www.example.com/a\rb'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to CR in fragment",
-"input": "<base href='http://www.example.com/a#b\rc'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains invalid URI due to CR in query",
-"input": "<base href='http://www.example.com/a?b\rc'",
-"fail-unless": "invalid-uri-char"},
-
-{"description": "base href contains valid URI scheme 'ftp'",
-"input": "<base href='ftp://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'http'",
-"input": "<base href='http://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'gopher'",
-"input": "<base href='gopher://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'mailto'",
-"input": "<base href='mailto://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'news'",
-"input": "<base href='news://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'nntp'",
-"input": "<base href='nntp://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'telnet'",
-"input": "<base href='telnet://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'wais'",
-"input": "<base href='wais://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'file'",
-"input": "<base href='file://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'prospero'",
-"input": "<base href='prospero://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'z39.50s'",
-"input": "<base href='z39.50s://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'z39.50r'",
-"input": "<base href='z39.50r://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'cid'",
-"input": "<base href='cid://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'mid'",
-"input": "<base href='mid://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'vemmi'",
-"input": "<base href='vemmi://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'service'",
-"input": "<base href='service://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'imap'",
-"input": "<base href='imap://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'nfs'",
-"input": "<base href='nfs://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'acap'",
-"input": "<base href='acap://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'rtsp'",
-"input": "<base href='rtsp://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'tip'",
-"input": "<base href='tip://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'pop'",
-"input": "<base href='pop://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'data'",
-"input": "<base href='data://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'dav'",
-"input": "<base href='dav://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'opaquelocktoken'",
-"input": "<base href='opaquelocktoken://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'sip'",
-"input": "<base href='sip://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'sips'",
-"input": "<base href='sips://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'tel'",
-"input": "<base href='tel://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'fax'",
-"input": "<base href='fax://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'modem'",
-"input": "<base href='modem://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'ldap'",
-"input": "<base href='ldap://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'https'",
-"input": "<base href='https://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'soap.beep'",
-"input": "<base href='soap.beep://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'soap.beeps'",
-"input": "<base href='soap.beeps://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'xmlrpc.beep'",
-"input": "<base href='xmlrpc.beep://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'xmlrpc.beeps'",
-"input": "<base href='xmlrpc.beeps://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'urn'",
-"input": "<base href='urn://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'go'",
-"input": "<base href='go://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'h323'",
-"input": "<base href='h323://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'ipp'",
-"input": "<base href='ipp://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'tftp'",
-"input": "<base href='tftp://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'mupdate'",
-"input": "<base href='mupdate://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'pres'",
-"input": "<base href='pres://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'im'",
-"input": "<base href='im://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'mtqp'",
-"input": "<base href='mtqp://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'iris.beep'",
-"input": "<base href='iris.beep://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'dict'",
-"input": "<base href='dict://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'snmp'",
-"input": "<base href='snmp://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'crid'",
-"input": "<base href='crid://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'tag'",
-"input": "<base href='tag://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'dns'",
-"input": "<base href='dns://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'info'",
-"input": "<base href='info://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'javascript'",
-"input": "<base href='javascript:foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'FTP'",
-"input": "<base href='FTP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'HTTP'",
-"input": "<base href='HTTP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'GOPHER'",
-"input": "<base href='GOPHER://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'MAILTO'",
-"input": "<base href='MAILTO://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'NEWS'",
-"input": "<base href='NEWS://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'NNTP'",
-"input": "<base href='NNTP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'TELNET'",
-"input": "<base href='TELNET://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'WAIS'",
-"input": "<base href='WAIS://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'FILE'",
-"input": "<base href='FILE://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'PROSPERO'",
-"input": "<base href='PROSPERO://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'Z39.50S'",
-"input": "<base href='Z39.50S://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'Z39.50R'",
-"input": "<base href='Z39.50R://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'CID'",
-"input": "<base href='CID://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'MID'",
-"input": "<base href='MID://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'VEMMI'",
-"input": "<base href='VEMMI://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'SERVICE'",
-"input": "<base href='SERVICE://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'IMAP'",
-"input": "<base href='IMAP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'NFS'",
-"input": "<base href='NFS://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'ACAP'",
-"input": "<base href='ACAP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'RTSP'",
-"input": "<base href='RTSP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'TIP'",
-"input": "<base href='TIP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'POP'",
-"input": "<base href='POP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'DATA'",
-"input": "<base href='DATA://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'DAV'",
-"input": "<base href='DAV://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'OPAQUELOCKTOKEN'",
-"input": "<base href='OPAQUELOCKTOKEN://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'SIP'",
-"input": "<base href='SIP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'SIPS'",
-"input": "<base href='SIPS://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'TEL'",
-"input": "<base href='TEL://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'FAX'",
-"input": "<base href='FAX://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'MODEM'",
-"input": "<base href='MODEM://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'LDAP'",
-"input": "<base href='LDAP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'HTTPS'",
-"input": "<base href='HTTPS://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'SOAP.BEEP'",
-"input": "<base href='SOAP.BEEP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'SOAP.BEEPS'",
-"input": "<base href='SOAP.BEEPS://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'XMLRPC.BEEP'",
-"input": "<base href='XMLRPC.BEEP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'XMLRPC.BEEPS'",
-"input": "<base href='XMLRPC.BEEPS://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'URN'",
-"input": "<base href='URN://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'GO'",
-"input": "<base href='GO://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'H323'",
-"input": "<base href='H323://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'IPP'",
-"input": "<base href='IPP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'TFTP'",
-"input": "<base href='TFTP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'MUPDATE'",
-"input": "<base href='MUPDATE://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'PRES'",
-"input": "<base href='PRES://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'IM'",
-"input": "<base href='IM://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'MTQP'",
-"input": "<base href='MTQP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'IRIS.BEEP'",
-"input": "<base href='IRIS.BEEP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'DICT'",
-"input": "<base href='DICT://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'SNMP'",
-"input": "<base href='SNMP://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'CRID'",
-"input": "<base href='CRID://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'TAG'",
-"input": "<base href='TAG://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'DNS'",
-"input": "<base href='DNS://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'INFO'",
-"input": "<base href='INFO://foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'JAVASCRIPT'",
-"input": "<base href='JAVASCRIPT:foo'",
-"fail-if": "invalid-scheme"},
-
-{"description": "base href contains valid URI scheme 'foo'",
-"input": "<base href='foo:bar'",
-"fail-unless": "invalid-scheme"},
-
-{"description": "base href contains valid URI 'g'",
-"input": "<base href='g'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI './g'",
-"input": "<base href='./g'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'g/'",
-"input": "<base href='g/'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '/g'",
-"input": "<base href='/g'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '//g'",
-"input": "<base href='//g'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '?y'",
-"input": "<base href='?y'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'g?y'",
-"input": "<base href='g?y'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '#s'",
-"input": "<base href='#s'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'g#s'",
-"input": "<base href='g#s'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'g?y#s'",
-"input": "<base href='g?y#s'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI ';x'",
-"input": "<base href=';x'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'g;x'",
-"input": "<base href='g;x'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'g;x?y#s'",
-"input": "<base href='g;x?y#s'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '.'",
-"input": "<base href='.'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI './'",
-"input": "<base href='./'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '..'",
-"input": "<base href='..'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '../'",
-"input": "<base href='../'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '../g'",
-"input": "<base href='../g'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '../..'",
-"input": "<base href='../..'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '../../'",
-"input": "<base href='../../'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '../../g'",
-"input": "<base href='../../g'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '../../../g'",
-"input": "<base href='../../../g'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '../../../../g'",
-"input": "<base href='../../../../g'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '/./g'",
-"input": "<base href='/./g'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '/../g'",
-"input": "<base href='/../g'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'g.'",
-"input": "<base href='g.'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '.g'",
-"input": "<base href='.g'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'g..'",
-"input": "<base href='g..'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI '..g'",
-"input": "<base href='..g'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI './../g'",
-"input": "<base href='./../g'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI './g/.'",
-"input": "<base href='./g/.'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'g/./h'",
-"input": "<base href='g/./h'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'g/../h'",
-"input": "<base href='g/../h'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'g;x=1/./y'",
-"input": "<base href='g;x=1/./y'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'g;x=1/../y'",
-"input": "<base href='g;x=1/../y'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'g?y/./x'",
-"input": "<base href='g?y/./x'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'g?y/../x'",
-"input": "<base href='g?y/../x'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'g#s/./x'",
-"input": "<base href='g#s/./x'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'g#s/../x'",
-"input": "<base href='g#s/../x'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI './g:h'",
-"input": "<base href='./g:h'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'http://www.w%33.org'",
-"input": "<base href='http://www.w%33.org'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'http://r%C3%A4ksm%C3%B6rg%C3%A5s.josefsson.org'",
-"input": "<base href='http://r%C3%A4ksm%C3%B6rg%C3%A5s.josefsson.org'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'http://xn--rksmrgs-5wao1o.josefsson.org'",
-"input": "<base href='http://xn--rksmrgs-5wao1o.josefsson.org'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'http://%E7%B4%8D%E8%B1%86.w3.mag.keio.ac.jp'",
-"input": "<base href='http://%E7%B4%8D%E8%B1%86.w3.mag.keio.ac.jp'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'http://xn--99zt52a.w3.mag.keio.ac.jp'",
-"input": "<base href='http://xn--99zt52a.w3.mag.keio.ac.jp'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'http://www.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'",
-"input": "<base href='http://www.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'http://www.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'",
-"input": "<base href='http://www.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'http://%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'",
-"input": "<base href='http://%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "base href contains valid URI 'http://xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'",
-"input": "<base href='http://xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'",
-"fail-if": "invalid-attribute-value"}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/base-target-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/base-target-attribute.test
deleted file mode 100755
index 6d4db20b2a0..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/base-target-attribute.test
+++ /dev/null
@@ -1,35 +0,0 @@
-{"tests": [
-
-{"description": "valid base target attribute '_self'",
-"input": "<base target=_self>",
-"fail-if": "invalid-browsing-context"},
-
-{"description": "valid base target attribute '_parent'",
-"input": "<base target=_parent>",
-"fail-if": "invalid-browsing-context"},
-
-{"description": "valid base target attribute '_top'",
-"input": "<base target=_top>",
-"fail-if": "invalid-browsing-context"},
-
-{"description": "valid base target attribute '_blank'",
-"input": "<base target=_blank>",
-"fail-if": "invalid-browsing-context"},
-
-{"description": "valid base target attribute 'foo'",
-"input": "<base target=foo>",
-"fail-if": "invalid-browsing-context"},
-
-{"description": "base target attribute may be blank",
-"input": "<base target>",
-"fail-if": "invalid-browsing-context"},
-
-{"description": "invalid base target attribute '_'",
-"input": "<base target=_>",
-"fail-unless": "invalid-browsing-context"},
-
-{"description": "invalid base target attribute '_foo'",
-"input": "<base target=_foo>",
-"fail-unless": "invalid-browsing-context"}
-
-]} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/blockquote-cite-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/blockquote-cite-attribute.test
deleted file mode 100755
index 153c6e6af1d..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/blockquote-cite-attribute.test
+++ /dev/null
@@ -1,7 +0,0 @@
-{"tests": [
-
-{"description": "blockquote cite contains invalid URI due to space in domain",
-"input": "<blockquote cite='http://www.example. com/'",
-"fail-unless": "invalid-uri-char"}
-
-]} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/classattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/classattribute.test
deleted file mode 100755
index 0fe703fcddc..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/classattribute.test
+++ /dev/null
@@ -1,152 +0,0 @@
-{"tests": [
-
-{"description": "valid single class attribute value",
-"input": "<span class=a>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with leading space",
-"input": "<span class=' a'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with trailing space",
-"input": "<span class='a '>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with leading and trailing space",
-"input": "<span class=' a '>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with leading tab",
-"input": "<span class='\ta'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with trailing tab",
-"input": "<span class='a\t'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with leading and trailing tab",
-"input": "<span class='\ta\t'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with leading LF",
-"input": "<span class='\na'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with trailing LF",
-"input": "<span class='a\n'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with leading and trailing LF",
-"input": "<span class='\na\n'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with leading LT",
-"input": "<span class='\u000Ba'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with trailing LT",
-"input": "<span class='a\u000B'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with leading and trailing LT",
-"input": "<span class='\u000Ba\u000B'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with leading FF",
-"input": "<span class='\u000Ca'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with trailing FF",
-"input": "<span class='a\u000C'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with leading and trailing FF",
-"input": "<span class='\u000Ca\u000C'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with leading CR",
-"input": "<span class='\ra'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with trailing CR",
-"input": "<span class='a\r'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid single class attribute value with leading and trailing CR",
-"input": "<span class='\ra\r'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid double class attribute value separated by space",
-"input": "<span class='a b'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid double class attribute value separated by tab",
-"input": "<span class='a\tb'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid double class attribute value separated by LF",
-"input": "<span class='a\nb'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid double class attribute value separated by LT",
-"input": "<span class='a\u000Bb'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid double class attribute value separated by FF",
-"input": "<span class='a\u000Cb'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid double class attribute value separated by CR",
-"input": "<span class='a\rb'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "invalid duplicated class attribute value separated by space",
-"input": "<span class='a a'>",
-"fail-unless": "invalid-attribute-value"},
-
-{"description": "invalid duplicated class attribute value separated by tab",
-"input": "<span class='a\ta'>",
-"fail-unless": "invalid-attribute-value"},
-
-{"description": "invalid duplicated class attribute value separated by LF",
-"input": "<span class='a\na'>",
-"fail-unless": "invalid-attribute-value"},
-
-{"description": "invalid duplicated class attribute value separated by LT",
-"input": "<span class='a\u000Ba'>",
-"fail-unless": "invalid-attribute-value"},
-
-{"description": "invalid duplicated class attribute value separated by FF",
-"input": "<span class='a\u000Ca'>",
-"fail-unless": "invalid-attribute-value"},
-
-{"description": "invalid duplicated class attribute value separated by CR",
-"input": "<span class='a\ra'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated class attribute value separated by space",
-"input": "<span class='a a'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated class attribute value separated by tab",
-"input": "<span class='a\ta'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated class attribute value separated by LF",
-"input": "<span class='a\na'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated class attribute value separated by LT",
-"input": "<span class='a\u000Ba'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated class attribute value separated by FF",
-"input": "<span class='a\u000Ca'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated class attribute value separated by CR",
-"input": "<span class='a\ra'>",
-"fail-unless": "duplicate-value-in-token-list"}
-
-]}
-
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/contenteditableattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/contenteditableattribute.test
deleted file mode 100755
index b6ae1d27e7e..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/contenteditableattribute.test
+++ /dev/null
@@ -1,59 +0,0 @@
-{"tests": [
-
-{"description": "valid contenteditable attribute value 'true'",
-"input": "<span contenteditable=true>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid contenteditable attribute value 'TRUE'",
-"input": "<span contenteditable=TRUE>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid contenteditable attribute value 'TrUe'",
-"input": "<span contenteditable=TrUe>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid contenteditable attribute value 'false'",
-"input": "<span contenteditable=false>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid contenteditable attribute value 'FALSE'",
-"input": "<span contenteditable=FALSE>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid contenteditable attribute value 'FalSe'",
-"input": "<span contenteditable=FalSe>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid contenteditable attribute value ''",
-"input": "<span contenteditable=''>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid contenteditable attribute value (not specified)",
-"input": "<span contenteditable>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "invalid contenteditable attribute value 'foo'",
-"input": "<span contenteditable=foo>",
-"fail-unless": "invalid-enumerated-value"},
-
-{"description": "invalid contenteditable attribute value '0'",
-"input": "<span contenteditable=0>",
-"fail-unless": "invalid-enumerated-value"},
-
-{"description": "invalid contenteditable attribute value '1'",
-"input": "<span contenteditable=1>",
-"fail-unless": "invalid-enumerated-value"},
-
-{"description": "invalid contenteditable attribute value 'yes'",
-"input": "<span contenteditable=yes>",
-"fail-unless": "invalid-enumerated-value"},
-
-{"description": "invalid contenteditable attribute value 'no'",
-"input": "<span contenteditable=no>",
-"fail-unless": "invalid-enumerated-value"},
-
-{"description": "invalid contenteditable attribute value 'inherit'",
-"input": "<span contenteditable=inherit>",
-"fail-unless": "invalid-enumerated-value"}
-
-]} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/contextmenuattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/contextmenuattribute.test
deleted file mode 100755
index 59e4397c911..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/contextmenuattribute.test
+++ /dev/null
@@ -1,115 +0,0 @@
-{"tests": [
-
-{"description": "contextmenu points to valid ID earlier",
-"input": "<menu id=a><span contextmenu=a>",
-"fail-if": "id-does-not-exist"},
-
-{"description": "contextmenu points to valid ID later",
-"input": "<span contextmenu=a><menu id=a>",
-"fail-if": "id-does-not-exist"},
-
-{"description": "contextmenu points to non-existent ID",
-"input": "<span contextmenu=a>",
-"fail-unless": "id-does-not-exist"},
-
-{"description": "contextmenu points to ID on non-menu element",
-"input": "<span id=a><span contextmenu=a>",
-"fail-unless": "contextmenu-must-point-to-menu"},
-
-{"description": "uppercase contextmenu points to ID on non-menu element",
-"input": "<span id=a><span CONTEXTMENU=a>",
-"fail-unless": "contextmenu-must-point-to-menu"},
-
-{"description": "valid ID 'a'",
-"input": "<span contextmenu=a>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid ID '1'",
-"input": "<span contextmenu=1>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "wacky but valid ID",
-"input": "<span contextmenu='<html><head><title>a</title></head><body><p>b</p></body></html>'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "invalid blank ID",
-"input": "<span id>",
-"fail-unless": "attribute-value-can-not-be-blank"},
-
-{"description": "invalid blank ID with quotes",
-"input": "<span contextmenu=''>",
-"fail-unless": "attribute-value-can-not-be-blank"},
-
-{"description": "invalid ID because of leading space",
-"input": "<span contextmenu=' a'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of trailing space",
-"input": "<span contextmenu='a '>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of space in value",
-"input": "<span contextmenu='a b'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of leading tab",
-"input": "<span contextmenu='\ta'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of trailing tab",
-"input": "<span contextmenu='a\t'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of tab in value",
-"input": "<span contextmenu='a\tb'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of leading LF",
-"input": "<span contextmenu='\na'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of trailing LF",
-"input": "<span contextmenu='a\n'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of LF in value",
-"input": "<span contextmenu='a\nb'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of leading LT",
-"input": "<span contextmenu='\u000Ba'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of trailing LT",
-"input": "<span contextmenu='a\u000B'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of LT in value",
-"input": "<span contextmenu='a\u000Bb'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of leading FF",
-"input": "<span contextmenu='\u000Ca'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of trailing FF",
-"input": "<span contextmenu='a\u000C'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of FF in value",
-"input": "<span contextmenu='a\u000Cb'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of leading CR",
-"input": "<span contextmenu='\ra'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of trailing CR",
-"input": "<span contextmenu='a\r'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of CR in value",
-"input": "<span contextmenu='a\rb'>",
-"fail-unless": "space-in-id"}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/dirattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/dirattribute.test
deleted file mode 100755
index 71883dc1c34..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/dirattribute.test
+++ /dev/null
@@ -1,59 +0,0 @@
-{"tests": [
-
-{"description": "valid dir attribute value 'ltr'",
-"input": "<span dir=ltr>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid dir attribute value 'LTR'",
-"input": "<span dir=LTR>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid dir attribute value 'LtR'",
-"input": "<span dir=LtR>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid dir attribute value 'rtl'",
-"input": "<span dir=rtl>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid dir attribute value 'RTL'",
-"input": "<span dir=RTL>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid dir attribute value 'RtL'",
-"input": "<span dir=RtL>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "invalid dir attribute value due to leading space",
-"input": "<span dir=' ltr'>",
-"fail-unless": "invalid-enumerated-value"},
-
-{"description": "dir attribute value can not be blank",
-"input": "<span dir>",
-"fail-unless": "attribute-value-can-not-be-blank"},
-
-{"description": "dir attribute value can not be blank (with quotes)",
-"input": "<span dir=''>",
-"fail-unless": "attribute-value-can-not-be-blank"},
-
-{"description": "invalid dir attribute value 'left'",
-"input": "<span dir=left>",
-"fail-unless": "invalid-enumerated-value"},
-
-{"description": "invalid dir attribute value 'right'",
-"input": "<span dir=right>",
-"fail-unless": "invalid-enumerated-value"},
-
-{"description": "invalid dir attribute value 'lefttoright'",
-"input": "<span dir=lefttoright>",
-"fail-unless": "invalid-enumerated-value"},
-
-{"description": "invalid dir attribute value 'righttoleft'",
-"input": "<span dir=righttoleft>",
-"fail-unless": "invalid-enumerated-value"},
-
-{"description": "invalid dir attribute value 'inherit'",
-"input": "<span dir=inherit>",
-"fail-unless": "invalid-enumerated-value"}
-
-]} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/draggableattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/draggableattribute.test
deleted file mode 100755
index 49e692d988f..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/draggableattribute.test
+++ /dev/null
@@ -1,63 +0,0 @@
-{"tests": [
-
-{"description": "valid draggable attribute value 'true'",
-"input": "<span draggable=true>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid draggable attribute value 'TRUE'",
-"input": "<span draggable=TRUE>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid draggable attribute value 'TrUe'",
-"input": "<span draggable=TrUe>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid draggable attribute value 'false'",
-"input": "<span draggable=false>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid draggable attribute value 'FALSE'",
-"input": "<span draggable=FALSE>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid draggable attribute value 'FalSe'",
-"input": "<span draggable=FalSe>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "invalid draggable attribute value ''",
-"input": "<span draggable=''>",
-"fail-unless": "attribute-value-can-not-be-blank"},
-
-{"description": "valid draggable attribute value (not specified)",
-"input": "<span draggable>",
-"fail-unless": "attribute-value-can-not-be-blank"},
-
-{"description": "invalid draggable attribute value 'foo'",
-"input": "<span draggable=foo>",
-"fail-unless": "invalid-enumerated-value"},
-
-{"description": "invalid draggable attribute value '0'",
-"input": "<span draggable=0>",
-"fail-unless": "invalid-enumerated-value"},
-
-{"description": "invalid draggable attribute value '1'",
-"input": "<span draggable=1>",
-"fail-unless": "invalid-enumerated-value"},
-
-{"description": "invalid draggable attribute value 'yes'",
-"input": "<span draggable=yes>",
-"fail-unless": "invalid-enumerated-value"},
-
-{"description": "invalid draggable attribute value 'no'",
-"input": "<span draggable=no>",
-"fail-unless": "invalid-enumerated-value"},
-
-{"description": "invalid draggable attribute value 'auto'",
-"input": "<span draggable=auto>",
-"fail-unless": "invalid-enumerated-value"},
-
-{"description": "invalid draggable attribute value 'inherit'",
-"input": "<span draggable=inherit>",
-"fail-unless": "invalid-enumerated-value"}
-
-]} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/html-xmlns-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/html-xmlns-attribute.test
deleted file mode 100755
index 2ebd19eba88..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/html-xmlns-attribute.test
+++ /dev/null
@@ -1,23 +0,0 @@
-{"tests": [
-
-{"description": "valid html xmlns attribute",
-"input": "<html xmlns=http://www.w3.org/1999/xhtml>",
-"fail-if": "invalid-root-namespace"},
-
-{"description": "invalid html xmlns attribute due to leading space",
-"input": "<html xmlns=' http://www.w3.org/1999/xhtml'>",
-"fail-unless": "invalid-root-namespace"},
-
-{"description": "invalid html xmlns attribute due to trailing space",
-"input": "<html xmlns='http://www.w3.org/1999/xhtml '>",
-"fail-unless": "invalid-root-namespace"},
-
-{"description": "invalid html xmlns attribute due to uppercase",
-"input": "<html xmlns=HTTP://WWW.W3.ORG/1999/XHTML>",
-"fail-unless": "invalid-root-namespace"},
-
-{"description": "invalid xmlns attribute on non-html element",
-"input": "<body xmlns=http://www.w3.org/1999/xhtml>",
-"fail-unless": "unknown-attribute"}
-
-]} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/idattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/idattribute.test
deleted file mode 100755
index 4058d5219a3..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/idattribute.test
+++ /dev/null
@@ -1,115 +0,0 @@
-{"tests": [
-
-{"description": "valid ID 'a'",
-"input": "<span id=a>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid ID '1'",
-"input": "<span id=1>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "wacky but valid ID",
-"input": "<span id='<html><head><title>a</title></head><body><p>b</p></body></html>'>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "invalid blank ID",
-"input": "<span id>",
-"fail-unless": "attribute-value-can-not-be-blank"},
-
-{"description": "invalid blank ID with quotes",
-"input": "<span id=''>",
-"fail-unless": "attribute-value-can-not-be-blank"},
-
-{"description": "invalid ID because of leading space",
-"input": "<span id=' a'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of trailing space",
-"input": "<span id='a '>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of space in value",
-"input": "<span id='a b'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of leading tab",
-"input": "<span id='\ta'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of trailing tab",
-"input": "<span id='a\t'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of tab in value",
-"input": "<span id='a\tb'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of leading LF",
-"input": "<span id='\na'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of trailing LF",
-"input": "<span id='a\n'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of LF in value",
-"input": "<span id='a\nb'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of leading LT",
-"input": "<span id='\u000Ba'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of trailing LT",
-"input": "<span id='a\u000B'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of LT in value",
-"input": "<span id='a\u000Bb'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of leading FF",
-"input": "<span id='\u000Ca'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of trailing FF",
-"input": "<span id='a\u000C'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of FF in value",
-"input": "<span id='a\u000Cb'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of leading CR",
-"input": "<span id='\ra'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of trailing CR",
-"input": "<span id='a\r'>",
-"fail-unless": "space-in-id"},
-
-{"description": "invalid ID because of CR in value",
-"input": "<span id='a\rb'>",
-"fail-unless": "space-in-id"},
-
-{"description": "duplicate ID values",
-"input": "<span id=a><span id=a>",
-"fail-unless": "duplicate-id"},
-
-{"description": "duplicate ID values with spaces (weird but true)",
-"input": "<span id='a '><span id='a '>",
-"fail-unless": "duplicate-id"},
-
-{"description": "not duplicate ID values because spaces don't match",
-"input": "<span id=a><span id='a '>",
-"fail-if": "duplicate-id"},
-
-{"description": "not duplicate ID values because spaces don't match",
-"input": "<span id=' a'><span id='a '>",
-"fail-if": "duplicate-id"},
-
-{"description": "not duplicate ID values because case doesn't match",
-"input": "<span id=a><span id=A>",
-"fail-if": "duplicate-id"}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/inputattributes.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/inputattributes.test
deleted file mode 100755
index acdc50e7bfe..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/inputattributes.test
+++ /dev/null
@@ -1,2795 +0,0 @@
-{"tests": [
-
-{"description": "'size' attribute deprecated on <input type='text'>",
-"input": "<input type=text size>",
-"fail-unless": "deprecated-attribute"},
-
-{"description": "'size' attribute deprecated on <input type='password'>",
-"input": "<input type=password size>",
-"fail-unless": "deprecated-attribute"},
-
-{"description": "allowed 'accesskey' attribute on <input type='checkbox'>",
-"input": "<input type=checkbox accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='checkbox'>",
-"input": "<input type=checkbox disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'checked' attribute on <input type='checkbox'>",
-"input": "<input type=checkbox checked>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'min' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox min>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'readonly' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox readonly>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='checkbox'>",
-"input": "<input type=checkbox autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='checkbox'>",
-"input": "<input type=checkbox form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'max' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox max>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'step' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox step>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='checkbox'>",
-"input": "<input type=checkbox name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'required' attribute on <input type='checkbox'>",
-"input": "<input type=checkbox required>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'list' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox list>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='checkbox'>",
-"input": "<input type=checkbox value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'autocomplete' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox autocomplete>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='checkbox'>",
-"input": "<input type=checkbox action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='checkbox'>",
-"input": "<input type=checkbox tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='text'>",
-"input": "<input type=text accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='text'>",
-"input": "<input type=text accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='text'>",
-"input": "<input type=text replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='text'>",
-"input": "<input type=text disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='text'>",
-"input": "<input type=text alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'size' attribute on <input type='text'>",
-"input": "<input type=text size>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='text'>",
-"input": "<input type=text checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'min' attribute not allowed on <input type='text'>",
-"input": "<input type=text min>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'pattern' attribute on <input type='text'>",
-"input": "<input type=text pattern>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'readonly' attribute on <input type='text'>",
-"input": "<input type=text readonly>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='text'>",
-"input": "<input type=text template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='text'>",
-"input": "<input type=text autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='text'>",
-"input": "<input type=text target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='text'>",
-"input": "<input type=text method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='text'>",
-"input": "<input type=text form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'max' attribute not allowed on <input type='text'>",
-"input": "<input type=text max>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'step' attribute not allowed on <input type='text'>",
-"input": "<input type=text step>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='text'>",
-"input": "<input type=text enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='text'>",
-"input": "<input type=text src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='text'>",
-"input": "<input type=text name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'required' attribute on <input type='text'>",
-"input": "<input type=text required>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'list' attribute on <input type='text'>",
-"input": "<input type=text list>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='text'>",
-"input": "<input type=text value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autocomplete' attribute on <input type='text'>",
-"input": "<input type=text autocomplete>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'inputmode' attribute on <input type='text'>",
-"input": "<input type=text inputmode>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'maxlength' attribute on <input type='text'>",
-"input": "<input type=text maxlength>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='text'>",
-"input": "<input type=text action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='text'>",
-"input": "<input type=text tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='image'>",
-"input": "<input type=image accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='image'>",
-"input": "<input type=image accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'replace' attribute on <input type='image'>",
-"input": "<input type=image replace>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='image'>",
-"input": "<input type=image disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'alt' attribute on <input type='image'>",
-"input": "<input type=image alt>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='image'>",
-"input": "<input type=image size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='image'>",
-"input": "<input type=image checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'min' attribute not allowed on <input type='image'>",
-"input": "<input type=image min>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='image'>",
-"input": "<input type=image pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'readonly' attribute not allowed on <input type='image'>",
-"input": "<input type=image readonly>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='image'>",
-"input": "<input type=image template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='image'>",
-"input": "<input type=image autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'target' attribute on <input type='image'>",
-"input": "<input type=image target>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'method' attribute on <input type='image'>",
-"input": "<input type=image method>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='image'>",
-"input": "<input type=image form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'max' attribute not allowed on <input type='image'>",
-"input": "<input type=image max>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'step' attribute not allowed on <input type='image'>",
-"input": "<input type=image step>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'enctype' attribute on <input type='image'>",
-"input": "<input type=image enctype>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'src' attribute on <input type='image'>",
-"input": "<input type=image src>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='image'>",
-"input": "<input type=image name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'required' attribute not allowed on <input type='image'>",
-"input": "<input type=image required>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'list' attribute not allowed on <input type='image'>",
-"input": "<input type=image list>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'value' attribute not allowed on <input type='image'>",
-"input": "<input type=image value>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'autocomplete' attribute not allowed on <input type='image'>",
-"input": "<input type=image autocomplete>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='image'>",
-"input": "<input type=image inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='image'>",
-"input": "<input type=image maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'action' attribute on <input type='image'>",
-"input": "<input type=image action>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='image'>",
-"input": "<input type=image tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='number'>",
-"input": "<input type=number accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='number'>",
-"input": "<input type=number accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='number'>",
-"input": "<input type=number replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='number'>",
-"input": "<input type=number disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='number'>",
-"input": "<input type=number alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='number'>",
-"input": "<input type=number size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='number'>",
-"input": "<input type=number checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'min' attribute on <input type='number'>",
-"input": "<input type=number min>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='number'>",
-"input": "<input type=number pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'readonly' attribute on <input type='number'>",
-"input": "<input type=number readonly>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='number'>",
-"input": "<input type=number template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='number'>",
-"input": "<input type=number autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='number'>",
-"input": "<input type=number target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='number'>",
-"input": "<input type=number method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='number'>",
-"input": "<input type=number form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'max' attribute on <input type='number'>",
-"input": "<input type=number max>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'step' attribute on <input type='number'>",
-"input": "<input type=number step>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='number'>",
-"input": "<input type=number enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='number'>",
-"input": "<input type=number src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='number'>",
-"input": "<input type=number name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'required' attribute on <input type='number'>",
-"input": "<input type=number required>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'list' attribute on <input type='number'>",
-"input": "<input type=number list>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='number'>",
-"input": "<input type=number value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autocomplete' attribute on <input type='number'>",
-"input": "<input type=number autocomplete>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='number'>",
-"input": "<input type=number inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='number'>",
-"input": "<input type=number maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='number'>",
-"input": "<input type=number action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='number'>",
-"input": "<input type=number tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='month'>",
-"input": "<input type=month accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='month'>",
-"input": "<input type=month accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='month'>",
-"input": "<input type=month replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='month'>",
-"input": "<input type=month disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='month'>",
-"input": "<input type=month alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='month'>",
-"input": "<input type=month size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='month'>",
-"input": "<input type=month checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'min' attribute on <input type='month'>",
-"input": "<input type=month min>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='month'>",
-"input": "<input type=month pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'readonly' attribute on <input type='month'>",
-"input": "<input type=month readonly>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='month'>",
-"input": "<input type=month template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='month'>",
-"input": "<input type=month autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='month'>",
-"input": "<input type=month target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='month'>",
-"input": "<input type=month method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='month'>",
-"input": "<input type=month form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'max' attribute on <input type='month'>",
-"input": "<input type=month max>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'step' attribute on <input type='month'>",
-"input": "<input type=month step>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='month'>",
-"input": "<input type=month enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='month'>",
-"input": "<input type=month src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='month'>",
-"input": "<input type=month name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'required' attribute on <input type='month'>",
-"input": "<input type=month required>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'list' attribute on <input type='month'>",
-"input": "<input type=month list>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='month'>",
-"input": "<input type=month value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autocomplete' attribute on <input type='month'>",
-"input": "<input type=month autocomplete>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='month'>",
-"input": "<input type=month inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='month'>",
-"input": "<input type=month maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='month'>",
-"input": "<input type=month action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='month'>",
-"input": "<input type=month tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='radio'>",
-"input": "<input type=radio accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='radio'>",
-"input": "<input type=radio disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'checked' attribute on <input type='radio'>",
-"input": "<input type=radio checked>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'min' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio min>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'readonly' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio readonly>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='radio'>",
-"input": "<input type=radio autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='radio'>",
-"input": "<input type=radio form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'max' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio max>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'step' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio step>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='radio'>",
-"input": "<input type=radio name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'required' attribute on <input type='radio'>",
-"input": "<input type=radio required>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'list' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio list>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='radio'>",
-"input": "<input type=radio value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'autocomplete' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio autocomplete>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='radio'>",
-"input": "<input type=radio action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='radio'>",
-"input": "<input type=radio tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='file'>",
-"input": "<input type=file accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accept' attribute on <input type='file'>",
-"input": "<input type=file accept>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='file'>",
-"input": "<input type=file replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='file'>",
-"input": "<input type=file disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='file'>",
-"input": "<input type=file alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='file'>",
-"input": "<input type=file size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='file'>",
-"input": "<input type=file checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'min' attribute on <input type='file'>",
-"input": "<input type=file min>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='file'>",
-"input": "<input type=file pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'readonly' attribute not allowed on <input type='file'>",
-"input": "<input type=file readonly>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='file'>",
-"input": "<input type=file template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='file'>",
-"input": "<input type=file autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='file'>",
-"input": "<input type=file target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='file'>",
-"input": "<input type=file method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='file'>",
-"input": "<input type=file form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'max' attribute on <input type='file'>",
-"input": "<input type=file max>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'step' attribute not allowed on <input type='file'>",
-"input": "<input type=file step>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='file'>",
-"input": "<input type=file enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='file'>",
-"input": "<input type=file src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='file'>",
-"input": "<input type=file name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'required' attribute on <input type='file'>",
-"input": "<input type=file required>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'list' attribute not allowed on <input type='file'>",
-"input": "<input type=file list>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'value' attribute not allowed on <input type='file'>",
-"input": "<input type=file value>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'autocomplete' attribute not allowed on <input type='file'>",
-"input": "<input type=file autocomplete>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='file'>",
-"input": "<input type=file inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='file'>",
-"input": "<input type=file maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='file'>",
-"input": "<input type=file action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='file'>",
-"input": "<input type=file tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='password'>",
-"input": "<input type=password accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='password'>",
-"input": "<input type=password accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='password'>",
-"input": "<input type=password replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='password'>",
-"input": "<input type=password disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='password'>",
-"input": "<input type=password alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'size' attribute on <input type='password'>",
-"input": "<input type=password size>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='password'>",
-"input": "<input type=password checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'min' attribute not allowed on <input type='password'>",
-"input": "<input type=password min>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'pattern' attribute on <input type='password'>",
-"input": "<input type=password pattern>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'readonly' attribute on <input type='password'>",
-"input": "<input type=password readonly>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='password'>",
-"input": "<input type=password template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='password'>",
-"input": "<input type=password autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='password'>",
-"input": "<input type=password target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='password'>",
-"input": "<input type=password method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='password'>",
-"input": "<input type=password form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'max' attribute not allowed on <input type='password'>",
-"input": "<input type=password max>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'step' attribute not allowed on <input type='password'>",
-"input": "<input type=password step>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='password'>",
-"input": "<input type=password enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='password'>",
-"input": "<input type=password src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='password'>",
-"input": "<input type=password name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'required' attribute on <input type='password'>",
-"input": "<input type=password required>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'list' attribute not allowed on <input type='password'>",
-"input": "<input type=password list>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='password'>",
-"input": "<input type=password value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autocomplete' attribute on <input type='password'>",
-"input": "<input type=password autocomplete>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'inputmode' attribute on <input type='password'>",
-"input": "<input type=password inputmode>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'maxlength' attribute on <input type='password'>",
-"input": "<input type=password maxlength>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='password'>",
-"input": "<input type=password action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='password'>",
-"input": "<input type=password tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='move-up'>",
-"input": "<input type=move-up accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='move-up'>",
-"input": "<input type=move-up disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'min' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up min>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'readonly' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up readonly>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='move-up'>",
-"input": "<input type=move-up autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='move-up'>",
-"input": "<input type=move-up form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'max' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up max>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'step' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up step>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='move-up'>",
-"input": "<input type=move-up name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'required' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up required>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'list' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up list>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='move-up'>",
-"input": "<input type=move-up value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'autocomplete' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up autocomplete>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='move-up'>",
-"input": "<input type=move-up action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='move-up'>",
-"input": "<input type=move-up tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='submit'>",
-"input": "<input type=submit accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='submit'>",
-"input": "<input type=submit accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'replace' attribute on <input type='submit'>",
-"input": "<input type=submit replace>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='submit'>",
-"input": "<input type=submit disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='submit'>",
-"input": "<input type=submit alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='submit'>",
-"input": "<input type=submit size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='submit'>",
-"input": "<input type=submit checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'min' attribute not allowed on <input type='submit'>",
-"input": "<input type=submit min>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='submit'>",
-"input": "<input type=submit pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'readonly' attribute not allowed on <input type='submit'>",
-"input": "<input type=submit readonly>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='submit'>",
-"input": "<input type=submit template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='submit'>",
-"input": "<input type=submit autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'target' attribute on <input type='submit'>",
-"input": "<input type=submit target>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'method' attribute on <input type='submit'>",
-"input": "<input type=submit method>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='submit'>",
-"input": "<input type=submit form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'max' attribute not allowed on <input type='submit'>",
-"input": "<input type=submit max>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'step' attribute not allowed on <input type='submit'>",
-"input": "<input type=submit step>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'enctype' attribute on <input type='submit'>",
-"input": "<input type=submit enctype>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='submit'>",
-"input": "<input type=submit src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='submit'>",
-"input": "<input type=submit name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'required' attribute not allowed on <input type='submit'>",
-"input": "<input type=submit required>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'list' attribute not allowed on <input type='submit'>",
-"input": "<input type=submit list>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='submit'>",
-"input": "<input type=submit value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'autocomplete' attribute not allowed on <input type='submit'>",
-"input": "<input type=submit autocomplete>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='submit'>",
-"input": "<input type=submit inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='submit'>",
-"input": "<input type=submit maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'action' attribute on <input type='submit'>",
-"input": "<input type=submit action>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='submit'>",
-"input": "<input type=submit tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='add'>",
-"input": "<input type=add accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='add'>",
-"input": "<input type=add accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='add'>",
-"input": "<input type=add replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='add'>",
-"input": "<input type=add disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='add'>",
-"input": "<input type=add alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='add'>",
-"input": "<input type=add size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='add'>",
-"input": "<input type=add checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'min' attribute not allowed on <input type='add'>",
-"input": "<input type=add min>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='add'>",
-"input": "<input type=add pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'readonly' attribute not allowed on <input type='add'>",
-"input": "<input type=add readonly>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'template' attribute on <input type='add'>",
-"input": "<input type=add template>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='add'>",
-"input": "<input type=add autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='add'>",
-"input": "<input type=add target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='add'>",
-"input": "<input type=add method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='add'>",
-"input": "<input type=add form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'max' attribute not allowed on <input type='add'>",
-"input": "<input type=add max>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'step' attribute not allowed on <input type='add'>",
-"input": "<input type=add step>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='add'>",
-"input": "<input type=add enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='add'>",
-"input": "<input type=add src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='add'>",
-"input": "<input type=add name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'required' attribute not allowed on <input type='add'>",
-"input": "<input type=add required>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'list' attribute not allowed on <input type='add'>",
-"input": "<input type=add list>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='add'>",
-"input": "<input type=add value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'autocomplete' attribute not allowed on <input type='add'>",
-"input": "<input type=add autocomplete>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='add'>",
-"input": "<input type=add inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='add'>",
-"input": "<input type=add maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='add'>",
-"input": "<input type=add action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='add'>",
-"input": "<input type=add tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accesskey' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden accesskey>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='hidden'>",
-"input": "<input type=hidden disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'min' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden min>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'readonly' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden readonly>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'autofocus' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden autofocus>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='hidden'>",
-"input": "<input type=hidden form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'max' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden max>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'step' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden step>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='hidden'>",
-"input": "<input type=hidden name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'required' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden required>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'list' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden list>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='hidden'>",
-"input": "<input type=hidden value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'autocomplete' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden autocomplete>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'tabindex' attribute not allowed on <input type='hidden'>",
-"input": "<input type=hidden tabindex>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='email'>",
-"input": "<input type=email accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='email'>",
-"input": "<input type=email accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='email'>",
-"input": "<input type=email replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='email'>",
-"input": "<input type=email disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='email'>",
-"input": "<input type=email alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='email'>",
-"input": "<input type=email size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='email'>",
-"input": "<input type=email checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'min' attribute not allowed on <input type='email'>",
-"input": "<input type=email min>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'pattern' attribute on <input type='email'>",
-"input": "<input type=email pattern>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'readonly' attribute on <input type='email'>",
-"input": "<input type=email readonly>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='email'>",
-"input": "<input type=email template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='email'>",
-"input": "<input type=email autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='email'>",
-"input": "<input type=email target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='email'>",
-"input": "<input type=email method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='email'>",
-"input": "<input type=email form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'max' attribute not allowed on <input type='email'>",
-"input": "<input type=email max>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'step' attribute not allowed on <input type='email'>",
-"input": "<input type=email step>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='email'>",
-"input": "<input type=email enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='email'>",
-"input": "<input type=email src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='email'>",
-"input": "<input type=email name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'required' attribute on <input type='email'>",
-"input": "<input type=email required>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'list' attribute on <input type='email'>",
-"input": "<input type=email list>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='email'>",
-"input": "<input type=email value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autocomplete' attribute on <input type='email'>",
-"input": "<input type=email autocomplete>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'inputmode' attribute on <input type='email'>",
-"input": "<input type=email inputmode>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'maxlength' attribute on <input type='email'>",
-"input": "<input type=email maxlength>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='email'>",
-"input": "<input type=email action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='email'>",
-"input": "<input type=email tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='week'>",
-"input": "<input type=week accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='week'>",
-"input": "<input type=week accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='week'>",
-"input": "<input type=week replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='week'>",
-"input": "<input type=week disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='week'>",
-"input": "<input type=week alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='week'>",
-"input": "<input type=week size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='week'>",
-"input": "<input type=week checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'min' attribute on <input type='week'>",
-"input": "<input type=week min>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='week'>",
-"input": "<input type=week pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'readonly' attribute on <input type='week'>",
-"input": "<input type=week readonly>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='week'>",
-"input": "<input type=week template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='week'>",
-"input": "<input type=week autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='week'>",
-"input": "<input type=week target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='week'>",
-"input": "<input type=week method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='week'>",
-"input": "<input type=week form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'max' attribute on <input type='week'>",
-"input": "<input type=week max>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'step' attribute on <input type='week'>",
-"input": "<input type=week step>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='week'>",
-"input": "<input type=week enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='week'>",
-"input": "<input type=week src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='week'>",
-"input": "<input type=week name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'required' attribute on <input type='week'>",
-"input": "<input type=week required>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'list' attribute on <input type='week'>",
-"input": "<input type=week list>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='week'>",
-"input": "<input type=week value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autocomplete' attribute on <input type='week'>",
-"input": "<input type=week autocomplete>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='week'>",
-"input": "<input type=week inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='week'>",
-"input": "<input type=week maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='week'>",
-"input": "<input type=week action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='week'>",
-"input": "<input type=week tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='date'>",
-"input": "<input type=date accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='date'>",
-"input": "<input type=date accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='date'>",
-"input": "<input type=date replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='date'>",
-"input": "<input type=date disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='date'>",
-"input": "<input type=date alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='date'>",
-"input": "<input type=date size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='date'>",
-"input": "<input type=date checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'min' attribute on <input type='date'>",
-"input": "<input type=date min>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='date'>",
-"input": "<input type=date pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'readonly' attribute on <input type='date'>",
-"input": "<input type=date readonly>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='date'>",
-"input": "<input type=date template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='date'>",
-"input": "<input type=date autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='date'>",
-"input": "<input type=date target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='date'>",
-"input": "<input type=date method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='date'>",
-"input": "<input type=date form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'max' attribute on <input type='date'>",
-"input": "<input type=date max>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'step' attribute on <input type='date'>",
-"input": "<input type=date step>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='date'>",
-"input": "<input type=date enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='date'>",
-"input": "<input type=date src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='date'>",
-"input": "<input type=date name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'required' attribute on <input type='date'>",
-"input": "<input type=date required>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'list' attribute on <input type='date'>",
-"input": "<input type=date list>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='date'>",
-"input": "<input type=date value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autocomplete' attribute on <input type='date'>",
-"input": "<input type=date autocomplete>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='date'>",
-"input": "<input type=date inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='date'>",
-"input": "<input type=date maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='date'>",
-"input": "<input type=date action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='date'>",
-"input": "<input type=date tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='datetime'>",
-"input": "<input type=datetime accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='datetime'>",
-"input": "<input type=datetime accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='datetime'>",
-"input": "<input type=datetime replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='datetime'>",
-"input": "<input type=datetime disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='datetime'>",
-"input": "<input type=datetime alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='datetime'>",
-"input": "<input type=datetime size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='datetime'>",
-"input": "<input type=datetime checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'min' attribute on <input type='datetime'>",
-"input": "<input type=datetime min>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='datetime'>",
-"input": "<input type=datetime pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'readonly' attribute on <input type='datetime'>",
-"input": "<input type=datetime readonly>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='datetime'>",
-"input": "<input type=datetime template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='datetime'>",
-"input": "<input type=datetime autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='datetime'>",
-"input": "<input type=datetime target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='datetime'>",
-"input": "<input type=datetime method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='datetime'>",
-"input": "<input type=datetime form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'max' attribute on <input type='datetime'>",
-"input": "<input type=datetime max>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'step' attribute on <input type='datetime'>",
-"input": "<input type=datetime step>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='datetime'>",
-"input": "<input type=datetime enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='datetime'>",
-"input": "<input type=datetime src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='datetime'>",
-"input": "<input type=datetime name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'required' attribute on <input type='datetime'>",
-"input": "<input type=datetime required>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'list' attribute on <input type='datetime'>",
-"input": "<input type=datetime list>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='datetime'>",
-"input": "<input type=datetime value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autocomplete' attribute on <input type='datetime'>",
-"input": "<input type=datetime autocomplete>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='datetime'>",
-"input": "<input type=datetime inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='datetime'>",
-"input": "<input type=datetime maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='datetime'>",
-"input": "<input type=datetime action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='datetime'>",
-"input": "<input type=datetime tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='move-down'>",
-"input": "<input type=move-down accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='move-down'>",
-"input": "<input type=move-down disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'min' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down min>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'readonly' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down readonly>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='move-down'>",
-"input": "<input type=move-down autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='move-down'>",
-"input": "<input type=move-down form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'max' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down max>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'step' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down step>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='move-down'>",
-"input": "<input type=move-down name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'required' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down required>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'list' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down list>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='move-down'>",
-"input": "<input type=move-down value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'autocomplete' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down autocomplete>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='move-down'>",
-"input": "<input type=move-down action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='move-down'>",
-"input": "<input type=move-down tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='datetime-local'>",
-"input": "<input type=datetime-local accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='datetime-local'>",
-"input": "<input type=datetime-local accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='datetime-local'>",
-"input": "<input type=datetime-local replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='datetime-local'>",
-"input": "<input type=datetime-local disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='datetime-local'>",
-"input": "<input type=datetime-local alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='datetime-local'>",
-"input": "<input type=datetime-local size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='datetime-local'>",
-"input": "<input type=datetime-local checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'min' attribute on <input type='datetime-local'>",
-"input": "<input type=datetime-local min>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='datetime-local'>",
-"input": "<input type=datetime-local pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'readonly' attribute on <input type='datetime-local'>",
-"input": "<input type=datetime-local readonly>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='datetime-local'>",
-"input": "<input type=datetime-local template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='datetime-local'>",
-"input": "<input type=datetime-local autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='datetime-local'>",
-"input": "<input type=datetime-local target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='datetime-local'>",
-"input": "<input type=datetime-local method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='datetime-local'>",
-"input": "<input type=datetime-local form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'max' attribute on <input type='datetime-local'>",
-"input": "<input type=datetime-local max>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'step' attribute on <input type='datetime-local'>",
-"input": "<input type=datetime-local step>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='datetime-local'>",
-"input": "<input type=datetime-local enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='datetime-local'>",
-"input": "<input type=datetime-local src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='datetime-local'>",
-"input": "<input type=datetime-local name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'required' attribute on <input type='datetime-local'>",
-"input": "<input type=datetime-local required>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'list' attribute on <input type='datetime-local'>",
-"input": "<input type=datetime-local list>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='datetime-local'>",
-"input": "<input type=datetime-local value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autocomplete' attribute on <input type='datetime-local'>",
-"input": "<input type=datetime-local autocomplete>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='datetime-local'>",
-"input": "<input type=datetime-local inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='datetime-local'>",
-"input": "<input type=datetime-local maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='datetime-local'>",
-"input": "<input type=datetime-local action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='datetime-local'>",
-"input": "<input type=datetime-local tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='reset'>",
-"input": "<input type=reset accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='reset'>",
-"input": "<input type=reset disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'min' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset min>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'readonly' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset readonly>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='reset'>",
-"input": "<input type=reset autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='reset'>",
-"input": "<input type=reset form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'max' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset max>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'step' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset step>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='reset'>",
-"input": "<input type=reset name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'required' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset required>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'list' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset list>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='reset'>",
-"input": "<input type=reset value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'autocomplete' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset autocomplete>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='reset'>",
-"input": "<input type=reset action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='reset'>",
-"input": "<input type=reset tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='url'>",
-"input": "<input type=url accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='url'>",
-"input": "<input type=url accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='url'>",
-"input": "<input type=url replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='url'>",
-"input": "<input type=url disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='url'>",
-"input": "<input type=url alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='url'>",
-"input": "<input type=url size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='url'>",
-"input": "<input type=url checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'min' attribute not allowed on <input type='url'>",
-"input": "<input type=url min>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'pattern' attribute on <input type='url'>",
-"input": "<input type=url pattern>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'readonly' attribute on <input type='url'>",
-"input": "<input type=url readonly>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='url'>",
-"input": "<input type=url template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='url'>",
-"input": "<input type=url autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='url'>",
-"input": "<input type=url target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='url'>",
-"input": "<input type=url method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='url'>",
-"input": "<input type=url form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'max' attribute not allowed on <input type='url'>",
-"input": "<input type=url max>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'step' attribute not allowed on <input type='url'>",
-"input": "<input type=url step>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='url'>",
-"input": "<input type=url enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='url'>",
-"input": "<input type=url src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='url'>",
-"input": "<input type=url name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'required' attribute on <input type='url'>",
-"input": "<input type=url required>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'list' attribute on <input type='url'>",
-"input": "<input type=url list>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='url'>",
-"input": "<input type=url value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autocomplete' attribute on <input type='url'>",
-"input": "<input type=url autocomplete>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'inputmode' attribute on <input type='url'>",
-"input": "<input type=url inputmode>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'maxlength' attribute on <input type='url'>",
-"input": "<input type=url maxlength>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='url'>",
-"input": "<input type=url action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='url'>",
-"input": "<input type=url tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='button'>",
-"input": "<input type=button accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='button'>",
-"input": "<input type=button accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='button'>",
-"input": "<input type=button replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='button'>",
-"input": "<input type=button disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='button'>",
-"input": "<input type=button alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='button'>",
-"input": "<input type=button size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='button'>",
-"input": "<input type=button checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'min' attribute not allowed on <input type='button'>",
-"input": "<input type=button min>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='button'>",
-"input": "<input type=button pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'readonly' attribute not allowed on <input type='button'>",
-"input": "<input type=button readonly>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='button'>",
-"input": "<input type=button template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='button'>",
-"input": "<input type=button autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='button'>",
-"input": "<input type=button target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='button'>",
-"input": "<input type=button method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='button'>",
-"input": "<input type=button form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'max' attribute not allowed on <input type='button'>",
-"input": "<input type=button max>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'step' attribute not allowed on <input type='button'>",
-"input": "<input type=button step>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='button'>",
-"input": "<input type=button enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='button'>",
-"input": "<input type=button src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='button'>",
-"input": "<input type=button name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'required' attribute not allowed on <input type='button'>",
-"input": "<input type=button required>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'list' attribute not allowed on <input type='button'>",
-"input": "<input type=button list>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='button'>",
-"input": "<input type=button value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'autocomplete' attribute not allowed on <input type='button'>",
-"input": "<input type=button autocomplete>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='button'>",
-"input": "<input type=button inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='button'>",
-"input": "<input type=button maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='button'>",
-"input": "<input type=button action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='button'>",
-"input": "<input type=button tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='remove'>",
-"input": "<input type=remove accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='remove'>",
-"input": "<input type=remove disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'min' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove min>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'readonly' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove readonly>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='remove'>",
-"input": "<input type=remove autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='remove'>",
-"input": "<input type=remove form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'max' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove max>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'step' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove step>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='remove'>",
-"input": "<input type=remove name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'required' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove required>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'list' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove list>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='remove'>",
-"input": "<input type=remove value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'autocomplete' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove autocomplete>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='remove'>",
-"input": "<input type=remove action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='remove'>",
-"input": "<input type=remove tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='range'>",
-"input": "<input type=range accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='range'>",
-"input": "<input type=range accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='range'>",
-"input": "<input type=range replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='range'>",
-"input": "<input type=range disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='range'>",
-"input": "<input type=range alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='range'>",
-"input": "<input type=range size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='range'>",
-"input": "<input type=range checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'min' attribute on <input type='range'>",
-"input": "<input type=range min>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='range'>",
-"input": "<input type=range pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'readonly' attribute on <input type='range'>",
-"input": "<input type=range readonly>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='range'>",
-"input": "<input type=range template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='range'>",
-"input": "<input type=range autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='range'>",
-"input": "<input type=range target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='range'>",
-"input": "<input type=range method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='range'>",
-"input": "<input type=range form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'max' attribute on <input type='range'>",
-"input": "<input type=range max>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'step' attribute on <input type='range'>",
-"input": "<input type=range step>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='range'>",
-"input": "<input type=range enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='range'>",
-"input": "<input type=range src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='range'>",
-"input": "<input type=range name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'required' attribute on <input type='range'>",
-"input": "<input type=range required>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'list' attribute on <input type='range'>",
-"input": "<input type=range list>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='range'>",
-"input": "<input type=range value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autocomplete' attribute on <input type='range'>",
-"input": "<input type=range autocomplete>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='range'>",
-"input": "<input type=range inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='range'>",
-"input": "<input type=range maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='range'>",
-"input": "<input type=range action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='range'>",
-"input": "<input type=range tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'accesskey' attribute on <input type='time'>",
-"input": "<input type=time accesskey>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'accept' attribute not allowed on <input type='time'>",
-"input": "<input type=time accept>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'replace' attribute not allowed on <input type='time'>",
-"input": "<input type=time replace>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'disabled' attribute on <input type='time'>",
-"input": "<input type=time disabled>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'alt' attribute not allowed on <input type='time'>",
-"input": "<input type=time alt>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'size' attribute not allowed on <input type='time'>",
-"input": "<input type=time size>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'checked' attribute not allowed on <input type='time'>",
-"input": "<input type=time checked>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'min' attribute on <input type='time'>",
-"input": "<input type=time min>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'pattern' attribute not allowed on <input type='time'>",
-"input": "<input type=time pattern>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'readonly' attribute on <input type='time'>",
-"input": "<input type=time readonly>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'template' attribute not allowed on <input type='time'>",
-"input": "<input type=time template>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autofocus' attribute on <input type='time'>",
-"input": "<input type=time autofocus>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'target' attribute not allowed on <input type='time'>",
-"input": "<input type=time target>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'method' attribute not allowed on <input type='time'>",
-"input": "<input type=time method>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'form' attribute on <input type='time'>",
-"input": "<input type=time form>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'max' attribute on <input type='time'>",
-"input": "<input type=time max>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'step' attribute on <input type='time'>",
-"input": "<input type=time step>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'enctype' attribute not allowed on <input type='time'>",
-"input": "<input type=time enctype>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'src' attribute not allowed on <input type='time'>",
-"input": "<input type=time src>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'name' attribute on <input type='time'>",
-"input": "<input type=time name>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'required' attribute on <input type='time'>",
-"input": "<input type=time required>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'list' attribute on <input type='time'>",
-"input": "<input type=time list>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'value' attribute on <input type='time'>",
-"input": "<input type=time value>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'autocomplete' attribute on <input type='time'>",
-"input": "<input type=time autocomplete>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'inputmode' attribute not allowed on <input type='time'>",
-"input": "<input type=time inputmode>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'maxlength' attribute not allowed on <input type='time'>",
-"input": "<input type=time maxlength>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "'action' attribute not allowed on <input type='time'>",
-"input": "<input type=time action>",
-"fail-unless": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "allowed 'tabindex' attribute on <input type='time'>",
-"input": "<input type=time tabindex>",
-"fail-if": "attribute-not-allowed-on-this-input-type"},
-
-{"description": "unknown 'foo' attribute on <input type='checkbox'>",
-"input": "<input type=checkbox foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='text'>",
-"input": "<input type=text foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='image'>",
-"input": "<input type=image foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='number'>",
-"input": "<input type=number foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='month'>",
-"input": "<input type=month foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='radio'>",
-"input": "<input type=radio foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='file'>",
-"input": "<input type=file foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='password'>",
-"input": "<input type=password foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='move-up'>",
-"input": "<input type=move-up foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='submit'>",
-"input": "<input type=submit foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='add'>",
-"input": "<input type=add foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='hidden'>",
-"input": "<input type=hidden foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='email'>",
-"input": "<input type=email foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='week'>",
-"input": "<input type=week foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='date'>",
-"input": "<input type=date foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='datetime'>",
-"input": "<input type=datetime foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='move-down'>",
-"input": "<input type=move-down foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='datetime-local'>",
-"input": "<input type=datetime-local foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='reset'>",
-"input": "<input type=reset foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='url'>",
-"input": "<input type=url foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='button'>",
-"input": "<input type=button foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='remove'>",
-"input": "<input type=remove foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='range'>",
-"input": "<input type=range foo>",
-"fail-unless": "unknown-attribute"},
-
-{"description": "unknown 'foo' attribute on <input type='time'>",
-"input": "<input type=time foo>",
-"fail-unless": "unknown-attribute"}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/irrelevantattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/irrelevantattribute.test
deleted file mode 100755
index fa4061300cd..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/irrelevantattribute.test
+++ /dev/null
@@ -1,63 +0,0 @@
-{"tests": [
-
-{"description": "valid irrelevant attribute value 'irrelevant'",
-"input": "<span irrelevant=irrelevant>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "valid irrelevant attribute value ''",
-"input": "<span irrelevant=''>",
-"fail-if": "invalid-attribute-value"},
-
-{"description": "invalid irrelevant attribute value due to uppercase",
-"input": "<span irrelevant=IRRELEVANT>",
-"fail-unless": "invalid-boolean-value"},
-
-{"description": "invalid irrelevant attribute value due to mixed case",
-"input": "<span irrelevant=IrReLeVaNt>",
-"fail-unless": "invalid-boolean-value"},
-
-{"description": "invalid irrelevant attribute value due to leading space",
-"input": "<span irrelevant=' irrelevant'>",
-"fail-unless": "invalid-boolean-value"},
-
-{"description": "invalid irrelevant attribute value due to trailing space",
-"input": "<span irrelevant='irrelevant '>",
-"fail-unless": "invalid-boolean-value"},
-
-{"description": "invalid irrelevant attribute value 'foo'",
-"input": "<span irrelevant=foo>",
-"fail-unless": "invalid-boolean-value"},
-
-{"description": "invalid irrelevant attribute value '0'",
-"input": "<span irrelevant=0>",
-"fail-unless": "invalid-boolean-value"},
-
-{"description": "invalid irrelevant attribute value '1'",
-"input": "<span irrelevant=1>",
-"fail-unless": "invalid-boolean-value"},
-
-{"description": "invalid irrelevant attribute value 'yes'",
-"input": "<span irrelevant=yes>",
-"fail-unless": "invalid-boolean-value"},
-
-{"description": "invalid irrelevant attribute value 'no'",
-"input": "<span irrelevant=no>",
-"fail-unless": "invalid-boolean-value"},
-
-{"description": "invalid irrelevant attribute value 'true'",
-"input": "<span irrelevant=true>",
-"fail-unless": "invalid-boolean-value"},
-
-{"description": "invalid irrelevant attribute value 'false'",
-"input": "<span irrelevant=false>",
-"fail-unless": "invalid-boolean-value"},
-
-{"description": "invalid irrelevant attribute value 'auto'",
-"input": "<span irrelevant=auto>",
-"fail-unless": "invalid-boolean-value"},
-
-{"description": "invalid irrelevant attribute value 'inherit'",
-"input": "<span irrelevant=inherit>",
-"fail-unless": "invalid-boolean-value"}
-
-]} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/langattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/langattribute.test
deleted file mode 100755
index 6c831a179d8..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/langattribute.test
+++ /dev/null
@@ -1,5579 +0,0 @@
-{"tests": [
-
-{"description": "valid lang attribute 'roh'",
-"input": "<span lang=roh>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gv'",
-"input": "<span lang=gv>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gu'",
-"input": "<span lang=gu>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'scn'",
-"input": "<span lang=scn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rom'",
-"input": "<span lang=rom>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ron'",
-"input": "<span lang=ron>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'alg'",
-"input": "<span lang=alg>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'oss'",
-"input": "<span lang=oss>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ale'",
-"input": "<span lang=ale>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'alb'",
-"input": "<span lang=alb>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sco'",
-"input": "<span lang=sco>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'scc'",
-"input": "<span lang=scc>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mni'",
-"input": "<span lang=mni>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gd'",
-"input": "<span lang=gd>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'per'",
-"input": "<span lang=per>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ga'",
-"input": "<span lang=ga>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nwc'",
-"input": "<span lang=nwc>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'osa'",
-"input": "<span lang=osa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gn'",
-"input": "<span lang=gn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'alt'",
-"input": "<span lang=alt>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gl'",
-"input": "<span lang=gl>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'scr'",
-"input": "<span lang=scr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mwr'",
-"input": "<span lang=mwr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ty'",
-"input": "<span lang=ty>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tw'",
-"input": "<span lang=tw>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tt'",
-"input": "<span lang=tt>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tr'",
-"input": "<span lang=tr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ts'",
-"input": "<span lang=ts>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tn'",
-"input": "<span lang=tn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'to'",
-"input": "<span lang=to>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tl'",
-"input": "<span lang=tl>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tk'",
-"input": "<span lang=tk>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'th'",
-"input": "<span lang=th>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ti'",
-"input": "<span lang=ti>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ven'",
-"input": "<span lang=ven>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tg'",
-"input": "<span lang=tg>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'te'",
-"input": "<span lang=te>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'uga'",
-"input": "<span lang=uga>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ta'",
-"input": "<span lang=ta>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fas'",
-"input": "<span lang=fas>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fat'",
-"input": "<span lang=fat>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fan'",
-"input": "<span lang=fan>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fao'",
-"input": "<span lang=fao>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'got'",
-"input": "<span lang=got>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sme'",
-"input": "<span lang=sme>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'din'",
-"input": "<span lang=din>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hye'",
-"input": "<span lang=hye>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'guj'",
-"input": "<span lang=guj>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cmc'",
-"input": "<span lang=cmc>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'srd'",
-"input": "<span lang=srd>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mdr'",
-"input": "<span lang=mdr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ml'",
-"input": "<span lang=ml>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'div'",
-"input": "<span lang=div>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'zh'",
-"input": "<span lang=zh>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tem'",
-"input": "<span lang=tem>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'xho'",
-"input": "<span lang=xho>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mno'",
-"input": "<span lang=mno>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'roa'",
-"input": "<span lang=roa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'za'",
-"input": "<span lang=za>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'deu'",
-"input": "<span lang=deu>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mk'",
-"input": "<span lang=mk>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nbl'",
-"input": "<span lang=nbl>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'zu'",
-"input": "<span lang=zu>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ter'",
-"input": "<span lang=ter>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tet'",
-"input": "<span lang=tet>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mnc'",
-"input": "<span lang=mnc>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sun'",
-"input": "<span lang=sun>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'abk'",
-"input": "<span lang=abk>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'suk'",
-"input": "<span lang=suk>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kur'",
-"input": "<span lang=kur>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kum'",
-"input": "<span lang=kum>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'slo'",
-"input": "<span lang=slo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sus'",
-"input": "<span lang=sus>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'new'",
-"input": "<span lang=new>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kua'",
-"input": "<span lang=kua>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sux'",
-"input": "<span lang=sux>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'den'",
-"input": "<span lang=den>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mr'",
-"input": "<span lang=mr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mul'",
-"input": "<span lang=mul>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lez'",
-"input": "<span lang=lez>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gla'",
-"input": "<span lang=gla>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bos'",
-"input": "<span lang=bos>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gle'",
-"input": "<span lang=gle>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'eka'",
-"input": "<span lang=eka>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'glg'",
-"input": "<span lang=glg>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'akk'",
-"input": "<span lang=akk>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dra'",
-"input": "<span lang=dra>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'aka'",
-"input": "<span lang=aka>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bod'",
-"input": "<span lang=bod>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'glv'",
-"input": "<span lang=glv>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'jrb'",
-"input": "<span lang=jrb>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'vie'",
-"input": "<span lang=vie>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ipk'",
-"input": "<span lang=ipk>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'uzb'",
-"input": "<span lang=uzb>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sgn'",
-"input": "<span lang=sgn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sga'",
-"input": "<span lang=sga>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bre'",
-"input": "<span lang=bre>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'apa'",
-"input": "<span lang=apa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bra'",
-"input": "<span lang=bra>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'aym'",
-"input": "<span lang=aym>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cha'",
-"input": "<span lang=cha>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chb'",
-"input": "<span lang=chb>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'che'",
-"input": "<span lang=che>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chg'",
-"input": "<span lang=chg>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chi'",
-"input": "<span lang=chi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chk'",
-"input": "<span lang=chk>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'aus'",
-"input": "<span lang=aus>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chn'",
-"input": "<span lang=chn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cho'",
-"input": "<span lang=cho>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chp'",
-"input": "<span lang=chp>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chr'",
-"input": "<span lang=chr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chu'",
-"input": "<span lang=chu>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chv'",
-"input": "<span lang=chv>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chy'",
-"input": "<span lang=chy>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'msa'",
-"input": "<span lang=msa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'iii'",
-"input": "<span lang=iii>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'vot'",
-"input": "<span lang=vot>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mg'",
-"input": "<span lang=mg>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ndo'",
-"input": "<span lang=ndo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ibo'",
-"input": "<span lang=ibo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'car'",
-"input": "<span lang=car>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mo'",
-"input": "<span lang=mo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mn'",
-"input": "<span lang=mn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mi'",
-"input": "<span lang=mi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mh'",
-"input": "<span lang=mh>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cau'",
-"input": "<span lang=cau>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cat'",
-"input": "<span lang=cat>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bur'",
-"input": "<span lang=bur>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mt'",
-"input": "<span lang=mt>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cai'",
-"input": "<span lang=cai>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'del'",
-"input": "<span lang=del>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ms'",
-"input": "<span lang=ms>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'byn'",
-"input": "<span lang=byn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mwl'",
-"input": "<span lang=mwl>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'my'",
-"input": "<span lang=my>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cad'",
-"input": "<span lang=cad>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tat'",
-"input": "<span lang=tat>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nde'",
-"input": "<span lang=nde>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tam'",
-"input": "<span lang=tam>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'spa'",
-"input": "<span lang=spa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tah'",
-"input": "<span lang=tah>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tai'",
-"input": "<span lang=tai>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cze'",
-"input": "<span lang=cze>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'afh'",
-"input": "<span lang=afh>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'eng'",
-"input": "<span lang=eng>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'afa'",
-"input": "<span lang=afa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'id'",
-"input": "<span lang=id>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nyn'",
-"input": "<span lang=nyn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nyo'",
-"input": "<span lang=nyo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gez'",
-"input": "<span lang=gez>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nya'",
-"input": "<span lang=nya>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sio'",
-"input": "<span lang=sio>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sin'",
-"input": "<span lang=sin>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'afr'",
-"input": "<span lang=afr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'map'",
-"input": "<span lang=map>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fr'",
-"input": "<span lang=fr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lao'",
-"input": "<span lang=lao>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lah'",
-"input": "<span lang=lah>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nym'",
-"input": "<span lang=nym>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sna'",
-"input": "<span lang=sna>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lad'",
-"input": "<span lang=lad>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fy'",
-"input": "<span lang=fy>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'snk'",
-"input": "<span lang=snk>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fa'",
-"input": "<span lang=fa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mac'",
-"input": "<span lang=mac>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mad'",
-"input": "<span lang=mad>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ff'",
-"input": "<span lang=ff>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lat'",
-"input": "<span lang=lat>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fi'",
-"input": "<span lang=fi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fj'",
-"input": "<span lang=fj>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mal'",
-"input": "<span lang=mal>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mao'",
-"input": "<span lang=mao>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fo'",
-"input": "<span lang=fo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mak'",
-"input": "<span lang=mak>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'egy'",
-"input": "<span lang=egy>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'znd'",
-"input": "<span lang=znd>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ss'",
-"input": "<span lang=ss>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sr'",
-"input": "<span lang=sr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sq'",
-"input": "<span lang=sq>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sit'",
-"input": "<span lang=sit>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sw'",
-"input": "<span lang=sw>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sv'",
-"input": "<span lang=sv>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'su'",
-"input": "<span lang=su>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'st'",
-"input": "<span lang=st>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sk'",
-"input": "<span lang=sk>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'si'",
-"input": "<span lang=si>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sh'",
-"input": "<span lang=sh>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'so'",
-"input": "<span lang=so>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sn'",
-"input": "<span lang=sn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sm'",
-"input": "<span lang=sm>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sl'",
-"input": "<span lang=sl>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sc'",
-"input": "<span lang=sc>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sa'",
-"input": "<span lang=sa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sg'",
-"input": "<span lang=sg>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'se'",
-"input": "<span lang=se>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sd'",
-"input": "<span lang=sd>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'zen'",
-"input": "<span lang=zen>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kbd'",
-"input": "<span lang=kbd>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'enm'",
-"input": "<span lang=enm>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'iro'",
-"input": "<span lang=iro>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'vai'",
-"input": "<span lang=vai>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'csb'",
-"input": "<span lang=csb>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tsn'",
-"input": "<span lang=tsn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lg'",
-"input": "<span lang=lg>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lb'",
-"input": "<span lang=lb>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'la'",
-"input": "<span lang=la>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ln'",
-"input": "<span lang=ln>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lo'",
-"input": "<span lang=lo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'li'",
-"input": "<span lang=li>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lv'",
-"input": "<span lang=lv>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lt'",
-"input": "<span lang=lt>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lu'",
-"input": "<span lang=lu>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hin'",
-"input": "<span lang=hin>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fij'",
-"input": "<span lang=fij>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fin'",
-"input": "<span lang=fin>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'eus'",
-"input": "<span lang=eus>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'yi'",
-"input": "<span lang=yi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'non'",
-"input": "<span lang=non>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ceb'",
-"input": "<span lang=ceb>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'yo'",
-"input": "<span lang=yo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dan'",
-"input": "<span lang=dan>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cel'",
-"input": "<span lang=cel>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bat'",
-"input": "<span lang=bat>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nob'",
-"input": "<span lang=nob>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dak'",
-"input": "<span lang=dak>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ces'",
-"input": "<span lang=ces>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dar'",
-"input": "<span lang=dar>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'son'",
-"input": "<span lang=son>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'day'",
-"input": "<span lang=day>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nor'",
-"input": "<span lang=nor>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gba'",
-"input": "<span lang=gba>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ssa'",
-"input": "<span lang=ssa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hil'",
-"input": "<span lang=hil>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kpe'",
-"input": "<span lang=kpe>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'man'",
-"input": "<span lang=man>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'wel'",
-"input": "<span lang=wel>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'el'",
-"input": "<span lang=el>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'eo'",
-"input": "<span lang=eo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'en'",
-"input": "<span lang=en>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lam'",
-"input": "<span lang=lam>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ee'",
-"input": "<span lang=ee>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tpi'",
-"input": "<span lang=tpi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mdf'",
-"input": "<span lang=mdf>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mas'",
-"input": "<span lang=mas>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mar'",
-"input": "<span lang=mar>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'eu'",
-"input": "<span lang=eu>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'et'",
-"input": "<span lang=et>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'es'",
-"input": "<span lang=es>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ru'",
-"input": "<span lang=ru>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rw'",
-"input": "<span lang=rw>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'goh'",
-"input": "<span lang=goh>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sms'",
-"input": "<span lang=sms>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'smo'",
-"input": "<span lang=smo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'smn'",
-"input": "<span lang=smn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'smj'",
-"input": "<span lang=smj>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'smi'",
-"input": "<span lang=smi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nic'",
-"input": "<span lang=nic>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rm'",
-"input": "<span lang=rm>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rn'",
-"input": "<span lang=rn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ro'",
-"input": "<span lang=ro>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dsb'",
-"input": "<span lang=dsb>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sma'",
-"input": "<span lang=sma>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gor'",
-"input": "<span lang=gor>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ast'",
-"input": "<span lang=ast>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'orm'",
-"input": "<span lang=orm>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'que'",
-"input": "<span lang=que>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ori'",
-"input": "<span lang=ori>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'crh'",
-"input": "<span lang=crh>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'asm'",
-"input": "<span lang=asm>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pus'",
-"input": "<span lang=pus>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kik'",
-"input": "<span lang=kik>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ltz'",
-"input": "<span lang=ltz>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ath'",
-"input": "<span lang=ath>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'wln'",
-"input": "<span lang=wln>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'isl'",
-"input": "<span lang=isl>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'xh'",
-"input": "<span lang=xh>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mag'",
-"input": "<span lang=mag>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mai'",
-"input": "<span lang=mai>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'xx'",
-"input": "<span lang=xx>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mah'",
-"input": "<span lang=mah>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tel'",
-"input": "<span lang=tel>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lav'",
-"input": "<span lang=lav>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'zap'",
-"input": "<span lang=zap>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'yid'",
-"input": "<span lang=yid>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kok'",
-"input": "<span lang=kok>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kom'",
-"input": "<span lang=kom>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kon'",
-"input": "<span lang=kon>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ukr'",
-"input": "<span lang=ukr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ton'",
-"input": "<span lang=ton>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kos'",
-"input": "<span lang=kos>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kor'",
-"input": "<span lang=kor>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tog'",
-"input": "<span lang=tog>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hun'",
-"input": "<span lang=hun>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hup'",
-"input": "<span lang=hup>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cym'",
-"input": "<span lang=cym>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'udm'",
-"input": "<span lang=udm>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bej'",
-"input": "<span lang=bej>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ben'",
-"input": "<span lang=ben>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bel'",
-"input": "<span lang=bel>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bem'",
-"input": "<span lang=bem>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tsi'",
-"input": "<span lang=tsi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'aar'",
-"input": "<span lang=aar>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ber'",
-"input": "<span lang=ber>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nzi'",
-"input": "<span lang=nzi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sai'",
-"input": "<span lang=sai>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ang'",
-"input": "<span lang=ang>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pra'",
-"input": "<span lang=pra>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'san'",
-"input": "<span lang=san>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bho'",
-"input": "<span lang=bho>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sal'",
-"input": "<span lang=sal>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pro'",
-"input": "<span lang=pro>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'raj'",
-"input": "<span lang=raj>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sad'",
-"input": "<span lang=sad>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'anp'",
-"input": "<span lang=anp>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rap'",
-"input": "<span lang=rap>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sas'",
-"input": "<span lang=sas>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'iba'",
-"input": "<span lang=iba>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'myn'",
-"input": "<span lang=myn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'min'",
-"input": "<span lang=min>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lim'",
-"input": "<span lang=lim>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lin'",
-"input": "<span lang=lin>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nah'",
-"input": "<span lang=nah>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lit'",
-"input": "<span lang=lit>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'efi'",
-"input": "<span lang=efi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'srn'",
-"input": "<span lang=srn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'arn'",
-"input": "<span lang=arn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ypk'",
-"input": "<span lang=ypk>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mis'",
-"input": "<span lang=mis>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kac'",
-"input": "<span lang=kac>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kab'",
-"input": "<span lang=kab>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kaa'",
-"input": "<span lang=kaa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kan'",
-"input": "<span lang=kan>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kam'",
-"input": "<span lang=kam>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kal'",
-"input": "<span lang=kal>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kas'",
-"input": "<span lang=kas>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kar'",
-"input": "<span lang=kar>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kaw'",
-"input": "<span lang=kaw>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kau'",
-"input": "<span lang=kau>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kat'",
-"input": "<span lang=kat>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kaz'",
-"input": "<span lang=kaz>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tyv'",
-"input": "<span lang=tyv>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'awa'",
-"input": "<span lang=awa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'urd'",
-"input": "<span lang=urd>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ka'",
-"input": "<span lang=ka>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'doi'",
-"input": "<span lang=doi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kg'",
-"input": "<span lang=kg>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kk'",
-"input": "<span lang=kk>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kj'",
-"input": "<span lang=kj>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ki'",
-"input": "<span lang=ki>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ko'",
-"input": "<span lang=ko>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kn'",
-"input": "<span lang=kn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'km'",
-"input": "<span lang=km>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kl'",
-"input": "<span lang=kl>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ks'",
-"input": "<span lang=ks>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kr'",
-"input": "<span lang=kr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kw'",
-"input": "<span lang=kw>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kv'",
-"input": "<span lang=kv>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ku'",
-"input": "<span lang=ku>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ky'",
-"input": "<span lang=ky>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ota'",
-"input": "<span lang=ota>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kut'",
-"input": "<span lang=kut>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tkl'",
-"input": "<span lang=tkl>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nld'",
-"input": "<span lang=nld>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'oji'",
-"input": "<span lang=oji>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'oci'",
-"input": "<span lang=oci>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ha'",
-"input": "<span lang=ha>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'wol'",
-"input": "<span lang=wol>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'jav'",
-"input": "<span lang=jav>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hrv'",
-"input": "<span lang=hrv>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ger'",
-"input": "<span lang=ger>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mga'",
-"input": "<span lang=mga>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hit'",
-"input": "<span lang=hit>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dyu'",
-"input": "<span lang=dyu>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ssw'",
-"input": "<span lang=ssw>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'de'",
-"input": "<span lang=de>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'da'",
-"input": "<span lang=da>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dz'",
-"input": "<span lang=dz>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lui'",
-"input": "<span lang=lui>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dv'",
-"input": "<span lang=dv>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ita'",
-"input": "<span lang=ita>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'geo'",
-"input": "<span lang=geo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'him'",
-"input": "<span lang=him>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gem'",
-"input": "<span lang=gem>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'crp'",
-"input": "<span lang=crp>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'qu'",
-"input": "<span lang=qu>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bas'",
-"input": "<span lang=bas>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'baq'",
-"input": "<span lang=baq>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bad'",
-"input": "<span lang=bad>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nep'",
-"input": "<span lang=nep>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cre'",
-"input": "<span lang=cre>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ban'",
-"input": "<span lang=ban>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'x'",
-"input": "<span lang=x>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bal'",
-"input": "<span lang=bal>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bam'",
-"input": "<span lang=bam>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bak'",
-"input": "<span lang=bak>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'shn'",
-"input": "<span lang=shn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bai'",
-"input": "<span lang=bai>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'arp'",
-"input": "<span lang=arp>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'art'",
-"input": "<span lang=art>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'arw'",
-"input": "<span lang=arw>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'qtz'",
-"input": "<span lang=qtz>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ara'",
-"input": "<span lang=ara>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'arc'",
-"input": "<span lang=arc>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'arg'",
-"input": "<span lang=arg>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sem'",
-"input": "<span lang=sem>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sel'",
-"input": "<span lang=sel>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nub'",
-"input": "<span lang=nub>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'arm'",
-"input": "<span lang=arm>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'btk'",
-"input": "<span lang=btk>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lus'",
-"input": "<span lang=lus>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'iku'",
-"input": "<span lang=iku>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mus'",
-"input": "<span lang=mus>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lua'",
-"input": "<span lang=lua>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lub'",
-"input": "<span lang=lub>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lug'",
-"input": "<span lang=lug>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ira'",
-"input": "<span lang=ira>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mun'",
-"input": "<span lang=mun>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tur'",
-"input": "<span lang=tur>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lun'",
-"input": "<span lang=lun>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'luo'",
-"input": "<span lang=luo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'men'",
-"input": "<span lang=men>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'wa'",
-"input": "<span lang=wa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tso'",
-"input": "<span lang=tso>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'wo'",
-"input": "<span lang=wo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'jv'",
-"input": "<span lang=jv>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tut'",
-"input": "<span lang=tut>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ind'",
-"input": "<span lang=ind>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tuk'",
-"input": "<span lang=tuk>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tum'",
-"input": "<span lang=tum>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ja'",
-"input": "<span lang=ja>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cop'",
-"input": "<span lang=cop>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cos'",
-"input": "<span lang=cos>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cor'",
-"input": "<span lang=cor>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ilo'",
-"input": "<span lang=ilo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fiu'",
-"input": "<span lang=fiu>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gwi'",
-"input": "<span lang=gwi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'und'",
-"input": "<span lang=und>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gws'",
-"input": "<span lang=gws>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tli'",
-"input": "<span lang=tli>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tlh'",
-"input": "<span lang=tlh>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nno'",
-"input": "<span lang=nno>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ch'",
-"input": "<span lang=ch>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'co'",
-"input": "<span lang=co>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ca'",
-"input": "<span lang=ca>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'por'",
-"input": "<span lang=por>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ce'",
-"input": "<span lang=ce>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pon'",
-"input": "<span lang=pon>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cy'",
-"input": "<span lang=cy>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sah'",
-"input": "<span lang=sah>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cs'",
-"input": "<span lang=cs>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cr'",
-"input": "<span lang=cr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ady'",
-"input": "<span lang=ady>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cv'",
-"input": "<span lang=cv>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cu'",
-"input": "<span lang=cu>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ps'",
-"input": "<span lang=ps>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fra'",
-"input": "<span lang=fra>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dum'",
-"input": "<span lang=dum>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pt'",
-"input": "<span lang=pt>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'swa'",
-"input": "<span lang=swa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dua'",
-"input": "<span lang=dua>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fro'",
-"input": "<span lang=fro>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'yap'",
-"input": "<span lang=yap>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'frm'",
-"input": "<span lang=frm>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tiv'",
-"input": "<span lang=tiv>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'frs'",
-"input": "<span lang=frs>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'frr'",
-"input": "<span lang=frr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'yao'",
-"input": "<span lang=yao>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pa'",
-"input": "<span lang=pa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'xal'",
-"input": "<span lang=xal>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fry'",
-"input": "<span lang=fry>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pi'",
-"input": "<span lang=pi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dut'",
-"input": "<span lang=dut>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pl'",
-"input": "<span lang=pl>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gay'",
-"input": "<span lang=gay>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'oto'",
-"input": "<span lang=oto>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sag'",
-"input": "<span lang=sag>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hmn'",
-"input": "<span lang=hmn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hmo'",
-"input": "<span lang=hmo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'an'",
-"input": "<span lang=an>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gaa'",
-"input": "<span lang=gaa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fur'",
-"input": "<span lang=fur>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mlg'",
-"input": "<span lang=mlg>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'slv'",
-"input": "<span lang=slv>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ain'",
-"input": "<span lang=ain>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fil'",
-"input": "<span lang=fil>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mlt'",
-"input": "<span lang=mlt>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'slk'",
-"input": "<span lang=slk>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rar'",
-"input": "<span lang=rar>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ful'",
-"input": "<span lang=ful>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sla'",
-"input": "<span lang=sla>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 've'",
-"input": "<span lang=ve>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'jpn'",
-"input": "<span lang=jpn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'vol'",
-"input": "<span lang=vol>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'vi'",
-"input": "<span lang=vi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'is'",
-"input": "<span lang=is>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kho'",
-"input": "<span lang=kho>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'iu'",
-"input": "<span lang=iu>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'it'",
-"input": "<span lang=it>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'vo'",
-"input": "<span lang=vo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ii'",
-"input": "<span lang=ii>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ay'",
-"input": "<span lang=ay>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ik'",
-"input": "<span lang=ik>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'io'",
-"input": "<span lang=io>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kha'",
-"input": "<span lang=kha>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ia'",
-"input": "<span lang=ia>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ave'",
-"input": "<span lang=ave>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'jpr'",
-"input": "<span lang=jpr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ie'",
-"input": "<span lang=ie>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ava'",
-"input": "<span lang=ava>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ig'",
-"input": "<span lang=ig>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pap'",
-"input": "<span lang=pap>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ewo'",
-"input": "<span lang=ewo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pau'",
-"input": "<span lang=pau>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ewe'",
-"input": "<span lang=ewe>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'paa'",
-"input": "<span lang=paa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'qaa'",
-"input": "<span lang=qaa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pag'",
-"input": "<span lang=pag>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sat'",
-"input": "<span lang=sat>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pal'",
-"input": "<span lang=pal>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pam'",
-"input": "<span lang=pam>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pan'",
-"input": "<span lang=pan>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'phi'",
-"input": "<span lang=phi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nog'",
-"input": "<span lang=nog>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'phn'",
-"input": "<span lang=phn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kir'",
-"input": "<span lang=kir>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nia'",
-"input": "<span lang=nia>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dgr'",
-"input": "<span lang=dgr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'syr'",
-"input": "<span lang=syr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kin'",
-"input": "<span lang=kin>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tup'",
-"input": "<span lang=tup>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'niu'",
-"input": "<span lang=niu>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gsw'",
-"input": "<span lang=gsw>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'epo'",
-"input": "<span lang=epo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'jbo'",
-"input": "<span lang=jbo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mic'",
-"input": "<span lang=mic>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tha'",
-"input": "<span lang=tha>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sam'",
-"input": "<span lang=sam>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hai'",
-"input": "<span lang=hai>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gmh'",
-"input": "<span lang=gmh>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cus'",
-"input": "<span lang=cus>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ell'",
-"input": "<span lang=ell>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'wen'",
-"input": "<span lang=wen>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bnt'",
-"input": "<span lang=bnt>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fre'",
-"input": "<span lang=fre>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'elx'",
-"input": "<span lang=elx>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ada'",
-"input": "<span lang=ada>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nav'",
-"input": "<span lang=nav>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hat'",
-"input": "<span lang=hat>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hau'",
-"input": "<span lang=hau>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'haw'",
-"input": "<span lang=haw>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bin'",
-"input": "<span lang=bin>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'amh'",
-"input": "<span lang=amh>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bik'",
-"input": "<span lang=bik>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bih'",
-"input": "<span lang=bih>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mos'",
-"input": "<span lang=mos>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'moh'",
-"input": "<span lang=moh>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mon'",
-"input": "<span lang=mon>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mol'",
-"input": "<span lang=mol>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bis'",
-"input": "<span lang=bis>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bla'",
-"input": "<span lang=bla>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pol'",
-"input": "<span lang=pol>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tib'",
-"input": "<span lang=tib>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tvl'",
-"input": "<span lang=tvl>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tgk'",
-"input": "<span lang=tgk>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ijo'",
-"input": "<span lang=ijo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'est'",
-"input": "<span lang=est>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kmb'",
-"input": "<span lang=kmb>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ice'",
-"input": "<span lang=ice>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'peo'",
-"input": "<span lang=peo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tgl'",
-"input": "<span lang=tgl>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'umb'",
-"input": "<span lang=umb>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tmh'",
-"input": "<span lang=tmh>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fon'",
-"input": "<span lang=fon>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hsb'",
-"input": "<span lang=hsb>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'be'",
-"input": "<span lang=be>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bg'",
-"input": "<span lang=bg>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'run'",
-"input": "<span lang=run>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ba'",
-"input": "<span lang=ba>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rum'",
-"input": "<span lang=rum>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bm'",
-"input": "<span lang=bm>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bn'",
-"input": "<span lang=bn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bo'",
-"input": "<span lang=bo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bh'",
-"input": "<span lang=bh>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bi'",
-"input": "<span lang=bi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'br'",
-"input": "<span lang=br>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bs'",
-"input": "<span lang=bs>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rus'",
-"input": "<span lang=rus>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rup'",
-"input": "<span lang=rup>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pli'",
-"input": "<span lang=pli>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'om'",
-"input": "<span lang=om>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'oj'",
-"input": "<span lang=oj>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ace'",
-"input": "<span lang=ace>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ach'",
-"input": "<span lang=ach>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'oc'",
-"input": "<span lang=oc>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dzo'",
-"input": "<span lang=dzo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kru'",
-"input": "<span lang=kru>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'srr'",
-"input": "<span lang=srr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ido'",
-"input": "<span lang=ido>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'srp'",
-"input": "<span lang=srp>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kro'",
-"input": "<span lang=kro>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'krl'",
-"input": "<span lang=krl>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'krc'",
-"input": "<span lang=krc>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nds'",
-"input": "<span lang=nds>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'os'",
-"input": "<span lang=os>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'or'",
-"input": "<span lang=or>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'zul'",
-"input": "<span lang=zul>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'twi'",
-"input": "<span lang=twi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sog'",
-"input": "<span lang=sog>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nso'",
-"input": "<span lang=nso>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'swe'",
-"input": "<span lang=swe>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'som'",
-"input": "<span lang=som>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chm'",
-"input": "<span lang=chm>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'snd'",
-"input": "<span lang=snd>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sot'",
-"input": "<span lang=sot>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mkd'",
-"input": "<span lang=mkd>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'wak'",
-"input": "<span lang=wak>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'her'",
-"input": "<span lang=her>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lol'",
-"input": "<span lang=lol>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mkh'",
-"input": "<span lang=mkh>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'heb'",
-"input": "<span lang=heb>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'loz'",
-"input": "<span lang=loz>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gil'",
-"input": "<span lang=gil>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'was'",
-"input": "<span lang=was>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'war'",
-"input": "<span lang=war>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hz'",
-"input": "<span lang=hz>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hy'",
-"input": "<span lang=hy>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sid'",
-"input": "<span lang=sid>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hr'",
-"input": "<span lang=hr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ht'",
-"input": "<span lang=ht>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hu'",
-"input": "<span lang=hu>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hi'",
-"input": "<span lang=hi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ho'",
-"input": "<span lang=ho>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bul'",
-"input": "<span lang=bul>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'wal'",
-"input": "<span lang=wal>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bua'",
-"input": "<span lang=bua>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bug'",
-"input": "<span lang=bug>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'he'",
-"input": "<span lang=he>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'uz'",
-"input": "<span lang=uz>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'aze'",
-"input": "<span lang=aze>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ur'",
-"input": "<span lang=ur>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'zha'",
-"input": "<span lang=zha>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'uk'",
-"input": "<span lang=uk>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ug'",
-"input": "<span lang=ug>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'zho'",
-"input": "<span lang=zho>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'aa'",
-"input": "<span lang=aa>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ab'",
-"input": "<span lang=ab>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ae'",
-"input": "<span lang=ae>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'uig'",
-"input": "<span lang=uig>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'af'",
-"input": "<span lang=af>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ak'",
-"input": "<span lang=ak>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'am'",
-"input": "<span lang=am>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'myv'",
-"input": "<span lang=myv>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'khi'",
-"input": "<span lang=khi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'as'",
-"input": "<span lang=as>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ar'",
-"input": "<span lang=ar>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'inh'",
-"input": "<span lang=inh>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'khm'",
-"input": "<span lang=khm>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'av'",
-"input": "<span lang=av>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mya'",
-"input": "<span lang=mya>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ine'",
-"input": "<span lang=ine>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'az'",
-"input": "<span lang=az>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ina'",
-"input": "<span lang=ina>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'inc'",
-"input": "<span lang=inc>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nl'",
-"input": "<span lang=nl>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nn'",
-"input": "<span lang=nn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'no'",
-"input": "<span lang=no>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'na'",
-"input": "<span lang=na>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nb'",
-"input": "<span lang=nb>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nai'",
-"input": "<span lang=nai>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nd'",
-"input": "<span lang=nd>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ne'",
-"input": "<span lang=ne>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tir'",
-"input": "<span lang=tir>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ng'",
-"input": "<span lang=ng>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ny'",
-"input": "<span lang=ny>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nap'",
-"input": "<span lang=nap>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gre'",
-"input": "<span lang=gre>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'grb'",
-"input": "<span lang=grb>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'grc'",
-"input": "<span lang=grc>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nau'",
-"input": "<span lang=nau>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'grn'",
-"input": "<span lang=grn>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nr'",
-"input": "<span lang=nr>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tig'",
-"input": "<span lang=tig>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'yor'",
-"input": "<span lang=yor>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nv'",
-"input": "<span lang=nv>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mri'",
-"input": "<span lang=mri>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'may'",
-"input": "<span lang=may>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'zun'",
-"input": "<span lang=zun>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ile'",
-"input": "<span lang=ile>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sqi'",
-"input": "<span lang=sqi>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gon'",
-"input": "<span lang=gon>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cpe'",
-"input": "<span lang=cpe>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cpf'",
-"input": "<span lang=cpf>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cpp'",
-"input": "<span lang=cpp>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'roh-foo'",
-"input": "<span lang=roh-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gv-foo'",
-"input": "<span lang=gv-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gu-foo'",
-"input": "<span lang=gu-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'scn-foo'",
-"input": "<span lang=scn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rom-foo'",
-"input": "<span lang=rom-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ron-foo'",
-"input": "<span lang=ron-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'alg-foo'",
-"input": "<span lang=alg-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'oss-foo'",
-"input": "<span lang=oss-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ale-foo'",
-"input": "<span lang=ale-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'alb-foo'",
-"input": "<span lang=alb-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sco-foo'",
-"input": "<span lang=sco-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'scc-foo'",
-"input": "<span lang=scc-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mni-foo'",
-"input": "<span lang=mni-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gd-foo'",
-"input": "<span lang=gd-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'per-foo'",
-"input": "<span lang=per-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ga-foo'",
-"input": "<span lang=ga-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nwc-foo'",
-"input": "<span lang=nwc-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'osa-foo'",
-"input": "<span lang=osa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gn-foo'",
-"input": "<span lang=gn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'alt-foo'",
-"input": "<span lang=alt-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gl-foo'",
-"input": "<span lang=gl-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'scr-foo'",
-"input": "<span lang=scr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mwr-foo'",
-"input": "<span lang=mwr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ty-foo'",
-"input": "<span lang=ty-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tw-foo'",
-"input": "<span lang=tw-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tt-foo'",
-"input": "<span lang=tt-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tr-foo'",
-"input": "<span lang=tr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ts-foo'",
-"input": "<span lang=ts-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tn-foo'",
-"input": "<span lang=tn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'to-foo'",
-"input": "<span lang=to-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tl-foo'",
-"input": "<span lang=tl-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tk-foo'",
-"input": "<span lang=tk-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'th-foo'",
-"input": "<span lang=th-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ti-foo'",
-"input": "<span lang=ti-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ven-foo'",
-"input": "<span lang=ven-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tg-foo'",
-"input": "<span lang=tg-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'te-foo'",
-"input": "<span lang=te-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'uga-foo'",
-"input": "<span lang=uga-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ta-foo'",
-"input": "<span lang=ta-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fas-foo'",
-"input": "<span lang=fas-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fat-foo'",
-"input": "<span lang=fat-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fan-foo'",
-"input": "<span lang=fan-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fao-foo'",
-"input": "<span lang=fao-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'got-foo'",
-"input": "<span lang=got-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sme-foo'",
-"input": "<span lang=sme-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'din-foo'",
-"input": "<span lang=din-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hye-foo'",
-"input": "<span lang=hye-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'guj-foo'",
-"input": "<span lang=guj-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cmc-foo'",
-"input": "<span lang=cmc-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'srd-foo'",
-"input": "<span lang=srd-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mdr-foo'",
-"input": "<span lang=mdr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ml-foo'",
-"input": "<span lang=ml-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'div-foo'",
-"input": "<span lang=div-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'zh-foo'",
-"input": "<span lang=zh-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tem-foo'",
-"input": "<span lang=tem-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'xho-foo'",
-"input": "<span lang=xho-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mno-foo'",
-"input": "<span lang=mno-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'roa-foo'",
-"input": "<span lang=roa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'za-foo'",
-"input": "<span lang=za-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'deu-foo'",
-"input": "<span lang=deu-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mk-foo'",
-"input": "<span lang=mk-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nbl-foo'",
-"input": "<span lang=nbl-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'zu-foo'",
-"input": "<span lang=zu-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ter-foo'",
-"input": "<span lang=ter-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tet-foo'",
-"input": "<span lang=tet-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mnc-foo'",
-"input": "<span lang=mnc-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sun-foo'",
-"input": "<span lang=sun-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'abk-foo'",
-"input": "<span lang=abk-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'suk-foo'",
-"input": "<span lang=suk-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kur-foo'",
-"input": "<span lang=kur-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kum-foo'",
-"input": "<span lang=kum-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'slo-foo'",
-"input": "<span lang=slo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sus-foo'",
-"input": "<span lang=sus-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'new-foo'",
-"input": "<span lang=new-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kua-foo'",
-"input": "<span lang=kua-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sux-foo'",
-"input": "<span lang=sux-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'den-foo'",
-"input": "<span lang=den-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mr-foo'",
-"input": "<span lang=mr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mul-foo'",
-"input": "<span lang=mul-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lez-foo'",
-"input": "<span lang=lez-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gla-foo'",
-"input": "<span lang=gla-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bos-foo'",
-"input": "<span lang=bos-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gle-foo'",
-"input": "<span lang=gle-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'eka-foo'",
-"input": "<span lang=eka-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'glg-foo'",
-"input": "<span lang=glg-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'akk-foo'",
-"input": "<span lang=akk-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dra-foo'",
-"input": "<span lang=dra-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'aka-foo'",
-"input": "<span lang=aka-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bod-foo'",
-"input": "<span lang=bod-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'glv-foo'",
-"input": "<span lang=glv-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'jrb-foo'",
-"input": "<span lang=jrb-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'vie-foo'",
-"input": "<span lang=vie-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ipk-foo'",
-"input": "<span lang=ipk-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'uzb-foo'",
-"input": "<span lang=uzb-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sgn-foo'",
-"input": "<span lang=sgn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sga-foo'",
-"input": "<span lang=sga-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bre-foo'",
-"input": "<span lang=bre-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'apa-foo'",
-"input": "<span lang=apa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bra-foo'",
-"input": "<span lang=bra-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'aym-foo'",
-"input": "<span lang=aym-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cha-foo'",
-"input": "<span lang=cha-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chb-foo'",
-"input": "<span lang=chb-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'che-foo'",
-"input": "<span lang=che-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chg-foo'",
-"input": "<span lang=chg-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chi-foo'",
-"input": "<span lang=chi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chk-foo'",
-"input": "<span lang=chk-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'aus-foo'",
-"input": "<span lang=aus-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chn-foo'",
-"input": "<span lang=chn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cho-foo'",
-"input": "<span lang=cho-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chp-foo'",
-"input": "<span lang=chp-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chr-foo'",
-"input": "<span lang=chr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chu-foo'",
-"input": "<span lang=chu-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chv-foo'",
-"input": "<span lang=chv-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chy-foo'",
-"input": "<span lang=chy-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'msa-foo'",
-"input": "<span lang=msa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'iii-foo'",
-"input": "<span lang=iii-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'vot-foo'",
-"input": "<span lang=vot-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mg-foo'",
-"input": "<span lang=mg-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ndo-foo'",
-"input": "<span lang=ndo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ibo-foo'",
-"input": "<span lang=ibo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'car-foo'",
-"input": "<span lang=car-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mo-foo'",
-"input": "<span lang=mo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mn-foo'",
-"input": "<span lang=mn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mi-foo'",
-"input": "<span lang=mi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mh-foo'",
-"input": "<span lang=mh-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cau-foo'",
-"input": "<span lang=cau-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cat-foo'",
-"input": "<span lang=cat-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bur-foo'",
-"input": "<span lang=bur-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mt-foo'",
-"input": "<span lang=mt-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cai-foo'",
-"input": "<span lang=cai-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'del-foo'",
-"input": "<span lang=del-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ms-foo'",
-"input": "<span lang=ms-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'byn-foo'",
-"input": "<span lang=byn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mwl-foo'",
-"input": "<span lang=mwl-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'my-foo'",
-"input": "<span lang=my-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cad-foo'",
-"input": "<span lang=cad-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tat-foo'",
-"input": "<span lang=tat-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nde-foo'",
-"input": "<span lang=nde-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tam-foo'",
-"input": "<span lang=tam-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'spa-foo'",
-"input": "<span lang=spa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tah-foo'",
-"input": "<span lang=tah-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tai-foo'",
-"input": "<span lang=tai-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cze-foo'",
-"input": "<span lang=cze-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'afh-foo'",
-"input": "<span lang=afh-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'eng-foo'",
-"input": "<span lang=eng-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'afa-foo'",
-"input": "<span lang=afa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'id-foo'",
-"input": "<span lang=id-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nyn-foo'",
-"input": "<span lang=nyn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nyo-foo'",
-"input": "<span lang=nyo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gez-foo'",
-"input": "<span lang=gez-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nya-foo'",
-"input": "<span lang=nya-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sio-foo'",
-"input": "<span lang=sio-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sin-foo'",
-"input": "<span lang=sin-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'afr-foo'",
-"input": "<span lang=afr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'map-foo'",
-"input": "<span lang=map-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fr-foo'",
-"input": "<span lang=fr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lao-foo'",
-"input": "<span lang=lao-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lah-foo'",
-"input": "<span lang=lah-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nym-foo'",
-"input": "<span lang=nym-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sna-foo'",
-"input": "<span lang=sna-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lad-foo'",
-"input": "<span lang=lad-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fy-foo'",
-"input": "<span lang=fy-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'snk-foo'",
-"input": "<span lang=snk-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fa-foo'",
-"input": "<span lang=fa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mac-foo'",
-"input": "<span lang=mac-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mad-foo'",
-"input": "<span lang=mad-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ff-foo'",
-"input": "<span lang=ff-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lat-foo'",
-"input": "<span lang=lat-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fi-foo'",
-"input": "<span lang=fi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fj-foo'",
-"input": "<span lang=fj-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mal-foo'",
-"input": "<span lang=mal-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mao-foo'",
-"input": "<span lang=mao-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fo-foo'",
-"input": "<span lang=fo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mak-foo'",
-"input": "<span lang=mak-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'egy-foo'",
-"input": "<span lang=egy-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'znd-foo'",
-"input": "<span lang=znd-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ss-foo'",
-"input": "<span lang=ss-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sr-foo'",
-"input": "<span lang=sr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sq-foo'",
-"input": "<span lang=sq-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sit-foo'",
-"input": "<span lang=sit-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sw-foo'",
-"input": "<span lang=sw-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sv-foo'",
-"input": "<span lang=sv-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'su-foo'",
-"input": "<span lang=su-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'st-foo'",
-"input": "<span lang=st-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sk-foo'",
-"input": "<span lang=sk-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'si-foo'",
-"input": "<span lang=si-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sh-foo'",
-"input": "<span lang=sh-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'so-foo'",
-"input": "<span lang=so-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sn-foo'",
-"input": "<span lang=sn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sm-foo'",
-"input": "<span lang=sm-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sl-foo'",
-"input": "<span lang=sl-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sc-foo'",
-"input": "<span lang=sc-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sa-foo'",
-"input": "<span lang=sa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sg-foo'",
-"input": "<span lang=sg-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'se-foo'",
-"input": "<span lang=se-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sd-foo'",
-"input": "<span lang=sd-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'zen-foo'",
-"input": "<span lang=zen-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kbd-foo'",
-"input": "<span lang=kbd-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'enm-foo'",
-"input": "<span lang=enm-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'iro-foo'",
-"input": "<span lang=iro-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'vai-foo'",
-"input": "<span lang=vai-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'csb-foo'",
-"input": "<span lang=csb-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tsn-foo'",
-"input": "<span lang=tsn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lg-foo'",
-"input": "<span lang=lg-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lb-foo'",
-"input": "<span lang=lb-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'la-foo'",
-"input": "<span lang=la-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ln-foo'",
-"input": "<span lang=ln-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lo-foo'",
-"input": "<span lang=lo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'li-foo'",
-"input": "<span lang=li-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lv-foo'",
-"input": "<span lang=lv-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lt-foo'",
-"input": "<span lang=lt-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lu-foo'",
-"input": "<span lang=lu-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hin-foo'",
-"input": "<span lang=hin-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fij-foo'",
-"input": "<span lang=fij-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fin-foo'",
-"input": "<span lang=fin-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'eus-foo'",
-"input": "<span lang=eus-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'yi-foo'",
-"input": "<span lang=yi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'non-foo'",
-"input": "<span lang=non-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ceb-foo'",
-"input": "<span lang=ceb-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'yo-foo'",
-"input": "<span lang=yo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dan-foo'",
-"input": "<span lang=dan-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cel-foo'",
-"input": "<span lang=cel-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bat-foo'",
-"input": "<span lang=bat-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nob-foo'",
-"input": "<span lang=nob-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dak-foo'",
-"input": "<span lang=dak-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ces-foo'",
-"input": "<span lang=ces-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dar-foo'",
-"input": "<span lang=dar-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'son-foo'",
-"input": "<span lang=son-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'day-foo'",
-"input": "<span lang=day-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nor-foo'",
-"input": "<span lang=nor-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gba-foo'",
-"input": "<span lang=gba-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ssa-foo'",
-"input": "<span lang=ssa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hil-foo'",
-"input": "<span lang=hil-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kpe-foo'",
-"input": "<span lang=kpe-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'man-foo'",
-"input": "<span lang=man-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'wel-foo'",
-"input": "<span lang=wel-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'el-foo'",
-"input": "<span lang=el-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'eo-foo'",
-"input": "<span lang=eo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'en-foo'",
-"input": "<span lang=en-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lam-foo'",
-"input": "<span lang=lam-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ee-foo'",
-"input": "<span lang=ee-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tpi-foo'",
-"input": "<span lang=tpi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mdf-foo'",
-"input": "<span lang=mdf-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mas-foo'",
-"input": "<span lang=mas-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mar-foo'",
-"input": "<span lang=mar-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'eu-foo'",
-"input": "<span lang=eu-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'et-foo'",
-"input": "<span lang=et-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'es-foo'",
-"input": "<span lang=es-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ru-foo'",
-"input": "<span lang=ru-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rw-foo'",
-"input": "<span lang=rw-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'goh-foo'",
-"input": "<span lang=goh-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sms-foo'",
-"input": "<span lang=sms-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'smo-foo'",
-"input": "<span lang=smo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'smn-foo'",
-"input": "<span lang=smn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'smj-foo'",
-"input": "<span lang=smj-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'smi-foo'",
-"input": "<span lang=smi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nic-foo'",
-"input": "<span lang=nic-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rm-foo'",
-"input": "<span lang=rm-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rn-foo'",
-"input": "<span lang=rn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ro-foo'",
-"input": "<span lang=ro-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dsb-foo'",
-"input": "<span lang=dsb-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sma-foo'",
-"input": "<span lang=sma-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gor-foo'",
-"input": "<span lang=gor-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ast-foo'",
-"input": "<span lang=ast-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'orm-foo'",
-"input": "<span lang=orm-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'que-foo'",
-"input": "<span lang=que-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ori-foo'",
-"input": "<span lang=ori-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'crh-foo'",
-"input": "<span lang=crh-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'asm-foo'",
-"input": "<span lang=asm-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pus-foo'",
-"input": "<span lang=pus-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kik-foo'",
-"input": "<span lang=kik-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ltz-foo'",
-"input": "<span lang=ltz-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ath-foo'",
-"input": "<span lang=ath-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'wln-foo'",
-"input": "<span lang=wln-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'isl-foo'",
-"input": "<span lang=isl-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'xh-foo'",
-"input": "<span lang=xh-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mag-foo'",
-"input": "<span lang=mag-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mai-foo'",
-"input": "<span lang=mai-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'xx-foo'",
-"input": "<span lang=xx-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mah-foo'",
-"input": "<span lang=mah-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tel-foo'",
-"input": "<span lang=tel-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lav-foo'",
-"input": "<span lang=lav-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'zap-foo'",
-"input": "<span lang=zap-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'yid-foo'",
-"input": "<span lang=yid-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kok-foo'",
-"input": "<span lang=kok-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kom-foo'",
-"input": "<span lang=kom-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kon-foo'",
-"input": "<span lang=kon-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ukr-foo'",
-"input": "<span lang=ukr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ton-foo'",
-"input": "<span lang=ton-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kos-foo'",
-"input": "<span lang=kos-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kor-foo'",
-"input": "<span lang=kor-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tog-foo'",
-"input": "<span lang=tog-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hun-foo'",
-"input": "<span lang=hun-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hup-foo'",
-"input": "<span lang=hup-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cym-foo'",
-"input": "<span lang=cym-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'udm-foo'",
-"input": "<span lang=udm-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bej-foo'",
-"input": "<span lang=bej-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ben-foo'",
-"input": "<span lang=ben-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bel-foo'",
-"input": "<span lang=bel-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bem-foo'",
-"input": "<span lang=bem-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tsi-foo'",
-"input": "<span lang=tsi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'aar-foo'",
-"input": "<span lang=aar-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ber-foo'",
-"input": "<span lang=ber-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nzi-foo'",
-"input": "<span lang=nzi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sai-foo'",
-"input": "<span lang=sai-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ang-foo'",
-"input": "<span lang=ang-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pra-foo'",
-"input": "<span lang=pra-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'san-foo'",
-"input": "<span lang=san-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bho-foo'",
-"input": "<span lang=bho-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sal-foo'",
-"input": "<span lang=sal-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pro-foo'",
-"input": "<span lang=pro-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'raj-foo'",
-"input": "<span lang=raj-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sad-foo'",
-"input": "<span lang=sad-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'anp-foo'",
-"input": "<span lang=anp-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rap-foo'",
-"input": "<span lang=rap-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sas-foo'",
-"input": "<span lang=sas-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'iba-foo'",
-"input": "<span lang=iba-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'myn-foo'",
-"input": "<span lang=myn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'min-foo'",
-"input": "<span lang=min-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lim-foo'",
-"input": "<span lang=lim-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lin-foo'",
-"input": "<span lang=lin-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nah-foo'",
-"input": "<span lang=nah-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lit-foo'",
-"input": "<span lang=lit-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'efi-foo'",
-"input": "<span lang=efi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'srn-foo'",
-"input": "<span lang=srn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'arn-foo'",
-"input": "<span lang=arn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ypk-foo'",
-"input": "<span lang=ypk-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mis-foo'",
-"input": "<span lang=mis-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kac-foo'",
-"input": "<span lang=kac-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kab-foo'",
-"input": "<span lang=kab-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kaa-foo'",
-"input": "<span lang=kaa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kan-foo'",
-"input": "<span lang=kan-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kam-foo'",
-"input": "<span lang=kam-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kal-foo'",
-"input": "<span lang=kal-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kas-foo'",
-"input": "<span lang=kas-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kar-foo'",
-"input": "<span lang=kar-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kaw-foo'",
-"input": "<span lang=kaw-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kau-foo'",
-"input": "<span lang=kau-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kat-foo'",
-"input": "<span lang=kat-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kaz-foo'",
-"input": "<span lang=kaz-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tyv-foo'",
-"input": "<span lang=tyv-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'awa-foo'",
-"input": "<span lang=awa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'urd-foo'",
-"input": "<span lang=urd-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ka-foo'",
-"input": "<span lang=ka-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'doi-foo'",
-"input": "<span lang=doi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kg-foo'",
-"input": "<span lang=kg-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kk-foo'",
-"input": "<span lang=kk-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kj-foo'",
-"input": "<span lang=kj-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ki-foo'",
-"input": "<span lang=ki-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ko-foo'",
-"input": "<span lang=ko-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kn-foo'",
-"input": "<span lang=kn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'km-foo'",
-"input": "<span lang=km-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kl-foo'",
-"input": "<span lang=kl-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ks-foo'",
-"input": "<span lang=ks-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kr-foo'",
-"input": "<span lang=kr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kw-foo'",
-"input": "<span lang=kw-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kv-foo'",
-"input": "<span lang=kv-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ku-foo'",
-"input": "<span lang=ku-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ky-foo'",
-"input": "<span lang=ky-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ota-foo'",
-"input": "<span lang=ota-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kut-foo'",
-"input": "<span lang=kut-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tkl-foo'",
-"input": "<span lang=tkl-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nld-foo'",
-"input": "<span lang=nld-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'oji-foo'",
-"input": "<span lang=oji-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'oci-foo'",
-"input": "<span lang=oci-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ha-foo'",
-"input": "<span lang=ha-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'wol-foo'",
-"input": "<span lang=wol-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'jav-foo'",
-"input": "<span lang=jav-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hrv-foo'",
-"input": "<span lang=hrv-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ger-foo'",
-"input": "<span lang=ger-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mga-foo'",
-"input": "<span lang=mga-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hit-foo'",
-"input": "<span lang=hit-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dyu-foo'",
-"input": "<span lang=dyu-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ssw-foo'",
-"input": "<span lang=ssw-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'de-foo'",
-"input": "<span lang=de-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'da-foo'",
-"input": "<span lang=da-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dz-foo'",
-"input": "<span lang=dz-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lui-foo'",
-"input": "<span lang=lui-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dv-foo'",
-"input": "<span lang=dv-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ita-foo'",
-"input": "<span lang=ita-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'geo-foo'",
-"input": "<span lang=geo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'him-foo'",
-"input": "<span lang=him-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gem-foo'",
-"input": "<span lang=gem-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'crp-foo'",
-"input": "<span lang=crp-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'qu-foo'",
-"input": "<span lang=qu-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bas-foo'",
-"input": "<span lang=bas-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'baq-foo'",
-"input": "<span lang=baq-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bad-foo'",
-"input": "<span lang=bad-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nep-foo'",
-"input": "<span lang=nep-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cre-foo'",
-"input": "<span lang=cre-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ban-foo'",
-"input": "<span lang=ban-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'x-foo'",
-"input": "<span lang=x-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bal-foo'",
-"input": "<span lang=bal-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bam-foo'",
-"input": "<span lang=bam-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bak-foo'",
-"input": "<span lang=bak-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'shn-foo'",
-"input": "<span lang=shn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bai-foo'",
-"input": "<span lang=bai-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'arp-foo'",
-"input": "<span lang=arp-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'art-foo'",
-"input": "<span lang=art-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'arw-foo'",
-"input": "<span lang=arw-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'qtz-foo'",
-"input": "<span lang=qtz-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ara-foo'",
-"input": "<span lang=ara-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'arc-foo'",
-"input": "<span lang=arc-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'arg-foo'",
-"input": "<span lang=arg-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sem-foo'",
-"input": "<span lang=sem-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sel-foo'",
-"input": "<span lang=sel-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nub-foo'",
-"input": "<span lang=nub-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'arm-foo'",
-"input": "<span lang=arm-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'btk-foo'",
-"input": "<span lang=btk-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lus-foo'",
-"input": "<span lang=lus-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'iku-foo'",
-"input": "<span lang=iku-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mus-foo'",
-"input": "<span lang=mus-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lua-foo'",
-"input": "<span lang=lua-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lub-foo'",
-"input": "<span lang=lub-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lug-foo'",
-"input": "<span lang=lug-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ira-foo'",
-"input": "<span lang=ira-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mun-foo'",
-"input": "<span lang=mun-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tur-foo'",
-"input": "<span lang=tur-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lun-foo'",
-"input": "<span lang=lun-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'luo-foo'",
-"input": "<span lang=luo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'men-foo'",
-"input": "<span lang=men-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'wa-foo'",
-"input": "<span lang=wa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tso-foo'",
-"input": "<span lang=tso-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'wo-foo'",
-"input": "<span lang=wo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'jv-foo'",
-"input": "<span lang=jv-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tut-foo'",
-"input": "<span lang=tut-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ind-foo'",
-"input": "<span lang=ind-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tuk-foo'",
-"input": "<span lang=tuk-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tum-foo'",
-"input": "<span lang=tum-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ja-foo'",
-"input": "<span lang=ja-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cop-foo'",
-"input": "<span lang=cop-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cos-foo'",
-"input": "<span lang=cos-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cor-foo'",
-"input": "<span lang=cor-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ilo-foo'",
-"input": "<span lang=ilo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fiu-foo'",
-"input": "<span lang=fiu-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gwi-foo'",
-"input": "<span lang=gwi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'und-foo'",
-"input": "<span lang=und-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gws-foo'",
-"input": "<span lang=gws-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tli-foo'",
-"input": "<span lang=tli-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tlh-foo'",
-"input": "<span lang=tlh-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nno-foo'",
-"input": "<span lang=nno-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ch-foo'",
-"input": "<span lang=ch-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'co-foo'",
-"input": "<span lang=co-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ca-foo'",
-"input": "<span lang=ca-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'por-foo'",
-"input": "<span lang=por-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ce-foo'",
-"input": "<span lang=ce-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pon-foo'",
-"input": "<span lang=pon-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cy-foo'",
-"input": "<span lang=cy-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sah-foo'",
-"input": "<span lang=sah-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cs-foo'",
-"input": "<span lang=cs-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cr-foo'",
-"input": "<span lang=cr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ady-foo'",
-"input": "<span lang=ady-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cv-foo'",
-"input": "<span lang=cv-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cu-foo'",
-"input": "<span lang=cu-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ps-foo'",
-"input": "<span lang=ps-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fra-foo'",
-"input": "<span lang=fra-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dum-foo'",
-"input": "<span lang=dum-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pt-foo'",
-"input": "<span lang=pt-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'swa-foo'",
-"input": "<span lang=swa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dua-foo'",
-"input": "<span lang=dua-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fro-foo'",
-"input": "<span lang=fro-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'yap-foo'",
-"input": "<span lang=yap-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'frm-foo'",
-"input": "<span lang=frm-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tiv-foo'",
-"input": "<span lang=tiv-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'frs-foo'",
-"input": "<span lang=frs-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'frr-foo'",
-"input": "<span lang=frr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'yao-foo'",
-"input": "<span lang=yao-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pa-foo'",
-"input": "<span lang=pa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'xal-foo'",
-"input": "<span lang=xal-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fry-foo'",
-"input": "<span lang=fry-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pi-foo'",
-"input": "<span lang=pi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dut-foo'",
-"input": "<span lang=dut-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pl-foo'",
-"input": "<span lang=pl-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gay-foo'",
-"input": "<span lang=gay-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'oto-foo'",
-"input": "<span lang=oto-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sag-foo'",
-"input": "<span lang=sag-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hmn-foo'",
-"input": "<span lang=hmn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hmo-foo'",
-"input": "<span lang=hmo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'an-foo'",
-"input": "<span lang=an-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gaa-foo'",
-"input": "<span lang=gaa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fur-foo'",
-"input": "<span lang=fur-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mlg-foo'",
-"input": "<span lang=mlg-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'slv-foo'",
-"input": "<span lang=slv-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ain-foo'",
-"input": "<span lang=ain-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fil-foo'",
-"input": "<span lang=fil-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mlt-foo'",
-"input": "<span lang=mlt-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'slk-foo'",
-"input": "<span lang=slk-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rar-foo'",
-"input": "<span lang=rar-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ful-foo'",
-"input": "<span lang=ful-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sla-foo'",
-"input": "<span lang=sla-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 've-foo'",
-"input": "<span lang=ve-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'jpn-foo'",
-"input": "<span lang=jpn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'vol-foo'",
-"input": "<span lang=vol-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'vi-foo'",
-"input": "<span lang=vi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'is-foo'",
-"input": "<span lang=is-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kho-foo'",
-"input": "<span lang=kho-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'iu-foo'",
-"input": "<span lang=iu-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'it-foo'",
-"input": "<span lang=it-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'vo-foo'",
-"input": "<span lang=vo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ii-foo'",
-"input": "<span lang=ii-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ay-foo'",
-"input": "<span lang=ay-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ik-foo'",
-"input": "<span lang=ik-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'io-foo'",
-"input": "<span lang=io-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kha-foo'",
-"input": "<span lang=kha-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ia-foo'",
-"input": "<span lang=ia-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ave-foo'",
-"input": "<span lang=ave-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'jpr-foo'",
-"input": "<span lang=jpr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ie-foo'",
-"input": "<span lang=ie-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ava-foo'",
-"input": "<span lang=ava-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ig-foo'",
-"input": "<span lang=ig-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pap-foo'",
-"input": "<span lang=pap-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ewo-foo'",
-"input": "<span lang=ewo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pau-foo'",
-"input": "<span lang=pau-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ewe-foo'",
-"input": "<span lang=ewe-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'paa-foo'",
-"input": "<span lang=paa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'qaa-foo'",
-"input": "<span lang=qaa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pag-foo'",
-"input": "<span lang=pag-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sat-foo'",
-"input": "<span lang=sat-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pal-foo'",
-"input": "<span lang=pal-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pam-foo'",
-"input": "<span lang=pam-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pan-foo'",
-"input": "<span lang=pan-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'phi-foo'",
-"input": "<span lang=phi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nog-foo'",
-"input": "<span lang=nog-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'phn-foo'",
-"input": "<span lang=phn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kir-foo'",
-"input": "<span lang=kir-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nia-foo'",
-"input": "<span lang=nia-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dgr-foo'",
-"input": "<span lang=dgr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'syr-foo'",
-"input": "<span lang=syr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kin-foo'",
-"input": "<span lang=kin-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tup-foo'",
-"input": "<span lang=tup-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'niu-foo'",
-"input": "<span lang=niu-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gsw-foo'",
-"input": "<span lang=gsw-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'epo-foo'",
-"input": "<span lang=epo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'jbo-foo'",
-"input": "<span lang=jbo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mic-foo'",
-"input": "<span lang=mic-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tha-foo'",
-"input": "<span lang=tha-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sam-foo'",
-"input": "<span lang=sam-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hai-foo'",
-"input": "<span lang=hai-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gmh-foo'",
-"input": "<span lang=gmh-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cus-foo'",
-"input": "<span lang=cus-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ell-foo'",
-"input": "<span lang=ell-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'wen-foo'",
-"input": "<span lang=wen-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bnt-foo'",
-"input": "<span lang=bnt-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fre-foo'",
-"input": "<span lang=fre-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'elx-foo'",
-"input": "<span lang=elx-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ada-foo'",
-"input": "<span lang=ada-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nav-foo'",
-"input": "<span lang=nav-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hat-foo'",
-"input": "<span lang=hat-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hau-foo'",
-"input": "<span lang=hau-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'haw-foo'",
-"input": "<span lang=haw-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bin-foo'",
-"input": "<span lang=bin-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'amh-foo'",
-"input": "<span lang=amh-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bik-foo'",
-"input": "<span lang=bik-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bih-foo'",
-"input": "<span lang=bih-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mos-foo'",
-"input": "<span lang=mos-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'moh-foo'",
-"input": "<span lang=moh-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mon-foo'",
-"input": "<span lang=mon-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mol-foo'",
-"input": "<span lang=mol-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bis-foo'",
-"input": "<span lang=bis-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bla-foo'",
-"input": "<span lang=bla-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pol-foo'",
-"input": "<span lang=pol-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tib-foo'",
-"input": "<span lang=tib-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tvl-foo'",
-"input": "<span lang=tvl-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tgk-foo'",
-"input": "<span lang=tgk-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ijo-foo'",
-"input": "<span lang=ijo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'est-foo'",
-"input": "<span lang=est-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kmb-foo'",
-"input": "<span lang=kmb-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ice-foo'",
-"input": "<span lang=ice-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'peo-foo'",
-"input": "<span lang=peo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tgl-foo'",
-"input": "<span lang=tgl-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'umb-foo'",
-"input": "<span lang=umb-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tmh-foo'",
-"input": "<span lang=tmh-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'fon-foo'",
-"input": "<span lang=fon-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hsb-foo'",
-"input": "<span lang=hsb-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'be-foo'",
-"input": "<span lang=be-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bg-foo'",
-"input": "<span lang=bg-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'run-foo'",
-"input": "<span lang=run-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ba-foo'",
-"input": "<span lang=ba-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rum-foo'",
-"input": "<span lang=rum-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bm-foo'",
-"input": "<span lang=bm-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bn-foo'",
-"input": "<span lang=bn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bo-foo'",
-"input": "<span lang=bo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bh-foo'",
-"input": "<span lang=bh-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bi-foo'",
-"input": "<span lang=bi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'br-foo'",
-"input": "<span lang=br-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bs-foo'",
-"input": "<span lang=bs-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rus-foo'",
-"input": "<span lang=rus-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'rup-foo'",
-"input": "<span lang=rup-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'pli-foo'",
-"input": "<span lang=pli-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'om-foo'",
-"input": "<span lang=om-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'oj-foo'",
-"input": "<span lang=oj-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ace-foo'",
-"input": "<span lang=ace-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ach-foo'",
-"input": "<span lang=ach-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'oc-foo'",
-"input": "<span lang=oc-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'dzo-foo'",
-"input": "<span lang=dzo-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kru-foo'",
-"input": "<span lang=kru-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'srr-foo'",
-"input": "<span lang=srr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ido-foo'",
-"input": "<span lang=ido-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'srp-foo'",
-"input": "<span lang=srp-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'kro-foo'",
-"input": "<span lang=kro-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'krl-foo'",
-"input": "<span lang=krl-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'krc-foo'",
-"input": "<span lang=krc-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nds-foo'",
-"input": "<span lang=nds-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'os-foo'",
-"input": "<span lang=os-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'or-foo'",
-"input": "<span lang=or-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'zul-foo'",
-"input": "<span lang=zul-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'twi-foo'",
-"input": "<span lang=twi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sog-foo'",
-"input": "<span lang=sog-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nso-foo'",
-"input": "<span lang=nso-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'swe-foo'",
-"input": "<span lang=swe-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'som-foo'",
-"input": "<span lang=som-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'chm-foo'",
-"input": "<span lang=chm-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'snd-foo'",
-"input": "<span lang=snd-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sot-foo'",
-"input": "<span lang=sot-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mkd-foo'",
-"input": "<span lang=mkd-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'wak-foo'",
-"input": "<span lang=wak-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'her-foo'",
-"input": "<span lang=her-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'lol-foo'",
-"input": "<span lang=lol-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mkh-foo'",
-"input": "<span lang=mkh-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'heb-foo'",
-"input": "<span lang=heb-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'loz-foo'",
-"input": "<span lang=loz-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gil-foo'",
-"input": "<span lang=gil-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'was-foo'",
-"input": "<span lang=was-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'war-foo'",
-"input": "<span lang=war-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hz-foo'",
-"input": "<span lang=hz-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hy-foo'",
-"input": "<span lang=hy-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sid-foo'",
-"input": "<span lang=sid-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hr-foo'",
-"input": "<span lang=hr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ht-foo'",
-"input": "<span lang=ht-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hu-foo'",
-"input": "<span lang=hu-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'hi-foo'",
-"input": "<span lang=hi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ho-foo'",
-"input": "<span lang=ho-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bul-foo'",
-"input": "<span lang=bul-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'wal-foo'",
-"input": "<span lang=wal-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bua-foo'",
-"input": "<span lang=bua-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'bug-foo'",
-"input": "<span lang=bug-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'he-foo'",
-"input": "<span lang=he-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'uz-foo'",
-"input": "<span lang=uz-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'aze-foo'",
-"input": "<span lang=aze-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ur-foo'",
-"input": "<span lang=ur-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'zha-foo'",
-"input": "<span lang=zha-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'uk-foo'",
-"input": "<span lang=uk-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ug-foo'",
-"input": "<span lang=ug-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'zho-foo'",
-"input": "<span lang=zho-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'aa-foo'",
-"input": "<span lang=aa-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ab-foo'",
-"input": "<span lang=ab-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ae-foo'",
-"input": "<span lang=ae-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'uig-foo'",
-"input": "<span lang=uig-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'af-foo'",
-"input": "<span lang=af-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ak-foo'",
-"input": "<span lang=ak-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'am-foo'",
-"input": "<span lang=am-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'myv-foo'",
-"input": "<span lang=myv-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'khi-foo'",
-"input": "<span lang=khi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'as-foo'",
-"input": "<span lang=as-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ar-foo'",
-"input": "<span lang=ar-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'inh-foo'",
-"input": "<span lang=inh-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'khm-foo'",
-"input": "<span lang=khm-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'av-foo'",
-"input": "<span lang=av-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mya-foo'",
-"input": "<span lang=mya-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ine-foo'",
-"input": "<span lang=ine-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'az-foo'",
-"input": "<span lang=az-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ina-foo'",
-"input": "<span lang=ina-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'inc-foo'",
-"input": "<span lang=inc-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nl-foo'",
-"input": "<span lang=nl-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nn-foo'",
-"input": "<span lang=nn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'no-foo'",
-"input": "<span lang=no-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'na-foo'",
-"input": "<span lang=na-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nb-foo'",
-"input": "<span lang=nb-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nai-foo'",
-"input": "<span lang=nai-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nd-foo'",
-"input": "<span lang=nd-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ne-foo'",
-"input": "<span lang=ne-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tir-foo'",
-"input": "<span lang=tir-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ng-foo'",
-"input": "<span lang=ng-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ny-foo'",
-"input": "<span lang=ny-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nap-foo'",
-"input": "<span lang=nap-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gre-foo'",
-"input": "<span lang=gre-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'grb-foo'",
-"input": "<span lang=grb-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'grc-foo'",
-"input": "<span lang=grc-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nau-foo'",
-"input": "<span lang=nau-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'grn-foo'",
-"input": "<span lang=grn-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nr-foo'",
-"input": "<span lang=nr-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'tig-foo'",
-"input": "<span lang=tig-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'yor-foo'",
-"input": "<span lang=yor-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'nv-foo'",
-"input": "<span lang=nv-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'mri-foo'",
-"input": "<span lang=mri-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'may-foo'",
-"input": "<span lang=may-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'zun-foo'",
-"input": "<span lang=zun-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'ile-foo'",
-"input": "<span lang=ile-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'sqi-foo'",
-"input": "<span lang=sqi-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'gon-foo'",
-"input": "<span lang=gon-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cpe-foo'",
-"input": "<span lang=cpe-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cpf-foo'",
-"input": "<span lang=cpf-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'cpp-foo'",
-"input": "<span lang=cpp-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "invalid lang attribute 'foo'",
-"input": "<span lang=foo>",
-"fail-unless": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'EN'",
-"input": "<span lang=EN>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "valid lang attribute 'EN-foo'",
-"input": "<span lang=EN-foo>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "lang attribute can be blank",
-"input": "<span lang>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "lang attribute can be blank (with quotes)",
-"input": "<span lang=''>",
-"fail-if": "invalid-lang-code"},
-
-{"description": "lang attribute can not be just space characters",
-"input": "<span lang=' '>",
-"fail-unless": "invalid-lang-code"},
-
-{"description": "lang attribute can not contain leading spaces",
-"input": "<span lang=' en'>",
-"fail-unless": "invalid-lang-code"},
-
-{"description": "lang attribute can not contain trailing spaces",
-"input": "<span lang='en '>",
-"fail-unless": "invalid-lang-code"}
-
-]} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/li-value-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/li-value-attribute.test
deleted file mode 100755
index 9ef9dcc562f..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/li-value-attribute.test
+++ /dev/null
@@ -1,7 +0,0 @@
-{"tests": [
-
-{"description": "invalid li value attribute value due to leading junk",
-"input": "<li value=a1>",
-"fail-unless": "invalid-integer-value"}
-
-]} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-href-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-href-attribute.test
deleted file mode 100755
index 950c3786fa2..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-href-attribute.test
+++ /dev/null
@@ -1,7 +0,0 @@
-{"tests": [
-
-{"description": "link href contains invalid URI due to space in domain",
-"input": "<link href='http://www.example. com/'",
-"fail-unless": "invalid-uri-char"}
-
-]} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-hreflang-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-hreflang-attribute.test
deleted file mode 100755
index de39d4da066..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-hreflang-attribute.test
+++ /dev/null
@@ -1,7 +0,0 @@
-{"tests": [
-
-{"description": "invalid lang attribute 'foo'",
-"input": "<link hreflang=foo>",
-"fail-unless": "invalid-lang-code"}
-
-]} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-rel-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-rel-attribute.test
deleted file mode 100755
index a436751da69..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-rel-attribute.test
+++ /dev/null
@@ -1,271 +0,0 @@
-{"tests": [
-
-{"description": "invalid link rel value 'foo'",
-"input": "<link rel=foo>",
-"fail-unless": "invalid-rel"},
-
-{"description": "valid link rel value 'alternate stylesheet'",
-"input": "<link rel='alternate stylesheet'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with leading space",
-"input": "<link rel=' stylesheet'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with trailing space",
-"input": "<link rel='stylesheet '>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with leading and trailing space",
-"input": "<link rel=' stylesheet '>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with leading tab",
-"input": "<link rel='\tstylesheet'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with trailing tab",
-"input": "<link rel='stylesheet\t'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with leading and trailing tab",
-"input": "<link rel='\tstylesheet\t'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with leading LF",
-"input": "<link rel='\nstylesheet'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with trailing LF",
-"input": "<link rel='stylesheet\n'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with leading and trailing LF",
-"input": "<link rel='\nstylesheet\n'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with leading LT",
-"input": "<link rel='\u000Bstylesheet'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with trailing LT",
-"input": "<link rel='stylesheet\u000B'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with leading and trailing LT",
-"input": "<link rel='\u000Bstylesheet\u000B'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with leading FF",
-"input": "<link rel='\u000Cstylesheet'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with trailing FF",
-"input": "<link rel='stylesheet\u000C'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with leading and trailing FF",
-"input": "<link rel='\u000Cstylesheet\u000C'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with leading CR",
-"input": "<link rel='\rstylesheet'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with trailing CR",
-"input": "<link rel='stylesheet\r'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid single link rel value with leading and trailing CR",
-"input": "<link rel='\rstylesheet\r'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid double link rel value separated by space",
-"input": "<link rel='stylesheet alternate'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid double link rel value separated by tab",
-"input": "<link rel='stylesheet\talternate'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid double link rel value separated by LF",
-"input": "<link rel='stylesheet\nalternate'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid double link rel value separated by LT",
-"input": "<link rel='stylesheet\u000Balternate'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid double link rel value separated by FF",
-"input": "<link rel='stylesheet\u000Calternate'>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid double link rel value separated by CR",
-"input": "<link rel='stylesheet\ralternate'>",
-"fail-if": "invalid-rel"},
-
-{"description": "invalid duplicated link rel value separated by space",
-"input": "<link rel='stylesheet stylesheet'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated link rel value separated by tab",
-"input": "<link rel='stylesheet\tstylesheet'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated link rel value separated by LF",
-"input": "<link rel='stylesheet\nstylesheet'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated link rel value separated by LT",
-"input": "<link rel='stylesheet\u000Bstylesheet'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated link rel value separated by FF",
-"input": "<link rel='stylesheet\u000Cstylesheet'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated link rel value separated by CR",
-"input": "<link rel='stylesheet\rstylesheet'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated link rel value separated by space",
-"input": "<link rel='stylesheet stylesheet'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated link rel value separated by tab",
-"input": "<link rel='stylesheet\tstylesheet'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated link rel value separated by LF",
-"input": "<link rel='stylesheet\nstylesheet'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated link rel value separated by LT",
-"input": "<link rel='stylesheet\u000Bstylesheet'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated link rel value separated by FF",
-"input": "<link rel='stylesheet\u000Cstylesheet'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "invalid duplicated link rel value separated by CR",
-"input": "<link rel='stylesheet\rstylesheet'>",
-"fail-unless": "duplicate-value-in-token-list"},
-
-{"description": "valid link rel value 'feed'",
-"input": "<link rel=feed>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'help'",
-"input": "<link rel=help>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'tag'",
-"input": "<link rel=tag>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'sidebar'",
-"input": "<link rel=sidebar>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'archive'",
-"input": "<link rel=archive>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'contents'",
-"input": "<link rel=contents>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'previous'",
-"input": "<link rel=previous>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'index'",
-"input": "<link rel=index>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'end'",
-"input": "<link rel=end>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'copyright'",
-"input": "<link rel=copyright>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'author'",
-"input": "<link rel=author>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'top'",
-"input": "<link rel=top>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'alternate'",
-"input": "<link rel=alternate>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'next'",
-"input": "<link rel=next>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'start'",
-"input": "<link rel=start>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'stylesheet'",
-"input": "<link rel=stylesheet>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'archives'",
-"input": "<link rel=archives>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'toc'",
-"input": "<link rel=toc>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'prev'",
-"input": "<link rel=prev>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'begin'",
-"input": "<link rel=begin>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'icon'",
-"input": "<link rel=icon>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'search'",
-"input": "<link rel=search>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'last'",
-"input": "<link rel=last>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'license'",
-"input": "<link rel=license>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'pingback'",
-"input": "<link rel=pingback>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'up'",
-"input": "<link rel=up>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'contact'",
-"input": "<link rel=contact>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'prefetch'",
-"input": "<link rel=prefetch>",
-"fail-if": "invalid-rel"},
-
-{"description": "valid link rel value 'first'",
-"input": "<link rel=first>",
-"fail-if": "invalid-rel"}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/ol-start-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/ol-start-attribute.test
deleted file mode 100755
index 5e18cbef41a..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/ol-start-attribute.test
+++ /dev/null
@@ -1,7 +0,0 @@
-{"tests": [
-
-{"description": "invalid ol start attribute value due to leading junk",
-"input": "<ol start=a1>",
-"fail-unless": "invalid-integer-value"}
-
-]} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/starttags.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/starttags.test
deleted file mode 100755
index 0aa5b4d001e..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/starttags.test
+++ /dev/null
@@ -1,375 +0,0 @@
-{"tests": [
-
-{"description": "unknown start tag <foo>",
-"input": "<foo>",
-"fail-unless": "unknown-start-tag"},
-
-{"description": "allowed start tag <code>",
-"input": "<code>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <kbd>",
-"input": "<kbd>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <aside>",
-"input": "<aside>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <datagrid>",
-"input": "<datagrid>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <font>",
-"input": "<font>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <noscript>",
-"input": "<noscript>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <style>",
-"input": "<style>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <img>",
-"input": "<img>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <title>",
-"input": "<title>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <menu>",
-"input": "<menu>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <tr>",
-"input": "<tr>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <param>",
-"input": "<param>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <li>",
-"input": "<li>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <source>",
-"input": "<source>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <tfoot>",
-"input": "<tfoot>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <th>",
-"input": "<th>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <td>",
-"input": "<td>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <dl>",
-"input": "<dl>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <blockquote>",
-"input": "<blockquote>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <dd>",
-"input": "<dd>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <abbr>",
-"input": "<abbr>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <dt>",
-"input": "<dt>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <noembed>",
-"input": "<noembed>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <p>",
-"input": "<p>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <small>",
-"input": "<small>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <meter>",
-"input": "<meter>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <em>",
-"input": "<em>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <meta>",
-"input": "<meta>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <video>",
-"input": "<video>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <div>",
-"input": "<div>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <canvas>",
-"input": "<canvas>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <sub>",
-"input": "<sub>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <section>",
-"input": "<section>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <sup>",
-"input": "<sup>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <progress>",
-"input": "<progress>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <body>",
-"input": "<body>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <base>",
-"input": "<base>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <br>",
-"input": "<br>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <address>",
-"input": "<address>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <article>",
-"input": "<article>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <strong>",
-"input": "<strong>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <legend>",
-"input": "<legend>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <event-source>",
-"input": "<event-source>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <ol>",
-"input": "<ol>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <script>",
-"input": "<script>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <caption>",
-"input": "<caption>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <dialog>",
-"input": "<dialog>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <col>",
-"input": "<col>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <h2>",
-"input": "<h2>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <h3>",
-"input": "<h3>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <h1>",
-"input": "<h1>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <h6>",
-"input": "<h6>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <h4>",
-"input": "<h4>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <h5>",
-"input": "<h5>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <header>",
-"input": "<header>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <table>",
-"input": "<table>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <span>",
-"input": "<span>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <area>",
-"input": "<area>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <dfn>",
-"input": "<dfn>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <var>",
-"input": "<var>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <cite>",
-"input": "<cite>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <thead>",
-"input": "<thead>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <head>",
-"input": "<head>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <hr>",
-"input": "<hr>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <link>",
-"input": "<link>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <datatemplate>",
-"input": "<datatemplate>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <b>",
-"input": "<b>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <colgroup>",
-"input": "<colgroup>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <ul>",
-"input": "<ul>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <del>",
-"input": "<del>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <iframe>",
-"input": "<iframe>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <pre>",
-"input": "<pre>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <figure>",
-"input": "<figure>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <ins>",
-"input": "<ins>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <tbody>",
-"input": "<tbody>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <html>",
-"input": "<html>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <nav>",
-"input": "<nav>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <details>",
-"input": "<details>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <samp>",
-"input": "<samp>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <map>",
-"input": "<map>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <nest>",
-"input": "<nest>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <object>",
-"input": "<object>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <a>",
-"input": "<a>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <footer>",
-"input": "<footer>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <i>",
-"input": "<i>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <m>",
-"input": "<m>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <rule>",
-"input": "<rule>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <q>",
-"input": "<q>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <command>",
-"input": "<command>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <time>",
-"input": "<time>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <audio>",
-"input": "<audio>",
-"fail-if": "unknown-start-tag"},
-
-{"description": "allowed start tag <bdo>",
-"input": "<bdo>",
-"fail-if": "unknown-start-tag"}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/style-scoped-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/style-scoped-attribute.test
deleted file mode 100755
index f47795a2178..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/style-scoped-attribute.test
+++ /dev/null
@@ -1,7 +0,0 @@
-{"tests": [
-
-{"description": "invalid style scoped attribute value 'inherit'",
-"input": "<style scoped=inherit>",
-"fail-unless": "invalid-boolean-value"}
-
-]} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/tabindexattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/tabindexattribute.test
deleted file mode 100755
index 02066957b28..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/tabindexattribute.test
+++ /dev/null
@@ -1,79 +0,0 @@
-{"tests": [
-
-{"description": "valid tabindex attribute value '-1'",
-"input": "<span tabindex=-1>",
-"fail-if": "invalid-integer-value"},
-
-{"description": "valid tabindex attribute value '0'",
-"input": "<span tabindex=0>",
-"fail-if": "invalid-integer-value"},
-
-{"description": "valid tabindex attribute value '1'",
-"input": "<span tabindex=1>",
-"fail-if": "invalid-integer-value"},
-
-{"description": "valid tabindex attribute value '32768'",
-"input": "<span tabindex=32768>",
-"fail-if": "invalid-integer-value"},
-
-{"description": "valid tabindex attribute value '-32768'",
-"input": "<span tabindex=-32768>",
-"fail-if": "invalid-integer-value"},
-
-{"description": "valid tabindex attribute value with leading spaces",
-"input": "<span tabindex=' -32768'>",
-"fail-if": "invalid-integer-value"},
-
-{"description": "valid tabindex attribute value with trailing spaces",
-"input": "<span tabindex='-32768 '>",
-"fail-if": "invalid-integer-value"},
-
-{"description": "valid tabindex attribute value with trailing junk",
-"input": "<span tabindex='32768a'>",
-"fail-if": "invalid-integer-value"},
-
-{"description": "valid tabindex attribute value with trailing junk and whitespace",
-"input": "<span tabindex='32768a '>",
-"fail-if": "invalid-integer-value"},
-
-{"description": "valid tabindex attribute value with trailing whitespace and junk",
-"input": "<span tabindex='32768 a'>",
-"fail-if": "invalid-integer-value"},
-
-{"description": "valid tabindex attribute value with leading spaces",
-"input": "<span tabindex=' 32768'>",
-"fail-if": "invalid-integer-value"},
-
-{"description": "valid tabindex attribute value with leading spaces (with sign)",
-"input": "<span tabindex=' -32768'>",
-"fail-if": "invalid-integer-value"},
-
-{"description": "invalid tabindex attribute value (blank)",
-"input": "<span tabindex>",
-"fail-unless": "attribute-value-can-not-be-blank"},
-
-{"description": "invalid tabindex attribute value due to leading junk",
-"input": "<span tabindex=a1>",
-"fail-unless": "invalid-integer-value"},
-
-{"description": "invalid tabindex attribute value due to two hyphens",
-"input": "<span tabindex=--1>",
-"fail-unless": "invalid-integer-value"},
-
-{"description": "invalid tabindex attribute value due to non-numeric",
-"input": "<span tabindex=foo>",
-"fail-unless": "invalid-integer-value"},
-
-{"description": "invalid tabindex attribute value due to positive sign",
-"input": "<span tabindex=+1>",
-"fail-unless": "invalid-integer-value"},
-
-{"description": "invalid tabindex attribute value due to decimal point",
-"input": "<span tabindex=.1>",
-"fail-unless": "invalid-integer-value"},
-
-{"description": "valid tabindex attribute value with trailing decimal point",
-"input": "<span tabindex=1.0>",
-"fail-if": "invalid-integer-value"}
-
-]} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treeadapters/__init__.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treeadapters/__init__.py
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treeadapters/__init__.py
+++ /dev/null
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/__init__.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/__init__.py
deleted file mode 100644
index 6a6b2a4c45c..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/__init__.py
+++ /dev/null
@@ -1,76 +0,0 @@
-"""A collection of modules for building different kinds of tree from
-HTML documents.
-
-To create a treebuilder for a new type of tree, you need to do
-implement several things:
-
-1) A set of classes for various types of elements: Document, Doctype,
-Comment, Element. These must implement the interface of
-_base.treebuilders.Node (although comment nodes have a different
-signature for their constructor, see treebuilders.etree.Comment)
-Textual content may also be implemented as another node type, or not, as
-your tree implementation requires.
-
-2) A treebuilder object (called TreeBuilder by convention) that
-inherits from treebuilders._base.TreeBuilder. This has 4 required attributes:
-documentClass - the class to use for the bottommost node of a document
-elementClass - the class to use for HTML Elements
-commentClass - the class to use for comments
-doctypeClass - the class to use for doctypes
-It also has one required method:
-getDocument - Returns the root node of the complete document tree
-
-3) If you wish to run the unit tests, you must also create a
-testSerializer method on your treebuilder which accepts a node and
-returns a string containing Node and its children serialized according
-to the format used in the unittests
-"""
-
-from __future__ import absolute_import, division, unicode_literals
-
-from ..utils import default_etree
-
-treeBuilderCache = {}
-
-
-def getTreeBuilder(treeType, implementation=None, **kwargs):
- """Get a TreeBuilder class for various types of tree with built-in support
-
- treeType - the name of the tree type required (case-insensitive). Supported
- values are:
-
- "dom" - A generic builder for DOM implementations, defaulting to
- a xml.dom.minidom based implementation.
- "etree" - A generic builder for tree implementations exposing an
- ElementTree-like interface, defaulting to
- xml.etree.cElementTree if available and
- xml.etree.ElementTree if not.
- "lxml" - A etree-based builder for lxml.etree, handling
- limitations of lxml's implementation.
-
- implementation - (Currently applies to the "etree" and "dom" tree types). A
- module implementing the tree type e.g.
- xml.etree.ElementTree or xml.etree.cElementTree."""
-
- treeType = treeType.lower()
- if treeType not in treeBuilderCache:
- if treeType == "dom":
- from . import dom
- # Come up with a sane default (pref. from the stdlib)
- if implementation is None:
- from xml.dom import minidom
- implementation = minidom
- # NEVER cache here, caching is done in the dom submodule
- return dom.getDomModule(implementation, **kwargs).TreeBuilder
- elif treeType == "lxml":
- from . import etree_lxml
- treeBuilderCache[treeType] = etree_lxml.TreeBuilder
- elif treeType == "etree":
- from . import etree
- if implementation is None:
- implementation = default_etree
- # NEVER cache here, caching is done in the etree submodule
- return etree.getETreeModule(implementation, **kwargs).TreeBuilder
- else:
- raise ValueError("""Unrecognised treebuilder "%s" """ % treeType)
- return treeBuilderCache.get(treeType)
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/__init__.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/__init__.py
deleted file mode 100644
index 18124e75f3b..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/__init__.py
+++ /dev/null
@@ -1,57 +0,0 @@
-"""A collection of modules for iterating through different kinds of
-tree, generating tokens identical to those produced by the tokenizer
-module.
-
-To create a tree walker for a new type of tree, you need to do
-implement a tree walker object (called TreeWalker by convention) that
-implements a 'serialize' method taking a tree as sole argument and
-returning an iterator generating tokens.
-"""
-
-from __future__ import absolute_import, division, unicode_literals
-
-import sys
-
-from ..utils import default_etree
-
-treeWalkerCache = {}
-
-
-def getTreeWalker(treeType, implementation=None, **kwargs):
- """Get a TreeWalker class for various types of tree with built-in support
-
- treeType - the name of the tree type required (case-insensitive). Supported
- values are:
-
- "dom" - The xml.dom.minidom DOM implementation
- "pulldom" - The xml.dom.pulldom event stream
- "etree" - A generic walker for tree implementations exposing an
- elementtree-like interface (known to work with
- ElementTree, cElementTree and lxml.etree).
- "lxml" - Optimized walker for lxml.etree
- "genshi" - a Genshi stream
-
- implementation - (Currently applies to the "etree" tree type only). A module
- implementing the tree type e.g. xml.etree.ElementTree or
- cElementTree."""
-
- treeType = treeType.lower()
- if treeType not in treeWalkerCache:
- if treeType in ("dom", "pulldom"):
- name = "%s.%s" % (__name__, treeType)
- __import__(name)
- mod = sys.modules[name]
- treeWalkerCache[treeType] = mod.TreeWalker
- elif treeType == "genshi":
- from . import genshistream
- treeWalkerCache[treeType] = genshistream.TreeWalker
- elif treeType == "lxml":
- from . import lxmletree
- treeWalkerCache[treeType] = lxmletree.TreeWalker
- elif treeType == "etree":
- from . import etree
- if implementation is None:
- implementation = default_etree
- # XXX: NEVER cache here, caching is done in the etree submodule
- return etree.getETreeModule(implementation, **kwargs).TreeWalker
- return treeWalkerCache.get(treeType)
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/pulldom.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/pulldom.py
deleted file mode 100644
index 0b0f515fec7..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/pulldom.py
+++ /dev/null
@@ -1,63 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-from xml.dom.pulldom import START_ELEMENT, END_ELEMENT, \
- COMMENT, IGNORABLE_WHITESPACE, CHARACTERS
-
-from . import _base
-
-from ..constants import voidElements
-
-
-class TreeWalker(_base.TreeWalker):
- def __iter__(self):
- ignore_until = None
- previous = None
- for event in self.tree:
- if previous is not None and \
- (ignore_until is None or previous[1] is ignore_until):
- if previous[1] is ignore_until:
- ignore_until = None
- for token in self.tokens(previous, event):
- yield token
- if token["type"] == "EmptyTag":
- ignore_until = previous[1]
- previous = event
- if ignore_until is None or previous[1] is ignore_until:
- for token in self.tokens(previous, None):
- yield token
- elif ignore_until is not None:
- raise ValueError("Illformed DOM event stream: void element without END_ELEMENT")
-
- def tokens(self, event, next):
- type, node = event
- if type == START_ELEMENT:
- name = node.nodeName
- namespace = node.namespaceURI
- attrs = {}
- for attr in list(node.attributes.keys()):
- attr = node.getAttributeNode(attr)
- attrs[(attr.namespaceURI, attr.localName)] = attr.value
- if name in voidElements:
- for token in self.emptyTag(namespace,
- name,
- attrs,
- not next or next[1] is not node):
- yield token
- else:
- yield self.startTag(namespace, name, attrs)
-
- elif type == END_ELEMENT:
- name = node.nodeName
- namespace = node.namespaceURI
- if name not in voidElements:
- yield self.endTag(namespace, name)
-
- elif type == COMMENT:
- yield self.comment(node.nodeValue)
-
- elif type in (IGNORABLE_WHITESPACE, CHARACTERS):
- for token in self.text(node.nodeValue):
- yield token
-
- else:
- yield self.unknown(type)
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/requirements-install.sh b/tests/wpt/web-platform-tests/tools/html5lib/requirements-install.sh
deleted file mode 100755
index 5f8ba50645f..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/requirements-install.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash -e
-
-if [[ $USE_OPTIONAL != "true" && $USE_OPTIONAL != "false" ]]; then
- echo "fatal: \$USE_OPTIONAL not set to true or false. Exiting."
- exit 1
-fi
-
-pip install -r requirements-test.txt
-
-if [[ $USE_OPTIONAL == "true" && $TRAVIS_PYTHON_VERSION != "pypy" ]]; then
- if [[ $TRAVIS_PYTHON_VERSION == "2.6" ]]; then
- pip install --allow-external Genshi --allow-insecure Genshi -r requirements-optional-2.6.txt
- else
- pip install --allow-external Genshi --allow-insecure Genshi -r requirements-optional-cpython.txt
- fi
-fi
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional-2.6.txt b/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional-2.6.txt
deleted file mode 100644
index 37557ac403d..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional-2.6.txt
+++ /dev/null
@@ -1,5 +0,0 @@
--r requirements-optional-cpython.txt
-
-# Can be used to force attributes to be serialized in alphabetical
-# order.
-ordereddict
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional-cpython.txt b/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional-cpython.txt
deleted file mode 100644
index 35ed3529c2c..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional-cpython.txt
+++ /dev/null
@@ -1,5 +0,0 @@
--r requirements-optional.txt
-
-# lxml is supported with its own treebuilder ("lxml") and otherwise
-# uses the standard ElementTree support
-lxml
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional.txt b/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional.txt
deleted file mode 100644
index c6355270127..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional.txt
+++ /dev/null
@@ -1,13 +0,0 @@
--r requirements.txt
-
-# We support a Genshi treewalker that can be used to serialize Genshi
-# streams.
-genshi
-
-# DATrie can be used in place of our Python trie implementation for
-# slightly better parsing performance.
-datrie
-
-# charade can be used as a fallback in case we are unable to determine
-# the encoding of a document.
-charade
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/requirements-test.txt b/tests/wpt/web-platform-tests/tools/html5lib/requirements-test.txt
deleted file mode 100644
index d5f8088c1c1..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/requirements-test.txt
+++ /dev/null
@@ -1,5 +0,0 @@
--r requirements.txt
-
-flake8
-nose
-ordereddict # Python 2.6
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/setup.py b/tests/wpt/web-platform-tests/tools/html5lib/setup.py
deleted file mode 100644
index f75910eaf21..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/setup.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from distutils.core import setup
-import os
-import codecs
-
-classifiers=[
- 'Development Status :: 5 - Production/Stable',
- 'Intended Audience :: Developers',
- 'License :: OSI Approved :: MIT License',
- 'Operating System :: OS Independent',
- 'Programming Language :: Python',
- 'Programming Language :: Python :: 2',
- 'Programming Language :: Python :: 2.6',
- 'Programming Language :: Python :: 2.7',
- 'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.2',
- 'Programming Language :: Python :: 3.3',
- 'Topic :: Software Development :: Libraries :: Python Modules',
- 'Topic :: Text Processing :: Markup :: HTML'
- ]
-
-packages = ['html5lib'] + ['html5lib.'+name
- for name in os.listdir(os.path.join('html5lib'))
- if os.path.isdir(os.path.join('html5lib', name)) and
- not name.startswith('.') and name != 'tests']
-
-current_dir = os.path.dirname(__file__)
-with codecs.open(os.path.join(current_dir, 'README.rst'), 'r', 'utf8') as readme_file:
- with codecs.open(os.path.join(current_dir, 'CHANGES.rst'), 'r', 'utf8') as changes_file:
- long_description = readme_file.read() + '\n' + changes_file.read()
-
-setup(name='html5lib',
- version='0.9999-dev',
- url='https://github.com/html5lib/html5lib-python',
- license="MIT License",
- description='HTML parser based on the WHATWG HTML specifcation',
- long_description=long_description,
- classifiers=classifiers,
- maintainer='James Graham',
- maintainer_email='james@hoppipolla.co.uk',
- packages=packages,
- install_requires=[
- 'six',
- ],
- )
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/tox.ini b/tests/wpt/web-platform-tests/tools/html5lib/tox.ini
deleted file mode 100644
index 479f9e1f732..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/tox.ini
+++ /dev/null
@@ -1,30 +0,0 @@
-[tox]
-envlist = py26,py27,py32,py33,py34,pypy
-
-[testenv]
-deps =
- -r{toxinidir}/requirements-optional-cpython.txt
- flake8
- nose
-commands =
- {envbindir}/nosetests -q
- {toxinidir}/flake8-run.sh
-install_command =
- pip install {opts} {packages}
-
-[testenv:pypy]
-# lxml doesn't work and datrie doesn't make sense
-# (it's slower than the pure-python version)
-deps =
- charade
- flake8
- Genshi
- nose
- six
-
-[testenv:py26]
-basepython = python2.6
-deps =
- -r{toxinidir}/requirements-optional-2.6.txt
- flake8
- nose
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/utils/iana_parse.py b/tests/wpt/web-platform-tests/tools/html5lib/utils/iana_parse.py
deleted file mode 100644
index 6dde94c2829..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/utils/iana_parse.py
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env python
-import sys
-import urllib.request, urllib.error, urllib.parse
-import codecs
-
-def main():
- encodings = []
- f = urllib.request.urlopen(sys.argv[1])
- for line in f:
- if line.startswith("Name: ") or line.startswith("Alias: "):
- enc = line.split()[1]
- try:
- codecs.lookup(enc)
- if enc.lower not in encodings:
- encodings.append(enc.lower())
- except LookupError:
- pass
- sys.stdout.write("encodings = frozenset((\n")
- for enc in encodings:
- sys.stdout.write(' "%s",\n'%enc)
- sys.stdout.write(' ))')
-
-if __name__ == "__main__":
- main() \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/utils/spider.py b/tests/wpt/web-platform-tests/tools/html5lib/utils/spider.py
deleted file mode 100644
index a7b8031974b..00000000000
--- a/tests/wpt/web-platform-tests/tools/html5lib/utils/spider.py
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/usr/bin/env python
-"""Spider to try and find bugs in the parser. Requires httplib2 and elementtree
-
-usage:
-import spider
-s = spider.Spider()
-s.spider("http://www.google.com", maxURLs=100)
-"""
-
-import urllib.request, urllib.error, urllib.parse
-import urllib.robotparser
-import md5
-
-import httplib2
-
-import html5lib
-from html5lib.treebuilders import etree
-
-class Spider(object):
- def __init__(self):
- self.unvisitedURLs = set()
- self.visitedURLs = set()
- self.buggyURLs=set()
- self.robotParser = urllib.robotparser.RobotFileParser()
- self.contentDigest = {}
- self.http = httplib2.Http(".cache")
-
- def run(self, initialURL, maxURLs=1000):
- urlNumber = 0
- self.visitedURLs.add(initialURL)
- content = self.loadURL(initialURL)
- while maxURLs is None or urlNumber < maxURLs:
- if content is not None:
- self.parse(content)
- urlNumber += 1
- if not self.unvisitedURLs:
- break
- content = self.loadURL(self.unvisitedURLs.pop())
-
- def parse(self, content):
- failed = False
- p = html5lib.HTMLParser(tree=etree.TreeBuilder)
- try:
- tree = p.parse(content)
- except:
- self.buggyURLs.add(self.currentURL)
- failed = True
- print("BUGGY:", self.currentURL)
- self.visitedURLs.add(self.currentURL)
- if not failed:
- self.updateURLs(tree)
-
- def loadURL(self, url):
- resp, content = self.http.request(url, "GET")
- self.currentURL = url
- digest = md5.md5(content).hexdigest()
- if digest in self.contentDigest:
- content = None
- self.visitedURLs.add(url)
- else:
- self.contentDigest[digest] = url
-
- if resp['status'] != "200":
- content = None
-
- return content
-
- def updateURLs(self, tree):
- """Take all the links in the current document, extract the URLs and
- update the list of visited and unvisited URLs according to whether we
- have seen them before or not"""
- urls = set()
- #Remove all links we have already visited
- for link in tree.findall(".//a"):
- try:
- url = urllib.parse.urldefrag(link.attrib['href'])[0]
- if (url and url not in self.unvisitedURLs and url
- not in self.visitedURLs):
- urls.add(url)
- except KeyError:
- pass
-
- #Remove all non-http URLs and a dd a sutiable base URL where that is
- #missing
- newUrls = set()
- for url in urls:
- splitURL = list(urllib.parse.urlsplit(url))
- if splitURL[0] != "http":
- continue
- if splitURL[1] == "":
- splitURL[1] = urllib.parse.urlsplit(self.currentURL)[1]
- newUrls.add(urllib.parse.urlunsplit(splitURL))
- urls = newUrls
-
- responseHeaders = {}
- #Now we want to find the content types of the links we haven't visited
- for url in urls:
- try:
- resp, content = self.http.request(url, "HEAD")
- responseHeaders[url] = resp
- except AttributeError as KeyError:
- #Don't know why this happens
- pass
-
-
- #Remove links not of content-type html or pages not found
- #XXX - need to deal with other status codes?
- toVisit = set([url for url in urls if url in responseHeaders and
- "html" in responseHeaders[url]['content-type'] and
- responseHeaders[url]['status'] == "200"])
-
- #Now check we are allowed to spider the page
- for url in toVisit:
- robotURL = list(urllib.parse.urlsplit(url)[:2])
- robotURL.extend(["robots.txt", "", ""])
- robotURL = urllib.parse.urlunsplit(robotURL)
- self.robotParser.set_url(robotURL)
- if not self.robotParser.can_fetch("*", url):
- toVisit.remove(url)
-
- self.visitedURLs.update(urls)
- self.unvisitedURLs.update(toVisit)
diff --git a/tests/wpt/web-platform-tests/tools/localpaths.py b/tests/wpt/web-platform-tests/tools/localpaths.py
index 8509114b939..0c4f018ae68 100644
--- a/tests/wpt/web-platform-tests/tools/localpaths.py
+++ b/tests/wpt/web-platform-tests/tools/localpaths.py
@@ -5,14 +5,15 @@ here = os.path.abspath(os.path.split(__file__)[0])
repo_root = os.path.abspath(os.path.join(here, os.pardir))
sys.path.insert(0, os.path.join(here))
-sys.path.insert(0, os.path.join(here, "six"))
-sys.path.insert(0, os.path.join(here, "html5lib"))
sys.path.insert(0, os.path.join(here, "wptserve"))
sys.path.insert(0, os.path.join(here, "pywebsocket"))
sys.path.insert(0, os.path.join(here, "third_party", "attrs", "src"))
sys.path.insert(0, os.path.join(here, "third_party", "funcsigs"))
+sys.path.insert(0, os.path.join(here, "third_party", "html5lib"))
sys.path.insert(0, os.path.join(here, "third_party", "pluggy"))
sys.path.insert(0, os.path.join(here, "third_party", "py"))
sys.path.insert(0, os.path.join(here, "third_party", "pytest"))
+sys.path.insert(0, os.path.join(here, "third_party", "six"))
+sys.path.insert(0, os.path.join(here, "third_party", "webencodings"))
sys.path.insert(0, os.path.join(here, "webdriver"))
sys.path.insert(0, os.path.join(here, "wptrunner"))
diff --git a/tests/wpt/web-platform-tests/tools/manifest/sourcefile.py b/tests/wpt/web-platform-tests/tools/manifest/sourcefile.py
index 3b4abbc29bf..c4d8e5e00df 100644
--- a/tests/wpt/web-platform-tests/tools/manifest/sourcefile.py
+++ b/tests/wpt/web-platform-tests/tools/manifest/sourcefile.py
@@ -132,10 +132,20 @@ def global_variant_url(url, suffix):
return replace_end(url, ".js", suffix)
+def _parse_xml(f):
+ try:
+ # raises ValueError with an unsupported encoding,
+ # ParseError when there's an undefined entity
+ return ElementTree.parse(f)
+ except (ValueError, ElementTree.ParseError):
+ f.seek(0)
+ return ElementTree.parse(f, XMLParser.XMLParser())
+
+
class SourceFile(object):
- parsers = {"html":lambda x:html5lib.parse(x, treebuilder="etree"),
- "xhtml":lambda x:ElementTree.parse(x, XMLParser.XMLParser()),
- "svg":lambda x:ElementTree.parse(x, XMLParser.XMLParser())}
+ parsers = {"html":lambda x:html5lib.parse(x, treebuilder="etree", useChardet=False),
+ "xhtml":_parse_xml,
+ "svg":_parse_xml}
root_dir_non_test = set(["common"])
diff --git a/tests/wpt/web-platform-tests/tools/six/.gitignore b/tests/wpt/web-platform-tests/tools/six/.gitignore
deleted file mode 100644
index 809b2e84eef..00000000000
--- a/tests/wpt/web-platform-tests/tools/six/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-*#
-*.py[co]
-*.sw[po]
-*~
-MANIFEST
-documentation/_build
-\#*
-.tox
-six.egg-info
diff --git a/tests/wpt/web-platform-tests/tools/six/.hgignore b/tests/wpt/web-platform-tests/tools/six/.hgignore
deleted file mode 100644
index 37232e73382..00000000000
--- a/tests/wpt/web-platform-tests/tools/six/.hgignore
+++ /dev/null
@@ -1,8 +0,0 @@
-syntax: glob
-*.pyc
-dist
-MANIFEST
-documentation/_build
-.tox
-.gitignore
-six.egg-info
diff --git a/tests/wpt/web-platform-tests/tools/six/CONTRIBUTORS b/tests/wpt/web-platform-tests/tools/six/CONTRIBUTORS
deleted file mode 100644
index 0cbd0a4026e..00000000000
--- a/tests/wpt/web-platform-tests/tools/six/CONTRIBUTORS
+++ /dev/null
@@ -1,22 +0,0 @@
-The primary author and maintainer of six is Benjamin Peterson. He would like to
-acknowledge the following people who submitted bug reports, pull requests, and
-otherwise worked to improve six:
-
-Marc Abramowitz
-Alexander Artemenko
-Aymeric Augustin
-Ned Batchelder
-Jason R. Coombs
-Julien Danjou
-Ben Darnell
-Ben Davis
-Joshua Harlow
-Anselm Kruis
-Alexander Lukanin
-James Mills
-Sridhar Ratnakumar
-Erik Rose
-Peter Ruibal
-Miroslav Shubernetskiy
-
-If you think you belong on this list, please let me know! --Benjamin
diff --git a/tests/wpt/web-platform-tests/tools/six/README b/tests/wpt/web-platform-tests/tools/six/README
deleted file mode 100644
index 32bab7ceecf..00000000000
--- a/tests/wpt/web-platform-tests/tools/six/README
+++ /dev/null
@@ -1,16 +0,0 @@
-Six is a Python 2 and 3 compatibility library. It provides utility functions
-for smoothing over the differences between the Python versions with the goal of
-writing Python code that is compatible on both Python versions. See the
-documentation for more information on what is provided.
-
-Six supports every Python version since 2.5. It is contained in only one Python
-file, so it can be easily copied into your project. (The copyright and license
-notice must be retained.)
-
-Online documentation is at http://pythonhosted.org/six/.
-
-Bugs can be reported to https://bitbucket.org/gutworth/six. The code can also
-be found there.
-
-For questions about six or porting in general, email the python-porting mailing
-list: http://mail.python.org/mailman/listinfo/python-porting
diff --git a/tests/wpt/web-platform-tests/tools/six/setup.cfg b/tests/wpt/web-platform-tests/tools/six/setup.cfg
deleted file mode 100644
index 5e4090017a9..00000000000
--- a/tests/wpt/web-platform-tests/tools/six/setup.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[wheel]
-universal = 1
diff --git a/tests/wpt/web-platform-tests/tools/six/setup.py b/tests/wpt/web-platform-tests/tools/six/setup.py
deleted file mode 100644
index b0cca52d4a8..00000000000
--- a/tests/wpt/web-platform-tests/tools/six/setup.py
+++ /dev/null
@@ -1,32 +0,0 @@
-from __future__ import with_statement
-
-try:
- from setuptools import setup
-except ImportError:
- from distutils.core import setup
-
-import six
-
-six_classifiers = [
- "Programming Language :: Python :: 2",
- "Programming Language :: Python :: 3",
- "Intended Audience :: Developers",
- "License :: OSI Approved :: MIT License",
- "Topic :: Software Development :: Libraries",
- "Topic :: Utilities",
-]
-
-with open("README", "r") as fp:
- six_long_description = fp.read()
-
-setup(name="six",
- version=six.__version__,
- author="Benjamin Peterson",
- author_email="benjamin@python.org",
- url="http://pypi.python.org/pypi/six/",
- py_modules=["six"],
- description="Python 2 and 3 compatibility utilities",
- long_description=six_long_description,
- license="MIT",
- classifiers=six_classifiers
- )
diff --git a/tests/wpt/web-platform-tests/tools/six/tox.ini b/tests/wpt/web-platform-tests/tools/six/tox.ini
deleted file mode 100644
index b29b31a69e9..00000000000
--- a/tests/wpt/web-platform-tests/tools/six/tox.ini
+++ /dev/null
@@ -1,12 +0,0 @@
-[tox]
-envlist=py25,py26,py27,py31,py32,py33,py34,pypy
-indexserver=
- default = http://pypi.python.org/simple
- testrun = http://pypi.testrun.org
-
-[testenv]
-deps=pytest
-commands= py.test -rfsxX {posargs}
-
-[pytest]
-minversion=2.2.0
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/.appveyor.yml b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.appveyor.yml
new file mode 100644
index 00000000000..984e2b7fa5e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.appveyor.yml
@@ -0,0 +1,31 @@
+# To activate, change the Appveyor settings to use `.appveyor.yml`.
+environment:
+ global:
+ PATH: "C:\\Python27\\Scripts\\;%PATH%"
+ PYTEST_COMMAND: "coverage run -m pytest"
+ matrix:
+ - TOXENV: py27-base
+ - TOXENV: py27-optional
+ - TOXENV: py33-base
+ - TOXENV: py33-optional
+ - TOXENV: py34-base
+ - TOXENV: py34-optional
+ - TOXENV: py35-base
+ - TOXENV: py35-optional
+ - TOXENV: py36-base
+ - TOXENV: py36-optional
+
+install:
+ - git submodule update --init --recursive
+ - python -m pip install tox codecov
+
+build: off
+
+test_script:
+ - tox
+
+after_test:
+ - python debug-info.py
+
+on_success:
+ - codecov
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/.coveragerc b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.coveragerc
new file mode 100644
index 00000000000..6facf35239f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.coveragerc
@@ -0,0 +1,8 @@
+[run]
+branch = True
+source = html5lib
+
+[paths]
+source =
+ html5lib
+ .tox/*/lib/python*/site-packages/html5lib
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/.gitignore b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.gitignore
new file mode 100644
index 00000000000..ecd62df31b9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.gitignore
@@ -0,0 +1,85 @@
+# Copyright (c) 2014 GitHub, Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+env/
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*,cover
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+
+# Sphinx documentation
+doc/_build/
+
+# PyBuilder
+target/
+
+# Generated by parse.py -p
+stats.prof
+
+# IDE
+.idea
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/.gitmodules b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.gitmodules
index dbca470328d..dbca470328d 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/.gitmodules
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.gitmodules
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/.prospector.yaml b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.prospector.yaml
new file mode 100644
index 00000000000..7e8efe1a629
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.prospector.yaml
@@ -0,0 +1,21 @@
+strictness: veryhigh
+doc-warnings: false
+test-warnings: false
+
+max-line-length: 139
+
+requirements:
+ - requirements.txt
+ - requirements-test.txt
+ - requirements-optional.txt
+
+ignore-paths:
+ - parse.py
+ - utils/
+
+python-targets:
+ - 2
+ - 3
+
+mccabe:
+ run: false
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/.pylintrc b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.pylintrc
new file mode 100644
index 00000000000..ea74d5db3ff
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.pylintrc
@@ -0,0 +1,10 @@
+[MASTER]
+ignore=tests
+
+[MESSAGES CONTROL]
+# messages up to fixme should probably be fixed somehow
+disable = redefined-builtin,attribute-defined-outside-init,anomalous-backslash-in-string,no-self-use,redefined-outer-name,bad-continuation,wrong-import-order,superfluous-parens,no-member,duplicate-code,super-init-not-called,abstract-method,property-on-old-class,wrong-import-position,no-name-in-module,no-init,bad-mcs-classmethod-argument,bad-classmethod-argument,fixme,invalid-name,import-error,too-few-public-methods,too-many-ancestors,too-many-arguments,too-many-boolean-expressions,too-many-branches,too-many-instance-attributes,too-many-locals,too-many-lines,too-many-public-methods,too-many-return-statements,too-many-statements,missing-docstring,line-too-long,locally-disabled,locally-enabled,bad-builtin,deprecated-lambda
+
+[FORMAT]
+max-line-length=139
+single-line-if-stmt=no
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/.pytest.expect b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.pytest.expect
new file mode 100644
index 00000000000..0fa326f0354
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.pytest.expect
@@ -0,0 +1,1322 @@
+pytest-expect file v1
+(2, 7, 11, 'final', 0)
+b'html5lib/tests/test_encoding.py::test_encoding::[110]': FAIL
+b'html5lib/tests/test_encoding.py::test_encoding::[111]': FAIL
+u'html5lib/tests/testdata/tokenizer/test2.test::0::dataState': FAIL
+u'html5lib/tests/testdata/tokenizer/test3.test::228::dataState': FAIL
+u'html5lib/tests/testdata/tokenizer/test3.test::231::dataState': FAIL
+u'html5lib/tests/testdata/tokenizer/test3.test::232::dataState': FAIL
+u'html5lib/tests/testdata/tokenizer/test3.test::234::dataState': FAIL
+u'html5lib/tests/testdata/tokenizer/test3.test::235::dataState': FAIL
+u'html5lib/tests/testdata/tokenizer/test3.test::237::dataState': FAIL
+u'html5lib/tests/testdata/tokenizer/test3.test::240::dataState': FAIL
+u'html5lib/tests/testdata/tokenizer/test3.test::241::dataState': FAIL
+u'html5lib/tests/testdata/tokenizer/test3.test::243::dataState': FAIL
+u'html5lib/tests/testdata/tokenizer/test3.test::244::dataState': FAIL
+u'html5lib/tests/testdata/tokenizer/test3.test::246::dataState': FAIL
+u'html5lib/tests/testdata/tokenizer/test3.test::258::dataState': FAIL
+u'html5lib/tests/testdata/tokenizer/test3.test::656::dataState': FAIL
+u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::0::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::0::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::0::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::0::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::0::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::0::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::0::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::0::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::1::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::1::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::1::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::1::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::1::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::1::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::1::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::1::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::2::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::2::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::2::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::2::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::2::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::2::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::2::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::2::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::3::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::3::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::3::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::3::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::3::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::3::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::3::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/isindex.dat::3::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::0::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::0::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::0::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::0::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::0::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::0::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::0::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::0::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::10::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::10::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::10::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::10::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::10::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::10::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::10::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::10::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::12::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::12::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::12::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::12::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::12::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::12::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::12::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::12::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::15::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::15::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::15::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::15::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::15::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::15::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::15::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::15::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::17::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::17::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::17::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::17::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::17::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::17::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::17::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::17::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::1::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::1::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::1::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::1::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::1::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::1::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::1::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::1::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::20::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::20::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::20::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::20::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::20::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::20::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::20::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::20::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::2::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::2::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::2::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::2::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::2::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::2::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::2::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::2::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::3::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::3::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::3::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::3::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::3::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::3::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::3::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::3::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::5::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::5::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::5::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::5::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::5::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::5::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::5::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::5::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::7::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::7::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::7::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::7::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::7::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::7::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::7::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/ruby.dat::7::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::0::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::0::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::0::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::0::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::0::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::0::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::0::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::0::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::100::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::100::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::100::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::100::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::100::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::100::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::100::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::100::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::101::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::101::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::101::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::101::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::101::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::101::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::101::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::101::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::102::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::102::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::102::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::102::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::102::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::102::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::102::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::102::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::103::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::103::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::103::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::103::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::103::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::103::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::103::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::103::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::104::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::104::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::104::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::104::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::104::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::104::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::104::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::104::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::105::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::105::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::105::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::105::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::105::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::105::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::105::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::105::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::106::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::106::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::106::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::106::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::106::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::106::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::106::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::106::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::107::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::107::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::107::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::107::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::107::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::107::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::107::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::107::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::10::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::10::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::10::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::10::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::10::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::10::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::10::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::10::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::11::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::11::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::11::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::11::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::11::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::11::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::11::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::11::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::12::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::12::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::12::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::12::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::12::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::12::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::12::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::12::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::13::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::13::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::13::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::13::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::13::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::13::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::13::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::13::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::14::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::14::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::14::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::14::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::14::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::14::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::14::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::14::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::15::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::15::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::15::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::15::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::15::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::15::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::15::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::15::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::16::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::16::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::16::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::16::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::16::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::16::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::16::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::16::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::17::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::17::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::17::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::17::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::17::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::17::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::17::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::17::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::18::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::18::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::18::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::18::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::18::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::18::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::18::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::18::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::19::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::19::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::19::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::19::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::19::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::19::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::19::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::19::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::1::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::1::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::1::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::1::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::1::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::1::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::1::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::1::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::20::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::20::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::20::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::20::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::20::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::20::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::20::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::20::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::21::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::21::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::21::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::21::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::21::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::21::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::21::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::21::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::22::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::22::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::22::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::22::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::22::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::22::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::22::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::22::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::23::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::23::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::23::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::23::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::23::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::23::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::23::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::23::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::24::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::24::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::24::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::24::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::24::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::24::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::24::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::24::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::25::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::25::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::25::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::25::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::25::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::25::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::25::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::25::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::26::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::26::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::26::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::26::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::26::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::26::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::26::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::26::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::27::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::27::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::27::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::27::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::27::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::27::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::27::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::27::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::28::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::28::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::28::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::28::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::28::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::28::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::28::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::28::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::29::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::29::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::29::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::29::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::29::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::29::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::29::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::29::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::2::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::2::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::2::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::2::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::2::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::2::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::2::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::2::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::30::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::30::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::30::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::30::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::30::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::30::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::30::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::30::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::31::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::31::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::31::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::31::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::31::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::31::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::31::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::31::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::32::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::32::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::32::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::32::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::32::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::32::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::32::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::32::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::33::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::33::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::33::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::33::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::33::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::33::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::33::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::33::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::34::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::34::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::34::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::34::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::34::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::34::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::34::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::34::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::35::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::35::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::35::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::35::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::35::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::35::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::35::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::35::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::36::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::36::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::36::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::36::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::36::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::36::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::36::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::36::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::37::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::37::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::37::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::37::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::37::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::37::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::37::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::37::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::38::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::38::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::38::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::38::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::38::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::38::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::38::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::38::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::3::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::3::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::3::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::3::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::3::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::3::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::3::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::3::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::40::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::40::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::40::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::40::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::40::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::40::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::40::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::40::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::41::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::41::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::41::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::41::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::41::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::41::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::41::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::41::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::42::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::42::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::42::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::42::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::42::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::42::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::42::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::42::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::43::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::43::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::43::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::43::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::43::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::43::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::43::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::43::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::44::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::44::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::44::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::44::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::44::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::44::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::44::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::44::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::45::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::45::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::45::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::45::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::45::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::45::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::45::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::45::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::46::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::46::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::46::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::46::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::46::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::46::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::46::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::46::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::47::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::47::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::47::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::47::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::47::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::47::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::47::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::47::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::48::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::48::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::48::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::48::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::48::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::48::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::48::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::48::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::49::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::49::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::49::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::49::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::49::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::49::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::49::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::49::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::4::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::4::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::4::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::4::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::4::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::4::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::4::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::4::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::50::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::50::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::50::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::50::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::50::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::50::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::50::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::50::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::51::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::51::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::51::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::51::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::51::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::51::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::51::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::51::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::52::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::52::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::52::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::52::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::52::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::52::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::52::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::52::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::53::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::53::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::53::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::53::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::53::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::53::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::53::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::53::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::54::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::54::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::54::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::54::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::54::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::54::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::54::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::54::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::55::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::55::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::55::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::55::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::55::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::55::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::55::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::55::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::56::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::56::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::56::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::56::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::56::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::56::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::56::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::56::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::57::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::57::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::57::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::57::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::57::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::57::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::57::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::57::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::58::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::58::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::58::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::58::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::58::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::58::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::58::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::58::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::59::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::59::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::59::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::59::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::59::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::59::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::59::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::59::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::5::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::5::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::5::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::5::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::5::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::5::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::5::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::5::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::60::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::60::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::60::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::60::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::60::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::60::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::60::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::60::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::61::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::61::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::61::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::61::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::61::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::61::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::61::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::61::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::62::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::62::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::62::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::62::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::62::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::62::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::62::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::62::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::63::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::63::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::63::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::63::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::63::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::63::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::63::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::63::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::64::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::64::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::64::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::64::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::64::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::64::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::64::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::64::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::65::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::65::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::65::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::65::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::65::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::65::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::65::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::65::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::66::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::66::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::66::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::66::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::66::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::66::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::66::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::66::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::67::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::67::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::67::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::67::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::67::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::67::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::67::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::67::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::68::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::68::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::68::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::68::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::68::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::68::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::68::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::68::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::69::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::69::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::69::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::69::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::69::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::69::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::69::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::69::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::6::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::6::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::6::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::6::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::6::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::6::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::6::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::6::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::70::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::70::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::70::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::70::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::70::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::70::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::70::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::70::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::71::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::71::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::71::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::71::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::71::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::71::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::71::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::71::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::72::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::72::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::72::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::72::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::72::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::72::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::72::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::72::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::73::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::73::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::73::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::73::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::73::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::73::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::73::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::73::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::74::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::74::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::74::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::74::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::74::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::74::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::74::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::74::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::75::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::75::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::75::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::75::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::75::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::75::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::75::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::75::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::76::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::76::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::76::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::76::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::76::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::76::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::76::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::76::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::77::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::77::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::77::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::77::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::77::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::77::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::77::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::77::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::78::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::78::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::78::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::78::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::78::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::78::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::78::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::78::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::79::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::79::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::79::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::79::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::79::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::79::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::79::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::79::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::80::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::80::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::80::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::80::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::80::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::80::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::80::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::80::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::81::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::81::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::81::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::81::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::81::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::81::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::81::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::81::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::82::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::82::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::82::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::82::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::82::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::82::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::82::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::82::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::83::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::83::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::83::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::83::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::83::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::83::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::83::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::83::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::84::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::84::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::84::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::84::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::84::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::84::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::84::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::84::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::85::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::85::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::85::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::85::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::85::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::85::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::85::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::85::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::86::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::86::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::86::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::86::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::86::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::86::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::86::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::86::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::87::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::87::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::87::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::87::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::87::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::87::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::87::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::87::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::88::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::88::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::88::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::88::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::88::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::88::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::88::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::88::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::89::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::89::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::89::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::89::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::89::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::89::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::89::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::89::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::8::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::8::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::8::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::8::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::8::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::8::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::8::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::8::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::90::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::90::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::90::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::90::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::90::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::90::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::90::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::90::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::91::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::91::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::91::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::91::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::91::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::91::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::91::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::91::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::92::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::92::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::92::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::92::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::92::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::92::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::92::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::92::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::93::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::93::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::93::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::93::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::93::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::93::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::93::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::93::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::94::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::94::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::94::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::94::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::94::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::94::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::94::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::94::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::95::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::95::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::95::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::95::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::95::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::95::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::95::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::95::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::96::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::96::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::96::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::96::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::96::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::96::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::96::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::96::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::97::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::97::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::97::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::97::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::97::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::97::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::97::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::97::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::98::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::98::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::98::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::98::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::98::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::98::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::98::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::98::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::99::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::99::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::99::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::99::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::99::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::99::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::99::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::99::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::9::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::9::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::9::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::9::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::9::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::9::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::9::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/template.dat::9::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::2::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::2::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::2::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::2::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::2::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::2::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::2::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::2::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::4::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::4::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::4::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::4::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::4::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::4::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::4::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::4::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::5::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::5::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::5::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::5::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::5::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::5::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::5::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::5::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::6::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::6::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::6::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::6::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::6::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::6::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::6::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests11.dat::6::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::14::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::14::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::14::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::14::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::14::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::14::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::14::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::14::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::17::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::17::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::17::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::17::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::17::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::17::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::17::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::17::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::7::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::7::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::7::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::7::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::7::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::7::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::7::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests19.dat::7::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests2.dat::6::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests2.dat::6::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests2.dat::6::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests2.dat::6::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests2.dat::6::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests2.dat::6::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests2.dat::6::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests2.dat::6::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests2.dat::7::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests2.dat::7::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests2.dat::7::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests2.dat::7::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests2.dat::7::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests2.dat::7::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests2.dat::7::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests2.dat::7::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests25.dat::7::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests25.dat::7::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests25.dat::7::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests25.dat::7::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests25.dat::7::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests25.dat::7::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/tests25.dat::7::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/tests25.dat::7::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::lxml::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::DOM::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::DOM::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::ElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::ElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::cElementTree::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::cElementTree::parser::void-namespace': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::lxml::parser::namespaced': FAIL
+u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::lxml::parser::void-namespace': FAIL
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/.travis.yml b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.travis.yml
new file mode 100644
index 00000000000..5727e0947e2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.travis.yml
@@ -0,0 +1,32 @@
+language: python
+python:
+ - "pypy"
+ - "3.6"
+ - "3.5"
+ - "3.4"
+ - "3.3"
+ - "2.7"
+
+sudo: false
+
+cache: pip
+
+env:
+ global:
+ - PYTEST_COMMAND="coverage run -m pytest"
+ matrix:
+ - TOXENV=optional
+ - TOXENV=base
+ - TOXENV=six19-optional
+
+install:
+ - pip install tox codecov
+
+script:
+ - tox
+
+after_script:
+ - python debug-info.py
+
+after_success:
+ - codecov
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/AUTHORS.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/AUTHORS.rst
index 4148a6ed262..fc635dea75b 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/AUTHORS.rst
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/AUTHORS.rst
@@ -6,6 +6,7 @@ Credits
- James Graham
- Geoffrey Sneddon
- Łukasz Langa
+- Will Kahn-Greene
Patches and suggestions
@@ -16,19 +17,50 @@ Patches and suggestions
- Lachlan Hunt
- lantis63
- Sam Ruby
-- Tim Fletcher
- Thomas Broyer
+- Tim Fletcher
- Mark Pilgrim
-- Philip Taylor
- Ryan King
+- Philip Taylor
- Edward Z. Yang
- fantasai
- Philip Jägenstedt
- Ms2ger
+- Mohammad Taha Jahangir
- Andy Wingo
- Andreas Madsack
- Karim Valiev
-- Mohammad Taha Jahangir
- Juan Carlos Garcia Segovia
- Mike West
- Marc DM
+- Simon Sapin
+- Michael[tm] Smith
+- Ritwik Gupta
+- Marc Abramowitz
+- Tony Lopes
+- lilbludevil
+- Kevin
+- Drew Hubl
+- Austin Kumbera
+- Jim Baker
+- Jon Dufresne
+- Donald Stufft
+- Alex Gaynor
+- Nik Nyby
+- Jakub Wilk
+- Sigmund Cherem
+- Gabi Davar
+- Florian Mounier
+- neumond
+- Vitalik Verhovodov
+- Kovid Goyal
+- Adam Chainz
+- John Vandenberg
+- Eric Amorde
+- Benedikt Morbach
+- Jonathan Vanasco
+- Tom Most
+- Ville Skyttä
+- Hugo van Kemenade
+- Mark Vasilkov
+
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/CHANGES.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/CHANGES.rst
new file mode 100644
index 00000000000..82605a216b2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/CHANGES.rst
@@ -0,0 +1,335 @@
+Change Log
+----------
+
+1.0.1
+~~~~~
+
+Released on December 7, 2017
+
+Breaking changes:
+
+* Drop support for Python 2.6. (#330) (Thank you, Hugo, Will Kahn-Greene!)
+* Remove ``utils/spider.py`` (#353) (Thank you, Jon Dufresne!)
+
+Features:
+
+* Improve documentation. (#300, #307) (Thank you, Jon Dufresne, Tom Most,
+ Will Kahn-Greene!)
+* Add iframe seamless boolean attribute. (Thank you, Ritwik Gupta!)
+* Add itemscope as a boolean attribute. (#194) (Thank you, Jonathan Vanasco!)
+* Support Python 3.6. (#333) (Thank you, Jon Dufresne!)
+* Add CI support for Windows using AppVeyor. (Thank you, John Vandenberg!)
+* Improve testing and CI and add code coverage (#323, #334), (Thank you, Jon
+ Dufresne, John Vandenberg, Geoffrey Sneddon, Will Kahn-Greene!)
+* Semver-compliant version number.
+
+Bug fixes:
+
+* Add support for setuptools < 18.5 to support environment markers. (Thank you,
+ John Vandenberg!)
+* Add explicit dependency for six >= 1.9. (Thank you, Eric Amorde!)
+* Fix regexes to work with Python 3.7 regex adjustments. (#318, #379) (Thank
+ you, Benedikt Morbach, Ville Skyttä, Mark Vasilkov!)
+* Fix alphabeticalattributes filter namespace bug. (#324) (Thank you, Will
+ Kahn-Greene!)
+* Include license file in generated wheel package. (#350) (Thank you, Jon
+ Dufresne!)
+* Fix annotation-xml typo. (#339) (Thank you, Will Kahn-Greene!)
+* Allow uppercase hex chararcters in CSS colour check. (#377) (Thank you,
+ Komal Dembla, Hugo!)
+
+
+1.0
+~~~
+
+Released and unreleased on December 7, 2017. Badly packaged release.
+
+
+0.999999999/1.0b10
+~~~~~~~~~~~~~~~~~~
+
+Released on July 15, 2016
+
+* Fix attribute order going to the tree builder to be document order
+ instead of reverse document order(!).
+
+
+0.99999999/1.0b9
+~~~~~~~~~~~~~~~~
+
+Released on July 14, 2016
+
+* **Added ordereddict as a mandatory dependency on Python 2.6.**
+
+* Added ``lxml``, ``genshi``, ``datrie``, ``charade``, and ``all``
+ extras that will do the right thing based on the specific
+ interpreter implementation.
+
+* Now requires the ``mock`` package for the testsuite.
+
+* Cease supporting DATrie under PyPy.
+
+* **Remove PullDOM support, as this hasn't ever been properly
+ tested, doesn't entirely work, and as far as I can tell is
+ completely unused by anyone.**
+
+* Move testsuite to ``py.test``.
+
+* **Fix #124: move to webencodings for decoding the input byte stream;
+ this makes html5lib compliant with the Encoding Standard, and
+ introduces a required dependency on webencodings.**
+
+* **Cease supporting Python 3.2 (in both CPython and PyPy forms).**
+
+* **Fix comments containing double-dash with lxml 3.5 and above.**
+
+* **Use scripting disabled by default (as we don't implement
+ scripting).**
+
+* **Fix #11, avoiding the XSS bug potentially caused by serializer
+ allowing attribute values to be escaped out of in old browser versions,
+ changing the quote_attr_values option on serializer to take one of
+ three values, "always" (the old True value), "legacy" (the new option,
+ and the new default), and "spec" (the old False value, and the old
+ default).**
+
+* **Fix #72 by rewriting the sanitizer to apply only to treewalkers
+ (instead of the tokenizer); as such, this will require amending all
+ callers of it to use it via the treewalker API.**
+
+* **Drop support of charade, now that chardet is supported once more.**
+
+* **Replace the charset keyword argument on parse and related methods
+ with a set of keyword arguments: override_encoding, transport_encoding,
+ same_origin_parent_encoding, likely_encoding, and default_encoding.**
+
+* **Move filters._base, treebuilder._base, and treewalkers._base to .base
+ to clarify their status as public.**
+
+* **Get rid of the sanitizer package. Merge sanitizer.sanitize into the
+ sanitizer.htmlsanitizer module and move that to sanitizer. This means
+ anyone who used sanitizer.sanitize or sanitizer.HTMLSanitizer needs no
+ code changes.**
+
+* **Rename treewalkers.lxmletree to .etree_lxml and
+ treewalkers.genshistream to .genshi to have a consistent API.**
+
+* Move a whole load of stuff (inputstream, ihatexml, trie, tokenizer,
+ utils) to be underscore prefixed to clarify their status as private.
+
+
+0.9999999/1.0b8
+~~~~~~~~~~~~~~~
+
+Released on September 10, 2015
+
+* Fix #195: fix the sanitizer to drop broken URLs (it threw an
+ exception between 0.9999 and 0.999999).
+
+
+0.999999/1.0b7
+~~~~~~~~~~~~~~
+
+Released on July 7, 2015
+
+* Fix #189: fix the sanitizer to allow relative URLs again (as it did
+ prior to 0.9999/1.0b5).
+
+
+0.99999/1.0b6
+~~~~~~~~~~~~~
+
+Released on April 30, 2015
+
+* Fix #188: fix the sanitizer to not throw an exception when sanitizing
+ bogus data URLs.
+
+
+0.9999/1.0b5
+~~~~~~~~~~~~
+
+Released on April 29, 2015
+
+* Fix #153: Sanitizer fails to treat some attributes as URLs. Despite how
+ this sounds, this has no known security implications. No known version
+ of IE (5.5 to current), Firefox (3 to current), Safari (6 to current),
+ Chrome (1 to current), or Opera (12 to current) will run any script
+ provided in these attributes.
+
+* Pass error message to the ParseError exception in strict parsing mode.
+
+* Allow data URIs in the sanitizer, with a whitelist of content-types.
+
+* Add support for Python implementations that don't support lone
+ surrogates (read: Jython). Fixes #2.
+
+* Remove localization of error messages. This functionality was totally
+ unused (and untested that everything was localizable), so we may as
+ well follow numerous browsers in not supporting translating technical
+ strings.
+
+* Expose treewalkers.pprint as a public API.
+
+* Add a documentEncoding property to HTML5Parser, fix #121.
+
+
+0.999
+~~~~~
+
+Released on December 23, 2013
+
+* Fix #127: add work-around for CPython issue #20007: .read(0) on
+ http.client.HTTPResponse drops the rest of the content.
+
+* Fix #115: lxml treewalker can now deal with fragments containing, at
+ their root level, text nodes with non-ASCII characters on Python 2.
+
+
+0.99
+~~~~
+
+Released on September 10, 2013
+
+* No library changes from 1.0b3; released as 0.99 as pip has changed
+ behaviour from 1.4 to avoid installing pre-release versions per
+ PEP 440.
+
+
+1.0b3
+~~~~~
+
+Released on July 24, 2013
+
+* Removed ``RecursiveTreeWalker`` from ``treewalkers._base``. Any
+ implementation using it should be moved to
+ ``NonRecursiveTreeWalker``, as everything bundled with html5lib has
+ for years.
+
+* Fix #67 so that ``BufferedStream`` to correctly returns a bytes
+ object, thereby fixing any case where html5lib is passed a
+ non-seekable RawIOBase-like object.
+
+
+1.0b2
+~~~~~
+
+Released on June 27, 2013
+
+* Removed reordering of attributes within the serializer. There is now
+ an ``alphabetical_attributes`` option which preserves the previous
+ behaviour through a new filter. This allows attribute order to be
+ preserved through html5lib if the tree builder preserves order.
+
+* Removed ``dom2sax`` from DOM treebuilders. It has been replaced by
+ ``treeadapters.sax.to_sax`` which is generic and supports any
+ treewalker; it also resolves all known bugs with ``dom2sax``.
+
+* Fix treewalker assertions on hitting bytes strings on
+ Python 2. Previous to 1.0b1, treewalkers coped with mixed
+ bytes/unicode data on Python 2; this reintroduces this prior
+ behaviour on Python 2. Behaviour is unchanged on Python 3.
+
+
+1.0b1
+~~~~~
+
+Released on May 17, 2013
+
+* Implementation updated to implement the `HTML specification
+ <http://www.whatwg.org/specs/web-apps/current-work/>`_ as of 5th May
+ 2013 (`SVN <http://svn.whatwg.org/webapps/>`_ revision r7867).
+
+* Python 3.2+ supported in a single codebase using the ``six`` library.
+
+* Removed support for Python 2.5 and older.
+
+* Removed the deprecated Beautiful Soup 3 treebuilder.
+ ``beautifulsoup4`` can use ``html5lib`` as a parser instead. Note that
+ since it doesn't support namespaces, foreign content like SVG and
+ MathML is parsed incorrectly.
+
+* Removed ``simpletree`` from the package. The default tree builder is
+ now ``etree`` (using the ``xml.etree.cElementTree`` implementation if
+ available, and ``xml.etree.ElementTree`` otherwise).
+
+* Removed the ``XHTMLSerializer`` as it never actually guaranteed its
+ output was well-formed XML, and hence provided little of use.
+
+* Removed default DOM treebuilder, so ``html5lib.treebuilders.dom`` is no
+ longer supported. ``html5lib.treebuilders.getTreeBuilder("dom")`` will
+ return the default DOM treebuilder, which uses ``xml.dom.minidom``.
+
+* Optional heuristic character encoding detection now based on
+ ``charade`` for Python 2.6 - 3.3 compatibility.
+
+* Optional ``Genshi`` treewalker support fixed.
+
+* Many bugfixes, including:
+
+ * #33: null in attribute value breaks XML AttValue;
+
+ * #4: nested, indirect descendant, <button> causes infinite loop;
+
+ * `Google Code 215
+ <http://code.google.com/p/html5lib/issues/detail?id=215>`_: Properly
+ detect seekable streams;
+
+ * `Google Code 206
+ <http://code.google.com/p/html5lib/issues/detail?id=206>`_: add
+ support for <video preload=...>, <audio preload=...>;
+
+ * `Google Code 205
+ <http://code.google.com/p/html5lib/issues/detail?id=205>`_: add
+ support for <video poster=...>;
+
+ * `Google Code 202
+ <http://code.google.com/p/html5lib/issues/detail?id=202>`_: Unicode
+ file breaks InputStream.
+
+* Source code is now mostly PEP 8 compliant.
+
+* Test harness has been improved and now depends on ``nose``.
+
+* Documentation updated and moved to https://html5lib.readthedocs.io/.
+
+
+0.95
+~~~~
+
+Released on February 11, 2012
+
+
+0.90
+~~~~
+
+Released on January 17, 2010
+
+
+0.11.1
+~~~~~~
+
+Released on June 12, 2008
+
+
+0.11
+~~~~
+
+Released on June 10, 2008
+
+
+0.10
+~~~~
+
+Released on October 7, 2007
+
+
+0.9
+~~~
+
+Released on March 11, 2007
+
+
+0.2
+~~~
+
+Released on January 8, 2007
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/CONTRIBUTING.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/CONTRIBUTING.rst
index 8c5e198535d..8c5e198535d 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/CONTRIBUTING.rst
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/CONTRIBUTING.rst
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/LICENSE b/tests/wpt/web-platform-tests/tools/third_party/html5lib/LICENSE
index c87fa7a0006..c87fa7a0006 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/LICENSE
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/LICENSE
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/MANIFEST.in b/tests/wpt/web-platform-tests/tools/third_party/html5lib/MANIFEST.in
index 1edd0b7deea..4b3ffe3ed9f 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/MANIFEST.in
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/MANIFEST.in
@@ -1,6 +1,10 @@
include LICENSE
+include AUTHORS.rst
include CHANGES.rst
include README.rst
include requirements*.txt
+include .pytest.expect
+include tox.ini
+include pytest.ini
graft html5lib/tests/testdata
recursive-include html5lib/tests *.py
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/README.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/README.rst
index 9e0a0f74048..8c151328b3d 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/README.rst
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/README.rst
@@ -51,7 +51,7 @@ pass into html5lib as follows:
import html5lib
with closing(urlopen("http://example.com/")) as f:
- document = html5lib.parse(f, encoding=f.info().getparam("charset"))
+ document = html5lib.parse(f, transport_encoding=f.info().getparam("charset"))
When using with ``urllib.request`` (Python 3), the charset from HTTP
should be pass into html5lib as follows:
@@ -62,7 +62,7 @@ should be pass into html5lib as follows:
import html5lib
with urlopen("http://example.com/") as f:
- document = html5lib.parse(f, encoding=f.info().get_content_charset())
+ document = html5lib.parse(f, transport_encoding=f.info().get_content_charset())
To have more control over the parser, create a parser object explicitly.
For instance, to make the parser raise exceptions on parse errors, use:
@@ -84,13 +84,13 @@ format:
parser = html5lib.HTMLParser(tree=html5lib.getTreeBuilder("dom"))
minidom_document = parser.parse("<p>Hello World!")
-More documentation is available at http://html5lib.readthedocs.org/.
+More documentation is available at https://html5lib.readthedocs.io/.
Installation
------------
-html5lib works on CPython 2.6+, CPython 3.2+ and PyPy. To install it,
+html5lib works on CPython 2.7+, CPython 3.3+ and PyPy. To install it,
use:
.. code-block:: bash
@@ -104,8 +104,8 @@ Optional Dependencies
The following third-party libraries may be used for additional
functionality:
-- ``datrie`` can be used to improve parsing performance (though in
- almost all cases the improvement is marginal);
+- ``datrie`` can be used under CPython to improve parsing performance
+ (though in almost all cases the improvement is marginal);
- ``lxml`` is supported as a tree format (for both building and
walking) under CPython (but *not* PyPy where it is known to cause
@@ -113,13 +113,8 @@ functionality:
- ``genshi`` has a treewalker (but not builder); and
-- ``charade`` can be used as a fallback when character encoding cannot
- be determined; ``chardet``, from which it was forked, can also be used
- on Python 2.
-
-- ``ordereddict`` can be used under Python 2.6
- (``collections.OrderedDict`` is used instead on later versions) to
- serialize attributes in alphabetical order.
+- ``chardet`` can be used as a fallback when character encoding cannot
+ be determined.
Bugs
@@ -132,9 +127,8 @@ Please report any bugs on the `issue tracker
Tests
-----
-Unit tests require the ``nose`` library and can be run using the
-``nosetests`` command in the root directory; ``ordereddict`` is
-required under Python 2.6. All should pass.
+Unit tests require the ``pytest`` and ``mock`` libraries and can be
+run using the ``py.test`` command in the root directory.
Test data are contained in a separate `html5lib-tests
<https://github.com/html5lib/html5lib-tests>`_ repository and included
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/debug-info.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/debug-info.py
index b5d2bb6a305..f93fbdbeaec 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/debug-info.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/debug-info.py
@@ -12,7 +12,7 @@ info = {
"maxsize": sys.maxsize
}
-search_modules = ["charade", "chardet", "datrie", "genshi", "html5lib", "lxml", "six"]
+search_modules = ["chardet", "datrie", "genshi", "html5lib", "lxml", "six"]
found_modules = []
for m in search_modules:
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/Makefile b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/Makefile
index e0e58667e7d..e0e58667e7d 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/doc/Makefile
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/Makefile
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/changes.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/changes.rst
index ded3b705d0f..ded3b705d0f 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/doc/changes.rst
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/changes.rst
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/conf.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/conf.py
index 434f21c42eb..e02218b8ad3 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/doc/conf.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/conf.py
@@ -126,7 +126,7 @@ html_theme = 'default'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
+#html_static_path = ['_static']
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.filters.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.filters.rst
index 1fda38a735a..d70e4552f02 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.filters.rst
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.filters.rst
@@ -1,59 +1,58 @@
filters Package
===============
-:mod:`_base` Module
+:mod:`base` Module
-------------------
-.. automodule:: html5lib.filters._base
+.. automodule:: html5lib.filters.base
:members:
- :undoc-members:
:show-inheritance:
+ :special-members: __init__
:mod:`alphabeticalattributes` Module
------------------------------------
.. automodule:: html5lib.filters.alphabeticalattributes
:members:
- :undoc-members:
:show-inheritance:
+ :special-members: __init__
:mod:`inject_meta_charset` Module
---------------------------------
.. automodule:: html5lib.filters.inject_meta_charset
:members:
- :undoc-members:
:show-inheritance:
+ :special-members: __init__
:mod:`lint` Module
------------------
.. automodule:: html5lib.filters.lint
:members:
- :undoc-members:
:show-inheritance:
+ :special-members: __init__
:mod:`optionaltags` Module
--------------------------
.. automodule:: html5lib.filters.optionaltags
:members:
- :undoc-members:
:show-inheritance:
+ :special-members: __init__
:mod:`sanitizer` Module
-----------------------
.. automodule:: html5lib.filters.sanitizer
:members:
- :undoc-members:
:show-inheritance:
+ :special-members: __init__
:mod:`whitespace` Module
------------------------
.. automodule:: html5lib.filters.whitespace
:members:
- :undoc-members:
:show-inheritance:
-
+ :special-members: __init__
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.rst
new file mode 100644
index 00000000000..d7c75c5842f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.rst
@@ -0,0 +1,38 @@
+html5lib Package
+================
+
+.. automodule:: html5lib
+ :members: __version__
+
+:mod:`constants` Module
+-----------------------
+
+.. automodule:: html5lib.constants
+ :members:
+ :show-inheritance:
+
+:mod:`html5parser` Module
+-------------------------
+
+.. automodule:: html5lib.html5parser
+ :members:
+ :show-inheritance:
+ :special-members: __init__
+
+:mod:`serializer` Module
+------------------------
+
+.. automodule:: html5lib.serializer
+ :members:
+ :show-inheritance:
+ :special-members: __init__
+
+Subpackages
+-----------
+
+.. toctree::
+
+ html5lib.filters
+ html5lib.treebuilders
+ html5lib.treewalkers
+ html5lib.treeadapters
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treeadapters.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treeadapters.rst
new file mode 100644
index 00000000000..1d3a9fba2ff
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treeadapters.rst
@@ -0,0 +1,20 @@
+treeadapters Package
+====================
+
+:mod:`~html5lib.treeadapters` Package
+-------------------------------------
+
+.. automodule:: html5lib.treeadapters
+ :members:
+ :show-inheritance:
+ :special-members: __init__
+
+.. automodule:: html5lib.treeadapters.genshi
+ :members:
+ :show-inheritance:
+ :special-members: __init__
+
+.. automodule:: html5lib.treeadapters.sax
+ :members:
+ :show-inheritance:
+ :special-members: __init__
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.treebuilders.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treebuilders.rst
index 9911983948d..1a051e50bd8 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.treebuilders.rst
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treebuilders.rst
@@ -6,38 +6,37 @@ treebuilders Package
.. automodule:: html5lib.treebuilders
:members:
- :undoc-members:
:show-inheritance:
+ :special-members: __init__
-:mod:`_base` Module
+:mod:`base` Module
-------------------
-.. automodule:: html5lib.treebuilders._base
+.. automodule:: html5lib.treebuilders.base
:members:
- :undoc-members:
:show-inheritance:
+ :special-members: __init__
:mod:`dom` Module
-----------------
.. automodule:: html5lib.treebuilders.dom
:members:
- :undoc-members:
:show-inheritance:
+ :special-members: __init__
:mod:`etree` Module
-------------------
.. automodule:: html5lib.treebuilders.etree
:members:
- :undoc-members:
:show-inheritance:
+ :special-members: __init__
:mod:`etree_lxml` Module
------------------------
.. automodule:: html5lib.treebuilders.etree_lxml
:members:
- :undoc-members:
:show-inheritance:
-
+ :special-members: __init__
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treewalkers.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treewalkers.rst
new file mode 100644
index 00000000000..4afef47609b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treewalkers.rst
@@ -0,0 +1,50 @@
+treewalkers Package
+===================
+
+:mod:`treewalkers` Package
+--------------------------
+
+.. automodule:: html5lib.treewalkers
+ :members:
+ :show-inheritance:
+ :special-members: __init__
+
+:mod:`base` Module
+------------------
+
+.. automodule:: html5lib.treewalkers.base
+ :members:
+ :show-inheritance:
+ :special-members: __init__
+
+:mod:`dom` Module
+-----------------
+
+.. automodule:: html5lib.treewalkers.dom
+ :members:
+ :show-inheritance:
+ :special-members: __init__
+
+:mod:`etree` Module
+-------------------
+
+.. automodule:: html5lib.treewalkers.etree
+ :members:
+ :show-inheritance:
+ :special-members: __init__
+
+:mod:`etree_lxml` Module
+------------------------
+
+.. automodule:: html5lib.treewalkers.etree_lxml
+ :members:
+ :show-inheritance:
+ :special-members: __init__
+
+:mod:`genshi` Module
+--------------------
+
+.. automodule:: html5lib.treewalkers.genshi
+ :members:
+ :show-inheritance:
+ :special-members: __init__
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/index.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/index.rst
index ca2e1b969cd..27104b14697 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/doc/index.rst
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/index.rst
@@ -8,6 +8,7 @@ Overview
:maxdepth: 2
movingparts
+ modules
changes
License <license>
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/license.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/license.rst
index 7e6291f3b9b..7e6291f3b9b 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/doc/license.rst
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/license.rst
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/make.bat b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/make.bat
index e88c769ce33..e88c769ce33 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/doc/make.bat
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/make.bat
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/modules.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/modules.rst
index 59fbcc86bc1..59fbcc86bc1 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/doc/modules.rst
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/modules.rst
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/movingparts.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/movingparts.rst
index 36539785a7e..6ba367a27ae 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/doc/movingparts.rst
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/movingparts.rst
@@ -4,22 +4,25 @@ The moving parts
html5lib consists of a number of components, which are responsible for
handling its features.
+Parsing uses a *tree builder* to generate a *tree*, the in-memory representation of the document.
+Several tree representations are supported, as are translations to other formats via *tree adapters*.
+The tree may be translated to a token stream with a *tree walker*, from which :class:`~html5lib.serializer.HTMLSerializer` produces a stream of bytes.
+The token stream may also be transformed by use of *filters* to accomplish tasks like sanitization.
Tree builders
-------------
The parser reads HTML by tokenizing the content and building a tree that
-the user can later access. There are three main types of trees that
-html5lib can build:
+the user can later access. html5lib can build three types of trees:
-* ``etree`` - this is the default; builds a tree based on ``xml.etree``,
+* ``etree`` - this is the default; builds a tree based on :mod:`xml.etree`,
which can be found in the standard library. Whenever possible, the
accelerated ``ElementTree`` implementation (i.e.
``xml.etree.cElementTree`` on Python 2.x) is used.
-* ``dom`` - builds a tree based on ``xml.dom.minidom``.
+* ``dom`` - builds a tree based on :mod:`xml.dom.minidom`.
-* ``lxml.etree`` - uses lxml's implementation of the ``ElementTree``
+* ``lxml`` - uses the :mod:`lxml.etree` implementation of the ``ElementTree``
API. The performance gains are relatively small compared to using the
accelerated ``ElementTree`` module.
@@ -31,21 +34,15 @@ You can specify the builder by name when using the shorthand API:
with open("mydocument.html", "rb") as f:
lxml_etree_document = html5lib.parse(f, treebuilder="lxml")
-When instantiating a parser object, you have to pass a tree builder
-class in the ``tree`` keyword attribute:
+To get a builder class by name, use the :func:`~html5lib.treebuilders.getTreeBuilder` function.
-.. code-block:: python
-
- import html5lib
- parser = html5lib.HTMLParser(tree=SomeTreeBuilder)
- document = parser.parse("<p>Hello World!")
-
-To get a builder class by name, use the ``getTreeBuilder`` function:
+When instantiating a :class:`~html5lib.html5parser.HTMLParser` object, you must pass a tree builder class via the ``tree`` keyword attribute:
.. code-block:: python
import html5lib
- parser = html5lib.HTMLParser(tree=html5lib.getTreeBuilder("dom"))
+ TreeBuilder = html5lib.getTreeBuilder("dom")
+ parser = html5lib.HTMLParser(tree=TreeBuilder)
minidom_document = parser.parse("<p>Hello World!")
The implementation of builders can be found in `html5lib/treebuilders/
@@ -55,17 +52,13 @@ The implementation of builders can be found in `html5lib/treebuilders/
Tree walkers
------------
-Once a tree is ready, you can work on it either manually, or using
-a tree walker, which provides a streaming view of the tree. html5lib
-provides walkers for all three supported types of trees (``etree``,
-``dom`` and ``lxml``).
+In addition to manipulating a tree directly, you can use a tree walker to generate a streaming view of it.
+html5lib provides walkers for ``etree``, ``dom``, and ``lxml`` trees, as well as ``genshi`` `markup streams <https://genshi.edgewall.org/wiki/Documentation/streams.html>`_.
The implementation of walkers can be found in `html5lib/treewalkers/
<https://github.com/html5lib/html5lib-python/tree/master/html5lib/treewalkers>`_.
-Walkers make consuming HTML easier. html5lib uses them to provide you
-with has a couple of handy tools.
-
+html5lib provides :class:`~html5lib.serializer.HTMLSerializer` for generating a stream of bytes from a token stream, and several filters which manipulate the stream.
HTMLSerializer
~~~~~~~~~~~~~~
@@ -90,15 +83,14 @@ The serializer lets you write HTML back as a stream of bytes.
'>'
'Witam wszystkich'
-You can customize the serializer behaviour in a variety of ways, consult
-the :class:`~html5lib.serializer.htmlserializer.HTMLSerializer`
-documentation.
+You can customize the serializer behaviour in a variety of ways. Consult
+the :class:`~html5lib.serializer.HTMLSerializer` documentation.
Filters
~~~~~~~
-You can alter the stream content with filters provided by html5lib:
+html5lib provides several filters:
* :class:`alphabeticalattributes.Filter
<html5lib.filters.alphabeticalattributes.Filter>` sorts attributes on
@@ -110,11 +102,11 @@ You can alter the stream content with filters provided by html5lib:
the document
* :class:`lint.Filter <html5lib.filters.lint.Filter>` raises
- ``LintError`` exceptions on invalid tag and attribute names, invalid
+ :exc:`AssertionError` exceptions on invalid tag and attribute names, invalid
PCDATA, etc.
* :class:`optionaltags.Filter <html5lib.filters.optionaltags.Filter>`
- removes tags from the stream which are not necessary to produce valid
+ removes tags from the token stream which are not necessary to produce valid
HTML
* :class:`sanitizer.Filter <html5lib.filters.sanitizer.Filter>` removes
@@ -125,9 +117,9 @@ You can alter the stream content with filters provided by html5lib:
* :class:`whitespace.Filter <html5lib.filters.whitespace.Filter>`
collapses all whitespace characters to single spaces unless they're in
- ``<pre/>`` or ``textarea`` tags.
+ ``<pre/>`` or ``<textarea/>`` tags.
-To use a filter, simply wrap it around a stream:
+To use a filter, simply wrap it around a token stream:
.. code-block:: python
@@ -136,15 +128,17 @@ To use a filter, simply wrap it around a stream:
>>> dom = html5lib.parse("<p><script>alert('Boo!')", treebuilder="dom")
>>> walker = html5lib.getTreeWalker("dom")
>>> stream = walker(dom)
- >>> sane_stream = sanitizer.Filter(stream) clean_stream = sanitizer.Filter(stream)
+ >>> clean_stream = sanitizer.Filter(stream)
Tree adapters
-------------
-Used to translate one type of tree to another. More documentation
-pending, sorry.
+Tree adapters can be used to translate between tree formats.
+Two adapters are provided by html5lib:
+* :func:`html5lib.treeadapters.genshi.to_genshi()` generates a `Genshi markup stream <https://genshi.edgewall.org/wiki/Documentation/streams.html>`_.
+* :func:`html5lib.treeadapters.sax.to_sax()` calls a SAX handler based on the tree.
Encoding discovery
------------------
@@ -156,54 +150,16 @@ the following way:
* The encoding may be explicitly specified by passing the name of the
encoding as the encoding parameter to the
:meth:`~html5lib.html5parser.HTMLParser.parse` method on
- ``HTMLParser`` objects.
+ :class:`~html5lib.html5parser.HTMLParser` objects.
* If no encoding is specified, the parser will attempt to detect the
encoding from a ``<meta>`` element in the first 512 bytes of the
document (this is only a partial implementation of the current HTML
- 5 specification).
+ specification).
-* If no encoding can be found and the chardet library is available, an
+* If no encoding can be found and the :mod:`chardet` library is available, an
attempt will be made to sniff the encoding from the byte pattern.
* If all else fails, the default encoding will be used. This is usually
`Windows-1252 <http://en.wikipedia.org/wiki/Windows-1252>`_, which is
a common fallback used by Web browsers.
-
-
-Tokenizers
-----------
-
-The part of the parser responsible for translating a raw input stream
-into meaningful tokens is the tokenizer. Currently html5lib provides
-two.
-
-To set up a tokenizer, simply pass it when instantiating
-a :class:`~html5lib.html5parser.HTMLParser`:
-
-.. code-block:: python
-
- import html5lib
- from html5lib import sanitizer
-
- p = html5lib.HTMLParser(tokenizer=sanitizer.HTMLSanitizer)
- p.parse("<p>Surprise!<script>alert('Boo!');</script>")
-
-HTMLTokenizer
-~~~~~~~~~~~~~
-
-This is the default tokenizer, the heart of html5lib. The implementation
-can be found in `html5lib/tokenizer.py
-<https://github.com/html5lib/html5lib-python/blob/master/html5lib/tokenizer.py>`_.
-
-HTMLSanitizer
-~~~~~~~~~~~~~
-
-This is a tokenizer that removes unsafe markup and CSS styles from the
-input. Elements that are known to be safe are passed through and the
-rest is converted to visible text. The default configuration of the
-sanitizer follows the `WHATWG Sanitization Rules
-<http://wiki.whatwg.org/wiki/Sanitization_rules>`_.
-
-The implementation can be found in `html5lib/sanitizer.py
-<https://github.com/html5lib/html5lib-python/blob/master/html5lib/sanitizer.py>`_.
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/flake8-run.sh b/tests/wpt/web-platform-tests/tools/third_party/html5lib/flake8-run.sh
new file mode 100755
index 00000000000..d926494699b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/flake8-run.sh
@@ -0,0 +1,9 @@
+#!/bin/bash -e
+
+if [[ ! -x $(which flake8) ]]; then
+ echo "fatal: flake8 not found on $PATH. Exiting."
+ exit 1
+fi
+
+flake8 `dirname $0`
+exit $?
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/__init__.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/__init__.py
new file mode 100644
index 00000000000..ba01065ef63
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/__init__.py
@@ -0,0 +1,35 @@
+"""
+HTML parsing library based on the `WHATWG HTML specification
+<https://whatwg.org/html>`_. The parser is designed to be compatible with
+existing HTML found in the wild and implements well-defined error recovery that
+is largely compatible with modern desktop web browsers.
+
+Example usage::
+
+ import html5lib
+ with open("my_document.html", "rb") as f:
+ tree = html5lib.parse(f)
+
+For convenience, this module re-exports the following names:
+
+* :func:`~.html5parser.parse`
+* :func:`~.html5parser.parseFragment`
+* :class:`~.html5parser.HTMLParser`
+* :func:`~.treebuilders.getTreeBuilder`
+* :func:`~.treewalkers.getTreeWalker`
+* :func:`~.serializer.serialize`
+"""
+
+from __future__ import absolute_import, division, unicode_literals
+
+from .html5parser import HTMLParser, parse, parseFragment
+from .treebuilders import getTreeBuilder
+from .treewalkers import getTreeWalker
+from .serializer import serialize
+
+__all__ = ["HTMLParser", "parse", "parseFragment", "getTreeBuilder",
+ "getTreeWalker", "serialize"]
+
+# this has to be at the top level, see how setup.py parses this
+#: Distribution version number.
+__version__ = "1.0.1"
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/ihatexml.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_ihatexml.py
index 0fc79308ef4..4c77717bbc0 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/ihatexml.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_ihatexml.py
@@ -175,18 +175,18 @@ def escapeRegexp(string):
return string
# output from the above
-nonXmlNameBMPRegexp = re.compile('[\x00-,/:-@\\[-\\^`\\{-\xb6\xb8-\xbf\xd7\xf7\u0132-\u0133\u013f-\u0140\u0149\u017f\u01c4-\u01cc\u01f1-\u01f3\u01f6-\u01f9\u0218-\u024f\u02a9-\u02ba\u02c2-\u02cf\u02d2-\u02ff\u0346-\u035f\u0362-\u0385\u038b\u038d\u03a2\u03cf\u03d7-\u03d9\u03db\u03dd\u03df\u03e1\u03f4-\u0400\u040d\u0450\u045d\u0482\u0487-\u048f\u04c5-\u04c6\u04c9-\u04ca\u04cd-\u04cf\u04ec-\u04ed\u04f6-\u04f7\u04fa-\u0530\u0557-\u0558\u055a-\u0560\u0587-\u0590\u05a2\u05ba\u05be\u05c0\u05c3\u05c5-\u05cf\u05eb-\u05ef\u05f3-\u0620\u063b-\u063f\u0653-\u065f\u066a-\u066f\u06b8-\u06b9\u06bf\u06cf\u06d4\u06e9\u06ee-\u06ef\u06fa-\u0900\u0904\u093a-\u093b\u094e-\u0950\u0955-\u0957\u0964-\u0965\u0970-\u0980\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09bb\u09bd\u09c5-\u09c6\u09c9-\u09ca\u09ce-\u09d6\u09d8-\u09db\u09de\u09e4-\u09e5\u09f2-\u0a01\u0a03-\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a3b\u0a3d\u0a43-\u0a46\u0a49-\u0a4a\u0a4e-\u0a58\u0a5d\u0a5f-\u0a65\u0a75-\u0a80\u0a84\u0a8c\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abb\u0ac6\u0aca\u0ace-\u0adf\u0ae1-\u0ae5\u0af0-\u0b00\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34-\u0b35\u0b3a-\u0b3b\u0b44-\u0b46\u0b49-\u0b4a\u0b4e-\u0b55\u0b58-\u0b5b\u0b5e\u0b62-\u0b65\u0b70-\u0b81\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bb6\u0bba-\u0bbd\u0bc3-\u0bc5\u0bc9\u0bce-\u0bd6\u0bd8-\u0be6\u0bf0-\u0c00\u0c04\u0c0d\u0c11\u0c29\u0c34\u0c3a-\u0c3d\u0c45\u0c49\u0c4e-\u0c54\u0c57-\u0c5f\u0c62-\u0c65\u0c70-\u0c81\u0c84\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cbd\u0cc5\u0cc9\u0cce-\u0cd4\u0cd7-\u0cdd\u0cdf\u0ce2-\u0ce5\u0cf0-\u0d01\u0d04\u0d0d\u0d11\u0d29\u0d3a-\u0d3d\u0d44-\u0d45\u0d49\u0d4e-\u0d56\u0d58-\u0d5f\u0d62-\u0d65\u0d70-\u0e00\u0e2f\u0e3b-\u0e3f\u0e4f\u0e5a-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eaf\u0eba\u0ebe-\u0ebf\u0ec5\u0ec7\u0ece-\u0ecf\u0eda-\u0f17\u0f1a-\u0f1f\u0f2a-\u0f34\u0f36\u0f38\u0f3a-\u0f3d\u0f48\u0f6a-\u0f70\u0f85\u0f8c-\u0f8f\u0f96\u0f98\u0fae-\u0fb0\u0fb8\u0fba-\u109f\u10c6-\u10cf\u10f7-\u10ff\u1101\u1104\u1108\u110a\u110d\u1113-\u113b\u113d\u113f\u1141-\u114b\u114d\u114f\u1151-\u1153\u1156-\u1158\u115a-\u115e\u1162\u1164\u1166\u1168\u116a-\u116c\u116f-\u1171\u1174\u1176-\u119d\u119f-\u11a7\u11a9-\u11aa\u11ac-\u11ad\u11b0-\u11b6\u11b9\u11bb\u11c3-\u11ea\u11ec-\u11ef\u11f1-\u11f8\u11fa-\u1dff\u1e9c-\u1e9f\u1efa-\u1eff\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fbd\u1fbf-\u1fc1\u1fc5\u1fcd-\u1fcf\u1fd4-\u1fd5\u1fdc-\u1fdf\u1fed-\u1ff1\u1ff5\u1ffd-\u20cf\u20dd-\u20e0\u20e2-\u2125\u2127-\u2129\u212c-\u212d\u212f-\u217f\u2183-\u3004\u3006\u3008-\u3020\u3030\u3036-\u3040\u3095-\u3098\u309b-\u309c\u309f-\u30a0\u30fb\u30ff-\u3104\u312d-\u4dff\u9fa6-\uabff\ud7a4-\uffff]')
+nonXmlNameBMPRegexp = re.compile('[\x00-,/:-@\\[-\\^`\\{-\xb6\xb8-\xbf\xd7\xf7\u0132-\u0133\u013f-\u0140\u0149\u017f\u01c4-\u01cc\u01f1-\u01f3\u01f6-\u01f9\u0218-\u024f\u02a9-\u02ba\u02c2-\u02cf\u02d2-\u02ff\u0346-\u035f\u0362-\u0385\u038b\u038d\u03a2\u03cf\u03d7-\u03d9\u03db\u03dd\u03df\u03e1\u03f4-\u0400\u040d\u0450\u045d\u0482\u0487-\u048f\u04c5-\u04c6\u04c9-\u04ca\u04cd-\u04cf\u04ec-\u04ed\u04f6-\u04f7\u04fa-\u0530\u0557-\u0558\u055a-\u0560\u0587-\u0590\u05a2\u05ba\u05be\u05c0\u05c3\u05c5-\u05cf\u05eb-\u05ef\u05f3-\u0620\u063b-\u063f\u0653-\u065f\u066a-\u066f\u06b8-\u06b9\u06bf\u06cf\u06d4\u06e9\u06ee-\u06ef\u06fa-\u0900\u0904\u093a-\u093b\u094e-\u0950\u0955-\u0957\u0964-\u0965\u0970-\u0980\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09bb\u09bd\u09c5-\u09c6\u09c9-\u09ca\u09ce-\u09d6\u09d8-\u09db\u09de\u09e4-\u09e5\u09f2-\u0a01\u0a03-\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a3b\u0a3d\u0a43-\u0a46\u0a49-\u0a4a\u0a4e-\u0a58\u0a5d\u0a5f-\u0a65\u0a75-\u0a80\u0a84\u0a8c\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abb\u0ac6\u0aca\u0ace-\u0adf\u0ae1-\u0ae5\u0af0-\u0b00\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34-\u0b35\u0b3a-\u0b3b\u0b44-\u0b46\u0b49-\u0b4a\u0b4e-\u0b55\u0b58-\u0b5b\u0b5e\u0b62-\u0b65\u0b70-\u0b81\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bb6\u0bba-\u0bbd\u0bc3-\u0bc5\u0bc9\u0bce-\u0bd6\u0bd8-\u0be6\u0bf0-\u0c00\u0c04\u0c0d\u0c11\u0c29\u0c34\u0c3a-\u0c3d\u0c45\u0c49\u0c4e-\u0c54\u0c57-\u0c5f\u0c62-\u0c65\u0c70-\u0c81\u0c84\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cbd\u0cc5\u0cc9\u0cce-\u0cd4\u0cd7-\u0cdd\u0cdf\u0ce2-\u0ce5\u0cf0-\u0d01\u0d04\u0d0d\u0d11\u0d29\u0d3a-\u0d3d\u0d44-\u0d45\u0d49\u0d4e-\u0d56\u0d58-\u0d5f\u0d62-\u0d65\u0d70-\u0e00\u0e2f\u0e3b-\u0e3f\u0e4f\u0e5a-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eaf\u0eba\u0ebe-\u0ebf\u0ec5\u0ec7\u0ece-\u0ecf\u0eda-\u0f17\u0f1a-\u0f1f\u0f2a-\u0f34\u0f36\u0f38\u0f3a-\u0f3d\u0f48\u0f6a-\u0f70\u0f85\u0f8c-\u0f8f\u0f96\u0f98\u0fae-\u0fb0\u0fb8\u0fba-\u109f\u10c6-\u10cf\u10f7-\u10ff\u1101\u1104\u1108\u110a\u110d\u1113-\u113b\u113d\u113f\u1141-\u114b\u114d\u114f\u1151-\u1153\u1156-\u1158\u115a-\u115e\u1162\u1164\u1166\u1168\u116a-\u116c\u116f-\u1171\u1174\u1176-\u119d\u119f-\u11a7\u11a9-\u11aa\u11ac-\u11ad\u11b0-\u11b6\u11b9\u11bb\u11c3-\u11ea\u11ec-\u11ef\u11f1-\u11f8\u11fa-\u1dff\u1e9c-\u1e9f\u1efa-\u1eff\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fbd\u1fbf-\u1fc1\u1fc5\u1fcd-\u1fcf\u1fd4-\u1fd5\u1fdc-\u1fdf\u1fed-\u1ff1\u1ff5\u1ffd-\u20cf\u20dd-\u20e0\u20e2-\u2125\u2127-\u2129\u212c-\u212d\u212f-\u217f\u2183-\u3004\u3006\u3008-\u3020\u3030\u3036-\u3040\u3095-\u3098\u309b-\u309c\u309f-\u30a0\u30fb\u30ff-\u3104\u312d-\u4dff\u9fa6-\uabff\ud7a4-\uffff]') # noqa
-nonXmlNameFirstBMPRegexp = re.compile('[\x00-@\\[-\\^`\\{-\xbf\xd7\xf7\u0132-\u0133\u013f-\u0140\u0149\u017f\u01c4-\u01cc\u01f1-\u01f3\u01f6-\u01f9\u0218-\u024f\u02a9-\u02ba\u02c2-\u0385\u0387\u038b\u038d\u03a2\u03cf\u03d7-\u03d9\u03db\u03dd\u03df\u03e1\u03f4-\u0400\u040d\u0450\u045d\u0482-\u048f\u04c5-\u04c6\u04c9-\u04ca\u04cd-\u04cf\u04ec-\u04ed\u04f6-\u04f7\u04fa-\u0530\u0557-\u0558\u055a-\u0560\u0587-\u05cf\u05eb-\u05ef\u05f3-\u0620\u063b-\u0640\u064b-\u0670\u06b8-\u06b9\u06bf\u06cf\u06d4\u06d6-\u06e4\u06e7-\u0904\u093a-\u093c\u093e-\u0957\u0962-\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09db\u09de\u09e2-\u09ef\u09f2-\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a58\u0a5d\u0a5f-\u0a71\u0a75-\u0a84\u0a8c\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abc\u0abe-\u0adf\u0ae1-\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34-\u0b35\u0b3a-\u0b3c\u0b3e-\u0b5b\u0b5e\u0b62-\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bb6\u0bba-\u0c04\u0c0d\u0c11\u0c29\u0c34\u0c3a-\u0c5f\u0c62-\u0c84\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cdd\u0cdf\u0ce2-\u0d04\u0d0d\u0d11\u0d29\u0d3a-\u0d5f\u0d62-\u0e00\u0e2f\u0e31\u0e34-\u0e3f\u0e46-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eaf\u0eb1\u0eb4-\u0ebc\u0ebe-\u0ebf\u0ec5-\u0f3f\u0f48\u0f6a-\u109f\u10c6-\u10cf\u10f7-\u10ff\u1101\u1104\u1108\u110a\u110d\u1113-\u113b\u113d\u113f\u1141-\u114b\u114d\u114f\u1151-\u1153\u1156-\u1158\u115a-\u115e\u1162\u1164\u1166\u1168\u116a-\u116c\u116f-\u1171\u1174\u1176-\u119d\u119f-\u11a7\u11a9-\u11aa\u11ac-\u11ad\u11b0-\u11b6\u11b9\u11bb\u11c3-\u11ea\u11ec-\u11ef\u11f1-\u11f8\u11fa-\u1dff\u1e9c-\u1e9f\u1efa-\u1eff\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fbd\u1fbf-\u1fc1\u1fc5\u1fcd-\u1fcf\u1fd4-\u1fd5\u1fdc-\u1fdf\u1fed-\u1ff1\u1ff5\u1ffd-\u2125\u2127-\u2129\u212c-\u212d\u212f-\u217f\u2183-\u3006\u3008-\u3020\u302a-\u3040\u3095-\u30a0\u30fb-\u3104\u312d-\u4dff\u9fa6-\uabff\ud7a4-\uffff]')
+nonXmlNameFirstBMPRegexp = re.compile('[\x00-@\\[-\\^`\\{-\xbf\xd7\xf7\u0132-\u0133\u013f-\u0140\u0149\u017f\u01c4-\u01cc\u01f1-\u01f3\u01f6-\u01f9\u0218-\u024f\u02a9-\u02ba\u02c2-\u0385\u0387\u038b\u038d\u03a2\u03cf\u03d7-\u03d9\u03db\u03dd\u03df\u03e1\u03f4-\u0400\u040d\u0450\u045d\u0482-\u048f\u04c5-\u04c6\u04c9-\u04ca\u04cd-\u04cf\u04ec-\u04ed\u04f6-\u04f7\u04fa-\u0530\u0557-\u0558\u055a-\u0560\u0587-\u05cf\u05eb-\u05ef\u05f3-\u0620\u063b-\u0640\u064b-\u0670\u06b8-\u06b9\u06bf\u06cf\u06d4\u06d6-\u06e4\u06e7-\u0904\u093a-\u093c\u093e-\u0957\u0962-\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09db\u09de\u09e2-\u09ef\u09f2-\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a58\u0a5d\u0a5f-\u0a71\u0a75-\u0a84\u0a8c\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abc\u0abe-\u0adf\u0ae1-\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34-\u0b35\u0b3a-\u0b3c\u0b3e-\u0b5b\u0b5e\u0b62-\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bb6\u0bba-\u0c04\u0c0d\u0c11\u0c29\u0c34\u0c3a-\u0c5f\u0c62-\u0c84\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cdd\u0cdf\u0ce2-\u0d04\u0d0d\u0d11\u0d29\u0d3a-\u0d5f\u0d62-\u0e00\u0e2f\u0e31\u0e34-\u0e3f\u0e46-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eaf\u0eb1\u0eb4-\u0ebc\u0ebe-\u0ebf\u0ec5-\u0f3f\u0f48\u0f6a-\u109f\u10c6-\u10cf\u10f7-\u10ff\u1101\u1104\u1108\u110a\u110d\u1113-\u113b\u113d\u113f\u1141-\u114b\u114d\u114f\u1151-\u1153\u1156-\u1158\u115a-\u115e\u1162\u1164\u1166\u1168\u116a-\u116c\u116f-\u1171\u1174\u1176-\u119d\u119f-\u11a7\u11a9-\u11aa\u11ac-\u11ad\u11b0-\u11b6\u11b9\u11bb\u11c3-\u11ea\u11ec-\u11ef\u11f1-\u11f8\u11fa-\u1dff\u1e9c-\u1e9f\u1efa-\u1eff\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fbd\u1fbf-\u1fc1\u1fc5\u1fcd-\u1fcf\u1fd4-\u1fd5\u1fdc-\u1fdf\u1fed-\u1ff1\u1ff5\u1ffd-\u2125\u2127-\u2129\u212c-\u212d\u212f-\u217f\u2183-\u3006\u3008-\u3020\u302a-\u3040\u3095-\u30a0\u30fb-\u3104\u312d-\u4dff\u9fa6-\uabff\ud7a4-\uffff]') # noqa
# Simpler things
-nonPubidCharRegexp = re.compile("[^\x20\x0D\x0Aa-zA-Z0-9\-\'()+,./:=?;!*#@$_%]")
+nonPubidCharRegexp = re.compile("[^\x20\x0D\x0Aa-zA-Z0-9\\-'()+,./:=?;!*#@$_%]")
class InfosetFilter(object):
replacementRegexp = re.compile(r"U[\dA-F]{5,5}")
- def __init__(self, replaceChars=None,
+ def __init__(self,
dropXmlnsLocalName=False,
dropXmlnsAttrNs=False,
preventDoubleDashComments=False,
@@ -217,7 +217,7 @@ class InfosetFilter(object):
else:
return self.toXmlName(name)
- def coerceElement(self, name, namespace=None):
+ def coerceElement(self, name):
return self.toXmlName(name)
def coerceComment(self, data):
@@ -225,11 +225,14 @@ class InfosetFilter(object):
while "--" in data:
warnings.warn("Comments cannot contain adjacent dashes", DataLossWarning)
data = data.replace("--", "- -")
+ if data.endswith("-"):
+ warnings.warn("Comments cannot end in a dash", DataLossWarning)
+ data += " "
return data
def coerceCharacters(self, data):
if self.replaceFormFeedCharacters:
- for i in range(data.count("\x0C")):
+ for _ in range(data.count("\x0C")):
warnings.warn("Text cannot contain U+000C", DataLossWarning)
data = data.replace("\x0C", " ")
# Other non-xml characters
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/inputstream.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_inputstream.py
index 9e03b9313d7..177f0ab9ee3 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/inputstream.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_inputstream.py
@@ -1,13 +1,16 @@
from __future__ import absolute_import, division, unicode_literals
-from six import text_type
-from six.moves import http_client
+
+from six import text_type, binary_type
+from six.moves import http_client, urllib
import codecs
import re
+import webencodings
+
from .constants import EOF, spaceCharacters, asciiLetters, asciiUppercase
-from .constants import encodings, ReparseException
-from . import utils
+from .constants import _ReparseException
+from . import _utils
from io import StringIO
@@ -16,19 +19,26 @@ try:
except ImportError:
BytesIO = StringIO
-try:
- from io import BufferedIOBase
-except ImportError:
- class BufferedIOBase(object):
- pass
-
# Non-unicode versions of constants for use in the pre-parser
spaceCharactersBytes = frozenset([item.encode("ascii") for item in spaceCharacters])
asciiLettersBytes = frozenset([item.encode("ascii") for item in asciiLetters])
asciiUppercaseBytes = frozenset([item.encode("ascii") for item in asciiUppercase])
spacesAngleBrackets = spaceCharactersBytes | frozenset([b">", b"<"])
-invalid_unicode_re = re.compile("[\u0001-\u0008\u000B\u000E-\u001F\u007F-\u009F\uD800-\uDFFF\uFDD0-\uFDEF\uFFFE\uFFFF\U0001FFFE\U0001FFFF\U0002FFFE\U0002FFFF\U0003FFFE\U0003FFFF\U0004FFFE\U0004FFFF\U0005FFFE\U0005FFFF\U0006FFFE\U0006FFFF\U0007FFFE\U0007FFFF\U0008FFFE\U0008FFFF\U0009FFFE\U0009FFFF\U000AFFFE\U000AFFFF\U000BFFFE\U000BFFFF\U000CFFFE\U000CFFFF\U000DFFFE\U000DFFFF\U000EFFFE\U000EFFFF\U000FFFFE\U000FFFFF\U0010FFFE\U0010FFFF]")
+
+invalid_unicode_no_surrogate = "[\u0001-\u0008\u000B\u000E-\u001F\u007F-\u009F\uFDD0-\uFDEF\uFFFE\uFFFF\U0001FFFE\U0001FFFF\U0002FFFE\U0002FFFF\U0003FFFE\U0003FFFF\U0004FFFE\U0004FFFF\U0005FFFE\U0005FFFF\U0006FFFE\U0006FFFF\U0007FFFE\U0007FFFF\U0008FFFE\U0008FFFF\U0009FFFE\U0009FFFF\U000AFFFE\U000AFFFF\U000BFFFE\U000BFFFF\U000CFFFE\U000CFFFF\U000DFFFE\U000DFFFF\U000EFFFE\U000EFFFF\U000FFFFE\U000FFFFF\U0010FFFE\U0010FFFF]" # noqa
+
+if _utils.supports_lone_surrogates:
+ # Use one extra step of indirection and create surrogates with
+ # eval. Not using this indirection would introduce an illegal
+ # unicode literal on platforms not supporting such lone
+ # surrogates.
+ assert invalid_unicode_no_surrogate[-1] == "]" and invalid_unicode_no_surrogate.count("]") == 1
+ invalid_unicode_re = re.compile(invalid_unicode_no_surrogate[:-1] +
+ eval('"\\uD800-\\uDFFF"') + # pylint:disable=eval-used
+ "]")
+else:
+ invalid_unicode_re = re.compile(invalid_unicode_no_surrogate)
non_bmp_invalid_codepoints = set([0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE,
0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE, 0x5FFFF,
@@ -38,7 +48,7 @@ non_bmp_invalid_codepoints = set([0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE,
0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF,
0x10FFFE, 0x10FFFF])
-ascii_punctuation_re = re.compile("[\u0009-\u000D\u0020-\u002F\u003A-\u0040\u005B-\u0060\u007B-\u007E]")
+ascii_punctuation_re = re.compile("[\u0009-\u000D\u0020-\u002F\u003A-\u0040\u005C\u005B-\u0060\u007B-\u007E]")
# Cache for charsUntil()
charsUntilRegEx = {}
@@ -118,10 +128,13 @@ class BufferedStream(object):
return b"".join(rv)
-def HTMLInputStream(source, encoding=None, parseMeta=True, chardet=True):
- if isinstance(source, http_client.HTTPResponse):
- # Work around Python bug #20007: read(0) closes the connection.
- # http://bugs.python.org/issue20007
+def HTMLInputStream(source, **kwargs):
+ # Work around Python bug #20007: read(0) closes the connection.
+ # http://bugs.python.org/issue20007
+ if (isinstance(source, http_client.HTTPResponse) or
+ # Also check for addinfourl wrapping HTTPResponse
+ (isinstance(source, urllib.response.addbase) and
+ isinstance(source.fp, http_client.HTTPResponse))):
isUnicode = False
elif hasattr(source, "read"):
isUnicode = isinstance(source.read(0), text_type)
@@ -129,12 +142,13 @@ def HTMLInputStream(source, encoding=None, parseMeta=True, chardet=True):
isUnicode = isinstance(source, text_type)
if isUnicode:
- if encoding is not None:
- raise TypeError("Cannot explicitly set an encoding with a unicode string")
+ encodings = [x for x in kwargs if x.endswith("_encoding")]
+ if encodings:
+ raise TypeError("Cannot set an encoding with a unicode input, set %r" % encodings)
- return HTMLUnicodeInputStream(source)
+ return HTMLUnicodeInputStream(source, **kwargs)
else:
- return HTMLBinaryInputStream(source, encoding, parseMeta, chardet)
+ return HTMLBinaryInputStream(source, **kwargs)
class HTMLUnicodeInputStream(object):
@@ -160,22 +174,21 @@ class HTMLUnicodeInputStream(object):
regardless of any BOM or later declaration (such as in a meta
element)
- parseMeta - Look for a <meta> element containing encoding information
-
"""
- # Craziness
- if len("\U0010FFFF") == 1:
+ if not _utils.supports_lone_surrogates:
+ # Such platforms will have already checked for such
+ # surrogate errors, so no need to do this checking.
+ self.reportCharacterErrors = None
+ elif len("\U0010FFFF") == 1:
self.reportCharacterErrors = self.characterErrorsUCS4
- self.replaceCharactersRegexp = re.compile("[\uD800-\uDFFF]")
else:
self.reportCharacterErrors = self.characterErrorsUCS2
- self.replaceCharactersRegexp = re.compile("([\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF])")
# List of where new lines occur
self.newLines = [0]
- self.charEncoding = ("utf-8", "certain")
+ self.charEncoding = (lookupEncoding("utf-8"), "certain")
self.dataStream = self.openStream(source)
self.reset()
@@ -265,12 +278,10 @@ class HTMLUnicodeInputStream(object):
self._bufferedCharacter = data[-1]
data = data[:-1]
- self.reportCharacterErrors(data)
+ if self.reportCharacterErrors:
+ self.reportCharacterErrors(data)
# Replace invalid characters
- # Note U+0000 is dealt with in the tokenizer
- data = self.replaceCharactersRegexp.sub("\ufffd", data)
-
data = data.replace("\r\n", "\n")
data = data.replace("\r", "\n")
@@ -280,7 +291,7 @@ class HTMLUnicodeInputStream(object):
return True
def characterErrorsUCS4(self, data):
- for i in range(len(invalid_unicode_re.findall(data))):
+ for _ in range(len(invalid_unicode_re.findall(data))):
self.errors.append("invalid-codepoint")
def characterErrorsUCS2(self, data):
@@ -293,9 +304,9 @@ class HTMLUnicodeInputStream(object):
codepoint = ord(match.group())
pos = match.start()
# Pretty sure there should be endianness issues here
- if utils.isSurrogatePair(data[pos:pos + 2]):
+ if _utils.isSurrogatePair(data[pos:pos + 2]):
# We have a surrogate pair!
- char_val = utils.surrogatePairToCodepoint(data[pos:pos + 2])
+ char_val = _utils.surrogatePairToCodepoint(data[pos:pos + 2])
if char_val in non_bmp_invalid_codepoints:
self.errors.append("invalid-codepoint")
skip = True
@@ -378,7 +389,9 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream):
"""
- def __init__(self, source, encoding=None, parseMeta=True, chardet=True):
+ def __init__(self, source, override_encoding=None, transport_encoding=None,
+ same_origin_parent_encoding=None, likely_encoding=None,
+ default_encoding="windows-1252", useChardet=True):
"""Initialises the HTMLInputStream.
HTMLInputStream(source, [encoding]) -> Normalized stream from source
@@ -391,8 +404,6 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream):
regardless of any BOM or later declaration (such as in a meta
element)
- parseMeta - Look for a <meta> element containing encoding information
-
"""
# Raw Stream - for unicode objects this will encode to utf-8 and set
# self.charEncoding as appropriate
@@ -400,27 +411,28 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream):
HTMLUnicodeInputStream.__init__(self, self.rawStream)
- self.charEncoding = (codecName(encoding), "certain")
-
# Encoding Information
# Number of bytes to use when looking for a meta element with
# encoding information
- self.numBytesMeta = 512
+ self.numBytesMeta = 1024
# Number of bytes to use when using detecting encoding using chardet
self.numBytesChardet = 100
- # Encoding to use if no other information can be found
- self.defaultEncoding = "windows-1252"
+ # Things from args
+ self.override_encoding = override_encoding
+ self.transport_encoding = transport_encoding
+ self.same_origin_parent_encoding = same_origin_parent_encoding
+ self.likely_encoding = likely_encoding
+ self.default_encoding = default_encoding
- # Detect encoding iff no explicit "transport level" encoding is supplied
- if (self.charEncoding[0] is None):
- self.charEncoding = self.detectEncoding(parseMeta, chardet)
+ # Determine encoding
+ self.charEncoding = self.determineEncoding(useChardet)
+ assert self.charEncoding[0] is not None
# Call superclass
self.reset()
def reset(self):
- self.dataStream = codecs.getreader(self.charEncoding[0])(self.rawStream,
- 'replace')
+ self.dataStream = self.charEncoding[0].codec_info.streamreader(self.rawStream, 'replace')
HTMLUnicodeInputStream.reset(self)
def openStream(self, source):
@@ -437,29 +449,50 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream):
try:
stream.seek(stream.tell())
- except:
+ except: # pylint:disable=bare-except
stream = BufferedStream(stream)
return stream
- def detectEncoding(self, parseMeta=True, chardet=True):
- # First look for a BOM
+ def determineEncoding(self, chardet=True):
+ # BOMs take precedence over everything
# This will also read past the BOM if present
- encoding = self.detectBOM()
- confidence = "certain"
- # If there is no BOM need to look for meta elements with encoding
- # information
- if encoding is None and parseMeta:
- encoding = self.detectEncodingMeta()
- confidence = "tentative"
- # Guess with chardet, if avaliable
- if encoding is None and chardet:
- confidence = "tentative"
+ charEncoding = self.detectBOM(), "certain"
+ if charEncoding[0] is not None:
+ return charEncoding
+
+ # If we've been overriden, we've been overriden
+ charEncoding = lookupEncoding(self.override_encoding), "certain"
+ if charEncoding[0] is not None:
+ return charEncoding
+
+ # Now check the transport layer
+ charEncoding = lookupEncoding(self.transport_encoding), "certain"
+ if charEncoding[0] is not None:
+ return charEncoding
+
+ # Look for meta elements with encoding information
+ charEncoding = self.detectEncodingMeta(), "tentative"
+ if charEncoding[0] is not None:
+ return charEncoding
+
+ # Parent document encoding
+ charEncoding = lookupEncoding(self.same_origin_parent_encoding), "tentative"
+ if charEncoding[0] is not None and not charEncoding[0].name.startswith("utf-16"):
+ return charEncoding
+
+ # "likely" encoding
+ charEncoding = lookupEncoding(self.likely_encoding), "tentative"
+ if charEncoding[0] is not None:
+ return charEncoding
+
+ # Guess with chardet, if available
+ if chardet:
try:
- try:
- from charade.universaldetector import UniversalDetector
- except ImportError:
- from chardet.universaldetector import UniversalDetector
+ from chardet.universaldetector import UniversalDetector
+ except ImportError:
+ pass
+ else:
buffers = []
detector = UniversalDetector()
while not detector.done:
@@ -470,37 +503,34 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream):
buffers.append(buffer)
detector.feed(buffer)
detector.close()
- encoding = detector.result['encoding']
+ encoding = lookupEncoding(detector.result['encoding'])
self.rawStream.seek(0)
- except ImportError:
- pass
- # If all else fails use the default encoding
- if encoding is None:
- confidence = "tentative"
- encoding = self.defaultEncoding
-
- # Substitute for equivalent encodings:
- encodingSub = {"iso-8859-1": "windows-1252"}
+ if encoding is not None:
+ return encoding, "tentative"
- if encoding.lower() in encodingSub:
- encoding = encodingSub[encoding.lower()]
+ # Try the default encoding
+ charEncoding = lookupEncoding(self.default_encoding), "tentative"
+ if charEncoding[0] is not None:
+ return charEncoding
- return encoding, confidence
+ # Fallback to html5lib's default if even that hasn't worked
+ return lookupEncoding("windows-1252"), "tentative"
def changeEncoding(self, newEncoding):
assert self.charEncoding[1] != "certain"
- newEncoding = codecName(newEncoding)
- if newEncoding in ("utf-16", "utf-16-be", "utf-16-le"):
- newEncoding = "utf-8"
+ newEncoding = lookupEncoding(newEncoding)
if newEncoding is None:
return
+ if newEncoding.name in ("utf-16be", "utf-16le"):
+ newEncoding = lookupEncoding("utf-8")
+ assert newEncoding is not None
elif newEncoding == self.charEncoding[0]:
self.charEncoding = (self.charEncoding[0], "certain")
else:
self.rawStream.seek(0)
- self.reset()
self.charEncoding = (newEncoding, "certain")
- raise ReparseException("Encoding changed from %s to %s" % (self.charEncoding[0], newEncoding))
+ self.reset()
+ raise _ReparseException("Encoding changed from %s to %s" % (self.charEncoding[0], newEncoding))
def detectBOM(self):
"""Attempts to detect at BOM at the start of the stream. If
@@ -508,8 +538,8 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream):
encoding otherwise return None"""
bomDict = {
codecs.BOM_UTF8: 'utf-8',
- codecs.BOM_UTF16_LE: 'utf-16-le', codecs.BOM_UTF16_BE: 'utf-16-be',
- codecs.BOM_UTF32_LE: 'utf-32-le', codecs.BOM_UTF32_BE: 'utf-32-be'
+ codecs.BOM_UTF16_LE: 'utf-16le', codecs.BOM_UTF16_BE: 'utf-16be',
+ codecs.BOM_UTF32_LE: 'utf-32le', codecs.BOM_UTF32_BE: 'utf-32be'
}
# Go to beginning of file and read in 4 bytes
@@ -529,9 +559,12 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream):
# Set the read position past the BOM if one was found, otherwise
# set it to the start of the stream
- self.rawStream.seek(encoding and seek or 0)
-
- return encoding
+ if encoding:
+ self.rawStream.seek(seek)
+ return lookupEncoding(encoding)
+ else:
+ self.rawStream.seek(0)
+ return None
def detectEncodingMeta(self):
"""Report the encoding declared by the meta element
@@ -542,8 +575,8 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream):
self.rawStream.seek(0)
encoding = parser.getEncoding()
- if encoding in ("utf-16", "utf-16-be", "utf-16-le"):
- encoding = "utf-8"
+ if encoding is not None and encoding.name in ("utf-16be", "utf-16le"):
+ encoding = lookupEncoding("utf-8")
return encoding
@@ -557,6 +590,7 @@ class EncodingBytes(bytes):
return bytes.__new__(self, value.lower())
def __init__(self, value):
+ # pylint:disable=unused-argument
self._position = -1
def __iter__(self):
@@ -667,7 +701,7 @@ class EncodingParser(object):
(b"<!", self.handleOther),
(b"<?", self.handleOther),
(b"<", self.handlePossibleStartTag))
- for byte in self.data:
+ for _ in self.data:
keepParsing = True
for key, method in methodDispatch:
if self.data.matchBytes(key):
@@ -706,7 +740,7 @@ class EncodingParser(object):
return False
elif attr[0] == b"charset":
tentativeEncoding = attr[1]
- codec = codecName(tentativeEncoding)
+ codec = lookupEncoding(tentativeEncoding)
if codec is not None:
self.encoding = codec
return False
@@ -714,7 +748,7 @@ class EncodingParser(object):
contentParser = ContentAttrParser(EncodingBytes(attr[1]))
tentativeEncoding = contentParser.parse()
if tentativeEncoding is not None:
- codec = codecName(tentativeEncoding)
+ codec = lookupEncoding(tentativeEncoding)
if codec is not None:
if hasPragma:
self.encoding = codec
@@ -871,16 +905,19 @@ class ContentAttrParser(object):
return None
-def codecName(encoding):
+def lookupEncoding(encoding):
"""Return the python codec name corresponding to an encoding or None if the
string doesn't correspond to a valid encoding."""
- if isinstance(encoding, bytes):
+ if isinstance(encoding, binary_type):
try:
encoding = encoding.decode("ascii")
except UnicodeDecodeError:
return None
- if encoding:
- canonicalName = ascii_punctuation_re.sub("", encoding).lower()
- return encodings.get(canonicalName, None)
+
+ if encoding is not None:
+ try:
+ return webencodings.lookup(encoding)
+ except AttributeError:
+ return None
else:
return None
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tokenizer.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_tokenizer.py
index 797745787a4..6078f66aa0d 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tokenizer.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_tokenizer.py
@@ -1,9 +1,6 @@
from __future__ import absolute_import, division, unicode_literals
-try:
- chr = unichr # flake8: noqa
-except NameError:
- pass
+from six import unichr as chr
from collections import deque
@@ -14,9 +11,9 @@ from .constants import digits, hexDigits, EOF
from .constants import tokenTypes, tagTokenTypes
from .constants import replacementCharacters
-from .inputstream import HTMLInputStream
+from ._inputstream import HTMLInputStream
-from .trie import Trie
+from ._trie import Trie
entitiesTrie = Trie(entities)
@@ -34,16 +31,11 @@ class HTMLTokenizer(object):
Points to HTMLInputStream object.
"""
- def __init__(self, stream, encoding=None, parseMeta=True, useChardet=True,
- lowercaseElementName=True, lowercaseAttrName=True, parser=None):
+ def __init__(self, stream, parser=None, **kwargs):
- self.stream = HTMLInputStream(stream, encoding, parseMeta, useChardet)
+ self.stream = HTMLInputStream(stream, **kwargs)
self.parser = parser
- # Perform case conversions?
- self.lowercaseElementName = lowercaseElementName
- self.lowercaseAttrName = lowercaseAttrName
-
# Setup the initial tokenizer state
self.escapeFlag = False
self.lastFourChars = []
@@ -147,8 +139,8 @@ class HTMLTokenizer(object):
output = "&"
charStack = [self.stream.char()]
- if (charStack[0] in spaceCharacters or charStack[0] in (EOF, "<", "&")
- or (allowedChar is not None and allowedChar == charStack[0])):
+ if (charStack[0] in spaceCharacters or charStack[0] in (EOF, "<", "&") or
+ (allowedChar is not None and allowedChar == charStack[0])):
self.stream.unget(charStack[0])
elif charStack[0] == "#":
@@ -235,8 +227,7 @@ class HTMLTokenizer(object):
token = self.currentToken
# Add token to the queue to be yielded
if (token["type"] in tagTokenTypes):
- if self.lowercaseElementName:
- token["name"] = token["name"].translate(asciiUpper2Lower)
+ token["name"] = token["name"].translate(asciiUpper2Lower)
if token["type"] == tokenTypes["EndTag"]:
if token["data"]:
self.tokenQueue.append({"type": tokenTypes["ParseError"],
@@ -921,10 +912,9 @@ class HTMLTokenizer(object):
# Attributes are not dropped at this stage. That happens when the
# start tag token is emitted so values can still be safely appended
# to attributes, but we do want to report the parse error in time.
- if self.lowercaseAttrName:
- self.currentToken["data"][-1][0] = (
- self.currentToken["data"][-1][0].translate(asciiUpper2Lower))
- for name, value in self.currentToken["data"][:-1]:
+ self.currentToken["data"][-1][0] = (
+ self.currentToken["data"][-1][0].translate(asciiUpper2Lower))
+ for name, _ in self.currentToken["data"][:-1]:
if self.currentToken["data"][-1][0] == name:
self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
"duplicate-attribute"})
@@ -1716,11 +1706,11 @@ class HTMLTokenizer(object):
else:
data.append(char)
- data = "".join(data)
+ data = "".join(data) # pylint:disable=redefined-variable-type
# Deal with null here rather than in the parser
nullCount = data.count("\u0000")
if nullCount > 0:
- for i in range(nullCount):
+ for _ in range(nullCount):
self.tokenQueue.append({"type": tokenTypes["ParseError"],
"data": "invalid-codepoint"})
data = data.replace("\u0000", "\uFFFD")
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/__init__.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/__init__.py
index a8cca8a9acf..a5ba4bf123a 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/__init__.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/__init__.py
@@ -4,9 +4,11 @@ from .py import Trie as PyTrie
Trie = PyTrie
+# pylint:disable=wrong-import-position
try:
from .datrie import Trie as DATrie
except ImportError:
pass
else:
Trie = DATrie
+# pylint:enable=wrong-import-position
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/_base.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/_base.py
index 724486b16eb..a1158bbbfa5 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/_base.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/_base.py
@@ -7,13 +7,13 @@ class Trie(Mapping):
"""Abstract base class for tries"""
def keys(self, prefix=None):
- keys = super().keys()
+ # pylint:disable=arguments-differ
+ keys = super(Trie, self).keys()
if prefix is None:
return set(keys)
- # Python 2.6: no set comprehensions
- return set([x for x in keys if x.startswith(prefix)])
+ return {x for x in keys if x.startswith(prefix)}
def has_keys_with_prefix(self, prefix):
for key in self.keys():
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/datrie.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/datrie.py
index 51f3d046a74..51f3d046a74 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/datrie.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/datrie.py
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/py.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/py.py
index c2ba3da7576..c2ba3da7576 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/py.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/py.py
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/utils.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_utils.py
index 2f41f4dfa60..91252f2c0a8 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/utils.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_utils.py
@@ -2,6 +2,8 @@ from __future__ import absolute_import, division, unicode_literals
from types import ModuleType
+from six import text_type
+
try:
import xml.etree.cElementTree as default_etree
except ImportError:
@@ -9,7 +11,26 @@ except ImportError:
__all__ = ["default_etree", "MethodDispatcher", "isSurrogatePair",
- "surrogatePairToCodepoint", "moduleFactoryFactory"]
+ "surrogatePairToCodepoint", "moduleFactoryFactory",
+ "supports_lone_surrogates"]
+
+
+# Platforms not supporting lone surrogates (\uD800-\uDFFF) should be
+# caught by the below test. In general this would be any platform
+# using UTF-16 as its encoding of unicode strings, such as
+# Jython. This is because UTF-16 itself is based on the use of such
+# surrogates, and there is no mechanism to further escape such
+# escapes.
+try:
+ _x = eval('"\\uD800"') # pylint:disable=eval-used
+ if not isinstance(_x, text_type):
+ # We need this with u"" because of http://bugs.jython.org/issue2039
+ _x = eval('u"\\uD800"') # pylint:disable=eval-used
+ assert isinstance(_x, text_type)
+except: # pylint:disable=bare-except
+ supports_lone_surrogates = False
+else:
+ supports_lone_surrogates = True
class MethodDispatcher(dict):
@@ -31,19 +52,20 @@ class MethodDispatcher(dict):
# anything here.
_dictEntries = []
for name, value in items:
- if type(name) in (list, tuple, frozenset, set):
+ if isinstance(name, (list, tuple, frozenset, set)):
for item in name:
_dictEntries.append((item, value))
else:
_dictEntries.append((name, value))
dict.__init__(self, _dictEntries)
+ assert len(self) == len(_dictEntries)
self.default = None
def __getitem__(self, key):
return dict.get(self, key, self.default)
-# Some utility functions to dal with weirdness around UCS2 vs UCS4
+# Some utility functions to deal with weirdness around UCS2 vs UCS4
# python builds
def isSurrogatePair(data):
@@ -70,13 +92,33 @@ def moduleFactoryFactory(factory):
else:
name = b"_%s_factory" % baseModule.__name__
- if name in moduleCache:
- return moduleCache[name]
- else:
+ kwargs_tuple = tuple(kwargs.items())
+
+ try:
+ return moduleCache[name][args][kwargs_tuple]
+ except KeyError:
mod = ModuleType(name)
objs = factory(baseModule, *args, **kwargs)
mod.__dict__.update(objs)
- moduleCache[name] = mod
+ if "name" not in moduleCache:
+ moduleCache[name] = {}
+ if "args" not in moduleCache[name]:
+ moduleCache[name][args] = {}
+ if "kwargs" not in moduleCache[name][args]:
+ moduleCache[name][args][kwargs_tuple] = {}
+ moduleCache[name][args][kwargs_tuple] = mod
return mod
return moduleFactory
+
+
+def memoize(func):
+ cache = {}
+
+ def wrapped(*args, **kwargs):
+ key = (tuple(args), tuple(kwargs.items()))
+ if key not in cache:
+ cache[key] = func(*args, **kwargs)
+ return cache[key]
+
+ return wrapped
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/constants.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/constants.py
index e7089846d59..1ff804190cd 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/constants.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/constants.py
@@ -1,292 +1,296 @@
from __future__ import absolute_import, division, unicode_literals
import string
-import gettext
-_ = gettext.gettext
EOF = None
E = {
"null-character":
- _("Null character in input stream, replaced with U+FFFD."),
+ "Null character in input stream, replaced with U+FFFD.",
"invalid-codepoint":
- _("Invalid codepoint in stream."),
+ "Invalid codepoint in stream.",
"incorrectly-placed-solidus":
- _("Solidus (/) incorrectly placed in tag."),
+ "Solidus (/) incorrectly placed in tag.",
"incorrect-cr-newline-entity":
- _("Incorrect CR newline entity, replaced with LF."),
+ "Incorrect CR newline entity, replaced with LF.",
"illegal-windows-1252-entity":
- _("Entity used with illegal number (windows-1252 reference)."),
+ "Entity used with illegal number (windows-1252 reference).",
"cant-convert-numeric-entity":
- _("Numeric entity couldn't be converted to character "
- "(codepoint U+%(charAsInt)08x)."),
+ "Numeric entity couldn't be converted to character "
+ "(codepoint U+%(charAsInt)08x).",
"illegal-codepoint-for-numeric-entity":
- _("Numeric entity represents an illegal codepoint: "
- "U+%(charAsInt)08x."),
+ "Numeric entity represents an illegal codepoint: "
+ "U+%(charAsInt)08x.",
"numeric-entity-without-semicolon":
- _("Numeric entity didn't end with ';'."),
+ "Numeric entity didn't end with ';'.",
"expected-numeric-entity-but-got-eof":
- _("Numeric entity expected. Got end of file instead."),
+ "Numeric entity expected. Got end of file instead.",
"expected-numeric-entity":
- _("Numeric entity expected but none found."),
+ "Numeric entity expected but none found.",
"named-entity-without-semicolon":
- _("Named entity didn't end with ';'."),
+ "Named entity didn't end with ';'.",
"expected-named-entity":
- _("Named entity expected. Got none."),
+ "Named entity expected. Got none.",
"attributes-in-end-tag":
- _("End tag contains unexpected attributes."),
+ "End tag contains unexpected attributes.",
'self-closing-flag-on-end-tag':
- _("End tag contains unexpected self-closing flag."),
+ "End tag contains unexpected self-closing flag.",
"expected-tag-name-but-got-right-bracket":
- _("Expected tag name. Got '>' instead."),
+ "Expected tag name. Got '>' instead.",
"expected-tag-name-but-got-question-mark":
- _("Expected tag name. Got '?' instead. (HTML doesn't "
- "support processing instructions.)"),
+ "Expected tag name. Got '?' instead. (HTML doesn't "
+ "support processing instructions.)",
"expected-tag-name":
- _("Expected tag name. Got something else instead"),
+ "Expected tag name. Got something else instead",
"expected-closing-tag-but-got-right-bracket":
- _("Expected closing tag. Got '>' instead. Ignoring '</>'."),
+ "Expected closing tag. Got '>' instead. Ignoring '</>'.",
"expected-closing-tag-but-got-eof":
- _("Expected closing tag. Unexpected end of file."),
+ "Expected closing tag. Unexpected end of file.",
"expected-closing-tag-but-got-char":
- _("Expected closing tag. Unexpected character '%(data)s' found."),
+ "Expected closing tag. Unexpected character '%(data)s' found.",
"eof-in-tag-name":
- _("Unexpected end of file in the tag name."),
+ "Unexpected end of file in the tag name.",
"expected-attribute-name-but-got-eof":
- _("Unexpected end of file. Expected attribute name instead."),
+ "Unexpected end of file. Expected attribute name instead.",
"eof-in-attribute-name":
- _("Unexpected end of file in attribute name."),
+ "Unexpected end of file in attribute name.",
"invalid-character-in-attribute-name":
- _("Invalid character in attribute name"),
+ "Invalid character in attribute name",
"duplicate-attribute":
- _("Dropped duplicate attribute on tag."),
+ "Dropped duplicate attribute on tag.",
"expected-end-of-tag-name-but-got-eof":
- _("Unexpected end of file. Expected = or end of tag."),
+ "Unexpected end of file. Expected = or end of tag.",
"expected-attribute-value-but-got-eof":
- _("Unexpected end of file. Expected attribute value."),
+ "Unexpected end of file. Expected attribute value.",
"expected-attribute-value-but-got-right-bracket":
- _("Expected attribute value. Got '>' instead."),
+ "Expected attribute value. Got '>' instead.",
'equals-in-unquoted-attribute-value':
- _("Unexpected = in unquoted attribute"),
+ "Unexpected = in unquoted attribute",
'unexpected-character-in-unquoted-attribute-value':
- _("Unexpected character in unquoted attribute"),
+ "Unexpected character in unquoted attribute",
"invalid-character-after-attribute-name":
- _("Unexpected character after attribute name."),
+ "Unexpected character after attribute name.",
"unexpected-character-after-attribute-value":
- _("Unexpected character after attribute value."),
+ "Unexpected character after attribute value.",
"eof-in-attribute-value-double-quote":
- _("Unexpected end of file in attribute value (\")."),
+ "Unexpected end of file in attribute value (\").",
"eof-in-attribute-value-single-quote":
- _("Unexpected end of file in attribute value (')."),
+ "Unexpected end of file in attribute value (').",
"eof-in-attribute-value-no-quotes":
- _("Unexpected end of file in attribute value."),
+ "Unexpected end of file in attribute value.",
"unexpected-EOF-after-solidus-in-tag":
- _("Unexpected end of file in tag. Expected >"),
+ "Unexpected end of file in tag. Expected >",
"unexpected-character-after-solidus-in-tag":
- _("Unexpected character after / in tag. Expected >"),
+ "Unexpected character after / in tag. Expected >",
"expected-dashes-or-doctype":
- _("Expected '--' or 'DOCTYPE'. Not found."),
+ "Expected '--' or 'DOCTYPE'. Not found.",
"unexpected-bang-after-double-dash-in-comment":
- _("Unexpected ! after -- in comment"),
+ "Unexpected ! after -- in comment",
"unexpected-space-after-double-dash-in-comment":
- _("Unexpected space after -- in comment"),
+ "Unexpected space after -- in comment",
"incorrect-comment":
- _("Incorrect comment."),
+ "Incorrect comment.",
"eof-in-comment":
- _("Unexpected end of file in comment."),
+ "Unexpected end of file in comment.",
"eof-in-comment-end-dash":
- _("Unexpected end of file in comment (-)"),
+ "Unexpected end of file in comment (-)",
"unexpected-dash-after-double-dash-in-comment":
- _("Unexpected '-' after '--' found in comment."),
+ "Unexpected '-' after '--' found in comment.",
"eof-in-comment-double-dash":
- _("Unexpected end of file in comment (--)."),
+ "Unexpected end of file in comment (--).",
"eof-in-comment-end-space-state":
- _("Unexpected end of file in comment."),
+ "Unexpected end of file in comment.",
"eof-in-comment-end-bang-state":
- _("Unexpected end of file in comment."),
+ "Unexpected end of file in comment.",
"unexpected-char-in-comment":
- _("Unexpected character in comment found."),
+ "Unexpected character in comment found.",
"need-space-after-doctype":
- _("No space after literal string 'DOCTYPE'."),
+ "No space after literal string 'DOCTYPE'.",
"expected-doctype-name-but-got-right-bracket":
- _("Unexpected > character. Expected DOCTYPE name."),
+ "Unexpected > character. Expected DOCTYPE name.",
"expected-doctype-name-but-got-eof":
- _("Unexpected end of file. Expected DOCTYPE name."),
+ "Unexpected end of file. Expected DOCTYPE name.",
"eof-in-doctype-name":
- _("Unexpected end of file in DOCTYPE name."),
+ "Unexpected end of file in DOCTYPE name.",
"eof-in-doctype":
- _("Unexpected end of file in DOCTYPE."),
+ "Unexpected end of file in DOCTYPE.",
"expected-space-or-right-bracket-in-doctype":
- _("Expected space or '>'. Got '%(data)s'"),
+ "Expected space or '>'. Got '%(data)s'",
"unexpected-end-of-doctype":
- _("Unexpected end of DOCTYPE."),
+ "Unexpected end of DOCTYPE.",
"unexpected-char-in-doctype":
- _("Unexpected character in DOCTYPE."),
+ "Unexpected character in DOCTYPE.",
"eof-in-innerhtml":
- _("XXX innerHTML EOF"),
+ "XXX innerHTML EOF",
"unexpected-doctype":
- _("Unexpected DOCTYPE. Ignored."),
+ "Unexpected DOCTYPE. Ignored.",
"non-html-root":
- _("html needs to be the first start tag."),
+ "html needs to be the first start tag.",
"expected-doctype-but-got-eof":
- _("Unexpected End of file. Expected DOCTYPE."),
+ "Unexpected End of file. Expected DOCTYPE.",
"unknown-doctype":
- _("Erroneous DOCTYPE."),
+ "Erroneous DOCTYPE.",
"expected-doctype-but-got-chars":
- _("Unexpected non-space characters. Expected DOCTYPE."),
+ "Unexpected non-space characters. Expected DOCTYPE.",
"expected-doctype-but-got-start-tag":
- _("Unexpected start tag (%(name)s). Expected DOCTYPE."),
+ "Unexpected start tag (%(name)s). Expected DOCTYPE.",
"expected-doctype-but-got-end-tag":
- _("Unexpected end tag (%(name)s). Expected DOCTYPE."),
+ "Unexpected end tag (%(name)s). Expected DOCTYPE.",
"end-tag-after-implied-root":
- _("Unexpected end tag (%(name)s) after the (implied) root element."),
+ "Unexpected end tag (%(name)s) after the (implied) root element.",
"expected-named-closing-tag-but-got-eof":
- _("Unexpected end of file. Expected end tag (%(name)s)."),
+ "Unexpected end of file. Expected end tag (%(name)s).",
"two-heads-are-not-better-than-one":
- _("Unexpected start tag head in existing head. Ignored."),
+ "Unexpected start tag head in existing head. Ignored.",
"unexpected-end-tag":
- _("Unexpected end tag (%(name)s). Ignored."),
+ "Unexpected end tag (%(name)s). Ignored.",
"unexpected-start-tag-out-of-my-head":
- _("Unexpected start tag (%(name)s) that can be in head. Moved."),
+ "Unexpected start tag (%(name)s) that can be in head. Moved.",
"unexpected-start-tag":
- _("Unexpected start tag (%(name)s)."),
+ "Unexpected start tag (%(name)s).",
"missing-end-tag":
- _("Missing end tag (%(name)s)."),
+ "Missing end tag (%(name)s).",
"missing-end-tags":
- _("Missing end tags (%(name)s)."),
+ "Missing end tags (%(name)s).",
"unexpected-start-tag-implies-end-tag":
- _("Unexpected start tag (%(startName)s) "
- "implies end tag (%(endName)s)."),
+ "Unexpected start tag (%(startName)s) "
+ "implies end tag (%(endName)s).",
"unexpected-start-tag-treated-as":
- _("Unexpected start tag (%(originalName)s). Treated as %(newName)s."),
+ "Unexpected start tag (%(originalName)s). Treated as %(newName)s.",
"deprecated-tag":
- _("Unexpected start tag %(name)s. Don't use it!"),
+ "Unexpected start tag %(name)s. Don't use it!",
"unexpected-start-tag-ignored":
- _("Unexpected start tag %(name)s. Ignored."),
+ "Unexpected start tag %(name)s. Ignored.",
"expected-one-end-tag-but-got-another":
- _("Unexpected end tag (%(gotName)s). "
- "Missing end tag (%(expectedName)s)."),
+ "Unexpected end tag (%(gotName)s). "
+ "Missing end tag (%(expectedName)s).",
"end-tag-too-early":
- _("End tag (%(name)s) seen too early. Expected other end tag."),
+ "End tag (%(name)s) seen too early. Expected other end tag.",
"end-tag-too-early-named":
- _("Unexpected end tag (%(gotName)s). Expected end tag (%(expectedName)s)."),
+ "Unexpected end tag (%(gotName)s). Expected end tag (%(expectedName)s).",
"end-tag-too-early-ignored":
- _("End tag (%(name)s) seen too early. Ignored."),
+ "End tag (%(name)s) seen too early. Ignored.",
"adoption-agency-1.1":
- _("End tag (%(name)s) violates step 1, "
- "paragraph 1 of the adoption agency algorithm."),
+ "End tag (%(name)s) violates step 1, "
+ "paragraph 1 of the adoption agency algorithm.",
"adoption-agency-1.2":
- _("End tag (%(name)s) violates step 1, "
- "paragraph 2 of the adoption agency algorithm."),
+ "End tag (%(name)s) violates step 1, "
+ "paragraph 2 of the adoption agency algorithm.",
"adoption-agency-1.3":
- _("End tag (%(name)s) violates step 1, "
- "paragraph 3 of the adoption agency algorithm."),
+ "End tag (%(name)s) violates step 1, "
+ "paragraph 3 of the adoption agency algorithm.",
"adoption-agency-4.4":
- _("End tag (%(name)s) violates step 4, "
- "paragraph 4 of the adoption agency algorithm."),
+ "End tag (%(name)s) violates step 4, "
+ "paragraph 4 of the adoption agency algorithm.",
"unexpected-end-tag-treated-as":
- _("Unexpected end tag (%(originalName)s). Treated as %(newName)s."),
+ "Unexpected end tag (%(originalName)s). Treated as %(newName)s.",
"no-end-tag":
- _("This element (%(name)s) has no end tag."),
+ "This element (%(name)s) has no end tag.",
"unexpected-implied-end-tag-in-table":
- _("Unexpected implied end tag (%(name)s) in the table phase."),
+ "Unexpected implied end tag (%(name)s) in the table phase.",
"unexpected-implied-end-tag-in-table-body":
- _("Unexpected implied end tag (%(name)s) in the table body phase."),
+ "Unexpected implied end tag (%(name)s) in the table body phase.",
"unexpected-char-implies-table-voodoo":
- _("Unexpected non-space characters in "
- "table context caused voodoo mode."),
+ "Unexpected non-space characters in "
+ "table context caused voodoo mode.",
"unexpected-hidden-input-in-table":
- _("Unexpected input with type hidden in table context."),
+ "Unexpected input with type hidden in table context.",
"unexpected-form-in-table":
- _("Unexpected form in table context."),
+ "Unexpected form in table context.",
"unexpected-start-tag-implies-table-voodoo":
- _("Unexpected start tag (%(name)s) in "
- "table context caused voodoo mode."),
+ "Unexpected start tag (%(name)s) in "
+ "table context caused voodoo mode.",
"unexpected-end-tag-implies-table-voodoo":
- _("Unexpected end tag (%(name)s) in "
- "table context caused voodoo mode."),
+ "Unexpected end tag (%(name)s) in "
+ "table context caused voodoo mode.",
"unexpected-cell-in-table-body":
- _("Unexpected table cell start tag (%(name)s) "
- "in the table body phase."),
+ "Unexpected table cell start tag (%(name)s) "
+ "in the table body phase.",
"unexpected-cell-end-tag":
- _("Got table cell end tag (%(name)s) "
- "while required end tags are missing."),
+ "Got table cell end tag (%(name)s) "
+ "while required end tags are missing.",
"unexpected-end-tag-in-table-body":
- _("Unexpected end tag (%(name)s) in the table body phase. Ignored."),
+ "Unexpected end tag (%(name)s) in the table body phase. Ignored.",
"unexpected-implied-end-tag-in-table-row":
- _("Unexpected implied end tag (%(name)s) in the table row phase."),
+ "Unexpected implied end tag (%(name)s) in the table row phase.",
"unexpected-end-tag-in-table-row":
- _("Unexpected end tag (%(name)s) in the table row phase. Ignored."),
+ "Unexpected end tag (%(name)s) in the table row phase. Ignored.",
"unexpected-select-in-select":
- _("Unexpected select start tag in the select phase "
- "treated as select end tag."),
+ "Unexpected select start tag in the select phase "
+ "treated as select end tag.",
"unexpected-input-in-select":
- _("Unexpected input start tag in the select phase."),
+ "Unexpected input start tag in the select phase.",
"unexpected-start-tag-in-select":
- _("Unexpected start tag token (%(name)s in the select phase. "
- "Ignored."),
+ "Unexpected start tag token (%(name)s in the select phase. "
+ "Ignored.",
"unexpected-end-tag-in-select":
- _("Unexpected end tag (%(name)s) in the select phase. Ignored."),
+ "Unexpected end tag (%(name)s) in the select phase. Ignored.",
"unexpected-table-element-start-tag-in-select-in-table":
- _("Unexpected table element start tag (%(name)s) in the select in table phase."),
+ "Unexpected table element start tag (%(name)s) in the select in table phase.",
"unexpected-table-element-end-tag-in-select-in-table":
- _("Unexpected table element end tag (%(name)s) in the select in table phase."),
+ "Unexpected table element end tag (%(name)s) in the select in table phase.",
"unexpected-char-after-body":
- _("Unexpected non-space characters in the after body phase."),
+ "Unexpected non-space characters in the after body phase.",
"unexpected-start-tag-after-body":
- _("Unexpected start tag token (%(name)s)"
- " in the after body phase."),
+ "Unexpected start tag token (%(name)s)"
+ " in the after body phase.",
"unexpected-end-tag-after-body":
- _("Unexpected end tag token (%(name)s)"
- " in the after body phase."),
+ "Unexpected end tag token (%(name)s)"
+ " in the after body phase.",
"unexpected-char-in-frameset":
- _("Unexpected characters in the frameset phase. Characters ignored."),
+ "Unexpected characters in the frameset phase. Characters ignored.",
"unexpected-start-tag-in-frameset":
- _("Unexpected start tag token (%(name)s)"
- " in the frameset phase. Ignored."),
+ "Unexpected start tag token (%(name)s)"
+ " in the frameset phase. Ignored.",
"unexpected-frameset-in-frameset-innerhtml":
- _("Unexpected end tag token (frameset) "
- "in the frameset phase (innerHTML)."),
+ "Unexpected end tag token (frameset) "
+ "in the frameset phase (innerHTML).",
"unexpected-end-tag-in-frameset":
- _("Unexpected end tag token (%(name)s)"
- " in the frameset phase. Ignored."),
+ "Unexpected end tag token (%(name)s)"
+ " in the frameset phase. Ignored.",
"unexpected-char-after-frameset":
- _("Unexpected non-space characters in the "
- "after frameset phase. Ignored."),
+ "Unexpected non-space characters in the "
+ "after frameset phase. Ignored.",
"unexpected-start-tag-after-frameset":
- _("Unexpected start tag (%(name)s)"
- " in the after frameset phase. Ignored."),
+ "Unexpected start tag (%(name)s)"
+ " in the after frameset phase. Ignored.",
"unexpected-end-tag-after-frameset":
- _("Unexpected end tag (%(name)s)"
- " in the after frameset phase. Ignored."),
+ "Unexpected end tag (%(name)s)"
+ " in the after frameset phase. Ignored.",
"unexpected-end-tag-after-body-innerhtml":
- _("Unexpected end tag after body(innerHtml)"),
+ "Unexpected end tag after body(innerHtml)",
"expected-eof-but-got-char":
- _("Unexpected non-space characters. Expected end of file."),
+ "Unexpected non-space characters. Expected end of file.",
"expected-eof-but-got-start-tag":
- _("Unexpected start tag (%(name)s)"
- ". Expected end of file."),
+ "Unexpected start tag (%(name)s)"
+ ". Expected end of file.",
"expected-eof-but-got-end-tag":
- _("Unexpected end tag (%(name)s)"
- ". Expected end of file."),
+ "Unexpected end tag (%(name)s)"
+ ". Expected end of file.",
"eof-in-table":
- _("Unexpected end of file. Expected table content."),
+ "Unexpected end of file. Expected table content.",
"eof-in-select":
- _("Unexpected end of file. Expected select content."),
+ "Unexpected end of file. Expected select content.",
"eof-in-frameset":
- _("Unexpected end of file. Expected frameset content."),
+ "Unexpected end of file. Expected frameset content.",
"eof-in-script-in-script":
- _("Unexpected end of file. Expected script content."),
+ "Unexpected end of file. Expected script content.",
"eof-in-foreign-lands":
- _("Unexpected end of file. Expected foreign content"),
+ "Unexpected end of file. Expected foreign content",
"non-void-element-with-trailing-solidus":
- _("Trailing solidus not allowed on element %(name)s"),
+ "Trailing solidus not allowed on element %(name)s",
"unexpected-html-element-in-foreign-content":
- _("Element %(name)s not allowed in a non-html context"),
+ "Element %(name)s not allowed in a non-html context",
"unexpected-end-tag-before-html":
- _("Unexpected end tag (%(name)s) before html."),
+ "Unexpected end tag (%(name)s) before html.",
+ "unexpected-inhead-noscript-tag":
+ "Element %(name)s not allowed in a inhead-noscript context",
+ "eof-in-head-noscript":
+ "Unexpected end of file. Expected inhead-noscript content",
+ "char-in-head-noscript":
+ "Unexpected non-space character. Expected inhead-noscript content",
"XXX-undefined-error":
- _("Undefined error (this sucks and should be fixed)"),
+ "Undefined error (this sucks and should be fixed)",
}
namespaces = {
@@ -298,7 +302,7 @@ namespaces = {
"xmlns": "http://www.w3.org/2000/xmlns/"
}
-scopingElements = frozenset((
+scopingElements = frozenset([
(namespaces["html"], "applet"),
(namespaces["html"], "caption"),
(namespaces["html"], "html"),
@@ -316,9 +320,9 @@ scopingElements = frozenset((
(namespaces["svg"], "foreignObject"),
(namespaces["svg"], "desc"),
(namespaces["svg"], "title"),
-))
+])
-formattingElements = frozenset((
+formattingElements = frozenset([
(namespaces["html"], "a"),
(namespaces["html"], "b"),
(namespaces["html"], "big"),
@@ -333,9 +337,9 @@ formattingElements = frozenset((
(namespaces["html"], "strong"),
(namespaces["html"], "tt"),
(namespaces["html"], "u")
-))
+])
-specialElements = frozenset((
+specialElements = frozenset([
(namespaces["html"], "address"),
(namespaces["html"], "applet"),
(namespaces["html"], "area"),
@@ -416,22 +420,89 @@ specialElements = frozenset((
(namespaces["html"], "wbr"),
(namespaces["html"], "xmp"),
(namespaces["svg"], "foreignObject")
-))
+])
-htmlIntegrationPointElements = frozenset((
- (namespaces["mathml"], "annotaion-xml"),
+htmlIntegrationPointElements = frozenset([
+ (namespaces["mathml"], "annotation-xml"),
(namespaces["svg"], "foreignObject"),
(namespaces["svg"], "desc"),
(namespaces["svg"], "title")
-))
+])
-mathmlTextIntegrationPointElements = frozenset((
+mathmlTextIntegrationPointElements = frozenset([
(namespaces["mathml"], "mi"),
(namespaces["mathml"], "mo"),
(namespaces["mathml"], "mn"),
(namespaces["mathml"], "ms"),
(namespaces["mathml"], "mtext")
-))
+])
+
+adjustSVGAttributes = {
+ "attributename": "attributeName",
+ "attributetype": "attributeType",
+ "basefrequency": "baseFrequency",
+ "baseprofile": "baseProfile",
+ "calcmode": "calcMode",
+ "clippathunits": "clipPathUnits",
+ "contentscripttype": "contentScriptType",
+ "contentstyletype": "contentStyleType",
+ "diffuseconstant": "diffuseConstant",
+ "edgemode": "edgeMode",
+ "externalresourcesrequired": "externalResourcesRequired",
+ "filterres": "filterRes",
+ "filterunits": "filterUnits",
+ "glyphref": "glyphRef",
+ "gradienttransform": "gradientTransform",
+ "gradientunits": "gradientUnits",
+ "kernelmatrix": "kernelMatrix",
+ "kernelunitlength": "kernelUnitLength",
+ "keypoints": "keyPoints",
+ "keysplines": "keySplines",
+ "keytimes": "keyTimes",
+ "lengthadjust": "lengthAdjust",
+ "limitingconeangle": "limitingConeAngle",
+ "markerheight": "markerHeight",
+ "markerunits": "markerUnits",
+ "markerwidth": "markerWidth",
+ "maskcontentunits": "maskContentUnits",
+ "maskunits": "maskUnits",
+ "numoctaves": "numOctaves",
+ "pathlength": "pathLength",
+ "patterncontentunits": "patternContentUnits",
+ "patterntransform": "patternTransform",
+ "patternunits": "patternUnits",
+ "pointsatx": "pointsAtX",
+ "pointsaty": "pointsAtY",
+ "pointsatz": "pointsAtZ",
+ "preservealpha": "preserveAlpha",
+ "preserveaspectratio": "preserveAspectRatio",
+ "primitiveunits": "primitiveUnits",
+ "refx": "refX",
+ "refy": "refY",
+ "repeatcount": "repeatCount",
+ "repeatdur": "repeatDur",
+ "requiredextensions": "requiredExtensions",
+ "requiredfeatures": "requiredFeatures",
+ "specularconstant": "specularConstant",
+ "specularexponent": "specularExponent",
+ "spreadmethod": "spreadMethod",
+ "startoffset": "startOffset",
+ "stddeviation": "stdDeviation",
+ "stitchtiles": "stitchTiles",
+ "surfacescale": "surfaceScale",
+ "systemlanguage": "systemLanguage",
+ "tablevalues": "tableValues",
+ "targetx": "targetX",
+ "targety": "targetY",
+ "textlength": "textLength",
+ "viewbox": "viewBox",
+ "viewtarget": "viewTarget",
+ "xchannelselector": "xChannelSelector",
+ "ychannelselector": "yChannelSelector",
+ "zoomandpan": "zoomAndPan"
+}
+
+adjustMathMLAttributes = {"definitionurl": "definitionURL"}
adjustForeignAttributes = {
"xlink:actuate": ("xlink", "actuate", namespaces["xlink"]),
@@ -451,21 +522,21 @@ adjustForeignAttributes = {
unadjustForeignAttributes = dict([((ns, local), qname) for qname, (prefix, local, ns) in
adjustForeignAttributes.items()])
-spaceCharacters = frozenset((
+spaceCharacters = frozenset([
"\t",
"\n",
"\u000C",
" ",
"\r"
-))
+])
-tableInsertModeElements = frozenset((
+tableInsertModeElements = frozenset([
"table",
"tbody",
"tfoot",
"thead",
"tr"
-))
+])
asciiLowercase = frozenset(string.ascii_lowercase)
asciiUppercase = frozenset(string.ascii_uppercase)
@@ -486,7 +557,7 @@ headingElements = (
"h6"
)
-voidElements = frozenset((
+voidElements = frozenset([
"base",
"command",
"event-source",
@@ -502,11 +573,11 @@ voidElements = frozenset((
"input",
"source",
"track"
-))
+])
-cdataElements = frozenset(('title', 'textarea'))
+cdataElements = frozenset(['title', 'textarea'])
-rcdataElements = frozenset((
+rcdataElements = frozenset([
'style',
'script',
'xmp',
@@ -514,27 +585,28 @@ rcdataElements = frozenset((
'noembed',
'noframes',
'noscript'
-))
+])
booleanAttributes = {
- "": frozenset(("irrelevant",)),
- "style": frozenset(("scoped",)),
- "img": frozenset(("ismap",)),
- "audio": frozenset(("autoplay", "controls")),
- "video": frozenset(("autoplay", "controls")),
- "script": frozenset(("defer", "async")),
- "details": frozenset(("open",)),
- "datagrid": frozenset(("multiple", "disabled")),
- "command": frozenset(("hidden", "disabled", "checked", "default")),
- "hr": frozenset(("noshade")),
- "menu": frozenset(("autosubmit",)),
- "fieldset": frozenset(("disabled", "readonly")),
- "option": frozenset(("disabled", "readonly", "selected")),
- "optgroup": frozenset(("disabled", "readonly")),
- "button": frozenset(("disabled", "autofocus")),
- "input": frozenset(("disabled", "readonly", "required", "autofocus", "checked", "ismap")),
- "select": frozenset(("disabled", "readonly", "autofocus", "multiple")),
- "output": frozenset(("disabled", "readonly")),
+ "": frozenset(["irrelevant", "itemscope"]),
+ "style": frozenset(["scoped"]),
+ "img": frozenset(["ismap"]),
+ "audio": frozenset(["autoplay", "controls"]),
+ "video": frozenset(["autoplay", "controls"]),
+ "script": frozenset(["defer", "async"]),
+ "details": frozenset(["open"]),
+ "datagrid": frozenset(["multiple", "disabled"]),
+ "command": frozenset(["hidden", "disabled", "checked", "default"]),
+ "hr": frozenset(["noshade"]),
+ "menu": frozenset(["autosubmit"]),
+ "fieldset": frozenset(["disabled", "readonly"]),
+ "option": frozenset(["disabled", "readonly", "selected"]),
+ "optgroup": frozenset(["disabled", "readonly"]),
+ "button": frozenset(["disabled", "autofocus"]),
+ "input": frozenset(["disabled", "readonly", "required", "autofocus", "checked", "ismap"]),
+ "select": frozenset(["disabled", "readonly", "autofocus", "multiple"]),
+ "output": frozenset(["disabled", "readonly"]),
+ "iframe": frozenset(["seamless"]),
}
# entitiesWindows1252 has to be _ordered_ and needs to have an index. It
@@ -574,7 +646,7 @@ entitiesWindows1252 = (
376 # 0x9F 0x0178 LATIN CAPITAL LETTER Y WITH DIAERESIS
)
-xmlEntities = frozenset(('lt;', 'gt;', 'amp;', 'apos;', 'quot;'))
+xmlEntities = frozenset(['lt;', 'gt;', 'amp;', 'apos;', 'quot;'])
entities = {
"AElig": "\xc6",
@@ -2815,7 +2887,6 @@ replacementCharacters = {
0x0d: "\u000D",
0x80: "\u20AC",
0x81: "\u0081",
- 0x81: "\u0081",
0x82: "\u201A",
0x83: "\u0192",
0x84: "\u201E",
@@ -2848,235 +2919,6 @@ replacementCharacters = {
0x9F: "\u0178",
}
-encodings = {
- '437': 'cp437',
- '850': 'cp850',
- '852': 'cp852',
- '855': 'cp855',
- '857': 'cp857',
- '860': 'cp860',
- '861': 'cp861',
- '862': 'cp862',
- '863': 'cp863',
- '865': 'cp865',
- '866': 'cp866',
- '869': 'cp869',
- 'ansix341968': 'ascii',
- 'ansix341986': 'ascii',
- 'arabic': 'iso8859-6',
- 'ascii': 'ascii',
- 'asmo708': 'iso8859-6',
- 'big5': 'big5',
- 'big5hkscs': 'big5hkscs',
- 'chinese': 'gbk',
- 'cp037': 'cp037',
- 'cp1026': 'cp1026',
- 'cp154': 'ptcp154',
- 'cp367': 'ascii',
- 'cp424': 'cp424',
- 'cp437': 'cp437',
- 'cp500': 'cp500',
- 'cp775': 'cp775',
- 'cp819': 'windows-1252',
- 'cp850': 'cp850',
- 'cp852': 'cp852',
- 'cp855': 'cp855',
- 'cp857': 'cp857',
- 'cp860': 'cp860',
- 'cp861': 'cp861',
- 'cp862': 'cp862',
- 'cp863': 'cp863',
- 'cp864': 'cp864',
- 'cp865': 'cp865',
- 'cp866': 'cp866',
- 'cp869': 'cp869',
- 'cp936': 'gbk',
- 'cpgr': 'cp869',
- 'cpis': 'cp861',
- 'csascii': 'ascii',
- 'csbig5': 'big5',
- 'cseuckr': 'cp949',
- 'cseucpkdfmtjapanese': 'euc_jp',
- 'csgb2312': 'gbk',
- 'cshproman8': 'hp-roman8',
- 'csibm037': 'cp037',
- 'csibm1026': 'cp1026',
- 'csibm424': 'cp424',
- 'csibm500': 'cp500',
- 'csibm855': 'cp855',
- 'csibm857': 'cp857',
- 'csibm860': 'cp860',
- 'csibm861': 'cp861',
- 'csibm863': 'cp863',
- 'csibm864': 'cp864',
- 'csibm865': 'cp865',
- 'csibm866': 'cp866',
- 'csibm869': 'cp869',
- 'csiso2022jp': 'iso2022_jp',
- 'csiso2022jp2': 'iso2022_jp_2',
- 'csiso2022kr': 'iso2022_kr',
- 'csiso58gb231280': 'gbk',
- 'csisolatin1': 'windows-1252',
- 'csisolatin2': 'iso8859-2',
- 'csisolatin3': 'iso8859-3',
- 'csisolatin4': 'iso8859-4',
- 'csisolatin5': 'windows-1254',
- 'csisolatin6': 'iso8859-10',
- 'csisolatinarabic': 'iso8859-6',
- 'csisolatincyrillic': 'iso8859-5',
- 'csisolatingreek': 'iso8859-7',
- 'csisolatinhebrew': 'iso8859-8',
- 'cskoi8r': 'koi8-r',
- 'csksc56011987': 'cp949',
- 'cspc775baltic': 'cp775',
- 'cspc850multilingual': 'cp850',
- 'cspc862latinhebrew': 'cp862',
- 'cspc8codepage437': 'cp437',
- 'cspcp852': 'cp852',
- 'csptcp154': 'ptcp154',
- 'csshiftjis': 'shift_jis',
- 'csunicode11utf7': 'utf-7',
- 'cyrillic': 'iso8859-5',
- 'cyrillicasian': 'ptcp154',
- 'ebcdiccpbe': 'cp500',
- 'ebcdiccpca': 'cp037',
- 'ebcdiccpch': 'cp500',
- 'ebcdiccphe': 'cp424',
- 'ebcdiccpnl': 'cp037',
- 'ebcdiccpus': 'cp037',
- 'ebcdiccpwt': 'cp037',
- 'ecma114': 'iso8859-6',
- 'ecma118': 'iso8859-7',
- 'elot928': 'iso8859-7',
- 'eucjp': 'euc_jp',
- 'euckr': 'cp949',
- 'extendedunixcodepackedformatforjapanese': 'euc_jp',
- 'gb18030': 'gb18030',
- 'gb2312': 'gbk',
- 'gb231280': 'gbk',
- 'gbk': 'gbk',
- 'greek': 'iso8859-7',
- 'greek8': 'iso8859-7',
- 'hebrew': 'iso8859-8',
- 'hproman8': 'hp-roman8',
- 'hzgb2312': 'hz',
- 'ibm037': 'cp037',
- 'ibm1026': 'cp1026',
- 'ibm367': 'ascii',
- 'ibm424': 'cp424',
- 'ibm437': 'cp437',
- 'ibm500': 'cp500',
- 'ibm775': 'cp775',
- 'ibm819': 'windows-1252',
- 'ibm850': 'cp850',
- 'ibm852': 'cp852',
- 'ibm855': 'cp855',
- 'ibm857': 'cp857',
- 'ibm860': 'cp860',
- 'ibm861': 'cp861',
- 'ibm862': 'cp862',
- 'ibm863': 'cp863',
- 'ibm864': 'cp864',
- 'ibm865': 'cp865',
- 'ibm866': 'cp866',
- 'ibm869': 'cp869',
- 'iso2022jp': 'iso2022_jp',
- 'iso2022jp2': 'iso2022_jp_2',
- 'iso2022kr': 'iso2022_kr',
- 'iso646irv1991': 'ascii',
- 'iso646us': 'ascii',
- 'iso88591': 'windows-1252',
- 'iso885910': 'iso8859-10',
- 'iso8859101992': 'iso8859-10',
- 'iso885911987': 'windows-1252',
- 'iso885913': 'iso8859-13',
- 'iso885914': 'iso8859-14',
- 'iso8859141998': 'iso8859-14',
- 'iso885915': 'iso8859-15',
- 'iso885916': 'iso8859-16',
- 'iso8859162001': 'iso8859-16',
- 'iso88592': 'iso8859-2',
- 'iso885921987': 'iso8859-2',
- 'iso88593': 'iso8859-3',
- 'iso885931988': 'iso8859-3',
- 'iso88594': 'iso8859-4',
- 'iso885941988': 'iso8859-4',
- 'iso88595': 'iso8859-5',
- 'iso885951988': 'iso8859-5',
- 'iso88596': 'iso8859-6',
- 'iso885961987': 'iso8859-6',
- 'iso88597': 'iso8859-7',
- 'iso885971987': 'iso8859-7',
- 'iso88598': 'iso8859-8',
- 'iso885981988': 'iso8859-8',
- 'iso88599': 'windows-1254',
- 'iso885991989': 'windows-1254',
- 'isoceltic': 'iso8859-14',
- 'isoir100': 'windows-1252',
- 'isoir101': 'iso8859-2',
- 'isoir109': 'iso8859-3',
- 'isoir110': 'iso8859-4',
- 'isoir126': 'iso8859-7',
- 'isoir127': 'iso8859-6',
- 'isoir138': 'iso8859-8',
- 'isoir144': 'iso8859-5',
- 'isoir148': 'windows-1254',
- 'isoir149': 'cp949',
- 'isoir157': 'iso8859-10',
- 'isoir199': 'iso8859-14',
- 'isoir226': 'iso8859-16',
- 'isoir58': 'gbk',
- 'isoir6': 'ascii',
- 'koi8r': 'koi8-r',
- 'koi8u': 'koi8-u',
- 'korean': 'cp949',
- 'ksc5601': 'cp949',
- 'ksc56011987': 'cp949',
- 'ksc56011989': 'cp949',
- 'l1': 'windows-1252',
- 'l10': 'iso8859-16',
- 'l2': 'iso8859-2',
- 'l3': 'iso8859-3',
- 'l4': 'iso8859-4',
- 'l5': 'windows-1254',
- 'l6': 'iso8859-10',
- 'l8': 'iso8859-14',
- 'latin1': 'windows-1252',
- 'latin10': 'iso8859-16',
- 'latin2': 'iso8859-2',
- 'latin3': 'iso8859-3',
- 'latin4': 'iso8859-4',
- 'latin5': 'windows-1254',
- 'latin6': 'iso8859-10',
- 'latin8': 'iso8859-14',
- 'latin9': 'iso8859-15',
- 'ms936': 'gbk',
- 'mskanji': 'shift_jis',
- 'pt154': 'ptcp154',
- 'ptcp154': 'ptcp154',
- 'r8': 'hp-roman8',
- 'roman8': 'hp-roman8',
- 'shiftjis': 'shift_jis',
- 'tis620': 'cp874',
- 'unicode11utf7': 'utf-7',
- 'us': 'ascii',
- 'usascii': 'ascii',
- 'utf16': 'utf-16',
- 'utf16be': 'utf-16-be',
- 'utf16le': 'utf-16-le',
- 'utf8': 'utf-8',
- 'windows1250': 'cp1250',
- 'windows1251': 'cp1251',
- 'windows1252': 'cp1252',
- 'windows1253': 'cp1253',
- 'windows1254': 'cp1254',
- 'windows1255': 'cp1255',
- 'windows1256': 'cp1256',
- 'windows1257': 'cp1257',
- 'windows1258': 'cp1258',
- 'windows936': 'gbk',
- 'x-x-big5': 'big5'}
-
tokenTypes = {
"Doctype": 0,
"Characters": 1,
@@ -3088,8 +2930,8 @@ tokenTypes = {
"ParseError": 7
}
-tagTokenTypes = frozenset((tokenTypes["StartTag"], tokenTypes["EndTag"],
- tokenTypes["EmptyTag"]))
+tagTokenTypes = frozenset([tokenTypes["StartTag"], tokenTypes["EndTag"],
+ tokenTypes["EmptyTag"]])
prefixes = dict([(v, k) for k, v in namespaces.items()])
@@ -3097,8 +2939,9 @@ prefixes["http://www.w3.org/1998/Math/MathML"] = "math"
class DataLossWarning(UserWarning):
+ """Raised when the current tree is unable to represent the input data"""
pass
-class ReparseException(Exception):
+class _ReparseException(Exception):
pass
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/__init__.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/__init__.py
index e69de29bb2d..e69de29bb2d 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/__init__.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/__init__.py
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/alphabeticalattributes.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/alphabeticalattributes.py
new file mode 100644
index 00000000000..5ba926e3b09
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/alphabeticalattributes.py
@@ -0,0 +1,29 @@
+from __future__ import absolute_import, division, unicode_literals
+
+from . import base
+
+from collections import OrderedDict
+
+
+def _attr_key(attr):
+ """Return an appropriate key for an attribute for sorting
+
+ Attributes have a namespace that can be either ``None`` or a string. We
+ can't compare the two because they're different types, so we convert
+ ``None`` to an empty string first.
+
+ """
+ return (attr[0][0] or ''), attr[0][1]
+
+
+class Filter(base.Filter):
+ """Alphabetizes attributes for elements"""
+ def __iter__(self):
+ for token in base.Filter.__iter__(self):
+ if token["type"] in ("StartTag", "EmptyTag"):
+ attrs = OrderedDict()
+ for name, value in sorted(token["data"].items(),
+ key=_attr_key):
+ attrs[name] = value
+ token["data"] = attrs
+ yield token
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/_base.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/base.py
index c7dbaed0fab..c7dbaed0fab 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/_base.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/base.py
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/inject_meta_charset.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/inject_meta_charset.py
index ca33b70b530..aefb5c842c2 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/inject_meta_charset.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/inject_meta_charset.py
@@ -1,11 +1,19 @@
from __future__ import absolute_import, division, unicode_literals
-from . import _base
+from . import base
-class Filter(_base.Filter):
+class Filter(base.Filter):
+ """Injects ``<meta charset=ENCODING>`` tag into head of document"""
def __init__(self, source, encoding):
- _base.Filter.__init__(self, source)
+ """Creates a Filter
+
+ :arg source: the source token stream
+
+ :arg encoding: the encoding to set
+
+ """
+ base.Filter.__init__(self, source)
self.encoding = encoding
def __iter__(self):
@@ -13,7 +21,7 @@ class Filter(_base.Filter):
meta_found = (self.encoding is None)
pending = []
- for token in _base.Filter.__iter__(self):
+ for token in base.Filter.__iter__(self):
type = token["type"]
if type == "StartTag":
if token["name"].lower() == "head":
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/lint.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/lint.py
new file mode 100644
index 00000000000..acd4d7a2af1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/lint.py
@@ -0,0 +1,93 @@
+from __future__ import absolute_import, division, unicode_literals
+
+from six import text_type
+
+from . import base
+from ..constants import namespaces, voidElements
+
+from ..constants import spaceCharacters
+spaceCharacters = "".join(spaceCharacters)
+
+
+class Filter(base.Filter):
+ """Lints the token stream for errors
+
+ If it finds any errors, it'll raise an ``AssertionError``.
+
+ """
+ def __init__(self, source, require_matching_tags=True):
+ """Creates a Filter
+
+ :arg source: the source token stream
+
+ :arg require_matching_tags: whether or not to require matching tags
+
+ """
+ super(Filter, self).__init__(source)
+ self.require_matching_tags = require_matching_tags
+
+ def __iter__(self):
+ open_elements = []
+ for token in base.Filter.__iter__(self):
+ type = token["type"]
+ if type in ("StartTag", "EmptyTag"):
+ namespace = token["namespace"]
+ name = token["name"]
+ assert namespace is None or isinstance(namespace, text_type)
+ assert namespace != ""
+ assert isinstance(name, text_type)
+ assert name != ""
+ assert isinstance(token["data"], dict)
+ if (not namespace or namespace == namespaces["html"]) and name in voidElements:
+ assert type == "EmptyTag"
+ else:
+ assert type == "StartTag"
+ if type == "StartTag" and self.require_matching_tags:
+ open_elements.append((namespace, name))
+ for (namespace, name), value in token["data"].items():
+ assert namespace is None or isinstance(namespace, text_type)
+ assert namespace != ""
+ assert isinstance(name, text_type)
+ assert name != ""
+ assert isinstance(value, text_type)
+
+ elif type == "EndTag":
+ namespace = token["namespace"]
+ name = token["name"]
+ assert namespace is None or isinstance(namespace, text_type)
+ assert namespace != ""
+ assert isinstance(name, text_type)
+ assert name != ""
+ if (not namespace or namespace == namespaces["html"]) and name in voidElements:
+ assert False, "Void element reported as EndTag token: %(tag)s" % {"tag": name}
+ elif self.require_matching_tags:
+ start = open_elements.pop()
+ assert start == (namespace, name)
+
+ elif type == "Comment":
+ data = token["data"]
+ assert isinstance(data, text_type)
+
+ elif type in ("Characters", "SpaceCharacters"):
+ data = token["data"]
+ assert isinstance(data, text_type)
+ assert data != ""
+ if type == "SpaceCharacters":
+ assert data.strip(spaceCharacters) == ""
+
+ elif type == "Doctype":
+ name = token["name"]
+ assert name is None or isinstance(name, text_type)
+ assert token["publicId"] is None or isinstance(name, text_type)
+ assert token["systemId"] is None or isinstance(name, text_type)
+
+ elif type == "Entity":
+ assert isinstance(token["name"], text_type)
+
+ elif type == "SerializerError":
+ assert isinstance(token["data"], text_type)
+
+ else:
+ assert False, "Unknown token type: %(type)s" % {"type": type}
+
+ yield token
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/optionaltags.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/optionaltags.py
index fefe0b3097b..4a865012c16 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/optionaltags.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/optionaltags.py
@@ -1,9 +1,10 @@
from __future__ import absolute_import, division, unicode_literals
-from . import _base
+from . import base
-class Filter(_base.Filter):
+class Filter(base.Filter):
+ """Removes optional tags from the token stream"""
def slider(self):
previous1 = previous2 = None
for token in self.source:
@@ -11,7 +12,8 @@ class Filter(_base.Filter):
yield previous2, previous1, token
previous2 = previous1
previous1 = token
- yield previous2, previous1, None
+ if previous1 is not None:
+ yield previous2, previous1, None
def __iter__(self):
for previous, token, next in self.slider():
@@ -58,7 +60,7 @@ class Filter(_base.Filter):
elif tagname == 'colgroup':
# A colgroup element's start tag may be omitted if the first thing
# inside the colgroup element is a col element, and if the element
- # is not immediately preceeded by another colgroup element whose
+ # is not immediately preceded by another colgroup element whose
# end tag has been omitted.
if type in ("StartTag", "EmptyTag"):
# XXX: we do not look at the preceding event, so instead we never
@@ -70,7 +72,7 @@ class Filter(_base.Filter):
elif tagname == 'tbody':
# A tbody element's start tag may be omitted if the first thing
# inside the tbody element is a tr element, and if the element is
- # not immediately preceeded by a tbody, thead, or tfoot element
+ # not immediately preceded by a tbody, thead, or tfoot element
# whose end tag has been omitted.
if type == "StartTag":
# omit the thead and tfoot elements' end tag when they are
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/sanitizer.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/sanitizer.py
new file mode 100644
index 00000000000..e852f53be8a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/sanitizer.py
@@ -0,0 +1,896 @@
+from __future__ import absolute_import, division, unicode_literals
+
+import re
+from xml.sax.saxutils import escape, unescape
+
+from six.moves import urllib_parse as urlparse
+
+from . import base
+from ..constants import namespaces, prefixes
+
+__all__ = ["Filter"]
+
+
+allowed_elements = frozenset((
+ (namespaces['html'], 'a'),
+ (namespaces['html'], 'abbr'),
+ (namespaces['html'], 'acronym'),
+ (namespaces['html'], 'address'),
+ (namespaces['html'], 'area'),
+ (namespaces['html'], 'article'),
+ (namespaces['html'], 'aside'),
+ (namespaces['html'], 'audio'),
+ (namespaces['html'], 'b'),
+ (namespaces['html'], 'big'),
+ (namespaces['html'], 'blockquote'),
+ (namespaces['html'], 'br'),
+ (namespaces['html'], 'button'),
+ (namespaces['html'], 'canvas'),
+ (namespaces['html'], 'caption'),
+ (namespaces['html'], 'center'),
+ (namespaces['html'], 'cite'),
+ (namespaces['html'], 'code'),
+ (namespaces['html'], 'col'),
+ (namespaces['html'], 'colgroup'),
+ (namespaces['html'], 'command'),
+ (namespaces['html'], 'datagrid'),
+ (namespaces['html'], 'datalist'),
+ (namespaces['html'], 'dd'),
+ (namespaces['html'], 'del'),
+ (namespaces['html'], 'details'),
+ (namespaces['html'], 'dfn'),
+ (namespaces['html'], 'dialog'),
+ (namespaces['html'], 'dir'),
+ (namespaces['html'], 'div'),
+ (namespaces['html'], 'dl'),
+ (namespaces['html'], 'dt'),
+ (namespaces['html'], 'em'),
+ (namespaces['html'], 'event-source'),
+ (namespaces['html'], 'fieldset'),
+ (namespaces['html'], 'figcaption'),
+ (namespaces['html'], 'figure'),
+ (namespaces['html'], 'footer'),
+ (namespaces['html'], 'font'),
+ (namespaces['html'], 'form'),
+ (namespaces['html'], 'header'),
+ (namespaces['html'], 'h1'),
+ (namespaces['html'], 'h2'),
+ (namespaces['html'], 'h3'),
+ (namespaces['html'], 'h4'),
+ (namespaces['html'], 'h5'),
+ (namespaces['html'], 'h6'),
+ (namespaces['html'], 'hr'),
+ (namespaces['html'], 'i'),
+ (namespaces['html'], 'img'),
+ (namespaces['html'], 'input'),
+ (namespaces['html'], 'ins'),
+ (namespaces['html'], 'keygen'),
+ (namespaces['html'], 'kbd'),
+ (namespaces['html'], 'label'),
+ (namespaces['html'], 'legend'),
+ (namespaces['html'], 'li'),
+ (namespaces['html'], 'm'),
+ (namespaces['html'], 'map'),
+ (namespaces['html'], 'menu'),
+ (namespaces['html'], 'meter'),
+ (namespaces['html'], 'multicol'),
+ (namespaces['html'], 'nav'),
+ (namespaces['html'], 'nextid'),
+ (namespaces['html'], 'ol'),
+ (namespaces['html'], 'output'),
+ (namespaces['html'], 'optgroup'),
+ (namespaces['html'], 'option'),
+ (namespaces['html'], 'p'),
+ (namespaces['html'], 'pre'),
+ (namespaces['html'], 'progress'),
+ (namespaces['html'], 'q'),
+ (namespaces['html'], 's'),
+ (namespaces['html'], 'samp'),
+ (namespaces['html'], 'section'),
+ (namespaces['html'], 'select'),
+ (namespaces['html'], 'small'),
+ (namespaces['html'], 'sound'),
+ (namespaces['html'], 'source'),
+ (namespaces['html'], 'spacer'),
+ (namespaces['html'], 'span'),
+ (namespaces['html'], 'strike'),
+ (namespaces['html'], 'strong'),
+ (namespaces['html'], 'sub'),
+ (namespaces['html'], 'sup'),
+ (namespaces['html'], 'table'),
+ (namespaces['html'], 'tbody'),
+ (namespaces['html'], 'td'),
+ (namespaces['html'], 'textarea'),
+ (namespaces['html'], 'time'),
+ (namespaces['html'], 'tfoot'),
+ (namespaces['html'], 'th'),
+ (namespaces['html'], 'thead'),
+ (namespaces['html'], 'tr'),
+ (namespaces['html'], 'tt'),
+ (namespaces['html'], 'u'),
+ (namespaces['html'], 'ul'),
+ (namespaces['html'], 'var'),
+ (namespaces['html'], 'video'),
+ (namespaces['mathml'], 'maction'),
+ (namespaces['mathml'], 'math'),
+ (namespaces['mathml'], 'merror'),
+ (namespaces['mathml'], 'mfrac'),
+ (namespaces['mathml'], 'mi'),
+ (namespaces['mathml'], 'mmultiscripts'),
+ (namespaces['mathml'], 'mn'),
+ (namespaces['mathml'], 'mo'),
+ (namespaces['mathml'], 'mover'),
+ (namespaces['mathml'], 'mpadded'),
+ (namespaces['mathml'], 'mphantom'),
+ (namespaces['mathml'], 'mprescripts'),
+ (namespaces['mathml'], 'mroot'),
+ (namespaces['mathml'], 'mrow'),
+ (namespaces['mathml'], 'mspace'),
+ (namespaces['mathml'], 'msqrt'),
+ (namespaces['mathml'], 'mstyle'),
+ (namespaces['mathml'], 'msub'),
+ (namespaces['mathml'], 'msubsup'),
+ (namespaces['mathml'], 'msup'),
+ (namespaces['mathml'], 'mtable'),
+ (namespaces['mathml'], 'mtd'),
+ (namespaces['mathml'], 'mtext'),
+ (namespaces['mathml'], 'mtr'),
+ (namespaces['mathml'], 'munder'),
+ (namespaces['mathml'], 'munderover'),
+ (namespaces['mathml'], 'none'),
+ (namespaces['svg'], 'a'),
+ (namespaces['svg'], 'animate'),
+ (namespaces['svg'], 'animateColor'),
+ (namespaces['svg'], 'animateMotion'),
+ (namespaces['svg'], 'animateTransform'),
+ (namespaces['svg'], 'clipPath'),
+ (namespaces['svg'], 'circle'),
+ (namespaces['svg'], 'defs'),
+ (namespaces['svg'], 'desc'),
+ (namespaces['svg'], 'ellipse'),
+ (namespaces['svg'], 'font-face'),
+ (namespaces['svg'], 'font-face-name'),
+ (namespaces['svg'], 'font-face-src'),
+ (namespaces['svg'], 'g'),
+ (namespaces['svg'], 'glyph'),
+ (namespaces['svg'], 'hkern'),
+ (namespaces['svg'], 'linearGradient'),
+ (namespaces['svg'], 'line'),
+ (namespaces['svg'], 'marker'),
+ (namespaces['svg'], 'metadata'),
+ (namespaces['svg'], 'missing-glyph'),
+ (namespaces['svg'], 'mpath'),
+ (namespaces['svg'], 'path'),
+ (namespaces['svg'], 'polygon'),
+ (namespaces['svg'], 'polyline'),
+ (namespaces['svg'], 'radialGradient'),
+ (namespaces['svg'], 'rect'),
+ (namespaces['svg'], 'set'),
+ (namespaces['svg'], 'stop'),
+ (namespaces['svg'], 'svg'),
+ (namespaces['svg'], 'switch'),
+ (namespaces['svg'], 'text'),
+ (namespaces['svg'], 'title'),
+ (namespaces['svg'], 'tspan'),
+ (namespaces['svg'], 'use'),
+))
+
+allowed_attributes = frozenset((
+ # HTML attributes
+ (None, 'abbr'),
+ (None, 'accept'),
+ (None, 'accept-charset'),
+ (None, 'accesskey'),
+ (None, 'action'),
+ (None, 'align'),
+ (None, 'alt'),
+ (None, 'autocomplete'),
+ (None, 'autofocus'),
+ (None, 'axis'),
+ (None, 'background'),
+ (None, 'balance'),
+ (None, 'bgcolor'),
+ (None, 'bgproperties'),
+ (None, 'border'),
+ (None, 'bordercolor'),
+ (None, 'bordercolordark'),
+ (None, 'bordercolorlight'),
+ (None, 'bottompadding'),
+ (None, 'cellpadding'),
+ (None, 'cellspacing'),
+ (None, 'ch'),
+ (None, 'challenge'),
+ (None, 'char'),
+ (None, 'charoff'),
+ (None, 'choff'),
+ (None, 'charset'),
+ (None, 'checked'),
+ (None, 'cite'),
+ (None, 'class'),
+ (None, 'clear'),
+ (None, 'color'),
+ (None, 'cols'),
+ (None, 'colspan'),
+ (None, 'compact'),
+ (None, 'contenteditable'),
+ (None, 'controls'),
+ (None, 'coords'),
+ (None, 'data'),
+ (None, 'datafld'),
+ (None, 'datapagesize'),
+ (None, 'datasrc'),
+ (None, 'datetime'),
+ (None, 'default'),
+ (None, 'delay'),
+ (None, 'dir'),
+ (None, 'disabled'),
+ (None, 'draggable'),
+ (None, 'dynsrc'),
+ (None, 'enctype'),
+ (None, 'end'),
+ (None, 'face'),
+ (None, 'for'),
+ (None, 'form'),
+ (None, 'frame'),
+ (None, 'galleryimg'),
+ (None, 'gutter'),
+ (None, 'headers'),
+ (None, 'height'),
+ (None, 'hidefocus'),
+ (None, 'hidden'),
+ (None, 'high'),
+ (None, 'href'),
+ (None, 'hreflang'),
+ (None, 'hspace'),
+ (None, 'icon'),
+ (None, 'id'),
+ (None, 'inputmode'),
+ (None, 'ismap'),
+ (None, 'keytype'),
+ (None, 'label'),
+ (None, 'leftspacing'),
+ (None, 'lang'),
+ (None, 'list'),
+ (None, 'longdesc'),
+ (None, 'loop'),
+ (None, 'loopcount'),
+ (None, 'loopend'),
+ (None, 'loopstart'),
+ (None, 'low'),
+ (None, 'lowsrc'),
+ (None, 'max'),
+ (None, 'maxlength'),
+ (None, 'media'),
+ (None, 'method'),
+ (None, 'min'),
+ (None, 'multiple'),
+ (None, 'name'),
+ (None, 'nohref'),
+ (None, 'noshade'),
+ (None, 'nowrap'),
+ (None, 'open'),
+ (None, 'optimum'),
+ (None, 'pattern'),
+ (None, 'ping'),
+ (None, 'point-size'),
+ (None, 'poster'),
+ (None, 'pqg'),
+ (None, 'preload'),
+ (None, 'prompt'),
+ (None, 'radiogroup'),
+ (None, 'readonly'),
+ (None, 'rel'),
+ (None, 'repeat-max'),
+ (None, 'repeat-min'),
+ (None, 'replace'),
+ (None, 'required'),
+ (None, 'rev'),
+ (None, 'rightspacing'),
+ (None, 'rows'),
+ (None, 'rowspan'),
+ (None, 'rules'),
+ (None, 'scope'),
+ (None, 'selected'),
+ (None, 'shape'),
+ (None, 'size'),
+ (None, 'span'),
+ (None, 'src'),
+ (None, 'start'),
+ (None, 'step'),
+ (None, 'style'),
+ (None, 'summary'),
+ (None, 'suppress'),
+ (None, 'tabindex'),
+ (None, 'target'),
+ (None, 'template'),
+ (None, 'title'),
+ (None, 'toppadding'),
+ (None, 'type'),
+ (None, 'unselectable'),
+ (None, 'usemap'),
+ (None, 'urn'),
+ (None, 'valign'),
+ (None, 'value'),
+ (None, 'variable'),
+ (None, 'volume'),
+ (None, 'vspace'),
+ (None, 'vrml'),
+ (None, 'width'),
+ (None, 'wrap'),
+ (namespaces['xml'], 'lang'),
+ # MathML attributes
+ (None, 'actiontype'),
+ (None, 'align'),
+ (None, 'columnalign'),
+ (None, 'columnalign'),
+ (None, 'columnalign'),
+ (None, 'columnlines'),
+ (None, 'columnspacing'),
+ (None, 'columnspan'),
+ (None, 'depth'),
+ (None, 'display'),
+ (None, 'displaystyle'),
+ (None, 'equalcolumns'),
+ (None, 'equalrows'),
+ (None, 'fence'),
+ (None, 'fontstyle'),
+ (None, 'fontweight'),
+ (None, 'frame'),
+ (None, 'height'),
+ (None, 'linethickness'),
+ (None, 'lspace'),
+ (None, 'mathbackground'),
+ (None, 'mathcolor'),
+ (None, 'mathvariant'),
+ (None, 'mathvariant'),
+ (None, 'maxsize'),
+ (None, 'minsize'),
+ (None, 'other'),
+ (None, 'rowalign'),
+ (None, 'rowalign'),
+ (None, 'rowalign'),
+ (None, 'rowlines'),
+ (None, 'rowspacing'),
+ (None, 'rowspan'),
+ (None, 'rspace'),
+ (None, 'scriptlevel'),
+ (None, 'selection'),
+ (None, 'separator'),
+ (None, 'stretchy'),
+ (None, 'width'),
+ (None, 'width'),
+ (namespaces['xlink'], 'href'),
+ (namespaces['xlink'], 'show'),
+ (namespaces['xlink'], 'type'),
+ # SVG attributes
+ (None, 'accent-height'),
+ (None, 'accumulate'),
+ (None, 'additive'),
+ (None, 'alphabetic'),
+ (None, 'arabic-form'),
+ (None, 'ascent'),
+ (None, 'attributeName'),
+ (None, 'attributeType'),
+ (None, 'baseProfile'),
+ (None, 'bbox'),
+ (None, 'begin'),
+ (None, 'by'),
+ (None, 'calcMode'),
+ (None, 'cap-height'),
+ (None, 'class'),
+ (None, 'clip-path'),
+ (None, 'color'),
+ (None, 'color-rendering'),
+ (None, 'content'),
+ (None, 'cx'),
+ (None, 'cy'),
+ (None, 'd'),
+ (None, 'dx'),
+ (None, 'dy'),
+ (None, 'descent'),
+ (None, 'display'),
+ (None, 'dur'),
+ (None, 'end'),
+ (None, 'fill'),
+ (None, 'fill-opacity'),
+ (None, 'fill-rule'),
+ (None, 'font-family'),
+ (None, 'font-size'),
+ (None, 'font-stretch'),
+ (None, 'font-style'),
+ (None, 'font-variant'),
+ (None, 'font-weight'),
+ (None, 'from'),
+ (None, 'fx'),
+ (None, 'fy'),
+ (None, 'g1'),
+ (None, 'g2'),
+ (None, 'glyph-name'),
+ (None, 'gradientUnits'),
+ (None, 'hanging'),
+ (None, 'height'),
+ (None, 'horiz-adv-x'),
+ (None, 'horiz-origin-x'),
+ (None, 'id'),
+ (None, 'ideographic'),
+ (None, 'k'),
+ (None, 'keyPoints'),
+ (None, 'keySplines'),
+ (None, 'keyTimes'),
+ (None, 'lang'),
+ (None, 'marker-end'),
+ (None, 'marker-mid'),
+ (None, 'marker-start'),
+ (None, 'markerHeight'),
+ (None, 'markerUnits'),
+ (None, 'markerWidth'),
+ (None, 'mathematical'),
+ (None, 'max'),
+ (None, 'min'),
+ (None, 'name'),
+ (None, 'offset'),
+ (None, 'opacity'),
+ (None, 'orient'),
+ (None, 'origin'),
+ (None, 'overline-position'),
+ (None, 'overline-thickness'),
+ (None, 'panose-1'),
+ (None, 'path'),
+ (None, 'pathLength'),
+ (None, 'points'),
+ (None, 'preserveAspectRatio'),
+ (None, 'r'),
+ (None, 'refX'),
+ (None, 'refY'),
+ (None, 'repeatCount'),
+ (None, 'repeatDur'),
+ (None, 'requiredExtensions'),
+ (None, 'requiredFeatures'),
+ (None, 'restart'),
+ (None, 'rotate'),
+ (None, 'rx'),
+ (None, 'ry'),
+ (None, 'slope'),
+ (None, 'stemh'),
+ (None, 'stemv'),
+ (None, 'stop-color'),
+ (None, 'stop-opacity'),
+ (None, 'strikethrough-position'),
+ (None, 'strikethrough-thickness'),
+ (None, 'stroke'),
+ (None, 'stroke-dasharray'),
+ (None, 'stroke-dashoffset'),
+ (None, 'stroke-linecap'),
+ (None, 'stroke-linejoin'),
+ (None, 'stroke-miterlimit'),
+ (None, 'stroke-opacity'),
+ (None, 'stroke-width'),
+ (None, 'systemLanguage'),
+ (None, 'target'),
+ (None, 'text-anchor'),
+ (None, 'to'),
+ (None, 'transform'),
+ (None, 'type'),
+ (None, 'u1'),
+ (None, 'u2'),
+ (None, 'underline-position'),
+ (None, 'underline-thickness'),
+ (None, 'unicode'),
+ (None, 'unicode-range'),
+ (None, 'units-per-em'),
+ (None, 'values'),
+ (None, 'version'),
+ (None, 'viewBox'),
+ (None, 'visibility'),
+ (None, 'width'),
+ (None, 'widths'),
+ (None, 'x'),
+ (None, 'x-height'),
+ (None, 'x1'),
+ (None, 'x2'),
+ (namespaces['xlink'], 'actuate'),
+ (namespaces['xlink'], 'arcrole'),
+ (namespaces['xlink'], 'href'),
+ (namespaces['xlink'], 'role'),
+ (namespaces['xlink'], 'show'),
+ (namespaces['xlink'], 'title'),
+ (namespaces['xlink'], 'type'),
+ (namespaces['xml'], 'base'),
+ (namespaces['xml'], 'lang'),
+ (namespaces['xml'], 'space'),
+ (None, 'y'),
+ (None, 'y1'),
+ (None, 'y2'),
+ (None, 'zoomAndPan'),
+))
+
+attr_val_is_uri = frozenset((
+ (None, 'href'),
+ (None, 'src'),
+ (None, 'cite'),
+ (None, 'action'),
+ (None, 'longdesc'),
+ (None, 'poster'),
+ (None, 'background'),
+ (None, 'datasrc'),
+ (None, 'dynsrc'),
+ (None, 'lowsrc'),
+ (None, 'ping'),
+ (namespaces['xlink'], 'href'),
+ (namespaces['xml'], 'base'),
+))
+
+svg_attr_val_allows_ref = frozenset((
+ (None, 'clip-path'),
+ (None, 'color-profile'),
+ (None, 'cursor'),
+ (None, 'fill'),
+ (None, 'filter'),
+ (None, 'marker'),
+ (None, 'marker-start'),
+ (None, 'marker-mid'),
+ (None, 'marker-end'),
+ (None, 'mask'),
+ (None, 'stroke'),
+))
+
+svg_allow_local_href = frozenset((
+ (None, 'altGlyph'),
+ (None, 'animate'),
+ (None, 'animateColor'),
+ (None, 'animateMotion'),
+ (None, 'animateTransform'),
+ (None, 'cursor'),
+ (None, 'feImage'),
+ (None, 'filter'),
+ (None, 'linearGradient'),
+ (None, 'pattern'),
+ (None, 'radialGradient'),
+ (None, 'textpath'),
+ (None, 'tref'),
+ (None, 'set'),
+ (None, 'use')
+))
+
+allowed_css_properties = frozenset((
+ 'azimuth',
+ 'background-color',
+ 'border-bottom-color',
+ 'border-collapse',
+ 'border-color',
+ 'border-left-color',
+ 'border-right-color',
+ 'border-top-color',
+ 'clear',
+ 'color',
+ 'cursor',
+ 'direction',
+ 'display',
+ 'elevation',
+ 'float',
+ 'font',
+ 'font-family',
+ 'font-size',
+ 'font-style',
+ 'font-variant',
+ 'font-weight',
+ 'height',
+ 'letter-spacing',
+ 'line-height',
+ 'overflow',
+ 'pause',
+ 'pause-after',
+ 'pause-before',
+ 'pitch',
+ 'pitch-range',
+ 'richness',
+ 'speak',
+ 'speak-header',
+ 'speak-numeral',
+ 'speak-punctuation',
+ 'speech-rate',
+ 'stress',
+ 'text-align',
+ 'text-decoration',
+ 'text-indent',
+ 'unicode-bidi',
+ 'vertical-align',
+ 'voice-family',
+ 'volume',
+ 'white-space',
+ 'width',
+))
+
+allowed_css_keywords = frozenset((
+ 'auto',
+ 'aqua',
+ 'black',
+ 'block',
+ 'blue',
+ 'bold',
+ 'both',
+ 'bottom',
+ 'brown',
+ 'center',
+ 'collapse',
+ 'dashed',
+ 'dotted',
+ 'fuchsia',
+ 'gray',
+ 'green',
+ '!important',
+ 'italic',
+ 'left',
+ 'lime',
+ 'maroon',
+ 'medium',
+ 'none',
+ 'navy',
+ 'normal',
+ 'nowrap',
+ 'olive',
+ 'pointer',
+ 'purple',
+ 'red',
+ 'right',
+ 'solid',
+ 'silver',
+ 'teal',
+ 'top',
+ 'transparent',
+ 'underline',
+ 'white',
+ 'yellow',
+))
+
+allowed_svg_properties = frozenset((
+ 'fill',
+ 'fill-opacity',
+ 'fill-rule',
+ 'stroke',
+ 'stroke-width',
+ 'stroke-linecap',
+ 'stroke-linejoin',
+ 'stroke-opacity',
+))
+
+allowed_protocols = frozenset((
+ 'ed2k',
+ 'ftp',
+ 'http',
+ 'https',
+ 'irc',
+ 'mailto',
+ 'news',
+ 'gopher',
+ 'nntp',
+ 'telnet',
+ 'webcal',
+ 'xmpp',
+ 'callto',
+ 'feed',
+ 'urn',
+ 'aim',
+ 'rsync',
+ 'tag',
+ 'ssh',
+ 'sftp',
+ 'rtsp',
+ 'afs',
+ 'data',
+))
+
+allowed_content_types = frozenset((
+ 'image/png',
+ 'image/jpeg',
+ 'image/gif',
+ 'image/webp',
+ 'image/bmp',
+ 'text/plain',
+))
+
+
+data_content_type = re.compile(r'''
+ ^
+ # Match a content type <application>/<type>
+ (?P<content_type>[-a-zA-Z0-9.]+/[-a-zA-Z0-9.]+)
+ # Match any character set and encoding
+ (?:(?:;charset=(?:[-a-zA-Z0-9]+)(?:;(?:base64))?)
+ |(?:;(?:base64))?(?:;charset=(?:[-a-zA-Z0-9]+))?)
+ # Assume the rest is data
+ ,.*
+ $
+ ''',
+ re.VERBOSE)
+
+
+class Filter(base.Filter):
+ """Sanitizes token stream of XHTML+MathML+SVG and of inline style attributes"""
+ def __init__(self,
+ source,
+ allowed_elements=allowed_elements,
+ allowed_attributes=allowed_attributes,
+ allowed_css_properties=allowed_css_properties,
+ allowed_css_keywords=allowed_css_keywords,
+ allowed_svg_properties=allowed_svg_properties,
+ allowed_protocols=allowed_protocols,
+ allowed_content_types=allowed_content_types,
+ attr_val_is_uri=attr_val_is_uri,
+ svg_attr_val_allows_ref=svg_attr_val_allows_ref,
+ svg_allow_local_href=svg_allow_local_href):
+ """Creates a Filter
+
+ :arg allowed_elements: set of elements to allow--everything else will
+ be escaped
+
+ :arg allowed_attributes: set of attributes to allow in
+ elements--everything else will be stripped
+
+ :arg allowed_css_properties: set of CSS properties to allow--everything
+ else will be stripped
+
+ :arg allowed_css_keywords: set of CSS keywords to allow--everything
+ else will be stripped
+
+ :arg allowed_svg_properties: set of SVG properties to allow--everything
+ else will be removed
+
+ :arg allowed_protocols: set of allowed protocols for URIs
+
+ :arg allowed_content_types: set of allowed content types for ``data`` URIs.
+
+ :arg attr_val_is_uri: set of attributes that have URI values--values
+ that have a scheme not listed in ``allowed_protocols`` are removed
+
+ :arg svg_attr_val_allows_ref: set of SVG attributes that can have
+ references
+
+ :arg svg_allow_local_href: set of SVG elements that can have local
+ hrefs--these are removed
+
+ """
+ super(Filter, self).__init__(source)
+ self.allowed_elements = allowed_elements
+ self.allowed_attributes = allowed_attributes
+ self.allowed_css_properties = allowed_css_properties
+ self.allowed_css_keywords = allowed_css_keywords
+ self.allowed_svg_properties = allowed_svg_properties
+ self.allowed_protocols = allowed_protocols
+ self.allowed_content_types = allowed_content_types
+ self.attr_val_is_uri = attr_val_is_uri
+ self.svg_attr_val_allows_ref = svg_attr_val_allows_ref
+ self.svg_allow_local_href = svg_allow_local_href
+
+ def __iter__(self):
+ for token in base.Filter.__iter__(self):
+ token = self.sanitize_token(token)
+ if token:
+ yield token
+
+ # Sanitize the +html+, escaping all elements not in ALLOWED_ELEMENTS, and
+ # stripping out all attributes not in ALLOWED_ATTRIBUTES. Style attributes
+ # are parsed, and a restricted set, specified by ALLOWED_CSS_PROPERTIES and
+ # ALLOWED_CSS_KEYWORDS, are allowed through. attributes in ATTR_VAL_IS_URI
+ # are scanned, and only URI schemes specified in ALLOWED_PROTOCOLS are
+ # allowed.
+ #
+ # sanitize_html('<script> do_nasty_stuff() </script>')
+ # => &lt;script> do_nasty_stuff() &lt;/script>
+ # sanitize_html('<a href="javascript: sucker();">Click here for $100</a>')
+ # => <a>Click here for $100</a>
+ def sanitize_token(self, token):
+
+ # accommodate filters which use token_type differently
+ token_type = token["type"]
+ if token_type in ("StartTag", "EndTag", "EmptyTag"):
+ name = token["name"]
+ namespace = token["namespace"]
+ if ((namespace, name) in self.allowed_elements or
+ (namespace is None and
+ (namespaces["html"], name) in self.allowed_elements)):
+ return self.allowed_token(token)
+ else:
+ return self.disallowed_token(token)
+ elif token_type == "Comment":
+ pass
+ else:
+ return token
+
+ def allowed_token(self, token):
+ if "data" in token:
+ attrs = token["data"]
+ attr_names = set(attrs.keys())
+
+ # Remove forbidden attributes
+ for to_remove in (attr_names - self.allowed_attributes):
+ del token["data"][to_remove]
+ attr_names.remove(to_remove)
+
+ # Remove attributes with disallowed URL values
+ for attr in (attr_names & self.attr_val_is_uri):
+ assert attr in attrs
+ # I don't have a clue where this regexp comes from or why it matches those
+ # characters, nor why we call unescape. I just know it's always been here.
+ # Should you be worried by this comment in a sanitizer? Yes. On the other hand, all
+ # this will do is remove *more* than it otherwise would.
+ val_unescaped = re.sub("[`\x00-\x20\x7f-\xa0\\s]+", '',
+ unescape(attrs[attr])).lower()
+ # remove replacement characters from unescaped characters
+ val_unescaped = val_unescaped.replace("\ufffd", "")
+ try:
+ uri = urlparse.urlparse(val_unescaped)
+ except ValueError:
+ uri = None
+ del attrs[attr]
+ if uri and uri.scheme:
+ if uri.scheme not in self.allowed_protocols:
+ del attrs[attr]
+ if uri.scheme == 'data':
+ m = data_content_type.match(uri.path)
+ if not m:
+ del attrs[attr]
+ elif m.group('content_type') not in self.allowed_content_types:
+ del attrs[attr]
+
+ for attr in self.svg_attr_val_allows_ref:
+ if attr in attrs:
+ attrs[attr] = re.sub(r'url\s*\(\s*[^#\s][^)]+?\)',
+ ' ',
+ unescape(attrs[attr]))
+ if (token["name"] in self.svg_allow_local_href and
+ (namespaces['xlink'], 'href') in attrs and re.search(r'^\s*[^#\s].*',
+ attrs[(namespaces['xlink'], 'href')])):
+ del attrs[(namespaces['xlink'], 'href')]
+ if (None, 'style') in attrs:
+ attrs[(None, 'style')] = self.sanitize_css(attrs[(None, 'style')])
+ token["data"] = attrs
+ return token
+
+ def disallowed_token(self, token):
+ token_type = token["type"]
+ if token_type == "EndTag":
+ token["data"] = "</%s>" % token["name"]
+ elif token["data"]:
+ assert token_type in ("StartTag", "EmptyTag")
+ attrs = []
+ for (ns, name), v in token["data"].items():
+ attrs.append(' %s="%s"' % (name if ns is None else "%s:%s" % (prefixes[ns], name), escape(v)))
+ token["data"] = "<%s%s>" % (token["name"], ''.join(attrs))
+ else:
+ token["data"] = "<%s>" % token["name"]
+ if token.get("selfClosing"):
+ token["data"] = token["data"][:-1] + "/>"
+
+ token["type"] = "Characters"
+
+ del token["name"]
+ return token
+
+ def sanitize_css(self, style):
+ # disallow urls
+ style = re.compile(r'url\s*\(\s*[^\s)]+?\s*\)\s*').sub(' ', style)
+
+ # gauntlet
+ if not re.match(r"""^([:,;#%.\sa-zA-Z0-9!]|\w-\w|'[\s\w]+'|"[\s\w]+"|\([\d,\s]+\))*$""", style):
+ return ''
+ if not re.match(r"^\s*([-\w]+\s*:[^:;]*(;\s*|$))*$", style):
+ return ''
+
+ clean = []
+ for prop, value in re.findall(r"([-\w]+)\s*:\s*([^:;]*)", style):
+ if not value:
+ continue
+ if prop.lower() in self.allowed_css_properties:
+ clean.append(prop + ': ' + value + ';')
+ elif prop.split('-')[0].lower() in ['background', 'border', 'margin',
+ 'padding']:
+ for keyword in value.split():
+ if keyword not in self.allowed_css_keywords and \
+ not re.match(r"^(#[0-9a-fA-F]+|rgb\(\d+%?,\d*%?,?\d*%?\)?|\d{0,2}\.?\d{0,2}(cm|em|ex|in|mm|pc|pt|px|%|,|\))?)$", keyword): # noqa
+ break
+ else:
+ clean.append(prop + ': ' + value + ';')
+ elif prop.lower() in self.allowed_svg_properties:
+ clean.append(prop + ': ' + value + ';')
+
+ return ' '.join(clean)
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/whitespace.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/whitespace.py
index dfc60eebd35..0d12584b459 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/whitespace.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/whitespace.py
@@ -2,20 +2,20 @@ from __future__ import absolute_import, division, unicode_literals
import re
-from . import _base
+from . import base
from ..constants import rcdataElements, spaceCharacters
spaceCharacters = "".join(spaceCharacters)
SPACES_REGEX = re.compile("[%s]+" % spaceCharacters)
-class Filter(_base.Filter):
-
+class Filter(base.Filter):
+ """Collapses whitespace except in pre, textarea, and script elements"""
spacePreserveElements = frozenset(["pre", "textarea"] + list(rcdataElements))
def __iter__(self):
preserve = 0
- for token in _base.Filter.__iter__(self):
+ for token in base.Filter.__iter__(self):
type = token["type"]
if type == "StartTag" \
and (preserve or token["name"] in self.spacePreserveElements):
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/html5parser.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/html5parser.py
index 5b9ce7d7206..9d39b9d41da 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/html5parser.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/html5parser.py
@@ -1,38 +1,75 @@
from __future__ import absolute_import, division, unicode_literals
-from six import with_metaclass
+from six import with_metaclass, viewkeys
import types
+from collections import OrderedDict
-from . import inputstream
-from . import tokenizer
+from . import _inputstream
+from . import _tokenizer
from . import treebuilders
-from .treebuilders._base import Marker
-
-from . import utils
-from . import constants
-from .constants import spaceCharacters, asciiUpper2Lower
-from .constants import specialElements
-from .constants import headingElements
-from .constants import cdataElements, rcdataElements
-from .constants import tokenTypes, ReparseException, namespaces
-from .constants import htmlIntegrationPointElements, mathmlTextIntegrationPointElements
-from .constants import adjustForeignAttributes as adjustForeignAttributesMap
-
-
-def parse(doc, treebuilder="etree", encoding=None,
- namespaceHTMLElements=True):
- """Parse a string or file-like object into a tree"""
+from .treebuilders.base import Marker
+
+from . import _utils
+from .constants import (
+ spaceCharacters, asciiUpper2Lower,
+ specialElements, headingElements, cdataElements, rcdataElements,
+ tokenTypes, tagTokenTypes,
+ namespaces,
+ htmlIntegrationPointElements, mathmlTextIntegrationPointElements,
+ adjustForeignAttributes as adjustForeignAttributesMap,
+ adjustMathMLAttributes, adjustSVGAttributes,
+ E,
+ _ReparseException
+)
+
+
+def parse(doc, treebuilder="etree", namespaceHTMLElements=True, **kwargs):
+ """Parse 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>
+
+ """
tb = treebuilders.getTreeBuilder(treebuilder)
p = HTMLParser(tb, namespaceHTMLElements=namespaceHTMLElements)
- return p.parse(doc, encoding=encoding)
+ return p.parse(doc, **kwargs)
+
+
+def parseFragment(doc, container="div", treebuilder="etree", namespaceHTMLElements=True, **kwargs):
+ """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
-def parseFragment(doc, container="div", treebuilder="etree", encoding=None,
- namespaceHTMLElements=True):
+ :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>
+
+ """
tb = treebuilders.getTreeBuilder(treebuilder)
p = HTMLParser(tb, namespaceHTMLElements=namespaceHTMLElements)
- return p.parseFragment(doc, container=container, encoding=encoding)
+ return p.parseFragment(doc, container=container, **kwargs)
def method_decorator_metaclass(function):
@@ -48,21 +85,30 @@ def method_decorator_metaclass(function):
class HTMLParser(object):
- """HTML parser. Generates a tree structure from a stream of (possibly
- malformed) HTML"""
+ """HTML parser
+
+ Generates a tree structure from a stream of (possibly malformed) HTML.
- def __init__(self, tree=None, tokenizer=tokenizer.HTMLTokenizer,
- strict=False, namespaceHTMLElements=True, debug=False):
+ """
+
+ def __init__(self, tree=None, strict=False, namespaceHTMLElements=True, debug=False):
"""
- strict - raise an exception when a parse error is encountered
+ :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
- 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 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
- tokenizer - a class that provides a stream of tokens to the treebuilder.
- This may be replaced for e.g. a sanitizer which converts some tags to
- text
"""
# Raise an exception on the first error encountered
@@ -71,29 +117,24 @@ class HTMLParser(object):
if tree is None:
tree = treebuilders.getTreeBuilder("etree")
self.tree = tree(namespaceHTMLElements)
- self.tokenizer_class = tokenizer
self.errors = []
self.phases = dict([(name, cls(self, self.tree)) for name, cls in
getPhases(debug).items()])
- def _parse(self, stream, innerHTML=False, container="div",
- encoding=None, parseMeta=True, useChardet=True, **kwargs):
+ def _parse(self, stream, innerHTML=False, container="div", scripting=False, **kwargs):
self.innerHTMLMode = innerHTML
self.container = container
- self.tokenizer = self.tokenizer_class(stream, encoding=encoding,
- parseMeta=parseMeta,
- useChardet=useChardet,
- parser=self, **kwargs)
+ self.scripting = scripting
+ self.tokenizer = _tokenizer.HTMLTokenizer(stream, parser=self, **kwargs)
self.reset()
- while True:
- try:
- self.mainLoop()
- break
- except ReparseException:
- self.reset()
+ try:
+ self.mainLoop()
+ except _ReparseException:
+ self.reset()
+ self.mainLoop()
def reset(self):
self.tree.reset()
@@ -120,7 +161,7 @@ class HTMLParser(object):
self.phase.insertHtmlElement()
self.resetInsertionMode()
else:
- self.innerHTML = False
+ self.innerHTML = False # pylint:disable=redefined-variable-type
self.phase = self.phases["initial"]
self.lastPhase = None
@@ -131,14 +172,13 @@ class HTMLParser(object):
@property
def documentEncoding(self):
- """The name of the character encoding
- that was used to decode the input stream,
- or :obj:`None` if that is not determined yet.
+ """Name of the character encoding that was used to decode the input stream, or
+ :obj:`None` if that is not determined yet
"""
if not hasattr(self, 'tokenizer'):
return None
- return self.tokenizer.stream.charEncoding[0]
+ return self.tokenizer.stream.charEncoding[0].name
def isHTMLIntegrationPoint(self, element):
if (element.name == "annotation-xml" and
@@ -163,8 +203,10 @@ class HTMLParser(object):
ParseErrorToken = tokenTypes["ParseError"]
for token in self.normalizedTokens():
+ prev_token = None
new_token = token
while new_token is not None:
+ prev_token = new_token
currentNode = self.tree.openElements[-1] if self.tree.openElements else None
currentNodeNamespace = currentNode.namespace if currentNode else None
currentNodeName = currentNode.name if currentNode else None
@@ -183,6 +225,7 @@ class HTMLParser(object):
type in (CharactersToken, SpaceCharactersToken))) or
(currentNodeNamespace == namespaces["mathml"] and
currentNodeName == "annotation-xml" and
+ type == StartTagToken and
token["name"] == "svg") or
(self.isHTMLIntegrationPoint(currentNode) and
type in (StartTagToken, CharactersToken, SpaceCharactersToken))):
@@ -203,10 +246,10 @@ class HTMLParser(object):
elif type == DoctypeToken:
new_token = phase.processDoctype(new_token)
- if (type == StartTagToken and token["selfClosing"]
- and not token["selfClosingAcknowledged"]):
+ if (type == StartTagToken and prev_token["selfClosing"] and
+ not prev_token["selfClosingAcknowledged"]):
self.parseError("non-void-element-with-trailing-solidus",
- {"name": token["name"]})
+ {"name": prev_token["name"]})
# When the loop finishes it's EOF
reprocess = True
@@ -221,139 +264,89 @@ class HTMLParser(object):
for token in self.tokenizer:
yield self.normalizeToken(token)
- def parse(self, stream, encoding=None, parseMeta=True, useChardet=True):
+ def parse(self, stream, *args, **kwargs):
"""Parse a HTML document into a well-formed tree
- stream - a filelike object or string containing the HTML to be parsed
+ :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>
- 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)
"""
- self._parse(stream, innerHTML=False, encoding=encoding,
- parseMeta=parseMeta, useChardet=useChardet)
+ self._parse(stream, False, None, *args, **kwargs)
return self.tree.getDocument()
- def parseFragment(self, stream, container="div", encoding=None,
- parseMeta=False, useChardet=True):
+ def parseFragment(self, stream, *args, **kwargs):
"""Parse a HTML fragment into a well-formed tree fragment
- container - name of the element we're setting the innerHTML property
- if set to None, default to 'div'
+ :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)
- stream - a filelike object or string containing the HTML to be parsed
+ :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>
- 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)
"""
- self._parse(stream, True, container=container, encoding=encoding)
+ self._parse(stream, True, *args, **kwargs)
return self.tree.getFragment()
- def parseError(self, errorcode="XXX-undefined-error", datavars={}):
+ def parseError(self, errorcode="XXX-undefined-error", datavars=None):
# XXX The idea is to make errorcode mandatory.
+ if datavars is None:
+ datavars = {}
self.errors.append((self.tokenizer.stream.position(), errorcode, datavars))
if self.strict:
- raise ParseError
+ raise ParseError(E[errorcode] % datavars)
def normalizeToken(self, token):
- """ HTML5 specific normalizations to the token stream """
-
+ # HTML5 specific normalizations to the token stream
if token["type"] == tokenTypes["StartTag"]:
- token["data"] = dict(token["data"][::-1])
+ raw = token["data"]
+ token["data"] = OrderedDict(raw)
+ if len(raw) > len(token["data"]):
+ # we had some duplicated attribute, fix so first wins
+ token["data"].update(raw[::-1])
return token
def adjustMathMLAttributes(self, token):
- replacements = {"definitionurl": "definitionURL"}
- for k, v in replacements.items():
- if k in token["data"]:
- token["data"][v] = token["data"][k]
- del token["data"][k]
+ adjust_attributes(token, adjustMathMLAttributes)
def adjustSVGAttributes(self, token):
- replacements = {
- "attributename": "attributeName",
- "attributetype": "attributeType",
- "basefrequency": "baseFrequency",
- "baseprofile": "baseProfile",
- "calcmode": "calcMode",
- "clippathunits": "clipPathUnits",
- "contentscripttype": "contentScriptType",
- "contentstyletype": "contentStyleType",
- "diffuseconstant": "diffuseConstant",
- "edgemode": "edgeMode",
- "externalresourcesrequired": "externalResourcesRequired",
- "filterres": "filterRes",
- "filterunits": "filterUnits",
- "glyphref": "glyphRef",
- "gradienttransform": "gradientTransform",
- "gradientunits": "gradientUnits",
- "kernelmatrix": "kernelMatrix",
- "kernelunitlength": "kernelUnitLength",
- "keypoints": "keyPoints",
- "keysplines": "keySplines",
- "keytimes": "keyTimes",
- "lengthadjust": "lengthAdjust",
- "limitingconeangle": "limitingConeAngle",
- "markerheight": "markerHeight",
- "markerunits": "markerUnits",
- "markerwidth": "markerWidth",
- "maskcontentunits": "maskContentUnits",
- "maskunits": "maskUnits",
- "numoctaves": "numOctaves",
- "pathlength": "pathLength",
- "patterncontentunits": "patternContentUnits",
- "patterntransform": "patternTransform",
- "patternunits": "patternUnits",
- "pointsatx": "pointsAtX",
- "pointsaty": "pointsAtY",
- "pointsatz": "pointsAtZ",
- "preservealpha": "preserveAlpha",
- "preserveaspectratio": "preserveAspectRatio",
- "primitiveunits": "primitiveUnits",
- "refx": "refX",
- "refy": "refY",
- "repeatcount": "repeatCount",
- "repeatdur": "repeatDur",
- "requiredextensions": "requiredExtensions",
- "requiredfeatures": "requiredFeatures",
- "specularconstant": "specularConstant",
- "specularexponent": "specularExponent",
- "spreadmethod": "spreadMethod",
- "startoffset": "startOffset",
- "stddeviation": "stdDeviation",
- "stitchtiles": "stitchTiles",
- "surfacescale": "surfaceScale",
- "systemlanguage": "systemLanguage",
- "tablevalues": "tableValues",
- "targetx": "targetX",
- "targety": "targetY",
- "textlength": "textLength",
- "viewbox": "viewBox",
- "viewtarget": "viewTarget",
- "xchannelselector": "xChannelSelector",
- "ychannelselector": "yChannelSelector",
- "zoomandpan": "zoomAndPan"
- }
- for originalName in list(token["data"].keys()):
- if originalName in replacements:
- svgName = replacements[originalName]
- token["data"][svgName] = token["data"][originalName]
- del token["data"][originalName]
+ adjust_attributes(token, adjustSVGAttributes)
def adjustForeignAttributes(self, token):
- replacements = adjustForeignAttributesMap
-
- for originalName in token["data"].keys():
- if originalName in replacements:
- foreignName = replacements[originalName]
- token["data"][foreignName] = token["data"][originalName]
- del token["data"][originalName]
+ adjust_attributes(token, adjustForeignAttributesMap)
def reparseTokenNormal(self, token):
+ # pylint:disable=unused-argument
self.parser.phase()
def resetInsertionMode(self):
@@ -401,9 +394,7 @@ class HTMLParser(object):
self.phase = new_phase
def parseRCDataRawtext(self, token, contentType):
- """Generic RCDATA/RAWTEXT Parsing algorithm
- contentType - RCDATA or RAWTEXT
- """
+ # Generic RCDATA/RAWTEXT Parsing algorithm
assert contentType in ("RAWTEXT", "RCDATA")
self.tree.insertElement(token)
@@ -418,11 +409,12 @@ class HTMLParser(object):
self.phase = self.phases["text"]
+@_utils.memoize
def getPhases(debug):
def log(function):
"""Logger that records which phase processes each token"""
type_names = dict((value, key) for key, value in
- constants.tokenTypes.items())
+ tokenTypes.items())
def wrapped(self, *args, **kwargs):
if function.__name__.startswith("process") and len(args) > 0:
@@ -431,7 +423,7 @@ def getPhases(debug):
info = {"type": type_names[token['type']]}
except:
raise
- if token['type'] in constants.tagTokenTypes:
+ if token['type'] in tagTokenTypes:
info["name"] = token['name']
self.parser.log.append((self.parser.tokenizer.state.__name__,
@@ -450,6 +442,7 @@ def getPhases(debug):
else:
return type
+ # pylint:disable=unused-argument
class Phase(with_metaclass(getMetaclass(debug, log))):
"""Base class for helper object that implements each phase of processing
"""
@@ -516,77 +509,76 @@ def getPhases(debug):
if publicId != "":
publicId = publicId.translate(asciiUpper2Lower)
- if (not correct or token["name"] != "html"
- or publicId.startswith(
- ("+//silmaril//dtd html pro v0r11 19970101//",
- "-//advasoft ltd//dtd html 3.0 aswedit + extensions//",
- "-//as//dtd html 3.0 aswedit + extensions//",
- "-//ietf//dtd html 2.0 level 1//",
- "-//ietf//dtd html 2.0 level 2//",
- "-//ietf//dtd html 2.0 strict level 1//",
- "-//ietf//dtd html 2.0 strict level 2//",
- "-//ietf//dtd html 2.0 strict//",
- "-//ietf//dtd html 2.0//",
- "-//ietf//dtd html 2.1e//",
- "-//ietf//dtd html 3.0//",
- "-//ietf//dtd html 3.2 final//",
- "-//ietf//dtd html 3.2//",
- "-//ietf//dtd html 3//",
- "-//ietf//dtd html level 0//",
- "-//ietf//dtd html level 1//",
- "-//ietf//dtd html level 2//",
- "-//ietf//dtd html level 3//",
- "-//ietf//dtd html strict level 0//",
- "-//ietf//dtd html strict level 1//",
- "-//ietf//dtd html strict level 2//",
- "-//ietf//dtd html strict level 3//",
- "-//ietf//dtd html strict//",
- "-//ietf//dtd html//",
- "-//metrius//dtd metrius presentational//",
- "-//microsoft//dtd internet explorer 2.0 html strict//",
- "-//microsoft//dtd internet explorer 2.0 html//",
- "-//microsoft//dtd internet explorer 2.0 tables//",
- "-//microsoft//dtd internet explorer 3.0 html strict//",
- "-//microsoft//dtd internet explorer 3.0 html//",
- "-//microsoft//dtd internet explorer 3.0 tables//",
- "-//netscape comm. corp.//dtd html//",
- "-//netscape comm. corp.//dtd strict html//",
- "-//o'reilly and associates//dtd html 2.0//",
- "-//o'reilly and associates//dtd html extended 1.0//",
- "-//o'reilly and associates//dtd html extended relaxed 1.0//",
- "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//",
- "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//",
- "-//spyglass//dtd html 2.0 extended//",
- "-//sq//dtd html 2.0 hotmetal + extensions//",
- "-//sun microsystems corp.//dtd hotjava html//",
- "-//sun microsystems corp.//dtd hotjava strict html//",
- "-//w3c//dtd html 3 1995-03-24//",
- "-//w3c//dtd html 3.2 draft//",
- "-//w3c//dtd html 3.2 final//",
- "-//w3c//dtd html 3.2//",
- "-//w3c//dtd html 3.2s draft//",
- "-//w3c//dtd html 4.0 frameset//",
- "-//w3c//dtd html 4.0 transitional//",
- "-//w3c//dtd html experimental 19960712//",
- "-//w3c//dtd html experimental 970421//",
- "-//w3c//dtd w3 html//",
- "-//w3o//dtd w3 html 3.0//",
- "-//webtechs//dtd mozilla html 2.0//",
- "-//webtechs//dtd mozilla html//"))
- or publicId in
- ("-//w3o//dtd w3 html strict 3.0//en//",
- "-/w3c/dtd html 4.0 transitional/en",
- "html")
- or publicId.startswith(
- ("-//w3c//dtd html 4.01 frameset//",
- "-//w3c//dtd html 4.01 transitional//")) and
- systemId is None
- or systemId and systemId.lower() == "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"):
+ if (not correct or token["name"] != "html" or
+ publicId.startswith(
+ ("+//silmaril//dtd html pro v0r11 19970101//",
+ "-//advasoft ltd//dtd html 3.0 aswedit + extensions//",
+ "-//as//dtd html 3.0 aswedit + extensions//",
+ "-//ietf//dtd html 2.0 level 1//",
+ "-//ietf//dtd html 2.0 level 2//",
+ "-//ietf//dtd html 2.0 strict level 1//",
+ "-//ietf//dtd html 2.0 strict level 2//",
+ "-//ietf//dtd html 2.0 strict//",
+ "-//ietf//dtd html 2.0//",
+ "-//ietf//dtd html 2.1e//",
+ "-//ietf//dtd html 3.0//",
+ "-//ietf//dtd html 3.2 final//",
+ "-//ietf//dtd html 3.2//",
+ "-//ietf//dtd html 3//",
+ "-//ietf//dtd html level 0//",
+ "-//ietf//dtd html level 1//",
+ "-//ietf//dtd html level 2//",
+ "-//ietf//dtd html level 3//",
+ "-//ietf//dtd html strict level 0//",
+ "-//ietf//dtd html strict level 1//",
+ "-//ietf//dtd html strict level 2//",
+ "-//ietf//dtd html strict level 3//",
+ "-//ietf//dtd html strict//",
+ "-//ietf//dtd html//",
+ "-//metrius//dtd metrius presentational//",
+ "-//microsoft//dtd internet explorer 2.0 html strict//",
+ "-//microsoft//dtd internet explorer 2.0 html//",
+ "-//microsoft//dtd internet explorer 2.0 tables//",
+ "-//microsoft//dtd internet explorer 3.0 html strict//",
+ "-//microsoft//dtd internet explorer 3.0 html//",
+ "-//microsoft//dtd internet explorer 3.0 tables//",
+ "-//netscape comm. corp.//dtd html//",
+ "-//netscape comm. corp.//dtd strict html//",
+ "-//o'reilly and associates//dtd html 2.0//",
+ "-//o'reilly and associates//dtd html extended 1.0//",
+ "-//o'reilly and associates//dtd html extended relaxed 1.0//",
+ "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//",
+ "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//",
+ "-//spyglass//dtd html 2.0 extended//",
+ "-//sq//dtd html 2.0 hotmetal + extensions//",
+ "-//sun microsystems corp.//dtd hotjava html//",
+ "-//sun microsystems corp.//dtd hotjava strict html//",
+ "-//w3c//dtd html 3 1995-03-24//",
+ "-//w3c//dtd html 3.2 draft//",
+ "-//w3c//dtd html 3.2 final//",
+ "-//w3c//dtd html 3.2//",
+ "-//w3c//dtd html 3.2s draft//",
+ "-//w3c//dtd html 4.0 frameset//",
+ "-//w3c//dtd html 4.0 transitional//",
+ "-//w3c//dtd html experimental 19960712//",
+ "-//w3c//dtd html experimental 970421//",
+ "-//w3c//dtd w3 html//",
+ "-//w3o//dtd w3 html 3.0//",
+ "-//webtechs//dtd mozilla html 2.0//",
+ "-//webtechs//dtd mozilla html//")) or
+ publicId in ("-//w3o//dtd w3 html strict 3.0//en//",
+ "-/w3c/dtd html 4.0 transitional/en",
+ "html") or
+ publicId.startswith(
+ ("-//w3c//dtd html 4.01 frameset//",
+ "-//w3c//dtd html 4.01 transitional//")) and
+ systemId is None or
+ systemId and systemId.lower() == "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"):
self.parser.compatMode = "quirks"
elif (publicId.startswith(
("-//w3c//dtd xhtml 1.0 frameset//",
- "-//w3c//dtd xhtml 1.0 transitional//"))
- or publicId.startswith(
+ "-//w3c//dtd xhtml 1.0 transitional//")) or
+ publicId.startswith(
("-//w3c//dtd html 4.01 frameset//",
"-//w3c//dtd html 4.01 transitional//")) and
systemId is not None):
@@ -659,13 +651,13 @@ def getPhases(debug):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("head", self.startTagHead)
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
(("head", "body", "html", "br"), self.endTagImplyHead)
])
self.endTagHandler.default = self.endTagOther
@@ -705,10 +697,11 @@ def getPhases(debug):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("title", self.startTagTitle),
- (("noscript", "noframes", "style"), self.startTagNoScriptNoFramesStyle),
+ (("noframes", "style"), self.startTagNoFramesStyle),
+ ("noscript", self.startTagNoscript),
("script", self.startTagScript),
(("base", "basefont", "bgsound", "command", "link"),
self.startTagBaseLinkCommand),
@@ -717,7 +710,7 @@ def getPhases(debug):
])
self.startTagHandler.default = self.startTagOther
- self. endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("head", self.endTagHead),
(("br", "html", "body"), self.endTagHtmlBodyBr)
])
@@ -759,18 +752,25 @@ def getPhases(debug):
# the abstract Unicode string, and just use the
# ContentAttrParser on that, but using UTF-8 allows all chars
# to be encoded and as a ASCII-superset works.
- data = inputstream.EncodingBytes(attributes["content"].encode("utf-8"))
- parser = inputstream.ContentAttrParser(data)
+ data = _inputstream.EncodingBytes(attributes["content"].encode("utf-8"))
+ parser = _inputstream.ContentAttrParser(data)
codec = parser.parse()
self.parser.tokenizer.stream.changeEncoding(codec)
def startTagTitle(self, token):
self.parser.parseRCDataRawtext(token, "RCDATA")
- def startTagNoScriptNoFramesStyle(self, token):
+ def startTagNoFramesStyle(self, token):
# Need to decide whether to implement the scripting-disabled case
self.parser.parseRCDataRawtext(token, "RAWTEXT")
+ def startTagNoscript(self, token):
+ if self.parser.scripting:
+ self.parser.parseRCDataRawtext(token, "RAWTEXT")
+ else:
+ self.tree.insertElement(token)
+ self.parser.phase = self.parser.phases["inHeadNoscript"]
+
def startTagScript(self, token):
self.tree.insertElement(token)
self.parser.tokenizer.state = self.parser.tokenizer.scriptDataState
@@ -796,15 +796,75 @@ def getPhases(debug):
def anythingElse(self):
self.endTagHead(impliedTagToken("head"))
- # XXX If we implement a parser for which scripting is disabled we need to
- # implement this phase.
- #
- # class InHeadNoScriptPhase(Phase):
+ class InHeadNoscriptPhase(Phase):
+ def __init__(self, parser, tree):
+ Phase.__init__(self, parser, tree)
+
+ self.startTagHandler = _utils.MethodDispatcher([
+ ("html", self.startTagHtml),
+ (("basefont", "bgsound", "link", "meta", "noframes", "style"), self.startTagBaseLinkCommand),
+ (("head", "noscript"), self.startTagHeadNoscript),
+ ])
+ self.startTagHandler.default = self.startTagOther
+
+ self.endTagHandler = _utils.MethodDispatcher([
+ ("noscript", self.endTagNoscript),
+ ("br", self.endTagBr),
+ ])
+ self.endTagHandler.default = self.endTagOther
+
+ def processEOF(self):
+ self.parser.parseError("eof-in-head-noscript")
+ self.anythingElse()
+ return True
+
+ def processComment(self, token):
+ return self.parser.phases["inHead"].processComment(token)
+
+ def processCharacters(self, token):
+ self.parser.parseError("char-in-head-noscript")
+ self.anythingElse()
+ return token
+
+ def processSpaceCharacters(self, token):
+ return self.parser.phases["inHead"].processSpaceCharacters(token)
+
+ def startTagHtml(self, token):
+ return self.parser.phases["inBody"].processStartTag(token)
+
+ def startTagBaseLinkCommand(self, token):
+ return self.parser.phases["inHead"].processStartTag(token)
+
+ def startTagHeadNoscript(self, token):
+ self.parser.parseError("unexpected-start-tag", {"name": token["name"]})
+
+ def startTagOther(self, token):
+ self.parser.parseError("unexpected-inhead-noscript-tag", {"name": token["name"]})
+ self.anythingElse()
+ return token
+
+ def endTagNoscript(self, token):
+ node = self.parser.tree.openElements.pop()
+ assert node.name == "noscript", "Expected noscript got %s" % node.name
+ self.parser.phase = self.parser.phases["inHead"]
+
+ def endTagBr(self, token):
+ self.parser.parseError("unexpected-inhead-noscript-tag", {"name": token["name"]})
+ self.anythingElse()
+ return token
+
+ def endTagOther(self, token):
+ self.parser.parseError("unexpected-end-tag", {"name": token["name"]})
+
+ def anythingElse(self):
+ # Caller must raise parse error first!
+ self.endTagNoscript(impliedTagToken("noscript"))
+
class AfterHeadPhase(Phase):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("body", self.startTagBody),
("frameset", self.startTagFrameset),
@@ -814,8 +874,8 @@ def getPhases(debug):
("head", self.startTagHead)
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([(("body", "html", "br"),
- self.endTagHtmlBodyBr)])
+ self.endTagHandler = _utils.MethodDispatcher([(("body", "html", "br"),
+ self.endTagHtmlBodyBr)])
self.endTagHandler.default = self.endTagOther
def processEOF(self):
@@ -873,18 +933,18 @@ def getPhases(debug):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- # Keep a ref to this for special handling of whitespace in <pre>
- self.processSpaceCharactersNonPre = self.processSpaceCharacters
+ # Set this to the default handler
+ self.processSpaceCharacters = self.processSpaceCharactersNonPre
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
(("base", "basefont", "bgsound", "command", "link", "meta",
- "noframes", "script", "style", "title"),
+ "script", "style", "title"),
self.startTagProcessInHead),
("body", self.startTagBody),
("frameset", self.startTagFrameset),
(("address", "article", "aside", "blockquote", "center", "details",
- "details", "dir", "div", "dl", "fieldset", "figcaption", "figure",
+ "dir", "div", "dl", "fieldset", "figcaption", "figure",
"footer", "header", "hgroup", "main", "menu", "nav", "ol", "p",
"section", "summary", "ul"),
self.startTagCloseP),
@@ -910,7 +970,8 @@ def getPhases(debug):
("isindex", self.startTagIsIndex),
("textarea", self.startTagTextarea),
("iframe", self.startTagIFrame),
- (("noembed", "noframes", "noscript"), self.startTagRawtext),
+ ("noscript", self.startTagNoscript),
+ (("noembed", "noframes"), self.startTagRawtext),
("select", self.startTagSelect),
(("rp", "rt"), self.startTagRpRt),
(("option", "optgroup"), self.startTagOpt),
@@ -922,7 +983,7 @@ def getPhases(debug):
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("body", self.endTagBody),
("html", self.endTagHtml),
(("address", "article", "aside", "blockquote", "button", "center",
@@ -941,17 +1002,9 @@ def getPhases(debug):
self.endTagHandler.default = self.endTagOther
def isMatchingFormattingElement(self, node1, node2):
- if node1.name != node2.name or node1.namespace != node2.namespace:
- return False
- elif len(node1.attributes) != len(node2.attributes):
- return False
- else:
- attributes1 = sorted(node1.attributes.items())
- attributes2 = sorted(node2.attributes.items())
- for attr1, attr2 in zip(attributes1, attributes2):
- if attr1 != attr2:
- return False
- return True
+ return (node1.name == node2.name and
+ node1.namespace == node2.namespace and
+ node1.attributes == node2.attributes)
# helper
def addFormattingElement(self, token):
@@ -987,8 +1040,8 @@ def getPhases(debug):
data = token["data"]
self.processSpaceCharacters = self.processSpaceCharactersNonPre
if (data.startswith("\n") and
- self.tree.openElements[-1].name in ("pre", "listing", "textarea")
- and not self.tree.openElements[-1].hasContent()):
+ self.tree.openElements[-1].name in ("pre", "listing", "textarea") and
+ not self.tree.openElements[-1].hasContent()):
data = data[1:]
if data:
self.tree.reconstructActiveFormattingElements()
@@ -1006,7 +1059,7 @@ def getPhases(debug):
for char in token["data"]])):
self.parser.framesetOK = False
- def processSpaceCharacters(self, token):
+ def processSpaceCharactersNonPre(self, token):
self.tree.reconstructActiveFormattingElements()
self.tree.insertText(token["data"])
@@ -1015,8 +1068,8 @@ def getPhases(debug):
def startTagBody(self, token):
self.parser.parseError("unexpected-start-tag", {"name": "body"})
- if (len(self.tree.openElements) == 1
- or self.tree.openElements[1].name != "body"):
+ if (len(self.tree.openElements) == 1 or
+ self.tree.openElements[1].name != "body"):
assert self.parser.innerHTML
else:
self.parser.framesetOK = False
@@ -1231,6 +1284,12 @@ def getPhases(debug):
self.parser.framesetOK = False
self.startTagRawtext(token)
+ def startTagNoscript(self, token):
+ if self.parser.scripting:
+ self.startTagRawtext(token)
+ else:
+ self.startTagOther(token)
+
def startTagRawtext(self, token):
"""iframe, noembed noframes, noscript(if scripting enabled)"""
self.parser.parseRCDataRawtext(token, "RAWTEXT")
@@ -1326,7 +1385,7 @@ def getPhases(debug):
# Not sure this is the correct name for the parse error
self.parser.parseError(
"expected-one-end-tag-but-got-another",
- {"expectedName": "body", "gotName": node.name})
+ {"gotName": "body", "expectedName": node.name})
break
self.parser.phase = self.parser.phases["afterBody"]
@@ -1594,9 +1653,9 @@ def getPhases(debug):
class TextPhase(Phase):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([])
+ self.startTagHandler = _utils.MethodDispatcher([])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("script", self.endTagScript)])
self.endTagHandler.default = self.endTagOther
@@ -1628,7 +1687,7 @@ def getPhases(debug):
# http://www.whatwg.org/specs/web-apps/current-work/#in-table
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("caption", self.startTagCaption),
("colgroup", self.startTagColgroup),
@@ -1642,7 +1701,7 @@ def getPhases(debug):
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("table", self.endTagTable),
(("body", "caption", "col", "colgroup", "html", "tbody", "td",
"tfoot", "th", "thead", "tr"), self.endTagIgnore)
@@ -1819,14 +1878,14 @@ def getPhases(debug):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
(("caption", "col", "colgroup", "tbody", "td", "tfoot", "th",
"thead", "tr"), self.startTagTableElement)
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("caption", self.endTagCaption),
("table", self.endTagTable),
(("body", "col", "colgroup", "html", "tbody", "td", "tfoot", "th",
@@ -1891,13 +1950,13 @@ def getPhases(debug):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("col", self.startTagCol)
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("colgroup", self.endTagColgroup),
("col", self.endTagCol)
])
@@ -1925,6 +1984,7 @@ def getPhases(debug):
def startTagCol(self, token):
self.tree.insertElement(token)
self.tree.openElements.pop()
+ token["selfClosingAcknowledged"] = True
def startTagOther(self, token):
ignoreEndTag = self.ignoreEndTagColgroup()
@@ -1954,7 +2014,7 @@ def getPhases(debug):
# http://www.whatwg.org/specs/web-apps/current-work/#in-table0
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("tr", self.startTagTr),
(("td", "th"), self.startTagTableCell),
@@ -1963,7 +2023,7 @@ def getPhases(debug):
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
(("tbody", "tfoot", "thead"), self.endTagTableRowGroup),
("table", self.endTagTable),
(("body", "caption", "col", "colgroup", "html", "td", "th",
@@ -2052,7 +2112,7 @@ def getPhases(debug):
# http://www.whatwg.org/specs/web-apps/current-work/#in-row
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
(("td", "th"), self.startTagTableCell),
(("caption", "col", "colgroup", "tbody", "tfoot", "thead",
@@ -2060,7 +2120,7 @@ def getPhases(debug):
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("tr", self.endTagTr),
("table", self.endTagTable),
(("tbody", "tfoot", "thead"), self.endTagTableRowGroup),
@@ -2141,14 +2201,14 @@ def getPhases(debug):
# http://www.whatwg.org/specs/web-apps/current-work/#in-cell
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
(("caption", "col", "colgroup", "tbody", "td", "tfoot", "th",
"thead", "tr"), self.startTagTableOther)
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
(("td", "th"), self.endTagTableCell),
(("body", "caption", "col", "colgroup", "html"), self.endTagIgnore),
(("table", "tbody", "tfoot", "thead", "tr"), self.endTagImply)
@@ -2217,7 +2277,7 @@ def getPhases(debug):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("option", self.startTagOption),
("optgroup", self.startTagOptgroup),
@@ -2227,7 +2287,7 @@ def getPhases(debug):
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("option", self.endTagOption),
("optgroup", self.endTagOptgroup),
("select", self.endTagSelect)
@@ -2317,13 +2377,13 @@ def getPhases(debug):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
(("caption", "table", "tbody", "tfoot", "thead", "tr", "td", "th"),
self.startTagTable)
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
(("caption", "table", "tbody", "tfoot", "thead", "tr", "td", "th"),
self.endTagTable)
])
@@ -2444,7 +2504,7 @@ def getPhases(debug):
def processEndTag(self, token):
nodeIndex = len(self.tree.openElements) - 1
node = self.tree.openElements[-1]
- if node.name != token["name"]:
+ if node.name.translate(asciiUpper2Lower) != token["name"]:
self.parser.parseError("unexpected-end-tag", {"name": token["name"]})
while True:
@@ -2471,12 +2531,12 @@ def getPhases(debug):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml)
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([("html", self.endTagHtml)])
+ self.endTagHandler = _utils.MethodDispatcher([("html", self.endTagHtml)])
self.endTagHandler.default = self.endTagOther
def processEOF(self):
@@ -2519,7 +2579,7 @@ def getPhases(debug):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("frameset", self.startTagFrameset),
("frame", self.startTagFrame),
@@ -2527,7 +2587,7 @@ def getPhases(debug):
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("frameset", self.endTagFrameset)
])
self.endTagHandler.default = self.endTagOther
@@ -2563,7 +2623,7 @@ def getPhases(debug):
self.tree.openElements.pop()
if (not self.parser.innerHTML and
self.tree.openElements[-1].name != "frameset"):
- # If we're not in innerHTML mode and the the current node is not a
+ # If we're not in innerHTML mode and the current node is not a
# "frameset" element (anymore) then switch.
self.parser.phase = self.parser.phases["afterFrameset"]
@@ -2576,13 +2636,13 @@ def getPhases(debug):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("noframes", self.startTagNoframes)
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("html", self.endTagHtml)
])
self.endTagHandler.default = self.endTagOther
@@ -2612,7 +2672,7 @@ def getPhases(debug):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml)
])
self.startTagHandler.default = self.startTagOther
@@ -2650,7 +2710,7 @@ def getPhases(debug):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("noframes", self.startTagNoFrames)
])
@@ -2681,13 +2741,14 @@ def getPhases(debug):
def processEndTag(self, token):
self.parser.parseError("expected-eof-but-got-end-tag",
{"name": token["name"]})
+ # pylint:enable=unused-argument
return {
"initial": InitialPhase,
"beforeHtml": BeforeHtmlPhase,
"beforeHead": BeforeHeadPhase,
"inHead": InHeadPhase,
- # XXX "inHeadNoscript": InHeadNoScriptPhase,
+ "inHeadNoscript": InHeadNoscriptPhase,
"afterHead": AfterHeadPhase,
"inBody": InBodyPhase,
"text": TextPhase,
@@ -2710,6 +2771,13 @@ def getPhases(debug):
}
+def adjust_attributes(token, replacements):
+ needs_adjustment = viewkeys(token['data']) & viewkeys(replacements)
+ if needs_adjustment:
+ token['data'] = OrderedDict((replacements.get(k, k), v)
+ for k, v in token['data'].items())
+
+
def impliedTagToken(name, type="EndTag", attributes=None,
selfClosing=False):
if attributes is None:
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/serializer.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/serializer.py
new file mode 100644
index 00000000000..d6b7105d480
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/serializer.py
@@ -0,0 +1,409 @@
+from __future__ import absolute_import, division, unicode_literals
+from six import text_type
+
+import re
+
+from codecs import register_error, xmlcharrefreplace_errors
+
+from .constants import voidElements, booleanAttributes, spaceCharacters
+from .constants import rcdataElements, entities, xmlEntities
+from . import treewalkers, _utils
+from xml.sax.saxutils import escape
+
+_quoteAttributeSpecChars = "".join(spaceCharacters) + "\"'=<>`"
+_quoteAttributeSpec = re.compile("[" + _quoteAttributeSpecChars + "]")
+_quoteAttributeLegacy = re.compile("[" + _quoteAttributeSpecChars +
+ "\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n"
+ "\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15"
+ "\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
+ "\x20\x2f\x60\xa0\u1680\u180e\u180f\u2000"
+ "\u2001\u2002\u2003\u2004\u2005\u2006\u2007"
+ "\u2008\u2009\u200a\u2028\u2029\u202f\u205f"
+ "\u3000]")
+
+
+_encode_entity_map = {}
+_is_ucs4 = len("\U0010FFFF") == 1
+for k, v in list(entities.items()):
+ # skip multi-character entities
+ if ((_is_ucs4 and len(v) > 1) or
+ (not _is_ucs4 and len(v) > 2)):
+ continue
+ if v != "&":
+ if len(v) == 2:
+ v = _utils.surrogatePairToCodepoint(v)
+ else:
+ v = ord(v)
+ if v not in _encode_entity_map or k.islower():
+ # prefer &lt; over &LT; and similarly for &amp;, &gt;, etc.
+ _encode_entity_map[v] = k
+
+
+def htmlentityreplace_errors(exc):
+ if isinstance(exc, (UnicodeEncodeError, UnicodeTranslateError)):
+ res = []
+ codepoints = []
+ skip = False
+ for i, c in enumerate(exc.object[exc.start:exc.end]):
+ if skip:
+ skip = False
+ continue
+ index = i + exc.start
+ if _utils.isSurrogatePair(exc.object[index:min([exc.end, index + 2])]):
+ codepoint = _utils.surrogatePairToCodepoint(exc.object[index:index + 2])
+ skip = True
+ else:
+ codepoint = ord(c)
+ codepoints.append(codepoint)
+ for cp in codepoints:
+ e = _encode_entity_map.get(cp)
+ if e:
+ res.append("&")
+ res.append(e)
+ if not e.endswith(";"):
+ res.append(";")
+ else:
+ res.append("&#x%s;" % (hex(cp)[2:]))
+ return ("".join(res), exc.end)
+ else:
+ return xmlcharrefreplace_errors(exc)
+
+
+register_error("htmlentityreplace", htmlentityreplace_errors)
+
+
+def serialize(input, tree="etree", encoding=None, **serializer_opts):
+ """Serializes the input token stream using the specified treewalker
+
+ :arg input: the token stream to serialize
+
+ :arg tree: the treewalker to use
+
+ :arg encoding: the encoding to use
+
+ :arg serializer_opts: any options to pass to the
+ :py:class:`html5lib.serializer.HTMLSerializer` that gets created
+
+ :returns: the tree serialized as a string
+
+ Example:
+
+ >>> from html5lib.html5parser import parse
+ >>> from html5lib.serializer import serialize
+ >>> token_stream = parse('<html><body><p>Hi!</p></body></html>')
+ >>> serialize(token_stream, omit_optional_tags=False)
+ '<html><head></head><body><p>Hi!</p></body></html>'
+
+ """
+ # XXX: Should we cache this?
+ walker = treewalkers.getTreeWalker(tree)
+ s = HTMLSerializer(**serializer_opts)
+ return s.render(walker(input), encoding)
+
+
+class HTMLSerializer(object):
+
+ # attribute quoting options
+ quote_attr_values = "legacy" # be secure by default
+ quote_char = '"'
+ use_best_quote_char = True
+
+ # tag syntax options
+ omit_optional_tags = True
+ minimize_boolean_attributes = True
+ use_trailing_solidus = False
+ space_before_trailing_solidus = True
+
+ # escaping options
+ escape_lt_in_attrs = False
+ escape_rcdata = False
+ resolve_entities = True
+
+ # miscellaneous options
+ alphabetical_attributes = False
+ inject_meta_charset = True
+ strip_whitespace = False
+ sanitize = False
+
+ options = ("quote_attr_values", "quote_char", "use_best_quote_char",
+ "omit_optional_tags", "minimize_boolean_attributes",
+ "use_trailing_solidus", "space_before_trailing_solidus",
+ "escape_lt_in_attrs", "escape_rcdata", "resolve_entities",
+ "alphabetical_attributes", "inject_meta_charset",
+ "strip_whitespace", "sanitize")
+
+ def __init__(self, **kwargs):
+ """Initialize HTMLSerializer
+
+ :arg inject_meta_charset: Whether or not to inject the meta charset.
+
+ Defaults to ``True``.
+
+ :arg quote_attr_values: Whether to quote attribute values that don't
+ require quoting per legacy browser behavior (``"legacy"``), when
+ required by the standard (``"spec"``), or always (``"always"``).
+
+ Defaults to ``"legacy"``.
+
+ :arg quote_char: Use given quote character for attribute quoting.
+
+ Defaults to ``"`` which will use double quotes unless attribute
+ value contains a double quote, in which case single quotes are
+ used.
+
+ :arg escape_lt_in_attrs: Whether or not to escape ``<`` in attribute
+ values.
+
+ Defaults to ``False``.
+
+ :arg escape_rcdata: Whether to escape characters that need to be
+ escaped within normal elements within rcdata elements such as
+ style.
+
+ Defaults to ``False``.
+
+ :arg resolve_entities: Whether to resolve named character entities that
+ appear in the source tree. The XML predefined entities &lt; &gt;
+ &amp; &quot; &apos; are unaffected by this setting.
+
+ Defaults to ``True``.
+
+ :arg strip_whitespace: Whether to remove semantically meaningless
+ whitespace. (This compresses all whitespace to a single space
+ except within ``pre``.)
+
+ Defaults to ``False``.
+
+ :arg minimize_boolean_attributes: Shortens boolean attributes to give
+ just the attribute value, for example::
+
+ <input disabled="disabled">
+
+ becomes::
+
+ <input disabled>
+
+ Defaults to ``True``.
+
+ :arg use_trailing_solidus: Includes a close-tag slash at the end of the
+ start tag of void elements (empty elements whose end tag is
+ forbidden). E.g. ``<hr/>``.
+
+ Defaults to ``False``.
+
+ :arg space_before_trailing_solidus: Places a space immediately before
+ the closing slash in a tag using a trailing solidus. E.g.
+ ``<hr />``. Requires ``use_trailing_solidus=True``.
+
+ Defaults to ``True``.
+
+ :arg sanitize: Strip all unsafe or unknown constructs from output.
+ See :py:class:`html5lib.filters.sanitizer.Filter`.
+
+ Defaults to ``False``.
+
+ :arg omit_optional_tags: Omit start/end tags that are optional.
+
+ Defaults to ``True``.
+
+ :arg alphabetical_attributes: Reorder attributes to be in alphabetical order.
+
+ Defaults to ``False``.
+
+ """
+ unexpected_args = frozenset(kwargs) - frozenset(self.options)
+ if len(unexpected_args) > 0:
+ raise TypeError("__init__() got an unexpected keyword argument '%s'" % next(iter(unexpected_args)))
+ if 'quote_char' in kwargs:
+ self.use_best_quote_char = False
+ for attr in self.options:
+ setattr(self, attr, kwargs.get(attr, getattr(self, attr)))
+ self.errors = []
+ self.strict = False
+
+ def encode(self, string):
+ assert(isinstance(string, text_type))
+ if self.encoding:
+ return string.encode(self.encoding, "htmlentityreplace")
+ else:
+ return string
+
+ def encodeStrict(self, string):
+ assert(isinstance(string, text_type))
+ if self.encoding:
+ return string.encode(self.encoding, "strict")
+ else:
+ return string
+
+ def serialize(self, treewalker, encoding=None):
+ # pylint:disable=too-many-nested-blocks
+ self.encoding = encoding
+ in_cdata = False
+ self.errors = []
+
+ if encoding and self.inject_meta_charset:
+ from .filters.inject_meta_charset import Filter
+ treewalker = Filter(treewalker, encoding)
+ # Alphabetical attributes is here under the assumption that none of
+ # the later filters add or change order of attributes; it needs to be
+ # before the sanitizer so escaped elements come out correctly
+ if self.alphabetical_attributes:
+ from .filters.alphabeticalattributes import Filter
+ treewalker = Filter(treewalker)
+ # WhitespaceFilter should be used before OptionalTagFilter
+ # for maximum efficiently of this latter filter
+ if self.strip_whitespace:
+ from .filters.whitespace import Filter
+ treewalker = Filter(treewalker)
+ if self.sanitize:
+ from .filters.sanitizer import Filter
+ treewalker = Filter(treewalker)
+ if self.omit_optional_tags:
+ from .filters.optionaltags import Filter
+ treewalker = Filter(treewalker)
+
+ for token in treewalker:
+ type = token["type"]
+ if type == "Doctype":
+ doctype = "<!DOCTYPE %s" % token["name"]
+
+ if token["publicId"]:
+ doctype += ' PUBLIC "%s"' % token["publicId"]
+ elif token["systemId"]:
+ doctype += " SYSTEM"
+ if token["systemId"]:
+ if token["systemId"].find('"') >= 0:
+ if token["systemId"].find("'") >= 0:
+ self.serializeError("System identifer contains both single and double quote characters")
+ quote_char = "'"
+ else:
+ quote_char = '"'
+ doctype += " %s%s%s" % (quote_char, token["systemId"], quote_char)
+
+ doctype += ">"
+ yield self.encodeStrict(doctype)
+
+ elif type in ("Characters", "SpaceCharacters"):
+ if type == "SpaceCharacters" or in_cdata:
+ if in_cdata and token["data"].find("</") >= 0:
+ self.serializeError("Unexpected </ in CDATA")
+ yield self.encode(token["data"])
+ else:
+ yield self.encode(escape(token["data"]))
+
+ elif type in ("StartTag", "EmptyTag"):
+ name = token["name"]
+ yield self.encodeStrict("<%s" % name)
+ if name in rcdataElements and not self.escape_rcdata:
+ in_cdata = True
+ elif in_cdata:
+ self.serializeError("Unexpected child element of a CDATA element")
+ for (_, attr_name), attr_value in token["data"].items():
+ # TODO: Add namespace support here
+ k = attr_name
+ v = attr_value
+ yield self.encodeStrict(' ')
+
+ yield self.encodeStrict(k)
+ if not self.minimize_boolean_attributes or \
+ (k not in booleanAttributes.get(name, tuple()) and
+ k not in booleanAttributes.get("", tuple())):
+ yield self.encodeStrict("=")
+ if self.quote_attr_values == "always" or len(v) == 0:
+ quote_attr = True
+ elif self.quote_attr_values == "spec":
+ quote_attr = _quoteAttributeSpec.search(v) is not None
+ elif self.quote_attr_values == "legacy":
+ quote_attr = _quoteAttributeLegacy.search(v) is not None
+ else:
+ raise ValueError("quote_attr_values must be one of: "
+ "'always', 'spec', or 'legacy'")
+ v = v.replace("&", "&amp;")
+ if self.escape_lt_in_attrs:
+ v = v.replace("<", "&lt;")
+ if quote_attr:
+ quote_char = self.quote_char
+ if self.use_best_quote_char:
+ if "'" in v and '"' not in v:
+ quote_char = '"'
+ elif '"' in v and "'" not in v:
+ quote_char = "'"
+ if quote_char == "'":
+ v = v.replace("'", "&#39;")
+ else:
+ v = v.replace('"', "&quot;")
+ yield self.encodeStrict(quote_char)
+ yield self.encode(v)
+ yield self.encodeStrict(quote_char)
+ else:
+ yield self.encode(v)
+ if name in voidElements and self.use_trailing_solidus:
+ if self.space_before_trailing_solidus:
+ yield self.encodeStrict(" /")
+ else:
+ yield self.encodeStrict("/")
+ yield self.encode(">")
+
+ elif type == "EndTag":
+ name = token["name"]
+ if name in rcdataElements:
+ in_cdata = False
+ elif in_cdata:
+ self.serializeError("Unexpected child element of a CDATA element")
+ yield self.encodeStrict("</%s>" % name)
+
+ elif type == "Comment":
+ data = token["data"]
+ if data.find("--") >= 0:
+ self.serializeError("Comment contains --")
+ yield self.encodeStrict("<!--%s-->" % token["data"])
+
+ elif type == "Entity":
+ name = token["name"]
+ key = name + ";"
+ if key not in entities:
+ self.serializeError("Entity %s not recognized" % name)
+ if self.resolve_entities and key not in xmlEntities:
+ data = entities[key]
+ else:
+ data = "&%s;" % name
+ yield self.encodeStrict(data)
+
+ else:
+ self.serializeError(token["data"])
+
+ def render(self, treewalker, encoding=None):
+ """Serializes the stream from the treewalker into a string
+
+ :arg treewalker: the treewalker to serialize
+
+ :arg encoding: the string encoding to use
+
+ :returns: the serialized tree
+
+ Example:
+
+ >>> from html5lib import parse, getTreeWalker
+ >>> from html5lib.serializer import HTMLSerializer
+ >>> token_stream = parse('<html><body>Hi!</body></html>')
+ >>> walker = getTreeWalker('etree')
+ >>> serializer = HTMLSerializer(omit_optional_tags=False)
+ >>> serializer.render(walker(token_stream))
+ '<html><head></head><body>Hi!</body></html>'
+
+ """
+ if encoding:
+ return b"".join(list(self.serialize(treewalker, encoding)))
+ else:
+ return "".join(list(self.serialize(treewalker)))
+
+ def serializeError(self, data="XXX ERROR MESSAGE NEEDED"):
+ # XXX The idea is to make data mandatory.
+ self.errors.append(data)
+ if self.strict:
+ raise SerializeError
+
+
+class SerializeError(Exception):
+ """Error in serialized tree"""
+ pass
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/__init__.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/__init__.py
index b8ce2de32e5..b8ce2de32e5 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/__init__.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/__init__.py
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/conftest.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/conftest.py
new file mode 100644
index 00000000000..dad167c5832
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/conftest.py
@@ -0,0 +1,108 @@
+from __future__ import print_function
+import os.path
+import sys
+
+import pkg_resources
+import pytest
+
+from .tree_construction import TreeConstructionFile
+from .tokenizer import TokenizerFile
+from .sanitizer import SanitizerFile
+
+_dir = os.path.abspath(os.path.dirname(__file__))
+_root = os.path.join(_dir, "..", "..")
+_testdata = os.path.join(_dir, "testdata")
+_tree_construction = os.path.join(_testdata, "tree-construction")
+_tokenizer = os.path.join(_testdata, "tokenizer")
+_sanitizer_testdata = os.path.join(_dir, "sanitizer-testdata")
+
+
+def fail_if_missing_pytest_expect():
+ """Throws an exception halting pytest if pytest-expect isn't working"""
+ try:
+ from pytest_expect import expect # noqa
+ except ImportError:
+ header = '*' * 78
+ print(
+ '\n' +
+ header + '\n' +
+ 'ERROR: Either pytest-expect or its dependency u-msgpack-python is not\n' +
+ 'installed. Please install them both before running pytest.\n' +
+ header + '\n',
+ file=sys.stderr
+ )
+ raise
+
+
+fail_if_missing_pytest_expect()
+
+
+def pytest_configure(config):
+ msgs = []
+
+ if not os.path.exists(_testdata):
+ msg = "testdata not available! "
+ if os.path.exists(os.path.join(_root, ".git")):
+ msg += ("Please run git submodule update --init --recursive " +
+ "and then run tests again.")
+ else:
+ msg += ("The testdata doesn't appear to be included with this package, " +
+ "so finding the right version will be hard. :(")
+ msgs.append(msg)
+
+ if config.option.update_xfail:
+ # Check for optional requirements
+ req_file = os.path.join(_root, "requirements-optional.txt")
+ if os.path.exists(req_file):
+ with open(req_file, "r") as fp:
+ for line in fp:
+ if (line.strip() and
+ not (line.startswith("-r") or
+ line.startswith("#"))):
+ if ";" in line:
+ spec, marker = line.strip().split(";", 1)
+ else:
+ spec, marker = line.strip(), None
+ req = pkg_resources.Requirement.parse(spec)
+ if marker and not pkg_resources.evaluate_marker(marker):
+ msgs.append("%s not available in this environment" % spec)
+ else:
+ try:
+ installed = pkg_resources.working_set.find(req)
+ except pkg_resources.VersionConflict:
+ msgs.append("Outdated version of %s installed, need %s" % (req.name, spec))
+ else:
+ if not installed:
+ msgs.append("Need %s" % spec)
+
+ # Check cElementTree
+ import xml.etree.ElementTree as ElementTree
+
+ try:
+ import xml.etree.cElementTree as cElementTree
+ except ImportError:
+ msgs.append("cElementTree unable to be imported")
+ else:
+ if cElementTree.Element is ElementTree.Element:
+ msgs.append("cElementTree is just an alias for ElementTree")
+
+ if msgs:
+ pytest.exit("\n".join(msgs))
+
+
+def pytest_collect_file(path, parent):
+ dir = os.path.abspath(path.dirname)
+ dir_and_parents = set()
+ while dir not in dir_and_parents:
+ dir_and_parents.add(dir)
+ dir = os.path.dirname(dir)
+
+ if _tree_construction in dir_and_parents:
+ if path.ext == ".dat":
+ return TreeConstructionFile(path, parent)
+ elif _tokenizer in dir_and_parents:
+ if path.ext == ".test":
+ return TokenizerFile(path, parent)
+ elif _sanitizer_testdata in dir_and_parents:
+ if path.ext == ".dat":
+ return SanitizerFile(path, parent)
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/sanitizer/tests1.dat b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/sanitizer-testdata/tests1.dat
index c741cb8c6fe..74e8833686c 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/sanitizer/tests1.dat
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/sanitizer-testdata/tests1.dat
@@ -8,8 +8,7 @@
{
"name": "IE_Comments_2",
"input": "<![if !IE 5]><script>alert('XSS');</script><![endif]>",
- "output": "&lt;script&gt;alert('XSS');&lt;/script&gt;",
- "rexml": "Ill-formed XHTML!"
+ "output": "&lt;script&gt;alert('XSS');&lt;/script&gt;"
},
{
@@ -21,16 +20,13 @@
{
"name": "background_attribute",
"input": "<div background=\"javascript:alert('XSS')\"></div>",
- "output": "<div/>",
- "xhtml": "<div></div>",
- "rexml": "<div></div>"
+ "output": "<div></div>"
},
{
"name": "bgsound",
"input": "<bgsound src=\"javascript:alert('XSS');\" />",
- "output": "&lt;bgsound src=\"javascript:alert('XSS');\"/&gt;",
- "rexml": "&lt;bgsound src=\"javascript:alert('XSS');\"&gt;&lt;/bgsound&gt;"
+ "output": "&lt;bgsound src=\"javascript:alert('XSS');\"&gt;&lt;/bgsound&gt;"
},
{
@@ -48,57 +44,49 @@
{
"name": "double_open_angle_brackets",
"input": "<img src=http://ha.ckers.org/scriptlet.html <",
- "output": "<img src='http://ha.ckers.org/scriptlet.html'>",
- "rexml": "Ill-formed XHTML!"
+ "output": ""
},
{
"name": "double_open_angle_brackets_2",
"input": "<script src=http://ha.ckers.org/scriptlet.html <",
- "output": "&lt;script src=\"http://ha.ckers.org/scriptlet.html\" &lt;=\"\"&gt;",
- "rexml": "Ill-formed XHTML!"
+ "output": ""
},
{
"name": "grave_accents",
"input": "<img src=`javascript:alert('XSS')` />",
- "output": "<img/>",
- "rexml": "Ill-formed XHTML!"
+ "output": "<img/>"
},
{
"name": "img_dynsrc_lowsrc",
"input": "<img dynsrc=\"javascript:alert('XSS')\" />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "img_vbscript",
"input": "<img src='vbscript:msgbox(\"XSS\")' />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "input_image",
"input": "<input type=\"image\" src=\"javascript:alert('XSS');\" />",
- "output": "<input type='image'/>",
- "rexml": "<input type='image' />"
+ "output": "<input type='image'/>"
},
{
"name": "link_stylesheets",
"input": "<link rel=\"stylesheet\" href=\"javascript:alert('XSS');\" />",
- "output": "&lt;link rel=\"stylesheet\" href=\"javascript:alert('XSS');\"/&gt;",
- "rexml": "&lt;link href=\"javascript:alert('XSS');\" rel=\"stylesheet\"/&gt;"
+ "output": "&lt;link href=\"javascript:alert('XSS');\" rel=\"stylesheet\"&gt;"
},
{
"name": "link_stylesheets_2",
"input": "<link rel=\"stylesheet\" href=\"http://ha.ckers.org/xss.css\" />",
- "output": "&lt;link rel=\"stylesheet\" href=\"http://ha.ckers.org/xss.css\"/&gt;",
- "rexml": "&lt;link href=\"http://ha.ckers.org/xss.css\" rel=\"stylesheet\"/&gt;"
+ "output": "&lt;link href=\"http://ha.ckers.org/xss.css\" rel=\"stylesheet\"&gt;"
},
{
@@ -110,43 +98,37 @@
{
"name": "no_closing_script_tags",
"input": "<script src=http://ha.ckers.org/xss.js?<b>",
- "output": "&lt;script src=\"http://ha.ckers.org/xss.js?&amp;lt;b\"&gt;",
- "rexml": "Ill-formed XHTML!"
+ "output": "&lt;script src=\"http://ha.ckers.org/xss.js?&amp;lt;b\"&gt;&lt;/script&gt;"
},
{
"name": "non_alpha_non_digit",
"input": "<script/XSS src=\"http://ha.ckers.org/xss.js\"></script>",
- "output": "&lt;script XSS=\"\" src=\"http://ha.ckers.org/xss.js\"&gt;&lt;/script&gt;",
- "rexml": "Ill-formed XHTML!"
+ "output": "&lt;script src=\"http://ha.ckers.org/xss.js\" xss=\"\"&gt;&lt;/script&gt;"
},
{
"name": "non_alpha_non_digit_2",
"input": "<a onclick!\\#$%&()*~+-_.,:;?@[/|\\]^`=alert(\"XSS\")>foo</a>",
- "output": "<a>foo</a>",
- "rexml": "Ill-formed XHTML!"
+ "output": "<a>foo</a>"
},
{
"name": "non_alpha_non_digit_3",
"input": "<img/src=\"http://ha.ckers.org/xss.js\"/>",
- "output": "<img src='http://ha.ckers.org/xss.js'/>",
- "rexml": "Ill-formed XHTML!"
+ "output": "<img src='http://ha.ckers.org/xss.js'/>"
},
{
"name": "non_alpha_non_digit_II",
"input": "<a href!\\#$%&()*~+-_.,:;?@[/|]^`=alert('XSS')>foo</a>",
- "output": "<a>foo</a>",
- "rexml": "Ill-formed XHTML!"
+ "output": "<a>foo</a>"
},
{
"name": "non_alpha_non_digit_III",
"input": "<a/href=\"javascript:alert('XSS');\">foo</a>",
- "output": "<a>foo</a>",
- "rexml": "Ill-formed XHTML!"
+ "output": "<a>foo</a>"
},
{
@@ -158,8 +140,7 @@
{
"name": "protocol_resolution_in_script_tag",
"input": "<script src=//ha.ckers.org/.j></script>",
- "output": "&lt;script src=\"//ha.ckers.org/.j\"&gt;&lt;/script&gt;",
- "rexml": "Ill-formed XHTML!"
+ "output": "&lt;script src=\"//ha.ckers.org/.j\"&gt;&lt;/script&gt;"
},
{
@@ -171,29 +152,25 @@
{
"name": "should_allow_image_alt_attribute",
"input": "<img alt='foo' onclick='bar' />",
- "output": "<img alt='foo'/>",
- "rexml": "<img alt='foo' />"
+ "output": "<img alt='foo'/>"
},
{
"name": "should_allow_image_height_attribute",
"input": "<img height='foo' onclick='bar' />",
- "output": "<img height='foo'/>",
- "rexml": "<img height='foo' />"
+ "output": "<img height='foo'/>"
},
{
"name": "should_allow_image_src_attribute",
"input": "<img src='foo' onclick='bar' />",
- "output": "<img src='foo'/>",
- "rexml": "<img src='foo' />"
+ "output": "<img src='foo'/>"
},
{
"name": "should_allow_image_width_attribute",
"input": "<img width='foo' onclick='bar' />",
- "output": "<img width='foo'/>",
- "rexml": "<img width='foo' />"
+ "output": "<img width='foo'/>"
},
{
@@ -205,8 +182,7 @@
{
"name": "should_handle_malformed_image_tags",
"input": "<img \"\"\"><script>alert(\"XSS\")</script>\">",
- "output": "<img/>&lt;script&gt;alert(\"XSS\")&lt;/script&gt;\"&gt;",
- "rexml": "Ill-formed XHTML!"
+ "output": "<img/>&lt;script&gt;alert(\"XSS\")&lt;/script&gt;\"&gt;"
},
{
@@ -218,155 +194,133 @@
{
"name": "should_not_fall_for_ridiculous_hack",
"input": "<img\nsrc\n=\n\"\nj\na\nv\na\ns\nc\nr\ni\np\nt\n:\na\nl\ne\nr\nt\n(\n'\nX\nS\nS\n'\n)\n\"\n />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "should_not_fall_for_xss_image_hack_0",
"input": "<img src=\"javascript:alert('XSS');\" />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "should_not_fall_for_xss_image_hack_1",
"input": "<img src=javascript:alert('XSS') />",
- "output": "<img/>",
- "rexml": "Ill-formed XHTML!"
+ "output": "<img/>"
},
{
"name": "should_not_fall_for_xss_image_hack_10",
"input": "<img src=\"jav&#x0A;ascript:alert('XSS');\" />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "should_not_fall_for_xss_image_hack_11",
"input": "<img src=\"jav&#x0D;ascript:alert('XSS');\" />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "should_not_fall_for_xss_image_hack_12",
"input": "<img src=\" &#14; javascript:alert('XSS');\" />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "should_not_fall_for_xss_image_hack_13",
"input": "<img src=\"&#x20;javascript:alert('XSS');\" />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "should_not_fall_for_xss_image_hack_14",
"input": "<img src=\"&#xA0;javascript:alert('XSS');\" />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "should_not_fall_for_xss_image_hack_2",
"input": "<img src=\"JaVaScRiPt:alert('XSS')\" />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "should_not_fall_for_xss_image_hack_3",
"input": "<img src='javascript:alert(&quot;XSS&quot;)' />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "should_not_fall_for_xss_image_hack_4",
"input": "<img src='javascript:alert(String.fromCharCode(88,83,83))' />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "should_not_fall_for_xss_image_hack_5",
"input": "<img src='&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#88;&#83;&#83;&#39;&#41;' />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "should_not_fall_for_xss_image_hack_6",
"input": "<img src='&#0000106;&#0000097;&#0000118;&#0000097;&#0000115;&#0000099;&#0000114;&#0000105;&#0000112;&#0000116;&#0000058;&#0000097;&#0000108;&#0000101;&#0000114;&#0000116;&#0000040;&#0000039;&#0000088;&#0000083;&#0000083;&#0000039;&#0000041' />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "should_not_fall_for_xss_image_hack_7",
"input": "<img src='&#x6A;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3A;&#x61;&#x6C;&#x65;&#x72;&#x74;&#x28;&#x27;&#x58;&#x53;&#x53;&#x27;&#x29' />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "should_not_fall_for_xss_image_hack_8",
"input": "<img src=\"jav\tascript:alert('XSS');\" />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "should_not_fall_for_xss_image_hack_9",
"input": "<img src=\"jav&#x09;ascript:alert('XSS');\" />",
- "output": "<img/>",
- "rexml": "<img />"
+ "output": "<img/>"
},
{
"name": "should_sanitize_half_open_scripts",
"input": "<img src=\"javascript:alert('XSS')\"",
- "output": "<img/>",
- "rexml": "Ill-formed XHTML!"
+ "output": ""
},
{
"name": "should_sanitize_invalid_script_tag",
"input": "<script/XSS SRC=\"http://ha.ckers.org/xss.js\"></script>",
- "output": "&lt;script XSS=\"\" SRC=\"http://ha.ckers.org/xss.js\"&gt;&lt;/script&gt;",
- "rexml": "Ill-formed XHTML!"
+ "output": "&lt;script src=\"http://ha.ckers.org/xss.js\" xss=\"\"&gt;&lt;/script&gt;"
},
{
"name": "should_sanitize_script_tag_with_multiple_open_brackets",
"input": "<<script>alert(\"XSS\");//<</script>",
- "output": "&lt;&lt;script&gt;alert(\"XSS\");//&lt;&lt;/script&gt;",
- "rexml": "Ill-formed XHTML!"
+ "output": "&lt;&lt;script&gt;alert(\"XSS\");//&lt;&lt;/script&gt;"
},
{
"name": "should_sanitize_script_tag_with_multiple_open_brackets_2",
"input": "<iframe src=http://ha.ckers.org/scriptlet.html\n<",
- "output": "&lt;iframe src=\"http://ha.ckers.org/scriptlet.html\" &lt;=\"\"&gt;",
- "rexml": "Ill-formed XHTML!"
+ "output": ""
},
{
"name": "should_sanitize_tag_broken_up_by_null",
"input": "<scr\u0000ipt>alert(\"XSS\")</scr\u0000ipt>",
- "output": "&lt;scr\ufffdipt&gt;alert(\"XSS\")&lt;/scr\ufffdipt&gt;",
- "rexml": "Ill-formed XHTML!"
+ "output": "&lt;scr\ufffdipt&gt;alert(\"XSS\")&lt;/scr\ufffdipt&gt;"
},
{
"name": "should_sanitize_unclosed_script",
"input": "<script src=http://ha.ckers.org/xss.js?<b>",
- "output": "&lt;script src=\"http://ha.ckers.org/xss.js?&amp;lt;b\"&gt;",
- "rexml": "Ill-formed XHTML!"
+ "output": "&lt;script src=\"http://ha.ckers.org/xss.js?&amp;lt;b\"&gt;&lt;/script&gt;"
},
{
@@ -384,15 +338,13 @@
{
"name": "should_strip_src_attribute_in_img_with_bad_protocols",
"input": "<img src=\"javascript:XSS\" title=\"1\">boo</img>",
- "output": "<img title='1'/>boo",
- "rexml": "<img title='1' />"
+ "output": "<img title='1'/>boo"
},
{
"name": "should_strip_src_attribute_in_img_with_bad_protocols_and_whitespace",
"input": "<img src=\" javascript:XSS\" title=\"1\">boo</img>",
- "output": "<img title='1'/>boo",
- "rexml": "<img title='1' />"
+ "output": "<img title='1'/>boo"
},
{
@@ -410,92 +362,72 @@
{
"name": "quotes_in_attributes",
"input": "<img src='foo' title='\"foo\" bar' />",
- "rexml": "<img src='foo' title='\"foo\" bar' />",
- "output": "<img title='&quot;foo&quot; bar' src='foo'/>"
+ "output": "<img src='foo' title='\"foo\" bar'/>"
},
{
"name": "uri_refs_in_svg_attributes",
- "input": "<rect fill='url(#foo)' />",
- "rexml": "<rect fill='url(#foo)'></rect>",
- "xhtml": "<rect fill='url(#foo)'></rect>",
- "output": "<rect fill='url(#foo)'/>"
+ "input": "<svg><rect fill='url(#foo)' />",
+ "output": "<svg><rect fill='url(#foo)'></rect></svg>"
},
{
"name": "absolute_uri_refs_in_svg_attributes",
- "input": "<rect fill='url(http://bad.com/) #fff' />",
- "rexml": "<rect fill=' #fff'></rect>",
- "xhtml": "<rect fill=' #fff'></rect>",
- "output": "<rect fill=' #fff'/>"
+ "input": "<svg><rect fill='url(http://bad.com/) #fff' />",
+ "output": "<svg><rect fill=' #fff'></rect></svg>"
},
{
"name": "uri_ref_with_space_in svg_attribute",
- "input": "<rect fill='url(\n#foo)' />",
- "rexml": "<rect fill='url(\n#foo)'></rect>",
- "xhtml": "<rect fill='url(\n#foo)'></rect>",
- "output": "<rect fill='url(\n#foo)'/>"
+ "input": "<svg><rect fill='url(\n#foo)' />",
+ "output": "<svg><rect fill='url(\n#foo)'></rect></svg>"
},
{
"name": "absolute_uri_ref_with_space_in svg_attribute",
- "input": "<rect fill=\"url(\nhttp://bad.com/)\" />",
- "rexml": "<rect fill=' '></rect>",
- "xhtml": "<rect fill=' '></rect>",
- "output": "<rect fill=' '/>"
+ "input": "<svg><rect fill=\"url(\nhttp://bad.com/)\" />",
+ "output": "<svg><rect fill=' '></rect></svg>"
},
{
"name": "allow_html5_image_tag",
"input": "<image src='foo' />",
- "rexml": "&lt;image src=\"foo\"&gt;&lt;/image&gt;",
- "output": "&lt;image src=\"foo\"/&gt;"
+ "output": "<img src='foo'/>"
},
{
"name": "style_attr_end_with_nothing",
"input": "<div style=\"color: blue\" />",
- "output": "<div style='color: blue;'/>",
- "xhtml": "<div style='color: blue;'></div>",
- "rexml": "<div style='color: blue;'></div>"
+ "output": "<div style='color: blue;'></div>"
},
{
"name": "style_attr_end_with_space",
"input": "<div style=\"color: blue \" />",
- "output": "<div style='color: blue ;'/>",
- "xhtml": "<div style='color: blue ;'></div>",
- "rexml": "<div style='color: blue ;'></div>"
+ "output": "<div style='color: blue ;'></div>"
},
{
"name": "style_attr_end_with_semicolon",
"input": "<div style=\"color: blue;\" />",
- "output": "<div style='color: blue;'/>",
- "xhtml": "<div style='color: blue;'></div>",
- "rexml": "<div style='color: blue;'></div>"
+ "output": "<div style='color: blue;'></div>"
},
{
"name": "style_attr_end_with_semicolon_space",
"input": "<div style=\"color: blue; \" />",
- "output": "<div style='color: blue;'/>",
- "xhtml": "<div style='color: blue;'></div>",
- "rexml": "<div style='color: blue;'></div>"
+ "output": "<div style='color: blue;'></div>"
},
{
"name": "attributes_with_embedded_quotes",
"input": "<img src=doesntexist.jpg\"'onerror=\"alert(1) />",
- "output": "<img src='doesntexist.jpg&quot;&apos;onerror=&quot;alert(1)'/>",
- "rexml": "Ill-formed XHTML!"
+ "output": "<img src='doesntexist.jpg\"&#39;onerror=\"alert(1)'/>"
},
{
"name": "attributes_with_embedded_quotes_II",
"input": "<img src=notthere.jpg\"\"onerror=\"alert(2) />",
- "output": "<img src='notthere.jpg&quot;&quot;onerror=&quot;alert(2)'/>",
- "rexml": "Ill-formed XHTML!"
+ "output": "<img src='notthere.jpg\"\"onerror=\"alert(2)'/>"
}
]
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/sanitizer.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/sanitizer.py
new file mode 100644
index 00000000000..93882ec477c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/sanitizer.py
@@ -0,0 +1,50 @@
+from __future__ import absolute_import, division, unicode_literals
+
+import codecs
+import json
+
+import pytest
+
+from html5lib import parseFragment, serialize
+
+
+class SanitizerFile(pytest.File):
+ def collect(self):
+ with codecs.open(str(self.fspath), "r", encoding="utf-8") as fp:
+ tests = json.load(fp)
+ for i, test in enumerate(tests):
+ yield SanitizerTest(str(i), self, test=test)
+
+
+class SanitizerTest(pytest.Item):
+ def __init__(self, name, parent, test):
+ super(SanitizerTest, self).__init__(name, parent)
+ self.obj = lambda: 1 # this is to hack around skipif needing a function!
+ self.test = test
+
+ def runtest(self):
+ input = self.test["input"]
+ expected = self.test["output"]
+
+ parsed = parseFragment(input)
+ serialized = serialize(parsed,
+ sanitize=True,
+ omit_optional_tags=False,
+ use_trailing_solidus=True,
+ space_before_trailing_solidus=False,
+ quote_attr_values="always",
+ quote_char="'",
+ alphabetical_attributes=True)
+ errorMsg = "\n".join(["\n\nInput:", input,
+ "\nExpected:", expected,
+ "\nReceived:", serialized])
+ assert expected == serialized, errorMsg
+
+ def repr_failure(self, excinfo):
+ traceback = excinfo.traceback
+ ntraceback = traceback.cut(path=__file__)
+ excinfo.traceback = ntraceback.filter()
+
+ return excinfo.getrepr(funcargs=True,
+ showlocals=False,
+ style="short", tbfilter=False)
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/core.test b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/core.test
new file mode 100644
index 00000000000..70828d0d25e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/core.test
@@ -0,0 +1,395 @@
+{
+ "tests": [
+ {
+ "expected": [
+ "<span title='test \"with\" &amp;quot;'>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "span",
+ [
+ {
+ "namespace": null,
+ "name": "title",
+ "value": "test \"with\" &quot;"
+ }
+ ]
+ ]
+ ],
+ "description": "proper attribute value escaping"
+ },
+ {
+ "expected": [
+ "<span title=foo>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "span",
+ [
+ {
+ "namespace": null,
+ "name": "title",
+ "value": "foo"
+ }
+ ]
+ ]
+ ],
+ "description": "proper attribute value non-quoting"
+ },
+ {
+ "expected": [
+ "<span title=\"foo<bar\">"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "span",
+ [
+ {
+ "namespace": null,
+ "name": "title",
+ "value": "foo<bar"
+ }
+ ]
+ ]
+ ],
+ "description": "proper attribute value non-quoting (with <)"
+ },
+ {
+ "expected": [
+ "<span title=\"foo=bar\">"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "span",
+ [
+ {
+ "namespace": null,
+ "name": "title",
+ "value": "foo=bar"
+ }
+ ]
+ ]
+ ],
+ "description": "proper attribute value quoting (with =)"
+ },
+ {
+ "expected": [
+ "<span title=\"foo>bar\">"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "span",
+ [
+ {
+ "namespace": null,
+ "name": "title",
+ "value": "foo>bar"
+ }
+ ]
+ ]
+ ],
+ "description": "proper attribute value quoting (with >)"
+ },
+ {
+ "expected": [
+ "<span title='foo\"bar'>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "span",
+ [
+ {
+ "namespace": null,
+ "name": "title",
+ "value": "foo\"bar"
+ }
+ ]
+ ]
+ ],
+ "description": "proper attribute value quoting (with \")"
+ },
+ {
+ "expected": [
+ "<span title=\"foo'bar\">"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "span",
+ [
+ {
+ "namespace": null,
+ "name": "title",
+ "value": "foo'bar"
+ }
+ ]
+ ]
+ ],
+ "description": "proper attribute value quoting (with ')"
+ },
+ {
+ "expected": [
+ "<span title=\"foo'bar&quot;baz\">"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "span",
+ [
+ {
+ "namespace": null,
+ "name": "title",
+ "value": "foo'bar\"baz"
+ }
+ ]
+ ]
+ ],
+ "description": "proper attribute value quoting (with both \" and ')"
+ },
+ {
+ "expected": [
+ "<span title=\"foo bar\">"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "span",
+ [
+ {
+ "namespace": null,
+ "name": "title",
+ "value": "foo bar"
+ }
+ ]
+ ]
+ ],
+ "description": "proper attribute value quoting (with space)"
+ },
+ {
+ "expected": [
+ "<span title=\"foo\tbar\">"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "span",
+ [
+ {
+ "namespace": null,
+ "name": "title",
+ "value": "foo\tbar"
+ }
+ ]
+ ]
+ ],
+ "description": "proper attribute value quoting (with tab)"
+ },
+ {
+ "expected": [
+ "<span title=\"foo\nbar\">"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "span",
+ [
+ {
+ "namespace": null,
+ "name": "title",
+ "value": "foo\nbar"
+ }
+ ]
+ ]
+ ],
+ "description": "proper attribute value quoting (with LF)"
+ },
+ {
+ "expected": [
+ "<span title=\"foo\rbar\">"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "span",
+ [
+ {
+ "namespace": null,
+ "name": "title",
+ "value": "foo\rbar"
+ }
+ ]
+ ]
+ ],
+ "description": "proper attribute value quoting (with CR)"
+ },
+ {
+ "expected": [
+ "<span title=\"foo\u000bbar\">"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "span",
+ [
+ {
+ "namespace": null,
+ "name": "title",
+ "value": "foo\u000bbar"
+ }
+ ]
+ ]
+ ],
+ "description": "proper attribute value non-quoting (with linetab)"
+ },
+ {
+ "expected": [
+ "<span title=\"foo\fbar\">"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "span",
+ [
+ {
+ "namespace": null,
+ "name": "title",
+ "value": "foo\fbar"
+ }
+ ]
+ ]
+ ],
+ "description": "proper attribute value quoting (with form feed)"
+ },
+ {
+ "expected": [
+ "<img>"
+ ],
+ "input": [
+ [
+ "EmptyTag",
+ "img",
+ {}
+ ]
+ ],
+ "description": "void element (as EmptyTag token)"
+ },
+ {
+ "expected": [
+ "<!DOCTYPE foo>"
+ ],
+ "input": [
+ [
+ "Doctype",
+ "foo"
+ ]
+ ],
+ "description": "doctype in error"
+ },
+ {
+ "expected": [
+ "a&lt;b&gt;c&amp;d"
+ ],
+ "input": [
+ [
+ "Characters",
+ "a<b>c&d"
+ ]
+ ],
+ "description": "character data",
+ "options": {
+ "encoding": "utf-8"
+ }
+ },
+ {
+ "expected": [
+ "<script>a<b>c&d"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "script",
+ {}
+ ],
+ [
+ "Characters",
+ "a<b>c&d"
+ ]
+ ],
+ "description": "rcdata"
+ },
+ {
+ "expected": [
+ "<!DOCTYPE HTML>"
+ ],
+ "input": [
+ [
+ "Doctype",
+ "HTML"
+ ]
+ ],
+ "description": "doctype"
+ },
+ {
+ "expected": [
+ "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">"
+ ],
+ "input": [
+ [
+ "Doctype",
+ "HTML",
+ "-//W3C//DTD HTML 4.01//EN",
+ "http://www.w3.org/TR/html4/strict.dtd"
+ ]
+ ],
+ "description": "HTML 4.01 DOCTYPE"
+ },
+ {
+ "expected": [
+ "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">"
+ ],
+ "input": [
+ [
+ "Doctype",
+ "HTML",
+ "-//W3C//DTD HTML 4.01//EN"
+ ]
+ ],
+ "description": "HTML 4.01 DOCTYPE without system identifer"
+ },
+ {
+ "expected": [
+ "<!DOCTYPE html SYSTEM \"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd\">"
+ ],
+ "input": [
+ [
+ "Doctype",
+ "html",
+ "",
+ "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"
+ ]
+ ],
+ "description": "IBM DOCTYPE without public identifer"
+ }
+ ]
+}
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/injectmeta.test b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/injectmeta.test
new file mode 100644
index 00000000000..399590c3f35
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/injectmeta.test
@@ -0,0 +1,350 @@
+{
+ "tests": [
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "head"
+ ]
+ ],
+ "description": "no encoding",
+ "options": {
+ "inject_meta_charset": true
+ }
+ },
+ {
+ "expected": [
+ "<meta charset=utf-8>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "head"
+ ]
+ ],
+ "description": "empytag head",
+ "options": {
+ "encoding": "utf-8",
+ "inject_meta_charset": true
+ }
+ },
+ {
+ "expected": [
+ "<meta charset=utf-8><title>foo</title>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "title",
+ {}
+ ],
+ [
+ "Characters",
+ "foo"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "title"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "head"
+ ]
+ ],
+ "description": "head w/title",
+ "options": {
+ "encoding": "utf-8",
+ "inject_meta_charset": true
+ }
+ },
+ {
+ "expected": [
+ "<meta charset=utf-8>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ],
+ [
+ "EmptyTag",
+ "meta",
+ [
+ {
+ "namespace": null,
+ "name": "charset",
+ "value": "ascii"
+ }
+ ]
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "head"
+ ]
+ ],
+ "description": "head w/meta-charset",
+ "options": {
+ "encoding": "utf-8",
+ "inject_meta_charset": true
+ }
+ },
+ {
+ "expected": [
+ "<meta charset=utf-8><meta charset=utf-8>",
+ "<head><meta charset=utf-8><meta charset=ascii>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ],
+ [
+ "EmptyTag",
+ "meta",
+ [
+ {
+ "namespace": null,
+ "name": "charset",
+ "value": "ascii"
+ }
+ ]
+ ],
+ [
+ "EmptyTag",
+ "meta",
+ [
+ {
+ "namespace": null,
+ "name": "charset",
+ "value": "ascii"
+ }
+ ]
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "head"
+ ]
+ ],
+ "description": "head w/ two meta-charset",
+ "options": {
+ "encoding": "utf-8",
+ "inject_meta_charset": true
+ }
+ },
+ {
+ "expected": [
+ "<meta charset=utf-8><meta content=noindex name=robots>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ],
+ [
+ "EmptyTag",
+ "meta",
+ [
+ {
+ "namespace": null,
+ "name": "name",
+ "value": "robots"
+ },
+ {
+ "namespace": null,
+ "name": "content",
+ "value": "noindex"
+ }
+ ]
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "head"
+ ]
+ ],
+ "description": "head w/robots",
+ "options": {
+ "encoding": "utf-8",
+ "inject_meta_charset": true
+ }
+ },
+ {
+ "expected": [
+ "<meta content=noindex name=robots><meta charset=utf-8>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ],
+ [
+ "EmptyTag",
+ "meta",
+ [
+ {
+ "namespace": null,
+ "name": "name",
+ "value": "robots"
+ },
+ {
+ "namespace": null,
+ "name": "content",
+ "value": "noindex"
+ }
+ ]
+ ],
+ [
+ "EmptyTag",
+ "meta",
+ [
+ {
+ "namespace": null,
+ "name": "charset",
+ "value": "ascii"
+ }
+ ]
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "head"
+ ]
+ ],
+ "description": "head w/robots & charset",
+ "options": {
+ "encoding": "utf-8",
+ "inject_meta_charset": true
+ }
+ },
+ {
+ "expected": [
+ "<meta content=\"text/html; charset=utf-8\" http-equiv=content-type>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ],
+ [
+ "EmptyTag",
+ "meta",
+ [
+ {
+ "namespace": null,
+ "name": "http-equiv",
+ "value": "content-type"
+ },
+ {
+ "namespace": null,
+ "name": "content",
+ "value": "text/html; charset=ascii"
+ }
+ ]
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "head"
+ ]
+ ],
+ "description": "head w/ charset in http-equiv content-type",
+ "options": {
+ "encoding": "utf-8",
+ "inject_meta_charset": true
+ }
+ },
+ {
+ "expected": [
+ "<meta content=noindex name=robots><meta content=\"text/html; charset=utf-8\" http-equiv=content-type>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ],
+ [
+ "EmptyTag",
+ "meta",
+ [
+ {
+ "namespace": null,
+ "name": "name",
+ "value": "robots"
+ },
+ {
+ "namespace": null,
+ "name": "content",
+ "value": "noindex"
+ }
+ ]
+ ],
+ [
+ "EmptyTag",
+ "meta",
+ [
+ {
+ "namespace": null,
+ "name": "http-equiv",
+ "value": "content-type"
+ },
+ {
+ "namespace": null,
+ "name": "content",
+ "value": "text/html; charset=ascii"
+ }
+ ]
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "head"
+ ]
+ ],
+ "description": "head w/robots & charset in http-equiv content-type",
+ "options": {
+ "encoding": "utf-8",
+ "inject_meta_charset": true
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/optionaltags.test b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/optionaltags.test
new file mode 100644
index 00000000000..e67725ca26f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/optionaltags.test
@@ -0,0 +1,3254 @@
+{
+ "tests": [
+ {
+ "expected": [
+ "<html lang=en>foo"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "html",
+ [
+ {
+ "namespace": null,
+ "name": "lang",
+ "value": "en"
+ }
+ ]
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "html start-tag followed by text, with attributes"
+ },
+ {
+ "expected": [
+ "<html><!--foo-->"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "html",
+ {}
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "html start-tag followed by comment"
+ },
+ {
+ "expected": [
+ "<html> foo"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "html",
+ {}
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "html start-tag followed by space character"
+ },
+ {
+ "expected": [
+ "foo"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "html",
+ {}
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "html start-tag followed by text"
+ },
+ {
+ "expected": [
+ "<foo>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "html",
+ {}
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "html start-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "</foo>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "html",
+ {}
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "html start-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "html",
+ {}
+ ]
+ ],
+ "description": "html start-tag at EOF (shouldn't ever happen?!)"
+ },
+ {
+ "expected": [
+ "</html><!--foo-->"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "html"
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "html end-tag followed by comment"
+ },
+ {
+ "expected": [
+ "</html> foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "html"
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "html end-tag followed by space character"
+ },
+ {
+ "expected": [
+ "foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "html"
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "html end-tag followed by text"
+ },
+ {
+ "expected": [
+ "<foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "html"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "html end-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "</foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "html"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "html end-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "html"
+ ]
+ ],
+ "description": "html end-tag at EOF"
+ },
+ {
+ "expected": [
+ "<head><!--foo-->"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "head start-tag followed by comment"
+ },
+ {
+ "expected": [
+ "<head> foo"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "head start-tag followed by space character"
+ },
+ {
+ "expected": [
+ "<head>foo"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "head start-tag followed by text"
+ },
+ {
+ "expected": [
+ "<foo>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "head start-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "<head></foo>",
+ "</foo>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "head start-tag followed by end-tag (shouldn't ever happen?!)"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "head"
+ ]
+ ],
+ "description": "empty head element"
+ },
+ {
+ "expected": [
+ "<meta>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ],
+ [
+ "EmptyTag",
+ "meta",
+ {}
+ ]
+ ],
+ "description": "head start-tag followed by empty-tag"
+ },
+ {
+ "expected": [
+ "<head>",
+ ""
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "head",
+ {}
+ ]
+ ],
+ "description": "head start-tag at EOF (shouldn't ever happen?!)"
+ },
+ {
+ "expected": [
+ "</head><!--foo-->"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "head"
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "head end-tag followed by comment"
+ },
+ {
+ "expected": [
+ "</head> foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "head"
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "head end-tag followed by space character"
+ },
+ {
+ "expected": [
+ "foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "head"
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "head end-tag followed by text"
+ },
+ {
+ "expected": [
+ "<foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "head"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "head end-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "</foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "head"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "head end-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "head"
+ ]
+ ],
+ "description": "head end-tag at EOF"
+ },
+ {
+ "expected": [
+ "<body><!--foo-->"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "body",
+ {}
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "body start-tag followed by comment"
+ },
+ {
+ "expected": [
+ "<body> foo"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "body",
+ {}
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "body start-tag followed by space character"
+ },
+ {
+ "expected": [
+ "foo"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "body",
+ {}
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "body start-tag followed by text"
+ },
+ {
+ "expected": [
+ "<foo>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "body",
+ {}
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "body start-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "</foo>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "body",
+ {}
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "body start-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "body",
+ {}
+ ]
+ ],
+ "description": "body start-tag at EOF (shouldn't ever happen?!)"
+ },
+ {
+ "expected": [
+ "</body><!--foo-->"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "body"
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "body end-tag followed by comment"
+ },
+ {
+ "expected": [
+ "</body> foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "body"
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "body end-tag followed by space character"
+ },
+ {
+ "expected": [
+ "foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "body"
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "body end-tag followed by text"
+ },
+ {
+ "expected": [
+ "<foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "body"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "body end-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "</foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "body"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "body end-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "body"
+ ]
+ ],
+ "description": "body end-tag at EOF"
+ },
+ {
+ "expected": [
+ "</li><!--foo-->"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "li"
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "li end-tag followed by comment"
+ },
+ {
+ "expected": [
+ "</li> foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "li"
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "li end-tag followed by space character"
+ },
+ {
+ "expected": [
+ "</li>foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "li"
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "li end-tag followed by text"
+ },
+ {
+ "expected": [
+ "</li><foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "li"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "li end-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "<li>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "li"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "li",
+ {}
+ ]
+ ],
+ "description": "li end-tag followed by li start-tag"
+ },
+ {
+ "expected": [
+ "</foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "li"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "li end-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "li"
+ ]
+ ],
+ "description": "li end-tag at EOF"
+ },
+ {
+ "expected": [
+ "</dt><!--foo-->"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "dt"
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "dt end-tag followed by comment"
+ },
+ {
+ "expected": [
+ "</dt> foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "dt"
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "dt end-tag followed by space character"
+ },
+ {
+ "expected": [
+ "</dt>foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "dt"
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "dt end-tag followed by text"
+ },
+ {
+ "expected": [
+ "</dt><foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "dt"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "dt end-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "<dt>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "dt"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "dt",
+ {}
+ ]
+ ],
+ "description": "dt end-tag followed by dt start-tag"
+ },
+ {
+ "expected": [
+ "<dd>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "dt"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "dd",
+ {}
+ ]
+ ],
+ "description": "dt end-tag followed by dd start-tag"
+ },
+ {
+ "expected": [
+ "</dt></foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "dt"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "dt end-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ "</dt>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "dt"
+ ]
+ ],
+ "description": "dt end-tag at EOF"
+ },
+ {
+ "expected": [
+ "</dd><!--foo-->"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "dd"
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "dd end-tag followed by comment"
+ },
+ {
+ "expected": [
+ "</dd> foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "dd"
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "dd end-tag followed by space character"
+ },
+ {
+ "expected": [
+ "</dd>foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "dd"
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "dd end-tag followed by text"
+ },
+ {
+ "expected": [
+ "</dd><foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "dd"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "dd end-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "<dd>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "dd"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "dd",
+ {}
+ ]
+ ],
+ "description": "dd end-tag followed by dd start-tag"
+ },
+ {
+ "expected": [
+ "<dt>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "dd"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "dt",
+ {}
+ ]
+ ],
+ "description": "dd end-tag followed by dt start-tag"
+ },
+ {
+ "expected": [
+ "</foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "dd"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "dd end-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "dd"
+ ]
+ ],
+ "description": "dd end-tag at EOF"
+ },
+ {
+ "expected": [
+ "</p><!--foo-->"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "p end-tag followed by comment"
+ },
+ {
+ "expected": [
+ "</p> foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "p end-tag followed by space character"
+ },
+ {
+ "expected": [
+ "</p>foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "p end-tag followed by text"
+ },
+ {
+ "expected": [
+ "</p><foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "<address>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "address",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by address start-tag"
+ },
+ {
+ "expected": [
+ "<article>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "article",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by article start-tag"
+ },
+ {
+ "expected": [
+ "<aside>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "aside",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by aside start-tag"
+ },
+ {
+ "expected": [
+ "<blockquote>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "blockquote",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by blockquote start-tag"
+ },
+ {
+ "expected": [
+ "<datagrid>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "datagrid",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by datagrid start-tag"
+ },
+ {
+ "expected": [
+ "<dialog>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "dialog",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by dialog start-tag"
+ },
+ {
+ "expected": [
+ "<dir>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "dir",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by dir start-tag"
+ },
+ {
+ "expected": [
+ "<div>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "div",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by div start-tag"
+ },
+ {
+ "expected": [
+ "<dl>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "dl",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by dl start-tag"
+ },
+ {
+ "expected": [
+ "<fieldset>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "fieldset",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by fieldset start-tag"
+ },
+ {
+ "expected": [
+ "<footer>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "footer",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by footer start-tag"
+ },
+ {
+ "expected": [
+ "<form>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "form",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by form start-tag"
+ },
+ {
+ "expected": [
+ "<h1>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "h1",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by h1 start-tag"
+ },
+ {
+ "expected": [
+ "<h2>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "h2",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by h2 start-tag"
+ },
+ {
+ "expected": [
+ "<h3>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "h3",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by h3 start-tag"
+ },
+ {
+ "expected": [
+ "<h4>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "h4",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by h4 start-tag"
+ },
+ {
+ "expected": [
+ "<h5>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "h5",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by h5 start-tag"
+ },
+ {
+ "expected": [
+ "<h6>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "h6",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by h6 start-tag"
+ },
+ {
+ "expected": [
+ "<header>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "header",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by header start-tag"
+ },
+ {
+ "expected": [
+ "<hr>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "EmptyTag",
+ "hr",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by hr empty-tag"
+ },
+ {
+ "expected": [
+ "<menu>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "menu",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by menu start-tag"
+ },
+ {
+ "expected": [
+ "<nav>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "nav",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by nav start-tag"
+ },
+ {
+ "expected": [
+ "<ol>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "ol",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by ol start-tag"
+ },
+ {
+ "expected": [
+ "<p>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "p",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by p start-tag"
+ },
+ {
+ "expected": [
+ "<pre>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "pre",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by pre start-tag"
+ },
+ {
+ "expected": [
+ "<section>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "section",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by section start-tag"
+ },
+ {
+ "expected": [
+ "<table>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "table",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by table start-tag"
+ },
+ {
+ "expected": [
+ "<ul>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "ul",
+ {}
+ ]
+ ],
+ "description": "p end-tag followed by ul start-tag"
+ },
+ {
+ "expected": [
+ "</foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "p end-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "p"
+ ]
+ ],
+ "description": "p end-tag at EOF"
+ },
+ {
+ "expected": [
+ "</optgroup><!--foo-->"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "optgroup"
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "optgroup end-tag followed by comment"
+ },
+ {
+ "expected": [
+ "</optgroup> foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "optgroup"
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "optgroup end-tag followed by space character"
+ },
+ {
+ "expected": [
+ "</optgroup>foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "optgroup"
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "optgroup end-tag followed by text"
+ },
+ {
+ "expected": [
+ "</optgroup><foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "optgroup"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "optgroup end-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "<optgroup>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "optgroup"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "optgroup",
+ {}
+ ]
+ ],
+ "description": "optgroup end-tag followed by optgroup start-tag"
+ },
+ {
+ "expected": [
+ "</foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "optgroup"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "optgroup end-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "optgroup"
+ ]
+ ],
+ "description": "optgroup end-tag at EOF"
+ },
+ {
+ "expected": [
+ "</option><!--foo-->"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "option"
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "option end-tag followed by comment"
+ },
+ {
+ "expected": [
+ "</option> foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "option"
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "option end-tag followed by space character"
+ },
+ {
+ "expected": [
+ "</option>foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "option"
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "option end-tag followed by text"
+ },
+ {
+ "expected": [
+ "<optgroup>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "option"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "optgroup",
+ {}
+ ]
+ ],
+ "description": "option end-tag followed by optgroup start-tag"
+ },
+ {
+ "expected": [
+ "</option><foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "option"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "option end-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "<option>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "option"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "option",
+ {}
+ ]
+ ],
+ "description": "option end-tag followed by option start-tag"
+ },
+ {
+ "expected": [
+ "</foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "option"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "option end-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "option"
+ ]
+ ],
+ "description": "option end-tag at EOF"
+ },
+ {
+ "expected": [
+ "<colgroup><!--foo-->"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "colgroup",
+ {}
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "colgroup start-tag followed by comment"
+ },
+ {
+ "expected": [
+ "<colgroup> foo"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "colgroup",
+ {}
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "colgroup start-tag followed by space character"
+ },
+ {
+ "expected": [
+ "<colgroup>foo"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "colgroup",
+ {}
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "colgroup start-tag followed by text"
+ },
+ {
+ "expected": [
+ "<colgroup><foo>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "colgroup",
+ {}
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "colgroup start-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "<table><col>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "table",
+ {}
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "colgroup",
+ {}
+ ],
+ [
+ "EmptyTag",
+ "col",
+ {}
+ ]
+ ],
+ "description": "first colgroup in a table with a col child"
+ },
+ {
+ "expected": [
+ "</colgroup><col>",
+ "<colgroup><col>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "colgroup"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "colgroup",
+ {}
+ ],
+ [
+ "EmptyTag",
+ "http://www.w3.org/1999/xhtml",
+ "col",
+ {}
+ ]
+ ],
+ "description": "colgroup with a col child, following another colgroup"
+ },
+ {
+ "expected": [
+ "<colgroup></foo>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "colgroup",
+ {}
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "colgroup start-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ "<colgroup>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "colgroup",
+ {}
+ ]
+ ],
+ "description": "colgroup start-tag at EOF"
+ },
+ {
+ "expected": [
+ "</colgroup><!--foo-->"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "colgroup"
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "colgroup end-tag followed by comment"
+ },
+ {
+ "expected": [
+ "</colgroup> foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "colgroup"
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "colgroup end-tag followed by space character"
+ },
+ {
+ "expected": [
+ "foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "colgroup"
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "colgroup end-tag followed by text"
+ },
+ {
+ "expected": [
+ "<foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "colgroup"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "colgroup end-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "</foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "colgroup"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "colgroup end-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "colgroup"
+ ]
+ ],
+ "description": "colgroup end-tag at EOF"
+ },
+ {
+ "expected": [
+ "</thead><!--foo-->"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "thead"
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "thead end-tag followed by comment"
+ },
+ {
+ "expected": [
+ "</thead> foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "thead"
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "thead end-tag followed by space character"
+ },
+ {
+ "expected": [
+ "</thead>foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "thead"
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "thead end-tag followed by text"
+ },
+ {
+ "expected": [
+ "</thead><foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "thead"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "thead end-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "<tbody>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "thead"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody",
+ {}
+ ]
+ ],
+ "description": "thead end-tag followed by tbody start-tag"
+ },
+ {
+ "expected": [
+ "<tfoot>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "thead"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tfoot",
+ {}
+ ]
+ ],
+ "description": "thead end-tag followed by tfoot start-tag"
+ },
+ {
+ "expected": [
+ "</thead></foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "thead"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "thead end-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ "</thead>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "thead"
+ ]
+ ],
+ "description": "thead end-tag at EOF"
+ },
+ {
+ "expected": [
+ "<tbody><!--foo-->"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody",
+ {}
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "tbody start-tag followed by comment"
+ },
+ {
+ "expected": [
+ "<tbody> foo"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody",
+ {}
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "tbody start-tag followed by space character"
+ },
+ {
+ "expected": [
+ "<tbody>foo"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody",
+ {}
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "tbody start-tag followed by text"
+ },
+ {
+ "expected": [
+ "<tbody><foo>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody",
+ {}
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "tbody start-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "<table><tr>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "table",
+ {}
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody",
+ {}
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tr",
+ {}
+ ]
+ ],
+ "description": "first tbody in a table with a tr child"
+ },
+ {
+ "expected": [
+ "<tbody><tr>",
+ "</tbody><tr>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody",
+ {}
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tr",
+ {}
+ ]
+ ],
+ "description": "tbody with a tr child, following another tbody"
+ },
+ {
+ "expected": [
+ "<tbody><tr>",
+ "</thead><tr>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "thead"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody",
+ {}
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tr",
+ {}
+ ]
+ ],
+ "description": "tbody with a tr child, following a thead"
+ },
+ {
+ "expected": [
+ "<tbody><tr>",
+ "</tfoot><tr>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tfoot"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody",
+ {}
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tr",
+ {}
+ ]
+ ],
+ "description": "tbody with a tr child, following a tfoot"
+ },
+ {
+ "expected": [
+ "<tbody></foo>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody",
+ {}
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "tbody start-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ "<tbody>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody",
+ {}
+ ]
+ ],
+ "description": "tbody start-tag at EOF"
+ },
+ {
+ "expected": [
+ "</tbody><!--foo-->"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody"
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "tbody end-tag followed by comment"
+ },
+ {
+ "expected": [
+ "</tbody> foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody"
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "tbody end-tag followed by space character"
+ },
+ {
+ "expected": [
+ "</tbody>foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody"
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "tbody end-tag followed by text"
+ },
+ {
+ "expected": [
+ "</tbody><foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "tbody end-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "<tbody>",
+ "</tbody>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody",
+ {}
+ ]
+ ],
+ "description": "tbody end-tag followed by tbody start-tag"
+ },
+ {
+ "expected": [
+ "<tfoot>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tfoot",
+ {}
+ ]
+ ],
+ "description": "tbody end-tag followed by tfoot start-tag"
+ },
+ {
+ "expected": [
+ "</foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "tbody end-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody"
+ ]
+ ],
+ "description": "tbody end-tag at EOF"
+ },
+ {
+ "expected": [
+ "</tfoot><!--foo-->"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tfoot"
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "tfoot end-tag followed by comment"
+ },
+ {
+ "expected": [
+ "</tfoot> foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tfoot"
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "tfoot end-tag followed by space character"
+ },
+ {
+ "expected": [
+ "</tfoot>foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tfoot"
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "tfoot end-tag followed by text"
+ },
+ {
+ "expected": [
+ "</tfoot><foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tfoot"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "tfoot end-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "<tbody>",
+ "</tfoot>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tfoot"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tbody",
+ {}
+ ]
+ ],
+ "description": "tfoot end-tag followed by tbody start-tag"
+ },
+ {
+ "expected": [
+ "</foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tfoot"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "tfoot end-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tfoot"
+ ]
+ ],
+ "description": "tfoot end-tag at EOF"
+ },
+ {
+ "expected": [
+ "</tr><!--foo-->"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tr"
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "tr end-tag followed by comment"
+ },
+ {
+ "expected": [
+ "</tr> foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tr"
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "tr end-tag followed by space character"
+ },
+ {
+ "expected": [
+ "</tr>foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tr"
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "tr end-tag followed by text"
+ },
+ {
+ "expected": [
+ "</tr><foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tr"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "tr end-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "<tr>",
+ "</tr>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tr"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "tr",
+ {}
+ ]
+ ],
+ "description": "tr end-tag followed by tr start-tag"
+ },
+ {
+ "expected": [
+ "</foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tr"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "tr end-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "tr"
+ ]
+ ],
+ "description": "tr end-tag at EOF"
+ },
+ {
+ "expected": [
+ "</td><!--foo-->"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "td"
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "td end-tag followed by comment"
+ },
+ {
+ "expected": [
+ "</td> foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "td"
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "td end-tag followed by space character"
+ },
+ {
+ "expected": [
+ "</td>foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "td"
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "td end-tag followed by text"
+ },
+ {
+ "expected": [
+ "</td><foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "td"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "td end-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "<td>",
+ "</td>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "td"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "td",
+ {}
+ ]
+ ],
+ "description": "td end-tag followed by td start-tag"
+ },
+ {
+ "expected": [
+ "<th>",
+ "</td>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "td"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "th",
+ {}
+ ]
+ ],
+ "description": "td end-tag followed by th start-tag"
+ },
+ {
+ "expected": [
+ "</foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "td"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "td end-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "td"
+ ]
+ ],
+ "description": "td end-tag at EOF"
+ },
+ {
+ "expected": [
+ "</th><!--foo-->"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "th"
+ ],
+ [
+ "Comment",
+ "foo"
+ ]
+ ],
+ "description": "th end-tag followed by comment"
+ },
+ {
+ "expected": [
+ "</th> foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "th"
+ ],
+ [
+ "Characters",
+ " foo"
+ ]
+ ],
+ "description": "th end-tag followed by space character"
+ },
+ {
+ "expected": [
+ "</th>foo"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "th"
+ ],
+ [
+ "Characters",
+ "foo"
+ ]
+ ],
+ "description": "th end-tag followed by text"
+ },
+ {
+ "expected": [
+ "</th><foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "th"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo",
+ {}
+ ]
+ ],
+ "description": "th end-tag followed by start-tag"
+ },
+ {
+ "expected": [
+ "<th>",
+ "</th>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "th"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "th",
+ {}
+ ]
+ ],
+ "description": "th end-tag followed by th start-tag"
+ },
+ {
+ "expected": [
+ "<td>",
+ "</th>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "th"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "td",
+ {}
+ ]
+ ],
+ "description": "th end-tag followed by td start-tag"
+ },
+ {
+ "expected": [
+ "</foo>"
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "th"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "foo"
+ ]
+ ],
+ "description": "th end-tag followed by end-tag"
+ },
+ {
+ "expected": [
+ ""
+ ],
+ "input": [
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "th"
+ ]
+ ],
+ "description": "th end-tag at EOF"
+ }
+ ]
+} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/options.test b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/options.test
new file mode 100644
index 00000000000..a22eebfcf3b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/options.test
@@ -0,0 +1,334 @@
+{
+ "tests": [
+ {
+ "expected": [
+ "<span title='test &#39;with&#39; quote_char'>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "span",
+ [
+ {
+ "namespace": null,
+ "name": "title",
+ "value": "test 'with' quote_char"
+ }
+ ]
+ ]
+ ],
+ "description": "quote_char=\"'\"",
+ "options": {
+ "quote_char": "'"
+ }
+ },
+ {
+ "expected": [
+ "<button disabled>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "button",
+ [
+ {
+ "namespace": null,
+ "name": "disabled",
+ "value": "disabled"
+ }
+ ]
+ ]
+ ],
+ "description": "quote_attr_values='always'",
+ "options": {
+ "quote_attr_values": "always"
+ }
+ },
+ {
+ "expected": [
+ "<div itemscope>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "div",
+ [
+ {
+ "namespace": null,
+ "name": "itemscope",
+ "value": "itemscope"
+ }
+ ]
+ ]
+ ],
+ "description": "quote_attr_values='always' with itemscope",
+ "options": {
+ "quote_attr_values": "always"
+ }
+ },
+ {
+ "expected": [
+ "<div irrelevant>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "div",
+ [
+ {
+ "namespace": null,
+ "name": "irrelevant",
+ "value": "irrelevant"
+ }
+ ]
+ ]
+ ],
+ "description": "quote_attr_values='always' with irrelevant",
+ "options": {
+ "quote_attr_values": "always"
+ }
+ },
+ {
+ "expected": [
+ "<div class=\"foo\">"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "div",
+ [
+ {
+ "namespace": null,
+ "name": "class",
+ "value": "foo"
+ }
+ ]
+ ]
+ ],
+ "description": "non-minimized quote_attr_values='always'",
+ "options": {
+ "quote_attr_values": "always"
+ }
+ },
+ {
+ "expected": [
+ "<div class=foo>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "div",
+ [
+ {
+ "namespace": null,
+ "name": "class",
+ "value": "foo"
+ }
+ ]
+ ]
+ ],
+ "description": "non-minimized quote_attr_values='legacy'",
+ "options": {
+ "quote_attr_values": "legacy"
+ }
+ },
+ {
+ "expected": [
+ "<div class=foo>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "div",
+ [
+ {
+ "namespace": null,
+ "name": "class",
+ "value": "foo"
+ }
+ ]
+ ]
+ ],
+ "description": "non-minimized quote_attr_values='spec'",
+ "options": {
+ "quote_attr_values": "spec"
+ }
+ },
+ {
+ "expected": [
+ "<img />"
+ ],
+ "input": [
+ [
+ "EmptyTag",
+ "img",
+ {}
+ ]
+ ],
+ "description": "use_trailing_solidus=true with void element",
+ "options": {
+ "use_trailing_solidus": true
+ }
+ },
+ {
+ "expected": [
+ "<div>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "div",
+ {}
+ ]
+ ],
+ "description": "use_trailing_solidus=true with non-void element",
+ "options": {
+ "use_trailing_solidus": true
+ }
+ },
+ {
+ "expected": [
+ "<div itemscope=itemscope>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "div",
+ [
+ {
+ "namespace": null,
+ "name": "itemscope",
+ "value": "itemscope"
+ }
+ ]
+ ]
+ ],
+ "description": "minimize_boolean_attributes=false",
+ "options": {
+ "minimize_boolean_attributes": false
+ }
+ },
+ {
+ "expected": [
+ "<div irrelevant=irrelevant>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "div",
+ [
+ {
+ "namespace": null,
+ "name": "irrelevant",
+ "value": "irrelevant"
+ }
+ ]
+ ]
+ ],
+ "description": "minimize_boolean_attributes=false",
+ "options": {
+ "minimize_boolean_attributes": false
+ }
+ },
+ {
+ "expected": [
+ "<div itemscope=\"\">"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "div",
+ [
+ {
+ "namespace": null,
+ "name": "itemscope",
+ "value": ""
+ }
+ ]
+ ]
+ ],
+ "description": "minimize_boolean_attributes=false with empty value",
+ "options": {
+ "minimize_boolean_attributes": false
+ }
+ },
+ {
+ "expected": [
+ "<div irrelevant=\"\">"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "div",
+ [
+ {
+ "namespace": null,
+ "name": "irrelevant",
+ "value": ""
+ }
+ ]
+ ]
+ ],
+ "description": "minimize_boolean_attributes=false with empty value",
+ "options": {
+ "minimize_boolean_attributes": false
+ }
+ },
+ {
+ "expected": [
+ "<a title=\"a&lt;b>c&amp;d\">"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "a",
+ [
+ {
+ "namespace": null,
+ "name": "title",
+ "value": "a<b>c&d"
+ }
+ ]
+ ]
+ ],
+ "description": "escape less than signs in attribute values",
+ "options": {
+ "escape_lt_in_attrs": true
+ }
+ },
+ {
+ "expected": [
+ "<script>a&lt;b&gt;c&amp;d"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "script",
+ {}
+ ],
+ [
+ "Characters",
+ "a<b>c&d"
+ ]
+ ],
+ "description": "rcdata",
+ "options": {
+ "escape_rcdata": true
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/whitespace.test b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/whitespace.test
new file mode 100644
index 00000000000..dac3a69e27f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/whitespace.test
@@ -0,0 +1,198 @@
+{
+ "tests": [
+ {
+ "expected": [
+ " foo"
+ ],
+ "input": [
+ [
+ "Characters",
+ "\t\r\n\f foo"
+ ]
+ ],
+ "description": "bare text with leading spaces",
+ "options": {
+ "strip_whitespace": true
+ }
+ },
+ {
+ "expected": [
+ "foo "
+ ],
+ "input": [
+ [
+ "Characters",
+ "foo \t\r\n\f"
+ ]
+ ],
+ "description": "bare text with trailing spaces",
+ "options": {
+ "strip_whitespace": true
+ }
+ },
+ {
+ "expected": [
+ "foo bar"
+ ],
+ "input": [
+ [
+ "Characters",
+ "foo \t\r\n\f bar"
+ ]
+ ],
+ "description": "bare text with inner spaces",
+ "options": {
+ "strip_whitespace": true
+ }
+ },
+ {
+ "expected": [
+ "<pre>\t\r\n\f foo \t\r\n\f bar \t\r\n\f</pre>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "pre",
+ {}
+ ],
+ [
+ "Characters",
+ "\t\r\n\f foo \t\r\n\f bar \t\r\n\f"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "pre"
+ ]
+ ],
+ "description": "text within <pre>",
+ "options": {
+ "strip_whitespace": true
+ }
+ },
+ {
+ "expected": [
+ "<pre>\t\r\n\f fo<span>o \t\r\n\f b</span>ar \t\r\n\f</pre>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "pre",
+ {}
+ ],
+ [
+ "Characters",
+ "\t\r\n\f fo"
+ ],
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "span",
+ {}
+ ],
+ [
+ "Characters",
+ "o \t\r\n\f b"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "span"
+ ],
+ [
+ "Characters",
+ "ar \t\r\n\f"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "pre"
+ ]
+ ],
+ "description": "text within <pre>, with inner markup",
+ "options": {
+ "strip_whitespace": true
+ }
+ },
+ {
+ "expected": [
+ "<textarea>\t\r\n\f foo \t\r\n\f bar \t\r\n\f</textarea>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "textarea",
+ {}
+ ],
+ [
+ "Characters",
+ "\t\r\n\f foo \t\r\n\f bar \t\r\n\f"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "textarea"
+ ]
+ ],
+ "description": "text within <textarea>",
+ "options": {
+ "strip_whitespace": true
+ }
+ },
+ {
+ "expected": [
+ "<script>\t\r\n\f foo \t\r\n\f bar \t\r\n\f</script>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "script",
+ {}
+ ],
+ [
+ "Characters",
+ "\t\r\n\f foo \t\r\n\f bar \t\r\n\f"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "script"
+ ]
+ ],
+ "description": "text within <script>",
+ "options": {
+ "strip_whitespace": true
+ }
+ },
+ {
+ "expected": [
+ "<style>\t\r\n\f foo \t\r\n\f bar \t\r\n\f</style>"
+ ],
+ "input": [
+ [
+ "StartTag",
+ "http://www.w3.org/1999/xhtml",
+ "style",
+ {}
+ ],
+ [
+ "Characters",
+ "\t\r\n\f foo \t\r\n\f bar \t\r\n\f"
+ ],
+ [
+ "EndTag",
+ "http://www.w3.org/1999/xhtml",
+ "style"
+ ]
+ ],
+ "description": "text within <style>",
+ "options": {
+ "strip_whitespace": true
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/support.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/support.py
index 41f2d2a072d..dab65c1c9d1 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/support.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/support.py
@@ -1,5 +1,7 @@
from __future__ import absolute_import, division, unicode_literals
+# pylint:disable=wrong-import-position
+
import os
import sys
import codecs
@@ -13,44 +15,66 @@ sys.path.insert(0, os.path.abspath(os.path.join(base_path,
os.path.pardir,
os.path.pardir)))
-from html5lib import treebuilders
+from html5lib import treebuilders, treewalkers, treeadapters # noqa
del base_path
-# Build a dict of avaliable trees
-treeTypes = {"DOM": treebuilders.getTreeBuilder("dom")}
+# Build a dict of available trees
+treeTypes = {}
+
+# DOM impls
+treeTypes["DOM"] = {
+ "builder": treebuilders.getTreeBuilder("dom"),
+ "walker": treewalkers.getTreeWalker("dom")
+}
+
+# ElementTree impls
+import xml.etree.ElementTree as ElementTree # noqa
+treeTypes['ElementTree'] = {
+ "builder": treebuilders.getTreeBuilder("etree", ElementTree, fullTree=True),
+ "walker": treewalkers.getTreeWalker("etree", ElementTree)
+}
-# Try whatever etree implementations are avaliable from a list that are
-#"supposed" to work
try:
- import xml.etree.ElementTree as ElementTree
- treeTypes['ElementTree'] = treebuilders.getTreeBuilder("etree", ElementTree, fullTree=True)
+ import xml.etree.cElementTree as cElementTree # noqa
except ImportError:
- try:
- import elementtree.ElementTree as ElementTree
- treeTypes['ElementTree'] = treebuilders.getTreeBuilder("etree", ElementTree, fullTree=True)
- except ImportError:
- pass
+ treeTypes['cElementTree'] = None
+else:
+ # On Python 3.3 and above cElementTree is an alias, don't run them twice.
+ if cElementTree.Element is ElementTree.Element:
+ treeTypes['cElementTree'] = None
+ else:
+ treeTypes['cElementTree'] = {
+ "builder": treebuilders.getTreeBuilder("etree", cElementTree, fullTree=True),
+ "walker": treewalkers.getTreeWalker("etree", cElementTree)
+ }
try:
- import xml.etree.cElementTree as cElementTree
- treeTypes['cElementTree'] = treebuilders.getTreeBuilder("etree", cElementTree, fullTree=True)
+ import lxml.etree as lxml # noqa
except ImportError:
- try:
- import cElementTree
- treeTypes['cElementTree'] = treebuilders.getTreeBuilder("etree", cElementTree, fullTree=True)
- except ImportError:
- pass
+ treeTypes['lxml'] = None
+else:
+ treeTypes['lxml'] = {
+ "builder": treebuilders.getTreeBuilder("lxml"),
+ "walker": treewalkers.getTreeWalker("lxml")
+ }
+# Genshi impls
try:
- import lxml.etree as lxml # flake8: noqa
+ import genshi # noqa
except ImportError:
- pass
+ treeTypes["genshi"] = None
else:
- treeTypes['lxml'] = treebuilders.getTreeBuilder("lxml")
+ treeTypes["genshi"] = {
+ "builder": treebuilders.getTreeBuilder("dom"),
+ "adapter": lambda tree: treeadapters.genshi.to_genshi(treewalkers.getTreeWalker("dom")(tree)),
+ "walker": treewalkers.getTreeWalker("genshi")
+ }
+# pylint:enable=wrong-import-position
-def get_data_files(subdirectory, files='*.dat'):
- return glob.glob(os.path.join(test_dir, subdirectory, files))
+
+def get_data_files(subdirectory, files='*.dat', search_dir=test_dir):
+ return sorted(glob.glob(os.path.join(search_dir, subdirectory, files)))
class DefaultDict(dict):
@@ -71,9 +95,6 @@ class TestData(object):
self.encoding = encoding
self.newTestHeading = newTestHeading
- def __del__(self):
- self.f.close()
-
def __iter__(self):
data = DefaultDict(None)
key = None
@@ -128,7 +149,7 @@ convertExpected = convert(2)
def errorMessage(input, expected, actual):
msg = ("Input:\n%s\nExpected:\n%s\nRecieved\n%s\n" %
(repr(input), repr(expected), repr(actual)))
- if sys.version_info.major == 2:
+ if sys.version_info[0] == 2:
msg = msg.encode("ascii", "backslashreplace")
return msg
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_alphabeticalattributes.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_alphabeticalattributes.py
new file mode 100644
index 00000000000..7d5b8e0f656
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_alphabeticalattributes.py
@@ -0,0 +1,78 @@
+from __future__ import absolute_import, division, unicode_literals
+
+from collections import OrderedDict
+
+import pytest
+
+import html5lib
+from html5lib.filters.alphabeticalattributes import Filter
+from html5lib.serializer import HTMLSerializer
+
+
+@pytest.mark.parametrize('msg, attrs, expected_attrs', [
+ (
+ 'no attrs',
+ {},
+ {}
+ ),
+ (
+ 'one attr',
+ {(None, 'alt'): 'image'},
+ OrderedDict([((None, 'alt'), 'image')])
+ ),
+ (
+ 'multiple attrs',
+ {
+ (None, 'src'): 'foo',
+ (None, 'alt'): 'image',
+ (None, 'style'): 'border: 1px solid black;'
+ },
+ OrderedDict([
+ ((None, 'alt'), 'image'),
+ ((None, 'src'), 'foo'),
+ ((None, 'style'), 'border: 1px solid black;')
+ ])
+ ),
+])
+def test_alphabetizing(msg, attrs, expected_attrs):
+ tokens = [{'type': 'StartTag', 'name': 'img', 'data': attrs}]
+ output_tokens = list(Filter(tokens))
+
+ attrs = output_tokens[0]['data']
+ assert attrs == expected_attrs
+
+
+def test_with_different_namespaces():
+ tokens = [{
+ 'type': 'StartTag',
+ 'name': 'pattern',
+ 'data': {
+ (None, 'id'): 'patt1',
+ ('http://www.w3.org/1999/xlink', 'href'): '#patt2'
+ }
+ }]
+ output_tokens = list(Filter(tokens))
+
+ attrs = output_tokens[0]['data']
+ assert attrs == OrderedDict([
+ ((None, 'id'), 'patt1'),
+ (('http://www.w3.org/1999/xlink', 'href'), '#patt2')
+ ])
+
+
+def test_with_serializer():
+ """Verify filter works in the context of everything else"""
+ parser = html5lib.HTMLParser()
+ dom = parser.parseFragment('<svg><pattern xlink:href="#patt2" id="patt1"></svg>')
+ walker = html5lib.getTreeWalker('etree')
+ ser = HTMLSerializer(
+ alphabetical_attributes=True,
+ quote_attr_values='always'
+ )
+
+ # FIXME(willkg): The "xlink" namespace gets dropped by the serializer. When
+ # that gets fixed, we can fix this expected result.
+ assert (
+ ser.render(walker(dom)) ==
+ '<svg><pattern id="patt1" href="#patt2"></pattern></svg>'
+ )
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_encoding.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_encoding.py
new file mode 100644
index 00000000000..9a411c77d28
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_encoding.py
@@ -0,0 +1,116 @@
+from __future__ import absolute_import, division, unicode_literals
+
+import os
+
+import pytest
+
+from .support import get_data_files, test_dir, errorMessage, TestData as _TestData
+from html5lib import HTMLParser, _inputstream
+
+
+def test_basic_prescan_length():
+ data = "<title>Caf\u00E9</title><!--a--><meta charset='utf-8'>".encode('utf-8')
+ pad = 1024 - len(data) + 1
+ data = data.replace(b"-a-", b"-" + (b"a" * pad) + b"-")
+ assert len(data) == 1024 # Sanity
+ stream = _inputstream.HTMLBinaryInputStream(data, useChardet=False)
+ assert 'utf-8' == stream.charEncoding[0].name
+
+
+def test_parser_reparse():
+ data = "<title>Caf\u00E9</title><!--a--><meta charset='utf-8'>".encode('utf-8')
+ pad = 10240 - len(data) + 1
+ data = data.replace(b"-a-", b"-" + (b"a" * pad) + b"-")
+ assert len(data) == 10240 # Sanity
+ stream = _inputstream.HTMLBinaryInputStream(data, useChardet=False)
+ assert 'windows-1252' == stream.charEncoding[0].name
+ p = HTMLParser(namespaceHTMLElements=False)
+ doc = p.parse(data, useChardet=False)
+ assert 'utf-8' == p.documentEncoding
+ assert doc.find(".//title").text == "Caf\u00E9"
+
+
+@pytest.mark.parametrize("expected,data,kwargs", [
+ ("utf-16le", b"\xFF\xFE", {"override_encoding": "iso-8859-2"}),
+ ("utf-16be", b"\xFE\xFF", {"override_encoding": "iso-8859-2"}),
+ ("utf-8", b"\xEF\xBB\xBF", {"override_encoding": "iso-8859-2"}),
+ ("iso-8859-2", b"", {"override_encoding": "iso-8859-2", "transport_encoding": "iso-8859-3"}),
+ ("iso-8859-2", b"<meta charset=iso-8859-3>", {"transport_encoding": "iso-8859-2"}),
+ ("iso-8859-2", b"<meta charset=iso-8859-2>", {"same_origin_parent_encoding": "iso-8859-3"}),
+ ("iso-8859-2", b"", {"same_origin_parent_encoding": "iso-8859-2", "likely_encoding": "iso-8859-3"}),
+ ("iso-8859-2", b"", {"same_origin_parent_encoding": "utf-16", "likely_encoding": "iso-8859-2"}),
+ ("iso-8859-2", b"", {"same_origin_parent_encoding": "utf-16be", "likely_encoding": "iso-8859-2"}),
+ ("iso-8859-2", b"", {"same_origin_parent_encoding": "utf-16le", "likely_encoding": "iso-8859-2"}),
+ ("iso-8859-2", b"", {"likely_encoding": "iso-8859-2", "default_encoding": "iso-8859-3"}),
+ ("iso-8859-2", b"", {"default_encoding": "iso-8859-2"}),
+ ("windows-1252", b"", {"default_encoding": "totally-bogus-string"}),
+ ("windows-1252", b"", {}),
+])
+def test_parser_args(expected, data, kwargs):
+ stream = _inputstream.HTMLBinaryInputStream(data, useChardet=False, **kwargs)
+ assert expected == stream.charEncoding[0].name
+ p = HTMLParser()
+ p.parse(data, useChardet=False, **kwargs)
+ assert expected == p.documentEncoding
+
+
+@pytest.mark.parametrize("kwargs", [
+ {"override_encoding": "iso-8859-2"},
+ {"override_encoding": None},
+ {"transport_encoding": "iso-8859-2"},
+ {"transport_encoding": None},
+ {"same_origin_parent_encoding": "iso-8859-2"},
+ {"same_origin_parent_encoding": None},
+ {"likely_encoding": "iso-8859-2"},
+ {"likely_encoding": None},
+ {"default_encoding": "iso-8859-2"},
+ {"default_encoding": None},
+ {"foo_encoding": "iso-8859-2"},
+ {"foo_encoding": None},
+])
+def test_parser_args_raises(kwargs):
+ with pytest.raises(TypeError) as exc_info:
+ p = HTMLParser()
+ p.parse("", useChardet=False, **kwargs)
+ assert exc_info.value.args[0].startswith("Cannot set an encoding with a unicode input")
+
+
+def runParserEncodingTest(data, encoding):
+ p = HTMLParser()
+ assert p.documentEncoding is None
+ p.parse(data, useChardet=False)
+ encoding = encoding.lower().decode("ascii")
+
+ assert encoding == p.documentEncoding, errorMessage(data, encoding, p.documentEncoding)
+
+
+def runPreScanEncodingTest(data, encoding):
+ stream = _inputstream.HTMLBinaryInputStream(data, useChardet=False)
+ encoding = encoding.lower().decode("ascii")
+
+ # Very crude way to ignore irrelevant tests
+ if len(data) > stream.numBytesMeta:
+ return
+
+ assert encoding == stream.charEncoding[0].name, errorMessage(data, encoding, stream.charEncoding[0].name)
+
+
+def test_encoding():
+ for filename in get_data_files("encoding"):
+ tests = _TestData(filename, b"data", encoding=None)
+ for test in tests:
+ yield (runParserEncodingTest, test[b'data'], test[b'encoding'])
+ yield (runPreScanEncodingTest, test[b'data'], test[b'encoding'])
+
+
+# pylint:disable=wrong-import-position
+try:
+ import chardet # noqa
+except ImportError:
+ print("chardet not found, skipping chardet tests")
+else:
+ def test_chardet():
+ with open(os.path.join(test_dir, "encoding", "chardet", "test_big5.txt"), "rb") as fp:
+ encoding = _inputstream.HTMLInputStream(fp.read()).charEncoding
+ assert encoding[0].name == "big5"
+# pylint:enable=wrong-import-position
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_meta.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_meta.py
new file mode 100644
index 00000000000..e42eafdba4a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_meta.py
@@ -0,0 +1,41 @@
+from __future__ import absolute_import, division, unicode_literals
+
+import six
+from mock import Mock
+
+from . import support
+
+
+def _createReprMock(r):
+ """Creates a mock with a __repr__ returning r
+
+ Also provides __str__ mock with default mock behaviour"""
+ mock = Mock()
+ mock.__repr__ = Mock()
+ mock.__repr__.return_value = r
+ mock.__str__ = Mock(wraps=mock.__str__)
+ return mock
+
+
+def test_errorMessage():
+ # Create mock objects to take repr of
+ input = _createReprMock("1")
+ expected = _createReprMock("2")
+ actual = _createReprMock("3")
+
+ # Run the actual test
+ r = support.errorMessage(input, expected, actual)
+
+ # Assertions!
+ if six.PY2:
+ assert b"Input:\n1\nExpected:\n2\nRecieved\n3\n" == r
+ else:
+ assert six.PY3
+ assert "Input:\n1\nExpected:\n2\nRecieved\n3\n" == r
+
+ assert input.__repr__.call_count == 1
+ assert expected.__repr__.call_count == 1
+ assert actual.__repr__.call_count == 1
+ assert not input.__str__.called
+ assert not expected.__str__.called
+ assert not actual.__str__.called
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_optionaltags_filter.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_optionaltags_filter.py
new file mode 100644
index 00000000000..cd2821497fd
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_optionaltags_filter.py
@@ -0,0 +1,7 @@
+from __future__ import absolute_import, division, unicode_literals
+
+from html5lib.filters.optionaltags import Filter
+
+
+def test_empty():
+ assert list(Filter([])) == []
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_parser2.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_parser2.py
new file mode 100644
index 00000000000..bcc0bf48f08
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_parser2.py
@@ -0,0 +1,130 @@
+from __future__ import absolute_import, division, unicode_literals
+
+from six import PY2, text_type, unichr
+
+import io
+
+from . import support # noqa
+
+from html5lib.constants import namespaces, tokenTypes
+from html5lib import parse, parseFragment, HTMLParser
+
+
+# tests that aren't autogenerated from text files
+def test_assertDoctypeCloneable():
+ doc = parse('<!DOCTYPE HTML>', treebuilder="dom")
+ assert doc.cloneNode(True) is not None
+
+
+def test_line_counter():
+ # http://groups.google.com/group/html5lib-discuss/browse_frm/thread/f4f00e4a2f26d5c0
+ assert parse("<pre>\nx\n&gt;\n</pre>") is not None
+
+
+def test_namespace_html_elements_0_dom():
+ doc = parse("<html></html>",
+ treebuilder="dom",
+ namespaceHTMLElements=True)
+ assert doc.childNodes[0].namespaceURI == namespaces["html"]
+
+
+def test_namespace_html_elements_1_dom():
+ doc = parse("<html></html>",
+ treebuilder="dom",
+ namespaceHTMLElements=False)
+ assert doc.childNodes[0].namespaceURI is None
+
+
+def test_namespace_html_elements_0_etree():
+ doc = parse("<html></html>",
+ treebuilder="etree",
+ namespaceHTMLElements=True)
+ assert doc.tag == "{%s}html" % (namespaces["html"],)
+
+
+def test_namespace_html_elements_1_etree():
+ doc = parse("<html></html>",
+ treebuilder="etree",
+ namespaceHTMLElements=False)
+ assert doc.tag == "html"
+
+
+def test_unicode_file():
+ assert parse(io.StringIO("a")) is not None
+
+
+def test_maintain_attribute_order():
+ # This is here because we impl it in parser and not tokenizer
+ p = HTMLParser()
+ # generate loads to maximize the chance a hash-based mutation will occur
+ attrs = [(unichr(x), i) for i, x in enumerate(range(ord('a'), ord('z')))]
+ token = {'name': 'html',
+ 'selfClosing': False,
+ 'selfClosingAcknowledged': False,
+ 'type': tokenTypes["StartTag"],
+ 'data': attrs}
+ out = p.normalizeToken(token)
+ attr_order = list(out["data"].keys())
+ assert attr_order == [x for x, i in attrs]
+
+
+def test_duplicate_attribute():
+ # This is here because we impl it in parser and not tokenizer
+ doc = parse('<p class=a class=b>')
+ el = doc[1][0]
+ assert el.get("class") == "a"
+
+
+def test_maintain_duplicate_attribute_order():
+ # This is here because we impl it in parser and not tokenizer
+ p = HTMLParser()
+ attrs = [(unichr(x), i) for i, x in enumerate(range(ord('a'), ord('z')))]
+ token = {'name': 'html',
+ 'selfClosing': False,
+ 'selfClosingAcknowledged': False,
+ 'type': tokenTypes["StartTag"],
+ 'data': attrs + [('a', len(attrs))]}
+ out = p.normalizeToken(token)
+ attr_order = list(out["data"].keys())
+ assert attr_order == [x for x, i in attrs]
+
+
+def test_debug_log():
+ parser = HTMLParser(debug=True)
+ parser.parse("<!doctype html><title>a</title><p>b<script>c</script>d</p>e")
+
+ expected = [('dataState', 'InitialPhase', 'InitialPhase', 'processDoctype', {'type': 'Doctype'}),
+ ('dataState', 'BeforeHtmlPhase', 'BeforeHtmlPhase', 'processStartTag', {'name': 'title', 'type': 'StartTag'}),
+ ('dataState', 'BeforeHeadPhase', 'BeforeHeadPhase', 'processStartTag', {'name': 'title', 'type': 'StartTag'}),
+ ('dataState', 'InHeadPhase', 'InHeadPhase', 'processStartTag', {'name': 'title', 'type': 'StartTag'}),
+ ('rcdataState', 'TextPhase', 'TextPhase', 'processCharacters', {'type': 'Characters'}),
+ ('dataState', 'TextPhase', 'TextPhase', 'processEndTag', {'name': 'title', 'type': 'EndTag'}),
+ ('dataState', 'InHeadPhase', 'InHeadPhase', 'processStartTag', {'name': 'p', 'type': 'StartTag'}),
+ ('dataState', 'AfterHeadPhase', 'AfterHeadPhase', 'processStartTag', {'name': 'p', 'type': 'StartTag'}),
+ ('dataState', 'InBodyPhase', 'InBodyPhase', 'processStartTag', {'name': 'p', 'type': 'StartTag'}),
+ ('dataState', 'InBodyPhase', 'InBodyPhase', 'processCharacters', {'type': 'Characters'}),
+ ('dataState', 'InBodyPhase', 'InBodyPhase', 'processStartTag', {'name': 'script', 'type': 'StartTag'}),
+ ('dataState', 'InBodyPhase', 'InHeadPhase', 'processStartTag', {'name': 'script', 'type': 'StartTag'}),
+ ('scriptDataState', 'TextPhase', 'TextPhase', 'processCharacters', {'type': 'Characters'}),
+ ('dataState', 'TextPhase', 'TextPhase', 'processEndTag', {'name': 'script', 'type': 'EndTag'}),
+ ('dataState', 'InBodyPhase', 'InBodyPhase', 'processCharacters', {'type': 'Characters'}),
+ ('dataState', 'InBodyPhase', 'InBodyPhase', 'processEndTag', {'name': 'p', 'type': 'EndTag'}),
+ ('dataState', 'InBodyPhase', 'InBodyPhase', 'processCharacters', {'type': 'Characters'})]
+
+ if PY2:
+ for i, log in enumerate(expected):
+ log = [x.encode("ascii") if isinstance(x, text_type) else x for x in log]
+ expected[i] = tuple(log)
+
+ assert parser.log == expected
+
+
+def test_no_duplicate_clone():
+ frag = parseFragment("<b><em><foo><foob><fooc><aside></b></em>")
+ assert len(frag) == 2
+
+
+def test_self_closing_col():
+ parser = HTMLParser()
+ parser.parseFragment('<table><colgroup><col /></colgroup></table>')
+ assert not parser.errors
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_sanitizer.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_sanitizer.py
new file mode 100644
index 00000000000..45046d57229
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_sanitizer.py
@@ -0,0 +1,127 @@
+from __future__ import absolute_import, division, unicode_literals
+
+from html5lib import constants, parseFragment, serialize
+from html5lib.filters import sanitizer
+
+
+def runSanitizerTest(_, expected, input):
+ parsed = parseFragment(expected)
+ expected = serialize(parsed,
+ omit_optional_tags=False,
+ use_trailing_solidus=True,
+ space_before_trailing_solidus=False,
+ quote_attr_values="always",
+ quote_char='"',
+ alphabetical_attributes=True)
+ assert expected == sanitize_html(input)
+
+
+def sanitize_html(stream):
+ parsed = parseFragment(stream)
+ serialized = serialize(parsed,
+ sanitize=True,
+ omit_optional_tags=False,
+ use_trailing_solidus=True,
+ space_before_trailing_solidus=False,
+ quote_attr_values="always",
+ quote_char='"',
+ alphabetical_attributes=True)
+ return serialized
+
+
+def test_should_handle_astral_plane_characters():
+ sanitized = sanitize_html("<p>&#x1d4b5; &#x1d538;</p>")
+ expected = '<p>\U0001d4b5 \U0001d538</p>'
+ assert expected == sanitized
+
+
+def test_should_allow_relative_uris():
+ sanitized = sanitize_html('<p><a href="/example.com"></a></p>')
+ expected = '<p><a href="/example.com"></a></p>'
+ assert expected == sanitized
+
+
+def test_invalid_data_uri():
+ sanitized = sanitize_html('<audio controls="" src="data:foobar"></audio>')
+ expected = '<audio controls></audio>'
+ assert expected == sanitized
+
+
+def test_invalid_ipv6_url():
+ sanitized = sanitize_html('<a href="h://]">')
+ expected = "<a></a>"
+ assert expected == sanitized
+
+
+def test_data_uri_disallowed_type():
+ sanitized = sanitize_html('<audio controls="" src="data:text/html,<html>"></audio>')
+ expected = "<audio controls></audio>"
+ assert expected == sanitized
+
+
+def test_sanitizer():
+ for ns, tag_name in sanitizer.allowed_elements:
+ if ns != constants.namespaces["html"]:
+ continue
+ if tag_name in ['caption', 'col', 'colgroup', 'optgroup', 'option', 'table', 'tbody', 'td',
+ 'tfoot', 'th', 'thead', 'tr', 'select']:
+ continue # TODO
+ if tag_name == 'image':
+ yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name,
+ "<img title=\"1\"/>foo &lt;bad&gt;bar&lt;/bad&gt; baz",
+ "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name))
+ elif tag_name == 'br':
+ yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name,
+ "<br title=\"1\"/>foo &lt;bad&gt;bar&lt;/bad&gt; baz<br/>",
+ "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name))
+ elif tag_name in constants.voidElements:
+ yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name,
+ "<%s title=\"1\"/>foo &lt;bad&gt;bar&lt;/bad&gt; baz" % tag_name,
+ "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name))
+ else:
+ yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name,
+ "<%s title=\"1\">foo &lt;bad&gt;bar&lt;/bad&gt; baz</%s>" % (tag_name, tag_name),
+ "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name))
+
+ for ns, attribute_name in sanitizer.allowed_attributes:
+ if ns is not None:
+ continue
+ if attribute_name != attribute_name.lower():
+ continue # TODO
+ if attribute_name == 'style':
+ continue
+ attribute_value = 'foo'
+ if attribute_name in sanitizer.attr_val_is_uri:
+ attribute_value = '%s://sub.domain.tld/path/object.ext' % sanitizer.allowed_protocols[0]
+ yield (runSanitizerTest, "test_should_allow_%s_attribute" % attribute_name,
+ "<p %s=\"%s\">foo &lt;bad&gt;bar&lt;/bad&gt; baz</p>" % (attribute_name, attribute_value),
+ "<p %s='%s'>foo <bad>bar</bad> baz</p>" % (attribute_name, attribute_value))
+
+ for protocol in sanitizer.allowed_protocols:
+ rest_of_uri = '//sub.domain.tld/path/object.ext'
+ if protocol == 'data':
+ rest_of_uri = 'image/png;base64,aGVsbG8gd29ybGQ='
+ yield (runSanitizerTest, "test_should_allow_uppercase_%s_uris" % protocol,
+ "<img src=\"%s:%s\">foo</a>" % (protocol, rest_of_uri),
+ """<img src="%s:%s">foo</a>""" % (protocol, rest_of_uri))
+
+ for protocol in sanitizer.allowed_protocols:
+ rest_of_uri = '//sub.domain.tld/path/object.ext'
+ if protocol == 'data':
+ rest_of_uri = 'image/png;base64,aGVsbG8gd29ybGQ='
+ protocol = protocol.upper()
+ yield (runSanitizerTest, "test_should_allow_uppercase_%s_uris" % protocol,
+ "<img src=\"%s:%s\">foo</a>" % (protocol, rest_of_uri),
+ """<img src="%s:%s">foo</a>""" % (protocol, rest_of_uri))
+
+
+def test_lowercase_color_codes_in_style():
+ sanitized = sanitize_html("<p style=\"border: 1px solid #a2a2a2;\"></p>")
+ expected = '<p style=\"border: 1px solid #a2a2a2;\"></p>'
+ assert expected == sanitized
+
+
+def test_uppercase_color_codes_in_style():
+ sanitized = sanitize_html("<p style=\"border: 1px solid #A2A2A2;\"></p>")
+ expected = '<p style=\"border: 1px solid #A2A2A2;\"></p>'
+ assert expected == sanitized
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_serializer.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_serializer.py
new file mode 100644
index 00000000000..9333286ef14
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_serializer.py
@@ -0,0 +1,225 @@
+from __future__ import absolute_import, division, unicode_literals
+
+import os
+import json
+
+import pytest
+
+from .support import get_data_files
+
+from html5lib import constants
+from html5lib.filters.lint import Filter as Lint
+from html5lib.serializer import HTMLSerializer, serialize
+from html5lib.treewalkers.base import TreeWalker
+
+# pylint:disable=wrong-import-position
+optionals_loaded = []
+
+try:
+ from lxml import etree
+ optionals_loaded.append("lxml")
+except ImportError:
+ pass
+# pylint:enable=wrong-import-position
+
+default_namespace = constants.namespaces["html"]
+
+
+class JsonWalker(TreeWalker):
+ def __iter__(self):
+ for token in self.tree:
+ type = token[0]
+ if type == "StartTag":
+ if len(token) == 4:
+ namespace, name, attrib = token[1:4]
+ else:
+ namespace = default_namespace
+ name, attrib = token[1:3]
+ yield self.startTag(namespace, name, self._convertAttrib(attrib))
+ elif type == "EndTag":
+ if len(token) == 3:
+ namespace, name = token[1:3]
+ else:
+ namespace = default_namespace
+ name = token[1]
+ yield self.endTag(namespace, name)
+ elif type == "EmptyTag":
+ if len(token) == 4:
+ namespace, name, attrib = token[1:]
+ else:
+ namespace = default_namespace
+ name, attrib = token[1:]
+ for token in self.emptyTag(namespace, name, self._convertAttrib(attrib)):
+ yield token
+ elif type == "Comment":
+ yield self.comment(token[1])
+ elif type in ("Characters", "SpaceCharacters"):
+ for token in self.text(token[1]):
+ yield token
+ elif type == "Doctype":
+ if len(token) == 4:
+ yield self.doctype(token[1], token[2], token[3])
+ elif len(token) == 3:
+ yield self.doctype(token[1], token[2])
+ else:
+ yield self.doctype(token[1])
+ else:
+ raise ValueError("Unknown token type: " + type)
+
+ def _convertAttrib(self, attribs):
+ """html5lib tree-walkers use a dict of (namespace, name): value for
+ attributes, but JSON cannot represent this. Convert from the format
+ in the serializer tests (a list of dicts with "namespace", "name",
+ and "value" as keys) to html5lib's tree-walker format."""
+ attrs = {}
+ for attrib in attribs:
+ name = (attrib["namespace"], attrib["name"])
+ assert(name not in attrs)
+ attrs[name] = attrib["value"]
+ return attrs
+
+
+def serialize_html(input, options):
+ options = dict([(str(k), v) for k, v in options.items()])
+ encoding = options.get("encoding", None)
+ if "encoding" in options:
+ del options["encoding"]
+ stream = Lint(JsonWalker(input), False)
+ serializer = HTMLSerializer(alphabetical_attributes=True, **options)
+ return serializer.render(stream, encoding)
+
+
+def runSerializerTest(input, expected, options):
+ encoding = options.get("encoding", None)
+
+ if encoding:
+ expected = list(map(lambda x: x.encode(encoding), expected))
+
+ result = serialize_html(input, options)
+ if len(expected) == 1:
+ assert expected[0] == result, "Expected:\n%s\nActual:\n%s\nOptions:\n%s" % (expected[0], result, str(options))
+ elif result not in expected:
+ assert False, "Expected: %s, Received: %s" % (expected, result)
+
+
+def throwsWithLatin1(input):
+ with pytest.raises(UnicodeEncodeError):
+ serialize_html(input, {"encoding": "iso-8859-1"})
+
+
+def testDoctypeName():
+ throwsWithLatin1([["Doctype", "\u0101"]])
+
+
+def testDoctypePublicId():
+ throwsWithLatin1([["Doctype", "potato", "\u0101"]])
+
+
+def testDoctypeSystemId():
+ throwsWithLatin1([["Doctype", "potato", "potato", "\u0101"]])
+
+
+def testCdataCharacters():
+ runSerializerTest([["StartTag", "http://www.w3.org/1999/xhtml", "style", {}], ["Characters", "\u0101"]],
+ ["<style>&amacr;"], {"encoding": "iso-8859-1"})
+
+
+def testCharacters():
+ runSerializerTest([["Characters", "\u0101"]],
+ ["&amacr;"], {"encoding": "iso-8859-1"})
+
+
+def testStartTagName():
+ throwsWithLatin1([["StartTag", "http://www.w3.org/1999/xhtml", "\u0101", []]])
+
+
+def testAttributeName():
+ throwsWithLatin1([["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": None, "name": "\u0101", "value": "potato"}]]])
+
+
+def testAttributeValue():
+ runSerializerTest([["StartTag", "http://www.w3.org/1999/xhtml", "span",
+ [{"namespace": None, "name": "potato", "value": "\u0101"}]]],
+ ["<span potato=&amacr;>"], {"encoding": "iso-8859-1"})
+
+
+def testEndTagName():
+ throwsWithLatin1([["EndTag", "http://www.w3.org/1999/xhtml", "\u0101"]])
+
+
+def testComment():
+ throwsWithLatin1([["Comment", "\u0101"]])
+
+
+def testThrowsUnknownOption():
+ with pytest.raises(TypeError):
+ HTMLSerializer(foobar=None)
+
+
+@pytest.mark.parametrize("c", list("\t\n\u000C\x20\r\"'=<>`"))
+def testSpecQuoteAttribute(c):
+ input_ = [["StartTag", "http://www.w3.org/1999/xhtml", "span",
+ [{"namespace": None, "name": "foo", "value": c}]]]
+ if c == '"':
+ output_ = ["<span foo='%s'>" % c]
+ else:
+ output_ = ['<span foo="%s">' % c]
+ options_ = {"quote_attr_values": "spec"}
+ runSerializerTest(input_, output_, options_)
+
+
+@pytest.mark.parametrize("c", list("\t\n\u000C\x20\r\"'=<>`"
+ "\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n"
+ "\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15"
+ "\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
+ "\x20\x2f\x60\xa0\u1680\u180e\u180f\u2000"
+ "\u2001\u2002\u2003\u2004\u2005\u2006\u2007"
+ "\u2008\u2009\u200a\u2028\u2029\u202f\u205f"
+ "\u3000"))
+def testLegacyQuoteAttribute(c):
+ input_ = [["StartTag", "http://www.w3.org/1999/xhtml", "span",
+ [{"namespace": None, "name": "foo", "value": c}]]]
+ if c == '"':
+ output_ = ["<span foo='%s'>" % c]
+ else:
+ output_ = ['<span foo="%s">' % c]
+ options_ = {"quote_attr_values": "legacy"}
+ runSerializerTest(input_, output_, options_)
+
+
+@pytest.fixture
+def lxml_parser():
+ return etree.XMLParser(resolve_entities=False)
+
+
+@pytest.mark.skipif("lxml" not in optionals_loaded, reason="lxml not importable")
+def testEntityReplacement(lxml_parser):
+ doc = '<!DOCTYPE html SYSTEM "about:legacy-compat"><html>&beta;</html>'
+ tree = etree.fromstring(doc, parser=lxml_parser).getroottree()
+ result = serialize(tree, tree="lxml", omit_optional_tags=False)
+ assert result == '<!DOCTYPE html SYSTEM "about:legacy-compat"><html>\u03B2</html>'
+
+
+@pytest.mark.skipif("lxml" not in optionals_loaded, reason="lxml not importable")
+def testEntityXML(lxml_parser):
+ doc = '<!DOCTYPE html SYSTEM "about:legacy-compat"><html>&gt;</html>'
+ tree = etree.fromstring(doc, parser=lxml_parser).getroottree()
+ result = serialize(tree, tree="lxml", omit_optional_tags=False)
+ assert result == '<!DOCTYPE html SYSTEM "about:legacy-compat"><html>&gt;</html>'
+
+
+@pytest.mark.skipif("lxml" not in optionals_loaded, reason="lxml not importable")
+def testEntityNoResolve(lxml_parser):
+ doc = '<!DOCTYPE html SYSTEM "about:legacy-compat"><html>&beta;</html>'
+ tree = etree.fromstring(doc, parser=lxml_parser).getroottree()
+ result = serialize(tree, tree="lxml", omit_optional_tags=False,
+ resolve_entities=False)
+ assert result == '<!DOCTYPE html SYSTEM "about:legacy-compat"><html>&beta;</html>'
+
+
+def test_serializer():
+ for filename in get_data_files('serializer-testdata', '*.test', os.path.dirname(__file__)):
+ with open(filename) as fp:
+ tests = json.load(fp)
+ for test in tests['tests']:
+ yield runSerializerTest, test["input"], test["expected"], test.get("options", {})
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_stream.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_stream.py
new file mode 100644
index 00000000000..27c39538c8b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_stream.py
@@ -0,0 +1,323 @@
+from __future__ import absolute_import, division, unicode_literals
+
+from . import support # noqa
+
+import codecs
+import sys
+from io import BytesIO, StringIO
+
+import pytest
+
+import six
+from six.moves import http_client, urllib
+
+from html5lib._inputstream import (BufferedStream, HTMLInputStream,
+ HTMLUnicodeInputStream, HTMLBinaryInputStream)
+from html5lib._utils import supports_lone_surrogates
+
+
+def test_basic():
+ s = b"abc"
+ fp = BufferedStream(BytesIO(s))
+ read = fp.read(10)
+ assert read == s
+
+
+def test_read_length():
+ fp = BufferedStream(BytesIO(b"abcdef"))
+ read1 = fp.read(1)
+ assert read1 == b"a"
+ read2 = fp.read(2)
+ assert read2 == b"bc"
+ read3 = fp.read(3)
+ assert read3 == b"def"
+ read4 = fp.read(4)
+ assert read4 == b""
+
+
+def test_tell():
+ fp = BufferedStream(BytesIO(b"abcdef"))
+ read1 = fp.read(1)
+ assert read1 == b"a"
+ assert fp.tell() == 1
+ read2 = fp.read(2)
+ assert read2 == b"bc"
+ assert fp.tell() == 3
+ read3 = fp.read(3)
+ assert read3 == b"def"
+ assert fp.tell() == 6
+ read4 = fp.read(4)
+ assert read4 == b""
+ assert fp.tell() == 6
+
+
+def test_seek():
+ fp = BufferedStream(BytesIO(b"abcdef"))
+ read1 = fp.read(1)
+ assert read1 == b"a"
+ fp.seek(0)
+ read2 = fp.read(1)
+ assert read2 == b"a"
+ read3 = fp.read(2)
+ assert read3 == b"bc"
+ fp.seek(2)
+ read4 = fp.read(2)
+ assert read4 == b"cd"
+ fp.seek(4)
+ read5 = fp.read(2)
+ assert read5 == b"ef"
+
+
+def test_seek_tell():
+ fp = BufferedStream(BytesIO(b"abcdef"))
+ read1 = fp.read(1)
+ assert read1 == b"a"
+ assert fp.tell() == 1
+ fp.seek(0)
+ read2 = fp.read(1)
+ assert read2 == b"a"
+ assert fp.tell() == 1
+ read3 = fp.read(2)
+ assert read3 == b"bc"
+ assert fp.tell() == 3
+ fp.seek(2)
+ read4 = fp.read(2)
+ assert read4 == b"cd"
+ assert fp.tell() == 4
+ fp.seek(4)
+ read5 = fp.read(2)
+ assert read5 == b"ef"
+ assert fp.tell() == 6
+
+
+class HTMLUnicodeInputStreamShortChunk(HTMLUnicodeInputStream):
+ _defaultChunkSize = 2
+
+
+class HTMLBinaryInputStreamShortChunk(HTMLBinaryInputStream):
+ _defaultChunkSize = 2
+
+
+def test_char_ascii():
+ stream = HTMLInputStream(b"'", override_encoding='ascii')
+ assert stream.charEncoding[0].name == 'windows-1252'
+ assert stream.char() == "'"
+
+
+def test_char_utf8():
+ stream = HTMLInputStream('\u2018'.encode('utf-8'), override_encoding='utf-8')
+ assert stream.charEncoding[0].name == 'utf-8'
+ assert stream.char() == '\u2018'
+
+
+def test_char_win1252():
+ stream = HTMLInputStream("\xa9\xf1\u2019".encode('windows-1252'))
+ assert stream.charEncoding[0].name == 'windows-1252'
+ assert stream.char() == "\xa9"
+ assert stream.char() == "\xf1"
+ assert stream.char() == "\u2019"
+
+
+def test_bom():
+ stream = HTMLInputStream(codecs.BOM_UTF8 + b"'")
+ assert stream.charEncoding[0].name == 'utf-8'
+ assert stream.char() == "'"
+
+
+def test_utf_16():
+ stream = HTMLInputStream((' ' * 1025).encode('utf-16'))
+ assert stream.charEncoding[0].name in ['utf-16le', 'utf-16be']
+ assert len(stream.charsUntil(' ', True)) == 1025
+
+
+def test_newlines():
+ stream = HTMLBinaryInputStreamShortChunk(codecs.BOM_UTF8 + b"a\nbb\r\nccc\rddddxe")
+ assert stream.position() == (1, 0)
+ assert stream.charsUntil('c') == "a\nbb\n"
+ assert stream.position() == (3, 0)
+ assert stream.charsUntil('x') == "ccc\ndddd"
+ assert stream.position() == (4, 4)
+ assert stream.charsUntil('e') == "x"
+ assert stream.position() == (4, 5)
+
+
+def test_newlines2():
+ size = HTMLUnicodeInputStream._defaultChunkSize
+ stream = HTMLInputStream("\r" * size + "\n")
+ assert stream.charsUntil('x') == "\n" * size
+
+
+def test_position():
+ stream = HTMLBinaryInputStreamShortChunk(codecs.BOM_UTF8 + b"a\nbb\nccc\nddde\nf\ngh")
+ assert stream.position() == (1, 0)
+ assert stream.charsUntil('c') == "a\nbb\n"
+ assert stream.position() == (3, 0)
+ stream.unget("\n")
+ assert stream.position() == (2, 2)
+ assert stream.charsUntil('c') == "\n"
+ assert stream.position() == (3, 0)
+ stream.unget("\n")
+ assert stream.position() == (2, 2)
+ assert stream.char() == "\n"
+ assert stream.position() == (3, 0)
+ assert stream.charsUntil('e') == "ccc\nddd"
+ assert stream.position() == (4, 3)
+ assert stream.charsUntil('h') == "e\nf\ng"
+ assert stream.position() == (6, 1)
+
+
+def test_position2():
+ stream = HTMLUnicodeInputStreamShortChunk("abc\nd")
+ assert stream.position() == (1, 0)
+ assert stream.char() == "a"
+ assert stream.position() == (1, 1)
+ assert stream.char() == "b"
+ assert stream.position() == (1, 2)
+ assert stream.char() == "c"
+ assert stream.position() == (1, 3)
+ assert stream.char() == "\n"
+ assert stream.position() == (2, 0)
+ assert stream.char() == "d"
+ assert stream.position() == (2, 1)
+
+
+def test_python_issue_20007():
+ """
+ Make sure we have a work-around for Python bug #20007
+ http://bugs.python.org/issue20007
+ """
+ class FakeSocket(object):
+ def makefile(self, _mode, _bufsize=None):
+ # pylint:disable=unused-argument
+ return BytesIO(b"HTTP/1.1 200 Ok\r\n\r\nText")
+
+ source = http_client.HTTPResponse(FakeSocket())
+ source.begin()
+ stream = HTMLInputStream(source)
+ assert stream.charsUntil(" ") == "Text"
+
+
+def test_python_issue_20007_b():
+ """
+ Make sure we have a work-around for Python bug #20007
+ http://bugs.python.org/issue20007
+ """
+ if six.PY2:
+ return
+
+ class FakeSocket(object):
+ def makefile(self, _mode, _bufsize=None):
+ # pylint:disable=unused-argument
+ return BytesIO(b"HTTP/1.1 200 Ok\r\n\r\nText")
+
+ source = http_client.HTTPResponse(FakeSocket())
+ source.begin()
+ wrapped = urllib.response.addinfourl(source, source.msg, "http://example.com")
+ stream = HTMLInputStream(wrapped)
+ assert stream.charsUntil(" ") == "Text"
+
+
+@pytest.mark.parametrize("inp,num",
+ [("\u0000", 0),
+ ("\u0001", 1),
+ ("\u0008", 1),
+ ("\u0009", 0),
+ ("\u000A", 0),
+ ("\u000B", 1),
+ ("\u000C", 0),
+ ("\u000D", 0),
+ ("\u000E", 1),
+ ("\u001F", 1),
+ ("\u0020", 0),
+ ("\u007E", 0),
+ ("\u007F", 1),
+ ("\u009F", 1),
+ ("\u00A0", 0),
+ ("\uFDCF", 0),
+ ("\uFDD0", 1),
+ ("\uFDEF", 1),
+ ("\uFDF0", 0),
+ ("\uFFFD", 0),
+ ("\uFFFE", 1),
+ ("\uFFFF", 1),
+ ("\U0001FFFD", 0),
+ ("\U0001FFFE", 1),
+ ("\U0001FFFF", 1),
+ ("\U0002FFFD", 0),
+ ("\U0002FFFE", 1),
+ ("\U0002FFFF", 1),
+ ("\U0003FFFD", 0),
+ ("\U0003FFFE", 1),
+ ("\U0003FFFF", 1),
+ ("\U0004FFFD", 0),
+ ("\U0004FFFE", 1),
+ ("\U0004FFFF", 1),
+ ("\U0005FFFD", 0),
+ ("\U0005FFFE", 1),
+ ("\U0005FFFF", 1),
+ ("\U0006FFFD", 0),
+ ("\U0006FFFE", 1),
+ ("\U0006FFFF", 1),
+ ("\U0007FFFD", 0),
+ ("\U0007FFFE", 1),
+ ("\U0007FFFF", 1),
+ ("\U0008FFFD", 0),
+ ("\U0008FFFE", 1),
+ ("\U0008FFFF", 1),
+ ("\U0009FFFD", 0),
+ ("\U0009FFFE", 1),
+ ("\U0009FFFF", 1),
+ ("\U000AFFFD", 0),
+ ("\U000AFFFE", 1),
+ ("\U000AFFFF", 1),
+ ("\U000BFFFD", 0),
+ ("\U000BFFFE", 1),
+ ("\U000BFFFF", 1),
+ ("\U000CFFFD", 0),
+ ("\U000CFFFE", 1),
+ ("\U000CFFFF", 1),
+ ("\U000DFFFD", 0),
+ ("\U000DFFFE", 1),
+ ("\U000DFFFF", 1),
+ ("\U000EFFFD", 0),
+ ("\U000EFFFE", 1),
+ ("\U000EFFFF", 1),
+ ("\U000FFFFD", 0),
+ ("\U000FFFFE", 1),
+ ("\U000FFFFF", 1),
+ ("\U0010FFFD", 0),
+ ("\U0010FFFE", 1),
+ ("\U0010FFFF", 1),
+ ("\x01\x01\x01", 3),
+ ("a\x01a\x01a\x01a", 3)])
+def test_invalid_codepoints(inp, num):
+ stream = HTMLUnicodeInputStream(StringIO(inp))
+ for _i in range(len(inp)):
+ stream.char()
+ assert len(stream.errors) == num
+
+
+@pytest.mark.skipif(not supports_lone_surrogates, reason="doesn't support lone surrogates")
+@pytest.mark.parametrize("inp,num",
+ [("'\\uD7FF'", 0),
+ ("'\\uD800'", 1),
+ ("'\\uDBFF'", 1),
+ ("'\\uDC00'", 1),
+ ("'\\uDFFF'", 1),
+ ("'\\uE000'", 0),
+ ("'\\uD800\\uD800\\uD800'", 3),
+ ("'a\\uD800a\\uD800a\\uD800a'", 3),
+ ("'\\uDFFF\\uDBFF'", 2),
+ pytest.mark.skipif(sys.maxunicode == 0xFFFF,
+ ("'\\uDBFF\\uDFFF'", 2),
+ reason="narrow Python")])
+def test_invalid_codepoints_surrogates(inp, num):
+ inp = eval(inp) # pylint:disable=eval-used
+ fp = StringIO(inp)
+ if ord(max(fp.read())) > 0xFFFF:
+ pytest.skip("StringIO altered string")
+ fp.seek(0)
+ stream = HTMLUnicodeInputStream(fp)
+ for _i in range(len(inp)):
+ stream.char()
+ assert len(stream.errors) == num
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_treeadapters.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_treeadapters.py
index 5f38b6c33d2..95e56c00c9d 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_treeadapters.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_treeadapters.py
@@ -1,6 +1,6 @@
from __future__ import absolute_import, division, unicode_literals
-from . import support # flake8: noqa
+from . import support # noqa
import html5lib
from html5lib.treeadapters import sax
@@ -25,7 +25,7 @@ def test_to_sax():
('endElementNS', ('http://www.w3.org/1999/xhtml', 'title'), 'title'),
('characters', '\n '),
('endElementNS', ('http://www.w3.org/1999/xhtml', 'head'), 'head'),
- ('startElementNS', ('http://www.w3.org/1999/xhtml', 'body'), 'body', {}),
+ ('startElementNS', ('http://www.w3.org/1999/xhtml', 'body'), 'body', {}),
('startElementNS', ('http://www.w3.org/1999/xhtml', 'a'), 'a', {(None, 'href'): '/'}),
('startElementNS', ('http://www.w3.org/1999/xhtml', 'b'), 'b', {}),
('startElementNS', ('http://www.w3.org/1999/xhtml', 'p'), 'p', {}),
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_treewalkers.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_treewalkers.py
new file mode 100644
index 00000000000..67fc89e55f3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_treewalkers.py
@@ -0,0 +1,136 @@
+from __future__ import absolute_import, division, unicode_literals
+
+import itertools
+
+import pytest
+
+try:
+ import lxml.etree
+except ImportError:
+ pass
+
+from .support import treeTypes
+
+from html5lib import html5parser, treewalkers
+from html5lib.filters.lint import Filter as Lint
+
+import re
+attrlist = re.compile(r"^(\s+)\w+=.*(\n\1\w+=.*)+", re.M)
+
+
+def sortattrs(x):
+ lines = x.group(0).split("\n")
+ lines.sort()
+ return "\n".join(lines)
+
+
+def test_all_tokens():
+ expected = [
+ {'data': {}, 'type': 'StartTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'html'},
+ {'data': {}, 'type': 'StartTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'head'},
+ {'type': 'EndTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'head'},
+ {'data': {}, 'type': 'StartTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'body'},
+ {'data': 'a', 'type': 'Characters'},
+ {'data': {}, 'type': 'StartTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'div'},
+ {'data': 'b', 'type': 'Characters'},
+ {'type': 'EndTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'div'},
+ {'data': 'c', 'type': 'Characters'},
+ {'type': 'EndTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'body'},
+ {'type': 'EndTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'html'}
+ ]
+ for _, treeCls in sorted(treeTypes.items()):
+ if treeCls is None:
+ continue
+ p = html5parser.HTMLParser(tree=treeCls["builder"])
+ document = p.parse("<html><head></head><body>a<div>b</div>c</body></html>")
+ document = treeCls.get("adapter", lambda x: x)(document)
+ output = Lint(treeCls["walker"](document))
+ for expectedToken, outputToken in zip(expected, output):
+ assert expectedToken == outputToken
+
+
+def set_attribute_on_first_child(docfrag, name, value, treeName):
+ """naively sets an attribute on the first child of the document
+ fragment passed in"""
+ setter = {'ElementTree': lambda d: d[0].set,
+ 'DOM': lambda d: d.firstChild.setAttribute}
+ setter['cElementTree'] = setter['ElementTree']
+ try:
+ setter.get(treeName, setter['DOM'])(docfrag)(name, value)
+ except AttributeError:
+ setter['ElementTree'](docfrag)(name, value)
+
+
+def runTreewalkerEditTest(intext, expected, attrs_to_add, tree):
+ """tests what happens when we add attributes to the intext"""
+ treeName, treeClass = tree
+ if treeClass is None:
+ pytest.skip("Treebuilder not loaded")
+ parser = html5parser.HTMLParser(tree=treeClass["builder"])
+ document = parser.parseFragment(intext)
+ for nom, val in attrs_to_add:
+ set_attribute_on_first_child(document, nom, val, treeName)
+
+ document = treeClass.get("adapter", lambda x: x)(document)
+ output = treewalkers.pprint(treeClass["walker"](document))
+ output = attrlist.sub(sortattrs, output)
+ if output not in expected:
+ raise AssertionError("TreewalkerEditTest: %s\nExpected:\n%s\nReceived:\n%s" % (treeName, expected, output))
+
+
+def test_treewalker_six_mix():
+ """Str/Unicode mix. If str attrs added to tree"""
+
+ # On Python 2.x string literals are of type str. Unless, like this
+ # file, the programmer imports unicode_literals from __future__.
+ # In that case, string literals become objects of type unicode.
+
+ # This test simulates a Py2 user, modifying attributes on a document
+ # fragment but not using the u'' syntax nor importing unicode_literals
+ sm_tests = [
+ ('<a href="http://example.com">Example</a>',
+ [(str('class'), str('test123'))],
+ '<a>\n class="test123"\n href="http://example.com"\n "Example"'),
+
+ ('<link href="http://example.com/cow">',
+ [(str('rel'), str('alternate'))],
+ '<link>\n href="http://example.com/cow"\n rel="alternate"\n "Example"')
+ ]
+
+ for tree in sorted(treeTypes.items()):
+ for intext, attrs, expected in sm_tests:
+ yield runTreewalkerEditTest, intext, expected, attrs, tree
+
+
+@pytest.mark.parametrize("tree,char", itertools.product(sorted(treeTypes.items()), ["x", "\u1234"]))
+def test_fragment_single_char(tree, char):
+ expected = [
+ {'data': char, 'type': 'Characters'}
+ ]
+
+ treeName, treeClass = tree
+ if treeClass is None:
+ pytest.skip("Treebuilder not loaded")
+
+ parser = html5parser.HTMLParser(tree=treeClass["builder"])
+ document = parser.parseFragment(char)
+ document = treeClass.get("adapter", lambda x: x)(document)
+ output = Lint(treeClass["walker"](document))
+
+ assert list(output) == expected
+
+
+@pytest.mark.skipif(treeTypes["lxml"] is None, reason="lxml not importable")
+def test_lxml_xml():
+ expected = [
+ {'data': {}, 'name': 'div', 'namespace': None, 'type': 'StartTag'},
+ {'data': {}, 'name': 'div', 'namespace': None, 'type': 'StartTag'},
+ {'name': 'div', 'namespace': None, 'type': 'EndTag'},
+ {'name': 'div', 'namespace': None, 'type': 'EndTag'}
+ ]
+
+ lxmltree = lxml.etree.fromstring('<div><div></div></div>')
+ walker = treewalkers.getTreeWalker('lxml')
+ output = Lint(walker(lxmltree))
+
+ assert list(output) == expected
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_whitespace_filter.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_whitespace_filter.py
new file mode 100644
index 00000000000..e9da6140a93
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_whitespace_filter.py
@@ -0,0 +1,125 @@
+from __future__ import absolute_import, division, unicode_literals
+
+from html5lib.filters.whitespace import Filter
+from html5lib.constants import spaceCharacters
+spaceCharacters = "".join(spaceCharacters)
+
+
+def runTest(input, expected):
+ output = list(Filter(input))
+ errorMsg = "\n".join(["\n\nInput:", str(input),
+ "\nExpected:", str(expected),
+ "\nReceived:", str(output)])
+ assert expected == output, errorMsg
+
+
+def runTestUnmodifiedOutput(input):
+ runTest(input, input)
+
+
+def testPhrasingElements():
+ runTestUnmodifiedOutput(
+ [{"type": "Characters", "data": "This is a "},
+ {"type": "StartTag", "name": "span", "data": []},
+ {"type": "Characters", "data": "phrase"},
+ {"type": "EndTag", "name": "span", "data": []},
+ {"type": "SpaceCharacters", "data": " "},
+ {"type": "Characters", "data": "with"},
+ {"type": "SpaceCharacters", "data": " "},
+ {"type": "StartTag", "name": "em", "data": []},
+ {"type": "Characters", "data": "emphasised text"},
+ {"type": "EndTag", "name": "em", "data": []},
+ {"type": "Characters", "data": " and an "},
+ {"type": "StartTag", "name": "img", "data": [["alt", "image"]]},
+ {"type": "Characters", "data": "."}])
+
+
+def testLeadingWhitespace():
+ runTest(
+ [{"type": "StartTag", "name": "p", "data": []},
+ {"type": "SpaceCharacters", "data": spaceCharacters},
+ {"type": "Characters", "data": "foo"},
+ {"type": "EndTag", "name": "p", "data": []}],
+ [{"type": "StartTag", "name": "p", "data": []},
+ {"type": "SpaceCharacters", "data": " "},
+ {"type": "Characters", "data": "foo"},
+ {"type": "EndTag", "name": "p", "data": []}])
+
+
+def testLeadingWhitespaceAsCharacters():
+ runTest(
+ [{"type": "StartTag", "name": "p", "data": []},
+ {"type": "Characters", "data": spaceCharacters + "foo"},
+ {"type": "EndTag", "name": "p", "data": []}],
+ [{"type": "StartTag", "name": "p", "data": []},
+ {"type": "Characters", "data": " foo"},
+ {"type": "EndTag", "name": "p", "data": []}])
+
+
+def testTrailingWhitespace():
+ runTest(
+ [{"type": "StartTag", "name": "p", "data": []},
+ {"type": "Characters", "data": "foo"},
+ {"type": "SpaceCharacters", "data": spaceCharacters},
+ {"type": "EndTag", "name": "p", "data": []}],
+ [{"type": "StartTag", "name": "p", "data": []},
+ {"type": "Characters", "data": "foo"},
+ {"type": "SpaceCharacters", "data": " "},
+ {"type": "EndTag", "name": "p", "data": []}])
+
+
+def testTrailingWhitespaceAsCharacters():
+ runTest(
+ [{"type": "StartTag", "name": "p", "data": []},
+ {"type": "Characters", "data": "foo" + spaceCharacters},
+ {"type": "EndTag", "name": "p", "data": []}],
+ [{"type": "StartTag", "name": "p", "data": []},
+ {"type": "Characters", "data": "foo "},
+ {"type": "EndTag", "name": "p", "data": []}])
+
+
+def testWhitespace():
+ runTest(
+ [{"type": "StartTag", "name": "p", "data": []},
+ {"type": "Characters", "data": "foo" + spaceCharacters + "bar"},
+ {"type": "EndTag", "name": "p", "data": []}],
+ [{"type": "StartTag", "name": "p", "data": []},
+ {"type": "Characters", "data": "foo bar"},
+ {"type": "EndTag", "name": "p", "data": []}])
+
+
+def testLeadingWhitespaceInPre():
+ runTestUnmodifiedOutput(
+ [{"type": "StartTag", "name": "pre", "data": []},
+ {"type": "SpaceCharacters", "data": spaceCharacters},
+ {"type": "Characters", "data": "foo"},
+ {"type": "EndTag", "name": "pre", "data": []}])
+
+
+def testLeadingWhitespaceAsCharactersInPre():
+ runTestUnmodifiedOutput(
+ [{"type": "StartTag", "name": "pre", "data": []},
+ {"type": "Characters", "data": spaceCharacters + "foo"},
+ {"type": "EndTag", "name": "pre", "data": []}])
+
+
+def testTrailingWhitespaceInPre():
+ runTestUnmodifiedOutput(
+ [{"type": "StartTag", "name": "pre", "data": []},
+ {"type": "Characters", "data": "foo"},
+ {"type": "SpaceCharacters", "data": spaceCharacters},
+ {"type": "EndTag", "name": "pre", "data": []}])
+
+
+def testTrailingWhitespaceAsCharactersInPre():
+ runTestUnmodifiedOutput(
+ [{"type": "StartTag", "name": "pre", "data": []},
+ {"type": "Characters", "data": "foo" + spaceCharacters},
+ {"type": "EndTag", "name": "pre", "data": []}])
+
+
+def testWhitespaceInPre():
+ runTestUnmodifiedOutput(
+ [{"type": "StartTag", "name": "pre", "data": []},
+ {"type": "Characters", "data": "foo" + spaceCharacters + "bar"},
+ {"type": "EndTag", "name": "pre", "data": []}])
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_tokenizer.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tokenizer.py
index 90315ab35d2..1440a722cb8 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_tokenizer.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tokenizer.py
@@ -1,13 +1,15 @@
from __future__ import absolute_import, division, unicode_literals
+import codecs
import json
import warnings
import re
-from .support import get_data_files
+import pytest
+from six import unichr
-from html5lib.tokenizer import HTMLTokenizer
-from html5lib import constants
+from html5lib._tokenizer import HTMLTokenizer
+from html5lib import constants, _utils
class TokenizerTestParser(object):
@@ -17,6 +19,7 @@ class TokenizerTestParser(object):
self._lastStartTag = lastStartTag
def parse(self, stream, encoding=None, innerHTML=False):
+ # pylint:disable=unused-argument
tokenizer = self.tokenizer(stream, encoding)
self.outputTokens = []
@@ -96,8 +99,8 @@ def tokensMatch(expectedTokens, receivedTokens, ignoreErrorOrder,
"""
checkSelfClosing = False
for token in expectedTokens:
- if (token[0] == "StartTag" and len(token) == 4
- or token[0] == "EndTag" and len(token) == 3):
+ if (token[0] == "StartTag" and len(token) == 4 or
+ token[0] == "EndTag" and len(token) == 3):
checkSelfClosing = True
break
@@ -107,6 +110,7 @@ def tokensMatch(expectedTokens, receivedTokens, ignoreErrorOrder,
token.pop()
if not ignoreErrorOrder and not ignoreErrors:
+ expectedTokens = concatenateCharacterTokens(expectedTokens)
return expectedTokens == receivedTokens
else:
# Sort the tokens into two groups; non-parse errors and parse errors
@@ -119,12 +123,42 @@ def tokensMatch(expectedTokens, receivedTokens, ignoreErrorOrder,
else:
if not ignoreErrors:
tokens[tokenType][1].append(token)
+ tokens[tokenType][0] = concatenateCharacterTokens(tokens[tokenType][0])
return tokens["expected"] == tokens["received"]
+_surrogateRe = re.compile(r"\\u([0-9A-Fa-f]{4})(?:\\u([0-9A-Fa-f]{4}))?")
+
+
def unescape(test):
def decode(inp):
- return inp.encode("utf-8").decode("unicode-escape")
+ """Decode \\uXXXX escapes
+
+ This decodes \\uXXXX escapes, possibly into non-BMP characters when
+ two surrogate character escapes are adjacent to each other.
+ """
+ # This cannot be implemented using the unicode_escape codec
+ # because that requires its input be ISO-8859-1, and we need
+ # arbitrary unicode as input.
+ def repl(m):
+ if m.group(2) is not None:
+ high = int(m.group(1), 16)
+ low = int(m.group(2), 16)
+ if 0xD800 <= high <= 0xDBFF and 0xDC00 <= low <= 0xDFFF:
+ cp = ((high - 0xD800) << 10) + (low - 0xDC00) + 0x10000
+ return unichr(cp)
+ else:
+ return unichr(high) + unichr(low)
+ else:
+ return unichr(int(m.group(1), 16))
+ try:
+ return _surrogateRe.sub(repl, inp)
+ except ValueError:
+ # This occurs when unichr throws ValueError, which should
+ # only be for a lone-surrogate.
+ if _utils.supports_lone_surrogates:
+ raise
+ return None
test["input"] = decode(test["input"])
for token in test["output"]:
@@ -139,28 +173,6 @@ def unescape(test):
return test
-def runTokenizerTest(test):
- warnings.resetwarnings()
- warnings.simplefilter("error")
-
- expected = concatenateCharacterTokens(test['output'])
- if 'lastStartTag' not in test:
- test['lastStartTag'] = None
- parser = TokenizerTestParser(test['initialState'],
- test['lastStartTag'])
- tokens = parser.parse(test['input'])
- tokens = concatenateCharacterTokens(tokens)
- received = normalizeTokens(tokens)
- errorMsg = "\n".join(["\n\nInitial state:",
- test['initialState'],
- "\nInput:", test['input'],
- "\nExpected:", repr(expected),
- "\nreceived:", repr(tokens)])
- errorMsg = errorMsg
- ignoreErrorOrder = test.get('ignoreErrorOrder', False)
- assert tokensMatch(expected, received, ignoreErrorOrder, True), errorMsg
-
-
def _doCapitalize(match):
return match.group(1).upper()
@@ -173,16 +185,68 @@ def capitalize(s):
return s
-def testTokenizer():
- for filename in get_data_files('tokenizer', '*.test'):
- with open(filename) as fp:
+class TokenizerFile(pytest.File):
+ def collect(self):
+ with codecs.open(str(self.fspath), "r", encoding="utf-8") as fp:
tests = json.load(fp)
- if 'tests' in tests:
- for index, test in enumerate(tests['tests']):
- if 'initialStates' not in test:
- test["initialStates"] = ["Data state"]
- if 'doubleEscaped' in test:
- test = unescape(test)
- for initialState in test["initialStates"]:
- test["initialState"] = capitalize(initialState)
- yield runTokenizerTest, test
+ if 'tests' in tests:
+ for i, test in enumerate(tests['tests']):
+ yield TokenizerTestCollector(str(i), self, testdata=test)
+
+
+class TokenizerTestCollector(pytest.Collector):
+ def __init__(self, name, parent=None, config=None, session=None, testdata=None):
+ super(TokenizerTestCollector, self).__init__(name, parent, config, session)
+ if 'initialStates' not in testdata:
+ testdata["initialStates"] = ["Data state"]
+ if 'doubleEscaped' in testdata:
+ testdata = unescape(testdata)
+ self.testdata = testdata
+
+ def collect(self):
+ for initialState in self.testdata["initialStates"]:
+ initialState = capitalize(initialState)
+ item = TokenizerTest(initialState,
+ self,
+ self.testdata,
+ initialState)
+ if self.testdata["input"] is None:
+ item.add_marker(pytest.mark.skipif(True, reason="Relies on lone surrogates"))
+ yield item
+
+
+class TokenizerTest(pytest.Item):
+ def __init__(self, name, parent, test, initialState):
+ super(TokenizerTest, self).__init__(name, parent)
+ self.obj = lambda: 1 # this is to hack around skipif needing a function!
+ self.test = test
+ self.initialState = initialState
+
+ def runtest(self):
+ warnings.resetwarnings()
+ warnings.simplefilter("error")
+
+ expected = self.test['output']
+ if 'lastStartTag' not in self.test:
+ self.test['lastStartTag'] = None
+ parser = TokenizerTestParser(self.initialState,
+ self.test['lastStartTag'])
+ tokens = parser.parse(self.test['input'])
+ received = normalizeTokens(tokens)
+ errorMsg = "\n".join(["\n\nInitial state:",
+ self.initialState,
+ "\nInput:", self.test['input'],
+ "\nExpected:", repr(expected),
+ "\nreceived:", repr(tokens)])
+ errorMsg = errorMsg
+ ignoreErrorOrder = self.test.get('ignoreErrorOrder', False)
+ assert tokensMatch(expected, received, ignoreErrorOrder, True), errorMsg
+
+ def repr_failure(self, excinfo):
+ traceback = excinfo.traceback
+ ntraceback = traceback.cut(path=__file__)
+ excinfo.traceback = ntraceback.filter()
+
+ return excinfo.getrepr(funcargs=True,
+ showlocals=False,
+ style="short", tbfilter=False)
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/tokenizertotree.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tokenizertotree.py
index b841c76ce41..b841c76ce41 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/tokenizertotree.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tokenizertotree.py
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tree_construction.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tree_construction.py
new file mode 100644
index 00000000000..c6e7ca09050
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tree_construction.py
@@ -0,0 +1,204 @@
+from __future__ import absolute_import, division, unicode_literals
+
+import itertools
+import re
+import warnings
+from difflib import unified_diff
+
+import pytest
+
+from .support import TestData, convert, convertExpected, treeTypes
+from html5lib import html5parser, constants, treewalkers
+from html5lib.filters.lint import Filter as Lint
+
+_attrlist_re = re.compile(r"^(\s+)\w+=.*(\n\1\w+=.*)+", re.M)
+
+
+def sortattrs(s):
+ def replace(m):
+ lines = m.group(0).split("\n")
+ lines.sort()
+ return "\n".join(lines)
+ return _attrlist_re.sub(replace, s)
+
+
+class TreeConstructionFile(pytest.File):
+ def collect(self):
+ tests = TestData(str(self.fspath), "data")
+ for i, test in enumerate(tests):
+ yield TreeConstructionTest(str(i), self, testdata=test)
+
+
+class TreeConstructionTest(pytest.Collector):
+ def __init__(self, name, parent=None, config=None, session=None, testdata=None):
+ super(TreeConstructionTest, self).__init__(name, parent, config, session)
+ self.testdata = testdata
+
+ def collect(self):
+ for treeName, treeAPIs in sorted(treeTypes.items()):
+ for x in itertools.chain(self._getParserTests(treeName, treeAPIs),
+ self._getTreeWalkerTests(treeName, treeAPIs)):
+ yield x
+
+ def _getParserTests(self, treeName, treeAPIs):
+ if treeAPIs is not None and "adapter" in treeAPIs:
+ return
+ for namespaceHTMLElements in (True, False):
+ if namespaceHTMLElements:
+ nodeid = "%s::parser::namespaced" % treeName
+ else:
+ nodeid = "%s::parser::void-namespace" % treeName
+ item = ParserTest(nodeid,
+ self,
+ self.testdata,
+ treeAPIs["builder"] if treeAPIs is not None else None,
+ namespaceHTMLElements)
+ item.add_marker(getattr(pytest.mark, treeName))
+ item.add_marker(pytest.mark.parser)
+ if namespaceHTMLElements:
+ item.add_marker(pytest.mark.namespaced)
+ if treeAPIs is None:
+ item.add_marker(pytest.mark.skipif(True, reason="Treebuilder not loaded"))
+ yield item
+
+ def _getTreeWalkerTests(self, treeName, treeAPIs):
+ nodeid = "%s::treewalker" % treeName
+ item = TreeWalkerTest(nodeid,
+ self,
+ self.testdata,
+ treeAPIs)
+ item.add_marker(getattr(pytest.mark, treeName))
+ item.add_marker(pytest.mark.treewalker)
+ if treeAPIs is None:
+ item.add_marker(pytest.mark.skipif(True, reason="Treebuilder not loaded"))
+ yield item
+
+
+def convertTreeDump(data):
+ return "\n".join(convert(3)(data).split("\n")[1:])
+
+namespaceExpected = re.compile(r"^(\s*)<(\S+)>", re.M).sub
+
+
+class ParserTest(pytest.Item):
+ def __init__(self, name, parent, test, treeClass, namespaceHTMLElements):
+ super(ParserTest, self).__init__(name, parent)
+ self.obj = lambda: 1 # this is to hack around skipif needing a function!
+ self.test = test
+ self.treeClass = treeClass
+ self.namespaceHTMLElements = namespaceHTMLElements
+
+ def runtest(self):
+ p = html5parser.HTMLParser(tree=self.treeClass,
+ namespaceHTMLElements=self.namespaceHTMLElements)
+
+ input = self.test['data']
+ fragmentContainer = self.test['document-fragment']
+ expected = convertExpected(self.test['document'])
+ expectedErrors = self.test['errors'].split("\n") if self.test['errors'] else []
+
+ scripting = False
+ if 'script-on' in self.test:
+ scripting = True
+
+ with warnings.catch_warnings():
+ warnings.simplefilter("error")
+ try:
+ if fragmentContainer:
+ document = p.parseFragment(input, fragmentContainer, scripting=scripting)
+ else:
+ document = p.parse(input, scripting=scripting)
+ except constants.DataLossWarning:
+ pytest.skip("data loss warning")
+
+ output = convertTreeDump(p.tree.testSerializer(document))
+
+ expected = expected
+ if self.namespaceHTMLElements:
+ expected = namespaceExpected(r"\1<html \2>", expected)
+
+ errorMsg = "\n".join(["\n\nInput:", input, "\nExpected:", expected,
+ "\nReceived:", output])
+ assert expected == output, errorMsg
+
+ errStr = []
+ for (line, col), errorcode, datavars in p.errors:
+ assert isinstance(datavars, dict), "%s, %s" % (errorcode, repr(datavars))
+ errStr.append("Line: %i Col: %i %s" % (line, col,
+ constants.E[errorcode] % datavars))
+
+ errorMsg2 = "\n".join(["\n\nInput:", input,
+ "\nExpected errors (" + str(len(expectedErrors)) + "):\n" + "\n".join(expectedErrors),
+ "\nActual errors (" + str(len(p.errors)) + "):\n" + "\n".join(errStr)])
+ if False: # we're currently not testing parse errors
+ assert len(p.errors) == len(expectedErrors), errorMsg2
+
+ def repr_failure(self, excinfo):
+ traceback = excinfo.traceback
+ ntraceback = traceback.cut(path=__file__)
+ excinfo.traceback = ntraceback.filter()
+
+ return excinfo.getrepr(funcargs=True,
+ showlocals=False,
+ style="short", tbfilter=False)
+
+
+class TreeWalkerTest(pytest.Item):
+ def __init__(self, name, parent, test, treeAPIs):
+ super(TreeWalkerTest, self).__init__(name, parent)
+ self.obj = lambda: 1 # this is to hack around skipif needing a function!
+ self.test = test
+ self.treeAPIs = treeAPIs
+
+ def runtest(self):
+ p = html5parser.HTMLParser(tree=self.treeAPIs["builder"])
+
+ input = self.test['data']
+ fragmentContainer = self.test['document-fragment']
+ expected = convertExpected(self.test['document'])
+
+ scripting = False
+ if 'script-on' in self.test:
+ scripting = True
+
+ with warnings.catch_warnings():
+ warnings.simplefilter("error")
+ try:
+ if fragmentContainer:
+ document = p.parseFragment(input, fragmentContainer, scripting=scripting)
+ else:
+ document = p.parse(input, scripting=scripting)
+ except constants.DataLossWarning:
+ pytest.skip("data loss warning")
+
+ poutput = convertTreeDump(p.tree.testSerializer(document))
+ namespace_expected = namespaceExpected(r"\1<html \2>", expected)
+ if poutput != namespace_expected:
+ pytest.skip("parser output incorrect")
+
+ document = self.treeAPIs.get("adapter", lambda x: x)(document)
+
+ try:
+ output = treewalkers.pprint(Lint(self.treeAPIs["walker"](document)))
+ output = sortattrs(output)
+ expected = sortattrs(expected)
+ diff = "".join(unified_diff([line + "\n" for line in expected.splitlines()],
+ [line + "\n" for line in output.splitlines()],
+ "Expected", "Received"))
+ assert expected == output, "\n".join([
+ "", "Input:", input,
+ "", "Expected:", expected,
+ "", "Received:", output,
+ "", "Diff:", diff,
+ ])
+ except NotImplementedError:
+ pytest.skip("tree walker NotImplementedError")
+
+ def repr_failure(self, excinfo):
+ traceback = excinfo.traceback
+ ntraceback = traceback.cut(path=__file__)
+ excinfo.traceback = ntraceback.filter()
+
+ return excinfo.getrepr(funcargs=True,
+ showlocals=False,
+ style="short", tbfilter=False)
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/us-ascii.html b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/us-ascii.html
index 728cb6baf98..728cb6baf98 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/us-ascii.html
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/us-ascii.html
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/utf-8-bom.html b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/utf-8-bom.html
index 6ac5efcedf1..6ac5efcedf1 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/utf-8-bom.html
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/utf-8-bom.html
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/__init__.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/__init__.py
new file mode 100644
index 00000000000..dfeb0ba5e1c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/__init__.py
@@ -0,0 +1,30 @@
+"""Tree adapters let you convert from one tree structure to another
+
+Example:
+
+.. code-block:: python
+
+ import html5lib
+ from html5lib.treeadapters import genshi
+
+ doc = '<html><body>Hi!</body></html>'
+ treebuilder = html5lib.getTreeBuilder('etree')
+ parser = html5lib.HTMLParser(tree=treebuilder)
+ tree = parser.parse(doc)
+ TreeWalker = html5lib.getTreeWalker('etree')
+
+ genshi_tree = genshi.to_genshi(TreeWalker(tree))
+
+"""
+from __future__ import absolute_import, division, unicode_literals
+
+from . import sax
+
+__all__ = ["sax"]
+
+try:
+ from . import genshi # noqa
+except ImportError:
+ pass
+else:
+ __all__.append("genshi")
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/genshi.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/genshi.py
new file mode 100644
index 00000000000..61d5fb6ac42
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/genshi.py
@@ -0,0 +1,54 @@
+from __future__ import absolute_import, division, unicode_literals
+
+from genshi.core import QName, Attrs
+from genshi.core import START, END, TEXT, COMMENT, DOCTYPE
+
+
+def to_genshi(walker):
+ """Convert a tree to a genshi tree
+
+ :arg walker: the treewalker to use to walk the tree to convert it
+
+ :returns: generator of genshi nodes
+
+ """
+ text = []
+ for token in walker:
+ type = token["type"]
+ if type in ("Characters", "SpaceCharacters"):
+ text.append(token["data"])
+ elif text:
+ yield TEXT, "".join(text), (None, -1, -1)
+ text = []
+
+ if type in ("StartTag", "EmptyTag"):
+ if token["namespace"]:
+ name = "{%s}%s" % (token["namespace"], token["name"])
+ else:
+ name = token["name"]
+ attrs = Attrs([(QName("{%s}%s" % attr if attr[0] is not None else attr[1]), value)
+ for attr, value in token["data"].items()])
+ yield (START, (QName(name), attrs), (None, -1, -1))
+ if type == "EmptyTag":
+ type = "EndTag"
+
+ if type == "EndTag":
+ if token["namespace"]:
+ name = "{%s}%s" % (token["namespace"], token["name"])
+ else:
+ name = token["name"]
+
+ yield END, QName(name), (None, -1, -1)
+
+ elif type == "Comment":
+ yield COMMENT, token["data"], (None, -1, -1)
+
+ elif type == "Doctype":
+ yield DOCTYPE, (token["name"], token["publicId"],
+ token["systemId"]), (None, -1, -1)
+
+ else:
+ pass # FIXME: What to do?
+
+ if text:
+ yield TEXT, "".join(text), (None, -1, -1)
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treeadapters/sax.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/sax.py
index ad47df95648..f4ccea5a256 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treeadapters/sax.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/sax.py
@@ -11,7 +11,13 @@ for prefix, localName, namespace in adjustForeignAttributes.values():
def to_sax(walker, handler):
- """Call SAX-like content handler based on treewalker walker"""
+ """Call SAX-like content handler based on treewalker walker
+
+ :arg walker: the treewalker to use to walk the tree to convert it
+
+ :arg handler: SAX handler to use
+
+ """
handler.startDocument()
for prefix, namespace in prefix_mapping.items():
handler.startPrefixMapping(prefix, namespace)
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/__init__.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/__init__.py
new file mode 100644
index 00000000000..d44447eaf5a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/__init__.py
@@ -0,0 +1,88 @@
+"""A collection of modules for building different kinds of trees from HTML
+documents.
+
+To create a treebuilder for a new type of tree, you need to do
+implement several things:
+
+1. A set of classes for various types of elements: Document, Doctype, Comment,
+ Element. These must implement the interface of ``base.treebuilders.Node``
+ (although comment nodes have a different signature for their constructor,
+ see ``treebuilders.etree.Comment``) Textual content may also be implemented
+ as another node type, or not, as your tree implementation requires.
+
+2. A treebuilder object (called ``TreeBuilder`` by convention) that inherits
+ from ``treebuilders.base.TreeBuilder``. This has 4 required attributes:
+
+ * ``documentClass`` - the class to use for the bottommost node of a document
+ * ``elementClass`` - the class to use for HTML Elements
+ * ``commentClass`` - the class to use for comments
+ * ``doctypeClass`` - the class to use for doctypes
+
+ It also has one required method:
+
+ * ``getDocument`` - Returns the root node of the complete document tree
+
+3. If you wish to run the unit tests, you must also create a ``testSerializer``
+ method on your treebuilder which accepts a node and returns a string
+ containing Node and its children serialized according to the format used in
+ the unittests
+
+"""
+
+from __future__ import absolute_import, division, unicode_literals
+
+from .._utils import default_etree
+
+treeBuilderCache = {}
+
+
+def getTreeBuilder(treeType, implementation=None, **kwargs):
+ """Get a TreeBuilder class for various types of trees with built-in support
+
+ :arg treeType: the name of the tree type required (case-insensitive). Supported
+ values are:
+
+ * "dom" - A generic builder for DOM implementations, defaulting to a
+ xml.dom.minidom based implementation.
+ * "etree" - A generic builder for tree implementations exposing an
+ ElementTree-like interface, defaulting to xml.etree.cElementTree if
+ available and xml.etree.ElementTree if not.
+ * "lxml" - A etree-based builder for lxml.etree, handling limitations
+ of lxml's implementation.
+
+ :arg implementation: (Currently applies to the "etree" and "dom" tree
+ types). A module implementing the tree type e.g. xml.etree.ElementTree
+ or xml.etree.cElementTree.
+
+ :arg kwargs: Any additional options to pass to the TreeBuilder when
+ creating it.
+
+ Example:
+
+ >>> from html5lib.treebuilders import getTreeBuilder
+ >>> builder = getTreeBuilder('etree')
+
+ """
+
+ treeType = treeType.lower()
+ if treeType not in treeBuilderCache:
+ if treeType == "dom":
+ from . import dom
+ # Come up with a sane default (pref. from the stdlib)
+ if implementation is None:
+ from xml.dom import minidom
+ implementation = minidom
+ # NEVER cache here, caching is done in the dom submodule
+ return dom.getDomModule(implementation, **kwargs).TreeBuilder
+ elif treeType == "lxml":
+ from . import etree_lxml
+ treeBuilderCache[treeType] = etree_lxml.TreeBuilder
+ elif treeType == "etree":
+ from . import etree
+ if implementation is None:
+ implementation = default_etree
+ # NEVER cache here, caching is done in the etree submodule
+ return etree.getETreeModule(implementation, **kwargs).TreeBuilder
+ else:
+ raise ValueError("""Unrecognised treebuilder "%s" """ % treeType)
+ return treeBuilderCache.get(treeType)
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/_base.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/base.py
index 8b97cc11a21..05d97eccc89 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/_base.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/base.py
@@ -21,22 +21,25 @@ listElementsMap = {
class Node(object):
+ """Represents an item in the tree"""
def __init__(self, name):
- """Node representing an item in the tree.
- name - The tag name associated with the node
- parent - The parent of the current node (or None for the document node)
- value - The value of the current node (applies to text nodes and
- comments
- attributes - a dict holding name, value pairs for attributes of the node
- childNodes - a list of child nodes of the current node. This must
- include all elements but not necessarily other node types
- _flags - A list of miscellaneous flags that can be set on the node
+ """Creates a Node
+
+ :arg name: The tag name associated with the node
+
"""
+ # The tag name assocaited with the node
self.name = name
+ # The parent of the current node (or None for the document node)
self.parent = None
+ # The value of the current node (applies to text nodes and comments)
self.value = None
+ # A dict holding name -> value pairs for attributes of the node
self.attributes = {}
+ # A list of child nodes of the current node. This must include all
+ # elements but not necessarily other node types.
self.childNodes = []
+ # A list of miscellaneous flags that can be set on the node.
self._flags = []
def __str__(self):
@@ -53,23 +56,41 @@ class Node(object):
def appendChild(self, node):
"""Insert node as a child of the current node
+
+ :arg node: the node to insert
+
"""
raise NotImplementedError
def insertText(self, data, insertBefore=None):
"""Insert data as text in the current node, positioned before the
start of node insertBefore or to the end of the node's text.
+
+ :arg data: the data to insert
+
+ :arg insertBefore: True if you want to insert the text before the node
+ and False if you want to insert it after the node
+
"""
raise NotImplementedError
def insertBefore(self, node, refNode):
"""Insert node as a child of the current node, before refNode in the
list of child nodes. Raises ValueError if refNode is not a child of
- the current node"""
+ the current node
+
+ :arg node: the node to insert
+
+ :arg refNode: the child node to insert the node before
+
+ """
raise NotImplementedError
def removeChild(self, node):
"""Remove node from the children of the current node
+
+ :arg node: the child node to remove
+
"""
raise NotImplementedError
@@ -77,6 +98,9 @@ class Node(object):
"""Move all the children of the current node to newParent.
This is needed so that trees that don't store text as nodes move the
text in the correct way
+
+ :arg newParent: the node to move all this node's children to
+
"""
# XXX - should this method be made more general?
for child in self.childNodes:
@@ -121,11 +145,14 @@ class ActiveFormattingElements(list):
class TreeBuilder(object):
"""Base treebuilder implementation
- documentClass - the class to use for the bottommost node of a document
- elementClass - the class to use for HTML Elements
- commentClass - the class to use for comments
- doctypeClass - the class to use for doctypes
+
+ * documentClass - the class to use for the bottommost node of a document
+ * elementClass - the class to use for HTML Elements
+ * commentClass - the class to use for comments
+ * doctypeClass - the class to use for doctypes
+
"""
+ # pylint:disable=not-callable
# Document class
documentClass = None
@@ -143,6 +170,11 @@ class TreeBuilder(object):
fragmentClass = None
def __init__(self, namespaceHTMLElements):
+ """Create a TreeBuilder
+
+ :arg namespaceHTMLElements: whether or not to namespace HTML elements
+
+ """
if namespaceHTMLElements:
self.defaultNamespace = "http://www.w3.org/1999/xhtml"
else:
@@ -166,12 +198,17 @@ class TreeBuilder(object):
# If we pass a node in we match that. if we pass a string
# match any node with that name
exactNode = hasattr(target, "nameTuple")
+ if not exactNode:
+ if isinstance(target, text_type):
+ target = (namespaces["html"], target)
+ assert isinstance(target, tuple)
listElements, invert = listElementsMap[variant]
for node in reversed(self.openElements):
- if (node.name == target and not exactNode or
- node == target and exactNode):
+ if exactNode and node == target:
+ return True
+ elif not exactNode and node.nameTuple == target:
return True
elif (invert ^ (node.nameTuple in listElements)):
return False
@@ -353,19 +390,19 @@ class TreeBuilder(object):
def generateImpliedEndTags(self, exclude=None):
name = self.openElements[-1].name
# XXX td, th and tr are not actually needed
- if (name in frozenset(("dd", "dt", "li", "option", "optgroup", "p", "rp", "rt"))
- and name != exclude):
+ if (name in frozenset(("dd", "dt", "li", "option", "optgroup", "p", "rp", "rt")) and
+ name != exclude):
self.openElements.pop()
# XXX This is not entirely what the specification says. We should
# investigate it more closely.
self.generateImpliedEndTags(exclude)
def getDocument(self):
- "Return the final tree"
+ """Return the final tree"""
return self.document
def getFragment(self):
- "Return the final fragment"
+ """Return the final fragment"""
# assert self.innerHTML
fragment = self.fragmentClass()
self.openElements[0].reparentChildren(fragment)
@@ -373,5 +410,8 @@ class TreeBuilder(object):
def testSerializer(self, node):
"""Serialize the subtree of node in the format required by unit tests
- node - the node from which to start serializing"""
+
+ :arg node: the node from which to start serializing
+
+ """
raise NotImplementedError
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/dom.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py
index 234233b7932..dcfac220bfa 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/dom.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py
@@ -1,54 +1,62 @@
from __future__ import absolute_import, division, unicode_literals
+from collections import MutableMapping
from xml.dom import minidom, Node
import weakref
-from . import _base
+from . import base
from .. import constants
from ..constants import namespaces
-from ..utils import moduleFactoryFactory
+from .._utils import moduleFactoryFactory
def getDomBuilder(DomImplementation):
Dom = DomImplementation
- class AttrList(object):
+ class AttrList(MutableMapping):
def __init__(self, element):
self.element = element
def __iter__(self):
- return list(self.element.attributes.items()).__iter__()
+ return iter(self.element.attributes.keys())
def __setitem__(self, name, value):
- self.element.setAttribute(name, value)
+ if isinstance(name, tuple):
+ raise NotImplementedError
+ else:
+ attr = self.element.ownerDocument.createAttribute(name)
+ attr.value = value
+ self.element.attributes[name] = attr
def __len__(self):
- return len(list(self.element.attributes.items()))
+ return len(self.element.attributes)
def items(self):
- return [(item[0], item[1]) for item in
- list(self.element.attributes.items())]
+ return list(self.element.attributes.items())
- def keys(self):
- return list(self.element.attributes.keys())
+ def values(self):
+ return list(self.element.attributes.values())
def __getitem__(self, name):
- return self.element.getAttribute(name)
+ if isinstance(name, tuple):
+ raise NotImplementedError
+ else:
+ return self.element.attributes[name].value
- def __contains__(self, name):
+ def __delitem__(self, name):
if isinstance(name, tuple):
raise NotImplementedError
else:
- return self.element.hasAttribute(name)
+ del self.element.attributes[name]
- class NodeBuilder(_base.Node):
+ class NodeBuilder(base.Node):
def __init__(self, element):
- _base.Node.__init__(self, element.nodeName)
+ base.Node.__init__(self, element.nodeName)
self.element = element
- namespace = property(lambda self: hasattr(self.element, "namespaceURI")
- and self.element.namespaceURI or None)
+ namespace = property(lambda self: hasattr(self.element, "namespaceURI") and
+ self.element.namespaceURI or None)
def appendChild(self, node):
node.parent = self
@@ -109,7 +117,7 @@ def getDomBuilder(DomImplementation):
nameTuple = property(getNameTuple)
- class TreeBuilder(_base.TreeBuilder):
+ class TreeBuilder(base.TreeBuilder): # pylint:disable=unused-variable
def documentClass(self):
self.dom = Dom.getDOMImplementation().createDocument(None, None, None)
return weakref.proxy(self)
@@ -149,15 +157,16 @@ def getDomBuilder(DomImplementation):
return self.dom
def getFragment(self):
- return _base.TreeBuilder.getFragment(self).element
+ return base.TreeBuilder.getFragment(self).element
def insertText(self, data, parent=None):
data = data
if parent != self:
- _base.TreeBuilder.insertText(self, data, parent)
+ base.TreeBuilder.insertText(self, data, parent)
else:
# HACK: allow text nodes as children of the document node
if hasattr(self.dom, '_child_node_types'):
+ # pylint:disable=protected-access
if Node.TEXT_NODE not in self.dom._child_node_types:
self.dom._child_node_types = list(self.dom._child_node_types)
self.dom._child_node_types.append(Node.TEXT_NODE)
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/etree.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/etree.py
index 2c8ed19f8fe..cb1d4aef503 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/etree.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/etree.py
@@ -1,13 +1,15 @@
from __future__ import absolute_import, division, unicode_literals
+# pylint:disable=protected-access
+
from six import text_type
import re
-from . import _base
-from .. import ihatexml
+from . import base
+from .. import _ihatexml
from .. import constants
from ..constants import namespaces
-from ..utils import moduleFactoryFactory
+from .._utils import moduleFactoryFactory
tag_regexp = re.compile("{([^}]*)}(.*)")
@@ -16,7 +18,7 @@ def getETreeBuilder(ElementTreeImplementation, fullTree=False):
ElementTree = ElementTreeImplementation
ElementTreeCommentType = ElementTree.Comment("asd").tag
- class Element(_base.Node):
+ class Element(base.Node):
def __init__(self, name, namespace=None):
self._name = name
self._namespace = namespace
@@ -98,6 +100,7 @@ def getETreeBuilder(ElementTreeImplementation, fullTree=False):
node.parent = self
def removeChild(self, node):
+ self._childNodes.remove(node)
self._element.remove(node._element)
node.parent = None
@@ -139,7 +142,7 @@ def getETreeBuilder(ElementTreeImplementation, fullTree=False):
if self._element.text is not None:
newParent._element.text += self._element.text
self._element.text = ""
- _base.Node.reparentChildren(self, newParent)
+ base.Node.reparentChildren(self, newParent)
class Comment(Element):
def __init__(self, data):
@@ -253,10 +256,10 @@ def getETreeBuilder(ElementTreeImplementation, fullTree=False):
return "\n".join(rv)
- def tostring(element):
+ def tostring(element): # pylint:disable=unused-variable
"""Serialize an element and its child nodes to a string"""
rv = []
- filter = ihatexml.InfosetFilter()
+ filter = _ihatexml.InfosetFilter()
def serializeElement(element):
if isinstance(element, ElementTree.ElementTree):
@@ -307,7 +310,7 @@ def getETreeBuilder(ElementTreeImplementation, fullTree=False):
return "".join(rv)
- class TreeBuilder(_base.TreeBuilder):
+ class TreeBuilder(base.TreeBuilder): # pylint:disable=unused-variable
documentClass = Document
doctypeClass = DocumentType
elementClass = Element
@@ -329,7 +332,7 @@ def getETreeBuilder(ElementTreeImplementation, fullTree=False):
return self.document._element.find("html")
def getFragment(self):
- return _base.TreeBuilder.getFragment(self)._element
+ return base.TreeBuilder.getFragment(self)._element
return locals()
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/etree_lxml.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/etree_lxml.py
index 35d08efaa61..ca12a99cccf 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/etree_lxml.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/etree_lxml.py
@@ -10,16 +10,17 @@ When any of these things occur, we emit a DataLossWarning
"""
from __future__ import absolute_import, division, unicode_literals
+# pylint:disable=protected-access
import warnings
import re
import sys
-from . import _base
+from . import base
from ..constants import DataLossWarning
from .. import constants
from . import etree as etree_builders
-from .. import ihatexml
+from .. import _ihatexml
import lxml.etree as etree
@@ -53,8 +54,7 @@ class Document(object):
def testSerializer(element):
rv = []
- finalText = None
- infosetFilter = ihatexml.InfosetFilter()
+ infosetFilter = _ihatexml.InfosetFilter(preventDoubleDashComments=True)
def serializeElement(element, indent=0):
if not hasattr(element, "tag"):
@@ -79,7 +79,7 @@ def testSerializer(element):
next_element = next_element.getnext()
elif isinstance(element, str) or isinstance(element, bytes):
# Text in a fragment
- assert isinstance(element, str) or sys.version_info.major == 2
+ assert isinstance(element, str) or sys.version_info[0] == 2
rv.append("|%s\"%s\"" % (' ' * indent, element))
else:
# Fragment case
@@ -128,16 +128,12 @@ def testSerializer(element):
rv.append("|%s\"%s\"" % (' ' * (indent - 2), element.tail))
serializeElement(element, 0)
- if finalText is not None:
- rv.append("|%s\"%s\"" % (' ' * 2, finalText))
-
return "\n".join(rv)
def tostring(element):
"""Serialize an element and its child nodes to a string"""
rv = []
- finalText = None
def serializeElement(element):
if not hasattr(element, "tag"):
@@ -173,13 +169,10 @@ def tostring(element):
serializeElement(element)
- if finalText is not None:
- rv.append("%s\"" % (' ' * 2, finalText))
-
return "".join(rv)
-class TreeBuilder(_base.TreeBuilder):
+class TreeBuilder(base.TreeBuilder):
documentClass = Document
doctypeClass = DocumentType
elementClass = None
@@ -189,13 +182,15 @@ class TreeBuilder(_base.TreeBuilder):
def __init__(self, namespaceHTMLElements, fullTree=False):
builder = etree_builders.getETreeModule(etree, fullTree=fullTree)
- infosetFilter = self.infosetFilter = ihatexml.InfosetFilter()
+ infosetFilter = self.infosetFilter = _ihatexml.InfosetFilter(preventDoubleDashComments=True)
self.namespaceHTMLElements = namespaceHTMLElements
class Attributes(dict):
- def __init__(self, element, value={}):
+ def __init__(self, element, value=None):
+ if value is None:
+ value = {}
self._element = element
- dict.__init__(self, value)
+ dict.__init__(self, value) # pylint:disable=non-parent-init-called
for key, value in self.items():
if isinstance(key, tuple):
name = "{%s}%s" % (key[2], infosetFilter.coerceAttribute(key[1]))
@@ -257,12 +252,12 @@ class TreeBuilder(_base.TreeBuilder):
data = property(_getData, _setData)
self.elementClass = Element
- self.commentClass = builder.Comment
+ self.commentClass = Comment
# self.fragmentClass = builder.DocumentFragment
- _base.TreeBuilder.__init__(self, namespaceHTMLElements)
+ base.TreeBuilder.__init__(self, namespaceHTMLElements)
def reset(self):
- _base.TreeBuilder.reset(self)
+ base.TreeBuilder.reset(self)
self.insertComment = self.insertCommentInitial
self.initial_comments = []
self.doctype = None
@@ -303,19 +298,20 @@ class TreeBuilder(_base.TreeBuilder):
self.doctype = doctype
def insertCommentInitial(self, data, parent=None):
+ assert parent is None or parent is self.document
+ assert self.document._elementTree is None
self.initial_comments.append(data)
def insertCommentMain(self, data, parent=None):
if (parent == self.document and
self.document._elementTree.getroot()[-1].tag == comment_type):
- warnings.warn("lxml cannot represent adjacent comments beyond the root elements", DataLossWarning)
+ warnings.warn("lxml cannot represent adjacent comments beyond the root elements", DataLossWarning)
super(TreeBuilder, self).insertComment(data, parent)
def insertRoot(self, token):
- """Create the document root"""
# Because of the way libxml2 works, it doesn't seem to be possible to
# alter information like the doctype after the tree has been parsed.
- # Therefore we need to use the built-in parser to create our iniial
+ # Therefore we need to use the built-in parser to create our initial
# tree, after which we can add elements like normal
docStr = ""
if self.doctype:
@@ -344,7 +340,8 @@ class TreeBuilder(_base.TreeBuilder):
# Append the initial comments:
for comment_token in self.initial_comments:
- root.addprevious(etree.Comment(comment_token["data"]))
+ comment = self.commentClass(comment_token["data"])
+ root.addprevious(comment._element)
# Create the root document and add the ElementTree to it
self.document = self.documentClass()
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/__init__.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/__init__.py
new file mode 100644
index 00000000000..9bec2076f3f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/__init__.py
@@ -0,0 +1,154 @@
+"""A collection of modules for iterating through different kinds of
+tree, generating tokens identical to those produced by the tokenizer
+module.
+
+To create a tree walker for a new type of tree, you need to do
+implement a tree walker object (called TreeWalker by convention) that
+implements a 'serialize' method taking a tree as sole argument and
+returning an iterator generating tokens.
+"""
+
+from __future__ import absolute_import, division, unicode_literals
+
+from .. import constants
+from .._utils import default_etree
+
+__all__ = ["getTreeWalker", "pprint"]
+
+treeWalkerCache = {}
+
+
+def getTreeWalker(treeType, implementation=None, **kwargs):
+ """Get a TreeWalker class for various types of tree with built-in support
+
+ :arg str treeType: the name of the tree type required (case-insensitive).
+ Supported values are:
+
+ * "dom": The xml.dom.minidom DOM implementation
+ * "etree": A generic walker for tree implementations exposing an
+ elementtree-like interface (known to work with ElementTree,
+ cElementTree and lxml.etree).
+ * "lxml": Optimized walker for lxml.etree
+ * "genshi": a Genshi stream
+
+ :arg implementation: A module implementing the tree type e.g.
+ xml.etree.ElementTree or cElementTree (Currently applies to the "etree"
+ tree type only).
+
+ :arg kwargs: keyword arguments passed to the etree walker--for other
+ walkers, this has no effect
+
+ :returns: a TreeWalker class
+
+ """
+
+ treeType = treeType.lower()
+ if treeType not in treeWalkerCache:
+ if treeType == "dom":
+ from . import dom
+ treeWalkerCache[treeType] = dom.TreeWalker
+ elif treeType == "genshi":
+ from . import genshi
+ treeWalkerCache[treeType] = genshi.TreeWalker
+ elif treeType == "lxml":
+ from . import etree_lxml
+ treeWalkerCache[treeType] = etree_lxml.TreeWalker
+ elif treeType == "etree":
+ from . import etree
+ if implementation is None:
+ implementation = default_etree
+ # XXX: NEVER cache here, caching is done in the etree submodule
+ return etree.getETreeModule(implementation, **kwargs).TreeWalker
+ return treeWalkerCache.get(treeType)
+
+
+def concatenateCharacterTokens(tokens):
+ pendingCharacters = []
+ for token in tokens:
+ type = token["type"]
+ if type in ("Characters", "SpaceCharacters"):
+ pendingCharacters.append(token["data"])
+ else:
+ if pendingCharacters:
+ yield {"type": "Characters", "data": "".join(pendingCharacters)}
+ pendingCharacters = []
+ yield token
+ if pendingCharacters:
+ yield {"type": "Characters", "data": "".join(pendingCharacters)}
+
+
+def pprint(walker):
+ """Pretty printer for tree walkers
+
+ Takes a TreeWalker instance and pretty prints the output of walking the tree.
+
+ :arg walker: a TreeWalker instance
+
+ """
+ output = []
+ indent = 0
+ for token in concatenateCharacterTokens(walker):
+ type = token["type"]
+ if type in ("StartTag", "EmptyTag"):
+ # tag name
+ if token["namespace"] and token["namespace"] != constants.namespaces["html"]:
+ if token["namespace"] in constants.prefixes:
+ ns = constants.prefixes[token["namespace"]]
+ else:
+ ns = token["namespace"]
+ name = "%s %s" % (ns, token["name"])
+ else:
+ name = token["name"]
+ output.append("%s<%s>" % (" " * indent, name))
+ indent += 2
+ # attributes (sorted for consistent ordering)
+ attrs = token["data"]
+ for (namespace, localname), value in sorted(attrs.items()):
+ if namespace:
+ if namespace in constants.prefixes:
+ ns = constants.prefixes[namespace]
+ else:
+ ns = namespace
+ name = "%s %s" % (ns, localname)
+ else:
+ name = localname
+ output.append("%s%s=\"%s\"" % (" " * indent, name, value))
+ # self-closing
+ if type == "EmptyTag":
+ indent -= 2
+
+ elif type == "EndTag":
+ indent -= 2
+
+ elif type == "Comment":
+ output.append("%s<!-- %s -->" % (" " * indent, token["data"]))
+
+ elif type == "Doctype":
+ if token["name"]:
+ if token["publicId"]:
+ output.append("""%s<!DOCTYPE %s "%s" "%s">""" %
+ (" " * indent,
+ token["name"],
+ token["publicId"],
+ token["systemId"] if token["systemId"] else ""))
+ elif token["systemId"]:
+ output.append("""%s<!DOCTYPE %s "" "%s">""" %
+ (" " * indent,
+ token["name"],
+ token["systemId"]))
+ else:
+ output.append("%s<!DOCTYPE %s>" % (" " * indent,
+ token["name"]))
+ else:
+ output.append("%s<!DOCTYPE >" % (" " * indent,))
+
+ elif type == "Characters":
+ output.append("%s\"%s\"" % (" " * indent, token["data"]))
+
+ elif type == "SpaceCharacters":
+ assert False, "concatenateCharacterTokens should have got rid of all Space tokens"
+
+ else:
+ raise ValueError("Unknown token type, %s" % type)
+
+ return "\n".join(output)
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/_base.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/base.py
index 34252e50c0e..80c474c4e93 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/_base.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/base.py
@@ -1,10 +1,10 @@
from __future__ import absolute_import, division, unicode_literals
-from six import text_type, string_types
-
-import gettext
-_ = gettext.gettext
from xml.dom import Node
+from ..constants import namespaces, voidElements, spaceCharacters
+
+__all__ = ["DOCUMENT", "DOCTYPE", "TEXT", "ELEMENT", "COMMENT", "ENTITY", "UNKNOWN",
+ "TreeWalker", "NonRecursiveTreeWalker"]
DOCUMENT = Node.DOCUMENT_NODE
DOCTYPE = Node.DOCUMENT_TYPE_NODE
@@ -14,80 +14,115 @@ COMMENT = Node.COMMENT_NODE
ENTITY = Node.ENTITY_NODE
UNKNOWN = "<#UNKNOWN#>"
-from ..constants import voidElements, spaceCharacters
spaceCharacters = "".join(spaceCharacters)
-def to_text(s, blank_if_none=True):
- """Wrapper around six.text_type to convert None to empty string"""
- if s is None:
- if blank_if_none:
- return ""
- else:
- return None
- elif isinstance(s, text_type):
- return s
- else:
- return text_type(s)
+class TreeWalker(object):
+ """Walks a tree yielding tokens
+ Tokens are dicts that all have a ``type`` field specifying the type of the
+ token.
-def is_text_or_none(string):
- """Wrapper around isinstance(string_types) or is None"""
- return string is None or isinstance(string, string_types)
+ """
+ def __init__(self, tree):
+ """Creates a TreeWalker
+ :arg tree: the tree to walk
-class TreeWalker(object):
- def __init__(self, tree):
+ """
self.tree = tree
def __iter__(self):
raise NotImplementedError
def error(self, msg):
+ """Generates an error token with the given message
+
+ :arg msg: the error message
+
+ :returns: SerializeError token
+
+ """
return {"type": "SerializeError", "data": msg}
def emptyTag(self, namespace, name, attrs, hasChildren=False):
- assert namespace is None or isinstance(namespace, string_types), type(namespace)
- assert isinstance(name, string_types), type(name)
- assert all((namespace is None or isinstance(namespace, string_types)) and
- isinstance(name, string_types) and
- isinstance(value, string_types)
- for (namespace, name), value in attrs.items())
-
- yield {"type": "EmptyTag", "name": to_text(name, False),
- "namespace": to_text(namespace),
+ """Generates an EmptyTag token
+
+ :arg namespace: the namespace of the token--can be ``None``
+
+ :arg name: the name of the element
+
+ :arg attrs: the attributes of the element as a dict
+
+ :arg hasChildren: whether or not to yield a SerializationError because
+ this tag shouldn't have children
+
+ :returns: EmptyTag token
+
+ """
+ yield {"type": "EmptyTag", "name": name,
+ "namespace": namespace,
"data": attrs}
if hasChildren:
- yield self.error(_("Void element has children"))
+ yield self.error("Void element has children")
def startTag(self, namespace, name, attrs):
- assert namespace is None or isinstance(namespace, string_types), type(namespace)
- assert isinstance(name, string_types), type(name)
- assert all((namespace is None or isinstance(namespace, string_types)) and
- isinstance(name, string_types) and
- isinstance(value, string_types)
- for (namespace, name), value in attrs.items())
+ """Generates a StartTag token
+
+ :arg namespace: the namespace of the token--can be ``None``
+
+ :arg name: the name of the element
+
+ :arg attrs: the attributes of the element as a dict
+ :returns: StartTag token
+
+ """
return {"type": "StartTag",
- "name": text_type(name),
- "namespace": to_text(namespace),
- "data": dict(((to_text(namespace, False), to_text(name)),
- to_text(value, False))
- for (namespace, name), value in attrs.items())}
+ "name": name,
+ "namespace": namespace,
+ "data": attrs}
def endTag(self, namespace, name):
- assert namespace is None or isinstance(namespace, string_types), type(namespace)
- assert isinstance(name, string_types), type(namespace)
+ """Generates an EndTag token
+
+ :arg namespace: the namespace of the token--can be ``None``
+
+ :arg name: the name of the element
+ :returns: EndTag token
+
+ """
return {"type": "EndTag",
- "name": to_text(name, False),
- "namespace": to_text(namespace),
- "data": {}}
+ "name": name,
+ "namespace": namespace}
def text(self, data):
- assert isinstance(data, string_types), type(data)
+ """Generates SpaceCharacters and Characters tokens
+
+ Depending on what's in the data, this generates one or more
+ ``SpaceCharacters`` and ``Characters`` tokens.
+
+ For example:
+
+ >>> from html5lib.treewalkers.base import TreeWalker
+ >>> # Give it an empty tree just so it instantiates
+ >>> walker = TreeWalker([])
+ >>> list(walker.text(''))
+ []
+ >>> list(walker.text(' '))
+ [{u'data': ' ', u'type': u'SpaceCharacters'}]
+ >>> list(walker.text(' abc ')) # doctest: +NORMALIZE_WHITESPACE
+ [{u'data': ' ', u'type': u'SpaceCharacters'},
+ {u'data': u'abc', u'type': u'Characters'},
+ {u'data': u' ', u'type': u'SpaceCharacters'}]
+
+ :arg data: the text data
+
+ :returns: one or more ``SpaceCharacters`` and ``Characters`` tokens
- data = to_text(data)
+ """
+ data = data
middle = data.lstrip(spaceCharacters)
left = data[:len(data) - len(middle)]
if left:
@@ -101,28 +136,45 @@ class TreeWalker(object):
yield {"type": "SpaceCharacters", "data": right}
def comment(self, data):
- assert isinstance(data, string_types), type(data)
+ """Generates a Comment token
- return {"type": "Comment", "data": text_type(data)}
+ :arg data: the comment
- def doctype(self, name, publicId=None, systemId=None, correct=True):
- assert is_text_or_none(name), type(name)
- assert is_text_or_none(publicId), type(publicId)
- assert is_text_or_none(systemId), type(systemId)
+ :returns: Comment token
+ """
+ return {"type": "Comment", "data": data}
+
+ def doctype(self, name, publicId=None, systemId=None):
+ """Generates a Doctype token
+
+ :arg name:
+
+ :arg publicId:
+
+ :arg systemId:
+
+ :returns: the Doctype token
+
+ """
return {"type": "Doctype",
- "name": to_text(name),
- "publicId": to_text(publicId),
- "systemId": to_text(systemId),
- "correct": to_text(correct)}
+ "name": name,
+ "publicId": publicId,
+ "systemId": systemId}
def entity(self, name):
- assert isinstance(name, string_types), type(name)
+ """Generates an Entity token
+
+ :arg name: the entity name
+
+ :returns: an Entity token
- return {"type": "Entity", "name": text_type(name)}
+ """
+ return {"type": "Entity", "name": name}
def unknown(self, nodeType):
- return self.error(_("Unknown node type: ") + nodeType)
+ """Handles unknown node types"""
+ return self.error("Unknown node type: " + nodeType)
class NonRecursiveTreeWalker(TreeWalker):
@@ -154,7 +206,7 @@ class NonRecursiveTreeWalker(TreeWalker):
elif type == ELEMENT:
namespace, name, attributes, hasChildren = details
- if name in voidElements:
+ if (not namespace or namespace == namespaces["html"]) and name in voidElements:
for token in self.emptyTag(namespace, name, attributes,
hasChildren):
yield token
@@ -187,7 +239,7 @@ class NonRecursiveTreeWalker(TreeWalker):
type, details = details[0], details[1:]
if type == ELEMENT:
namespace, name, attributes, hasChildren = details
- if name not in voidElements:
+ if (namespace and namespace != namespaces["html"]) or name not in voidElements:
yield self.endTag(namespace, name)
if self.tree is currentNode:
currentNode = None
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/dom.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/dom.py
index a01287a9448..b0c89b001fd 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/dom.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/dom.py
@@ -2,19 +2,16 @@ from __future__ import absolute_import, division, unicode_literals
from xml.dom import Node
-import gettext
-_ = gettext.gettext
+from . import base
-from . import _base
-
-class TreeWalker(_base.NonRecursiveTreeWalker):
+class TreeWalker(base.NonRecursiveTreeWalker):
def getNodeDetails(self, node):
if node.nodeType == Node.DOCUMENT_TYPE_NODE:
- return _base.DOCTYPE, node.name, node.publicId, node.systemId
+ return base.DOCTYPE, node.name, node.publicId, node.systemId
elif node.nodeType in (Node.TEXT_NODE, Node.CDATA_SECTION_NODE):
- return _base.TEXT, node.nodeValue
+ return base.TEXT, node.nodeValue
elif node.nodeType == Node.ELEMENT_NODE:
attrs = {}
@@ -24,17 +21,17 @@ class TreeWalker(_base.NonRecursiveTreeWalker):
attrs[(attr.namespaceURI, attr.localName)] = attr.value
else:
attrs[(None, attr.name)] = attr.value
- return (_base.ELEMENT, node.namespaceURI, node.nodeName,
+ return (base.ELEMENT, node.namespaceURI, node.nodeName,
attrs, node.hasChildNodes())
elif node.nodeType == Node.COMMENT_NODE:
- return _base.COMMENT, node.nodeValue
+ return base.COMMENT, node.nodeValue
elif node.nodeType in (Node.DOCUMENT_NODE, Node.DOCUMENT_FRAGMENT_NODE):
- return (_base.DOCUMENT,)
+ return (base.DOCUMENT,)
else:
- return _base.UNKNOWN, node.nodeType
+ return base.UNKNOWN, node.nodeType
def getFirstChild(self, node):
return node.firstChild
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/etree.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/etree.py
index fd8a9cc9b52..d15a7eebfe8 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/etree.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/etree.py
@@ -1,21 +1,12 @@
from __future__ import absolute_import, division, unicode_literals
-try:
- from collections import OrderedDict
-except ImportError:
- try:
- from ordereddict import OrderedDict
- except ImportError:
- OrderedDict = dict
-import gettext
-_ = gettext.gettext
-
+from collections import OrderedDict
import re
-from six import text_type
+from six import string_types
-from . import _base
-from ..utils import moduleFactoryFactory
+from . import base
+from .._utils import moduleFactoryFactory
tag_regexp = re.compile("{([^}]*)}(.*)")
@@ -24,7 +15,7 @@ def getETreeBuilder(ElementTreeImplementation):
ElementTree = ElementTreeImplementation
ElementTreeCommentType = ElementTree.Comment("asd").tag
- class TreeWalker(_base.NonRecursiveTreeWalker):
+ class TreeWalker(base.NonRecursiveTreeWalker): # pylint:disable=unused-variable
"""Given the particular ElementTree representation, this implementation,
to avoid using recursion, returns "nodes" as tuples with the following
content:
@@ -40,9 +31,9 @@ def getETreeBuilder(ElementTreeImplementation):
"""
def getNodeDetails(self, node):
if isinstance(node, tuple): # It might be the root Element
- elt, key, parents, flag = node
+ elt, _, _, flag = node
if flag in ("text", "tail"):
- return _base.TEXT, getattr(elt, flag)
+ return base.TEXT, getattr(elt, flag)
else:
node = elt
@@ -50,17 +41,17 @@ def getETreeBuilder(ElementTreeImplementation):
node = node.getroot()
if node.tag in ("DOCUMENT_ROOT", "DOCUMENT_FRAGMENT"):
- return (_base.DOCUMENT,)
+ return (base.DOCUMENT,)
elif node.tag == "<!DOCTYPE>":
- return (_base.DOCTYPE, node.text,
+ return (base.DOCTYPE, node.text,
node.get("publicId"), node.get("systemId"))
elif node.tag == ElementTreeCommentType:
- return _base.COMMENT, node.text
+ return base.COMMENT, node.text
else:
- assert type(node.tag) == text_type, type(node.tag)
+ assert isinstance(node.tag, string_types), type(node.tag)
# This is assumed to be an ordinary element
match = tag_regexp.match(node.tag)
if match:
@@ -75,7 +66,7 @@ def getETreeBuilder(ElementTreeImplementation):
attrs[(match.group(1), match.group(2))] = value
else:
attrs[(None, name)] = value
- return (_base.ELEMENT, namespace, tag,
+ return (base.ELEMENT, namespace, tag,
attrs, len(node) or node.text)
def getFirstChild(self, node):
@@ -131,6 +122,7 @@ def getETreeBuilder(ElementTreeImplementation):
if not parents:
return parent
else:
+ assert list(parents[-1]).count(parent) == 1
return parent, list(parents[-1]).index(parent), parents, None
return locals()
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/lxmletree.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/etree_lxml.py
index bc934ac05a9..fb2363112b1 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/lxmletree.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/etree_lxml.py
@@ -4,12 +4,9 @@ from six import text_type
from lxml import etree
from ..treebuilders.etree import tag_regexp
-from gettext import gettext
-_ = gettext
+from . import base
-from . import _base
-
-from .. import ihatexml
+from .. import _ihatexml
def ensure_str(s):
@@ -18,20 +15,27 @@ def ensure_str(s):
elif isinstance(s, text_type):
return s
else:
- return s.decode("utf-8", "strict")
+ return s.decode("ascii", "strict")
class Root(object):
def __init__(self, et):
self.elementtree = et
self.children = []
- if et.docinfo.internalDTD:
- self.children.append(Doctype(self,
- ensure_str(et.docinfo.root_name),
- ensure_str(et.docinfo.public_id),
- ensure_str(et.docinfo.system_url)))
- root = et.getroot()
- node = root
+
+ try:
+ if et.docinfo.internalDTD:
+ self.children.append(Doctype(self,
+ ensure_str(et.docinfo.root_name),
+ ensure_str(et.docinfo.public_id),
+ ensure_str(et.docinfo.system_url)))
+ except AttributeError:
+ pass
+
+ try:
+ node = et.getroot()
+ except AttributeError:
+ node = et
while node.getprevious() is not None:
node = node.getprevious()
@@ -118,35 +122,38 @@ class FragmentWrapper(object):
return len(self.obj)
-class TreeWalker(_base.NonRecursiveTreeWalker):
+class TreeWalker(base.NonRecursiveTreeWalker):
def __init__(self, tree):
- if hasattr(tree, "getroot"):
- tree = Root(tree)
- elif isinstance(tree, list):
+ # pylint:disable=redefined-variable-type
+ if isinstance(tree, list):
+ self.fragmentChildren = set(tree)
tree = FragmentRoot(tree)
- _base.NonRecursiveTreeWalker.__init__(self, tree)
- self.filter = ihatexml.InfosetFilter()
+ else:
+ self.fragmentChildren = set()
+ tree = Root(tree)
+ base.NonRecursiveTreeWalker.__init__(self, tree)
+ self.filter = _ihatexml.InfosetFilter()
def getNodeDetails(self, node):
if isinstance(node, tuple): # Text node
node, key = node
- assert key in ("text", "tail"), _("Text nodes are text or tail, found %s") % key
- return _base.TEXT, ensure_str(getattr(node, key))
+ assert key in ("text", "tail"), "Text nodes are text or tail, found %s" % key
+ return base.TEXT, ensure_str(getattr(node, key))
elif isinstance(node, Root):
- return (_base.DOCUMENT,)
+ return (base.DOCUMENT,)
elif isinstance(node, Doctype):
- return _base.DOCTYPE, node.name, node.public_id, node.system_id
+ return base.DOCTYPE, node.name, node.public_id, node.system_id
elif isinstance(node, FragmentWrapper) and not hasattr(node, "tag"):
- return _base.TEXT, node.obj
+ return base.TEXT, ensure_str(node.obj)
elif node.tag == etree.Comment:
- return _base.COMMENT, ensure_str(node.text)
+ return base.COMMENT, ensure_str(node.text)
elif node.tag == etree.Entity:
- return _base.ENTITY, ensure_str(node.text)[1:-1] # strip &;
+ return base.ENTITY, ensure_str(node.text)[1:-1] # strip &;
else:
# This is assumed to be an ordinary element
@@ -165,11 +172,11 @@ class TreeWalker(_base.NonRecursiveTreeWalker):
attrs[(match.group(1), match.group(2))] = value
else:
attrs[(None, name)] = value
- return (_base.ELEMENT, namespace, self.filter.fromXmlName(tag),
+ return (base.ELEMENT, namespace, self.filter.fromXmlName(tag),
attrs, len(node) > 0 or node.text)
def getFirstChild(self, node):
- assert not isinstance(node, tuple), _("Text nodes have no children")
+ assert not isinstance(node, tuple), "Text nodes have no children"
assert len(node) or node.text, "Node has no children"
if node.text:
@@ -180,7 +187,7 @@ class TreeWalker(_base.NonRecursiveTreeWalker):
def getNextSibling(self, node):
if isinstance(node, tuple): # Text node
node, key = node
- assert key in ("text", "tail"), _("Text nodes are text or tail, found %s") % key
+ assert key in ("text", "tail"), "Text nodes are text or tail, found %s" % key
if key == "text":
# XXX: we cannot use a "bool(node) and node[0] or None" construct here
# because node[0] might evaluate to False if it has no child element
@@ -196,9 +203,11 @@ class TreeWalker(_base.NonRecursiveTreeWalker):
def getParentNode(self, node):
if isinstance(node, tuple): # Text node
node, key = node
- assert key in ("text", "tail"), _("Text nodes are text or tail, found %s") % key
+ assert key in ("text", "tail"), "Text nodes are text or tail, found %s" % key
if key == "text":
return node
# else: fallback to "normal" processing
+ elif node in self.fragmentChildren:
+ return None
return node.getparent()
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/genshistream.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/genshi.py
index f559c45d044..7483be27d4d 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/genshistream.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/genshi.py
@@ -4,12 +4,12 @@ from genshi.core import QName
from genshi.core import START, END, XML_NAMESPACE, DOCTYPE, TEXT
from genshi.core import START_NS, END_NS, START_CDATA, END_CDATA, PI, COMMENT
-from . import _base
+from . import base
from ..constants import voidElements, namespaces
-class TreeWalker(_base.TreeWalker):
+class TreeWalker(base.TreeWalker):
def __iter__(self):
# Buffer the events so we can pass in the following one
previous = None
@@ -25,7 +25,7 @@ class TreeWalker(_base.TreeWalker):
yield token
def tokens(self, event, next):
- kind, data, pos = event
+ kind, data, _ = event
if kind == START:
tag, attribs = data
name = tag.localname
@@ -39,8 +39,8 @@ class TreeWalker(_base.TreeWalker):
if namespace == namespaces["html"] and name in voidElements:
for token in self.emptyTag(namespace, name, converted_attribs,
- not next or next[0] != END
- or next[1] != tag):
+ not next or next[0] != END or
+ next[1] != tag):
yield token
else:
yield self.startTag(namespace, name, converted_attribs)
@@ -48,7 +48,7 @@ class TreeWalker(_base.TreeWalker):
elif kind == END:
name = data.localname
namespace = data.namespace
- if name not in voidElements:
+ if namespace != namespaces["html"] or name not in voidElements:
yield self.endTag(namespace, name)
elif kind == COMMENT:
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/parse.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/parse.py
index 9cbf3b8d1cc..3e65c330d92 100755
--- a/tests/wpt/web-platform-tests/tools/html5lib/parse.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/parse.py
@@ -5,18 +5,18 @@ Parse a document to a tree, with optional profiling
"""
import sys
-import os
import traceback
from optparse import OptionParser
-from html5lib import html5parser, sanitizer
-from html5lib.tokenizer import HTMLTokenizer
+from html5lib import html5parser
from html5lib import treebuilders, serializer, treewalkers
from html5lib import constants
+from html5lib import _utils
+
def parse():
optParser = getOptParser()
- opts,args = optParser.parse_args()
+ opts, args = optParser.parse_args()
encoding = "utf8"
try:
@@ -24,7 +24,10 @@ def parse():
# Try opening from the internet
if f.startswith('http://'):
try:
- import urllib.request, urllib.parse, urllib.error, cgi
+ import urllib.request
+ import urllib.parse
+ import urllib.error
+ import cgi
f = urllib.request.urlopen(f)
contentType = f.headers.get('content-type')
if contentType:
@@ -40,7 +43,7 @@ def parse():
try:
# Try opening from file system
f = open(f, "rb")
- except IOError as e:
+ except IOError as e:
sys.stderr.write("Unable to open file: %s\n" % e)
sys.exit(1)
except IndexError:
@@ -49,12 +52,7 @@ def parse():
treebuilder = treebuilders.getTreeBuilder(opts.treebuilder)
- if opts.sanitize:
- tokenizer = sanitizer.HTMLSanitizer
- else:
- tokenizer = HTMLTokenizer
-
- p = html5parser.HTMLParser(tree=treebuilder, tokenizer=tokenizer, debug=opts.log)
+ p = html5parser.HTMLParser(tree=treebuilder, debug=opts.log)
if opts.fragment:
parseMethod = p.parseFragment
@@ -64,11 +62,12 @@ def parse():
if opts.profile:
import cProfile
import pstats
- cProfile.runctx("run(parseMethod, f, encoding)", None,
+ cProfile.runctx("run(parseMethod, f, encoding, scripting)", None,
{"run": run,
"parseMethod": parseMethod,
"f": f,
- "encoding": encoding},
+ "encoding": encoding,
+ "scripting": opts.scripting},
"stats.prof")
# XXX - We should use a temp file here
stats = pstats.Stats('stats.prof')
@@ -78,27 +77,29 @@ def parse():
elif opts.time:
import time
t0 = time.time()
- document = run(parseMethod, f, encoding)
+ document = run(parseMethod, f, encoding, opts.scripting)
t1 = time.time()
if document:
printOutput(p, document, opts)
t2 = time.time()
- sys.stderr.write("\n\nRun took: %fs (plus %fs to print the output)"%(t1-t0, t2-t1))
+ sys.stderr.write("\n\nRun took: %fs (plus %fs to print the output)" % (t1 - t0, t2 - t1))
else:
- sys.stderr.write("\n\nRun took: %fs"%(t1-t0))
+ sys.stderr.write("\n\nRun took: %fs" % (t1 - t0))
else:
- document = run(parseMethod, f, encoding)
+ document = run(parseMethod, f, encoding, opts.scripting)
if document:
printOutput(p, document, opts)
-def run(parseMethod, f, encoding):
+
+def run(parseMethod, f, encoding, scripting):
try:
- document = parseMethod(f, encoding=encoding)
+ document = parseMethod(f, override_encoding=encoding, scripting=scripting)
except:
document = None
traceback.print_exc()
return document
+
def printOutput(parser, document, opts):
if opts.encoding:
print("Encoding:", parser.tokenizer.stream.charEncoding)
@@ -108,24 +109,32 @@ def printOutput(parser, document, opts):
if document is not None:
if opts.xml:
- sys.stdout.write(document.toxml("utf-8"))
+ tb = opts.treebuilder.lower()
+ if tb == "dom":
+ document.writexml(sys.stdout, encoding="utf-8")
+ elif tb == "lxml":
+ import lxml.etree
+ sys.stdout.write(lxml.etree.tostring(document, encoding="unicode"))
+ elif tb == "etree":
+ sys.stdout.write(_utils.default_etree.tostring(document, encoding="unicode"))
elif opts.tree:
- if not hasattr(document,'__getitem__'):
+ if not hasattr(document, '__getitem__'):
document = [document]
for fragment in document:
print(parser.tree.testSerializer(fragment))
- elif opts.hilite:
- sys.stdout.write(document.hilite("utf-8"))
elif opts.html:
kwargs = {}
for opt in serializer.HTMLSerializer.options:
try:
- kwargs[opt] = getattr(opts,opt)
+ kwargs[opt] = getattr(opts, opt)
except:
pass
if not kwargs['quote_char']:
del kwargs['quote_char']
+ if opts.sanitize:
+ kwargs["sanitize"] = True
+
tokens = treewalkers.getTreeWalker(opts.treebuilder)(document)
if sys.version_info[0] >= 3:
encoding = None
@@ -133,12 +142,14 @@ def printOutput(parser, document, opts):
encoding = "utf-8"
for text in serializer.HTMLSerializer(**kwargs).serialize(tokens, encoding=encoding):
sys.stdout.write(text)
- if not text.endswith('\n'): sys.stdout.write('\n')
+ if not text.endswith('\n'):
+ sys.stdout.write('\n')
if opts.error:
- errList=[]
+ errList = []
for pos, errorcode, datavars in parser.errors:
- errList.append("Line %i Col %i"%pos + " " + constants.E.get(errorcode, 'Unknown error "%s"' % errorcode) % datavars)
- sys.stdout.write("\nParse errors:\n" + "\n".join(errList)+"\n")
+ errList.append("Line %i Col %i" % pos + " " + constants.E.get(errorcode, 'Unknown error "%s"' % errorcode) % datavars)
+ sys.stdout.write("\nParse errors:\n" + "\n".join(errList) + "\n")
+
def getOptParser():
parser = OptionParser(usage=__doc__)
@@ -152,7 +163,7 @@ def getOptParser():
help="Time the run using time.time (may not be accurate on all platforms, especially for short runs)")
parser.add_option("-b", "--treebuilder", action="store", type="string",
- dest="treebuilder", default="simpleTree")
+ dest="treebuilder", default="etree")
parser.add_option("-e", "--error", action="store_true", default=False,
dest="error", help="Print a list of parse errors")
@@ -160,6 +171,9 @@ def getOptParser():
parser.add_option("-f", "--fragment", action="store_true", default=False,
dest="fragment", help="Parse as a fragment")
+ parser.add_option("-s", "--scripting", action="store_true", default=False,
+ dest="scripting", help="Handle noscript tags as if scripting was enabled")
+
parser.add_option("", "--tree", action="store_true", default=False,
dest="tree", help="Output as debug tree")
@@ -169,9 +183,6 @@ def getOptParser():
parser.add_option("", "--no-html", action="store_false", default=True,
dest="html", help="Don't output html")
- parser.add_option("", "--hilite", action="store_true", default=False,
- dest="hilite", help="Output as formatted highlighted code.")
-
parser.add_option("-c", "--encoding", action="store_true", default=False,
dest="encoding", help="Print character encoding used")
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/pytest.ini b/tests/wpt/web-platform-tests/tools/third_party/html5lib/pytest.ini
new file mode 100644
index 00000000000..8824977a8f4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/pytest.ini
@@ -0,0 +1,17 @@
+[pytest]
+# Output fails, errors, xpass, and warnings; ignore doctest; make warnings errors
+addopts = -rfEXw -p no:doctest --strict
+
+# Make xpass results be considered fail
+xfail_strict = true
+
+# Document our markers
+markers =
+ DOM: mark a test as a DOM tree test
+ ElementTree: mark a test as a ElementTree tree test
+ cElementTree: mark a test as a cElementTree tree test
+ lxml: mark a test as a lxml tree test
+ genshi: mark a test as a genshi tree test
+ parser: mark a test as a parser test
+ namespaced: mark a test as a namespaced parser test
+ treewalker: mark a test as a treewalker test
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-install.sh b/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-install.sh
new file mode 100755
index 00000000000..b7a8d96dd6c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-install.sh
@@ -0,0 +1,15 @@
+#!/bin/bash -ex
+
+if [[ $SIX_VERSION ]]; then
+ pip install six==$SIX_VERSION
+fi
+
+pip install -r requirements-test.txt
+
+if [[ $USE_OPTIONAL == "true" ]]; then
+ pip install -r requirements-optional.txt
+fi
+
+if [[ $CI == "true" ]]; then
+ pip install codecov
+fi
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-optional.txt b/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-optional.txt
new file mode 100644
index 00000000000..c00fd242f6f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-optional.txt
@@ -0,0 +1,17 @@
+-r requirements.txt
+
+# We support a Genshi treewalker that can be used to serialize Genshi
+# streams.
+genshi
+
+# chardet can be used as a fallback in case we are unable to determine
+# the encoding of a document.
+chardet>=2.2
+
+# lxml is supported with its own treebuilder ("lxml") and otherwise
+# uses the standard ElementTree support
+lxml ; platform_python_implementation == 'CPython'
+
+# DATrie can be used in place of our Python trie implementation for
+# slightly better parsing performance.
+datrie ; platform_python_implementation == 'CPython'
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-test.txt b/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-test.txt
new file mode 100644
index 00000000000..4e223a3fde1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-test.txt
@@ -0,0 +1,10 @@
+-r requirements.txt
+
+tox
+
+flake8<3.0
+
+pytest==3.2.5
+coverage
+pytest-expect>=1.1,<2.0
+mock
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements.txt b/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements.txt
new file mode 100644
index 00000000000..ae7ec3d08b9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements.txt
@@ -0,0 +1,2 @@
+six>=1.9
+webencodings
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/setup.cfg b/tests/wpt/web-platform-tests/tools/third_party/html5lib/setup.cfg
new file mode 100644
index 00000000000..d309fdaa3f4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/setup.cfg
@@ -0,0 +1,14 @@
+[bdist_wheel]
+universal = 1
+
+[pep8]
+ignore = N
+max-line-length = 139
+exclude = .git,__pycache__,.tox,doc
+
+[flake8]
+ignore = N
+max-line-length = 139
+
+[metadata]
+license_file = LICENSE
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/setup.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/setup.py
new file mode 100644
index 00000000000..3e413f2a933
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/setup.py
@@ -0,0 +1,125 @@
+from __future__ import print_function
+
+import ast
+import codecs
+import sys
+
+from os.path import join, dirname
+from setuptools import setup, find_packages, __version__ as setuptools_version
+from pkg_resources import parse_version
+
+import pkg_resources
+
+try:
+ import _markerlib.markers
+except ImportError:
+ _markerlib = None
+
+
+# _markerlib.default_environment() obtains its data from _VARS
+# and wraps it in another dict, but _markerlib_evaluate writes
+# to the dict while it is iterating the keys, causing an error
+# on Python 3 only.
+# Replace _markerlib.default_environment to return a custom dict
+# that has all the necessary markers, and ignores any writes.
+
+class Python3MarkerDict(dict):
+
+ def __setitem__(self, key, value):
+ pass
+
+ def pop(self, i=-1):
+ return self[i]
+
+
+if _markerlib and sys.version_info[0] == 3:
+ env = _markerlib.markers._VARS
+ for key in list(env.keys()):
+ new_key = key.replace('.', '_')
+ if new_key != key:
+ env[new_key] = env[key]
+
+ _markerlib.markers._VARS = Python3MarkerDict(env)
+
+ def default_environment():
+ return _markerlib.markers._VARS
+
+ _markerlib.default_environment = default_environment
+
+# Avoid the very buggy pkg_resources.parser, which doesnt consistently
+# recognise the markers needed by this setup.py
+# Change this to setuptools 20.10.0 to support all markers.
+if pkg_resources:
+ if parse_version(setuptools_version) < parse_version('18.5'):
+ MarkerEvaluation = pkg_resources.MarkerEvaluation
+
+ del pkg_resources.parser
+ pkg_resources.evaluate_marker = MarkerEvaluation._markerlib_evaluate
+ MarkerEvaluation.evaluate_marker = MarkerEvaluation._markerlib_evaluate
+
+classifiers = [
+ 'Development Status :: 5 - Production/Stable',
+ 'Intended Audience :: Developers',
+ 'License :: OSI Approved :: MIT License',
+ 'Operating System :: OS Independent',
+ 'Programming Language :: Python',
+ 'Programming Language :: Python :: 2',
+ 'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: 3',
+ 'Programming Language :: Python :: 3.3',
+ 'Programming Language :: Python :: 3.4',
+ 'Programming Language :: Python :: 3.5',
+ 'Programming Language :: Python :: 3.6',
+ 'Topic :: Software Development :: Libraries :: Python Modules',
+ 'Topic :: Text Processing :: Markup :: HTML'
+]
+
+here = dirname(__file__)
+with codecs.open(join(here, 'README.rst'), 'r', 'utf8') as readme_file:
+ with codecs.open(join(here, 'CHANGES.rst'), 'r', 'utf8') as changes_file:
+ long_description = readme_file.read() + '\n' + changes_file.read()
+
+version = None
+with open(join(here, "html5lib", "__init__.py"), "rb") as init_file:
+ t = ast.parse(init_file.read(), filename="__init__.py", mode="exec")
+ assert isinstance(t, ast.Module)
+ assignments = filter(lambda x: isinstance(x, ast.Assign), t.body)
+ for a in assignments:
+ if (len(a.targets) == 1 and
+ isinstance(a.targets[0], ast.Name) and
+ a.targets[0].id == "__version__" and
+ isinstance(a.value, ast.Str)):
+ version = a.value.s
+
+setup(name='html5lib',
+ version=version,
+ url='https://github.com/html5lib/html5lib-python',
+ license="MIT License",
+ description='HTML parser based on the WHATWG HTML specification',
+ long_description=long_description,
+ classifiers=classifiers,
+ maintainer='James Graham',
+ maintainer_email='james@hoppipolla.co.uk',
+ packages=find_packages(exclude=["*.tests", "*.tests.*", "tests.*", "tests"]),
+ install_requires=[
+ 'six>=1.9',
+ 'webencodings',
+ ],
+ extras_require={
+ # A conditional extra will only install these items when the extra is
+ # requested and the condition matches.
+ "datrie:platform_python_implementation == 'CPython'": ["datrie"],
+ "lxml:platform_python_implementation == 'CPython'": ["lxml"],
+
+ # Standard extras, will be installed when the extra is requested.
+ "genshi": ["genshi"],
+ "chardet": ["chardet>=2.2"],
+
+ # The all extra combines a standard extra which will be used anytime
+ # the all extra is requested, and it extends it with a conditional
+ # extra that will be installed whenever the condition matches and the
+ # all extra is requested.
+ "all": ["genshi", "chardet>=2.2"],
+ "all:platform_python_implementation == 'CPython'": ["datrie", "lxml"],
+ },
+ )
diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/tox.ini b/tests/wpt/web-platform-tests/tools/third_party/html5lib/tox.ini
new file mode 100644
index 00000000000..e07ef670cef
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/tox.ini
@@ -0,0 +1,23 @@
+[tox]
+envlist = {py27,py33,py34,py35,py36,pypy}-{base,six19,optional}
+
+[testenv]
+deps =
+ optional: -r{toxinidir}/requirements-optional.txt
+ -r{toxinidir}/requirements-test.txt
+ doc: Sphinx
+
+passenv =
+ PYTEST_COMMAND
+ COVERAGE_RUN_OPTIONS
+commands =
+ six19: pip install six==1.9
+ {env:PYTEST_COMMAND:{envbindir}/py.test} {posargs}
+ flake8 {toxinidir}
+
+[testenv:doc]
+changedir = doc
+commands = sphinx-build -b html . _build
+
+[flake8]
+exclude = ./.tox
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/utils/entities.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/utils/entities.py
index 116a27cbc9b..6dccf5f0bfd 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/utils/entities.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/utils/entities.py
@@ -2,50 +2,59 @@ import json
import html5lib
+
def parse(path="html5ents.xml"):
return html5lib.parse(open(path), treebuilder="lxml")
+
def entity_table(tree):
return dict((entity_name("".join(tr[0].xpath(".//text()"))),
entity_characters(tr[1].text))
for tr in tree.xpath("//h:tbody/h:tr",
- namespaces={"h":"http://www.w3.org/1999/xhtml"}))
+ namespaces={"h": "http://www.w3.org/1999/xhtml"}))
+
def entity_name(inp):
return inp.strip()
+
def entity_characters(inp):
return "".join(codepoint_to_character(item)
- for item in inp.split()
- if item)
+ for item in inp.split()
+ if item)
+
def codepoint_to_character(inp):
- return ("\U000"+inp[2:]).decode("unicode-escape")
+ return ("\\U000" + inp[2:]).decode("unicode-escape")
+
def make_tests_json(entities):
test_list = make_test_list(entities)
tests_json = {"tests":
- [make_test(*item) for item in test_list]
+ [make_test(*item) for item in test_list]
}
return tests_json
+
def make_test(name, characters, good):
return {
- "description":test_description(name, good),
- "input":"&%s"%name,
- "output":test_expected(name, characters, good)
- }
+ "description": test_description(name, good),
+ "input": "&%s" % name,
+ "output": test_expected(name, characters, good)
+ }
+
def test_description(name, good):
with_semicolon = name.endswith(";")
- semicolon_text = {True:"with a semi-colon",
- False:"without a semi-colon"}[with_semicolon]
+ semicolon_text = {True: "with a semi-colon",
+ False: "without a semi-colon"}[with_semicolon]
if good:
- text = "Named entity: %s %s"%(name, semicolon_text)
+ text = "Named entity: %s %s" % (name, semicolon_text)
else:
- text = "Bad named entity: %s %s"%(name, semicolon_text)
+ text = "Bad named entity: %s %s" % (name, semicolon_text)
return text
+
def test_expected(name, characters, good):
rv = []
if not good or not name.endswith(";"):
@@ -53,6 +62,7 @@ def test_expected(name, characters, good):
rv.append(["Character", characters])
return rv
+
def make_test_list(entities):
tests = []
for entity_name, characters in entities.items():
@@ -61,20 +71,23 @@ def make_test_list(entities):
tests.append((entity_name, characters, True))
return sorted(tests)
+
def subentity_exists(entity_name, entities):
for i in range(1, len(entity_name)):
if entity_name[:-i] in entities:
return True
return False
+
def make_entities_code(entities):
- entities_text = "\n".join(" \"%s\": u\"%s\","%(
- name, entities[name].encode(
- "unicode-escape").replace("\"", "\\\""))
- for name in sorted(entities.keys()))
+ entities_text = "\n".join(" \"%s\": u\"%s\"," % (
+ name, entities[name].encode(
+ "unicode-escape").replace("\"", "\\\""))
+ for name in sorted(entities.keys()))
return """entities = {
%s
-}"""%entities_text
+}""" % entities_text
+
def main():
entities = entity_table(parse())
@@ -85,4 +98,3 @@ def main():
if __name__ == "__main__":
main()
-
diff --git a/tests/wpt/web-platform-tests/tools/six/CHANGES b/tests/wpt/web-platform-tests/tools/third_party/six/CHANGES
index 25930bd9aa1..b399882561e 100644
--- a/tests/wpt/web-platform-tests/tools/six/CHANGES
+++ b/tests/wpt/web-platform-tests/tools/third_party/six/CHANGES
@@ -3,8 +3,52 @@ Changelog for six
This file lists the changes in each six version.
-Development version
--------------------
+1.11.0
+------
+
+- Pull request #178: `with_metaclass` now properly proxies `__prepare__` to the
+ underlying metaclass.
+
+- Pull request #191: Allow `with_metaclass` to work with metaclasses implemented
+ in C.
+
+- Pull request #203: Add parse_http_list and parse_keqv_list to moved
+ urllib.request.
+
+- Pull request #172 and issue #171: Add unquote_to_bytes to moved urllib.parse.
+
+- Pull request #167: Add `six.moves.getoutput`.
+
+- Pull request #80: Add `six.moves.urllib_parse.splitvalue`.
+
+- Pull request #75: Add `six.moves.email_mime_image`.
+
+- Pull request #72: Avoid creating reference cycles through tracebacks in
+ `reraise`.
+
+1.10.0
+------
+
+- Issue #122: Improve the performance of `six.int2byte` on Python 3.
+
+- Pull request #55 and issue #99: Don't add the `winreg` module to `six.moves`
+ on non-Windows platforms.
+
+- Pull request #60 and issue #108: Add `six.moves.getcwd` and
+ `six.moves.getcwdu`.
+
+- Pull request #64: Add `create_unbound_method` to create unbound methods.
+
+1.9.0
+-----
+
+- Issue #106: Support the `flush` parameter to `six.print_`.
+
+- Pull request #48 and issue #15: Add the `python_2_unicode_compatible`
+ decorator.
+
+- Pull request #57 and issue #50: Add several compatibility methods for unittest
+ assertions that were renamed between Python 2 and 3.
- Issue #105 and pull request #58: Ensure `six.wraps` respects the *updated* and
*assigned* arguments.
@@ -18,6 +62,9 @@ Development version
- Pull request #51: Add `six.view(keys|values|itmes)`, which provide dictionary
views on Python 2.7+.
+- Issue #112: `six.moves.reload_module` now uses the importlib module on
+ Python 3.4+.
+
1.8.0
-----
diff --git a/tests/wpt/web-platform-tests/tools/six/LICENSE b/tests/wpt/web-platform-tests/tools/third_party/six/LICENSE
index d76e024263c..f3068bfd9e0 100644
--- a/tests/wpt/web-platform-tests/tools/six/LICENSE
+++ b/tests/wpt/web-platform-tests/tools/third_party/six/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2010-2014 Benjamin Peterson
+Copyright (c) 2010-2017 Benjamin Peterson
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
diff --git a/tests/wpt/web-platform-tests/tools/six/MANIFEST.in b/tests/wpt/web-platform-tests/tools/third_party/six/MANIFEST.in
index b924e068eee..b924e068eee 100644
--- a/tests/wpt/web-platform-tests/tools/six/MANIFEST.in
+++ b/tests/wpt/web-platform-tests/tools/third_party/six/MANIFEST.in
diff --git a/tests/wpt/web-platform-tests/tools/third_party/six/PKG-INFO b/tests/wpt/web-platform-tests/tools/third_party/six/PKG-INFO
new file mode 100644
index 00000000000..cd5ff4bb8e4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/six/PKG-INFO
@@ -0,0 +1,41 @@
+Metadata-Version: 1.1
+Name: six
+Version: 1.11.0
+Summary: Python 2 and 3 compatibility utilities
+Home-page: http://pypi.python.org/pypi/six/
+Author: Benjamin Peterson
+Author-email: benjamin@python.org
+License: MIT
+Description: .. image:: http://img.shields.io/pypi/v/six.svg
+ :target: https://pypi.python.org/pypi/six
+
+ .. image:: https://travis-ci.org/benjaminp/six.svg?branch=master
+ :target: https://travis-ci.org/benjaminp/six
+
+ .. image:: http://img.shields.io/badge/license-MIT-green.svg
+ :target: https://github.com/benjaminp/six/blob/master/LICENSE
+
+ Six is a Python 2 and 3 compatibility library. It provides utility functions
+ for smoothing over the differences between the Python versions with the goal of
+ writing Python code that is compatible on both Python versions. See the
+ documentation for more information on what is provided.
+
+ Six supports every Python version since 2.6. It is contained in only one Python
+ file, so it can be easily copied into your project. (The copyright and license
+ notice must be retained.)
+
+ Online documentation is at http://six.rtfd.org.
+
+ Bugs can be reported to https://github.com/benjaminp/six. The code can also
+ be found there.
+
+ For questions about six or porting in general, email the python-porting mailing
+ list: https://mail.python.org/mailman/listinfo/python-porting
+
+Platform: UNKNOWN
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 3
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: MIT License
+Classifier: Topic :: Software Development :: Libraries
+Classifier: Topic :: Utilities
diff --git a/tests/wpt/web-platform-tests/tools/third_party/six/README.rst b/tests/wpt/web-platform-tests/tools/third_party/six/README.rst
new file mode 100644
index 00000000000..c17d8d732af
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/six/README.rst
@@ -0,0 +1,25 @@
+.. image:: http://img.shields.io/pypi/v/six.svg
+ :target: https://pypi.python.org/pypi/six
+
+.. image:: https://travis-ci.org/benjaminp/six.svg?branch=master
+ :target: https://travis-ci.org/benjaminp/six
+
+.. image:: http://img.shields.io/badge/license-MIT-green.svg
+ :target: https://github.com/benjaminp/six/blob/master/LICENSE
+
+Six is a Python 2 and 3 compatibility library. It provides utility functions
+for smoothing over the differences between the Python versions with the goal of
+writing Python code that is compatible on both Python versions. See the
+documentation for more information on what is provided.
+
+Six supports every Python version since 2.6. It is contained in only one Python
+file, so it can be easily copied into your project. (The copyright and license
+notice must be retained.)
+
+Online documentation is at http://six.rtfd.org.
+
+Bugs can be reported to https://github.com/benjaminp/six. The code can also
+be found there.
+
+For questions about six or porting in general, email the python-porting mailing
+list: https://mail.python.org/mailman/listinfo/python-porting
diff --git a/tests/wpt/web-platform-tests/tools/six/documentation/Makefile b/tests/wpt/web-platform-tests/tools/third_party/six/documentation/Makefile
index eebafcd6d60..eebafcd6d60 100644
--- a/tests/wpt/web-platform-tests/tools/six/documentation/Makefile
+++ b/tests/wpt/web-platform-tests/tools/third_party/six/documentation/Makefile
diff --git a/tests/wpt/web-platform-tests/tools/six/documentation/conf.py b/tests/wpt/web-platform-tests/tools/third_party/six/documentation/conf.py
index 7e54287a69e..ad925c1c1d1 100644
--- a/tests/wpt/web-platform-tests/tools/six/documentation/conf.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/six/documentation/conf.py
@@ -33,7 +33,7 @@ master_doc = "index"
# General information about the project.
project = u"six"
-copyright = u"2010-2014, Benjamin Peterson"
+copyright = u"2010-2017, Benjamin Peterson"
sys.path.append(os.path.abspath(os.path.join(".", "..")))
from six import __version__ as six_version
diff --git a/tests/wpt/web-platform-tests/tools/six/documentation/index.rst b/tests/wpt/web-platform-tests/tools/third_party/six/documentation/index.rst
index 9827e6695b5..dd0dc6e3bde 100644
--- a/tests/wpt/web-platform-tests/tools/six/documentation/index.rst
+++ b/tests/wpt/web-platform-tests/tools/third_party/six/documentation/index.rst
@@ -13,12 +13,12 @@ Python 3. It is intended to support codebases that work on both Python 2 and 3
without modification. six consists of only one Python file, so it is painless
to copy into a project.
-Six can be downloaded on `PyPi <http://pypi.python.org/pypi/six/>`_. Its bug
-tracker and code hosting is on `BitBucket <http://bitbucket.org/gutworth/six>`_.
+Six can be downloaded on `PyPi <https://pypi.python.org/pypi/six/>`_. Its bug
+tracker and code hosting is on `GitHub <https://github.com/benjaminp/six>`_.
The name, "six", comes from the fact that 2*3 equals 6. Why not addition?
Multiplication is more powerful, and, anyway, "five" has already been snatched
-away by the Zope Five project.
+away by the (admittedly now moribund) Zope Five project.
Indices and tables
@@ -164,7 +164,9 @@ functions and methods is the stdlib :mod:`py3:inspect` module.
Get the next item of iterator *it*. :exc:`py3:StopIteration` is raised if
the iterator is exhausted. This is a replacement for calling ``it.next()``
- in Python 2 and ``next(it)`` in Python 3.
+ in Python 2 and ``next(it)`` in Python 3. Python 2.6 and above have a
+ builtin ``next`` function, so six's version is only necessary for Python 2.5
+ compatibility.
.. function:: callable(obj)
@@ -232,6 +234,13 @@ functions and methods is the stdlib :mod:`py3:inspect` module.
requires the *obj*'s class to be passed.
+.. function:: create_unbound_method(func, cls)
+
+ Return an unbound method object wrapping *func*. In Python 2, this will
+ return a :func:`py2:types.MethodType` object. In Python 3, unbound methods
+ do not exist and this wrapper will simply return *func*.
+
+
.. class:: Iterator
A class for making portable iterators. The intention is that it be subclassed
@@ -243,7 +252,7 @@ functions and methods is the stdlib :mod:`py3:inspect` module.
aliased to :class:`py3:object`.)
-.. function:: wraps(wrapped, assigned=functools.WRAPPER_ASSIGNMENTS, updated=functools.WRAPPER_UPDATES)
+.. decorator:: wraps(wrapped, assigned=functools.WRAPPER_ASSIGNMENTS, updated=functools.WRAPPER_UPDATES)
This is exactly the :func:`py3:functools.wraps` decorator, but it sets the
``__wrapped__`` attribute on what it decorates as :func:`py3:functools.wraps`
@@ -270,10 +279,11 @@ Python 2 and 3.
:func:`exec` with them should be avoided.
-.. function:: print_(*args, *, file=sys.stdout, end="\\n", sep=" ")
+.. function:: print_(*args, *, file=sys.stdout, end="\\n", sep=" ", flush=False)
Print *args* into *file*. Each argument will be separated with *sep* and
- *end* will be written to the file after the last argument is printed.
+ *end* will be written to the file after the last argument is printed. If
+ *flush* is true, ``file.flush()`` will be called after all data is written.
.. note::
@@ -320,7 +330,7 @@ Python 2 and 3.
decorator.
-.. function:: add_metaclass(metaclass)
+.. decorator:: add_metaclass(metaclass)
Class decorator that replaces a normally-constructed class with a
metaclass-constructed one. Example usage: ::
@@ -337,7 +347,7 @@ Python 2 and 3.
on Python 3 or ::
class MyClass(object):
- __metaclass__ = MyMeta
+ __metaclass__ = Meta
on Python 2.
@@ -353,7 +363,7 @@ Binary and text data
>>>>>>>>>>>>>>>>>>>>
Python 3 enforces the distinction between byte strings and text strings far more
-rigoriously than Python 2 does; binary data cannot be automatically coerced to
+rigorously than Python 2 does; binary data cannot be automatically coerced to
or from text data. six provides several functions to assist in classifying
string data in all Python versions.
@@ -368,7 +378,7 @@ string data in all Python versions.
.. note::
Since all Python versions 2.6 and after support the ``b`` prefix,
- :func:`b`, code without 2.5 support doesn't need :func:`b`.
+ code without 2.5 support doesn't need :func:`b`.
.. function:: u(text)
@@ -382,7 +392,7 @@ string data in all Python versions.
.. note::
In Python 3.3, the ``u`` prefix has been reintroduced. Code that only
- supports Python 3 versions greater than 3.3 thus does not need
+ supports Python 3 versions of 3.3 and higher thus does not need
:func:`u`.
.. note::
@@ -425,7 +435,7 @@ string data in all Python versions.
.. data:: StringIO
- This is an fake file object for textual data. It's an alias for
+ This is a fake file object for textual data. It's an alias for
:class:`py2:StringIO.StringIO` in Python 2 and :class:`py3:io.StringIO` in
Python 3.
@@ -437,6 +447,48 @@ string data in all Python versions.
:class:`py3:io.BytesIO`.
+.. decorator:: python_2_unicode_compatible
+
+ A class decorator that takes a class defining a ``__str__`` method. On
+ Python 3, the decorator does nothing. On Python 2, it aliases the
+ ``__str__`` method to ``__unicode__`` and creates a new ``__str__`` method
+ that returns the result of ``__unicode__()`` encoded with UTF-8.
+
+
+unittest assertions
+>>>>>>>>>>>>>>>>>>>
+
+Six contains compatibility shims for unittest assertions that have been renamed.
+The parameters are the same as their aliases, but you must pass the test method
+as the first argument. For example::
+
+ import six
+ import unittest
+
+ class TestAssertCountEqual(unittest.TestCase):
+ def test(self):
+ six.assertCountEqual(self, (1, 2), [2, 1])
+
+Note these functions are only available on Python 2.7 or later.
+
+.. function:: assertCountEqual()
+
+ Alias for :meth:`~py3:unittest.TestCase.assertCountEqual` on Python 3 and
+ :meth:`~py2:unittest.TestCase.assertItemsEqual` on Python 2.
+
+
+.. function:: assertRaisesRegex()
+
+ Alias for :meth:`~py3:unittest.TestCase.assertRaisesRegex` on Python 3 and
+ :meth:`~py2:unittest.TestCase.assertRaisesRegexp` on Python 2.
+
+
+.. function:: assertRegex()
+
+ Alias for :meth:`~py3:unittest.TestCase.assertRegex` on Python 3 and
+ :meth:`~py2:unittest.TestCase.assertRegexpMatches` on Python 2.
+
+
Renamed modules and attributes compatibility
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -480,14 +532,14 @@ functionality; its structure mimics the structure of the Python 3
from six.moves.cPickle import loads
- work, six places special proxy objects in in :data:`py3:sys.modules`. These
+ work, six places special proxy objects in :data:`py3:sys.modules`. These
proxies lazily load the underlying module when an attribute is fetched. This
will fail if the underlying module is not available in the Python
interpreter. For example, ``sys.modules["six.moves.winreg"].LoadKey`` would
fail on any non-Windows platform. Unfortunately, some applications try to
load attributes on every module in :data:`py3:sys.modules`. six mitigates
this problem for some applications by pretending attributes on unimportable
- modules don't exist. This hack doesn't work in every case, though. If you are
+ modules do not exist. This hack does not work in every case, though. If you are
encountering problems with the lazy modules and don't use any from imports
directly from ``six.moves`` modules, you can workaround the issue by removing
the six proxy modules::
@@ -498,133 +550,143 @@ functionality; its structure mimics the structure of the Python 3
Supported renames:
-+------------------------------+-------------------------------------+-------------------------------------+
-| Name | Python 2 name | Python 3 name |
-+==============================+=====================================+=====================================+
-| ``builtins`` | :mod:`py2:__builtin__` | :mod:`py3:builtins` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``configparser`` | :mod:`py2:ConfigParser` | :mod:`py3:configparser` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``copyreg`` | :mod:`py2:copy_reg` | :mod:`py3:copyreg` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``cPickle`` | :mod:`py2:cPickle` | :mod:`py3:pickle` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``cStringIO`` | :func:`py2:cStringIO.StringIO` | :class:`py3:io.StringIO` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``dbm_gnu`` | :func:`py2:gdbm` | :class:`py3:dbm.gnu` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``_dummy_thread`` | :mod:`py2:dummy_thread` | :mod:`py3:_dummy_thread` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``email_mime_multipart`` | :mod:`py2:email.MIMEMultipart` | :mod:`py3:email.mime.multipart` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``email_mime_nonmultipart`` | :mod:`py2:email.MIMENonMultipart` | :mod:`py3:email.mime.nonmultipart` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``email_mime_text`` | :mod:`py2:email.MIMEText` | :mod:`py3:email.mime.text` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``email_mime_base`` | :mod:`py2:email.MIMEBase` | :mod:`py3:email.mime.base` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``filter`` | :func:`py2:itertools.ifilter` | :func:`py3:filter` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``filterfalse`` | :func:`py2:itertools.ifilterfalse` | :func:`py3:itertools.filterfalse` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``http_cookiejar`` | :mod:`py2:cookielib` | :mod:`py3:http.cookiejar` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``http_cookies`` | :mod:`py2:Cookie` | :mod:`py3:http.cookies` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``html_entities`` | :mod:`py2:htmlentitydefs` | :mod:`py3:html.entities` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``html_parser`` | :mod:`py2:HTMLParser` | :mod:`py3:html.parser` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``http_client`` | :mod:`py2:httplib` | :mod:`py3:http.client` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``BaseHTTPServer`` | :mod:`py2:BaseHTTPServer` | :mod:`py3:http.server` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``CGIHTTPServer`` | :mod:`py2:CGIHTTPServer` | :mod:`py3:http.server` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``SimpleHTTPServer`` | :mod:`py2:SimpleHTTPServer` | :mod:`py3:http.server` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``input`` | :func:`py2:raw_input` | :func:`py3:input` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``intern`` | :func:`py2:intern` | :func:`py3:sys.intern` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``map`` | :func:`py2:itertools.imap` | :func:`py3:map` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``queue`` | :mod:`py2:Queue` | :mod:`py3:queue` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``range`` | :func:`py2:xrange` | :func:`py3:range` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``reduce`` | :func:`py2:reduce` | :func:`py3:functools.reduce` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``reload_module`` | :func:`py2:reload` | :func:`py3:imp.reload` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``reprlib`` | :mod:`py2:repr` | :mod:`py3:reprlib` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``shlex_quote`` | :mod:`py2:pipes.quote` | :mod:`py3:shlex.quote` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``socketserver`` | :mod:`py2:SocketServer` | :mod:`py3:socketserver` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``_thread`` | :mod:`py2:thread` | :mod:`py3:_thread` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``tkinter`` | :mod:`py2:Tkinter` | :mod:`py3:tkinter` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``tkinter_dialog`` | :mod:`py2:Dialog` | :mod:`py3:tkinter.dialog` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``tkinter_filedialog`` | :mod:`py2:FileDialog` | :mod:`py3:tkinter.FileDialog` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``tkinter_scrolledtext`` | :mod:`py2:ScrolledText` | :mod:`py3:tkinter.scrolledtext` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``tkinter_simpledialog`` | :mod:`py2:SimpleDialog` | :mod:`py3:tkinter.simpledialog` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``tkinter_ttk`` | :mod:`py2:ttk` | :mod:`py3:tkinter.ttk` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``tkinter_tix`` | :mod:`py2:Tix` | :mod:`py3:tkinter.tix` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``tkinter_constants`` | :mod:`py2:Tkconstants` | :mod:`py3:tkinter.constants` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``tkinter_dnd`` | :mod:`py2:Tkdnd` | :mod:`py3:tkinter.dnd` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``tkinter_colorchooser`` | :mod:`py2:tkColorChooser` | :mod:`py3:tkinter.colorchooser` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``tkinter_commondialog`` | :mod:`py2:tkCommonDialog` | :mod:`py3:tkinter.commondialog` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``tkinter_tkfiledialog`` | :mod:`py2:tkFileDialog` | :mod:`py3:tkinter.filedialog` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``tkinter_font`` | :mod:`py2:tkFont` | :mod:`py3:tkinter.font` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``tkinter_messagebox`` | :mod:`py2:tkMessageBox` | :mod:`py3:tkinter.messagebox` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``tkinter_tksimpledialog`` | :mod:`py2:tkSimpleDialog` | :mod:`py3:tkinter.simpledialog` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``urllib.parse`` | See :mod:`six.moves.urllib.parse` | :mod:`py3:urllib.parse` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``urllib.error`` | See :mod:`six.moves.urllib.error` | :mod:`py3:urllib.error` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``urllib.request`` | See :mod:`six.moves.urllib.request` | :mod:`py3:urllib.request` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``urllib.response`` | See :mod:`six.moves.urllib.response`| :mod:`py3:urllib.response` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``urllib.robotparser`` | :mod:`py2:robotparser` | :mod:`py3:urllib.robotparser` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``urllib_robotparser`` | :mod:`py2:robotparser` | :mod:`py3:urllib.robotparser` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``UserDict`` | :class:`py2:UserDict.UserDict` | :class:`py3:collections.UserDict` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``UserList`` | :class:`py2:UserList.UserList` | :class:`py3:collections.UserList` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``UserString`` | :class:`py2:UserString.UserString` | :class:`py3:collections.UserString` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``winreg`` | :mod:`py2:_winreg` | :mod:`py3:winreg` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``xmlrpc_client`` | :mod:`py2:xmlrpclib` | :mod:`py3:xmlrpc.client` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``xmlrpc_server`` | :mod:`py2:SimpleXMLRPCServer` | :mod:`py3:xmlrpc.server` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``xrange`` | :func:`py2:xrange` | :func:`py3:range` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``zip`` | :func:`py2:itertools.izip` | :func:`py3:zip` |
-+------------------------------+-------------------------------------+-------------------------------------+
-| ``zip_longest`` | :func:`py2:itertools.izip_longest` | :func:`py3:itertools.zip_longest` |
-+------------------------------+-------------------------------------+-------------------------------------+
++------------------------------+-------------------------------------+---------------------------------------+
+| Name | Python 2 name | Python 3 name |
++==============================+=====================================+=======================================+
+| ``builtins`` | :mod:`py2:__builtin__` | :mod:`py3:builtins` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``configparser`` | :mod:`py2:ConfigParser` | :mod:`py3:configparser` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``copyreg`` | :mod:`py2:copy_reg` | :mod:`py3:copyreg` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``cPickle`` | :mod:`py2:cPickle` | :mod:`py3:pickle` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``cStringIO`` | :func:`py2:cStringIO.StringIO` | :class:`py3:io.StringIO` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``dbm_gnu`` | :func:`py2:gdbm` | :class:`py3:dbm.gnu` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``_dummy_thread`` | :mod:`py2:dummy_thread` | :mod:`py3:_dummy_thread` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``email_mime_base`` | :mod:`py2:email.MIMEBase` | :mod:`py3:email.mime.base` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``email_mime_image`` | :mod:`py2:email.MIMEImage` | :mod:`py3:email.mime.image` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``email_mime_multipart`` | :mod:`py2:email.MIMEMultipart` | :mod:`py3:email.mime.multipart` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``email_mime_nonmultipart`` | :mod:`py2:email.MIMENonMultipart` | :mod:`py3:email.mime.nonmultipart` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``email_mime_text`` | :mod:`py2:email.MIMEText` | :mod:`py3:email.mime.text` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``filter`` | :func:`py2:itertools.ifilter` | :func:`py3:filter` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``filterfalse`` | :func:`py2:itertools.ifilterfalse` | :func:`py3:itertools.filterfalse` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``getcwd`` | :func:`py2:os.getcwdu` | :func:`py3:os.getcwd` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``getcwdb`` | :func:`py2:os.getcwd` | :func:`py3:os.getcwdb` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``getoutput`` | :func:`py2:commands.getoutput` | :func:`py3:subprocess.getoutput` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``http_cookiejar`` | :mod:`py2:cookielib` | :mod:`py3:http.cookiejar` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``http_cookies`` | :mod:`py2:Cookie` | :mod:`py3:http.cookies` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``html_entities`` | :mod:`py2:htmlentitydefs` | :mod:`py3:html.entities` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``html_parser`` | :mod:`py2:HTMLParser` | :mod:`py3:html.parser` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``http_client`` | :mod:`py2:httplib` | :mod:`py3:http.client` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``BaseHTTPServer`` | :mod:`py2:BaseHTTPServer` | :mod:`py3:http.server` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``CGIHTTPServer`` | :mod:`py2:CGIHTTPServer` | :mod:`py3:http.server` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``SimpleHTTPServer`` | :mod:`py2:SimpleHTTPServer` | :mod:`py3:http.server` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``input`` | :func:`py2:raw_input` | :func:`py3:input` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``intern`` | :func:`py2:intern` | :func:`py3:sys.intern` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``map`` | :func:`py2:itertools.imap` | :func:`py3:map` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``queue`` | :mod:`py2:Queue` | :mod:`py3:queue` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``range`` | :func:`py2:xrange` | :func:`py3:range` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``reduce`` | :func:`py2:reduce` | :func:`py3:functools.reduce` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``reload_module`` | :func:`py2:reload` | :func:`py3:imp.reload`, |
+| | | :func:`py3:importlib.reload` |
+| | | on Python 3.4+ |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``reprlib`` | :mod:`py2:repr` | :mod:`py3:reprlib` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``shlex_quote`` | :mod:`py2:pipes.quote` | :mod:`py3:shlex.quote` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``socketserver`` | :mod:`py2:SocketServer` | :mod:`py3:socketserver` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``_thread`` | :mod:`py2:thread` | :mod:`py3:_thread` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``tkinter`` | :mod:`py2:Tkinter` | :mod:`py3:tkinter` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``tkinter_dialog`` | :mod:`py2:Dialog` | :mod:`py3:tkinter.dialog` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``tkinter_filedialog`` | :mod:`py2:FileDialog` | :mod:`py3:tkinter.FileDialog` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``tkinter_scrolledtext`` | :mod:`py2:ScrolledText` | :mod:`py3:tkinter.scrolledtext` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``tkinter_simpledialog`` | :mod:`py2:SimpleDialog` | :mod:`py3:tkinter.simpledialog` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``tkinter_ttk`` | :mod:`py2:ttk` | :mod:`py3:tkinter.ttk` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``tkinter_tix`` | :mod:`py2:Tix` | :mod:`py3:tkinter.tix` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``tkinter_constants`` | :mod:`py2:Tkconstants` | :mod:`py3:tkinter.constants` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``tkinter_dnd`` | :mod:`py2:Tkdnd` | :mod:`py3:tkinter.dnd` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``tkinter_colorchooser`` | :mod:`py2:tkColorChooser` | :mod:`py3:tkinter.colorchooser` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``tkinter_commondialog`` | :mod:`py2:tkCommonDialog` | :mod:`py3:tkinter.commondialog` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``tkinter_tkfiledialog`` | :mod:`py2:tkFileDialog` | :mod:`py3:tkinter.filedialog` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``tkinter_font`` | :mod:`py2:tkFont` | :mod:`py3:tkinter.font` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``tkinter_messagebox`` | :mod:`py2:tkMessageBox` | :mod:`py3:tkinter.messagebox` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``tkinter_tksimpledialog`` | :mod:`py2:tkSimpleDialog` | :mod:`py3:tkinter.simpledialog` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``urllib.parse`` | See :mod:`six.moves.urllib.parse` | :mod:`py3:urllib.parse` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``urllib.error`` | See :mod:`six.moves.urllib.error` | :mod:`py3:urllib.error` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``urllib.request`` | See :mod:`six.moves.urllib.request` | :mod:`py3:urllib.request` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``urllib.response`` | See :mod:`six.moves.urllib.response`| :mod:`py3:urllib.response` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``urllib.robotparser`` | :mod:`py2:robotparser` | :mod:`py3:urllib.robotparser` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``urllib_robotparser`` | :mod:`py2:robotparser` | :mod:`py3:urllib.robotparser` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``UserDict`` | :class:`py2:UserDict.UserDict` | :class:`py3:collections.UserDict` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``UserList`` | :class:`py2:UserList.UserList` | :class:`py3:collections.UserList` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``UserString`` | :class:`py2:UserString.UserString` | :class:`py3:collections.UserString` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``winreg`` | :mod:`py2:_winreg` | :mod:`py3:winreg` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``xmlrpc_client`` | :mod:`py2:xmlrpclib` | :mod:`py3:xmlrpc.client` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``xmlrpc_server`` | :mod:`py2:SimpleXMLRPCServer` | :mod:`py3:xmlrpc.server` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``xrange`` | :func:`py2:xrange` | :func:`py3:range` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``zip`` | :func:`py2:itertools.izip` | :func:`py3:zip` |
++------------------------------+-------------------------------------+---------------------------------------+
+| ``zip_longest`` | :func:`py2:itertools.izip_longest` | :func:`py3:itertools.zip_longest` |
++------------------------------+-------------------------------------+---------------------------------------+
urllib parse
<<<<<<<<<<<<
@@ -659,7 +721,8 @@ and :mod:`py2:urllib`:
* :func:`py2:urllib.quote_plus`
* :func:`py2:urllib.splittag`
* :func:`py2:urllib.splituser`
-* :func:`py2:urllib.unquote`
+* :func:`py2:urllib.splitvalue`
+* :func:`py2:urllib.unquote` (also exposed as :func:`py3:urllib.parse.unquote_to_bytes`)
* :func:`py2:urllib.unquote_plus`
* :func:`py2:urllib.urlencode`
@@ -706,6 +769,8 @@ and :mod:`py2:urllib2`:
* :func:`py2:urllib2.urlopen`
* :func:`py2:urllib2.install_opener`
* :func:`py2:urllib2.build_opener`
+* :func:`py2:urllib2.parse_http_list`
+* :func:`py2:urllib2.parse_keqv_list`
* :class:`py2:urllib2.Request`
* :class:`py2:urllib2.OpenerDirector`
* :class:`py2:urllib2.HTTPDefaultErrorHandler`
diff --git a/tests/wpt/web-platform-tests/tools/third_party/six/setup.cfg b/tests/wpt/web-platform-tests/tools/third_party/six/setup.cfg
new file mode 100644
index 00000000000..e12068c573c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/six/setup.cfg
@@ -0,0 +1,21 @@
+[bdist_wheel]
+universal = 1
+
+[flake8]
+max-line-length = 100
+ignore = F821
+
+[tool:pytest]
+minversion = 2.2.0
+pep8ignore =
+ documentation/*.py ALL
+ test_six.py ALL
+flakes-ignore =
+ documentation/*.py ALL
+ test_six.py ALL
+ six.py UndefinedName
+
+[egg_info]
+tag_build =
+tag_date = 0
+
diff --git a/tests/wpt/web-platform-tests/tools/third_party/six/setup.py b/tests/wpt/web-platform-tests/tools/third_party/six/setup.py
new file mode 100644
index 00000000000..ca44e100e42
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/six/setup.py
@@ -0,0 +1,56 @@
+# Copyright (c) 2010-2017 Benjamin Peterson
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+from __future__ import with_statement
+
+# Six is a dependency of setuptools, so using setuptools creates a
+# circular dependency when building a Python stack from source. We
+# therefore allow falling back to distutils to install six.
+try:
+ from setuptools import setup
+except ImportError:
+ from distutils.core import setup
+
+import six
+
+six_classifiers = [
+ "Programming Language :: Python :: 2",
+ "Programming Language :: Python :: 3",
+ "Intended Audience :: Developers",
+ "License :: OSI Approved :: MIT License",
+ "Topic :: Software Development :: Libraries",
+ "Topic :: Utilities",
+]
+
+with open("README.rst", "r") as fp:
+ six_long_description = fp.read()
+
+setup(name="six",
+ version=six.__version__,
+ author="Benjamin Peterson",
+ author_email="benjamin@python.org",
+ url="http://pypi.python.org/pypi/six/",
+ tests_require=["pytest"],
+ py_modules=["six"],
+ description="Python 2 and 3 compatibility utilities",
+ long_description=six_long_description,
+ license="MIT",
+ classifiers=six_classifiers
+ )
diff --git a/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/PKG-INFO b/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/PKG-INFO
new file mode 100644
index 00000000000..cd5ff4bb8e4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/PKG-INFO
@@ -0,0 +1,41 @@
+Metadata-Version: 1.1
+Name: six
+Version: 1.11.0
+Summary: Python 2 and 3 compatibility utilities
+Home-page: http://pypi.python.org/pypi/six/
+Author: Benjamin Peterson
+Author-email: benjamin@python.org
+License: MIT
+Description: .. image:: http://img.shields.io/pypi/v/six.svg
+ :target: https://pypi.python.org/pypi/six
+
+ .. image:: https://travis-ci.org/benjaminp/six.svg?branch=master
+ :target: https://travis-ci.org/benjaminp/six
+
+ .. image:: http://img.shields.io/badge/license-MIT-green.svg
+ :target: https://github.com/benjaminp/six/blob/master/LICENSE
+
+ Six is a Python 2 and 3 compatibility library. It provides utility functions
+ for smoothing over the differences between the Python versions with the goal of
+ writing Python code that is compatible on both Python versions. See the
+ documentation for more information on what is provided.
+
+ Six supports every Python version since 2.6. It is contained in only one Python
+ file, so it can be easily copied into your project. (The copyright and license
+ notice must be retained.)
+
+ Online documentation is at http://six.rtfd.org.
+
+ Bugs can be reported to https://github.com/benjaminp/six. The code can also
+ be found there.
+
+ For questions about six or porting in general, email the python-porting mailing
+ list: https://mail.python.org/mailman/listinfo/python-porting
+
+Platform: UNKNOWN
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 3
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: MIT License
+Classifier: Topic :: Software Development :: Libraries
+Classifier: Topic :: Utilities
diff --git a/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/SOURCES.txt b/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/SOURCES.txt
new file mode 100644
index 00000000000..9a7f3dec6df
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/SOURCES.txt
@@ -0,0 +1,15 @@
+CHANGES
+LICENSE
+MANIFEST.in
+README.rst
+setup.cfg
+setup.py
+six.py
+test_six.py
+documentation/Makefile
+documentation/conf.py
+documentation/index.rst
+six.egg-info/PKG-INFO
+six.egg-info/SOURCES.txt
+six.egg-info/dependency_links.txt
+six.egg-info/top_level.txt \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/dependency_links.txt b/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/dependency_links.txt
new file mode 100644
index 00000000000..8b137891791
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/requirements.txt b/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/top_level.txt
index ffe2fce4989..ffe2fce4989 100644
--- a/tests/wpt/web-platform-tests/tools/html5lib/requirements.txt
+++ b/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/top_level.txt
diff --git a/tests/wpt/web-platform-tests/tools/six/six.py b/tests/wpt/web-platform-tests/tools/third_party/six/six.py
index 686c20a15a6..6bf4fd38104 100644
--- a/tests/wpt/web-platform-tests/tools/six/six.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/six/six.py
@@ -1,6 +1,4 @@
-"""Utilities for writing code that runs on Python 2 and 3"""
-
-# Copyright (c) 2010-2014 Benjamin Peterson
+# Copyright (c) 2010-2017 Benjamin Peterson
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
@@ -20,6 +18,8 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
+"""Utilities for writing code that runs on Python 2 and 3"""
+
from __future__ import absolute_import
import functools
@@ -29,12 +29,13 @@ import sys
import types
__author__ = "Benjamin Peterson <benjamin@python.org>"
-__version__ = "1.8.0"
+__version__ = "1.11.0"
# Useful for very coarse version differentiation.
PY2 = sys.version_info[0] == 2
PY3 = sys.version_info[0] == 3
+PY34 = sys.version_info[0:2] >= (3, 4)
if PY3:
string_types = str,
@@ -57,6 +58,7 @@ else:
else:
# It's possible to have sizeof(long) != sizeof(Py_ssize_t).
class X(object):
+
def __len__(self):
return 1 << 31
try:
@@ -88,7 +90,7 @@ class _LazyDescr(object):
def __get__(self, obj, tp):
result = self._resolve()
- setattr(obj, self.name, result) # Invokes __set__.
+ setattr(obj, self.name, result) # Invokes __set__.
try:
# This is a bit ugly, but it avoids running this again by
# removing this descriptor.
@@ -160,12 +162,14 @@ class MovedAttribute(_LazyDescr):
class _SixMetaPathImporter(object):
+
"""
A meta path importer to import six.moves and its submodules.
This class implements a PEP302 finder and loader. It should be compatible
with Python 2.5 and all existing versions of Python3
"""
+
def __init__(self, six_module_name):
self.name = six_module_name
self.known_modules = {}
@@ -223,6 +227,7 @@ _importer = _SixMetaPathImporter(__name__)
class _MovedItems(_LazyModule):
+
"""Lazy loading of moved objects"""
__path__ = [] # mark as package
@@ -234,8 +239,11 @@ _moved_attributes = [
MovedAttribute("input", "__builtin__", "builtins", "raw_input", "input"),
MovedAttribute("intern", "__builtin__", "sys"),
MovedAttribute("map", "itertools", "builtins", "imap", "map"),
+ MovedAttribute("getcwd", "os", "os", "getcwdu", "getcwd"),
+ MovedAttribute("getcwdb", "os", "os", "getcwd", "getcwdb"),
+ MovedAttribute("getoutput", "commands", "subprocess"),
MovedAttribute("range", "__builtin__", "builtins", "xrange", "range"),
- MovedAttribute("reload_module", "__builtin__", "imp", "reload"),
+ MovedAttribute("reload_module", "__builtin__", "importlib" if PY34 else "imp", "reload"),
MovedAttribute("reduce", "__builtin__", "functools"),
MovedAttribute("shlex_quote", "pipes", "shlex", "quote"),
MovedAttribute("StringIO", "StringIO", "io"),
@@ -245,7 +253,6 @@ _moved_attributes = [
MovedAttribute("xrange", "__builtin__", "builtins", "xrange", "range"),
MovedAttribute("zip", "itertools", "builtins", "izip", "zip"),
MovedAttribute("zip_longest", "itertools", "itertools", "izip_longest", "zip_longest"),
-
MovedModule("builtins", "__builtin__"),
MovedModule("configparser", "ConfigParser"),
MovedModule("copyreg", "copy_reg"),
@@ -256,10 +263,11 @@ _moved_attributes = [
MovedModule("html_entities", "htmlentitydefs", "html.entities"),
MovedModule("html_parser", "HTMLParser", "html.parser"),
MovedModule("http_client", "httplib", "http.client"),
+ MovedModule("email_mime_base", "email.MIMEBase", "email.mime.base"),
+ MovedModule("email_mime_image", "email.MIMEImage", "email.mime.image"),
MovedModule("email_mime_multipart", "email.MIMEMultipart", "email.mime.multipart"),
MovedModule("email_mime_nonmultipart", "email.MIMENonMultipart", "email.mime.nonmultipart"),
MovedModule("email_mime_text", "email.MIMEText", "email.mime.text"),
- MovedModule("email_mime_base", "email.MIMEBase", "email.mime.base"),
MovedModule("BaseHTTPServer", "BaseHTTPServer", "http.server"),
MovedModule("CGIHTTPServer", "CGIHTTPServer", "http.server"),
MovedModule("SimpleHTTPServer", "SimpleHTTPServer", "http.server"),
@@ -292,8 +300,13 @@ _moved_attributes = [
MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"),
MovedModule("xmlrpc_client", "xmlrpclib", "xmlrpc.client"),
MovedModule("xmlrpc_server", "SimpleXMLRPCServer", "xmlrpc.server"),
- MovedModule("winreg", "_winreg"),
]
+# Add windows specific modules.
+if sys.platform == "win32":
+ _moved_attributes += [
+ MovedModule("winreg", "_winreg"),
+ ]
+
for attr in _moved_attributes:
setattr(_MovedItems, attr.name, attr)
if isinstance(attr, MovedModule):
@@ -307,6 +320,7 @@ _importer._add_module(moves, "moves")
class Module_six_moves_urllib_parse(_LazyModule):
+
"""Lazy loading of moved objects in six.moves.urllib_parse"""
@@ -325,10 +339,12 @@ _urllib_parse_moved_attributes = [
MovedAttribute("quote_plus", "urllib", "urllib.parse"),
MovedAttribute("unquote", "urllib", "urllib.parse"),
MovedAttribute("unquote_plus", "urllib", "urllib.parse"),
+ MovedAttribute("unquote_to_bytes", "urllib", "urllib.parse", "unquote", "unquote_to_bytes"),
MovedAttribute("urlencode", "urllib", "urllib.parse"),
MovedAttribute("splitquery", "urllib", "urllib.parse"),
MovedAttribute("splittag", "urllib", "urllib.parse"),
MovedAttribute("splituser", "urllib", "urllib.parse"),
+ MovedAttribute("splitvalue", "urllib", "urllib.parse"),
MovedAttribute("uses_fragment", "urlparse", "urllib.parse"),
MovedAttribute("uses_netloc", "urlparse", "urllib.parse"),
MovedAttribute("uses_params", "urlparse", "urllib.parse"),
@@ -346,6 +362,7 @@ _importer._add_module(Module_six_moves_urllib_parse(__name__ + ".moves.urllib_pa
class Module_six_moves_urllib_error(_LazyModule):
+
"""Lazy loading of moved objects in six.moves.urllib_error"""
@@ -365,6 +382,7 @@ _importer._add_module(Module_six_moves_urllib_error(__name__ + ".moves.urllib.er
class Module_six_moves_urllib_request(_LazyModule):
+
"""Lazy loading of moved objects in six.moves.urllib_request"""
@@ -402,6 +420,8 @@ _urllib_request_moved_attributes = [
MovedAttribute("URLopener", "urllib", "urllib.request"),
MovedAttribute("FancyURLopener", "urllib", "urllib.request"),
MovedAttribute("proxy_bypass", "urllib", "urllib.request"),
+ MovedAttribute("parse_http_list", "urllib2", "urllib.request"),
+ MovedAttribute("parse_keqv_list", "urllib2", "urllib.request"),
]
for attr in _urllib_request_moved_attributes:
setattr(Module_six_moves_urllib_request, attr.name, attr)
@@ -414,6 +434,7 @@ _importer._add_module(Module_six_moves_urllib_request(__name__ + ".moves.urllib.
class Module_six_moves_urllib_response(_LazyModule):
+
"""Lazy loading of moved objects in six.moves.urllib_response"""
@@ -434,6 +455,7 @@ _importer._add_module(Module_six_moves_urllib_response(__name__ + ".moves.urllib
class Module_six_moves_urllib_robotparser(_LazyModule):
+
"""Lazy loading of moved objects in six.moves.urllib_robotparser"""
@@ -451,6 +473,7 @@ _importer._add_module(Module_six_moves_urllib_robotparser(__name__ + ".moves.url
class Module_six_moves_urllib(types.ModuleType):
+
"""Create a six.moves.urllib namespace that resembles the Python 3 namespace"""
__path__ = [] # mark as package
parse = _importer._get_module("moves.urllib_parse")
@@ -521,6 +544,9 @@ if PY3:
create_bound_method = types.MethodType
+ def create_unbound_method(func, cls):
+ return func
+
Iterator = object
else:
def get_unbound_function(unbound):
@@ -529,6 +555,9 @@ else:
def create_bound_method(func, obj):
return types.MethodType(func, obj, obj.__class__)
+ def create_unbound_method(func, cls):
+ return types.MethodType(func, None, cls)
+
class Iterator(object):
def next(self):
@@ -567,16 +596,16 @@ if PY3:
viewitems = operator.methodcaller("items")
else:
def iterkeys(d, **kw):
- return iter(d.iterkeys(**kw))
+ return d.iterkeys(**kw)
def itervalues(d, **kw):
- return iter(d.itervalues(**kw))
+ return d.itervalues(**kw)
def iteritems(d, **kw):
- return iter(d.iteritems(**kw))
+ return d.iteritems(**kw)
def iterlists(d, **kw):
- return iter(d.iterlists(**kw))
+ return d.iterlists(**kw)
viewkeys = operator.methodcaller("viewkeys")
@@ -595,50 +624,76 @@ _add_doc(iterlists,
if PY3:
def b(s):
return s.encode("latin-1")
+
def u(s):
return s
unichr = chr
- if sys.version_info[1] <= 1:
- def int2byte(i):
- return bytes((i,))
- else:
- # This is about 2x faster than the implementation above on 3.2+
- int2byte = operator.methodcaller("to_bytes", 1, "big")
+ import struct
+ int2byte = struct.Struct(">B").pack
+ del struct
byte2int = operator.itemgetter(0)
indexbytes = operator.getitem
iterbytes = iter
import io
StringIO = io.StringIO
BytesIO = io.BytesIO
+ _assertCountEqual = "assertCountEqual"
+ if sys.version_info[1] <= 1:
+ _assertRaisesRegex = "assertRaisesRegexp"
+ _assertRegex = "assertRegexpMatches"
+ else:
+ _assertRaisesRegex = "assertRaisesRegex"
+ _assertRegex = "assertRegex"
else:
def b(s):
return s
# Workaround for standalone backslash
+
def u(s):
return unicode(s.replace(r'\\', r'\\\\'), "unicode_escape")
unichr = unichr
int2byte = chr
+
def byte2int(bs):
return ord(bs[0])
+
def indexbytes(buf, i):
return ord(buf[i])
iterbytes = functools.partial(itertools.imap, ord)
import StringIO
StringIO = BytesIO = StringIO.StringIO
+ _assertCountEqual = "assertItemsEqual"
+ _assertRaisesRegex = "assertRaisesRegexp"
+ _assertRegex = "assertRegexpMatches"
_add_doc(b, """Byte literal""")
_add_doc(u, """Text literal""")
+def assertCountEqual(self, *args, **kwargs):
+ return getattr(self, _assertCountEqual)(*args, **kwargs)
+
+
+def assertRaisesRegex(self, *args, **kwargs):
+ return getattr(self, _assertRaisesRegex)(*args, **kwargs)
+
+
+def assertRegex(self, *args, **kwargs):
+ return getattr(self, _assertRegex)(*args, **kwargs)
+
+
if PY3:
exec_ = getattr(moves.builtins, "exec")
-
def reraise(tp, value, tb=None):
- if value is None:
- value = tp()
- if value.__traceback__ is not tb:
- raise value.with_traceback(tb)
- raise value
+ try:
+ if value is None:
+ value = tp()
+ if value.__traceback__ is not tb:
+ raise value.with_traceback(tb)
+ raise value
+ finally:
+ value = None
+ tb = None
else:
def exec_(_code_, _globs_=None, _locs_=None):
@@ -653,15 +708,29 @@ else:
_locs_ = _globs_
exec("""exec _code_ in _globs_, _locs_""")
-
exec_("""def reraise(tp, value, tb=None):
- raise tp, value, tb
+ try:
+ raise tp, value, tb
+ finally:
+ tb = None
""")
-if sys.version_info > (3, 2):
+if sys.version_info[:2] == (3, 2):
exec_("""def raise_from(value, from_value):
- raise value from from_value
+ try:
+ if from_value is None:
+ raise value
+ raise value from from_value
+ finally:
+ value = None
+""")
+elif sys.version_info[:2] > (3, 2):
+ exec_("""def raise_from(value, from_value):
+ try:
+ raise value from from_value
+ finally:
+ value = None
""")
else:
def raise_from(value, from_value):
@@ -675,13 +744,14 @@ if print_ is None:
fp = kwargs.pop("file", sys.stdout)
if fp is None:
return
+
def write(data):
if not isinstance(data, basestring):
data = str(data)
# If the file has an encoding, encode unicode with it.
if (isinstance(fp, file) and
- isinstance(data, unicode) and
- fp.encoding is not None):
+ isinstance(data, unicode) and
+ fp.encoding is not None):
errors = getattr(fp, "errors", None)
if errors is None:
errors = "strict"
@@ -722,6 +792,15 @@ if print_ is None:
write(sep)
write(arg)
write(end)
+if sys.version_info[:2] < (3, 3):
+ _print = print_
+
+ def print_(*args, **kwargs):
+ fp = kwargs.get("file", sys.stdout)
+ flush = kwargs.pop("flush", False)
+ _print(*args, **kwargs)
+ if flush and fp is not None:
+ fp.flush()
_add_doc(reraise, """Reraise an exception.""")
@@ -736,14 +815,20 @@ if sys.version_info[0:2] < (3, 4):
else:
wraps = functools.wraps
+
def with_metaclass(meta, *bases):
"""Create a base class with a metaclass."""
# This requires a bit of explanation: the basic idea is to make a dummy
# metaclass for one level of class instantiation that replaces itself with
# the actual metaclass.
- class metaclass(meta):
+ class metaclass(type):
+
def __new__(cls, name, this_bases, d):
return meta(name, bases, d)
+
+ @classmethod
+ def __prepare__(cls, name, this_bases):
+ return meta.__prepare__(name, bases)
return type.__new__(metaclass, 'temporary_class', (), {})
@@ -762,6 +847,25 @@ def add_metaclass(metaclass):
return metaclass(cls.__name__, cls.__bases__, orig_vars)
return wrapper
+
+def python_2_unicode_compatible(klass):
+ """
+ A decorator that defines __unicode__ and __str__ methods under Python 2.
+ Under Python 3 it does nothing.
+
+ To support Python 2 and 3 with a single code base, define a __str__ method
+ returning text and apply this decorator to the class.
+ """
+ if PY2:
+ if '__str__' not in klass.__dict__:
+ raise ValueError("@python_2_unicode_compatible cannot be applied "
+ "to %s because it doesn't define __str__()." %
+ klass.__name__)
+ klass.__unicode__ = klass.__str__
+ klass.__str__ = lambda self: self.__unicode__().encode('utf-8')
+ return klass
+
+
# Complete the moves implementation.
# This code is at the end of this module to speed up module loading.
# Turn this module into a package.
@@ -779,7 +883,7 @@ if sys.meta_path:
# the six meta path importer, since the other six instance will have
# inserted an importer with different class.
if (type(importer).__name__ == "_SixMetaPathImporter" and
- importer.name == __name__):
+ importer.name == __name__):
del sys.meta_path[i]
break
del i, importer
diff --git a/tests/wpt/web-platform-tests/tools/six/test_six.py b/tests/wpt/web-platform-tests/tools/third_party/six/test_six.py
index d5555e8ac3c..43e7426dea1 100644
--- a/tests/wpt/web-platform-tests/tools/six/test_six.py
+++ b/tests/wpt/web-platform-tests/tools/third_party/six/test_six.py
@@ -1,6 +1,27 @@
+# Copyright (c) 2010-2017 Benjamin Peterson
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
import operator
import sys
import types
+import unittest
import py
@@ -211,6 +232,12 @@ def test_map():
assert six.advance_iterator(map(lambda x: x + 1, range(2))) == 1
+def test_getoutput():
+ from six.moves import getoutput
+ output = getoutput('echo "foo"')
+ assert output == 'foo'
+
+
def test_zip():
from six.moves import zip
assert six.advance_iterator(zip(range(2), range(2))) == (0, 0)
@@ -389,7 +416,7 @@ def test_dictionary_iterators(monkeypatch):
monkeypatch.undo()
-@py.test.mark.skipif(sys.version_info[:2] < (2, 7),
+@py.test.mark.skipif("sys.version_info[:2] < (2, 7)",
reason="view methods on dictionaries only available on 2.7+")
def test_dictionary_views():
def stock_method_name(viewwhat):
@@ -455,6 +482,20 @@ def test_create_bound_method():
assert b() is x
+def test_create_unbound_method():
+ class X(object):
+ pass
+
+ def f(self):
+ return self
+ u = six.create_unbound_method(f, X)
+ py.test.raises(TypeError, u)
+ if six.PY2:
+ assert isinstance(u, types.MethodType)
+ x = X()
+ assert f(x) is x
+
+
if six.PY3:
def test_b():
@@ -496,7 +537,7 @@ def test_unichr():
def test_int2byte():
assert six.int2byte(3) == six.b("\x03")
- py.test.raises((OverflowError, ValueError), six.int2byte, 256)
+ py.test.raises(Exception, six.int2byte, 256)
def test_byte2int():
@@ -635,6 +676,17 @@ def test_print_():
out = six.StringIO()
six.print_(None, file=out)
assert out.getvalue() == "None\n"
+ class FlushableStringIO(six.StringIO):
+ def __init__(self):
+ six.StringIO.__init__(self)
+ self.flushed = False
+ def flush(self):
+ self.flushed = True
+ out = FlushableStringIO()
+ six.print_("Hello", file=out)
+ assert not out.flushed
+ six.print_("Hello", file=out, flush=True)
+ assert out.flushed
@py.test.mark.skipif("sys.version_info[:2] >= (2, 6)")
@@ -682,6 +734,42 @@ def test_with_metaclass():
assert issubclass(X, Base)
assert issubclass(X, Base2)
assert X.__mro__ == (X, Base, Base2, object)
+ class X(six.with_metaclass(Meta)):
+ pass
+ class MetaSub(Meta):
+ pass
+ class Y(six.with_metaclass(MetaSub, X)):
+ pass
+ assert type(Y) is MetaSub
+ assert Y.__mro__ == (Y, X, object)
+
+
+@py.test.mark.skipif("sys.version_info[:2] < (3, 0)")
+def test_with_metaclass_prepare():
+ """Test that with_metaclass causes Meta.__prepare__ to be called with the correct arguments."""
+
+ class MyDict(dict):
+ pass
+
+ class Meta(type):
+
+ @classmethod
+ def __prepare__(cls, name, bases):
+ namespace = MyDict(super().__prepare__(name, bases), cls=cls, bases=bases)
+ namespace['namespace'] = namespace
+ return namespace
+
+ class Base(object):
+ pass
+
+ bases = (Base,)
+
+ class X(six.with_metaclass(Meta, *bases)):
+ pass
+
+ assert getattr(X, 'cls', type) is Meta
+ assert getattr(X, 'bases', ()) == bases
+ assert isinstance(getattr(X, 'namespace', {}), MyDict)
def test_wraps():
@@ -785,3 +873,62 @@ def test_add_metaclass():
__slots__ = "__weakref__",
MySlotsWeakref = six.add_metaclass(Meta)(MySlotsWeakref)
assert type(MySlotsWeakref) is Meta
+
+
+@py.test.mark.skipif("sys.version_info[:2] < (2, 7) or sys.version_info[:2] in ((3, 0), (3, 1))")
+def test_assertCountEqual():
+ class TestAssertCountEqual(unittest.TestCase):
+ def test(self):
+ with self.assertRaises(AssertionError):
+ six.assertCountEqual(self, (1, 2), [3, 4, 5])
+
+ six.assertCountEqual(self, (1, 2), [2, 1])
+
+ TestAssertCountEqual('test').test()
+
+
+@py.test.mark.skipif("sys.version_info[:2] < (2, 7)")
+def test_assertRegex():
+ class TestAssertRegex(unittest.TestCase):
+ def test(self):
+ with self.assertRaises(AssertionError):
+ six.assertRegex(self, 'test', r'^a')
+
+ six.assertRegex(self, 'test', r'^t')
+
+ TestAssertRegex('test').test()
+
+
+@py.test.mark.skipif("sys.version_info[:2] < (2, 7)")
+def test_assertRaisesRegex():
+ class TestAssertRaisesRegex(unittest.TestCase):
+ def test(self):
+ with six.assertRaisesRegex(self, AssertionError, '^Foo'):
+ raise AssertionError('Foo')
+
+ with self.assertRaises(AssertionError):
+ with six.assertRaisesRegex(self, AssertionError, r'^Foo'):
+ raise AssertionError('Bar')
+
+ TestAssertRaisesRegex('test').test()
+
+
+def test_python_2_unicode_compatible():
+ @six.python_2_unicode_compatible
+ class MyTest(object):
+ def __str__(self):
+ return six.u('hello')
+
+ def __bytes__(self):
+ return six.b('hello')
+
+ my_test = MyTest()
+
+ if six.PY2:
+ assert str(my_test) == six.b("hello")
+ assert unicode(my_test) == six.u("hello")
+ elif six.PY3:
+ assert bytes(my_test) == six.b("hello")
+ assert str(my_test) == six.u("hello")
+
+ assert getattr(six.moves.builtins, 'bytes', str)(my_test) == six.b("hello")
diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/PKG-INFO b/tests/wpt/web-platform-tests/tools/third_party/webencodings/PKG-INFO
new file mode 100644
index 00000000000..2a827bbad92
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/PKG-INFO
@@ -0,0 +1,50 @@
+Metadata-Version: 1.1
+Name: webencodings
+Version: 0.5.1
+Summary: Character encoding aliases for legacy web content
+Home-page: https://github.com/SimonSapin/python-webencodings
+Author: Geoffrey Sneddon
+Author-email: me@gsnedders.com
+License: BSD
+Description: python-webencodings
+ ===================
+
+ This is a Python implementation of the `WHATWG Encoding standard
+ <http://encoding.spec.whatwg.org/>`_.
+
+ * Latest documentation: http://packages.python.org/webencodings/
+ * Source code and issue tracker:
+ https://github.com/gsnedders/python-webencodings
+ * PyPI releases: http://pypi.python.org/pypi/webencodings
+ * License: BSD
+ * Python 2.6+ and 3.3+
+
+ In order to be compatible with legacy web content
+ when interpreting something like ``Content-Type: text/html; charset=latin1``,
+ tools need to use a particular set of aliases for encoding labels
+ as well as some overriding rules.
+ For example, ``US-ASCII`` and ``iso-8859-1`` on the web are actually
+ aliases for ``windows-1252``, and an UTF-8 or UTF-16 BOM takes precedence
+ over any other encoding declaration.
+ The Encoding standard defines all such details so that implementations do
+ not have to reverse-engineer each other.
+
+ This module has encoding labels and BOM detection,
+ but the actual implementation for encoders and decoders is Python’s.
+
+Platform: UNKNOWN
+Classifier: Development Status :: 4 - Beta
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
+Classifier: Topic :: Internet :: WWW/HTTP
diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/README.rst b/tests/wpt/web-platform-tests/tools/third_party/webencodings/README.rst
new file mode 100644
index 00000000000..c7e0f0cc3ef
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/README.rst
@@ -0,0 +1,25 @@
+python-webencodings
+===================
+
+This is a Python implementation of the `WHATWG Encoding standard
+<http://encoding.spec.whatwg.org/>`_.
+
+* Latest documentation: http://packages.python.org/webencodings/
+* Source code and issue tracker:
+ https://github.com/gsnedders/python-webencodings
+* PyPI releases: http://pypi.python.org/pypi/webencodings
+* License: BSD
+* Python 2.6+ and 3.3+
+
+In order to be compatible with legacy web content
+when interpreting something like ``Content-Type: text/html; charset=latin1``,
+tools need to use a particular set of aliases for encoding labels
+as well as some overriding rules.
+For example, ``US-ASCII`` and ``iso-8859-1`` on the web are actually
+aliases for ``windows-1252``, and an UTF-8 or UTF-16 BOM takes precedence
+over any other encoding declaration.
+The Encoding standard defines all such details so that implementations do
+not have to reverse-engineer each other.
+
+This module has encoding labels and BOM detection,
+but the actual implementation for encoders and decoders is Python’s.
diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/setup.cfg b/tests/wpt/web-platform-tests/tools/third_party/webencodings/setup.cfg
new file mode 100644
index 00000000000..460b0b40575
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/setup.cfg
@@ -0,0 +1,14 @@
+[bdist_wheel]
+universal = 1
+
+[build_sphinx]
+source-dir = docs
+build-dir = docs/_build
+
+[upload_sphinx]
+upload-dir = docs/_build/html
+
+[egg_info]
+tag_build =
+tag_date = 0
+
diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/setup.py b/tests/wpt/web-platform-tests/tools/third_party/webencodings/setup.py
new file mode 100644
index 00000000000..cf341cfd475
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/setup.py
@@ -0,0 +1,47 @@
+from setuptools import setup, find_packages
+import io
+from os import path
+import re
+
+
+VERSION = re.search("VERSION = '([^']+)'", io.open(
+ path.join(path.dirname(__file__), 'webencodings', '__init__.py'),
+ encoding='utf-8'
+).read().strip()).group(1)
+
+LONG_DESCRIPTION = io.open(
+ path.join(path.dirname(__file__), 'README.rst'),
+ encoding='utf-8'
+).read()
+
+
+setup(
+ name='webencodings',
+ version=VERSION,
+ url='https://github.com/SimonSapin/python-webencodings',
+ license='BSD',
+ author='Simon Sapin',
+ author_email='simon.sapin@exyr.org',
+ maintainer='Geoffrey Sneddon',
+ maintainer_email='me@gsnedders.com',
+ description='Character encoding aliases for legacy web content',
+ long_description=LONG_DESCRIPTION,
+ classifiers=[
+ 'Development Status :: 4 - Beta',
+ 'Intended Audience :: Developers',
+ 'License :: OSI Approved :: BSD License',
+ 'Programming Language :: Python',
+ 'Programming Language :: Python :: 2',
+ 'Programming Language :: Python :: 2.6',
+ 'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: 3',
+ 'Programming Language :: Python :: 3.3',
+ 'Programming Language :: Python :: 3.4',
+ 'Programming Language :: Python :: 3.5',
+ 'Programming Language :: Python :: 3.6',
+ 'Programming Language :: Python :: Implementation :: CPython',
+ 'Programming Language :: Python :: Implementation :: PyPy',
+ 'Topic :: Internet :: WWW/HTTP',
+ ],
+ packages=find_packages(),
+)
diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/PKG-INFO b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/PKG-INFO
new file mode 100644
index 00000000000..2a827bbad92
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/PKG-INFO
@@ -0,0 +1,50 @@
+Metadata-Version: 1.1
+Name: webencodings
+Version: 0.5.1
+Summary: Character encoding aliases for legacy web content
+Home-page: https://github.com/SimonSapin/python-webencodings
+Author: Geoffrey Sneddon
+Author-email: me@gsnedders.com
+License: BSD
+Description: python-webencodings
+ ===================
+
+ This is a Python implementation of the `WHATWG Encoding standard
+ <http://encoding.spec.whatwg.org/>`_.
+
+ * Latest documentation: http://packages.python.org/webencodings/
+ * Source code and issue tracker:
+ https://github.com/gsnedders/python-webencodings
+ * PyPI releases: http://pypi.python.org/pypi/webencodings
+ * License: BSD
+ * Python 2.6+ and 3.3+
+
+ In order to be compatible with legacy web content
+ when interpreting something like ``Content-Type: text/html; charset=latin1``,
+ tools need to use a particular set of aliases for encoding labels
+ as well as some overriding rules.
+ For example, ``US-ASCII`` and ``iso-8859-1`` on the web are actually
+ aliases for ``windows-1252``, and an UTF-8 or UTF-16 BOM takes precedence
+ over any other encoding declaration.
+ The Encoding standard defines all such details so that implementations do
+ not have to reverse-engineer each other.
+
+ This module has encoding labels and BOM detection,
+ but the actual implementation for encoders and decoders is Python’s.
+
+Platform: UNKNOWN
+Classifier: Development Status :: 4 - Beta
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
+Classifier: Topic :: Internet :: WWW/HTTP
diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/SOURCES.txt b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/SOURCES.txt
new file mode 100644
index 00000000000..785d33ef4e9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/SOURCES.txt
@@ -0,0 +1,12 @@
+README.rst
+setup.cfg
+setup.py
+webencodings/__init__.py
+webencodings/labels.py
+webencodings/mklabels.py
+webencodings/tests.py
+webencodings/x_user_defined.py
+webencodings.egg-info/PKG-INFO
+webencodings.egg-info/SOURCES.txt
+webencodings.egg-info/dependency_links.txt
+webencodings.egg-info/top_level.txt \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/dependency_links.txt b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/dependency_links.txt
new file mode 100644
index 00000000000..8b137891791
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/top_level.txt b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/top_level.txt
new file mode 100644
index 00000000000..be8fcb779f8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/top_level.txt
@@ -0,0 +1 @@
+webencodings
diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/__init__.py b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/__init__.py
new file mode 100644
index 00000000000..d21d697c887
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/__init__.py
@@ -0,0 +1,342 @@
+# coding: utf-8
+"""
+
+ webencodings
+ ~~~~~~~~~~~~
+
+ This is a Python implementation of the `WHATWG Encoding standard
+ <http://encoding.spec.whatwg.org/>`. See README for details.
+
+ :copyright: Copyright 2012 by Simon Sapin
+ :license: BSD, see LICENSE for details.
+
+"""
+
+from __future__ import unicode_literals
+
+import codecs
+
+from .labels import LABELS
+
+
+VERSION = '0.5.1'
+
+
+# Some names in Encoding are not valid Python aliases. Remap these.
+PYTHON_NAMES = {
+ 'iso-8859-8-i': 'iso-8859-8',
+ 'x-mac-cyrillic': 'mac-cyrillic',
+ 'macintosh': 'mac-roman',
+ 'windows-874': 'cp874'}
+
+CACHE = {}
+
+
+def ascii_lower(string):
+ r"""Transform (only) ASCII letters to lower case: A-Z is mapped to a-z.
+
+ :param string: An Unicode string.
+ :returns: A new Unicode string.
+
+ This is used for `ASCII case-insensitive
+ <http://encoding.spec.whatwg.org/#ascii-case-insensitive>`_
+ matching of encoding labels.
+ The same matching is also used, among other things,
+ for `CSS keywords <http://dev.w3.org/csswg/css-values/#keywords>`_.
+
+ This is different from the :meth:`~py:str.lower` method of Unicode strings
+ which also affect non-ASCII characters,
+ sometimes mapping them into the ASCII range:
+
+ >>> keyword = u'Bac\N{KELVIN SIGN}ground'
+ >>> assert keyword.lower() == u'background'
+ >>> assert ascii_lower(keyword) != keyword.lower()
+ >>> assert ascii_lower(keyword) == u'bac\N{KELVIN SIGN}ground'
+
+ """
+ # This turns out to be faster than unicode.translate()
+ return string.encode('utf8').lower().decode('utf8')
+
+
+def lookup(label):
+ """
+ Look for an encoding by its label.
+ This is the spec’s `get an encoding
+ <http://encoding.spec.whatwg.org/#concept-encoding-get>`_ algorithm.
+ Supported labels are listed there.
+
+ :param label: A string.
+ :returns:
+ An :class:`Encoding` object, or :obj:`None` for an unknown label.
+
+ """
+ # Only strip ASCII whitespace: U+0009, U+000A, U+000C, U+000D, and U+0020.
+ label = ascii_lower(label.strip('\t\n\f\r '))
+ name = LABELS.get(label)
+ if name is None:
+ return None
+ encoding = CACHE.get(name)
+ if encoding is None:
+ if name == 'x-user-defined':
+ from .x_user_defined import codec_info
+ else:
+ python_name = PYTHON_NAMES.get(name, name)
+ # Any python_name value that gets to here should be valid.
+ codec_info = codecs.lookup(python_name)
+ encoding = Encoding(name, codec_info)
+ CACHE[name] = encoding
+ return encoding
+
+
+def _get_encoding(encoding_or_label):
+ """
+ Accept either an encoding object or label.
+
+ :param encoding: An :class:`Encoding` object or a label string.
+ :returns: An :class:`Encoding` object.
+ :raises: :exc:`~exceptions.LookupError` for an unknown label.
+
+ """
+ if hasattr(encoding_or_label, 'codec_info'):
+ return encoding_or_label
+
+ encoding = lookup(encoding_or_label)
+ if encoding is None:
+ raise LookupError('Unknown encoding label: %r' % encoding_or_label)
+ return encoding
+
+
+class Encoding(object):
+ """Reresents a character encoding such as UTF-8,
+ that can be used for decoding or encoding.
+
+ .. attribute:: name
+
+ Canonical name of the encoding
+
+ .. attribute:: codec_info
+
+ The actual implementation of the encoding,
+ a stdlib :class:`~codecs.CodecInfo` object.
+ See :func:`codecs.register`.
+
+ """
+ def __init__(self, name, codec_info):
+ self.name = name
+ self.codec_info = codec_info
+
+ def __repr__(self):
+ return '<Encoding %s>' % self.name
+
+
+#: The UTF-8 encoding. Should be used for new content and formats.
+UTF8 = lookup('utf-8')
+
+_UTF16LE = lookup('utf-16le')
+_UTF16BE = lookup('utf-16be')
+
+
+def decode(input, fallback_encoding, errors='replace'):
+ """
+ Decode a single string.
+
+ :param input: A byte string
+ :param fallback_encoding:
+ An :class:`Encoding` object or a label string.
+ The encoding to use if :obj:`input` does note have a BOM.
+ :param errors: Type of error handling. See :func:`codecs.register`.
+ :raises: :exc:`~exceptions.LookupError` for an unknown encoding label.
+ :return:
+ A ``(output, encoding)`` tuple of an Unicode string
+ and an :obj:`Encoding`.
+
+ """
+ # Fail early if `encoding` is an invalid label.
+ fallback_encoding = _get_encoding(fallback_encoding)
+ bom_encoding, input = _detect_bom(input)
+ encoding = bom_encoding or fallback_encoding
+ return encoding.codec_info.decode(input, errors)[0], encoding
+
+
+def _detect_bom(input):
+ """Return (bom_encoding, input), with any BOM removed from the input."""
+ if input.startswith(b'\xFF\xFE'):
+ return _UTF16LE, input[2:]
+ if input.startswith(b'\xFE\xFF'):
+ return _UTF16BE, input[2:]
+ if input.startswith(b'\xEF\xBB\xBF'):
+ return UTF8, input[3:]
+ return None, input
+
+
+def encode(input, encoding=UTF8, errors='strict'):
+ """
+ Encode a single string.
+
+ :param input: An Unicode string.
+ :param encoding: An :class:`Encoding` object or a label string.
+ :param errors: Type of error handling. See :func:`codecs.register`.
+ :raises: :exc:`~exceptions.LookupError` for an unknown encoding label.
+ :return: A byte string.
+
+ """
+ return _get_encoding(encoding).codec_info.encode(input, errors)[0]
+
+
+def iter_decode(input, fallback_encoding, errors='replace'):
+ """
+ "Pull"-based decoder.
+
+ :param input:
+ An iterable of byte strings.
+
+ The input is first consumed just enough to determine the encoding
+ based on the precense of a BOM,
+ then consumed on demand when the return value is.
+ :param fallback_encoding:
+ An :class:`Encoding` object or a label string.
+ The encoding to use if :obj:`input` does note have a BOM.
+ :param errors: Type of error handling. See :func:`codecs.register`.
+ :raises: :exc:`~exceptions.LookupError` for an unknown encoding label.
+ :returns:
+ An ``(output, encoding)`` tuple.
+ :obj:`output` is an iterable of Unicode strings,
+ :obj:`encoding` is the :obj:`Encoding` that is being used.
+
+ """
+
+ decoder = IncrementalDecoder(fallback_encoding, errors)
+ generator = _iter_decode_generator(input, decoder)
+ encoding = next(generator)
+ return generator, encoding
+
+
+def _iter_decode_generator(input, decoder):
+ """Return a generator that first yields the :obj:`Encoding`,
+ then yields output chukns as Unicode strings.
+
+ """
+ decode = decoder.decode
+ input = iter(input)
+ for chunck in input:
+ output = decode(chunck)
+ if output:
+ assert decoder.encoding is not None
+ yield decoder.encoding
+ yield output
+ break
+ else:
+ # Input exhausted without determining the encoding
+ output = decode(b'', final=True)
+ assert decoder.encoding is not None
+ yield decoder.encoding
+ if output:
+ yield output
+ return
+
+ for chunck in input:
+ output = decode(chunck)
+ if output:
+ yield output
+ output = decode(b'', final=True)
+ if output:
+ yield output
+
+
+def iter_encode(input, encoding=UTF8, errors='strict'):
+ """
+ “Pull”-based encoder.
+
+ :param input: An iterable of Unicode strings.
+ :param encoding: An :class:`Encoding` object or a label string.
+ :param errors: Type of error handling. See :func:`codecs.register`.
+ :raises: :exc:`~exceptions.LookupError` for an unknown encoding label.
+ :returns: An iterable of byte strings.
+
+ """
+ # Fail early if `encoding` is an invalid label.
+ encode = IncrementalEncoder(encoding, errors).encode
+ return _iter_encode_generator(input, encode)
+
+
+def _iter_encode_generator(input, encode):
+ for chunck in input:
+ output = encode(chunck)
+ if output:
+ yield output
+ output = encode('', final=True)
+ if output:
+ yield output
+
+
+class IncrementalDecoder(object):
+ """
+ “Push”-based decoder.
+
+ :param fallback_encoding:
+ An :class:`Encoding` object or a label string.
+ The encoding to use if :obj:`input` does note have a BOM.
+ :param errors: Type of error handling. See :func:`codecs.register`.
+ :raises: :exc:`~exceptions.LookupError` for an unknown encoding label.
+
+ """
+ def __init__(self, fallback_encoding, errors='replace'):
+ # Fail early if `encoding` is an invalid label.
+ self._fallback_encoding = _get_encoding(fallback_encoding)
+ self._errors = errors
+ self._buffer = b''
+ self._decoder = None
+ #: The actual :class:`Encoding` that is being used,
+ #: or :obj:`None` if that is not determined yet.
+ #: (Ie. if there is not enough input yet to determine
+ #: if there is a BOM.)
+ self.encoding = None # Not known yet.
+
+ def decode(self, input, final=False):
+ """Decode one chunk of the input.
+
+ :param input: A byte string.
+ :param final:
+ Indicate that no more input is available.
+ Must be :obj:`True` if this is the last call.
+ :returns: An Unicode string.
+
+ """
+ decoder = self._decoder
+ if decoder is not None:
+ return decoder(input, final)
+
+ input = self._buffer + input
+ encoding, input = _detect_bom(input)
+ if encoding is None:
+ if len(input) < 3 and not final: # Not enough data yet.
+ self._buffer = input
+ return ''
+ else: # No BOM
+ encoding = self._fallback_encoding
+ decoder = encoding.codec_info.incrementaldecoder(self._errors).decode
+ self._decoder = decoder
+ self.encoding = encoding
+ return decoder(input, final)
+
+
+class IncrementalEncoder(object):
+ """
+ “Push”-based encoder.
+
+ :param encoding: An :class:`Encoding` object or a label string.
+ :param errors: Type of error handling. See :func:`codecs.register`.
+ :raises: :exc:`~exceptions.LookupError` for an unknown encoding label.
+
+ .. method:: encode(input, final=False)
+
+ :param input: An Unicode string.
+ :param final:
+ Indicate that no more input is available.
+ Must be :obj:`True` if this is the last call.
+ :returns: A byte string.
+
+ """
+ def __init__(self, encoding=UTF8, errors='strict'):
+ encoding = _get_encoding(encoding)
+ self.encode = encoding.codec_info.incrementalencoder(errors).encode
diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/labels.py b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/labels.py
new file mode 100644
index 00000000000..29cbf91ef79
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/labels.py
@@ -0,0 +1,231 @@
+"""
+
+ webencodings.labels
+ ~~~~~~~~~~~~~~~~~~~
+
+ Map encoding labels to their name.
+
+ :copyright: Copyright 2012 by Simon Sapin
+ :license: BSD, see LICENSE for details.
+
+"""
+
+# XXX Do not edit!
+# This file is automatically generated by mklabels.py
+
+LABELS = {
+ 'unicode-1-1-utf-8': 'utf-8',
+ 'utf-8': 'utf-8',
+ 'utf8': 'utf-8',
+ '866': 'ibm866',
+ 'cp866': 'ibm866',
+ 'csibm866': 'ibm866',
+ 'ibm866': 'ibm866',
+ 'csisolatin2': 'iso-8859-2',
+ 'iso-8859-2': 'iso-8859-2',
+ 'iso-ir-101': 'iso-8859-2',
+ 'iso8859-2': 'iso-8859-2',
+ 'iso88592': 'iso-8859-2',
+ 'iso_8859-2': 'iso-8859-2',
+ 'iso_8859-2:1987': 'iso-8859-2',
+ 'l2': 'iso-8859-2',
+ 'latin2': 'iso-8859-2',
+ 'csisolatin3': 'iso-8859-3',
+ 'iso-8859-3': 'iso-8859-3',
+ 'iso-ir-109': 'iso-8859-3',
+ 'iso8859-3': 'iso-8859-3',
+ 'iso88593': 'iso-8859-3',
+ 'iso_8859-3': 'iso-8859-3',
+ 'iso_8859-3:1988': 'iso-8859-3',
+ 'l3': 'iso-8859-3',
+ 'latin3': 'iso-8859-3',
+ 'csisolatin4': 'iso-8859-4',
+ 'iso-8859-4': 'iso-8859-4',
+ 'iso-ir-110': 'iso-8859-4',
+ 'iso8859-4': 'iso-8859-4',
+ 'iso88594': 'iso-8859-4',
+ 'iso_8859-4': 'iso-8859-4',
+ 'iso_8859-4:1988': 'iso-8859-4',
+ 'l4': 'iso-8859-4',
+ 'latin4': 'iso-8859-4',
+ 'csisolatincyrillic': 'iso-8859-5',
+ 'cyrillic': 'iso-8859-5',
+ 'iso-8859-5': 'iso-8859-5',
+ 'iso-ir-144': 'iso-8859-5',
+ 'iso8859-5': 'iso-8859-5',
+ 'iso88595': 'iso-8859-5',
+ 'iso_8859-5': 'iso-8859-5',
+ 'iso_8859-5:1988': 'iso-8859-5',
+ 'arabic': 'iso-8859-6',
+ 'asmo-708': 'iso-8859-6',
+ 'csiso88596e': 'iso-8859-6',
+ 'csiso88596i': 'iso-8859-6',
+ 'csisolatinarabic': 'iso-8859-6',
+ 'ecma-114': 'iso-8859-6',
+ 'iso-8859-6': 'iso-8859-6',
+ 'iso-8859-6-e': 'iso-8859-6',
+ 'iso-8859-6-i': 'iso-8859-6',
+ 'iso-ir-127': 'iso-8859-6',
+ 'iso8859-6': 'iso-8859-6',
+ 'iso88596': 'iso-8859-6',
+ 'iso_8859-6': 'iso-8859-6',
+ 'iso_8859-6:1987': 'iso-8859-6',
+ 'csisolatingreek': 'iso-8859-7',
+ 'ecma-118': 'iso-8859-7',
+ 'elot_928': 'iso-8859-7',
+ 'greek': 'iso-8859-7',
+ 'greek8': 'iso-8859-7',
+ 'iso-8859-7': 'iso-8859-7',
+ 'iso-ir-126': 'iso-8859-7',
+ 'iso8859-7': 'iso-8859-7',
+ 'iso88597': 'iso-8859-7',
+ 'iso_8859-7': 'iso-8859-7',
+ 'iso_8859-7:1987': 'iso-8859-7',
+ 'sun_eu_greek': 'iso-8859-7',
+ 'csiso88598e': 'iso-8859-8',
+ 'csisolatinhebrew': 'iso-8859-8',
+ 'hebrew': 'iso-8859-8',
+ 'iso-8859-8': 'iso-8859-8',
+ 'iso-8859-8-e': 'iso-8859-8',
+ 'iso-ir-138': 'iso-8859-8',
+ 'iso8859-8': 'iso-8859-8',
+ 'iso88598': 'iso-8859-8',
+ 'iso_8859-8': 'iso-8859-8',
+ 'iso_8859-8:1988': 'iso-8859-8',
+ 'visual': 'iso-8859-8',
+ 'csiso88598i': 'iso-8859-8-i',
+ 'iso-8859-8-i': 'iso-8859-8-i',
+ 'logical': 'iso-8859-8-i',
+ 'csisolatin6': 'iso-8859-10',
+ 'iso-8859-10': 'iso-8859-10',
+ 'iso-ir-157': 'iso-8859-10',
+ 'iso8859-10': 'iso-8859-10',
+ 'iso885910': 'iso-8859-10',
+ 'l6': 'iso-8859-10',
+ 'latin6': 'iso-8859-10',
+ 'iso-8859-13': 'iso-8859-13',
+ 'iso8859-13': 'iso-8859-13',
+ 'iso885913': 'iso-8859-13',
+ 'iso-8859-14': 'iso-8859-14',
+ 'iso8859-14': 'iso-8859-14',
+ 'iso885914': 'iso-8859-14',
+ 'csisolatin9': 'iso-8859-15',
+ 'iso-8859-15': 'iso-8859-15',
+ 'iso8859-15': 'iso-8859-15',
+ 'iso885915': 'iso-8859-15',
+ 'iso_8859-15': 'iso-8859-15',
+ 'l9': 'iso-8859-15',
+ 'iso-8859-16': 'iso-8859-16',
+ 'cskoi8r': 'koi8-r',
+ 'koi': 'koi8-r',
+ 'koi8': 'koi8-r',
+ 'koi8-r': 'koi8-r',
+ 'koi8_r': 'koi8-r',
+ 'koi8-u': 'koi8-u',
+ 'csmacintosh': 'macintosh',
+ 'mac': 'macintosh',
+ 'macintosh': 'macintosh',
+ 'x-mac-roman': 'macintosh',
+ 'dos-874': 'windows-874',
+ 'iso-8859-11': 'windows-874',
+ 'iso8859-11': 'windows-874',
+ 'iso885911': 'windows-874',
+ 'tis-620': 'windows-874',
+ 'windows-874': 'windows-874',
+ 'cp1250': 'windows-1250',
+ 'windows-1250': 'windows-1250',
+ 'x-cp1250': 'windows-1250',
+ 'cp1251': 'windows-1251',
+ 'windows-1251': 'windows-1251',
+ 'x-cp1251': 'windows-1251',
+ 'ansi_x3.4-1968': 'windows-1252',
+ 'ascii': 'windows-1252',
+ 'cp1252': 'windows-1252',
+ 'cp819': 'windows-1252',
+ 'csisolatin1': 'windows-1252',
+ 'ibm819': 'windows-1252',
+ 'iso-8859-1': 'windows-1252',
+ 'iso-ir-100': 'windows-1252',
+ 'iso8859-1': 'windows-1252',
+ 'iso88591': 'windows-1252',
+ 'iso_8859-1': 'windows-1252',
+ 'iso_8859-1:1987': 'windows-1252',
+ 'l1': 'windows-1252',
+ 'latin1': 'windows-1252',
+ 'us-ascii': 'windows-1252',
+ 'windows-1252': 'windows-1252',
+ 'x-cp1252': 'windows-1252',
+ 'cp1253': 'windows-1253',
+ 'windows-1253': 'windows-1253',
+ 'x-cp1253': 'windows-1253',
+ 'cp1254': 'windows-1254',
+ 'csisolatin5': 'windows-1254',
+ 'iso-8859-9': 'windows-1254',
+ 'iso-ir-148': 'windows-1254',
+ 'iso8859-9': 'windows-1254',
+ 'iso88599': 'windows-1254',
+ 'iso_8859-9': 'windows-1254',
+ 'iso_8859-9:1989': 'windows-1254',
+ 'l5': 'windows-1254',
+ 'latin5': 'windows-1254',
+ 'windows-1254': 'windows-1254',
+ 'x-cp1254': 'windows-1254',
+ 'cp1255': 'windows-1255',
+ 'windows-1255': 'windows-1255',
+ 'x-cp1255': 'windows-1255',
+ 'cp1256': 'windows-1256',
+ 'windows-1256': 'windows-1256',
+ 'x-cp1256': 'windows-1256',
+ 'cp1257': 'windows-1257',
+ 'windows-1257': 'windows-1257',
+ 'x-cp1257': 'windows-1257',
+ 'cp1258': 'windows-1258',
+ 'windows-1258': 'windows-1258',
+ 'x-cp1258': 'windows-1258',
+ 'x-mac-cyrillic': 'x-mac-cyrillic',
+ 'x-mac-ukrainian': 'x-mac-cyrillic',
+ 'chinese': 'gbk',
+ 'csgb2312': 'gbk',
+ 'csiso58gb231280': 'gbk',
+ 'gb2312': 'gbk',
+ 'gb_2312': 'gbk',
+ 'gb_2312-80': 'gbk',
+ 'gbk': 'gbk',
+ 'iso-ir-58': 'gbk',
+ 'x-gbk': 'gbk',
+ 'gb18030': 'gb18030',
+ 'hz-gb-2312': 'hz-gb-2312',
+ 'big5': 'big5',
+ 'big5-hkscs': 'big5',
+ 'cn-big5': 'big5',
+ 'csbig5': 'big5',
+ 'x-x-big5': 'big5',
+ 'cseucpkdfmtjapanese': 'euc-jp',
+ 'euc-jp': 'euc-jp',
+ 'x-euc-jp': 'euc-jp',
+ 'csiso2022jp': 'iso-2022-jp',
+ 'iso-2022-jp': 'iso-2022-jp',
+ 'csshiftjis': 'shift_jis',
+ 'ms_kanji': 'shift_jis',
+ 'shift-jis': 'shift_jis',
+ 'shift_jis': 'shift_jis',
+ 'sjis': 'shift_jis',
+ 'windows-31j': 'shift_jis',
+ 'x-sjis': 'shift_jis',
+ 'cseuckr': 'euc-kr',
+ 'csksc56011987': 'euc-kr',
+ 'euc-kr': 'euc-kr',
+ 'iso-ir-149': 'euc-kr',
+ 'korean': 'euc-kr',
+ 'ks_c_5601-1987': 'euc-kr',
+ 'ks_c_5601-1989': 'euc-kr',
+ 'ksc5601': 'euc-kr',
+ 'ksc_5601': 'euc-kr',
+ 'windows-949': 'euc-kr',
+ 'csiso2022kr': 'iso-2022-kr',
+ 'iso-2022-kr': 'iso-2022-kr',
+ 'utf-16be': 'utf-16be',
+ 'utf-16': 'utf-16le',
+ 'utf-16le': 'utf-16le',
+ 'x-user-defined': 'x-user-defined',
+}
diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/mklabels.py b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/mklabels.py
new file mode 100644
index 00000000000..295dc928ba7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/mklabels.py
@@ -0,0 +1,59 @@
+"""
+
+ webencodings.mklabels
+ ~~~~~~~~~~~~~~~~~~~~~
+
+ Regenarate the webencodings.labels module.
+
+ :copyright: Copyright 2012 by Simon Sapin
+ :license: BSD, see LICENSE for details.
+
+"""
+
+import json
+try:
+ from urllib import urlopen
+except ImportError:
+ from urllib.request import urlopen
+
+
+def assert_lower(string):
+ assert string == string.lower()
+ return string
+
+
+def generate(url):
+ parts = ['''\
+"""
+
+ webencodings.labels
+ ~~~~~~~~~~~~~~~~~~~
+
+ Map encoding labels to their name.
+
+ :copyright: Copyright 2012 by Simon Sapin
+ :license: BSD, see LICENSE for details.
+
+"""
+
+# XXX Do not edit!
+# This file is automatically generated by mklabels.py
+
+LABELS = {
+''']
+ labels = [
+ (repr(assert_lower(label)).lstrip('u'),
+ repr(encoding['name']).lstrip('u'))
+ for category in json.loads(urlopen(url).read().decode('ascii'))
+ for encoding in category['encodings']
+ for label in encoding['labels']]
+ max_len = max(len(label) for label, name in labels)
+ parts.extend(
+ ' %s:%s %s,\n' % (label, ' ' * (max_len - len(label)), name)
+ for label, name in labels)
+ parts.append('}')
+ return ''.join(parts)
+
+
+if __name__ == '__main__':
+ print(generate('http://encoding.spec.whatwg.org/encodings.json'))
diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/tests.py b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/tests.py
new file mode 100644
index 00000000000..e12c10d0330
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/tests.py
@@ -0,0 +1,153 @@
+# coding: utf-8
+"""
+
+ webencodings.tests
+ ~~~~~~~~~~~~~~~~~~
+
+ A basic test suite for Encoding.
+
+ :copyright: Copyright 2012 by Simon Sapin
+ :license: BSD, see LICENSE for details.
+
+"""
+
+from __future__ import unicode_literals
+
+from . import (lookup, LABELS, decode, encode, iter_decode, iter_encode,
+ IncrementalDecoder, IncrementalEncoder, UTF8)
+
+
+def assert_raises(exception, function, *args, **kwargs):
+ try:
+ function(*args, **kwargs)
+ except exception:
+ return
+ else: # pragma: no cover
+ raise AssertionError('Did not raise %s.' % exception)
+
+
+def test_labels():
+ assert lookup('utf-8').name == 'utf-8'
+ assert lookup('Utf-8').name == 'utf-8'
+ assert lookup('UTF-8').name == 'utf-8'
+ assert lookup('utf8').name == 'utf-8'
+ assert lookup('utf8').name == 'utf-8'
+ assert lookup('utf8 ').name == 'utf-8'
+ assert lookup(' \r\nutf8\t').name == 'utf-8'
+ assert lookup('u8') is None # Python label.
+ assert lookup('utf-8 ') is None # Non-ASCII white space.
+
+ assert lookup('US-ASCII').name == 'windows-1252'
+ assert lookup('iso-8859-1').name == 'windows-1252'
+ assert lookup('latin1').name == 'windows-1252'
+ assert lookup('LATIN1').name == 'windows-1252'
+ assert lookup('latin-1') is None
+ assert lookup('LATİN1') is None # ASCII-only case insensitivity.
+
+
+def test_all_labels():
+ for label in LABELS:
+ assert decode(b'', label) == ('', lookup(label))
+ assert encode('', label) == b''
+ for repeat in [0, 1, 12]:
+ output, _ = iter_decode([b''] * repeat, label)
+ assert list(output) == []
+ assert list(iter_encode([''] * repeat, label)) == []
+ decoder = IncrementalDecoder(label)
+ assert decoder.decode(b'') == ''
+ assert decoder.decode(b'', final=True) == ''
+ encoder = IncrementalEncoder(label)
+ assert encoder.encode('') == b''
+ assert encoder.encode('', final=True) == b''
+ # All encoding names are valid labels too:
+ for name in set(LABELS.values()):
+ assert lookup(name).name == name
+
+
+def test_invalid_label():
+ assert_raises(LookupError, decode, b'\xEF\xBB\xBF\xc3\xa9', 'invalid')
+ assert_raises(LookupError, encode, 'é', 'invalid')
+ assert_raises(LookupError, iter_decode, [], 'invalid')
+ assert_raises(LookupError, iter_encode, [], 'invalid')
+ assert_raises(LookupError, IncrementalDecoder, 'invalid')
+ assert_raises(LookupError, IncrementalEncoder, 'invalid')
+
+
+def test_decode():
+ assert decode(b'\x80', 'latin1') == ('€', lookup('latin1'))
+ assert decode(b'\x80', lookup('latin1')) == ('€', lookup('latin1'))
+ assert decode(b'\xc3\xa9', 'utf8') == ('é', lookup('utf8'))
+ assert decode(b'\xc3\xa9', UTF8) == ('é', lookup('utf8'))
+ assert decode(b'\xc3\xa9', 'ascii') == ('é', lookup('ascii'))
+ assert decode(b'\xEF\xBB\xBF\xc3\xa9', 'ascii') == ('é', lookup('utf8')) # UTF-8 with BOM
+
+ assert decode(b'\xFE\xFF\x00\xe9', 'ascii') == ('é', lookup('utf-16be')) # UTF-16-BE with BOM
+ assert decode(b'\xFF\xFE\xe9\x00', 'ascii') == ('é', lookup('utf-16le')) # UTF-16-LE with BOM
+ assert decode(b'\xFE\xFF\xe9\x00', 'ascii') == ('\ue900', lookup('utf-16be'))
+ assert decode(b'\xFF\xFE\x00\xe9', 'ascii') == ('\ue900', lookup('utf-16le'))
+
+ assert decode(b'\x00\xe9', 'UTF-16BE') == ('é', lookup('utf-16be'))
+ assert decode(b'\xe9\x00', 'UTF-16LE') == ('é', lookup('utf-16le'))
+ assert decode(b'\xe9\x00', 'UTF-16') == ('é', lookup('utf-16le'))
+
+ assert decode(b'\xe9\x00', 'UTF-16BE') == ('\ue900', lookup('utf-16be'))
+ assert decode(b'\x00\xe9', 'UTF-16LE') == ('\ue900', lookup('utf-16le'))
+ assert decode(b'\x00\xe9', 'UTF-16') == ('\ue900', lookup('utf-16le'))
+
+
+def test_encode():
+ assert encode('é', 'latin1') == b'\xe9'
+ assert encode('é', 'utf8') == b'\xc3\xa9'
+ assert encode('é', 'utf8') == b'\xc3\xa9'
+ assert encode('é', 'utf-16') == b'\xe9\x00'
+ assert encode('é', 'utf-16le') == b'\xe9\x00'
+ assert encode('é', 'utf-16be') == b'\x00\xe9'
+
+
+def test_iter_decode():
+ def iter_decode_to_string(input, fallback_encoding):
+ output, _encoding = iter_decode(input, fallback_encoding)
+ return ''.join(output)
+ assert iter_decode_to_string([], 'latin1') == ''
+ assert iter_decode_to_string([b''], 'latin1') == ''
+ assert iter_decode_to_string([b'\xe9'], 'latin1') == 'é'
+ assert iter_decode_to_string([b'hello'], 'latin1') == 'hello'
+ assert iter_decode_to_string([b'he', b'llo'], 'latin1') == 'hello'
+ assert iter_decode_to_string([b'hell', b'o'], 'latin1') == 'hello'
+ assert iter_decode_to_string([b'\xc3\xa9'], 'latin1') == 'é'
+ assert iter_decode_to_string([b'\xEF\xBB\xBF\xc3\xa9'], 'latin1') == 'é'
+ assert iter_decode_to_string([
+ b'\xEF\xBB\xBF', b'\xc3', b'\xa9'], 'latin1') == 'é'
+ assert iter_decode_to_string([
+ b'\xEF\xBB\xBF', b'a', b'\xc3'], 'latin1') == 'a\uFFFD'
+ assert iter_decode_to_string([
+ b'', b'\xEF', b'', b'', b'\xBB\xBF\xc3', b'\xa9'], 'latin1') == 'é'
+ assert iter_decode_to_string([b'\xEF\xBB\xBF'], 'latin1') == ''
+ assert iter_decode_to_string([b'\xEF\xBB'], 'latin1') == 'ï»'
+ assert iter_decode_to_string([b'\xFE\xFF\x00\xe9'], 'latin1') == 'é'
+ assert iter_decode_to_string([b'\xFF\xFE\xe9\x00'], 'latin1') == 'é'
+ assert iter_decode_to_string([
+ b'', b'\xFF', b'', b'', b'\xFE\xe9', b'\x00'], 'latin1') == 'é'
+ assert iter_decode_to_string([
+ b'', b'h\xe9', b'llo'], 'x-user-defined') == 'h\uF7E9llo'
+
+
+def test_iter_encode():
+ assert b''.join(iter_encode([], 'latin1')) == b''
+ assert b''.join(iter_encode([''], 'latin1')) == b''
+ assert b''.join(iter_encode(['é'], 'latin1')) == b'\xe9'
+ assert b''.join(iter_encode(['', 'é', '', ''], 'latin1')) == b'\xe9'
+ assert b''.join(iter_encode(['', 'é', '', ''], 'utf-16')) == b'\xe9\x00'
+ assert b''.join(iter_encode(['', 'é', '', ''], 'utf-16le')) == b'\xe9\x00'
+ assert b''.join(iter_encode(['', 'é', '', ''], 'utf-16be')) == b'\x00\xe9'
+ assert b''.join(iter_encode([
+ '', 'h\uF7E9', '', 'llo'], 'x-user-defined')) == b'h\xe9llo'
+
+
+def test_x_user_defined():
+ encoded = b'2,\x0c\x0b\x1aO\xd9#\xcb\x0f\xc9\xbbt\xcf\xa8\xca'
+ decoded = '2,\x0c\x0b\x1aO\uf7d9#\uf7cb\x0f\uf7c9\uf7bbt\uf7cf\uf7a8\uf7ca'
+ encoded = b'aa'
+ decoded = 'aa'
+ assert decode(encoded, 'x-user-defined') == (decoded, lookup('x-user-defined'))
+ assert encode(decoded, 'x-user-defined') == encoded
diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/x_user_defined.py b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/x_user_defined.py
new file mode 100644
index 00000000000..d16e326024c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/x_user_defined.py
@@ -0,0 +1,325 @@
+# coding: utf-8
+"""
+
+ webencodings.x_user_defined
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ An implementation of the x-user-defined encoding.
+
+ :copyright: Copyright 2012 by Simon Sapin
+ :license: BSD, see LICENSE for details.
+
+"""
+
+from __future__ import unicode_literals
+
+import codecs
+
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+ def encode(self, input, errors='strict'):
+ return codecs.charmap_encode(input, errors, encoding_table)
+
+ def decode(self, input, errors='strict'):
+ return codecs.charmap_decode(input, errors, decoding_table)
+
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+ def encode(self, input, final=False):
+ return codecs.charmap_encode(input, self.errors, encoding_table)[0]
+
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+ def decode(self, input, final=False):
+ return codecs.charmap_decode(input, self.errors, decoding_table)[0]
+
+
+class StreamWriter(Codec, codecs.StreamWriter):
+ pass
+
+
+class StreamReader(Codec, codecs.StreamReader):
+ pass
+
+
+### encodings module API
+
+codec_info = codecs.CodecInfo(
+ name='x-user-defined',
+ encode=Codec().encode,
+ decode=Codec().decode,
+ incrementalencoder=IncrementalEncoder,
+ incrementaldecoder=IncrementalDecoder,
+ streamreader=StreamReader,
+ streamwriter=StreamWriter,
+)
+
+
+### Decoding Table
+
+# Python 3:
+# for c in range(256): print(' %r' % chr(c if c < 128 else c + 0xF700))
+decoding_table = (
+ '\x00'
+ '\x01'
+ '\x02'
+ '\x03'
+ '\x04'
+ '\x05'
+ '\x06'
+ '\x07'
+ '\x08'
+ '\t'
+ '\n'
+ '\x0b'
+ '\x0c'
+ '\r'
+ '\x0e'
+ '\x0f'
+ '\x10'
+ '\x11'
+ '\x12'
+ '\x13'
+ '\x14'
+ '\x15'
+ '\x16'
+ '\x17'
+ '\x18'
+ '\x19'
+ '\x1a'
+ '\x1b'
+ '\x1c'
+ '\x1d'
+ '\x1e'
+ '\x1f'
+ ' '
+ '!'
+ '"'
+ '#'
+ '$'
+ '%'
+ '&'
+ "'"
+ '('
+ ')'
+ '*'
+ '+'
+ ','
+ '-'
+ '.'
+ '/'
+ '0'
+ '1'
+ '2'
+ '3'
+ '4'
+ '5'
+ '6'
+ '7'
+ '8'
+ '9'
+ ':'
+ ';'
+ '<'
+ '='
+ '>'
+ '?'
+ '@'
+ 'A'
+ 'B'
+ 'C'
+ 'D'
+ 'E'
+ 'F'
+ 'G'
+ 'H'
+ 'I'
+ 'J'
+ 'K'
+ 'L'
+ 'M'
+ 'N'
+ 'O'
+ 'P'
+ 'Q'
+ 'R'
+ 'S'
+ 'T'
+ 'U'
+ 'V'
+ 'W'
+ 'X'
+ 'Y'
+ 'Z'
+ '['
+ '\\'
+ ']'
+ '^'
+ '_'
+ '`'
+ 'a'
+ 'b'
+ 'c'
+ 'd'
+ 'e'
+ 'f'
+ 'g'
+ 'h'
+ 'i'
+ 'j'
+ 'k'
+ 'l'
+ 'm'
+ 'n'
+ 'o'
+ 'p'
+ 'q'
+ 'r'
+ 's'
+ 't'
+ 'u'
+ 'v'
+ 'w'
+ 'x'
+ 'y'
+ 'z'
+ '{'
+ '|'
+ '}'
+ '~'
+ '\x7f'
+ '\uf780'
+ '\uf781'
+ '\uf782'
+ '\uf783'
+ '\uf784'
+ '\uf785'
+ '\uf786'
+ '\uf787'
+ '\uf788'
+ '\uf789'
+ '\uf78a'
+ '\uf78b'
+ '\uf78c'
+ '\uf78d'
+ '\uf78e'
+ '\uf78f'
+ '\uf790'
+ '\uf791'
+ '\uf792'
+ '\uf793'
+ '\uf794'
+ '\uf795'
+ '\uf796'
+ '\uf797'
+ '\uf798'
+ '\uf799'
+ '\uf79a'
+ '\uf79b'
+ '\uf79c'
+ '\uf79d'
+ '\uf79e'
+ '\uf79f'
+ '\uf7a0'
+ '\uf7a1'
+ '\uf7a2'
+ '\uf7a3'
+ '\uf7a4'
+ '\uf7a5'
+ '\uf7a6'
+ '\uf7a7'
+ '\uf7a8'
+ '\uf7a9'
+ '\uf7aa'
+ '\uf7ab'
+ '\uf7ac'
+ '\uf7ad'
+ '\uf7ae'
+ '\uf7af'
+ '\uf7b0'
+ '\uf7b1'
+ '\uf7b2'
+ '\uf7b3'
+ '\uf7b4'
+ '\uf7b5'
+ '\uf7b6'
+ '\uf7b7'
+ '\uf7b8'
+ '\uf7b9'
+ '\uf7ba'
+ '\uf7bb'
+ '\uf7bc'
+ '\uf7bd'
+ '\uf7be'
+ '\uf7bf'
+ '\uf7c0'
+ '\uf7c1'
+ '\uf7c2'
+ '\uf7c3'
+ '\uf7c4'
+ '\uf7c5'
+ '\uf7c6'
+ '\uf7c7'
+ '\uf7c8'
+ '\uf7c9'
+ '\uf7ca'
+ '\uf7cb'
+ '\uf7cc'
+ '\uf7cd'
+ '\uf7ce'
+ '\uf7cf'
+ '\uf7d0'
+ '\uf7d1'
+ '\uf7d2'
+ '\uf7d3'
+ '\uf7d4'
+ '\uf7d5'
+ '\uf7d6'
+ '\uf7d7'
+ '\uf7d8'
+ '\uf7d9'
+ '\uf7da'
+ '\uf7db'
+ '\uf7dc'
+ '\uf7dd'
+ '\uf7de'
+ '\uf7df'
+ '\uf7e0'
+ '\uf7e1'
+ '\uf7e2'
+ '\uf7e3'
+ '\uf7e4'
+ '\uf7e5'
+ '\uf7e6'
+ '\uf7e7'
+ '\uf7e8'
+ '\uf7e9'
+ '\uf7ea'
+ '\uf7eb'
+ '\uf7ec'
+ '\uf7ed'
+ '\uf7ee'
+ '\uf7ef'
+ '\uf7f0'
+ '\uf7f1'
+ '\uf7f2'
+ '\uf7f3'
+ '\uf7f4'
+ '\uf7f5'
+ '\uf7f6'
+ '\uf7f7'
+ '\uf7f8'
+ '\uf7f9'
+ '\uf7fa'
+ '\uf7fb'
+ '\uf7fc'
+ '\uf7fd'
+ '\uf7fe'
+ '\uf7ff'
+)
+
+### Encoding table
+encoding_table = codecs.charmap_build(decoding_table)
diff --git a/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_input_file.py b/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_input_file.py
new file mode 100644
index 00000000000..be7ba4291be
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_input_file.py
@@ -0,0 +1,148 @@
+from wptserve.request import InputFile
+from io import BytesIO
+import pytest
+
+wptserve = pytest.importorskip("wptserve")
+bstr = b'This is a test document\nWith new lines\nSeveral in fact...'
+rfile = ''
+test_file = '' # This will be used to test the InputFile functions against
+input_file = InputFile(None, 0)
+
+
+def setup_function(function):
+ global rfile, input_file, test_file
+ rfile = BytesIO(bstr)
+ test_file = BytesIO(bstr)
+ input_file = InputFile(rfile, len(bstr))
+
+
+def teardown_function(function):
+ rfile.close()
+ test_file.close()
+
+
+def test_seek():
+ input_file.seek(2)
+ test_file.seek(2)
+ assert input_file.read(1) == test_file.read(1)
+
+ input_file.seek(4)
+ test_file.seek(4)
+ assert input_file.read(1) == test_file.read(1)
+
+
+def test_seek_backwards():
+ input_file.seek(2)
+ test_file.seek(2)
+ assert input_file.tell() == test_file.tell()
+ assert input_file.read(1) == test_file.read(1)
+ assert input_file.tell() == test_file.tell()
+
+ input_file.seek(0)
+ test_file.seek(0)
+ assert input_file.read(1) == test_file.read(1)
+
+
+def test_seek_negative_offset():
+ with pytest.raises(ValueError):
+ input_file.seek(-1)
+
+
+def test_seek_file_bigger_than_buffer():
+ old_max_buf = InputFile.max_buffer_size
+ InputFile.max_buffer_size = 10
+
+ try:
+ input_file = InputFile(rfile, len(bstr))
+
+ input_file.seek(2)
+ test_file.seek(2)
+ assert input_file.read(1) == test_file.read(1)
+
+ input_file.seek(4)
+ test_file.seek(4)
+ assert input_file.read(1) == test_file.read(1)
+ finally:
+ InputFile.max_buffer_size = old_max_buf
+
+
+def test_read():
+ assert input_file.read() == test_file.read()
+
+
+def test_read_file_bigger_than_buffer():
+ old_max_buf = InputFile.max_buffer_size
+ InputFile.max_buffer_size = 10
+
+ try:
+ input_file = InputFile(rfile, len(bstr))
+ assert input_file.read() == test_file.read()
+ finally:
+ InputFile.max_buffer_size = old_max_buf
+
+
+def test_readline():
+ assert input_file.readline() == test_file.readline()
+ assert input_file.readline() == test_file.readline()
+
+ input_file.seek(0)
+ test_file.seek(0)
+ assert input_file.readline() == test_file.readline()
+
+
+def test_readline_max_byte():
+ line = test_file.readline()
+ assert input_file.readline(max_bytes=len(line)/2) == line[:len(line)/2]
+ assert input_file.readline(max_bytes=len(line)) == line[len(line)/2:]
+
+
+def test_readline_max_byte_longer_than_file():
+ assert input_file.readline(max_bytes=1000) == test_file.readline()
+ assert input_file.readline(max_bytes=1000) == test_file.readline()
+
+
+def test_readline_file_bigger_than_buffer():
+ old_max_buf = InputFile.max_buffer_size
+ InputFile.max_buffer_size = 10
+
+ try:
+ input_file = InputFile(rfile, len(bstr))
+
+ assert input_file.readline() == test_file.readline()
+ assert input_file.readline() == test_file.readline()
+ finally:
+ InputFile.max_buffer_size = old_max_buf
+
+
+def test_readlines():
+ assert input_file.readlines() == test_file.readlines()
+
+
+def test_readlines_file_bigger_than_buffer():
+ old_max_buf = InputFile.max_buffer_size
+ InputFile.max_buffer_size = 10
+
+ try:
+ input_file = InputFile(rfile, len(bstr))
+
+ assert input_file.readlines() == test_file.readlines()
+ finally:
+ InputFile.max_buffer_size = old_max_buf
+
+
+def test_iter():
+ for a, b in zip(input_file, test_file):
+ assert a == b
+
+
+def test_iter_file_bigger_than_buffer():
+ old_max_buf = InputFile.max_buffer_size
+ InputFile.max_buffer_size = 10
+
+ try:
+ input_file = InputFile(rfile, len(bstr))
+
+ for a, b in zip(input_file, test_file):
+ assert a == b
+ finally:
+ InputFile.max_buffer_size = old_max_buf
diff --git a/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_request.py b/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_request.py
index d0d8213cfdd..b2ef0e251da 100644
--- a/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_request.py
+++ b/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_request.py
@@ -4,6 +4,8 @@ import pytest
wptserve = pytest.importorskip("wptserve")
from .base import TestUsingServer
+from wptserve.request import InputFile
+from urllib2 import HTTPError
class TestInputFile(TestUsingServer):
@@ -35,6 +37,32 @@ class TestInputFile(TestUsingServer):
"12345ab\ncdef", "12345ab\n", "cdef"],
resp.read().split(" "))
+ def test_seek_input_longer_than_buffer(self):
+ @wptserve.handlers.handler
+ def handler(request, response):
+ rv = []
+ f = request.raw_input
+ f.seek(5)
+ rv.append(f.read(2))
+ rv.append(f.tell())
+ f.seek(0)
+ rv.append(f.tell())
+ rv.append(f.tell())
+ return " ".join(str(item) for item in rv)
+
+ route = ("POST", "/test/test_seek", handler)
+ self.server.router.register(*route)
+
+ old_max_buf = InputFile.max_buffer_size
+ InputFile.max_buffer_size = 10
+ try:
+ resp = self.request(route[1], method="POST", body="1"*20)
+ self.assertEqual(200, resp.getcode())
+ self.assertEqual(["11", "7", "0", "0"],
+ resp.read().split(" "))
+ finally:
+ InputFile.max_buffer_size = old_max_buf
+
def test_iter(self):
@wptserve.handlers.handler
def handler(request, response):
@@ -47,6 +75,25 @@ class TestInputFile(TestUsingServer):
self.assertEqual(200, resp.getcode())
self.assertEqual(["12345\n", "abcdef\r\n", "zyxwv"], resp.read().split(" "))
+ def test_iter_input_longer_than_buffer(self):
+ @wptserve.handlers.handler
+ def handler(request, response):
+ f = request.raw_input
+ return " ".join(line for line in f)
+
+ route = ("POST", "/test/test_iter", handler)
+ self.server.router.register(*route)
+
+ old_max_buf = InputFile.max_buffer_size
+ InputFile.max_buffer_size = 10
+ try:
+ resp = self.request(route[1], method="POST", body="12345\nabcdef\r\nzyxwv")
+ self.assertEqual(200, resp.getcode())
+ self.assertEqual(["12345\n", "abcdef\r\n", "zyxwv"], resp.read().split(" "))
+ finally:
+ InputFile.max_buffer_size = old_max_buf
+
+
class TestRequest(TestUsingServer):
def test_body(self):
@wptserve.handlers.handler
@@ -69,6 +116,7 @@ class TestRequest(TestUsingServer):
resp = self.request("/test/some_route")
self.assertEqual("some route", resp.read())
+
class TestAuth(TestUsingServer):
def test_auth(self):
@wptserve.handlers.handler
@@ -80,6 +128,3 @@ class TestAuth(TestUsingServer):
resp = self.request(route[1], auth=("test", "PASS"))
self.assertEqual(200, resp.getcode())
self.assertEqual(["test", "PASS"], resp.read().split(" "))
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/request.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/request.py
index 7f49681d7ec..ce7965a1242 100644
--- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/request.py
+++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/request.py
@@ -50,7 +50,7 @@ class InputFile(object):
self._file_position = 0
if length > self.max_buffer_size:
- self._buf = tempfile.TemporaryFile(mode="rw+b")
+ self._buf = tempfile.TemporaryFile()
else:
self._buf = StringIO.StringIO()
@@ -77,13 +77,13 @@ class InputFile(object):
else:
old_data = ""
- assert self._buf_position == self._file_position, (
+ assert bytes_remaining == 0 or self._buf_position == self._file_position, (
"Before reading buffer position (%i) didn't match file position (%i)" %
(self._buf_position, self._file_position))
new_data = self._file.read(bytes_remaining)
self._buf.write(new_data)
self._file_position += bytes_remaining
- assert self._buf_position == self._file_position, (
+ assert bytes_remaining == 0 or self._buf_position == self._file_position, (
"After reading buffer position (%i) didn't match file position (%i)" %
(self._buf_position, self._file_position))
diff --git a/tests/wpt/web-platform-tests/url/resources/urltestdata.json b/tests/wpt/web-platform-tests/url/resources/urltestdata.json
index 8c87da2bf5d..10da48b2dcd 100644
--- a/tests/wpt/web-platform-tests/url/resources/urltestdata.json
+++ b/tests/wpt/web-platform-tests/url/resources/urltestdata.json
@@ -4015,6 +4015,37 @@
"search": "?`{}",
"hash": ""
},
+ "byte is ' and url is special",
+ {
+ "input": "http://host/?'",
+ "base": "about:blank",
+ "href": "http://host/?%27",
+ "origin": "http://host",
+ "protocol": "http:",
+ "username": "",
+ "password": "",
+ "host": "host",
+ "hostname": "host",
+ "port": "",
+ "pathname": "/",
+ "search": "?%27",
+ "hash": ""
+ },
+ {
+ "input": "notspecial://host/?'",
+ "base": "about:blank",
+ "href": "notspecial://host/?'",
+ "origin": "null",
+ "protocol": "notspecial:",
+ "username": "",
+ "password": "",
+ "host": "host",
+ "hostname": "host",
+ "port": "",
+ "pathname": "/",
+ "search": "?'",
+ "hash": ""
+ },
"# Credentials in base",
{
"input": "/some/path",
diff --git a/tests/wpt/web-platform-tests/user-timing/idlharness.any.js b/tests/wpt/web-platform-tests/user-timing/idlharness.any.js
new file mode 100644
index 00000000000..47300bddb77
--- /dev/null
+++ b/tests/wpt/web-platform-tests/user-timing/idlharness.any.js
@@ -0,0 +1,24 @@
+// META: global=window,worker
+// META: script=/resources/WebIDLParser.js
+// META: script=/resources/idlharness.js
+
+// https://w3c.github.io/user-timing/
+
+'use strict';
+
+promise_test(async () => {
+ const idl_array = new IdlArray();
+ const idl = await fetch("/interfaces/user-timing.idl").then(r => r.text());
+ const hrtime = await fetch("/interfaces/hr-time.idl").then(r => r.text());
+ const perf = await fetch("/interfaces/performance-timeline.idl").then(r => r.text());
+ const dom = await fetch("/interfaces/dom.idl").then(r => r.text());
+
+ idl_array.add_idls(idl);
+ idl_array.add_dependency_idls(hrtime);
+ idl_array.add_dependency_idls(perf);
+ idl_array.add_dependency_idls(dom);
+ idl_array.add_objects({
+ Performance: ["performance"]
+ });
+ idl_array.test();
+}, "Test IDL implementation of user-timing API");
diff --git a/tests/wpt/web-platform-tests/user-timing/idlharness.html b/tests/wpt/web-platform-tests/user-timing/idlharness.html
deleted file mode 100644
index ca5f7c39413..00000000000
--- a/tests/wpt/web-platform-tests/user-timing/idlharness.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<title>User Timing IDL tests</title>
-<link rel="author" title="W3C" href="http://www.w3.org/" />
-<link rel="help" href="http://www.w3.org/TR/user-timing/#extensions-performance-interface"/>
-<link rel="help" href="http://www.w3.org/TR/user-timing/#performancemark"/>
-<link rel="help" href="http://www.w3.org/TR/user-timing/#performancemeasure"/>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/WebIDLParser.js"></script>
-<script src="/resources/idlharness.js"></script>
-</head>
-<body>
-<h1>User Timing IDL tests</h1>
-<div id="log"></div>
-
-<pre id='untested_idl' style='display:none'>
-[Exposed=(Window,Worker)]
-interface Performance {
-};
-
-[Exposed=(Window,Worker)]
-interface PerformanceEntry {
-};
-</pre>
-
-<pre id='idl'>
-partial interface Performance {
- void mark(DOMString markName);
- void clearMarks(optional DOMString markName);
-
- void measure(DOMString measureName, optional DOMString startMark, optional DOMString endMark);
- void clearMeasures(optional DOMString measureName);
-};
-
-[Exposed=(Window,Worker)]
-interface PerformanceMark : PerformanceEntry {
-};
-
-[Exposed=(Window,Worker)]
-interface PerformanceMeasure : PerformanceEntry {
-};
-
-</pre>
-
-<script>
-
-(function() {
- var idl_array = new IdlArray();
-
- idl_array.add_untested_idls(document.getElementById("untested_idl").textContent);
- idl_array.add_idls(document.getElementById("idl").textContent);
-
- idl_array.add_objects({Performance: ["window.performance"]});
-
- idl_array.test();
-})();
-
-</script>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-referrer.html b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-referrer.html
new file mode 100644
index 00000000000..01322bb1ed0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-referrer.html
@@ -0,0 +1,209 @@
+<!DOCTYPE html>
+<title>DedicatedWorker: Referrer</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+
+async function openWindow(url) {
+ const win = window.open(url, '_blank');
+ add_result_callback(() => win.close());
+ const msg_event = await new Promise(resolve => window.onmessage = resolve);
+ assert_equals(msg_event.data, 'LOADED');
+ return win;
+}
+
+// Returns a URL string from the current path and the given relative path.
+function createURLString(relative_path) {
+ return (new URL(relative_path, location.href)).href;
+}
+
+// Removes URL parameters from the given URL string and returns it.
+function removeParams(url_string) {
+ if (!url_string)
+ return url_string;
+ let url = new URL(url_string);
+ for (var key of url.searchParams.keys())
+ url.searchParams.delete(key);
+ return url.href;
+}
+
+// Runs a referrer policy test with the given settings. This opens a new window
+// that starts a dedicated worker.
+//
+// |settings| has options as follows:
+//
+// settings = {
+// scriptURL: 'resources/referrer-checker.sub.js',
+// windowReferrerPolicy: 'no-referrer',
+// workerReferrerPolicy: 'same-origin',
+// expectedReferrer: 'https://example.com/referrer-checker.py'
+// };
+//
+// - |scriptURL| is used for starting a new worker.
+// - |windowReferrerPolicy| is set to the ReferrerPolicy HTTP header of the
+// window. This policy should be applied to top-level worker module script
+// loading and static imports.
+// - |workerReferrerPolicy| is set to the ReferrerPolicy HTTP header of the
+// worker. This policy should be applied to dynamic imports.
+// - |expectedReferrer| is compared with the actual referrer. URL parameters are
+// ignored.
+function import_referrer_test(settings, description) {
+ promise_test(async () => {
+ let windowURL = 'resources/new-worker-window.html';
+ if (settings.windowReferrerPolicy) {
+ windowURL +=
+ `?pipe=header(Referrer-Policy, ${settings.windowReferrerPolicy})`;
+ }
+
+ let scriptURL = settings.scriptURL;
+ if (settings.workerReferrerPolicy) {
+ // 'sub' is necessary even if the |scriptURL| contains the '.sub'
+ // extension because the extension doesn't work with the 'pipe' parameter.
+ // See an issue on the WPT's repository:
+ // https://github.com/web-platform-tests/wpt/issues/9345
+ scriptURL +=
+ `?pipe=sub|header(Referrer-Policy, ${settings.workerReferrerPolicy})`;
+ }
+
+ const win = await openWindow(windowURL);
+ win.postMessage(scriptURL, '*');
+ const msgEvent = await new Promise(resolve => window.onmessage = resolve);
+
+ // Delete query parameters from the referrers to make it easy to match the
+ // actual referrer with the expected referrer.
+ const expectedReferrer = removeParams(settings.expectedReferrer);
+ const actualReferrer = removeParams(msgEvent.data);
+ assert_equals(actualReferrer, expectedReferrer);
+ }, description);
+}
+
+// Tests for top-level worker module script loading.
+//
+// Top-level worker module script loading should obey the window's
+// ReferrerPolicy, and send the window's URL as a referrer.
+//
+// [Current document]
+// --(open)--> [Window] whose referrer policy is |windowReferrerPolicy|.
+// --(new Worker)--> [Worker] should be loaded with [Window]'s URL as a
+// referrer if it's allowed by |windowReferrerPolicy|.
+
+import_referrer_test(
+ { scriptURL: 'referrer-checker.py',
+ windowReferrerPolicy: 'no-referrer',
+ expectedReferrer: '' },
+ 'Same-origin top-level module script loading with "no-referrer" referrer ' +
+ 'policy');
+
+import_referrer_test(
+ { scriptURL: 'referrer-checker.py',
+ windowReferrerPolicy: 'origin',
+ expectedReferrer: window.location.origin + '/' },
+ 'Same-origin top-level module script loading with "origin" referrer ' +
+ 'policy');
+
+import_referrer_test(
+ { scriptURL: 'referrer-checker.py',
+ windowReferrerPolicy: 'same-origin',
+ expectedReferrer: createURLString('resources/referrer-window.html') },
+ 'Same-origin top-level module script loading with "same-origin" referrer ' +
+ 'policy');
+
+// Tests for static imports.
+//
+// Static imports should obey the window's ReferrerPolicy, and send the worker's
+// URL as a referrer.
+//
+// [Current document]
+// --(open)--> [Window] whose referrer policy is |windowReferrerPolicy|.
+// --(new Worker)--> [Worker]
+// --(static import)--> [Script] should be loaded with [Worker]'s URL as a
+// referrer if it's allowed by |windowReferrerPolicy|.
+
+import_referrer_test(
+ { scriptURL: 'static-import-same-origin-referrer-checker-worker.js',
+ windowReferrerPolicy: 'no-referrer',
+ expectedReferrer: '' },
+ 'Same-origin static import with "no-referrer" referrer policy.');
+
+import_referrer_test(
+ { scriptURL: 'static-import-same-origin-referrer-checker-worker.js',
+ windowReferrerPolicy: 'origin',
+ expectedReferrer: window.location.origin + '/' },
+ 'Same-origin static import with "origin" referrer policy.');
+
+import_referrer_test(
+ { scriptURL: 'static-import-same-origin-referrer-checker-worker.js',
+ windowReferrerPolicy: 'same-origin',
+ expectedReferrer: createURLString(
+ 'resources/static-import-same-origin-referrer-checker-worker.js') },
+ 'Same-origin static import with "same-origin" referrer policy.');
+
+import_referrer_test(
+ { scriptURL: 'static-import-remote-origin-referrer-checker-worker.sub.js',
+ windowReferrerPolicy: 'no-referrer',
+ expectedReferrer: '' },
+ 'Cross-origin static import with "no-referrer" referrer policy.');
+
+import_referrer_test(
+ { scriptURL: 'static-import-remote-origin-referrer-checker-worker.sub.js',
+ windowReferrerPolicy: 'origin',
+ expectedReferrer: window.location.origin + '/' },
+ 'Cross-origin static import with "origin" referrer policy.');
+
+import_referrer_test(
+ { scriptURL: 'static-import-remote-origin-referrer-checker-worker.sub.js',
+ windowReferrerPolicy: 'same-origin',
+ expectedReferrer: '' },
+ 'Cross-origin static import with "same-origin" referrer policy.');
+
+// Tests for dynamic imports.
+//
+// Dynamic imports should obey the worker's ReferrerPolicy, and send the
+// worker's URL as a referrer. Note that the worker doesn't inherit the window's
+// referrer policy and it's set by the ReferrerPolicy HTTP header on the
+// response of the top-level worker module script.
+//
+// [Current document]
+// --(open)--> [Window]
+// --(new Worker)--> [Worker] whose referrer policy is |workerReferrerPolicy|.
+// --(dynamic import)--> [Script] should be loaded with [Worker]'s URL as a
+// referrer if it's allowed by |workerReferrerPolicy|.
+
+import_referrer_test(
+ { scriptURL: 'dynamic-import-same-origin-referrer-checker-worker.js',
+ workerReferrerPolicy: 'no-referrer',
+ expectedReferrer: '' },
+ 'Same-origin dynamic import with "no-referrer" referrer policy.');
+
+import_referrer_test(
+ { scriptURL: 'dynamic-import-same-origin-referrer-checker-worker.js',
+ workerReferrerPolicy: 'origin',
+ expectedReferrer: window.location.origin + '/' },
+ 'Same-origin dynamic import with "origin" referrer policy.');
+
+import_referrer_test(
+ { scriptURL: 'dynamic-import-same-origin-referrer-checker-worker.js',
+ workerReferrerPolicy: 'same-origin',
+ expectedReferrer: createURLString(
+ 'resources/dynamic-import-same-origin-referrer-checker-worker.js') },
+ 'Same-origin dynamic import with "same-origin" referrer policy.');
+
+import_referrer_test(
+ { scriptURL: 'dynamic-import-remote-origin-referrer-checker-worker.sub.js',
+ workerReferrerPolicy: 'no-referrer',
+ expectedReferrer: '' },
+ 'Cross-origin dynamic import with "no-referrer" referrer policy.');
+
+import_referrer_test(
+ { scriptURL: 'dynamic-import-remote-origin-referrer-checker-worker.sub.js',
+ workerReferrerPolicy: 'origin',
+ expectedReferrer: window.location.origin + '/' },
+ 'Cross-origin dynamic import with "origin" referrer policy.');
+
+import_referrer_test(
+ { scriptURL: 'dynamic-import-remote-origin-referrer-checker-worker.sub.js',
+ workerReferrerPolicy: 'same-origin',
+ expectedReferrer: '' },
+ 'Cross-origin dynamic import with "same-origin" referrer policy.');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-referrer-checker-worker.sub.js b/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-referrer-checker-worker.sub.js
new file mode 100644
index 00000000000..522c5798ba7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-referrer-checker-worker.sub.js
@@ -0,0 +1,2 @@
+// Import a remote origin script.
+import('https://{{domains[www1]}}:{{ports[https][0]}}/workers/modules/resources/referrer-checker.py');
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-same-origin-referrer-checker-worker.js b/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-same-origin-referrer-checker-worker.js
new file mode 100644
index 00000000000..1d68624c3cb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-same-origin-referrer-checker-worker.js
@@ -0,0 +1 @@
+import('./referrer-checker.py');
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/referrer-checker.py b/tests/wpt/web-platform-tests/workers/modules/resources/referrer-checker.py
new file mode 100644
index 00000000000..83a90032caf
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/referrer-checker.py
@@ -0,0 +1,9 @@
+# Returns a worker script that posts the request's referrer header.
+def main(request, response):
+ referrer = request.headers.get("referer", "")
+
+ response_headers = [("Content-Type", "text/javascript"),
+ ("Access-Control-Allow-Origin", "*")]
+
+ return (200, response_headers,
+ "postMessage('"+referrer+"')")
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/static-import-remote-origin-referrer-checker-worker.sub.js b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-remote-origin-referrer-checker-worker.sub.js
new file mode 100644
index 00000000000..1722fc9343e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-remote-origin-referrer-checker-worker.sub.js
@@ -0,0 +1,2 @@
+// Import a remote origin script.
+import 'https://{{domains[www1]}}:{{ports[https][0]}}/workers/modules/resources/referrer-checker.py';
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/static-import-same-origin-referrer-checker-worker.js b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-same-origin-referrer-checker-worker.js
new file mode 100644
index 00000000000..7d564f9c434
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-same-origin-referrer-checker-worker.js
@@ -0,0 +1 @@
+import './referrer-checker.py';