<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[211349] trunk/LayoutTests</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/211349">211349</a></dd>
<dt>Author</dt> <dd>ddkilzer@apple.com</dd>
<dt>Date</dt> <dd>2017-01-28 23:30:39 -0800 (Sat, 28 Jan 2017)</dd>
</dl>
<h3>Log Message</h3>
<pre>Migrate 97 *-disabled tests to use TestExpectations
<https://webkit.org/b/167537>
Reviewed by Darin Adler.
* TestExpectations: Skip renamed tests.
* fast/dom/HTMLDataGridElement/DataGridColumns-basic-expected.txt: Removed.
* fast/dom/HTMLDataGridElement/DataGridColumns-basic.html-disabled: Removed.
* fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes-expected.txt: Removed.
* fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes.html-disabled: Removed.
* fast/dom/HTMLDataGridElement/DataGridColumns-dom-expected.txt: Removed.
* fast/dom/HTMLDataGridElement/DataGridColumns-dom.html-disabled: Removed.
* fast/dom/HTMLDataGridElement/DataGridDataSource-basic-expected.txt: Removed.
* fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html-disabled: Removed.
- Tests disabled in <a href="http://trac.webkit.org/projects/webkit/changeset/52512">r52512</a>. DataGrid feature removed in <a href="http://trac.webkit.org/projects/webkit/changeset/84991">r84991</a>.
* http/tests/appcache/dynamic-entries-no-cache-expected.txt: Removed.
* http/tests/appcache/dynamic-entries-no-cache.html-disabled: Removed.
- Test disabled in <a href="http://trac.webkit.org/projects/webkit/changeset/39816">r39816</a>. AppCache dynamic entry feature removed in <a href="http://trac.webkit.org/projects/webkit/changeset/95486">r95486</a>.
* svg/W3C-SVG-1.1/resources/filters-comptran-01-f.svg-disabled: Removed.
- Unused. Same as LayoutTests/svg/W3C-SVG-1.1/filters-comptran-01-b.svg.
* animations/font-size-using-ems.html: Renamed from LayoutTests/animations/font-size-using-ems.html-disabled.
* compositing/objects/composited-object-alignment.html: Renamed from LayoutTests/compositing/objects/composited-object-alignment.html-disabled.
* compositing/tiling/huge-layer-resize.html: Renamed from LayoutTests/compositing/tiling/huge-layer-resize.html-disabled.
* compositing/tiling/huge-layer.html: Renamed from LayoutTests/compositing/tiling/huge-layer.html-disabled.
* css2.1/t1202-counter-10-b.html: Renamed from LayoutTests/css2.1/t1202-counter-10-b.html-disabled.
* css2.1/t1202-counters-10-b.html: Renamed from LayoutTests/css2.1/t1202-counters-10-b.html-disabled.
* css2.1/t1204-increment-00-c-o.html: Renamed from LayoutTests/css2.1/t1204-increment-00-c-o.html-disabled.
* css2.1/t1204-increment-01-c-o.html: Renamed from LayoutTests/css2.1/t1204-increment-01-c-o.html-disabled.
* css2.1/t1204-increment-02-c-o.html: Renamed from LayoutTests/css2.1/t1204-increment-02-c-o.html-disabled.
* css2.1/t1204-reset-00-c-o.html: Renamed from LayoutTests/css2.1/t1204-reset-00-c-o.html-disabled.
* css2.1/t1204-reset-01-c-o.html: Renamed from LayoutTests/css2.1/t1204-reset-01-c-o.html-disabled.
* css2.1/t1204-reset-02-c-o.html: Renamed from LayoutTests/css2.1/t1204-reset-02-c-o.html-disabled.
* dom/xhtml/level2/html/HTMLFrameElement09.xhtml: Renamed from LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled.
* dom/xhtml/level3/core/documentadoptnode22.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml-disabled.
* dom/xhtml/level3/core/documentnormalizedocument06.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml-disabled.
* dom/xhtml/level3/core/documentsetdocumenturi01.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml-disabled.
* dom/xhtml/level3/core/documentsetdocumenturi02.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml-disabled.
* dom/xhtml/level3/core/domimplementationregistry12.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml-disabled.
* dom/xhtml/level3/core/domimplementationregistry23.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml-disabled.
* dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml-disabled.
* dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml-disabled.
* dom/xhtml/level3/core/noderemovechild03.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml-disabled.
* dom/xhtml/level3/core/nodereplacechild06.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml-disabled.
* dom/xhtml/level3/core/nodereplacechild07.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml-disabled.
* dom/xhtml/level3/core/nodereplacechild08.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml-disabled.
* editing/execCommand/create-list-1.html: Renamed from LayoutTests/editing/execCommand/create-list-1.html-disabled.
* editing/input/attributed-substring-from-range-lines.html: Renamed from LayoutTests/editing/input/attributed-substring-from-range-lines.html-disabled.
* editing/pasteboard/paste-empty-startcontainer.html: Renamed from LayoutTests/editing/pasteboard/paste-empty-startcontainer.html-disabled.
* editing/selection/inconsistent-in-removeChildNode.html: Renamed from LayoutTests/editing/selection/inconsistent-in-removeChildNode.html-disabled.
* editing/style/5091898.html: Renamed from LayoutTests/editing/style/5091898.html-disabled.
* fast/css/css2-system-color.html: Renamed from LayoutTests/fast/css/css2-system-color.html-disabled.
* fast/css/font-face-in-shadow-DOM.html: Renamed from LayoutTests/fast/css/font-face-in-shadow-DOM.html-disabled.
* fast/css/limited-vendor-prefix-behavior.html: Renamed from LayoutTests/fast/css/limited-vendor-prefix-behavior.html-disabled.
* fast/dom/Window/timeout-released-on-close.html: Renamed from LayoutTests/fast/dom/Window/timeout-released-on-close.html-disabled.
* fast/dom/Window/window-resize-nan.html: Renamed from LayoutTests/fast/dom/Window/window-resize-nan.html-disabled.
* fast/dom/gc-8.html: Renamed from LayoutTests/fast/dom/gc-8.html-disabled.
* fast/dynamic/crash-paint-no-documentElement-renderer.html: Renamed from LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled.
* fast/events/destroyed-atomic-string.html: Renamed from LayoutTests/fast/events/destroyed-atomic-string.html-disabled.
* fast/events/key-events-in-frame.html: Renamed from LayoutTests/fast/events/key-events-in-frame.html-disabled.
* fast/frames/iframe-scroll-page-up-down.html: Renamed from LayoutTests/fast/frames/iframe-scroll-page-up-down.html-disabled.
* fast/html/marquee-alternate.html: Renamed from LayoutTests/fast/html/marquee-alternate.html-disabled.
* fast/leaks/003.html: Renamed from LayoutTests/fast/leaks/003.html-disabled.
* fast/loader/api-test-go-to-current-back-forward-item.html: Renamed from LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html-disabled.
* fast/loader/api-test-new-window-data-load-base-url.html: Renamed from LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html-disabled.
* fast/loader/form-events-back-forward.html: Renamed from LayoutTests/fast/loader/form-events-back-forward.html-disabled.
* fast/notifications/notifications-event-stop-propagation.html: Renamed from LayoutTests/fast/notifications/notifications-event-stop-propagation.html-disabled.
* fast/notifications/notifications-multi-events.html: Renamed from LayoutTests/fast/notifications/notifications-multi-events.html-disabled.
* fast/ruby/after-block-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/after-block-doesnt-crash.html-disabled.
* fast/ruby/after-table-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/after-table-doesnt-crash.html-disabled.
* fast/ruby/generated-after-counter-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html-disabled.
* fast/ruby/generated-before-and-after-counter-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html-disabled.
* fast/shadow-dom/copy-shadow-tree.html: Renamed from LayoutTests/fast/shadow-dom/copy-shadow-tree.html-disabled.
* fast/table/double-height-table-no-tbody.html: Renamed from LayoutTests/fast/table/double-height-table-no-tbody.html-disabled.
* fast/text/large-text-composed-char-dos.html: Renamed from LayoutTests/fast/text/large-text-composed-char-dos.html-disabled.
* http/tests/multipart/win-boundary-crash.html: Renamed from LayoutTests/http/tests/multipart/win-boundary-crash.html-disabled.
* http/tests/navigation/post-goback-repost-policy.html: Renamed from LayoutTests/http/tests/navigation/post-goback-repost-policy.html-disabled.
* http/tests/navigation/success200-frames-goback.html: Renamed from LayoutTests/http/tests/navigation/success200-frames-goback.html-disabled.
* http/tests/navigation/success200-frames-reload.html: Renamed from LayoutTests/http/tests/navigation/success200-frames-reload.html-disabled.
* http/tests/navigation/success200-subframeload-goback.html: Renamed from LayoutTests/http/tests/navigation/success200-subframeload-goback.html-disabled.
* java/lc3/ArrayMethods/object-001.html: Renamed from LayoutTests/java/lc3/ArrayMethods/object-001.html-disabled.
* java/lc3/forin/array-001.html: Renamed from LayoutTests/java/lc3/forin/array-001.html-disabled.
* jquery/effects.html: Renamed from LayoutTests/jquery/effects.html-disabled.
* js/garbage-collect-after-string-appends.html: Renamed from LayoutTests/js/garbage-collect-after-string-appends.html-disabled.
* js/kde/Date.html: Renamed from LayoutTests/js/kde/Date.html-disabled.
* js/resources/garbage-collect-after-string-appends.js: Renamed from LayoutTests/js/resources/garbage-collect-after-string-appends.js-disabled.
* js/string-concatenate-outofmemory.html: Renamed from LayoutTests/js/string-concatenate-outofmemory.html-disabled.
* media/video-canvas.html: Renamed from LayoutTests/media/video-canvas.html-disabled.
* platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html: Renamed from LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html-disabled.
* sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html-disabled.
* sputnik/Unicode/Unicode_218/S7.6_A3.1.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html-disabled.
* sputnik/Unicode/Unicode_218/S7.6_A3.2.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html-disabled.
* sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html-disabled.
* sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html-disabled.
* sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html-disabled.
* sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html-disabled.
* sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html-disabled.
* sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html-disabled.
* sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html-disabled.
* sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html-disabled.
* sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html-disabled.
* svg/batik/text/textBiDi.svg: Renamed from LayoutTests/svg/batik/text/textBiDi.svg-disabled.
* svg/custom/filter-source-alpha.svg: Renamed from LayoutTests/svg/custom/filter-source-alpha.svg-disabled.
* svg/custom/font-face-fallback.svg: Renamed from LayoutTests/svg/custom/font-face-fallback.svg-disabled.
* svg/custom/js-font-test.svg: Renamed from LayoutTests/svg/custom/js-font-test.svg-disabled.
* svg/zoom/page/zoom-svg-through-object-with-text.xhtml: Renamed from LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled.
- Renamed disabled tests now that they're skipped in TestExpectations.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsTestExpectations">trunk/LayoutTests/TestExpectations</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsanimationsfontsizeusingemshtml">trunk/LayoutTests/animations/font-size-using-ems.html</a></li>
<li><a href="#trunkLayoutTestscompositingobjectscompositedobjectalignmenthtml">trunk/LayoutTests/compositing/objects/composited-object-alignment.html</a></li>
<li><a href="#trunkLayoutTestscompositingtilinghugelayerresizehtml">trunk/LayoutTests/compositing/tiling/huge-layer-resize.html</a></li>
<li><a href="#trunkLayoutTestscompositingtilinghugelayerhtml">trunk/LayoutTests/compositing/tiling/huge-layer.html</a></li>
<li><a href="#trunkLayoutTestscss21t1202counter10bhtml">trunk/LayoutTests/css2.1/t1202-counter-10-b.html</a></li>
<li><a href="#trunkLayoutTestscss21t1202counters10bhtml">trunk/LayoutTests/css2.1/t1202-counters-10-b.html</a></li>
<li><a href="#trunkLayoutTestscss21t1204increment00cohtml">trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html</a></li>
<li><a href="#trunkLayoutTestscss21t1204increment01cohtml">trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html</a></li>
<li><a href="#trunkLayoutTestscss21t1204increment02cohtml">trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html</a></li>
<li><a href="#trunkLayoutTestscss21t1204reset00cohtml">trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html</a></li>
<li><a href="#trunkLayoutTestscss21t1204reset01cohtml">trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html</a></li>
<li><a href="#trunkLayoutTestscss21t1204reset02cohtml">trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel2htmlHTMLFrameElement09xhtml">trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredocumentadoptnode22xhtml">trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredocumentnormalizedocument06xhtml">trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi01xhtml">trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi02xhtml">trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry12xhtml">trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry23xhtml">trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition14xhtml">trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition15xhtml">trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenoderemovechild03xhtml">trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodereplacechild06xhtml">trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodereplacechild07xhtml">trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodereplacechild08xhtml">trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml</a></li>
<li><a href="#trunkLayoutTestseditingexecCommandcreatelist1html">trunk/LayoutTests/editing/execCommand/create-list-1.html</a></li>
<li><a href="#trunkLayoutTestseditinginputattributedsubstringfromrangelineshtml">trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html</a></li>
<li><a href="#trunkLayoutTestseditingpasteboardpasteemptystartcontainerhtml">trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html</a></li>
<li><a href="#trunkLayoutTestseditingselectioninconsistentinremoveChildNodehtml">trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html</a></li>
<li><a href="#trunkLayoutTestseditingstyle5091898html">trunk/LayoutTests/editing/style/5091898.html</a></li>
<li><a href="#trunkLayoutTestsfastcsscss2systemcolorhtml">trunk/LayoutTests/fast/css/css2-system-color.html</a></li>
<li><a href="#trunkLayoutTestsfastcssfontfaceinshadowDOMhtml">trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html</a></li>
<li><a href="#trunkLayoutTestsfastcsslimitedvendorprefixbehaviorhtml">trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html</a></li>
<li><a href="#trunkLayoutTestsfastdomWindowtimeoutreleasedonclosehtml">trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html</a></li>
<li><a href="#trunkLayoutTestsfastdomWindowwindowresizenanhtml">trunk/LayoutTests/fast/dom/Window/window-resize-nan.html</a></li>
<li><a href="#trunkLayoutTestsfastdomgc8html">trunk/LayoutTests/fast/dom/gc-8.html</a></li>
<li><a href="#trunkLayoutTestsfastdynamiccrashpaintnodocumentElementrendererhtml">trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsdestroyedatomicstringhtml">trunk/LayoutTests/fast/events/destroyed-atomic-string.html</a></li>
<li><a href="#trunkLayoutTestsfasteventskeyeventsinframehtml">trunk/LayoutTests/fast/events/key-events-in-frame.html</a></li>
<li><a href="#trunkLayoutTestsfastframesiframescrollpageupdownhtml">trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html</a></li>
<li><a href="#trunkLayoutTestsfasthtmlmarqueealternatehtml">trunk/LayoutTests/fast/html/marquee-alternate.html</a></li>
<li><a href="#trunkLayoutTestsfastleaks003html">trunk/LayoutTests/fast/leaks/003.html</a></li>
<li><a href="#trunkLayoutTestsfastloaderapitestgotocurrentbackforwarditemhtml">trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html</a></li>
<li><a href="#trunkLayoutTestsfastloaderapitestnewwindowdataloadbaseurlhtml">trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html</a></li>
<li><a href="#trunkLayoutTestsfastloaderformeventsbackforwardhtml">trunk/LayoutTests/fast/loader/form-events-back-forward.html</a></li>
<li><a href="#trunkLayoutTestsfastnotificationsnotificationseventstoppropagationhtml">trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html</a></li>
<li><a href="#trunkLayoutTestsfastnotificationsnotificationsmultieventshtml">trunk/LayoutTests/fast/notifications/notifications-multi-events.html</a></li>
<li><a href="#trunkLayoutTestsfastrubyafterblockdoesntcrashhtml">trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html</a></li>
<li><a href="#trunkLayoutTestsfastrubyaftertabledoesntcrashhtml">trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html</a></li>
<li><a href="#trunkLayoutTestsfastrubygeneratedaftercounterdoesntcrashhtml">trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html</a></li>
<li><a href="#trunkLayoutTestsfastrubygeneratedbeforeandaftercounterdoesntcrashhtml">trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html</a></li>
<li><a href="#trunkLayoutTestsfastshadowdomcopyshadowtreehtml">trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html</a></li>
<li><a href="#trunkLayoutTestsfasttabledoubleheighttablenotbodyhtml">trunk/LayoutTests/fast/table/double-height-table-no-tbody.html</a></li>
<li><a href="#trunkLayoutTestsfasttextlargetextcomposedchardoshtml">trunk/LayoutTests/fast/text/large-text-composed-char-dos.html</a></li>
<li><a href="#trunkLayoutTestshttptestsmultipartwinboundarycrashhtml">trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html</a></li>
<li><a href="#trunkLayoutTestshttptestsnavigationpostgobackrepostpolicyhtml">trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html</a></li>
<li><a href="#trunkLayoutTestshttptestsnavigationsuccess200framesgobackhtml">trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html</a></li>
<li><a href="#trunkLayoutTestshttptestsnavigationsuccess200framesreloadhtml">trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html</a></li>
<li><a href="#trunkLayoutTestshttptestsnavigationsuccess200subframeloadgobackhtml">trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html</a></li>
<li><a href="#trunkLayoutTestsjavalc3ArrayMethodsobject001html">trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html</a></li>
<li><a href="#trunkLayoutTestsjavalc3forinarray001html">trunk/LayoutTests/java/lc3/forin/array-001.html</a></li>
<li><a href="#trunkLayoutTestsjqueryeffectshtml">trunk/LayoutTests/jquery/effects.html</a></li>
<li><a href="#trunkLayoutTestsjsgarbagecollectafterstringappendshtml">trunk/LayoutTests/js/garbage-collect-after-string-appends.html</a></li>
<li><a href="#trunkLayoutTestsjskdeDatehtml">trunk/LayoutTests/js/kde/Date.html</a></li>
<li><a href="#trunkLayoutTestsjsresourcesgarbagecollectafterstringappendsjs">trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js</a></li>
<li><a href="#trunkLayoutTestsjsstringconcatenateoutofmemoryhtml">trunk/LayoutTests/js/string-concatenate-outofmemory.html</a></li>
<li><a href="#trunkLayoutTestsmediavideocanvashtml">trunk/LayoutTests/media/video-canvas.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacpluginspluginDocumentViewdeallocateddataSourcehtml">trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315131_decodeURIS15131_A25_T1html">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315132_decodeURIComponentS15132_A25_T1html">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T1html">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T2html">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T3html">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T4html">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T5html">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T6html">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_218S76_A11_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_218S76_A31html">trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_218S76_A32html">trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_218S76_A52_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_320S76_A11_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_320S76_A52_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_410S76_A11_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_410S76_A52_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_500S76_A11_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_500S76_A52_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_510S76_A11_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_510S76_A52_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html</a></li>
<li><a href="#trunkLayoutTestssvgbatiktexttextBiDisvg">trunk/LayoutTests/svg/batik/text/textBiDi.svg</a></li>
<li><a href="#trunkLayoutTestssvgcustomfiltersourcealphasvg">trunk/LayoutTests/svg/custom/filter-source-alpha.svg</a></li>
<li><a href="#trunkLayoutTestssvgcustomfontfacefallbacksvg">trunk/LayoutTests/svg/custom/font-face-fallback.svg</a></li>
<li><a href="#trunkLayoutTestssvgcustomjsfonttestsvg">trunk/LayoutTests/svg/custom/js-font-test.svg</a></li>
<li><a href="#trunkLayoutTestssvgzoompagezoomsvgthroughobjectwithtextxhtml">trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsanimationsfontsizeusingemshtmldisabled">trunk/LayoutTests/animations/font-size-using-ems.html-disabled</a></li>
<li><a href="#trunkLayoutTestscompositingobjectscompositedobjectalignmenthtmldisabled">trunk/LayoutTests/compositing/objects/composited-object-alignment.html-disabled</a></li>
<li><a href="#trunkLayoutTestscompositingtilinghugelayerresizehtmldisabled">trunk/LayoutTests/compositing/tiling/huge-layer-resize.html-disabled</a></li>
<li><a href="#trunkLayoutTestscompositingtilinghugelayerhtmldisabled">trunk/LayoutTests/compositing/tiling/huge-layer.html-disabled</a></li>
<li><a href="#trunkLayoutTestscss21t1202counter10bhtmldisabled">trunk/LayoutTests/css2.1/t1202-counter-10-b.html-disabled</a></li>
<li><a href="#trunkLayoutTestscss21t1202counters10bhtmldisabled">trunk/LayoutTests/css2.1/t1202-counters-10-b.html-disabled</a></li>
<li><a href="#trunkLayoutTestscss21t1204increment00cohtmldisabled">trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html-disabled</a></li>
<li><a href="#trunkLayoutTestscss21t1204increment01cohtmldisabled">trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html-disabled</a></li>
<li><a href="#trunkLayoutTestscss21t1204increment02cohtmldisabled">trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html-disabled</a></li>
<li><a href="#trunkLayoutTestscss21t1204reset00cohtmldisabled">trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html-disabled</a></li>
<li><a href="#trunkLayoutTestscss21t1204reset01cohtmldisabled">trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html-disabled</a></li>
<li><a href="#trunkLayoutTestscss21t1204reset02cohtmldisabled">trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel2htmlHTMLFrameElement09xhtmldisabled">trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredocumentadoptnode22xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredocumentnormalizedocument06xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi01xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi02xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry12xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry23xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition14xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition15xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenoderemovechild03xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodereplacechild06xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodereplacechild07xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodereplacechild08xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestseditingexecCommandcreatelist1htmldisabled">trunk/LayoutTests/editing/execCommand/create-list-1.html-disabled</a></li>
<li><a href="#trunkLayoutTestseditinginputattributedsubstringfromrangelineshtmldisabled">trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html-disabled</a></li>
<li><a href="#trunkLayoutTestseditingpasteboardpasteemptystartcontainerhtmldisabled">trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html-disabled</a></li>
<li><a href="#trunkLayoutTestseditingselectioninconsistentinremoveChildNodehtmldisabled">trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html-disabled</a></li>
<li><a href="#trunkLayoutTestseditingstyle5091898htmldisabled">trunk/LayoutTests/editing/style/5091898.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastcsscss2systemcolorhtmldisabled">trunk/LayoutTests/fast/css/css2-system-color.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastcssfontfaceinshadowDOMhtmldisabled">trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastcsslimitedvendorprefixbehaviorhtmldisabled">trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html-disabled</a></li>
<li>trunk/LayoutTests/fast/dom/HTMLDataGridElement/</li>
<li><a href="#trunkLayoutTestsfastdomWindowtimeoutreleasedonclosehtmldisabled">trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastdomWindowwindowresizenanhtmldisabled">trunk/LayoutTests/fast/dom/Window/window-resize-nan.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastdomgc8htmldisabled">trunk/LayoutTests/fast/dom/gc-8.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastdynamiccrashpaintnodocumentElementrendererhtmldisabled">trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasteventsdestroyedatomicstringhtmldisabled">trunk/LayoutTests/fast/events/destroyed-atomic-string.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasteventskeyeventsinframehtmldisabled">trunk/LayoutTests/fast/events/key-events-in-frame.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastframesiframescrollpageupdownhtmldisabled">trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasthtmlmarqueealternatehtmldisabled">trunk/LayoutTests/fast/html/marquee-alternate.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastleaks003htmldisabled">trunk/LayoutTests/fast/leaks/003.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastloaderapitestgotocurrentbackforwarditemhtmldisabled">trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastloaderapitestnewwindowdataloadbaseurlhtmldisabled">trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastloaderformeventsbackforwardhtmldisabled">trunk/LayoutTests/fast/loader/form-events-back-forward.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastnotificationsnotificationseventstoppropagationhtmldisabled">trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastnotificationsnotificationsmultieventshtmldisabled">trunk/LayoutTests/fast/notifications/notifications-multi-events.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastrubyafterblockdoesntcrashhtmldisabled">trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastrubyaftertabledoesntcrashhtmldisabled">trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastrubygeneratedaftercounterdoesntcrashhtmldisabled">trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastrubygeneratedbeforeandaftercounterdoesntcrashhtmldisabled">trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastshadowdomcopyshadowtreehtmldisabled">trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasttabledoubleheighttablenotbodyhtmldisabled">trunk/LayoutTests/fast/table/double-height-table-no-tbody.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasttextlargetextcomposedchardoshtmldisabled">trunk/LayoutTests/fast/text/large-text-composed-char-dos.html-disabled</a></li>
<li><a href="#trunkLayoutTestshttptestsappcachedynamicentriesnocacheexpectedtxt">trunk/LayoutTests/http/tests/appcache/dynamic-entries-no-cache-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestsappcachedynamicentriesnocachehtmldisabled">trunk/LayoutTests/http/tests/appcache/dynamic-entries-no-cache.html-disabled</a></li>
<li><a href="#trunkLayoutTestshttptestsmultipartwinboundarycrashhtmldisabled">trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html-disabled</a></li>
<li><a href="#trunkLayoutTestshttptestsnavigationpostgobackrepostpolicyhtmldisabled">trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html-disabled</a></li>
<li><a href="#trunkLayoutTestshttptestsnavigationsuccess200framesgobackhtmldisabled">trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html-disabled</a></li>
<li><a href="#trunkLayoutTestshttptestsnavigationsuccess200framesreloadhtmldisabled">trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html-disabled</a></li>
<li><a href="#trunkLayoutTestshttptestsnavigationsuccess200subframeloadgobackhtmldisabled">trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html-disabled</a></li>
<li><a href="#trunkLayoutTestsjavalc3ArrayMethodsobject001htmldisabled">trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html-disabled</a></li>
<li><a href="#trunkLayoutTestsjavalc3forinarray001htmldisabled">trunk/LayoutTests/java/lc3/forin/array-001.html-disabled</a></li>
<li><a href="#trunkLayoutTestsjqueryeffectshtmldisabled">trunk/LayoutTests/jquery/effects.html-disabled</a></li>
<li><a href="#trunkLayoutTestsjsgarbagecollectafterstringappendshtmldisabled">trunk/LayoutTests/js/garbage-collect-after-string-appends.html-disabled</a></li>
<li><a href="#trunkLayoutTestsjskdeDatehtmldisabled">trunk/LayoutTests/js/kde/Date.html-disabled</a></li>
<li><a href="#trunkLayoutTestsjsresourcesgarbagecollectafterstringappendsjsdisabled">trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js-disabled</a></li>
<li><a href="#trunkLayoutTestsjsstringconcatenateoutofmemoryhtmldisabled">trunk/LayoutTests/js/string-concatenate-outofmemory.html-disabled</a></li>
<li><a href="#trunkLayoutTestsmediavideocanvashtmldisabled">trunk/LayoutTests/media/video-canvas.html-disabled</a></li>
<li><a href="#trunkLayoutTestsplatformmacpluginspluginDocumentViewdeallocateddataSourcehtmldisabled">trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315131_decodeURIS15131_A25_T1htmldisabled">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315132_decodeURIComponentS15132_A25_T1htmldisabled">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T1htmldisabled">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T2htmldisabled">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T3htmldisabled">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T4htmldisabled">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T5htmldisabled">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T6htmldisabled">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_218S76_A11_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_218S76_A31htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_218S76_A32htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_218S76_A52_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_320S76_A11_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_320S76_A52_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_410S76_A11_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_410S76_A52_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_500S76_A11_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_500S76_A52_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_510S76_A11_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_510S76_A52_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssvgW3CSVG11resourcesfilterscomptran01fsvgdisabled">trunk/LayoutTests/svg/W3C-SVG-1.1/resources/filters-comptran-01-f.svg-disabled</a></li>
<li><a href="#trunkLayoutTestssvgbatiktexttextBiDisvgdisabled">trunk/LayoutTests/svg/batik/text/textBiDi.svg-disabled</a></li>
<li><a href="#trunkLayoutTestssvgcustomfiltersourcealphasvgdisabled">trunk/LayoutTests/svg/custom/filter-source-alpha.svg-disabled</a></li>
<li><a href="#trunkLayoutTestssvgcustomfontfacefallbacksvgdisabled">trunk/LayoutTests/svg/custom/font-face-fallback.svg-disabled</a></li>
<li><a href="#trunkLayoutTestssvgcustomjsfonttestsvgdisabled">trunk/LayoutTests/svg/custom/js-font-test.svg-disabled</a></li>
<li><a href="#trunkLayoutTestssvgzoompagezoomsvgthroughobjectwithtextxhtmldisabled">trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/ChangeLog        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,3 +1,124 @@
</span><ins>+2017-01-28 David Kilzer <ddkilzer@apple.com>
+
+ Migrate 97 *-disabled tests to use TestExpectations
+ <https://webkit.org/b/167537>
+
+ Reviewed by Darin Adler.
+
+ * TestExpectations: Skip renamed tests.
+
+ * fast/dom/HTMLDataGridElement/DataGridColumns-basic-expected.txt: Removed.
+ * fast/dom/HTMLDataGridElement/DataGridColumns-basic.html-disabled: Removed.
+ * fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes-expected.txt: Removed.
+ * fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes.html-disabled: Removed.
+ * fast/dom/HTMLDataGridElement/DataGridColumns-dom-expected.txt: Removed.
+ * fast/dom/HTMLDataGridElement/DataGridColumns-dom.html-disabled: Removed.
+ * fast/dom/HTMLDataGridElement/DataGridDataSource-basic-expected.txt: Removed.
+ * fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html-disabled: Removed.
+ - Tests disabled in r52512. DataGrid feature removed in r84991.
+
+ * http/tests/appcache/dynamic-entries-no-cache-expected.txt: Removed.
+ * http/tests/appcache/dynamic-entries-no-cache.html-disabled: Removed.
+ - Test disabled in r39816. AppCache dynamic entry feature removed in r95486.
+
+ * svg/W3C-SVG-1.1/resources/filters-comptran-01-f.svg-disabled: Removed.
+ - Unused. Same as LayoutTests/svg/W3C-SVG-1.1/filters-comptran-01-b.svg.
+
+ * animations/font-size-using-ems.html: Renamed from LayoutTests/animations/font-size-using-ems.html-disabled.
+ * compositing/objects/composited-object-alignment.html: Renamed from LayoutTests/compositing/objects/composited-object-alignment.html-disabled.
+ * compositing/tiling/huge-layer-resize.html: Renamed from LayoutTests/compositing/tiling/huge-layer-resize.html-disabled.
+ * compositing/tiling/huge-layer.html: Renamed from LayoutTests/compositing/tiling/huge-layer.html-disabled.
+ * css2.1/t1202-counter-10-b.html: Renamed from LayoutTests/css2.1/t1202-counter-10-b.html-disabled.
+ * css2.1/t1202-counters-10-b.html: Renamed from LayoutTests/css2.1/t1202-counters-10-b.html-disabled.
+ * css2.1/t1204-increment-00-c-o.html: Renamed from LayoutTests/css2.1/t1204-increment-00-c-o.html-disabled.
+ * css2.1/t1204-increment-01-c-o.html: Renamed from LayoutTests/css2.1/t1204-increment-01-c-o.html-disabled.
+ * css2.1/t1204-increment-02-c-o.html: Renamed from LayoutTests/css2.1/t1204-increment-02-c-o.html-disabled.
+ * css2.1/t1204-reset-00-c-o.html: Renamed from LayoutTests/css2.1/t1204-reset-00-c-o.html-disabled.
+ * css2.1/t1204-reset-01-c-o.html: Renamed from LayoutTests/css2.1/t1204-reset-01-c-o.html-disabled.
+ * css2.1/t1204-reset-02-c-o.html: Renamed from LayoutTests/css2.1/t1204-reset-02-c-o.html-disabled.
+ * dom/xhtml/level2/html/HTMLFrameElement09.xhtml: Renamed from LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled.
+ * dom/xhtml/level3/core/documentadoptnode22.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml-disabled.
+ * dom/xhtml/level3/core/documentnormalizedocument06.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml-disabled.
+ * dom/xhtml/level3/core/documentsetdocumenturi01.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml-disabled.
+ * dom/xhtml/level3/core/documentsetdocumenturi02.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml-disabled.
+ * dom/xhtml/level3/core/domimplementationregistry12.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml-disabled.
+ * dom/xhtml/level3/core/domimplementationregistry23.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml-disabled.
+ * dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml-disabled.
+ * dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml-disabled.
+ * dom/xhtml/level3/core/noderemovechild03.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml-disabled.
+ * dom/xhtml/level3/core/nodereplacechild06.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml-disabled.
+ * dom/xhtml/level3/core/nodereplacechild07.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml-disabled.
+ * dom/xhtml/level3/core/nodereplacechild08.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml-disabled.
+ * editing/execCommand/create-list-1.html: Renamed from LayoutTests/editing/execCommand/create-list-1.html-disabled.
+ * editing/input/attributed-substring-from-range-lines.html: Renamed from LayoutTests/editing/input/attributed-substring-from-range-lines.html-disabled.
+ * editing/pasteboard/paste-empty-startcontainer.html: Renamed from LayoutTests/editing/pasteboard/paste-empty-startcontainer.html-disabled.
+ * editing/selection/inconsistent-in-removeChildNode.html: Renamed from LayoutTests/editing/selection/inconsistent-in-removeChildNode.html-disabled.
+ * editing/style/5091898.html: Renamed from LayoutTests/editing/style/5091898.html-disabled.
+ * fast/css/css2-system-color.html: Renamed from LayoutTests/fast/css/css2-system-color.html-disabled.
+ * fast/css/font-face-in-shadow-DOM.html: Renamed from LayoutTests/fast/css/font-face-in-shadow-DOM.html-disabled.
+ * fast/css/limited-vendor-prefix-behavior.html: Renamed from LayoutTests/fast/css/limited-vendor-prefix-behavior.html-disabled.
+ * fast/dom/Window/timeout-released-on-close.html: Renamed from LayoutTests/fast/dom/Window/timeout-released-on-close.html-disabled.
+ * fast/dom/Window/window-resize-nan.html: Renamed from LayoutTests/fast/dom/Window/window-resize-nan.html-disabled.
+ * fast/dom/gc-8.html: Renamed from LayoutTests/fast/dom/gc-8.html-disabled.
+ * fast/dynamic/crash-paint-no-documentElement-renderer.html: Renamed from LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled.
+ * fast/events/destroyed-atomic-string.html: Renamed from LayoutTests/fast/events/destroyed-atomic-string.html-disabled.
+ * fast/events/key-events-in-frame.html: Renamed from LayoutTests/fast/events/key-events-in-frame.html-disabled.
+ * fast/frames/iframe-scroll-page-up-down.html: Renamed from LayoutTests/fast/frames/iframe-scroll-page-up-down.html-disabled.
+ * fast/html/marquee-alternate.html: Renamed from LayoutTests/fast/html/marquee-alternate.html-disabled.
+ * fast/leaks/003.html: Renamed from LayoutTests/fast/leaks/003.html-disabled.
+ * fast/loader/api-test-go-to-current-back-forward-item.html: Renamed from LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html-disabled.
+ * fast/loader/api-test-new-window-data-load-base-url.html: Renamed from LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html-disabled.
+ * fast/loader/form-events-back-forward.html: Renamed from LayoutTests/fast/loader/form-events-back-forward.html-disabled.
+ * fast/notifications/notifications-event-stop-propagation.html: Renamed from LayoutTests/fast/notifications/notifications-event-stop-propagation.html-disabled.
+ * fast/notifications/notifications-multi-events.html: Renamed from LayoutTests/fast/notifications/notifications-multi-events.html-disabled.
+ * fast/ruby/after-block-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/after-block-doesnt-crash.html-disabled.
+ * fast/ruby/after-table-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/after-table-doesnt-crash.html-disabled.
+ * fast/ruby/generated-after-counter-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html-disabled.
+ * fast/ruby/generated-before-and-after-counter-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html-disabled.
+ * fast/shadow-dom/copy-shadow-tree.html: Renamed from LayoutTests/fast/shadow-dom/copy-shadow-tree.html-disabled.
+ * fast/table/double-height-table-no-tbody.html: Renamed from LayoutTests/fast/table/double-height-table-no-tbody.html-disabled.
+ * fast/text/large-text-composed-char-dos.html: Renamed from LayoutTests/fast/text/large-text-composed-char-dos.html-disabled.
+ * http/tests/multipart/win-boundary-crash.html: Renamed from LayoutTests/http/tests/multipart/win-boundary-crash.html-disabled.
+ * http/tests/navigation/post-goback-repost-policy.html: Renamed from LayoutTests/http/tests/navigation/post-goback-repost-policy.html-disabled.
+ * http/tests/navigation/success200-frames-goback.html: Renamed from LayoutTests/http/tests/navigation/success200-frames-goback.html-disabled.
+ * http/tests/navigation/success200-frames-reload.html: Renamed from LayoutTests/http/tests/navigation/success200-frames-reload.html-disabled.
+ * http/tests/navigation/success200-subframeload-goback.html: Renamed from LayoutTests/http/tests/navigation/success200-subframeload-goback.html-disabled.
+ * java/lc3/ArrayMethods/object-001.html: Renamed from LayoutTests/java/lc3/ArrayMethods/object-001.html-disabled.
+ * java/lc3/forin/array-001.html: Renamed from LayoutTests/java/lc3/forin/array-001.html-disabled.
+ * jquery/effects.html: Renamed from LayoutTests/jquery/effects.html-disabled.
+ * js/garbage-collect-after-string-appends.html: Renamed from LayoutTests/js/garbage-collect-after-string-appends.html-disabled.
+ * js/kde/Date.html: Renamed from LayoutTests/js/kde/Date.html-disabled.
+ * js/resources/garbage-collect-after-string-appends.js: Renamed from LayoutTests/js/resources/garbage-collect-after-string-appends.js-disabled.
+ * js/string-concatenate-outofmemory.html: Renamed from LayoutTests/js/string-concatenate-outofmemory.html-disabled.
+ * media/video-canvas.html: Renamed from LayoutTests/media/video-canvas.html-disabled.
+ * platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html: Renamed from LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled.
+ * sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html-disabled.
+ * sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html-disabled.
+ * sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html-disabled.
+ * sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html-disabled.
+ * sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html-disabled.
+ * sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html-disabled.
+ * sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html-disabled.
+ * sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html-disabled.
+ * sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html-disabled.
+ * sputnik/Unicode/Unicode_218/S7.6_A3.1.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html-disabled.
+ * sputnik/Unicode/Unicode_218/S7.6_A3.2.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html-disabled.
+ * sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html-disabled.
+ * sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html-disabled.
+ * sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html-disabled.
+ * sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html-disabled.
+ * sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html-disabled.
+ * sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html-disabled.
+ * sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html-disabled.
+ * sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html-disabled.
+ * sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html-disabled.
+ * svg/batik/text/textBiDi.svg: Renamed from LayoutTests/svg/batik/text/textBiDi.svg-disabled.
+ * svg/custom/filter-source-alpha.svg: Renamed from LayoutTests/svg/custom/filter-source-alpha.svg-disabled.
+ * svg/custom/font-face-fallback.svg: Renamed from LayoutTests/svg/custom/font-face-fallback.svg-disabled.
+ * svg/custom/js-font-test.svg: Renamed from LayoutTests/svg/custom/js-font-test.svg-disabled.
+ * svg/zoom/page/zoom-svg-through-object-with-text.xhtml: Renamed from LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled.
+ - Renamed disabled tests now that they're skipped in TestExpectations.
+
</ins><span class="cx"> 2017-01-28 Matt Baker <mattbaker@apple.com>
</span><span class="cx">
</span><span class="cx"> Web Inspector: Need some limit on Async Call Stacks for async loops (rAF loops)
</span></span></pre></div>
<a id="trunkLayoutTestsTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/TestExpectations (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/TestExpectations        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/TestExpectations        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1002,3 +1002,142 @@
</span><span class="cx"> webkit.org/b/166911 fast/dom/Window/window-properties-performance-resource-timing.html [ Pass Failure ]
</span><span class="cx">
</span><span class="cx"> webkit.org/b/167428 fast/backgrounds/background-repeat-x-y-parse.html [ Failure ]
</span><ins>+
+########################################
+### START OF -disabled tests
+
+webkit.org/b/20871 js/garbage-collect-after-string-appends.html [ Skip ]
+webkit.org/b/58323 compositing/objects/composited-object-alignment.html [ Skip ]
+webkit.org/b/48454 compositing/tiling/huge-layer-resize.html [ Skip ]
+webkit.org/b/48454 compositing/tiling/huge-layer.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-increment-00-c-o.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-increment-01-c-o.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-increment-02-c-o.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-reset-00-c-o.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-reset-01-c-o.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-reset-02-c-o.html [ Skip ]
+webkit.org/b/19581 dom/xhtml/level2/html/HTMLFrameElement09.xhtml [ Skip ]
+webkit.org/b/65187 dom/xhtml/level3/core/documentsetdocumenturi01.xhtml [ Skip ]
+webkit.org/b/65187 dom/xhtml/level3/core/documentsetdocumenturi02.xhtml [ Skip ]
+webkit.org/b/10993 editing/execCommand/create-list-1.html [ Skip ]
+webkit.org/b/9640 editing/input/attributed-substring-from-range-lines.html [ Skip ]
+webkit.org/b/7899 editing/pasteboard/paste-empty-startcontainer.html [ Skip ]
+webkit.org/b/72503 fast/css/font-face-in-shadow-DOM.html [ Skip ]
+webkit.org/b/23650 fast/dom/Window/timeout-released-on-close.html [ Skip ]
+webkit.org/b/79333 fast/dynamic/crash-paint-no-documentElement-renderer.html [ Skip ]
+webkit.org/b/18057 fast/events/key-events-in-frame.html [ Skip ]
+webkit.org/b/17391 fast/frames/iframe-scroll-page-up-down.html [ Skip ]
+webkit.org/b/94130 fast/html/marquee-alternate.html [ Skip ]
+webkit.org/b/12930 fast/leaks/003.html [ Skip ]
+webkit.org/b/36425 fast/loader/api-test-go-to-current-back-forward-item.html [ Skip ]
+webkit.org/b/35594 fast/loader/api-test-new-window-data-load-base-url.html [ Skip ]
+webkit.org/b/67007 fast/ruby/after-block-doesnt-crash.html [ Skip ]
+webkit.org/b/67007 fast/ruby/after-table-doesnt-crash.html [ Skip ]
+webkit.org/b/67007 fast/ruby/generated-after-counter-doesnt-crash.html [ Skip ]
+webkit.org/b/67007 fast/ruby/generated-before-and-after-counter-doesnt-crash.html [ Skip ]
+webkit.org/b/164888 fast/shadow-dom/copy-shadow-tree.html [ Skip ]
+webkit.org/b/81826 fast/table/double-height-table-no-tbody.html [ Skip ]
+webkit.org/b/56140 fast/text/large-text-composed-char-dos.html [ Skip ]
+webkit.org/b/63268 http/tests/multipart/win-boundary-crash.html [ Skip ]
+webkit.org/b/35700 java/lc3/ArrayMethods/object-001.html [ Skip ]
+webkit.org/b/35700 java/lc3/forin/array-001.html [ Skip ]
+webkit.org/b/56080 jquery/effects.html [ Skip ]
+webkit.org/b/6547 js/kde/Date.html [ Skip ]
+webkit.org/b/15046 js/string-concatenate-outofmemory.html [ Skip ]
+webkit.org/b/24690 platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html [ Skip ]
+webkit.org/b/17392 svg/batik/text/textBiDi.svg [ Skip ]
+webkit.org/b/11662 svg/custom/js-font-test.svg [ Skip ]
+webkit.org/b/63186 svg/zoom/page/zoom-svg-through-object-with-text.xhtml [ Skip ]
+
+# Test disabled in r37513 for causing next test to hang
+animations/font-size-using-ems.html [ Skip ]
+
+# Tests disabled in r18642 due to font-dependent issue with Armenian numbering
+css2.1/t1202-counter-10-b.html [ Skip ]
+css2.1/t1202-counters-10-b.html [ Skip ]
+
+# Test disabled in r11286 since it removes entire document tree so is hard to show results
+dom/xhtml/level3/core/documentadoptnode22.xhtml [ Skip ]
+
+# Tests landed disabled in r10628 for webkit.org/b/4907
+dom/xhtml/level3/core/documentnormalizedocument06.xhtml [ Skip ]
+dom/xhtml/level3/core/domimplementationregistry12.xhtml [ Skip ]
+dom/xhtml/level3/core/domimplementationregistry23.xhtml [ Skip ]
+dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml [ Skip ]
+dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml [ Skip ]
+dom/xhtml/level3/core/noderemovechild03.xhtml [ Skip ]
+dom/xhtml/level3/core/nodereplacechild06.xhtml [ Skip ]
+dom/xhtml/level3/core/nodereplacechild07.xhtml [ Skip ]
+dom/xhtml/level3/core/nodereplacechild08.xhtml [ Skip ]
+
+# Test disabled in r30326
+editing/selection/inconsistent-in-removeChildNode.html [ Skip ]
+
+# Test disabled in r29882 after it mysteriously started passing
+editing/style/5091898.html [ Skip ]
+
+# Test disabled in r28820 since it has different results per hardware
+fast/css/css2-system-color.html [ Skip ]
+
+# Test disabled in r64074 after dropping -khtml prefix support
+fast/css/limited-vendor-prefix-behavior.html [ Skip ]
+
+# Test disabled in r42420 since it hits test-only release assert
+fast/dom/gc-8.html [ Skip ]
+
+# Test disabled in r27657
+fast/dom/Window/window-resize-nan.html [ Skip ]
+
+# Tests disabled in r38547 for webkit.org/b/22306
+fast/events/destroyed-atomic-string.html [ Skip ]
+
+# Test disabled in r12843
+fast/loader/form-events-back-forward.html [ Skip ]
+
+# Tests landed disabled in r47056 for webkit.org/b/25463; never enabled
+fast/notifications/notifications-event-stop-propagation.html [ Skip ]
+fast/notifications/notifications-multi-events.html [ Skip ]
+
+# Test disabled in r42628
+http/tests/navigation/post-goback-repost-policy.html [ Skip ]
+
+# Tests landed disabled in r15970; never enabled
+http/tests/navigation/success200-frames-goback.html [ Skip ]
+http/tests/navigation/success200-frames-reload.html [ Skip ]
+http/tests/navigation/success200-subframeload-goback.html [ Skip ]
+
+# Test disabled in r45078
+media/video-canvas.html [ Skip ]
+
+# Tests disabled in r59504 for taking over 10 seconds to run
+sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html [ Skip ]
+sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html [ Skip ]
+sputnik/Unicode/Unicode_218/S7.6_A3.1.html [ Skip ]
+sputnik/Unicode/Unicode_218/S7.6_A3.2.html [ Skip ]
+
+# Tests landed disabled in r58534; never enabled
+sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html [ Skip ]
+sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html [ Skip ]
+sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html [ Skip ]
+sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html [ Skip ]
+sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html [ Skip ]
+sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html [ Skip ]
+sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html [ Skip ]
+sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html [ Skip ]
+sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html [ Skip ]
+sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html [ Skip ]
+
+# Test disabled in r42921 for flaky failure
+svg/custom/filter-source-alpha.svg [ Skip ]
+
+# Test landed disabled in r26904; never enabled
+svg/custom/font-face-fallback.svg [ Skip ]
+
+### END OF -disabled tests
+########################################
</ins></span></pre></div>
<a id="trunkLayoutTestsanimationsfontsizeusingemshtmlfromrev211348trunkLayoutTestsanimationsfontsizeusingemshtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/animations/font-size-using-ems.html (from rev 211348, trunk/LayoutTests/animations/font-size-using-ems.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/animations/font-size-using-ems.html         (rev 0)
+++ trunk/LayoutTests/animations/font-size-using-ems.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,83 @@
</span><ins>+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>Test of font-size Animation Using em Units</title>
+ <style type="text/css" media="screen">
+ body {
+ font-family: "arial";
+ font-size: 10px;
+ }
+
+ #box {
+ position: absolute;
+ left: 0;
+ top: 100px;
+ height: 250px;
+ width: 400px;
+ border: 1px solid black;
+ -webkit-animation-duration: 1s;
+ -webkit-animation-timing-function: linear;
+ -webkit-animation-name: "anim";
+ }
+ @-webkit-keyframes "anim" {
+ from { font-size: 1em; }
+ to { font-size: 2em; }
+ }
+ </style>
+ <script type="text/javascript" charset="utf-8">
+ if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+ }
+
+ result = "PASS";
+ const defaultTolerance = 1;
+
+ function isEqual(actual, desired, tolerance)
+ {
+ if (tolerance == undefined || tolerance == 0)
+ tolerance = defaultTolerance;
+ var diff = Math.abs(actual - desired);
+ return diff < tolerance;
+ }
+
+ function snapshot(expected)
+ {
+ if (result != "PASS")
+ return;
+
+ var fontSize = parseInt(window.getComputedStyle(document.getElementById('box')).fontSize);
+ if (!isEqual(fontSize, expected)) {
+ result = "FAIL(was:"+fontSize+", expected:"+expected+")";
+ }
+ }
+
+ function start()
+ {
+ setTimeout("snapshot(13)", 333);
+
+ window.setTimeout(function() {
+ document.getElementById('result').innerHTML = result;
+ if (window.testRunner)
+ testRunner.notifyDone();
+ }, 400);
+ }
+
+ document.addEventListener('webkitAnimationStart', start, false);
+
+ </script>
+</head>
+<body>
+This test performs an animation of the font-size property using 'em' units. It tests whether or not we are properly
+getting the default font-size.
+<div id="box">
+Here is some text. Here is some text. Here is some text. Here is some text. Here is some text. Here is some text.
+Here is some text. Here is some text. Here is some text. Here is some text. Here is some text. Here is some text.
+</div>
+<div id="result">
+</div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsanimationsfontsizeusingemshtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/animations/font-size-using-ems.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/animations/font-size-using-ems.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/animations/font-size-using-ems.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,83 +0,0 @@
</span><del>-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-
-<html lang="en">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Test of font-size Animation Using em Units</title>
- <style type="text/css" media="screen">
- body {
- font-family: "arial";
- font-size: 10px;
- }
-
- #box {
- position: absolute;
- left: 0;
- top: 100px;
- height: 250px;
- width: 400px;
- border: 1px solid black;
- -webkit-animation-duration: 1s;
- -webkit-animation-timing-function: linear;
- -webkit-animation-name: "anim";
- }
- @-webkit-keyframes "anim" {
- from { font-size: 1em; }
- to { font-size: 2em; }
- }
- </style>
- <script type="text/javascript" charset="utf-8">
- if (window.testRunner) {
- testRunner.dumpAsText();
- testRunner.waitUntilDone();
- }
-
- result = "PASS";
- const defaultTolerance = 1;
-
- function isEqual(actual, desired, tolerance)
- {
- if (tolerance == undefined || tolerance == 0)
- tolerance = defaultTolerance;
- var diff = Math.abs(actual - desired);
- return diff < tolerance;
- }
-
- function snapshot(expected)
- {
- if (result != "PASS")
- return;
-
- var fontSize = parseInt(window.getComputedStyle(document.getElementById('box')).fontSize);
- if (!isEqual(fontSize, expected)) {
- result = "FAIL(was:"+fontSize+", expected:"+expected+")";
- }
- }
-
- function start()
- {
- setTimeout("snapshot(13)", 333);
-
- window.setTimeout(function() {
- document.getElementById('result').innerHTML = result;
- if (window.testRunner)
- testRunner.notifyDone();
- }, 400);
- }
-
- document.addEventListener('webkitAnimationStart', start, false);
-
- </script>
-</head>
-<body>
-This test performs an animation of the font-size property using 'em' units. It tests whether or not we are properly
-getting the default font-size.
-<div id="box">
-Here is some text. Here is some text. Here is some text. Here is some text. Here is some text. Here is some text.
-Here is some text. Here is some text. Here is some text. Here is some text. Here is some text. Here is some text.
-</div>
-<div id="result">
-</div>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestscompositingobjectscompositedobjectalignmenthtmlfromrev211348trunkLayoutTestscompositingobjectscompositedobjectalignmenthtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/compositing/objects/composited-object-alignment.html (from rev 211348, trunk/LayoutTests/compositing/objects/composited-object-alignment.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/compositing/objects/composited-object-alignment.html         (rev 0)
+++ trunk/LayoutTests/compositing/objects/composited-object-alignment.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+<!DOCTYPE html>
+<html>
+<head>
+ <title>Composited iframe test</title>
+ <style type="text/css" media="screen">
+ object {
+ position: absolute;
+ left:100px;
+ top:100px;
+ padding: 0;
+ height: 300px;
+ width: 400px;
+ }
+ .testbox {
+ height: 200px;
+ width: 200px;
+ margin: 110px;
+ background-color: red;
+ }
+ </style>
+</head>
+<body>
+ <div class="testbox"></div>
+ <object type="text/html" data="resources/composited-subframe.html"></object>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestscompositingobjectscompositedobjectalignmenthtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/compositing/objects/composited-object-alignment.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/compositing/objects/composited-object-alignment.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/compositing/objects/composited-object-alignment.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,26 +0,0 @@
</span><del>-<!DOCTYPE html>
-<html>
-<head>
- <title>Composited iframe test</title>
- <style type="text/css" media="screen">
- object {
- position: absolute;
- left:100px;
- top:100px;
- padding: 0;
- height: 300px;
- width: 400px;
- }
- .testbox {
- height: 200px;
- width: 200px;
- margin: 110px;
- background-color: red;
- }
- </style>
-</head>
-<body>
- <div class="testbox"></div>
- <object type="text/html" data="resources/composited-subframe.html"></object>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestscompositingtilinghugelayerresizehtmlfromrev211348trunkLayoutTestscompositingtilinghugelayerresizehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/compositing/tiling/huge-layer-resize.html (from rev 211348, trunk/LayoutTests/compositing/tiling/huge-layer-resize.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/compositing/tiling/huge-layer-resize.html         (rev 0)
+++ trunk/LayoutTests/compositing/tiling/huge-layer-resize.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,76 @@
</span><ins>+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test of very large layer resizing</title>
+
+ <style type="text/css" media="screen">
+
+ #container {
+ width: 500px;
+ height: 500px;
+ border: 1px solid black;
+ background-color: yellow;
+ -webkit-transform:translateZ(0);
+ }
+
+ .box {
+ position: absolute;
+ left:50px;
+ width: 200px;
+ height: 200px;
+ }
+
+ .at-the-top {
+ top: 100px;
+ background-color: red;
+ }
+ </style>
+ <script type="text/javascript" charset="utf-8">
+ if (window.testRunner)
+ testRunner.dumpAsText();
+
+ function testOnLoad()
+ {
+ // Small layer first
+ var result = recordLayerTree("First (small layer):<br>");
+
+ // Huge layer second
+ document.getElementById('container').style.height = "5000px";
+ result += recordLayerTree("<br><br>Second (huge layer):<br>");
+
+ // Small layer third
+ document.getElementById('container').style.height = "500px";
+ result += recordLayerTree("<br><br>Third (small layer):<br>");
+
+ document.getElementById('layers').innerHTML = result;
+ }
+
+ function recordLayerTree(messagePrefix)
+ {
+ if (!window.testRunner)
+ return "";
+
+ // Force a layout and a paint to make sure the compositing layers
+ // have been updated.
+ document.body.offsetLeft;
+ testRunner.display();
+
+ return messagePrefix + window.internals.layerTreeAsText(document);
+ }
+
+ window.addEventListener('load', testOnLoad, false);
+ </script>
+ </head>
+ <body>
+ <p>
+ The yellow box should be 500 x 500 on startup. Then it should
+ stretch to be 500 x 5000, then shrink back down to 500 x 500.
+ This tests that we can resize to a huge layer and back again
+ and still maintain integrity of the layer tree.
+ </p>
+ <div id="container">
+ <div class="box at-the-top"></div>
+ </div>
+ <pre id="layers">Layer tree appears here in DRT.</pre>
+ </body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestscompositingtilinghugelayerresizehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/compositing/tiling/huge-layer-resize.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/compositing/tiling/huge-layer-resize.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/compositing/tiling/huge-layer-resize.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,76 +0,0 @@
</span><del>-<!DOCTYPE html>
-<html>
- <head>
- <title>Test of very large layer resizing</title>
-
- <style type="text/css" media="screen">
-
- #container {
- width: 500px;
- height: 500px;
- border: 1px solid black;
- background-color: yellow;
- -webkit-transform:translateZ(0);
- }
-
- .box {
- position: absolute;
- left:50px;
- width: 200px;
- height: 200px;
- }
-
- .at-the-top {
- top: 100px;
- background-color: red;
- }
- </style>
- <script type="text/javascript" charset="utf-8">
- if (window.testRunner)
- testRunner.dumpAsText();
-
- function testOnLoad()
- {
- // Small layer first
- var result = recordLayerTree("First (small layer):<br>");
-
- // Huge layer second
- document.getElementById('container').style.height = "5000px";
- result += recordLayerTree("<br><br>Second (huge layer):<br>");
-
- // Small layer third
- document.getElementById('container').style.height = "500px";
- result += recordLayerTree("<br><br>Third (small layer):<br>");
-
- document.getElementById('layers').innerHTML = result;
- }
-
- function recordLayerTree(messagePrefix)
- {
- if (!window.testRunner)
- return "";
-
- // Force a layout and a paint to make sure the compositing layers
- // have been updated.
- document.body.offsetLeft;
- testRunner.display();
-
- return messagePrefix + window.internals.layerTreeAsText(document);
- }
-
- window.addEventListener('load', testOnLoad, false);
- </script>
- </head>
- <body>
- <p>
- The yellow box should be 500 x 500 on startup. Then it should
- stretch to be 500 x 5000, then shrink back down to 500 x 500.
- This tests that we can resize to a huge layer and back again
- and still maintain integrity of the layer tree.
- </p>
- <div id="container">
- <div class="box at-the-top"></div>
- </div>
- <pre id="layers">Layer tree appears here in DRT.</pre>
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestscompositingtilinghugelayerhtmlfromrev211348trunkLayoutTestscompositingtilinghugelayerhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/compositing/tiling/huge-layer.html (from rev 211348, trunk/LayoutTests/compositing/tiling/huge-layer.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/compositing/tiling/huge-layer.html         (rev 0)
+++ trunk/LayoutTests/compositing/tiling/huge-layer.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,68 @@
</span><ins>+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test of very large layer</title>
+
+ <style type="text/css" media="screen">
+
+ #container {
+ width: 500px;
+ height: 5000px;
+ border: 1px solid black;
+ background-color: yellow;
+ -webkit-transform:translateZ(0);
+ }
+
+ .box {
+ position: absolute;
+ left:50px;
+ width: 200px;
+ height: 200px;
+ }
+
+ .at-the-top {
+ top: 100px;
+ background-color: red;
+ }
+
+ .at-the-bottom {
+ top:4700px;
+ background-color: blue;
+ }
+ </style>
+ <script type="text/javascript" charset="utf-8">
+ if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+ }
+
+ function testOnLoad()
+ {
+ // Wait for a layer update and the tiled layer to fill in.
+ window.setTimeout(function() {
+ window.setTimeout(function() {
+ if (window.testRunner) {
+ document.getElementById('layers').innerHTML = window.internals.layerTreeAsText(document);
+ testRunner.notifyDone();
+ }
+ }, 0);
+ }, 0);
+ }
+
+ window.addEventListener('load', testOnLoad, false);
+ </script>
+ </head>
+ <body>
+ <p>
+ The yellow box should be large enough to scroll off the bottom.
+ There should be a red box on the first page and a blue box
+ near the bottom of the yellow box. This tests that we can support
+ very large compositing layers.
+ </p>
+ <div id="container">
+ <div class="box at-the-top"></div>
+ <div class="box at-the-bottom"></div>
+ </div>
+ <pre id="layers">Layer tree appears here in DRT.</pre>
+ </body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestscompositingtilinghugelayerhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/compositing/tiling/huge-layer.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/compositing/tiling/huge-layer.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/compositing/tiling/huge-layer.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,68 +0,0 @@
</span><del>-<!DOCTYPE html>
-<html>
- <head>
- <title>Test of very large layer</title>
-
- <style type="text/css" media="screen">
-
- #container {
- width: 500px;
- height: 5000px;
- border: 1px solid black;
- background-color: yellow;
- -webkit-transform:translateZ(0);
- }
-
- .box {
- position: absolute;
- left:50px;
- width: 200px;
- height: 200px;
- }
-
- .at-the-top {
- top: 100px;
- background-color: red;
- }
-
- .at-the-bottom {
- top:4700px;
- background-color: blue;
- }
- </style>
- <script type="text/javascript" charset="utf-8">
- if (window.testRunner) {
- testRunner.dumpAsText();
- testRunner.waitUntilDone();
- }
-
- function testOnLoad()
- {
- // Wait for a layer update and the tiled layer to fill in.
- window.setTimeout(function() {
- window.setTimeout(function() {
- if (window.testRunner) {
- document.getElementById('layers').innerHTML = window.internals.layerTreeAsText(document);
- testRunner.notifyDone();
- }
- }, 0);
- }, 0);
- }
-
- window.addEventListener('load', testOnLoad, false);
- </script>
- </head>
- <body>
- <p>
- The yellow box should be large enough to scroll off the bottom.
- There should be a red box on the first page and a blue box
- near the bottom of the yellow box. This tests that we can support
- very large compositing layers.
- </p>
- <div id="container">
- <div class="box at-the-top"></div>
- <div class="box at-the-bottom"></div>
- </div>
- <pre id="layers">Layer tree appears here in DRT.</pre>
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestscss21t1202counter10bhtmlfromrev211348trunkLayoutTestscss21t1202counter10bhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/css2.1/t1202-counter-10-b.html (from rev 211348, trunk/LayoutTests/css2.1/t1202-counter-10-b.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1202-counter-10-b.html         (rev 0)
+++ trunk/LayoutTests/css2.1/t1202-counter-10-b.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,109 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS 2.1 Test Suite: content: counter(c, armenian)</title>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counter-styles">
+ <meta http-equiv="Content-Style-Type" content="text/css"></meta>
+ <style type="text/css">
+
+ body { white-space: nowrap; }
+
+
+ #test { counter-reset: c; }
+ #test span { counter-increment: c; }
+ #test span:before { content: counter(c, armenian); }
+
+ </style>
+ </head>
+ <body>
+
+ <p>The following two lines should look the same:</p>
+
+ <div id="test">
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span style="counter-reset: c 19"></span>
+ <span style="counter-reset: c 29"></span>
+ <span style="counter-reset: c 39"></span>
+ <span style="counter-reset: c 49"></span>
+ <span style="counter-reset: c 59"></span>
+ <span style="counter-reset: c 69"></span>
+ <span style="counter-reset: c 79"></span>
+ <span style="counter-reset: c 89"></span>
+ <span style="counter-reset: c 99"></span>
+ <span style="counter-reset: c 199"></span>
+ <span style="counter-reset: c 299"></span>
+ <span style="counter-reset: c 399"></span>
+ <span style="counter-reset: c 499"></span>
+ <span style="counter-reset: c 599"></span>
+ <span style="counter-reset: c 699"></span>
+ <span style="counter-reset: c 799"></span>
+ <span style="counter-reset: c 899"></span>
+ <span style="counter-reset: c 999"></span>
+ <span style="counter-reset: c 1999"></span>
+ <span style="counter-reset: c 2999"></span>
+ <span style="counter-reset: c 3999"></span>
+ <span style="counter-reset: c 4999"></span>
+ <span style="counter-reset: c 5999"></span>
+ <span style="counter-reset: c 6999"></span>
+ <span style="counter-reset: c 7999"></span>
+ <span style="counter-reset: c 8999"></span>
+ <span style="counter-reset: c 9998"></span>
+ </div>
+
+ <div>
+ Ա
+ Բ
+ Գ
+ Դ
+ Ե
+ Զ
+ Է
+ Ը
+ Թ
+ Ժ
+ ԺԱ
+ ԺԲ
+ Ի
+ Լ
+ Խ
+ Ծ
+ Կ
+ Հ
+ Ձ
+ Ղ
+ Ճ
+ Մ
+ Յ
+ Ն
+ Շ
+ Ո
+ Չ
+ Պ
+ Ջ
+ Ռ
+ Ս
+ Վ
+ Տ
+ Ր
+ Ց
+ ՈՒ
+ Փ
+ Ք
+ ՔՋՂԹ
+ </div>
+
+ </body>
+</html>
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1202counter10bhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css2.1/t1202-counter-10-b.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1202-counter-10-b.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/css2.1/t1202-counter-10-b.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,109 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
- <head>
- <title>CSS 2.1 Test Suite: content: counter(c, armenian)</title>
- <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
- <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
- <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counter-styles">
- <meta http-equiv="Content-Style-Type" content="text/css"></meta>
- <style type="text/css">
-
- body { white-space: nowrap; }
-
-
- #test { counter-reset: c; }
- #test span { counter-increment: c; }
- #test span:before { content: counter(c, armenian); }
-
- </style>
- </head>
- <body>
-
- <p>The following two lines should look the same:</p>
-
- <div id="test">
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span style="counter-reset: c 19"></span>
- <span style="counter-reset: c 29"></span>
- <span style="counter-reset: c 39"></span>
- <span style="counter-reset: c 49"></span>
- <span style="counter-reset: c 59"></span>
- <span style="counter-reset: c 69"></span>
- <span style="counter-reset: c 79"></span>
- <span style="counter-reset: c 89"></span>
- <span style="counter-reset: c 99"></span>
- <span style="counter-reset: c 199"></span>
- <span style="counter-reset: c 299"></span>
- <span style="counter-reset: c 399"></span>
- <span style="counter-reset: c 499"></span>
- <span style="counter-reset: c 599"></span>
- <span style="counter-reset: c 699"></span>
- <span style="counter-reset: c 799"></span>
- <span style="counter-reset: c 899"></span>
- <span style="counter-reset: c 999"></span>
- <span style="counter-reset: c 1999"></span>
- <span style="counter-reset: c 2999"></span>
- <span style="counter-reset: c 3999"></span>
- <span style="counter-reset: c 4999"></span>
- <span style="counter-reset: c 5999"></span>
- <span style="counter-reset: c 6999"></span>
- <span style="counter-reset: c 7999"></span>
- <span style="counter-reset: c 8999"></span>
- <span style="counter-reset: c 9998"></span>
- </div>
-
- <div>
- Ա
- Բ
- Գ
- Դ
- Ե
- Զ
- Է
- Ը
- Թ
- Ժ
- ԺԱ
- ԺԲ
- Ի
- Լ
- Խ
- Ծ
- Կ
- Հ
- Ձ
- Ղ
- Ճ
- Մ
- Յ
- Ն
- Շ
- Ո
- Չ
- Պ
- Ջ
- Ռ
- Ս
- Վ
- Տ
- Ր
- Ց
- ՈՒ
- Փ
- Ք
- ՔՋՂԹ
- </div>
-
- </body>
-</html>
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1202counters10bhtmlfromrev211348trunkLayoutTestscss21t1202counters10bhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/css2.1/t1202-counters-10-b.html (from rev 211348, trunk/LayoutTests/css2.1/t1202-counters-10-b.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1202-counters-10-b.html         (rev 0)
+++ trunk/LayoutTests/css2.1/t1202-counters-10-b.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,109 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS 2.1 Test Suite: content: counters(c, &quot;.", armenian)</title>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counter-styles">
+ <meta http-equiv="Content-Style-Type" content="text/css"></meta>
+ <style type="text/css">
+
+ body { white-space: nowrap; }
+
+
+ body, #test span:first-child { counter-reset: c; }
+ p, #test span { counter-increment: c; }
+ #test span:before { content: counters(c, ".", armenian); }
+
+ </style>
+ </head>
+ <body>
+
+ <p>The following two lines should look the same:</p>
+
+ <div id="test">
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <span style="counter-reset: c 19"></span>
+ <span style="counter-reset: c 29"></span>
+ <span style="counter-reset: c 39"></span>
+ <span style="counter-reset: c 49"></span>
+ <span style="counter-reset: c 59"></span>
+ <span style="counter-reset: c 69"></span>
+ <span style="counter-reset: c 79"></span>
+ <span style="counter-reset: c 89"></span>
+ <span style="counter-reset: c 99"></span>
+ <span style="counter-reset: c 199"></span>
+ <span style="counter-reset: c 299"></span>
+ <span style="counter-reset: c 399"></span>
+ <span style="counter-reset: c 499"></span>
+ <span style="counter-reset: c 599"></span>
+ <span style="counter-reset: c 699"></span>
+ <span style="counter-reset: c 799"></span>
+ <span style="counter-reset: c 899"></span>
+ <span style="counter-reset: c 999"></span>
+ <span style="counter-reset: c 1999"></span>
+ <span style="counter-reset: c 2999"></span>
+ <span style="counter-reset: c 3999"></span>
+ <span style="counter-reset: c 4999"></span>
+ <span style="counter-reset: c 5999"></span>
+ <span style="counter-reset: c 6999"></span>
+ <span style="counter-reset: c 7999"></span>
+ <span style="counter-reset: c 8999"></span>
+ <span style="counter-reset: c 9998"></span>
+ </div>
+
+ <div>
+ Ա.Ա
+ Ա.Բ
+ Ա.Գ
+ Ա.Դ
+ Ա.Ե
+ Ա.Զ
+ Ա.Է
+ Ա.Ը
+ Ա.Թ
+ Ա.Ժ
+ Ա.ԺԱ
+ Ա.ԺԲ
+ Ա.Ի
+ Ա.Լ
+ Ա.Խ
+ Ա.Ծ
+ Ա.Կ
+ Ա.Հ
+ Ա.Ձ
+ Ա.Ղ
+ Ա.Ճ
+ Ա.Մ
+ Ա.Յ
+ Ա.Ն
+ Ա.Շ
+ Ա.Ո
+ Ա.Չ
+ Ա.Պ
+ Ա.Ջ
+ Ա.Ռ
+ Ա.Ս
+ Ա.Վ
+ Ա.Տ
+ Ա.Ր
+ Ա.Ց
+ Ա.ՈՒ
+ Ա.Փ
+ Ա.Ք
+ Ա.ՔՋՂԹ
+ </div>
+
+ </body>
+</html>
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1202counters10bhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css2.1/t1202-counters-10-b.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1202-counters-10-b.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/css2.1/t1202-counters-10-b.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,109 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
- <head>
- <title>CSS 2.1 Test Suite: content: counters(c, &quot;.", armenian)</title>
- <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
- <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
- <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counter-styles">
- <meta http-equiv="Content-Style-Type" content="text/css"></meta>
- <style type="text/css">
-
- body { white-space: nowrap; }
-
-
- body, #test span:first-child { counter-reset: c; }
- p, #test span { counter-increment: c; }
- #test span:before { content: counters(c, ".", armenian); }
-
- </style>
- </head>
- <body>
-
- <p>The following two lines should look the same:</p>
-
- <div id="test">
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span></span>
- <span style="counter-reset: c 19"></span>
- <span style="counter-reset: c 29"></span>
- <span style="counter-reset: c 39"></span>
- <span style="counter-reset: c 49"></span>
- <span style="counter-reset: c 59"></span>
- <span style="counter-reset: c 69"></span>
- <span style="counter-reset: c 79"></span>
- <span style="counter-reset: c 89"></span>
- <span style="counter-reset: c 99"></span>
- <span style="counter-reset: c 199"></span>
- <span style="counter-reset: c 299"></span>
- <span style="counter-reset: c 399"></span>
- <span style="counter-reset: c 499"></span>
- <span style="counter-reset: c 599"></span>
- <span style="counter-reset: c 699"></span>
- <span style="counter-reset: c 799"></span>
- <span style="counter-reset: c 899"></span>
- <span style="counter-reset: c 999"></span>
- <span style="counter-reset: c 1999"></span>
- <span style="counter-reset: c 2999"></span>
- <span style="counter-reset: c 3999"></span>
- <span style="counter-reset: c 4999"></span>
- <span style="counter-reset: c 5999"></span>
- <span style="counter-reset: c 6999"></span>
- <span style="counter-reset: c 7999"></span>
- <span style="counter-reset: c 8999"></span>
- <span style="counter-reset: c 9998"></span>
- </div>
-
- <div>
- Ա.Ա
- Ա.Բ
- Ա.Գ
- Ա.Դ
- Ա.Ե
- Ա.Զ
- Ա.Է
- Ա.Ը
- Ա.Թ
- Ա.Ժ
- Ա.ԺԱ
- Ա.ԺԲ
- Ա.Ի
- Ա.Լ
- Ա.Խ
- Ա.Ծ
- Ա.Կ
- Ա.Հ
- Ա.Ձ
- Ա.Ղ
- Ա.Ճ
- Ա.Մ
- Ա.Յ
- Ա.Ն
- Ա.Շ
- Ա.Ո
- Ա.Չ
- Ա.Պ
- Ա.Ջ
- Ա.Ռ
- Ա.Ս
- Ա.Վ
- Ա.Տ
- Ա.Ր
- Ա.Ց
- Ա.ՈՒ
- Ա.Փ
- Ա.Ք
- Ա.ՔՋՂԹ
- </div>
-
- </body>
-</html>
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204increment00cohtmlfromrev211348trunkLayoutTestscss21t1204increment00cohtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html (from rev 211348, trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html         (rev 0)
+++ trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS 2.1 Test Suite: dynamic changes to 'counter-increment'</title>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counters">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
+ <meta http-equiv="Content-Script-Type" content="text/javascript"></meta>
+ <style type="text/css">
+
+ body { white-space: nowrap; }
+
+
+ #test, .reset { counter-reset: c; }
+ .increment:before { content: counters(c, ".") "-"; }
+ .increment { counter-increment: c; }
+
+ </style>
+ <script type="text/javascript">
+
+ function run() {
+        var t = document.getElementById("test");
+        var s = document.createElement("span");
+        s.setAttribute("class", "increment");
+        s.appendChild(document.createTextNode("new-"));
+        t.insertBefore(s, t.childNodes.item(1));
+ }
+
+ </script>
+ </head>
+ <body onload="setTimeout('run()', 0)">
+
+ <p>The following two lines should be the same:</p>
+
+ <div id="test"><span class="increment"></span><span class="increment"></span><span class="increment"></span></div>
+
+ <div id="reference">1-2-new-3-4-</div>
+
+ </body>
+</html>
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204increment00cohtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,40 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
- <head>
- <title>CSS 2.1 Test Suite: dynamic changes to 'counter-increment'</title>
- <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counters">
- <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
- <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
- <meta http-equiv="Content-Script-Type" content="text/javascript"></meta>
- <style type="text/css">
-
- body { white-space: nowrap; }
-
-
- #test, .reset { counter-reset: c; }
- .increment:before { content: counters(c, ".") "-"; }
- .increment { counter-increment: c; }
-
- </style>
- <script type="text/javascript">
-
- function run() {
-        var t = document.getElementById("test");
-        var s = document.createElement("span");
-        s.setAttribute("class", "increment");
-        s.appendChild(document.createTextNode("new-"));
-        t.insertBefore(s, t.childNodes.item(1));
- }
-
- </script>
- </head>
- <body onload="setTimeout('run()', 0)">
-
- <p>The following two lines should be the same:</p>
-
- <div id="test"><span class="increment"></span><span class="increment"></span><span class="increment"></span></div>
-
- <div id="reference">1-2-new-3-4-</div>
-
- </body>
-</html>
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204increment01cohtmlfromrev211348trunkLayoutTestscss21t1204increment01cohtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html (from rev 211348, trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html         (rev 0)
+++ trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,37 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS 2.1 Test Suite: dynamic changes to 'counter-increment'</title>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counters">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
+ <meta http-equiv="Content-Script-Type" content="text/javascript"></meta>
+ <style type="text/css">
+
+ body { white-space: nowrap; }
+
+
+ #test, .reset { counter-reset: c; }
+ .increment:before { content: counters(c, ".") "-"; }
+ .increment { counter-increment: c; }
+
+ </style>
+ <script type="text/javascript">
+
+ function run() {
+        var t = document.getElementById("test");
+        t.removeChild(t.childNodes.item(1));
+ }
+
+ </script>
+ </head>
+ <body onload="setTimeout('run()', 0)">
+
+ <p>The following two lines should be the same:</p>
+
+ <div id="test"><span class="increment"></span><span class="increment">FAIL-</span><span class="increment"></span><span class="increment"></span></div>
+
+ <div id="reference">1-2-3-</div>
+
+ </body>
+</html>
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204increment01cohtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,37 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
- <head>
- <title>CSS 2.1 Test Suite: dynamic changes to 'counter-increment'</title>
- <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counters">
- <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
- <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
- <meta http-equiv="Content-Script-Type" content="text/javascript"></meta>
- <style type="text/css">
-
- body { white-space: nowrap; }
-
-
- #test, .reset { counter-reset: c; }
- .increment:before { content: counters(c, ".") "-"; }
- .increment { counter-increment: c; }
-
- </style>
- <script type="text/javascript">
-
- function run() {
-        var t = document.getElementById("test");
-        t.removeChild(t.childNodes.item(1));
- }
-
- </script>
- </head>
- <body onload="setTimeout('run()', 0)">
-
- <p>The following two lines should be the same:</p>
-
- <div id="test"><span class="increment"></span><span class="increment">FAIL-</span><span class="increment"></span><span class="increment"></span></div>
-
- <div id="reference">1-2-3-</div>
-
- </body>
-</html>
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204increment02cohtmlfromrev211348trunkLayoutTestscss21t1204increment02cohtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html (from rev 211348, trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html         (rev 0)
+++ trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,39 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS 2.1 Test Suite: dynamic changes to 'counter-increment'</title>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counters">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
+ <meta http-equiv="Content-Style-Type" content="text/css"></meta>
+ <meta http-equiv="Content-Script-Type" content="text/javascript"></meta>
+ <style type="text/css">
+
+ body { white-space: nowrap; }
+
+
+ #test, .reset { counter-reset: c; }
+ .increment:before, .use:before { content: counters(c, ".") "-"; }
+ .increment { counter-increment: c; }
+
+ </style>
+ <script type="text/javascript">
+
+ function run() {
+ document.getElementById("one").removeAttribute("class");
+        document.getElementById("two").setAttribute("class", "increment");
+        document.getElementById("three").setAttribute("style", "counter-increment: c");
+ }
+
+ </script>
+ </head>
+ <body onload="setTimeout('run()', 0)">
+
+ <p>The following two lines should be the same:</p>
+
+ <div id="test"><span class="increment" id="one"></span><span><span class="reset"><span class="increment"></span><span class="increment" id="two"></span></span></span><span class="use" id="three"></span><span class="increment"></span></div>
+
+ <div id="reference">0.1-0.2-1-2-</div>
+
+ </body>
+</html>
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204increment02cohtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,39 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
- <head>
- <title>CSS 2.1 Test Suite: dynamic changes to 'counter-increment'</title>
- <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counters">
- <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
- <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
- <meta http-equiv="Content-Style-Type" content="text/css"></meta>
- <meta http-equiv="Content-Script-Type" content="text/javascript"></meta>
- <style type="text/css">
-
- body { white-space: nowrap; }
-
-
- #test, .reset { counter-reset: c; }
- .increment:before, .use:before { content: counters(c, ".") "-"; }
- .increment { counter-increment: c; }
-
- </style>
- <script type="text/javascript">
-
- function run() {
- document.getElementById("one").removeAttribute("class");
-        document.getElementById("two").setAttribute("class", "increment");
-        document.getElementById("three").setAttribute("style", "counter-increment: c");
- }
-
- </script>
- </head>
- <body onload="setTimeout('run()', 0)">
-
- <p>The following two lines should be the same:</p>
-
- <div id="test"><span class="increment" id="one"></span><span><span class="reset"><span class="increment"></span><span class="increment" id="two"></span></span></span><span class="use" id="three"></span><span class="increment"></span></div>
-
- <div id="reference">0.1-0.2-1-2-</div>
-
- </body>
-</html>
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204reset00cohtmlfromrev211348trunkLayoutTestscss21t1204reset00cohtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html (from rev 211348, trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html         (rev 0)
+++ trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,39 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS 2.1 Test Suite: dynamic changes to 'counter-increment'</title>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counters">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
+ <meta http-equiv="Content-Script-Type" content="text/javascript"></meta>
+ <style type="text/css">
+
+ body { white-space: nowrap; }
+
+
+ #test, .reset { counter-reset: c; }
+ .increment:before { content: counters(c, ".") "-"; }
+ .increment { counter-increment: c; }
+
+ </style>
+ <script type="text/javascript">
+
+ function run() {
+        var t = document.getElementById("test");
+        var s = document.createElement("span");
+        s.setAttribute("class", "reset");
+        t.insertBefore(s, t.childNodes.item(1));
+ }
+
+ </script>
+ </head>
+ <body onload="setTimeout('run()', 0)">
+
+ <p>The following two lines should be the same:</p>
+
+ <div id="test"><span class="increment"></span><span class="increment"></span><span class="increment"></span></div>
+
+ <div id="reference">1-1.1-1.2-</div>
+
+ </body>
+</html>
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204reset00cohtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,39 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
- <head>
- <title>CSS 2.1 Test Suite: dynamic changes to 'counter-increment'</title>
- <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counters">
- <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
- <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
- <meta http-equiv="Content-Script-Type" content="text/javascript"></meta>
- <style type="text/css">
-
- body { white-space: nowrap; }
-
-
- #test, .reset { counter-reset: c; }
- .increment:before { content: counters(c, ".") "-"; }
- .increment { counter-increment: c; }
-
- </style>
- <script type="text/javascript">
-
- function run() {
-        var t = document.getElementById("test");
-        var s = document.createElement("span");
-        s.setAttribute("class", "reset");
-        t.insertBefore(s, t.childNodes.item(1));
- }
-
- </script>
- </head>
- <body onload="setTimeout('run()', 0)">
-
- <p>The following two lines should be the same:</p>
-
- <div id="test"><span class="increment"></span><span class="increment"></span><span class="increment"></span></div>
-
- <div id="reference">1-1.1-1.2-</div>
-
- </body>
-</html>
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204reset01cohtmlfromrev211348trunkLayoutTestscss21t1204reset01cohtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html (from rev 211348, trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html         (rev 0)
+++ trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,37 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS 2.1 Test Suite: dynamic changes to 'counter-increment'</title>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counters">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
+ <meta http-equiv="Content-Script-Type" content="text/javascript"></meta>
+ <style type="text/css">
+
+ body { white-space: nowrap; }
+
+
+ #test, .reset { counter-reset: c; }
+ .increment:before { content: counters(c, ".") "-"; }
+ .increment { counter-increment: c; }
+
+ </style>
+ <script type="text/javascript">
+
+ function run() {
+        var t = document.getElementById("test");
+        t.removeChild(t.childNodes.item(1));
+ }
+
+ </script>
+ </head>
+ <body onload="setTimeout('run()', 0)">
+
+ <p>The following two lines should be the same:</p>
+
+ <div id="test"><span class="increment"></span><span class="reset"></span><span class="increment"></span><span class="increment"></span></div>
+
+ <div id="reference">1-2-3-</div>
+
+ </body>
+</html>
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204reset01cohtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,37 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
- <head>
- <title>CSS 2.1 Test Suite: dynamic changes to 'counter-increment'</title>
- <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counters">
- <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
- <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
- <meta http-equiv="Content-Script-Type" content="text/javascript"></meta>
- <style type="text/css">
-
- body { white-space: nowrap; }
-
-
- #test, .reset { counter-reset: c; }
- .increment:before { content: counters(c, ".") "-"; }
- .increment { counter-increment: c; }
-
- </style>
- <script type="text/javascript">
-
- function run() {
-        var t = document.getElementById("test");
-        t.removeChild(t.childNodes.item(1));
- }
-
- </script>
- </head>
- <body onload="setTimeout('run()', 0)">
-
- <p>The following two lines should be the same:</p>
-
- <div id="test"><span class="increment"></span><span class="reset"></span><span class="increment"></span><span class="increment"></span></div>
-
- <div id="reference">1-2-3-</div>
-
- </body>
-</html>
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204reset02cohtmlfromrev211348trunkLayoutTestscss21t1204reset02cohtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html (from rev 211348, trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html         (rev 0)
+++ trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,37 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS 2.1 Test Suite: dynamic changes to 'counter-increment'</title>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counters">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
+ <meta http-equiv="Content-Script-Type" content="text/javascript"></meta>
+ <style type="text/css">
+
+ body { white-space: nowrap; }
+
+
+ #test, .reset { counter-reset: c; }
+ .increment:before { content: counters(c, ".") "-"; }
+ .increment { counter-increment: c; }
+
+ </style>
+ <script type="text/javascript">
+
+ function run() {
+        document.getElementById("one").setAttribute("class", "reset");
+ document.getElementById("two").removeAttribute("class");
+ }
+
+ </script>
+ </head>
+ <body onload="setTimeout('run()', 0)">
+
+ <p>The following two lines should be the same:</p>
+
+ <div id="test"><span class="increment"></span><span><span id="one"><span class="increment"></span></span></span><span class="increment"></span><span><span class="reset" id="two"><span class="increment"></span></span></span><span class="increment"></span></div>
+
+ <div id="reference">1-1.1-2-3-4-</div>
+
+ </body>
+</html>
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204reset02cohtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,37 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
- <head>
- <title>CSS 2.1 Test Suite: dynamic changes to 'counter-increment'</title>
- <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counters">
- <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
- <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#counter">
- <meta http-equiv="Content-Script-Type" content="text/javascript"></meta>
- <style type="text/css">
-
- body { white-space: nowrap; }
-
-
- #test, .reset { counter-reset: c; }
- .increment:before { content: counters(c, ".") "-"; }
- .increment { counter-increment: c; }
-
- </style>
- <script type="text/javascript">
-
- function run() {
-        document.getElementById("one").setAttribute("class", "reset");
- document.getElementById("two").removeAttribute("class");
- }
-
- </script>
- </head>
- <body onload="setTimeout('run()', 0)">
-
- <p>The following two lines should be the same:</p>
-
- <div id="test"><span class="increment"></span><span><span id="one"><span class="increment"></span></span></span><span class="increment"></span><span><span class="reset" id="two"><span class="increment"></span></span></span><span class="increment"></span></div>
-
- <div id="reference">1-1.1-2-3-4-</div>
-
- </body>
-</html>
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel2htmlHTMLFrameElement09xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel2htmlHTMLFrameElement09xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml         (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "xhtml1-frameset.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - FRAME2</title>
+<!-- required by frame contents -->
+<script type="text/javascript">function loadComplete() { }</script>
+<script type='text/javascript' src='selfxhtml.js'></script><script charset='UTF-8' type='text/javascript' src='HTMLFrameElement09.js'></script><script type='text/javascript'>function loadComplete() { startTest(); }</script></head>
+<frameset cols="20, 80" onload="loadComplete()">
+<frameset rows="100, 200">
+<frame id="Frame1" name="Frame1" src="resources/frame.xhtml"/>
+</frameset>
+<frame id="Frame2" name="Frame2" src="resources/iframe.xhtml"/>
+</frameset>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel2htmlHTMLFrameElement09xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,17 +0,0 @@
</span><del>-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
- "xhtml1-frameset.dtd">
-<html xmlns='http://www.w3.org/1999/xhtml'>
-<head>
-<title>NIST DOM HTML Test - FRAME2</title>
-<!-- required by frame contents -->
-<script type="text/javascript">function loadComplete() { }</script>
-<script type='text/javascript' src='selfxhtml.js'></script><script charset='UTF-8' type='text/javascript' src='HTMLFrameElement09.js'></script><script type='text/javascript'>function loadComplete() { startTest(); }</script></head>
-<frameset cols="20, 80" onload="loadComplete()">
-<frameset rows="100, 200">
-<frame id="Frame1" name="Frame1" src="resources/frame.xhtml"/>
-</frameset>
-<frame id="Frame2" name="Frame2" src="resources/iframe.xhtml"/>
-</frameset>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredocumentadoptnode22xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3coredocumentadoptnode22xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml         (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+<?xml version="1.0"?><?TEST-STYLE PIDATA?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd" [
+ <!ENTITY alpha "&#945;">
+ <!ENTITY beta "&#946;">
+ <!ENTITY gamma "&#947;">
+ <!ENTITY delta "&#948;">
+ <!ENTITY epsilon "&#949;">
+ <!ENTITY alpha "&#950;">
+ <!NOTATION notation1 PUBLIC "notation1File">
+ <!NOTATION notation2 SYSTEM "notation2File">
+ <!ATTLIST p
+ dir CDATA 'rtl'
+ xmlns:dmstc CDATA #IMPLIED
+ xmlns:nm CDATA #IMPLIED
+ xmlns:emp2 CDATA #IMPLIED>
+ <!ATTLIST html
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+ <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
+ <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
+ <!ATTLIST span xmlns CDATA #IMPLIED>
+]>
+<!-- This is comment number 1.-->
+<html xmlns='http://www.w3.org/1999/xhtml'
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="selfxhtml.js"/><script charset="UTF-8" type="text/javascript" src="documentadoptnode22.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="loadComplete()">
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0001</em>
+ <strong>Margaret Martin</strong>
+ <code>Accountant</code>
+ <sup>56,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0002</em>
+ <strong>Martha Raynolds
+<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
+<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
+ <code>Secretary</code>
+ <sup>35,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
+ 98554</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.netzero.com">
+ <em>EMP0003</em>
+ <strong>Roger
+ Jones</strong>
+ <code>Department Manager</code>
+ <sup>100,000</sup>
+ <var>&ent4;</var>
+ <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
+ </p>
+ <p xmlns:nm="http://www.altavista.com">
+ <em>EMP0004</em>
+ <strong>Jeny Oconnor</strong>
+ <code>Personnel Director</code>
+ <sup>95,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
+ </p>
+ <p xmlns:emp2="http://www.nist.gov">
+ <em>EMP0005</em>
+ <strong>Robert Myers</strong>
+ <code>Computer Specialist</code>
+ <sup>90,000</sup>
+ <var>male</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
+ </p>
+</body></html>
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredocumentadoptnode22xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-<?xml version="1.0"?><?TEST-STYLE PIDATA?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "xhtml1-strict.dtd" [
- <!ENTITY alpha "&#945;">
- <!ENTITY beta "&#946;">
- <!ENTITY gamma "&#947;">
- <!ENTITY delta "&#948;">
- <!ENTITY epsilon "&#949;">
- <!ENTITY alpha "&#950;">
- <!NOTATION notation1 PUBLIC "notation1File">
- <!NOTATION notation2 SYSTEM "notation2File">
- <!ATTLIST p
- dir CDATA 'rtl'
- xmlns:dmstc CDATA #IMPLIED
- xmlns:nm CDATA #IMPLIED
- xmlns:emp2 CDATA #IMPLIED>
- <!ATTLIST html
- xmlns:xsi CDATA #IMPLIED
- xsi:schemaLocation CDATA #IMPLIED>
- <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
- <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
- <!ATTLIST span xmlns CDATA #IMPLIED>
-]>
-<!-- This is comment number 1.-->
-<html xmlns='http://www.w3.org/1999/xhtml'
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="selfxhtml.js"/><script charset="UTF-8" type="text/javascript" src="documentadoptnode22.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="loadComplete()">
- <p xmlns:dmstc="http://www.usa.com">
- <em>EMP0001</em>
- <strong>Margaret Martin</strong>
- <code>Accountant</code>
- <sup>56,000</sup>
- <var>Female</var>
- <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
- </p>
- <p xmlns:dmstc="http://www.usa.com">
- <em>EMP0002</em>
- <strong>Martha Raynolds
-<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
-<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
- <code>Secretary</code>
- <sup>35,000</sup>
- <var>Female</var>
- <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
- 98554</acronym>
- </p>
- <p xmlns:dmstc="http://www.netzero.com">
- <em>EMP0003</em>
- <strong>Roger
- Jones</strong>
- <code>Department Manager</code>
- <sup>100,000</sup>
- <var>&ent4;</var>
- <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
- </p>
- <p xmlns:nm="http://www.altavista.com">
- <em>EMP0004</em>
- <strong>Jeny Oconnor</strong>
- <code>Personnel Director</code>
- <sup>95,000</sup>
- <var>Female</var>
- <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
- </p>
- <p xmlns:emp2="http://www.nist.gov">
- <em>EMP0005</em>
- <strong>Robert Myers</strong>
- <code>Computer Specialist</code>
- <sup>90,000</sup>
- <var>male</var>
- <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
- </p>
-</body></html>
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredocumentnormalizedocument06xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3coredocumentnormalizedocument06xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml         (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+<!DOCTYPE html [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT html (head, body)>
+<!ATTLIST html xmlns CDATA #IMPLIED>
+<!ELEMENT head (title,script*)>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ src CDATA #IMPLIED
+ type CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT body (p)>
+<!ATTLIST body onload CDATA #IMPLIED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT br EMPTY>
+]>
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>replaceWholeText sample</title>
+<script type='text/javascript' src='selfxhtml.js'></script><script charset='UTF-8' type='text/javascript' src='documentnormalizedocument06.js'></script><script type='text/javascript'>function loadComplete() { startTest(); }</script></head>
+<body onload="loadComplete()">
+<p>bar</p>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredocumentnormalizedocument06xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,25 +0,0 @@
</span><del>-<!DOCTYPE html [
-<!ENTITY ent1 'foo'>
-<!ENTITY ent2 'foo<br/>'>
-<!ELEMENT html (head, body)>
-<!ATTLIST html xmlns CDATA #IMPLIED>
-<!ELEMENT head (title,script*)>
-<!ELEMENT script (#PCDATA)>
-<!ATTLIST script
- src CDATA #IMPLIED
- type CDATA #IMPLIED
- charset CDATA #IMPLIED>
-<!ELEMENT title (#PCDATA)>
-<!ELEMENT body (p)>
-<!ATTLIST body onload CDATA #IMPLIED>
-<!ELEMENT p (#PCDATA|br)*>
-<!ELEMENT br EMPTY>
-]>
-<html xmlns='http://www.w3.org/1999/xhtml'>
-<head>
-<title>replaceWholeText sample</title>
-<script type='text/javascript' src='selfxhtml.js'></script><script charset='UTF-8' type='text/javascript' src='documentnormalizedocument06.js'></script><script type='text/javascript'>function loadComplete() { startTest(); }</script></head>
-<body onload="loadComplete()">
-<p>bar</p>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi01xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi01xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml         (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+<?xml version="1.0"?><?TEST-STYLE PIDATA?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd" [
+ <!ENTITY alpha "&#945;">
+ <!ENTITY beta "&#946;">
+ <!ENTITY gamma "&#947;">
+ <!ENTITY delta "&#948;">
+ <!ENTITY epsilon "&#949;">
+ <!ENTITY alpha "&#950;">
+ <!NOTATION notation1 PUBLIC "notation1File">
+ <!NOTATION notation2 SYSTEM "notation2File">
+ <!ATTLIST p
+ dir CDATA 'rtl'
+ xmlns:dmstc CDATA #IMPLIED
+ xmlns:nm CDATA #IMPLIED
+ xmlns:emp2 CDATA #IMPLIED>
+ <!ATTLIST html
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+ <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
+ <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
+ <!ATTLIST span xmlns CDATA #IMPLIED>
+]>
+<!-- This is comment number 1.-->
+<html xmlns='http://www.w3.org/1999/xhtml'
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="selfxhtml.js"/><script charset="UTF-8" type="text/javascript" src="documentsetdocumenturi01.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="loadComplete()">
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0001</em>
+ <strong>Margaret Martin</strong>
+ <code>Accountant</code>
+ <sup>56,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0002</em>
+ <strong>Martha Raynolds
+<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
+<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
+ <code>Secretary</code>
+ <sup>35,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
+ 98554</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.netzero.com">
+ <em>EMP0003</em>
+ <strong>Roger
+ Jones</strong>
+ <code>Department Manager</code>
+ <sup>100,000</sup>
+ <var>&ent4;</var>
+ <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
+ </p>
+ <p xmlns:nm="http://www.altavista.com">
+ <em>EMP0004</em>
+ <strong>Jeny Oconnor</strong>
+ <code>Personnel Director</code>
+ <sup>95,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
+ </p>
+ <p xmlns:emp2="http://www.nist.gov">
+ <em>EMP0005</em>
+ <strong>Robert Myers</strong>
+ <code>Computer Specialist</code>
+ <sup>90,000</sup>
+ <var>male</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
+ </p>
+</body></html>
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi01xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-<?xml version="1.0"?><?TEST-STYLE PIDATA?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "xhtml1-strict.dtd" [
- <!ENTITY alpha "&#945;">
- <!ENTITY beta "&#946;">
- <!ENTITY gamma "&#947;">
- <!ENTITY delta "&#948;">
- <!ENTITY epsilon "&#949;">
- <!ENTITY alpha "&#950;">
- <!NOTATION notation1 PUBLIC "notation1File">
- <!NOTATION notation2 SYSTEM "notation2File">
- <!ATTLIST p
- dir CDATA 'rtl'
- xmlns:dmstc CDATA #IMPLIED
- xmlns:nm CDATA #IMPLIED
- xmlns:emp2 CDATA #IMPLIED>
- <!ATTLIST html
- xmlns:xsi CDATA #IMPLIED
- xsi:schemaLocation CDATA #IMPLIED>
- <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
- <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
- <!ATTLIST span xmlns CDATA #IMPLIED>
-]>
-<!-- This is comment number 1.-->
-<html xmlns='http://www.w3.org/1999/xhtml'
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="selfxhtml.js"/><script charset="UTF-8" type="text/javascript" src="documentsetdocumenturi01.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="loadComplete()">
- <p xmlns:dmstc="http://www.usa.com">
- <em>EMP0001</em>
- <strong>Margaret Martin</strong>
- <code>Accountant</code>
- <sup>56,000</sup>
- <var>Female</var>
- <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
- </p>
- <p xmlns:dmstc="http://www.usa.com">
- <em>EMP0002</em>
- <strong>Martha Raynolds
-<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
-<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
- <code>Secretary</code>
- <sup>35,000</sup>
- <var>Female</var>
- <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
- 98554</acronym>
- </p>
- <p xmlns:dmstc="http://www.netzero.com">
- <em>EMP0003</em>
- <strong>Roger
- Jones</strong>
- <code>Department Manager</code>
- <sup>100,000</sup>
- <var>&ent4;</var>
- <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
- </p>
- <p xmlns:nm="http://www.altavista.com">
- <em>EMP0004</em>
- <strong>Jeny Oconnor</strong>
- <code>Personnel Director</code>
- <sup>95,000</sup>
- <var>Female</var>
- <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
- </p>
- <p xmlns:emp2="http://www.nist.gov">
- <em>EMP0005</em>
- <strong>Robert Myers</strong>
- <code>Computer Specialist</code>
- <sup>90,000</sup>
- <var>male</var>
- <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
- </p>
-</body></html>
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi02xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi02xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml         (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+<?xml version="1.0"?><?TEST-STYLE PIDATA?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd" [
+ <!ENTITY alpha "&#945;">
+ <!ENTITY beta "&#946;">
+ <!ENTITY gamma "&#947;">
+ <!ENTITY delta "&#948;">
+ <!ENTITY epsilon "&#949;">
+ <!ENTITY alpha "&#950;">
+ <!NOTATION notation1 PUBLIC "notation1File">
+ <!NOTATION notation2 SYSTEM "notation2File">
+ <!ATTLIST p
+ dir CDATA 'rtl'
+ xmlns:dmstc CDATA #IMPLIED
+ xmlns:nm CDATA #IMPLIED
+ xmlns:emp2 CDATA #IMPLIED>
+ <!ATTLIST html
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+ <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
+ <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
+ <!ATTLIST span xmlns CDATA #IMPLIED>
+]>
+<!-- This is comment number 1.-->
+<html xmlns='http://www.w3.org/1999/xhtml'
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="selfxhtml.js"/><script charset="UTF-8" type="text/javascript" src="documentsetdocumenturi02.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="loadComplete()">
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0001</em>
+ <strong>Margaret Martin</strong>
+ <code>Accountant</code>
+ <sup>56,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0002</em>
+ <strong>Martha Raynolds
+<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
+<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
+ <code>Secretary</code>
+ <sup>35,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
+ 98554</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.netzero.com">
+ <em>EMP0003</em>
+ <strong>Roger
+ Jones</strong>
+ <code>Department Manager</code>
+ <sup>100,000</sup>
+ <var>&ent4;</var>
+ <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
+ </p>
+ <p xmlns:nm="http://www.altavista.com">
+ <em>EMP0004</em>
+ <strong>Jeny Oconnor</strong>
+ <code>Personnel Director</code>
+ <sup>95,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
+ </p>
+ <p xmlns:emp2="http://www.nist.gov">
+ <em>EMP0005</em>
+ <strong>Robert Myers</strong>
+ <code>Computer Specialist</code>
+ <sup>90,000</sup>
+ <var>male</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
+ </p>
+</body></html>
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi02xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-<?xml version="1.0"?><?TEST-STYLE PIDATA?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "xhtml1-strict.dtd" [
- <!ENTITY alpha "&#945;">
- <!ENTITY beta "&#946;">
- <!ENTITY gamma "&#947;">
- <!ENTITY delta "&#948;">
- <!ENTITY epsilon "&#949;">
- <!ENTITY alpha "&#950;">
- <!NOTATION notation1 PUBLIC "notation1File">
- <!NOTATION notation2 SYSTEM "notation2File">
- <!ATTLIST p
- dir CDATA 'rtl'
- xmlns:dmstc CDATA #IMPLIED
- xmlns:nm CDATA #IMPLIED
- xmlns:emp2 CDATA #IMPLIED>
- <!ATTLIST html
- xmlns:xsi CDATA #IMPLIED
- xsi:schemaLocation CDATA #IMPLIED>
- <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
- <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
- <!ATTLIST span xmlns CDATA #IMPLIED>
-]>
-<!-- This is comment number 1.-->
-<html xmlns='http://www.w3.org/1999/xhtml'
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="selfxhtml.js"/><script charset="UTF-8" type="text/javascript" src="documentsetdocumenturi02.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="loadComplete()">
- <p xmlns:dmstc="http://www.usa.com">
- <em>EMP0001</em>
- <strong>Margaret Martin</strong>
- <code>Accountant</code>
- <sup>56,000</sup>
- <var>Female</var>
- <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
- </p>
- <p xmlns:dmstc="http://www.usa.com">
- <em>EMP0002</em>
- <strong>Martha Raynolds
-<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
-<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
- <code>Secretary</code>
- <sup>35,000</sup>
- <var>Female</var>
- <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
- 98554</acronym>
- </p>
- <p xmlns:dmstc="http://www.netzero.com">
- <em>EMP0003</em>
- <strong>Roger
- Jones</strong>
- <code>Department Manager</code>
- <sup>100,000</sup>
- <var>&ent4;</var>
- <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
- </p>
- <p xmlns:nm="http://www.altavista.com">
- <em>EMP0004</em>
- <strong>Jeny Oconnor</strong>
- <code>Personnel Director</code>
- <sup>95,000</sup>
- <var>Female</var>
- <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
- </p>
- <p xmlns:emp2="http://www.nist.gov">
- <em>EMP0005</em>
- <strong>Robert Myers</strong>
- <code>Computer Specialist</code>
- <sup>90,000</sup>
- <var>male</var>
- <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
- </p>
-</body></html>
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry12xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry12xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml         (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<!--
+Copyright(c) 2001-2004 World Wide Web Consortium,
+(Massachusetts Institute of Technology, European Research Consortium
+for Informatics and Mathematics, Keio University). All
+Rights Reserved. This work is distributed under the W3C(r) Software License [1] in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+[1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+-->
+        <head>
+                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+                <title>implementation</title>
+                <script type='text/javascript' src='selfxhtml.js'></script>
+                <script type='text/javascript' charset='UTF-8' src='domimplementationregistry12.js'></script>
+                <script type='text/javascript'>function loadComplete() { startTest(); }</script>
+        </head>
+        <body onload="loadComplete()">
+        </body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry12xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,25 +0,0 @@
</span><del>-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "xhtml1-strict.dtd">
-<html xmlns='http://www.w3.org/1999/xhtml'>
-<!--
-Copyright(c) 2001-2004 World Wide Web Consortium,
-(Massachusetts Institute of Technology, European Research Consortium
-for Informatics and Mathematics, Keio University). All
-Rights Reserved. This work is distributed under the W3C(r) Software License [1] in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-[1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
--->
-        <head>
-                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-                <title>implementation</title>
-                <script type='text/javascript' src='selfxhtml.js'></script>
-                <script type='text/javascript' charset='UTF-8' src='domimplementationregistry12.js'></script>
-                <script type='text/javascript'>function loadComplete() { startTest(); }</script>
-        </head>
-        <body onload="loadComplete()">
-        </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry23xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry23xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml         (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<!--
+Copyright(c) 2001-2004 World Wide Web Consortium,
+(Massachusetts Institute of Technology, European Research Consortium
+for Informatics and Mathematics, Keio University). All
+Rights Reserved. This work is distributed under the W3C(r) Software License [1] in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+[1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+-->
+        <head>
+                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+                <title>implementation</title>
+                <script type='text/javascript' src='selfxhtml.js'></script>
+                <script type='text/javascript' charset='UTF-8' src='domimplementationregistry23.js'></script>
+                <script type='text/javascript'>function loadComplete() { startTest(); }</script>
+        </head>
+        <body onload="loadComplete()">
+        </body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry23xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,25 +0,0 @@
</span><del>-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "xhtml1-strict.dtd">
-<html xmlns='http://www.w3.org/1999/xhtml'>
-<!--
-Copyright(c) 2001-2004 World Wide Web Consortium,
-(Massachusetts Institute of Technology, European Research Consortium
-for Informatics and Mathematics, Keio University). All
-Rights Reserved. This work is distributed under the W3C(r) Software License [1] in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-[1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
--->
-        <head>
-                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-                <title>implementation</title>
-                <script type='text/javascript' src='selfxhtml.js'></script>
-                <script type='text/javascript' charset='UTF-8' src='domimplementationregistry23.js'></script>
-                <script type='text/javascript'>function loadComplete() { startTest(); }</script>
-        </head>
-        <body onload="loadComplete()">
-        </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition14xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition14xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml         (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+<?xml version="1.0"?><?TEST-STYLE PIDATA?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd" [
+ <!ENTITY alpha "&#945;">
+ <!ENTITY beta "&#946;">
+ <!ENTITY gamma "&#947;">
+ <!ENTITY delta "&#948;">
+ <!ENTITY epsilon "&#949;">
+ <!ENTITY alpha "&#950;">
+ <!NOTATION notation1 PUBLIC "notation1File">
+ <!NOTATION notation2 SYSTEM "notation2File">
+ <!ATTLIST p
+ dir CDATA 'rtl'
+ xmlns:dmstc CDATA #IMPLIED
+ xmlns:nm CDATA #IMPLIED
+ xmlns:emp2 CDATA #IMPLIED>
+ <!ATTLIST html
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+ <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
+ <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
+ <!ATTLIST span xmlns CDATA #IMPLIED>
+]>
+<!-- This is comment number 1.-->
+<html xmlns='http://www.w3.org/1999/xhtml'
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="selfxhtml.js"/><script charset="UTF-8" type="text/javascript" src="nodecomparedocumentposition14.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="loadComplete()">
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0001</em>
+ <strong>Margaret Martin</strong>
+ <code>Accountant</code>
+ <sup>56,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0002</em>
+ <strong>Martha Raynolds
+<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
+<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
+ <code>Secretary</code>
+ <sup>35,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
+ 98554</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.netzero.com">
+ <em>EMP0003</em>
+ <strong>Roger
+ Jones</strong>
+ <code>Department Manager</code>
+ <sup>100,000</sup>
+ <var>&ent4;</var>
+ <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
+ </p>
+ <p xmlns:nm="http://www.altavista.com">
+ <em>EMP0004</em>
+ <strong>Jeny Oconnor</strong>
+ <code>Personnel Director</code>
+ <sup>95,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
+ </p>
+ <p xmlns:emp2="http://www.nist.gov">
+ <em>EMP0005</em>
+ <strong>Robert Myers</strong>
+ <code>Computer Specialist</code>
+ <sup>90,000</sup>
+ <var>male</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
+ </p>
+</body></html>
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition14xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-<?xml version="1.0"?><?TEST-STYLE PIDATA?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "xhtml1-strict.dtd" [
- <!ENTITY alpha "&#945;">
- <!ENTITY beta "&#946;">
- <!ENTITY gamma "&#947;">
- <!ENTITY delta "&#948;">
- <!ENTITY epsilon "&#949;">
- <!ENTITY alpha "&#950;">
- <!NOTATION notation1 PUBLIC "notation1File">
- <!NOTATION notation2 SYSTEM "notation2File">
- <!ATTLIST p
- dir CDATA 'rtl'
- xmlns:dmstc CDATA #IMPLIED
- xmlns:nm CDATA #IMPLIED
- xmlns:emp2 CDATA #IMPLIED>
- <!ATTLIST html
- xmlns:xsi CDATA #IMPLIED
- xsi:schemaLocation CDATA #IMPLIED>
- <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
- <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
- <!ATTLIST span xmlns CDATA #IMPLIED>
-]>
-<!-- This is comment number 1.-->
-<html xmlns='http://www.w3.org/1999/xhtml'
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="selfxhtml.js"/><script charset="UTF-8" type="text/javascript" src="nodecomparedocumentposition14.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="loadComplete()">
- <p xmlns:dmstc="http://www.usa.com">
- <em>EMP0001</em>
- <strong>Margaret Martin</strong>
- <code>Accountant</code>
- <sup>56,000</sup>
- <var>Female</var>
- <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
- </p>
- <p xmlns:dmstc="http://www.usa.com">
- <em>EMP0002</em>
- <strong>Martha Raynolds
-<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
-<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
- <code>Secretary</code>
- <sup>35,000</sup>
- <var>Female</var>
- <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
- 98554</acronym>
- </p>
- <p xmlns:dmstc="http://www.netzero.com">
- <em>EMP0003</em>
- <strong>Roger
- Jones</strong>
- <code>Department Manager</code>
- <sup>100,000</sup>
- <var>&ent4;</var>
- <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
- </p>
- <p xmlns:nm="http://www.altavista.com">
- <em>EMP0004</em>
- <strong>Jeny Oconnor</strong>
- <code>Personnel Director</code>
- <sup>95,000</sup>
- <var>Female</var>
- <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
- </p>
- <p xmlns:emp2="http://www.nist.gov">
- <em>EMP0005</em>
- <strong>Robert Myers</strong>
- <code>Computer Specialist</code>
- <sup>90,000</sup>
- <var>male</var>
- <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
- </p>
-</body></html>
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition15xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition15xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml         (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+<?xml version="1.0"?><?TEST-STYLE PIDATA?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd" [
+ <!ENTITY alpha "&#945;">
+ <!ENTITY beta "&#946;">
+ <!ENTITY gamma "&#947;">
+ <!ENTITY delta "&#948;">
+ <!ENTITY epsilon "&#949;">
+ <!ENTITY alpha "&#950;">
+ <!NOTATION notation1 PUBLIC "notation1File">
+ <!NOTATION notation2 SYSTEM "notation2File">
+ <!ATTLIST p
+ dir CDATA 'rtl'
+ xmlns:dmstc CDATA #IMPLIED
+ xmlns:nm CDATA #IMPLIED
+ xmlns:emp2 CDATA #IMPLIED>
+ <!ATTLIST html
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+ <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
+ <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
+ <!ATTLIST span xmlns CDATA #IMPLIED>
+]>
+<!-- This is comment number 1.-->
+<html xmlns='http://www.w3.org/1999/xhtml'
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="selfxhtml.js"/><script charset="UTF-8" type="text/javascript" src="nodecomparedocumentposition15.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="loadComplete()">
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0001</em>
+ <strong>Margaret Martin</strong>
+ <code>Accountant</code>
+ <sup>56,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0002</em>
+ <strong>Martha Raynolds
+<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
+<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
+ <code>Secretary</code>
+ <sup>35,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
+ 98554</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.netzero.com">
+ <em>EMP0003</em>
+ <strong>Roger
+ Jones</strong>
+ <code>Department Manager</code>
+ <sup>100,000</sup>
+ <var>&ent4;</var>
+ <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
+ </p>
+ <p xmlns:nm="http://www.altavista.com">
+ <em>EMP0004</em>
+ <strong>Jeny Oconnor</strong>
+ <code>Personnel Director</code>
+ <sup>95,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
+ </p>
+ <p xmlns:emp2="http://www.nist.gov">
+ <em>EMP0005</em>
+ <strong>Robert Myers</strong>
+ <code>Computer Specialist</code>
+ <sup>90,000</sup>
+ <var>male</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
+ </p>
+</body></html>
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition15xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-<?xml version="1.0"?><?TEST-STYLE PIDATA?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "xhtml1-strict.dtd" [
- <!ENTITY alpha "&#945;">
- <!ENTITY beta "&#946;">
- <!ENTITY gamma "&#947;">
- <!ENTITY delta "&#948;">
- <!ENTITY epsilon "&#949;">
- <!ENTITY alpha "&#950;">
- <!NOTATION notation1 PUBLIC "notation1File">
- <!NOTATION notation2 SYSTEM "notation2File">
- <!ATTLIST p
- dir CDATA 'rtl'
- xmlns:dmstc CDATA #IMPLIED
- xmlns:nm CDATA #IMPLIED
- xmlns:emp2 CDATA #IMPLIED>
- <!ATTLIST html
- xmlns:xsi CDATA #IMPLIED
- xsi:schemaLocation CDATA #IMPLIED>
- <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
- <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
- <!ATTLIST span xmlns CDATA #IMPLIED>
-]>
-<!-- This is comment number 1.-->
-<html xmlns='http://www.w3.org/1999/xhtml'
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="selfxhtml.js"/><script charset="UTF-8" type="text/javascript" src="nodecomparedocumentposition15.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="loadComplete()">
- <p xmlns:dmstc="http://www.usa.com">
- <em>EMP0001</em>
- <strong>Margaret Martin</strong>
- <code>Accountant</code>
- <sup>56,000</sup>
- <var>Female</var>
- <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
- </p>
- <p xmlns:dmstc="http://www.usa.com">
- <em>EMP0002</em>
- <strong>Martha Raynolds
-<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
-<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
- <code>Secretary</code>
- <sup>35,000</sup>
- <var>Female</var>
- <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
- 98554</acronym>
- </p>
- <p xmlns:dmstc="http://www.netzero.com">
- <em>EMP0003</em>
- <strong>Roger
- Jones</strong>
- <code>Department Manager</code>
- <sup>100,000</sup>
- <var>&ent4;</var>
- <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
- </p>
- <p xmlns:nm="http://www.altavista.com">
- <em>EMP0004</em>
- <strong>Jeny Oconnor</strong>
- <code>Personnel Director</code>
- <sup>95,000</sup>
- <var>Female</var>
- <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
- </p>
- <p xmlns:emp2="http://www.nist.gov">
- <em>EMP0005</em>
- <strong>Robert Myers</strong>
- <code>Computer Specialist</code>
- <sup>90,000</sup>
- <var>male</var>
- <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
- </p>
-</body></html>
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenoderemovechild03xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3corenoderemovechild03xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml         (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+<?xml version="1.0"?><?TEST-STYLE PIDATA?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd" [
+ <!ENTITY alpha "&#945;">
+ <!ENTITY beta "&#946;">
+ <!ENTITY gamma "&#947;">
+ <!ENTITY delta "&#948;">
+ <!ENTITY epsilon "&#949;">
+ <!ENTITY alpha "&#950;">
+ <!NOTATION notation1 PUBLIC "notation1File">
+ <!NOTATION notation2 SYSTEM "notation2File">
+ <!ATTLIST p
+ dir CDATA 'rtl'
+ xmlns:dmstc CDATA #IMPLIED
+ xmlns:nm CDATA #IMPLIED
+ xmlns:emp2 CDATA #IMPLIED>
+ <!ATTLIST html
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+ <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
+ <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
+ <!ATTLIST span xmlns CDATA #IMPLIED>
+]>
+<!-- This is comment number 1.-->
+<html xmlns='http://www.w3.org/1999/xhtml'
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="selfxhtml.js"/><script charset="UTF-8" type="text/javascript" src="noderemovechild03.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="loadComplete()">
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0001</em>
+ <strong>Margaret Martin</strong>
+ <code>Accountant</code>
+ <sup>56,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0002</em>
+ <strong>Martha Raynolds
+<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
+<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
+ <code>Secretary</code>
+ <sup>35,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
+ 98554</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.netzero.com">
+ <em>EMP0003</em>
+ <strong>Roger
+ Jones</strong>
+ <code>Department Manager</code>
+ <sup>100,000</sup>
+ <var>&ent4;</var>
+ <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
+ </p>
+ <p xmlns:nm="http://www.altavista.com">
+ <em>EMP0004</em>
+ <strong>Jeny Oconnor</strong>
+ <code>Personnel Director</code>
+ <sup>95,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
+ </p>
+ <p xmlns:emp2="http://www.nist.gov">
+ <em>EMP0005</em>
+ <strong>Robert Myers</strong>
+ <code>Computer Specialist</code>
+ <sup>90,000</sup>
+ <var>male</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
+ </p>
+</body></html>
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenoderemovechild03xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-<?xml version="1.0"?><?TEST-STYLE PIDATA?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "xhtml1-strict.dtd" [
- <!ENTITY alpha "&#945;">
- <!ENTITY beta "&#946;">
- <!ENTITY gamma "&#947;">
- <!ENTITY delta "&#948;">
- <!ENTITY epsilon "&#949;">
- <!ENTITY alpha "&#950;">
- <!NOTATION notation1 PUBLIC "notation1File">
- <!NOTATION notation2 SYSTEM "notation2File">
- <!ATTLIST p
- dir CDATA 'rtl'
- xmlns:dmstc CDATA #IMPLIED
- xmlns:nm CDATA #IMPLIED
- xmlns:emp2 CDATA #IMPLIED>
- <!ATTLIST html
- xmlns:xsi CDATA #IMPLIED
- xsi:schemaLocation CDATA #IMPLIED>
- <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
- <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
- <!ATTLIST span xmlns CDATA #IMPLIED>
-]>
-<!-- This is comment number 1.-->
-<html xmlns='http://www.w3.org/1999/xhtml'
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="selfxhtml.js"/><script charset="UTF-8" type="text/javascript" src="noderemovechild03.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="loadComplete()">
- <p xmlns:dmstc="http://www.usa.com">
- <em>EMP0001</em>
- <strong>Margaret Martin</strong>
- <code>Accountant</code>
- <sup>56,000</sup>
- <var>Female</var>
- <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
- </p>
- <p xmlns:dmstc="http://www.usa.com">
- <em>EMP0002</em>
- <strong>Martha Raynolds
-<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
-<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
- <code>Secretary</code>
- <sup>35,000</sup>
- <var>Female</var>
- <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
- 98554</acronym>
- </p>
- <p xmlns:dmstc="http://www.netzero.com">
- <em>EMP0003</em>
- <strong>Roger
- Jones</strong>
- <code>Department Manager</code>
- <sup>100,000</sup>
- <var>&ent4;</var>
- <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
- </p>
- <p xmlns:nm="http://www.altavista.com">
- <em>EMP0004</em>
- <strong>Jeny Oconnor</strong>
- <code>Personnel Director</code>
- <sup>95,000</sup>
- <var>Female</var>
- <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
- </p>
- <p xmlns:emp2="http://www.nist.gov">
- <em>EMP0005</em>
- <strong>Robert Myers</strong>
- <code>Computer Specialist</code>
- <sup>90,000</sup>
- <var>male</var>
- <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
- </p>
-</body></html>
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodereplacechild06xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3corenodereplacechild06xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml         (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+<?xml version="1.0"?><?TEST-STYLE PIDATA?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd" [
+ <!ENTITY alpha "&#945;">
+ <!ENTITY beta "&#946;">
+ <!ENTITY gamma "&#947;">
+ <!ENTITY delta "&#948;">
+ <!ENTITY epsilon "&#949;">
+ <!ENTITY alpha "&#950;">
+ <!NOTATION notation1 PUBLIC "notation1File">
+ <!NOTATION notation2 SYSTEM "notation2File">
+ <!ATTLIST p
+ dir CDATA 'rtl'
+ xmlns:dmstc CDATA #IMPLIED
+ xmlns:nm CDATA #IMPLIED
+ xmlns:emp2 CDATA #IMPLIED>
+ <!ATTLIST html
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+ <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
+ <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
+ <!ATTLIST span xmlns CDATA #IMPLIED>
+]>
+<!-- This is comment number 1.-->
+<html xmlns='http://www.w3.org/1999/xhtml'
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="selfxhtml.js"/><script charset="UTF-8" type="text/javascript" src="nodereplacechild06.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="loadComplete()">
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0001</em>
+ <strong>Margaret Martin</strong>
+ <code>Accountant</code>
+ <sup>56,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0002</em>
+ <strong>Martha Raynolds
+<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
+<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
+ <code>Secretary</code>
+ <sup>35,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
+ 98554</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.netzero.com">
+ <em>EMP0003</em>
+ <strong>Roger
+ Jones</strong>
+ <code>Department Manager</code>
+ <sup>100,000</sup>
+ <var>&ent4;</var>
+ <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
+ </p>
+ <p xmlns:nm="http://www.altavista.com">
+ <em>EMP0004</em>
+ <strong>Jeny Oconnor</strong>
+ <code>Personnel Director</code>
+ <sup>95,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
+ </p>
+ <p xmlns:emp2="http://www.nist.gov">
+ <em>EMP0005</em>
+ <strong>Robert Myers</strong>
+ <code>Computer Specialist</code>
+ <sup>90,000</sup>
+ <var>male</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
+ </p>
+</body></html>
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodereplacechild06xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-<?xml version="1.0"?><?TEST-STYLE PIDATA?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "xhtml1-strict.dtd" [
- <!ENTITY alpha "&#945;">
- <!ENTITY beta "&#946;">
- <!ENTITY gamma "&#947;">
- <!ENTITY delta "&#948;">
- <!ENTITY epsilon "&#949;">
- <!ENTITY alpha "&#950;">
- <!NOTATION notation1 PUBLIC "notation1File">
- <!NOTATION notation2 SYSTEM "notation2File">
- <!ATTLIST p
- dir CDATA 'rtl'
- xmlns:dmstc CDATA #IMPLIED
- xmlns:nm CDATA #IMPLIED
- xmlns:emp2 CDATA #IMPLIED>
- <!ATTLIST html
- xmlns:xsi CDATA #IMPLIED
- xsi:schemaLocation CDATA #IMPLIED>
- <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
- <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
- <!ATTLIST span xmlns CDATA #IMPLIED>
-]>
-<!-- This is comment number 1.-->
-<html xmlns='http://www.w3.org/1999/xhtml'
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="selfxhtml.js"/><script charset="UTF-8" type="text/javascript" src="nodereplacechild06.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="loadComplete()">
- <p xmlns:dmstc="http://www.usa.com">
- <em>EMP0001</em>
- <strong>Margaret Martin</strong>
- <code>Accountant</code>
- <sup>56,000</sup>
- <var>Female</var>
- <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
- </p>
- <p xmlns:dmstc="http://www.usa.com">
- <em>EMP0002</em>
- <strong>Martha Raynolds
-<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
-<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
- <code>Secretary</code>
- <sup>35,000</sup>
- <var>Female</var>
- <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
- 98554</acronym>
- </p>
- <p xmlns:dmstc="http://www.netzero.com">
- <em>EMP0003</em>
- <strong>Roger
- Jones</strong>
- <code>Department Manager</code>
- <sup>100,000</sup>
- <var>&ent4;</var>
- <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
- </p>
- <p xmlns:nm="http://www.altavista.com">
- <em>EMP0004</em>
- <strong>Jeny Oconnor</strong>
- <code>Personnel Director</code>
- <sup>95,000</sup>
- <var>Female</var>
- <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
- </p>
- <p xmlns:emp2="http://www.nist.gov">
- <em>EMP0005</em>
- <strong>Robert Myers</strong>
- <code>Computer Specialist</code>
- <sup>90,000</sup>
- <var>male</var>
- <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
- </p>
-</body></html>
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodereplacechild07xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3corenodereplacechild07xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml         (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+<?xml version="1.0"?><?TEST-STYLE PIDATA?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd" [
+ <!ENTITY alpha "&#945;">
+ <!ENTITY beta "&#946;">
+ <!ENTITY gamma "&#947;">
+ <!ENTITY delta "&#948;">
+ <!ENTITY epsilon "&#949;">
+ <!ENTITY alpha "&#950;">
+ <!NOTATION notation1 PUBLIC "notation1File">
+ <!NOTATION notation2 SYSTEM "notation2File">
+ <!ATTLIST p
+ dir CDATA 'rtl'
+ xmlns:dmstc CDATA #IMPLIED
+ xmlns:nm CDATA #IMPLIED
+ xmlns:emp2 CDATA #IMPLIED>
+ <!ATTLIST html
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED>
+ <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
+ <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
+ <!ATTLIST span xmlns CDATA #IMPLIED>
+]>
+<!-- This is comment number 1.-->
+<html xmlns='http://www.w3.org/1999/xhtml'
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="selfxhtml.js"/><script charset="UTF-8" type="text/javascript" src="nodereplacechild07.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="loadComplete()">
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0001</em>
+ <strong>Margaret Martin</strong>
+ <code>Accountant</code>
+ <sup>56,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.usa.com">
+ <em>EMP0002</em>
+ <strong>Martha Raynolds
+<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
+<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
+ <code>Secretary</code>
+ <sup>35,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
+ 98554</acronym>
+ </p>
+ <p xmlns:dmstc="http://www.netzero.com">
+ <em>EMP0003</em>
+ <strong>Roger
+ Jones</strong>
+ <code>Department Manager</code>
+ <sup>100,000</sup>
+ <var>&ent4;</var>
+ <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
+ </p>
+ <p xmlns:nm="http://www.altavista.com">
+ <em>EMP0004</em>
+ <strong>Jeny Oconnor</strong>
+ <code>Personnel Director</code>
+ <sup>95,000</sup>
+ <var>Female</var>
+ <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
+ </p>
+ <p xmlns:emp2="http://www.nist.gov">
+ <em>EMP0005</em>
+ <strong>Robert Myers</strong>
+ <code>Computer Specialist</code>
+ <sup>90,000</sup>
+ <var>male</var>
+ <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
+ </p>
+</body></html>
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodereplacechild07xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-<?xml version="1.0"?><?TEST-STYLE PIDATA?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "xhtml1-strict.dtd" [
- <!ENTITY alpha "&#945;">
- <!ENTITY beta "&#946;">
- <!ENTITY gamma "&#947;">
- <!ENTITY delta "&#948;">
- <!ENTITY epsilon "&#949;">
- <!ENTITY alpha "&#950;">
- <!NOTATION notation1 PUBLIC "notation1File">
- <!NOTATION notation2 SYSTEM "notation2File">
- <!ATTLIST p
- dir CDATA 'rtl'
- xmlns:dmstc CDATA #IMPLIED
- xmlns:nm CDATA #IMPLIED
- xmlns:emp2 CDATA #IMPLIED>
- <!ATTLIST html
- xmlns:xsi CDATA #IMPLIED
- xsi:schemaLocation CDATA #IMPLIED>
- <!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
- <!ENTITY ent4 "<span xmlns='http://www.w3.org/1999/xhtml'>Element data</span><?PItarget PIdata?>">
- <!ATTLIST span xmlns CDATA #IMPLIED>
-]>
-<!-- This is comment number 1.-->
-<html xmlns='http://www.w3.org/1999/xhtml'
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.w3.org/1999/xhtml hc_staff.xsd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>hc_staff</title><script type="text/javascript" src="selfxhtml.js"/><script charset="UTF-8" type="text/javascript" src="nodereplacechild07.js"/><script type='text/javascript'>function loadComplete() { startTest(); }</script></head><body onload="loadComplete()">
- <p xmlns:dmstc="http://www.usa.com">
- <em>EMP0001</em>
- <strong>Margaret Martin</strong>
- <code>Accountant</code>
- <sup>56,000</sup>
- <var>Female</var>
- <acronym title="Yes" xsi:noNamespaceSchemaLocation="Yes">1230 North Ave. Dallas, Texas 98551</acronym>
- </p>
- <p xmlns:dmstc="http://www.usa.com">
- <em>EMP0002</em>
- <strong>Martha Raynolds
-<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
-<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></strong>
- <code>Secretary</code>
- <sup>35,000</sup>
- <var>Female</var>
- <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">&beta; Dallas, &gamma;
- 98554</acronym>
- </p>
- <p xmlns:dmstc="http://www.netzero.com">
- <em>EMP0003</em>
- <strong>Roger
- Jones</strong>
- <code>Department Manager</code>
- <sup>100,000</sup>
- <var>&ent4;</var>
- <acronym title="Yes" class="No" id="_98553" xsi:noNamespaceSchemaLocation="Yes">PO Box 27 Irving, texas 98553</acronym>
- </p>
- <p xmlns:nm="http://www.altavista.com">
- <em>EMP0004</em>
- <strong>Jeny Oconnor</strong>
- <code>Personnel Director</code>
- <sup>95,000</sup>
- <var>Female</var>
- <acronym title="Yes" class="Y&alpha;" id="_98556" xsi:noNamespaceSchemaLocation="Yes">27 South Road. Dallas, Texas 98556</acronym>
- </p>
- <p xmlns:emp2="http://www.nist.gov">
- <em>EMP0005</em>
- <strong>Robert Myers</strong>
- <code>Computer Specialist</code>
- <sup>90,000</sup>
- <var>male</var>
- <acronym title="Yes" class="Yes" xsi:noNamespaceSchemaLocation="Yes">1821 Nordic. Road, Irving Texas 98558</acronym>
- </p>
-</body></html>
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodereplacechild08xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3corenodereplacechild08xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml         (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+<!DOCTYPE html [
+<!ENTITY ent1 'foo'>
+<!ENTITY ent2 'foo<br/>'>
+<!ELEMENT html (head, body)>
+<!ATTLIST html xmlns CDATA #IMPLIED>
+<!ELEMENT head (title,script*)>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ src CDATA #IMPLIED
+ type CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT body (p)>
+<!ATTLIST body onload CDATA #IMPLIED>
+<!ELEMENT p (#PCDATA|br)*>
+<!ELEMENT br EMPTY>
+]>
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>replaceWholeText sample</title>
+<script type='text/javascript' src='selfxhtml.js'></script><script charset='UTF-8' type='text/javascript' src='nodereplacechild08.js'></script><script type='text/javascript'>function loadComplete() { startTest(); }</script></head>
+<body onload="loadComplete()">
+<p>bar</p>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodereplacechild08xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,25 +0,0 @@
</span><del>-<!DOCTYPE html [
-<!ENTITY ent1 'foo'>
-<!ENTITY ent2 'foo<br/>'>
-<!ELEMENT html (head, body)>
-<!ATTLIST html xmlns CDATA #IMPLIED>
-<!ELEMENT head (title,script*)>
-<!ELEMENT script (#PCDATA)>
-<!ATTLIST script
- src CDATA #IMPLIED
- type CDATA #IMPLIED
- charset CDATA #IMPLIED>
-<!ELEMENT title (#PCDATA)>
-<!ELEMENT body (p)>
-<!ATTLIST body onload CDATA #IMPLIED>
-<!ELEMENT p (#PCDATA|br)*>
-<!ELEMENT br EMPTY>
-]>
-<html xmlns='http://www.w3.org/1999/xhtml'>
-<head>
-<title>replaceWholeText sample</title>
-<script type='text/javascript' src='selfxhtml.js'></script><script charset='UTF-8' type='text/javascript' src='nodereplacechild08.js'></script><script type='text/javascript'>function loadComplete() { startTest(); }</script></head>
-<body onload="loadComplete()">
-<p>bar</p>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestseditingexecCommandcreatelist1htmlfromrev211348trunkLayoutTestseditingexecCommandcreatelist1htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/editing/execCommand/create-list-1.html (from rev 211348, trunk/LayoutTests/editing/execCommand/create-list-1.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/execCommand/create-list-1.html         (rev 0)
+++ trunk/LayoutTests/editing/execCommand/create-list-1.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+<p>This tests list creation in an empty line. The caret should end up in the empty list item.</p>
+<div contenteditable="true" id="div">Paragraph One.<br><br>Paragraph Two.</div>
+
+<script>
+var div = document.getElementById("div");
+var sel = window.getSelection();
+
+sel.setPosition(div, 0);
+sel.modify("move", "forward", "line");
+document.execCommand("InsertOrderedList");
+</script>
</ins></span></pre></div>
<a id="trunkLayoutTestseditingexecCommandcreatelist1htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/editing/execCommand/create-list-1.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/execCommand/create-list-1.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/editing/execCommand/create-list-1.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,11 +0,0 @@
</span><del>-<p>This tests list creation in an empty line. The caret should end up in the empty list item.</p>
-<div contenteditable="true" id="div">Paragraph One.<br><br>Paragraph Two.</div>
-
-<script>
-var div = document.getElementById("div");
-var sel = window.getSelection();
-
-sel.setPosition(div, 0);
-sel.modify("move", "forward", "line");
-document.execCommand("InsertOrderedList");
-</script>
</del></span></pre></div>
<a id="trunkLayoutTestseditinginputattributedsubstringfromrangelineshtmlfromrev211348trunkLayoutTestseditinginputattributedsubstringfromrangelineshtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html (from rev 211348, trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html         (rev 0)
+++ trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,130 @@
</span><ins>+<html>
+<head>
+<style>
+.editing {
+ margin: 10; padding: 0;
+}
+</style>
+<script src=../editing.js language="JavaScript" type="text/JavaScript" ></script>
+
+<script>
+
+function editingTest() {
+ typeCharacterCommand('1');
+ typeCharacterCommand('2');
+ boldCommand();
+ typeCharacterCommand('3');
+ italicCommand();
+ typeCharacterCommand('4');
+ typeCharacterCommand('5');
+ typeCharacterCommand('6');
+ italicCommand();
+ boldCommand();
+ insertParagraphCommand();
+ typeCharacterCommand('l');
+ typeCharacterCommand('i');
+ typeCharacterCommand('n');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ typeCharacterCommand('t');
+ typeCharacterCommand('w');
+ typeCharacterCommand('o');
+ insertLineBreakCommand();
+ insertLineBreakCommand();
+ typeCharacterCommand('a');
+ typeCharacterCommand('n');
+ typeCharacterCommand('d');
+ typeCharacterCommand(' ');
+ fontSizeCommand("6");
+ underlineCommand();
+ typeCharacterCommand('t');
+ typeCharacterCommand('h');
+ typeCharacterCommand('r');
+ typeCharacterCommand('e');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ typeCharacterCommand(' ');
+ typeCharacterCommand(' ');
+ underlineCommand();
+ insertLineBreakCommand();
+}
+
+</script>
+
+<title>Attributed String Test</title>
+</head>
+<body contenteditable id="root">
+<div id="wrapper">
+<div class="editing" id="test"></div>
+</div>
+
+<script>
+runEditingTest();
+</script>
+
+<script type="text/javascript">
+
+ var console_messages = document.createElement("ol");
+
+ function log(message)
+ {
+ var item = document.createElement("li");
+ item.appendChild(document.createTextNode(String(message).replace(/0x[0-9a-fA-F]{8}/g, "0xXXXXXXXX")));
+ console_messages.appendChild(item);
+ }
+
+ if (window.testRunner) {
+
+ try {
+
+ testRunner.dumpAsText();
+
+ log("Actual HTML:");
+ log("<pre>" + document.getElementById("wrapper").innerHTML + "</pre>");
+ window.getSelection().setPosition(document.body, 0);
+
+ log("(0, 0): " + textInputController.attributedSubstringFromRange(0, 0));
+ log("(0, 0) length: " + textInputController.attributedSubstringFromRange(0, 0).length());
+ log("(0, 2): " + textInputController.attributedSubstringFromRange(0, 2));
+ log("(0, 2) length: " + textInputController.attributedSubstringFromRange(0, 2).length());
+ log("(1, 2): " + textInputController.attributedSubstringFromRange(1, 2));
+ log("(1, 2) length: " + textInputController.attributedSubstringFromRange(1, 2).length());
+ log("(0, 3): " + textInputController.attributedSubstringFromRange(0, 3));
+ log("(0, 3) length: " + textInputController.attributedSubstringFromRange(0, 3).length());
+ log("(0, 6): " + textInputController.attributedSubstringFromRange(0, 6));
+ log("(0, 6) length: " + textInputController.attributedSubstringFromRange(0, 6).length());
+ log("(0, 7): " + textInputController.attributedSubstringFromRange(0, 7));
+ log("(0, 7) length: " + textInputController.attributedSubstringFromRange(0, 7).length()); // should be 7 characters!
+ log("(0, 31): " + textInputController.attributedSubstringFromRange(0, 31));
+ log("(0, 31) length: " + textInputController.attributedSubstringFromRange(0, 31).length()); // actual length IS 31
+ log("(0, 100): " + textInputController.attributedSubstringFromRange(0, 100));
+ log("(0, 100) length: " + textInputController.attributedSubstringFromRange(0, 100).length()); // should be 31 characters!
+ log("(1, 100): " + textInputController.attributedSubstringFromRange(1, 100));
+ log("(1, 100) length: " + textInputController.attributedSubstringFromRange(1, 100).length()); // should be 30 characters!
+ log("(2, 3): " + textInputController.attributedSubstringFromRange(2, 3));
+ log("(2, 3) length: " + textInputController.attributedSubstringFromRange(2, 3).length());
+ log("(5, 1): " + textInputController.attributedSubstringFromRange(5, 1));
+ log("(5, 1) length: " + textInputController.attributedSubstringFromRange(5, 1).length());
+ log("(5, 2): " + textInputController.attributedSubstringFromRange(5, 2));
+ log("(5, 2) length: " + textInputController.attributedSubstringFromRange(5, 2).length());
+ log("(5, 5): " + textInputController.attributedSubstringFromRange(5, 5));
+ log("(5, 5) length: " + textInputController.attributedSubstringFromRange(5, 5).length());
+ log("(15, 14): " + textInputController.attributedSubstringFromRange(15, 14));
+ log("(15, 14) length: " + textInputController.attributedSubstringFromRange(15, 14).length()); // should be 14 characters!
+ log("(100, 0): " + textInputController.attributedSubstringFromRange(100, 0)); // should be undefined
+ log("(100, 100): " + textInputController.attributedSubstringFromRange(100, 100)); // should be undefined
+
+ } catch (ex) {
+ log("Exception: " + ex.description);
+ }
+
+ var console = document.createElement("p");
+ console.appendChild(console_messages);
+ document.body.appendChild(console);
+
+ } else {
+ document.write("(cannot run interactively)");
+ }
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestseditinginputattributedsubstringfromrangelineshtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,130 +0,0 @@
</span><del>-<html>
-<head>
-<style>
-.editing {
- margin: 10; padding: 0;
-}
-</style>
-<script src=../editing.js language="JavaScript" type="text/JavaScript" ></script>
-
-<script>
-
-function editingTest() {
- typeCharacterCommand('1');
- typeCharacterCommand('2');
- boldCommand();
- typeCharacterCommand('3');
- italicCommand();
- typeCharacterCommand('4');
- typeCharacterCommand('5');
- typeCharacterCommand('6');
- italicCommand();
- boldCommand();
- insertParagraphCommand();
- typeCharacterCommand('l');
- typeCharacterCommand('i');
- typeCharacterCommand('n');
- typeCharacterCommand('e');
- typeCharacterCommand(' ');
- typeCharacterCommand('t');
- typeCharacterCommand('w');
- typeCharacterCommand('o');
- insertLineBreakCommand();
- insertLineBreakCommand();
- typeCharacterCommand('a');
- typeCharacterCommand('n');
- typeCharacterCommand('d');
- typeCharacterCommand(' ');
- fontSizeCommand("6");
- underlineCommand();
- typeCharacterCommand('t');
- typeCharacterCommand('h');
- typeCharacterCommand('r');
- typeCharacterCommand('e');
- typeCharacterCommand('e');
- typeCharacterCommand(' ');
- typeCharacterCommand(' ');
- typeCharacterCommand(' ');
- underlineCommand();
- insertLineBreakCommand();
-}
-
-</script>
-
-<title>Attributed String Test</title>
-</head>
-<body contenteditable id="root">
-<div id="wrapper">
-<div class="editing" id="test"></div>
-</div>
-
-<script>
-runEditingTest();
-</script>
-
-<script type="text/javascript">
-
- var console_messages = document.createElement("ol");
-
- function log(message)
- {
- var item = document.createElement("li");
- item.appendChild(document.createTextNode(String(message).replace(/0x[0-9a-fA-F]{8}/g, "0xXXXXXXXX")));
- console_messages.appendChild(item);
- }
-
- if (window.testRunner) {
-
- try {
-
- testRunner.dumpAsText();
-
- log("Actual HTML:");
- log("<pre>" + document.getElementById("wrapper").innerHTML + "</pre>");
- window.getSelection().setPosition(document.body, 0);
-
- log("(0, 0): " + textInputController.attributedSubstringFromRange(0, 0));
- log("(0, 0) length: " + textInputController.attributedSubstringFromRange(0, 0).length());
- log("(0, 2): " + textInputController.attributedSubstringFromRange(0, 2));
- log("(0, 2) length: " + textInputController.attributedSubstringFromRange(0, 2).length());
- log("(1, 2): " + textInputController.attributedSubstringFromRange(1, 2));
- log("(1, 2) length: " + textInputController.attributedSubstringFromRange(1, 2).length());
- log("(0, 3): " + textInputController.attributedSubstringFromRange(0, 3));
- log("(0, 3) length: " + textInputController.attributedSubstringFromRange(0, 3).length());
- log("(0, 6): " + textInputController.attributedSubstringFromRange(0, 6));
- log("(0, 6) length: " + textInputController.attributedSubstringFromRange(0, 6).length());
- log("(0, 7): " + textInputController.attributedSubstringFromRange(0, 7));
- log("(0, 7) length: " + textInputController.attributedSubstringFromRange(0, 7).length()); // should be 7 characters!
- log("(0, 31): " + textInputController.attributedSubstringFromRange(0, 31));
- log("(0, 31) length: " + textInputController.attributedSubstringFromRange(0, 31).length()); // actual length IS 31
- log("(0, 100): " + textInputController.attributedSubstringFromRange(0, 100));
- log("(0, 100) length: " + textInputController.attributedSubstringFromRange(0, 100).length()); // should be 31 characters!
- log("(1, 100): " + textInputController.attributedSubstringFromRange(1, 100));
- log("(1, 100) length: " + textInputController.attributedSubstringFromRange(1, 100).length()); // should be 30 characters!
- log("(2, 3): " + textInputController.attributedSubstringFromRange(2, 3));
- log("(2, 3) length: " + textInputController.attributedSubstringFromRange(2, 3).length());
- log("(5, 1): " + textInputController.attributedSubstringFromRange(5, 1));
- log("(5, 1) length: " + textInputController.attributedSubstringFromRange(5, 1).length());
- log("(5, 2): " + textInputController.attributedSubstringFromRange(5, 2));
- log("(5, 2) length: " + textInputController.attributedSubstringFromRange(5, 2).length());
- log("(5, 5): " + textInputController.attributedSubstringFromRange(5, 5));
- log("(5, 5) length: " + textInputController.attributedSubstringFromRange(5, 5).length());
- log("(15, 14): " + textInputController.attributedSubstringFromRange(15, 14));
- log("(15, 14) length: " + textInputController.attributedSubstringFromRange(15, 14).length()); // should be 14 characters!
- log("(100, 0): " + textInputController.attributedSubstringFromRange(100, 0)); // should be undefined
- log("(100, 100): " + textInputController.attributedSubstringFromRange(100, 100)); // should be undefined
-
- } catch (ex) {
- log("Exception: " + ex.description);
- }
-
- var console = document.createElement("p");
- console.appendChild(console_messages);
- document.body.appendChild(console);
-
- } else {
- document.write("(cannot run interactively)");
- }
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestseditingpasteboardpasteemptystartcontainerhtmlfromrev211348trunkLayoutTestseditingpasteboardpasteemptystartcontainerhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html (from rev 211348, trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html         (rev 0)
+++ trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,55 @@
</span><ins>+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+<script src=../editing.js language="JavaScript" type="text/JavaScript" ></script>
+
+<script>
+
+function editingTest() {
+ extendSelectionForwardByLineCommand();
+ copyCommand();
+ moveSelectionForwardByLineCommand();
+ pasteCommand();
+}
+
+</script>
+
+<title>Editing Test</title>
+</head>
+<body>
+
+<div class="explanation">
+<div class="scenario">
+Tests:
+<br>
+Fix for this bug:
+<a href="rdar://problem/4423922">&lt;rdar://problem/4045511&gt;</a> TOT REGRESSION (r12358): second iframe in pair fails to copy
+</div>
+<div class="expected-results">
+Expected Results:
+<br>
+Should see four blank iframes
+<br>
+</div>
+</div>
+
+<div contenteditable id="root" class="editing">
+<div id="test">
+<iframe style="border:solid blue 2px"></iframe>
+<iframe style="border:solid green 2px";"></iframe>
+</DIV>
+</div>
+
+<script>
+runEditingTest();
+</script>
+
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestseditingpasteboardpasteemptystartcontainerhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,55 +0,0 @@
</span><del>-<html>
-<head>
-
-<style>
-.editing {
- border: 2px solid red;
- padding: 12px;
- font-size: 24px;
-}
-</style>
-<script src=../editing.js language="JavaScript" type="text/JavaScript" ></script>
-
-<script>
-
-function editingTest() {
- extendSelectionForwardByLineCommand();
- copyCommand();
- moveSelectionForwardByLineCommand();
- pasteCommand();
-}
-
-</script>
-
-<title>Editing Test</title>
-</head>
-<body>
-
-<div class="explanation">
-<div class="scenario">
-Tests:
-<br>
-Fix for this bug:
-<a href="rdar://problem/4423922">&lt;rdar://problem/4045511&gt;</a> TOT REGRESSION (r12358): second iframe in pair fails to copy
-</div>
-<div class="expected-results">
-Expected Results:
-<br>
-Should see four blank iframes
-<br>
-</div>
-</div>
-
-<div contenteditable id="root" class="editing">
-<div id="test">
-<iframe style="border:solid blue 2px"></iframe>
-<iframe style="border:solid green 2px";"></iframe>
-</DIV>
-</div>
-
-<script>
-runEditingTest();
-</script>
-
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestseditingselectioninconsistentinremoveChildNodehtmlfromrev211348trunkLayoutTestseditingselectioninconsistentinremoveChildNodehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html (from rev 211348, trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html         (rev 0)
+++ trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+<p>
+ Test for <a href="rdar://problem/5645813">rdar://problem/5645813</a>.
+</p>
+<div id="d1">
+ Selected text
+</div>
+<div id="d2">
+ YOU SHOULD NOT SEE THIS TEXT
+</div>
+<div id="d3" style="background: red; width: 50px; height: 50px;">
+</div>
+<script>
+ getSelection().setBaseAndExtent(d1, 0, d2.firstChild, 6);
+ d2.style.display = "none";
+ document.body.offsetTop;
+ d3.style.display = "none";
+ d3.parentNode.removeChild(d3);
+</script>
</ins></span></pre></div>
<a id="trunkLayoutTestseditingselectioninconsistentinremoveChildNodehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,18 +0,0 @@
</span><del>-<p>
- Test for <a href="rdar://problem/5645813">rdar://problem/5645813</a>.
-</p>
-<div id="d1">
- Selected text
-</div>
-<div id="d2">
- YOU SHOULD NOT SEE THIS TEXT
-</div>
-<div id="d3" style="background: red; width: 50px; height: 50px;">
-</div>
-<script>
- getSelection().setBaseAndExtent(d1, 0, d2.firstChild, 6);
- d2.style.display = "none";
- document.body.offsetTop;
- d3.style.display = "none";
- d3.parentNode.removeChild(d3);
-</script>
</del></span></pre></div>
<a id="trunkLayoutTestseditingstyle5091898htmlfromrev211348trunkLayoutTestseditingstyle5091898htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/editing/style/5091898.html (from rev 211348, trunk/LayoutTests/editing/style/5091898.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/style/5091898.html         (rev 0)
+++ trunk/LayoutTests/editing/style/5091898.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+<html style="font-family: Times New Roman; font-size: 13px;">
+<body contenteditable="true" style="font-family: Arial; font-weight: bold;">This text should be Arial bold.</body>
+<script>
+document.body.focus();
+document.execCommand("SelectAll");
+document.execCommand("Underline");
+document.execCommand("Copy");
+window.getSelection().modify("move", "forward", "character");
+document.execCommand("Paste");
+</script>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestseditingstyle5091898htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/editing/style/5091898.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/style/5091898.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/editing/style/5091898.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,11 +0,0 @@
</span><del>-<html style="font-family: Times New Roman; font-size: 13px;">
-<body contenteditable="true" style="font-family: Arial; font-weight: bold;">This text should be Arial bold.</body>
-<script>
-document.body.focus();
-document.execCommand("SelectAll");
-document.execCommand("Underline");
-document.execCommand("Copy");
-window.getSelection().modify("move", "forward", "character");
-document.execCommand("Paste");
-</script>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastcsscss2systemcolorhtmlfromrev211348trunkLayoutTestsfastcsscss2systemcolorhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/css/css2-system-color.html (from rev 211348, trunk/LayoutTests/fast/css/css2-system-color.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/css2-system-color.html         (rev 0)
+++ trunk/LayoutTests/fast/css/css2-system-color.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,60 @@
</span><ins>+<html><head><title>Color Test</title>
+<style>
+ html { text-align: center; font-size: 10px; font-family: verdana; }
+ .content {
+ border: 1px solid black;
+ margin: 0 auto;
+ text-align: left;
+ width: 750px;
+ padding: 2px 2px 1px 2px;
+ }
+ .box { width: 100%; margin-bottom: 1px; }
+ .box:after {
+ content: " ";
+ display: block;
+ visibility: hidden;
+ clear: both;
+ height: 0.1px;
+ font-size: 0.1em;
+ line-height: 0;
+ }
+ * html .box { display: inline-block; }
+ * html .box { height: 1%; }
+ .box { display: block; }
+
+ .inner { width: 620px; float: right; }
+ .text { float: left; }
+</style>
+</head><body>
+
+<div class="content">
+ <div class="box"><div class="text">ActiveBorder</div><div class="inner" style="background-color: ActiveBorder">&nbsp;</div></div>
+ <div class="box"><div class="text">ActiveCaption</div><div class="inner" style="background-color: ActiveCaption">&nbsp;</div></div>
+ <div class="box"><div class="text">AppWorkspace</div><div class="inner" style="background-color: AppWorkspace">&nbsp;</div></div>
+ <div class="box"><div class="text">Background</div><div class="inner" style="background-color: Background">&nbsp;</div></div>
+ <div class="box"><div class="text">ButtonFace</div><div class="inner" style="background-color: ButtonFace">&nbsp;</div></div>
+ <div class="box"><div class="text">ButtonHighlight</div><div class="inner" style="background-color: ButtonHighlight">&nbsp;</div></div>
+ <div class="box"><div class="text">ButtonShadow</div><div class="inner" style="background-color: ButtonShadow">&nbsp;</div></div>
+ <div class="box"><div class="text">ButtonText</div><div class="inner" style="background-color: ButtonText">&nbsp;</div></div>
+ <div class="box"><div class="text">CaptionText</div><div class="inner" style="background-color: CaptionText">&nbsp;</div></div>
+ <div class="box"><div class="text">GrayText</div><div class="inner" style="background-color: GrayText">&nbsp;</div></div>
+ <div class="box"><div class="text">Highlight</div><div class="inner" style="background-color: Highlight">&nbsp;</div></div>
+ <div class="box"><div class="text">HighlightText</div><div class="inner" style="background-color: HighlightText">&nbsp;</div></div>
+ <div class="box"><div class="text">InactiveBorder</div><div class="inner" style="background-color: InactiveBorder">&nbsp;</div></div>
+ <div class="box"><div class="text">InactiveCaption</div><div class="inner" style="background-color: InactiveCaption">&nbsp;</div></div>
+ <div class="box"><div class="text">InactiveCaptionText</div><div class="inner" style="background-color: InactiveCaptionText">&nbsp;</div></div>
+ <div class="box"><div class="text">InfoBackground</div><div class="inner" style="background-color: InfoBackground">&nbsp;</div></div>
+ <div class="box"><div class="text">InfoText</div><div class="inner" style="background-color: InfoText">&nbsp;</div></div>
+ <div class="box"><div class="text">Menu</div><div class="inner" style="background-color: Menu">&nbsp;</div></div>
+ <div class="box"><div class="text">MenuText</div><div class="inner" style="background-color: MenuText">&nbsp;</div></div>
+ <div class="box"><div class="text">Scrollbar</div><div class="inner" style="background-color: Scrollbar">&nbsp;</div></div>
+ <div class="box"><div class="text">ThreeDDarkShadow</div><div class="inner" style="background-color: ThreeDDarkShadow">&nbsp;</div></div>
+ <div class="box"><div class="text">ThreeDFace</div><div class="inner" style="background-color: ThreeDFace">&nbsp;</div></div>
+ <div class="box"><div class="text">ThreeDHighlight</div><div class="inner" style="background-color: ThreeDHighlight">&nbsp;</div></div>
+ <div class="box"><div class="text">ThreeDLightShadow</div><div class="inner" style="background-color: ThreeDLightShadow">&nbsp;</div></div>
+ <div class="box"><div class="text">ThreeDShadow</div><div class="inner" style="background-color: ThreeDShadow">&nbsp;</div></div>
+ <div class="box"><div class="text">Window</div><div class="inner" style="background-color: Window">&nbsp;</div></div>
+ <div class="box"><div class="text">WindowFrame</div><div class="inner" style="background-color: WindowFrame">&nbsp;</div></div>
+ <div class="box"><div class="text">WindowText</div><div class="inner" style="background-color: WindowText">&nbsp;</div></div>
+</div>
+</body></html>
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastcsscss2systemcolorhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/css/css2-system-color.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/css2-system-color.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/css/css2-system-color.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,60 +0,0 @@
</span><del>-<html><head><title>Color Test</title>
-<style>
- html { text-align: center; font-size: 10px; font-family: verdana; }
- .content {
- border: 1px solid black;
- margin: 0 auto;
- text-align: left;
- width: 750px;
- padding: 2px 2px 1px 2px;
- }
- .box { width: 100%; margin-bottom: 1px; }
- .box:after {
- content: " ";
- display: block;
- visibility: hidden;
- clear: both;
- height: 0.1px;
- font-size: 0.1em;
- line-height: 0;
- }
- * html .box { display: inline-block; }
- * html .box { height: 1%; }
- .box { display: block; }
-
- .inner { width: 620px; float: right; }
- .text { float: left; }
-</style>
-</head><body>
-
-<div class="content">
- <div class="box"><div class="text">ActiveBorder</div><div class="inner" style="background-color: ActiveBorder">&nbsp;</div></div>
- <div class="box"><div class="text">ActiveCaption</div><div class="inner" style="background-color: ActiveCaption">&nbsp;</div></div>
- <div class="box"><div class="text">AppWorkspace</div><div class="inner" style="background-color: AppWorkspace">&nbsp;</div></div>
- <div class="box"><div class="text">Background</div><div class="inner" style="background-color: Background">&nbsp;</div></div>
- <div class="box"><div class="text">ButtonFace</div><div class="inner" style="background-color: ButtonFace">&nbsp;</div></div>
- <div class="box"><div class="text">ButtonHighlight</div><div class="inner" style="background-color: ButtonHighlight">&nbsp;</div></div>
- <div class="box"><div class="text">ButtonShadow</div><div class="inner" style="background-color: ButtonShadow">&nbsp;</div></div>
- <div class="box"><div class="text">ButtonText</div><div class="inner" style="background-color: ButtonText">&nbsp;</div></div>
- <div class="box"><div class="text">CaptionText</div><div class="inner" style="background-color: CaptionText">&nbsp;</div></div>
- <div class="box"><div class="text">GrayText</div><div class="inner" style="background-color: GrayText">&nbsp;</div></div>
- <div class="box"><div class="text">Highlight</div><div class="inner" style="background-color: Highlight">&nbsp;</div></div>
- <div class="box"><div class="text">HighlightText</div><div class="inner" style="background-color: HighlightText">&nbsp;</div></div>
- <div class="box"><div class="text">InactiveBorder</div><div class="inner" style="background-color: InactiveBorder">&nbsp;</div></div>
- <div class="box"><div class="text">InactiveCaption</div><div class="inner" style="background-color: InactiveCaption">&nbsp;</div></div>
- <div class="box"><div class="text">InactiveCaptionText</div><div class="inner" style="background-color: InactiveCaptionText">&nbsp;</div></div>
- <div class="box"><div class="text">InfoBackground</div><div class="inner" style="background-color: InfoBackground">&nbsp;</div></div>
- <div class="box"><div class="text">InfoText</div><div class="inner" style="background-color: InfoText">&nbsp;</div></div>
- <div class="box"><div class="text">Menu</div><div class="inner" style="background-color: Menu">&nbsp;</div></div>
- <div class="box"><div class="text">MenuText</div><div class="inner" style="background-color: MenuText">&nbsp;</div></div>
- <div class="box"><div class="text">Scrollbar</div><div class="inner" style="background-color: Scrollbar">&nbsp;</div></div>
- <div class="box"><div class="text">ThreeDDarkShadow</div><div class="inner" style="background-color: ThreeDDarkShadow">&nbsp;</div></div>
- <div class="box"><div class="text">ThreeDFace</div><div class="inner" style="background-color: ThreeDFace">&nbsp;</div></div>
- <div class="box"><div class="text">ThreeDHighlight</div><div class="inner" style="background-color: ThreeDHighlight">&nbsp;</div></div>
- <div class="box"><div class="text">ThreeDLightShadow</div><div class="inner" style="background-color: ThreeDLightShadow">&nbsp;</div></div>
- <div class="box"><div class="text">ThreeDShadow</div><div class="inner" style="background-color: ThreeDShadow">&nbsp;</div></div>
- <div class="box"><div class="text">Window</div><div class="inner" style="background-color: Window">&nbsp;</div></div>
- <div class="box"><div class="text">WindowFrame</div><div class="inner" style="background-color: WindowFrame">&nbsp;</div></div>
- <div class="box"><div class="text">WindowText</div><div class="inner" style="background-color: WindowText">&nbsp;</div></div>
-</div>
-</body></html>
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssfontfaceinshadowDOMhtmlfromrev211348trunkLayoutTestsfastcssfontfaceinshadowDOMhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html (from rev 211348, trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html         (rev 0)
+++ trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+<style>
+ /* a descendant rule */
+ p > p { }
+ @font-face {
+ font-family: 'remote';
+ src: url(../../resources/Ahem.ttf);
+ }
+</style>
+<textarea style="width: 108px; height: 102px; font-family: remote; font-size: 100px; color: green; background-color: red; padding: 0;">A</textarea>
+<script>
+ document.body.offsetTop;
+</script>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssfontfaceinshadowDOMhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,12 +0,0 @@
</span><del>-<style>
- /* a descendant rule */
- p > p { }
- @font-face {
- font-family: 'remote';
- src: url(../../resources/Ahem.ttf);
- }
-</style>
-<textarea style="width: 108px; height: 102px; font-family: remote; font-size: 100px; color: green; background-color: red; padding: 0;">A</textarea>
-<script>
- document.body.offsetTop;
-</script>
</del></span></pre></div>
<a id="trunkLayoutTestsfastcsslimitedvendorprefixbehaviorhtmlfromrev211348trunkLayoutTestsfastcsslimitedvendorprefixbehaviorhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html (from rev 211348, trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html         (rev 0)
+++ trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<style type="text/css"></style>
+<script src="../../resources/js-test-pre.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<div id="test-no-khtml" style="-khtml-line-clamp: 10%; -khtml-user-drag: none"></div>
+<div id="test-limited-apple" style="-apple-line-clamp: 10%; -apple-user-drag: none;"></div>
+<div id="console"></div>
+<script>
+description("Testing updated vendor-prefix behavior (bug 42093), removal of -khtml and limitation of -apple.");
+
+shouldBe("document.getElementById('test-no-khtml').style.getPropertyValue('-khtml-line-clamp')", "null");
+shouldBe("document.getElementById('test-no-khtml').style.getPropertyValue('-webkit-line-clamp')", "null");
+shouldBe("document.getElementById('test-no-khtml').style.getPropertyValue('-khtml-user-drag')", "null");
+shouldBe("document.getElementById('test-no-khtml').style.getPropertyValue('-webkit-user-drag')", "null");
+
+shouldBe("document.getElementById('test-no-khtml').style.khtmlLineClamp", "undefined");
+shouldBe("document.getElementById('test-no-khtml').style.khtmlUserDrag", "undefined");
+shouldBe("document.getElementById('test-no-khtml').style.lineClamp", "undefined");
+shouldBe("document.getElementById('test-no-khtml').style.userDrag", "undefined");
+
+shouldBe("document.getElementById('test-limited-apple').style.getPropertyValue('-apple-line-clamp')", "'10%'");
+shouldBe("document.getElementById('test-limited-apple').style.getPropertyValue('-webkit-line-clamp')", "'10%'");
+shouldBe("document.getElementById('test-limited-apple').style.getPropertyValue('-apple-user-drag')", "null");
+shouldBe("document.getElementById('test-limited-apple').style.getPropertyValue('-webkit-user-drag')", "null");
+
+shouldBe("document.getElementById('test-limited-apple').style.appleLineClamp", "'10%'");
+shouldBe("document.getElementById('test-limited-apple').style.appleUserDrag", "undefined");
+</script>
+<script src="../../resources/js-test-post.js"></script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcsslimitedvendorprefixbehaviorhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,35 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<style type="text/css"></style>
-<script src="../../resources/js-test-pre.js"></script>
-</head>
-<body>
-<p id="description"></p>
-<div id="test-no-khtml" style="-khtml-line-clamp: 10%; -khtml-user-drag: none"></div>
-<div id="test-limited-apple" style="-apple-line-clamp: 10%; -apple-user-drag: none;"></div>
-<div id="console"></div>
-<script>
-description("Testing updated vendor-prefix behavior (bug 42093), removal of -khtml and limitation of -apple.");
-
-shouldBe("document.getElementById('test-no-khtml').style.getPropertyValue('-khtml-line-clamp')", "null");
-shouldBe("document.getElementById('test-no-khtml').style.getPropertyValue('-webkit-line-clamp')", "null");
-shouldBe("document.getElementById('test-no-khtml').style.getPropertyValue('-khtml-user-drag')", "null");
-shouldBe("document.getElementById('test-no-khtml').style.getPropertyValue('-webkit-user-drag')", "null");
-
-shouldBe("document.getElementById('test-no-khtml').style.khtmlLineClamp", "undefined");
-shouldBe("document.getElementById('test-no-khtml').style.khtmlUserDrag", "undefined");
-shouldBe("document.getElementById('test-no-khtml').style.lineClamp", "undefined");
-shouldBe("document.getElementById('test-no-khtml').style.userDrag", "undefined");
-
-shouldBe("document.getElementById('test-limited-apple').style.getPropertyValue('-apple-line-clamp')", "'10%'");
-shouldBe("document.getElementById('test-limited-apple').style.getPropertyValue('-webkit-line-clamp')", "'10%'");
-shouldBe("document.getElementById('test-limited-apple').style.getPropertyValue('-apple-user-drag')", "null");
-shouldBe("document.getElementById('test-limited-apple').style.getPropertyValue('-webkit-user-drag')", "null");
-
-shouldBe("document.getElementById('test-limited-apple').style.appleLineClamp", "'10%'");
-shouldBe("document.getElementById('test-limited-apple').style.appleUserDrag", "undefined");
-</script>
-<script src="../../resources/js-test-post.js"></script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastdomWindowtimeoutreleasedonclosehtmlfromrev211348trunkLayoutTestsfastdomWindowtimeoutreleasedonclosehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html (from rev 211348, trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html         (rev 0)
+++ trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+<script>
+// The test works by first navigating iframe to a page that allocates a lot of JS objects
+// and then creates a long timeout. Then iframe is navigated to about:blank and the number of JS
+// objects is verified - there should be a significant drop in their number.
+
+var objectCountBefore;
+function start() {
+ if (window.testRunner && window.GCController) {
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+ window.GCController.collect();
+ objectCountBefore = window.GCController.getJSObjectCount();
+ var iframeElement = document.getElementById("iframe");
+ iframeElement.setAttribute("onload", "loadBlank()");
+ iframeElement.src = "resources/long_timeout.html";
+ }
+}
+
+var objectCountAfterLoad;
+function loadBlank() {
+ window.GCController.collect();
+ objectCountAfterLoad = window.GCController.getJSObjectCount();
+ var iframeElement = document.getElementById("iframe");
+ iframeElement.setAttribute("onload", "verify()");
+ iframeElement.src = "about:blank";
+}
+
+function verify()
+{
+ var allocatedObjects = 1000; // Number of allocated objects in "resources/long_timeout.html".
+ var threshold = allocatedObjects / 2;
+
+ window.GCController.collect();
+ var objectCountAfter = window.GCController.getJSObjectCount();
+ // Some number of objects is still not released (possibly related to execution of this script).
+ // Use a threshold which is less then the numebr of allocated objects in "resources/long_timeout.html" to account for this.
+ var success = (objectCountAfter - objectCountBefore) < threshold;
+ document.getElementById("result").innerText = (success ? "PASS" : "FAIL" +
+ ", before: " + objectCountBefore +
+ ", after load: " + objectCountAfterLoad +
+ ", after: " + objectCountAfter);
+ testRunner.notifyDone();
+}
+</script>
+<body onload="start()">
+<p>This test verifies that an active timeout that didn't yet fire does not prevent a Document from releasing (bug https://bugs.webkit.org/show_bug.cgi?id=22710). Test can only run in DumpRenderTree since it needs GCController. Test is successful if it prints 'PASS'.</p>
+<div id="result"></div>
+<iframe id="iframe"></iframe>
+</body>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomWindowtimeoutreleasedonclosehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,49 +0,0 @@
</span><del>-<script>
-// The test works by first navigating iframe to a page that allocates a lot of JS objects
-// and then creates a long timeout. Then iframe is navigated to about:blank and the number of JS
-// objects is verified - there should be a significant drop in their number.
-
-var objectCountBefore;
-function start() {
- if (window.testRunner && window.GCController) {
- testRunner.dumpAsText();
- testRunner.waitUntilDone();
- window.GCController.collect();
- objectCountBefore = window.GCController.getJSObjectCount();
- var iframeElement = document.getElementById("iframe");
- iframeElement.setAttribute("onload", "loadBlank()");
- iframeElement.src = "resources/long_timeout.html";
- }
-}
-
-var objectCountAfterLoad;
-function loadBlank() {
- window.GCController.collect();
- objectCountAfterLoad = window.GCController.getJSObjectCount();
- var iframeElement = document.getElementById("iframe");
- iframeElement.setAttribute("onload", "verify()");
- iframeElement.src = "about:blank";
-}
-
-function verify()
-{
- var allocatedObjects = 1000; // Number of allocated objects in "resources/long_timeout.html".
- var threshold = allocatedObjects / 2;
-
- window.GCController.collect();
- var objectCountAfter = window.GCController.getJSObjectCount();
- // Some number of objects is still not released (possibly related to execution of this script).
- // Use a threshold which is less then the numebr of allocated objects in "resources/long_timeout.html" to account for this.
- var success = (objectCountAfter - objectCountBefore) < threshold;
- document.getElementById("result").innerText = (success ? "PASS" : "FAIL" +
- ", before: " + objectCountBefore +
- ", after load: " + objectCountAfterLoad +
- ", after: " + objectCountAfter);
- testRunner.notifyDone();
-}
-</script>
-<body onload="start()">
-<p>This test verifies that an active timeout that didn't yet fire does not prevent a Document from releasing (bug https://bugs.webkit.org/show_bug.cgi?id=22710). Test can only run in DumpRenderTree since it needs GCController. Test is successful if it prints 'PASS'.</p>
-<div id="result"></div>
-<iframe id="iframe"></iframe>
-</body>
</del></span></pre></div>
<a id="trunkLayoutTestsfastdomWindowwindowresizenanhtmlfromrev211348trunkLayoutTestsfastdomWindowwindowresizenanhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/dom/Window/window-resize-nan.html (from rev 211348, trunk/LayoutTests/fast/dom/Window/window-resize-nan.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Window/window-resize-nan.html         (rev 0)
+++ trunk/LayoutTests/fast/dom/Window/window-resize-nan.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,151 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+ <script src="../../../resources/js-test-pre.js"></script>
+</head>
+<body>
+<script language="JavaScript" type="text/javascript">
+        // FIXME Disabled because of <rdar://problem/5569119>
+
+ if (window.testRunner)
+ testRunner.dumpAsText();
+
+ window.moveTo(0, 0);
+
+ description("This test makes sure that we cannot set the parameter of a \
+ window to NaN, causing unpredicable results");
+
+ var result;
+ var testName;
+ var x;
+ var y;
+ var badNum = "NaN";
+ var defaultSize = 500;
+ var defaultLocation = 0;
+
+ // initialize window to a known size
+ x = defaultSize;
+ y = defaultSize;
+ window.resizeTo(x, y);
+
+ // resizeTo /////////////////////////
+ debug('');
+ debug('window.resizeTo Tests');
+ debug('');
+
+ x = badNum;
+ y = defaultSize;
+ window.resizeTo(x, y);
+ debug("Testing - resizeTo: Bad width input");
+ shouldBe('window.outerWidth', 'defaultSize');
+ shouldBe('window.outerHeight', 'defaultSize');
+
+ debug('');
+
+ x = defaultSize;
+ y = badNum;
+ window.resizeTo(x, y);
+ debug("Testing - resizeTo: Bad height input");
+ shouldBe('window.outerWidth', 'defaultSize');
+ shouldBe('window.outerHeight', 'defaultSize');
+
+ debug('');
+
+ x = badNum;
+ y = badNum;
+ window.resizeTo(x, y);
+ debug("Testing - resizeTo: Bad width and height input");
+ shouldBe('window.outerWidth', 'defaultSize');
+ shouldBe('window.outerHeight', 'defaultSize');
+
+ // resizeBy /////////////////////////
+ debug('');
+ debug('window.resizeBy Tests');
+ debug('');
+
+ x = badNum;
+ y = 100;
+ window.resizeBy(x, y);
+ debug("Testing - resizeBy: Bad width input");
+ shouldBe('window.outerWidth', 'defaultSize');
+ shouldBe('window.outerHeight', 'defaultSize + y');
+
+ debug('');
+ window.resizeTo(defaultSize, defaultSize);
+
+ x = 100;
+ y = badNum;
+ window.resizeBy(x, y);
+ debug("Testing - resizeBy: Bad height input");
+ shouldBe('window.outerWidth', 'defaultSize + x');
+ shouldBe('window.outerHeight', 'defaultSize');
+
+ // moveTo /////////////////////////
+ debug('');
+ debug('window.moveTo Tests');
+ debug('');
+ window.moveTo(screen.availLeft, screen.availTop);
+
+ x = badNum;
+ y = screen.availTop + 100;
+ window.moveTo(x, y);
+ debug("Testing - moveTo: Bad x input");
+ shouldBe('window.screenY', 'y + (screen.availTop * 2)'); // FIXME this should be just y
+ shouldBe('window.screenX', 'screen.availLeft');
+
+ debug('');
+ window.moveTo(screen.availLeft, screen.availTop);
+
+ x = screen.availLeft + 100;
+ y = badNum;
+ window.moveTo(x, y);
+ debug("Testing - moveTo: Bad y input");
+ shouldBe('window.screenY', 'screen.availTop * 2'); // FIXME this should just be screen.availTop
+ shouldBe('window.screenX', 'x');
+
+ debug('');
+ window.moveTo(screen.availLeft, screen.availTop);
+
+ x = badNum;
+ y = badNum;
+ window.moveTo(x, y);
+ debug("Testing - moveTo: Bad x and y input");
+ shouldBe('window.screenY', 'screen.availTop * 2'); // FIXME this should just be screen.availTop
+ shouldBe('window.screenX', 'screen.availLeft');
+
+ // moveBy /////////////////////////
+ debug('');
+ debug('window.moveBy Tests');
+ debug('');
+ window.moveTo(screen.availLeft, screen.availTop);
+
+ x = badNum;
+ y = 100;
+ window.moveBy(x, y);
+ debug("Testing - moveBy: Bad x input");
+ shouldBe('window.screenY', '(screen.availTop * 4) + y'); // FIXME this should just be screen.availTop + y
+ shouldBe('window.screenX', 'screen.availLeft');
+
+ debug('');
+ window.moveTo(screen.availLeft, screen.availTop);
+
+ x = 100;
+ y = badNum;
+ window.moveBy(x, y);
+ debug("Testing - moveBy: Bad y input");
+ shouldBe('window.screenY', 'screen.availTop * 4'); // FIXME this should just be screen.availTop
+ shouldBe('window.screenX', 'screen.availLeft + x');
+
+ debug('');
+ window.moveTo(screen.availLeft, screen.availTop);
+
+ x = badNum;
+ y = badNum;
+ window.moveBy(x, y);
+ debug("Testing - moveBy: Bad x and y input");
+ shouldBe('window.screenY', 'screen.availTop * 4'); // FIXME this should just be screen.availTop
+ shouldBe('window.screenX', 'screen.availLeft');
+</script>
+<script src="../../../resources/js-test-post.js"></script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomWindowwindowresizenanhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/dom/Window/window-resize-nan.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Window/window-resize-nan.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/dom/Window/window-resize-nan.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,151 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
- <script src="../../../resources/js-test-pre.js"></script>
-</head>
-<body>
-<script language="JavaScript" type="text/javascript">
-        // FIXME Disabled because of <rdar://problem/5569119>
-
- if (window.testRunner)
- testRunner.dumpAsText();
-
- window.moveTo(0, 0);
-
- description("This test makes sure that we cannot set the parameter of a \
- window to NaN, causing unpredicable results");
-
- var result;
- var testName;
- var x;
- var y;
- var badNum = "NaN";
- var defaultSize = 500;
- var defaultLocation = 0;
-
- // initialize window to a known size
- x = defaultSize;
- y = defaultSize;
- window.resizeTo(x, y);
-
- // resizeTo /////////////////////////
- debug('');
- debug('window.resizeTo Tests');
- debug('');
-
- x = badNum;
- y = defaultSize;
- window.resizeTo(x, y);
- debug("Testing - resizeTo: Bad width input");
- shouldBe('window.outerWidth', 'defaultSize');
- shouldBe('window.outerHeight', 'defaultSize');
-
- debug('');
-
- x = defaultSize;
- y = badNum;
- window.resizeTo(x, y);
- debug("Testing - resizeTo: Bad height input");
- shouldBe('window.outerWidth', 'defaultSize');
- shouldBe('window.outerHeight', 'defaultSize');
-
- debug('');
-
- x = badNum;
- y = badNum;
- window.resizeTo(x, y);
- debug("Testing - resizeTo: Bad width and height input");
- shouldBe('window.outerWidth', 'defaultSize');
- shouldBe('window.outerHeight', 'defaultSize');
-
- // resizeBy /////////////////////////
- debug('');
- debug('window.resizeBy Tests');
- debug('');
-
- x = badNum;
- y = 100;
- window.resizeBy(x, y);
- debug("Testing - resizeBy: Bad width input");
- shouldBe('window.outerWidth', 'defaultSize');
- shouldBe('window.outerHeight', 'defaultSize + y');
-
- debug('');
- window.resizeTo(defaultSize, defaultSize);
-
- x = 100;
- y = badNum;
- window.resizeBy(x, y);
- debug("Testing - resizeBy: Bad height input");
- shouldBe('window.outerWidth', 'defaultSize + x');
- shouldBe('window.outerHeight', 'defaultSize');
-
- // moveTo /////////////////////////
- debug('');
- debug('window.moveTo Tests');
- debug('');
- window.moveTo(screen.availLeft, screen.availTop);
-
- x = badNum;
- y = screen.availTop + 100;
- window.moveTo(x, y);
- debug("Testing - moveTo: Bad x input");
- shouldBe('window.screenY', 'y + (screen.availTop * 2)'); // FIXME this should be just y
- shouldBe('window.screenX', 'screen.availLeft');
-
- debug('');
- window.moveTo(screen.availLeft, screen.availTop);
-
- x = screen.availLeft + 100;
- y = badNum;
- window.moveTo(x, y);
- debug("Testing - moveTo: Bad y input");
- shouldBe('window.screenY', 'screen.availTop * 2'); // FIXME this should just be screen.availTop
- shouldBe('window.screenX', 'x');
-
- debug('');
- window.moveTo(screen.availLeft, screen.availTop);
-
- x = badNum;
- y = badNum;
- window.moveTo(x, y);
- debug("Testing - moveTo: Bad x and y input");
- shouldBe('window.screenY', 'screen.availTop * 2'); // FIXME this should just be screen.availTop
- shouldBe('window.screenX', 'screen.availLeft');
-
- // moveBy /////////////////////////
- debug('');
- debug('window.moveBy Tests');
- debug('');
- window.moveTo(screen.availLeft, screen.availTop);
-
- x = badNum;
- y = 100;
- window.moveBy(x, y);
- debug("Testing - moveBy: Bad x input");
- shouldBe('window.screenY', '(screen.availTop * 4) + y'); // FIXME this should just be screen.availTop + y
- shouldBe('window.screenX', 'screen.availLeft');
-
- debug('');
- window.moveTo(screen.availLeft, screen.availTop);
-
- x = 100;
- y = badNum;
- window.moveBy(x, y);
- debug("Testing - moveBy: Bad y input");
- shouldBe('window.screenY', 'screen.availTop * 4'); // FIXME this should just be screen.availTop
- shouldBe('window.screenX', 'screen.availLeft + x');
-
- debug('');
- window.moveTo(screen.availLeft, screen.availTop);
-
- x = badNum;
- y = badNum;
- window.moveBy(x, y);
- debug("Testing - moveBy: Bad x and y input");
- shouldBe('window.screenY', 'screen.availTop * 4'); // FIXME this should just be screen.availTop
- shouldBe('window.screenX', 'screen.availLeft');
-</script>
-<script src="../../../resources/js-test-post.js"></script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastdomgc8htmlfromrev211348trunkLayoutTestsfastdomgc8htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/dom/gc-8.html (from rev 211348, trunk/LayoutTests/fast/dom/gc-8.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/gc-8.html         (rev 0)
+++ trunk/LayoutTests/fast/dom/gc-8.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,46 @@
</span><ins>+<html>
+<head>
+<script>
+function print(message, color)
+{
+ var paragraph = document.createElement("div");
+ paragraph.appendChild(document.createTextNode(message));
+ paragraph.style.fontFamily = "monospace";
+ if (color)
+ paragraph.style.color = color;
+ document.getElementById("console").appendChild(paragraph);
+}
+
+function test()
+{
+ if (!window.testRunner) {
+ print("FAIL: This test can only run from inside DumpRenderTree.", "red");
+ return;
+ }
+
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+
+ document.body.style.myCustomProperty = new String("1");
+ new Date(); // allocate another object to create heap entropy
+ // Collecting on a timeout seems to make the crash more reproducible -- not exactly sure why
+ setTimeout('GCController.collectOnAlternateThread(true);', 0);
+ setTimeout('document.body.style.myCustomProperty; print("PASS: you didn\'t crash"); testRunner.notifyDone();', 1);
+
+ // fail-safe
+ setTimeout('print("FAIL: Test hung -- bailing out"); testRunner.notifyDone();', 2);
+}
+
+</script>
+</head>
+
+<body onload="test();">
+<p>This page tests for a crash when accessing a custom property on a DOM object after the garbage collector
+ has run on an alternate thread.</p>
+<p>If the test passes, you'll see a 'PASS' message below.</p>
+<hr>
+
+<div id='console'></div>
+
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomgc8htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/dom/gc-8.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/gc-8.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/dom/gc-8.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,46 +0,0 @@
</span><del>-<html>
-<head>
-<script>
-function print(message, color)
-{
- var paragraph = document.createElement("div");
- paragraph.appendChild(document.createTextNode(message));
- paragraph.style.fontFamily = "monospace";
- if (color)
- paragraph.style.color = color;
- document.getElementById("console").appendChild(paragraph);
-}
-
-function test()
-{
- if (!window.testRunner) {
- print("FAIL: This test can only run from inside DumpRenderTree.", "red");
- return;
- }
-
- testRunner.dumpAsText();
- testRunner.waitUntilDone();
-
- document.body.style.myCustomProperty = new String("1");
- new Date(); // allocate another object to create heap entropy
- // Collecting on a timeout seems to make the crash more reproducible -- not exactly sure why
- setTimeout('GCController.collectOnAlternateThread(true);', 0);
- setTimeout('document.body.style.myCustomProperty; print("PASS: you didn\'t crash"); testRunner.notifyDone();', 1);
-
- // fail-safe
- setTimeout('print("FAIL: Test hung -- bailing out"); testRunner.notifyDone();', 2);
-}
-
-</script>
-</head>
-
-<body onload="test();">
-<p>This page tests for a crash when accessing a custom property on a DOM object after the garbage collector
- has run on an alternate thread.</p>
-<p>If the test passes, you'll see a 'PASS' message below.</p>
-<hr>
-
-<div id='console'></div>
-
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastdynamiccrashpaintnodocumentElementrendererhtmlfromrev211348trunkLayoutTestsfastdynamiccrashpaintnodocumentElementrendererhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html (from rev 211348, trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html         (rev 0)
+++ trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,20 @@
</span><ins>+<!DOCTYPE html>
+<html>
+<body onload="go()">
+<p>Bug 64284: Crash in RenderBox::paintBoxDecorations when documentElement has no renderer</p>
+<p>For this test to PASS, it should not ASSERT or CRASH.</p>
+<script>
+ if (window.testRunner)
+ testRunner.dumpAsText();
+
+ function go() {
+ document.open();
+ var oUElement = document.createElement("U");
+ oUElement.hidden=true;
+ oUElement.innerHTML="<style>*{-webkit-border-before-style:groove}";
+ document.appendChild(oUElement);
+ document.close();
+ }
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdynamiccrashpaintnodocumentElementrendererhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,20 +0,0 @@
</span><del>-<!DOCTYPE html>
-<html>
-<body onload="go()">
-<p>Bug 64284: Crash in RenderBox::paintBoxDecorations when documentElement has no renderer</p>
-<p>For this test to PASS, it should not ASSERT or CRASH.</p>
-<script>
- if (window.testRunner)
- testRunner.dumpAsText();
-
- function go() {
- document.open();
- var oUElement = document.createElement("U");
- oUElement.hidden=true;
- oUElement.innerHTML="<style>*{-webkit-border-before-style:groove}";
- document.appendChild(oUElement);
- document.close();
- }
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsdestroyedatomicstringhtmlfromrev211348trunkLayoutTestsfasteventsdestroyedatomicstringhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/events/destroyed-atomic-string.html (from rev 211348, trunk/LayoutTests/fast/events/destroyed-atomic-string.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/destroyed-atomic-string.html         (rev 0)
+++ trunk/LayoutTests/fast/events/destroyed-atomic-string.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,84 @@
</span><ins>+<body>
+<p>Test that adding an event listener for an event with a unique name works correctly (this used to corrupt event listener map after GC).</p>
+<pre id=log></pre>
+
+<script>
+function gc()
+{
+ if (window.GCController)
+ return GCController.collect();
+
+ for (var i = 0; i < 10000; i++) { // > force garbage collection (FF requires about 9K allocations before a collect)
+ var s = new String("abc");
+ }
+}
+
+function log(message)
+{
+ document.getElementById("log").innerHTML += message + "<br>";
+}
+
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+var listenerCallCount = 0;
+var expectedListenerCallCount = 0;
+function listener()
+{
+ ++listenerCallCount;
+}
+
+function addListener(targetName, name)
+{
+ var target;
+ try {
+ target = eval(targetName);
+ eval(target).addEventListener(name, listener, true);
+ ++expectedListenerCallCount;
+ } catch (ex) {
+ log((target ? target : targetName) + " is not supported, or cannot be used to register arbitrary event handlers.");
+ }
+}
+
+function dispatchEvent(target, name)
+{
+ try {
+ var evt = document.createEvent("MessageEvent");
+ evt.initMessageEvent(name);
+ eval(target).dispatchEvent(evt);
+ } catch (ex) {
+ }
+}
+
+var xhr = new XMLHttpRequest;
+addListener("xhr", "foo1");
+addListener("xhr.upload", "foo2");
+addListener("window.applicationCache", "foo3");
+var channel;
+try {
+ channel = new MessageChannel;
+ channel.port1.addEventListener("foo4", listener, true);
+ ++expectedListenerCallCount;
+} catch (ex) {
+ log("MessageChannel is not supported, or cannot be used to register arbitrary event handlers.");
+}
+// window.dispatchEvent is currently unimplemented.
+// window.addEventListener("foo5", listener, true);
+// ++expectedListenerCallCount;
+document.body.addEventListener("foo6", listener, true);
+++expectedListenerCallCount;
+
+gc();
+
+dispatchEvent("xhr", "foo1");
+dispatchEvent("xhr.upload", "foo2");
+dispatchEvent("window.applicationCache", "foo3");
+dispatchEvent("channel.port1", "foo4");
+dispatchEvent("window", "foo5");
+dispatchEvent("document.body", "foo6");
+
+gc();
+
+log((listenerCallCount == expectedListenerCallCount) ? "PASS" : "FAIL");
+</script>
+</body>
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventsdestroyedatomicstringhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/destroyed-atomic-string.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/destroyed-atomic-string.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/events/destroyed-atomic-string.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,84 +0,0 @@
</span><del>-<body>
-<p>Test that adding an event listener for an event with a unique name works correctly (this used to corrupt event listener map after GC).</p>
-<pre id=log></pre>
-
-<script>
-function gc()
-{
- if (window.GCController)
- return GCController.collect();
-
- for (var i = 0; i < 10000; i++) { // > force garbage collection (FF requires about 9K allocations before a collect)
- var s = new String("abc");
- }
-}
-
-function log(message)
-{
- document.getElementById("log").innerHTML += message + "<br>";
-}
-
-if (window.testRunner)
- testRunner.dumpAsText();
-
-var listenerCallCount = 0;
-var expectedListenerCallCount = 0;
-function listener()
-{
- ++listenerCallCount;
-}
-
-function addListener(targetName, name)
-{
- var target;
- try {
- target = eval(targetName);
- eval(target).addEventListener(name, listener, true);
- ++expectedListenerCallCount;
- } catch (ex) {
- log((target ? target : targetName) + " is not supported, or cannot be used to register arbitrary event handlers.");
- }
-}
-
-function dispatchEvent(target, name)
-{
- try {
- var evt = document.createEvent("MessageEvent");
- evt.initMessageEvent(name);
- eval(target).dispatchEvent(evt);
- } catch (ex) {
- }
-}
-
-var xhr = new XMLHttpRequest;
-addListener("xhr", "foo1");
-addListener("xhr.upload", "foo2");
-addListener("window.applicationCache", "foo3");
-var channel;
-try {
- channel = new MessageChannel;
- channel.port1.addEventListener("foo4", listener, true);
- ++expectedListenerCallCount;
-} catch (ex) {
- log("MessageChannel is not supported, or cannot be used to register arbitrary event handlers.");
-}
-// window.dispatchEvent is currently unimplemented.
-// window.addEventListener("foo5", listener, true);
-// ++expectedListenerCallCount;
-document.body.addEventListener("foo6", listener, true);
-++expectedListenerCallCount;
-
-gc();
-
-dispatchEvent("xhr", "foo1");
-dispatchEvent("xhr.upload", "foo2");
-dispatchEvent("window.applicationCache", "foo3");
-dispatchEvent("channel.port1", "foo4");
-dispatchEvent("window", "foo5");
-dispatchEvent("document.body", "foo6");
-
-gc();
-
-log((listenerCallCount == expectedListenerCallCount) ? "PASS" : "FAIL");
-</script>
-</body>
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventskeyeventsinframehtmlfromrev211348trunkLayoutTestsfasteventskeyeventsinframehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/events/key-events-in-frame.html (from rev 211348, trunk/LayoutTests/fast/events/key-events-in-frame.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/key-events-in-frame.html         (rev 0)
+++ trunk/LayoutTests/fast/events/key-events-in-frame.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+<div>
+ This tests that key events targeting a frame do not propagate up the frame tree. This will only produce output if the test fails.
+ <br />
+ To test manually click in the empty frame and press any key. If you receive any output the test has failed.
+</div>
+<pre id="log"></pre>
+<iframe id="targetFrame" src="data:text/html,"></iframe>
+<script>
+onkeydown=function(){document.getElementById("log").innerHTML += 'FAIL: outerFrame received keydown\n'; };
+onkeypress=function(){document.getElementById("log").innerHTML += 'FAIL: outerFrame received keypress\n'; };
+onkeyup=function(){document.getElementById("log").innerHTML += 'FAIL: outerFrame received keyup\n'; };
+document.getElementById("targetFrame").focus();
+if (window.testRunner) {
+ testRunner.dumpAsText();
+ eventSender.keyDown("a");
+}
+</script>
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventskeyeventsinframehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/key-events-in-frame.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/key-events-in-frame.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/events/key-events-in-frame.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,17 +0,0 @@
</span><del>-<div>
- This tests that key events targeting a frame do not propagate up the frame tree. This will only produce output if the test fails.
- <br />
- To test manually click in the empty frame and press any key. If you receive any output the test has failed.
-</div>
-<pre id="log"></pre>
-<iframe id="targetFrame" src="data:text/html,"></iframe>
-<script>
-onkeydown=function(){document.getElementById("log").innerHTML += 'FAIL: outerFrame received keydown\n'; };
-onkeypress=function(){document.getElementById("log").innerHTML += 'FAIL: outerFrame received keypress\n'; };
-onkeyup=function(){document.getElementById("log").innerHTML += 'FAIL: outerFrame received keyup\n'; };
-document.getElementById("targetFrame").focus();
-if (window.testRunner) {
- testRunner.dumpAsText();
- eventSender.keyDown("a");
-}
-</script>
</del></span></pre></div>
<a id="trunkLayoutTestsfastframesiframescrollpageupdownhtmlfromrev211348trunkLayoutTestsfastframesiframescrollpageupdownhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html (from rev 211348, trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html         (rev 0)
+++ trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,69 @@
</span><ins>+<html>
+<head>
+<script>
+function test()
+{
+ if (!window.testRunner)
+ return;
+
+ if (window.testRunner)
+ testRunner.dumpAsText();
+
+ // 1st test: iframes scrolled to top, top level document scrolled to bottom
+ // pageup in innermost iframe should scroll top level document up
+ window[0][0].scrollTo(0,0);
+ window[0].scrollTo(0,0);
+ window.scrollTo(0, document.body.offsetHeight);
+ var oldScrollTop = document.body.scrollTop;
+ var focus1 = window[0][0].document.getElementById("focus1");
+ focus1.focus();
+ eventSender.keyDown("pageUp");
+ var test1Passed = false;
+ if (document.body.scrollTop < oldScrollTop)
+ test1Passed = true;
+
+ // 2nd test: iframes scrolled to bottom, top level document scrolled to top
+ // pagedown in innermost iframe should scroll top level document down
+ window[0][0].scrollTo(0,window[0][0].document.body.offsetHeight);
+ window[0].scrollTo(0,window[0].document.body.offsetHeight);
+ window.scrollTo(0, 0);
+ oldScrollTop = document.body.scrollTop
+ var focus2 = window[0][0].document.getElementById("focus2");
+ focus2.focus();
+ eventSender.keyDown("pageDown");
+ var test2Passed = false;
+ if (document.body.scrollTop > oldScrollTop)
+ test2Passed = true;
+
+ printResults(test1Passed, test2Passed);
+}
+
+function printResults(test1Passed, test2Passed)
+{
+ var console = document.createElement("div");
+ if (test1Passed)
+ console.innerHTML = "PASSED test 1";
+ else
+ console.innerHTML = "FAILED test 1";
+ console.innerHTML += "<br>";
+ if (test2Passed)
+ console.innerHTML += "PASSED test 2";
+ else
+ console.innerHTML += "FAILED test 2";
+
+ document.body.appendChild(console);
+
+}
+</script>
+</head>
+<body onload="window.resizeTo(500,587); test();">
+<div id="testDiv">
+top
+<br>
+<div style="height:200px"></div>
+<iframe id="frame" width="450px" height="235px" src="./resources/iframe-scroll-page-up-down-1.html"></iframe>
+<div style="height:200px"></div>
+bottom
+</div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastframesiframescrollpageupdownhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,69 +0,0 @@
</span><del>-<html>
-<head>
-<script>
-function test()
-{
- if (!window.testRunner)
- return;
-
- if (window.testRunner)
- testRunner.dumpAsText();
-
- // 1st test: iframes scrolled to top, top level document scrolled to bottom
- // pageup in innermost iframe should scroll top level document up
- window[0][0].scrollTo(0,0);
- window[0].scrollTo(0,0);
- window.scrollTo(0, document.body.offsetHeight);
- var oldScrollTop = document.body.scrollTop;
- var focus1 = window[0][0].document.getElementById("focus1");
- focus1.focus();
- eventSender.keyDown("pageUp");
- var test1Passed = false;
- if (document.body.scrollTop < oldScrollTop)
- test1Passed = true;
-
- // 2nd test: iframes scrolled to bottom, top level document scrolled to top
- // pagedown in innermost iframe should scroll top level document down
- window[0][0].scrollTo(0,window[0][0].document.body.offsetHeight);
- window[0].scrollTo(0,window[0].document.body.offsetHeight);
- window.scrollTo(0, 0);
- oldScrollTop = document.body.scrollTop
- var focus2 = window[0][0].document.getElementById("focus2");
- focus2.focus();
- eventSender.keyDown("pageDown");
- var test2Passed = false;
- if (document.body.scrollTop > oldScrollTop)
- test2Passed = true;
-
- printResults(test1Passed, test2Passed);
-}
-
-function printResults(test1Passed, test2Passed)
-{
- var console = document.createElement("div");
- if (test1Passed)
- console.innerHTML = "PASSED test 1";
- else
- console.innerHTML = "FAILED test 1";
- console.innerHTML += "<br>";
- if (test2Passed)
- console.innerHTML += "PASSED test 2";
- else
- console.innerHTML += "FAILED test 2";
-
- document.body.appendChild(console);
-
-}
-</script>
-</head>
-<body onload="window.resizeTo(500,587); test();">
-<div id="testDiv">
-top
-<br>
-<div style="height:200px"></div>
-<iframe id="frame" width="450px" height="235px" src="./resources/iframe-scroll-page-up-down-1.html"></iframe>
-<div style="height:200px"></div>
-bottom
-</div>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfasthtmlmarqueealternatehtmlfromrev211348trunkLayoutTestsfasthtmlmarqueealternatehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/html/marquee-alternate.html (from rev 211348, trunk/LayoutTests/fast/html/marquee-alternate.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/html/marquee-alternate.html         (rev 0)
+++ trunk/LayoutTests/fast/html/marquee-alternate.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,64 @@
</span><ins>+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<script src="../../resources/js-test-pre.js"></script>
+<script type="text/javascript">
+window.jsTestIsAsync = true;
+var initialPosition = 1;
+var halfAnimationPeriod = 63;
+var fullAnimationPeriod = 123;
+function scrollOffsetInitial()
+{
+ var section1 = document.getElementById('marquee');
+ if (section1.scrollLeft == -initialPosition) {
+ debug("PASS on initial position");
+ } else {
+ debug("FAIL");
+ debug("ScrollLeft = " + section1.scrollLeft);
+ debug("ScrollWidth = " + section1.scrollWidth);
+ finishJSTest();
+ }
+}
+
+function scrollOffsetCompleteCycle()
+{
+ var section1 = document.getElementById('marquee');
+ if (section1.scrollLeft == -initialPosition) {
+ debug("PASS on after full cycle completion");
+ } else {
+ debug("FAIL");
+ debug("ScrollLeft = " + section1.scrollLeft);
+ debug("ScrollWidth = " + section1.scrollWidth);
+ }
+ finishJSTest();
+}
+
+function scrollOffsetMidCycle()
+{
+ var section1 = document.getElementById('marquee');
+ if (section1.scrollLeft == 0 ) {
+ debug("PASS on after half cycle completion");
+ } else {
+ debug("FAIL");
+ debug("ScrollLeft = " + section1.scrollLeft);
+ debug("ScrollWidth = " + section1.scrollWidth);
+ finishJSTest();
+ }
+}
+
+function dump() {
+ var t=setTimeout("scrollOffsetInitial()",0);
+ var t=setTimeout("scrollOffsetMidCycle()",halfAnimationPeriod);
+ var t=setTimeout("scrollOffsetCompleteCycle()",fullAnimationPeriod);
+}
+successfullyParsed = true;
+</script>
+</head>
+<body onload = dump() >
+<marquee id="marquee" width=30 behavior="alternate" scrollamount=1 scrolldelay=1><img src="resources/images/lime.png" width="29" height="29" alt="lime"></marquee>
+<pre id="console"></pre>
+<script src="../../resources/js-test-post.js"></script>
+</body>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfasthtmlmarqueealternatehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/html/marquee-alternate.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/html/marquee-alternate.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/html/marquee-alternate.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,64 +0,0 @@
</span><del>-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<script src="../../resources/js-test-pre.js"></script>
-<script type="text/javascript">
-window.jsTestIsAsync = true;
-var initialPosition = 1;
-var halfAnimationPeriod = 63;
-var fullAnimationPeriod = 123;
-function scrollOffsetInitial()
-{
- var section1 = document.getElementById('marquee');
- if (section1.scrollLeft == -initialPosition) {
- debug("PASS on initial position");
- } else {
- debug("FAIL");
- debug("ScrollLeft = " + section1.scrollLeft);
- debug("ScrollWidth = " + section1.scrollWidth);
- finishJSTest();
- }
-}
-
-function scrollOffsetCompleteCycle()
-{
- var section1 = document.getElementById('marquee');
- if (section1.scrollLeft == -initialPosition) {
- debug("PASS on after full cycle completion");
- } else {
- debug("FAIL");
- debug("ScrollLeft = " + section1.scrollLeft);
- debug("ScrollWidth = " + section1.scrollWidth);
- }
- finishJSTest();
-}
-
-function scrollOffsetMidCycle()
-{
- var section1 = document.getElementById('marquee');
- if (section1.scrollLeft == 0 ) {
- debug("PASS on after half cycle completion");
- } else {
- debug("FAIL");
- debug("ScrollLeft = " + section1.scrollLeft);
- debug("ScrollWidth = " + section1.scrollWidth);
- finishJSTest();
- }
-}
-
-function dump() {
- var t=setTimeout("scrollOffsetInitial()",0);
- var t=setTimeout("scrollOffsetMidCycle()",halfAnimationPeriod);
- var t=setTimeout("scrollOffsetCompleteCycle()",fullAnimationPeriod);
-}
-successfullyParsed = true;
-</script>
-</head>
-<body onload = dump() >
-<marquee id="marquee" width=30 behavior="alternate" scrollamount=1 scrolldelay=1><img src="resources/images/lime.png" width="29" height="29" alt="lime"></marquee>
-<pre id="console"></pre>
-<script src="../../resources/js-test-post.js"></script>
-</body>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastleaks003htmlfromrev211348trunkLayoutTestsfastleaks003htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/leaks/003.html (from rev 211348, trunk/LayoutTests/fast/leaks/003.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/leaks/003.html         (rev 0)
+++ trunk/LayoutTests/fast/leaks/003.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,61 @@
</span><ins>+<p>This test verifies that garbage collection successfully cleans up after the destruction
+of a frame containing a JavaScript interpreter. If the test passes, you'll see a PASS message below.</p>
+<hr>
+<pre id="log"></pre>
+
+<!-- The test: -->
+<iframe id="iframe" src="data:text/html,<script>;</script>" style="display:none"></iframe>
+<script>
+function log(s)
+{
+ document.getElementById("log").appendChild(document.createTextNode(s));
+}
+
+var wiggleRoom = 20;
+
+window.onload = function main()
+{
+ if (!window.testRunner || !window.GCController) {
+ log("FAIL: This test uses the testRunner and the GCController, so it can only run in DumpRenderTree.\n");
+ return;
+ }
+
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+
+ // Start with no garbage, so GC doesn't run automatically during the test.
+ GCController.collect();
+
+ // Create a little garbage, so we can detect failure in the case where the
+ // test doesn't produce any garbage because it fails to destroy the frame.
+ var garbage = [ { }, { }, { }, { }, { }, { }, { }, { }, { }, { } ];
+ garbage = null;
+
+ // Destroy a frame that has a JavaScript interpreter.
+ var iframe = document.getElementById("iframe");
+ iframe.parentNode.removeChild(iframe);
+
+ // Finish the test on a time-out, to allow the Frame keepAlive timer to fire
+ // and release the frame before we generate results.
+ var continueTest = function continueTest()
+ {
+ // Measure how many garbage JS objects are still around.
+ var jsObjectCountStart = GCController.getJSObjectCount();
+ GCController.collect();
+ var jsObjectCountDelta = jsObjectCountStart - GCController.getJSObjectCount();
+ var garbageCount = jsObjectCountDelta > 0 ? jsObjectCountDelta : 0;
+
+ // Fail if a lot of garbage was left behind. This can mean one of many things:
+ // the frame was not destroyed; the frame destruction did not trigger GC; or
+ // GC was not effective.
+ if (garbageCount > wiggleRoom) {
+ log("FAIL: " + garbageCount + " garbage JS objects left uncollected.\n");
+ } else {
+ log("PASS: " + wiggleRoom + " garbage JS objects or fewer left uncollected after destroying a frame.\n");
+ }
+
+ testRunner.notifyDone();
+ }
+ setTimeout(continueTest, 10);
+}
+</script>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastleaks003htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/leaks/003.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/leaks/003.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/leaks/003.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,61 +0,0 @@
</span><del>-<p>This test verifies that garbage collection successfully cleans up after the destruction
-of a frame containing a JavaScript interpreter. If the test passes, you'll see a PASS message below.</p>
-<hr>
-<pre id="log"></pre>
-
-<!-- The test: -->
-<iframe id="iframe" src="data:text/html,<script>;</script>" style="display:none"></iframe>
-<script>
-function log(s)
-{
- document.getElementById("log").appendChild(document.createTextNode(s));
-}
-
-var wiggleRoom = 20;
-
-window.onload = function main()
-{
- if (!window.testRunner || !window.GCController) {
- log("FAIL: This test uses the testRunner and the GCController, so it can only run in DumpRenderTree.\n");
- return;
- }
-
- testRunner.dumpAsText();
- testRunner.waitUntilDone();
-
- // Start with no garbage, so GC doesn't run automatically during the test.
- GCController.collect();
-
- // Create a little garbage, so we can detect failure in the case where the
- // test doesn't produce any garbage because it fails to destroy the frame.
- var garbage = [ { }, { }, { }, { }, { }, { }, { }, { }, { }, { } ];
- garbage = null;
-
- // Destroy a frame that has a JavaScript interpreter.
- var iframe = document.getElementById("iframe");
- iframe.parentNode.removeChild(iframe);
-
- // Finish the test on a time-out, to allow the Frame keepAlive timer to fire
- // and release the frame before we generate results.
- var continueTest = function continueTest()
- {
- // Measure how many garbage JS objects are still around.
- var jsObjectCountStart = GCController.getJSObjectCount();
- GCController.collect();
- var jsObjectCountDelta = jsObjectCountStart - GCController.getJSObjectCount();
- var garbageCount = jsObjectCountDelta > 0 ? jsObjectCountDelta : 0;
-
- // Fail if a lot of garbage was left behind. This can mean one of many things:
- // the frame was not destroyed; the frame destruction did not trigger GC; or
- // GC was not effective.
- if (garbageCount > wiggleRoom) {
- log("FAIL: " + garbageCount + " garbage JS objects left uncollected.\n");
- } else {
- log("PASS: " + wiggleRoom + " garbage JS objects or fewer left uncollected after destroying a frame.\n");
- }
-
- testRunner.notifyDone();
- }
- setTimeout(continueTest, 10);
-}
-</script>
</del></span></pre></div>
<a id="trunkLayoutTestsfastloaderapitestgotocurrentbackforwarditemhtmlfromrev211348trunkLayoutTestsfastloaderapitestgotocurrentbackforwarditemhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html (from rev 211348, trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html         (rev 0)
+++ trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+<script>
+if (window.testRunner) {
+ testRunner.waitUntilDone();
+ testRunner.dumpAsText();
+ testRunner.dumpFrameLoadCallbacks();
+ if (sessionStorage.api_goto_current_bf_item) {
+ delete sessionStorage.api_goto_current_bf_item;
+ testRunner.notifyDone();
+ }
+}
+
+function loaded()
+{
+ if (window.testRunner) {
+ sessionStorage.api_goto_current_bf_item = true;
+ testRunner.apiTestGoToCurrentBackForwardItem();
+ }
+}
+
+</script>
+<body onload="setTimeout('loaded();', 0);">
+<pre>This is an API test that will only work under DumpRenderTree. It tests using the WebKit api [WebView goToBackForwardItem:] to go to the current item. This needs to actually perform a "real" load, and not be treated as a same-document navigation.</pre>
+</body>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastloaderapitestgotocurrentbackforwarditemhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,23 +0,0 @@
</span><del>-<script>
-if (window.testRunner) {
- testRunner.waitUntilDone();
- testRunner.dumpAsText();
- testRunner.dumpFrameLoadCallbacks();
- if (sessionStorage.api_goto_current_bf_item) {
- delete sessionStorage.api_goto_current_bf_item;
- testRunner.notifyDone();
- }
-}
-
-function loaded()
-{
- if (window.testRunner) {
- sessionStorage.api_goto_current_bf_item = true;
- testRunner.apiTestGoToCurrentBackForwardItem();
- }
-}
-
-</script>
-<body onload="setTimeout('loaded();', 0);">
-<pre>This is an API test that will only work under DumpRenderTree. It tests using the WebKit api [WebView goToBackForwardItem:] to go to the current item. This needs to actually perform a "real" load, and not be treated as a same-document navigation.</pre>
-</body>
</del></span></pre></div>
<a id="trunkLayoutTestsfastloaderapitestnewwindowdataloadbaseurlhtmlfromrev211348trunkLayoutTestsfastloaderapitestnewwindowdataloadbaseurlhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html (from rev 211348, trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html         (rev 0)
+++ trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+<script>
+if (window.testRunner) {
+ testRunner.dumpAsText();
+
+ var dataURL = "<a id='anchor' href='#foo'>Hello</a><br><div id='foo'></div><s" + "cript>" +
+ "var evt = document.createEvent('MouseEvent');" +
+ "evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);" +
+ "document.getElementById('anchor').dispatchEvent(evt);" +
+ "</s" + "cript>";
+
+ testRunner.apiTestNewWindowDataLoadBaseURL(dataURL, "http://example.com/example.html");
+}
+</script>
+<body>
+<pre>This test only runs in DRT.
+It creates a new WebView using WebKit API, populates it using "loadData" and gives it a base URL, then clicks on a fragment anchor within it.
+If it doesn't crash, it passed.</pre>
+</body>
+
+
+
+
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastloaderapitestnewwindowdataloadbaseurlhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,23 +0,0 @@
</span><del>-<script>
-if (window.testRunner) {
- testRunner.dumpAsText();
-
- var dataURL = "<a id='anchor' href='#foo'>Hello</a><br><div id='foo'></div><s" + "cript>" +
- "var evt = document.createEvent('MouseEvent');" +
- "evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);" +
- "document.getElementById('anchor').dispatchEvent(evt);" +
- "</s" + "cript>";
-
- testRunner.apiTestNewWindowDataLoadBaseURL(dataURL, "http://example.com/example.html");
-}
-</script>
-<body>
-<pre>This test only runs in DRT.
-It creates a new WebView using WebKit API, populates it using "loadData" and gives it a base URL, then clicks on a fragment anchor within it.
-If it doesn't crash, it passed.</pre>
-</body>
-
-
-
-
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastloaderformeventsbackforwardhtmlfromrev211348trunkLayoutTestsfastloaderformeventsbackforwardhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/loader/form-events-back-forward.html (from rev 211348, trunk/LayoutTests/fast/loader/form-events-back-forward.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/loader/form-events-back-forward.html         (rev 0)
+++ trunk/LayoutTests/fast/loader/form-events-back-forward.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,50 @@
</span><ins>+<html>
+ <head>
+ <script>
+ function test()
+ {
+ if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+ }
+
+ if (window.navigationController)
+ navigationController.evalAfterBackForwardNavigation("continueTestAfterNavigation()");
+ }
+
+ function continueTestAfterNavigation()
+ {
+ var e = document.createEvent("MouseEvents");
+ e.initEvent("click", true, false);
+ document.getElementById('button').dispatchEvent(e);
+
+ if (window.testRunner)
+ testRunner.notifyDone();
+ }
+
+ function button_onClick()
+ {
+ print('PASS: click event sent to button');
+ }
+
+ function print(message) {
+ var paragraph = document.createElement("p");
+ paragraph.appendChild(document.createTextNode(message));
+ document.getElementById("console").appendChild(paragraph);
+ }
+ </script>
+ </head>
+
+ <body onload="test()">
+ <p>Bug: <a href="http://bugzilla.opendarwin.org/show_bug.cgi?id=6331">REGRESSION: form events don't fire after back/forward navigation, due to inconsistent load state</a></p>
+ <p>To run this test in Safari:</p>
+ <ol>
+ <li><a href="go-back.html">Click here to do a back/forward navigation.</a></li>
+ <li><a href="" onclick="continueTestAfterNavigation(); return false;">Click here to test form events.</a></li>
+ </ol>
+ <p>If this test passes, you'll see a PASS message below.</p>
+ <hr>
+ <input type=hidden id="button" onclick="button_onClick()">
+ <div id="console"></div>
+ </body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastloaderformeventsbackforwardhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/loader/form-events-back-forward.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/loader/form-events-back-forward.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/loader/form-events-back-forward.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,50 +0,0 @@
</span><del>-<html>
- <head>
- <script>
- function test()
- {
- if (window.testRunner) {
- testRunner.dumpAsText();
- testRunner.waitUntilDone();
- }
-
- if (window.navigationController)
- navigationController.evalAfterBackForwardNavigation("continueTestAfterNavigation()");
- }
-
- function continueTestAfterNavigation()
- {
- var e = document.createEvent("MouseEvents");
- e.initEvent("click", true, false);
- document.getElementById('button').dispatchEvent(e);
-
- if (window.testRunner)
- testRunner.notifyDone();
- }
-
- function button_onClick()
- {
- print('PASS: click event sent to button');
- }
-
- function print(message) {
- var paragraph = document.createElement("p");
- paragraph.appendChild(document.createTextNode(message));
- document.getElementById("console").appendChild(paragraph);
- }
- </script>
- </head>
-
- <body onload="test()">
- <p>Bug: <a href="http://bugzilla.opendarwin.org/show_bug.cgi?id=6331">REGRESSION: form events don't fire after back/forward navigation, due to inconsistent load state</a></p>
- <p>To run this test in Safari:</p>
- <ol>
- <li><a href="go-back.html">Click here to do a back/forward navigation.</a></li>
- <li><a href="" onclick="continueTestAfterNavigation(); return false;">Click here to test form events.</a></li>
- </ol>
- <p>If this test passes, you'll see a PASS message below.</p>
- <hr>
- <input type=hidden id="button" onclick="button_onClick()">
- <div id="console"></div>
- </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastnotificationsnotificationseventstoppropagationhtmlfromrev211348trunkLayoutTestsfastnotificationsnotificationseventstoppropagationhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html (from rev 211348, trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html         (rev 0)
+++ trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,38 @@
</span><ins>+<!DOCTYPE html>
+<html>
+<head>
+ <script type="text/javascript">
+ function log(message)
+ {
+ document.getElementById("result").innerHTML += message + "<br>";
+ }
+
+ function runTests()
+ {
+ if (window.testRunner) {
+ testRunner.grantWebNotificationPermission("file://");
+ testRunner.dumpAsText();
+ }
+
+ if (!window.webkitNotifications) {
+ log("FAIL: No webkitNotifications interface!");
+ }
+
+ var N = window.webkitNotifications.createNotification("http://localhost/my_icon.png", "New E-mail", "Meet me tonight at 8!");
+ N.addEventListener("display", function(e) { log("PASS: addEventListener(display) non-capture callback invoked"); });
+ N.ondisplay = function(e) { log("PASS: ondisplay attribute event callback invoked."); }
+ N.addEventListener("display", function(e) { log("PASS: addEventListener(display) capture callback invoked"); e.stopPropagation(); }, true );
+ N.show();
+ N.cancel();
+ }
+ </script>
+</head>
+<body>
+<p>Sending notifications with permission...</p>
+<div id="result"></div>
+
+<script type="text/javascript">
+runTests();
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastnotificationsnotificationseventstoppropagationhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,38 +0,0 @@
</span><del>-<!DOCTYPE html>
-<html>
-<head>
- <script type="text/javascript">
- function log(message)
- {
- document.getElementById("result").innerHTML += message + "<br>";
- }
-
- function runTests()
- {
- if (window.testRunner) {
- testRunner.grantWebNotificationPermission("file://");
- testRunner.dumpAsText();
- }
-
- if (!window.webkitNotifications) {
- log("FAIL: No webkitNotifications interface!");
- }
-
- var N = window.webkitNotifications.createNotification("http://localhost/my_icon.png", "New E-mail", "Meet me tonight at 8!");
- N.addEventListener("display", function(e) { log("PASS: addEventListener(display) non-capture callback invoked"); });
- N.ondisplay = function(e) { log("PASS: ondisplay attribute event callback invoked."); }
- N.addEventListener("display", function(e) { log("PASS: addEventListener(display) capture callback invoked"); e.stopPropagation(); }, true );
- N.show();
- N.cancel();
- }
- </script>
-</head>
-<body>
-<p>Sending notifications with permission...</p>
-<div id="result"></div>
-
-<script type="text/javascript">
-runTests();
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastnotificationsnotificationsmultieventshtmlfromrev211348trunkLayoutTestsfastnotificationsnotificationsmultieventshtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/notifications/notifications-multi-events.html (from rev 211348, trunk/LayoutTests/fast/notifications/notifications-multi-events.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/notifications/notifications-multi-events.html         (rev 0)
+++ trunk/LayoutTests/fast/notifications/notifications-multi-events.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+<!DOCTYPE html>
+<html>
+<head>
+ <script type="text/javascript">
+ function log(message)
+ {
+ document.getElementById("result").innerHTML += message + "<br>";
+ }
+
+ function runTests()
+ {
+ if (window.testRunner) {
+ testRunner.grantWebNotificationPermission("file://");
+ testRunner.dumpAsText();
+ }
+
+ if (!window.webkitNotifications) {
+ log("FAIL: No webkitNotifications interface!");
+ }
+
+ var N = window.webkitNotifications.createNotification("http://localhost/my_icon.png", "New E-mail", "Meet me tonight at 8!");
+ N.addEventListener("close", function() { log("PASS: addEventListener(close) callback #1 invoked"); });
+ N.onclose = function() { log("PASS: onclose attribute event callback invoked."); }
+ N.addEventListener("close", function() { log("PASS: addEventListener(close) capture callback #1 invoked"); }, true );
+ N.addEventListener("close", function() { log("PASS: addEventListener(close) capture callback #2 invoked"); }, true );
+ N.addEventListener("close", function() { log("PASS: addEventListener(close) callback #3 invoked"); });
+ N.show();
+ N.cancel();
+ }
+ </script>
+</head>
+<body>
+<p>Sending notifications with permission...</p>
+<div id="result"></div>
+
+<script type="text/javascript">
+runTests();
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastnotificationsnotificationsmultieventshtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/notifications/notifications-multi-events.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/notifications/notifications-multi-events.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/notifications/notifications-multi-events.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,40 +0,0 @@
</span><del>-<!DOCTYPE html>
-<html>
-<head>
- <script type="text/javascript">
- function log(message)
- {
- document.getElementById("result").innerHTML += message + "<br>";
- }
-
- function runTests()
- {
- if (window.testRunner) {
- testRunner.grantWebNotificationPermission("file://");
- testRunner.dumpAsText();
- }
-
- if (!window.webkitNotifications) {
- log("FAIL: No webkitNotifications interface!");
- }
-
- var N = window.webkitNotifications.createNotification("http://localhost/my_icon.png", "New E-mail", "Meet me tonight at 8!");
- N.addEventListener("close", function() { log("PASS: addEventListener(close) callback #1 invoked"); });
- N.onclose = function() { log("PASS: onclose attribute event callback invoked."); }
- N.addEventListener("close", function() { log("PASS: addEventListener(close) capture callback #1 invoked"); }, true );
- N.addEventListener("close", function() { log("PASS: addEventListener(close) capture callback #2 invoked"); }, true );
- N.addEventListener("close", function() { log("PASS: addEventListener(close) callback #3 invoked"); });
- N.show();
- N.cancel();
- }
- </script>
-</head>
-<body>
-<p>Sending notifications with permission...</p>
-<div id="result"></div>
-
-<script type="text/javascript">
-runTests();
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastrubyafterblockdoesntcrashhtmlfromrev211348trunkLayoutTestsfastrubyafterblockdoesntcrashhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html (from rev 211348, trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html         (rev 0)
+++ trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+<meta http-equiv="refresh" content="1;url=" />
+<style>
+ ruby::after {
+ display: block;
+ content: url("http://yy");
+ }
+</style>
+<ruby>
+ <ruby>
+ <ruby>
+ <style>
+ ruby {
+ float: right;        
+ }
+ </style>
+ </ruby>
+ </ruby>
+</ruby>
+<script>
+ if (window.testRunner)
+ testRunner.dumpAsText();
+</script>
+This test passes if it doesn't crash.
</ins></span></pre></div>
<a id="trunkLayoutTestsfastrubyafterblockdoesntcrashhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,23 +0,0 @@
</span><del>-<meta http-equiv="refresh" content="1;url=" />
-<style>
- ruby::after {
- display: block;
- content: url("http://yy");
- }
-</style>
-<ruby>
- <ruby>
- <ruby>
- <style>
- ruby {
- float: right;        
- }
- </style>
- </ruby>
- </ruby>
-</ruby>
-<script>
- if (window.testRunner)
- testRunner.dumpAsText();
-</script>
-This test passes if it doesn't crash.
</del></span></pre></div>
<a id="trunkLayoutTestsfastrubyaftertabledoesntcrashhtmlfromrev211348trunkLayoutTestsfastrubyaftertabledoesntcrashhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html (from rev 211348, trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html         (rev 0)
+++ trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+<meta http-equiv="refresh" content="1;url=" />
+<style>
+ ruby::after {
+ display: table;
+ content: url("http://yy");
+ }
+</style>
+<ruby>
+ <ruby>
+ <ruby>
+ <style>
+ ruby {
+ float: right;        
+ }
+ </style>
+ </ruby>
+ </ruby>
+</ruby>
+<script>
+ if (window.testRunner)
+ testRunner.dumpAsText();
+</script>
+This test passes if it doesn't crash.
</ins></span></pre></div>
<a id="trunkLayoutTestsfastrubyaftertabledoesntcrashhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,23 +0,0 @@
</span><del>-<meta http-equiv="refresh" content="1;url=" />
-<style>
- ruby::after {
- display: table;
- content: url("http://yy");
- }
-</style>
-<ruby>
- <ruby>
- <ruby>
- <style>
- ruby {
- float: right;        
- }
- </style>
- </ruby>
- </ruby>
-</ruby>
-<script>
- if (window.testRunner)
- testRunner.dumpAsText();
-</script>
-This test passes if it doesn't crash.
</del></span></pre></div>
<a id="trunkLayoutTestsfastrubygeneratedaftercounterdoesntcrashhtmlfromrev211348trunkLayoutTestsfastrubygeneratedaftercounterdoesntcrashhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html (from rev 211348, trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html         (rev 0)
+++ trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+<html>
+<script>
+ if (window.testRunner)
+ testRunner.dumpAsText();
+</script>
+<style type="text/css">
+
+ruby:after{
+        counter-reset: g -2532653 K -48696899414062 ll -48202514648437 rr -1821899414062;
+}
+ruby::after{
+        display: table;
+        content: url("http://xx");
+}
+
+</style>
+        <ruby>
+                <ruby>
+                        <ruby>
+<style type="text/css">
+ruby{
+        float: left;
+}
+</style>
+        <ruby>
+This test passes if it doesn't crash.
</ins></span></pre></div>
<a id="trunkLayoutTestsfastrubygeneratedaftercounterdoesntcrashhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,26 +0,0 @@
</span><del>-<html>
-<script>
- if (window.testRunner)
- testRunner.dumpAsText();
-</script>
-<style type="text/css">
-
-ruby:after{
-        counter-reset: g -2532653 K -48696899414062 ll -48202514648437 rr -1821899414062;
-}
-ruby::after{
-        display: table;
-        content: url("http://xx");
-}
-
-</style>
-        <ruby>
-                <ruby>
-                        <ruby>
-<style type="text/css">
-ruby{
-        float: left;
-}
-</style>
-        <ruby>
-This test passes if it doesn't crash.
</del></span></pre></div>
<a id="trunkLayoutTestsfastrubygeneratedbeforeandaftercounterdoesntcrashhtmlfromrev211348trunkLayoutTestsfastrubygeneratedbeforeandaftercounterdoesntcrashhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html (from rev 211348, trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html         (rev 0)
+++ trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+<html>
+<script>
+ if (window.testRunner)
+ testRunner.dumpAsText();
+</script>
+<style type="text/css">
+
+ruby:before{
+        counter-reset: g -2532653 K -48696899414062 ll -48202514648437 rr -1821899414062;
+}
+ruby::before{
+        display: table;
+        content: url("http://xx");
+}
+ruby:after{
+        counter-reset: g -2532653 K -48696899414062 ll -48202514648437 rr -1821899414062;
+}
+ruby::after{
+        display: table;
+        content: url("http://yy");
+}
+
+</style>
+        <ruby>
+                <ruby>
+                        <ruby>
+<style type="text/css">
+ruby{
+        float: left;
+}
+</style>
+        <ruby>
+This test passes if it doesn't crash.
</ins></span></pre></div>
<a id="trunkLayoutTestsfastrubygeneratedbeforeandaftercounterdoesntcrashhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,33 +0,0 @@
</span><del>-<html>
-<script>
- if (window.testRunner)
- testRunner.dumpAsText();
-</script>
-<style type="text/css">
-
-ruby:before{
-        counter-reset: g -2532653 K -48696899414062 ll -48202514648437 rr -1821899414062;
-}
-ruby::before{
-        display: table;
-        content: url("http://xx");
-}
-ruby:after{
-        counter-reset: g -2532653 K -48696899414062 ll -48202514648437 rr -1821899414062;
-}
-ruby::after{
-        display: table;
-        content: url("http://yy");
-}
-
-</style>
-        <ruby>
-                <ruby>
-                        <ruby>
-<style type="text/css">
-ruby{
-        float: left;
-}
-</style>
-        <ruby>
-This test passes if it doesn't crash.
</del></span></pre></div>
<a id="trunkLayoutTestsfastshadowdomcopyshadowtreehtmlfromrev211348trunkLayoutTestsfastshadowdomcopyshadowtreehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html (from rev 211348, trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html         (rev 0)
+++ trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+<!DOCTYPE html>
+<html>
+<body>
+<p>This tests copying the content inside a shadow tree.<br>
+To manually test, copy the selected content and paste it below:</p>
+<style>
+#source, #destination {
+ border: solid 1px #666;
+ margin: 1rem 0;
+}
+</style>
+<div id="source">
+ <b>hello,
+ <span id="host"><span slot="webkit">WebKit</span> <span slot="others">and other engines</slot></span>
+ </b>
+ <i>rocks</i>
+</div>
+<div id="destination" contenteditable><br></div>
+<script>
+
+document.getElementById('host').attachShadow({mode: 'closed'}).innerHTML = 'world <slot name="webkit"></slot>';
+getSelection().selectAllChildren(document.getElementById('source'));
+
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastshadowdomcopyshadowtreehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,26 +0,0 @@
</span><del>-<!DOCTYPE html>
-<html>
-<body>
-<p>This tests copying the content inside a shadow tree.<br>
-To manually test, copy the selected content and paste it below:</p>
-<style>
-#source, #destination {
- border: solid 1px #666;
- margin: 1rem 0;
-}
-</style>
-<div id="source">
- <b>hello,
- <span id="host"><span slot="webkit">WebKit</span> <span slot="others">and other engines</slot></span>
- </b>
- <i>rocks</i>
-</div>
-<div id="destination" contenteditable><br></div>
-<script>
-
-document.getElementById('host').attachShadow({mode: 'closed'}).innerHTML = 'world <slot name="webkit"></slot>';
-getSelection().selectAllChildren(document.getElementById('source'));
-
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfasttabledoubleheighttablenotbodyhtmlfromrev211348trunkLayoutTestsfasttabledoubleheighttablenotbodyhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/table/double-height-table-no-tbody.html (from rev 211348, trunk/LayoutTests/fast/table/double-height-table-no-tbody.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/table/double-height-table-no-tbody.html         (rev 0)
+++ trunk/LayoutTests/fast/table/double-height-table-no-tbody.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,63 @@
</span><ins>+<!DOCTYPE html>
+<html>
+<head>
+<style>
+ body { font-size: 13px; font-family: serif; }
+ table { border: 1px solid red; border-spacing: 0px; padding: 0px; }
+ th { border: 1px solid red; width: 125px; }
+ .height20px { height: 20px; }
+ .height19px { height: 19px; }
+ .smallerFont { font-size: 10px; }
+</style>
+</head>
+<body>
+<p>Bug <a href="https://bugs.webkit.org/show_bug.cgi?id=37244">37244</a>: thead in table without tbody causes table height doubling</p>
+<p>There should not be any gap between the tables' border and the rows'.</p>
+<h1>height = 20px</h1>
+<table class="height20px">
+<thead>
+<tr>
+ <th>A</th>
+ <th>B</th>
+ <th>C</th>
+ <th>D</th>
+</tr>
+</thead>
+</table>
+<br>
+<table class="height20px">
+<tfoot>
+<tr>
+ <th>A</th>
+ <th>B</th>
+ <th>C</th>
+ <th>D</th>
+</tr>
+</tfoot>
+</table>
+
+<h1>height = 19px, font-size = 10px</h1>
+<table class="height19px smallerFont">
+<thead>
+<tr>
+ <th>A</th>
+ <th>B</th>
+ <th>C</th>
+ <th>D</th>
+</tr>
+</thead>
+</table>
+<br>
+<table class="height19px smallerFont">
+<tfoot>
+<tr>
+ <th>A</th>
+ <th>B</th>
+ <th>C</th>
+ <th>D</th>
+</tr>
+</tfoot>
+</table>
+
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfasttabledoubleheighttablenotbodyhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/table/double-height-table-no-tbody.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/table/double-height-table-no-tbody.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/table/double-height-table-no-tbody.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,63 +0,0 @@
</span><del>-<!DOCTYPE html>
-<html>
-<head>
-<style>
- body { font-size: 13px; font-family: serif; }
- table { border: 1px solid red; border-spacing: 0px; padding: 0px; }
- th { border: 1px solid red; width: 125px; }
- .height20px { height: 20px; }
- .height19px { height: 19px; }
- .smallerFont { font-size: 10px; }
-</style>
-</head>
-<body>
-<p>Bug <a href="https://bugs.webkit.org/show_bug.cgi?id=37244">37244</a>: thead in table without tbody causes table height doubling</p>
-<p>There should not be any gap between the tables' border and the rows'.</p>
-<h1>height = 20px</h1>
-<table class="height20px">
-<thead>
-<tr>
- <th>A</th>
- <th>B</th>
- <th>C</th>
- <th>D</th>
-</tr>
-</thead>
-</table>
-<br>
-<table class="height20px">
-<tfoot>
-<tr>
- <th>A</th>
- <th>B</th>
- <th>C</th>
- <th>D</th>
-</tr>
-</tfoot>
-</table>
-
-<h1>height = 19px, font-size = 10px</h1>
-<table class="height19px smallerFont">
-<thead>
-<tr>
- <th>A</th>
- <th>B</th>
- <th>C</th>
- <th>D</th>
-</tr>
-</thead>
-</table>
-<br>
-<table class="height19px smallerFont">
-<tfoot>
-<tr>
- <th>A</th>
- <th>B</th>
- <th>C</th>
- <th>D</th>
-</tr>
-</tfoot>
-</table>
-
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfasttextlargetextcomposedchardoshtmlfromrev211348trunkLayoutTestsfasttextlargetextcomposedchardoshtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/text/large-text-composed-char-dos.html (from rev 211348, trunk/LayoutTests/fast/text/large-text-composed-char-dos.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/text/large-text-composed-char-dos.html         (rev 0)
+++ trunk/LayoutTests/fast/text/large-text-composed-char-dos.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+<head>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+</script>
+<body>
+é́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfasttextlargetextcomposedchardoshtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/text/large-text-composed-char-dos.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/text/large-text-composed-char-dos.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/text/large-text-composed-char-dos.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,8 +0,0 @@
</span><del>-<head>
-<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-</script>
-<body>
-é́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestshttptestsappcachedynamicentriesnocacheexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/appcache/dynamic-entries-no-cache-expected.txt (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/appcache/dynamic-entries-no-cache-expected.txt        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/http/tests/appcache/dynamic-entries-no-cache-expected.txt        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,27 +0,0 @@
</span><del>-Test the behavior of DOMApplicationCache methods related to dynamic entries when the context is not associated with any cache.
-
-PASS: applicationCache.items.length is 0
-PASS: applicationCache.items.item(0) is null
-PASS: applicationCache.items.item(1) is null
-PASS: applicationCache.items.item(0xffffffff) is null
-PASS: applicationCache.items.item(0xfffffffe) is null
-PASS: applicationCache.items.item(-1) is null
-PASS: applicationCache.items.item(-2) is null
-PASS: applicationCache.items[0xfffffffe] is undefined
-PASS: applicationCache.items[0xffffffff] is undefined
-PASS: applicationCache.items['0'] is undefined
-PASS: applicationCache.items[''] is undefined
-PASS: applicationCache.items[0] is undefined
-PASS: applicationCache.items[1] is undefined
-PASS: applicationCache.items[-1] is undefined
-PASS: applicationCache.items[-2] is undefined
-PASS: applicationCache.items[100] is undefined
-PASS: applicationCache.items['100'] is undefined
-PASS: applicationCache.items['foo'] is undefined
-PASS: applicationCache.items[0.1] is undefined
-PASS: hasItem raised INVALID_STATE_ERR
-PASS: add raised INVALID_STATE_ERR
-PASS: remove raised INVALID_STATE_ERR
-PASS: applicationCache.items.length is 0
-DONE
-
</del></span></pre></div>
<a id="trunkLayoutTestshttptestsappcachedynamicentriesnocachehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/appcache/dynamic-entries-no-cache.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/appcache/dynamic-entries-no-cache.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/http/tests/appcache/dynamic-entries-no-cache.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,119 +0,0 @@
</span><del>-<body>
-<p>Test the behavior of DOMApplicationCache methods related to dynamic entries when the context
-is not associated with any cache.</p>
-<div id="result"></div>
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function log(message)
-{
- document.getElementById("result").innerHTML += message + "<br>";
-}
-
-
-function isResultCorrect(_actual, _expected)
-{
- if (_expected === 0)
- return _actual === _expected && (1/_actual) === (1/_expected);
- if (_actual === _expected)
- return true;
- if (typeof(_expected) == "number" && isNaN(_expected))
- return typeof(_actual) == "number" && isNaN(_actual);
- if (Object.prototype.toString.call(_expected) == Object.prototype.toString.call([])) {
- log("Array comparison is not supported");
- return false;
- }
- return false;
-}
-
-function shouldBe(_a, _b)
-{
- if (typeof _a != "string" || typeof _b != "string")
- log("WARN: shouldBe() expects string arguments");
- var exception;
- var _av;
- try {
- _av = eval(_a);
- } catch (e) {
- exception = e;
- }
- var _bv = eval(_b);
-
- if (exception)
- log("FAIL: " + _a + " should be " + _bv + ". Threw exception " + exception);
- else if (isResultCorrect(_av, _bv))
- log("PASS: " + _a + " is " + _b);
- else if (typeof(_av) == typeof(_bv))
- log("FAIL: " + _a + " should be " + _bv + ". Was " + stringify(_av) + ".");
- else
- log("FAIL: " + _a + " should be " + _bv + " (of type " + typeof _bv + "). Was " + _av + " (of type " + typeof _av + ").");
-}
-
-
-shouldBe("applicationCache.items.length", "0");
-shouldBe("applicationCache.items.item(0)", "null");
-shouldBe("applicationCache.items.item(1)", "null");
-shouldBe("applicationCache.items.item(0xffffffff)", "null");
-shouldBe("applicationCache.items.item(0xfffffffe)", "null");
-shouldBe("applicationCache.items.item(-1)", "null");
-shouldBe("applicationCache.items.item(-2)", "null");
-
-shouldBe("applicationCache.items[0xfffffffe]", "undefined");
-shouldBe("applicationCache.items[0xffffffff]", "undefined");
-
-// The below index access tests give different results in WebKit and Firefox 3.1b2 (undefined vs. empty string).
-shouldBe("applicationCache.items['0']", "undefined");
-shouldBe("applicationCache.items['']", "undefined");
-shouldBe("applicationCache.items[0]", "undefined");
-shouldBe("applicationCache.items[1]", "undefined");
-shouldBe("applicationCache.items[-1]", "undefined");
-shouldBe("applicationCache.items[-2]", "undefined");
-applicationCache.items[100] = "foobar";
-applicationCache.items['100'] = "foobar";
-applicationCache.items['foo'] = "bar";
-shouldBe("applicationCache.items[100]", "undefined");
-shouldBe("applicationCache.items['100']", "undefined");
-
-shouldBe("applicationCache.items['foo']", "undefined");
-shouldBe("applicationCache.items[0.1]", "undefined");
-
-try {
- applicationCache.hasItem('foo');
- log("FAIL: hasItem didn't raise an exception");
-} catch (ex) {
- if (ex.code == 11)
- log("PASS: hasItem raised INVALID_STATE_ERR");
- else
- log("FAIL: hasItem raised unexpected exception " + ex);
-}
-
-try {
- applicationCache.add('foo');
- log("FAIL: add didn't raise an exception");
-} catch (ex) {
- if (ex.code == 11)
- log("PASS: add raised INVALID_STATE_ERR");
- else
- log("FAIL: add raised unexpected exception " + ex);
-}
-
-try {
- applicationCache.remove('bar');
- log("FAIL: remove didn't raise an exception");
-} catch (ex) {
- if (ex.code == 11)
- log("PASS: remove raised INVALID_STATE_ERR");
- else
- log("FAIL: remove raised unexpected exception " + ex);
-}
-
-shouldBe("applicationCache.items.length", "0");
-
-
-
-log("DONE");
-
-</script>
-</head>
-</body>
</del></span></pre></div>
<a id="trunkLayoutTestshttptestsmultipartwinboundarycrashhtmlfromrev211348trunkLayoutTestshttptestsmultipartwinboundarycrashhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html (from rev 211348, trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html         (rev 0)
+++ trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+<html>
+<head>
+<script>
+ if (window.testRunner)
+ testRunner.dumpAsText();
+</script>
+</head>
+<body>
+<p>Test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=14516">http://bugs.webkit.org/show_bug.cgi?id=14516</a>
+crash loading multipart/x-mixed-replace data on windows safari</i></p>
+<p>If WebKit does not crash when loading this img, then it passed.</p>
+<img src="resources/multipart-nodashes.php" />
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestshttptestsmultipartwinboundarycrashhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,14 +0,0 @@
</span><del>-<html>
-<head>
-<script>
- if (window.testRunner)
- testRunner.dumpAsText();
-</script>
-</head>
-<body>
-<p>Test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=14516">http://bugs.webkit.org/show_bug.cgi?id=14516</a>
-crash loading multipart/x-mixed-replace data on windows safari</i></p>
-<p>If WebKit does not crash when loading this img, then it passed.</p>
-<img src="resources/multipart-nodashes.php" />
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestshttptestsnavigationpostgobackrepostpolicyhtmlfromrev211348trunkLayoutTestshttptestsnavigationpostgobackrepostpolicyhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html (from rev 211348, trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html         (rev 0)
+++ trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+<html>
+<head>
+<script>
+
+if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+}
+
+function loaded()
+{
+ document.getElementById("testform").submit();
+}
+
+</script>
+</head>
+<body onload="loaded();">
+
+<form id="testform" action="resources/post-target-policy-test.php" method="post">
+<input id="somefield" type="text" value="form data">
+</form>
+
+https://bugs.webkit.org/show_bug.cgi?id=22194 - Should be no "form resubmission" nag after navigating back in some cases.<br>
+This test does some form posts then navigates back. There should be no form resubmission nag at the last step.
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestshttptestsnavigationpostgobackrepostpolicyhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,26 +0,0 @@
</span><del>-<html>
-<head>
-<script>
-
-if (window.testRunner) {
- testRunner.dumpAsText();
- testRunner.waitUntilDone();
-}
-
-function loaded()
-{
- document.getElementById("testform").submit();
-}
-
-</script>
-</head>
-<body onload="loaded();">
-
-<form id="testform" action="resources/post-target-policy-test.php" method="post">
-<input id="somefield" type="text" value="form data">
-</form>
-
-https://bugs.webkit.org/show_bug.cgi?id=22194 - Should be no "form resubmission" nag after navigating back in some cases.<br>
-This test does some form posts then navigates back. There should be no form resubmission nag at the last step.
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestshttptestsnavigationsuccess200framesgobackhtmlfromrev211348trunkLayoutTestshttptestsnavigationsuccess200framesgobackhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html (from rev 211348, trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html         (rev 0)
+++ trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+<script type="text/javascript" src="resources/testcode.js"></script>
+<script>
+ runBackTest("resources/frameset.pl?frameURL=success200.html", 1, "none");
+</script>
+This page just kicks off a test, and should not appear in the expected test output.
+
+<br>
+DISABLED due to http://bugzilla.opendarwin.org/show_bug.cgi?id=10161
+It probably make sense to add variants for some of the other nav techniques,
+like the various redirects, once this gets fixed.
+
</ins></span></pre></div>
<a id="trunkLayoutTestshttptestsnavigationsuccess200framesgobackhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,11 +0,0 @@
</span><del>-<script type="text/javascript" src="resources/testcode.js"></script>
-<script>
- runBackTest("resources/frameset.pl?frameURL=success200.html", 1, "none");
-</script>
-This page just kicks off a test, and should not appear in the expected test output.
-
-<br>
-DISABLED due to http://bugzilla.opendarwin.org/show_bug.cgi?id=10161
-It probably make sense to add variants for some of the other nav techniques,
-like the various redirects, once this gets fixed.
-
</del></span></pre></div>
<a id="trunkLayoutTestshttptestsnavigationsuccess200framesreloadhtmlfromrev211348trunkLayoutTestshttptestsnavigationsuccess200framesreloadhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html (from rev 211348, trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html         (rev 0)
+++ trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+<script type="text/javascript" src="resources/testcode.js"/>
+<script>
+ runReloadTest("resources/frameset.pl?frameURL=success200.html", "none");
+</script>
+This page just kicks off a test, and should not appear in the expected test output.
+
+<br>
+DISABLED due to http://bugzilla.opendarwin.org/show_bug.cgi?id=10223
</ins></span></pre></div>
<a id="trunkLayoutTestshttptestsnavigationsuccess200framesreloadhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,8 +0,0 @@
</span><del>-<script type="text/javascript" src="resources/testcode.js"/>
-<script>
- runReloadTest("resources/frameset.pl?frameURL=success200.html", "none");
-</script>
-This page just kicks off a test, and should not appear in the expected test output.
-
-<br>
-DISABLED due to http://bugzilla.opendarwin.org/show_bug.cgi?id=10223
</del></span></pre></div>
<a id="trunkLayoutTestshttptestsnavigationsuccess200subframeloadgobackhtmlfromrev211348trunkLayoutTestshttptestsnavigationsuccess200subframeloadgobackhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html (from rev 211348, trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html         (rev 0)
+++ trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+<script type="text/javascript" src="resources/testcode.js"/>
+<script>
+ runLoadChildFrameBackTest("resources/success200.html", "none");
+</script>
+This page just kicks off a test, and should not appear in the expected test output.
+
+<br>
+DISABLED due to http://bugzilla.opendarwin.org/show_bug.cgi?id=10161
+
</ins></span></pre></div>
<a id="trunkLayoutTestshttptestsnavigationsuccess200subframeloadgobackhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,9 +0,0 @@
</span><del>-<script type="text/javascript" src="resources/testcode.js"/>
-<script>
- runLoadChildFrameBackTest("resources/success200.html", "none");
-</script>
-This page just kicks off a test, and should not appear in the expected test output.
-
-<br>
-DISABLED due to http://bugzilla.opendarwin.org/show_bug.cgi?id=10161
-
</del></span></pre></div>
<a id="trunkLayoutTestsjavalc3ArrayMethodsobject001htmlfromrev211348trunkLayoutTestsjavalc3forinarray001htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html (from rev 211348, trunk/LayoutTests/java/lc3/forin/array-001.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html         (rev 0)
+++ trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,115 @@
</span><ins>+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<script src="../../../resources/js-test-pre.js"></script>
+<script>
+if (window.testRunner) {
+ testRunner.overridePreference("WebKitJavaEnabled", "1");
+ testRunner.waitUntilDone();
+}
+</script>
+</head>
+<body onload="onload()">
+
+<div id="console"></div>
+
+<object
+ classid="clsid:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA"
+ width=500
+ height=200
+ <param name="codebase" value="../../../java">
+ <param name="code" value="lc3.class">
+ <param name="archive" value="jstests.jar">
+ <comment>
+ <embed
+ code="lc3.class"
+ codebase="../../../java"
+ archive="jstests.jar"
+ type="application/x-java-applet"
+ width=500
+ height=200>
+ <noembed>
+ No Java Support.
+ </noembed>
+ </comment>
+</object>
+
+
+<script>
+function startTest()
+{
+ window.applet = document.getElementsByTagName("embed")[0];
+ if (!applet.createQAObject)
+ window.applet = document.getElementsByTagName("object")[0];
+
+ debug(TITLE + "\n");
+}
+
+function shouldBeWithErrorCheck(_a, _b)
+{
+ // Don't want full stack traces from Java exceptions.
+ if (window.testRunner) {
+ try {
+ eval(_a);
+ } catch (ex) {
+ if (/Caused by: /.test(ex)) {
+ testFailed(_a + ": Exception raised");
+ return;
+ }
+ }
+ }
+
+ var b_eval;
+ try {
+ b_eval = eval(_b);
+ } catch (ex) {
+ testFailed(_b + ": " + ex);
+ return;
+ }
+
+ if (b_eval == "error")
+ shouldThrow(_a);
+ else
+ shouldBe(_a, _b);
+}
+
+function wkTestStringToJavaByteArray(string)
+{
+ return applet.stringToByteArray(string);
+}
+
+function appendScript(text)
+{
+ var el = document.createElement("script")
+ el.appendChild = document.createTextNode(text);
+ document.body.appendChild(el);
+}
+
+function onload()
+{
+ try {
+ var req = new XMLHttpRequest();
+ req.open("GET", window.location.pathname.replace(/html$/, "js"), false);
+ if (req.overrideMimeType)
+ req.overrideMimeType("text/plain");
+ req.send();
+
+ if (!req.responseText.length)
+ throw "could not load test script";
+
+ var scriptElement = document.createElement("script")
+ scriptElement.appendChild(document.createTextNode(
+ req.responseText + "\n"));
+ document.body.appendChild(scriptElement);
+ } catch (ex) {
+ testFailed("Could not run test: " + ex);
+ }
+
+ scriptElement = document.createElement("script")
+ scriptElement.src = '../../../resources/js-test-post-async.js'
+ document.body.appendChild(scriptElement);
+}
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsjavalc3ArrayMethodsobject001htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,115 +0,0 @@
</span><del>-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<script src="../../../resources/js-test-pre.js"></script>
-<script>
-if (window.testRunner) {
- testRunner.overridePreference("WebKitJavaEnabled", "1");
- testRunner.waitUntilDone();
-}
-</script>
-</head>
-<body onload="onload()">
-
-<div id="console"></div>
-
-<object
- classid="clsid:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA"
- width=500
- height=200
- <param name="codebase" value="../../../java">
- <param name="code" value="lc3.class">
- <param name="archive" value="jstests.jar">
- <comment>
- <embed
- code="lc3.class"
- codebase="../../../java"
- archive="jstests.jar"
- type="application/x-java-applet"
- width=500
- height=200>
- <noembed>
- No Java Support.
- </noembed>
- </comment>
-</object>
-
-
-<script>
-function startTest()
-{
- window.applet = document.getElementsByTagName("embed")[0];
- if (!applet.createQAObject)
- window.applet = document.getElementsByTagName("object")[0];
-
- debug(TITLE + "\n");
-}
-
-function shouldBeWithErrorCheck(_a, _b)
-{
- // Don't want full stack traces from Java exceptions.
- if (window.testRunner) {
- try {
- eval(_a);
- } catch (ex) {
- if (/Caused by: /.test(ex)) {
- testFailed(_a + ": Exception raised");
- return;
- }
- }
- }
-
- var b_eval;
- try {
- b_eval = eval(_b);
- } catch (ex) {
- testFailed(_b + ": " + ex);
- return;
- }
-
- if (b_eval == "error")
- shouldThrow(_a);
- else
- shouldBe(_a, _b);
-}
-
-function wkTestStringToJavaByteArray(string)
-{
- return applet.stringToByteArray(string);
-}
-
-function appendScript(text)
-{
- var el = document.createElement("script")
- el.appendChild = document.createTextNode(text);
- document.body.appendChild(el);
-}
-
-function onload()
-{
- try {
- var req = new XMLHttpRequest();
- req.open("GET", window.location.pathname.replace(/html$/, "js"), false);
- if (req.overrideMimeType)
- req.overrideMimeType("text/plain");
- req.send();
-
- if (!req.responseText.length)
- throw "could not load test script";
-
- var scriptElement = document.createElement("script")
- scriptElement.appendChild(document.createTextNode(
- req.responseText + "\n"));
- document.body.appendChild(scriptElement);
- } catch (ex) {
- testFailed("Could not run test: " + ex);
- }
-
- scriptElement = document.createElement("script")
- scriptElement.src = '../../../resources/js-test-post-async.js'
- document.body.appendChild(scriptElement);
-}
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsjavalc3forinarray001htmlfromrev211348trunkLayoutTestsjavalc3ArrayMethodsobject001htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/java/lc3/forin/array-001.html (from rev 211348, trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/java/lc3/forin/array-001.html         (rev 0)
+++ trunk/LayoutTests/java/lc3/forin/array-001.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,115 @@
</span><ins>+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<script src="../../../resources/js-test-pre.js"></script>
+<script>
+if (window.testRunner) {
+ testRunner.overridePreference("WebKitJavaEnabled", "1");
+ testRunner.waitUntilDone();
+}
+</script>
+</head>
+<body onload="onload()">
+
+<div id="console"></div>
+
+<object
+ classid="clsid:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA"
+ width=500
+ height=200
+ <param name="codebase" value="../../../java">
+ <param name="code" value="lc3.class">
+ <param name="archive" value="jstests.jar">
+ <comment>
+ <embed
+ code="lc3.class"
+ codebase="../../../java"
+ archive="jstests.jar"
+ type="application/x-java-applet"
+ width=500
+ height=200>
+ <noembed>
+ No Java Support.
+ </noembed>
+ </comment>
+</object>
+
+
+<script>
+function startTest()
+{
+ window.applet = document.getElementsByTagName("embed")[0];
+ if (!applet.createQAObject)
+ window.applet = document.getElementsByTagName("object")[0];
+
+ debug(TITLE + "\n");
+}
+
+function shouldBeWithErrorCheck(_a, _b)
+{
+ // Don't want full stack traces from Java exceptions.
+ if (window.testRunner) {
+ try {
+ eval(_a);
+ } catch (ex) {
+ if (/Caused by: /.test(ex)) {
+ testFailed(_a + ": Exception raised");
+ return;
+ }
+ }
+ }
+
+ var b_eval;
+ try {
+ b_eval = eval(_b);
+ } catch (ex) {
+ testFailed(_b + ": " + ex);
+ return;
+ }
+
+ if (b_eval == "error")
+ shouldThrow(_a);
+ else
+ shouldBe(_a, _b);
+}
+
+function wkTestStringToJavaByteArray(string)
+{
+ return applet.stringToByteArray(string);
+}
+
+function appendScript(text)
+{
+ var el = document.createElement("script")
+ el.appendChild = document.createTextNode(text);
+ document.body.appendChild(el);
+}
+
+function onload()
+{
+ try {
+ var req = new XMLHttpRequest();
+ req.open("GET", window.location.pathname.replace(/html$/, "js"), false);
+ if (req.overrideMimeType)
+ req.overrideMimeType("text/plain");
+ req.send();
+
+ if (!req.responseText.length)
+ throw "could not load test script";
+
+ var scriptElement = document.createElement("script")
+ scriptElement.appendChild(document.createTextNode(
+ req.responseText + "\n"));
+ document.body.appendChild(scriptElement);
+ } catch (ex) {
+ testFailed("Could not run test: " + ex);
+ }
+
+ scriptElement = document.createElement("script")
+ scriptElement.src = '../../../resources/js-test-post-async.js'
+ document.body.appendChild(scriptElement);
+}
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsjavalc3forinarray001htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/java/lc3/forin/array-001.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/java/lc3/forin/array-001.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/java/lc3/forin/array-001.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,115 +0,0 @@
</span><del>-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<script src="../../../resources/js-test-pre.js"></script>
-<script>
-if (window.testRunner) {
- testRunner.overridePreference("WebKitJavaEnabled", "1");
- testRunner.waitUntilDone();
-}
-</script>
-</head>
-<body onload="onload()">
-
-<div id="console"></div>
-
-<object
- classid="clsid:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA"
- width=500
- height=200
- <param name="codebase" value="../../../java">
- <param name="code" value="lc3.class">
- <param name="archive" value="jstests.jar">
- <comment>
- <embed
- code="lc3.class"
- codebase="../../../java"
- archive="jstests.jar"
- type="application/x-java-applet"
- width=500
- height=200>
- <noembed>
- No Java Support.
- </noembed>
- </comment>
-</object>
-
-
-<script>
-function startTest()
-{
- window.applet = document.getElementsByTagName("embed")[0];
- if (!applet.createQAObject)
- window.applet = document.getElementsByTagName("object")[0];
-
- debug(TITLE + "\n");
-}
-
-function shouldBeWithErrorCheck(_a, _b)
-{
- // Don't want full stack traces from Java exceptions.
- if (window.testRunner) {
- try {
- eval(_a);
- } catch (ex) {
- if (/Caused by: /.test(ex)) {
- testFailed(_a + ": Exception raised");
- return;
- }
- }
- }
-
- var b_eval;
- try {
- b_eval = eval(_b);
- } catch (ex) {
- testFailed(_b + ": " + ex);
- return;
- }
-
- if (b_eval == "error")
- shouldThrow(_a);
- else
- shouldBe(_a, _b);
-}
-
-function wkTestStringToJavaByteArray(string)
-{
- return applet.stringToByteArray(string);
-}
-
-function appendScript(text)
-{
- var el = document.createElement("script")
- el.appendChild = document.createTextNode(text);
- document.body.appendChild(el);
-}
-
-function onload()
-{
- try {
- var req = new XMLHttpRequest();
- req.open("GET", window.location.pathname.replace(/html$/, "js"), false);
- if (req.overrideMimeType)
- req.overrideMimeType("text/plain");
- req.send();
-
- if (!req.responseText.length)
- throw "could not load test script";
-
- var scriptElement = document.createElement("script")
- scriptElement.appendChild(document.createTextNode(
- req.responseText + "\n"));
- document.body.appendChild(scriptElement);
- } catch (ex) {
- testFailed("Could not run test: " + ex);
- }
-
- scriptElement = document.createElement("script")
- scriptElement.src = '../../../resources/js-test-post-async.js'
- document.body.appendChild(scriptElement);
-}
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsjqueryeffectshtmlfromrev211348trunkLayoutTestsjqueryeffectshtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/jquery/effects.html (from rev 211348, trunk/LayoutTests/jquery/effects.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/jquery/effects.html         (rev 0)
+++ trunk/LayoutTests/jquery/effects.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,2 @@
</span><ins>+<script src="resources/helper.js"></script>
+<iframe src="resources/test/index.html?effects"></iframe>
</ins></span></pre></div>
<a id="trunkLayoutTestsjqueryeffectshtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/jquery/effects.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/jquery/effects.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/jquery/effects.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,2 +0,0 @@
</span><del>-<script src="resources/helper.js"></script>
-<iframe src="resources/test/index.html?effects"></iframe>
</del></span></pre></div>
<a id="trunkLayoutTestsjsgarbagecollectafterstringappendshtmlfromrev211348trunkLayoutTestsjsgarbagecollectafterstringappendshtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/js/garbage-collect-after-string-appends.html (from rev 211348, trunk/LayoutTests/js/garbage-collect-after-string-appends.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/garbage-collect-after-string-appends.html         (rev 0)
+++ trunk/LayoutTests/js/garbage-collect-after-string-appends.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src="../../resources/js-test-pre.js"></script>
+</head>
+<body>
+<script src="resources/garbage-collect-after-string-appends.js"></script>
+<script src="../../resources/js-test-post.js"></script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsjsgarbagecollectafterstringappendshtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/js/garbage-collect-after-string-appends.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/garbage-collect-after-string-appends.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/js/garbage-collect-after-string-appends.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,10 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<script src="../../resources/js-test-pre.js"></script>
-</head>
-<body>
-<script src="resources/garbage-collect-after-string-appends.js"></script>
-<script src="../../resources/js-test-post.js"></script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsjskdeDatehtmlfromrev211348trunkLayoutTestsjskdeDatehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/js/kde/Date.html (from rev 211348, trunk/LayoutTests/js/kde/Date.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/kde/Date.html         (rev 0)
+++ trunk/LayoutTests/js/kde/Date.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src="../resources/js-test-pre.js"></script>
+</head>
+<body>
+<script>
+description("KDE JS Test");
+</script>
+<script src="resources/Date.js"></script>
+<script src="../resources/js-test-post.js"></script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsjskdeDatehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/js/kde/Date.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/kde/Date.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/js/kde/Date.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,13 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<script src="../resources/js-test-pre.js"></script>
-</head>
-<body>
-<script>
-description("KDE JS Test");
-</script>
-<script src="resources/Date.js"></script>
-<script src="../resources/js-test-post.js"></script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsjsresourcesgarbagecollectafterstringappendsjsfromrev211348trunkLayoutTestsjsresourcesgarbagecollectafterstringappendsjsdisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js (from rev 211348, trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js         (rev 0)
+++ trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,37 @@
</span><ins>+description(
+"This test checks whether the GC collects after string appends."
+);
+
+// FIXME: This test appears to be highly tied to the details of how JS strings report memory
+// cost to the garbage collector. It should be improved to be less tied to these implementation details.
+// <https://bugs.webkit.org/show_bug.cgi?id=20871>
+
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+if (window.GCController)
+ GCController.collect();
+
+
+// str has 150 chars in it (which is greater than the limit of the GC to ignore which I believe is at 128).
+var str = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890";
+var count = 500;
+for (var i = 0; i < count; ++i) {
+ str += "b";
+}
+
+// str has 128 chars in it.
+str = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890";
+count = 10;
+for (var i = 0; i < count; ++i) {
+ str += str;
+}
+
+var jsObjCount = 0;
+if (window.GCController)
+ jsObjCount = GCController.getJSObjectCount();
+
+if (jsObjCount <= 500 && jsObjCount > 0)
+ testPassed("Garbage Collector triggered")
+else
+ testFailed("Garbage Collector NOT triggered. Number of JSObjects: " + jsObjCount);
</ins></span></pre></div>
<a id="trunkLayoutTestsjsresourcesgarbagecollectafterstringappendsjsdisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,37 +0,0 @@
</span><del>-description(
-"This test checks whether the GC collects after string appends."
-);
-
-// FIXME: This test appears to be highly tied to the details of how JS strings report memory
-// cost to the garbage collector. It should be improved to be less tied to these implementation details.
-// <https://bugs.webkit.org/show_bug.cgi?id=20871>
-
-if (window.testRunner)
- testRunner.dumpAsText();
-
-if (window.GCController)
- GCController.collect();
-
-
-// str has 150 chars in it (which is greater than the limit of the GC to ignore which I believe is at 128).
-var str = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890";
-var count = 500;
-for (var i = 0; i < count; ++i) {
- str += "b";
-}
-
-// str has 128 chars in it.
-str = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890";
-count = 10;
-for (var i = 0; i < count; ++i) {
- str += str;
-}
-
-var jsObjCount = 0;
-if (window.GCController)
- jsObjCount = GCController.getJSObjectCount();
-
-if (jsObjCount <= 500 && jsObjCount > 0)
- testPassed("Garbage Collector triggered")
-else
- testFailed("Garbage Collector NOT triggered. Number of JSObjects: " + jsObjCount);
</del></span></pre></div>
<a id="trunkLayoutTestsjsstringconcatenateoutofmemoryhtmlfromrev211348trunkLayoutTestsjsstringconcatenateoutofmemoryhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/js/string-concatenate-outofmemory.html (from rev 211348, trunk/LayoutTests/js/string-concatenate-outofmemory.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/string-concatenate-outofmemory.html         (rev 0)
+++ trunk/LayoutTests/js/string-concatenate-outofmemory.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src="../../resources/js-test-pre.js"></script>
+</head>
+<body>
+<script src="resources/string-concatenate-outofmemory.js"></script>
+<script src="../../resources/js-test-post.js"></script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsjsstringconcatenateoutofmemoryhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/js/string-concatenate-outofmemory.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/string-concatenate-outofmemory.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/js/string-concatenate-outofmemory.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,10 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<script src="../../resources/js-test-pre.js"></script>
-</head>
-<body>
-<script src="resources/string-concatenate-outofmemory.js"></script>
-<script src="../../resources/js-test-post.js"></script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsmediavideocanvashtmlfromrev211348trunkLayoutTestsmediavideocanvashtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/media/video-canvas.html (from rev 211348, trunk/LayoutTests/media/video-canvas.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/video-canvas.html         (rev 0)
+++ trunk/LayoutTests/media/video-canvas.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,85 @@
</span><ins>+<html>
+ <head>
+ <title>drawing &lt;video&gt; to &lt;canvas&gt;</title>
+ <script src=../http/tests/media/video-test.js></script>
+
+ <script>
+ var ctx;
+ var results = {
+ current: 0,
+ values: [
+ { time:0, r:255, g:255, b:0 },
+ { time:2, r:8, g:0, b:226 },
+ { time:4, r:0, g:24, b:197 },
+ { time:6, r:0, g:46, b:166 },
+ { time:8, r:0, g:66, b:136 },
+ { time:10, r:0, g:85, b:112 },
+ ]
+ };
+
+ var width;
+ var height;
+
+ function testPixel()
+ {
+ var expected = results.values[results.current];
+ if (expected.time)
+ ctx.drawImage(video, 0, 0, width, height);
+
+ var frame = ctx.getImageData(0, 0, width, height);
+ r = frame.data[4 * 2 * width + 16 + 0];
+ g = frame.data[4 * 2 * width + 16 + 1];
+ b = frame.data[4 * 2 * width + 16 + 2];
+
+ testExpected("r", expected.r);
+ testExpected("g", expected.g);
+ testExpected("b", expected.b);
+
+ if (++results.current >= results.values.length)
+ endTest();
+ else
+ setTimeout(testFrame, 0);
+ }
+
+ function testFrame()
+ {
+ video.pause();
+ consoleWrite("");
+ var expected = results.values[results.current];
+ if (expected.time)
+ run("video.currentTime = " + expected.time);
+ setTimeout(testPixel, 100);
+ }
+
+ function loadedmetadata()
+ {
+ width = video.videoWidth / 2;
+ height = video.videoHeight / 2;
+
+ ctx = canvas.getContext("2d");
+ ctx.fillStyle = 'yellow';
+ ctx.fillRect(0, 0, width, height);
+ testFrame();
+ }
+
+ function start()
+ {
+ findMediaElement();
+ canvas = document.getElementsByTagName('canvas')[0];
+ waitForEvent('loadedmetadata', loadedmetadata);
+ run("video.src = 'content/counting.mp4'");
+ }
+ </script>
+ </head>
+
+ <body onload="start()" >
+
+ <div>
+ <video controls></video>
+ <canvas width="160" height="120" ></canvas>
+ </div>
+
+ <p>Test &lt;video&gt; as a source for &lt;canvas&gt;.</p>
+
+ </body>
+</html>
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsmediavideocanvashtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/media/video-canvas.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/video-canvas.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/media/video-canvas.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,85 +0,0 @@
</span><del>-<html>
- <head>
- <title>drawing &lt;video&gt; to &lt;canvas&gt;</title>
- <script src=../http/tests/media/video-test.js></script>
-
- <script>
- var ctx;
- var results = {
- current: 0,
- values: [
- { time:0, r:255, g:255, b:0 },
- { time:2, r:8, g:0, b:226 },
- { time:4, r:0, g:24, b:197 },
- { time:6, r:0, g:46, b:166 },
- { time:8, r:0, g:66, b:136 },
- { time:10, r:0, g:85, b:112 },
- ]
- };
-
- var width;
- var height;
-
- function testPixel()
- {
- var expected = results.values[results.current];
- if (expected.time)
- ctx.drawImage(video, 0, 0, width, height);
-
- var frame = ctx.getImageData(0, 0, width, height);
- r = frame.data[4 * 2 * width + 16 + 0];
- g = frame.data[4 * 2 * width + 16 + 1];
- b = frame.data[4 * 2 * width + 16 + 2];
-
- testExpected("r", expected.r);
- testExpected("g", expected.g);
- testExpected("b", expected.b);
-
- if (++results.current >= results.values.length)
- endTest();
- else
- setTimeout(testFrame, 0);
- }
-
- function testFrame()
- {
- video.pause();
- consoleWrite("");
- var expected = results.values[results.current];
- if (expected.time)
- run("video.currentTime = " + expected.time);
- setTimeout(testPixel, 100);
- }
-
- function loadedmetadata()
- {
- width = video.videoWidth / 2;
- height = video.videoHeight / 2;
-
- ctx = canvas.getContext("2d");
- ctx.fillStyle = 'yellow';
- ctx.fillRect(0, 0, width, height);
- testFrame();
- }
-
- function start()
- {
- findMediaElement();
- canvas = document.getElementsByTagName('canvas')[0];
- waitForEvent('loadedmetadata', loadedmetadata);
- run("video.src = 'content/counting.mp4'");
- }
- </script>
- </head>
-
- <body onload="start()" >
-
- <div>
- <video controls></video>
- <canvas width="160" height="120" ></canvas>
- </div>
-
- <p>Test &lt;video&gt; as a source for &lt;canvas&gt;.</p>
-
- </body>
-</html>
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacpluginspluginDocumentViewdeallocateddataSourcehtmlfromrev211348trunkLayoutTestsplatformmacpluginspluginDocumentViewdeallocateddataSourcehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html (from rev 211348, trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html         (rev 0)
+++ trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,45 @@
</span><ins>+<html>
+<head>
+<script>
+function finishTest()
+{
+ document.getElementById('plugin').src = 'about:blank';
+ if (window.testRunner)
+ testRunner.notifyDone();
+}
+
+function test()
+{
+ if (window.testRunner) {
+ testRunner.waitUntilDone();
+ testRunner.dumpAsText();
+ }
+
+ var i = 0;
+ var found = false;
+ while (!found && i < navigator.plugins.length) {
+ if (navigator.plugins[i].filename == "QuickTime Plugin.webplugin")
+ found = true;
+ i++;
+ }
+ if (!found) {
+ document.getElementById("result").innerText = "Test cannot run: QuickTime Plugin.webplugin missing.";
+ if (window.testRunner)
+ testRunner.notifyDone();
+ return;
+ }
+ setTimeout(finishTest, 0);
+}
+</script>
+</head>
+<body onload="test();">
+<p>
+ Test for regression against <i><a href="http://bugzilla.opendarwin.org/show_bug.cgi?id=8594">http://bugzilla.opendarwin.org/show_bug.cgi?id=8594</a>
+ REGRESSION: Exception on closing a page containing (just) an mp3</i>.
+</p>
+<p id="result">
+ No crash (or exception) means PASS.
+</p>
+<iframe id="plugin" src="resources/orange.mov"></iframe>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmacpluginspluginDocumentViewdeallocateddataSourcehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,45 +0,0 @@
</span><del>-<html>
-<head>
-<script>
-function finishTest()
-{
- document.getElementById('plugin').src = 'about:blank';
- if (window.testRunner)
- testRunner.notifyDone();
-}
-
-function test()
-{
- if (window.testRunner) {
- testRunner.waitUntilDone();
- testRunner.dumpAsText();
- }
-
- var i = 0;
- var found = false;
- while (!found && i < navigator.plugins.length) {
- if (navigator.plugins[i].filename == "QuickTime Plugin.webplugin")
- found = true;
- i++;
- }
- if (!found) {
- document.getElementById("result").innerText = "Test cannot run: QuickTime Plugin.webplugin missing.";
- if (window.testRunner)
- testRunner.notifyDone();
- return;
- }
- setTimeout(finishTest, 0);
-}
-</script>
-</head>
-<body onload="test();">
-<p>
- Test for regression against <i><a href="http://bugzilla.opendarwin.org/show_bug.cgi?id=8594">http://bugzilla.opendarwin.org/show_bug.cgi?id=8594</a>
- REGRESSION: Exception on closing a page containing (just) an mp3</i>.
-</p>
-<p id="result">
- No crash (or exception) means PASS.
-</p>
-<iframe id="plugin" src="resources/orange.mov"></iframe>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315131_decodeURIS15131_A25_T1htmlfromrev211348trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315131_decodeURIS15131_A25_T1htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html (from rev 211348, trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,173 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S15.1.3.1_A2.5_T1</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S15.1.3.1_A2.5_T1;
+ * @section: 15.1.3.1;
+ * @assertion: If B1 = 11110xxx ([0xF0 - 0x0F4]), B2, B3, B4 = 10xxxxxxx ([0x80 - 0xBF]), without [B1, B2] = [0xF0, 0x80 - 0x9F], [0xF4, 0x90 - 0xBF], return UTF8(B1, B2, B3, B4);
+ * @description: Complex tests, use RFC 3629;
+*/
+
+errorCount = 0;
+count = 0;
+var indexP;
+var indexO = 0;
+
+for (indexB1 = 0xF0; indexB1 <= 0xF4; indexB1++) {
+ var hexB1 = decimalToHexString(indexB1);
+ for (indexB2 = 0x80; indexB2 <= 0xBF; indexB2++) {
+ if ((indexB1 === 0xF0) && (indexB2 <= 0x9F)) continue;
+ if ((indexB1 === 0xF4) && (indexB2 >= 0x90)) continue;
+ var hexB2 = decimalToHexString(indexB2);
+ for (indexB3 = 0x80; indexB3 <= 0xBF; indexB3++) {
+ var hexB3 = decimalToHexString(indexB3);
+ for (indexB4 = 0x80; indexB4 <= 0xBF; indexB4++) {
+ var hexB4 = decimalToHexString(indexB4);
+ count++;
+ var index = (indexB1 & 0x07) * 0x40000 + (indexB2 & 0x3F) * 0x1000 + (indexB3 & 0x3F) * 0x40 + (indexB4 & 0x3F);
+ var L = ((index - 0x10000) & 0x03FF) + 0xDC00;
+ var H = (((index - 0x10000) >> 10) & 0x03FF) + 0xD800;
+ try {
+ if (decodeURI("%" + hexB1.substring(3) + "%" + hexB2.substring(3) + "%" + hexB3.substring(3) + "%" + hexB4.substring(3)) === String.fromCharCode(H) + String.fromCharCode(L)) continue;
+ } catch (e) {}
+ if (indexO === 0) {
+ indexO = index;
+ } else {
+ if ((index - indexP) !== 1) {
+ if ((indexP - indexO) !== 0) {
+ var hexP = decimalToHexString(indexP);
+ var hexO = decimalToHexString(indexO);
+ testFailed('#' + hexO + '-' + hexP + ' ');
+ }
+ else {
+ var hexP = decimalToHexString(indexP);
+ testFailed('#' + hexP + ' ');
+ }
+ indexO = index;
+ }
+ }
+ indexP = index;
+ errorCount++;
+ }
+ }
+ }
+}
+
+if (errorCount > 0) {
+ if ((indexP - indexO) !== 0) {
+ var hexP = decimalToHexString(indexP);
+ var hexO = decimalToHexString(indexO);
+ testFailed('#' + hexO + '-' + hexP + ' ');
+ } else {
+ var hexP = decimalToHexString(indexP);
+ testFailed('#' + hexP + ' ');
+ }
+ testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
+}
+
+function decimalToHexString(n) {
+ n = Number(n);
+ var h = "";
+ for (var i = 4; i >= 0; i--) {
+ if (n >= Math.pow(16, i)) {
+ var t = Math.floor(n / Math.pow(16, i));
+ n -= t * Math.pow(16, i);
+ if ( t >= 10 ) {
+ if ( t == 10 ) { h += "A"; }
+ if ( t == 11 ) { h += "B"; }
+ if ( t == 12 ) { h += "C"; }
+ if ( t == 13 ) { h += "D"; }
+ if ( t == 14 ) { h += "E"; }
+ if ( t == 15 ) { h += "F"; }
+ } else {
+ h += String(t);
+ }
+ } else {
+ h += "0";
+ }
+ }
+ return h;
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315131_decodeURIS15131_A25_T1htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,173 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S15.1.3.1_A2.5_T1</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S15.1.3.1_A2.5_T1;
- * @section: 15.1.3.1;
- * @assertion: If B1 = 11110xxx ([0xF0 - 0x0F4]), B2, B3, B4 = 10xxxxxxx ([0x80 - 0xBF]), without [B1, B2] = [0xF0, 0x80 - 0x9F], [0xF4, 0x90 - 0xBF], return UTF8(B1, B2, B3, B4);
- * @description: Complex tests, use RFC 3629;
-*/
-
-errorCount = 0;
-count = 0;
-var indexP;
-var indexO = 0;
-
-for (indexB1 = 0xF0; indexB1 <= 0xF4; indexB1++) {
- var hexB1 = decimalToHexString(indexB1);
- for (indexB2 = 0x80; indexB2 <= 0xBF; indexB2++) {
- if ((indexB1 === 0xF0) && (indexB2 <= 0x9F)) continue;
- if ((indexB1 === 0xF4) && (indexB2 >= 0x90)) continue;
- var hexB2 = decimalToHexString(indexB2);
- for (indexB3 = 0x80; indexB3 <= 0xBF; indexB3++) {
- var hexB3 = decimalToHexString(indexB3);
- for (indexB4 = 0x80; indexB4 <= 0xBF; indexB4++) {
- var hexB4 = decimalToHexString(indexB4);
- count++;
- var index = (indexB1 & 0x07) * 0x40000 + (indexB2 & 0x3F) * 0x1000 + (indexB3 & 0x3F) * 0x40 + (indexB4 & 0x3F);
- var L = ((index - 0x10000) & 0x03FF) + 0xDC00;
- var H = (((index - 0x10000) >> 10) & 0x03FF) + 0xD800;
- try {
- if (decodeURI("%" + hexB1.substring(3) + "%" + hexB2.substring(3) + "%" + hexB3.substring(3) + "%" + hexB4.substring(3)) === String.fromCharCode(H) + String.fromCharCode(L)) continue;
- } catch (e) {}
- if (indexO === 0) {
- indexO = index;
- } else {
- if ((index - indexP) !== 1) {
- if ((indexP - indexO) !== 0) {
- var hexP = decimalToHexString(indexP);
- var hexO = decimalToHexString(indexO);
- testFailed('#' + hexO + '-' + hexP + ' ');
- }
- else {
- var hexP = decimalToHexString(indexP);
- testFailed('#' + hexP + ' ');
- }
- indexO = index;
- }
- }
- indexP = index;
- errorCount++;
- }
- }
- }
-}
-
-if (errorCount > 0) {
- if ((indexP - indexO) !== 0) {
- var hexP = decimalToHexString(indexP);
- var hexO = decimalToHexString(indexO);
- testFailed('#' + hexO + '-' + hexP + ' ');
- } else {
- var hexP = decimalToHexString(indexP);
- testFailed('#' + hexP + ' ');
- }
- testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
-}
-
-function decimalToHexString(n) {
- n = Number(n);
- var h = "";
- for (var i = 4; i >= 0; i--) {
- if (n >= Math.pow(16, i)) {
- var t = Math.floor(n / Math.pow(16, i));
- n -= t * Math.pow(16, i);
- if ( t >= 10 ) {
- if ( t == 10 ) { h += "A"; }
- if ( t == 11 ) { h += "B"; }
- if ( t == 12 ) { h += "C"; }
- if ( t == 13 ) { h += "D"; }
- if ( t == 14 ) { h += "E"; }
- if ( t == 15 ) { h += "F"; }
- } else {
- h += String(t);
- }
- } else {
- h += "0";
- }
- }
- return h;
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315132_decodeURIComponentS15132_A25_T1htmlfromrev211348trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315132_decodeURIComponentS15132_A25_T1htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html (from rev 211348, trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,173 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S15.1.3.2_A2.5_T1</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S15.1.3.2_A2.5_T1;
+ * @section: 15.1.3.2;
+ * @assertion: If B1 = 11110xxx ([0xF0 - 0x0F4]), B2, B3, B4 = 10xxxxxxx ([0x80 - 0xBF]), without [B1, B2] = [0xF0, 0x80 - 0x9F], [0xF4, 0x90 - 0xBF], return UTF8(B1, B2, B3, B4);
+ * @description: Complex tests, use RFC 3629;
+*/
+
+errorCount = 0;
+count = 0;
+var indexP;
+var indexO = 0;
+
+for (indexB1 = 0xF0; indexB1 <= 0xF4; indexB1++) {
+ var hexB1 = decimalToHexString(indexB1);
+ for (indexB2 = 0x80; indexB2 <= 0xBF; indexB2++) {
+ if ((indexB1 === 0xF0) && (indexB2 <= 0x9F)) continue;
+ if ((indexB1 === 0xF4) && (indexB2 >= 0x90)) continue;
+ var hexB2 = decimalToHexString(indexB2);
+ for (indexB3 = 0x80; indexB3 <= 0xBF; indexB3++) {
+ var hexB3 = decimalToHexString(indexB3);
+ for (indexB4 = 0x80; indexB4 <= 0xBF; indexB4++) {
+ var hexB4 = decimalToHexString(indexB4);
+ count++;
+ var index = (indexB1 & 0x07) * 0x40000 + (indexB2 & 0x3F) * 0x1000 + (indexB3 & 0x3F) * 0x40 + (indexB4 & 0x3F);
+ var L = ((index - 0x10000) & 0x03FF) + 0xDC00;
+ var H = (((index - 0x10000) >> 10) & 0x03FF) + 0xD800;
+ try {
+ if (decodeURIComponent("%" + hexB1.substring(3) + "%" + hexB2.substring(3) + "%" + hexB3.substring(3) + "%" + hexB4.substring(3)) === String.fromCharCode(H) + String.fromCharCode(L)) continue;
+ } catch (e) {}
+ if (indexO === 0) {
+ indexO = index;
+ } else {
+ if ((index - indexP) !== 1) {
+ if ((indexP - indexO) !== 0) {
+ var hexP = decimalToHexString(indexP);
+ var hexO = decimalToHexString(indexO);
+ testFailed('#' + hexO + '-' + hexP + ' ');
+ }
+ else {
+ var hexP = decimalToHexString(indexP);
+ testFailed('#' + hexP + ' ');
+ }
+ indexO = index;
+ }
+ }
+ indexP = index;
+ errorCount++;
+ }
+ }
+ }
+}
+
+if (errorCount > 0) {
+ if ((indexP - indexO) !== 0) {
+ var hexP = decimalToHexString(indexP);
+ var hexO = decimalToHexString(indexO);
+ testFailed('#' + hexO + '-' + hexP + ' ');
+ } else {
+ var hexP = decimalToHexString(indexP);
+ testFailed('#' + hexP + ' ');
+ }
+ testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
+}
+
+function decimalToHexString(n) {
+ n = Number(n);
+ var h = "";
+ for (var i = 4; i >= 0; i--) {
+ if (n >= Math.pow(16, i)) {
+ var t = Math.floor(n / Math.pow(16, i));
+ n -= t * Math.pow(16, i);
+ if ( t >= 10 ) {
+ if ( t == 10 ) { h += "A"; }
+ if ( t == 11 ) { h += "B"; }
+ if ( t == 12 ) { h += "C"; }
+ if ( t == 13 ) { h += "D"; }
+ if ( t == 14 ) { h += "E"; }
+ if ( t == 15 ) { h += "F"; }
+ } else {
+ h += String(t);
+ }
+ } else {
+ h += "0";
+ }
+ }
+ return h;
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315132_decodeURIComponentS15132_A25_T1htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,173 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S15.1.3.2_A2.5_T1</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S15.1.3.2_A2.5_T1;
- * @section: 15.1.3.2;
- * @assertion: If B1 = 11110xxx ([0xF0 - 0x0F4]), B2, B3, B4 = 10xxxxxxx ([0x80 - 0xBF]), without [B1, B2] = [0xF0, 0x80 - 0x9F], [0xF4, 0x90 - 0xBF], return UTF8(B1, B2, B3, B4);
- * @description: Complex tests, use RFC 3629;
-*/
-
-errorCount = 0;
-count = 0;
-var indexP;
-var indexO = 0;
-
-for (indexB1 = 0xF0; indexB1 <= 0xF4; indexB1++) {
- var hexB1 = decimalToHexString(indexB1);
- for (indexB2 = 0x80; indexB2 <= 0xBF; indexB2++) {
- if ((indexB1 === 0xF0) && (indexB2 <= 0x9F)) continue;
- if ((indexB1 === 0xF4) && (indexB2 >= 0x90)) continue;
- var hexB2 = decimalToHexString(indexB2);
- for (indexB3 = 0x80; indexB3 <= 0xBF; indexB3++) {
- var hexB3 = decimalToHexString(indexB3);
- for (indexB4 = 0x80; indexB4 <= 0xBF; indexB4++) {
- var hexB4 = decimalToHexString(indexB4);
- count++;
- var index = (indexB1 & 0x07) * 0x40000 + (indexB2 & 0x3F) * 0x1000 + (indexB3 & 0x3F) * 0x40 + (indexB4 & 0x3F);
- var L = ((index - 0x10000) & 0x03FF) + 0xDC00;
- var H = (((index - 0x10000) >> 10) & 0x03FF) + 0xD800;
- try {
- if (decodeURIComponent("%" + hexB1.substring(3) + "%" + hexB2.substring(3) + "%" + hexB3.substring(3) + "%" + hexB4.substring(3)) === String.fromCharCode(H) + String.fromCharCode(L)) continue;
- } catch (e) {}
- if (indexO === 0) {
- indexO = index;
- } else {
- if ((index - indexP) !== 1) {
- if ((indexP - indexO) !== 0) {
- var hexP = decimalToHexString(indexP);
- var hexO = decimalToHexString(indexO);
- testFailed('#' + hexO + '-' + hexP + ' ');
- }
- else {
- var hexP = decimalToHexString(indexP);
- testFailed('#' + hexP + ' ');
- }
- indexO = index;
- }
- }
- indexP = index;
- errorCount++;
- }
- }
- }
-}
-
-if (errorCount > 0) {
- if ((indexP - indexO) !== 0) {
- var hexP = decimalToHexString(indexP);
- var hexO = decimalToHexString(indexO);
- testFailed('#' + hexO + '-' + hexP + ' ');
- } else {
- var hexP = decimalToHexString(indexP);
- testFailed('#' + hexP + ' ');
- }
- testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
-}
-
-function decimalToHexString(n) {
- n = Number(n);
- var h = "";
- for (var i = 4; i >= 0; i--) {
- if (n >= Math.pow(16, i)) {
- var t = Math.floor(n / Math.pow(16, i));
- n -= t * Math.pow(16, i);
- if ( t >= 10 ) {
- if ( t == 10 ) { h += "A"; }
- if ( t == 11 ) { h += "B"; }
- if ( t == 12 ) { h += "C"; }
- if ( t == 13 ) { h += "D"; }
- if ( t == 14 ) { h += "E"; }
- if ( t == 15 ) { h += "F"; }
- } else {
- h += String(t);
- }
- } else {
- h += "0";
- }
- }
- return h;
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T1htmlfromrev211348trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T1htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html (from rev 211348, trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,522 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S15.9.3.1_A5_T1</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S15.9.3.1_A5_T1;
+ * @section: 15.9.3.1;
+ * @assertion: The [[Value]] property of the newly constructed object
+ * is set by following steps:
+ * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to
+ * TimeClip(UTC(Result(11)));
+ * @description: 2 arguments, (year, month);
+ */
+
+var $DST_end_hour = 2;
+var $DST_end_minutes = 0;
+var $DST_end_month = 10;
+var $DST_end_sunday = 'first';
+var $DST_start_hour = 2;
+var $DST_start_minutes = 0;
+var $DST_start_month = 2;
+var $DST_start_sunday = 'first';
+var $LocalTZ = -8;
+function ToInteger(p) {
+ x = Number(p);
+
+ if(isNaN(x)){
+ return +0;
+ }
+
+ if((x === +0)
+ || (x === -0)
+ || (x === Number.POSITIVE_INFINITY)
+ || (x === Number.NEGATIVE_INFINITY)){
+ return x;
+ }
+
+ var sign = ( x < 0 ) ? -1 : 1;
+
+ return (sign*Math.floor(Math.abs(x)));
+}
+
+
+var HoursPerDay = 24;
+var MinutesPerHour = 60;
+var SecondsPerMinute = 60;
+
+var msPerDay = 86400000;
+var msPerSecond = 1000;
+var msPerMinute = 60000;
+var msPerHour = 3600000;
+
+var date_1899_end = -2208988800001;
+var date_1900_start = -2208988800000;
+var date_1969_end = -1;
+var date_1970_start = 0;
+var date_1999_end = 946684799999;
+var date_2000_start = 946684800000;
+var date_2099_end = 4102444799999;
+var date_2100_start = 4102444800000;
+
+
+//15.9.1.2 Day Number and Time within Day
+function Day(t) {
+ return Math.floor(t/msPerDay);
+}
+
+function TimeWithinDay(t) {
+ return t%msPerDay;
+}
+
+//15.9.1.3 Year Number
+function DaysInYear(y){
+ if(y%4 != 0) return 365;
+ if(y%4 == 0 && y%100 != 0) return 366;
+ if(y%100 == 0 && y%400 != 0) return 365;
+ if(y%400 == 0) return 366;
+}
+
+function DayFromYear(y) {
+ return (365*(y-1970)
+ + Math.floor((y-1969)/4)
+ - Math.floor((y-1901)/100)
+ + Math.floor((y-1601)/400));
+}
+
+function TimeFromYear(y){
+ return msPerDay*DayFromYear(y);
+}
+
+function YearFromTime(t) {
+ t = Number(t);
+ var sign = ( t < 0 ) ? -1 : 1;
+ var year = ( sign < 0 ) ? 1969 : 1970;
+
+ for(var time = 0;;year += sign){
+ time = TimeFromYear(year);
+
+ if(sign > 0 && time > t){
+ year -= sign;
+ break;
+ }
+ else if(sign < 0 && time <= t){
+ break;
+ }
+ };
+ return year;
+}
+
+function InLeapYear(t){
+ if(DaysInYear(YearFromTime(t)) == 365)
+ return 0;
+
+ if(DaysInYear(YearFromTime(t)) == 366)
+ return 1;
+}
+
+function DayWithinYear(t) {
+ return Day(t)-DayFromYear(YearFromTime(t));
+}
+
+//15.9.1.4 Month Number
+function MonthFromTime(t){
+ var day = DayWithinYear(t);
+ var leap = InLeapYear(t);
+
+ if((0 <= day) && (day < 31)) return 0;
+ if((31 <= day) && (day < (59+leap))) return 1;
+ if(((59+leap) <= day) && (day < (90+leap))) return 2;
+ if(((90+leap) <= day) && (day < (120+leap))) return 3;
+ if(((120+leap) <= day) && (day < (151+leap))) return 4;
+ if(((151+leap) <= day) && (day < (181+leap))) return 5;
+ if(((181+leap) <= day) && (day < (212+leap))) return 6;
+ if(((212+leap) <= day) && (day < (243+leap))) return 7;
+ if(((243+leap) <= day) && (day < (273+leap))) return 8;
+ if(((273+leap) <= day) && (day < (304+leap))) return 9;
+ if(((304+leap) <= day) && (day < (334+leap))) return 10;
+ if(((334+leap) <= day) && (day < (365+leap))) return 11;
+}
+
+//15.9.1.5 Date Number
+function DateFromTime(t) {
+ var day = DayWithinYear(t);
+ var month = MonthFromTime(t);
+ var leap = InLeapYear(t);
+
+ if(month == 0) return day+1;
+ if(month == 1) return day-30;
+ if(month == 2) return day-58-leap;
+ if(month == 3) return day-89-leap;
+ if(month == 4) return day-119-leap;
+ if(month == 5) return day-150-leap;
+ if(month == 6) return day-180-leap;
+ if(month == 7) return day-211-leap;
+ if(month == 8) return day-242-leap;
+ if(month == 9) return day-272-leap;
+ if(month == 10) return day-303-leap;
+ if(month == 11) return day-333-leap;
+}
+
+//15.9.1.6 Week Day
+function WeekDay(t) {
+ var weekday = (Day(t)+4)%7;
+ return (weekday < 0 ? 7+weekday : weekday);
+}
+
+//15.9.1.9 Daylight Saving Time Adjustment
+var LocalTZA = $LocalTZ*msPerHour;
+
+function DaysInMonth(m, leap) {
+ m = m%12;
+
+ //April, June, Sept, Nov
+ if(m == 3 || m == 5 || m == 8 || m == 10 ) {
+ return 30;
+ }
+
+ //Jan, March, May, July, Aug, Oct, Dec
+ if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
+ return 31;
+ }
+
+ //Feb
+ return 28+leap;
+}
+
+function GetSundayInMonth(t, m, count){
+ var year = YearFromTime(t);
+ var leap = InLeapYear(t);
+ var day = 0;
+
+ if(m >= 1) day += DaysInMonth(0, leap);
+ if(m >= 2) day += DaysInMonth(1, leap);
+ if(m >= 3) day += DaysInMonth(2, leap);
+ if(m >= 4) day += DaysInMonth(3, leap);
+ if(m >= 5) day += DaysInMonth(4, leap);
+ if(m >= 6) day += DaysInMonth(5, leap);
+ if(m >= 7) day += DaysInMonth(6, leap);
+ if(m >= 8) day += DaysInMonth(7, leap);
+ if(m >= 9) day += DaysInMonth(8, leap);
+ if(m >= 10) day += DaysInMonth(9, leap);
+ if(m >= 11) day += DaysInMonth(10, leap);
+
+ var month_start = TimeFromYear(year)+day*msPerDay;
+ var sunday = 0;
+
+ if(count === "last"){
+ for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay;
+ WeekDay(last_sunday)>0;
+ last_sunday -= msPerDay
+ ){};
+ sunday = last_sunday;
+ }
+ else {
+ for(var first_sunday = month_start;
+ WeekDay(first_sunday)>0;
+ first_sunday += msPerDay
+ ){};
+ sunday = first_sunday+7*msPerDay*(count-1);
+ }
+
+ return sunday;
+}
+
+function DaylightSavingTA(t) {
+ t = t-LocalTZA;
+
+ var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
+ +$DST_start_hour*msPerHour
+ +$DST_start_minutes*msPerMinute;
+
+ var k = new Date(DST_start);
+
+ var DST_end = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
+ +$DST_end_hour*msPerHour
+ +$DST_end_minutes*msPerMinute;
+
+ if ( t >= DST_start && t < DST_end ) {
+ return msPerHour;
+ } else {
+ return 0;
+ }
+}
+
+//15.9.1.9 Local Time
+function LocalTime(t){
+ return t+LocalTZA+DaylightSavingTA(t);
+}
+
+function UTC(t) {
+ return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
+}
+
+//15.9.1.10 Hours, Minutes, Second, and Milliseconds
+function HourFromTime(t){
+ return Math.floor(t/msPerHour)%HoursPerDay;
+}
+
+function MinFromTime(t){
+ return Math.floor(t/msPerMinute)%MinutesPerHour;
+}
+
+function SecFromTime(t){
+ return Math.floor(t/msPerSecond)%SecondsPerMinute;
+}
+
+function msFromTime(t){
+ return t%msPerSecond;
+}
+
+//15.9.1.11 MakeTime (hour, min, sec, ms)
+function MakeTime(hour, min, sec, ms){
+ if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
+ return Number.NaN;
+ }
+
+ hour = ToInteger(hour);
+ min = ToInteger(min);
+ sec = ToInteger(sec);
+ ms = ToInteger(ms);
+
+ return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
+}
+
+//15.9.1.12 MakeDay (year, month, date)
+function MakeDay(year, month, date) {
+ if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
+ return Number.NaN;
+ }
+
+ year = ToInteger(year);
+ month = ToInteger(month);
+ date = ToInteger(date );
+
+ var result5 = year + Math.floor(month/12);
+ var result6 = month%12;
+
+ var sign = ( year < 1970 ) ? -1 : 1;
+ var t = ( year < 1970 ) ? 1 : 0;
+ var y = ( year < 1970 ) ? 1969 : 1970;
+
+ if( sign == -1 ){
+ for ( y = 1969; y >= year; y += sign ) {
+ t += sign * DaysInYear(y)*msPerDay;
+ }
+ } else {
+ for ( y = 1970 ; y < year; y += sign ) {
+ t += sign * DaysInYear(y)*msPerDay;
+ }
+ }
+
+ var leap = 0;
+ for ( var m = 0; m < month; m++ ) {
+ //if year is changed, than we need to recalculate leep
+ leap = InLeapYear(t);
+ t += DaysInMonth(m, leap)*msPerDay;
+ }
+
+ if ( YearFromTime(t) != result5 ) {
+ return Number.NaN;
+ }
+ if ( MonthFromTime(t) != result6 ) {
+ return Number.NaN;
+ }
+ if ( DateFromTime(t) != 1 ) {
+ return Number.NaN;
+ }
+
+ return Day(t)+date-1;
+}
+
+//15.9.1.13 MakeDate (day, time)
+function MakeDate( day, time ) {
+ if(!isFinite(day) || !isFinite(time)) {
+ return Number.NaN;
+ }
+
+ return day*msPerDay+time;
+}
+
+//15.9.1.14 TimeClip (time)
+function TimeClip(time) {
+ if(!isFinite(time) || Math.abs(time) > 8.64e15){
+ return Number.NaN;
+ }
+
+ return ToInteger(time);
+}
+
+//Test Functions
+function ConstructDate(year, month, date, hours, minutes, seconds, ms){
+ /*
+ * 1. Call ToNumber(year)
+ * 2. Call ToNumber(month)
+ * 3. If date is supplied use ToNumber(date); else use 1
+ * 4. If hours is supplied use ToNumber(hours); else use 0
+ * 5. If minutes is supplied use ToNumber(minutes); else use 0
+ * 6. If seconds is supplied use ToNumber(seconds); else use 0
+ * 7. If ms is supplied use ToNumber(ms); else use 0
+ * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
+ */
+ var r1 = Number(year);
+ var r2 = Number(month);
+ var r3 = ((date && arguments.length > 2) ? Number(date) : 1);
+ var r4 = ((hours && arguments.length > 3) ? Number(hours) : 0);
+ var r5 = ((minutes && arguments.length > 4) ? Number(minutes) : 0);
+ var r6 = ((seconds && arguments.length > 5) ? Number(seconds) : 0);
+ var r7 = ((ms && arguments.length > 6) ? Number(ms) : 0);
+
+ var r8 = r1;
+
+ if(!isNaN(r1) && (0 <= ToInteger(r1)) && (ToInteger(r1) <= 99))
+ r8 = 1900+r1;
+
+ var r9 = MakeDay(r8, r2, r3);
+ var r10 = MakeTime(r4, r5, r6, r7);
+ var r11 = MakeDate(r9, r10);
+
+ return TimeClip(UTC(r11));
+}
+
+
+
+if (ConstructDate(1899, 11) !== new Date(1899, 11).valueOf()) {
+ testFailed("#1: Incorrect value of Date");
+}
+
+if (ConstructDate(1899, 12) !== new Date(1899, 12).valueOf()) {
+ testFailed("#2: Incorrect value of Date");
+}
+
+if (ConstructDate(1900, 0) !== new Date(1900, 0).valueOf()) {
+ testFailed("#3: Incorrect value of Date");
+}
+
+if (ConstructDate(1969, 11) !== new Date(1969, 11).valueOf()) {
+ testFailed("#4: Incorrect value of Date");
+}
+
+if (ConstructDate(1969, 12) !== new Date(1969, 12).valueOf()) {
+ testFailed("#5: Incorrect value of Date");
+}
+
+if (ConstructDate(1970, 0) !== new Date(1970, 0).valueOf()) {
+ testFailed("#6: Incorrect value of Date");
+}
+
+if (ConstructDate(1999, 11) !== new Date(1999, 11).valueOf()) {
+ testFailed("#7: Incorrect value of Date");
+}
+
+if (ConstructDate(1999, 12) !== new Date(1999, 12).valueOf()) {
+ testFailed("#8: Incorrect value of Date");
+}
+
+if (ConstructDate(2000, 0) !== new Date(2000, 0).valueOf()) {
+ testFailed("#9: Incorrect value of Date");
+}
+
+if (ConstructDate(2099, 11) !== new Date(2099, 11).valueOf()) {
+ testFailed("#10: Incorrect value of Date");
+}
+
+if (ConstructDate(2099, 12) !== new Date(2099, 12).valueOf()) {
+ testFailed("#11: Incorrect value of Date");
+}
+
+if (ConstructDate(2100, 0) !== new Date(2100, 0).valueOf()) {
+ testFailed("#12: Incorrect value of Date");
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T1htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,522 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S15.9.3.1_A5_T1</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S15.9.3.1_A5_T1;
- * @section: 15.9.3.1;
- * @assertion: The [[Value]] property of the newly constructed object
- * is set by following steps:
- * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to
- * TimeClip(UTC(Result(11)));
- * @description: 2 arguments, (year, month);
- */
-
-var $DST_end_hour = 2;
-var $DST_end_minutes = 0;
-var $DST_end_month = 10;
-var $DST_end_sunday = 'first';
-var $DST_start_hour = 2;
-var $DST_start_minutes = 0;
-var $DST_start_month = 2;
-var $DST_start_sunday = 'first';
-var $LocalTZ = -8;
-function ToInteger(p) {
- x = Number(p);
-
- if(isNaN(x)){
- return +0;
- }
-
- if((x === +0)
- || (x === -0)
- || (x === Number.POSITIVE_INFINITY)
- || (x === Number.NEGATIVE_INFINITY)){
- return x;
- }
-
- var sign = ( x < 0 ) ? -1 : 1;
-
- return (sign*Math.floor(Math.abs(x)));
-}
-
-
-var HoursPerDay = 24;
-var MinutesPerHour = 60;
-var SecondsPerMinute = 60;
-
-var msPerDay = 86400000;
-var msPerSecond = 1000;
-var msPerMinute = 60000;
-var msPerHour = 3600000;
-
-var date_1899_end = -2208988800001;
-var date_1900_start = -2208988800000;
-var date_1969_end = -1;
-var date_1970_start = 0;
-var date_1999_end = 946684799999;
-var date_2000_start = 946684800000;
-var date_2099_end = 4102444799999;
-var date_2100_start = 4102444800000;
-
-
-//15.9.1.2 Day Number and Time within Day
-function Day(t) {
- return Math.floor(t/msPerDay);
-}
-
-function TimeWithinDay(t) {
- return t%msPerDay;
-}
-
-//15.9.1.3 Year Number
-function DaysInYear(y){
- if(y%4 != 0) return 365;
- if(y%4 == 0 && y%100 != 0) return 366;
- if(y%100 == 0 && y%400 != 0) return 365;
- if(y%400 == 0) return 366;
-}
-
-function DayFromYear(y) {
- return (365*(y-1970)
- + Math.floor((y-1969)/4)
- - Math.floor((y-1901)/100)
- + Math.floor((y-1601)/400));
-}
-
-function TimeFromYear(y){
- return msPerDay*DayFromYear(y);
-}
-
-function YearFromTime(t) {
- t = Number(t);
- var sign = ( t < 0 ) ? -1 : 1;
- var year = ( sign < 0 ) ? 1969 : 1970;
-
- for(var time = 0;;year += sign){
- time = TimeFromYear(year);
-
- if(sign > 0 && time > t){
- year -= sign;
- break;
- }
- else if(sign < 0 && time <= t){
- break;
- }
- };
- return year;
-}
-
-function InLeapYear(t){
- if(DaysInYear(YearFromTime(t)) == 365)
- return 0;
-
- if(DaysInYear(YearFromTime(t)) == 366)
- return 1;
-}
-
-function DayWithinYear(t) {
- return Day(t)-DayFromYear(YearFromTime(t));
-}
-
-//15.9.1.4 Month Number
-function MonthFromTime(t){
- var day = DayWithinYear(t);
- var leap = InLeapYear(t);
-
- if((0 <= day) && (day < 31)) return 0;
- if((31 <= day) && (day < (59+leap))) return 1;
- if(((59+leap) <= day) && (day < (90+leap))) return 2;
- if(((90+leap) <= day) && (day < (120+leap))) return 3;
- if(((120+leap) <= day) && (day < (151+leap))) return 4;
- if(((151+leap) <= day) && (day < (181+leap))) return 5;
- if(((181+leap) <= day) && (day < (212+leap))) return 6;
- if(((212+leap) <= day) && (day < (243+leap))) return 7;
- if(((243+leap) <= day) && (day < (273+leap))) return 8;
- if(((273+leap) <= day) && (day < (304+leap))) return 9;
- if(((304+leap) <= day) && (day < (334+leap))) return 10;
- if(((334+leap) <= day) && (day < (365+leap))) return 11;
-}
-
-//15.9.1.5 Date Number
-function DateFromTime(t) {
- var day = DayWithinYear(t);
- var month = MonthFromTime(t);
- var leap = InLeapYear(t);
-
- if(month == 0) return day+1;
- if(month == 1) return day-30;
- if(month == 2) return day-58-leap;
- if(month == 3) return day-89-leap;
- if(month == 4) return day-119-leap;
- if(month == 5) return day-150-leap;
- if(month == 6) return day-180-leap;
- if(month == 7) return day-211-leap;
- if(month == 8) return day-242-leap;
- if(month == 9) return day-272-leap;
- if(month == 10) return day-303-leap;
- if(month == 11) return day-333-leap;
-}
-
-//15.9.1.6 Week Day
-function WeekDay(t) {
- var weekday = (Day(t)+4)%7;
- return (weekday < 0 ? 7+weekday : weekday);
-}
-
-//15.9.1.9 Daylight Saving Time Adjustment
-var LocalTZA = $LocalTZ*msPerHour;
-
-function DaysInMonth(m, leap) {
- m = m%12;
-
- //April, June, Sept, Nov
- if(m == 3 || m == 5 || m == 8 || m == 10 ) {
- return 30;
- }
-
- //Jan, March, May, July, Aug, Oct, Dec
- if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
- return 31;
- }
-
- //Feb
- return 28+leap;
-}
-
-function GetSundayInMonth(t, m, count){
- var year = YearFromTime(t);
- var leap = InLeapYear(t);
- var day = 0;
-
- if(m >= 1) day += DaysInMonth(0, leap);
- if(m >= 2) day += DaysInMonth(1, leap);
- if(m >= 3) day += DaysInMonth(2, leap);
- if(m >= 4) day += DaysInMonth(3, leap);
- if(m >= 5) day += DaysInMonth(4, leap);
- if(m >= 6) day += DaysInMonth(5, leap);
- if(m >= 7) day += DaysInMonth(6, leap);
- if(m >= 8) day += DaysInMonth(7, leap);
- if(m >= 9) day += DaysInMonth(8, leap);
- if(m >= 10) day += DaysInMonth(9, leap);
- if(m >= 11) day += DaysInMonth(10, leap);
-
- var month_start = TimeFromYear(year)+day*msPerDay;
- var sunday = 0;
-
- if(count === "last"){
- for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay;
- WeekDay(last_sunday)>0;
- last_sunday -= msPerDay
- ){};
- sunday = last_sunday;
- }
- else {
- for(var first_sunday = month_start;
- WeekDay(first_sunday)>0;
- first_sunday += msPerDay
- ){};
- sunday = first_sunday+7*msPerDay*(count-1);
- }
-
- return sunday;
-}
-
-function DaylightSavingTA(t) {
- t = t-LocalTZA;
-
- var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
- +$DST_start_hour*msPerHour
- +$DST_start_minutes*msPerMinute;
-
- var k = new Date(DST_start);
-
- var DST_end = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
- +$DST_end_hour*msPerHour
- +$DST_end_minutes*msPerMinute;
-
- if ( t >= DST_start && t < DST_end ) {
- return msPerHour;
- } else {
- return 0;
- }
-}
-
-//15.9.1.9 Local Time
-function LocalTime(t){
- return t+LocalTZA+DaylightSavingTA(t);
-}
-
-function UTC(t) {
- return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
-}
-
-//15.9.1.10 Hours, Minutes, Second, and Milliseconds
-function HourFromTime(t){
- return Math.floor(t/msPerHour)%HoursPerDay;
-}
-
-function MinFromTime(t){
- return Math.floor(t/msPerMinute)%MinutesPerHour;
-}
-
-function SecFromTime(t){
- return Math.floor(t/msPerSecond)%SecondsPerMinute;
-}
-
-function msFromTime(t){
- return t%msPerSecond;
-}
-
-//15.9.1.11 MakeTime (hour, min, sec, ms)
-function MakeTime(hour, min, sec, ms){
- if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
- return Number.NaN;
- }
-
- hour = ToInteger(hour);
- min = ToInteger(min);
- sec = ToInteger(sec);
- ms = ToInteger(ms);
-
- return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
-}
-
-//15.9.1.12 MakeDay (year, month, date)
-function MakeDay(year, month, date) {
- if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
- return Number.NaN;
- }
-
- year = ToInteger(year);
- month = ToInteger(month);
- date = ToInteger(date );
-
- var result5 = year + Math.floor(month/12);
- var result6 = month%12;
-
- var sign = ( year < 1970 ) ? -1 : 1;
- var t = ( year < 1970 ) ? 1 : 0;
- var y = ( year < 1970 ) ? 1969 : 1970;
-
- if( sign == -1 ){
- for ( y = 1969; y >= year; y += sign ) {
- t += sign * DaysInYear(y)*msPerDay;
- }
- } else {
- for ( y = 1970 ; y < year; y += sign ) {
- t += sign * DaysInYear(y)*msPerDay;
- }
- }
-
- var leap = 0;
- for ( var m = 0; m < month; m++ ) {
- //if year is changed, than we need to recalculate leep
- leap = InLeapYear(t);
- t += DaysInMonth(m, leap)*msPerDay;
- }
-
- if ( YearFromTime(t) != result5 ) {
- return Number.NaN;
- }
- if ( MonthFromTime(t) != result6 ) {
- return Number.NaN;
- }
- if ( DateFromTime(t) != 1 ) {
- return Number.NaN;
- }
-
- return Day(t)+date-1;
-}
-
-//15.9.1.13 MakeDate (day, time)
-function MakeDate( day, time ) {
- if(!isFinite(day) || !isFinite(time)) {
- return Number.NaN;
- }
-
- return day*msPerDay+time;
-}
-
-//15.9.1.14 TimeClip (time)
-function TimeClip(time) {
- if(!isFinite(time) || Math.abs(time) > 8.64e15){
- return Number.NaN;
- }
-
- return ToInteger(time);
-}
-
-//Test Functions
-function ConstructDate(year, month, date, hours, minutes, seconds, ms){
- /*
- * 1. Call ToNumber(year)
- * 2. Call ToNumber(month)
- * 3. If date is supplied use ToNumber(date); else use 1
- * 4. If hours is supplied use ToNumber(hours); else use 0
- * 5. If minutes is supplied use ToNumber(minutes); else use 0
- * 6. If seconds is supplied use ToNumber(seconds); else use 0
- * 7. If ms is supplied use ToNumber(ms); else use 0
- * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
- */
- var r1 = Number(year);
- var r2 = Number(month);
- var r3 = ((date && arguments.length > 2) ? Number(date) : 1);
- var r4 = ((hours && arguments.length > 3) ? Number(hours) : 0);
- var r5 = ((minutes && arguments.length > 4) ? Number(minutes) : 0);
- var r6 = ((seconds && arguments.length > 5) ? Number(seconds) : 0);
- var r7 = ((ms && arguments.length > 6) ? Number(ms) : 0);
-
- var r8 = r1;
-
- if(!isNaN(r1) && (0 <= ToInteger(r1)) && (ToInteger(r1) <= 99))
- r8 = 1900+r1;
-
- var r9 = MakeDay(r8, r2, r3);
- var r10 = MakeTime(r4, r5, r6, r7);
- var r11 = MakeDate(r9, r10);
-
- return TimeClip(UTC(r11));
-}
-
-
-
-if (ConstructDate(1899, 11) !== new Date(1899, 11).valueOf()) {
- testFailed("#1: Incorrect value of Date");
-}
-
-if (ConstructDate(1899, 12) !== new Date(1899, 12).valueOf()) {
- testFailed("#2: Incorrect value of Date");
-}
-
-if (ConstructDate(1900, 0) !== new Date(1900, 0).valueOf()) {
- testFailed("#3: Incorrect value of Date");
-}
-
-if (ConstructDate(1969, 11) !== new Date(1969, 11).valueOf()) {
- testFailed("#4: Incorrect value of Date");
-}
-
-if (ConstructDate(1969, 12) !== new Date(1969, 12).valueOf()) {
- testFailed("#5: Incorrect value of Date");
-}
-
-if (ConstructDate(1970, 0) !== new Date(1970, 0).valueOf()) {
- testFailed("#6: Incorrect value of Date");
-}
-
-if (ConstructDate(1999, 11) !== new Date(1999, 11).valueOf()) {
- testFailed("#7: Incorrect value of Date");
-}
-
-if (ConstructDate(1999, 12) !== new Date(1999, 12).valueOf()) {
- testFailed("#8: Incorrect value of Date");
-}
-
-if (ConstructDate(2000, 0) !== new Date(2000, 0).valueOf()) {
- testFailed("#9: Incorrect value of Date");
-}
-
-if (ConstructDate(2099, 11) !== new Date(2099, 11).valueOf()) {
- testFailed("#10: Incorrect value of Date");
-}
-
-if (ConstructDate(2099, 12) !== new Date(2099, 12).valueOf()) {
- testFailed("#11: Incorrect value of Date");
-}
-
-if (ConstructDate(2100, 0) !== new Date(2100, 0).valueOf()) {
- testFailed("#12: Incorrect value of Date");
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T2htmlfromrev211348trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T2htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html (from rev 211348, trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,522 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S15.9.3.1_A5_T2</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S15.9.3.1_A5_T2;
+ * @section: 15.9.3.1;
+ * @assertion: The [[Value]] property of the newly constructed object
+ * is set by following steps:
+ * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to
+ * TimeClip(UTC(Result(11)));
+ * @description: 3 arguments, (year, month, date);
+ */
+
+var $DST_end_hour = 2;
+var $DST_end_minutes = 0;
+var $DST_end_month = 10;
+var $DST_end_sunday = 'first';
+var $DST_start_hour = 2;
+var $DST_start_minutes = 0;
+var $DST_start_month = 2;
+var $DST_start_sunday = 'first';
+var $LocalTZ = -8;
+function ToInteger(p) {
+ x = Number(p);
+
+ if(isNaN(x)){
+ return +0;
+ }
+
+ if((x === +0)
+ || (x === -0)
+ || (x === Number.POSITIVE_INFINITY)
+ || (x === Number.NEGATIVE_INFINITY)){
+ return x;
+ }
+
+ var sign = ( x < 0 ) ? -1 : 1;
+
+ return (sign*Math.floor(Math.abs(x)));
+}
+
+
+var HoursPerDay = 24;
+var MinutesPerHour = 60;
+var SecondsPerMinute = 60;
+
+var msPerDay = 86400000;
+var msPerSecond = 1000;
+var msPerMinute = 60000;
+var msPerHour = 3600000;
+
+var date_1899_end = -2208988800001;
+var date_1900_start = -2208988800000;
+var date_1969_end = -1;
+var date_1970_start = 0;
+var date_1999_end = 946684799999;
+var date_2000_start = 946684800000;
+var date_2099_end = 4102444799999;
+var date_2100_start = 4102444800000;
+
+
+//15.9.1.2 Day Number and Time within Day
+function Day(t) {
+ return Math.floor(t/msPerDay);
+}
+
+function TimeWithinDay(t) {
+ return t%msPerDay;
+}
+
+//15.9.1.3 Year Number
+function DaysInYear(y){
+ if(y%4 != 0) return 365;
+ if(y%4 == 0 && y%100 != 0) return 366;
+ if(y%100 == 0 && y%400 != 0) return 365;
+ if(y%400 == 0) return 366;
+}
+
+function DayFromYear(y) {
+ return (365*(y-1970)
+ + Math.floor((y-1969)/4)
+ - Math.floor((y-1901)/100)
+ + Math.floor((y-1601)/400));
+}
+
+function TimeFromYear(y){
+ return msPerDay*DayFromYear(y);
+}
+
+function YearFromTime(t) {
+ t = Number(t);
+ var sign = ( t < 0 ) ? -1 : 1;
+ var year = ( sign < 0 ) ? 1969 : 1970;
+
+ for(var time = 0;;year += sign){
+ time = TimeFromYear(year);
+
+ if(sign > 0 && time > t){
+ year -= sign;
+ break;
+ }
+ else if(sign < 0 && time <= t){
+ break;
+ }
+ };
+ return year;
+}
+
+function InLeapYear(t){
+ if(DaysInYear(YearFromTime(t)) == 365)
+ return 0;
+
+ if(DaysInYear(YearFromTime(t)) == 366)
+ return 1;
+}
+
+function DayWithinYear(t) {
+ return Day(t)-DayFromYear(YearFromTime(t));
+}
+
+//15.9.1.4 Month Number
+function MonthFromTime(t){
+ var day = DayWithinYear(t);
+ var leap = InLeapYear(t);
+
+ if((0 <= day) && (day < 31)) return 0;
+ if((31 <= day) && (day < (59+leap))) return 1;
+ if(((59+leap) <= day) && (day < (90+leap))) return 2;
+ if(((90+leap) <= day) && (day < (120+leap))) return 3;
+ if(((120+leap) <= day) && (day < (151+leap))) return 4;
+ if(((151+leap) <= day) && (day < (181+leap))) return 5;
+ if(((181+leap) <= day) && (day < (212+leap))) return 6;
+ if(((212+leap) <= day) && (day < (243+leap))) return 7;
+ if(((243+leap) <= day) && (day < (273+leap))) return 8;
+ if(((273+leap) <= day) && (day < (304+leap))) return 9;
+ if(((304+leap) <= day) && (day < (334+leap))) return 10;
+ if(((334+leap) <= day) && (day < (365+leap))) return 11;
+}
+
+//15.9.1.5 Date Number
+function DateFromTime(t) {
+ var day = DayWithinYear(t);
+ var month = MonthFromTime(t);
+ var leap = InLeapYear(t);
+
+ if(month == 0) return day+1;
+ if(month == 1) return day-30;
+ if(month == 2) return day-58-leap;
+ if(month == 3) return day-89-leap;
+ if(month == 4) return day-119-leap;
+ if(month == 5) return day-150-leap;
+ if(month == 6) return day-180-leap;
+ if(month == 7) return day-211-leap;
+ if(month == 8) return day-242-leap;
+ if(month == 9) return day-272-leap;
+ if(month == 10) return day-303-leap;
+ if(month == 11) return day-333-leap;
+}
+
+//15.9.1.6 Week Day
+function WeekDay(t) {
+ var weekday = (Day(t)+4)%7;
+ return (weekday < 0 ? 7+weekday : weekday);
+}
+
+//15.9.1.9 Daylight Saving Time Adjustment
+var LocalTZA = $LocalTZ*msPerHour;
+
+function DaysInMonth(m, leap) {
+ m = m%12;
+
+ //April, June, Sept, Nov
+ if(m == 3 || m == 5 || m == 8 || m == 10 ) {
+ return 30;
+ }
+
+ //Jan, March, May, July, Aug, Oct, Dec
+ if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
+ return 31;
+ }
+
+ //Feb
+ return 28+leap;
+}
+
+function GetSundayInMonth(t, m, count){
+ var year = YearFromTime(t);
+ var leap = InLeapYear(t);
+ var day = 0;
+
+ if(m >= 1) day += DaysInMonth(0, leap);
+ if(m >= 2) day += DaysInMonth(1, leap);
+ if(m >= 3) day += DaysInMonth(2, leap);
+ if(m >= 4) day += DaysInMonth(3, leap);
+ if(m >= 5) day += DaysInMonth(4, leap);
+ if(m >= 6) day += DaysInMonth(5, leap);
+ if(m >= 7) day += DaysInMonth(6, leap);
+ if(m >= 8) day += DaysInMonth(7, leap);
+ if(m >= 9) day += DaysInMonth(8, leap);
+ if(m >= 10) day += DaysInMonth(9, leap);
+ if(m >= 11) day += DaysInMonth(10, leap);
+
+ var month_start = TimeFromYear(year)+day*msPerDay;
+ var sunday = 0;
+
+ if(count === "last"){
+ for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay;
+ WeekDay(last_sunday)>0;
+ last_sunday -= msPerDay
+ ){};
+ sunday = last_sunday;
+ }
+ else {
+ for(var first_sunday = month_start;
+ WeekDay(first_sunday)>0;
+ first_sunday += msPerDay
+ ){};
+ sunday = first_sunday+7*msPerDay*(count-1);
+ }
+
+ return sunday;
+}
+
+function DaylightSavingTA(t) {
+ t = t-LocalTZA;
+
+ var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
+ +$DST_start_hour*msPerHour
+ +$DST_start_minutes*msPerMinute;
+
+ var k = new Date(DST_start);
+
+ var DST_end = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
+ +$DST_end_hour*msPerHour
+ +$DST_end_minutes*msPerMinute;
+
+ if ( t >= DST_start && t < DST_end ) {
+ return msPerHour;
+ } else {
+ return 0;
+ }
+}
+
+//15.9.1.9 Local Time
+function LocalTime(t){
+ return t+LocalTZA+DaylightSavingTA(t);
+}
+
+function UTC(t) {
+ return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
+}
+
+//15.9.1.10 Hours, Minutes, Second, and Milliseconds
+function HourFromTime(t){
+ return Math.floor(t/msPerHour)%HoursPerDay;
+}
+
+function MinFromTime(t){
+ return Math.floor(t/msPerMinute)%MinutesPerHour;
+}
+
+function SecFromTime(t){
+ return Math.floor(t/msPerSecond)%SecondsPerMinute;
+}
+
+function msFromTime(t){
+ return t%msPerSecond;
+}
+
+//15.9.1.11 MakeTime (hour, min, sec, ms)
+function MakeTime(hour, min, sec, ms){
+ if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
+ return Number.NaN;
+ }
+
+ hour = ToInteger(hour);
+ min = ToInteger(min);
+ sec = ToInteger(sec);
+ ms = ToInteger(ms);
+
+ return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
+}
+
+//15.9.1.12 MakeDay (year, month, date)
+function MakeDay(year, month, date) {
+ if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
+ return Number.NaN;
+ }
+
+ year = ToInteger(year);
+ month = ToInteger(month);
+ date = ToInteger(date );
+
+ var result5 = year + Math.floor(month/12);
+ var result6 = month%12;
+
+ var sign = ( year < 1970 ) ? -1 : 1;
+ var t = ( year < 1970 ) ? 1 : 0;
+ var y = ( year < 1970 ) ? 1969 : 1970;
+
+ if( sign == -1 ){
+ for ( y = 1969; y >= year; y += sign ) {
+ t += sign * DaysInYear(y)*msPerDay;
+ }
+ } else {
+ for ( y = 1970 ; y < year; y += sign ) {
+ t += sign * DaysInYear(y)*msPerDay;
+ }
+ }
+
+ var leap = 0;
+ for ( var m = 0; m < month; m++ ) {
+ //if year is changed, than we need to recalculate leep
+ leap = InLeapYear(t);
+ t += DaysInMonth(m, leap)*msPerDay;
+ }
+
+ if ( YearFromTime(t) != result5 ) {
+ return Number.NaN;
+ }
+ if ( MonthFromTime(t) != result6 ) {
+ return Number.NaN;
+ }
+ if ( DateFromTime(t) != 1 ) {
+ return Number.NaN;
+ }
+
+ return Day(t)+date-1;
+}
+
+//15.9.1.13 MakeDate (day, time)
+function MakeDate( day, time ) {
+ if(!isFinite(day) || !isFinite(time)) {
+ return Number.NaN;
+ }
+
+ return day*msPerDay+time;
+}
+
+//15.9.1.14 TimeClip (time)
+function TimeClip(time) {
+ if(!isFinite(time) || Math.abs(time) > 8.64e15){
+ return Number.NaN;
+ }
+
+ return ToInteger(time);
+}
+
+//Test Functions
+function ConstructDate(year, month, date, hours, minutes, seconds, ms){
+ /*
+ * 1. Call ToNumber(year)
+ * 2. Call ToNumber(month)
+ * 3. If date is supplied use ToNumber(date); else use 1
+ * 4. If hours is supplied use ToNumber(hours); else use 0
+ * 5. If minutes is supplied use ToNumber(minutes); else use 0
+ * 6. If seconds is supplied use ToNumber(seconds); else use 0
+ * 7. If ms is supplied use ToNumber(ms); else use 0
+ * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
+ */
+ var r1 = Number(year);
+ var r2 = Number(month);
+ var r3 = ((date && arguments.length > 2) ? Number(date) : 1);
+ var r4 = ((hours && arguments.length > 3) ? Number(hours) : 0);
+ var r5 = ((minutes && arguments.length > 4) ? Number(minutes) : 0);
+ var r6 = ((seconds && arguments.length > 5) ? Number(seconds) : 0);
+ var r7 = ((ms && arguments.length > 6) ? Number(ms) : 0);
+
+ var r8 = r1;
+
+ if(!isNaN(r1) && (0 <= ToInteger(r1)) && (ToInteger(r1) <= 99))
+ r8 = 1900+r1;
+
+ var r9 = MakeDay(r8, r2, r3);
+ var r10 = MakeTime(r4, r5, r6, r7);
+ var r11 = MakeDate(r9, r10);
+
+ return TimeClip(UTC(r11));
+}
+
+
+
+if (ConstructDate(1899, 11, 31) !== new Date(1899, 11, 31).valueOf()) {
+ testFailed("#1: Incorrect value of Date");
+}
+
+if (ConstructDate(1899, 12, 1) !== new Date(1899, 12, 1).valueOf()) {
+ testFailed("#2: Incorrect value of Date");
+}
+
+if (ConstructDate(1900, 0, 1) !== new Date(1900, 0, 1).valueOf()) {
+ testFailed("#3: Incorrect value of Date");
+}
+
+if (ConstructDate(1969, 11, 31) !== new Date(1969, 11, 31).valueOf()) {
+ testFailed("#4: Incorrect value of Date");
+}
+
+if (ConstructDate(1969, 12, 1) !== new Date(1969, 12, 1).valueOf()) {
+ testFailed("#5: Incorrect value of Date");
+}
+
+if (ConstructDate(1970, 0, 1) !== new Date(1970, 0, 1).valueOf()) {
+ testFailed("#6: Incorrect value of Date");
+}
+
+if (ConstructDate(1999, 11, 31) !== new Date(1999, 11, 31).valueOf()) {
+ testFailed("#7: Incorrect value of Date");
+}
+
+if (ConstructDate(1999, 12, 1) !== new Date(1999, 12, 1).valueOf()) {
+ testFailed("#8: Incorrect value of Date");
+}
+
+if (ConstructDate(2000, 0, 1) !== new Date(2000, 0, 1).valueOf()) {
+ testFailed("#9: Incorrect value of Date");
+}
+
+if (ConstructDate(2099, 11, 31) !== new Date(2099, 11, 31).valueOf()) {
+ testFailed("#10: Incorrect value of Date");
+}
+
+if (ConstructDate(2099, 12, 1) !== new Date(2099, 12, 1).valueOf()) {
+ testFailed("#11: Incorrect value of Date");
+}
+
+if (ConstructDate(2100, 0, 1) !== new Date(2100, 0, 1).valueOf()) {
+ testFailed("#12: Incorrect value of Date");
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T2htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,522 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S15.9.3.1_A5_T2</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S15.9.3.1_A5_T2;
- * @section: 15.9.3.1;
- * @assertion: The [[Value]] property of the newly constructed object
- * is set by following steps:
- * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to
- * TimeClip(UTC(Result(11)));
- * @description: 3 arguments, (year, month, date);
- */
-
-var $DST_end_hour = 2;
-var $DST_end_minutes = 0;
-var $DST_end_month = 10;
-var $DST_end_sunday = 'first';
-var $DST_start_hour = 2;
-var $DST_start_minutes = 0;
-var $DST_start_month = 2;
-var $DST_start_sunday = 'first';
-var $LocalTZ = -8;
-function ToInteger(p) {
- x = Number(p);
-
- if(isNaN(x)){
- return +0;
- }
-
- if((x === +0)
- || (x === -0)
- || (x === Number.POSITIVE_INFINITY)
- || (x === Number.NEGATIVE_INFINITY)){
- return x;
- }
-
- var sign = ( x < 0 ) ? -1 : 1;
-
- return (sign*Math.floor(Math.abs(x)));
-}
-
-
-var HoursPerDay = 24;
-var MinutesPerHour = 60;
-var SecondsPerMinute = 60;
-
-var msPerDay = 86400000;
-var msPerSecond = 1000;
-var msPerMinute = 60000;
-var msPerHour = 3600000;
-
-var date_1899_end = -2208988800001;
-var date_1900_start = -2208988800000;
-var date_1969_end = -1;
-var date_1970_start = 0;
-var date_1999_end = 946684799999;
-var date_2000_start = 946684800000;
-var date_2099_end = 4102444799999;
-var date_2100_start = 4102444800000;
-
-
-//15.9.1.2 Day Number and Time within Day
-function Day(t) {
- return Math.floor(t/msPerDay);
-}
-
-function TimeWithinDay(t) {
- return t%msPerDay;
-}
-
-//15.9.1.3 Year Number
-function DaysInYear(y){
- if(y%4 != 0) return 365;
- if(y%4 == 0 && y%100 != 0) return 366;
- if(y%100 == 0 && y%400 != 0) return 365;
- if(y%400 == 0) return 366;
-}
-
-function DayFromYear(y) {
- return (365*(y-1970)
- + Math.floor((y-1969)/4)
- - Math.floor((y-1901)/100)
- + Math.floor((y-1601)/400));
-}
-
-function TimeFromYear(y){
- return msPerDay*DayFromYear(y);
-}
-
-function YearFromTime(t) {
- t = Number(t);
- var sign = ( t < 0 ) ? -1 : 1;
- var year = ( sign < 0 ) ? 1969 : 1970;
-
- for(var time = 0;;year += sign){
- time = TimeFromYear(year);
-
- if(sign > 0 && time > t){
- year -= sign;
- break;
- }
- else if(sign < 0 && time <= t){
- break;
- }
- };
- return year;
-}
-
-function InLeapYear(t){
- if(DaysInYear(YearFromTime(t)) == 365)
- return 0;
-
- if(DaysInYear(YearFromTime(t)) == 366)
- return 1;
-}
-
-function DayWithinYear(t) {
- return Day(t)-DayFromYear(YearFromTime(t));
-}
-
-//15.9.1.4 Month Number
-function MonthFromTime(t){
- var day = DayWithinYear(t);
- var leap = InLeapYear(t);
-
- if((0 <= day) && (day < 31)) return 0;
- if((31 <= day) && (day < (59+leap))) return 1;
- if(((59+leap) <= day) && (day < (90+leap))) return 2;
- if(((90+leap) <= day) && (day < (120+leap))) return 3;
- if(((120+leap) <= day) && (day < (151+leap))) return 4;
- if(((151+leap) <= day) && (day < (181+leap))) return 5;
- if(((181+leap) <= day) && (day < (212+leap))) return 6;
- if(((212+leap) <= day) && (day < (243+leap))) return 7;
- if(((243+leap) <= day) && (day < (273+leap))) return 8;
- if(((273+leap) <= day) && (day < (304+leap))) return 9;
- if(((304+leap) <= day) && (day < (334+leap))) return 10;
- if(((334+leap) <= day) && (day < (365+leap))) return 11;
-}
-
-//15.9.1.5 Date Number
-function DateFromTime(t) {
- var day = DayWithinYear(t);
- var month = MonthFromTime(t);
- var leap = InLeapYear(t);
-
- if(month == 0) return day+1;
- if(month == 1) return day-30;
- if(month == 2) return day-58-leap;
- if(month == 3) return day-89-leap;
- if(month == 4) return day-119-leap;
- if(month == 5) return day-150-leap;
- if(month == 6) return day-180-leap;
- if(month == 7) return day-211-leap;
- if(month == 8) return day-242-leap;
- if(month == 9) return day-272-leap;
- if(month == 10) return day-303-leap;
- if(month == 11) return day-333-leap;
-}
-
-//15.9.1.6 Week Day
-function WeekDay(t) {
- var weekday = (Day(t)+4)%7;
- return (weekday < 0 ? 7+weekday : weekday);
-}
-
-//15.9.1.9 Daylight Saving Time Adjustment
-var LocalTZA = $LocalTZ*msPerHour;
-
-function DaysInMonth(m, leap) {
- m = m%12;
-
- //April, June, Sept, Nov
- if(m == 3 || m == 5 || m == 8 || m == 10 ) {
- return 30;
- }
-
- //Jan, March, May, July, Aug, Oct, Dec
- if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
- return 31;
- }
-
- //Feb
- return 28+leap;
-}
-
-function GetSundayInMonth(t, m, count){
- var year = YearFromTime(t);
- var leap = InLeapYear(t);
- var day = 0;
-
- if(m >= 1) day += DaysInMonth(0, leap);
- if(m >= 2) day += DaysInMonth(1, leap);
- if(m >= 3) day += DaysInMonth(2, leap);
- if(m >= 4) day += DaysInMonth(3, leap);
- if(m >= 5) day += DaysInMonth(4, leap);
- if(m >= 6) day += DaysInMonth(5, leap);
- if(m >= 7) day += DaysInMonth(6, leap);
- if(m >= 8) day += DaysInMonth(7, leap);
- if(m >= 9) day += DaysInMonth(8, leap);
- if(m >= 10) day += DaysInMonth(9, leap);
- if(m >= 11) day += DaysInMonth(10, leap);
-
- var month_start = TimeFromYear(year)+day*msPerDay;
- var sunday = 0;
-
- if(count === "last"){
- for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay;
- WeekDay(last_sunday)>0;
- last_sunday -= msPerDay
- ){};
- sunday = last_sunday;
- }
- else {
- for(var first_sunday = month_start;
- WeekDay(first_sunday)>0;
- first_sunday += msPerDay
- ){};
- sunday = first_sunday+7*msPerDay*(count-1);
- }
-
- return sunday;
-}
-
-function DaylightSavingTA(t) {
- t = t-LocalTZA;
-
- var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
- +$DST_start_hour*msPerHour
- +$DST_start_minutes*msPerMinute;
-
- var k = new Date(DST_start);
-
- var DST_end = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
- +$DST_end_hour*msPerHour
- +$DST_end_minutes*msPerMinute;
-
- if ( t >= DST_start && t < DST_end ) {
- return msPerHour;
- } else {
- return 0;
- }
-}
-
-//15.9.1.9 Local Time
-function LocalTime(t){
- return t+LocalTZA+DaylightSavingTA(t);
-}
-
-function UTC(t) {
- return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
-}
-
-//15.9.1.10 Hours, Minutes, Second, and Milliseconds
-function HourFromTime(t){
- return Math.floor(t/msPerHour)%HoursPerDay;
-}
-
-function MinFromTime(t){
- return Math.floor(t/msPerMinute)%MinutesPerHour;
-}
-
-function SecFromTime(t){
- return Math.floor(t/msPerSecond)%SecondsPerMinute;
-}
-
-function msFromTime(t){
- return t%msPerSecond;
-}
-
-//15.9.1.11 MakeTime (hour, min, sec, ms)
-function MakeTime(hour, min, sec, ms){
- if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
- return Number.NaN;
- }
-
- hour = ToInteger(hour);
- min = ToInteger(min);
- sec = ToInteger(sec);
- ms = ToInteger(ms);
-
- return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
-}
-
-//15.9.1.12 MakeDay (year, month, date)
-function MakeDay(year, month, date) {
- if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
- return Number.NaN;
- }
-
- year = ToInteger(year);
- month = ToInteger(month);
- date = ToInteger(date );
-
- var result5 = year + Math.floor(month/12);
- var result6 = month%12;
-
- var sign = ( year < 1970 ) ? -1 : 1;
- var t = ( year < 1970 ) ? 1 : 0;
- var y = ( year < 1970 ) ? 1969 : 1970;
-
- if( sign == -1 ){
- for ( y = 1969; y >= year; y += sign ) {
- t += sign * DaysInYear(y)*msPerDay;
- }
- } else {
- for ( y = 1970 ; y < year; y += sign ) {
- t += sign * DaysInYear(y)*msPerDay;
- }
- }
-
- var leap = 0;
- for ( var m = 0; m < month; m++ ) {
- //if year is changed, than we need to recalculate leep
- leap = InLeapYear(t);
- t += DaysInMonth(m, leap)*msPerDay;
- }
-
- if ( YearFromTime(t) != result5 ) {
- return Number.NaN;
- }
- if ( MonthFromTime(t) != result6 ) {
- return Number.NaN;
- }
- if ( DateFromTime(t) != 1 ) {
- return Number.NaN;
- }
-
- return Day(t)+date-1;
-}
-
-//15.9.1.13 MakeDate (day, time)
-function MakeDate( day, time ) {
- if(!isFinite(day) || !isFinite(time)) {
- return Number.NaN;
- }
-
- return day*msPerDay+time;
-}
-
-//15.9.1.14 TimeClip (time)
-function TimeClip(time) {
- if(!isFinite(time) || Math.abs(time) > 8.64e15){
- return Number.NaN;
- }
-
- return ToInteger(time);
-}
-
-//Test Functions
-function ConstructDate(year, month, date, hours, minutes, seconds, ms){
- /*
- * 1. Call ToNumber(year)
- * 2. Call ToNumber(month)
- * 3. If date is supplied use ToNumber(date); else use 1
- * 4. If hours is supplied use ToNumber(hours); else use 0
- * 5. If minutes is supplied use ToNumber(minutes); else use 0
- * 6. If seconds is supplied use ToNumber(seconds); else use 0
- * 7. If ms is supplied use ToNumber(ms); else use 0
- * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
- */
- var r1 = Number(year);
- var r2 = Number(month);
- var r3 = ((date && arguments.length > 2) ? Number(date) : 1);
- var r4 = ((hours && arguments.length > 3) ? Number(hours) : 0);
- var r5 = ((minutes && arguments.length > 4) ? Number(minutes) : 0);
- var r6 = ((seconds && arguments.length > 5) ? Number(seconds) : 0);
- var r7 = ((ms && arguments.length > 6) ? Number(ms) : 0);
-
- var r8 = r1;
-
- if(!isNaN(r1) && (0 <= ToInteger(r1)) && (ToInteger(r1) <= 99))
- r8 = 1900+r1;
-
- var r9 = MakeDay(r8, r2, r3);
- var r10 = MakeTime(r4, r5, r6, r7);
- var r11 = MakeDate(r9, r10);
-
- return TimeClip(UTC(r11));
-}
-
-
-
-if (ConstructDate(1899, 11, 31) !== new Date(1899, 11, 31).valueOf()) {
- testFailed("#1: Incorrect value of Date");
-}
-
-if (ConstructDate(1899, 12, 1) !== new Date(1899, 12, 1).valueOf()) {
- testFailed("#2: Incorrect value of Date");
-}
-
-if (ConstructDate(1900, 0, 1) !== new Date(1900, 0, 1).valueOf()) {
- testFailed("#3: Incorrect value of Date");
-}
-
-if (ConstructDate(1969, 11, 31) !== new Date(1969, 11, 31).valueOf()) {
- testFailed("#4: Incorrect value of Date");
-}
-
-if (ConstructDate(1969, 12, 1) !== new Date(1969, 12, 1).valueOf()) {
- testFailed("#5: Incorrect value of Date");
-}
-
-if (ConstructDate(1970, 0, 1) !== new Date(1970, 0, 1).valueOf()) {
- testFailed("#6: Incorrect value of Date");
-}
-
-if (ConstructDate(1999, 11, 31) !== new Date(1999, 11, 31).valueOf()) {
- testFailed("#7: Incorrect value of Date");
-}
-
-if (ConstructDate(1999, 12, 1) !== new Date(1999, 12, 1).valueOf()) {
- testFailed("#8: Incorrect value of Date");
-}
-
-if (ConstructDate(2000, 0, 1) !== new Date(2000, 0, 1).valueOf()) {
- testFailed("#9: Incorrect value of Date");
-}
-
-if (ConstructDate(2099, 11, 31) !== new Date(2099, 11, 31).valueOf()) {
- testFailed("#10: Incorrect value of Date");
-}
-
-if (ConstructDate(2099, 12, 1) !== new Date(2099, 12, 1).valueOf()) {
- testFailed("#11: Incorrect value of Date");
-}
-
-if (ConstructDate(2100, 0, 1) !== new Date(2100, 0, 1).valueOf()) {
- testFailed("#12: Incorrect value of Date");
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T3htmlfromrev211348trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T3htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html (from rev 211348, trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,522 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S15.9.3.1_A5_T3</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S15.9.3.1_A5_T3;
+ * @section: 15.9.3.1;
+ * @assertion: The [[Value]] property of the newly constructed object
+ * is set by following steps:
+ * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to
+ * TimeClip(UTC(Result(11)));
+ * @description: 4 arguments, (year, month, date, hours);
+ */
+
+var $DST_end_hour = 2;
+var $DST_end_minutes = 0;
+var $DST_end_month = 10;
+var $DST_end_sunday = 'first';
+var $DST_start_hour = 2;
+var $DST_start_minutes = 0;
+var $DST_start_month = 2;
+var $DST_start_sunday = 'first';
+var $LocalTZ = -8;
+function ToInteger(p) {
+ x = Number(p);
+
+ if(isNaN(x)){
+ return +0;
+ }
+
+ if((x === +0)
+ || (x === -0)
+ || (x === Number.POSITIVE_INFINITY)
+ || (x === Number.NEGATIVE_INFINITY)){
+ return x;
+ }
+
+ var sign = ( x < 0 ) ? -1 : 1;
+
+ return (sign*Math.floor(Math.abs(x)));
+}
+
+
+var HoursPerDay = 24;
+var MinutesPerHour = 60;
+var SecondsPerMinute = 60;
+
+var msPerDay = 86400000;
+var msPerSecond = 1000;
+var msPerMinute = 60000;
+var msPerHour = 3600000;
+
+var date_1899_end = -2208988800001;
+var date_1900_start = -2208988800000;
+var date_1969_end = -1;
+var date_1970_start = 0;
+var date_1999_end = 946684799999;
+var date_2000_start = 946684800000;
+var date_2099_end = 4102444799999;
+var date_2100_start = 4102444800000;
+
+
+//15.9.1.2 Day Number and Time within Day
+function Day(t) {
+ return Math.floor(t/msPerDay);
+}
+
+function TimeWithinDay(t) {
+ return t%msPerDay;
+}
+
+//15.9.1.3 Year Number
+function DaysInYear(y){
+ if(y%4 != 0) return 365;
+ if(y%4 == 0 && y%100 != 0) return 366;
+ if(y%100 == 0 && y%400 != 0) return 365;
+ if(y%400 == 0) return 366;
+}
+
+function DayFromYear(y) {
+ return (365*(y-1970)
+ + Math.floor((y-1969)/4)
+ - Math.floor((y-1901)/100)
+ + Math.floor((y-1601)/400));
+}
+
+function TimeFromYear(y){
+ return msPerDay*DayFromYear(y);
+}
+
+function YearFromTime(t) {
+ t = Number(t);
+ var sign = ( t < 0 ) ? -1 : 1;
+ var year = ( sign < 0 ) ? 1969 : 1970;
+
+ for(var time = 0;;year += sign){
+ time = TimeFromYear(year);
+
+ if(sign > 0 && time > t){
+ year -= sign;
+ break;
+ }
+ else if(sign < 0 && time <= t){
+ break;
+ }
+ };
+ return year;
+}
+
+function InLeapYear(t){
+ if(DaysInYear(YearFromTime(t)) == 365)
+ return 0;
+
+ if(DaysInYear(YearFromTime(t)) == 366)
+ return 1;
+}
+
+function DayWithinYear(t) {
+ return Day(t)-DayFromYear(YearFromTime(t));
+}
+
+//15.9.1.4 Month Number
+function MonthFromTime(t){
+ var day = DayWithinYear(t);
+ var leap = InLeapYear(t);
+
+ if((0 <= day) && (day < 31)) return 0;
+ if((31 <= day) && (day < (59+leap))) return 1;
+ if(((59+leap) <= day) && (day < (90+leap))) return 2;
+ if(((90+leap) <= day) && (day < (120+leap))) return 3;
+ if(((120+leap) <= day) && (day < (151+leap))) return 4;
+ if(((151+leap) <= day) && (day < (181+leap))) return 5;
+ if(((181+leap) <= day) && (day < (212+leap))) return 6;
+ if(((212+leap) <= day) && (day < (243+leap))) return 7;
+ if(((243+leap) <= day) && (day < (273+leap))) return 8;
+ if(((273+leap) <= day) && (day < (304+leap))) return 9;
+ if(((304+leap) <= day) && (day < (334+leap))) return 10;
+ if(((334+leap) <= day) && (day < (365+leap))) return 11;
+}
+
+//15.9.1.5 Date Number
+function DateFromTime(t) {
+ var day = DayWithinYear(t);
+ var month = MonthFromTime(t);
+ var leap = InLeapYear(t);
+
+ if(month == 0) return day+1;
+ if(month == 1) return day-30;
+ if(month == 2) return day-58-leap;
+ if(month == 3) return day-89-leap;
+ if(month == 4) return day-119-leap;
+ if(month == 5) return day-150-leap;
+ if(month == 6) return day-180-leap;
+ if(month == 7) return day-211-leap;
+ if(month == 8) return day-242-leap;
+ if(month == 9) return day-272-leap;
+ if(month == 10) return day-303-leap;
+ if(month == 11) return day-333-leap;
+}
+
+//15.9.1.6 Week Day
+function WeekDay(t) {
+ var weekday = (Day(t)+4)%7;
+ return (weekday < 0 ? 7+weekday : weekday);
+}
+
+//15.9.1.9 Daylight Saving Time Adjustment
+var LocalTZA = $LocalTZ*msPerHour;
+
+function DaysInMonth(m, leap) {
+ m = m%12;
+
+ //April, June, Sept, Nov
+ if(m == 3 || m == 5 || m == 8 || m == 10 ) {
+ return 30;
+ }
+
+ //Jan, March, May, July, Aug, Oct, Dec
+ if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
+ return 31;
+ }
+
+ //Feb
+ return 28+leap;
+}
+
+function GetSundayInMonth(t, m, count){
+ var year = YearFromTime(t);
+ var leap = InLeapYear(t);
+ var day = 0;
+
+ if(m >= 1) day += DaysInMonth(0, leap);
+ if(m >= 2) day += DaysInMonth(1, leap);
+ if(m >= 3) day += DaysInMonth(2, leap);
+ if(m >= 4) day += DaysInMonth(3, leap);
+ if(m >= 5) day += DaysInMonth(4, leap);
+ if(m >= 6) day += DaysInMonth(5, leap);
+ if(m >= 7) day += DaysInMonth(6, leap);
+ if(m >= 8) day += DaysInMonth(7, leap);
+ if(m >= 9) day += DaysInMonth(8, leap);
+ if(m >= 10) day += DaysInMonth(9, leap);
+ if(m >= 11) day += DaysInMonth(10, leap);
+
+ var month_start = TimeFromYear(year)+day*msPerDay;
+ var sunday = 0;
+
+ if(count === "last"){
+ for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay;
+ WeekDay(last_sunday)>0;
+ last_sunday -= msPerDay
+ ){};
+ sunday = last_sunday;
+ }
+ else {
+ for(var first_sunday = month_start;
+ WeekDay(first_sunday)>0;
+ first_sunday += msPerDay
+ ){};
+ sunday = first_sunday+7*msPerDay*(count-1);
+ }
+
+ return sunday;
+}
+
+function DaylightSavingTA(t) {
+ t = t-LocalTZA;
+
+ var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
+ +$DST_start_hour*msPerHour
+ +$DST_start_minutes*msPerMinute;
+
+ var k = new Date(DST_start);
+
+ var DST_end = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
+ +$DST_end_hour*msPerHour
+ +$DST_end_minutes*msPerMinute;
+
+ if ( t >= DST_start && t < DST_end ) {
+ return msPerHour;
+ } else {
+ return 0;
+ }
+}
+
+//15.9.1.9 Local Time
+function LocalTime(t){
+ return t+LocalTZA+DaylightSavingTA(t);
+}
+
+function UTC(t) {
+ return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
+}
+
+//15.9.1.10 Hours, Minutes, Second, and Milliseconds
+function HourFromTime(t){
+ return Math.floor(t/msPerHour)%HoursPerDay;
+}
+
+function MinFromTime(t){
+ return Math.floor(t/msPerMinute)%MinutesPerHour;
+}
+
+function SecFromTime(t){
+ return Math.floor(t/msPerSecond)%SecondsPerMinute;
+}
+
+function msFromTime(t){
+ return t%msPerSecond;
+}
+
+//15.9.1.11 MakeTime (hour, min, sec, ms)
+function MakeTime(hour, min, sec, ms){
+ if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
+ return Number.NaN;
+ }
+
+ hour = ToInteger(hour);
+ min = ToInteger(min);
+ sec = ToInteger(sec);
+ ms = ToInteger(ms);
+
+ return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
+}
+
+//15.9.1.12 MakeDay (year, month, date)
+function MakeDay(year, month, date) {
+ if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
+ return Number.NaN;
+ }
+
+ year = ToInteger(year);
+ month = ToInteger(month);
+ date = ToInteger(date );
+
+ var result5 = year + Math.floor(month/12);
+ var result6 = month%12;
+
+ var sign = ( year < 1970 ) ? -1 : 1;
+ var t = ( year < 1970 ) ? 1 : 0;
+ var y = ( year < 1970 ) ? 1969 : 1970;
+
+ if( sign == -1 ){
+ for ( y = 1969; y >= year; y += sign ) {
+ t += sign * DaysInYear(y)*msPerDay;
+ }
+ } else {
+ for ( y = 1970 ; y < year; y += sign ) {
+ t += sign * DaysInYear(y)*msPerDay;
+ }
+ }
+
+ var leap = 0;
+ for ( var m = 0; m < month; m++ ) {
+ //if year is changed, than we need to recalculate leep
+ leap = InLeapYear(t);
+ t += DaysInMonth(m, leap)*msPerDay;
+ }
+
+ if ( YearFromTime(t) != result5 ) {
+ return Number.NaN;
+ }
+ if ( MonthFromTime(t) != result6 ) {
+ return Number.NaN;
+ }
+ if ( DateFromTime(t) != 1 ) {
+ return Number.NaN;
+ }
+
+ return Day(t)+date-1;
+}
+
+//15.9.1.13 MakeDate (day, time)
+function MakeDate( day, time ) {
+ if(!isFinite(day) || !isFinite(time)) {
+ return Number.NaN;
+ }
+
+ return day*msPerDay+time;
+}
+
+//15.9.1.14 TimeClip (time)
+function TimeClip(time) {
+ if(!isFinite(time) || Math.abs(time) > 8.64e15){
+ return Number.NaN;
+ }
+
+ return ToInteger(time);
+}
+
+//Test Functions
+function ConstructDate(year, month, date, hours, minutes, seconds, ms){
+ /*
+ * 1. Call ToNumber(year)
+ * 2. Call ToNumber(month)
+ * 3. If date is supplied use ToNumber(date); else use 1
+ * 4. If hours is supplied use ToNumber(hours); else use 0
+ * 5. If minutes is supplied use ToNumber(minutes); else use 0
+ * 6. If seconds is supplied use ToNumber(seconds); else use 0
+ * 7. If ms is supplied use ToNumber(ms); else use 0
+ * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
+ */
+ var r1 = Number(year);
+ var r2 = Number(month);
+ var r3 = ((date && arguments.length > 2) ? Number(date) : 1);
+ var r4 = ((hours && arguments.length > 3) ? Number(hours) : 0);
+ var r5 = ((minutes && arguments.length > 4) ? Number(minutes) : 0);
+ var r6 = ((seconds && arguments.length > 5) ? Number(seconds) : 0);
+ var r7 = ((ms && arguments.length > 6) ? Number(ms) : 0);
+
+ var r8 = r1;
+
+ if(!isNaN(r1) && (0 <= ToInteger(r1)) && (ToInteger(r1) <= 99))
+ r8 = 1900+r1;
+
+ var r9 = MakeDay(r8, r2, r3);
+ var r10 = MakeTime(r4, r5, r6, r7);
+ var r11 = MakeDate(r9, r10);
+
+ return TimeClip(UTC(r11));
+}
+
+
+
+if (ConstructDate(1899, 11, 31, 23) !== new Date(1899, 11, 31, 23).valueOf()) {
+ testFailed("#1: Incorrect value of Date");
+}
+
+if (ConstructDate(1899, 12, 1, 0) !== new Date(1899, 12, 1, 0).valueOf()) {
+ testFailed("#2: Incorrect value of Date");
+}
+
+if (ConstructDate(1900, 0, 1, 0) !== new Date(1900, 0, 1, 0).valueOf()) {
+ testFailed("#3: Incorrect value of Date");
+}
+
+if (ConstructDate(1969, 11, 31, 23) !== new Date(1969, 11, 31, 23).valueOf()) {
+ testFailed("#4: Incorrect value of Date");
+}
+
+if (ConstructDate(1969, 12, 1, 0) !== new Date(1969, 12, 1, 0).valueOf()) {
+ testFailed("#5: Incorrect value of Date");
+}
+
+if (ConstructDate(1970, 0, 1, 0) !== new Date(1970, 0, 1, 0).valueOf()) {
+ testFailed("#6: Incorrect value of Date");
+}
+
+if (ConstructDate(1999, 11, 31, 23) !== new Date(1999, 11, 31, 23).valueOf()) {
+ testFailed("#7: Incorrect value of Date");
+}
+
+if (ConstructDate(1999, 12, 1, 0) !== new Date(1999, 12, 1, 0).valueOf()) {
+ testFailed("#8: Incorrect value of Date");
+}
+
+if (ConstructDate(2000, 0, 1, 0) !== new Date(2000, 0, 1, 0).valueOf()) {
+ testFailed("#9: Incorrect value of Date");
+}
+
+if (ConstructDate(2099, 11, 31, 23) !== new Date(2099, 11, 31, 23).valueOf()) {
+ testFailed("#10: Incorrect value of Date");
+}
+
+if (ConstructDate(2099, 12, 1, 0) !== new Date(2099, 12, 1, 0).valueOf()) {
+ testFailed("#11: Incorrect value of Date");
+}
+
+if (ConstructDate(2100, 0, 1, 0) !== new Date(2100, 0, 1, 0).valueOf()) {
+ testFailed("#12: Incorrect value of Date");
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T3htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,522 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S15.9.3.1_A5_T3</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S15.9.3.1_A5_T3;
- * @section: 15.9.3.1;
- * @assertion: The [[Value]] property of the newly constructed object
- * is set by following steps:
- * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to
- * TimeClip(UTC(Result(11)));
- * @description: 4 arguments, (year, month, date, hours);
- */
-
-var $DST_end_hour = 2;
-var $DST_end_minutes = 0;
-var $DST_end_month = 10;
-var $DST_end_sunday = 'first';
-var $DST_start_hour = 2;
-var $DST_start_minutes = 0;
-var $DST_start_month = 2;
-var $DST_start_sunday = 'first';
-var $LocalTZ = -8;
-function ToInteger(p) {
- x = Number(p);
-
- if(isNaN(x)){
- return +0;
- }
-
- if((x === +0)
- || (x === -0)
- || (x === Number.POSITIVE_INFINITY)
- || (x === Number.NEGATIVE_INFINITY)){
- return x;
- }
-
- var sign = ( x < 0 ) ? -1 : 1;
-
- return (sign*Math.floor(Math.abs(x)));
-}
-
-
-var HoursPerDay = 24;
-var MinutesPerHour = 60;
-var SecondsPerMinute = 60;
-
-var msPerDay = 86400000;
-var msPerSecond = 1000;
-var msPerMinute = 60000;
-var msPerHour = 3600000;
-
-var date_1899_end = -2208988800001;
-var date_1900_start = -2208988800000;
-var date_1969_end = -1;
-var date_1970_start = 0;
-var date_1999_end = 946684799999;
-var date_2000_start = 946684800000;
-var date_2099_end = 4102444799999;
-var date_2100_start = 4102444800000;
-
-
-//15.9.1.2 Day Number and Time within Day
-function Day(t) {
- return Math.floor(t/msPerDay);
-}
-
-function TimeWithinDay(t) {
- return t%msPerDay;
-}
-
-//15.9.1.3 Year Number
-function DaysInYear(y){
- if(y%4 != 0) return 365;
- if(y%4 == 0 && y%100 != 0) return 366;
- if(y%100 == 0 && y%400 != 0) return 365;
- if(y%400 == 0) return 366;
-}
-
-function DayFromYear(y) {
- return (365*(y-1970)
- + Math.floor((y-1969)/4)
- - Math.floor((y-1901)/100)
- + Math.floor((y-1601)/400));
-}
-
-function TimeFromYear(y){
- return msPerDay*DayFromYear(y);
-}
-
-function YearFromTime(t) {
- t = Number(t);
- var sign = ( t < 0 ) ? -1 : 1;
- var year = ( sign < 0 ) ? 1969 : 1970;
-
- for(var time = 0;;year += sign){
- time = TimeFromYear(year);
-
- if(sign > 0 && time > t){
- year -= sign;
- break;
- }
- else if(sign < 0 && time <= t){
- break;
- }
- };
- return year;
-}
-
-function InLeapYear(t){
- if(DaysInYear(YearFromTime(t)) == 365)
- return 0;
-
- if(DaysInYear(YearFromTime(t)) == 366)
- return 1;
-}
-
-function DayWithinYear(t) {
- return Day(t)-DayFromYear(YearFromTime(t));
-}
-
-//15.9.1.4 Month Number
-function MonthFromTime(t){
- var day = DayWithinYear(t);
- var leap = InLeapYear(t);
-
- if((0 <= day) && (day < 31)) return 0;
- if((31 <= day) && (day < (59+leap))) return 1;
- if(((59+leap) <= day) && (day < (90+leap))) return 2;
- if(((90+leap) <= day) && (day < (120+leap))) return 3;
- if(((120+leap) <= day) && (day < (151+leap))) return 4;
- if(((151+leap) <= day) && (day < (181+leap))) return 5;
- if(((181+leap) <= day) && (day < (212+leap))) return 6;
- if(((212+leap) <= day) && (day < (243+leap))) return 7;
- if(((243+leap) <= day) && (day < (273+leap))) return 8;
- if(((273+leap) <= day) && (day < (304+leap))) return 9;
- if(((304+leap) <= day) && (day < (334+leap))) return 10;
- if(((334+leap) <= day) && (day < (365+leap))) return 11;
-}
-
-//15.9.1.5 Date Number
-function DateFromTime(t) {
- var day = DayWithinYear(t);
- var month = MonthFromTime(t);
- var leap = InLeapYear(t);
-
- if(month == 0) return day+1;
- if(month == 1) return day-30;
- if(month == 2) return day-58-leap;
- if(month == 3) return day-89-leap;
- if(month == 4) return day-119-leap;
- if(month == 5) return day-150-leap;
- if(month == 6) return day-180-leap;
- if(month == 7) return day-211-leap;
- if(month == 8) return day-242-leap;
- if(month == 9) return day-272-leap;
- if(month == 10) return day-303-leap;
- if(month == 11) return day-333-leap;
-}
-
-//15.9.1.6 Week Day
-function WeekDay(t) {
- var weekday = (Day(t)+4)%7;
- return (weekday < 0 ? 7+weekday : weekday);
-}
-
-//15.9.1.9 Daylight Saving Time Adjustment
-var LocalTZA = $LocalTZ*msPerHour;
-
-function DaysInMonth(m, leap) {
- m = m%12;
-
- //April, June, Sept, Nov
- if(m == 3 || m == 5 || m == 8 || m == 10 ) {
- return 30;
- }
-
- //Jan, March, May, July, Aug, Oct, Dec
- if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
- return 31;
- }
-
- //Feb
- return 28+leap;
-}
-
-function GetSundayInMonth(t, m, count){
- var year = YearFromTime(t);
- var leap = InLeapYear(t);
- var day = 0;
-
- if(m >= 1) day += DaysInMonth(0, leap);
- if(m >= 2) day += DaysInMonth(1, leap);
- if(m >= 3) day += DaysInMonth(2, leap);
- if(m >= 4) day += DaysInMonth(3, leap);
- if(m >= 5) day += DaysInMonth(4, leap);
- if(m >= 6) day += DaysInMonth(5, leap);
- if(m >= 7) day += DaysInMonth(6, leap);
- if(m >= 8) day += DaysInMonth(7, leap);
- if(m >= 9) day += DaysInMonth(8, leap);
- if(m >= 10) day += DaysInMonth(9, leap);
- if(m >= 11) day += DaysInMonth(10, leap);
-
- var month_start = TimeFromYear(year)+day*msPerDay;
- var sunday = 0;
-
- if(count === "last"){
- for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay;
- WeekDay(last_sunday)>0;
- last_sunday -= msPerDay
- ){};
- sunday = last_sunday;
- }
- else {
- for(var first_sunday = month_start;
- WeekDay(first_sunday)>0;
- first_sunday += msPerDay
- ){};
- sunday = first_sunday+7*msPerDay*(count-1);
- }
-
- return sunday;
-}
-
-function DaylightSavingTA(t) {
- t = t-LocalTZA;
-
- var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
- +$DST_start_hour*msPerHour
- +$DST_start_minutes*msPerMinute;
-
- var k = new Date(DST_start);
-
- var DST_end = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
- +$DST_end_hour*msPerHour
- +$DST_end_minutes*msPerMinute;
-
- if ( t >= DST_start && t < DST_end ) {
- return msPerHour;
- } else {
- return 0;
- }
-}
-
-//15.9.1.9 Local Time
-function LocalTime(t){
- return t+LocalTZA+DaylightSavingTA(t);
-}
-
-function UTC(t) {
- return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
-}
-
-//15.9.1.10 Hours, Minutes, Second, and Milliseconds
-function HourFromTime(t){
- return Math.floor(t/msPerHour)%HoursPerDay;
-}
-
-function MinFromTime(t){
- return Math.floor(t/msPerMinute)%MinutesPerHour;
-}
-
-function SecFromTime(t){
- return Math.floor(t/msPerSecond)%SecondsPerMinute;
-}
-
-function msFromTime(t){
- return t%msPerSecond;
-}
-
-//15.9.1.11 MakeTime (hour, min, sec, ms)
-function MakeTime(hour, min, sec, ms){
- if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
- return Number.NaN;
- }
-
- hour = ToInteger(hour);
- min = ToInteger(min);
- sec = ToInteger(sec);
- ms = ToInteger(ms);
-
- return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
-}
-
-//15.9.1.12 MakeDay (year, month, date)
-function MakeDay(year, month, date) {
- if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
- return Number.NaN;
- }
-
- year = ToInteger(year);
- month = ToInteger(month);
- date = ToInteger(date );
-
- var result5 = year + Math.floor(month/12);
- var result6 = month%12;
-
- var sign = ( year < 1970 ) ? -1 : 1;
- var t = ( year < 1970 ) ? 1 : 0;
- var y = ( year < 1970 ) ? 1969 : 1970;
-
- if( sign == -1 ){
- for ( y = 1969; y >= year; y += sign ) {
- t += sign * DaysInYear(y)*msPerDay;
- }
- } else {
- for ( y = 1970 ; y < year; y += sign ) {
- t += sign * DaysInYear(y)*msPerDay;
- }
- }
-
- var leap = 0;
- for ( var m = 0; m < month; m++ ) {
- //if year is changed, than we need to recalculate leep
- leap = InLeapYear(t);
- t += DaysInMonth(m, leap)*msPerDay;
- }
-
- if ( YearFromTime(t) != result5 ) {
- return Number.NaN;
- }
- if ( MonthFromTime(t) != result6 ) {
- return Number.NaN;
- }
- if ( DateFromTime(t) != 1 ) {
- return Number.NaN;
- }
-
- return Day(t)+date-1;
-}
-
-//15.9.1.13 MakeDate (day, time)
-function MakeDate( day, time ) {
- if(!isFinite(day) || !isFinite(time)) {
- return Number.NaN;
- }
-
- return day*msPerDay+time;
-}
-
-//15.9.1.14 TimeClip (time)
-function TimeClip(time) {
- if(!isFinite(time) || Math.abs(time) > 8.64e15){
- return Number.NaN;
- }
-
- return ToInteger(time);
-}
-
-//Test Functions
-function ConstructDate(year, month, date, hours, minutes, seconds, ms){
- /*
- * 1. Call ToNumber(year)
- * 2. Call ToNumber(month)
- * 3. If date is supplied use ToNumber(date); else use 1
- * 4. If hours is supplied use ToNumber(hours); else use 0
- * 5. If minutes is supplied use ToNumber(minutes); else use 0
- * 6. If seconds is supplied use ToNumber(seconds); else use 0
- * 7. If ms is supplied use ToNumber(ms); else use 0
- * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
- */
- var r1 = Number(year);
- var r2 = Number(month);
- var r3 = ((date && arguments.length > 2) ? Number(date) : 1);
- var r4 = ((hours && arguments.length > 3) ? Number(hours) : 0);
- var r5 = ((minutes && arguments.length > 4) ? Number(minutes) : 0);
- var r6 = ((seconds && arguments.length > 5) ? Number(seconds) : 0);
- var r7 = ((ms && arguments.length > 6) ? Number(ms) : 0);
-
- var r8 = r1;
-
- if(!isNaN(r1) && (0 <= ToInteger(r1)) && (ToInteger(r1) <= 99))
- r8 = 1900+r1;
-
- var r9 = MakeDay(r8, r2, r3);
- var r10 = MakeTime(r4, r5, r6, r7);
- var r11 = MakeDate(r9, r10);
-
- return TimeClip(UTC(r11));
-}
-
-
-
-if (ConstructDate(1899, 11, 31, 23) !== new Date(1899, 11, 31, 23).valueOf()) {
- testFailed("#1: Incorrect value of Date");
-}
-
-if (ConstructDate(1899, 12, 1, 0) !== new Date(1899, 12, 1, 0).valueOf()) {
- testFailed("#2: Incorrect value of Date");
-}
-
-if (ConstructDate(1900, 0, 1, 0) !== new Date(1900, 0, 1, 0).valueOf()) {
- testFailed("#3: Incorrect value of Date");
-}
-
-if (ConstructDate(1969, 11, 31, 23) !== new Date(1969, 11, 31, 23).valueOf()) {
- testFailed("#4: Incorrect value of Date");
-}
-
-if (ConstructDate(1969, 12, 1, 0) !== new Date(1969, 12, 1, 0).valueOf()) {
- testFailed("#5: Incorrect value of Date");
-}
-
-if (ConstructDate(1970, 0, 1, 0) !== new Date(1970, 0, 1, 0).valueOf()) {
- testFailed("#6: Incorrect value of Date");
-}
-
-if (ConstructDate(1999, 11, 31, 23) !== new Date(1999, 11, 31, 23).valueOf()) {
- testFailed("#7: Incorrect value of Date");
-}
-
-if (ConstructDate(1999, 12, 1, 0) !== new Date(1999, 12, 1, 0).valueOf()) {
- testFailed("#8: Incorrect value of Date");
-}
-
-if (ConstructDate(2000, 0, 1, 0) !== new Date(2000, 0, 1, 0).valueOf()) {
- testFailed("#9: Incorrect value of Date");
-}
-
-if (ConstructDate(2099, 11, 31, 23) !== new Date(2099, 11, 31, 23).valueOf()) {
- testFailed("#10: Incorrect value of Date");
-}
-
-if (ConstructDate(2099, 12, 1, 0) !== new Date(2099, 12, 1, 0).valueOf()) {
- testFailed("#11: Incorrect value of Date");
-}
-
-if (ConstructDate(2100, 0, 1, 0) !== new Date(2100, 0, 1, 0).valueOf()) {
- testFailed("#12: Incorrect value of Date");
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T4htmlfromrev211348trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T4htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html (from rev 211348, trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,522 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S15.9.3.1_A5_T4</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S15.9.3.1_A5_T4;
+ * @section: 15.9.3.1;
+ * @assertion: The [[Value]] property of the newly constructed object
+ * is set by following steps:
+ * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to
+ * TimeClip(UTC(Result(11)));
+ * @description: 5 arguments, (year, month, date, hours, minutes);
+ */
+
+var $DST_end_hour = 2;
+var $DST_end_minutes = 0;
+var $DST_end_month = 10;
+var $DST_end_sunday = 'first';
+var $DST_start_hour = 2;
+var $DST_start_minutes = 0;
+var $DST_start_month = 2;
+var $DST_start_sunday = 'first';
+var $LocalTZ = -8;
+function ToInteger(p) {
+ x = Number(p);
+
+ if(isNaN(x)){
+ return +0;
+ }
+
+ if((x === +0)
+ || (x === -0)
+ || (x === Number.POSITIVE_INFINITY)
+ || (x === Number.NEGATIVE_INFINITY)){
+ return x;
+ }
+
+ var sign = ( x < 0 ) ? -1 : 1;
+
+ return (sign*Math.floor(Math.abs(x)));
+}
+
+
+var HoursPerDay = 24;
+var MinutesPerHour = 60;
+var SecondsPerMinute = 60;
+
+var msPerDay = 86400000;
+var msPerSecond = 1000;
+var msPerMinute = 60000;
+var msPerHour = 3600000;
+
+var date_1899_end = -2208988800001;
+var date_1900_start = -2208988800000;
+var date_1969_end = -1;
+var date_1970_start = 0;
+var date_1999_end = 946684799999;
+var date_2000_start = 946684800000;
+var date_2099_end = 4102444799999;
+var date_2100_start = 4102444800000;
+
+
+//15.9.1.2 Day Number and Time within Day
+function Day(t) {
+ return Math.floor(t/msPerDay);
+}
+
+function TimeWithinDay(t) {
+ return t%msPerDay;
+}
+
+//15.9.1.3 Year Number
+function DaysInYear(y){
+ if(y%4 != 0) return 365;
+ if(y%4 == 0 && y%100 != 0) return 366;
+ if(y%100 == 0 && y%400 != 0) return 365;
+ if(y%400 == 0) return 366;
+}
+
+function DayFromYear(y) {
+ return (365*(y-1970)
+ + Math.floor((y-1969)/4)
+ - Math.floor((y-1901)/100)
+ + Math.floor((y-1601)/400));
+}
+
+function TimeFromYear(y){
+ return msPerDay*DayFromYear(y);
+}
+
+function YearFromTime(t) {
+ t = Number(t);
+ var sign = ( t < 0 ) ? -1 : 1;
+ var year = ( sign < 0 ) ? 1969 : 1970;
+
+ for(var time = 0;;year += sign){
+ time = TimeFromYear(year);
+
+ if(sign > 0 && time > t){
+ year -= sign;
+ break;
+ }
+ else if(sign < 0 && time <= t){
+ break;
+ }
+ };
+ return year;
+}
+
+function InLeapYear(t){
+ if(DaysInYear(YearFromTime(t)) == 365)
+ return 0;
+
+ if(DaysInYear(YearFromTime(t)) == 366)
+ return 1;
+}
+
+function DayWithinYear(t) {
+ return Day(t)-DayFromYear(YearFromTime(t));
+}
+
+//15.9.1.4 Month Number
+function MonthFromTime(t){
+ var day = DayWithinYear(t);
+ var leap = InLeapYear(t);
+
+ if((0 <= day) && (day < 31)) return 0;
+ if((31 <= day) && (day < (59+leap))) return 1;
+ if(((59+leap) <= day) && (day < (90+leap))) return 2;
+ if(((90+leap) <= day) && (day < (120+leap))) return 3;
+ if(((120+leap) <= day) && (day < (151+leap))) return 4;
+ if(((151+leap) <= day) && (day < (181+leap))) return 5;
+ if(((181+leap) <= day) && (day < (212+leap))) return 6;
+ if(((212+leap) <= day) && (day < (243+leap))) return 7;
+ if(((243+leap) <= day) && (day < (273+leap))) return 8;
+ if(((273+leap) <= day) && (day < (304+leap))) return 9;
+ if(((304+leap) <= day) && (day < (334+leap))) return 10;
+ if(((334+leap) <= day) && (day < (365+leap))) return 11;
+}
+
+//15.9.1.5 Date Number
+function DateFromTime(t) {
+ var day = DayWithinYear(t);
+ var month = MonthFromTime(t);
+ var leap = InLeapYear(t);
+
+ if(month == 0) return day+1;
+ if(month == 1) return day-30;
+ if(month == 2) return day-58-leap;
+ if(month == 3) return day-89-leap;
+ if(month == 4) return day-119-leap;
+ if(month == 5) return day-150-leap;
+ if(month == 6) return day-180-leap;
+ if(month == 7) return day-211-leap;
+ if(month == 8) return day-242-leap;
+ if(month == 9) return day-272-leap;
+ if(month == 10) return day-303-leap;
+ if(month == 11) return day-333-leap;
+}
+
+//15.9.1.6 Week Day
+function WeekDay(t) {
+ var weekday = (Day(t)+4)%7;
+ return (weekday < 0 ? 7+weekday : weekday);
+}
+
+//15.9.1.9 Daylight Saving Time Adjustment
+var LocalTZA = $LocalTZ*msPerHour;
+
+function DaysInMonth(m, leap) {
+ m = m%12;
+
+ //April, June, Sept, Nov
+ if(m == 3 || m == 5 || m == 8 || m == 10 ) {
+ return 30;
+ }
+
+ //Jan, March, May, July, Aug, Oct, Dec
+ if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
+ return 31;
+ }
+
+ //Feb
+ return 28+leap;
+}
+
+function GetSundayInMonth(t, m, count){
+ var year = YearFromTime(t);
+ var leap = InLeapYear(t);
+ var day = 0;
+
+ if(m >= 1) day += DaysInMonth(0, leap);
+ if(m >= 2) day += DaysInMonth(1, leap);
+ if(m >= 3) day += DaysInMonth(2, leap);
+ if(m >= 4) day += DaysInMonth(3, leap);
+ if(m >= 5) day += DaysInMonth(4, leap);
+ if(m >= 6) day += DaysInMonth(5, leap);
+ if(m >= 7) day += DaysInMonth(6, leap);
+ if(m >= 8) day += DaysInMonth(7, leap);
+ if(m >= 9) day += DaysInMonth(8, leap);
+ if(m >= 10) day += DaysInMonth(9, leap);
+ if(m >= 11) day += DaysInMonth(10, leap);
+
+ var month_start = TimeFromYear(year)+day*msPerDay;
+ var sunday = 0;
+
+ if(count === "last"){
+ for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay;
+ WeekDay(last_sunday)>0;
+ last_sunday -= msPerDay
+ ){};
+ sunday = last_sunday;
+ }
+ else {
+ for(var first_sunday = month_start;
+ WeekDay(first_sunday)>0;
+ first_sunday += msPerDay
+ ){};
+ sunday = first_sunday+7*msPerDay*(count-1);
+ }
+
+ return sunday;
+}
+
+function DaylightSavingTA(t) {
+ t = t-LocalTZA;
+
+ var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
+ +$DST_start_hour*msPerHour
+ +$DST_start_minutes*msPerMinute;
+
+ var k = new Date(DST_start);
+
+ var DST_end = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
+ +$DST_end_hour*msPerHour
+ +$DST_end_minutes*msPerMinute;
+
+ if ( t >= DST_start && t < DST_end ) {
+ return msPerHour;
+ } else {
+ return 0;
+ }
+}
+
+//15.9.1.9 Local Time
+function LocalTime(t){
+ return t+LocalTZA+DaylightSavingTA(t);
+}
+
+function UTC(t) {
+ return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
+}
+
+//15.9.1.10 Hours, Minutes, Second, and Milliseconds
+function HourFromTime(t){
+ return Math.floor(t/msPerHour)%HoursPerDay;
+}
+
+function MinFromTime(t){
+ return Math.floor(t/msPerMinute)%MinutesPerHour;
+}
+
+function SecFromTime(t){
+ return Math.floor(t/msPerSecond)%SecondsPerMinute;
+}
+
+function msFromTime(t){
+ return t%msPerSecond;
+}
+
+//15.9.1.11 MakeTime (hour, min, sec, ms)
+function MakeTime(hour, min, sec, ms){
+ if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
+ return Number.NaN;
+ }
+
+ hour = ToInteger(hour);
+ min = ToInteger(min);
+ sec = ToInteger(sec);
+ ms = ToInteger(ms);
+
+ return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
+}
+
+//15.9.1.12 MakeDay (year, month, date)
+function MakeDay(year, month, date) {
+ if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
+ return Number.NaN;
+ }
+
+ year = ToInteger(year);
+ month = ToInteger(month);
+ date = ToInteger(date );
+
+ var result5 = year + Math.floor(month/12);
+ var result6 = month%12;
+
+ var sign = ( year < 1970 ) ? -1 : 1;
+ var t = ( year < 1970 ) ? 1 : 0;
+ var y = ( year < 1970 ) ? 1969 : 1970;
+
+ if( sign == -1 ){
+ for ( y = 1969; y >= year; y += sign ) {
+ t += sign * DaysInYear(y)*msPerDay;
+ }
+ } else {
+ for ( y = 1970 ; y < year; y += sign ) {
+ t += sign * DaysInYear(y)*msPerDay;
+ }
+ }
+
+ var leap = 0;
+ for ( var m = 0; m < month; m++ ) {
+ //if year is changed, than we need to recalculate leep
+ leap = InLeapYear(t);
+ t += DaysInMonth(m, leap)*msPerDay;
+ }
+
+ if ( YearFromTime(t) != result5 ) {
+ return Number.NaN;
+ }
+ if ( MonthFromTime(t) != result6 ) {
+ return Number.NaN;
+ }
+ if ( DateFromTime(t) != 1 ) {
+ return Number.NaN;
+ }
+
+ return Day(t)+date-1;
+}
+
+//15.9.1.13 MakeDate (day, time)
+function MakeDate( day, time ) {
+ if(!isFinite(day) || !isFinite(time)) {
+ return Number.NaN;
+ }
+
+ return day*msPerDay+time;
+}
+
+//15.9.1.14 TimeClip (time)
+function TimeClip(time) {
+ if(!isFinite(time) || Math.abs(time) > 8.64e15){
+ return Number.NaN;
+ }
+
+ return ToInteger(time);
+}
+
+//Test Functions
+function ConstructDate(year, month, date, hours, minutes, seconds, ms){
+ /*
+ * 1. Call ToNumber(year)
+ * 2. Call ToNumber(month)
+ * 3. If date is supplied use ToNumber(date); else use 1
+ * 4. If hours is supplied use ToNumber(hours); else use 0
+ * 5. If minutes is supplied use ToNumber(minutes); else use 0
+ * 6. If seconds is supplied use ToNumber(seconds); else use 0
+ * 7. If ms is supplied use ToNumber(ms); else use 0
+ * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
+ */
+ var r1 = Number(year);
+ var r2 = Number(month);
+ var r3 = ((date && arguments.length > 2) ? Number(date) : 1);
+ var r4 = ((hours && arguments.length > 3) ? Number(hours) : 0);
+ var r5 = ((minutes && arguments.length > 4) ? Number(minutes) : 0);
+ var r6 = ((seconds && arguments.length > 5) ? Number(seconds) : 0);
+ var r7 = ((ms && arguments.length > 6) ? Number(ms) : 0);
+
+ var r8 = r1;
+
+ if(!isNaN(r1) && (0 <= ToInteger(r1)) && (ToInteger(r1) <= 99))
+ r8 = 1900+r1;
+
+ var r9 = MakeDay(r8, r2, r3);
+ var r10 = MakeTime(r4, r5, r6, r7);
+ var r11 = MakeDate(r9, r10);
+
+ return TimeClip(UTC(r11));
+}
+
+
+
+if (ConstructDate(1899, 11, 31, 23, 59) !== new Date(1899, 11, 31, 23, 59).valueOf()) {
+ testFailed("#1: Incorrect value of Date");
+}
+
+if (ConstructDate(1899, 12, 1, 0, 0) !== new Date(1899, 12, 1, 0, 0).valueOf()) {
+ testFailed("#2: Incorrect value of Date");
+}
+
+if (ConstructDate(1900, 0, 1, 0, 0) !== new Date(1900, 0, 1, 0, 0).valueOf()) {
+ testFailed("#3: Incorrect value of Date");
+}
+
+if (ConstructDate(1969, 11, 31, 23, 59) !== new Date(1969, 11, 31, 23, 59).valueOf()) {
+ testFailed("#4: Incorrect value of Date");
+}
+
+if (ConstructDate(1969, 12, 1, 0, 0) !== new Date(1969, 12, 1, 0, 0).valueOf()) {
+ testFailed("#5: Incorrect value of Date");
+}
+
+if (ConstructDate(1970, 0, 1, 0, 0) !== new Date(1970, 0, 1, 0, 0).valueOf()) {
+ testFailed("#6: Incorrect value of Date");
+}
+
+if (ConstructDate(1999, 11, 31, 23, 59) !== new Date(1999, 11, 31, 23, 59).valueOf()) {
+ testFailed("#7: Incorrect value of Date");
+}
+
+if (ConstructDate(1999, 12, 1, 0, 0) !== new Date(1999, 12, 1, 0, 0).valueOf()) {
+ testFailed("#8: Incorrect value of Date");
+}
+
+if (ConstructDate(2000, 0, 1, 0, 0) !== new Date(2000, 0, 1, 0, 0).valueOf()) {
+ testFailed("#9: Incorrect value of Date");
+}
+
+if (ConstructDate(2099, 11, 31, 23, 59) !== new Date(2099, 11, 31, 23, 59).valueOf()) {
+ testFailed("#10: Incorrect value of Date");
+}
+
+if (ConstructDate(2099, 12, 1, 0, 0) !== new Date(2099, 12, 1, 0, 0).valueOf()) {
+ testFailed("#11: Incorrect value of Date");
+}
+
+if (ConstructDate(2100, 0, 1, 0, 0) !== new Date(2100, 0, 1, 0, 0).valueOf()) {
+ testFailed("#12: Incorrect value of Date");
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T4htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,522 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S15.9.3.1_A5_T4</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S15.9.3.1_A5_T4;
- * @section: 15.9.3.1;
- * @assertion: The [[Value]] property of the newly constructed object
- * is set by following steps:
- * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to
- * TimeClip(UTC(Result(11)));
- * @description: 5 arguments, (year, month, date, hours, minutes);
- */
-
-var $DST_end_hour = 2;
-var $DST_end_minutes = 0;
-var $DST_end_month = 10;
-var $DST_end_sunday = 'first';
-var $DST_start_hour = 2;
-var $DST_start_minutes = 0;
-var $DST_start_month = 2;
-var $DST_start_sunday = 'first';
-var $LocalTZ = -8;
-function ToInteger(p) {
- x = Number(p);
-
- if(isNaN(x)){
- return +0;
- }
-
- if((x === +0)
- || (x === -0)
- || (x === Number.POSITIVE_INFINITY)
- || (x === Number.NEGATIVE_INFINITY)){
- return x;
- }
-
- var sign = ( x < 0 ) ? -1 : 1;
-
- return (sign*Math.floor(Math.abs(x)));
-}
-
-
-var HoursPerDay = 24;
-var MinutesPerHour = 60;
-var SecondsPerMinute = 60;
-
-var msPerDay = 86400000;
-var msPerSecond = 1000;
-var msPerMinute = 60000;
-var msPerHour = 3600000;
-
-var date_1899_end = -2208988800001;
-var date_1900_start = -2208988800000;
-var date_1969_end = -1;
-var date_1970_start = 0;
-var date_1999_end = 946684799999;
-var date_2000_start = 946684800000;
-var date_2099_end = 4102444799999;
-var date_2100_start = 4102444800000;
-
-
-//15.9.1.2 Day Number and Time within Day
-function Day(t) {
- return Math.floor(t/msPerDay);
-}
-
-function TimeWithinDay(t) {
- return t%msPerDay;
-}
-
-//15.9.1.3 Year Number
-function DaysInYear(y){
- if(y%4 != 0) return 365;
- if(y%4 == 0 && y%100 != 0) return 366;
- if(y%100 == 0 && y%400 != 0) return 365;
- if(y%400 == 0) return 366;
-}
-
-function DayFromYear(y) {
- return (365*(y-1970)
- + Math.floor((y-1969)/4)
- - Math.floor((y-1901)/100)
- + Math.floor((y-1601)/400));
-}
-
-function TimeFromYear(y){
- return msPerDay*DayFromYear(y);
-}
-
-function YearFromTime(t) {
- t = Number(t);
- var sign = ( t < 0 ) ? -1 : 1;
- var year = ( sign < 0 ) ? 1969 : 1970;
-
- for(var time = 0;;year += sign){
- time = TimeFromYear(year);
-
- if(sign > 0 && time > t){
- year -= sign;
- break;
- }
- else if(sign < 0 && time <= t){
- break;
- }
- };
- return year;
-}
-
-function InLeapYear(t){
- if(DaysInYear(YearFromTime(t)) == 365)
- return 0;
-
- if(DaysInYear(YearFromTime(t)) == 366)
- return 1;
-}
-
-function DayWithinYear(t) {
- return Day(t)-DayFromYear(YearFromTime(t));
-}
-
-//15.9.1.4 Month Number
-function MonthFromTime(t){
- var day = DayWithinYear(t);
- var leap = InLeapYear(t);
-
- if((0 <= day) && (day < 31)) return 0;
- if((31 <= day) && (day < (59+leap))) return 1;
- if(((59+leap) <= day) && (day < (90+leap))) return 2;
- if(((90+leap) <= day) && (day < (120+leap))) return 3;
- if(((120+leap) <= day) && (day < (151+leap))) return 4;
- if(((151+leap) <= day) && (day < (181+leap))) return 5;
- if(((181+leap) <= day) && (day < (212+leap))) return 6;
- if(((212+leap) <= day) && (day < (243+leap))) return 7;
- if(((243+leap) <= day) && (day < (273+leap))) return 8;
- if(((273+leap) <= day) && (day < (304+leap))) return 9;
- if(((304+leap) <= day) && (day < (334+leap))) return 10;
- if(((334+leap) <= day) && (day < (365+leap))) return 11;
-}
-
-//15.9.1.5 Date Number
-function DateFromTime(t) {
- var day = DayWithinYear(t);
- var month = MonthFromTime(t);
- var leap = InLeapYear(t);
-
- if(month == 0) return day+1;
- if(month == 1) return day-30;
- if(month == 2) return day-58-leap;
- if(month == 3) return day-89-leap;
- if(month == 4) return day-119-leap;
- if(month == 5) return day-150-leap;
- if(month == 6) return day-180-leap;
- if(month == 7) return day-211-leap;
- if(month == 8) return day-242-leap;
- if(month == 9) return day-272-leap;
- if(month == 10) return day-303-leap;
- if(month == 11) return day-333-leap;
-}
-
-//15.9.1.6 Week Day
-function WeekDay(t) {
- var weekday = (Day(t)+4)%7;
- return (weekday < 0 ? 7+weekday : weekday);
-}
-
-//15.9.1.9 Daylight Saving Time Adjustment
-var LocalTZA = $LocalTZ*msPerHour;
-
-function DaysInMonth(m, leap) {
- m = m%12;
-
- //April, June, Sept, Nov
- if(m == 3 || m == 5 || m == 8 || m == 10 ) {
- return 30;
- }
-
- //Jan, March, May, July, Aug, Oct, Dec
- if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
- return 31;
- }
-
- //Feb
- return 28+leap;
-}
-
-function GetSundayInMonth(t, m, count){
- var year = YearFromTime(t);
- var leap = InLeapYear(t);
- var day = 0;
-
- if(m >= 1) day += DaysInMonth(0, leap);
- if(m >= 2) day += DaysInMonth(1, leap);
- if(m >= 3) day += DaysInMonth(2, leap);
- if(m >= 4) day += DaysInMonth(3, leap);
- if(m >= 5) day += DaysInMonth(4, leap);
- if(m >= 6) day += DaysInMonth(5, leap);
- if(m >= 7) day += DaysInMonth(6, leap);
- if(m >= 8) day += DaysInMonth(7, leap);
- if(m >= 9) day += DaysInMonth(8, leap);
- if(m >= 10) day += DaysInMonth(9, leap);
- if(m >= 11) day += DaysInMonth(10, leap);
-
- var month_start = TimeFromYear(year)+day*msPerDay;
- var sunday = 0;
-
- if(count === "last"){
- for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay;
- WeekDay(last_sunday)>0;
- last_sunday -= msPerDay
- ){};
- sunday = last_sunday;
- }
- else {
- for(var first_sunday = month_start;
- WeekDay(first_sunday)>0;
- first_sunday += msPerDay
- ){};
- sunday = first_sunday+7*msPerDay*(count-1);
- }
-
- return sunday;
-}
-
-function DaylightSavingTA(t) {
- t = t-LocalTZA;
-
- var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
- +$DST_start_hour*msPerHour
- +$DST_start_minutes*msPerMinute;
-
- var k = new Date(DST_start);
-
- var DST_end = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
- +$DST_end_hour*msPerHour
- +$DST_end_minutes*msPerMinute;
-
- if ( t >= DST_start && t < DST_end ) {
- return msPerHour;
- } else {
- return 0;
- }
-}
-
-//15.9.1.9 Local Time
-function LocalTime(t){
- return t+LocalTZA+DaylightSavingTA(t);
-}
-
-function UTC(t) {
- return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
-}
-
-//15.9.1.10 Hours, Minutes, Second, and Milliseconds
-function HourFromTime(t){
- return Math.floor(t/msPerHour)%HoursPerDay;
-}
-
-function MinFromTime(t){
- return Math.floor(t/msPerMinute)%MinutesPerHour;
-}
-
-function SecFromTime(t){
- return Math.floor(t/msPerSecond)%SecondsPerMinute;
-}
-
-function msFromTime(t){
- return t%msPerSecond;
-}
-
-//15.9.1.11 MakeTime (hour, min, sec, ms)
-function MakeTime(hour, min, sec, ms){
- if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
- return Number.NaN;
- }
-
- hour = ToInteger(hour);
- min = ToInteger(min);
- sec = ToInteger(sec);
- ms = ToInteger(ms);
-
- return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
-}
-
-//15.9.1.12 MakeDay (year, month, date)
-function MakeDay(year, month, date) {
- if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
- return Number.NaN;
- }
-
- year = ToInteger(year);
- month = ToInteger(month);
- date = ToInteger(date );
-
- var result5 = year + Math.floor(month/12);
- var result6 = month%12;
-
- var sign = ( year < 1970 ) ? -1 : 1;
- var t = ( year < 1970 ) ? 1 : 0;
- var y = ( year < 1970 ) ? 1969 : 1970;
-
- if( sign == -1 ){
- for ( y = 1969; y >= year; y += sign ) {
- t += sign * DaysInYear(y)*msPerDay;
- }
- } else {
- for ( y = 1970 ; y < year; y += sign ) {
- t += sign * DaysInYear(y)*msPerDay;
- }
- }
-
- var leap = 0;
- for ( var m = 0; m < month; m++ ) {
- //if year is changed, than we need to recalculate leep
- leap = InLeapYear(t);
- t += DaysInMonth(m, leap)*msPerDay;
- }
-
- if ( YearFromTime(t) != result5 ) {
- return Number.NaN;
- }
- if ( MonthFromTime(t) != result6 ) {
- return Number.NaN;
- }
- if ( DateFromTime(t) != 1 ) {
- return Number.NaN;
- }
-
- return Day(t)+date-1;
-}
-
-//15.9.1.13 MakeDate (day, time)
-function MakeDate( day, time ) {
- if(!isFinite(day) || !isFinite(time)) {
- return Number.NaN;
- }
-
- return day*msPerDay+time;
-}
-
-//15.9.1.14 TimeClip (time)
-function TimeClip(time) {
- if(!isFinite(time) || Math.abs(time) > 8.64e15){
- return Number.NaN;
- }
-
- return ToInteger(time);
-}
-
-//Test Functions
-function ConstructDate(year, month, date, hours, minutes, seconds, ms){
- /*
- * 1. Call ToNumber(year)
- * 2. Call ToNumber(month)
- * 3. If date is supplied use ToNumber(date); else use 1
- * 4. If hours is supplied use ToNumber(hours); else use 0
- * 5. If minutes is supplied use ToNumber(minutes); else use 0
- * 6. If seconds is supplied use ToNumber(seconds); else use 0
- * 7. If ms is supplied use ToNumber(ms); else use 0
- * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
- */
- var r1 = Number(year);
- var r2 = Number(month);
- var r3 = ((date && arguments.length > 2) ? Number(date) : 1);
- var r4 = ((hours && arguments.length > 3) ? Number(hours) : 0);
- var r5 = ((minutes && arguments.length > 4) ? Number(minutes) : 0);
- var r6 = ((seconds && arguments.length > 5) ? Number(seconds) : 0);
- var r7 = ((ms && arguments.length > 6) ? Number(ms) : 0);
-
- var r8 = r1;
-
- if(!isNaN(r1) && (0 <= ToInteger(r1)) && (ToInteger(r1) <= 99))
- r8 = 1900+r1;
-
- var r9 = MakeDay(r8, r2, r3);
- var r10 = MakeTime(r4, r5, r6, r7);
- var r11 = MakeDate(r9, r10);
-
- return TimeClip(UTC(r11));
-}
-
-
-
-if (ConstructDate(1899, 11, 31, 23, 59) !== new Date(1899, 11, 31, 23, 59).valueOf()) {
- testFailed("#1: Incorrect value of Date");
-}
-
-if (ConstructDate(1899, 12, 1, 0, 0) !== new Date(1899, 12, 1, 0, 0).valueOf()) {
- testFailed("#2: Incorrect value of Date");
-}
-
-if (ConstructDate(1900, 0, 1, 0, 0) !== new Date(1900, 0, 1, 0, 0).valueOf()) {
- testFailed("#3: Incorrect value of Date");
-}
-
-if (ConstructDate(1969, 11, 31, 23, 59) !== new Date(1969, 11, 31, 23, 59).valueOf()) {
- testFailed("#4: Incorrect value of Date");
-}
-
-if (ConstructDate(1969, 12, 1, 0, 0) !== new Date(1969, 12, 1, 0, 0).valueOf()) {
- testFailed("#5: Incorrect value of Date");
-}
-
-if (ConstructDate(1970, 0, 1, 0, 0) !== new Date(1970, 0, 1, 0, 0).valueOf()) {
- testFailed("#6: Incorrect value of Date");
-}
-
-if (ConstructDate(1999, 11, 31, 23, 59) !== new Date(1999, 11, 31, 23, 59).valueOf()) {
- testFailed("#7: Incorrect value of Date");
-}
-
-if (ConstructDate(1999, 12, 1, 0, 0) !== new Date(1999, 12, 1, 0, 0).valueOf()) {
- testFailed("#8: Incorrect value of Date");
-}
-
-if (ConstructDate(2000, 0, 1, 0, 0) !== new Date(2000, 0, 1, 0, 0).valueOf()) {
- testFailed("#9: Incorrect value of Date");
-}
-
-if (ConstructDate(2099, 11, 31, 23, 59) !== new Date(2099, 11, 31, 23, 59).valueOf()) {
- testFailed("#10: Incorrect value of Date");
-}
-
-if (ConstructDate(2099, 12, 1, 0, 0) !== new Date(2099, 12, 1, 0, 0).valueOf()) {
- testFailed("#11: Incorrect value of Date");
-}
-
-if (ConstructDate(2100, 0, 1, 0, 0) !== new Date(2100, 0, 1, 0, 0).valueOf()) {
- testFailed("#12: Incorrect value of Date");
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T5htmlfromrev211348trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,522 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S15.9.3.1_A5_T5</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S15.9.3.1_A5_T5;
+ * @section: 15.9.3.1;
+ * @assertion: The [[Value]] property of the newly constructed object
+ * is set by following steps:
+ * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to
+ * TimeClip(UTC(Result(11)));
+ * @description: 6 arguments, (year, month, date, hours, minutes, seconds);
+ */
+
+var $DST_end_hour = 2;
+var $DST_end_minutes = 0;
+var $DST_end_month = 10;
+var $DST_end_sunday = 'first';
+var $DST_start_hour = 2;
+var $DST_start_minutes = 0;
+var $DST_start_month = 2;
+var $DST_start_sunday = 'first';
+var $LocalTZ = -8;
+function ToInteger(p) {
+ x = Number(p);
+
+ if(isNaN(x)){
+ return +0;
+ }
+
+ if((x === +0)
+ || (x === -0)
+ || (x === Number.POSITIVE_INFINITY)
+ || (x === Number.NEGATIVE_INFINITY)){
+ return x;
+ }
+
+ var sign = ( x < 0 ) ? -1 : 1;
+
+ return (sign*Math.floor(Math.abs(x)));
+}
+
+
+var HoursPerDay = 24;
+var MinutesPerHour = 60;
+var SecondsPerMinute = 60;
+
+var msPerDay = 86400000;
+var msPerSecond = 1000;
+var msPerMinute = 60000;
+var msPerHour = 3600000;
+
+var date_1899_end = -2208988800001;
+var date_1900_start = -2208988800000;
+var date_1969_end = -1;
+var date_1970_start = 0;
+var date_1999_end = 946684799999;
+var date_2000_start = 946684800000;
+var date_2099_end = 4102444799999;
+var date_2100_start = 4102444800000;
+
+
+//15.9.1.2 Day Number and Time within Day
+function Day(t) {
+ return Math.floor(t/msPerDay);
+}
+
+function TimeWithinDay(t) {
+ return t%msPerDay;
+}
+
+//15.9.1.3 Year Number
+function DaysInYear(y){
+ if(y%4 != 0) return 365;
+ if(y%4 == 0 && y%100 != 0) return 366;
+ if(y%100 == 0 && y%400 != 0) return 365;
+ if(y%400 == 0) return 366;
+}
+
+function DayFromYear(y) {
+ return (365*(y-1970)
+ + Math.floor((y-1969)/4)
+ - Math.floor((y-1901)/100)
+ + Math.floor((y-1601)/400));
+}
+
+function TimeFromYear(y){
+ return msPerDay*DayFromYear(y);
+}
+
+function YearFromTime(t) {
+ t = Number(t);
+ var sign = ( t < 0 ) ? -1 : 1;
+ var year = ( sign < 0 ) ? 1969 : 1970;
+
+ for(var time = 0;;year += sign){
+ time = TimeFromYear(year);
+
+ if(sign > 0 && time > t){
+ year -= sign;
+ break;
+ }
+ else if(sign < 0 && time <= t){
+ break;
+ }
+ };
+ return year;
+}
+
+function InLeapYear(t){
+ if(DaysInYear(YearFromTime(t)) == 365)
+ return 0;
+
+ if(DaysInYear(YearFromTime(t)) == 366)
+ return 1;
+}
+
+function DayWithinYear(t) {
+ return Day(t)-DayFromYear(YearFromTime(t));
+}
+
+//15.9.1.4 Month Number
+function MonthFromTime(t){
+ var day = DayWithinYear(t);
+ var leap = InLeapYear(t);
+
+ if((0 <= day) && (day < 31)) return 0;
+ if((31 <= day) && (day < (59+leap))) return 1;
+ if(((59+leap) <= day) && (day < (90+leap))) return 2;
+ if(((90+leap) <= day) && (day < (120+leap))) return 3;
+ if(((120+leap) <= day) && (day < (151+leap))) return 4;
+ if(((151+leap) <= day) && (day < (181+leap))) return 5;
+ if(((181+leap) <= day) && (day < (212+leap))) return 6;
+ if(((212+leap) <= day) && (day < (243+leap))) return 7;
+ if(((243+leap) <= day) && (day < (273+leap))) return 8;
+ if(((273+leap) <= day) && (day < (304+leap))) return 9;
+ if(((304+leap) <= day) && (day < (334+leap))) return 10;
+ if(((334+leap) <= day) && (day < (365+leap))) return 11;
+}
+
+//15.9.1.5 Date Number
+function DateFromTime(t) {
+ var day = DayWithinYear(t);
+ var month = MonthFromTime(t);
+ var leap = InLeapYear(t);
+
+ if(month == 0) return day+1;
+ if(month == 1) return day-30;
+ if(month == 2) return day-58-leap;
+ if(month == 3) return day-89-leap;
+ if(month == 4) return day-119-leap;
+ if(month == 5) return day-150-leap;
+ if(month == 6) return day-180-leap;
+ if(month == 7) return day-211-leap;
+ if(month == 8) return day-242-leap;
+ if(month == 9) return day-272-leap;
+ if(month == 10) return day-303-leap;
+ if(month == 11) return day-333-leap;
+}
+
+//15.9.1.6 Week Day
+function WeekDay(t) {
+ var weekday = (Day(t)+4)%7;
+ return (weekday < 0 ? 7+weekday : weekday);
+}
+
+//15.9.1.9 Daylight Saving Time Adjustment
+var LocalTZA = $LocalTZ*msPerHour;
+
+function DaysInMonth(m, leap) {
+ m = m%12;
+
+ //April, June, Sept, Nov
+ if(m == 3 || m == 5 || m == 8 || m == 10 ) {
+ return 30;
+ }
+
+ //Jan, March, May, July, Aug, Oct, Dec
+ if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
+ return 31;
+ }
+
+ //Feb
+ return 28+leap;
+}
+
+function GetSundayInMonth(t, m, count){
+ var year = YearFromTime(t);
+ var leap = InLeapYear(t);
+ var day = 0;
+
+ if(m >= 1) day += DaysInMonth(0, leap);
+ if(m >= 2) day += DaysInMonth(1, leap);
+ if(m >= 3) day += DaysInMonth(2, leap);
+ if(m >= 4) day += DaysInMonth(3, leap);
+ if(m >= 5) day += DaysInMonth(4, leap);
+ if(m >= 6) day += DaysInMonth(5, leap);
+ if(m >= 7) day += DaysInMonth(6, leap);
+ if(m >= 8) day += DaysInMonth(7, leap);
+ if(m >= 9) day += DaysInMonth(8, leap);
+ if(m >= 10) day += DaysInMonth(9, leap);
+ if(m >= 11) day += DaysInMonth(10, leap);
+
+ var month_start = TimeFromYear(year)+day*msPerDay;
+ var sunday = 0;
+
+ if(count === "last"){
+ for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay;
+ WeekDay(last_sunday)>0;
+ last_sunday -= msPerDay
+ ){};
+ sunday = last_sunday;
+ }
+ else {
+ for(var first_sunday = month_start;
+ WeekDay(first_sunday)>0;
+ first_sunday += msPerDay
+ ){};
+ sunday = first_sunday+7*msPerDay*(count-1);
+ }
+
+ return sunday;
+}
+
+function DaylightSavingTA(t) {
+ t = t-LocalTZA;
+
+ var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
+ +$DST_start_hour*msPerHour
+ +$DST_start_minutes*msPerMinute;
+
+ var k = new Date(DST_start);
+
+ var DST_end = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
+ +$DST_end_hour*msPerHour
+ +$DST_end_minutes*msPerMinute;
+
+ if ( t >= DST_start && t < DST_end ) {
+ return msPerHour;
+ } else {
+ return 0;
+ }
+}
+
+//15.9.1.9 Local Time
+function LocalTime(t){
+ return t+LocalTZA+DaylightSavingTA(t);
+}
+
+function UTC(t) {
+ return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
+}
+
+//15.9.1.10 Hours, Minutes, Second, and Milliseconds
+function HourFromTime(t){
+ return Math.floor(t/msPerHour)%HoursPerDay;
+}
+
+function MinFromTime(t){
+ return Math.floor(t/msPerMinute)%MinutesPerHour;
+}
+
+function SecFromTime(t){
+ return Math.floor(t/msPerSecond)%SecondsPerMinute;
+}
+
+function msFromTime(t){
+ return t%msPerSecond;
+}
+
+//15.9.1.11 MakeTime (hour, min, sec, ms)
+function MakeTime(hour, min, sec, ms){
+ if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
+ return Number.NaN;
+ }
+
+ hour = ToInteger(hour);
+ min = ToInteger(min);
+ sec = ToInteger(sec);
+ ms = ToInteger(ms);
+
+ return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
+}
+
+//15.9.1.12 MakeDay (year, month, date)
+function MakeDay(year, month, date) {
+ if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
+ return Number.NaN;
+ }
+
+ year = ToInteger(year);
+ month = ToInteger(month);
+ date = ToInteger(date );
+
+ var result5 = year + Math.floor(month/12);
+ var result6 = month%12;
+
+ var sign = ( year < 1970 ) ? -1 : 1;
+ var t = ( year < 1970 ) ? 1 : 0;
+ var y = ( year < 1970 ) ? 1969 : 1970;
+
+ if( sign == -1 ){
+ for ( y = 1969; y >= year; y += sign ) {
+ t += sign * DaysInYear(y)*msPerDay;
+ }
+ } else {
+ for ( y = 1970 ; y < year; y += sign ) {
+ t += sign * DaysInYear(y)*msPerDay;
+ }
+ }
+
+ var leap = 0;
+ for ( var m = 0; m < month; m++ ) {
+ //if year is changed, than we need to recalculate leep
+ leap = InLeapYear(t);
+ t += DaysInMonth(m, leap)*msPerDay;
+ }
+
+ if ( YearFromTime(t) != result5 ) {
+ return Number.NaN;
+ }
+ if ( MonthFromTime(t) != result6 ) {
+ return Number.NaN;
+ }
+ if ( DateFromTime(t) != 1 ) {
+ return Number.NaN;
+ }
+
+ return Day(t)+date-1;
+}
+
+//15.9.1.13 MakeDate (day, time)
+function MakeDate( day, time ) {
+ if(!isFinite(day) || !isFinite(time)) {
+ return Number.NaN;
+ }
+
+ return day*msPerDay+time;
+}
+
+//15.9.1.14 TimeClip (time)
+function TimeClip(time) {
+ if(!isFinite(time) || Math.abs(time) > 8.64e15){
+ return Number.NaN;
+ }
+
+ return ToInteger(time);
+}
+
+//Test Functions
+function ConstructDate(year, month, date, hours, minutes, seconds, ms){
+ /*
+ * 1. Call ToNumber(year)
+ * 2. Call ToNumber(month)
+ * 3. If date is supplied use ToNumber(date); else use 1
+ * 4. If hours is supplied use ToNumber(hours); else use 0
+ * 5. If minutes is supplied use ToNumber(minutes); else use 0
+ * 6. If seconds is supplied use ToNumber(seconds); else use 0
+ * 7. If ms is supplied use ToNumber(ms); else use 0
+ * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
+ */
+ var r1 = Number(year);
+ var r2 = Number(month);
+ var r3 = ((date && arguments.length > 2) ? Number(date) : 1);
+ var r4 = ((hours && arguments.length > 3) ? Number(hours) : 0);
+ var r5 = ((minutes && arguments.length > 4) ? Number(minutes) : 0);
+ var r6 = ((seconds && arguments.length > 5) ? Number(seconds) : 0);
+ var r7 = ((ms && arguments.length > 6) ? Number(ms) : 0);
+
+ var r8 = r1;
+
+ if(!isNaN(r1) && (0 <= ToInteger(r1)) && (ToInteger(r1) <= 99))
+ r8 = 1900+r1;
+
+ var r9 = MakeDay(r8, r2, r3);
+ var r10 = MakeTime(r4, r5, r6, r7);
+ var r11 = MakeDate(r9, r10);
+
+ return TimeClip(UTC(r11));
+}
+
+
+
+if (ConstructDate(1899, 11, 31, 23, 59, 59) !== new Date(1899, 11, 31, 23, 59, 59).valueOf()) {
+ testFailed("#1: Incorrect value of Date");
+}
+
+if (ConstructDate(1899, 12, 1, 0, 0, 0) !== new Date(1899, 12, 1, 0, 0, 0).valueOf()) {
+ testFailed("#2: Incorrect value of Date");
+}
+
+if (ConstructDate(1900, 0, 1, 0, 0, 0) !== new Date(1900, 0, 1, 0, 0, 0).valueOf()) {
+ testFailed("#3: Incorrect value of Date");
+}
+
+if (ConstructDate(1969, 11, 31, 23, 59, 59) !== new Date(1969, 11, 31, 23, 59, 59).valueOf()) {
+ testFailed("#4: Incorrect value of Date");
+}
+
+if (ConstructDate(1969, 12, 1, 0, 0, 0) !== new Date(1969, 12, 1, 0, 0, 0).valueOf()) {
+ testFailed("#5: Incorrect value of Date");
+}
+
+if (ConstructDate(1970, 0, 1, 0, 0, 0) !== new Date(1970, 0, 1, 0, 0, 0).valueOf()) {
+ testFailed("#6: Incorrect value of Date");
+}
+
+if (ConstructDate(1999, 11, 31, 23, 59, 59) !== new Date(1999, 11, 31, 23, 59, 59).valueOf()) {
+ testFailed("#7: Incorrect value of Date");
+}
+
+if (ConstructDate(1999, 12, 1, 0, 0, 0) !== new Date(1999, 12, 1, 0, 0, 0).valueOf()) {
+ testFailed("#8: Incorrect value of Date");
+}
+
+if (ConstructDate(2000, 0, 1, 0, 0, 0) !== new Date(2000, 0, 1, 0, 0, 0).valueOf()) {
+ testFailed("#9: Incorrect value of Date");
+}
+
+if (ConstructDate(2099, 11, 31, 23, 59, 59) !== new Date(2099, 11, 31, 23, 59, 59).valueOf()) {
+ testFailed("#10: Incorrect value of Date");
+}
+
+if (ConstructDate(2099, 12, 1, 0, 0, 0) !== new Date(2099, 12, 1, 0, 0, 0).valueOf()) {
+ testFailed("#11: Incorrect value of Date");
+}
+
+if (ConstructDate(2100, 0, 1, 0, 0, 0) !== new Date(2100, 0, 1, 0, 0, 0).valueOf()) {
+ testFailed("#12: Incorrect value of Date");
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,522 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S15.9.3.1_A5_T5</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S15.9.3.1_A5_T5;
- * @section: 15.9.3.1;
- * @assertion: The [[Value]] property of the newly constructed object
- * is set by following steps:
- * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to
- * TimeClip(UTC(Result(11)));
- * @description: 6 arguments, (year, month, date, hours, minutes, seconds);
- */
-
-var $DST_end_hour = 2;
-var $DST_end_minutes = 0;
-var $DST_end_month = 10;
-var $DST_end_sunday = 'first';
-var $DST_start_hour = 2;
-var $DST_start_minutes = 0;
-var $DST_start_month = 2;
-var $DST_start_sunday = 'first';
-var $LocalTZ = -8;
-function ToInteger(p) {
- x = Number(p);
-
- if(isNaN(x)){
- return +0;
- }
-
- if((x === +0)
- || (x === -0)
- || (x === Number.POSITIVE_INFINITY)
- || (x === Number.NEGATIVE_INFINITY)){
- return x;
- }
-
- var sign = ( x < 0 ) ? -1 : 1;
-
- return (sign*Math.floor(Math.abs(x)));
-}
-
-
-var HoursPerDay = 24;
-var MinutesPerHour = 60;
-var SecondsPerMinute = 60;
-
-var msPerDay = 86400000;
-var msPerSecond = 1000;
-var msPerMinute = 60000;
-var msPerHour = 3600000;
-
-var date_1899_end = -2208988800001;
-var date_1900_start = -2208988800000;
-var date_1969_end = -1;
-var date_1970_start = 0;
-var date_1999_end = 946684799999;
-var date_2000_start = 946684800000;
-var date_2099_end = 4102444799999;
-var date_2100_start = 4102444800000;
-
-
-//15.9.1.2 Day Number and Time within Day
-function Day(t) {
- return Math.floor(t/msPerDay);
-}
-
-function TimeWithinDay(t) {
- return t%msPerDay;
-}
-
-//15.9.1.3 Year Number
-function DaysInYear(y){
- if(y%4 != 0) return 365;
- if(y%4 == 0 && y%100 != 0) return 366;
- if(y%100 == 0 && y%400 != 0) return 365;
- if(y%400 == 0) return 366;
-}
-
-function DayFromYear(y) {
- return (365*(y-1970)
- + Math.floor((y-1969)/4)
- - Math.floor((y-1901)/100)
- + Math.floor((y-1601)/400));
-}
-
-function TimeFromYear(y){
- return msPerDay*DayFromYear(y);
-}
-
-function YearFromTime(t) {
- t = Number(t);
- var sign = ( t < 0 ) ? -1 : 1;
- var year = ( sign < 0 ) ? 1969 : 1970;
-
- for(var time = 0;;year += sign){
- time = TimeFromYear(year);
-
- if(sign > 0 && time > t){
- year -= sign;
- break;
- }
- else if(sign < 0 && time <= t){
- break;
- }
- };
- return year;
-}
-
-function InLeapYear(t){
- if(DaysInYear(YearFromTime(t)) == 365)
- return 0;
-
- if(DaysInYear(YearFromTime(t)) == 366)
- return 1;
-}
-
-function DayWithinYear(t) {
- return Day(t)-DayFromYear(YearFromTime(t));
-}
-
-//15.9.1.4 Month Number
-function MonthFromTime(t){
- var day = DayWithinYear(t);
- var leap = InLeapYear(t);
-
- if((0 <= day) && (day < 31)) return 0;
- if((31 <= day) && (day < (59+leap))) return 1;
- if(((59+leap) <= day) && (day < (90+leap))) return 2;
- if(((90+leap) <= day) && (day < (120+leap))) return 3;
- if(((120+leap) <= day) && (day < (151+leap))) return 4;
- if(((151+leap) <= day) && (day < (181+leap))) return 5;
- if(((181+leap) <= day) && (day < (212+leap))) return 6;
- if(((212+leap) <= day) && (day < (243+leap))) return 7;
- if(((243+leap) <= day) && (day < (273+leap))) return 8;
- if(((273+leap) <= day) && (day < (304+leap))) return 9;
- if(((304+leap) <= day) && (day < (334+leap))) return 10;
- if(((334+leap) <= day) && (day < (365+leap))) return 11;
-}
-
-//15.9.1.5 Date Number
-function DateFromTime(t) {
- var day = DayWithinYear(t);
- var month = MonthFromTime(t);
- var leap = InLeapYear(t);
-
- if(month == 0) return day+1;
- if(month == 1) return day-30;
- if(month == 2) return day-58-leap;
- if(month == 3) return day-89-leap;
- if(month == 4) return day-119-leap;
- if(month == 5) return day-150-leap;
- if(month == 6) return day-180-leap;
- if(month == 7) return day-211-leap;
- if(month == 8) return day-242-leap;
- if(month == 9) return day-272-leap;
- if(month == 10) return day-303-leap;
- if(month == 11) return day-333-leap;
-}
-
-//15.9.1.6 Week Day
-function WeekDay(t) {
- var weekday = (Day(t)+4)%7;
- return (weekday < 0 ? 7+weekday : weekday);
-}
-
-//15.9.1.9 Daylight Saving Time Adjustment
-var LocalTZA = $LocalTZ*msPerHour;
-
-function DaysInMonth(m, leap) {
- m = m%12;
-
- //April, June, Sept, Nov
- if(m == 3 || m == 5 || m == 8 || m == 10 ) {
- return 30;
- }
-
- //Jan, March, May, July, Aug, Oct, Dec
- if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
- return 31;
- }
-
- //Feb
- return 28+leap;
-}
-
-function GetSundayInMonth(t, m, count){
- var year = YearFromTime(t);
- var leap = InLeapYear(t);
- var day = 0;
-
- if(m >= 1) day += DaysInMonth(0, leap);
- if(m >= 2) day += DaysInMonth(1, leap);
- if(m >= 3) day += DaysInMonth(2, leap);
- if(m >= 4) day += DaysInMonth(3, leap);
- if(m >= 5) day += DaysInMonth(4, leap);
- if(m >= 6) day += DaysInMonth(5, leap);
- if(m >= 7) day += DaysInMonth(6, leap);
- if(m >= 8) day += DaysInMonth(7, leap);
- if(m >= 9) day += DaysInMonth(8, leap);
- if(m >= 10) day += DaysInMonth(9, leap);
- if(m >= 11) day += DaysInMonth(10, leap);
-
- var month_start = TimeFromYear(year)+day*msPerDay;
- var sunday = 0;
-
- if(count === "last"){
- for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay;
- WeekDay(last_sunday)>0;
- last_sunday -= msPerDay
- ){};
- sunday = last_sunday;
- }
- else {
- for(var first_sunday = month_start;
- WeekDay(first_sunday)>0;
- first_sunday += msPerDay
- ){};
- sunday = first_sunday+7*msPerDay*(count-1);
- }
-
- return sunday;
-}
-
-function DaylightSavingTA(t) {
- t = t-LocalTZA;
-
- var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
- +$DST_start_hour*msPerHour
- +$DST_start_minutes*msPerMinute;
-
- var k = new Date(DST_start);
-
- var DST_end = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
- +$DST_end_hour*msPerHour
- +$DST_end_minutes*msPerMinute;
-
- if ( t >= DST_start && t < DST_end ) {
- return msPerHour;
- } else {
- return 0;
- }
-}
-
-//15.9.1.9 Local Time
-function LocalTime(t){
- return t+LocalTZA+DaylightSavingTA(t);
-}
-
-function UTC(t) {
- return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
-}
-
-//15.9.1.10 Hours, Minutes, Second, and Milliseconds
-function HourFromTime(t){
- return Math.floor(t/msPerHour)%HoursPerDay;
-}
-
-function MinFromTime(t){
- return Math.floor(t/msPerMinute)%MinutesPerHour;
-}
-
-function SecFromTime(t){
- return Math.floor(t/msPerSecond)%SecondsPerMinute;
-}
-
-function msFromTime(t){
- return t%msPerSecond;
-}
-
-//15.9.1.11 MakeTime (hour, min, sec, ms)
-function MakeTime(hour, min, sec, ms){
- if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
- return Number.NaN;
- }
-
- hour = ToInteger(hour);
- min = ToInteger(min);
- sec = ToInteger(sec);
- ms = ToInteger(ms);
-
- return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
-}
-
-//15.9.1.12 MakeDay (year, month, date)
-function MakeDay(year, month, date) {
- if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
- return Number.NaN;
- }
-
- year = ToInteger(year);
- month = ToInteger(month);
- date = ToInteger(date );
-
- var result5 = year + Math.floor(month/12);
- var result6 = month%12;
-
- var sign = ( year < 1970 ) ? -1 : 1;
- var t = ( year < 1970 ) ? 1 : 0;
- var y = ( year < 1970 ) ? 1969 : 1970;
-
- if( sign == -1 ){
- for ( y = 1969; y >= year; y += sign ) {
- t += sign * DaysInYear(y)*msPerDay;
- }
- } else {
- for ( y = 1970 ; y < year; y += sign ) {
- t += sign * DaysInYear(y)*msPerDay;
- }
- }
-
- var leap = 0;
- for ( var m = 0; m < month; m++ ) {
- //if year is changed, than we need to recalculate leep
- leap = InLeapYear(t);
- t += DaysInMonth(m, leap)*msPerDay;
- }
-
- if ( YearFromTime(t) != result5 ) {
- return Number.NaN;
- }
- if ( MonthFromTime(t) != result6 ) {
- return Number.NaN;
- }
- if ( DateFromTime(t) != 1 ) {
- return Number.NaN;
- }
-
- return Day(t)+date-1;
-}
-
-//15.9.1.13 MakeDate (day, time)
-function MakeDate( day, time ) {
- if(!isFinite(day) || !isFinite(time)) {
- return Number.NaN;
- }
-
- return day*msPerDay+time;
-}
-
-//15.9.1.14 TimeClip (time)
-function TimeClip(time) {
- if(!isFinite(time) || Math.abs(time) > 8.64e15){
- return Number.NaN;
- }
-
- return ToInteger(time);
-}
-
-//Test Functions
-function ConstructDate(year, month, date, hours, minutes, seconds, ms){
- /*
- * 1. Call ToNumber(year)
- * 2. Call ToNumber(month)
- * 3. If date is supplied use ToNumber(date); else use 1
- * 4. If hours is supplied use ToNumber(hours); else use 0
- * 5. If minutes is supplied use ToNumber(minutes); else use 0
- * 6. If seconds is supplied use ToNumber(seconds); else use 0
- * 7. If ms is supplied use ToNumber(ms); else use 0
- * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
- */
- var r1 = Number(year);
- var r2 = Number(month);
- var r3 = ((date && arguments.length > 2) ? Number(date) : 1);
- var r4 = ((hours && arguments.length > 3) ? Number(hours) : 0);
- var r5 = ((minutes && arguments.length > 4) ? Number(minutes) : 0);
- var r6 = ((seconds && arguments.length > 5) ? Number(seconds) : 0);
- var r7 = ((ms && arguments.length > 6) ? Number(ms) : 0);
-
- var r8 = r1;
-
- if(!isNaN(r1) && (0 <= ToInteger(r1)) && (ToInteger(r1) <= 99))
- r8 = 1900+r1;
-
- var r9 = MakeDay(r8, r2, r3);
- var r10 = MakeTime(r4, r5, r6, r7);
- var r11 = MakeDate(r9, r10);
-
- return TimeClip(UTC(r11));
-}
-
-
-
-if (ConstructDate(1899, 11, 31, 23, 59, 59) !== new Date(1899, 11, 31, 23, 59, 59).valueOf()) {
- testFailed("#1: Incorrect value of Date");
-}
-
-if (ConstructDate(1899, 12, 1, 0, 0, 0) !== new Date(1899, 12, 1, 0, 0, 0).valueOf()) {
- testFailed("#2: Incorrect value of Date");
-}
-
-if (ConstructDate(1900, 0, 1, 0, 0, 0) !== new Date(1900, 0, 1, 0, 0, 0).valueOf()) {
- testFailed("#3: Incorrect value of Date");
-}
-
-if (ConstructDate(1969, 11, 31, 23, 59, 59) !== new Date(1969, 11, 31, 23, 59, 59).valueOf()) {
- testFailed("#4: Incorrect value of Date");
-}
-
-if (ConstructDate(1969, 12, 1, 0, 0, 0) !== new Date(1969, 12, 1, 0, 0, 0).valueOf()) {
- testFailed("#5: Incorrect value of Date");
-}
-
-if (ConstructDate(1970, 0, 1, 0, 0, 0) !== new Date(1970, 0, 1, 0, 0, 0).valueOf()) {
- testFailed("#6: Incorrect value of Date");
-}
-
-if (ConstructDate(1999, 11, 31, 23, 59, 59) !== new Date(1999, 11, 31, 23, 59, 59).valueOf()) {
- testFailed("#7: Incorrect value of Date");
-}
-
-if (ConstructDate(1999, 12, 1, 0, 0, 0) !== new Date(1999, 12, 1, 0, 0, 0).valueOf()) {
- testFailed("#8: Incorrect value of Date");
-}
-
-if (ConstructDate(2000, 0, 1, 0, 0, 0) !== new Date(2000, 0, 1, 0, 0, 0).valueOf()) {
- testFailed("#9: Incorrect value of Date");
-}
-
-if (ConstructDate(2099, 11, 31, 23, 59, 59) !== new Date(2099, 11, 31, 23, 59, 59).valueOf()) {
- testFailed("#10: Incorrect value of Date");
-}
-
-if (ConstructDate(2099, 12, 1, 0, 0, 0) !== new Date(2099, 12, 1, 0, 0, 0).valueOf()) {
- testFailed("#11: Incorrect value of Date");
-}
-
-if (ConstructDate(2100, 0, 1, 0, 0, 0) !== new Date(2100, 0, 1, 0, 0, 0).valueOf()) {
- testFailed("#12: Incorrect value of Date");
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T6htmlfromrev211348trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T6htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html (from rev 211348, trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,522 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S15.9.3.1_A5_T6</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S15.9.3.1_A5_T6;
+ * @section: 15.9.3.1;
+ * @assertion: The [[Value]] property of the newly constructed object
+ * is set by following steps:
+ * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to
+ * TimeClip(UTC(Result(11)));
+ * @description: 7 arguments, (year, month, date, hours, minutes, seconds, ms);
+ */
+
+var $DST_end_hour = 2;
+var $DST_end_minutes = 0;
+var $DST_end_month = 10;
+var $DST_end_sunday = 'first';
+var $DST_start_hour = 2;
+var $DST_start_minutes = 0;
+var $DST_start_month = 2;
+var $DST_start_sunday = 'first';
+var $LocalTZ = -8;
+function ToInteger(p) {
+ x = Number(p);
+
+ if(isNaN(x)){
+ return +0;
+ }
+
+ if((x === +0)
+ || (x === -0)
+ || (x === Number.POSITIVE_INFINITY)
+ || (x === Number.NEGATIVE_INFINITY)){
+ return x;
+ }
+
+ var sign = ( x < 0 ) ? -1 : 1;
+
+ return (sign*Math.floor(Math.abs(x)));
+}
+
+
+var HoursPerDay = 24;
+var MinutesPerHour = 60;
+var SecondsPerMinute = 60;
+
+var msPerDay = 86400000;
+var msPerSecond = 1000;
+var msPerMinute = 60000;
+var msPerHour = 3600000;
+
+var date_1899_end = -2208988800001;
+var date_1900_start = -2208988800000;
+var date_1969_end = -1;
+var date_1970_start = 0;
+var date_1999_end = 946684799999;
+var date_2000_start = 946684800000;
+var date_2099_end = 4102444799999;
+var date_2100_start = 4102444800000;
+
+
+//15.9.1.2 Day Number and Time within Day
+function Day(t) {
+ return Math.floor(t/msPerDay);
+}
+
+function TimeWithinDay(t) {
+ return t%msPerDay;
+}
+
+//15.9.1.3 Year Number
+function DaysInYear(y){
+ if(y%4 != 0) return 365;
+ if(y%4 == 0 && y%100 != 0) return 366;
+ if(y%100 == 0 && y%400 != 0) return 365;
+ if(y%400 == 0) return 366;
+}
+
+function DayFromYear(y) {
+ return (365*(y-1970)
+ + Math.floor((y-1969)/4)
+ - Math.floor((y-1901)/100)
+ + Math.floor((y-1601)/400));
+}
+
+function TimeFromYear(y){
+ return msPerDay*DayFromYear(y);
+}
+
+function YearFromTime(t) {
+ t = Number(t);
+ var sign = ( t < 0 ) ? -1 : 1;
+ var year = ( sign < 0 ) ? 1969 : 1970;
+
+ for(var time = 0;;year += sign){
+ time = TimeFromYear(year);
+
+ if(sign > 0 && time > t){
+ year -= sign;
+ break;
+ }
+ else if(sign < 0 && time <= t){
+ break;
+ }
+ };
+ return year;
+}
+
+function InLeapYear(t){
+ if(DaysInYear(YearFromTime(t)) == 365)
+ return 0;
+
+ if(DaysInYear(YearFromTime(t)) == 366)
+ return 1;
+}
+
+function DayWithinYear(t) {
+ return Day(t)-DayFromYear(YearFromTime(t));
+}
+
+//15.9.1.4 Month Number
+function MonthFromTime(t){
+ var day = DayWithinYear(t);
+ var leap = InLeapYear(t);
+
+ if((0 <= day) && (day < 31)) return 0;
+ if((31 <= day) && (day < (59+leap))) return 1;
+ if(((59+leap) <= day) && (day < (90+leap))) return 2;
+ if(((90+leap) <= day) && (day < (120+leap))) return 3;
+ if(((120+leap) <= day) && (day < (151+leap))) return 4;
+ if(((151+leap) <= day) && (day < (181+leap))) return 5;
+ if(((181+leap) <= day) && (day < (212+leap))) return 6;
+ if(((212+leap) <= day) && (day < (243+leap))) return 7;
+ if(((243+leap) <= day) && (day < (273+leap))) return 8;
+ if(((273+leap) <= day) && (day < (304+leap))) return 9;
+ if(((304+leap) <= day) && (day < (334+leap))) return 10;
+ if(((334+leap) <= day) && (day < (365+leap))) return 11;
+}
+
+//15.9.1.5 Date Number
+function DateFromTime(t) {
+ var day = DayWithinYear(t);
+ var month = MonthFromTime(t);
+ var leap = InLeapYear(t);
+
+ if(month == 0) return day+1;
+ if(month == 1) return day-30;
+ if(month == 2) return day-58-leap;
+ if(month == 3) return day-89-leap;
+ if(month == 4) return day-119-leap;
+ if(month == 5) return day-150-leap;
+ if(month == 6) return day-180-leap;
+ if(month == 7) return day-211-leap;
+ if(month == 8) return day-242-leap;
+ if(month == 9) return day-272-leap;
+ if(month == 10) return day-303-leap;
+ if(month == 11) return day-333-leap;
+}
+
+//15.9.1.6 Week Day
+function WeekDay(t) {
+ var weekday = (Day(t)+4)%7;
+ return (weekday < 0 ? 7+weekday : weekday);
+}
+
+//15.9.1.9 Daylight Saving Time Adjustment
+var LocalTZA = $LocalTZ*msPerHour;
+
+function DaysInMonth(m, leap) {
+ m = m%12;
+
+ //April, June, Sept, Nov
+ if(m == 3 || m == 5 || m == 8 || m == 10 ) {
+ return 30;
+ }
+
+ //Jan, March, May, July, Aug, Oct, Dec
+ if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
+ return 31;
+ }
+
+ //Feb
+ return 28+leap;
+}
+
+function GetSundayInMonth(t, m, count){
+ var year = YearFromTime(t);
+ var leap = InLeapYear(t);
+ var day = 0;
+
+ if(m >= 1) day += DaysInMonth(0, leap);
+ if(m >= 2) day += DaysInMonth(1, leap);
+ if(m >= 3) day += DaysInMonth(2, leap);
+ if(m >= 4) day += DaysInMonth(3, leap);
+ if(m >= 5) day += DaysInMonth(4, leap);
+ if(m >= 6) day += DaysInMonth(5, leap);
+ if(m >= 7) day += DaysInMonth(6, leap);
+ if(m >= 8) day += DaysInMonth(7, leap);
+ if(m >= 9) day += DaysInMonth(8, leap);
+ if(m >= 10) day += DaysInMonth(9, leap);
+ if(m >= 11) day += DaysInMonth(10, leap);
+
+ var month_start = TimeFromYear(year)+day*msPerDay;
+ var sunday = 0;
+
+ if(count === "last"){
+ for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay;
+ WeekDay(last_sunday)>0;
+ last_sunday -= msPerDay
+ ){};
+ sunday = last_sunday;
+ }
+ else {
+ for(var first_sunday = month_start;
+ WeekDay(first_sunday)>0;
+ first_sunday += msPerDay
+ ){};
+ sunday = first_sunday+7*msPerDay*(count-1);
+ }
+
+ return sunday;
+}
+
+function DaylightSavingTA(t) {
+ t = t-LocalTZA;
+
+ var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
+ +$DST_start_hour*msPerHour
+ +$DST_start_minutes*msPerMinute;
+
+ var k = new Date(DST_start);
+
+ var DST_end = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
+ +$DST_end_hour*msPerHour
+ +$DST_end_minutes*msPerMinute;
+
+ if ( t >= DST_start && t < DST_end ) {
+ return msPerHour;
+ } else {
+ return 0;
+ }
+}
+
+//15.9.1.9 Local Time
+function LocalTime(t){
+ return t+LocalTZA+DaylightSavingTA(t);
+}
+
+function UTC(t) {
+ return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
+}
+
+//15.9.1.10 Hours, Minutes, Second, and Milliseconds
+function HourFromTime(t){
+ return Math.floor(t/msPerHour)%HoursPerDay;
+}
+
+function MinFromTime(t){
+ return Math.floor(t/msPerMinute)%MinutesPerHour;
+}
+
+function SecFromTime(t){
+ return Math.floor(t/msPerSecond)%SecondsPerMinute;
+}
+
+function msFromTime(t){
+ return t%msPerSecond;
+}
+
+//15.9.1.11 MakeTime (hour, min, sec, ms)
+function MakeTime(hour, min, sec, ms){
+ if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
+ return Number.NaN;
+ }
+
+ hour = ToInteger(hour);
+ min = ToInteger(min);
+ sec = ToInteger(sec);
+ ms = ToInteger(ms);
+
+ return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
+}
+
+//15.9.1.12 MakeDay (year, month, date)
+function MakeDay(year, month, date) {
+ if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
+ return Number.NaN;
+ }
+
+ year = ToInteger(year);
+ month = ToInteger(month);
+ date = ToInteger(date );
+
+ var result5 = year + Math.floor(month/12);
+ var result6 = month%12;
+
+ var sign = ( year < 1970 ) ? -1 : 1;
+ var t = ( year < 1970 ) ? 1 : 0;
+ var y = ( year < 1970 ) ? 1969 : 1970;
+
+ if( sign == -1 ){
+ for ( y = 1969; y >= year; y += sign ) {
+ t += sign * DaysInYear(y)*msPerDay;
+ }
+ } else {
+ for ( y = 1970 ; y < year; y += sign ) {
+ t += sign * DaysInYear(y)*msPerDay;
+ }
+ }
+
+ var leap = 0;
+ for ( var m = 0; m < month; m++ ) {
+ //if year is changed, than we need to recalculate leep
+ leap = InLeapYear(t);
+ t += DaysInMonth(m, leap)*msPerDay;
+ }
+
+ if ( YearFromTime(t) != result5 ) {
+ return Number.NaN;
+ }
+ if ( MonthFromTime(t) != result6 ) {
+ return Number.NaN;
+ }
+ if ( DateFromTime(t) != 1 ) {
+ return Number.NaN;
+ }
+
+ return Day(t)+date-1;
+}
+
+//15.9.1.13 MakeDate (day, time)
+function MakeDate( day, time ) {
+ if(!isFinite(day) || !isFinite(time)) {
+ return Number.NaN;
+ }
+
+ return day*msPerDay+time;
+}
+
+//15.9.1.14 TimeClip (time)
+function TimeClip(time) {
+ if(!isFinite(time) || Math.abs(time) > 8.64e15){
+ return Number.NaN;
+ }
+
+ return ToInteger(time);
+}
+
+//Test Functions
+function ConstructDate(year, month, date, hours, minutes, seconds, ms){
+ /*
+ * 1. Call ToNumber(year)
+ * 2. Call ToNumber(month)
+ * 3. If date is supplied use ToNumber(date); else use 1
+ * 4. If hours is supplied use ToNumber(hours); else use 0
+ * 5. If minutes is supplied use ToNumber(minutes); else use 0
+ * 6. If seconds is supplied use ToNumber(seconds); else use 0
+ * 7. If ms is supplied use ToNumber(ms); else use 0
+ * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
+ */
+ var r1 = Number(year);
+ var r2 = Number(month);
+ var r3 = ((date && arguments.length > 2) ? Number(date) : 1);
+ var r4 = ((hours && arguments.length > 3) ? Number(hours) : 0);
+ var r5 = ((minutes && arguments.length > 4) ? Number(minutes) : 0);
+ var r6 = ((seconds && arguments.length > 5) ? Number(seconds) : 0);
+ var r7 = ((ms && arguments.length > 6) ? Number(ms) : 0);
+
+ var r8 = r1;
+
+ if(!isNaN(r1) && (0 <= ToInteger(r1)) && (ToInteger(r1) <= 99))
+ r8 = 1900+r1;
+
+ var r9 = MakeDay(r8, r2, r3);
+ var r10 = MakeTime(r4, r5, r6, r7);
+ var r11 = MakeDate(r9, r10);
+
+ return TimeClip(UTC(r11));
+}
+
+
+
+if (ConstructDate(1899, 11, 31, 23, 59, 59, 999) !== new Date(1899, 11, 31, 23, 59, 59, 999).valueOf()) {
+ testFailed("#1: Incorrect value of Date");
+}
+
+if (ConstructDate(1899, 12, 1, 0, 0, 0, 0) !== new Date(1899, 12, 1, 0, 0, 0, 0).valueOf()) {
+ testFailed("#2: Incorrect value of Date");
+}
+
+if (ConstructDate(1900, 0, 1, 0, 0, 0, 0) !== new Date(1900, 0, 1, 0, 0, 0, 0).valueOf()) {
+ testFailed("#3: Incorrect value of Date");
+}
+
+if (ConstructDate(1969, 11, 31, 23, 59, 59, 999) !== new Date(1969, 11, 31, 23, 59, 59, 999).valueOf()) {
+ testFailed("#4: Incorrect value of Date");
+}
+
+if (ConstructDate(1969, 12, 1, 0, 0, 0, 0) !== new Date(1969, 12, 1, 0, 0, 0, 0).valueOf()) {
+ testFailed("#5: Incorrect value of Date");
+}
+
+if (ConstructDate(1970, 0, 1, 0, 0, 0, 0) !== new Date(1970, 0, 1, 0, 0, 0, 0).valueOf()) {
+ testFailed("#6: Incorrect value of Date");
+}
+
+if (ConstructDate(1999, 11, 31, 23, 59, 59, 999) !== new Date(1999, 11, 31, 23, 59, 59, 999).valueOf()) {
+ testFailed("#7: Incorrect value of Date");
+}
+
+if (ConstructDate(1999, 12, 1, 0, 0, 0, 0) !== new Date(1999, 12, 1, 0, 0, 0, 0).valueOf()) {
+ testFailed("#8: Incorrect value of Date");
+}
+
+if (ConstructDate(2000, 0, 1, 0, 0, 0, 0) !== new Date(2000, 0, 1, 0, 0, 0, 0).valueOf()) {
+ testFailed("#9: Incorrect value of Date");
+}
+
+if (ConstructDate(2099, 11, 31, 23, 59, 59, 999) !== new Date(2099, 11, 31, 23, 59, 59, 999).valueOf()) {
+ testFailed("#10: Incorrect value of Date");
+}
+
+if (ConstructDate(2099, 12, 1, 0, 0, 0, 0) !== new Date(2099, 12, 1, 0, 0, 0, 0).valueOf()) {
+ testFailed("#11: Incorrect value of Date");
+}
+
+if (ConstructDate(2100, 0, 1, 0, 0, 0, 0) !== new Date(2100, 0, 1, 0, 0, 0, 0).valueOf()) {
+ testFailed("#12: Incorrect value of Date");
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T6htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,522 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S15.9.3.1_A5_T6</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S15.9.3.1_A5_T6;
- * @section: 15.9.3.1;
- * @assertion: The [[Value]] property of the newly constructed object
- * is set by following steps:
- * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to
- * TimeClip(UTC(Result(11)));
- * @description: 7 arguments, (year, month, date, hours, minutes, seconds, ms);
- */
-
-var $DST_end_hour = 2;
-var $DST_end_minutes = 0;
-var $DST_end_month = 10;
-var $DST_end_sunday = 'first';
-var $DST_start_hour = 2;
-var $DST_start_minutes = 0;
-var $DST_start_month = 2;
-var $DST_start_sunday = 'first';
-var $LocalTZ = -8;
-function ToInteger(p) {
- x = Number(p);
-
- if(isNaN(x)){
- return +0;
- }
-
- if((x === +0)
- || (x === -0)
- || (x === Number.POSITIVE_INFINITY)
- || (x === Number.NEGATIVE_INFINITY)){
- return x;
- }
-
- var sign = ( x < 0 ) ? -1 : 1;
-
- return (sign*Math.floor(Math.abs(x)));
-}
-
-
-var HoursPerDay = 24;
-var MinutesPerHour = 60;
-var SecondsPerMinute = 60;
-
-var msPerDay = 86400000;
-var msPerSecond = 1000;
-var msPerMinute = 60000;
-var msPerHour = 3600000;
-
-var date_1899_end = -2208988800001;
-var date_1900_start = -2208988800000;
-var date_1969_end = -1;
-var date_1970_start = 0;
-var date_1999_end = 946684799999;
-var date_2000_start = 946684800000;
-var date_2099_end = 4102444799999;
-var date_2100_start = 4102444800000;
-
-
-//15.9.1.2 Day Number and Time within Day
-function Day(t) {
- return Math.floor(t/msPerDay);
-}
-
-function TimeWithinDay(t) {
- return t%msPerDay;
-}
-
-//15.9.1.3 Year Number
-function DaysInYear(y){
- if(y%4 != 0) return 365;
- if(y%4 == 0 && y%100 != 0) return 366;
- if(y%100 == 0 && y%400 != 0) return 365;
- if(y%400 == 0) return 366;
-}
-
-function DayFromYear(y) {
- return (365*(y-1970)
- + Math.floor((y-1969)/4)
- - Math.floor((y-1901)/100)
- + Math.floor((y-1601)/400));
-}
-
-function TimeFromYear(y){
- return msPerDay*DayFromYear(y);
-}
-
-function YearFromTime(t) {
- t = Number(t);
- var sign = ( t < 0 ) ? -1 : 1;
- var year = ( sign < 0 ) ? 1969 : 1970;
-
- for(var time = 0;;year += sign){
- time = TimeFromYear(year);
-
- if(sign > 0 && time > t){
- year -= sign;
- break;
- }
- else if(sign < 0 && time <= t){
- break;
- }
- };
- return year;
-}
-
-function InLeapYear(t){
- if(DaysInYear(YearFromTime(t)) == 365)
- return 0;
-
- if(DaysInYear(YearFromTime(t)) == 366)
- return 1;
-}
-
-function DayWithinYear(t) {
- return Day(t)-DayFromYear(YearFromTime(t));
-}
-
-//15.9.1.4 Month Number
-function MonthFromTime(t){
- var day = DayWithinYear(t);
- var leap = InLeapYear(t);
-
- if((0 <= day) && (day < 31)) return 0;
- if((31 <= day) && (day < (59+leap))) return 1;
- if(((59+leap) <= day) && (day < (90+leap))) return 2;
- if(((90+leap) <= day) && (day < (120+leap))) return 3;
- if(((120+leap) <= day) && (day < (151+leap))) return 4;
- if(((151+leap) <= day) && (day < (181+leap))) return 5;
- if(((181+leap) <= day) && (day < (212+leap))) return 6;
- if(((212+leap) <= day) && (day < (243+leap))) return 7;
- if(((243+leap) <= day) && (day < (273+leap))) return 8;
- if(((273+leap) <= day) && (day < (304+leap))) return 9;
- if(((304+leap) <= day) && (day < (334+leap))) return 10;
- if(((334+leap) <= day) && (day < (365+leap))) return 11;
-}
-
-//15.9.1.5 Date Number
-function DateFromTime(t) {
- var day = DayWithinYear(t);
- var month = MonthFromTime(t);
- var leap = InLeapYear(t);
-
- if(month == 0) return day+1;
- if(month == 1) return day-30;
- if(month == 2) return day-58-leap;
- if(month == 3) return day-89-leap;
- if(month == 4) return day-119-leap;
- if(month == 5) return day-150-leap;
- if(month == 6) return day-180-leap;
- if(month == 7) return day-211-leap;
- if(month == 8) return day-242-leap;
- if(month == 9) return day-272-leap;
- if(month == 10) return day-303-leap;
- if(month == 11) return day-333-leap;
-}
-
-//15.9.1.6 Week Day
-function WeekDay(t) {
- var weekday = (Day(t)+4)%7;
- return (weekday < 0 ? 7+weekday : weekday);
-}
-
-//15.9.1.9 Daylight Saving Time Adjustment
-var LocalTZA = $LocalTZ*msPerHour;
-
-function DaysInMonth(m, leap) {
- m = m%12;
-
- //April, June, Sept, Nov
- if(m == 3 || m == 5 || m == 8 || m == 10 ) {
- return 30;
- }
-
- //Jan, March, May, July, Aug, Oct, Dec
- if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
- return 31;
- }
-
- //Feb
- return 28+leap;
-}
-
-function GetSundayInMonth(t, m, count){
- var year = YearFromTime(t);
- var leap = InLeapYear(t);
- var day = 0;
-
- if(m >= 1) day += DaysInMonth(0, leap);
- if(m >= 2) day += DaysInMonth(1, leap);
- if(m >= 3) day += DaysInMonth(2, leap);
- if(m >= 4) day += DaysInMonth(3, leap);
- if(m >= 5) day += DaysInMonth(4, leap);
- if(m >= 6) day += DaysInMonth(5, leap);
- if(m >= 7) day += DaysInMonth(6, leap);
- if(m >= 8) day += DaysInMonth(7, leap);
- if(m >= 9) day += DaysInMonth(8, leap);
- if(m >= 10) day += DaysInMonth(9, leap);
- if(m >= 11) day += DaysInMonth(10, leap);
-
- var month_start = TimeFromYear(year)+day*msPerDay;
- var sunday = 0;
-
- if(count === "last"){
- for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay;
- WeekDay(last_sunday)>0;
- last_sunday -= msPerDay
- ){};
- sunday = last_sunday;
- }
- else {
- for(var first_sunday = month_start;
- WeekDay(first_sunday)>0;
- first_sunday += msPerDay
- ){};
- sunday = first_sunday+7*msPerDay*(count-1);
- }
-
- return sunday;
-}
-
-function DaylightSavingTA(t) {
- t = t-LocalTZA;
-
- var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
- +$DST_start_hour*msPerHour
- +$DST_start_minutes*msPerMinute;
-
- var k = new Date(DST_start);
-
- var DST_end = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
- +$DST_end_hour*msPerHour
- +$DST_end_minutes*msPerMinute;
-
- if ( t >= DST_start && t < DST_end ) {
- return msPerHour;
- } else {
- return 0;
- }
-}
-
-//15.9.1.9 Local Time
-function LocalTime(t){
- return t+LocalTZA+DaylightSavingTA(t);
-}
-
-function UTC(t) {
- return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
-}
-
-//15.9.1.10 Hours, Minutes, Second, and Milliseconds
-function HourFromTime(t){
- return Math.floor(t/msPerHour)%HoursPerDay;
-}
-
-function MinFromTime(t){
- return Math.floor(t/msPerMinute)%MinutesPerHour;
-}
-
-function SecFromTime(t){
- return Math.floor(t/msPerSecond)%SecondsPerMinute;
-}
-
-function msFromTime(t){
- return t%msPerSecond;
-}
-
-//15.9.1.11 MakeTime (hour, min, sec, ms)
-function MakeTime(hour, min, sec, ms){
- if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
- return Number.NaN;
- }
-
- hour = ToInteger(hour);
- min = ToInteger(min);
- sec = ToInteger(sec);
- ms = ToInteger(ms);
-
- return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
-}
-
-//15.9.1.12 MakeDay (year, month, date)
-function MakeDay(year, month, date) {
- if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
- return Number.NaN;
- }
-
- year = ToInteger(year);
- month = ToInteger(month);
- date = ToInteger(date );
-
- var result5 = year + Math.floor(month/12);
- var result6 = month%12;
-
- var sign = ( year < 1970 ) ? -1 : 1;
- var t = ( year < 1970 ) ? 1 : 0;
- var y = ( year < 1970 ) ? 1969 : 1970;
-
- if( sign == -1 ){
- for ( y = 1969; y >= year; y += sign ) {
- t += sign * DaysInYear(y)*msPerDay;
- }
- } else {
- for ( y = 1970 ; y < year; y += sign ) {
- t += sign * DaysInYear(y)*msPerDay;
- }
- }
-
- var leap = 0;
- for ( var m = 0; m < month; m++ ) {
- //if year is changed, than we need to recalculate leep
- leap = InLeapYear(t);
- t += DaysInMonth(m, leap)*msPerDay;
- }
-
- if ( YearFromTime(t) != result5 ) {
- return Number.NaN;
- }
- if ( MonthFromTime(t) != result6 ) {
- return Number.NaN;
- }
- if ( DateFromTime(t) != 1 ) {
- return Number.NaN;
- }
-
- return Day(t)+date-1;
-}
-
-//15.9.1.13 MakeDate (day, time)
-function MakeDate( day, time ) {
- if(!isFinite(day) || !isFinite(time)) {
- return Number.NaN;
- }
-
- return day*msPerDay+time;
-}
-
-//15.9.1.14 TimeClip (time)
-function TimeClip(time) {
- if(!isFinite(time) || Math.abs(time) > 8.64e15){
- return Number.NaN;
- }
-
- return ToInteger(time);
-}
-
-//Test Functions
-function ConstructDate(year, month, date, hours, minutes, seconds, ms){
- /*
- * 1. Call ToNumber(year)
- * 2. Call ToNumber(month)
- * 3. If date is supplied use ToNumber(date); else use 1
- * 4. If hours is supplied use ToNumber(hours); else use 0
- * 5. If minutes is supplied use ToNumber(minutes); else use 0
- * 6. If seconds is supplied use ToNumber(seconds); else use 0
- * 7. If ms is supplied use ToNumber(ms); else use 0
- * 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
- */
- var r1 = Number(year);
- var r2 = Number(month);
- var r3 = ((date && arguments.length > 2) ? Number(date) : 1);
- var r4 = ((hours && arguments.length > 3) ? Number(hours) : 0);
- var r5 = ((minutes && arguments.length > 4) ? Number(minutes) : 0);
- var r6 = ((seconds && arguments.length > 5) ? Number(seconds) : 0);
- var r7 = ((ms && arguments.length > 6) ? Number(ms) : 0);
-
- var r8 = r1;
-
- if(!isNaN(r1) && (0 <= ToInteger(r1)) && (ToInteger(r1) <= 99))
- r8 = 1900+r1;
-
- var r9 = MakeDay(r8, r2, r3);
- var r10 = MakeTime(r4, r5, r6, r7);
- var r11 = MakeDate(r9, r10);
-
- return TimeClip(UTC(r11));
-}
-
-
-
-if (ConstructDate(1899, 11, 31, 23, 59, 59, 999) !== new Date(1899, 11, 31, 23, 59, 59, 999).valueOf()) {
- testFailed("#1: Incorrect value of Date");
-}
-
-if (ConstructDate(1899, 12, 1, 0, 0, 0, 0) !== new Date(1899, 12, 1, 0, 0, 0, 0).valueOf()) {
- testFailed("#2: Incorrect value of Date");
-}
-
-if (ConstructDate(1900, 0, 1, 0, 0, 0, 0) !== new Date(1900, 0, 1, 0, 0, 0, 0).valueOf()) {
- testFailed("#3: Incorrect value of Date");
-}
-
-if (ConstructDate(1969, 11, 31, 23, 59, 59, 999) !== new Date(1969, 11, 31, 23, 59, 59, 999).valueOf()) {
- testFailed("#4: Incorrect value of Date");
-}
-
-if (ConstructDate(1969, 12, 1, 0, 0, 0, 0) !== new Date(1969, 12, 1, 0, 0, 0, 0).valueOf()) {
- testFailed("#5: Incorrect value of Date");
-}
-
-if (ConstructDate(1970, 0, 1, 0, 0, 0, 0) !== new Date(1970, 0, 1, 0, 0, 0, 0).valueOf()) {
- testFailed("#6: Incorrect value of Date");
-}
-
-if (ConstructDate(1999, 11, 31, 23, 59, 59, 999) !== new Date(1999, 11, 31, 23, 59, 59, 999).valueOf()) {
- testFailed("#7: Incorrect value of Date");
-}
-
-if (ConstructDate(1999, 12, 1, 0, 0, 0, 0) !== new Date(1999, 12, 1, 0, 0, 0, 0).valueOf()) {
- testFailed("#8: Incorrect value of Date");
-}
-
-if (ConstructDate(2000, 0, 1, 0, 0, 0, 0) !== new Date(2000, 0, 1, 0, 0, 0, 0).valueOf()) {
- testFailed("#9: Incorrect value of Date");
-}
-
-if (ConstructDate(2099, 11, 31, 23, 59, 59, 999) !== new Date(2099, 11, 31, 23, 59, 59, 999).valueOf()) {
- testFailed("#10: Incorrect value of Date");
-}
-
-if (ConstructDate(2099, 12, 1, 0, 0, 0, 0) !== new Date(2099, 12, 1, 0, 0, 0, 0).valueOf()) {
- testFailed("#11: Incorrect value of Date");
-}
-
-if (ConstructDate(2100, 0, 1, 0, 0, 0, 0) !== new Date(2100, 0, 1, 0, 0, 0, 0).valueOf()) {
- testFailed("#12: Incorrect value of Date");
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_218S76_A11_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_218S76_A11_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,144 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S7.6_A1.1_T5</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S7.6_A1.1_T5;
+ * @section: 7.6;
+ * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories "Lu", "Ll", "Lt", "Lm", "Lo", "Nl");
+ * @description: UnicodeLetter :: Other letter (Lo).
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0
x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI < Lo.length; indexI++) {
+ for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
+ try {
+ var identifier = String.fromCharCode(indexJ);
+ var hex = decimalToHexString(indexJ);
+ eval("var " + identifier + "=1");
+ if (eval(identifier + "===1") !== true) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ } catch (e) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ count++;
+ }
+}
+
+if (errorCount > 0) {
+ testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+ n = Number(n);
+ var h = "";
+ for (var i = 3; i >= 0; i--) {
+ if (n >= Math.pow(16, i)) {
+ var t = Math.floor(n / Math.pow(16, i));
+ n -= t * Math.pow(16, i);
+ if ( t >= 10 ) {
+ if ( t == 10 ) { h += "A"; }
+ if ( t == 11 ) { h += "B"; }
+ if ( t == 12 ) { h += "C"; }
+ if ( t == 13 ) { h += "D"; }
+ if ( t == 14 ) { h += "E"; }
+ if ( t == 15 ) { h += "F"; }
+ } else {
+ h += String(t);
+ }
+ } else {
+ h += "0";
+ }
+ }
+ return h;
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_218S76_A11_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,144 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S7.6_A1.1_T5</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S7.6_A1.1_T5;
- * @section: 7.6;
- * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories "Lu", "Ll", "Lt", "Lm", "Lo", "Nl");
- * @description: UnicodeLetter :: Other letter (Lo).
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0
x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI < Lo.length; indexI++) {
- for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
- try {
- var identifier = String.fromCharCode(indexJ);
- var hex = decimalToHexString(indexJ);
- eval("var " + identifier + "=1");
- if (eval(identifier + "===1") !== true) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- } catch (e) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- count++;
- }
-}
-
-if (errorCount > 0) {
- testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
- n = Number(n);
- var h = "";
- for (var i = 3; i >= 0; i--) {
- if (n >= Math.pow(16, i)) {
- var t = Math.floor(n / Math.pow(16, i));
- n -= t * Math.pow(16, i);
- if ( t >= 10 ) {
- if ( t == 10 ) { h += "A"; }
- if ( t == 11 ) { h += "B"; }
- if ( t == 12 ) { h += "C"; }
- if ( t == 13 ) { h += "D"; }
- if ( t == 14 ) { h += "E"; }
- if ( t == 15 ) { h += "F"; }
- } else {
- h += String(t);
- }
- } else {
- h += "0";
- }
- }
- return h;
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_218S76_A31htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_218S76_A31htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,235 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S7.6_A3.1</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S7.6_A3.1;
+ * @section: 7.6;
+ * @assertion: IdentifierName must contain only IdentifierPart character;
+ * @description: Complex test with eval;
+*/
+
+//CHECK
+Lu = [[0x0041, 0x005A], [0x00C0, 0x00D6], [0x00D8, 0x00DE], [0x0100, 0x0100], [0x0102, 0x0102], [0x0104, 0x0104], [0x0106, 0x0106], [0x0108, 0x0108], [0x010A, 0x010A], [0x010C, 0x010C], [0x010E, 0x010E], [0x0110, 0x0110], [0x0112, 0x0112], [0x0114, 0x0114], [0x0116, 0x0116], [0x0118, 0x0118], [0x011A, 0x011A], [0x011C, 0x011C], [0x011E, 0x011E], [0x0120, 0x0120], [0x0122, 0x0122], [0x0124, 0x0124], [0x0126, 0x0126], [0x0128, 0x0128], [0x012A, 0x012A], [0x012C, 0x012C], [0x012E, 0x012E], [0x0130, 0x0130], [0x0132, 0x0132], [0x0134, 0x0134], [0x0136, 0x0136], [0x0139, 0x0139], [0x013B, 0x013B], [0x013D, 0x013D], [0x013F, 0x013F], [0x0141, 0x0141], [0x0143, 0x0143], [0x0145, 0x0145], [0x0147, 0x0147], [0x014A, 0x014A], [0x014C, 0x014C], [0x014E, 0x014E], [0x0150, 0x0150], [0x0152, 0x0152], [0x0154, 0x0154], [0x0156, 0x0156], [0x0158, 0x0158], [0x015A, 0x015A], [0x015C, 0x015C], [0x015E, 0x015E], [0x0160, 0x0160], [0x0162, 0x0162], [0x0164, 0x0164], [0x0166, 0x0166], [0x0168, 0x
0168], [0x016A, 0x016A], [0x016C, 0x016C], [0x016E, 0x016E], [0x0170, 0x0170], [0x0172, 0x0172], [0x0174, 0x0174], [0x0176, 0x0176], [0x0178, 0x0179], [0x017B, 0x017B], [0x017D, 0x017D], [0x0181, 0x0182], [0x0184, 0x0184], [0x0186, 0x0187], [0x0189, 0x018B], [0x018E, 0x0191], [0x0193, 0x0194], [0x0196, 0x0198], [0x019C, 0x019D], [0x019F, 0x01A0], [0x01A2, 0x01A2], [0x01A4, 0x01A4], [0x01A6, 0x01A7], [0x01A9, 0x01A9], [0x01AC, 0x01AC], [0x01AE, 0x01AF], [0x01B1, 0x01B3], [0x01B5, 0x01B5], [0x01B7, 0x01B8], [0x01BC, 0x01BC], [0x01C4, 0x01C4], [0x01C7, 0x01C7], [0x01CA, 0x01CA], [0x01CD, 0x01CD], [0x01CF, 0x01CF], [0x01D1, 0x01D1], [0x01D3, 0x01D3], [0x01D5, 0x01D5], [0x01D7, 0x01D7], [0x01D9, 0x01D9], [0x01DB, 0x01DB], [0x01DE, 0x01DE], [0x01E0, 0x01E0], [0x01E2, 0x01E2], [0x01E4, 0x01E4], [0x01E6, 0x01E6], [0x01E8, 0x01E8], [0x01EA, 0x01EA], [0x01EC, 0x01EC], [0x01EE, 0x01EE], [0x01F1, 0x01F1], [0x01F4, 0x01F4], [0x01FA, 0x01FA], [0x01FC, 0x01FC], [0x01FE, 0x01FE], [0x0200, 0
x0200], [0x0202, 0x0202], [0x0204, 0x0204], [0x0206, 0x0206], [0x0208, 0x0208], [0x020A, 0x020A], [0x020C, 0x020C], [0x020E, 0x020E], [0x0210, 0x0210], [0x0212, 0x0212], [0x0214, 0x0214], [0x0216, 0x0216], [0x0386, 0x0386], [0x0388, 0x038A], [0x038C, 0x038C], [0x038E, 0x038F], [0x0391, 0x03A1], [0x03A3, 0x03AB], [0x03D2, 0x03D4], [0x03DA, 0x03DA], [0x03DC, 0x03DC], [0x03DE, 0x03DE], [0x03E0, 0x03E0], [0x03E2, 0x03E2], [0x03E4, 0x03E4], [0x03E6, 0x03E6], [0x03E8, 0x03E8], [0x03EA, 0x03EA], [0x03EC, 0x03EC], [0x03EE, 0x03EE], [0x0401, 0x040C], [0x040E, 0x042F], [0x0460, 0x0460], [0x0462, 0x0462], [0x0464, 0x0464], [0x0466, 0x0466], [0x0468, 0x0468], [0x046A, 0x046A], [0x046C, 0x046C], [0x046E, 0x046E], [0x0470, 0x0470], [0x0472, 0x0472], [0x0474, 0x0474], [0x0476, 0x0476], [0x0478, 0x0478], [0x047A, 0x047A], [0x047C, 0x047C], [0x047E, 0x047E], [0x0480, 0x0480], [0x0490, 0x0490], [0x0492, 0x0492], [0x0494, 0x0494], [0x0496, 0x0496], [0x0498, 0x0498], [0x049A, 0x049A], [0x049C,
0x049C], [0x049E, 0x049E], [0x04A0, 0x04A0], [0x04A2, 0x04A2], [0x04A4, 0x04A4], [0x04A6, 0x04A6], [0x04A8, 0x04A8], [0x04AA, 0x04AA], [0x04AC, 0x04AC], [0x04AE, 0x04AE], [0x04B0, 0x04B0], [0x04B2, 0x04B2], [0x04B4, 0x04B4], [0x04B6, 0x04B6], [0x04B8, 0x04B8], [0x04BA, 0x04BA], [0x04BC, 0x04BC], [0x04BE, 0x04BE], [0x04C1, 0x04C1], [0x04C3, 0x04C3], [0x04C7, 0x04C7], [0x04CB, 0x04CB], [0x04D0, 0x04D0], [0x04D2, 0x04D2], [0x04D4, 0x04D4], [0x04D6, 0x04D6], [0x04D8, 0x04D8], [0x04DA, 0x04DA], [0x04DC, 0x04DC], [0x04DE, 0x04DE], [0x04E0, 0x04E0], [0x04E2, 0x04E2], [0x04E4, 0x04E4], [0x04E6, 0x04E6], [0x04E8, 0x04E8], [0x04EA, 0x04EA], [0x04EE, 0x04EE], [0x04F0, 0x04F0], [0x04F2, 0x04F2], [0x04F4, 0x04F4], [0x04F8, 0x04F8], [0x0531, 0x0556], [0x10A0, 0x10C5], [0x1E00, 0x1E00], [0x1E02, 0x1E02], [0x1E04, 0x1E04], [0x1E06, 0x1E06], [0x1E08, 0x1E08], [0x1E0A, 0x1E0A], [0x1E0C, 0x1E0C], [0x1E0E, 0x1E0E], [0x1E10, 0x1E10], [0x1E12, 0x1E12], [0x1E14, 0x1E14], [0x1E16, 0x1E16], [0x1E18,
0x1E18], [0x1E1A, 0x1E1A], [0x1E1C, 0x1E1C], [0x1E1E, 0x1E1E], [0x1E20, 0x1E20], [0x1E22, 0x1E22], [0x1E24, 0x1E24], [0x1E26, 0x1E26], [0x1E28, 0x1E28], [0x1E2A, 0x1E2A], [0x1E2C, 0x1E2C], [0x1E2E, 0x1E2E], [0x1E30, 0x1E30], [0x1E32, 0x1E32], [0x1E34, 0x1E34], [0x1E36, 0x1E36], [0x1E38, 0x1E38], [0x1E3A, 0x1E3A], [0x1E3C, 0x1E3C], [0x1E3E, 0x1E3E], [0x1E40, 0x1E40], [0x1E42, 0x1E42], [0x1E44, 0x1E44], [0x1E46, 0x1E46], [0x1E48, 0x1E48], [0x1E4A, 0x1E4A], [0x1E4C, 0x1E4C], [0x1E4E, 0x1E4E], [0x1E50, 0x1E50], [0x1E52, 0x1E52], [0x1E54, 0x1E54], [0x1E56, 0x1E56], [0x1E58, 0x1E58], [0x1E5A, 0x1E5A], [0x1E5C, 0x1E5C], [0x1E5E, 0x1E5E], [0x1E60, 0x1E60], [0x1E62, 0x1E62], [0x1E64, 0x1E64], [0x1E66, 0x1E66], [0x1E68, 0x1E68], [0x1E6A, 0x1E6A], [0x1E6C, 0x1E6C], [0x1E6E, 0x1E6E], [0x1E70, 0x1E70], [0x1E72, 0x1E72], [0x1E74, 0x1E74], [0x1E76, 0x1E76], [0x1E78, 0x1E78], [0x1E7A, 0x1E7A], [0x1E7C, 0x1E7C], [0x1E7E, 0x1E7E], [0x1E80, 0x1E80], [0x1E82, 0x1E82], [0x1E84, 0x1E84], [0x1E86
, 0x1E86], [0x1E88, 0x1E88], [0x1E8A, 0x1E8A], [0x1E8C, 0x1E8C], [0x1E8E, 0x1E8E], [0x1E90, 0x1E90], [0x1E92, 0x1E92], [0x1E94, 0x1E94], [0x1EA0, 0x1EA0], [0x1EA2, 0x1EA2], [0x1EA4, 0x1EA4], [0x1EA6, 0x1EA6], [0x1EA8, 0x1EA8], [0x1EAA, 0x1EAA], [0x1EAC, 0x1EAC], [0x1EAE, 0x1EAE], [0x1EB0, 0x1EB0], [0x1EB2, 0x1EB2], [0x1EB4, 0x1EB4], [0x1EB6, 0x1EB6], [0x1EB8, 0x1EB8], [0x1EBA, 0x1EBA], [0x1EBC, 0x1EBC], [0x1EBE, 0x1EBE], [0x1EC0, 0x1EC0], [0x1EC2, 0x1EC2], [0x1EC4, 0x1EC4], [0x1EC6, 0x1EC6], [0x1EC8, 0x1EC8], [0x1ECA, 0x1ECA], [0x1ECC, 0x1ECC], [0x1ECE, 0x1ECE], [0x1ED0, 0x1ED0], [0x1ED2, 0x1ED2], [0x1ED4, 0x1ED4], [0x1ED6, 0x1ED6], [0x1ED8, 0x1ED8], [0x1EDA, 0x1EDA], [0x1EDC, 0x1EDC], [0x1EDE, 0x1EDE], [0x1EE0, 0x1EE0], [0x1EE2, 0x1EE2], [0x1EE4, 0x1EE4], [0x1EE6, 0x1EE6], [0x1EE8, 0x1EE8], [0x1EEA, 0x1EEA], [0x1EEC, 0x1EEC], [0x1EEE, 0x1EEE], [0x1EF0, 0x1EF0], [0x1EF2, 0x1EF2], [0x1EF4, 0x1EF4], [0x1EF6, 0x1EF6], [0x1EF8, 0x1EF8], [0x1F08, 0x1F0F], [0x1F18, 0x1F1D], [0x1F2
8, 0x1F2F], [0x1F38, 0x1F3F], [0x1F48, 0x1F4D], [0x1F59, 0x1F59], [0x1F5B, 0x1F5B], [0x1F5D, 0x1F5D], [0x1F5F, 0x1F5F], [0x1F68, 0x1F6F], [0x1F88, 0x1F8F], [0x1F98, 0x1F9F], [0x1FA8, 0x1FAF], [0x1FB8, 0x1FBC], [0x1FC8, 0x1FCC], [0x1FD8, 0x1FDB], [0x1FE8, 0x1FEC], [0x1FF8, 0x1FFC], [0x2102, 0x2102], [0x2107, 0x2107], [0x210B, 0x210D], [0x2110, 0x2112], [0x2115, 0x2115], [0x2119, 0x211D], [0x2124, 0x2124], [0x2126, 0x2126], [0x2128, 0x2128], [0x212A, 0x212D], [0x2130, 0x2131], [0x2133, 0x2133], [0xFF21, 0xFF3A]];
+Ll = [[0x0061, 0x007A], [0x00AA, 0x00AA], [0x00B5, 0x00B5], [0x00BA, 0x00BA], [0x00DF, 0x00F6], [0x00F8, 0x00FF], [0x0101, 0x0101], [0x0103, 0x0103], [0x0105, 0x0105], [0x0107, 0x0107], [0x0109, 0x0109], [0x010B, 0x010B], [0x010D, 0x010D], [0x010F, 0x010F], [0x0111, 0x0111], [0x0113, 0x0113], [0x0115, 0x0115], [0x0117, 0x0117], [0x0119, 0x0119], [0x011B, 0x011B], [0x011D, 0x011D], [0x011F, 0x011F], [0x0121, 0x0121], [0x0123, 0x0123], [0x0125, 0x0125], [0x0127, 0x0127], [0x0129, 0x0129], [0x012B, 0x012B], [0x012D, 0x012D], [0x012F, 0x012F], [0x0131, 0x0131], [0x0133, 0x0133], [0x0135, 0x0135], [0x0137, 0x0138], [0x013A, 0x013A], [0x013C, 0x013C], [0x013E, 0x013E], [0x0140, 0x0140], [0x0142, 0x0142], [0x0144, 0x0144], [0x0146, 0x0146], [0x0148, 0x0149], [0x014B, 0x014B], [0x014D, 0x014D], [0x014F, 0x014F], [0x0151, 0x0151], [0x0153, 0x0153], [0x0155, 0x0155], [0x0157, 0x0157], [0x0159, 0x0159], [0x015B, 0x015B], [0x015D, 0x015D], [0x015F, 0x015F], [0x0161, 0x0161], [0x0163, 0x
0163], [0x0165, 0x0165], [0x0167, 0x0167], [0x0169, 0x0169], [0x016B, 0x016B], [0x016D, 0x016D], [0x016F, 0x016F], [0x0171, 0x0171], [0x0173, 0x0173], [0x0175, 0x0175], [0x0177, 0x0177], [0x017A, 0x017A], [0x017C, 0x017C], [0x017E, 0x0180], [0x0183, 0x0183], [0x0185, 0x0185], [0x0188, 0x0188], [0x018C, 0x018D], [0x0192, 0x0192], [0x0195, 0x0195], [0x0199, 0x019B], [0x019E, 0x019E], [0x01A1, 0x01A1], [0x01A3, 0x01A3], [0x01A5, 0x01A5], [0x01A8, 0x01A8], [0x01AB, 0x01AB], [0x01AD, 0x01AD], [0x01B0, 0x01B0], [0x01B4, 0x01B4], [0x01B6, 0x01B6], [0x01B9, 0x01BA], [0x01BD, 0x01BD], [0x01C6, 0x01C6], [0x01C9, 0x01C9], [0x01CC, 0x01CC], [0x01CE, 0x01CE], [0x01D0, 0x01D0], [0x01D2, 0x01D2], [0x01D4, 0x01D4], [0x01D6, 0x01D6], [0x01D8, 0x01D8], [0x01DA, 0x01DA], [0x01DC, 0x01DD], [0x01DF, 0x01DF], [0x01E1, 0x01E1], [0x01E3, 0x01E3], [0x01E5, 0x01E5], [0x01E7, 0x01E7], [0x01E9, 0x01E9], [0x01EB, 0x01EB], [0x01ED, 0x01ED], [0x01EF, 0x01F0], [0x01F3, 0x01F3], [0x01F5, 0x01F5], [0x01FB, 0
x01FB], [0x01FD, 0x01FD], [0x01FF, 0x01FF], [0x0201, 0x0201], [0x0203, 0x0203], [0x0205, 0x0205], [0x0207, 0x0207], [0x0209, 0x0209], [0x020B, 0x020B], [0x020D, 0x020D], [0x020F, 0x020F], [0x0211, 0x0211], [0x0213, 0x0213], [0x0215, 0x0215], [0x0217, 0x0217], [0x0250, 0x02A8], [0x0390, 0x0390], [0x03AC, 0x03CE], [0x03D0, 0x03D1], [0x03D5, 0x03D6], [0x03E3, 0x03E3], [0x03E5, 0x03E5], [0x03E7, 0x03E7], [0x03E9, 0x03E9], [0x03EB, 0x03EB], [0x03ED, 0x03ED], [0x03EF, 0x03F2], [0x0430, 0x044F], [0x0451, 0x045C], [0x045E, 0x045F], [0x0461, 0x0461], [0x0463, 0x0463], [0x0465, 0x0465], [0x0467, 0x0467], [0x0469, 0x0469], [0x046B, 0x046B], [0x046D, 0x046D], [0x046F, 0x046F], [0x0471, 0x0471], [0x0473, 0x0473], [0x0475, 0x0475], [0x0477, 0x0477], [0x0479, 0x0479], [0x047B, 0x047B], [0x047D, 0x047D], [0x047F, 0x047F], [0x0481, 0x0481], [0x0491, 0x0491], [0x0493, 0x0493], [0x0495, 0x0495], [0x0497, 0x0497], [0x0499, 0x0499], [0x049B, 0x049B], [0x049D, 0x049D], [0x049F, 0x049F], [0x04A1,
0x04A1], [0x04A3, 0x04A3], [0x04A5, 0x04A5], [0x04A7, 0x04A7], [0x04A9, 0x04A9], [0x04AB, 0x04AB], [0x04AD, 0x04AD], [0x04AF, 0x04AF], [0x04B1, 0x04B1], [0x04B3, 0x04B3], [0x04B5, 0x04B5], [0x04B7, 0x04B7], [0x04B9, 0x04B9], [0x04BB, 0x04BB], [0x04BD, 0x04BD], [0x04BF, 0x04BF], [0x04C2, 0x04C2], [0x04C4, 0x04C4], [0x04C8, 0x04C8], [0x04CC, 0x04CC], [0x04D1, 0x04D1], [0x04D3, 0x04D3], [0x04D5, 0x04D5], [0x04D7, 0x04D7], [0x04D9, 0x04D9], [0x04DB, 0x04DB], [0x04DD, 0x04DD], [0x04DF, 0x04DF], [0x04E1, 0x04E1], [0x04E3, 0x04E3], [0x04E5, 0x04E5], [0x04E7, 0x04E7], [0x04E9, 0x04E9], [0x04EB, 0x04EB], [0x04EF, 0x04EF], [0x04F1, 0x04F1], [0x04F3, 0x04F3], [0x04F5, 0x04F5], [0x04F9, 0x04F9], [0x0561, 0x0587], [0x10D0, 0x10F6], [0x1E01, 0x1E01], [0x1E03, 0x1E03], [0x1E05, 0x1E05], [0x1E07, 0x1E07], [0x1E09, 0x1E09], [0x1E0B, 0x1E0B], [0x1E0D, 0x1E0D], [0x1E0F, 0x1E0F], [0x1E11, 0x1E11], [0x1E13, 0x1E13], [0x1E15, 0x1E15], [0x1E17, 0x1E17], [0x1E19, 0x1E19], [0x1E1B, 0x1E1B], [0x1E1D,
0x1E1D], [0x1E1F, 0x1E1F], [0x1E21, 0x1E21], [0x1E23, 0x1E23], [0x1E25, 0x1E25], [0x1E27, 0x1E27], [0x1E29, 0x1E29], [0x1E2B, 0x1E2B], [0x1E2D, 0x1E2D], [0x1E2F, 0x1E2F], [0x1E31, 0x1E31], [0x1E33, 0x1E33], [0x1E35, 0x1E35], [0x1E37, 0x1E37], [0x1E39, 0x1E39], [0x1E3B, 0x1E3B], [0x1E3D, 0x1E3D], [0x1E3F, 0x1E3F], [0x1E41, 0x1E41], [0x1E43, 0x1E43], [0x1E45, 0x1E45], [0x1E47, 0x1E47], [0x1E49, 0x1E49], [0x1E4B, 0x1E4B], [0x1E4D, 0x1E4D], [0x1E4F, 0x1E4F], [0x1E51, 0x1E51], [0x1E53, 0x1E53], [0x1E55, 0x1E55], [0x1E57, 0x1E57], [0x1E59, 0x1E59], [0x1E5B, 0x1E5B], [0x1E5D, 0x1E5D], [0x1E5F, 0x1E5F], [0x1E61, 0x1E61], [0x1E63, 0x1E63], [0x1E65, 0x1E65], [0x1E67, 0x1E67], [0x1E69, 0x1E69], [0x1E6B, 0x1E6B], [0x1E6D, 0x1E6D], [0x1E6F, 0x1E6F], [0x1E71, 0x1E71], [0x1E73, 0x1E73], [0x1E75, 0x1E75], [0x1E77, 0x1E77], [0x1E79, 0x1E79], [0x1E7B, 0x1E7B], [0x1E7D, 0x1E7D], [0x1E7F, 0x1E7F], [0x1E81, 0x1E81], [0x1E83, 0x1E83], [0x1E85, 0x1E85], [0x1E87, 0x1E87], [0x1E89, 0x1E89], [0x1E8B
, 0x1E8B], [0x1E8D, 0x1E8D], [0x1E8F, 0x1E8F], [0x1E91, 0x1E91], [0x1E93, 0x1E93], [0x1E95, 0x1E9B], [0x1EA1, 0x1EA1], [0x1EA3, 0x1EA3], [0x1EA5, 0x1EA5], [0x1EA7, 0x1EA7], [0x1EA9, 0x1EA9], [0x1EAB, 0x1EAB], [0x1EAD, 0x1EAD], [0x1EAF, 0x1EAF], [0x1EB1, 0x1EB1], [0x1EB3, 0x1EB3], [0x1EB5, 0x1EB5], [0x1EB7, 0x1EB7], [0x1EB9, 0x1EB9], [0x1EBB, 0x1EBB], [0x1EBD, 0x1EBD], [0x1EBF, 0x1EBF], [0x1EC1, 0x1EC1], [0x1EC3, 0x1EC3], [0x1EC5, 0x1EC5], [0x1EC7, 0x1EC7], [0x1EC9, 0x1EC9], [0x1ECB, 0x1ECB], [0x1ECD, 0x1ECD], [0x1ECF, 0x1ECF], [0x1ED1, 0x1ED1], [0x1ED3, 0x1ED3], [0x1ED5, 0x1ED5], [0x1ED7, 0x1ED7], [0x1ED9, 0x1ED9], [0x1EDB, 0x1EDB], [0x1EDD, 0x1EDD], [0x1EDF, 0x1EDF], [0x1EE1, 0x1EE1], [0x1EE3, 0x1EE3], [0x1EE5, 0x1EE5], [0x1EE7, 0x1EE7], [0x1EE9, 0x1EE9], [0x1EEB, 0x1EEB], [0x1EED, 0x1EED], [0x1EEF, 0x1EEF], [0x1EF1, 0x1EF1], [0x1EF3, 0x1EF3], [0x1EF5, 0x1EF5], [0x1EF7, 0x1EF7], [0x1EF9, 0x1EF9], [0x1F00, 0x1F07], [0x1F10, 0x1F15], [0x1F20, 0x1F27], [0x1F30, 0x1F37], [0x1F4
0, 0x1F45], [0x1F50, 0x1F57], [0x1F60, 0x1F67], [0x1F70, 0x1F7D], [0x1F80, 0x1F87], [0x1F90, 0x1F97], [0x1FA0, 0x1FA7], [0x1FB0, 0x1FB4], [0x1FB6, 0x1FB7], [0x1FBE, 0x1FBE], [0x1FC2, 0x1FC4], [0x1FC6, 0x1FC7], [0x1FD0, 0x1FD3], [0x1FD6, 0x1FD7], [0x1FE0, 0x1FE7], [0x1FF2, 0x1FF4], [0x1FF6, 0x1FF7], [0x207F, 0x207F], [0x210A, 0x210A], [0x210E, 0x210F], [0x2113, 0x2113], [0x2118, 0x2118], [0x212E, 0x212F], [0x2134, 0x2134], [0xFB00, 0xFB06], [0xFB13, 0xFB17], [0xFF41, 0xFF5A]];
+Lt = [[0x01C5, 0x01C5], [0x01C8, 0x01C8], [0x01CB, 0x01CB], [0x01F2, 0x01F2]];
+Lm = [[0x02B0, 0x02B8], [0x02BB, 0x02C1], [0x02D0, 0x02D1], [0x02E0, 0x02E4], [0x037A, 0x037A], [0x0559, 0x0559], [0x0640, 0x0640], [0x06E5, 0x06E6], [0x0E46, 0x0E46], [0x0EC6, 0x0EC6], [0x3005, 0x3005], [0x3031, 0x3035], [0x309D, 0x309E], [0x30FC, 0x30FE], [0xFF70, 0xFF70], [0xFF9E, 0xFF9F]];
+Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0
x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+Nl = [[0x2160, 0x2182], [0x3007, 0x3007], [0x3021, 0x3029]];
+Mn = [[0x0300, 0x0345], [0x0360, 0x0361], [0x0483, 0x0486], [0x0591, 0x05A1], [0x05A3, 0x05B9], [0x05BB, 0x05BD], [0x05BF, 0x05BF], [0x05C1, 0x05C2], [0x05C4, 0x05C4], [0x064B, 0x0652], [0x0670, 0x0670], [0x06D6, 0x06DC], [0x06DF, 0x06E4], [0x06E7, 0x06E8], [0x06EA, 0x06ED], [0x0901, 0x0902], [0x093C, 0x093C], [0x0941, 0x0948], [0x094D, 0x094D], [0x0951, 0x0954], [0x0962, 0x0963], [0x0981, 0x0981], [0x09BC, 0x09BC], [0x09C1, 0x09C4], [0x09CD, 0x09CD], [0x09E2, 0x09E3], [0x0A02, 0x0A02], [0x0A3C, 0x0A3C], [0x0A41, 0x0A42], [0x0A47, 0x0A48], [0x0A4B, 0x0A4D], [0x0A70, 0x0A71], [0x0A81, 0x0A82], [0x0ABC, 0x0ABC], [0x0AC1, 0x0AC5], [0x0AC7, 0x0AC8], [0x0ACD, 0x0ACD], [0x0B01, 0x0B01], [0x0B3C, 0x0B3C], [0x0B3F, 0x0B3F], [0x0B41, 0x0B43], [0x0B4D, 0x0B4D], [0x0B56, 0x0B56], [0x0B82, 0x0B82], [0x0BC0, 0x0BC0], [0x0BCD, 0x0BCD], [0x0C3E, 0x0C40], [0x0C46, 0x0C48], [0x0C4A, 0x0C4D], [0x0C55, 0x0C56], [0x0CBF, 0x0CBF], [0x0CC6, 0x0CC6], [0x0CCC, 0x0CCD], [0x0D41, 0x0D43], [0x0D4D, 0x
0D4D], [0x0E31, 0x0E31], [0x0E34, 0x0E3A], [0x0E47, 0x0E4E], [0x0EB1, 0x0EB1], [0x0EB4, 0x0EB9], [0x0EBB, 0x0EBC], [0x0EC8, 0x0ECD], [0x0F18, 0x0F19], [0x0F35, 0x0F35], [0x0F37, 0x0F37], [0x0F39, 0x0F39], [0x0F71, 0x0F7E], [0x0F80, 0x0F84], [0x0F86, 0x0F87], [0x0F90, 0x0F95], [0x0F97, 0x0F97], [0x0F99, 0x0FAD], [0x0FB1, 0x0FB7], [0x0FB9, 0x0FB9], [0x20D0, 0x20DC], [0x20E1, 0x20E1], [0x302A, 0x302F], [0x3099, 0x309A], [0xFB1E, 0xFB1E], [0xFE20, 0xFE23]];
+Mc = [[0x0903, 0x0903], [0x093E, 0x0940], [0x0949, 0x094C], [0x0982, 0x0983], [0x09BE, 0x09C0], [0x09C7, 0x09C8], [0x09CB, 0x09CC], [0x09D7, 0x09D7], [0x0A3E, 0x0A40], [0x0A83, 0x0A83], [0x0ABE, 0x0AC0], [0x0AC9, 0x0AC9], [0x0ACB, 0x0ACC], [0x0B02, 0x0B03], [0x0B3E, 0x0B3E], [0x0B40, 0x0B40], [0x0B47, 0x0B48], [0x0B4B, 0x0B4C], [0x0B57, 0x0B57], [0x0B83, 0x0B83], [0x0BBE, 0x0BBF], [0x0BC1, 0x0BC2], [0x0BC6, 0x0BC8], [0x0BCA, 0x0BCC], [0x0BD7, 0x0BD7], [0x0C01, 0x0C03], [0x0C41, 0x0C44], [0x0C82, 0x0C83], [0x0CBE, 0x0CBE], [0x0CC0, 0x0CC4], [0x0CC7, 0x0CC8], [0x0CCA, 0x0CCB], [0x0CD5, 0x0CD6], [0x0D02, 0x0D03], [0x0D3E, 0x0D40], [0x0D46, 0x0D48], [0x0D4A, 0x0D4C], [0x0D57, 0x0D57], [0x0F3E, 0x0F3F], [0x0F7F, 0x0F7F]];
+Nd = [[0x0030, 0x0039], [0x0660, 0x0669], [0x06F0, 0x06F9], [0x0966, 0x096F], [0x09E6, 0x09EF], [0x0A66, 0x0A6F], [0x0AE6, 0x0AEF], [0x0B66, 0x0B6F], [0x0BE7, 0x0BEF], [0x0C66, 0x0C6F], [0x0CE6, 0x0CEF], [0x0D66, 0x0D6F], [0x0E50, 0x0E59], [0x0ED0, 0x0ED9], [0x0F20, 0x0F29], [0xFF10, 0xFF19]];
+Pc = [[0x005F, 0x005F], [0x203F, 0x2040], [0x30FB, 0x30FB], [0xFE33, 0xFE34], [0xFE4D, 0xFE4F], [0xFF3F, 0xFF3F], [0xFF65, 0xFF65]];
+
+UnicodeLetterLu = [];
+UnicodeLetterLl = [];
+UnicodeLetterLt = [];
+UnicodeLetterLm = [];
+UnicodeLetterLo = [];
+UnicodeLetterNl = [];
+UnicodeLetterMn = [];
+UnicodeLetterMc = [];
+UnicodeLetterNd = [];
+UnicodeLetterPc = [];
+
+for (indexI = 0; indexI < Lu.length; indexI++) {
+ for (indexJ = Lu[indexI][0]; indexJ <= Lu[indexI][1]; indexJ++) {
+ UnicodeLetterLu[indexJ] = true;
+ }
+}
+for (indexI = 0; indexI < Ll.length; indexI++) {
+ for (indexJ = Ll[indexI][0]; indexJ <= Ll[indexI][1]; indexJ++) {
+ UnicodeLetterLl[indexJ] = true;
+ }
+}
+for (indexI = 0; indexI < Lt.length; indexI++) {
+ for (indexJ = Lt[indexI][0]; indexJ <= Lt[indexI][1]; indexJ++) {
+ UnicodeLetterLt[indexJ] = true;
+ }
+}
+for (indexI = 0; indexI < Lm.length; indexI++) {
+ for (indexJ = Lm[indexI][0]; indexJ <= Lm[indexI][1]; indexJ++) {
+ UnicodeLetterLm[indexJ] = true;
+ }
+}
+for (indexI = 0; indexI < Lo.length; indexI++) {
+ for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
+ UnicodeLetterLo[indexJ] = true;
+ }
+}
+for (indexI = 0; indexI < Nl.length; indexI++) {
+ for (indexJ = Nl[indexI][0]; indexJ <= Nl[indexI][1]; indexJ++) {
+ UnicodeLetterNl[indexJ] = true;
+ }
+}
+for (indexI = 0; indexI < Mn.length; indexI++) {
+ for (indexJ = Mn[indexI][0]; indexJ <= Mn[indexI][1]; indexJ++) {
+ UnicodeLetterMn[indexJ] = true;
+ }
+}
+for (indexI = 0; indexI < Mc.length; indexI++) {
+ for (indexJ = Mc[indexI][0]; indexJ <= Mc[indexI][1]; indexJ++) {
+ UnicodeLetterMc[indexJ] = true;
+ }
+}
+for (indexI = 0; indexI < Nd.length; indexI++) {
+ for (indexJ = Nd[indexI][0]; indexJ <= Nd[indexI][1]; indexJ++) {
+ UnicodeLetterNd[indexJ] = true;
+ }
+}
+for (indexI = 0; indexI < Pc.length; indexI++) {
+ for (indexJ = Pc[indexI][0]; indexJ <= Pc[indexI][1]; indexJ++) {
+ UnicodeLetterPc[indexJ] = true;
+ }
+}
+
+errorCount = 0;
+count = 0;
+var indexP;
+var indexO = 0;
+for (index = 0; index <= 65535; index++) {
+ if ((UnicodeLetterLu[index] === undefined) && (UnicodeLetterLl[index] === undefined) && (UnicodeLetterLt[index] === undefined) && (UnicodeLetterLm[index] === undefined) && (UnicodeLetterLo[index] === undefined) && (UnicodeLetterNl[index] === undefined) && (UnicodeLetterMn[index] === undefined) && (UnicodeLetterMc[index] === undefined) && (UnicodeLetterNd[index] === undefined) && (UnicodeLetterPc[index] === undefined) && (index !== 0x0024) && (index !== 0x005F)) {
+ try {
+ var identifier = "$" + String.fromCharCode(index) + "1";
+ eval("var " + identifier + "=1");
+ if (indexO === 0) {
+ indexO = index;
+ } else {
+ if ((index - indexP) !== 1) {
+ if ((indexP - indexO) !== 0) {
+ var hexP = decimalToHexString(indexP);
+ var hexO = decimalToHexString(indexO);
+ testFailed('#' + hexO + '-' + hexP + ' ');
+ }
+ else {
+ var hexP = decimalToHexString(indexP);
+ testFailed('#' + hexP + ' ');
+ }
+ indexO = index;
+ }
+ }
+ indexP = index;
+ errorCount++;
+ } catch (e) {
+ }
+ count++;
+ }
+}
+
+if (errorCount > 0) {
+ if ((indexP - indexO) !== 0) {
+ var hexP = decimalToHexString(indexP);
+ var hexO = decimalToHexString(indexO);
+ testFailed('#' + hexO + '-' + hexP + ' ');
+ } else {
+ var hexP = decimalToHexString(indexP);
+ testFailed('#' + hexP + ' ');
+ }
+ testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
+}
+
+function decimalToHexString(n) {
+ n = Number(n);
+ var h = "";
+ for (var i = 3; i >= 0; i--) {
+ if (n >= Math.pow(16, i)) {
+ var t = Math.floor(n / Math.pow(16, i));
+ n -= t * Math.pow(16, i);
+ if ( t >= 10 ) {
+ if ( t == 10 ) { h += "A"; }
+ if ( t == 11 ) { h += "B"; }
+ if ( t == 12 ) { h += "C"; }
+ if ( t == 13 ) { h += "D"; }
+ if ( t == 14 ) { h += "E"; }
+ if ( t == 15 ) { h += "F"; }
+ } else {
+ h += String(t);
+ }
+ } else {
+ h += "0";
+ }
+ }
+ return h;
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_218S76_A31htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,235 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S7.6_A3.1</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S7.6_A3.1;
- * @section: 7.6;
- * @assertion: IdentifierName must contain only IdentifierPart character;
- * @description: Complex test with eval;
-*/
-
-//CHECK
-Lu = [[0x0041, 0x005A], [0x00C0, 0x00D6], [0x00D8, 0x00DE], [0x0100, 0x0100], [0x0102, 0x0102], [0x0104, 0x0104], [0x0106, 0x0106], [0x0108, 0x0108], [0x010A, 0x010A], [0x010C, 0x010C], [0x010E, 0x010E], [0x0110, 0x0110], [0x0112, 0x0112], [0x0114, 0x0114], [0x0116, 0x0116], [0x0118, 0x0118], [0x011A, 0x011A], [0x011C, 0x011C], [0x011E, 0x011E], [0x0120, 0x0120], [0x0122, 0x0122], [0x0124, 0x0124], [0x0126, 0x0126], [0x0128, 0x0128], [0x012A, 0x012A], [0x012C, 0x012C], [0x012E, 0x012E], [0x0130, 0x0130], [0x0132, 0x0132], [0x0134, 0x0134], [0x0136, 0x0136], [0x0139, 0x0139], [0x013B, 0x013B], [0x013D, 0x013D], [0x013F, 0x013F], [0x0141, 0x0141], [0x0143, 0x0143], [0x0145, 0x0145], [0x0147, 0x0147], [0x014A, 0x014A], [0x014C, 0x014C], [0x014E, 0x014E], [0x0150, 0x0150], [0x0152, 0x0152], [0x0154, 0x0154], [0x0156, 0x0156], [0x0158, 0x0158], [0x015A, 0x015A], [0x015C, 0x015C], [0x015E, 0x015E], [0x0160, 0x0160], [0x0162, 0x0162], [0x0164, 0x0164], [0x0166, 0x0166], [0x0168, 0x
0168], [0x016A, 0x016A], [0x016C, 0x016C], [0x016E, 0x016E], [0x0170, 0x0170], [0x0172, 0x0172], [0x0174, 0x0174], [0x0176, 0x0176], [0x0178, 0x0179], [0x017B, 0x017B], [0x017D, 0x017D], [0x0181, 0x0182], [0x0184, 0x0184], [0x0186, 0x0187], [0x0189, 0x018B], [0x018E, 0x0191], [0x0193, 0x0194], [0x0196, 0x0198], [0x019C, 0x019D], [0x019F, 0x01A0], [0x01A2, 0x01A2], [0x01A4, 0x01A4], [0x01A6, 0x01A7], [0x01A9, 0x01A9], [0x01AC, 0x01AC], [0x01AE, 0x01AF], [0x01B1, 0x01B3], [0x01B5, 0x01B5], [0x01B7, 0x01B8], [0x01BC, 0x01BC], [0x01C4, 0x01C4], [0x01C7, 0x01C7], [0x01CA, 0x01CA], [0x01CD, 0x01CD], [0x01CF, 0x01CF], [0x01D1, 0x01D1], [0x01D3, 0x01D3], [0x01D5, 0x01D5], [0x01D7, 0x01D7], [0x01D9, 0x01D9], [0x01DB, 0x01DB], [0x01DE, 0x01DE], [0x01E0, 0x01E0], [0x01E2, 0x01E2], [0x01E4, 0x01E4], [0x01E6, 0x01E6], [0x01E8, 0x01E8], [0x01EA, 0x01EA], [0x01EC, 0x01EC], [0x01EE, 0x01EE], [0x01F1, 0x01F1], [0x01F4, 0x01F4], [0x01FA, 0x01FA], [0x01FC, 0x01FC], [0x01FE, 0x01FE], [0x0200, 0
x0200], [0x0202, 0x0202], [0x0204, 0x0204], [0x0206, 0x0206], [0x0208, 0x0208], [0x020A, 0x020A], [0x020C, 0x020C], [0x020E, 0x020E], [0x0210, 0x0210], [0x0212, 0x0212], [0x0214, 0x0214], [0x0216, 0x0216], [0x0386, 0x0386], [0x0388, 0x038A], [0x038C, 0x038C], [0x038E, 0x038F], [0x0391, 0x03A1], [0x03A3, 0x03AB], [0x03D2, 0x03D4], [0x03DA, 0x03DA], [0x03DC, 0x03DC], [0x03DE, 0x03DE], [0x03E0, 0x03E0], [0x03E2, 0x03E2], [0x03E4, 0x03E4], [0x03E6, 0x03E6], [0x03E8, 0x03E8], [0x03EA, 0x03EA], [0x03EC, 0x03EC], [0x03EE, 0x03EE], [0x0401, 0x040C], [0x040E, 0x042F], [0x0460, 0x0460], [0x0462, 0x0462], [0x0464, 0x0464], [0x0466, 0x0466], [0x0468, 0x0468], [0x046A, 0x046A], [0x046C, 0x046C], [0x046E, 0x046E], [0x0470, 0x0470], [0x0472, 0x0472], [0x0474, 0x0474], [0x0476, 0x0476], [0x0478, 0x0478], [0x047A, 0x047A], [0x047C, 0x047C], [0x047E, 0x047E], [0x0480, 0x0480], [0x0490, 0x0490], [0x0492, 0x0492], [0x0494, 0x0494], [0x0496, 0x0496], [0x0498, 0x0498], [0x049A, 0x049A], [0x049C,
0x049C], [0x049E, 0x049E], [0x04A0, 0x04A0], [0x04A2, 0x04A2], [0x04A4, 0x04A4], [0x04A6, 0x04A6], [0x04A8, 0x04A8], [0x04AA, 0x04AA], [0x04AC, 0x04AC], [0x04AE, 0x04AE], [0x04B0, 0x04B0], [0x04B2, 0x04B2], [0x04B4, 0x04B4], [0x04B6, 0x04B6], [0x04B8, 0x04B8], [0x04BA, 0x04BA], [0x04BC, 0x04BC], [0x04BE, 0x04BE], [0x04C1, 0x04C1], [0x04C3, 0x04C3], [0x04C7, 0x04C7], [0x04CB, 0x04CB], [0x04D0, 0x04D0], [0x04D2, 0x04D2], [0x04D4, 0x04D4], [0x04D6, 0x04D6], [0x04D8, 0x04D8], [0x04DA, 0x04DA], [0x04DC, 0x04DC], [0x04DE, 0x04DE], [0x04E0, 0x04E0], [0x04E2, 0x04E2], [0x04E4, 0x04E4], [0x04E6, 0x04E6], [0x04E8, 0x04E8], [0x04EA, 0x04EA], [0x04EE, 0x04EE], [0x04F0, 0x04F0], [0x04F2, 0x04F2], [0x04F4, 0x04F4], [0x04F8, 0x04F8], [0x0531, 0x0556], [0x10A0, 0x10C5], [0x1E00, 0x1E00], [0x1E02, 0x1E02], [0x1E04, 0x1E04], [0x1E06, 0x1E06], [0x1E08, 0x1E08], [0x1E0A, 0x1E0A], [0x1E0C, 0x1E0C], [0x1E0E, 0x1E0E], [0x1E10, 0x1E10], [0x1E12, 0x1E12], [0x1E14, 0x1E14], [0x1E16, 0x1E16], [0x1E18,
0x1E18], [0x1E1A, 0x1E1A], [0x1E1C, 0x1E1C], [0x1E1E, 0x1E1E], [0x1E20, 0x1E20], [0x1E22, 0x1E22], [0x1E24, 0x1E24], [0x1E26, 0x1E26], [0x1E28, 0x1E28], [0x1E2A, 0x1E2A], [0x1E2C, 0x1E2C], [0x1E2E, 0x1E2E], [0x1E30, 0x1E30], [0x1E32, 0x1E32], [0x1E34, 0x1E34], [0x1E36, 0x1E36], [0x1E38, 0x1E38], [0x1E3A, 0x1E3A], [0x1E3C, 0x1E3C], [0x1E3E, 0x1E3E], [0x1E40, 0x1E40], [0x1E42, 0x1E42], [0x1E44, 0x1E44], [0x1E46, 0x1E46], [0x1E48, 0x1E48], [0x1E4A, 0x1E4A], [0x1E4C, 0x1E4C], [0x1E4E, 0x1E4E], [0x1E50, 0x1E50], [0x1E52, 0x1E52], [0x1E54, 0x1E54], [0x1E56, 0x1E56], [0x1E58, 0x1E58], [0x1E5A, 0x1E5A], [0x1E5C, 0x1E5C], [0x1E5E, 0x1E5E], [0x1E60, 0x1E60], [0x1E62, 0x1E62], [0x1E64, 0x1E64], [0x1E66, 0x1E66], [0x1E68, 0x1E68], [0x1E6A, 0x1E6A], [0x1E6C, 0x1E6C], [0x1E6E, 0x1E6E], [0x1E70, 0x1E70], [0x1E72, 0x1E72], [0x1E74, 0x1E74], [0x1E76, 0x1E76], [0x1E78, 0x1E78], [0x1E7A, 0x1E7A], [0x1E7C, 0x1E7C], [0x1E7E, 0x1E7E], [0x1E80, 0x1E80], [0x1E82, 0x1E82], [0x1E84, 0x1E84], [0x1E86
, 0x1E86], [0x1E88, 0x1E88], [0x1E8A, 0x1E8A], [0x1E8C, 0x1E8C], [0x1E8E, 0x1E8E], [0x1E90, 0x1E90], [0x1E92, 0x1E92], [0x1E94, 0x1E94], [0x1EA0, 0x1EA0], [0x1EA2, 0x1EA2], [0x1EA4, 0x1EA4], [0x1EA6, 0x1EA6], [0x1EA8, 0x1EA8], [0x1EAA, 0x1EAA], [0x1EAC, 0x1EAC], [0x1EAE, 0x1EAE], [0x1EB0, 0x1EB0], [0x1EB2, 0x1EB2], [0x1EB4, 0x1EB4], [0x1EB6, 0x1EB6], [0x1EB8, 0x1EB8], [0x1EBA, 0x1EBA], [0x1EBC, 0x1EBC], [0x1EBE, 0x1EBE], [0x1EC0, 0x1EC0], [0x1EC2, 0x1EC2], [0x1EC4, 0x1EC4], [0x1EC6, 0x1EC6], [0x1EC8, 0x1EC8], [0x1ECA, 0x1ECA], [0x1ECC, 0x1ECC], [0x1ECE, 0x1ECE], [0x1ED0, 0x1ED0], [0x1ED2, 0x1ED2], [0x1ED4, 0x1ED4], [0x1ED6, 0x1ED6], [0x1ED8, 0x1ED8], [0x1EDA, 0x1EDA], [0x1EDC, 0x1EDC], [0x1EDE, 0x1EDE], [0x1EE0, 0x1EE0], [0x1EE2, 0x1EE2], [0x1EE4, 0x1EE4], [0x1EE6, 0x1EE6], [0x1EE8, 0x1EE8], [0x1EEA, 0x1EEA], [0x1EEC, 0x1EEC], [0x1EEE, 0x1EEE], [0x1EF0, 0x1EF0], [0x1EF2, 0x1EF2], [0x1EF4, 0x1EF4], [0x1EF6, 0x1EF6], [0x1EF8, 0x1EF8], [0x1F08, 0x1F0F], [0x1F18, 0x1F1D], [0x1F2
8, 0x1F2F], [0x1F38, 0x1F3F], [0x1F48, 0x1F4D], [0x1F59, 0x1F59], [0x1F5B, 0x1F5B], [0x1F5D, 0x1F5D], [0x1F5F, 0x1F5F], [0x1F68, 0x1F6F], [0x1F88, 0x1F8F], [0x1F98, 0x1F9F], [0x1FA8, 0x1FAF], [0x1FB8, 0x1FBC], [0x1FC8, 0x1FCC], [0x1FD8, 0x1FDB], [0x1FE8, 0x1FEC], [0x1FF8, 0x1FFC], [0x2102, 0x2102], [0x2107, 0x2107], [0x210B, 0x210D], [0x2110, 0x2112], [0x2115, 0x2115], [0x2119, 0x211D], [0x2124, 0x2124], [0x2126, 0x2126], [0x2128, 0x2128], [0x212A, 0x212D], [0x2130, 0x2131], [0x2133, 0x2133], [0xFF21, 0xFF3A]];
-Ll = [[0x0061, 0x007A], [0x00AA, 0x00AA], [0x00B5, 0x00B5], [0x00BA, 0x00BA], [0x00DF, 0x00F6], [0x00F8, 0x00FF], [0x0101, 0x0101], [0x0103, 0x0103], [0x0105, 0x0105], [0x0107, 0x0107], [0x0109, 0x0109], [0x010B, 0x010B], [0x010D, 0x010D], [0x010F, 0x010F], [0x0111, 0x0111], [0x0113, 0x0113], [0x0115, 0x0115], [0x0117, 0x0117], [0x0119, 0x0119], [0x011B, 0x011B], [0x011D, 0x011D], [0x011F, 0x011F], [0x0121, 0x0121], [0x0123, 0x0123], [0x0125, 0x0125], [0x0127, 0x0127], [0x0129, 0x0129], [0x012B, 0x012B], [0x012D, 0x012D], [0x012F, 0x012F], [0x0131, 0x0131], [0x0133, 0x0133], [0x0135, 0x0135], [0x0137, 0x0138], [0x013A, 0x013A], [0x013C, 0x013C], [0x013E, 0x013E], [0x0140, 0x0140], [0x0142, 0x0142], [0x0144, 0x0144], [0x0146, 0x0146], [0x0148, 0x0149], [0x014B, 0x014B], [0x014D, 0x014D], [0x014F, 0x014F], [0x0151, 0x0151], [0x0153, 0x0153], [0x0155, 0x0155], [0x0157, 0x0157], [0x0159, 0x0159], [0x015B, 0x015B], [0x015D, 0x015D], [0x015F, 0x015F], [0x0161, 0x0161], [0x0163, 0x
0163], [0x0165, 0x0165], [0x0167, 0x0167], [0x0169, 0x0169], [0x016B, 0x016B], [0x016D, 0x016D], [0x016F, 0x016F], [0x0171, 0x0171], [0x0173, 0x0173], [0x0175, 0x0175], [0x0177, 0x0177], [0x017A, 0x017A], [0x017C, 0x017C], [0x017E, 0x0180], [0x0183, 0x0183], [0x0185, 0x0185], [0x0188, 0x0188], [0x018C, 0x018D], [0x0192, 0x0192], [0x0195, 0x0195], [0x0199, 0x019B], [0x019E, 0x019E], [0x01A1, 0x01A1], [0x01A3, 0x01A3], [0x01A5, 0x01A5], [0x01A8, 0x01A8], [0x01AB, 0x01AB], [0x01AD, 0x01AD], [0x01B0, 0x01B0], [0x01B4, 0x01B4], [0x01B6, 0x01B6], [0x01B9, 0x01BA], [0x01BD, 0x01BD], [0x01C6, 0x01C6], [0x01C9, 0x01C9], [0x01CC, 0x01CC], [0x01CE, 0x01CE], [0x01D0, 0x01D0], [0x01D2, 0x01D2], [0x01D4, 0x01D4], [0x01D6, 0x01D6], [0x01D8, 0x01D8], [0x01DA, 0x01DA], [0x01DC, 0x01DD], [0x01DF, 0x01DF], [0x01E1, 0x01E1], [0x01E3, 0x01E3], [0x01E5, 0x01E5], [0x01E7, 0x01E7], [0x01E9, 0x01E9], [0x01EB, 0x01EB], [0x01ED, 0x01ED], [0x01EF, 0x01F0], [0x01F3, 0x01F3], [0x01F5, 0x01F5], [0x01FB, 0
x01FB], [0x01FD, 0x01FD], [0x01FF, 0x01FF], [0x0201, 0x0201], [0x0203, 0x0203], [0x0205, 0x0205], [0x0207, 0x0207], [0x0209, 0x0209], [0x020B, 0x020B], [0x020D, 0x020D], [0x020F, 0x020F], [0x0211, 0x0211], [0x0213, 0x0213], [0x0215, 0x0215], [0x0217, 0x0217], [0x0250, 0x02A8], [0x0390, 0x0390], [0x03AC, 0x03CE], [0x03D0, 0x03D1], [0x03D5, 0x03D6], [0x03E3, 0x03E3], [0x03E5, 0x03E5], [0x03E7, 0x03E7], [0x03E9, 0x03E9], [0x03EB, 0x03EB], [0x03ED, 0x03ED], [0x03EF, 0x03F2], [0x0430, 0x044F], [0x0451, 0x045C], [0x045E, 0x045F], [0x0461, 0x0461], [0x0463, 0x0463], [0x0465, 0x0465], [0x0467, 0x0467], [0x0469, 0x0469], [0x046B, 0x046B], [0x046D, 0x046D], [0x046F, 0x046F], [0x0471, 0x0471], [0x0473, 0x0473], [0x0475, 0x0475], [0x0477, 0x0477], [0x0479, 0x0479], [0x047B, 0x047B], [0x047D, 0x047D], [0x047F, 0x047F], [0x0481, 0x0481], [0x0491, 0x0491], [0x0493, 0x0493], [0x0495, 0x0495], [0x0497, 0x0497], [0x0499, 0x0499], [0x049B, 0x049B], [0x049D, 0x049D], [0x049F, 0x049F], [0x04A1,
0x04A1], [0x04A3, 0x04A3], [0x04A5, 0x04A5], [0x04A7, 0x04A7], [0x04A9, 0x04A9], [0x04AB, 0x04AB], [0x04AD, 0x04AD], [0x04AF, 0x04AF], [0x04B1, 0x04B1], [0x04B3, 0x04B3], [0x04B5, 0x04B5], [0x04B7, 0x04B7], [0x04B9, 0x04B9], [0x04BB, 0x04BB], [0x04BD, 0x04BD], [0x04BF, 0x04BF], [0x04C2, 0x04C2], [0x04C4, 0x04C4], [0x04C8, 0x04C8], [0x04CC, 0x04CC], [0x04D1, 0x04D1], [0x04D3, 0x04D3], [0x04D5, 0x04D5], [0x04D7, 0x04D7], [0x04D9, 0x04D9], [0x04DB, 0x04DB], [0x04DD, 0x04DD], [0x04DF, 0x04DF], [0x04E1, 0x04E1], [0x04E3, 0x04E3], [0x04E5, 0x04E5], [0x04E7, 0x04E7], [0x04E9, 0x04E9], [0x04EB, 0x04EB], [0x04EF, 0x04EF], [0x04F1, 0x04F1], [0x04F3, 0x04F3], [0x04F5, 0x04F5], [0x04F9, 0x04F9], [0x0561, 0x0587], [0x10D0, 0x10F6], [0x1E01, 0x1E01], [0x1E03, 0x1E03], [0x1E05, 0x1E05], [0x1E07, 0x1E07], [0x1E09, 0x1E09], [0x1E0B, 0x1E0B], [0x1E0D, 0x1E0D], [0x1E0F, 0x1E0F], [0x1E11, 0x1E11], [0x1E13, 0x1E13], [0x1E15, 0x1E15], [0x1E17, 0x1E17], [0x1E19, 0x1E19], [0x1E1B, 0x1E1B], [0x1E1D,
0x1E1D], [0x1E1F, 0x1E1F], [0x1E21, 0x1E21], [0x1E23, 0x1E23], [0x1E25, 0x1E25], [0x1E27, 0x1E27], [0x1E29, 0x1E29], [0x1E2B, 0x1E2B], [0x1E2D, 0x1E2D], [0x1E2F, 0x1E2F], [0x1E31, 0x1E31], [0x1E33, 0x1E33], [0x1E35, 0x1E35], [0x1E37, 0x1E37], [0x1E39, 0x1E39], [0x1E3B, 0x1E3B], [0x1E3D, 0x1E3D], [0x1E3F, 0x1E3F], [0x1E41, 0x1E41], [0x1E43, 0x1E43], [0x1E45, 0x1E45], [0x1E47, 0x1E47], [0x1E49, 0x1E49], [0x1E4B, 0x1E4B], [0x1E4D, 0x1E4D], [0x1E4F, 0x1E4F], [0x1E51, 0x1E51], [0x1E53, 0x1E53], [0x1E55, 0x1E55], [0x1E57, 0x1E57], [0x1E59, 0x1E59], [0x1E5B, 0x1E5B], [0x1E5D, 0x1E5D], [0x1E5F, 0x1E5F], [0x1E61, 0x1E61], [0x1E63, 0x1E63], [0x1E65, 0x1E65], [0x1E67, 0x1E67], [0x1E69, 0x1E69], [0x1E6B, 0x1E6B], [0x1E6D, 0x1E6D], [0x1E6F, 0x1E6F], [0x1E71, 0x1E71], [0x1E73, 0x1E73], [0x1E75, 0x1E75], [0x1E77, 0x1E77], [0x1E79, 0x1E79], [0x1E7B, 0x1E7B], [0x1E7D, 0x1E7D], [0x1E7F, 0x1E7F], [0x1E81, 0x1E81], [0x1E83, 0x1E83], [0x1E85, 0x1E85], [0x1E87, 0x1E87], [0x1E89, 0x1E89], [0x1E8B
, 0x1E8B], [0x1E8D, 0x1E8D], [0x1E8F, 0x1E8F], [0x1E91, 0x1E91], [0x1E93, 0x1E93], [0x1E95, 0x1E9B], [0x1EA1, 0x1EA1], [0x1EA3, 0x1EA3], [0x1EA5, 0x1EA5], [0x1EA7, 0x1EA7], [0x1EA9, 0x1EA9], [0x1EAB, 0x1EAB], [0x1EAD, 0x1EAD], [0x1EAF, 0x1EAF], [0x1EB1, 0x1EB1], [0x1EB3, 0x1EB3], [0x1EB5, 0x1EB5], [0x1EB7, 0x1EB7], [0x1EB9, 0x1EB9], [0x1EBB, 0x1EBB], [0x1EBD, 0x1EBD], [0x1EBF, 0x1EBF], [0x1EC1, 0x1EC1], [0x1EC3, 0x1EC3], [0x1EC5, 0x1EC5], [0x1EC7, 0x1EC7], [0x1EC9, 0x1EC9], [0x1ECB, 0x1ECB], [0x1ECD, 0x1ECD], [0x1ECF, 0x1ECF], [0x1ED1, 0x1ED1], [0x1ED3, 0x1ED3], [0x1ED5, 0x1ED5], [0x1ED7, 0x1ED7], [0x1ED9, 0x1ED9], [0x1EDB, 0x1EDB], [0x1EDD, 0x1EDD], [0x1EDF, 0x1EDF], [0x1EE1, 0x1EE1], [0x1EE3, 0x1EE3], [0x1EE5, 0x1EE5], [0x1EE7, 0x1EE7], [0x1EE9, 0x1EE9], [0x1EEB, 0x1EEB], [0x1EED, 0x1EED], [0x1EEF, 0x1EEF], [0x1EF1, 0x1EF1], [0x1EF3, 0x1EF3], [0x1EF5, 0x1EF5], [0x1EF7, 0x1EF7], [0x1EF9, 0x1EF9], [0x1F00, 0x1F07], [0x1F10, 0x1F15], [0x1F20, 0x1F27], [0x1F30, 0x1F37], [0x1F4
0, 0x1F45], [0x1F50, 0x1F57], [0x1F60, 0x1F67], [0x1F70, 0x1F7D], [0x1F80, 0x1F87], [0x1F90, 0x1F97], [0x1FA0, 0x1FA7], [0x1FB0, 0x1FB4], [0x1FB6, 0x1FB7], [0x1FBE, 0x1FBE], [0x1FC2, 0x1FC4], [0x1FC6, 0x1FC7], [0x1FD0, 0x1FD3], [0x1FD6, 0x1FD7], [0x1FE0, 0x1FE7], [0x1FF2, 0x1FF4], [0x1FF6, 0x1FF7], [0x207F, 0x207F], [0x210A, 0x210A], [0x210E, 0x210F], [0x2113, 0x2113], [0x2118, 0x2118], [0x212E, 0x212F], [0x2134, 0x2134], [0xFB00, 0xFB06], [0xFB13, 0xFB17], [0xFF41, 0xFF5A]];
-Lt = [[0x01C5, 0x01C5], [0x01C8, 0x01C8], [0x01CB, 0x01CB], [0x01F2, 0x01F2]];
-Lm = [[0x02B0, 0x02B8], [0x02BB, 0x02C1], [0x02D0, 0x02D1], [0x02E0, 0x02E4], [0x037A, 0x037A], [0x0559, 0x0559], [0x0640, 0x0640], [0x06E5, 0x06E6], [0x0E46, 0x0E46], [0x0EC6, 0x0EC6], [0x3005, 0x3005], [0x3031, 0x3035], [0x309D, 0x309E], [0x30FC, 0x30FE], [0xFF70, 0xFF70], [0xFF9E, 0xFF9F]];
-Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0
x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-Nl = [[0x2160, 0x2182], [0x3007, 0x3007], [0x3021, 0x3029]];
-Mn = [[0x0300, 0x0345], [0x0360, 0x0361], [0x0483, 0x0486], [0x0591, 0x05A1], [0x05A3, 0x05B9], [0x05BB, 0x05BD], [0x05BF, 0x05BF], [0x05C1, 0x05C2], [0x05C4, 0x05C4], [0x064B, 0x0652], [0x0670, 0x0670], [0x06D6, 0x06DC], [0x06DF, 0x06E4], [0x06E7, 0x06E8], [0x06EA, 0x06ED], [0x0901, 0x0902], [0x093C, 0x093C], [0x0941, 0x0948], [0x094D, 0x094D], [0x0951, 0x0954], [0x0962, 0x0963], [0x0981, 0x0981], [0x09BC, 0x09BC], [0x09C1, 0x09C4], [0x09CD, 0x09CD], [0x09E2, 0x09E3], [0x0A02, 0x0A02], [0x0A3C, 0x0A3C], [0x0A41, 0x0A42], [0x0A47, 0x0A48], [0x0A4B, 0x0A4D], [0x0A70, 0x0A71], [0x0A81, 0x0A82], [0x0ABC, 0x0ABC], [0x0AC1, 0x0AC5], [0x0AC7, 0x0AC8], [0x0ACD, 0x0ACD], [0x0B01, 0x0B01], [0x0B3C, 0x0B3C], [0x0B3F, 0x0B3F], [0x0B41, 0x0B43], [0x0B4D, 0x0B4D], [0x0B56, 0x0B56], [0x0B82, 0x0B82], [0x0BC0, 0x0BC0], [0x0BCD, 0x0BCD], [0x0C3E, 0x0C40], [0x0C46, 0x0C48], [0x0C4A, 0x0C4D], [0x0C55, 0x0C56], [0x0CBF, 0x0CBF], [0x0CC6, 0x0CC6], [0x0CCC, 0x0CCD], [0x0D41, 0x0D43], [0x0D4D, 0x
0D4D], [0x0E31, 0x0E31], [0x0E34, 0x0E3A], [0x0E47, 0x0E4E], [0x0EB1, 0x0EB1], [0x0EB4, 0x0EB9], [0x0EBB, 0x0EBC], [0x0EC8, 0x0ECD], [0x0F18, 0x0F19], [0x0F35, 0x0F35], [0x0F37, 0x0F37], [0x0F39, 0x0F39], [0x0F71, 0x0F7E], [0x0F80, 0x0F84], [0x0F86, 0x0F87], [0x0F90, 0x0F95], [0x0F97, 0x0F97], [0x0F99, 0x0FAD], [0x0FB1, 0x0FB7], [0x0FB9, 0x0FB9], [0x20D0, 0x20DC], [0x20E1, 0x20E1], [0x302A, 0x302F], [0x3099, 0x309A], [0xFB1E, 0xFB1E], [0xFE20, 0xFE23]];
-Mc = [[0x0903, 0x0903], [0x093E, 0x0940], [0x0949, 0x094C], [0x0982, 0x0983], [0x09BE, 0x09C0], [0x09C7, 0x09C8], [0x09CB, 0x09CC], [0x09D7, 0x09D7], [0x0A3E, 0x0A40], [0x0A83, 0x0A83], [0x0ABE, 0x0AC0], [0x0AC9, 0x0AC9], [0x0ACB, 0x0ACC], [0x0B02, 0x0B03], [0x0B3E, 0x0B3E], [0x0B40, 0x0B40], [0x0B47, 0x0B48], [0x0B4B, 0x0B4C], [0x0B57, 0x0B57], [0x0B83, 0x0B83], [0x0BBE, 0x0BBF], [0x0BC1, 0x0BC2], [0x0BC6, 0x0BC8], [0x0BCA, 0x0BCC], [0x0BD7, 0x0BD7], [0x0C01, 0x0C03], [0x0C41, 0x0C44], [0x0C82, 0x0C83], [0x0CBE, 0x0CBE], [0x0CC0, 0x0CC4], [0x0CC7, 0x0CC8], [0x0CCA, 0x0CCB], [0x0CD5, 0x0CD6], [0x0D02, 0x0D03], [0x0D3E, 0x0D40], [0x0D46, 0x0D48], [0x0D4A, 0x0D4C], [0x0D57, 0x0D57], [0x0F3E, 0x0F3F], [0x0F7F, 0x0F7F]];
-Nd = [[0x0030, 0x0039], [0x0660, 0x0669], [0x06F0, 0x06F9], [0x0966, 0x096F], [0x09E6, 0x09EF], [0x0A66, 0x0A6F], [0x0AE6, 0x0AEF], [0x0B66, 0x0B6F], [0x0BE7, 0x0BEF], [0x0C66, 0x0C6F], [0x0CE6, 0x0CEF], [0x0D66, 0x0D6F], [0x0E50, 0x0E59], [0x0ED0, 0x0ED9], [0x0F20, 0x0F29], [0xFF10, 0xFF19]];
-Pc = [[0x005F, 0x005F], [0x203F, 0x2040], [0x30FB, 0x30FB], [0xFE33, 0xFE34], [0xFE4D, 0xFE4F], [0xFF3F, 0xFF3F], [0xFF65, 0xFF65]];
-
-UnicodeLetterLu = [];
-UnicodeLetterLl = [];
-UnicodeLetterLt = [];
-UnicodeLetterLm = [];
-UnicodeLetterLo = [];
-UnicodeLetterNl = [];
-UnicodeLetterMn = [];
-UnicodeLetterMc = [];
-UnicodeLetterNd = [];
-UnicodeLetterPc = [];
-
-for (indexI = 0; indexI < Lu.length; indexI++) {
- for (indexJ = Lu[indexI][0]; indexJ <= Lu[indexI][1]; indexJ++) {
- UnicodeLetterLu[indexJ] = true;
- }
-}
-for (indexI = 0; indexI < Ll.length; indexI++) {
- for (indexJ = Ll[indexI][0]; indexJ <= Ll[indexI][1]; indexJ++) {
- UnicodeLetterLl[indexJ] = true;
- }
-}
-for (indexI = 0; indexI < Lt.length; indexI++) {
- for (indexJ = Lt[indexI][0]; indexJ <= Lt[indexI][1]; indexJ++) {
- UnicodeLetterLt[indexJ] = true;
- }
-}
-for (indexI = 0; indexI < Lm.length; indexI++) {
- for (indexJ = Lm[indexI][0]; indexJ <= Lm[indexI][1]; indexJ++) {
- UnicodeLetterLm[indexJ] = true;
- }
-}
-for (indexI = 0; indexI < Lo.length; indexI++) {
- for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
- UnicodeLetterLo[indexJ] = true;
- }
-}
-for (indexI = 0; indexI < Nl.length; indexI++) {
- for (indexJ = Nl[indexI][0]; indexJ <= Nl[indexI][1]; indexJ++) {
- UnicodeLetterNl[indexJ] = true;
- }
-}
-for (indexI = 0; indexI < Mn.length; indexI++) {
- for (indexJ = Mn[indexI][0]; indexJ <= Mn[indexI][1]; indexJ++) {
- UnicodeLetterMn[indexJ] = true;
- }
-}
-for (indexI = 0; indexI < Mc.length; indexI++) {
- for (indexJ = Mc[indexI][0]; indexJ <= Mc[indexI][1]; indexJ++) {
- UnicodeLetterMc[indexJ] = true;
- }
-}
-for (indexI = 0; indexI < Nd.length; indexI++) {
- for (indexJ = Nd[indexI][0]; indexJ <= Nd[indexI][1]; indexJ++) {
- UnicodeLetterNd[indexJ] = true;
- }
-}
-for (indexI = 0; indexI < Pc.length; indexI++) {
- for (indexJ = Pc[indexI][0]; indexJ <= Pc[indexI][1]; indexJ++) {
- UnicodeLetterPc[indexJ] = true;
- }
-}
-
-errorCount = 0;
-count = 0;
-var indexP;
-var indexO = 0;
-for (index = 0; index <= 65535; index++) {
- if ((UnicodeLetterLu[index] === undefined) && (UnicodeLetterLl[index] === undefined) && (UnicodeLetterLt[index] === undefined) && (UnicodeLetterLm[index] === undefined) && (UnicodeLetterLo[index] === undefined) && (UnicodeLetterNl[index] === undefined) && (UnicodeLetterMn[index] === undefined) && (UnicodeLetterMc[index] === undefined) && (UnicodeLetterNd[index] === undefined) && (UnicodeLetterPc[index] === undefined) && (index !== 0x0024) && (index !== 0x005F)) {
- try {
- var identifier = "$" + String.fromCharCode(index) + "1";
- eval("var " + identifier + "=1");
- if (indexO === 0) {
- indexO = index;
- } else {
- if ((index - indexP) !== 1) {
- if ((indexP - indexO) !== 0) {
- var hexP = decimalToHexString(indexP);
- var hexO = decimalToHexString(indexO);
- testFailed('#' + hexO + '-' + hexP + ' ');
- }
- else {
- var hexP = decimalToHexString(indexP);
- testFailed('#' + hexP + ' ');
- }
- indexO = index;
- }
- }
- indexP = index;
- errorCount++;
- } catch (e) {
- }
- count++;
- }
-}
-
-if (errorCount > 0) {
- if ((indexP - indexO) !== 0) {
- var hexP = decimalToHexString(indexP);
- var hexO = decimalToHexString(indexO);
- testFailed('#' + hexO + '-' + hexP + ' ');
- } else {
- var hexP = decimalToHexString(indexP);
- testFailed('#' + hexP + ' ');
- }
- testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
-}
-
-function decimalToHexString(n) {
- n = Number(n);
- var h = "";
- for (var i = 3; i >= 0; i--) {
- if (n >= Math.pow(16, i)) {
- var t = Math.floor(n / Math.pow(16, i));
- n -= t * Math.pow(16, i);
- if ( t >= 10 ) {
- if ( t == 10 ) { h += "A"; }
- if ( t == 11 ) { h += "B"; }
- if ( t == 12 ) { h += "C"; }
- if ( t == 13 ) { h += "D"; }
- if ( t == 14 ) { h += "E"; }
- if ( t == 15 ) { h += "F"; }
- } else {
- h += String(t);
- }
- } else {
- h += "0";
- }
- }
- return h;
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_218S76_A32htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_218S76_A32htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,207 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S7.6_A3.2</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S7.6_A3.2;
+ * @section: 7.6;
+ * @assertion: IdentifierName must begin only IdentifierStart character;
+ * @description: Complex test with eval;
+*/
+
+//CHECK
+Lu = [[0x0041, 0x005A], [0x00C0, 0x00D6], [0x00D8, 0x00DE], [0x0100, 0x0100], [0x0102, 0x0102], [0x0104, 0x0104], [0x0106, 0x0106], [0x0108, 0x0108], [0x010A, 0x010A], [0x010C, 0x010C], [0x010E, 0x010E], [0x0110, 0x0110], [0x0112, 0x0112], [0x0114, 0x0114], [0x0116, 0x0116], [0x0118, 0x0118], [0x011A, 0x011A], [0x011C, 0x011C], [0x011E, 0x011E], [0x0120, 0x0120], [0x0122, 0x0122], [0x0124, 0x0124], [0x0126, 0x0126], [0x0128, 0x0128], [0x012A, 0x012A], [0x012C, 0x012C], [0x012E, 0x012E], [0x0130, 0x0130], [0x0132, 0x0132], [0x0134, 0x0134], [0x0136, 0x0136], [0x0139, 0x0139], [0x013B, 0x013B], [0x013D, 0x013D], [0x013F, 0x013F], [0x0141, 0x0141], [0x0143, 0x0143], [0x0145, 0x0145], [0x0147, 0x0147], [0x014A, 0x014A], [0x014C, 0x014C], [0x014E, 0x014E], [0x0150, 0x0150], [0x0152, 0x0152], [0x0154, 0x0154], [0x0156, 0x0156], [0x0158, 0x0158], [0x015A, 0x015A], [0x015C, 0x015C], [0x015E, 0x015E], [0x0160, 0x0160], [0x0162, 0x0162], [0x0164, 0x0164], [0x0166, 0x0166], [0x0168, 0x
0168], [0x016A, 0x016A], [0x016C, 0x016C], [0x016E, 0x016E], [0x0170, 0x0170], [0x0172, 0x0172], [0x0174, 0x0174], [0x0176, 0x0176], [0x0178, 0x0179], [0x017B, 0x017B], [0x017D, 0x017D], [0x0181, 0x0182], [0x0184, 0x0184], [0x0186, 0x0187], [0x0189, 0x018B], [0x018E, 0x0191], [0x0193, 0x0194], [0x0196, 0x0198], [0x019C, 0x019D], [0x019F, 0x01A0], [0x01A2, 0x01A2], [0x01A4, 0x01A4], [0x01A6, 0x01A7], [0x01A9, 0x01A9], [0x01AC, 0x01AC], [0x01AE, 0x01AF], [0x01B1, 0x01B3], [0x01B5, 0x01B5], [0x01B7, 0x01B8], [0x01BC, 0x01BC], [0x01C4, 0x01C4], [0x01C7, 0x01C7], [0x01CA, 0x01CA], [0x01CD, 0x01CD], [0x01CF, 0x01CF], [0x01D1, 0x01D1], [0x01D3, 0x01D3], [0x01D5, 0x01D5], [0x01D7, 0x01D7], [0x01D9, 0x01D9], [0x01DB, 0x01DB], [0x01DE, 0x01DE], [0x01E0, 0x01E0], [0x01E2, 0x01E2], [0x01E4, 0x01E4], [0x01E6, 0x01E6], [0x01E8, 0x01E8], [0x01EA, 0x01EA], [0x01EC, 0x01EC], [0x01EE, 0x01EE], [0x01F1, 0x01F1], [0x01F4, 0x01F4], [0x01FA, 0x01FA], [0x01FC, 0x01FC], [0x01FE, 0x01FE], [0x0200, 0
x0200], [0x0202, 0x0202], [0x0204, 0x0204], [0x0206, 0x0206], [0x0208, 0x0208], [0x020A, 0x020A], [0x020C, 0x020C], [0x020E, 0x020E], [0x0210, 0x0210], [0x0212, 0x0212], [0x0214, 0x0214], [0x0216, 0x0216], [0x0386, 0x0386], [0x0388, 0x038A], [0x038C, 0x038C], [0x038E, 0x038F], [0x0391, 0x03A1], [0x03A3, 0x03AB], [0x03D2, 0x03D4], [0x03DA, 0x03DA], [0x03DC, 0x03DC], [0x03DE, 0x03DE], [0x03E0, 0x03E0], [0x03E2, 0x03E2], [0x03E4, 0x03E4], [0x03E6, 0x03E6], [0x03E8, 0x03E8], [0x03EA, 0x03EA], [0x03EC, 0x03EC], [0x03EE, 0x03EE], [0x0401, 0x040C], [0x040E, 0x042F], [0x0460, 0x0460], [0x0462, 0x0462], [0x0464, 0x0464], [0x0466, 0x0466], [0x0468, 0x0468], [0x046A, 0x046A], [0x046C, 0x046C], [0x046E, 0x046E], [0x0470, 0x0470], [0x0472, 0x0472], [0x0474, 0x0474], [0x0476, 0x0476], [0x0478, 0x0478], [0x047A, 0x047A], [0x047C, 0x047C], [0x047E, 0x047E], [0x0480, 0x0480], [0x0490, 0x0490], [0x0492, 0x0492], [0x0494, 0x0494], [0x0496, 0x0496], [0x0498, 0x0498], [0x049A, 0x049A], [0x049C,
0x049C], [0x049E, 0x049E], [0x04A0, 0x04A0], [0x04A2, 0x04A2], [0x04A4, 0x04A4], [0x04A6, 0x04A6], [0x04A8, 0x04A8], [0x04AA, 0x04AA], [0x04AC, 0x04AC], [0x04AE, 0x04AE], [0x04B0, 0x04B0], [0x04B2, 0x04B2], [0x04B4, 0x04B4], [0x04B6, 0x04B6], [0x04B8, 0x04B8], [0x04BA, 0x04BA], [0x04BC, 0x04BC], [0x04BE, 0x04BE], [0x04C1, 0x04C1], [0x04C3, 0x04C3], [0x04C7, 0x04C7], [0x04CB, 0x04CB], [0x04D0, 0x04D0], [0x04D2, 0x04D2], [0x04D4, 0x04D4], [0x04D6, 0x04D6], [0x04D8, 0x04D8], [0x04DA, 0x04DA], [0x04DC, 0x04DC], [0x04DE, 0x04DE], [0x04E0, 0x04E0], [0x04E2, 0x04E2], [0x04E4, 0x04E4], [0x04E6, 0x04E6], [0x04E8, 0x04E8], [0x04EA, 0x04EA], [0x04EE, 0x04EE], [0x04F0, 0x04F0], [0x04F2, 0x04F2], [0x04F4, 0x04F4], [0x04F8, 0x04F8], [0x0531, 0x0556], [0x10A0, 0x10C5], [0x1E00, 0x1E00], [0x1E02, 0x1E02], [0x1E04, 0x1E04], [0x1E06, 0x1E06], [0x1E08, 0x1E08], [0x1E0A, 0x1E0A], [0x1E0C, 0x1E0C], [0x1E0E, 0x1E0E], [0x1E10, 0x1E10], [0x1E12, 0x1E12], [0x1E14, 0x1E14], [0x1E16, 0x1E16], [0x1E18,
0x1E18], [0x1E1A, 0x1E1A], [0x1E1C, 0x1E1C], [0x1E1E, 0x1E1E], [0x1E20, 0x1E20], [0x1E22, 0x1E22], [0x1E24, 0x1E24], [0x1E26, 0x1E26], [0x1E28, 0x1E28], [0x1E2A, 0x1E2A], [0x1E2C, 0x1E2C], [0x1E2E, 0x1E2E], [0x1E30, 0x1E30], [0x1E32, 0x1E32], [0x1E34, 0x1E34], [0x1E36, 0x1E36], [0x1E38, 0x1E38], [0x1E3A, 0x1E3A], [0x1E3C, 0x1E3C], [0x1E3E, 0x1E3E], [0x1E40, 0x1E40], [0x1E42, 0x1E42], [0x1E44, 0x1E44], [0x1E46, 0x1E46], [0x1E48, 0x1E48], [0x1E4A, 0x1E4A], [0x1E4C, 0x1E4C], [0x1E4E, 0x1E4E], [0x1E50, 0x1E50], [0x1E52, 0x1E52], [0x1E54, 0x1E54], [0x1E56, 0x1E56], [0x1E58, 0x1E58], [0x1E5A, 0x1E5A], [0x1E5C, 0x1E5C], [0x1E5E, 0x1E5E], [0x1E60, 0x1E60], [0x1E62, 0x1E62], [0x1E64, 0x1E64], [0x1E66, 0x1E66], [0x1E68, 0x1E68], [0x1E6A, 0x1E6A], [0x1E6C, 0x1E6C], [0x1E6E, 0x1E6E], [0x1E70, 0x1E70], [0x1E72, 0x1E72], [0x1E74, 0x1E74], [0x1E76, 0x1E76], [0x1E78, 0x1E78], [0x1E7A, 0x1E7A], [0x1E7C, 0x1E7C], [0x1E7E, 0x1E7E], [0x1E80, 0x1E80], [0x1E82, 0x1E82], [0x1E84, 0x1E84], [0x1E86
, 0x1E86], [0x1E88, 0x1E88], [0x1E8A, 0x1E8A], [0x1E8C, 0x1E8C], [0x1E8E, 0x1E8E], [0x1E90, 0x1E90], [0x1E92, 0x1E92], [0x1E94, 0x1E94], [0x1EA0, 0x1EA0], [0x1EA2, 0x1EA2], [0x1EA4, 0x1EA4], [0x1EA6, 0x1EA6], [0x1EA8, 0x1EA8], [0x1EAA, 0x1EAA], [0x1EAC, 0x1EAC], [0x1EAE, 0x1EAE], [0x1EB0, 0x1EB0], [0x1EB2, 0x1EB2], [0x1EB4, 0x1EB4], [0x1EB6, 0x1EB6], [0x1EB8, 0x1EB8], [0x1EBA, 0x1EBA], [0x1EBC, 0x1EBC], [0x1EBE, 0x1EBE], [0x1EC0, 0x1EC0], [0x1EC2, 0x1EC2], [0x1EC4, 0x1EC4], [0x1EC6, 0x1EC6], [0x1EC8, 0x1EC8], [0x1ECA, 0x1ECA], [0x1ECC, 0x1ECC], [0x1ECE, 0x1ECE], [0x1ED0, 0x1ED0], [0x1ED2, 0x1ED2], [0x1ED4, 0x1ED4], [0x1ED6, 0x1ED6], [0x1ED8, 0x1ED8], [0x1EDA, 0x1EDA], [0x1EDC, 0x1EDC], [0x1EDE, 0x1EDE], [0x1EE0, 0x1EE0], [0x1EE2, 0x1EE2], [0x1EE4, 0x1EE4], [0x1EE6, 0x1EE6], [0x1EE8, 0x1EE8], [0x1EEA, 0x1EEA], [0x1EEC, 0x1EEC], [0x1EEE, 0x1EEE], [0x1EF0, 0x1EF0], [0x1EF2, 0x1EF2], [0x1EF4, 0x1EF4], [0x1EF6, 0x1EF6], [0x1EF8, 0x1EF8], [0x1F08, 0x1F0F], [0x1F18, 0x1F1D], [0x1F2
8, 0x1F2F], [0x1F38, 0x1F3F], [0x1F48, 0x1F4D], [0x1F59, 0x1F59], [0x1F5B, 0x1F5B], [0x1F5D, 0x1F5D], [0x1F5F, 0x1F5F], [0x1F68, 0x1F6F], [0x1F88, 0x1F8F], [0x1F98, 0x1F9F], [0x1FA8, 0x1FAF], [0x1FB8, 0x1FBC], [0x1FC8, 0x1FCC], [0x1FD8, 0x1FDB], [0x1FE8, 0x1FEC], [0x1FF8, 0x1FFC], [0x2102, 0x2102], [0x2107, 0x2107], [0x210B, 0x210D], [0x2110, 0x2112], [0x2115, 0x2115], [0x2119, 0x211D], [0x2124, 0x2124], [0x2126, 0x2126], [0x2128, 0x2128], [0x212A, 0x212D], [0x2130, 0x2131], [0x2133, 0x2133], [0xFF21, 0xFF3A]];
+Ll = [[0x0061, 0x007A], [0x00AA, 0x00AA], [0x00B5, 0x00B5], [0x00BA, 0x00BA], [0x00DF, 0x00F6], [0x00F8, 0x00FF], [0x0101, 0x0101], [0x0103, 0x0103], [0x0105, 0x0105], [0x0107, 0x0107], [0x0109, 0x0109], [0x010B, 0x010B], [0x010D, 0x010D], [0x010F, 0x010F], [0x0111, 0x0111], [0x0113, 0x0113], [0x0115, 0x0115], [0x0117, 0x0117], [0x0119, 0x0119], [0x011B, 0x011B], [0x011D, 0x011D], [0x011F, 0x011F], [0x0121, 0x0121], [0x0123, 0x0123], [0x0125, 0x0125], [0x0127, 0x0127], [0x0129, 0x0129], [0x012B, 0x012B], [0x012D, 0x012D], [0x012F, 0x012F], [0x0131, 0x0131], [0x0133, 0x0133], [0x0135, 0x0135], [0x0137, 0x0138], [0x013A, 0x013A], [0x013C, 0x013C], [0x013E, 0x013E], [0x0140, 0x0140], [0x0142, 0x0142], [0x0144, 0x0144], [0x0146, 0x0146], [0x0148, 0x0149], [0x014B, 0x014B], [0x014D, 0x014D], [0x014F, 0x014F], [0x0151, 0x0151], [0x0153, 0x0153], [0x0155, 0x0155], [0x0157, 0x0157], [0x0159, 0x0159], [0x015B, 0x015B], [0x015D, 0x015D], [0x015F, 0x015F], [0x0161, 0x0161], [0x0163, 0x
0163], [0x0165, 0x0165], [0x0167, 0x0167], [0x0169, 0x0169], [0x016B, 0x016B], [0x016D, 0x016D], [0x016F, 0x016F], [0x0171, 0x0171], [0x0173, 0x0173], [0x0175, 0x0175], [0x0177, 0x0177], [0x017A, 0x017A], [0x017C, 0x017C], [0x017E, 0x0180], [0x0183, 0x0183], [0x0185, 0x0185], [0x0188, 0x0188], [0x018C, 0x018D], [0x0192, 0x0192], [0x0195, 0x0195], [0x0199, 0x019B], [0x019E, 0x019E], [0x01A1, 0x01A1], [0x01A3, 0x01A3], [0x01A5, 0x01A5], [0x01A8, 0x01A8], [0x01AB, 0x01AB], [0x01AD, 0x01AD], [0x01B0, 0x01B0], [0x01B4, 0x01B4], [0x01B6, 0x01B6], [0x01B9, 0x01BA], [0x01BD, 0x01BD], [0x01C6, 0x01C6], [0x01C9, 0x01C9], [0x01CC, 0x01CC], [0x01CE, 0x01CE], [0x01D0, 0x01D0], [0x01D2, 0x01D2], [0x01D4, 0x01D4], [0x01D6, 0x01D6], [0x01D8, 0x01D8], [0x01DA, 0x01DA], [0x01DC, 0x01DD], [0x01DF, 0x01DF], [0x01E1, 0x01E1], [0x01E3, 0x01E3], [0x01E5, 0x01E5], [0x01E7, 0x01E7], [0x01E9, 0x01E9], [0x01EB, 0x01EB], [0x01ED, 0x01ED], [0x01EF, 0x01F0], [0x01F3, 0x01F3], [0x01F5, 0x01F5], [0x01FB, 0
x01FB], [0x01FD, 0x01FD], [0x01FF, 0x01FF], [0x0201, 0x0201], [0x0203, 0x0203], [0x0205, 0x0205], [0x0207, 0x0207], [0x0209, 0x0209], [0x020B, 0x020B], [0x020D, 0x020D], [0x020F, 0x020F], [0x0211, 0x0211], [0x0213, 0x0213], [0x0215, 0x0215], [0x0217, 0x0217], [0x0250, 0x02A8], [0x0390, 0x0390], [0x03AC, 0x03CE], [0x03D0, 0x03D1], [0x03D5, 0x03D6], [0x03E3, 0x03E3], [0x03E5, 0x03E5], [0x03E7, 0x03E7], [0x03E9, 0x03E9], [0x03EB, 0x03EB], [0x03ED, 0x03ED], [0x03EF, 0x03F2], [0x0430, 0x044F], [0x0451, 0x045C], [0x045E, 0x045F], [0x0461, 0x0461], [0x0463, 0x0463], [0x0465, 0x0465], [0x0467, 0x0467], [0x0469, 0x0469], [0x046B, 0x046B], [0x046D, 0x046D], [0x046F, 0x046F], [0x0471, 0x0471], [0x0473, 0x0473], [0x0475, 0x0475], [0x0477, 0x0477], [0x0479, 0x0479], [0x047B, 0x047B], [0x047D, 0x047D], [0x047F, 0x047F], [0x0481, 0x0481], [0x0491, 0x0491], [0x0493, 0x0493], [0x0495, 0x0495], [0x0497, 0x0497], [0x0499, 0x0499], [0x049B, 0x049B], [0x049D, 0x049D], [0x049F, 0x049F], [0x04A1,
0x04A1], [0x04A3, 0x04A3], [0x04A5, 0x04A5], [0x04A7, 0x04A7], [0x04A9, 0x04A9], [0x04AB, 0x04AB], [0x04AD, 0x04AD], [0x04AF, 0x04AF], [0x04B1, 0x04B1], [0x04B3, 0x04B3], [0x04B5, 0x04B5], [0x04B7, 0x04B7], [0x04B9, 0x04B9], [0x04BB, 0x04BB], [0x04BD, 0x04BD], [0x04BF, 0x04BF], [0x04C2, 0x04C2], [0x04C4, 0x04C4], [0x04C8, 0x04C8], [0x04CC, 0x04CC], [0x04D1, 0x04D1], [0x04D3, 0x04D3], [0x04D5, 0x04D5], [0x04D7, 0x04D7], [0x04D9, 0x04D9], [0x04DB, 0x04DB], [0x04DD, 0x04DD], [0x04DF, 0x04DF], [0x04E1, 0x04E1], [0x04E3, 0x04E3], [0x04E5, 0x04E5], [0x04E7, 0x04E7], [0x04E9, 0x04E9], [0x04EB, 0x04EB], [0x04EF, 0x04EF], [0x04F1, 0x04F1], [0x04F3, 0x04F3], [0x04F5, 0x04F5], [0x04F9, 0x04F9], [0x0561, 0x0587], [0x10D0, 0x10F6], [0x1E01, 0x1E01], [0x1E03, 0x1E03], [0x1E05, 0x1E05], [0x1E07, 0x1E07], [0x1E09, 0x1E09], [0x1E0B, 0x1E0B], [0x1E0D, 0x1E0D], [0x1E0F, 0x1E0F], [0x1E11, 0x1E11], [0x1E13, 0x1E13], [0x1E15, 0x1E15], [0x1E17, 0x1E17], [0x1E19, 0x1E19], [0x1E1B, 0x1E1B], [0x1E1D,
0x1E1D], [0x1E1F, 0x1E1F], [0x1E21, 0x1E21], [0x1E23, 0x1E23], [0x1E25, 0x1E25], [0x1E27, 0x1E27], [0x1E29, 0x1E29], [0x1E2B, 0x1E2B], [0x1E2D, 0x1E2D], [0x1E2F, 0x1E2F], [0x1E31, 0x1E31], [0x1E33, 0x1E33], [0x1E35, 0x1E35], [0x1E37, 0x1E37], [0x1E39, 0x1E39], [0x1E3B, 0x1E3B], [0x1E3D, 0x1E3D], [0x1E3F, 0x1E3F], [0x1E41, 0x1E41], [0x1E43, 0x1E43], [0x1E45, 0x1E45], [0x1E47, 0x1E47], [0x1E49, 0x1E49], [0x1E4B, 0x1E4B], [0x1E4D, 0x1E4D], [0x1E4F, 0x1E4F], [0x1E51, 0x1E51], [0x1E53, 0x1E53], [0x1E55, 0x1E55], [0x1E57, 0x1E57], [0x1E59, 0x1E59], [0x1E5B, 0x1E5B], [0x1E5D, 0x1E5D], [0x1E5F, 0x1E5F], [0x1E61, 0x1E61], [0x1E63, 0x1E63], [0x1E65, 0x1E65], [0x1E67, 0x1E67], [0x1E69, 0x1E69], [0x1E6B, 0x1E6B], [0x1E6D, 0x1E6D], [0x1E6F, 0x1E6F], [0x1E71, 0x1E71], [0x1E73, 0x1E73], [0x1E75, 0x1E75], [0x1E77, 0x1E77], [0x1E79, 0x1E79], [0x1E7B, 0x1E7B], [0x1E7D, 0x1E7D], [0x1E7F, 0x1E7F], [0x1E81, 0x1E81], [0x1E83, 0x1E83], [0x1E85, 0x1E85], [0x1E87, 0x1E87], [0x1E89, 0x1E89], [0x1E8B
, 0x1E8B], [0x1E8D, 0x1E8D], [0x1E8F, 0x1E8F], [0x1E91, 0x1E91], [0x1E93, 0x1E93], [0x1E95, 0x1E9B], [0x1EA1, 0x1EA1], [0x1EA3, 0x1EA3], [0x1EA5, 0x1EA5], [0x1EA7, 0x1EA7], [0x1EA9, 0x1EA9], [0x1EAB, 0x1EAB], [0x1EAD, 0x1EAD], [0x1EAF, 0x1EAF], [0x1EB1, 0x1EB1], [0x1EB3, 0x1EB3], [0x1EB5, 0x1EB5], [0x1EB7, 0x1EB7], [0x1EB9, 0x1EB9], [0x1EBB, 0x1EBB], [0x1EBD, 0x1EBD], [0x1EBF, 0x1EBF], [0x1EC1, 0x1EC1], [0x1EC3, 0x1EC3], [0x1EC5, 0x1EC5], [0x1EC7, 0x1EC7], [0x1EC9, 0x1EC9], [0x1ECB, 0x1ECB], [0x1ECD, 0x1ECD], [0x1ECF, 0x1ECF], [0x1ED1, 0x1ED1], [0x1ED3, 0x1ED3], [0x1ED5, 0x1ED5], [0x1ED7, 0x1ED7], [0x1ED9, 0x1ED9], [0x1EDB, 0x1EDB], [0x1EDD, 0x1EDD], [0x1EDF, 0x1EDF], [0x1EE1, 0x1EE1], [0x1EE3, 0x1EE3], [0x1EE5, 0x1EE5], [0x1EE7, 0x1EE7], [0x1EE9, 0x1EE9], [0x1EEB, 0x1EEB], [0x1EED, 0x1EED], [0x1EEF, 0x1EEF], [0x1EF1, 0x1EF1], [0x1EF3, 0x1EF3], [0x1EF5, 0x1EF5], [0x1EF7, 0x1EF7], [0x1EF9, 0x1EF9], [0x1F00, 0x1F07], [0x1F10, 0x1F15], [0x1F20, 0x1F27], [0x1F30, 0x1F37], [0x1F4
0, 0x1F45], [0x1F50, 0x1F57], [0x1F60, 0x1F67], [0x1F70, 0x1F7D], [0x1F80, 0x1F87], [0x1F90, 0x1F97], [0x1FA0, 0x1FA7], [0x1FB0, 0x1FB4], [0x1FB6, 0x1FB7], [0x1FBE, 0x1FBE], [0x1FC2, 0x1FC4], [0x1FC6, 0x1FC7], [0x1FD0, 0x1FD3], [0x1FD6, 0x1FD7], [0x1FE0, 0x1FE7], [0x1FF2, 0x1FF4], [0x1FF6, 0x1FF7], [0x207F, 0x207F], [0x210A, 0x210A], [0x210E, 0x210F], [0x2113, 0x2113], [0x2118, 0x2118], [0x212E, 0x212F], [0x2134, 0x2134], [0xFB00, 0xFB06], [0xFB13, 0xFB17], [0xFF41, 0xFF5A]];
+Lt = [[0x01C5, 0x01C5], [0x01C8, 0x01C8], [0x01CB, 0x01CB], [0x01F2, 0x01F2]];
+Lm = [[0x02B0, 0x02B8], [0x02BB, 0x02C1], [0x02D0, 0x02D1], [0x02E0, 0x02E4], [0x037A, 0x037A], [0x0559, 0x0559], [0x0640, 0x0640], [0x06E5, 0x06E6], [0x0E46, 0x0E46], [0x0EC6, 0x0EC6], [0x3005, 0x3005], [0x3031, 0x3035], [0x309D, 0x309E], [0x30FC, 0x30FE], [0xFF70, 0xFF70], [0xFF9E, 0xFF9F]];
+Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0
x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+Nl = [[0x2160, 0x2182], [0x3007, 0x3007], [0x3021, 0x3029]];
+
+UnicodeLetterLu = [];
+UnicodeLetterLl = [];
+UnicodeLetterLt = [];
+UnicodeLetterLm = [];
+UnicodeLetterLo = [];
+UnicodeLetterNl = [];
+
+for (indexI = 0; indexI < Lu.length; indexI++) {
+ for (indexJ = Lu[indexI][0]; indexJ <= Lu[indexI][1]; indexJ++) {
+ UnicodeLetterLu[indexJ] = true;
+ }
+}
+for (indexI = 0; indexI < Ll.length; indexI++) {
+ for (indexJ = Ll[indexI][0]; indexJ <= Ll[indexI][1]; indexJ++) {
+ UnicodeLetterLl[indexJ] = true;
+ }
+}
+for (indexI = 0; indexI < Lt.length; indexI++) {
+ for (indexJ = Lt[indexI][0]; indexJ <= Lt[indexI][1]; indexJ++) {
+ UnicodeLetterLt[indexJ] = true;
+ }
+}
+for (indexI = 0; indexI < Lm.length; indexI++) {
+ for (indexJ = Lm[indexI][0]; indexJ <= Lm[indexI][1]; indexJ++) {
+ UnicodeLetterLm[indexJ] = true;
+ }
+}
+for (indexI = 0; indexI < Lo.length; indexI++) {
+ for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
+ UnicodeLetterLo[indexJ] = true;
+ }
+}
+for (indexI = 0; indexI < Nl.length; indexI++) {
+ for (indexJ = Nl[indexI][0]; indexJ <= Nl[indexI][1]; indexJ++) {
+ UnicodeLetterNl[indexJ] = true;
+ }
+}
+
+errorCount = 0;
+count = 0;
+var indexP;
+var indexO = 0;
+for (index = 0; index <= 65535; index++) {
+ if ((UnicodeLetterLu[index] === undefined) && (UnicodeLetterLl[index] === undefined) && (UnicodeLetterLt[index] === undefined) && (UnicodeLetterLm[index] === undefined) && (UnicodeLetterLo[index] === undefined) && (UnicodeLetterNl[index] === undefined) && (index !== 0x0024) && (index !== 0x005F)) {
+ try {
+ var identifier = String.fromCharCode(index);
+ eval("var " + identifier + "=1");
+ if (errorCount === 0) {
+ indexO = index;
+ } else {
+ if ((index - indexP) !== 1) {
+ if ((indexP - indexO) !== 0) {
+ var hexP = decimalToHexString(indexP);
+ var hexO = decimalToHexString(indexO);
+ testFailed('#' + hexO + '-' + hexP + ' ');
+ }
+ else {
+ var hexP = decimalToHexString(indexP);
+ testFailed('#' + hexP + ' ');
+ }
+ indexO = index;
+ }
+ }
+ indexP = index;
+ errorCount++;
+ } catch (e) {
+ }
+ count++;
+ }
+}
+
+if (errorCount > 0) {
+ if ((indexP - indexO) !== 0) {
+ var hexP = decimalToHexString(indexP);
+ var hexO = decimalToHexString(indexO);
+ testFailed('#' + hexO + '-' + hexP + ' ');
+ } else {
+ var hexP = decimalToHexString(indexP);
+ testFailed('#' + hexP + ' ');
+ }
+ testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
+}
+
+function decimalToHexString(n) {
+ n = Number(n);
+ var h = "";
+ for (var i = 3; i >= 0; i--) {
+ if (n >= Math.pow(16, i)) {
+ var t = Math.floor(n / Math.pow(16, i));
+ n -= t * Math.pow(16, i);
+ if ( t >= 10 ) {
+ if ( t == 10 ) { h += "A"; }
+ if ( t == 11 ) { h += "B"; }
+ if ( t == 12 ) { h += "C"; }
+ if ( t == 13 ) { h += "D"; }
+ if ( t == 14 ) { h += "E"; }
+ if ( t == 15 ) { h += "F"; }
+ } else {
+ h += String(t);
+ }
+ } else {
+ h += "0";
+ }
+ }
+ return h;
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_218S76_A32htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,207 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S7.6_A3.2</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S7.6_A3.2;
- * @section: 7.6;
- * @assertion: IdentifierName must begin only IdentifierStart character;
- * @description: Complex test with eval;
-*/
-
-//CHECK
-Lu = [[0x0041, 0x005A], [0x00C0, 0x00D6], [0x00D8, 0x00DE], [0x0100, 0x0100], [0x0102, 0x0102], [0x0104, 0x0104], [0x0106, 0x0106], [0x0108, 0x0108], [0x010A, 0x010A], [0x010C, 0x010C], [0x010E, 0x010E], [0x0110, 0x0110], [0x0112, 0x0112], [0x0114, 0x0114], [0x0116, 0x0116], [0x0118, 0x0118], [0x011A, 0x011A], [0x011C, 0x011C], [0x011E, 0x011E], [0x0120, 0x0120], [0x0122, 0x0122], [0x0124, 0x0124], [0x0126, 0x0126], [0x0128, 0x0128], [0x012A, 0x012A], [0x012C, 0x012C], [0x012E, 0x012E], [0x0130, 0x0130], [0x0132, 0x0132], [0x0134, 0x0134], [0x0136, 0x0136], [0x0139, 0x0139], [0x013B, 0x013B], [0x013D, 0x013D], [0x013F, 0x013F], [0x0141, 0x0141], [0x0143, 0x0143], [0x0145, 0x0145], [0x0147, 0x0147], [0x014A, 0x014A], [0x014C, 0x014C], [0x014E, 0x014E], [0x0150, 0x0150], [0x0152, 0x0152], [0x0154, 0x0154], [0x0156, 0x0156], [0x0158, 0x0158], [0x015A, 0x015A], [0x015C, 0x015C], [0x015E, 0x015E], [0x0160, 0x0160], [0x0162, 0x0162], [0x0164, 0x0164], [0x0166, 0x0166], [0x0168, 0x
0168], [0x016A, 0x016A], [0x016C, 0x016C], [0x016E, 0x016E], [0x0170, 0x0170], [0x0172, 0x0172], [0x0174, 0x0174], [0x0176, 0x0176], [0x0178, 0x0179], [0x017B, 0x017B], [0x017D, 0x017D], [0x0181, 0x0182], [0x0184, 0x0184], [0x0186, 0x0187], [0x0189, 0x018B], [0x018E, 0x0191], [0x0193, 0x0194], [0x0196, 0x0198], [0x019C, 0x019D], [0x019F, 0x01A0], [0x01A2, 0x01A2], [0x01A4, 0x01A4], [0x01A6, 0x01A7], [0x01A9, 0x01A9], [0x01AC, 0x01AC], [0x01AE, 0x01AF], [0x01B1, 0x01B3], [0x01B5, 0x01B5], [0x01B7, 0x01B8], [0x01BC, 0x01BC], [0x01C4, 0x01C4], [0x01C7, 0x01C7], [0x01CA, 0x01CA], [0x01CD, 0x01CD], [0x01CF, 0x01CF], [0x01D1, 0x01D1], [0x01D3, 0x01D3], [0x01D5, 0x01D5], [0x01D7, 0x01D7], [0x01D9, 0x01D9], [0x01DB, 0x01DB], [0x01DE, 0x01DE], [0x01E0, 0x01E0], [0x01E2, 0x01E2], [0x01E4, 0x01E4], [0x01E6, 0x01E6], [0x01E8, 0x01E8], [0x01EA, 0x01EA], [0x01EC, 0x01EC], [0x01EE, 0x01EE], [0x01F1, 0x01F1], [0x01F4, 0x01F4], [0x01FA, 0x01FA], [0x01FC, 0x01FC], [0x01FE, 0x01FE], [0x0200, 0
x0200], [0x0202, 0x0202], [0x0204, 0x0204], [0x0206, 0x0206], [0x0208, 0x0208], [0x020A, 0x020A], [0x020C, 0x020C], [0x020E, 0x020E], [0x0210, 0x0210], [0x0212, 0x0212], [0x0214, 0x0214], [0x0216, 0x0216], [0x0386, 0x0386], [0x0388, 0x038A], [0x038C, 0x038C], [0x038E, 0x038F], [0x0391, 0x03A1], [0x03A3, 0x03AB], [0x03D2, 0x03D4], [0x03DA, 0x03DA], [0x03DC, 0x03DC], [0x03DE, 0x03DE], [0x03E0, 0x03E0], [0x03E2, 0x03E2], [0x03E4, 0x03E4], [0x03E6, 0x03E6], [0x03E8, 0x03E8], [0x03EA, 0x03EA], [0x03EC, 0x03EC], [0x03EE, 0x03EE], [0x0401, 0x040C], [0x040E, 0x042F], [0x0460, 0x0460], [0x0462, 0x0462], [0x0464, 0x0464], [0x0466, 0x0466], [0x0468, 0x0468], [0x046A, 0x046A], [0x046C, 0x046C], [0x046E, 0x046E], [0x0470, 0x0470], [0x0472, 0x0472], [0x0474, 0x0474], [0x0476, 0x0476], [0x0478, 0x0478], [0x047A, 0x047A], [0x047C, 0x047C], [0x047E, 0x047E], [0x0480, 0x0480], [0x0490, 0x0490], [0x0492, 0x0492], [0x0494, 0x0494], [0x0496, 0x0496], [0x0498, 0x0498], [0x049A, 0x049A], [0x049C,
0x049C], [0x049E, 0x049E], [0x04A0, 0x04A0], [0x04A2, 0x04A2], [0x04A4, 0x04A4], [0x04A6, 0x04A6], [0x04A8, 0x04A8], [0x04AA, 0x04AA], [0x04AC, 0x04AC], [0x04AE, 0x04AE], [0x04B0, 0x04B0], [0x04B2, 0x04B2], [0x04B4, 0x04B4], [0x04B6, 0x04B6], [0x04B8, 0x04B8], [0x04BA, 0x04BA], [0x04BC, 0x04BC], [0x04BE, 0x04BE], [0x04C1, 0x04C1], [0x04C3, 0x04C3], [0x04C7, 0x04C7], [0x04CB, 0x04CB], [0x04D0, 0x04D0], [0x04D2, 0x04D2], [0x04D4, 0x04D4], [0x04D6, 0x04D6], [0x04D8, 0x04D8], [0x04DA, 0x04DA], [0x04DC, 0x04DC], [0x04DE, 0x04DE], [0x04E0, 0x04E0], [0x04E2, 0x04E2], [0x04E4, 0x04E4], [0x04E6, 0x04E6], [0x04E8, 0x04E8], [0x04EA, 0x04EA], [0x04EE, 0x04EE], [0x04F0, 0x04F0], [0x04F2, 0x04F2], [0x04F4, 0x04F4], [0x04F8, 0x04F8], [0x0531, 0x0556], [0x10A0, 0x10C5], [0x1E00, 0x1E00], [0x1E02, 0x1E02], [0x1E04, 0x1E04], [0x1E06, 0x1E06], [0x1E08, 0x1E08], [0x1E0A, 0x1E0A], [0x1E0C, 0x1E0C], [0x1E0E, 0x1E0E], [0x1E10, 0x1E10], [0x1E12, 0x1E12], [0x1E14, 0x1E14], [0x1E16, 0x1E16], [0x1E18,
0x1E18], [0x1E1A, 0x1E1A], [0x1E1C, 0x1E1C], [0x1E1E, 0x1E1E], [0x1E20, 0x1E20], [0x1E22, 0x1E22], [0x1E24, 0x1E24], [0x1E26, 0x1E26], [0x1E28, 0x1E28], [0x1E2A, 0x1E2A], [0x1E2C, 0x1E2C], [0x1E2E, 0x1E2E], [0x1E30, 0x1E30], [0x1E32, 0x1E32], [0x1E34, 0x1E34], [0x1E36, 0x1E36], [0x1E38, 0x1E38], [0x1E3A, 0x1E3A], [0x1E3C, 0x1E3C], [0x1E3E, 0x1E3E], [0x1E40, 0x1E40], [0x1E42, 0x1E42], [0x1E44, 0x1E44], [0x1E46, 0x1E46], [0x1E48, 0x1E48], [0x1E4A, 0x1E4A], [0x1E4C, 0x1E4C], [0x1E4E, 0x1E4E], [0x1E50, 0x1E50], [0x1E52, 0x1E52], [0x1E54, 0x1E54], [0x1E56, 0x1E56], [0x1E58, 0x1E58], [0x1E5A, 0x1E5A], [0x1E5C, 0x1E5C], [0x1E5E, 0x1E5E], [0x1E60, 0x1E60], [0x1E62, 0x1E62], [0x1E64, 0x1E64], [0x1E66, 0x1E66], [0x1E68, 0x1E68], [0x1E6A, 0x1E6A], [0x1E6C, 0x1E6C], [0x1E6E, 0x1E6E], [0x1E70, 0x1E70], [0x1E72, 0x1E72], [0x1E74, 0x1E74], [0x1E76, 0x1E76], [0x1E78, 0x1E78], [0x1E7A, 0x1E7A], [0x1E7C, 0x1E7C], [0x1E7E, 0x1E7E], [0x1E80, 0x1E80], [0x1E82, 0x1E82], [0x1E84, 0x1E84], [0x1E86
, 0x1E86], [0x1E88, 0x1E88], [0x1E8A, 0x1E8A], [0x1E8C, 0x1E8C], [0x1E8E, 0x1E8E], [0x1E90, 0x1E90], [0x1E92, 0x1E92], [0x1E94, 0x1E94], [0x1EA0, 0x1EA0], [0x1EA2, 0x1EA2], [0x1EA4, 0x1EA4], [0x1EA6, 0x1EA6], [0x1EA8, 0x1EA8], [0x1EAA, 0x1EAA], [0x1EAC, 0x1EAC], [0x1EAE, 0x1EAE], [0x1EB0, 0x1EB0], [0x1EB2, 0x1EB2], [0x1EB4, 0x1EB4], [0x1EB6, 0x1EB6], [0x1EB8, 0x1EB8], [0x1EBA, 0x1EBA], [0x1EBC, 0x1EBC], [0x1EBE, 0x1EBE], [0x1EC0, 0x1EC0], [0x1EC2, 0x1EC2], [0x1EC4, 0x1EC4], [0x1EC6, 0x1EC6], [0x1EC8, 0x1EC8], [0x1ECA, 0x1ECA], [0x1ECC, 0x1ECC], [0x1ECE, 0x1ECE], [0x1ED0, 0x1ED0], [0x1ED2, 0x1ED2], [0x1ED4, 0x1ED4], [0x1ED6, 0x1ED6], [0x1ED8, 0x1ED8], [0x1EDA, 0x1EDA], [0x1EDC, 0x1EDC], [0x1EDE, 0x1EDE], [0x1EE0, 0x1EE0], [0x1EE2, 0x1EE2], [0x1EE4, 0x1EE4], [0x1EE6, 0x1EE6], [0x1EE8, 0x1EE8], [0x1EEA, 0x1EEA], [0x1EEC, 0x1EEC], [0x1EEE, 0x1EEE], [0x1EF0, 0x1EF0], [0x1EF2, 0x1EF2], [0x1EF4, 0x1EF4], [0x1EF6, 0x1EF6], [0x1EF8, 0x1EF8], [0x1F08, 0x1F0F], [0x1F18, 0x1F1D], [0x1F2
8, 0x1F2F], [0x1F38, 0x1F3F], [0x1F48, 0x1F4D], [0x1F59, 0x1F59], [0x1F5B, 0x1F5B], [0x1F5D, 0x1F5D], [0x1F5F, 0x1F5F], [0x1F68, 0x1F6F], [0x1F88, 0x1F8F], [0x1F98, 0x1F9F], [0x1FA8, 0x1FAF], [0x1FB8, 0x1FBC], [0x1FC8, 0x1FCC], [0x1FD8, 0x1FDB], [0x1FE8, 0x1FEC], [0x1FF8, 0x1FFC], [0x2102, 0x2102], [0x2107, 0x2107], [0x210B, 0x210D], [0x2110, 0x2112], [0x2115, 0x2115], [0x2119, 0x211D], [0x2124, 0x2124], [0x2126, 0x2126], [0x2128, 0x2128], [0x212A, 0x212D], [0x2130, 0x2131], [0x2133, 0x2133], [0xFF21, 0xFF3A]];
-Ll = [[0x0061, 0x007A], [0x00AA, 0x00AA], [0x00B5, 0x00B5], [0x00BA, 0x00BA], [0x00DF, 0x00F6], [0x00F8, 0x00FF], [0x0101, 0x0101], [0x0103, 0x0103], [0x0105, 0x0105], [0x0107, 0x0107], [0x0109, 0x0109], [0x010B, 0x010B], [0x010D, 0x010D], [0x010F, 0x010F], [0x0111, 0x0111], [0x0113, 0x0113], [0x0115, 0x0115], [0x0117, 0x0117], [0x0119, 0x0119], [0x011B, 0x011B], [0x011D, 0x011D], [0x011F, 0x011F], [0x0121, 0x0121], [0x0123, 0x0123], [0x0125, 0x0125], [0x0127, 0x0127], [0x0129, 0x0129], [0x012B, 0x012B], [0x012D, 0x012D], [0x012F, 0x012F], [0x0131, 0x0131], [0x0133, 0x0133], [0x0135, 0x0135], [0x0137, 0x0138], [0x013A, 0x013A], [0x013C, 0x013C], [0x013E, 0x013E], [0x0140, 0x0140], [0x0142, 0x0142], [0x0144, 0x0144], [0x0146, 0x0146], [0x0148, 0x0149], [0x014B, 0x014B], [0x014D, 0x014D], [0x014F, 0x014F], [0x0151, 0x0151], [0x0153, 0x0153], [0x0155, 0x0155], [0x0157, 0x0157], [0x0159, 0x0159], [0x015B, 0x015B], [0x015D, 0x015D], [0x015F, 0x015F], [0x0161, 0x0161], [0x0163, 0x
0163], [0x0165, 0x0165], [0x0167, 0x0167], [0x0169, 0x0169], [0x016B, 0x016B], [0x016D, 0x016D], [0x016F, 0x016F], [0x0171, 0x0171], [0x0173, 0x0173], [0x0175, 0x0175], [0x0177, 0x0177], [0x017A, 0x017A], [0x017C, 0x017C], [0x017E, 0x0180], [0x0183, 0x0183], [0x0185, 0x0185], [0x0188, 0x0188], [0x018C, 0x018D], [0x0192, 0x0192], [0x0195, 0x0195], [0x0199, 0x019B], [0x019E, 0x019E], [0x01A1, 0x01A1], [0x01A3, 0x01A3], [0x01A5, 0x01A5], [0x01A8, 0x01A8], [0x01AB, 0x01AB], [0x01AD, 0x01AD], [0x01B0, 0x01B0], [0x01B4, 0x01B4], [0x01B6, 0x01B6], [0x01B9, 0x01BA], [0x01BD, 0x01BD], [0x01C6, 0x01C6], [0x01C9, 0x01C9], [0x01CC, 0x01CC], [0x01CE, 0x01CE], [0x01D0, 0x01D0], [0x01D2, 0x01D2], [0x01D4, 0x01D4], [0x01D6, 0x01D6], [0x01D8, 0x01D8], [0x01DA, 0x01DA], [0x01DC, 0x01DD], [0x01DF, 0x01DF], [0x01E1, 0x01E1], [0x01E3, 0x01E3], [0x01E5, 0x01E5], [0x01E7, 0x01E7], [0x01E9, 0x01E9], [0x01EB, 0x01EB], [0x01ED, 0x01ED], [0x01EF, 0x01F0], [0x01F3, 0x01F3], [0x01F5, 0x01F5], [0x01FB, 0
x01FB], [0x01FD, 0x01FD], [0x01FF, 0x01FF], [0x0201, 0x0201], [0x0203, 0x0203], [0x0205, 0x0205], [0x0207, 0x0207], [0x0209, 0x0209], [0x020B, 0x020B], [0x020D, 0x020D], [0x020F, 0x020F], [0x0211, 0x0211], [0x0213, 0x0213], [0x0215, 0x0215], [0x0217, 0x0217], [0x0250, 0x02A8], [0x0390, 0x0390], [0x03AC, 0x03CE], [0x03D0, 0x03D1], [0x03D5, 0x03D6], [0x03E3, 0x03E3], [0x03E5, 0x03E5], [0x03E7, 0x03E7], [0x03E9, 0x03E9], [0x03EB, 0x03EB], [0x03ED, 0x03ED], [0x03EF, 0x03F2], [0x0430, 0x044F], [0x0451, 0x045C], [0x045E, 0x045F], [0x0461, 0x0461], [0x0463, 0x0463], [0x0465, 0x0465], [0x0467, 0x0467], [0x0469, 0x0469], [0x046B, 0x046B], [0x046D, 0x046D], [0x046F, 0x046F], [0x0471, 0x0471], [0x0473, 0x0473], [0x0475, 0x0475], [0x0477, 0x0477], [0x0479, 0x0479], [0x047B, 0x047B], [0x047D, 0x047D], [0x047F, 0x047F], [0x0481, 0x0481], [0x0491, 0x0491], [0x0493, 0x0493], [0x0495, 0x0495], [0x0497, 0x0497], [0x0499, 0x0499], [0x049B, 0x049B], [0x049D, 0x049D], [0x049F, 0x049F], [0x04A1,
0x04A1], [0x04A3, 0x04A3], [0x04A5, 0x04A5], [0x04A7, 0x04A7], [0x04A9, 0x04A9], [0x04AB, 0x04AB], [0x04AD, 0x04AD], [0x04AF, 0x04AF], [0x04B1, 0x04B1], [0x04B3, 0x04B3], [0x04B5, 0x04B5], [0x04B7, 0x04B7], [0x04B9, 0x04B9], [0x04BB, 0x04BB], [0x04BD, 0x04BD], [0x04BF, 0x04BF], [0x04C2, 0x04C2], [0x04C4, 0x04C4], [0x04C8, 0x04C8], [0x04CC, 0x04CC], [0x04D1, 0x04D1], [0x04D3, 0x04D3], [0x04D5, 0x04D5], [0x04D7, 0x04D7], [0x04D9, 0x04D9], [0x04DB, 0x04DB], [0x04DD, 0x04DD], [0x04DF, 0x04DF], [0x04E1, 0x04E1], [0x04E3, 0x04E3], [0x04E5, 0x04E5], [0x04E7, 0x04E7], [0x04E9, 0x04E9], [0x04EB, 0x04EB], [0x04EF, 0x04EF], [0x04F1, 0x04F1], [0x04F3, 0x04F3], [0x04F5, 0x04F5], [0x04F9, 0x04F9], [0x0561, 0x0587], [0x10D0, 0x10F6], [0x1E01, 0x1E01], [0x1E03, 0x1E03], [0x1E05, 0x1E05], [0x1E07, 0x1E07], [0x1E09, 0x1E09], [0x1E0B, 0x1E0B], [0x1E0D, 0x1E0D], [0x1E0F, 0x1E0F], [0x1E11, 0x1E11], [0x1E13, 0x1E13], [0x1E15, 0x1E15], [0x1E17, 0x1E17], [0x1E19, 0x1E19], [0x1E1B, 0x1E1B], [0x1E1D,
0x1E1D], [0x1E1F, 0x1E1F], [0x1E21, 0x1E21], [0x1E23, 0x1E23], [0x1E25, 0x1E25], [0x1E27, 0x1E27], [0x1E29, 0x1E29], [0x1E2B, 0x1E2B], [0x1E2D, 0x1E2D], [0x1E2F, 0x1E2F], [0x1E31, 0x1E31], [0x1E33, 0x1E33], [0x1E35, 0x1E35], [0x1E37, 0x1E37], [0x1E39, 0x1E39], [0x1E3B, 0x1E3B], [0x1E3D, 0x1E3D], [0x1E3F, 0x1E3F], [0x1E41, 0x1E41], [0x1E43, 0x1E43], [0x1E45, 0x1E45], [0x1E47, 0x1E47], [0x1E49, 0x1E49], [0x1E4B, 0x1E4B], [0x1E4D, 0x1E4D], [0x1E4F, 0x1E4F], [0x1E51, 0x1E51], [0x1E53, 0x1E53], [0x1E55, 0x1E55], [0x1E57, 0x1E57], [0x1E59, 0x1E59], [0x1E5B, 0x1E5B], [0x1E5D, 0x1E5D], [0x1E5F, 0x1E5F], [0x1E61, 0x1E61], [0x1E63, 0x1E63], [0x1E65, 0x1E65], [0x1E67, 0x1E67], [0x1E69, 0x1E69], [0x1E6B, 0x1E6B], [0x1E6D, 0x1E6D], [0x1E6F, 0x1E6F], [0x1E71, 0x1E71], [0x1E73, 0x1E73], [0x1E75, 0x1E75], [0x1E77, 0x1E77], [0x1E79, 0x1E79], [0x1E7B, 0x1E7B], [0x1E7D, 0x1E7D], [0x1E7F, 0x1E7F], [0x1E81, 0x1E81], [0x1E83, 0x1E83], [0x1E85, 0x1E85], [0x1E87, 0x1E87], [0x1E89, 0x1E89], [0x1E8B
, 0x1E8B], [0x1E8D, 0x1E8D], [0x1E8F, 0x1E8F], [0x1E91, 0x1E91], [0x1E93, 0x1E93], [0x1E95, 0x1E9B], [0x1EA1, 0x1EA1], [0x1EA3, 0x1EA3], [0x1EA5, 0x1EA5], [0x1EA7, 0x1EA7], [0x1EA9, 0x1EA9], [0x1EAB, 0x1EAB], [0x1EAD, 0x1EAD], [0x1EAF, 0x1EAF], [0x1EB1, 0x1EB1], [0x1EB3, 0x1EB3], [0x1EB5, 0x1EB5], [0x1EB7, 0x1EB7], [0x1EB9, 0x1EB9], [0x1EBB, 0x1EBB], [0x1EBD, 0x1EBD], [0x1EBF, 0x1EBF], [0x1EC1, 0x1EC1], [0x1EC3, 0x1EC3], [0x1EC5, 0x1EC5], [0x1EC7, 0x1EC7], [0x1EC9, 0x1EC9], [0x1ECB, 0x1ECB], [0x1ECD, 0x1ECD], [0x1ECF, 0x1ECF], [0x1ED1, 0x1ED1], [0x1ED3, 0x1ED3], [0x1ED5, 0x1ED5], [0x1ED7, 0x1ED7], [0x1ED9, 0x1ED9], [0x1EDB, 0x1EDB], [0x1EDD, 0x1EDD], [0x1EDF, 0x1EDF], [0x1EE1, 0x1EE1], [0x1EE3, 0x1EE3], [0x1EE5, 0x1EE5], [0x1EE7, 0x1EE7], [0x1EE9, 0x1EE9], [0x1EEB, 0x1EEB], [0x1EED, 0x1EED], [0x1EEF, 0x1EEF], [0x1EF1, 0x1EF1], [0x1EF3, 0x1EF3], [0x1EF5, 0x1EF5], [0x1EF7, 0x1EF7], [0x1EF9, 0x1EF9], [0x1F00, 0x1F07], [0x1F10, 0x1F15], [0x1F20, 0x1F27], [0x1F30, 0x1F37], [0x1F4
0, 0x1F45], [0x1F50, 0x1F57], [0x1F60, 0x1F67], [0x1F70, 0x1F7D], [0x1F80, 0x1F87], [0x1F90, 0x1F97], [0x1FA0, 0x1FA7], [0x1FB0, 0x1FB4], [0x1FB6, 0x1FB7], [0x1FBE, 0x1FBE], [0x1FC2, 0x1FC4], [0x1FC6, 0x1FC7], [0x1FD0, 0x1FD3], [0x1FD6, 0x1FD7], [0x1FE0, 0x1FE7], [0x1FF2, 0x1FF4], [0x1FF6, 0x1FF7], [0x207F, 0x207F], [0x210A, 0x210A], [0x210E, 0x210F], [0x2113, 0x2113], [0x2118, 0x2118], [0x212E, 0x212F], [0x2134, 0x2134], [0xFB00, 0xFB06], [0xFB13, 0xFB17], [0xFF41, 0xFF5A]];
-Lt = [[0x01C5, 0x01C5], [0x01C8, 0x01C8], [0x01CB, 0x01CB], [0x01F2, 0x01F2]];
-Lm = [[0x02B0, 0x02B8], [0x02BB, 0x02C1], [0x02D0, 0x02D1], [0x02E0, 0x02E4], [0x037A, 0x037A], [0x0559, 0x0559], [0x0640, 0x0640], [0x06E5, 0x06E6], [0x0E46, 0x0E46], [0x0EC6, 0x0EC6], [0x3005, 0x3005], [0x3031, 0x3035], [0x309D, 0x309E], [0x30FC, 0x30FE], [0xFF70, 0xFF70], [0xFF9E, 0xFF9F]];
-Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0
x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-Nl = [[0x2160, 0x2182], [0x3007, 0x3007], [0x3021, 0x3029]];
-
-UnicodeLetterLu = [];
-UnicodeLetterLl = [];
-UnicodeLetterLt = [];
-UnicodeLetterLm = [];
-UnicodeLetterLo = [];
-UnicodeLetterNl = [];
-
-for (indexI = 0; indexI < Lu.length; indexI++) {
- for (indexJ = Lu[indexI][0]; indexJ <= Lu[indexI][1]; indexJ++) {
- UnicodeLetterLu[indexJ] = true;
- }
-}
-for (indexI = 0; indexI < Ll.length; indexI++) {
- for (indexJ = Ll[indexI][0]; indexJ <= Ll[indexI][1]; indexJ++) {
- UnicodeLetterLl[indexJ] = true;
- }
-}
-for (indexI = 0; indexI < Lt.length; indexI++) {
- for (indexJ = Lt[indexI][0]; indexJ <= Lt[indexI][1]; indexJ++) {
- UnicodeLetterLt[indexJ] = true;
- }
-}
-for (indexI = 0; indexI < Lm.length; indexI++) {
- for (indexJ = Lm[indexI][0]; indexJ <= Lm[indexI][1]; indexJ++) {
- UnicodeLetterLm[indexJ] = true;
- }
-}
-for (indexI = 0; indexI < Lo.length; indexI++) {
- for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
- UnicodeLetterLo[indexJ] = true;
- }
-}
-for (indexI = 0; indexI < Nl.length; indexI++) {
- for (indexJ = Nl[indexI][0]; indexJ <= Nl[indexI][1]; indexJ++) {
- UnicodeLetterNl[indexJ] = true;
- }
-}
-
-errorCount = 0;
-count = 0;
-var indexP;
-var indexO = 0;
-for (index = 0; index <= 65535; index++) {
- if ((UnicodeLetterLu[index] === undefined) && (UnicodeLetterLl[index] === undefined) && (UnicodeLetterLt[index] === undefined) && (UnicodeLetterLm[index] === undefined) && (UnicodeLetterLo[index] === undefined) && (UnicodeLetterNl[index] === undefined) && (index !== 0x0024) && (index !== 0x005F)) {
- try {
- var identifier = String.fromCharCode(index);
- eval("var " + identifier + "=1");
- if (errorCount === 0) {
- indexO = index;
- } else {
- if ((index - indexP) !== 1) {
- if ((indexP - indexO) !== 0) {
- var hexP = decimalToHexString(indexP);
- var hexO = decimalToHexString(indexO);
- testFailed('#' + hexO + '-' + hexP + ' ');
- }
- else {
- var hexP = decimalToHexString(indexP);
- testFailed('#' + hexP + ' ');
- }
- indexO = index;
- }
- }
- indexP = index;
- errorCount++;
- } catch (e) {
- }
- count++;
- }
-}
-
-if (errorCount > 0) {
- if ((indexP - indexO) !== 0) {
- var hexP = decimalToHexString(indexP);
- var hexO = decimalToHexString(indexO);
- testFailed('#' + hexO + '-' + hexP + ' ');
- } else {
- var hexP = decimalToHexString(indexP);
- testFailed('#' + hexP + ' ');
- }
- testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
-}
-
-function decimalToHexString(n) {
- n = Number(n);
- var h = "";
- for (var i = 3; i >= 0; i--) {
- if (n >= Math.pow(16, i)) {
- var t = Math.floor(n / Math.pow(16, i));
- n -= t * Math.pow(16, i);
- if ( t >= 10 ) {
- if ( t == 10 ) { h += "A"; }
- if ( t == 11 ) { h += "B"; }
- if ( t == 12 ) { h += "C"; }
- if ( t == 13 ) { h += "D"; }
- if ( t == 14 ) { h += "E"; }
- if ( t == 15 ) { h += "F"; }
- } else {
- h += String(t);
- }
- } else {
- h += "0";
- }
- }
- return h;
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_218S76_A52_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_218S76_A52_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,145 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S7.6_A5.2_T5</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S7.6_A5.2_T5;
+ * @section: 7.6, 6;
+ * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
+ * @description: The CV of UnicodeEscapeSequence is Lo.
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0
x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI < Lo.length; indexI++) {
+ for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
+ try {
+ var hex = decimalToHexString(indexJ);
+ var identifier1 = String.fromCharCode(indexJ);
+ var identifier2 = "\\u" + hex;
+ eval(identifier2 + " = 1");
+ if (eval(identifier1 + " === " + identifier2) !== true) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ } catch (e) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ count++;
+ }
+}
+
+if (errorCount > 0) {
+ testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+ n = Number(n);
+ var h = "";
+ for (var i = 3; i >= 0; i--) {
+ if (n >= Math.pow(16, i)) {
+ var t = Math.floor(n / Math.pow(16, i));
+ n -= t * Math.pow(16, i);
+ if ( t >= 10 ) {
+ if ( t == 10 ) { h += "A"; }
+ if ( t == 11 ) { h += "B"; }
+ if ( t == 12 ) { h += "C"; }
+ if ( t == 13 ) { h += "D"; }
+ if ( t == 14 ) { h += "E"; }
+ if ( t == 15 ) { h += "F"; }
+ } else {
+ h += String(t);
+ }
+ } else {
+ h += "0";
+ }
+ }
+ return h;
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_218S76_A52_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,145 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S7.6_A5.2_T5</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S7.6_A5.2_T5;
- * @section: 7.6, 6;
- * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
- * @description: The CV of UnicodeEscapeSequence is Lo.
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0
x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI < Lo.length; indexI++) {
- for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
- try {
- var hex = decimalToHexString(indexJ);
- var identifier1 = String.fromCharCode(indexJ);
- var identifier2 = "\\u" + hex;
- eval(identifier2 + " = 1");
- if (eval(identifier1 + " === " + identifier2) !== true) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- } catch (e) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- count++;
- }
-}
-
-if (errorCount > 0) {
- testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
- n = Number(n);
- var h = "";
- for (var i = 3; i >= 0; i--) {
- if (n >= Math.pow(16, i)) {
- var t = Math.floor(n / Math.pow(16, i));
- n -= t * Math.pow(16, i);
- if ( t >= 10 ) {
- if ( t == 10 ) { h += "A"; }
- if ( t == 11 ) { h += "B"; }
- if ( t == 12 ) { h += "C"; }
- if ( t == 13 ) { h += "D"; }
- if ( t == 14 ) { h += "E"; }
- if ( t == 15 ) { h += "F"; }
- } else {
- h += String(t);
- }
- } else {
- h += "0";
- }
- }
- return h;
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_320S76_A11_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_320S76_A11_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,144 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S7.6_A1.1_T5</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S7.6_A1.1_T5;
+ * @section: 7.6;
+ * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories "Lu", "Ll", "Lt", "Lm", "Lo", "Nl");
+ * @description: UnicodeLetter :: Other letter (Lo).
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06FA, 0x06FC], [0x0710, 0x0710], [0x0712, 0x072C], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
0B5D], [0x0B5F, 0x0B61], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0
x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10F8], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1206], [0x1208, 0x1246], [0x1248, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1286], [0x1288, 0x1288], [0x128A, 0x128D], [0x1290, 0x12AE], [0x12B0, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12CE], [0x12D0, 0x12D6], [0x12D8, 0x12EE], [0x12F0, 0x130E], [0x1310, 0x1310], [0x1312, 0x1315], [0x1318, 0x131E], [0x1320, 0x1346], [0x1348, 0x135A], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x2135, 0x2138], [0x3006, 0x3006], [0x303C,
0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FA5], [0xA000, 0xA48C], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI < Lo.length; indexI++) {
+ for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
+ try {
+ var identifier = String.fromCharCode(indexJ);
+ var hex = decimalToHexString(indexJ);
+ eval("var " + identifier + "=1");
+ if (eval(identifier + "===1") !== true) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ } catch (e) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ count++;
+ }
+}
+
+if (errorCount > 0) {
+ testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+ n = Number(n);
+ var h = "";
+ for (var i = 3; i >= 0; i--) {
+ if (n >= Math.pow(16, i)) {
+ var t = Math.floor(n / Math.pow(16, i));
+ n -= t * Math.pow(16, i);
+ if ( t >= 10 ) {
+ if ( t == 10 ) { h += "A"; }
+ if ( t == 11 ) { h += "B"; }
+ if ( t == 12 ) { h += "C"; }
+ if ( t == 13 ) { h += "D"; }
+ if ( t == 14 ) { h += "E"; }
+ if ( t == 15 ) { h += "F"; }
+ } else {
+ h += String(t);
+ }
+ } else {
+ h += "0";
+ }
+ }
+ return h;
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_320S76_A11_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,144 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S7.6_A1.1_T5</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S7.6_A1.1_T5;
- * @section: 7.6;
- * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories "Lu", "Ll", "Lt", "Lm", "Lo", "Nl");
- * @description: UnicodeLetter :: Other letter (Lo).
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06FA, 0x06FC], [0x0710, 0x0710], [0x0712, 0x072C], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
0B5D], [0x0B5F, 0x0B61], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0
x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10F8], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1206], [0x1208, 0x1246], [0x1248, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1286], [0x1288, 0x1288], [0x128A, 0x128D], [0x1290, 0x12AE], [0x12B0, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12CE], [0x12D0, 0x12D6], [0x12D8, 0x12EE], [0x12F0, 0x130E], [0x1310, 0x1310], [0x1312, 0x1315], [0x1318, 0x131E], [0x1320, 0x1346], [0x1348, 0x135A], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x2135, 0x2138], [0x3006, 0x3006], [0x303C,
0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FA5], [0xA000, 0xA48C], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI < Lo.length; indexI++) {
- for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
- try {
- var identifier = String.fromCharCode(indexJ);
- var hex = decimalToHexString(indexJ);
- eval("var " + identifier + "=1");
- if (eval(identifier + "===1") !== true) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- } catch (e) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- count++;
- }
-}
-
-if (errorCount > 0) {
- testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
- n = Number(n);
- var h = "";
- for (var i = 3; i >= 0; i--) {
- if (n >= Math.pow(16, i)) {
- var t = Math.floor(n / Math.pow(16, i));
- n -= t * Math.pow(16, i);
- if ( t >= 10 ) {
- if ( t == 10 ) { h += "A"; }
- if ( t == 11 ) { h += "B"; }
- if ( t == 12 ) { h += "C"; }
- if ( t == 13 ) { h += "D"; }
- if ( t == 14 ) { h += "E"; }
- if ( t == 15 ) { h += "F"; }
- } else {
- h += String(t);
- }
- } else {
- h += "0";
- }
- }
- return h;
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_320S76_A52_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_320S76_A52_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,145 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S7.6_A5.2_T5</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S7.6_A5.2_T5;
+ * @section: 7.6, 6;
+ * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
+ * @description: The CV of UnicodeEscapeSequence is Lo.
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06FA, 0x06FC], [0x0710, 0x0710], [0x0712, 0x072C], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
0B5D], [0x0B5F, 0x0B61], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0
x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10F8], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1206], [0x1208, 0x1246], [0x1248, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1286], [0x1288, 0x1288], [0x128A, 0x128D], [0x1290, 0x12AE], [0x12B0, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12CE], [0x12D0, 0x12D6], [0x12D8, 0x12EE], [0x12F0, 0x130E], [0x1310, 0x1310], [0x1312, 0x1315], [0x1318, 0x131E], [0x1320, 0x1346], [0x1348, 0x135A], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x2135, 0x2138], [0x3006, 0x3006], [0x303C,
0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FA5], [0xA000, 0xA48C], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI < Lo.length; indexI++) {
+ for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
+ try {
+ var hex = decimalToHexString(indexJ);
+ var identifier1 = String.fromCharCode(indexJ);
+ var identifier2 = "\\u" + hex;
+ eval(identifier2 + " = 1");
+ if (eval(identifier1 + " === " + identifier2) !== true) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ } catch (e) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ count++;
+ }
+}
+
+if (errorCount > 0) {
+ testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+ n = Number(n);
+ var h = "";
+ for (var i = 3; i >= 0; i--) {
+ if (n >= Math.pow(16, i)) {
+ var t = Math.floor(n / Math.pow(16, i));
+ n -= t * Math.pow(16, i);
+ if ( t >= 10 ) {
+ if ( t == 10 ) { h += "A"; }
+ if ( t == 11 ) { h += "B"; }
+ if ( t == 12 ) { h += "C"; }
+ if ( t == 13 ) { h += "D"; }
+ if ( t == 14 ) { h += "E"; }
+ if ( t == 15 ) { h += "F"; }
+ } else {
+ h += String(t);
+ }
+ } else {
+ h += "0";
+ }
+ }
+ return h;
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_320S76_A52_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,145 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S7.6_A5.2_T5</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S7.6_A5.2_T5;
- * @section: 7.6, 6;
- * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
- * @description: The CV of UnicodeEscapeSequence is Lo.
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06FA, 0x06FC], [0x0710, 0x0710], [0x0712, 0x072C], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
0B5D], [0x0B5F, 0x0B61], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0
x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10F8], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1206], [0x1208, 0x1246], [0x1248, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1286], [0x1288, 0x1288], [0x128A, 0x128D], [0x1290, 0x12AE], [0x12B0, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12CE], [0x12D0, 0x12D6], [0x12D8, 0x12EE], [0x12F0, 0x130E], [0x1310, 0x1310], [0x1312, 0x1315], [0x1318, 0x131E], [0x1320, 0x1346], [0x1348, 0x135A], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x2135, 0x2138], [0x3006, 0x3006], [0x303C,
0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FA5], [0xA000, 0xA48C], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI < Lo.length; indexI++) {
- for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
- try {
- var hex = decimalToHexString(indexJ);
- var identifier1 = String.fromCharCode(indexJ);
- var identifier2 = "\\u" + hex;
- eval(identifier2 + " = 1");
- if (eval(identifier1 + " === " + identifier2) !== true) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- } catch (e) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- count++;
- }
-}
-
-if (errorCount > 0) {
- testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
- n = Number(n);
- var h = "";
- for (var i = 3; i >= 0; i--) {
- if (n >= Math.pow(16, i)) {
- var t = Math.floor(n / Math.pow(16, i));
- n -= t * Math.pow(16, i);
- if ( t >= 10 ) {
- if ( t == 10 ) { h += "A"; }
- if ( t == 11 ) { h += "B"; }
- if ( t == 12 ) { h += "C"; }
- if ( t == 13 ) { h += "D"; }
- if ( t == 14 ) { h += "E"; }
- if ( t == 15 ) { h += "F"; }
- } else {
- h += String(t);
- }
- } else {
- h += "0";
- }
- }
- return h;
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_410S76_A11_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_410S76_A11_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,144 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S7.6_A1.1_T5</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S7.6_A1.1_T5;
+ * @section: 7.6;
+ * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories "Lu", "Ll", "Lt", "Lm", "Lo", "Nl");
+ * @description: UnicodeLetter :: Other letter (Lo).
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x076D], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x097D, 0x097D], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x
0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0
x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 0x1974], [0x1980, 0x19A9], [0x19C1,
0x19C7], [0x1A00, 0x1A16], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FBB], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA800, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA,
0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI < Lo.length; indexI++) {
+ for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
+ try {
+ var identifier = String.fromCharCode(indexJ);
+ var hex = decimalToHexString(indexJ);
+ eval("var " + identifier + "=1");
+ if (eval(identifier + "===1") !== true) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ } catch (e) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ count++;
+ }
+}
+
+if (errorCount > 0) {
+ testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+ n = Number(n);
+ var h = "";
+ for (var i = 3; i >= 0; i--) {
+ if (n >= Math.pow(16, i)) {
+ var t = Math.floor(n / Math.pow(16, i));
+ n -= t * Math.pow(16, i);
+ if ( t >= 10 ) {
+ if ( t == 10 ) { h += "A"; }
+ if ( t == 11 ) { h += "B"; }
+ if ( t == 12 ) { h += "C"; }
+ if ( t == 13 ) { h += "D"; }
+ if ( t == 14 ) { h += "E"; }
+ if ( t == 15 ) { h += "F"; }
+ } else {
+ h += String(t);
+ }
+ } else {
+ h += "0";
+ }
+ }
+ return h;
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_410S76_A11_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,144 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S7.6_A1.1_T5</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S7.6_A1.1_T5;
- * @section: 7.6;
- * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories "Lu", "Ll", "Lt", "Lm", "Lo", "Nl");
- * @description: UnicodeLetter :: Other letter (Lo).
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x076D], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x097D, 0x097D], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x
0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0
x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 0x1974], [0x1980, 0x19A9], [0x19C1,
0x19C7], [0x1A00, 0x1A16], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FBB], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA800, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA,
0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI < Lo.length; indexI++) {
- for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
- try {
- var identifier = String.fromCharCode(indexJ);
- var hex = decimalToHexString(indexJ);
- eval("var " + identifier + "=1");
- if (eval(identifier + "===1") !== true) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- } catch (e) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- count++;
- }
-}
-
-if (errorCount > 0) {
- testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
- n = Number(n);
- var h = "";
- for (var i = 3; i >= 0; i--) {
- if (n >= Math.pow(16, i)) {
- var t = Math.floor(n / Math.pow(16, i));
- n -= t * Math.pow(16, i);
- if ( t >= 10 ) {
- if ( t == 10 ) { h += "A"; }
- if ( t == 11 ) { h += "B"; }
- if ( t == 12 ) { h += "C"; }
- if ( t == 13 ) { h += "D"; }
- if ( t == 14 ) { h += "E"; }
- if ( t == 15 ) { h += "F"; }
- } else {
- h += String(t);
- }
- } else {
- h += "0";
- }
- }
- return h;
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_410S76_A52_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_410S76_A52_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,145 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S7.6_A5.2_T5</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S7.6_A5.2_T5;
+ * @section: 7.6, 6;
+ * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
+ * @description: The CV of UnicodeEscapeSequence is Lo.
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x076D], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x097D, 0x097D], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x
0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0
x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 0x1974], [0x1980, 0x19A9], [0x19C1,
0x19C7], [0x1A00, 0x1A16], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FBB], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA800, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA,
0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI < Lo.length; indexI++) {
+ for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
+ try {
+ var hex = decimalToHexString(indexJ);
+ var identifier1 = String.fromCharCode(indexJ);
+ var identifier2 = "\\u" + hex;
+ eval(identifier2 + " = 1");
+ if (eval(identifier1 + " === " + identifier2) !== true) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ } catch (e) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ count++;
+ }
+}
+
+if (errorCount > 0) {
+ testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+ n = Number(n);
+ var h = "";
+ for (var i = 3; i >= 0; i--) {
+ if (n >= Math.pow(16, i)) {
+ var t = Math.floor(n / Math.pow(16, i));
+ n -= t * Math.pow(16, i);
+ if ( t >= 10 ) {
+ if ( t == 10 ) { h += "A"; }
+ if ( t == 11 ) { h += "B"; }
+ if ( t == 12 ) { h += "C"; }
+ if ( t == 13 ) { h += "D"; }
+ if ( t == 14 ) { h += "E"; }
+ if ( t == 15 ) { h += "F"; }
+ } else {
+ h += String(t);
+ }
+ } else {
+ h += "0";
+ }
+ }
+ return h;
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_410S76_A52_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,145 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S7.6_A5.2_T5</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S7.6_A5.2_T5;
- * @section: 7.6, 6;
- * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
- * @description: The CV of UnicodeEscapeSequence is Lo.
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x076D], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x097D, 0x097D], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x
0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0
x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 0x1974], [0x1980, 0x19A9], [0x19C1,
0x19C7], [0x1A00, 0x1A16], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FBB], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA800, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA,
0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI < Lo.length; indexI++) {
- for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
- try {
- var hex = decimalToHexString(indexJ);
- var identifier1 = String.fromCharCode(indexJ);
- var identifier2 = "\\u" + hex;
- eval(identifier2 + " = 1");
- if (eval(identifier1 + " === " + identifier2) !== true) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- } catch (e) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- count++;
- }
-}
-
-if (errorCount > 0) {
- testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
- n = Number(n);
- var h = "";
- for (var i = 3; i >= 0; i--) {
- if (n >= Math.pow(16, i)) {
- var t = Math.floor(n / Math.pow(16, i));
- n -= t * Math.pow(16, i);
- if ( t >= 10 ) {
- if ( t == 10 ) { h += "A"; }
- if ( t == 11 ) { h += "B"; }
- if ( t == 12 ) { h += "C"; }
- if ( t == 13 ) { h += "D"; }
- if ( t == 14 ) { h += "E"; }
- if ( t == 15 ) { h += "F"; }
- } else {
- h += String(t);
- }
- } else {
- h += "0";
- }
- }
- return h;
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_500S76_A11_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_500S76_A11_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,144 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S7.6_A1.1_T5</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S7.6_A1.1_T5;
+ * @section: 7.6;
+ * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories "Lu", "Ll", "Lt", "Lm", "Lo", "Nl");
+ * @description: UnicodeLetter :: Other letter (Lo).
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x0294, 0x0294], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x076D], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x07CA, 0x07EA], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x097B, 0x097F], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x
0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0
x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970,
0x1974], [0x1980, 0x19A9], [0x19C1, 0x19C7], [0x1A00, 0x1A16], [0x1B05, 0x1B33], [0x1B45, 0x1B4B], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FBB], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA800, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xA840, 0xA873], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71,
0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI < Lo.length; indexI++) {
+ for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
+ try {
+ var identifier = String.fromCharCode(indexJ);
+ var hex = decimalToHexString(indexJ);
+ eval("var " + identifier + "=1");
+ if (eval(identifier + "===1") !== true) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ } catch (e) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ count++;
+ }
+}
+
+if (errorCount > 0) {
+ testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+ n = Number(n);
+ var h = "";
+ for (var i = 3; i >= 0; i--) {
+ if (n >= Math.pow(16, i)) {
+ var t = Math.floor(n / Math.pow(16, i));
+ n -= t * Math.pow(16, i);
+ if ( t >= 10 ) {
+ if ( t == 10 ) { h += "A"; }
+ if ( t == 11 ) { h += "B"; }
+ if ( t == 12 ) { h += "C"; }
+ if ( t == 13 ) { h += "D"; }
+ if ( t == 14 ) { h += "E"; }
+ if ( t == 15 ) { h += "F"; }
+ } else {
+ h += String(t);
+ }
+ } else {
+ h += "0";
+ }
+ }
+ return h;
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_500S76_A11_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,144 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S7.6_A1.1_T5</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S7.6_A1.1_T5;
- * @section: 7.6;
- * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories "Lu", "Ll", "Lt", "Lm", "Lo", "Nl");
- * @description: UnicodeLetter :: Other letter (Lo).
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x0294, 0x0294], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x076D], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x07CA, 0x07EA], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x097B, 0x097F], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x
0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0
x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970,
0x1974], [0x1980, 0x19A9], [0x19C1, 0x19C7], [0x1A00, 0x1A16], [0x1B05, 0x1B33], [0x1B45, 0x1B4B], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FBB], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA800, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xA840, 0xA873], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71,
0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI < Lo.length; indexI++) {
- for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
- try {
- var identifier = String.fromCharCode(indexJ);
- var hex = decimalToHexString(indexJ);
- eval("var " + identifier + "=1");
- if (eval(identifier + "===1") !== true) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- } catch (e) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- count++;
- }
-}
-
-if (errorCount > 0) {
- testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
- n = Number(n);
- var h = "";
- for (var i = 3; i >= 0; i--) {
- if (n >= Math.pow(16, i)) {
- var t = Math.floor(n / Math.pow(16, i));
- n -= t * Math.pow(16, i);
- if ( t >= 10 ) {
- if ( t == 10 ) { h += "A"; }
- if ( t == 11 ) { h += "B"; }
- if ( t == 12 ) { h += "C"; }
- if ( t == 13 ) { h += "D"; }
- if ( t == 14 ) { h += "E"; }
- if ( t == 15 ) { h += "F"; }
- } else {
- h += String(t);
- }
- } else {
- h += "0";
- }
- }
- return h;
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_500S76_A52_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_500S76_A52_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,145 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S7.6_A5.2_T5</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S7.6_A5.2_T5;
+ * @section: 7.6, 6;
+ * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
+ * @description: The CV of UnicodeEscapeSequence is Lo.
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x0294, 0x0294], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x076D], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x07CA, 0x07EA], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x097B, 0x097F], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x
0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0
x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970,
0x1974], [0x1980, 0x19A9], [0x19C1, 0x19C7], [0x1A00, 0x1A16], [0x1B05, 0x1B33], [0x1B45, 0x1B4B], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FBB], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA800, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xA840, 0xA873], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71,
0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI < Lo.length; indexI++) {
+ for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
+ try {
+ var hex = decimalToHexString(indexJ);
+ var identifier1 = String.fromCharCode(indexJ);
+ var identifier2 = "\\u" + hex;
+ eval(identifier2 + " = 1");
+ if (eval(identifier1 + " === " + identifier2) !== true) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ } catch (e) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ count++;
+ }
+}
+
+if (errorCount > 0) {
+ testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+ n = Number(n);
+ var h = "";
+ for (var i = 3; i >= 0; i--) {
+ if (n >= Math.pow(16, i)) {
+ var t = Math.floor(n / Math.pow(16, i));
+ n -= t * Math.pow(16, i);
+ if ( t >= 10 ) {
+ if ( t == 10 ) { h += "A"; }
+ if ( t == 11 ) { h += "B"; }
+ if ( t == 12 ) { h += "C"; }
+ if ( t == 13 ) { h += "D"; }
+ if ( t == 14 ) { h += "E"; }
+ if ( t == 15 ) { h += "F"; }
+ } else {
+ h += String(t);
+ }
+ } else {
+ h += "0";
+ }
+ }
+ return h;
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_500S76_A52_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,145 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S7.6_A5.2_T5</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S7.6_A5.2_T5;
- * @section: 7.6, 6;
- * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
- * @description: The CV of UnicodeEscapeSequence is Lo.
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x0294, 0x0294], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x076D], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x07CA, 0x07EA], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x097B, 0x097F], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x
0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0
x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970,
0x1974], [0x1980, 0x19A9], [0x19C1, 0x19C7], [0x1A00, 0x1A16], [0x1B05, 0x1B33], [0x1B45, 0x1B4B], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FBB], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA800, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xA840, 0xA873], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71,
0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI < Lo.length; indexI++) {
- for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
- try {
- var hex = decimalToHexString(indexJ);
- var identifier1 = String.fromCharCode(indexJ);
- var identifier2 = "\\u" + hex;
- eval(identifier2 + " = 1");
- if (eval(identifier1 + " === " + identifier2) !== true) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- } catch (e) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- count++;
- }
-}
-
-if (errorCount > 0) {
- testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
- n = Number(n);
- var h = "";
- for (var i = 3; i >= 0; i--) {
- if (n >= Math.pow(16, i)) {
- var t = Math.floor(n / Math.pow(16, i));
- n -= t * Math.pow(16, i);
- if ( t >= 10 ) {
- if ( t == 10 ) { h += "A"; }
- if ( t == 11 ) { h += "B"; }
- if ( t == 12 ) { h += "C"; }
- if ( t == 13 ) { h += "D"; }
- if ( t == 14 ) { h += "E"; }
- if ( t == 15 ) { h += "F"; }
- } else {
- h += String(t);
- }
- } else {
- h += "0";
- }
- }
- return h;
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_510S76_A11_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_510S76_A11_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,144 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S7.6_A1.1_T5</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S7.6_A1.1_T5;
+ * @section: 7.6;
+ * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories "Lu", "Ll", "Lt", "Lm", "Lo", "Nl");
+ * @description: UnicodeLetter :: Other letter (Lo).
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x0294, 0x0294], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063F], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x07A5], [0x07B1, 0x07B1], [0x07CA, 0x07EA], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0972, 0x0972], [0x097B, 0x097F], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x
0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0BD0, 0x0BD0], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C3D, 0x0C3D], [0x0C58, 0x0C59], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D3D, 0x0D3D], [0x0D60, 0x0D61], [0x0D7A, 0x0D7F], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0
x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6C], [0x0F88, 0x0F8B], [0x1000, 0x102A], [0x103F, 0x103F], [0x1050, 0x1055], [0x105A, 0x105D], [0x1061, 0x1061], [0x1065, 0x1066], [0x106E, 0x1070], [0x1075, 0x1081], [0x108E, 0x108E], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740,
0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x18AA, 0x18AA], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 0x1974], [0x1980, 0x19A9], [0x19C1, 0x19C7], [0x1A00, 0x1A16], [0x1B05, 0x1B33], [0x1B45, 0x1B4B], [0x1B83, 0x1BA0], [0x1BAE, 0x1BAF], [0x1C00, 0x1C23], [0x1C4D, 0x1C4F], [0x1C5A, 0x1C77], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312D], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FC3], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA500, 0xA60B], [0xA610, 0xA61F], [0xA62A, 0xA62B], [0xA66E, 0xA66E], [0xA7FB, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xA840,
0xA873], [0xA882, 0xA8B3], [0xA90A, 0xA925], [0xA930, 0xA946], [0xAA00, 0xAA28], [0xAA40, 0xAA42], [0xAA44, 0xAA4B], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI < Lo.length; indexI++) {
+ for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
+ try {
+ var identifier = String.fromCharCode(indexJ);
+ var hex = decimalToHexString(indexJ);
+ eval("var " + identifier + "=1");
+ if (eval(identifier + "===1") !== true) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ } catch (e) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ count++;
+ }
+}
+
+if (errorCount > 0) {
+ testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+ n = Number(n);
+ var h = "";
+ for (var i = 3; i >= 0; i--) {
+ if (n >= Math.pow(16, i)) {
+ var t = Math.floor(n / Math.pow(16, i));
+ n -= t * Math.pow(16, i);
+ if ( t >= 10 ) {
+ if ( t == 10 ) { h += "A"; }
+ if ( t == 11 ) { h += "B"; }
+ if ( t == 12 ) { h += "C"; }
+ if ( t == 13 ) { h += "D"; }
+ if ( t == 14 ) { h += "E"; }
+ if ( t == 15 ) { h += "F"; }
+ } else {
+ h += String(t);
+ }
+ } else {
+ h += "0";
+ }
+ }
+ return h;
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_510S76_A11_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,144 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S7.6_A1.1_T5</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S7.6_A1.1_T5;
- * @section: 7.6;
- * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories "Lu", "Ll", "Lt", "Lm", "Lo", "Nl");
- * @description: UnicodeLetter :: Other letter (Lo).
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x0294, 0x0294], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063F], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x07A5], [0x07B1, 0x07B1], [0x07CA, 0x07EA], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0972, 0x0972], [0x097B, 0x097F], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x
0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0BD0, 0x0BD0], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C3D, 0x0C3D], [0x0C58, 0x0C59], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D3D, 0x0D3D], [0x0D60, 0x0D61], [0x0D7A, 0x0D7F], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0
x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6C], [0x0F88, 0x0F8B], [0x1000, 0x102A], [0x103F, 0x103F], [0x1050, 0x1055], [0x105A, 0x105D], [0x1061, 0x1061], [0x1065, 0x1066], [0x106E, 0x1070], [0x1075, 0x1081], [0x108E, 0x108E], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740,
0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x18AA, 0x18AA], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 0x1974], [0x1980, 0x19A9], [0x19C1, 0x19C7], [0x1A00, 0x1A16], [0x1B05, 0x1B33], [0x1B45, 0x1B4B], [0x1B83, 0x1BA0], [0x1BAE, 0x1BAF], [0x1C00, 0x1C23], [0x1C4D, 0x1C4F], [0x1C5A, 0x1C77], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312D], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FC3], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA500, 0xA60B], [0xA610, 0xA61F], [0xA62A, 0xA62B], [0xA66E, 0xA66E], [0xA7FB, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xA840,
0xA873], [0xA882, 0xA8B3], [0xA90A, 0xA925], [0xA930, 0xA946], [0xAA00, 0xAA28], [0xAA40, 0xAA42], [0xAA44, 0xAA4B], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI < Lo.length; indexI++) {
- for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
- try {
- var identifier = String.fromCharCode(indexJ);
- var hex = decimalToHexString(indexJ);
- eval("var " + identifier + "=1");
- if (eval(identifier + "===1") !== true) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- } catch (e) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- count++;
- }
-}
-
-if (errorCount > 0) {
- testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
- n = Number(n);
- var h = "";
- for (var i = 3; i >= 0; i--) {
- if (n >= Math.pow(16, i)) {
- var t = Math.floor(n / Math.pow(16, i));
- n -= t * Math.pow(16, i);
- if ( t >= 10 ) {
- if ( t == 10 ) { h += "A"; }
- if ( t == 11 ) { h += "B"; }
- if ( t == 12 ) { h += "C"; }
- if ( t == 13 ) { h += "D"; }
- if ( t == 14 ) { h += "E"; }
- if ( t == 15 ) { h += "F"; }
- } else {
- h += String(t);
- }
- } else {
- h += "0";
- }
- }
- return h;
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_510S76_A52_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_510S76_A52_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html         (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,145 @@
</span><ins>+<html>
+<head>
+<meta charset='utf-8'>
+<style>
+.pass {
+ font-weight: bold;
+ color: green;
+}
+.fail {
+ font-weight: bold;
+ color: red;
+}
+</style>
+
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+ this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+ return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+ var span = document.createElement("span");
+ document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+}
+
+function escapeHTML(text)
+{
+ return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
+}
+
+function printTestPassed(msg)
+{
+ testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function printTestFailed(msg)
+{
+ testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+}
+
+function testFailed(msg)
+{
+ throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+</script>
+
+</head>
+<body>
+<p>S7.6_A5.2_T5</p>
+<div id='console'></div>
+<script>
+try {
+
+/**
+ * @name: S7.6_A5.2_T5;
+ * @section: 7.6, 6;
+ * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
+ * @description: The CV of UnicodeEscapeSequence is Lo.
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x0294, 0x0294], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063F], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x07A5], [0x07B1, 0x07B1], [0x07CA, 0x07EA], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0972, 0x0972], [0x097B, 0x097F], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x
0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0BD0, 0x0BD0], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C3D, 0x0C3D], [0x0C58, 0x0C59], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D3D, 0x0D3D], [0x0D60, 0x0D61], [0x0D7A, 0x0D7F], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0
x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6C], [0x0F88, 0x0F8B], [0x1000, 0x102A], [0x103F, 0x103F], [0x1050, 0x1055], [0x105A, 0x105D], [0x1061, 0x1061], [0x1065, 0x1066], [0x106E, 0x1070], [0x1075, 0x1081], [0x108E, 0x108E], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740,
0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x18AA, 0x18AA], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 0x1974], [0x1980, 0x19A9], [0x19C1, 0x19C7], [0x1A00, 0x1A16], [0x1B05, 0x1B33], [0x1B45, 0x1B4B], [0x1B83, 0x1BA0], [0x1BAE, 0x1BAF], [0x1C00, 0x1C23], [0x1C4D, 0x1C4F], [0x1C5A, 0x1C77], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312D], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FC3], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA500, 0xA60B], [0xA610, 0xA61F], [0xA62A, 0xA62B], [0xA66E, 0xA66E], [0xA7FB, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xA840,
0xA873], [0xA882, 0xA8B3], [0xA90A, 0xA925], [0xA930, 0xA946], [0xAA00, 0xAA28], [0xAA40, 0xAA42], [0xAA44, 0xAA4B], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI < Lo.length; indexI++) {
+ for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
+ try {
+ var hex = decimalToHexString(indexJ);
+ var identifier1 = String.fromCharCode(indexJ);
+ var identifier2 = "\\u" + hex;
+ eval(identifier2 + " = 1");
+ if (eval(identifier1 + " === " + identifier2) !== true) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ } catch (e) {
+ testFailed('#' + hex + ' ');
+ errorCount++;
+ }
+ count++;
+ }
+}
+
+if (errorCount > 0) {
+ testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+ n = Number(n);
+ var h = "";
+ for (var i = 3; i >= 0; i--) {
+ if (n >= Math.pow(16, i)) {
+ var t = Math.floor(n / Math.pow(16, i));
+ n -= t * Math.pow(16, i);
+ if ( t >= 10 ) {
+ if ( t == 10 ) { h += "A"; }
+ if ( t == 11 ) { h += "B"; }
+ if ( t == 12 ) { h += "C"; }
+ if ( t == 13 ) { h += "D"; }
+ if ( t == 14 ) { h += "E"; }
+ if ( t == 15 ) { h += "F"; }
+ } else {
+ h += String(t);
+ }
+ } else {
+ h += "0";
+ }
+ }
+ return h;
+}
+
+} catch (ex) {
+ sputnikException = ex;
+}
+
+var successfullyParsed = true;
+</script>
+
+<script>
+if (!successfullyParsed)
+ printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+ printTestFailed(sputnikException);
+else
+ printTestPassed("");
+testPrint('<br /><span class="pass">TEST COMPLETE</span>');
+</script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_510S76_A52_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,145 +0,0 @@
</span><del>-<html>
-<head>
-<meta charset='utf-8'>
-<style>
-.pass {
- font-weight: bold;
- color: green;
-}
-.fail {
- font-weight: bold;
- color: red;
-}
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function SputnikError(message)
-{
- this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
- return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
- var span = document.createElement("span");
- document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
-}
-
-function escapeHTML(text)
-{
- return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
-}
-
-function printTestPassed(msg)
-{
- testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function printTestFailed(msg)
-{
- testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
-}
-
-function testFailed(msg)
-{
- throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-</script>
-
-</head>
-<body>
-<p>S7.6_A5.2_T5</p>
-<div id='console'></div>
-<script>
-try {
-
-/**
- * @name: S7.6_A5.2_T5;
- * @section: 7.6, 6;
- * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
- * @description: The CV of UnicodeEscapeSequence is Lo.
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x0294, 0x0294], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063F], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x07A5], [0x07B1, 0x07B1], [0x07CA, 0x07EA], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0972, 0x0972], [0x097B, 0x097F], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x
0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0BD0, 0x0BD0], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C3D, 0x0C3D], [0x0C58, 0x0C59], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D3D, 0x0D3D], [0x0D60, 0x0D61], [0x0D7A, 0x0D7F], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0
x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6C], [0x0F88, 0x0F8B], [0x1000, 0x102A], [0x103F, 0x103F], [0x1050, 0x1055], [0x105A, 0x105D], [0x1061, 0x1061], [0x1065, 0x1066], [0x106E, 0x1070], [0x1075, 0x1081], [0x108E, 0x108E], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740,
0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x18AA, 0x18AA], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 0x1974], [0x1980, 0x19A9], [0x19C1, 0x19C7], [0x1A00, 0x1A16], [0x1B05, 0x1B33], [0x1B45, 0x1B4B], [0x1B83, 0x1BA0], [0x1BAE, 0x1BAF], [0x1C00, 0x1C23], [0x1C4D, 0x1C4F], [0x1C5A, 0x1C77], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312D], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FC3], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA500, 0xA60B], [0xA610, 0xA61F], [0xA62A, 0xA62B], [0xA66E, 0xA66E], [0xA7FB, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xA840,
0xA873], [0xA882, 0xA8B3], [0xA90A, 0xA925], [0xA930, 0xA946], [0xAA00, 0xAA28], [0xAA40, 0xAA42], [0xAA44, 0xAA4B], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI < Lo.length; indexI++) {
- for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
- try {
- var hex = decimalToHexString(indexJ);
- var identifier1 = String.fromCharCode(indexJ);
- var identifier2 = "\\u" + hex;
- eval(identifier2 + " = 1");
- if (eval(identifier1 + " === " + identifier2) !== true) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- } catch (e) {
- testFailed('#' + hex + ' ');
- errorCount++;
- }
- count++;
- }
-}
-
-if (errorCount > 0) {
- testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
- n = Number(n);
- var h = "";
- for (var i = 3; i >= 0; i--) {
- if (n >= Math.pow(16, i)) {
- var t = Math.floor(n / Math.pow(16, i));
- n -= t * Math.pow(16, i);
- if ( t >= 10 ) {
- if ( t == 10 ) { h += "A"; }
- if ( t == 11 ) { h += "B"; }
- if ( t == 12 ) { h += "C"; }
- if ( t == 13 ) { h += "D"; }
- if ( t == 14 ) { h += "E"; }
- if ( t == 15 ) { h += "F"; }
- } else {
- h += String(t);
- }
- } else {
- h += "0";
- }
- }
- return h;
-}
-
-} catch (ex) {
- sputnikException = ex;
-}
-
-var successfullyParsed = true;
-</script>
-
-<script>
-if (!successfullyParsed)
- printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
- printTestFailed(sputnikException);
-else
- printTestPassed("");
-testPrint('<br /><span class="pass">TEST COMPLETE</span>');
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestssvgW3CSVG11resourcesfilterscomptran01fsvgdisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/svg/W3C-SVG-1.1/resources/filters-comptran-01-f.svg-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/W3C-SVG-1.1/resources/filters-comptran-01-f.svg-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/svg/W3C-SVG-1.1/resources/filters-comptran-01-f.svg-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,132 +0,0 @@
</span><del>-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
-
-<!--======================================================================-->
-<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
-<!--= Institute of Technology, Institut National de Recherche en =-->
-<!--= Informatique et en Automatique, Keio University). All Rights =-->
-<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
-<!--======================================================================-->
-<!--======================================================================-->
-<!-- -->
-<!-- filters-transfer-BE-04.svg -->
-<!-- renamed for 1.1 suite to filters-comptran-01-f.svg -->
-<!-- -->
-<!-- Test which verifies the basic facilities of feComponentTransfer. -->
-<!-- -->
-<!-- Author : Jon Ferraiolo 03-Apr-2000 -->
-<!-- Revised for 1.1 : Mike Bultrowicz, 4 February 2002 -->
-<!-- -->
-<!-- History: -->
-<!-- 04-Apr-2000, JF: Serial#1 created. -->
-<!-- 03-Aug-2000, LH=" update DOCTYPE for CR DTD, 20000802" ser# . -->
-<!-- 16-Aug-2000, LH="rename" ser#2. -->
-<!-- -->
-<!--======================================================================-->
-<!--======================================================================-->
-<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
-<!--= log messages, and therefore is no longer in the preceding preamble.=-->
-<!--======================================================================-->
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
- <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
- <OperatorScript>
-                        <Paragraph>
-                                Test which verifies the basic facilities of
-                                feComponentTransfer.
-                        </Paragraph>
-                        <Paragraph>
-                                This test uses the following elements : a nested &lt;svg&gt;
-                                with a viewBox attribute, &lt;linearGradient&gt;, &lt;filter&gt;,
-                                &lt;feComponentTransfer&gt;
-                        </Paragraph>
-                        <Paragraph>
-                                The test case shows four rectangles filled with a
-                                gradient showing the effects of feComponentTransfer: an
-                                identity function acting as a reference, use of the
-                                feComponentTransfer table option, use of the
-                                feComponentTransfer linear option, and use of the
-                                feComponentTransfer gamma option.
-                        </Paragraph>
-                        <Paragraph>
-                                The test is somewhat self-explanatory as the strings
-                                document the type of feComponentTransfer operation that
-                                is being used.
-                        </Paragraph>
- </OperatorScript>
- </SVGTestCase>
-        <title id="test-title">filters-comptran-01-f</title>
-        <desc id="test-desc">Test which verifies the basic facilities of feComponentTransfer.</desc>
-        <!--======================================================================-->
-        <!--Content of Test Case follows... =====================-->
-        <!--======================================================================-->
-        <g id="test-body-content">
-                <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="35" y="50" width="400" height="200" viewBox="0 0 800 400">
-                        <title>Example feComponentTransfer - Examples of feComponentTransfer operations</title>
-                        <desc>Four rectangles filled with a gradient showing the effects of feComponentTransfer: an identity function acting as a reference, use of the feComponentTransfer table option, use of the feComponentTransfer linear option, and use of the feComponentTransfer gamma option.</desc>
-                        <defs>
-                                <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" x1="100" y1="0" x2="600" y2="0">
-                                        <stop offset="0" stop-color="#ff0000" />
-                                        <stop offset=".33" stop-color="#00ff00" />
-                                        <stop offset=".67" stop-color="#0000ff" />
-                                        <stop offset="1" stop-color="#000000" />
-                                </linearGradient>
-                                <filter id="Identity" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
-                                        <feComponentTransfer>
-                                                <feFuncR type="identity"/>
-                                                <feFuncG type="identity"/>
-                                                <feFuncB type="identity"/>
-                                                <feFuncA type="identity"/>
-                                        </feComponentTransfer>
-                                </filter>
-                                <filter id="Table" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
-                                        <feComponentTransfer>
-                                                <feFuncR type="table" tableValues="0 0 1 1"/>
-                                                <feFuncG type="table" tableValues="1 1 0 0"/>
-                                                <feFuncB type="table" tableValues="0 1 1 0"/>
-                                        </feComponentTransfer>
-                                </filter>
-                                <filter id="Linear" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
-                                        <feComponentTransfer>
-                                                <feFuncR type="linear" slope=".5" intercept=".25"/>
-                                                <feFuncG type="linear" slope=".5" intercept="0"/>
-                                                <feFuncB type="linear" slope=".5" intercept=".5"/>
-                                        </feComponentTransfer>
-                                </filter>
-                                <filter id="Gamma" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
-                                        <feComponentTransfer>
-                                                <feFuncR type="gamma" amplitude="2" exponent="5" offset="0"/>
-                                                <feFuncG type="gamma" amplitude="2" exponent="3" offset="0"/>
-                                                <feFuncB type="gamma" amplitude="2" exponent="1" offset="0"/>
-                                        </feComponentTransfer>
-                                </filter>
-                        </defs>
-                        <rect fill="none" stroke="blue" x="1" y="1" width="798" height="398"/>
-                        <g font-size="25" font-family="Verdana" >
-                                <rect fill="none" stroke="blue" x="1" y="1" width="798" height="398"/>
-                                <rect x="100" y="20" width="500" height="40" fill="url(#MyGradient)" filter="url(#Identity)" />
-                                <text x="100" y="85">type="identity"</text>
-                                <rect x="100" y="120" width="500" height="40" fill="url(#MyGradient)" filter="url(#Table)" />
-                                <text x="100" y="185">type="table"</text>
-                                <rect x="100" y="220" width="500" height="40" fill="url(#MyGradient)" filter="url(#Linear)" />
-                                <text x="100" y="285">type="linear" slope=".5" intercepts:.25/0/.5</text>
-                                <rect x="100" y="320" width="500" height="40" fill="url(#MyGradient)" filter="url(#Gamma)" />
-                                <text x="100" y="385">type="gamma" amplitude="2" exponents:5/3/1</text>
-                        </g>
-                </svg>
-        </g>
-        <!--======================================================================-->
-        <!--Legend and frame: Title, suite and SVG document serialization====-->
-        <!--======================================================================-->
- <g id="test-legend" fill="black" font-family="Helvetica" font-size="10">
- <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000"/>
- <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
- <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
- <a xlink:href="copyright-documents-19990405.html">
- <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
- </a>
- <text font-size="12" x="35" y="330">filters-comptran-01</text>
- <text font-size="10" x="210" y="327">$Revision$</text>
- <text font-size="10" x="210" y="345">Release 1.0</text>
- <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
- </g>
-</svg>
</del></span></pre></div>
<a id="trunkLayoutTestssvgbatiktexttextBiDisvgfromrev211348trunkLayoutTestssvgbatiktexttextBiDisvgdisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/svg/batik/text/textBiDi.svg (from rev 211348, trunk/LayoutTests/svg/batik/text/textBiDi.svg-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/batik/text/textBiDi.svg         (rev 0)
+++ trunk/LayoutTests/svg/batik/text/textBiDi.svg        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,72 @@
</span><ins>+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
+"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--
+
+ Copyright 2001-2003 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<!-- ========================================================================= -->
+<!-- Test description here -->
+<!-- -->
+<!-- @author bill.haneman@ireland.sun.com -->
+<!-- @version $Id: textBiDi.svg,v 1.7 2004/08/18 07:12:21 vhardy Exp $ -->
+<!-- ========================================================================= -->
+<?xml-stylesheet type="text/css" href="../resources/test.css" ?>
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="500" viewBox="0 0 450 500">
+ <!-- ============================================================= -->
+ <!-- Test content -->
+ <!-- ============================================================= -->
+
+ <g id="testContent">
+ <text class="title" x="50%" y="10%" font-size="15" text-anchor="middle" >
+ BiDi Text / International Text</text>
+ <text x="50%" y="25%" font-size="12.5" text-anchor="middle">Some text goes <tspan fill="blue" direction="rtl" unicode-bidi="bidi-override">(right to left)</tspan>, other text goes (left to right).</text>
+
+ <text x="50%" y="30%" font-size="12.5" text-anchor="middle">Some <tspan fill="darkred" direction="rtl" unicode-bidi="embed">(embedded bidi)</tspan> text.</text>
+
+ <text style="font-style:oblique;font-size:10px;text-anchor:middle" x="50%" y="35%">
+ Text selection allows visually discontiguous
+ selections across bi-directional text.
+ </text>
+ <g font-family="dialog" font-size="15" text-anchor="start">
+ <text id="latin" fill="MidnightBlue" x="10%" y="45%">latin:
+ ABCDEFG
+ abcdefghijklmnopqrstuvwxyz</text>
+ <text id="latin-extended" fill="Sienna" x="10%" y="50%">latin-extended:
+ &#x0e6;&#x0e7;&#x0e8;&#x0e9;&#x0ea;&#x0eb;&#x0ec;&#x0ed;&#x0ee;&#x0ef;&#x0f0;&#x0f1;&#x0f2;&#x0f3;&#x0f4;</text>
+ <text id="cyrillic" fill="Indigo" x="10%" y="55%">cyrillic:
+ &#x411;&#x412;&#x413;&#x414;&#x415;&#x416;&#x417;&#x418;&#x419;&#x41a;&#x41b;&#x41c;&#x41d;&#x41e;&#x41f;&#x420;&#x421;&#x422;&#x423;&#x424;&#x425;&#x426;&#x427;</text>
+ <text id="greek" fill="Maroon" x="10%" y="60%">greek:
+ &#x391;&#x392;&#x393;&#x394; &#x3b1;&#x3b2;&#x3b3;&#x3b4;&#x3b5;&#x3b6;&#x3b7;&#x3b8;&#x3b9;&#x3ba;&#x3bb;&#x3bc;&#x3bd;&#x3be;&#x3bf;&#x3c0;&#x3c1;&#x3c2;&#x3c3;&#x3c4;&#x3c5;&#x3c6;&#x3c7;&#x3c8;&#x3c9;</text>
+ <text id="hebrew" fill="DarkOliveGreen" x="10%" y="65%">hebrew:
+ &#x5d0;&#x5d1;&#x5d2;&#x5d3;&#x5d4;&#x5d5;&#x5d6;&#x5d7;&#x5d8;&#x5d9;&#x5da;&#x5db;&#x5dc;&#x5dd;&#x5de;&#x5df;&#x5e0;&#x5e1;&#x5e2;&#x5e3;&#x5e4;&#x5e5;&#x5e6;&#x5e7;&#x5e8;&#x5e9;&#x5ea;</text>
+ <text fill="DarkOliveGreen" x="10%" y="70%"
+         >&#x5d0;&#x5d1;&#x5d2;&#x5d3;&#x5d4;&#x5d5;&#x5d6;&#x5d7;&#x5d8;&#x5d9;&#x5da;&#x5db;&#x5dc;&#x5dd;&#x5de;&#x5df;&#x5e0;&#x5e1;&#x5e2;&#x5e3;&#x5e4;&#x5e5;&#x5e6;&#x5e7;&#x5e8;&#x5e9;&#x5ea;</text>
+ <text id="arabic" fill="DarkRed" x="10%" y="75%">arabic:
+ &#x621;&#x623;&#x624;&#x625;&#x626;&#x627;&#x628;&#x629;&#x62a;&#x62b;&#x62c;&#x62d;&#x62e;&#x62f;&#x630;&#x631;&#x632;&#x633;&#x634;&#x635;&#x636;&#x637;&#x638;&#x639;&#x640;&#x641;&#x642;&#x643;&#x644;&#x645;&#x646;&#x647;&#x648;&#x649;&#x650;&#x676;</text>
+ <text fill="DarkRed" x="10%" y="80%"
+         >&#x621;&#x623;&#x624;&#x625;&#x626;&#x627;&#x628;&#x629;&#x62a;&#x62b;&#x62c;&#x62d;&#x62e;&#x62f;&#x630;&#x631;&#x632;&#x633;&#x634;&#x635;&#x636;&#x637;&#x638;&#x639;&#x640;&#x641;&#x642;&#x643;&#x644;&#x645;&#x646;&#x647;&#x648;&#x649;&#x650;&#x676;</text>
+ </g>
+ </g>
+
+ <!-- ============================================================= -->
+ <!-- Batik sample mark -->
+ <!-- ============================================================= -->
+ <use xlink:href="../resources/batikLogo.svg#Batik_Tag_Box" />
+
+</svg>
</ins></span></pre></div>
<a id="trunkLayoutTestssvgbatiktexttextBiDisvgdisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/svg/batik/text/textBiDi.svg-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/batik/text/textBiDi.svg-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/svg/batik/text/textBiDi.svg-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,72 +0,0 @@
</span><del>-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
-"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
-
-<!--
-
- Copyright 2001-2003 The Apache Software Foundation
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<!-- ========================================================================= -->
-<!-- Test description here -->
-<!-- -->
-<!-- @author bill.haneman@ireland.sun.com -->
-<!-- @version $Id: textBiDi.svg,v 1.7 2004/08/18 07:12:21 vhardy Exp $ -->
-<!-- ========================================================================= -->
-<?xml-stylesheet type="text/css" href="../resources/test.css" ?>
-
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="500" viewBox="0 0 450 500">
- <!-- ============================================================= -->
- <!-- Test content -->
- <!-- ============================================================= -->
-
- <g id="testContent">
- <text class="title" x="50%" y="10%" font-size="15" text-anchor="middle" >
- BiDi Text / International Text</text>
- <text x="50%" y="25%" font-size="12.5" text-anchor="middle">Some text goes <tspan fill="blue" direction="rtl" unicode-bidi="bidi-override">(right to left)</tspan>, other text goes (left to right).</text>
-
- <text x="50%" y="30%" font-size="12.5" text-anchor="middle">Some <tspan fill="darkred" direction="rtl" unicode-bidi="embed">(embedded bidi)</tspan> text.</text>
-
- <text style="font-style:oblique;font-size:10px;text-anchor:middle" x="50%" y="35%">
- Text selection allows visually discontiguous
- selections across bi-directional text.
- </text>
- <g font-family="dialog" font-size="15" text-anchor="start">
- <text id="latin" fill="MidnightBlue" x="10%" y="45%">latin:
- ABCDEFG
- abcdefghijklmnopqrstuvwxyz</text>
- <text id="latin-extended" fill="Sienna" x="10%" y="50%">latin-extended:
- &#x0e6;&#x0e7;&#x0e8;&#x0e9;&#x0ea;&#x0eb;&#x0ec;&#x0ed;&#x0ee;&#x0ef;&#x0f0;&#x0f1;&#x0f2;&#x0f3;&#x0f4;</text>
- <text id="cyrillic" fill="Indigo" x="10%" y="55%">cyrillic:
- &#x411;&#x412;&#x413;&#x414;&#x415;&#x416;&#x417;&#x418;&#x419;&#x41a;&#x41b;&#x41c;&#x41d;&#x41e;&#x41f;&#x420;&#x421;&#x422;&#x423;&#x424;&#x425;&#x426;&#x427;</text>
- <text id="greek" fill="Maroon" x="10%" y="60%">greek:
- &#x391;&#x392;&#x393;&#x394; &#x3b1;&#x3b2;&#x3b3;&#x3b4;&#x3b5;&#x3b6;&#x3b7;&#x3b8;&#x3b9;&#x3ba;&#x3bb;&#x3bc;&#x3bd;&#x3be;&#x3bf;&#x3c0;&#x3c1;&#x3c2;&#x3c3;&#x3c4;&#x3c5;&#x3c6;&#x3c7;&#x3c8;&#x3c9;</text>
- <text id="hebrew" fill="DarkOliveGreen" x="10%" y="65%">hebrew:
- &#x5d0;&#x5d1;&#x5d2;&#x5d3;&#x5d4;&#x5d5;&#x5d6;&#x5d7;&#x5d8;&#x5d9;&#x5da;&#x5db;&#x5dc;&#x5dd;&#x5de;&#x5df;&#x5e0;&#x5e1;&#x5e2;&#x5e3;&#x5e4;&#x5e5;&#x5e6;&#x5e7;&#x5e8;&#x5e9;&#x5ea;</text>
- <text fill="DarkOliveGreen" x="10%" y="70%"
-         >&#x5d0;&#x5d1;&#x5d2;&#x5d3;&#x5d4;&#x5d5;&#x5d6;&#x5d7;&#x5d8;&#x5d9;&#x5da;&#x5db;&#x5dc;&#x5dd;&#x5de;&#x5df;&#x5e0;&#x5e1;&#x5e2;&#x5e3;&#x5e4;&#x5e5;&#x5e6;&#x5e7;&#x5e8;&#x5e9;&#x5ea;</text>
- <text id="arabic" fill="DarkRed" x="10%" y="75%">arabic:
- &#x621;&#x623;&#x624;&#x625;&#x626;&#x627;&#x628;&#x629;&#x62a;&#x62b;&#x62c;&#x62d;&#x62e;&#x62f;&#x630;&#x631;&#x632;&#x633;&#x634;&#x635;&#x636;&#x637;&#x638;&#x639;&#x640;&#x641;&#x642;&#x643;&#x644;&#x645;&#x646;&#x647;&#x648;&#x649;&#x650;&#x676;</text>
- <text fill="DarkRed" x="10%" y="80%"
-         >&#x621;&#x623;&#x624;&#x625;&#x626;&#x627;&#x628;&#x629;&#x62a;&#x62b;&#x62c;&#x62d;&#x62e;&#x62f;&#x630;&#x631;&#x632;&#x633;&#x634;&#x635;&#x636;&#x637;&#x638;&#x639;&#x640;&#x641;&#x642;&#x643;&#x644;&#x645;&#x646;&#x647;&#x648;&#x649;&#x650;&#x676;</text>
- </g>
- </g>
-
- <!-- ============================================================= -->
- <!-- Batik sample mark -->
- <!-- ============================================================= -->
- <use xlink:href="../resources/batikLogo.svg#Batik_Tag_Box" />
-
-</svg>
</del></span></pre></div>
<a id="trunkLayoutTestssvgcustomfiltersourcealphasvgfromrev211348trunkLayoutTestssvgcustomfiltersourcealphasvgdisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/svg/custom/filter-source-alpha.svg (from rev 211348, trunk/LayoutTests/svg/custom/filter-source-alpha.svg-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/filter-source-alpha.svg         (rev 0)
+++ trunk/LayoutTests/svg/custom/filter-source-alpha.svg        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+<?xml version="1.0"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <filter id="filter">
+ <feGaussianBlur in="SourceAlpha" stdDeviation="0" result="blur"/>
+ <feMerge>
+ <feMergeNode in="blur"/>
+ <feMergeNode in="SourceGraphic"/>
+ </feMerge>
+ </filter>
+ </defs>
+ <rect x="0" y="0" width="100" height="100" fill="red"/>
+ <rect x="0" y="0" width="100" height="100" filter="url(#filter)" fill="green"/>
+</svg>
</ins></span></pre></div>
<a id="trunkLayoutTestssvgcustomfiltersourcealphasvgdisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/svg/custom/filter-source-alpha.svg-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/filter-source-alpha.svg-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/svg/custom/filter-source-alpha.svg-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,14 +0,0 @@
</span><del>-<?xml version="1.0"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <defs>
- <filter id="filter">
- <feGaussianBlur in="SourceAlpha" stdDeviation="0" result="blur"/>
- <feMerge>
- <feMergeNode in="blur"/>
- <feMergeNode in="SourceGraphic"/>
- </feMerge>
- </filter>
- </defs>
- <rect x="0" y="0" width="100" height="100" fill="red"/>
- <rect x="0" y="0" width="100" height="100" filter="url(#filter)" fill="green"/>
-</svg>
</del></span></pre></div>
<a id="trunkLayoutTestssvgcustomfontfacefallbacksvgfromrev211348trunkLayoutTestssvgcustomfontfacefallbacksvgdisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/svg/custom/font-face-fallback.svg (from rev 211348, trunk/LayoutTests/svg/custom/font-face-fallback.svg-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/font-face-fallback.svg         (rev 0)
+++ trunk/LayoutTests/svg/custom/font-face-fallback.svg        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,21 @@
</span><ins>+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<style type="text/css" media="all">
+ #svgtest {
+ font: 2.3cm "svgtest", fantasy;
+ }
+</style>
+<defs>
+ <font-face id="test" font-family="svgtest">
+ <font-face-src>
+ <font-face-name name="NOT A VALID FONT" />
+ <font-face-name name="sdlfkj" />
+ <font-face-name name=" sdflkjsdf " />
+ <font-face-uri xlink:href="url(bogus)" />
+ <font-face-uri xlink:href="#bogus" />
+ <font-face-name name="Ahem" />
+ </font-face-src>
+ </font-face>
+</defs>
+<text id="svgtest" x="10" y="3cm">ONLY BLOCKS</text>
+<text x="30" y="3cm">The text above should only show Ahem blocks</text>
+</svg>
</ins></span></pre></div>
<a id="trunkLayoutTestssvgcustomfontfacefallbacksvgdisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/svg/custom/font-face-fallback.svg-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/font-face-fallback.svg-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/svg/custom/font-face-fallback.svg-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,21 +0,0 @@
</span><del>-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<style type="text/css" media="all">
- #svgtest {
- font: 2.3cm "svgtest", fantasy;
- }
-</style>
-<defs>
- <font-face id="test" font-family="svgtest">
- <font-face-src>
- <font-face-name name="NOT A VALID FONT" />
- <font-face-name name="sdlfkj" />
- <font-face-name name=" sdflkjsdf " />
- <font-face-uri xlink:href="url(bogus)" />
- <font-face-uri xlink:href="#bogus" />
- <font-face-name name="Ahem" />
- </font-face-src>
- </font-face>
-</defs>
-<text id="svgtest" x="10" y="3cm">ONLY BLOCKS</text>
-<text x="30" y="3cm">The text above should only show Ahem blocks</text>
-</svg>
</del></span></pre></div>
<a id="trunkLayoutTestssvgcustomjsfonttestsvgfromrev211348trunkLayoutTestssvgcustomjsfonttestsvgdisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/svg/custom/js-font-test.svg (from rev 211348, trunk/LayoutTests/svg/custom/js-font-test.svg-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/js-font-test.svg         (rev 0)
+++ trunk/LayoutTests/svg/custom/js-font-test.svg        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,128 @@
</span><ins>+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="800" height="1000" xmlns="http://www.w3.org/2000/svg" onload="init()">
+ <script language="JavaScript">
+ var fontFamily1 = "Arial";
+ var fontFamily2 = "LucidaSansUnicode";
+ var fontFamily3 = "MS-Gothic";
+
+ var entryYOffset = 10;
+ var entryYDelta = 16;
+
+ var entryX = new Array();
+ entryX[0] = 10;
+ entryX[1] = 100;
+ entryX[2] = 190;
+
+ var entryXEnd = entryX[0] + entryX[1] + entryX[2];
+
+ var entryY = new Array();
+ entryY[0] = entryYOffset;
+ entryY[1] = entryYOffset;
+ entryY[2] = entryYOffset;
+
+ var insert;
+
+ function drawGrid(xValue, yValue)
+ {
+ var line = document.createElement("line");
+ line.x1.baseVal.value = Math.floor(xValue);
+ line.y1.baseVal.value = Math.floor(yValue) + (entryYDelta / 2) - 4;
+ line.x2.baseVal.value = Math.floor(xValue) + entryXEnd;
+ line.y2.baseVal.value = Math.floor(yValue) + (entryYDelta / 2) - 4;
+ line.setAttribute("style", "stroke-width:1px; stroke:black; opacity:0.5");
+
+ insert.appendChild(line);
+ }
+
+ function entry(message, xValue, yValue, family)
+ {
+ var text = document.createElement("text");
+
+ // Set X/Y properties using SVG DOM
+ var xLength = document.rootElement.createSVGLength();
+ xLength.value = xValue;
+
+ var yLength = document.rootElement.createSVGLength();
+ yLength.value = yValue;
+
+ text.x.baseVal.appendItem(xLength);
+ text.y.baseVal.appendItem(yLength);
+
+ // Append "Text" child node
+ text.appendChild(document.createTextNode(message));
+
+ // Choose font-size/font-family
+ switch (family) {
+ case 0:
+ text.setAttribute("font-family", fontFamily1);
+ break;
+ case 1:
+ text.setAttribute("font-family", fontFamily2);
+ break;
+ case 2:
+ text.setAttribute("font-family", fontFamily3);
+ break;
+ }
+
+ text.setAttribute("font-size", "12");
+
+ // Add to tree
+ insert.appendChild(text);
+ return entryYDelta;
+ }
+
+ function newEntry(col1, col2, col3, family)
+ {
+ drawGrid(entryX[0], entryY[0]);
+
+ entryY[0] += entry(col1, entryX[0], entryY[0], family);
+ entryY[1] += entry(col2, entryX[1], entryY[1], family);
+ entryY[2] += entry(col3, entryX[2], entryY[2], family);
+ }
+
+ function init()
+ {
+ insert = document.getElementById("insert");
+
+ newEntry("Arabic", "", "السلام عليكم ", 0);
+ newEntry("Bengali", "বাঙ্লা", "ষাগতোম", 0); // Which lang?
+ newEntry("Burmese", "", "မ္ရန္မာ", 0); // Which lang?
+ newEntry("Cherokee", "ᏣᎳᎩ", "ᎣᏏᏲ", 0); // Which lang?
+ newEntry("Czech", "česky", "Dobrý den", 0);
+ newEntry("Danish", "Dansk", "Hej, Goddag", 0);
+ newEntry("English", "", "Hello", 0);
+ newEntry("Esperanto", "", "Saluton", 0);
+ newEntry("Estonian", "", "Tere, Tervist", 0);
+ newEntry("Finnish", "Suomi", "Hei", 0);
+ newEntry("French", "Français", "Bonjour, Salut", 0);
+ newEntry("German", "Deutsch Nord", "Guten Tag", 0);
+ newEntry("German", "Deutsch Süd", "Grüß Gott", 0);
+ newEntry("Georgian", "ქართველი", "გამარჯობა", 0); // Which lang?
+ newEntry("Gujarati", "", "ગુજરાતિ", 0); // Which lang?
+ newEntry("Greek", "Ελληνικά", "Γειά σας", 0);
+ newEntry("Hebrew", "", "שלום", 1);
+ newEntry("Hindi", "", "नमस्ते, नमस्कार।", 0); // Which lang?
+ newEntry("Italiano", "", "Ciao, Buon giorno", 0);
+ newEntry("ɪŋglɪʃ", "", "hɛləʊ", 1); // Which lang here?
+ newEntry("Maltese", "", "Ċaw, Saħħa", 1);
+ newEntry("Nederlands", "", "Hallo, Dag", 0);
+ newEntry("Norwegian", "Norsk", "Hei, God dag", 0);
+ newEntry("Punjabi", "", "ੁਪੁਂਜਾਬਿ", 0); // Which lang?
+ newEntry("Polish", "", "Dzień dobry, Hej", 0);
+ newEntry("Russian", "Русский", "Здравствуйте!", 0);
+ newEntry("Slovak", "", "Dobrý deň", 0);
+ newEntry("Spanish", "Español", "¡Hola!", 1);
+ newEntry("Swedish", "Svenska", "Hej, Goddag", 0);
+ newEntry("Thai", "ภาษาไทย", "สวัสดีครับ, สวัสดีค่ะ", 0); // Which lang?
+ newEntry("Turkish", "Türkçe", "Merhaba", 0);
+ newEntry("Vietnamese", "Tiếng Việt", "Xin Chào", 0);
+ newEntry("Yiddish", "ײַדישע", "דאָס הײַזעלע ", 1);
+ newEntry("Japanese", "日本語", "こんにちは, コンニチハ", 2);
+ newEntry("Chinese", "中文,普通话,汉语\xBD", "你好", 2);
+ newEntry("Cantonese", "粵語,廣東話", "早晨, 你好", 2);
+ newEntry("Korean", "한글", "안녕하세요, 안녕하십니까", 0); // Which lang?
+ }
+ </script>
+
+ <g id="insert"/>
+</svg>
</ins></span></pre></div>
<a id="trunkLayoutTestssvgcustomjsfonttestsvgdisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/svg/custom/js-font-test.svg-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/js-font-test.svg-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/svg/custom/js-font-test.svg-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,128 +0,0 @@
</span><del>-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="800" height="1000" xmlns="http://www.w3.org/2000/svg" onload="init()">
- <script language="JavaScript">
- var fontFamily1 = "Arial";
- var fontFamily2 = "LucidaSansUnicode";
- var fontFamily3 = "MS-Gothic";
-
- var entryYOffset = 10;
- var entryYDelta = 16;
-
- var entryX = new Array();
- entryX[0] = 10;
- entryX[1] = 100;
- entryX[2] = 190;
-
- var entryXEnd = entryX[0] + entryX[1] + entryX[2];
-
- var entryY = new Array();
- entryY[0] = entryYOffset;
- entryY[1] = entryYOffset;
- entryY[2] = entryYOffset;
-
- var insert;
-
- function drawGrid(xValue, yValue)
- {
- var line = document.createElement("line");
- line.x1.baseVal.value = Math.floor(xValue);
- line.y1.baseVal.value = Math.floor(yValue) + (entryYDelta / 2) - 4;
- line.x2.baseVal.value = Math.floor(xValue) + entryXEnd;
- line.y2.baseVal.value = Math.floor(yValue) + (entryYDelta / 2) - 4;
- line.setAttribute("style", "stroke-width:1px; stroke:black; opacity:0.5");
-
- insert.appendChild(line);
- }
-
- function entry(message, xValue, yValue, family)
- {
- var text = document.createElement("text");
-
- // Set X/Y properties using SVG DOM
- var xLength = document.rootElement.createSVGLength();
- xLength.value = xValue;
-
- var yLength = document.rootElement.createSVGLength();
- yLength.value = yValue;
-
- text.x.baseVal.appendItem(xLength);
- text.y.baseVal.appendItem(yLength);
-
- // Append "Text" child node
- text.appendChild(document.createTextNode(message));
-
- // Choose font-size/font-family
- switch (family) {
- case 0:
- text.setAttribute("font-family", fontFamily1);
- break;
- case 1:
- text.setAttribute("font-family", fontFamily2);
- break;
- case 2:
- text.setAttribute("font-family", fontFamily3);
- break;
- }
-
- text.setAttribute("font-size", "12");
-
- // Add to tree
- insert.appendChild(text);
- return entryYDelta;
- }
-
- function newEntry(col1, col2, col3, family)
- {
- drawGrid(entryX[0], entryY[0]);
-
- entryY[0] += entry(col1, entryX[0], entryY[0], family);
- entryY[1] += entry(col2, entryX[1], entryY[1], family);
- entryY[2] += entry(col3, entryX[2], entryY[2], family);
- }
-
- function init()
- {
- insert = document.getElementById("insert");
-
- newEntry("Arabic", "", "السلام عليكم ", 0);
- newEntry("Bengali", "বাঙ্লা", "ষাগতোম", 0); // Which lang?
- newEntry("Burmese", "", "မ္ရန္မာ", 0); // Which lang?
- newEntry("Cherokee", "ᏣᎳᎩ", "ᎣᏏᏲ", 0); // Which lang?
- newEntry("Czech", "česky", "Dobrý den", 0);
- newEntry("Danish", "Dansk", "Hej, Goddag", 0);
- newEntry("English", "", "Hello", 0);
- newEntry("Esperanto", "", "Saluton", 0);
- newEntry("Estonian", "", "Tere, Tervist", 0);
- newEntry("Finnish", "Suomi", "Hei", 0);
- newEntry("French", "Français", "Bonjour, Salut", 0);
- newEntry("German", "Deutsch Nord", "Guten Tag", 0);
- newEntry("German", "Deutsch Süd", "Grüß Gott", 0);
- newEntry("Georgian", "ქართველი", "გამარჯობა", 0); // Which lang?
- newEntry("Gujarati", "", "ગુજરાતિ", 0); // Which lang?
- newEntry("Greek", "Ελληνικά", "Γειά σας", 0);
- newEntry("Hebrew", "", "שלום", 1);
- newEntry("Hindi", "", "नमस्ते, नमस्कार।", 0); // Which lang?
- newEntry("Italiano", "", "Ciao, Buon giorno", 0);
- newEntry("ɪŋglɪʃ", "", "hɛləʊ", 1); // Which lang here?
- newEntry("Maltese", "", "Ċaw, Saħħa", 1);
- newEntry("Nederlands", "", "Hallo, Dag", 0);
- newEntry("Norwegian", "Norsk", "Hei, God dag", 0);
- newEntry("Punjabi", "", "ੁਪੁਂਜਾਬਿ", 0); // Which lang?
- newEntry("Polish", "", "Dzień dobry, Hej", 0);
- newEntry("Russian", "Русский", "Здравствуйте!", 0);
- newEntry("Slovak", "", "Dobrý deň", 0);
- newEntry("Spanish", "Español", "¡Hola!", 1);
- newEntry("Swedish", "Svenska", "Hej, Goddag", 0);
- newEntry("Thai", "ภาษาไทย", "สวัสดีครับ, สวัสดีค่ะ", 0); // Which lang?
- newEntry("Turkish", "Türkçe", "Merhaba", 0);
- newEntry("Vietnamese", "Tiếng Việt", "Xin Chào", 0);
- newEntry("Yiddish", "ײַדישע", "דאָס הײַזעלע ", 1);
- newEntry("Japanese", "日本語", "こんにちは, コンニチハ", 2);
- newEntry("Chinese", "中文,普通话,汉语\xBD", "你好", 2);
- newEntry("Cantonese", "粵語,廣東話", "早晨, 你好", 2);
- newEntry("Korean", "한글", "안녕하세요, 안녕하십니까", 0); // Which lang?
- }
- </script>
-
- <g id="insert"/>
-</svg>
</del></span></pre></div>
<a id="trunkLayoutTestssvgzoompagezoomsvgthroughobjectwithtextxhtmlfromrev211348trunkLayoutTestssvgzoompagezoomsvgthroughobjectwithtextxhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml (from rev 211348, trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml         (rev 0)
+++ trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+<?xml version="1.0" encoding="UTF-8"?>
+<!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">
+<head>
+</head>
+<body onload="runRepaintTest()">
+<!-- FIXME: This is broken, text doesn't correctly zoom, its font size remains the same upon scaling -->
+<object data="resources/text.svg" width="85" height="20"/>
+<script>var zoomCount = 2; window.shouldZoomOut = true;</script>
+<script src="../../../fast/repaint/resources/repaint.js"></script>
+<script src="../resources/testPageZoom.js"></script>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestssvgzoompagezoomsvgthroughobjectwithtextxhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,13 +0,0 @@
</span><del>-<?xml version="1.0" encoding="UTF-8"?>
-<!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">
-<head>
-</head>
-<body onload="runRepaintTest()">
-<!-- FIXME: This is broken, text doesn't correctly zoom, its font size remains the same upon scaling -->
-<object data="resources/text.svg" width="85" height="20"/>
-<script>var zoomCount = 2; window.shouldZoomOut = true;</script>
-<script src="../../../fast/repaint/resources/repaint.js"></script>
-<script src="../resources/testPageZoom.js"></script>
-</body>
-</html>
</del></span></pre>
</div>
</div>
</body>
</html>