<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>13432</bug_id>
          
          <creation_ts>2007-04-21 03:56:29 -0700</creation_ts>
          <short_desc>determineSpacingForFlowBoxes is O(n^2)</short_desc>
          <delta_ts>2007-04-21 15:50:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>13351</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>13617</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-04-21 03:56:29 -0700</bug_when>
    <thetext>determineSpacingForFlowBoxes does a bunch of work to try to figure out if the left/right edges should be included for a given inline&apos;s line box.  If the inline has no borders, no margins and no padding, then this work is unnecessary and can just be avoided completely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13600</commentid>
    <comment_count>1</comment_count>
      <attachid>14121</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-04-21 05:18:34 -0700</bug_when>
    <thetext>Created attachment 14121
Avoid edge testing if there&apos;s no need.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13522</commentid>
    <comment_count>2</comment_count>
      <attachid>14121</attachid>
    <who name="">mitz</who>
    <bug_when>2007-04-21 05:34:16 -0700</bug_when>
    <thetext>Comment on attachment 14121
Avoid edge testing if there&apos;s no need.

+        int marginBorderPadding = marginBorderPaddingLeft() + marginBorderPaddingRight();

These guys will always return 0 since includeLeftEdge and includeRightEdge are false when you call them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13512</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-04-21 05:38:21 -0700</bug_when>
    <thetext>Also, their actual values can add up to 0 even if they&apos;re not both 0, so I think it&apos;s best to check each side separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13501</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-04-21 05:40:03 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; These guys will always return 0 since includeLeftEdge and includeRightEdge are
&gt; false when you call them.
&gt; 

Bah, I overlooked the setEdges() calls before and after.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13502</commentid>
    <comment_count>5</comment_count>
      <attachid>14121</attachid>
    <who name="">mitz</who>
    <bug_when>2007-04-21 05:59:56 -0700</bug_when>
    <thetext>Comment on attachment 14121
Avoid edge testing if there&apos;s no need.

Actually, even testing each side separately isn&apos;t enough. It will fix

&lt;span style=&quot;border-left: 5px solid; margin-right: -5px;&quot;&gt;foo&lt;/span&gt;

which is the example I had in mind for comment #3, but not

&lt;span style=&quot;border-left: 5px solid; margin-left: -5px;&quot;&gt;foo&lt;/span&gt;

I think the setEdges(false, false) is unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13354</commentid>
    <comment_count>6</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-04-21 14:23:03 -0700</bug_when>
    <thetext>Yeah, good point.  I forgot about negative margins.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13355</commentid>
    <comment_count>7</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-04-21 14:23:30 -0700</bug_when>
    <thetext>I think I may explore just making the edge determination faster rather than trying to turn it off completely.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13359</commentid>
    <comment_count>8</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-04-21 14:41:54 -0700</bug_when>
    <thetext>A better fix here is to add bits to line boxes that indicate whether nextOnLineExists and prevOnLineExists.  The O(n^2) behavior arises from a lack of caching, since the methods go back up to parents over and over and over again.

This should allow edge computations to still be performed but still be efficient.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13360</commentid>
    <comment_count>9</comment_count>
      <attachid>14126</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-04-21 14:54:54 -0700</bug_when>
    <thetext>Created attachment 14126
Add a cache for nextOnLine/prevOnLine existence

This patch is much better, since it will be fast even when spans do use borders, margins and padding, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13361</commentid>
    <comment_count>10</comment_count>
      <attachid>14126</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-04-21 14:59:35 -0700</bug_when>
    <thetext>Comment on attachment 14126
Add a cache for nextOnLine/prevOnLine existence

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13362</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-04-21 15:00:29 -0700</bug_when>
    <thetext>For future reference, Hyatt has assured me that InlineBoxes are destroyed whenever these cached values would change, so we don&apos;t need to worry about recalculating them after the first time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13363</commentid>
    <comment_count>12</comment_count>
      <attachid>14126</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-04-21 15:31:24 -0700</bug_when>
    <thetext>Comment on attachment 14126
Add a cache for nextOnLine/prevOnLine existence

Fails some layout tests.  Investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13364</commentid>
    <comment_count>13</comment_count>
      <attachid>14126</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-04-21 15:41:16 -0700</bug_when>
    <thetext>Comment on attachment 14126
Add a cache for nextOnLine/prevOnLine existence

AH, no big deal.  Just didn&apos;t patch the other InlineBox constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13366</commentid>
    <comment_count>14</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-04-21 15:50:44 -0700</bug_when>
    <thetext>Fixed.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14121</attachid>
            <date>2007-04-21 05:18:34 -0700</date>
            <delta_ts>2007-04-21 14:54:54 -0700</delta_ts>
            <desc>Avoid edge testing if there&apos;s no need.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>4874</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTk3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDctMDQt
MjEgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBmb3IgMTM0
MzIuICBEb24ndCB3YXN0ZSB0aW1lIHNldHRpbmcgdXAgZWRnZSBpbmZvcm1hdGlvbiBpZgorICAg
ICAgICB3ZSBkb24ndCBoYXZlIGFueSByZWFzb24gdG8gKGUuZy4sIG5vIGJvcmRlcnMsIG1hcmdp
bnMsIHBhZGRpbmcsCisgICAgICAgIGJvcmRlci1yYWRpdXMgb3IgYm94LXNoYWRvdykuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDaGFuZ2VMb2c6
CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5saW5lRmxvd0JveDo6ZGV0ZXJtaW5lU3BhY2luZ0ZvckZsb3dCb3hlcyk6CisKKzIwMDct
MDQtMjEgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdBUk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURE
RUQgT1IgQ0hBTkdFRAorCisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6ZGV0ZXJtaW5lU3BhY2luZ0ZvckZsb3dC
b3hlcyk6CisKIDIwMDctMDQtMjEgIExhbWFyIEdvZGRhcmQgPGxhbWFyZ29kZGFyZEBnbWFpbC5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4OiByZW5kZXJpbmcvSW5saW5l
Rmxvd0JveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCShy
ZXZpc2lvbiAyMDk0MykKKysrIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTk5LDM0ICsxOTksNDAgQEAgdm9pZCBJbmxpbmVGbG93Qm94OjpkZXRlcm1pbmVT
cGFjaW5nRm9yRgogICAgIAogICAgIGlmICghZmxvdy0+Zmlyc3RDaGlsZCgpKQogICAgICAgICBp
bmNsdWRlTGVmdEVkZ2UgPSBpbmNsdWRlUmlnaHRFZGdlID0gdHJ1ZTsgLy8gRW1wdHkgaW5saW5l
cyBuZXZlciBzcGxpdCBhY3Jvc3MgbGluZXMuCi0gICAgZWxzZSBpZiAocGFyZW50KCkpIHsgLy8g
VGhlIHJvb3QgaW5saW5lIGJveCBuZXZlciBoYXMgYm9yZGVycy9tYXJnaW5zL3BhZGRpbmcuCi0g
ICAgICAgIGJvb2wgbHRyID0gZmxvdy0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkgPT0gTFRSOwotICAg
ICAgICAKLSAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIGFsbCBpbml0aWFsIGxpbmVzIGFyZSB1
bmNvbnN0cnVjdGVkLiAgSWYgc28sIHRoZW4KLSAgICAgICAgLy8gd2Uga25vdyB0aGUgaW5saW5l
IGJlZ2FuIG9uIHRoaXMgbGluZS4KLSAgICAgICAgaWYgKCFmbG93LT5maXJzdExpbmVCb3goKS0+
aXNDb25zdHJ1Y3RlZCgpKSB7Ci0gICAgICAgICAgICBpZiAobHRyICYmIGZsb3ctPmZpcnN0TGlu
ZUJveCgpID09IHRoaXMpCi0gICAgICAgICAgICAgICAgaW5jbHVkZUxlZnRFZGdlID0gdHJ1ZTsK
LSAgICAgICAgICAgIGVsc2UgaWYgKCFsdHIgJiYgZmxvdy0+bGFzdExpbmVCb3goKSA9PSB0aGlz
KQotICAgICAgICAgICAgICAgIGluY2x1ZGVSaWdodEVkZ2UgPSB0cnVlOwotICAgICAgICB9Ci0g
ICAgCi0gICAgICAgIC8vIEluIG9yZGVyIHRvIGRldGVybWluZSBpZiB0aGUgaW5saW5lIGVuZHMg
b24gdGhpcyBsaW5lLCB3ZSBjaGVjayB0aHJlZSB0aGluZ3M6Ci0gICAgICAgIC8vICgxKSBJZiB3
ZSBhcmUgdGhlIGxhc3QgbGluZSBhbmQgd2UgZG9uJ3QgaGF2ZSBhIGNvbnRpbnVhdGlvbigpLCB0
aGVuIHdlIGNhbgotICAgICAgICAvLyBjbG9zZSB1cC4KLSAgICAgICAgLy8gKDIpIElmIHRoZSBs
YXN0IGxpbmUgYm94IGZvciB0aGUgZmxvdyBoYXMgYW4gb2JqZWN0IGZvbGxvd2luZyBpdCBvbiB0
aGUgbGluZSAobHRyLAotICAgICAgICAvLyByZXZlcnNlIGZvciBydGwpLCB0aGVuIHRoZSBpbmxp
bmUgaGFzIGNsb3NlZC4KLSAgICAgICAgLy8gKDMpIFRoZSBsaW5lIG1heSBlbmQgb24gdGhlIGlu
bGluZS4gIElmIHdlIGFyZSB0aGUgbGFzdCBjaGlsZCAoY2xpbWJpbmcgdXAKLSAgICAgICAgLy8g
dGhlIGVuZCBvYmplY3QncyBjaGFpbiksIHRoZW4gd2UganVzdCBjbG9zZWQgYXMgd2VsbC4KLSAg
ICAgICAgaWYgKCFmbG93LT5sYXN0TGluZUJveCgpLT5pc0NvbnN0cnVjdGVkKCkpIHsKLSAgICAg
ICAgICAgIGlmIChsdHIpIHsKLSAgICAgICAgICAgICAgICBpZiAoIW5leHRMaW5lQm94KCkgJiYK
LSAgICAgICAgICAgICAgICAgICAgKChsYXN0TGluZSAmJiAhb2JqZWN0KCktPmNvbnRpbnVhdGlv
bigpKSB8fCBuZXh0T25MaW5lRXhpc3RzKCkgfHwgb25FbmRDaGFpbihlbmRPYmplY3QpKSkKLSAg
ICAgICAgICAgICAgICAgICAgaW5jbHVkZVJpZ2h0RWRnZSA9IHRydWU7Ci0gICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgoIXByZXZMaW5lQm94KCkgfHwgcHJldkxpbmVC
b3goKS0+aXNDb25zdHJ1Y3RlZCgpKSAmJgotICAgICAgICAgICAgICAgICAgICAoKGxhc3RMaW5l
ICYmICFvYmplY3QoKS0+Y29udGludWF0aW9uKCkpIHx8IHByZXZPbkxpbmVFeGlzdHMoKSB8fCBv
bkVuZENoYWluKGVuZE9iamVjdCkpKQorICAgIGVsc2UgaWYgKHBhcmVudCgpKSB7CisgICAgICAg
IHNldEVkZ2VzKHRydWUsIHRydWUpOworICAgICAgICBpbnQgbWFyZ2luQm9yZGVyUGFkZGluZyA9
IG1hcmdpbkJvcmRlclBhZGRpbmdMZWZ0KCkgKyBtYXJnaW5Cb3JkZXJQYWRkaW5nUmlnaHQoKTsK
KyAgICAgICAgc2V0RWRnZXMoZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgaWYgKG1hcmdpbkJvcmRl
clBhZGRpbmcgfHwgZmxvdy0+c3R5bGUoKS0+aGFzQm9yZGVyUmFkaXVzKCkgfHwgZmxvdy0+c3R5
bGUoKS0+Ym94U2hhZG93KCkpIHsKKyAgICAgICAgICAgIC8vIElmIHdlIGFyZSB0aGUgcm9vdCBv
ciBoYXZlIG5vIGJvcmRlcnMsIG1hcmdpbnMgb3IgcGFkZGluZywgdGhlbiB3ZSBkb24ndCBuZWVk
IHRvIHRvIGNoZWNrIGFueXRoaW5nLgorICAgICAgICAgICAgYm9vbCBsdHIgPSBmbG93LT5zdHls
ZSgpLT5kaXJlY3Rpb24oKSA9PSBMVFI7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAv
LyBDaGVjayB0byBzZWUgaWYgYWxsIGluaXRpYWwgbGluZXMgYXJlIHVuY29uc3RydWN0ZWQuICBJ
ZiBzbywgdGhlbgorICAgICAgICAgICAgLy8gd2Uga25vdyB0aGUgaW5saW5lIGJlZ2FuIG9uIHRo
aXMgbGluZS4KKyAgICAgICAgICAgIGlmICghZmxvdy0+Zmlyc3RMaW5lQm94KCktPmlzQ29uc3Ry
dWN0ZWQoKSkgeworICAgICAgICAgICAgICAgIGlmIChsdHIgJiYgZmxvdy0+Zmlyc3RMaW5lQm94
KCkgPT0gdGhpcykKICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZUxlZnRFZGdlID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICBlbHNlIGlmICghbHRyICYmIGZsb3ctPmxhc3RMaW5lQm94KCkgPT0g
dGhpcykKKyAgICAgICAgICAgICAgICAgICAgaW5jbHVkZVJpZ2h0RWRnZSA9IHRydWU7CisgICAg
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLy8gSW4gb3JkZXIgdG8gZGV0ZXJtaW5l
IGlmIHRoZSBpbmxpbmUgZW5kcyBvbiB0aGlzIGxpbmUsIHdlIGNoZWNrIHRocmVlIHRoaW5nczoK
KyAgICAgICAgICAgIC8vICgxKSBJZiB3ZSBhcmUgdGhlIGxhc3QgbGluZSBhbmQgd2UgZG9uJ3Qg
aGF2ZSBhIGNvbnRpbnVhdGlvbigpLCB0aGVuIHdlIGNhbgorICAgICAgICAgICAgLy8gY2xvc2Ug
dXAuCisgICAgICAgICAgICAvLyAoMikgSWYgdGhlIGxhc3QgbGluZSBib3ggZm9yIHRoZSBmbG93
IGhhcyBhbiBvYmplY3QgZm9sbG93aW5nIGl0IG9uIHRoZSBsaW5lIChsdHIsCisgICAgICAgICAg
ICAvLyByZXZlcnNlIGZvciBydGwpLCB0aGVuIHRoZSBpbmxpbmUgaGFzIGNsb3NlZC4KKyAgICAg
ICAgICAgIC8vICgzKSBUaGUgbGluZSBtYXkgZW5kIG9uIHRoZSBpbmxpbmUuICBJZiB3ZSBhcmUg
dGhlIGxhc3QgY2hpbGQgKGNsaW1iaW5nIHVwCisgICAgICAgICAgICAvLyB0aGUgZW5kIG9iamVj
dCdzIGNoYWluKSwgdGhlbiB3ZSBqdXN0IGNsb3NlZCBhcyB3ZWxsLgorICAgICAgICAgICAgaWYg
KCFmbG93LT5sYXN0TGluZUJveCgpLT5pc0NvbnN0cnVjdGVkKCkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAobHRyKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghbmV4dExpbmVCb3goKSAmJgor
ICAgICAgICAgICAgICAgICAgICAgICAgKChsYXN0TGluZSAmJiAhb2JqZWN0KCktPmNvbnRpbnVh
dGlvbigpKSB8fCBuZXh0T25MaW5lRXhpc3RzKCkgfHwgb25FbmRDaGFpbihlbmRPYmplY3QpKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVSaWdodEVkZ2UgPSB0cnVlOworICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoIXByZXZMaW5lQm94
KCkgfHwgcHJldkxpbmVCb3goKS0+aXNDb25zdHJ1Y3RlZCgpKSAmJgorICAgICAgICAgICAgICAg
ICAgICAgICAgKChsYXN0TGluZSAmJiAhb2JqZWN0KCktPmNvbnRpbnVhdGlvbigpKSB8fCBwcmV2
T25MaW5lRXhpc3RzKCkgfHwgb25FbmRDaGFpbihlbmRPYmplY3QpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGluY2x1ZGVMZWZ0RWRnZSA9IHRydWU7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQo=
</data>
<flag name="review"
          id="5718"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14126</attachid>
            <date>2007-04-21 14:54:54 -0700</date>
            <delta_ts>2007-04-21 15:41:16 -0700</delta_ts>
            <desc>Add a cache for nextOnLine/prevOnLine existence</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>2347</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IHJlbmRlcmluZy9JbmxpbmVCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9J
bmxpbmVCb3guY3BwCShyZXZpc2lvbiAyMDk0MykKKysrIHJlbmRlcmluZy9JbmxpbmVCb3guY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzksMjQgKzE3OSwzMiBAQCBSb290SW5saW5lQm94KiBJbmxp
bmVCb3g6OnJvb3QoKQogCiBib29sIElubGluZUJveDo6bmV4dE9uTGluZUV4aXN0cygpIGNvbnN0
CiB7Ci0gICAgaWYgKCFwYXJlbnQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAg
IGlmIChuZXh0T25MaW5lKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIAotICAgIHJldHVy
biBwYXJlbnQoKS0+bmV4dE9uTGluZUV4aXN0cygpOworICAgIGlmICghbV9kZXRlcm1pbmVkSWZO
ZXh0T25MaW5lRXhpc3RzKSB7CisgICAgICAgIG1fZGV0ZXJtaW5lZElmTmV4dE9uTGluZUV4aXN0
cyA9IHRydWU7CisKKyAgICAgICAgaWYgKCFwYXJlbnQoKSkKKyAgICAgICAgICAgIG1fbmV4dE9u
TGluZUV4aXN0cyA9IGZhbHNlOworICAgICAgICBlbHNlIGlmIChuZXh0T25MaW5lKCkpCisgICAg
ICAgICAgICBtX25leHRPbkxpbmVFeGlzdHMgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBtX25leHRPbkxpbmVFeGlzdHMgPSBwYXJlbnQoKS0+bmV4dE9uTGluZUV4aXN0cygpOwor
ICAgIH0KKyAgICByZXR1cm4gbV9uZXh0T25MaW5lRXhpc3RzOwogfQogCiBib29sIElubGluZUJv
eDo6cHJldk9uTGluZUV4aXN0cygpIGNvbnN0CiB7Ci0gICAgaWYgKCFwYXJlbnQoKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlmIChwcmV2T25MaW5lKCkpCi0gICAgICAgIHJl
dHVybiB0cnVlOwotICAgIAotICAgIHJldHVybiBwYXJlbnQoKS0+cHJldk9uTGluZUV4aXN0cygp
OworICAgIGlmICghbV9kZXRlcm1pbmVkSWZQcmV2T25MaW5lRXhpc3RzKSB7CisgICAgICAgIG1f
ZGV0ZXJtaW5lZElmUHJldk9uTGluZUV4aXN0cyA9IHRydWU7CisgICAgICAgIAorICAgICAgICBp
ZiAoIXBhcmVudCgpKQorICAgICAgICAgICAgbV9wcmV2T25MaW5lRXhpc3RzID0gZmFsc2U7Cisg
ICAgICAgIGVsc2UgaWYgKHByZXZPbkxpbmUoKSkKKyAgICAgICAgICAgIG1fcHJldk9uTGluZUV4
aXN0cyA9IHRydWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fcHJldk9uTGluZUV4aXN0
cyA9IHBhcmVudCgpLT5wcmV2T25MaW5lRXhpc3RzKCk7CisgICAgfQorICAgIHJldHVybiBtX3By
ZXZPbkxpbmVFeGlzdHM7CiB9CiAKIElubGluZUJveCogSW5saW5lQm94OjpmaXJzdExlYWZDaGls
ZCgpCkluZGV4OiByZW5kZXJpbmcvSW5saW5lQm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5n
L0lubGluZUJveC5oCShyZXZpc2lvbiAyMDk0MykKKysrIHJlbmRlcmluZy9JbmxpbmVCb3guaAko
d29ya2luZyBjb3B5KQpAQCAtODUsNiArODUsMTAgQEAgcHVibGljOgogICAgICAgICAsIG1faGFz
RWxsaXBzaXNCb3goZmFsc2UpCiAgICAgICAgICwgbV9yZXZlcnNlZChmYWxzZSkKICAgICAgICAg
LCBtX3RyZWF0QXNUZXh0KHRydWUpCisgICAgICAgICwgbV9kZXRlcm1pbmVkSWZOZXh0T25MaW5l
RXhpc3RzKGZhbHNlKQorICAgICAgICAsIG1fZGV0ZXJtaW5lZElmUHJldk9uTGluZUV4aXN0cyhm
YWxzZSkKKyAgICAgICAgLCBtX25leHRPbkxpbmVFeGlzdHMoZmFsc2UpCisgICAgICAgICwgbV9w
cmV2T25MaW5lRXhpc3RzKGZhbHNlKQogICAgICAgICAsIG1fdG9BZGQoMCkKICAgICB7CiAgICAg
fQpAQCAtMjMzLDYgKzIzNywxMCBAQCBwdWJsaWM6IC8vIEZJWE1FOiBXb3VsZCBsaWtlIHRvIG1h
a2UgdGhpCiAgICAgYm9vbCBtX3JldmVyc2VkIDogMTsKICAgICBib29sIG1fZGlyT3ZlcnJpZGUg
OiAxOwogICAgIGJvb2wgbV90cmVhdEFzVGV4dCA6IDE7IC8vIFdoZXRoZXIgb3Igbm90IHRvIHRy
ZWF0IGEgPGJyPiBhcyB0ZXh0IGZvciB0aGUgcHVycG9zZXMgb2YgbGluZSBoZWlnaHQuCisgICAg
bXV0YWJsZSBib29sIG1fZGV0ZXJtaW5lZElmTmV4dE9uTGluZUV4aXN0cyA6IDE7CisgICAgbXV0
YWJsZSBib29sIG1fZGV0ZXJtaW5lZElmUHJldk9uTGluZUV4aXN0cyA6IDE7CisgICAgbXV0YWJs
ZSBib29sIG1fbmV4dE9uTGluZUV4aXN0cyA6IDE7CisgICAgbXV0YWJsZSBib29sIG1fcHJldk9u
TGluZUV4aXN0cyA6IDE7CiAgICAgaW50IG1fdG9BZGQgOiAxMzsgLy8gZm9yIGp1c3RpZmllZCB0
ZXh0CiB9OwogCg==
</data>
<flag name="review"
          id="5723"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>