<!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>[199293] trunk</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/199293">199293</a></dd>
<dt>Author</dt> <dd>fred.wang@free.fr</dd>
<dt>Date</dt> <dd>2016-04-11 05:11:18 -0700 (Mon, 11 Apr 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Refactor RenderMathMLUnderOver layout functions to avoid using flexbox
https://bugs.webkit.org/show_bug.cgi?id=153742

Patch by Frederic Wang &lt;fwang@igalia.com&gt; on 2016-04-11
Reviewed by Sergio Villar Senin.

Source/WebCore:

Based on a patch by Javier Fernandez &lt;jfernandez@igalia.com&gt;

Refactor the UnderOver renderer to use its own layoutBlock method that
does all the layout calculations without considering the flexbox
restrictions.

* css/mathml.css:
(mo, mfrac, munder, mover, munderover): Delete the underover elements from the line defining
the column direction.
(munder, mover, munderover): Deleted. This flexbox property is no longer needed.
(mover &gt; :last-child, munderover &gt; :last-child): Deleted. This flexbox property is no longer
needed.
* rendering/mathml/RenderMathMLUnderOver.cpp:
(WebCore::RenderMathMLUnderOver::firstLineBaseline): Use ascentForChild.
(WebCore::RenderMathMLUnderOver::computeOperatorsHorizontalStretch): Avoid stretching
operators that are not stretchy.
(WebCore::RenderMathMLUnderOver::isValid): Helper function to ensure that the child list is
valid with respect to the MathML specification.
(WebCore::RenderMathMLUnderOver::base): Added. Helper function.
(WebCore::RenderMathMLUnderOver::under): Added. Helper function.
(WebCore::RenderMathMLUnderOver::over): Added. Helper function.
(WebCore::RenderMathMLUnderOver::computePreferredLogicalWidths): Added.
The preferred width is the maximum preferred width of the base, under and over scripts.
(WebCore::RenderMathMLUnderOver::horizontalOffset): Added, helper to calculate the
horizontal position of children (horizontally centered).
(WebCore::RenderMathMLUnderOver::layoutBlock): Added, it lays out the base, underscript and
overscript. It calculates the exact logical width, which may differ from the preferred width when
one child contains stretchy operators. It later sets the locations of children accordingly
and sets the heigth of the render element.
(WebCore::RenderMathMLUnderOver::paintChildren): Added, we have to use the usual traverse
instead of the one that comes from the flexbox. This will be removed in a follow-up patch.
(WebCore::RenderMathMLUnderOver::layout): Deleted.
* rendering/mathml/RenderMathMLUnderOver.h: Added new functions definitions.

LayoutTests:

Apply some small adjustments to the expectations of MathML tests after
the refactoring of RenderMathMLUnderOver. We also add a test for
non-stretchy horizontal operators in underover.

* platform/gtk/mathml/opentype/horizontal-expected.png:
* platform/gtk/mathml/opentype/horizontal-expected.txt:
* platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png:
* platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
* platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.png:
* platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
* mathml/mn-as-list-item-assert.html: Move the test description out of the invalid munderover
so that it is still displayed.
* mathml/mn-as-list-item-assert-expected.txt: Update the text expectation.
* mathml/presentation/underover-nonstretchy-horizontal.html: Ensure that nonstretchy horizontal operators are not stretched in munderover.
* mathml/presentation/underover-nonstretchy-horizontal-expected.html: Ditto.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsmathmlmnaslistitemassertexpectedtxt">trunk/LayoutTests/mathml/mn-as-list-item-assert-expected.txt</a></li>
<li><a href="#trunkLayoutTestsmathmlmnaslistitemasserthtml">trunk/LayoutTests/mathml/mn-as-list-item-assert.html</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlopentypehorizontalexpectedpng">trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-expected.png</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlopentypehorizontalexpectedtxt">trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlopentypeopentypestretchyhorizontalexpectedpng">trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png</a></li>
<li><a href="#trunkLayoutTestsplatformgtkmathmlopentypeopentypestretchyhorizontalexpectedtxt">trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacmathmlopentypeopentypestretchyhorizontalexpectedpng">trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.png</a></li>
<li><a href="#trunkLayoutTestsplatformmacmathmlopentypeopentypestretchyhorizontalexpectedtxt">trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorecssmathmlcss">trunk/Source/WebCore/css/mathml.css</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLUnderOvercpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLUnderOverh">trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsmathmlpresentationunderovernonstretchyhorizontalexpectedhtml">trunk/LayoutTests/mathml/presentation/underover-nonstretchy-horizontal-expected.html</a></li>
<li><a href="#trunkLayoutTestsmathmlpresentationunderovernonstretchyhorizontalhtml">trunk/LayoutTests/mathml/presentation/underover-nonstretchy-horizontal.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (199292 => 199293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-04-11 10:59:03 UTC (rev 199292)
+++ trunk/LayoutTests/ChangeLog        2016-04-11 12:11:18 UTC (rev 199293)
</span><span class="lines">@@ -1,3 +1,26 @@
</span><ins>+2016-04-11  Frederic Wang  &lt;fwang@igalia.com&gt;
+
+        Refactor RenderMathMLUnderOver layout functions to avoid using flexbox
+        https://bugs.webkit.org/show_bug.cgi?id=153742
+
+        Reviewed by Sergio Villar Senin.
+
+        Apply some small adjustments to the expectations of MathML tests after
+        the refactoring of RenderMathMLUnderOver. We also add a test for
+        non-stretchy horizontal operators in underover.
+
+        * platform/gtk/mathml/opentype/horizontal-expected.png:
+        * platform/gtk/mathml/opentype/horizontal-expected.txt:
+        * platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png:
+        * platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
+        * platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.png:
+        * platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
+        * mathml/mn-as-list-item-assert.html: Move the test description out of the invalid munderover
+        so that it is still displayed.
+        * mathml/mn-as-list-item-assert-expected.txt: Update the text expectation.
+        * mathml/presentation/underover-nonstretchy-horizontal.html: Ensure that nonstretchy horizontal operators are not stretched in munderover.
+        * mathml/presentation/underover-nonstretchy-horizontal-expected.html: Ditto.
+
</ins><span class="cx"> 2016-04-11  Antti Koivisto  &lt;antti@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Implement functional :host() pseudo class
</span></span></pre></div>
<a id="trunkLayoutTestsmathmlmnaslistitemassertexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/mathml/mn-as-list-item-assert-expected.txt (199292 => 199293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/mathml/mn-as-list-item-assert-expected.txt        2016-04-11 10:59:03 UTC (rev 199292)
+++ trunk/LayoutTests/mathml/mn-as-list-item-assert-expected.txt        2016-04-11 12:11:18 UTC (rev 199293)
</span><span class="lines">@@ -1,2 +1,3 @@
</span><span class="cx"> This test PASSES if it does not CRASH or ASSERT.
</span><span class="cx"> 
</span><ins>+
</ins></span></pre></div>
<a id="trunkLayoutTestsmathmlmnaslistitemasserthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/mathml/mn-as-list-item-assert.html (199292 => 199293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/mathml/mn-as-list-item-assert.html        2016-04-11 10:59:03 UTC (rev 199292)
+++ trunk/LayoutTests/mathml/mn-as-list-item-assert.html        2016-04-11 12:11:18 UTC (rev 199293)
</span><span class="lines">@@ -7,8 +7,9 @@
</span><span class="cx">     &lt;/script&gt;
</span><span class="cx"> &lt;/head&gt;
</span><span class="cx"> &lt;body&gt;
</span><ins>+  &lt;p&gt;This test PASSES if it does not CRASH or ASSERT.&lt;/p&gt;
</ins><span class="cx"> &lt;math&gt; 
</span><span class="cx">     &lt;munderover&gt;
</span><del>-        &lt;mn style=&quot;display: list-item;&quot;&gt;This test PASSES if it does not CRASH or ASSERT.&lt;/mn&gt;
</del><ins>+        &lt;mn style=&quot;display: list-item;&quot;&gt;mn&lt;/mn&gt;
</ins><span class="cx">     &lt;/munderover&gt;
</span><span class="cx"> &lt;/math&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmathmlpresentationunderovernonstretchyhorizontalexpectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/mathml/presentation/underover-nonstretchy-horizontal-expected.html (0 => 199293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/mathml/presentation/underover-nonstretchy-horizontal-expected.html                                (rev 0)
+++ trunk/LayoutTests/mathml/presentation/underover-nonstretchy-horizontal-expected.html        2016-04-11 12:11:18 UTC (rev 199293)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;math&gt;
+  &lt;munderover&gt;
+    &lt;mspace width=&quot;100px&quot; height=&quot;10px&quot; mathbackground=&quot;red&quot;/&gt;
+    &lt;mtext&gt;_&lt;/mtext&gt;
+    &lt;mtext&gt;_&lt;/mtext&gt;
+  &lt;/munderover&gt;
+&lt;/math&gt;
</ins><span class="cx">Property changes on: trunk/LayoutTests/mathml/presentation/underover-nonstretchy-horizontal-expected.html
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svnmimetype"></a>
<div class="addfile"><h4>Added: svn:mime-type</h4></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkLayoutTestsmathmlpresentationunderovernonstretchyhorizontalhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/mathml/presentation/underover-nonstretchy-horizontal.html (0 => 199293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/mathml/presentation/underover-nonstretchy-horizontal.html                                (rev 0)
+++ trunk/LayoutTests/mathml/presentation/underover-nonstretchy-horizontal.html        2016-04-11 12:11:18 UTC (rev 199293)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;!-- Horizontal operators set to non-stretchy should not stretch. --&gt;
+&lt;math&gt;
+  &lt;munderover&gt;
+    &lt;mspace width=&quot;100px&quot; height=&quot;10px&quot; mathbackground=&quot;red&quot;/&gt;
+    &lt;mo stretchy=&quot;false&quot; lspace=&quot;0px&quot; rspace=&quot;0px&quot;&gt;_&lt;/mo&gt;
+    &lt;mo stretchy=&quot;false&quot; lspace=&quot;0px&quot; rspace=&quot;0px&quot;&gt;_&lt;/mo&gt;
+  &lt;/munderover&gt;
+&lt;/math&gt;
</ins><span class="cx">Property changes on: trunk/LayoutTests/mathml/presentation/underover-nonstretchy-horizontal.html
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svnmimetype"></a>
<div class="addfile"><h4>Added: svn:mime-type</h4></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkLayoutTestsplatformgtkmathmlopentypehorizontalexpectedpng"></a>
<div class="binary"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-expected.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlopentypehorizontalexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-expected.txt (199292 => 199293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-expected.txt        2016-04-11 10:59:03 UTC (rev 199292)
+++ trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-expected.txt        2016-04-11 12:11:18 UTC (rev 199293)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx">   RenderBlock {HTML} at (0,0) size 800x166
</span><span class="cx">     RenderBody {BODY} at (8,16) size 784x134
</span><span class="cx">       RenderBlock {P} at (0,0) size 784x17
</span><del>-        RenderMathMLMath {math} at (0,4) size 31x10 [padding: 0 1 0 1]
</del><ins>+        RenderMathMLMath {math} at (0,4) size 24x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 29x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 29x8
</span><span class="lines">@@ -12,9 +12,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2190}&quot;
</span><del>-        RenderText {#text} at (30,0) size 5x17
-          text run at (30,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (34,4) size 32x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (24,0) size 4x17
+          text run at (24,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (28,4) size 24x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 29x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 29x8
</span><span class="lines">@@ -22,9 +22,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2192}&quot;
</span><del>-        RenderText {#text} at (65,0) size 5x17
-          text run at (65,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (69,4) size 31x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (52,0) size 4x17
+          text run at (52,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (56,4) size 24x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 29x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 29x8
</span><span class="lines">@@ -32,9 +32,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2194}&quot;
</span><del>-        RenderText {#text} at (99,0) size 5x17
-          text run at (99,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (103,4) size 32x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (80,0) size 4x17
+          text run at (80,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (84,4) size 24x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 29x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 29x8
</span><span class="lines">@@ -42,9 +42,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21A4}&quot;
</span><del>-        RenderText {#text} at (134,0) size 5x17
-          text run at (134,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (138,4) size 32x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (108,0) size 4x17
+          text run at (108,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (112,4) size 24x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 29x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 29x8
</span><span class="lines">@@ -52,9 +52,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21A6}&quot;
</span><del>-        RenderText {#text} at (169,0) size 5x17
-          text run at (169,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (173,5) size 31x9 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (136,0) size 4x17
+          text run at (136,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (140,5) size 24x9 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 29x9
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,7) size 23x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 29x7
</span><span class="lines">@@ -62,9 +62,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x7
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21BC}&quot;
</span><del>-        RenderText {#text} at (203,0) size 5x17
-          text run at (203,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (207,7) size 32x7 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (164,0) size 4x17
+          text run at (164,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (168,7) size 24x7 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 29x7
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,5) size 23x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 29x5
</span><span class="lines">@@ -72,9 +72,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x5
</span><span class="cx">                   RenderText at (0,-39) size 12x80
</span><span class="cx">                     text run at (0,-39) width 12: &quot;\x{21BD}&quot;
</span><del>-        RenderText {#text} at (238,0) size 5x17
-          text run at (238,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (242,5) size 32x9 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (192,0) size 4x17
+          text run at (192,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (196,5) size 24x9 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 29x9
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,7) size 23x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 29x7
</span><span class="lines">@@ -82,9 +82,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x7
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21C0}&quot;
</span><del>-        RenderText {#text} at (273,0) size 5x17
-          text run at (273,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (277,4) size 31x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (220,0) size 4x17
+          text run at (220,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (224,4) size 24x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 29x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 29x8
</span><span class="lines">@@ -92,9 +92,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D0}&quot;
</span><del>-        RenderText {#text} at (307,0) size 5x17
-          text run at (307,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (311,4) size 32x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (248,0) size 4x17
+          text run at (248,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (252,4) size 24x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 29x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 29x8
</span><span class="lines">@@ -102,9 +102,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D2}&quot;
</span><del>-        RenderText {#text} at (342,0) size 5x17
-          text run at (342,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (346,4) size 32x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (276,0) size 4x17
+          text run at (276,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (280,4) size 24x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 29x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 29x8
</span><span class="lines">@@ -112,9 +112,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D4}&quot;
</span><del>-        RenderText {#text} at (377,0) size 5x17
-          text run at (377,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (381,2) size 31x12 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (304,0) size 4x17
+          text run at (304,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (308,2) size 24x12 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 29x12
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,10) size 23x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 29x10
</span><span class="lines">@@ -122,9 +122,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x10
</span><span class="cx">                   RenderText at (0,-35) size 12x80
</span><span class="cx">                     text run at (0,-35) width 12: &quot;\x{21DA}&quot;
</span><del>-        RenderText {#text} at (411,0) size 5x17
-          text run at (411,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (415,2) size 32x12 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (332,0) size 4x17
+          text run at (332,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (336,2) size 24x12 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 29x12
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,10) size 23x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 29x10
</span><span class="lines">@@ -132,9 +132,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x10
</span><span class="cx">                   RenderText at (0,-35) size 12x80
</span><span class="cx">                     text run at (0,-35) width 12: &quot;\x{21DB}&quot;
</span><del>-        RenderText {#text} at (446,0) size 5x17
-          text run at (446,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (450,9) size 25x5 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (360,0) size 4x17
+          text run at (360,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (364,9) size 24x5 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 22x5
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,3) size 22x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 22x3
</span><span class="lines">@@ -142,9 +142,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 4x3
</span><span class="cx">                   RenderText at (0,-34) size 4x80
</span><span class="cx">                     text run at (0,-34) width 4: &quot;\x{23B4}&quot;
</span><del>-        RenderText {#text} at (474,0) size 5x17
-          text run at (474,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (478,9) size 25x5 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (388,0) size 4x17
+          text run at (388,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (392,9) size 24x5 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 22x5
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,3) size 22x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 22x3
</span><span class="lines">@@ -152,9 +152,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 4x3
</span><span class="cx">                   RenderText at (0,-43) size 4x80
</span><span class="cx">                     text run at (0,-43) width 4: &quot;\x{23B5}&quot;
</span><del>-        RenderText {#text} at (502,0) size 5x17
-          text run at (502,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (506,8) size 27x6 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (416,0) size 4x17
+          text run at (416,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (420,8) size 24x6 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 24x6
</span><span class="cx">             RenderMathMLSpace {mspace} at (1,4) size 22x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 24x4
</span><span class="lines">@@ -162,9 +162,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x4
</span><span class="cx">                   RenderText at (0,-34) size 6x80
</span><span class="cx">                     text run at (0,-34) width 6: &quot;\x{23DC}&quot;
</span><del>-        RenderText {#text} at (532,0) size 5x17
-          text run at (532,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (536,7) size 27x7 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (444,0) size 4x17
+          text run at (444,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (448,7) size 24x7 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 24x7
</span><span class="cx">             RenderMathMLSpace {mspace} at (1,5) size 22x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 24x5
</span><span class="lines">@@ -172,9 +172,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x4
</span><span class="cx">                   RenderText at (0,-43) size 6x80
</span><span class="cx">                     text run at (0,-43) width 6: &quot;\x{23DD}&quot;
</span><del>-        RenderText {#text} at (562,0) size 5x17
-          text run at (562,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (566,8) size 27x6 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (472,0) size 4x17
+          text run at (472,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (476,8) size 24x6 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 24x6
</span><span class="cx">             RenderMathMLSpace {mspace} at (1,4) size 22x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 24x4
</span><span class="lines">@@ -182,9 +182,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x4
</span><span class="cx">                   RenderText at (0,-33) size 6x80
</span><span class="cx">                     text run at (0,-33) width 6: &quot;\x{23DE}&quot;
</span><del>-        RenderText {#text} at (592,0) size 5x17
-          text run at (592,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (596,7) size 27x7 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (500,0) size 4x17
+          text run at (500,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (504,7) size 24x7 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 24x7
</span><span class="cx">             RenderMathMLSpace {mspace} at (1,5) size 22x2 [bgcolor=#0000FF]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 24x5
</span><span class="lines">@@ -194,7 +194,7 @@
</span><span class="cx">                     text run at (0,-43) width 6: &quot;\x{23DF}&quot;
</span><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><span class="cx">       RenderBlock {P} at (0,33) size 784x34
</span><del>-        RenderMathMLMath {math} at (0,4) size 59x10 [padding: 0 1 0 1]
</del><ins>+        RenderMathMLMath {math} at (0,4) size 52x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 57x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 57x8
</span><span class="lines">@@ -202,9 +202,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2190}&quot;
</span><del>-        RenderText {#text} at (58,0) size 5x17
-          text run at (58,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (62,4) size 60x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (52,0) size 4x17
+          text run at (52,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (56,4) size 52x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 57x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 57x8
</span><span class="lines">@@ -212,9 +212,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2192}&quot;
</span><del>-        RenderText {#text} at (121,0) size 5x17
-          text run at (121,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (125,4) size 59x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (108,0) size 4x17
+          text run at (108,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (112,4) size 52x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 57x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 57x8
</span><span class="lines">@@ -222,9 +222,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2194}&quot;
</span><del>-        RenderText {#text} at (183,0) size 5x17
-          text run at (183,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (187,4) size 60x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (164,0) size 4x17
+          text run at (164,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (168,4) size 52x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 57x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 57x8
</span><span class="lines">@@ -232,9 +232,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21A4}&quot;
</span><del>-        RenderText {#text} at (246,0) size 5x17
-          text run at (246,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (250,4) size 60x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (220,0) size 4x17
+          text run at (220,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (224,4) size 52x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 57x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 57x8
</span><span class="lines">@@ -242,9 +242,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21A6}&quot;
</span><del>-        RenderText {#text} at (309,0) size 5x17
-          text run at (309,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (313,5) size 59x9 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (276,0) size 4x17
+          text run at (276,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (280,5) size 52x9 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 57x9
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,7) size 51x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 57x7
</span><span class="lines">@@ -252,9 +252,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x7
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21BC}&quot;
</span><del>-        RenderText {#text} at (371,0) size 5x17
-          text run at (371,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (375,7) size 60x7 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (332,0) size 4x17
+          text run at (332,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (336,7) size 52x7 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 57x7
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,5) size 51x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 57x5
</span><span class="lines">@@ -262,9 +262,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x5
</span><span class="cx">                   RenderText at (0,-39) size 12x80
</span><span class="cx">                     text run at (0,-39) width 12: &quot;\x{21BD}&quot;
</span><del>-        RenderText {#text} at (434,0) size 5x17
-          text run at (434,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (438,5) size 60x9 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (388,0) size 4x17
+          text run at (388,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (392,5) size 52x9 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 57x9
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,7) size 51x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 57x7
</span><span class="lines">@@ -272,9 +272,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x7
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21C0}&quot;
</span><del>-        RenderText {#text} at (497,0) size 5x17
-          text run at (497,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (501,4) size 59x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (444,0) size 4x17
+          text run at (444,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (448,4) size 52x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 57x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 57x8
</span><span class="lines">@@ -282,9 +282,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D0}&quot;
</span><del>-        RenderText {#text} at (559,0) size 5x17
-          text run at (559,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (563,4) size 60x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (500,0) size 4x17
+          text run at (500,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (504,4) size 52x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 57x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 57x8
</span><span class="lines">@@ -292,9 +292,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D2}&quot;
</span><del>-        RenderText {#text} at (622,0) size 5x17
-          text run at (622,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (626,4) size 60x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (556,0) size 4x17
+          text run at (556,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (560,4) size 52x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 57x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 57x8
</span><span class="lines">@@ -302,9 +302,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D4}&quot;
</span><del>-        RenderText {#text} at (685,0) size 5x17
-          text run at (685,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (689,2) size 59x12 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (612,0) size 4x17
+          text run at (612,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (616,2) size 52x12 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 57x12
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,10) size 51x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 57x10
</span><span class="lines">@@ -312,8 +312,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x10
</span><span class="cx">                   RenderText at (0,-35) size 12x80
</span><span class="cx">                     text run at (0,-35) width 12: &quot;\x{21DA}&quot;
</span><del>-        RenderText {#text} at (0,0) size 0x0
-        RenderMathMLMath {math} at (0,19) size 59x12 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (668,0) size 4x17
+          text run at (668,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (672,2) size 52x12 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 57x12
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,10) size 51x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 57x10
</span><span class="lines">@@ -321,9 +322,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x10
</span><span class="cx">                   RenderText at (0,-35) size 12x80
</span><span class="cx">                     text run at (0,-35) width 12: &quot;\x{21DB}&quot;
</span><del>-        RenderText {#text} at (58,17) size 5x17
-          text run at (58,17) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (62,19) size 53x12 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (724,0) size 4x17
+          text run at (724,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (728,2) size 52x12 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 50x12
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,10) size 50x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 50x10
</span><span class="lines">@@ -331,9 +332,8 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 4x10
</span><span class="cx">                   RenderText at (0,-34) size 4x80
</span><span class="cx">                     text run at (0,-34) width 4: &quot;\x{23B4}&quot;
</span><del>-        RenderText {#text} at (114,17) size 5x17
-          text run at (114,17) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (118,24) size 53x7 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (0,0) size 0x0
+        RenderMathMLMath {math} at (0,24) size 52x7 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 50x7
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,5) size 50x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 50x5
</span><span class="lines">@@ -341,9 +341,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 4x4
</span><span class="cx">                   RenderText at (0,-43) size 4x80
</span><span class="cx">                     text run at (0,-43) width 4: &quot;\x{23B5}&quot;
</span><del>-        RenderText {#text} at (170,17) size 5x17
-          text run at (170,17) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (174,19) size 53x12 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (52,17) size 4x17
+          text run at (52,17) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (56,19) size 52x12 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 50x12
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,10) size 50x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 50x10
</span><span class="lines">@@ -351,9 +351,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x10
</span><span class="cx">                   RenderText at (0,-34) size 6x80
</span><span class="cx">                     text run at (0,-34) width 6: &quot;\x{23DC}&quot;
</span><del>-        RenderText {#text} at (226,17) size 5x17
-          text run at (226,17) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (230,24) size 53x7 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (108,17) size 4x17
+          text run at (108,17) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (112,24) size 52x7 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 50x7
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,5) size 50x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 50x5
</span><span class="lines">@@ -361,9 +361,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x4
</span><span class="cx">                   RenderText at (0,-43) size 6x80
</span><span class="cx">                     text run at (0,-43) width 6: &quot;\x{23DD}&quot;
</span><del>-        RenderText {#text} at (282,17) size 5x17
-          text run at (282,17) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (286,18) size 53x13 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (164,17) size 4x17
+          text run at (164,17) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (168,18) size 52x13 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 50x13
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,11) size 50x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 50x11
</span><span class="lines">@@ -371,9 +371,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x11
</span><span class="cx">                   RenderText at (0,-33) size 6x80
</span><span class="cx">                     text run at (0,-33) width 6: &quot;\x{23DE}&quot;
</span><del>-        RenderText {#text} at (338,17) size 5x17
-          text run at (338,17) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (342,23) size 53x8 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (220,17) size 4x17
+          text run at (220,17) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (224,23) size 52x8 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 50x8
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,6) size 50x2 [bgcolor=#008000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 50x6
</span><span class="lines">@@ -383,7 +383,7 @@
</span><span class="cx">                     text run at (0,-43) width 6: &quot;\x{23DF}&quot;
</span><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><span class="cx">       RenderBlock {P} at (0,83) size 784x51
</span><del>-        RenderMathMLMath {math} at (0,4) size 109x10 [padding: 0 1 0 1]
</del><ins>+        RenderMathMLMath {math} at (0,4) size 102x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 107x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 107x8
</span><span class="lines">@@ -391,9 +391,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2190}&quot;
</span><del>-        RenderText {#text} at (108,0) size 5x17
-          text run at (108,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (112,4) size 110x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (102,0) size 4x17
+          text run at (102,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (106,4) size 102x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 107x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 107x8
</span><span class="lines">@@ -401,9 +401,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2192}&quot;
</span><del>-        RenderText {#text} at (221,0) size 5x17
-          text run at (221,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (225,4) size 109x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (208,0) size 4x17
+          text run at (208,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (212,4) size 102x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 107x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 107x8
</span><span class="lines">@@ -411,9 +411,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{2194}&quot;
</span><del>-        RenderText {#text} at (333,0) size 5x17
-          text run at (333,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (337,4) size 110x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (314,0) size 4x17
+          text run at (314,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (318,4) size 102x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 107x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 107x8
</span><span class="lines">@@ -421,9 +421,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21A4}&quot;
</span><del>-        RenderText {#text} at (446,0) size 5x17
-          text run at (446,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (450,4) size 110x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (420,0) size 4x17
+          text run at (420,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (424,4) size 102x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 107x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 107x8
</span><span class="lines">@@ -431,9 +431,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21A6}&quot;
</span><del>-        RenderText {#text} at (559,0) size 5x17
-          text run at (559,0) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (563,5) size 109x9 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (526,0) size 4x17
+          text run at (526,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (530,5) size 102x9 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 107x9
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,7) size 101x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 107x7
</span><span class="lines">@@ -441,8 +441,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x7
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21BC}&quot;
</span><del>-        RenderText {#text} at (0,0) size 0x0
-        RenderMathMLMath {math} at (0,24) size 109x7 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (632,0) size 4x17
+          text run at (632,0) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (636,7) size 102x7 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 107x7
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,5) size 101x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 107x5
</span><span class="lines">@@ -450,9 +451,8 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x5
</span><span class="cx">                   RenderText at (0,-39) size 12x80
</span><span class="cx">                     text run at (0,-39) width 12: &quot;\x{21BD}&quot;
</span><del>-        RenderText {#text} at (108,17) size 5x17
-          text run at (108,17) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (112,22) size 110x9 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (0,0) size 0x0
+        RenderMathMLMath {math} at (0,22) size 102x9 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 107x9
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,7) size 101x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 107x7
</span><span class="lines">@@ -460,9 +460,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x7
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21C0}&quot;
</span><del>-        RenderText {#text} at (221,17) size 5x17
-          text run at (221,17) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (225,21) size 109x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (102,17) size 4x17
+          text run at (102,17) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (106,21) size 102x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 107x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 107x8
</span><span class="lines">@@ -470,9 +470,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D0}&quot;
</span><del>-        RenderText {#text} at (333,17) size 5x17
-          text run at (333,17) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (337,21) size 110x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (208,17) size 4x17
+          text run at (208,17) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (212,21) size 102x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 107x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 107x8
</span><span class="lines">@@ -480,9 +480,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D2}&quot;
</span><del>-        RenderText {#text} at (446,17) size 5x17
-          text run at (446,17) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (450,21) size 110x10 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (314,17) size 4x17
+          text run at (314,17) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (318,21) size 102x10 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 107x10
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 107x8
</span><span class="lines">@@ -490,9 +490,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x8
</span><span class="cx">                   RenderText at (0,-36) size 12x80
</span><span class="cx">                     text run at (0,-36) width 12: &quot;\x{21D4}&quot;
</span><del>-        RenderText {#text} at (559,17) size 5x17
-          text run at (559,17) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (563,19) size 109x12 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (420,17) size 4x17
+          text run at (420,17) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (424,19) size 102x12 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 107x12
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,10) size 101x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 107x10
</span><span class="lines">@@ -500,8 +500,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x10
</span><span class="cx">                   RenderText at (0,-35) size 12x80
</span><span class="cx">                     text run at (0,-35) width 12: &quot;\x{21DA}&quot;
</span><del>-        RenderText {#text} at (0,0) size 0x0
-        RenderMathMLMath {math} at (0,36) size 109x12 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (526,17) size 4x17
+          text run at (526,17) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (530,19) size 102x12 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 107x12
</span><span class="cx">             RenderMathMLSpace {mspace} at (3,10) size 101x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 107x10
</span><span class="lines">@@ -509,9 +510,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 12x10
</span><span class="cx">                   RenderText at (0,-35) size 12x80
</span><span class="cx">                     text run at (0,-35) width 12: &quot;\x{21DB}&quot;
</span><del>-        RenderText {#text} at (108,34) size 5x17
-          text run at (108,34) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (112,36) size 103x12 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (632,17) size 4x17
+          text run at (632,17) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (636,19) size 102x12 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 100x12
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,10) size 100x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 100x10
</span><span class="lines">@@ -519,9 +520,8 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 4x10
</span><span class="cx">                   RenderText at (0,-34) size 4x80
</span><span class="cx">                     text run at (0,-34) width 4: &quot;\x{23B4}&quot;
</span><del>-        RenderText {#text} at (214,34) size 5x17
-          text run at (214,34) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (218,41) size 103x7 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (0,0) size 0x0
+        RenderMathMLMath {math} at (0,41) size 102x7 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 100x7
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,5) size 100x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 100x5
</span><span class="lines">@@ -529,9 +529,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 4x4
</span><span class="cx">                   RenderText at (0,-43) size 4x80
</span><span class="cx">                     text run at (0,-43) width 4: &quot;\x{23B5}&quot;
</span><del>-        RenderText {#text} at (320,34) size 5x17
-          text run at (320,34) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (324,36) size 103x12 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (102,34) size 4x17
+          text run at (102,34) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (106,36) size 102x12 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 100x12
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,10) size 100x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 100x10
</span><span class="lines">@@ -539,9 +539,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x10
</span><span class="cx">                   RenderText at (0,-34) size 6x80
</span><span class="cx">                     text run at (0,-34) width 6: &quot;\x{23DC}&quot;
</span><del>-        RenderText {#text} at (426,34) size 5x17
-          text run at (426,34) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (430,41) size 103x7 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (208,34) size 4x17
+          text run at (208,34) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (212,41) size 102x7 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 100x7
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,5) size 100x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 100x5
</span><span class="lines">@@ -549,9 +549,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x4
</span><span class="cx">                   RenderText at (0,-43) size 6x80
</span><span class="cx">                     text run at (0,-43) width 6: &quot;\x{23DD}&quot;
</span><del>-        RenderText {#text} at (532,34) size 5x17
-          text run at (532,34) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (536,35) size 103x13 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (314,34) size 4x17
+          text run at (314,34) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (318,35) size 102x13 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 100x13
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,11) size 100x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 100x11
</span><span class="lines">@@ -559,9 +559,9 @@
</span><span class="cx">                 RenderBlock (anonymous) at (0,0) size 6x11
</span><span class="cx">                   RenderText at (0,-33) size 6x80
</span><span class="cx">                     text run at (0,-33) width 6: &quot;\x{23DE}&quot;
</span><del>-        RenderText {#text} at (638,34) size 5x17
-          text run at (638,34) width 5: &quot; &quot;
-        RenderMathMLMath {math} at (642,40) size 103x8 [padding: 0 1 0 1]
</del><ins>+        RenderText {#text} at (420,34) size 4x17
+          text run at (420,34) width 4: &quot; &quot;
+        RenderMathMLMath {math} at (424,40) size 102x8 [padding: 0 1 0 1]
</ins><span class="cx">           RenderMathMLUnderOver {mover} at (1,0) size 100x8
</span><span class="cx">             RenderMathMLSpace {mspace} at (0,6) size 100x2 [bgcolor=#FF0000]
</span><span class="cx">             RenderMathMLOperator {mo} at (0,0) size 100x6
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlopentypeopentypestretchyhorizontalexpectedpng"></a>
<div class="binary"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkmathmlopentypeopentypestretchyhorizontalexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt (199292 => 199293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt        2016-04-11 10:59:03 UTC (rev 199292)
+++ trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt        2016-04-11 12:11:18 UTC (rev 199293)
</span><span class="lines">@@ -5,34 +5,34 @@
</span><span class="cx">     RenderBody {BODY} at (8,16) size 784x125
</span><span class="cx">       RenderBlock {P} at (0,0) size 784x25
</span><span class="cx">         RenderMathMLMath {math} at (0,2) size 10x23 [padding: 0 1 0 1]
</span><del>-          RenderMathMLRow {mstyle} at (1,0) size 8x23
-            RenderMathMLUnderOver {mover} at (0,0) size 8x23
-              RenderMathMLOperator {mo} at (-5,1) size 17x22
</del><ins>+          RenderMathMLRow {mstyle} at (1,0) size 16x23
+            RenderMathMLUnderOver {mover} at (0,0) size 16x23
+              RenderMathMLOperator {mo} at (0,1) size 16x22
</ins><span class="cx">                 RenderMathMLBlock (anonymous, flex) at (2,0) size 11x4
</span><span class="cx">                   RenderBlock (anonymous) at (0,0) size 1x4
</span><span class="cx">                     RenderText at (0,-3) size 1x0
</span><span class="cx">                       text run at (0,-3) width 1: &quot;\x{219C}&quot;
</span><del>-              RenderMathMLSpace {mspace} at (0,0) size 8x1
</del><ins>+              RenderMathMLSpace {mspace} at (4,0) size 8x1
</ins><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><span class="cx">       RenderBlock {P} at (0,41) size 784x25
</span><span class="cx">         RenderMathMLMath {math} at (0,2) size 17x23 [padding: 0 1 0 1]
</span><del>-          RenderMathMLRow {mstyle} at (1,0) size 15x23
-            RenderMathMLUnderOver {mover} at (0,0) size 15x23
-              RenderMathMLOperator {mo} at (-6,1) size 27x22
</del><ins>+          RenderMathMLRow {mstyle} at (1,0) size 26x23
+            RenderMathMLUnderOver {mover} at (0,0) size 26x23
+              RenderMathMLOperator {mo} at (0,1) size 26x22
</ins><span class="cx">                 RenderMathMLBlock (anonymous, flex) at (2,0) size 21x4
</span><span class="cx">                   RenderBlock (anonymous) at (0,0) size 1x4
</span><span class="cx">                     RenderText at (0,-3) size 1x0
</span><span class="cx">                       text run at (0,-3) width 1: &quot;\x{219C}&quot;
</span><del>-              RenderMathMLSpace {mspace} at (0,0) size 15x1
</del><ins>+              RenderMathMLSpace {mspace} at (5,0) size 16x1
</ins><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><span class="cx">       RenderBlock {P} at (0,82) size 784x43
</span><span class="cx">         RenderMathMLMath {math} at (0,0) size 152x43 [padding: 0 1 0 1]
</span><del>-          RenderMathMLRow {mstyle} at (1,0) size 150x43
-            RenderMathMLUnderOver {mover} at (0,0) size 150x43
-              RenderMathMLOperator {mo} at (-3,1) size 156x42
</del><ins>+          RenderMathMLRow {mstyle} at (1,0) size 156x43
+            RenderMathMLUnderOver {mover} at (0,0) size 156x43
+              RenderMathMLOperator {mo} at (0,1) size 156x42
</ins><span class="cx">                 RenderMathMLBlock (anonymous, flex) at (2,0) size 151x4
</span><span class="cx">                   RenderBlock (anonymous) at (0,0) size 1x4
</span><span class="cx">                     RenderText at (0,-3) size 1x0
</span><span class="cx">                       text run at (0,-3) width 1: &quot;\x{219C}&quot;
</span><del>-              RenderMathMLSpace {mspace} at (0,0) size 150x1
</del><ins>+              RenderMathMLSpace {mspace} at (2,0) size 151x1
</ins><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacmathmlopentypeopentypestretchyhorizontalexpectedpng"></a>
<div class="binary"><h4>Modified: trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacmathmlopentypeopentypestretchyhorizontalexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt (199292 => 199293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt        2016-04-11 10:59:03 UTC (rev 199292)
+++ trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt        2016-04-11 12:11:18 UTC (rev 199293)
</span><span class="lines">@@ -5,34 +5,34 @@
</span><span class="cx">     RenderBody {BODY} at (8,16) size 784x121
</span><span class="cx">       RenderBlock {P} at (0,0) size 784x24
</span><span class="cx">         RenderMathMLMath {math} at (0,3) size 10x22 [padding: 0 1 0 1]
</span><del>-          RenderMathMLRow {mstyle} at (1,0) size 8x22
-            RenderMathMLUnderOver {mover} at (0,0) size 8x22
-              RenderMathMLOperator {mo} at (-5,1) size 17x21
</del><ins>+          RenderMathMLRow {mstyle} at (1,0) size 16x22
+            RenderMathMLUnderOver {mover} at (0,0) size 16x22
+              RenderMathMLOperator {mo} at (0,1) size 16x21
</ins><span class="cx">                 RenderMathMLBlock (anonymous, flex) at (2,0) size 11x4
</span><span class="cx">                   RenderBlock (anonymous) at (0,0) size 2x4
</span><span class="cx">                     RenderText at (0,-3) size 2x0
</span><span class="cx">                       text run at (0,-3) width 2: &quot;\x{219C}&quot;
</span><del>-              RenderMathMLSpace {mspace} at (0,0) size 8x1
</del><ins>+              RenderMathMLSpace {mspace} at (4,0) size 8x1
</ins><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><span class="cx">       RenderBlock {P} at (0,40) size 784x24
</span><span class="cx">         RenderMathMLMath {math} at (0,3) size 17x22 [padding: 0 1 0 1]
</span><del>-          RenderMathMLRow {mstyle} at (1,0) size 15x22
-            RenderMathMLUnderOver {mover} at (0,0) size 15x22
-              RenderMathMLOperator {mo} at (-6,1) size 27x21
</del><ins>+          RenderMathMLRow {mstyle} at (1,0) size 26x22
+            RenderMathMLUnderOver {mover} at (0,0) size 26x22
+              RenderMathMLOperator {mo} at (0,1) size 26x21
</ins><span class="cx">                 RenderMathMLBlock (anonymous, flex) at (2,0) size 22x4
</span><span class="cx">                   RenderBlock (anonymous) at (0,0) size 2x4
</span><span class="cx">                     RenderText at (0,-3) size 2x0
</span><span class="cx">                       text run at (0,-3) width 2: &quot;\x{219C}&quot;
</span><del>-              RenderMathMLSpace {mspace} at (0,0) size 15x1
</del><ins>+              RenderMathMLSpace {mspace} at (5,0) size 16x1
</ins><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span><span class="cx">       RenderBlock {P} at (0,80) size 784x41
</span><span class="cx">         RenderMathMLMath {math} at (0,0) size 152x42 [padding: 0 1 0 1]
</span><del>-          RenderMathMLRow {mstyle} at (1,0) size 150x42
-            RenderMathMLUnderOver {mover} at (0,0) size 150x42
-              RenderMathMLOperator {mo} at (-3,1) size 156x41
</del><ins>+          RenderMathMLRow {mstyle} at (1,0) size 156x42
+            RenderMathMLUnderOver {mover} at (0,0) size 156x42
+              RenderMathMLOperator {mo} at (0,1) size 156x41
</ins><span class="cx">                 RenderMathMLBlock (anonymous, flex) at (2,0) size 151x4
</span><span class="cx">                   RenderBlock (anonymous) at (0,0) size 2x4
</span><span class="cx">                     RenderText at (0,-3) size 2x0
</span><span class="cx">                       text run at (0,-3) width 2: &quot;\x{219C}&quot;
</span><del>-              RenderMathMLSpace {mspace} at (0,0) size 150x1
</del><ins>+              RenderMathMLSpace {mspace} at (2,0) size 151x1
</ins><span class="cx">         RenderText {#text} at (0,0) size 0x0
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (199292 => 199293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-04-11 10:59:03 UTC (rev 199292)
+++ trunk/Source/WebCore/ChangeLog        2016-04-11 12:11:18 UTC (rev 199293)
</span><span class="lines">@@ -1,3 +1,44 @@
</span><ins>+2016-04-11  Frederic Wang  &lt;fwang@igalia.com&gt;
+
+        Refactor RenderMathMLUnderOver layout functions to avoid using flexbox
+        https://bugs.webkit.org/show_bug.cgi?id=153742
+
+        Reviewed by Sergio Villar Senin.
+
+        Based on a patch by Javier Fernandez &lt;jfernandez@igalia.com&gt;
+
+        Refactor the UnderOver renderer to use its own layoutBlock method that
+        does all the layout calculations without considering the flexbox
+        restrictions.
+
+        * css/mathml.css:
+        (mo, mfrac, munder, mover, munderover): Delete the underover elements from the line defining
+        the column direction.
+        (munder, mover, munderover): Deleted. This flexbox property is no longer needed.
+        (mover &gt; :last-child, munderover &gt; :last-child): Deleted. This flexbox property is no longer
+        needed.
+        * rendering/mathml/RenderMathMLUnderOver.cpp:
+        (WebCore::RenderMathMLUnderOver::firstLineBaseline): Use ascentForChild.
+        (WebCore::RenderMathMLUnderOver::computeOperatorsHorizontalStretch): Avoid stretching
+        operators that are not stretchy.
+        (WebCore::RenderMathMLUnderOver::isValid): Helper function to ensure that the child list is
+        valid with respect to the MathML specification.
+        (WebCore::RenderMathMLUnderOver::base): Added. Helper function.
+        (WebCore::RenderMathMLUnderOver::under): Added. Helper function.
+        (WebCore::RenderMathMLUnderOver::over): Added. Helper function.
+        (WebCore::RenderMathMLUnderOver::computePreferredLogicalWidths): Added.
+        The preferred width is the maximum preferred width of the base, under and over scripts.
+        (WebCore::RenderMathMLUnderOver::horizontalOffset): Added, helper to calculate the
+        horizontal position of children (horizontally centered).
+        (WebCore::RenderMathMLUnderOver::layoutBlock): Added, it lays out the base, underscript and
+        overscript. It calculates the exact logical width, which may differ from the preferred width when
+        one child contains stretchy operators. It later sets the locations of children accordingly
+        and sets the heigth of the render element.
+        (WebCore::RenderMathMLUnderOver::paintChildren): Added, we have to use the usual traverse
+        instead of the one that comes from the flexbox. This will be removed in a follow-up patch.
+        (WebCore::RenderMathMLUnderOver::layout): Deleted.
+        * rendering/mathml/RenderMathMLUnderOver.h: Added new functions definitions.
+
</ins><span class="cx"> 2016-04-07  Carlos Garcia Campos  &lt;cgarcia@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [GTK] Rework the theming code for GTK+ 3.20
</span></span></pre></div>
<a id="trunkSourceWebCorecssmathmlcss"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/mathml.css (199292 => 199293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/mathml.css        2016-04-11 10:59:03 UTC (rev 199292)
+++ trunk/Source/WebCore/css/mathml.css        2016-04-11 12:11:18 UTC (rev 199293)
</span><span class="lines">@@ -44,14 +44,10 @@
</span><span class="cx">     white-space: nowrap !important;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-mo, mfrac, munder, mover, munderover {
</del><ins>+mo, mfrac {
</ins><span class="cx">     flex-direction: column;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-munder, mover, munderover {
-    align-items: center;
-}
-
</del><span class="cx"> mfrac &gt; * {
</span><span class="cx">     align-self: center;
</span><span class="cx"> }
</span><span class="lines">@@ -78,10 +74,6 @@
</span><span class="cx">     -webkit-margin-end: 1px;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-mover &gt; :last-child, munderover &gt; :last-child {
-    order: -1;
-}
-
</del><span class="cx"> msub &gt; * + *, msup &gt; * + *, msubsup &gt; * + *, mmultiscripts &gt; * + *, munder &gt; * + *, mover &gt; * + *, munderover &gt; * + * {
</span><span class="cx">     font-size: 0.75em; /* FIXME: MathML standard is 0.71em */
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLUnderOvercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp (199292 => 199293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp        2016-04-11 10:59:03 UTC (rev 199292)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp        2016-04-11 12:11:18 UTC (rev 199293)
</span><span class="lines">@@ -1,5 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2009 Alex Milowski (alex@milowski.com). All rights reserved.
</span><ins>+ * Copyright (C) 2016 Igalia S.L.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -43,12 +44,12 @@
</span><span class="cx"> {
</span><span class="cx">     // Determine what kind of under/over expression we have by element name
</span><span class="cx">     if (element.hasTagName(MathMLNames::munderTag))
</span><del>-        m_kind = Under;
</del><ins>+        m_scriptType = Under;
</ins><span class="cx">     else if (element.hasTagName(MathMLNames::moverTag))
</span><del>-        m_kind = Over;
</del><ins>+        m_scriptType = Over;
</ins><span class="cx">     else {
</span><span class="cx">         ASSERT(element.hasTagName(MathMLNames::munderoverTag));
</span><del>-        m_kind = UnderOver;
</del><ins>+        m_scriptType = UnderOver;
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -65,13 +66,11 @@
</span><span class="cx">     RenderBox* base = firstChildBox();
</span><span class="cx">     if (!base)
</span><span class="cx">         return Optional&lt;int&gt;();
</span><del>-    Optional&lt;int&gt; baseline = base-&gt;firstLineBaseline();
-    if (baseline)
-        baseline.value() += static_cast&lt;int&gt;(base-&gt;logicalTop());
-    return baseline;
</del><ins>+
+    return Optional&lt;int&gt;(static_cast&lt;int&gt;(lroundf(ascentForChild(*base) + base-&gt;logicalTop())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderMathMLUnderOver::layout()
</del><ins>+void RenderMathMLUnderOver::computeOperatorsHorizontalStretch()
</ins><span class="cx"> {
</span><span class="cx">     LayoutUnit stretchWidth = 0;
</span><span class="cx">     Vector&lt;RenderMathMLOperator*, 2&gt; renderOperators;
</span><span class="lines">@@ -80,7 +79,7 @@
</span><span class="cx">         if (child-&gt;needsLayout()) {
</span><span class="cx">             if (is&lt;RenderMathMLBlock&gt;(child)) {
</span><span class="cx">                 if (auto renderOperator = downcast&lt;RenderMathMLBlock&gt;(*child).unembellishedOperator()) {
</span><del>-                    if (!renderOperator-&gt;isVertical()) {
</del><ins>+                    if (renderOperator-&gt;hasOperatorFlag(MathMLOperatorDictionary::Stretchy) &amp;&amp; !renderOperator-&gt;isVertical()) {
</ins><span class="cx">                         renderOperator-&gt;resetStretchSize();
</span><span class="cx">                         renderOperators.append(renderOperator);
</span><span class="cx">                     }
</span><span class="lines">@@ -99,10 +98,139 @@
</span><span class="cx">     // Set the sizes of (possibly embellished) stretchy operator children.
</span><span class="cx">     for (auto&amp; renderOperator : renderOperators)
</span><span class="cx">         renderOperator-&gt;stretchTo(stretchWidth);
</span><ins>+}
</ins><span class="cx"> 
</span><del>-    RenderMathMLBlock::layout();
</del><ins>+bool RenderMathMLUnderOver::isValid() const
+{
+    // Verify whether the list of children is valid:
+    // &lt;munder&gt; base under &lt;/munder&gt;
+    // &lt;mover&gt; base over &lt;/mover&gt;
+    // &lt;munderover&gt; base under over &lt;/munderover&gt;
+    RenderBox* child = firstChildBox();
+    if (!child)
+        return false;
+    child = child-&gt;nextSiblingBox();
+    if (!child)
+        return false;
+    child = child-&gt;nextSiblingBox();
+    switch (m_scriptType) {
+    case Over:
+    case Under:
+        return !child;
+    case UnderOver:
+        return child &amp;&amp; !child-&gt;nextSiblingBox();
+    default:
+        ASSERT_NOT_REACHED();
+        return false;
+    }
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+RenderBox&amp; RenderMathMLUnderOver::base() const
+{
+    ASSERT(isValid());
+    return *firstChildBox();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+RenderBox&amp; RenderMathMLUnderOver::under() const
+{
+    ASSERT(isValid());
+    ASSERT(m_scriptType == Under || m_scriptType == UnderOver);
+    return *firstChildBox()-&gt;nextSiblingBox();
+}
+
+RenderBox&amp; RenderMathMLUnderOver::over() const
+{
+    ASSERT(isValid());
+    ASSERT(m_scriptType == Over || m_scriptType == UnderOver);
+    RenderBox* secondChild = firstChildBox()-&gt;nextSiblingBox();
+    return m_scriptType == Over ? *secondChild : *secondChild-&gt;nextSiblingBox();
+}
+
+
+void RenderMathMLUnderOver::computePreferredLogicalWidths()
+{
+    ASSERT(preferredLogicalWidthsDirty());
+
+    if (!isValid()) {
+        m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = 0;
+        setPreferredLogicalWidthsDirty(false);
+        return;
+    }
+
+    LayoutUnit preferredWidth = base().maxPreferredLogicalWidth();
+
+    if (m_scriptType == Under || m_scriptType == UnderOver)
+        preferredWidth = std::max(preferredWidth, under().maxPreferredLogicalWidth());
+
+    if (m_scriptType == Over || m_scriptType == UnderOver)
+        preferredWidth = std::max(preferredWidth, over().maxPreferredLogicalWidth());
+
+    m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = preferredWidth;
+
+    setPreferredLogicalWidthsDirty(false);
+}
+
+LayoutUnit RenderMathMLUnderOver::horizontalOffset(const RenderBox&amp; child) const
+{
+    return (logicalWidth() - child.logicalWidth()) / 2;
+}
+
+void RenderMathMLUnderOver::layoutBlock(bool relayoutChildren, LayoutUnit)
+{
+    ASSERT(needsLayout());
+
+    if (!relayoutChildren &amp;&amp; simplifiedLayout())
+        return;
+
+    if (!isValid()) {
+        setLogicalWidth(0);
+        setLogicalHeight(0);
+        clearNeedsLayout();
+        return;
+    }
+
+    recomputeLogicalWidth();
+
+    computeOperatorsHorizontalStretch();
+
+    base().layoutIfNeeded();
+    if (m_scriptType == Under || m_scriptType == UnderOver)
+        under().layoutIfNeeded();
+    if (m_scriptType == Over || m_scriptType == UnderOver)
+        over().layoutIfNeeded();
+
+    LayoutUnit logicalWidth = base().logicalWidth();
+    if (m_scriptType == Under || m_scriptType == UnderOver)
+        logicalWidth = std::max(logicalWidth, under().logicalWidth());
+    if (m_scriptType == Over || m_scriptType == UnderOver)
+        logicalWidth = std::max(logicalWidth, over().logicalWidth());
+    setLogicalWidth(logicalWidth);
+
+    LayoutUnit verticalOffset = 0;
+    if (m_scriptType == Over || m_scriptType == UnderOver) {
+        over().setLocation(LayoutPoint(horizontalOffset(over()), 0));
+        verticalOffset += over().logicalHeight();
+    }
+    base().setLocation(LayoutPoint(horizontalOffset(base()), verticalOffset));
+    verticalOffset += base().logicalHeight();
+    if (m_scriptType == Under || m_scriptType == UnderOver) {
+        under().setLocation(LayoutPoint(horizontalOffset(under()), verticalOffset));
+        verticalOffset += under().logicalHeight();
+    }
+
+    setLogicalHeight(verticalOffset);
+
+    clearNeedsLayout();
+}
+
+void RenderMathMLUnderOver::paintChildren(PaintInfo&amp; paintInfo, const LayoutPoint&amp; paintOffset, PaintInfo&amp; paintInfoForChild, bool usePrintRect)
+{
+    for (RenderBox* child = firstChildBox(); child; child = child-&gt;nextSiblingBox()) {
+        if (!paintChild(*child, paintInfo, paintOffset, paintInfoForChild, usePrintRect, PaintAsInlineBlock))
+            return;
+    }
+}
+
+}
+
</ins><span class="cx"> #endif // ENABLE(MATHML)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLUnderOverh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h (199292 => 199293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h        2016-04-11 10:59:03 UTC (rev 199292)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h        2016-04-11 12:11:18 UTC (rev 199293)
</span><span class="lines">@@ -1,5 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2009 Alex Milowski (alex@milowski.com). All rights reserved.
</span><ins>+ * Copyright (C) 2016 Igalia S.L.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -39,16 +40,24 @@
</span><span class="cx">     RenderMathMLOperator* unembellishedOperator() override;
</span><span class="cx"> 
</span><span class="cx">     Optional&lt;int&gt; firstLineBaseline() const override;
</span><del>-    
-protected:
-    void layout() override;
</del><span class="cx"> 
</span><ins>+    void computePreferredLogicalWidths() final;
+    void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0) final;
+    void paintChildren(PaintInfo&amp; forSelf, const LayoutPoint&amp;, PaintInfo&amp; forChild, bool usePrintRect) final;
+
</ins><span class="cx"> private:
</span><span class="cx">     bool isRenderMathMLUnderOver() const override { return true; }
</span><span class="cx">     const char* renderName() const override { return &quot;RenderMathMLUnderOver&quot;; }
</span><span class="cx"> 
</span><ins>+    void computeOperatorsHorizontalStretch();
+    bool isValid() const;
+    RenderBox&amp; base() const;
+    RenderBox&amp; under() const;
+    RenderBox&amp; over() const;
+    LayoutUnit horizontalOffset(const RenderBox&amp;) const;
+
</ins><span class="cx">     enum UnderOverType { Under, Over, UnderOver };
</span><del>-    UnderOverType m_kind;
</del><ins>+    UnderOverType m_scriptType;
</ins><span class="cx"> };
</span><span class="cx">     
</span><span class="cx"> }
</span></span></pre>
</div>
</div>

</body>
</html>