<?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>121167</bug_id>
          
          <creation_ts>2013-09-11 10:24:03 -0700</creation_ts>
          <short_desc>MapData and WeakMapData don&apos;t need to be objects</short_desc>
          <delta_ts>2013-09-11 13:33:13 -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>New Bugs</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>120954</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>927846</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-11 10:24:03 -0700</bug_when>
    <thetext>MapData and WeakMapData don&apos;t need to be objects</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927856</commentid>
    <comment_count>1</comment_count>
      <attachid>211327</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-11 10:44:23 -0700</bug_when>
    <thetext>Created attachment 211327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927864</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-11 10:52:01 -0700</bug_when>
    <thetext>This will help with implementing the update Promises spec (120954).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927930</commentid>
    <comment_count>3</comment_count>
      <attachid>211327</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-09-11 12:32:09 -0700</bug_when>
    <thetext>Comment on attachment 211327
Patch

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

Nice!

&gt; Source/JavaScriptCore/runtime/MapData.h:82
&gt; +    static const bool needsDestruction = true;
&gt; +    static const bool hasImmortalStructure = true;

I wonder if we should make a JSDestructibleCell base class, to make this easier in general.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927943</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-11 13:07:47 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 211327 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=211327&amp;action=review
&gt; 
&gt; Nice!
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/MapData.h:82
&gt; &gt; +    static const bool needsDestruction = true;
&gt; &gt; +    static const bool hasImmortalStructure = true;
&gt; 
&gt; I wonder if we should make a JSDestructibleCell base class, to make this easier in general.

Might make sense.  I&apos;ll look into to that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927958</commentid>
    <comment_count>5</comment_count>
      <attachid>211327</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-11 13:33:11 -0700</bug_when>
    <thetext>Comment on attachment 211327
Patch

Clearing flags on attachment: 211327

Committed r155558: &lt;http://trac.webkit.org/changeset/155558&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927959</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-11 13:33:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211327</attachid>
            <date>2013-09-11 10:44:23 -0700</date>
            <delta_ts>2013-09-11 13:33:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121167-20130911194423.patch</filename>
            <type>text/plain</type>
            <size>20040</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU1NTM3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBA
CisyMDEzLTA5LTExICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFw
RGF0YSBhbmQgV2Vha01hcERhdGEgZG9uJ3QgbmVlZCB0byBiZSBvYmplY3RzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjExNjcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6cmVzZXQpOgorICAgICAg
ICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6bWFwU3Ry
dWN0dXJlKToKKyAgICAgICAgUmVtb3ZlIE1hcERhdGEgYW5kIFdlYWtNYXBEYXRhIHN0cnVjdHVy
ZXMgKHRoZXkgbW92ZWQgdG8gVk0gd2l0aCBvdGhlciBub24tb2JqZWN0IFN0cnVjdHVyZXMpLgor
CisgICAgICAgICogcnVudGltZS9KU01hcC5jcHA6CisgICAgICAgIChKU0M6OkpTTWFwOjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9KU01hcC5oOgorICAgICAgICAoSlNDOjpK
U01hcDo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTU2V0LmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNTZXQ6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTU2V0Lmg6Cisg
ICAgICAgIChKU0M6OkpTU2V0OjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNXZWFrTWFw
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWFrTWFwOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAg
ICogcnVudGltZS9KU1dlYWtNYXAuaDoKKyAgICAgICAgKEpTQzo6SlNXZWFrTWFwOjpjcmVhdGUp
OgorICAgICAgICBVcGRhdGUgdG8gbm90IHBhc3MgYSBnbG9iYWwgb2JqZWN0IHRvIHRoZSBNYXBE
YXRhIG9yIFdlYWtNYXBEYXRhIFN0cnVjdHVyZS4KKworICAgICAgICAqIHJ1bnRpbWUvTWFwRGF0
YS5jcHA6CisgICAgICAgIChKU0M6Ok1hcERhdGE6Ok1hcERhdGEpOgorICAgICAgICAqIHJ1bnRp
bWUvTWFwRGF0YS5oOgorICAgICAgICAoSlNDOjpNYXBEYXRhOjpjcmVhdGUpOgorICAgICAgICAo
SlNDOjpNYXBEYXRhOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvV2Vha01h
cERhdGEuY3BwOgorICAgICAgICAoSlNDOjpXZWFrTWFwRGF0YTo6V2Vha01hcERhdGEpOgorICAg
ICAgICAoSlNDOjpXZWFrTWFwRGF0YTo6c2V0KTogQ2hhbmdlIHRvIHRha2UgYSBWTSByYXRoZXIg
dGhhbiBhIENhbGxGcmFtZSwgYXMgdGhhdCBpdCBhbGwgaXQgbmVlZHMuCisgICAgICAgICogcnVu
dGltZS9XZWFrTWFwRGF0YS5oOgorICAgICAgICAoSlNDOjpXZWFrTWFwRGF0YTo6Y3JlYXRlKToK
KyAgICAgICAgKEpTQzo6V2Vha01hcERhdGE6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIElu
c3RlYWQgb2YgaW5oZXJpdGluZyBmcm9tIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBpbmhlcml0IGZy
b20gSlNDZWxsIGFuZCBtYXJrIHNlbGYgYXMgbmVlZGluZyBkZXN0cnVjdGlvbgorICAgICAgICBh
bmQgaGF2aW5nIGFuIGltbW9ydGFsIHN0cnVjdHVyZS4KKworICAgICAgICAqIHJ1bnRpbWUvVk0u
Y3BwOgorICAgICAgICAoSlNDOjpWTTo6Vk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKyAg
ICAgICAgQWRkIE1hcERhdGEgYW5kIFdlYWtNYXBEYXRhIFN0cnVjdHVyZXMuCisKKyAgICAgICAg
KiBydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpwcm90b0Z1bmNX
ZWFrTWFwU2V0KToKKyAgICAgICAgUGFzcyBhIFZNIHJhdGhlciB0aGFuIGFuIEV4ZWNTdGF0ZS4K
KwogMjAxMy0wOS0xMCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IFByb3BhZ2F0ZSB0aGUgSW50NDggc3R1ZmYgaW50byB0aGUgcHJlZGljdGlvbiBwcm9wYWdhdG9y
LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcAkocmV2aXNpb24gMTU1NTM0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw2IEBACiAj
aW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKICNpbmNsdWRlICJMb29rdXAuaCIKICNpbmNsdWRl
ICJNYXBDb25zdHJ1Y3Rvci5oIgotI2luY2x1ZGUgIk1hcERhdGEuaCIKICNpbmNsdWRlICJNYXBQ
cm90b3R5cGUuaCIKICNpbmNsdWRlICJNYXRoT2JqZWN0LmgiCiAjaW5jbHVkZSAiTmFtZUNvbnN0
cnVjdG9yLmgiCkBAIC0xMDEsNyArMTAwLDYgQEAKICNpbmNsdWRlICJTdHJpbmdDb25zdHJ1Y3Rv
ci5oIgogI2luY2x1ZGUgIlN0cmluZ1Byb3RvdHlwZS5oIgogI2luY2x1ZGUgIldlYWtNYXBDb25z
dHJ1Y3Rvci5oIgotI2luY2x1ZGUgIldlYWtNYXBEYXRhLmgiCiAjaW5jbHVkZSAiV2Vha01hcFBy
b3RvdHlwZS5oIgogCiAjaWYgRU5BQkxFKFBST01JU0VTKQpAQCAtMzExLDEwICszMDksNiBAQCB2
b2lkIEpTR2xvYmFsT2JqZWN0OjpyZXNldChKU1ZhbHVlIHByb3RvCiAgICAgbV9wcm9taXNlV3Jh
cHBlckNhbGxiYWNrU3RydWN0dXJlLnNldChleGVjLT52bSgpLCB0aGlzLCBKU1Byb21pc2VXcmFw
cGVyQ2FsbGJhY2s6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT52bSgpLCB0aGlzLCBtX2Z1bmN0aW9u
UHJvdG90eXBlLmdldCgpKSk7CiAjZW5kaWYgLy8gRU5BQkxFKFBST01JU0VTKQogCi0KLSAgICBt
X21hcERhdGFTdHJ1Y3R1cmUuc2V0KGV4ZWMtPnZtKCksIHRoaXMsIE1hcERhdGE6OmNyZWF0ZVN0
cnVjdHVyZShleGVjLT52bSgpLCB0aGlzLCBqc051bGwoKSkpOwotICAgIG1fd2Vha01hcERhdGFT
dHJ1Y3R1cmUuc2V0KGV4ZWMtPnZtKCksIHRoaXMsIFdlYWtNYXBEYXRhOjpjcmVhdGVTdHJ1Y3R1
cmUoZXhlYy0+dm0oKSwgdGhpcywganNOdWxsKCkpKTsKLQogI2RlZmluZSBDUkVBVEVfUFJPVE9U
WVBFX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBp
bnN0YW5jZVR5cGUsIGpzTmFtZSkgXAogICAgIG1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGUu
c2V0KGV4ZWMtPnZtKCksIHRoaXMsIGNhcGl0YWxOYW1lIyNQcm90b3R5cGU6OmNyZWF0ZShleGVj
LCB0aGlzLCBjYXBpdGFsTmFtZSMjUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+dm0o
KSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSk7IFwKICAgICBtXyAjIyBwcm9wZXJO
YW1lICMjIFN0cnVjdHVyZS5zZXQoZXhlYy0+dm0oKSwgdGhpcywgaW5zdGFuY2VUeXBlOjpjcmVh
dGVTdHJ1Y3R1cmUoZXhlYy0+dm0oKSwgdGhpcywgbV8gIyMgbG93ZXJOYW1lICMjIFByb3RvdHlw
ZS5nZXQoKSkpOwpAQCAtNjQ0LDkgKzYzOCw2IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnZpc2l0
Q2hpbGRyZW4oSlNDZWwKIAogI3VuZGVmIFZJU0lUX1NJTVBMRV9UWVBFCiAKLSAgICB2aXNpdG9y
LmFwcGVuZCgmdGhpc09iamVjdC0+bV9tYXBEYXRhU3RydWN0dXJlKTsKLSAgICB2aXNpdG9yLmFw
cGVuZCgmdGhpc09iamVjdC0+bV93ZWFrTWFwRGF0YVN0cnVjdHVyZSk7Ci0KICAgICBmb3IgKHVu
c2lnbmVkIGkgPSBOVU1CRVJfT0ZfVFlQRURfQVJSQVlfVFlQRVM7IGktLTspIHsKICAgICAgICAg
dmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fdHlwZWRBcnJheXNbaV0ucHJvdG90eXBlKTsK
ICAgICAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fdHlwZWRBcnJheXNbaV0uc3Ry
dWN0dXJlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaAkocmV2aXNpb24gMTU1NTM0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDkgKzIwMCw2IEBA
IHByb3RlY3RlZDoKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3Byb21pc2VXcmFwcGVy
Q2FsbGJhY2tTdHJ1Y3R1cmU7CiAjZW5kaWYgLy8gRU5BQkxFKFBST01JU0VTKQogCi0gICAgV3Jp
dGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9tYXBEYXRhU3RydWN0dXJlOwotICAgIFdyaXRlQmFycmll
cjxTdHJ1Y3R1cmU+IG1fd2Vha01hcERhdGFTdHJ1Y3R1cmU7Ci0KICNkZWZpbmUgREVGSU5FX1NU
T1JBR0VfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUs
IGluc3RhbmNlVHlwZSwganNOYW1lKSBcCiAgICAgV3JpdGVCYXJyaWVyPGNhcGl0YWxOYW1lICMj
IFByb3RvdHlwZT4gbV8gIyMgbG93ZXJOYW1lICMjIFByb3RvdHlwZTsgXAogICAgIFdyaXRlQmFy
cmllcjxTdHJ1Y3R1cmU+IG1fICMjIHByb3Blck5hbWUgIyMgU3RydWN0dXJlOwpAQCAtMzk5LDgg
KzM5Niw2IEBAIHB1YmxpYzoKICAgICBTdHJ1Y3R1cmUqIHByaXZhdGVOYW1lU3RydWN0dXJlKCkg
Y29uc3QgeyByZXR1cm4gbV9wcml2YXRlTmFtZVN0cnVjdHVyZS5nZXQoKTsgfQogICAgIFN0cnVj
dHVyZSogaW50ZXJuYWxGdW5jdGlvblN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJu
YWxGdW5jdGlvblN0cnVjdHVyZS5nZXQoKTsgfQogICAgIFN0cnVjdHVyZSogbWFwU3RydWN0dXJl
KCkgY29uc3QgeyByZXR1cm4gbV9tYXBTdHJ1Y3R1cmUuZ2V0KCk7IH0KLSAgICBTdHJ1Y3R1cmUq
IG1hcERhdGFTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX21hcERhdGFTdHJ1Y3R1cmUuZ2V0
KCk7IH0KLSAgICBTdHJ1Y3R1cmUqIHdlYWtNYXBEYXRhU3RydWN0dXJlKCkgY29uc3QgeyByZXR1
cm4gbV93ZWFrTWFwRGF0YVN0cnVjdHVyZS5nZXQoKTsgfQogICAgIFN0cnVjdHVyZSogcmVnRXhw
TWF0Y2hlc0FycmF5U3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9yZWdFeHBNYXRjaGVzQXJy
YXlTdHJ1Y3R1cmUuZ2V0KCk7IH0KICAgICBTdHJ1Y3R1cmUqIHJlZ0V4cFN0cnVjdHVyZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVnRXhwU3RydWN0dXJlLmdldCgpOyB9CiAgICAgU3RydWN0dXJlKiBz
ZXRTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3NldFN0cnVjdHVyZS5nZXQoKTsgfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNYXAuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWFwLmNwcAkocmV2aXNpb24gMTU1NTM0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNYXAuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MSwxMCArNDEsMTAgQEAgdm9pZCBKU01hcDo6dmlzaXRDaGlsZHJlbihKU0NlbGwq
IGNlbGwsIAogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX21hcERhdGEpOwogfQog
Ci12b2lkIEpTTWFwOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCit2b2lkIEpTTWFwOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CiAgICAgQmFz
ZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIG1fbWFwRGF0YS5zZXQodm0sIHRoaXMsIE1hcERh
dGE6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0KSk7CisgICAgbV9tYXBEYXRhLnNldCh2bSwgdGhp
cywgTWFwRGF0YTo6Y3JlYXRlKHZtKSk7CiB9CiAKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU01hcC5oCShyZXZpc2lvbiAxNTU1MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU01hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgSlNNYXAqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
KQogICAgIHsKICAgICAgICAgSlNNYXAqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0
ZUNlbGw8SlNNYXA+KHZtLmhlYXApKSBKU01hcCh2bSwgc3RydWN0dXJlKTsKLSAgICAgICAgaW5z
dGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBzdHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgpKTsKKyAg
ICAgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICAgICAgcmV0dXJuIGluc3Rh
bmNlOwogICAgIH0KIApAQCAtNTgsNyArNTgsNiBAQCBwdWJsaWM6CiAgICAgTWFwRGF0YSogbWFw
RGF0YSgpIHsgcmV0dXJuIG1fbWFwRGF0YS5nZXQoKTsgfQogCiBwcml2YXRlOgotCiAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJl
biB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgSlNNYXAoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKQEAgLTY2LDcgKzY1LDcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0g
ICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2Jq
ZWN0Kik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwog
CiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NldC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZXQuY3BwCShyZXZpc2lvbiAx
NTU1MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NldC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQxLDEwICs0MSwxMCBAQCB2b2lkIEpTU2V0Ojp2aXNpdENoaWxkcmVuKEpT
Q2VsbCogY2VsbCwgCiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fbWFwRGF0YSk7
CiB9CiAKLXZvaWQgSlNTZXQ6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNTZXQ6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKICAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgbV9tYXBEYXRhLnNldCh2bSwgdGhpcywg
TWFwRGF0YTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QpKTsKKyAgICBtX21hcERhdGEuc2V0KHZt
LCB0aGlzLCBNYXBEYXRhOjpjcmVhdGUodm0pKTsKIH0KIAogfQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1NldC5oCShyZXZpc2lvbiAxNTU1MzQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1NldC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgSlNTZXQqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogICAgIHsKICAgICAgICAgSlNTZXQqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBh
bGxvY2F0ZUNlbGw8SlNTZXQ+KHZtLmhlYXApKSBKU1NldCh2bSwgc3RydWN0dXJlKTsKLSAgICAg
ICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBzdHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgp
KTsKKyAgICAgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICAgICAgcmV0dXJu
IGluc3RhbmNlOwogICAgIH0KIApAQCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAgIHsKICAg
ICB9CiAKLSAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNH
bG9iYWxPYmplY3QqKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGZpbmlzaENyZWF0aW9u
KFZNJik7CiAgICAgCiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90
VmlzaXRvciYpOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNX
ZWFrTWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1dlYWtNYXAuY3BwCShyZXZpc2lvbiAxNTU1MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1dlYWtNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxMCArMzQsMTAgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBKU1dlYWtNYXA6OnNfaW5mbyA9IHsg
IldlYWtNYXAiLCAmQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTV2Vh
a01hcCkgfTsKIAotdm9pZCBKU1dlYWtNYXA6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNXZWFrTWFwOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIG1fd2Vha01hcERh
dGEuc2V0KHZtLCB0aGlzLCBXZWFrTWFwRGF0YTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QpKTsK
KyAgICBtX3dlYWtNYXBEYXRhLnNldCh2bSwgdGhpcywgV2Vha01hcERhdGE6OmNyZWF0ZSh2bSkp
OwogfQogCiB2b2lkIEpTV2Vha01hcDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNX
ZWFrTWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNX
ZWFrTWFwLmgJKHJldmlzaW9uIDE1NTUzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTV2Vha01hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywxNCArNDMsMTggQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAg
ICAgfQogCi0gICAgc3RhdGljIEpTV2Vha01hcCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgc3RhdGljIEpTV2Vha01hcCogY3JlYXRlKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewotICAgICAgICBWTSYgdm0gPSBleGVjLT52bSgp
OwogICAgICAgICBKU1dlYWtNYXAqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNl
bGw8SlNXZWFrTWFwPih2bS5oZWFwKSkgSlNXZWFrTWFwKHZtLCBzdHJ1Y3R1cmUpOwotICAgICAg
ICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0sIHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkp
OworICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0pOwogICAgICAgICByZXR1cm4g
aW5zdGFuY2U7CiAgICAgfQogCisgICAgc3RhdGljIEpTV2Vha01hcCogY3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgeworICAgICAgICByZXR1cm4gY3Jl
YXRlKGV4ZWMtPnZtKCksIHN0cnVjdHVyZSk7CisgICAgfQorCiAgICAgV2Vha01hcERhdGEqIHdl
YWtNYXBEYXRhKCkgeyByZXR1cm4gbV93ZWFrTWFwRGF0YS5nZXQoKTsgfQogCiAgICAgSlNWYWx1
ZSBnZXQoQ2FsbEZyYW1lKiwgSlNPYmplY3QqKTsKQEAgLTYxLDcgKzY1LDYgQEAgcHVibGljOgog
ICAgIHZvaWQgY2xlYXIoQ2FsbEZyYW1lKik7CiAKIHByaXZhdGU6Ci0KICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgQmFz
ZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBKU1dlYWtNYXAoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKQEAgLTY5LDcgKzcyLDcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0gICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CisgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihWTSYpOwogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwg
U2xvdFZpc2l0b3ImKTsKIAogICAgIFdyaXRlQmFycmllcjxXZWFrTWFwRGF0YT4gbV93ZWFrTWFw
RGF0YTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcERhdGEuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcERhdGEuY3BwCShy
ZXZpc2lvbiAxNTU1MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBEYXRh
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTIgKzM3LDEyIEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCi1jb25zdCBDbGFzc0luZm8gTWFwRGF0YTo6c19pbmZvID0geyAiTWFwRGF0YSIsICZCYXNl
OjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoTWFwRGF0YSkgfTsKK2NvbnN0IENs
YXNzSW5mbyBNYXBEYXRhOjpzX2luZm8gPSB7ICJNYXBEYXRhIiwgMCwgMCwgMCwgQ1JFQVRFX01F
VEhPRF9UQUJMRShNYXBEYXRhKSB9OwogCiBzdGF0aWMgY29uc3QgaW50MzJfdCBtaW5pbXVtTWFw
U2l6ZSA9IDg7CiAKLU1hcERhdGE6Ok1hcERhdGEoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQotICAgIDogQmFzZSh2bSwgZ2xvYmFsT2JqZWN0LT5tYXBEYXRhU3RydWN0dXJl
KCkpCitNYXBEYXRhOjpNYXBEYXRhKFZNJiB2bSkKKyAgICA6IEJhc2Uodm0sIHZtLm1hcERhdGFT
dHJ1Y3R1cmUuZ2V0KCkpCiAgICAgLCBtX2NhcGFjaXR5KDApCiAgICAgLCBtX3NpemUoMCkKICAg
ICAsIG1fZGVsZXRlZENvdW50KDApCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9NYXBEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWFwRGF0YS5oCShyZXZpc2lvbiAxNTU1MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXBEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE5ICsyNiwxNyBAQAogI2lmbmRl
ZiBNYXBEYXRhX2gKICNkZWZpbmUgTWFwRGF0YV9oCiAKLSNpbmNsdWRlICJDYWxsRnJhbWUuaCIK
LSNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCi0jaW5jbHVkZSAiSlNEZXN0cnVjdGlibGVPYmplY3Qu
aCIKLQorI2luY2x1ZGUgIkpTQ2VsbC5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoRnVuY3Rpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgTWFwRGF0
YSA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CitjbGFzcyBNYXBEYXRhIDogcHVibGlj
IEpTQ2VsbCB7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBKU0Rlc3RydWN0aWJsZU9iamVjdCBCYXNl
OworICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7CiAKICAgICBzdHJ1Y3QgY29uc3RfaXRlcmF0b3Ig
ewogICAgICAgICBjb25zdF9pdGVyYXRvcihjb25zdCBNYXBEYXRhKik7CkBAIC02OCwxOCArNjYs
MjEgQEAgcHVibGljOgogICAgICAgICBKU1ZhbHVlIHZhbHVlOwogICAgIH07CiAKLSAgICBzdGF0
aWMgTWFwRGF0YSogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
KyAgICBzdGF0aWMgTWFwRGF0YSogY3JlYXRlKFZNJiB2bSkKICAgICB7Ci0gICAgICAgIE1hcERh
dGEqIG1hcERhdGEgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxNYXBEYXRhPih2bS5oZWFw
KSkgTWFwRGF0YSh2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgTWFwRGF0YSogbWFwRGF0YSA9
IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPE1hcERhdGE+KHZtLmhlYXApKSBNYXBEYXRhKHZt
KTsKICAgICAgICAgbWFwRGF0YS0+ZmluaXNoQ3JlYXRpb24odm0pOwogICAgICAgICByZXR1cm4g
bWFwRGF0YTsKICAgICB9CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygp
KTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7
CiAgICAgfQogCisgICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7
CisgICAgc3RhdGljIGNvbnN0IGJvb2wgaGFzSW1tb3J0YWxTdHJ1Y3R1cmUgPSB0cnVlOworCiAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXQoQ2FsbEZyYW1lKiwgS2V5VHlwZSwgSlNWYWx1
ZSk7CiAgICAgSlNWYWx1ZSBnZXQoQ2FsbEZyYW1lKiwgS2V5VHlwZSk7CiAgICAgYm9vbCByZW1v
dmUoQ2FsbEZyYW1lKiwgS2V5VHlwZSk7CkBAIC0xMDksNyArMTEwLDcgQEAgcHJpdmF0ZToKIAog
ICAgIHNpemVfdCBjYXBhY2l0eUluQnl0ZXMoKSB7IHJldHVybiBtX2NhcGFjaXR5ICogc2l6ZW9m
KEVudHJ5KTsgfQogCi0gICAgTWFwRGF0YShWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CisgICAgTWFw
RGF0YShWTSYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAgICAgc3RhdGlj
IHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgIHN0YXRpYyB2
b2lkIGNvcHlCYWNraW5nU3RvcmUoSlNDZWxsKiwgQ29weVZpc2l0b3ImLCBDb3B5VG9rZW4pOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAkocmV2aXNpb24gMTU1NTM0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Niw4ICs0Niw4IEBACiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkluY3Jl
bWVudGFsU3dlZXBlci5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCi0jaW5jbHVkZSAiSlNB
Y3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNBUElWYWx1ZVdyYXBwZXIuaCIKKyNpbmNsdWRlICJK
U0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlv
bi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgiCkBAIC02OCw2ICs2OCw3
IEBACiAjaW5jbHVkZSAiU3RyaWN0RXZhbEFjdGl2YXRpb24uaCIKICNpbmNsdWRlICJTdHJvbmdJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiVW5saW5rZWRDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJXZWFr
TWFwRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4KICNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CkBAIC0yNDEsNiAr
MjQyLDkgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgIHVu
bGlua2VkRXZhbENvZGVCbG9ja1N0cnVjdHVyZS5zZXQoKnRoaXMsIFVubGlua2VkRXZhbENvZGVC
bG9jazo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwogICAgIHVubGlua2Vk
RnVuY3Rpb25Db2RlQmxvY2tTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBVbmxpbmtlZEZ1bmN0aW9uQ29k
ZUJsb2NrOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7CiAgICAgcHJvcGVy
dHlUYWJsZVN0cnVjdHVyZS5zZXQoKnRoaXMsIFByb3BlcnR5VGFibGU6OmNyZWF0ZVN0cnVjdHVy
ZSgqdGhpcywgMCwganNOdWxsKCkpKTsKKyAgICBtYXBEYXRhU3RydWN0dXJlLnNldCgqdGhpcywg
TWFwRGF0YTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOworICAgIHdlYWtN
YXBEYXRhU3RydWN0dXJlLnNldCgqdGhpcywgV2Vha01hcERhdGE6OmNyZWF0ZVN0cnVjdHVyZSgq
dGhpcywgMCwganNOdWxsKCkpKTsKKwogICAgIHNtYWxsU3RyaW5ncy5pbml0aWFsaXplQ29tbW9u
U3RyaW5ncygqdGhpcyk7CiAKICAgICB3dGZUaHJlYWREYXRhKCkuc2V0Q3VycmVudElkZW50aWZp
ZXJUYWJsZShleGlzdGluZ0VudHJ5SWRlbnRpZmllclRhYmxlKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uaAkocmV2aXNpb24gMTU1NTM0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uaAkod29ya2luZyBjb3B5KQpAQCAtMjcwLDYgKzI3MCw4IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBTdHJvbmc8U3RydWN0dXJlPiB1bmxpbmtlZEV2YWxDb2RlQmxv
Y2tTdHJ1Y3R1cmU7CiAgICAgICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IHVubGlua2VkRnVuY3Rpb25D
b2RlQmxvY2tTdHJ1Y3R1cmU7CiAgICAgICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IHByb3BlcnR5VGFi
bGVTdHJ1Y3R1cmU7CisgICAgICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IG1hcERhdGFTdHJ1Y3R1cmU7
CisgICAgICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IHdlYWtNYXBEYXRhU3RydWN0dXJlOwogCiAgICAg
ICAgIElkZW50aWZpZXJUYWJsZSogaWRlbnRpZmllclRhYmxlOwogICAgICAgICBDb21tb25JZGVu
dGlmaWVycyogcHJvcGVydHlOYW1lczsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dlYWtNYXBEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XZWFrTWFwRGF0YS5jcHAJKHJldmlzaW9uIDE1NTUzNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQs
MTMgKzM0LDEyIEBACiAKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCi0KIG5hbWVzcGFj
ZSBKU0MgewogCi1jb25zdCBDbGFzc0luZm8gV2Vha01hcERhdGE6OnNfaW5mbyA9IHsgIldlYWtN
YXBEYXRhIiwgJkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWFrTWFw
RGF0YSkgfTsKK2NvbnN0IENsYXNzSW5mbyBXZWFrTWFwRGF0YTo6c19pbmZvID0geyAiV2Vha01h
cERhdGEiLCAwLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFdlYWtNYXBEYXRhKSB9OwogCi1X
ZWFrTWFwRGF0YTo6V2Vha01hcERhdGEoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQotICAgIDogQmFzZSh2bSwgZ2xvYmFsT2JqZWN0LT53ZWFrTWFwRGF0YVN0cnVjdHVyZSgp
KQorV2Vha01hcERhdGE6OldlYWtNYXBEYXRhKFZNJiB2bSkKKyAgICA6IEJhc2Uodm0sIHZtLndl
YWtNYXBEYXRhU3RydWN0dXJlLmdldCgpKQogICAgICwgbV9kZWFkS2V5Q2xlYW5lcih0aGlzKQog
ewogfQpAQCAtNjgsMTEgKzY3LDExIEBAIHZvaWQgV2Vha01hcERhdGE6OnZpc2l0Q2hpbGRyZW4o
SlNDZWxsKiAKICAgICB2aXNpdG9yLnJlcG9ydEV4dHJhTWVtb3J5VXNhZ2UodGhpc09iai0+bV9t
YXAuY2FwYWNpdHkoKSAqIChzaXplb2YoSlNPYmplY3QqKSArIHNpemVvZihXcml0ZUJhcnJpZXI8
VW5rbm93bj4pKSk7CiB9CiAKLXZvaWQgV2Vha01hcERhdGE6OnNldChDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgSlNPYmplY3QqIGtleSwgSlNWYWx1ZSB2YWx1ZSkKK3ZvaWQgV2Vha01hcERhdGE6OnNl
dChWTSYgdm0sIEpTT2JqZWN0KiBrZXksIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgLy8gSGVyZSB3
ZSBmb3JjZSB0aGUgd3JpdGUgYmFycmllciBvbiB0aGUga2V5LgotICAgIGF1dG8gcmVzdWx0ID0g
bV9tYXAuYWRkKFdyaXRlQmFycmllcjxKU09iamVjdD4oY2FsbEZyYW1lLT52bSgpLCB0aGlzLCBr
ZXkpLmdldCgpLCBXcml0ZUJhcnJpZXI8VW5rbm93bj4oKSk7Ci0gICAgcmVzdWx0Lml0ZXJhdG9y
LT52YWx1ZS5zZXQoY2FsbEZyYW1lLT52bSgpLCB0aGlzLCB2YWx1ZSk7CisgICAgYXV0byByZXN1
bHQgPSBtX21hcC5hZGQoV3JpdGVCYXJyaWVyPEpTT2JqZWN0Pih2bSwgdGhpcywga2V5KS5nZXQo
KSwgV3JpdGVCYXJyaWVyPFVua25vd24+KCkpOworICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUu
c2V0KHZtLCB0aGlzLCB2YWx1ZSk7CiB9CiAKIEpTVmFsdWUgV2Vha01hcERhdGE6OmdldChKU09i
amVjdCoga2V5KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcERh
dGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFw
RGF0YS5oCShyZXZpc2lvbiAxNTU1MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XZWFrTWFwRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw0NyArMjYsNDUgQEAKICNpZm5k
ZWYgV2Vha01hcERhdGFfaAogI2RlZmluZSBXZWFrTWFwRGF0YV9oCiAKLSNpbmNsdWRlICJDYWxs
RnJhbWUuaCIKLSNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCi0jaW5jbHVkZSAiSlNEZXN0cnVjdGli
bGVPYmplY3QuaCIKLQorI2luY2x1ZGUgIkpTQ2VsbC5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZS5o
IgogI2luY2x1ZGUgPHd0Zi9IYXNoRnVuY3Rpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xh
c3MgV2Vha0ltcGw7Ci1jbGFzcyBXZWFrTWFwRGF0YTsKLQotY2xhc3MgV2Vha01hcERhdGEgOiBw
dWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgeworY2xhc3MgV2Vha01hcERhdGEgOiBwdWJsaWMg
SlNDZWxsIHsKIHB1YmxpYzoKLSAgICB0eXBlZGVmIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IEJhc2U7
CisgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKIAotICAgIHN0YXRpYyBXZWFrTWFwRGF0YSogY3Jl
YXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKKyAgICBzdGF0aWMgV2Vh
a01hcERhdGEqIGNyZWF0ZShWTSYgdm0pCiAgICAgewotICAgICAgICBXZWFrTWFwRGF0YSogd2Vh
a01hcERhdGEgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxXZWFrTWFwRGF0YT4odm0uaGVh
cCkpIFdlYWtNYXBEYXRhKHZtLCBnbG9iYWxPYmplY3QpOworICAgICAgICBXZWFrTWFwRGF0YSog
d2Vha01hcERhdGEgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxXZWFrTWFwRGF0YT4odm0u
aGVhcCkpIFdlYWtNYXBEYXRhKHZtKTsKICAgICAgICAgd2Vha01hcERhdGEtPmZpbmlzaENyZWF0
aW9uKHZtKTsKICAgICAgICAgcmV0dXJuIHdlYWtNYXBEYXRhOwogICAgIH0KIAogICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKLSAgICB2b2lkIHNldChDYWxs
RnJhbWUqLCBKU09iamVjdCosIEpTVmFsdWUpOworICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRz
RGVzdHJ1Y3Rpb24gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdCBib29sIGhhc0ltbW9ydGFsU3Ry
dWN0dXJlID0gdHJ1ZTsKKworICAgIHZvaWQgc2V0KFZNJiwgSlNPYmplY3QqLCBKU1ZhbHVlKTsK
ICAgICBKU1ZhbHVlIGdldChKU09iamVjdCopOwogICAgIGJvb2wgcmVtb3ZlKEpTT2JqZWN0Kik7
Ci0gICAgdm9pZCByZW1vdmVEZWFkKEpTT2JqZWN0Kik7CiAgICAgYm9vbCBjb250YWlucyhKU09i
amVjdCopOwogICAgIHZvaWQgY2xlYXIoKTsKIAogICAgIERFQ0xBUkVfSU5GTzsKKwogICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc1Zpc2l0Q2hpbGRy
ZW4gfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogcHJpdmF0ZToKLSAgICBXZWFrTWFwRGF0YShW
TSYsIEpTR2xvYmFsT2JqZWN0Kik7CisgICAgV2Vha01hcERhdGEoVk0mKTsKICAgICBzdGF0aWMg
dm9pZCBkZXN0cm95KEpTQ2VsbCopOwogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiwgU2xvdFZpc2l0b3ImKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJvdG90eXBl
LmNwcAkocmV2aXNpb24gMTU1NTM0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
V2Vha01hcFByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOSw3ICsxMTksNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlCiAgICAgSlNWYWx1ZSBrZXkg
PSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIGlmICgha2V5LmlzT2JqZWN0KCkpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3IoY2FsbEZyYW1lLCBXVEY6
OkFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdGVkIHRvIHNldCBhIG5vbi1vYmplY3Qga2V5IGluIGEgV2Vh
a01hcCIpKSk7Ci0gICAgbWFwLT5zZXQoY2FsbEZyYW1lLCBhc09iamVjdChrZXkpLCBjYWxsRnJh
bWUtPmFyZ3VtZW50KDEpKTsKKyAgICBtYXAtPnNldChjYWxsRnJhbWUtPnZtKCksIGFzT2JqZWN0
KGtleSksIGNhbGxGcmFtZS0+YXJndW1lbnQoMSkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>