<?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>160461</bug_id>
          
          <creation_ts>2016-08-02 13:09:22 -0700</creation_ts>
          <short_desc>Use memoize pattern for the menclose notation attribute</short_desc>
          <delta_ts>2016-08-22 09:19:57 -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>MathML</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>161045</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Frédéric Wang Nélar">fred.wang</reporter>
          <assigned_to name="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>alex</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbarton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1216572</commentid>
    <comment_count>0</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-02 13:09:22 -0700</bug_when>
    <thetext>Currently, MathMLMencloseElement::parseAttribute parse the &quot;notation&quot; attribute each time it is changed. We should follow what is done for other MathML element classes and store m_notationFlags in an Optional&lt;unsigned short&gt; where null means that the attribute is dirty and must be parsed again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216830</commentid>
    <comment_count>1</comment_count>
      <attachid>285206</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-03 00:35:07 -0700</bug_when>
    <thetext>Created attachment 285206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218213</commentid>
    <comment_count>2</comment_count>
      <attachid>285206</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-05 23:29:14 -0700</bug_when>
    <thetext>Comment on attachment 285206
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=285206&amp;action=review

&gt; Source/WebCore/mathml/MathMLMencloseElement.cpp:66
&gt; +    String(value).split(&apos; &apos;, notationsList);

Should write:

    value.string().split(&apos; &apos;, notationsList);

Also kind of sad to allocate a vector and then allocate lots of memory just to examine substrings of the passed in string, which could be done much more efficiently. WebKit project should come up with a better way to do this without allocating all the strings.

Do we really want to split only on actual spaces and not other kinds of HTML spaces? Do we have test cases covering that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218214</commentid>
    <comment_count>3</comment_count>
      <attachid>285206</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-05 23:29:45 -0700</bug_when>
    <thetext>Comment on attachment 285206
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=285206&amp;action=review

&gt; Source/WebCore/mathml/MathMLMencloseElement.h:64
&gt; +    Optional&lt;unsigned short&gt; m_notationFlags;

Maybe uint16_t instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221722</commentid>
    <comment_count>4</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-21 03:07:25 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Should write:
&gt; 
&gt;     value.string().split(&apos; &apos;, notationsList);
&gt; 
&gt; Also kind of sad to allocate a vector and then allocate lots of memory just
&gt; to examine substrings of the passed in string, which could be done much more
&gt; efficiently. WebKit project should come up with a better way to do this
&gt; without allocating all the strings.
&gt; 
&gt; Do we really want to split only on actual spaces and not other kinds of HTML
&gt; spaces? Do we have test cases covering that?

I&apos;ve been preserving the code of the person who has implemented menclose but indeed we could parse the list more efficiently by skipping whitespace and checking substrings. Not sure whether that should be done in that bug. Also, I think any MathML whitespace should be accepted (which unfortunately is defined differently than in HTML space see http://lists.w3.org/Archives/Public/www-math/2016Aug/0000.html).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221877</commentid>
    <comment_count>5</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-22 09:19:57 -0700</bug_when>
    <thetext>Committed r204721: &lt;http://trac.webkit.org/changeset/204721&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285206</attachid>
            <date>2016-08-03 00:35:07 -0700</date>
            <delta_ts>2016-08-05 23:29:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160461-20160803093343.patch</filename>
            <type>text/plain</type>
            <size>8317</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTkxMTFmOGI1MGI2M2M0
NmViNGU0Y2JjYzFjOWMwNzkxZmI0MzczOS4uYjQ4MDExYmEwMTk2Y2JmNTRiYWMzNmIzNTY4ODVh
YzlhM2JjYThlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTA4LTAzICBGcmVk
ZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBVc2UgbWVtb2l6ZSBwYXR0
ZXJuIGZvciB0aGUgbWVuY2xvc2Ugbm90YXRpb24gYXR0cmlidXRlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA0NjEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIE1hdGhNTE1lbmNsb3Nl
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUgcGFyc2UgdGhlICJub3RhdGlvbiIgYXR0cmlidXRlIGVh
Y2ggdGltZSBpdAorICAgICAgICBpcyBjaGFuZ2VkLiBXZSBjaGFuZ2UgdGhpcyB0byB1c2UgdGhl
IG1lbW9pemUgcGF0dGVybiBhcyBkb25lIGZvciBvdGhlciBNYXRoTUwgYXR0cmlidXRlczoKKyAg
ICAgICAgV2Ugc3RvcmUgbV9ub3RhdGlvbkZsYWdzIGluIGFuIE9wdGlvbmFsPHVuc2lnbmVkIHNo
b3J0PiB3aGVyZSBPcHRudWxsIG1lYW5zIHRoYXQgdGhlCisgICAgICAgIGF0dHJpYnV0ZSBpcyBk
aXJ0eSBhbmQgbXVzdCBiZSBwYXJzZWQgYWdhaW4uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBh
bHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBtYXRobWwvTWF0
aE1MTWVuY2xvc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTE1lbmNsb3Nl
RWxlbWVudDo6cGFyc2VOb3RhdGlvbkF0dHJpYnV0ZSk6IE1vdmUgcGFyc2luZyBvZiB0aGUgIm5v
dGF0aW9uIgorICAgICAgICBhdHRyaWJ1dGUgZnJvbSBwYXJzZUF0dHJpYnV0ZSBpbnRvIHRoaXMg
c2VwYXJhdGUgaGVscGVyIGZ1bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MTWVuY2xv
c2VFbGVtZW50OjpoYXNOb3RhdGlvbik6IFRoaXMgbm93IGNoZWNrIHdoZXRoZXIgdGhlIGF0dHJp
YnV0ZSBhbmQKKyAgICAgICAgZGlydHkgYW5kIHBhcnNlIGl0IGlmIG5lY2Vzc2FyeS4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1hdGhNTE1lbmNsb3NlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOiBKdXN0
IG1ha2UgdGhlIGF0dHJpYnV0ZSBkaXJ0eSByYXRoZXIgdGhhbgorICAgICAgICBwYXJzaW5nIGl0
IGltbWVkaWF0ZWx5LgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaDog
aGFzTm90YXRpb24gaXMgbm8gbG9uZ2VyIGNvbnN0IGFzIGl0IG1heSB1cGRhdGUgdGhlCisgICAg
ICAgIG1fbm90YXRpb25zRmxhZ3MuIFdlIGRlY2xhcmUgcGFyc2VOb3RhdGlvbkF0dHJpYnV0ZSgp
LiBGaW5hbGx5LCB3ZSB3cmFwIG1fbm90YXRpb25GbGFncworICAgICAgICBpbiBhbiBPcHRpb25h
bDx1bnNpZ25lZCBzaG9ydD4gYW5kIG1ha2UgYWRkTm90YXRpb24gZXh0cmFjdCB0aGUgdmFsdWUu
CisKIDIwMTYtMDgtMDIgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIE1vdmUgZGV0ZXJtaW5hdGlvbiBvZiBvcGVyYXRvciBkaXJlY3Rpb24gaW50byBET00gY2xh
c3MgYW5kIHJlZHVjZSByZWxheW91dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1M
TWVuY2xvc2VFbGVtZW50LmNwcAppbmRleCBkMDExZjQwMTU0NjA3ZGZlZGFkYzA2Nzk5ZDEzZGFi
YjFkY2E1Y2YzLi45MDI2YThiZmI4Y2E4NjlhN2UxNWIxN2I4ZWEzZTUwNjZlZjViYzU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcApAQCAt
MzQsNiArMzQsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBN
YXRoTUxOYW1lczsKKwogTWF0aE1MTWVuY2xvc2VFbGVtZW50OjpNYXRoTUxNZW5jbG9zZUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAg
IDogTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKIHsKQEAg
LTUyLDU4ICs1NCw2OSBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MTWVuY2xvc2VF
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bAogICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxNZW5jbG9zZT4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsK
IH0KIAotdm9pZCBNYXRoTUxNZW5jbG9zZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCit2b2lkIE1hdGhN
TE1lbmNsb3NlRWxlbWVudDo6cGFyc2VOb3RhdGlvbkF0dHJpYnV0ZSgpCiB7Ci0gICAgaWYgKG5h
bWUgPT0gTWF0aE1MTmFtZXM6Om5vdGF0aW9uQXR0cikgewotICAgICAgICBjbGVhck5vdGF0aW9u
cygpOwotICAgICAgICBpZiAoIWhhc0F0dHJpYnV0ZShuYW1lKSkgewotICAgICAgICAgICAgYWRk
Tm90YXRpb24oTG9uZ0Rpdik7IC8vIGRlZmF1bHQgdmFsdWUgaXMgbG9uZ2RpdgotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIFZlY3RvcjxTdHJpbmc+IG5vdGF0aW9uc0xp
c3Q7Ci0gICAgICAgIFN0cmluZyh2YWx1ZSkuc3BsaXQoJyAnLCBub3RhdGlvbnNMaXN0KTsKLSAg
ICAgICAgZm9yIChhdXRvJiBub3RhdGlvbiA6IG5vdGF0aW9uc0xpc3QpIHsKLSAgICAgICAgICAg
IGlmIChub3RhdGlvbiA9PSAibG9uZ2RpdiIpIHsKLSAgICAgICAgICAgICAgICBhZGROb3RhdGlv
bihMb25nRGl2KTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobm90YXRpb24gPT0gInJvdW5kZWRi
b3giKSB7Ci0gICAgICAgICAgICAgICAgYWRkTm90YXRpb24oUm91bmRlZEJveCk7Ci0gICAgICAg
ICAgICB9IGVsc2UgaWYgKG5vdGF0aW9uID09ICJjaXJjbGUiKSB7Ci0gICAgICAgICAgICAgICAg
YWRkTm90YXRpb24oQ2lyY2xlKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobm90YXRpb24gPT0g
ImxlZnQiKSB7Ci0gICAgICAgICAgICAgICAgYWRkTm90YXRpb24oTGVmdCk7Ci0gICAgICAgICAg
ICB9IGVsc2UgaWYgKG5vdGF0aW9uID09ICJyaWdodCIpIHsKLSAgICAgICAgICAgICAgICBhZGRO
b3RhdGlvbihSaWdodCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKG5vdGF0aW9uID09ICJ0b3Ai
KSB7Ci0gICAgICAgICAgICAgICAgYWRkTm90YXRpb24oVG9wKTsKLSAgICAgICAgICAgIH0gZWxz
ZSBpZiAobm90YXRpb24gPT0gImJvdHRvbSIpIHsKLSAgICAgICAgICAgICAgICBhZGROb3RhdGlv
bihCb3R0b20pOwotICAgICAgICAgICAgfSBlbHNlIGlmIChub3RhdGlvbiA9PSAidXBkaWFnb25h
bHN0cmlrZSIpIHsKLSAgICAgICAgICAgICAgICBhZGROb3RhdGlvbihVcERpYWdvbmFsU3RyaWtl
KTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobm90YXRpb24gPT0gImRvd25kaWFnb25hbHN0cmlr
ZSIpIHsKLSAgICAgICAgICAgICAgICBhZGROb3RhdGlvbihEb3duRGlhZ29uYWxTdHJpa2UpOwot
ICAgICAgICAgICAgfSBlbHNlIGlmIChub3RhdGlvbiA9PSAidmVydGljYWxzdHJpa2UiKSB7Ci0g
ICAgICAgICAgICAgICAgYWRkTm90YXRpb24oVmVydGljYWxTdHJpa2UpOwotICAgICAgICAgICAg
fSBlbHNlIGlmIChub3RhdGlvbiA9PSAiaG9yaXpvbnRhbHN0cmlrZSIpIHsKLSAgICAgICAgICAg
ICAgICBhZGROb3RhdGlvbihIb3Jpem9udGFsU3RyaWtlKTsKLSAgICAgICAgICAgIH0gZWxzZSBp
ZiAobm90YXRpb24gPT0gInVwZGlhZ29uYWxhcnJvdyIpIHsKLSAgICAgICAgICAgICAgICBhZGRO
b3RhdGlvbihVcERpYWdvbmFsQXJyb3cpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChub3RhdGlv
biA9PSAicGhhc29yYW5nbGUiKSB7Ci0gICAgICAgICAgICAgICAgYWRkTm90YXRpb24oUGhhc29y
QW5nbGUpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChub3RhdGlvbiA9PSAiYm94IikgewotICAg
ICAgICAgICAgICAgIGFkZE5vdGF0aW9uKExlZnQpOwotICAgICAgICAgICAgICAgIGFkZE5vdGF0
aW9uKFJpZ2h0KTsKLSAgICAgICAgICAgICAgICBhZGROb3RhdGlvbihUb3ApOwotICAgICAgICAg
ICAgICAgIGFkZE5vdGF0aW9uKEJvdHRvbSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKG5vdGF0
aW9uID09ICJhY3R1YXJpYWwiKSB7Ci0gICAgICAgICAgICAgICAgYWRkTm90YXRpb24oUmlnaHQp
OwotICAgICAgICAgICAgICAgIGFkZE5vdGF0aW9uKFRvcCk7Ci0gICAgICAgICAgICB9IGVsc2Ug
aWYgKG5vdGF0aW9uID09ICJtYWRydXdiIikgewotICAgICAgICAgICAgICAgIGFkZE5vdGF0aW9u
KFJpZ2h0KTsKLSAgICAgICAgICAgICAgICBhZGROb3RhdGlvbihCb3R0b20pOwotICAgICAgICAg
ICAgfQotICAgICAgICB9CisgICAgY2xlYXJOb3RhdGlvbnMoKTsKKyAgICBpZiAoIWhhc0F0dHJp
YnV0ZShub3RhdGlvbkF0dHIpKSB7CisgICAgICAgIGFkZE5vdGF0aW9uKExvbmdEaXYpOyAvLyBU
aGUgZGVmYXVsdCB2YWx1ZSBpcyBsb25nZGl2LgogICAgICAgICByZXR1cm47CiAgICAgfQorICAg
IGF1dG8mIHZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihub3RhdGlvbkF0
dHIpOworICAgIFZlY3RvcjxTdHJpbmc+IG5vdGF0aW9uc0xpc3Q7CisgICAgU3RyaW5nKHZhbHVl
KS5zcGxpdCgnICcsIG5vdGF0aW9uc0xpc3QpOworICAgIGZvciAoYXV0byYgbm90YXRpb24gOiBu
b3RhdGlvbnNMaXN0KSB7CisgICAgICAgIGlmIChub3RhdGlvbiA9PSAibG9uZ2RpdiIpIHsKKyAg
ICAgICAgICAgIGFkZE5vdGF0aW9uKExvbmdEaXYpOworICAgICAgICB9IGVsc2UgaWYgKG5vdGF0
aW9uID09ICJyb3VuZGVkYm94IikgeworICAgICAgICAgICAgYWRkTm90YXRpb24oUm91bmRlZEJv
eCk7CisgICAgICAgIH0gZWxzZSBpZiAobm90YXRpb24gPT0gImNpcmNsZSIpIHsKKyAgICAgICAg
ICAgIGFkZE5vdGF0aW9uKENpcmNsZSk7CisgICAgICAgIH0gZWxzZSBpZiAobm90YXRpb24gPT0g
ImxlZnQiKSB7CisgICAgICAgICAgICBhZGROb3RhdGlvbihMZWZ0KTsKKyAgICAgICAgfSBlbHNl
IGlmIChub3RhdGlvbiA9PSAicmlnaHQiKSB7CisgICAgICAgICAgICBhZGROb3RhdGlvbihSaWdo
dCk7CisgICAgICAgIH0gZWxzZSBpZiAobm90YXRpb24gPT0gInRvcCIpIHsKKyAgICAgICAgICAg
IGFkZE5vdGF0aW9uKFRvcCk7CisgICAgICAgIH0gZWxzZSBpZiAobm90YXRpb24gPT0gImJvdHRv
bSIpIHsKKyAgICAgICAgICAgIGFkZE5vdGF0aW9uKEJvdHRvbSk7CisgICAgICAgIH0gZWxzZSBp
ZiAobm90YXRpb24gPT0gInVwZGlhZ29uYWxzdHJpa2UiKSB7CisgICAgICAgICAgICBhZGROb3Rh
dGlvbihVcERpYWdvbmFsU3RyaWtlKTsKKyAgICAgICAgfSBlbHNlIGlmIChub3RhdGlvbiA9PSAi
ZG93bmRpYWdvbmFsc3RyaWtlIikgeworICAgICAgICAgICAgYWRkTm90YXRpb24oRG93bkRpYWdv
bmFsU3RyaWtlKTsKKyAgICAgICAgfSBlbHNlIGlmIChub3RhdGlvbiA9PSAidmVydGljYWxzdHJp
a2UiKSB7CisgICAgICAgICAgICBhZGROb3RhdGlvbihWZXJ0aWNhbFN0cmlrZSk7CisgICAgICAg
IH0gZWxzZSBpZiAobm90YXRpb24gPT0gImhvcml6b250YWxzdHJpa2UiKSB7CisgICAgICAgICAg
ICBhZGROb3RhdGlvbihIb3Jpem9udGFsU3RyaWtlKTsKKyAgICAgICAgfSBlbHNlIGlmIChub3Rh
dGlvbiA9PSAidXBkaWFnb25hbGFycm93IikgeworICAgICAgICAgICAgYWRkTm90YXRpb24oVXBE
aWFnb25hbEFycm93KTsKKyAgICAgICAgfSBlbHNlIGlmIChub3RhdGlvbiA9PSAicGhhc29yYW5n
bGUiKSB7CisgICAgICAgICAgICBhZGROb3RhdGlvbihQaGFzb3JBbmdsZSk7CisgICAgICAgIH0g
ZWxzZSBpZiAobm90YXRpb24gPT0gImJveCIpIHsKKyAgICAgICAgICAgIGFkZE5vdGF0aW9uKExl
ZnQpOworICAgICAgICAgICAgYWRkTm90YXRpb24oUmlnaHQpOworICAgICAgICAgICAgYWRkTm90
YXRpb24oVG9wKTsKKyAgICAgICAgICAgIGFkZE5vdGF0aW9uKEJvdHRvbSk7CisgICAgICAgIH0g
ZWxzZSBpZiAobm90YXRpb24gPT0gImFjdHVhcmlhbCIpIHsKKyAgICAgICAgICAgIGFkZE5vdGF0
aW9uKFJpZ2h0KTsKKyAgICAgICAgICAgIGFkZE5vdGF0aW9uKFRvcCk7CisgICAgICAgIH0gZWxz
ZSBpZiAobm90YXRpb24gPT0gIm1hZHJ1d2IiKSB7CisgICAgICAgICAgICBhZGROb3RhdGlvbihS
aWdodCk7CisgICAgICAgICAgICBhZGROb3RhdGlvbihCb3R0b20pOworICAgICAgICB9CisgICAg
fQorfQorCitib29sIE1hdGhNTE1lbmNsb3NlRWxlbWVudDo6aGFzTm90YXRpb24oTWVuY2xvc2VO
b3RhdGlvbkZsYWcgbm90YXRpb25GbGFnKQoreworICAgIGlmICghbV9ub3RhdGlvbkZsYWdzKQor
ICAgICAgICBwYXJzZU5vdGF0aW9uQXR0cmlidXRlKCk7CisgICAgcmV0dXJuIG1fbm90YXRpb25G
bGFncy52YWx1ZSgpICYgbm90YXRpb25GbGFnOworfQorCit2b2lkIE1hdGhNTE1lbmNsb3NlRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bWljU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBpZiAobmFtZSA9PSBub3RhdGlvbkF0dHIpCisgICAg
ICAgIG1fbm90YXRpb25GbGFncyA9IE51bGxvcHQ7CiAKICAgICBNYXRoTUxJbmxpbmVDb250YWlu
ZXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmgKaW5kZXggYTBjOTNiNjk4OTkwYmEx
ZmI2ZTRhYWUzODA5NmRiZGQ3MGZmYWY0NS4uYWViYjJmOWUzMzhhMjhjN2JiODdkZTU0YjQyMDlm
OGExNzIxOTYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNs
b3NlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVs
ZW1lbnQuaApAQCAtNTIsMTUgKzUyLDE2IEBAIHB1YmxpYzoKICAgICAgICAgUGhhc29yQW5nbGUg
PSAxIDw8IDEzIC8vIEZJWE1FOiBwaGFzb3JhbmdsZSBpcyBub3QgaW1wbGVtZW50ZWQuIFNlZSBo
dHRwOi8vd2tiLnVnLzEyNzQ2NgogICAgICAgICAvLyBXZSBkbyBub3QgaW1wbGVtZW50IHRoZSBS
YWRpY2FsIG5vdGF0aW9uLiBBdXRob3JzIHNob3VsZCBpbnN0ZWFkIHVzZSB0aGUgPG1zcXJ0PiBl
bGVtZW50LgogICAgIH07Ci0gICAgYm9vbCBoYXNOb3RhdGlvbihNZW5jbG9zZU5vdGF0aW9uRmxh
ZyBub3RhdGlvbkZsYWcpIGNvbnN0IHsgcmV0dXJuIG1fbm90YXRpb25GbGFncyAmIG5vdGF0aW9u
RmxhZzsgfQorICAgIGJvb2wgaGFzTm90YXRpb24oTWVuY2xvc2VOb3RhdGlvbkZsYWcpOwogCiBw
cml2YXRlOgogICAgIE1hdGhNTE1lbmNsb3NlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwog
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21p
Y1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgcGFyc2VOb3RhdGlvbkF0dHJpYnV0ZSgpOwogICAg
IHZvaWQgY2xlYXJOb3RhdGlvbnMoKSB7IG1fbm90YXRpb25GbGFncyA9IDA7IH0KLSAgICB2b2lk
IGFkZE5vdGF0aW9uKE1lbmNsb3NlTm90YXRpb25GbGFnIG5vdGF0aW9uRmxhZykgeyBtX25vdGF0
aW9uRmxhZ3MgfD0gbm90YXRpb25GbGFnOyB9Ci0gICAgdW5zaWduZWQgc2hvcnQgbV9ub3RhdGlv
bkZsYWdzOworICAgIHZvaWQgYWRkTm90YXRpb24oTWVuY2xvc2VOb3RhdGlvbkZsYWcgbm90YXRp
b25GbGFnKSB7IG1fbm90YXRpb25GbGFncy52YWx1ZSgpIHw9IG5vdGF0aW9uRmxhZzsgfQorICAg
IE9wdGlvbmFsPHVuc2lnbmVkIHNob3J0PiBtX25vdGF0aW9uRmxhZ3M7CiB9OwogCiB9Cg==
</data>
<flag name="review"
          id="308839"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>