<?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>102623</bug_id>
          
          <creation_ts>2012-11-18 16:39:14 -0800</creation_ts>
          <short_desc>StyledElement: Make handling the &quot;style&quot; attribute a litte faster.</short_desc>
          <delta_ts>2012-11-18 19:18:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>102598</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>koivisto</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>770222</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-11-18 16:39:14 -0800</bug_when>
    <thetext>We know that &quot;style&quot; is never a presentation attribute, so we could avoid the isPresentationAttribute() virtual dispatch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770223</commentid>
    <comment_count>1</comment_count>
      <attachid>174861</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-11-18 16:40:55 -0800</bug_when>
    <thetext>Created attachment 174861
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770228</commentid>
    <comment_count>2</comment_count>
      <attachid>174861</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-11-18 16:56:11 -0800</bug_when>
    <thetext>Comment on attachment 174861
Patch

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

&gt; Source/WebCore/dom/Element.cpp:776
&gt; +    } if (name == classAttr)

This is missing an else?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770229</commentid>
    <comment_count>3</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-11-18 16:59:07 -0800</bug_when>
    <thetext>Please fix the else issue. Otherwise, looks good. 

Is this actually addressing the issues that caused the regression or just fixing the top issues in the sample for that test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770230</commentid>
    <comment_count>4</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-11-18 17:04:19 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Please fix the else issue. Otherwise, looks good. 
&gt; 
&gt; Is this actually addressing the issues that caused the regression or just fixing the top issues in the sample for that test?

The regression is caused by taking the longer, arguably more correct, path for notifying the element that its &quot;style&quot; attribute has changed. (Previously, the function that clones all attributes from one element to another below Node.cloneNode would check for the &quot;style&quot; attribute and bypass Element::attributeChanged(), calling StyledElement::styleAttributeChanged() directly in an effort to avoid invoking the CSS parser.)

I&apos;d rather not keep that hack in there so I&apos;m posting a couple of patches to lubricate the normal attributeChanged() path. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770241</commentid>
    <comment_count>5</comment_count>
      <attachid>174866</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-11-18 17:41:02 -0800</bug_when>
    <thetext>Created attachment 174866
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770280</commentid>
    <comment_count>6</comment_count>
      <attachid>174866</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-18 19:17:33 -0800</bug_when>
    <thetext>Comment on attachment 174866
Patch for landing

Clearing flags on attachment: 174866

Committed r135101: &lt;http://trac.webkit.org/changeset/135101&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770281</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-18 19:17:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770282</commentid>
    <comment_count>8</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-11-18 19:18:47 -0800</bug_when>
    <thetext>Makes sense. Wasn&apos;t questioning the value of these patches. Just trying to understand. Thanks!

FWIW, in addition to being a performance gain, I think the code just makes more sense after this patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174861</attachid>
            <date>2012-11-18 16:40:55 -0800</date>
            <delta_ts>2012-11-18 17:41:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102623.diff</filename>
            <type>text/plain</type>
            <size>4893</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1MzM4NjIxLi5mNDhiMjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTItMTEtMTggIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFN0eWxlZEVsZW1lbnQ6IE1ha2UgaGFuZGxpbmcgdGhlICJzdHlsZSIgYXR0cmlidXRlIGEg
bGl0dGUgZmFzdGVyLgorICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMDI2MjM+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Uga25vdyB0aGF0
ICJzdHlsZSIgaXMgbmV2ZXIgYSBwcmVzZW50YXRpb24gYXR0cmlidXRlLCBzbyBhdm9pZCB0aGUg
dmlydHVhbCBjYWxsIHRvIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKCkKKyAgICAgICAgYnkgaG9p
c3RpbmcgdGhlIHBhcnNlQXR0cmlidXRlKCkgbG9naWMgdXAgaW50byBhdHRyaWJ1dGVDaGFuZ2Vk
KCkuCisgICAgICAgIERpZCB0aGUgc2FtZSB0aGluZyB3aXRoIEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKCkgZm9yIGNvbnNpc3RlbmN5LgorCisgICAgICAgIEtub2NrcyB+MC42JSBvZiBzYW1wbGVz
IG9mZiBvZiB0aGUgRE9NL0NyZWF0ZU5vZGVzIHBlcmZvcm1hbmNlIHRlc3QuCisKKyAgICAgICAg
KiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQpOgorICAg
ICAgICAqIGRvbS9TdHlsZWRFbGVtZW50Lmg6CisgICAgICAgIChTdHlsZWRFbGVtZW50KToKKwog
MjAxMi0xMS0xOCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMThlMTNkZi4uMmFlYjZmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNzczLDcgKzc3Myw5IEBAIHZvaWQgRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJp
bmcmIG5lCiAgICAgICAgICAgICBhdHRyaWJ1dGVEYXRhKCktPnNldElkRm9yU3R5bGVSZXNvbHV0
aW9uKG5ld0lkKTsKICAgICAgICAgICAgIHNob3VsZEludmFsaWRhdGVTdHlsZSA9IHRlc3RTaG91
bGRJbnZhbGlkYXRlU3R5bGUgJiYgY2hlY2tOZWVkc1N0eWxlSW52YWxpZGF0aW9uRm9ySWRDaGFu
Z2Uob2xkSWQsIG5ld0lkLCBzdHlsZVJlc29sdmVyKTsKICAgICAgICAgfQotICAgIH0gZWxzZSBp
ZiAobmFtZSA9PSBIVE1MTmFtZXM6Om5hbWVBdHRyKQorICAgIH0gaWYgKG5hbWUgPT0gY2xhc3NB
dHRyKQorICAgICAgICBjbGFzc0F0dHJpYnV0ZUNoYW5nZWQobmV3VmFsdWUpOworICAgIGVsc2Ug
aWYgKG5hbWUgPT0gSFRNTE5hbWVzOjpuYW1lQXR0cikKICAgICAgICAgc2V0SGFzTmFtZSghbmV3
VmFsdWUuaXNOdWxsKCkpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gSFRNTE5hbWVzOjpwc2V1ZG9B
dHRyKQogICAgICAgICBzaG91bGRJbnZhbGlkYXRlU3R5bGUgfD0gdGVzdFNob3VsZEludmFsaWRh
dGVTdHlsZSAmJiBpc0luU2hhZG93VHJlZSgpOwpAQCAtNzg5LDEyICs3OTEsNiBAQCB2b2lkIEVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbWljU3RyaW5nJiBuZQogICAgICAgICBkb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPmhh
bmRsZUF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgdGhpcyk7CiB9CiAKLXZvaWQgRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSkKLXsKLSAgICBpZiAobmFtZSA9PSBjbGFzc0F0dHIpCi0gICAgICAgIGNsYXNzQXR0
cmlidXRlQ2hhbmdlZCh2YWx1ZSk7Ci19Ci0KIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJU
eXBlPgogc3RhdGljIGlubGluZSBib29sIGNsYXNzU3RyaW5nSGFzQ2xhc3NOYW1lKGNvbnN0IENo
YXJhY3RlclR5cGUqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oCmluZGV4IGQ4YmQ3Y2UuLjdmZGIzMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMjQ2LDcg
KzI0Niw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuZXZl
ciBhbiBhdHRyaWJ1dGUgaXMgYWRkZWQsIGNoYW5nZWQgb3IgcmVtb3ZlZC4KICAgICB2aXJ0dWFs
IHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWlj
U3RyaW5nJik7Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIHsgfQogCiAg
ICAgLy8gT25seSBjYWxsZWQgYnkgdGhlIHBhcnNlciBpbW1lZGlhdGVseSBhZnRlciBlbGVtZW50
IGNvbnN0cnVjdGlvbi4KICAgICB2b2lkIHBhcnNlclNldEF0dHJpYnV0ZXMoY29uc3QgVmVjdG9y
PEF0dHJpYnV0ZT4mLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IDk4N2QxYTMuLjA2NDlhZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU3R5bGVkRWxlbWVudC5jcHAKQEAgLTE1OCw3ICsxNTgsOSBAQCBTdHlsZVByb3BlcnR5U2V0
KiBTdHlsZWRFbGVtZW50OjplbnN1cmVNdXRhYmxlSW5saW5lU3R5bGUoKQogCiB2b2lkIFN0eWxl
ZEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbWljU3RyaW5nJiBuZXdWYWx1ZSkKIHsKLSAgICBpZiAoaXNQcmVzZW50YXRpb25BdHRy
aWJ1dGUobmFtZSkpIHsKKyAgICBpZiAobmFtZSA9PSBzdHlsZUF0dHIpCisgICAgICAgIHN0eWxl
QXR0cmlidXRlQ2hhbmdlZChuZXdWYWx1ZSk7CisgICAgZWxzZSBpZiAoaXNQcmVzZW50YXRpb25B
dHRyaWJ1dGUobmFtZSkpIHsKICAgICAgICAgLy8gQXZvaWQgZGlydHlpbmcgdGhlIHByZXNlbnRh
dGlvbiBhdHRyaWJ1dGUgc3R5bGUgaWYgd2UncmUgdXNpbmcgc2hhcmVkIGF0dHJpYnV0ZSBkYXRh
IHdpdGggYWxyZWFkeSBnZW5lcmF0ZWQgc3R5bGUuCiAgICAgICAgIGlmIChhdHRyaWJ1dGVEYXRh
KCktPmlzTXV0YWJsZSgpIHx8ICFhdHRyaWJ1dGVEYXRhKCktPm1fcHJlc2VudGF0aW9uQXR0cmli
dXRlU3R5bGUpCiAgICAgICAgICAgICBhdHRyaWJ1dGVEYXRhKCktPm1fcHJlc2VudGF0aW9uQXR0
cmlidXRlU3R5bGVJc0RpcnR5ID0gdHJ1ZTsKQEAgLTIxNSwxNCArMjE3LDYgQEAgdm9pZCBTdHls
ZWRFbGVtZW50OjpzdHlsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdT
dHlsZVN0cmluZykKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEludmFsaWRhdGVT
dHlsZUF0dHIoZG9jdW1lbnQoKSwgdGhpcyk7CiB9CiAKLXZvaWQgU3R5bGVkRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSkKLXsKLSAgICBpZiAobmFtZSA9PSBzdHlsZUF0dHIpCi0gICAgICAgIHN0eWxlQXR0
cmlidXRlQ2hhbmdlZCh2YWx1ZSk7Ci0gICAgZWxzZQotICAgICAgICBFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Ci19Ci0KIHZvaWQgU3R5bGVkRWxlbWVudDo6aW5saW5lU3R5
bGVDaGFuZ2VkKCkKIHsKICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKElubGluZVN0eWxlQ2hhbmdl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oCmluZGV4IDI2NmI0MmQuLmU0MWFhZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaApAQCAtNjMsNyArNjMsNiBAQCBwcm90ZWN0ZWQ6
CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
JikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAK
</data>
<flag name="review"
          id="190105"
          type_id="1"
          status="+"
          setter="ojan"
    />
    <flag name="commit-queue"
          id="190106"
          type_id="3"
          status="-"
          setter="ojan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174866</attachid>
            <date>2012-11-18 17:41:02 -0800</date>
            <delta_ts>2012-11-18 19:17:33 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>land-102623.diff</filename>
            <type>text/plain</type>
            <size>4894</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1MzM4NjIxLi41MmZjNzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTItMTEtMTggIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFN0eWxlZEVsZW1lbnQ6IE1ha2UgaGFuZGxpbmcgdGhlICJzdHlsZSIgYXR0cmlidXRlIGEg
bGl0dGUgZmFzdGVyLgorICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMDI2MjM+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZhaS4KKworICAgICAgICBXZSBrbm93IHRoYXQgInN0
eWxlIiBpcyBuZXZlciBhIHByZXNlbnRhdGlvbiBhdHRyaWJ1dGUsIHNvIGF2b2lkIHRoZSB2aXJ0
dWFsIGNhbGwgdG8gaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoKQorICAgICAgICBieSBob2lzdGlu
ZyB0aGUgcGFyc2VBdHRyaWJ1dGUoKSBsb2dpYyB1cCBpbnRvIGF0dHJpYnV0ZUNoYW5nZWQoKS4K
KyAgICAgICAgRGlkIHRoZSBzYW1lIHRoaW5nIHdpdGggRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
KSBmb3IgY29uc2lzdGVuY3kuCisKKyAgICAgICAgS25vY2tzIH4wLjYlIG9mIHNhbXBsZXMgb2Zm
IG9mIHRoZSBET00vQ3JlYXRlTm9kZXMgcGVyZm9ybWFuY2UgdGVzdC4KKworICAgICAgICAqIGRv
bS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5n
ZWQpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogZG9tL1N0eWxlZEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAg
ICogZG9tL1N0eWxlZEVsZW1lbnQuaDoKKyAgICAgICAgKFN0eWxlZEVsZW1lbnQpOgorCiAyMDEy
LTExLTE4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZp
ZXdlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAxOGUxM2RmLi5jODBhMGJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCkBAIC03NzMsNyArNzczLDkgQEAgdm9pZCBFbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYg
bmUKICAgICAgICAgICAgIGF0dHJpYnV0ZURhdGEoKS0+c2V0SWRGb3JTdHlsZVJlc29sdXRpb24o
bmV3SWQpOwogICAgICAgICAgICAgc2hvdWxkSW52YWxpZGF0ZVN0eWxlID0gdGVzdFNob3VsZElu
dmFsaWRhdGVTdHlsZSAmJiBjaGVja05lZWRzU3R5bGVJbnZhbGlkYXRpb25Gb3JJZENoYW5nZShv
bGRJZCwgbmV3SWQsIHN0eWxlUmVzb2x2ZXIpOwogICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChu
YW1lID09IEhUTUxOYW1lczo6bmFtZUF0dHIpCisgICAgfSBlbHNlIGlmIChuYW1lID09IGNsYXNz
QXR0cikKKyAgICAgICAgY2xhc3NBdHRyaWJ1dGVDaGFuZ2VkKG5ld1ZhbHVlKTsKKyAgICBlbHNl
IGlmIChuYW1lID09IEhUTUxOYW1lczo6bmFtZUF0dHIpCiAgICAgICAgIHNldEhhc05hbWUoIW5l
d1ZhbHVlLmlzTnVsbCgpKTsKICAgICBlbHNlIGlmIChuYW1lID09IEhUTUxOYW1lczo6cHNldWRv
QXR0cikKICAgICAgICAgc2hvdWxkSW52YWxpZGF0ZVN0eWxlIHw9IHRlc3RTaG91bGRJbnZhbGlk
YXRlU3R5bGUgJiYgaXNJblNoYWRvd1RyZWUoKTsKQEAgLTc4OSwxMiArNzkxLDYgQEAgdm9pZCBF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21pY1N0cmluZyYgbmUKICAgICAgICAgZG9jdW1lbnQoKS0+YXhPYmplY3RDYWNoZSgpLT5o
YW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIHRoaXMpOwogfQogCi12b2lkIEVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdmFsdWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gY2xhc3NBdHRyKQotICAgICAgICBjbGFzc0F0
dHJpYnV0ZUNoYW5nZWQodmFsdWUpOwotfQotCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVy
VHlwZT4KIHN0YXRpYyBpbmxpbmUgYm9vbCBjbGFzc1N0cmluZ0hhc0NsYXNzTmFtZShjb25zdCBD
aGFyYWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaAppbmRleCBkOGJkN2NlLi43ZmRiMzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTI0Niw3
ICsyNDYsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgd2hlbmV2
ZXIgYW4gYXR0cmlidXRlIGlzIGFkZGVkLCBjaGFuZ2VkIG9yIHJlbW92ZWQuCiAgICAgdmlydHVh
bCB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21p
Y1N0cmluZyYpOwotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSB7IH0KIAog
ICAgIC8vIE9ubHkgY2FsbGVkIGJ5IHRoZSBwYXJzZXIgaW1tZWRpYXRlbHkgYWZ0ZXIgZWxlbWVu
dCBjb25zdHJ1Y3Rpb24uCiAgICAgdm9pZCBwYXJzZXJTZXRBdHRyaWJ1dGVzKGNvbnN0IFZlY3Rv
cjxBdHRyaWJ1dGU+JiwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TdHlsZWRFbGVtZW50LmNwcAppbmRleCA5ODdkMWEzLi4wNjQ5YWU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1N0eWxlZEVsZW1lbnQuY3BwCkBAIC0xNTgsNyArMTU4LDkgQEAgU3R5bGVQcm9wZXJ0eVNl
dCogU3R5bGVkRWxlbWVudDo6ZW5zdXJlTXV0YWJsZUlubGluZVN0eWxlKCkKIAogdm9pZCBTdHls
ZWRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21pY1N0cmluZyYgbmV3VmFsdWUpCiB7Ci0gICAgaWYgKGlzUHJlc2VudGF0aW9uQXR0
cmlidXRlKG5hbWUpKSB7CisgICAgaWYgKG5hbWUgPT0gc3R5bGVBdHRyKQorICAgICAgICBzdHls
ZUF0dHJpYnV0ZUNoYW5nZWQobmV3VmFsdWUpOworICAgIGVsc2UgaWYgKGlzUHJlc2VudGF0aW9u
QXR0cmlidXRlKG5hbWUpKSB7CiAgICAgICAgIC8vIEF2b2lkIGRpcnR5aW5nIHRoZSBwcmVzZW50
YXRpb24gYXR0cmlidXRlIHN0eWxlIGlmIHdlJ3JlIHVzaW5nIHNoYXJlZCBhdHRyaWJ1dGUgZGF0
YSB3aXRoIGFscmVhZHkgZ2VuZXJhdGVkIHN0eWxlLgogICAgICAgICBpZiAoYXR0cmlidXRlRGF0
YSgpLT5pc011dGFibGUoKSB8fCAhYXR0cmlidXRlRGF0YSgpLT5tX3ByZXNlbnRhdGlvbkF0dHJp
YnV0ZVN0eWxlKQogICAgICAgICAgICAgYXR0cmlidXRlRGF0YSgpLT5tX3ByZXNlbnRhdGlvbkF0
dHJpYnV0ZVN0eWxlSXNEaXJ0eSA9IHRydWU7CkBAIC0yMTUsMTQgKzIxNyw2IEBAIHZvaWQgU3R5
bGVkRWxlbWVudDo6c3R5bGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3
U3R5bGVTdHJpbmcpCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnZhbGlkYXRl
U3R5bGVBdHRyKGRvY3VtZW50KCksIHRoaXMpOwogfQogCi12b2lkIFN0eWxlZEVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdmFsdWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gc3R5bGVBdHRyKQotICAgICAgICBzdHlsZUF0
dHJpYnV0ZUNoYW5nZWQodmFsdWUpOwotICAgIGVsc2UKLSAgICAgICAgRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOwotfQotCiB2b2lkIFN0eWxlZEVsZW1lbnQ6OmlubGluZVN0
eWxlQ2hhbmdlZCgpCiB7CiAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYyhJbmxpbmVTdHlsZUNoYW5n
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaAppbmRleCAyNjZiNDJkLi5lNDFhYWVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKQEAgLTYzLDcgKzYzLDYgQEAgcHJvdGVjdGVk
OgogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>