<?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>165121</bug_id>
          
          <creation_ts>2016-11-28 16:03:14 -0800</creation_ts>
          <short_desc>WebAssembly JS API: export a module namespace object instead of a module environment</short_desc>
          <delta_ts>2017-03-22 01:36:28 -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>JavaScriptCore</component>
          <version>WebKit 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>
          <dependson>164757</dependson>
          <blocked>161709</blocked>
    
    <blocked>169951</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="JF Bastien">jfbastien</reporter>
          <assigned_to name="JF Bastien">jfbastien</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1254080</commentid>
    <comment_count>0</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-11-28 16:03:14 -0800</bug_when>
    <thetext>JSWebAssemblyInstance::finishCreation should do this:
    putDirect(vm, Identifier::fromString(&amp;vm, &quot;exports&quot;), JSValue(m_moduleNamespaceObject.get()), None);
Not its constructor.

These tests should pass in test_basic_api.js:
        assert.isUndef(instance.exports.__proto__);
        assert.eq(Reflect.isExtensible(instance.exports), false);
        assert.eq(Symbol.iterator in instance.exports, true);
        assert.eq(Symbol.toStringTag in instance.exports, true);

WebAssembly doesn&apos;t have circular linking and fancy things yet, so it&apos;s slightly simpler than ES6 modules. I&apos;m sure this isn&apos;t super hard to fix, but the current code does what we need to get off the ground so I&apos;d rather figure it out later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254723</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-30 01:49:21 -0800</bug_when>
    <thetext>I&apos;ll look into it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254724</commentid>
    <comment_count>2</comment_count>
      <attachid>295708</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-30 02:15:28 -0800</bug_when>
    <thetext>Created attachment 295708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254725</commentid>
    <comment_count>3</comment_count>
      <attachid>295709</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-30 02:18:56 -0800</bug_when>
    <thetext>Created attachment 295709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254726</commentid>
    <comment_count>4</comment_count>
      <attachid>295709</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-30 02:21:13 -0800</bug_when>
    <thetext>Comment on attachment 295709
Patch

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

&gt; Source/JavaScriptCore/wasm/WasmFormat.cpp:37
&gt; +#endif // COMPILER(GCC) &amp;&amp; ASSERT_DISABLED

This is B3 way for the following switch&apos;s warning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254827</commentid>
    <comment_count>5</comment_count>
      <attachid>295709</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-11-30 10:11:38 -0800</bug_when>
    <thetext>Comment on attachment 295709
Patch

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

Awesome, this was way simpler than I thought it was! :-)
Looks good.

&gt;&gt; Source/JavaScriptCore/wasm/WasmFormat.cpp:37
&gt;&gt; +#endif // COMPILER(GCC) &amp;&amp; ASSERT_DISABLED
&gt; 
&gt; This is B3 way for the following switch&apos;s warning.

I&apos;m auto-generating that code here: https://bugs.webkit.org/show_bug.cgi?id=164724</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255119</commentid>
    <comment_count>6</comment_count>
      <attachid>295709</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-30 19:09:17 -0800</bug_when>
    <thetext>Comment on attachment 295709
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/wasm/WasmFormat.cpp:37
&gt;&gt;&gt; +#endif // COMPILER(GCC) &amp;&amp; ASSERT_DISABLED
&gt;&gt; 
&gt;&gt; This is B3 way for the following switch&apos;s warning.
&gt; 
&gt; I&apos;m auto-generating that code here: https://bugs.webkit.org/show_bug.cgi?id=164724

Nice. Once the above patch is landed, we can simply drop this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255126</commentid>
    <comment_count>7</comment_count>
      <attachid>295709</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-11-30 19:31:50 -0800</bug_when>
    <thetext>Comment on attachment 295709
Patch

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

r=me

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:36
&gt; +#include &quot;LLIntThunks.h&quot;

Was this file needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255129</commentid>
    <comment_count>8</comment_count>
      <attachid>295709</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-30 19:52:18 -0800</bug_when>
    <thetext>Comment on attachment 295709
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:36
&gt;&gt; +#include &quot;LLIntThunks.h&quot;
&gt; 
&gt; Was this file needed?

It is necessary for `vmEntryToWasm`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255130</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-30 19:54:48 -0800</bug_when>
    <thetext>Committed r209171: &lt;http://trac.webkit.org/changeset/209171&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295708</attachid>
            <date>2016-11-30 02:15:28 -0800</date>
            <delta_ts>2016-11-30 02:18:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165121-20161130191501.patch</filename>
            <type>text/plain</type>
            <size>16840</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5MTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
OTY3ZjgwODc3NWJlYjcxMGE3ZGFhYjE4ZjgyYmYxNWI0ZDU2Zjc1Li4wN2IyMDdhYjMzNzliN2Ix
NGQ2OWJkOWVjZDJiMWQyMzFiNzk4Y2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAxNi0xMS0zMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBXZWJBc3NlbWJseSBKUyBBUEk6IGV4cG9ydCBhIG1vZHVsZSBuYW1l
c3BhY2Ugb2JqZWN0IGluc3RlYWQgb2YgYSBtb2R1bGUgZW52aXJvbm1lbnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTEyMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggc2V0dXAgQWJz
dHJhY3RNb2R1bGVSZWNvcmQgZnVydGhlciBmb3IgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuCisg
ICAgICAgIEZvciBleHBvcnRlZCBlbnRyaWVzIGluIGEgd2FzbSBpbnN0YW5jZSwgd2Ugc2V0IHVw
IGV4cG9ydGVkIGVudHJpZXMgZm9yCisgICAgICAgIEFic3RyYWN0TW9kdWxlUmVjb3JkLiBUaGlz
IGFsbG93cyB1cyB0byBleHBvcnQgV0FTTSBleHBvcnRlZCBmdW5jdGlvbnMgaW4KKyAgICAgICAg
dGhlIG1vZHVsZSBoYW5kbGluZyBjb2RlLgorCisgICAgICAgIFNpbmNlIHRoZSBleHBvcnRlZCBl
bnRyaWVzIGluIHRoZSBhYnN0cmFjdCBtb2R1bGUgcmVjb3JkIGFyZSBjb3JyZWN0bHkKKyAgICAg
ICAgaW5zdGFudGlhdGVkLCB0aGUgbW9kdWxlIG5hbWVzcGFjZSBvYmplY3QgZm9yIFdBU00gbW9k
dWxlIGFsc28gc3RhcnRzCisgICAgICAgIHdvcmtpbmcgY29ycmVjdGx5LiBTbyB3ZSBzdGFydCBl
eHBvc2luZyB0aGUgbW9kdWxlIG5hbWVzcGFjZSBvYmplY3QKKyAgICAgICAgYXMgYGluc3RhbmNl
LmV4cG9ydHNgIGluc3RlYWQgb2YgdGhlIG1vZHVsZSBlbnZpcm9ubWVudCBvYmplY3QuCisKKyAg
ICAgICAgQW5kIHdlIG1vdmUgU291cmNlQ29kZSwgbGV4aWNhbFZhcmlhYmxlcywgYW5kIGRlY2xh
cmVkVmFyaWFibGVzIGZpZWxkcyB0bworICAgICAgICBKU01vZHVsZVJlY29yZCBzaW5jZSB0aGV5
IGFyZSByZWxhdGVkIHRvIEpTIHNvdXJjZSBjb2RlIChpbiB0aGUgc3BlYyB3b3JkcywKKyAgICAg
ICAgdGhleSBhcmUgcmVsYXRlZCB0byB0aGUgc291cmNlIHRleHQgbW9kdWxlIHJlY29yZCkuCisK
KyAgICAgICAgKiBydW50aW1lL0Fic3RyYWN0TW9kdWxlUmVjb3JkLmNwcDoKKyAgICAgICAgKEpT
Qzo6QWJzdHJhY3RNb2R1bGVSZWNvcmQ6OkFic3RyYWN0TW9kdWxlUmVjb3JkKToKKyAgICAgICAg
KiBydW50aW1lL0Fic3RyYWN0TW9kdWxlUmVjb3JkLmg6CisgICAgICAgIChKU0M6OkFic3RyYWN0
TW9kdWxlUmVjb3JkOjpzb3VyY2VDb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QWJzdHJh
Y3RNb2R1bGVSZWNvcmQ6OmRlY2xhcmVkVmFyaWFibGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6QWJzdHJhY3RNb2R1bGVSZWNvcmQ6OmxleGljYWxWYXJpYWJsZXMpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVSZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpKU01vZHVs
ZVJlY29yZDo6SlNNb2R1bGVSZWNvcmQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVSZWNv
cmQuaDoKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVSZWNvcmQ6OnNvdXJjZUNvZGUpOgorICAgICAg
ICAoSlNDOjpKU01vZHVsZVJlY29yZDo6ZGVjbGFyZWRWYXJpYWJsZXMpOgorICAgICAgICAoSlND
OjpKU01vZHVsZVJlY29yZDo6bGV4aWNhbFZhcmlhYmxlcyk6CisgICAgICAgICogd2FzbS9XYXNt
Rm9ybWF0LmNwcDoKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHA6
CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6ZmluaXNoQ3JlYXRpb24pOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHA6CisgICAgICAgICogd2Fz
bS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpj
b25zdHJ1Y3RKU1dlYkFzc2VtYmx5SW5zdGFuY2UpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNz
ZW1ibHlNb2R1bGVSZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZVJl
Y29yZDo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6Oldl
YkFzc2VtYmx5TW9kdWxlUmVjb3JkKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNb2R1bGVS
ZWNvcmQ6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6
Omxpbmsgc2hvdWxkIHBlcmZvcm0gbGlua2luZyB0aGluZ3MuCisgICAgICAgIFNvIGFsbG9jYXRp
bmcgZXhwb3J0ZWQgZW50cmllcyBzaG91bGQgYmUgZG9uZSBoZXJlLgorICAgICAgICAqIHdhc20v
anMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuaDoKKwogMjAxNi0xMS0yOSAgSkYgQmFzdGllbiAg
PGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViQXNzZW1ibHkgSlMgQVBJOiBpbXBy
b3ZlIEluc3RhbmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
YnN0cmFjdE1vZHVsZVJlY29yZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
YnN0cmFjdE1vZHVsZVJlY29yZC5jcHAKaW5kZXggYTViZTYwNDhkYzhmYTNiYTM5OTFhNmNmMjVk
YmRkMjljNzZlMzI5NC4uZWJlNWY1ZDU4YmM3ZTUxODY4ZmU2ODc2YjcxNjRkMDVhZjgwZjk2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWJzdHJhY3RNb2R1bGVS
ZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fic3RyYWN0TW9k
dWxlUmVjb3JkLmNwcApAQCAtMzgsMTIgKzM4LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0
IENsYXNzSW5mbyBBYnN0cmFjdE1vZHVsZVJlY29yZDo6c19pbmZvID0geyAiQWJzdHJhY3RNb2R1
bGVSZWNvcmQiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFic3RyYWN0
TW9kdWxlUmVjb3JkKSB9OwogCi1BYnN0cmFjdE1vZHVsZVJlY29yZDo6QWJzdHJhY3RNb2R1bGVS
ZWNvcmQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgbW9k
dWxlS2V5LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBjb25zdCBWYXJpYWJsZUVudmly
b25tZW50JiBkZWNsYXJlZFZhcmlhYmxlcywgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCYgbGV4
aWNhbFZhcmlhYmxlcykKK0Fic3RyYWN0TW9kdWxlUmVjb3JkOjpBYnN0cmFjdE1vZHVsZVJlY29y
ZChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVL
ZXkpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiAgICAgLCBtX21vZHVsZUtleShtb2R1bGVL
ZXkpCi0gICAgLCBtX3NvdXJjZUNvZGUoc291cmNlQ29kZSkKLSAgICAsIG1fZGVjbGFyZWRWYXJp
YWJsZXMoZGVjbGFyZWRWYXJpYWJsZXMpCi0gICAgLCBtX2xleGljYWxWYXJpYWJsZXMobGV4aWNh
bFZhcmlhYmxlcykKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQWJzdHJhY3RNb2R1bGVSZWNvcmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Fic3RyYWN0TW9kdWxlUmVjb3JkLmgKaW5kZXggZWM2OTkyZGJjMDJiZmY0MmNlYmZhMTNh
YzhkNDg2OTI3OTg1MDk1Mi4uMDRhZjEyNjFhODk5MmY0ZGY4OTA0OTY3MjRjYWJmNjI0M2VkOWU1
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWJzdHJhY3RNb2R1
bGVSZWNvcmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BYnN0cmFjdE1v
ZHVsZVJlY29yZC5oCkBAIC04OCwxNiArODgsMTIgQEAgY2xhc3MgQWJzdHJhY3RNb2R1bGVSZWNv
cmQgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogICAgIHN0ZDo6b3B0aW9uYWw8SW1w
b3J0RW50cnk+IHRyeUdldEltcG9ydEVudHJ5KFVuaXF1ZWRTdHJpbmdJbXBsKiBsb2NhbE5hbWUp
OwogICAgIHN0ZDo6b3B0aW9uYWw8RXhwb3J0RW50cnk+IHRyeUdldEV4cG9ydEVudHJ5KFVuaXF1
ZWRTdHJpbmdJbXBsKiBleHBvcnROYW1lKTsKIAotICAgIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJj
ZUNvZGUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUNvZGU7IH0KICAgICBjb25zdCBJZGVudGlm
aWVyJiBtb2R1bGVLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZUtleTsgfQogICAgIGNvbnN0
IE9yZGVyZWRJZGVudGlmaWVyU2V0JiByZXF1ZXN0ZWRNb2R1bGVzKCkgY29uc3QgeyByZXR1cm4g
bV9yZXF1ZXN0ZWRNb2R1bGVzOyB9CiAgICAgY29uc3QgRXhwb3J0RW50cmllcyYgZXhwb3J0RW50
cmllcygpIGNvbnN0IHsgcmV0dXJuIG1fZXhwb3J0RW50cmllczsgfQogICAgIGNvbnN0IEltcG9y
dEVudHJpZXMmIGltcG9ydEVudHJpZXMoKSBjb25zdCB7IHJldHVybiBtX2ltcG9ydEVudHJpZXM7
IH0KICAgICBjb25zdCBPcmRlcmVkSWRlbnRpZmllclNldCYgc3RhckV4cG9ydEVudHJpZXMoKSBj
b25zdCB7IHJldHVybiBtX3N0YXJFeHBvcnRFbnRyaWVzOyB9CiAKLSAgICBjb25zdCBWYXJpYWJs
ZUVudmlyb25tZW50JiBkZWNsYXJlZFZhcmlhYmxlcygpIGNvbnN0IHsgcmV0dXJuIG1fZGVjbGFy
ZWRWYXJpYWJsZXM7IH0KLSAgICBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50JiBsZXhpY2FsVmFy
aWFibGVzKCkgY29uc3QgeyByZXR1cm4gbV9sZXhpY2FsVmFyaWFibGVzOyB9Ci0KICAgICB2b2lk
IGR1bXAoKTsKIAogICAgIHN0cnVjdCBSZXNvbHV0aW9uIHsKQEAgLTEyNiw3ICsxMjIsNyBAQCBj
bGFzcyBBYnN0cmFjdE1vZHVsZVJlY29yZCA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7
CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgQWJzdHJhY3RNb2R1bGVSZWNvcmQoVk0mLCBTdHJ1
Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgU291cmNlQ29kZSYsIGNvbnN0IFZhcmlh
YmxlRW52aXJvbm1lbnQmLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Jik7CisgICAgQWJzdHJh
Y3RNb2R1bGVSZWNvcmQoVk0mLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBWTSYpOwogCiAgICAgc3RhdGljIHZvaWQg
dmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwpAQCAtMTQzLDExICsxMzksNiBA
QCBjbGFzcyBBYnN0cmFjdE1vZHVsZVJlY29yZCA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVj
dCB7CiAgICAgLy8gVGhlIGxvYWRlciByZXNvbHZlcyB0aGUgZ2l2ZW4gbW9kdWxlIG5hbWUgdG8g
dGhlIG1vZHVsZSBrZXkuIFRoZSBtb2R1bGUga2V5IGlzIHRoZSB1bmlxdWUgdmFsdWUgdG8gcmVw
cmVzZW50IHRoaXMgbW9kdWxlLgogICAgIElkZW50aWZpZXIgbV9tb2R1bGVLZXk7CiAKLSAgICBT
b3VyY2VDb2RlIG1fc291cmNlQ29kZTsKLQotICAgIFZhcmlhYmxlRW52aXJvbm1lbnQgbV9kZWNs
YXJlZFZhcmlhYmxlczsKLSAgICBWYXJpYWJsZUVudmlyb25tZW50IG1fbGV4aWNhbFZhcmlhYmxl
czsKLQogICAgIC8vIEN1cnJlbnRseSwgd2UgZG9uJ3Qga2VlcCB0aGUgb2NjdXJyZW5jZSBvcmRl
ciBvZiB0aGUgaW1wb3J0IC8gZXhwb3J0IGVudHJpZXMuCiAgICAgLy8gU28sIHdlIGRvZXMgbm90
IGd1YXJhbnRlZSB0aGUgb3JkZXIgb2YgdGhlIGVycm9ycy4KICAgICAvLyBlLmcuIFRoZSBpbXBv
cnQgZGVjbGFyYXRpb24gdGhhdCBvY2N1cnIgbGF0ZXIgdGhhbiB0aGUgYW5vdGhlciBpbXBvcnQg
ZGVjbGFyYXRpb24gbWF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU01vZHVsZVJlY29yZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01v
ZHVsZVJlY29yZC5jcHAKaW5kZXggYzJlNjE1NjM4MDU2NTJiZTFhYzMzNTdjMDM0ODg4NDU4OGFh
YjM1ZS4uNDA4MTlkNzUzNDlkZmFlZDAzOTNiNTA2ZTg1ZDBkMjQyNWE3NjQzOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmNwcApAQCAtNTAs
NyArNTAsMTAgQEAgSlNNb2R1bGVSZWNvcmQqIEpTTW9kdWxlUmVjb3JkOjpjcmVhdGUoRXhlY1N0
YXRlKiBleGVjLCBWTSYgdm0sIFN0cnVjdHVyZSogc3RydWMKICAgICByZXR1cm4gaW5zdGFuY2U7
CiB9CiBKU01vZHVsZVJlY29yZDo6SlNNb2R1bGVSZWNvcmQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgbW9kdWxlS2V5LCBjb25zdCBTb3VyY2VDb2RlJiBz
b3VyY2VDb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50JiBkZWNsYXJlZFZhcmlhYmxlcywg
Y29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCYgbGV4aWNhbFZhcmlhYmxlcykKLSAgICA6IEJhc2Uo
dm0sIHN0cnVjdHVyZSwgbW9kdWxlS2V5LCBzb3VyY2VDb2RlLCBkZWNsYXJlZFZhcmlhYmxlcywg
bGV4aWNhbFZhcmlhYmxlcykKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgbW9kdWxlS2V5KQor
ICAgICwgbV9zb3VyY2VDb2RlKHNvdXJjZUNvZGUpCisgICAgLCBtX2RlY2xhcmVkVmFyaWFibGVz
KGRlY2xhcmVkVmFyaWFibGVzKQorICAgICwgbV9sZXhpY2FsVmFyaWFibGVzKGxleGljYWxWYXJp
YWJsZXMpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTW9kdWxlUmVjb3JkLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVs
ZVJlY29yZC5oCmluZGV4IGFmMDE2MWM2MDViODJjMmViNzlkZjgyNjRiZDY5MGQ3M2EzODg5M2Yu
LjllNjliMGZlNTdmZDM3NGRjNDEyZjg0ZThmMTNkMjJmYjViN2FjMzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaApAQCAtNTEsNiArNTEsMTAg
QEAgY2xhc3MgSlNNb2R1bGVSZWNvcmQgOiBwdWJsaWMgQWJzdHJhY3RNb2R1bGVSZWNvcmQgewog
ICAgIHZvaWQgbGluayhFeGVjU3RhdGUqKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBKU1ZhbHVl
IGV2YWx1YXRlKEV4ZWNTdGF0ZSopOwogCisgICAgY29uc3QgU291cmNlQ29kZSYgc291cmNlQ29k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlQ29kZTsgfQorICAgIGNvbnN0IFZhcmlhYmxlRW52
aXJvbm1lbnQmIGRlY2xhcmVkVmFyaWFibGVzKCkgY29uc3QgeyByZXR1cm4gbV9kZWNsYXJlZFZh
cmlhYmxlczsgfQorICAgIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQmIGxleGljYWxWYXJpYWJs
ZXMoKSBjb25zdCB7IHJldHVybiBtX2xleGljYWxWYXJpYWJsZXM7IH0KKwogICAgIE1vZHVsZVBy
b2dyYW1FeGVjdXRhYmxlKiBtb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSgpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUuZ2V0KCk7IH0KIAogcHJpdmF0ZToKQEAgLTYzLDYg
KzY3LDkgQEAgY2xhc3MgSlNNb2R1bGVSZWNvcmQgOiBwdWJsaWMgQWJzdHJhY3RNb2R1bGVSZWNv
cmQgewogCiAgICAgdm9pZCBpbnN0YW50aWF0ZURlY2xhcmF0aW9ucyhFeGVjU3RhdGUqLCBNb2R1
bGVQcm9ncmFtRXhlY3V0YWJsZSopOwogCisgICAgU291cmNlQ29kZSBtX3NvdXJjZUNvZGU7Cisg
ICAgVmFyaWFibGVFbnZpcm9ubWVudCBtX2RlY2xhcmVkVmFyaWFibGVzOworICAgIFZhcmlhYmxl
RW52aXJvbm1lbnQgbV9sZXhpY2FsVmFyaWFibGVzOwogICAgIFdyaXRlQmFycmllcjxNb2R1bGVQ
cm9ncmFtRXhlY3V0YWJsZT4gbV9tb2R1bGVQcm9ncmFtRXhlY3V0YWJsZTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5jcHAKaW5kZXggYmY4ZTM1NjM0Y2FiMDE1
ZDJiZWVmYjI1NWYzNmJmY2Y0NWFjMzJiYy4uMjBjOWUzZDNlOTMyYzBjM2ZhZDhmNDAxMTI3ZWI0
M2VlM2VlNmFiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZv
cm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5jcHAK
QEAgLTMxLDYgKzMxLDExIEBACiAKICNpbmNsdWRlICJXYXNtTWVtb3J5LmgiCiAKKyNpZiBDT01Q
SUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNo
CisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLXR5cGUiCisjZW5kaWYg
Ly8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKwogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBXYXNtIHsKIAogY29uc3QgY2hhciogdG9TdHJpbmcoVHlwZSB0eXBlKQpAQCAtNTMs
NCArNTgsOCBAQCBNb2R1bGVJbmZvcm1hdGlvbjo6fk1vZHVsZUluZm9ybWF0aW9uKCkgeyB9CiAK
IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKKyNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VS
VF9ESVNBQkxFRAorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyNlbmRpZiAvLyBDT01QSUxF
UihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJs
eUluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1i
bHlJbnN0YW5jZS5jcHAKaW5kZXggY2UzZmRjN2U4MzQ1MTBiMTQzZWQwNjk0MDRkNDg2M2ViM2U1
YTA0OC4uMGFkMjAxOTY2ODMzZmY5N2VkYWVlMDAyNDZjMmU2NmU5YTA1NjlhOCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFu
Y2UuY3BwCkBAIC01NiwxMCArNTYsMTAgQEAgSlNXZWJBc3NlbWJseUluc3RhbmNlOjpKU1dlYkFz
c2VtYmx5SW5zdGFuY2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHZvaWQgSlNXZWJB
c3NlbWJseUluc3RhbmNlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTV2ViQXNzZW1ibHlNb2R1
bGUqIG1vZHVsZSwgSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QqIG1vZHVsZU5hbWVzcGFjZU9iamVj
dCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgQVNTRVJUKGluaGVyaXRz
KGluZm8oKSkpOwogICAgIG1fbW9kdWxlLnNldCh2bSwgdGhpcywgbW9kdWxlKTsKICAgICBtX21v
ZHVsZU5hbWVzcGFjZU9iamVjdC5zZXQodm0sIHRoaXMsIG1vZHVsZU5hbWVzcGFjZU9iamVjdCk7
Ci0gICAgLy8gRklYTUUgdGhpcyBzaG91bGQgcHV0IHRoZSBtb2R1bGUgbmFtZXNwYWNlIG9iamVj
dCBvbnRvIHRoZSBleHBvcnRzIG9iamVjdCwgaW5zdGVhZCBvZiBtb2R1bGVFbnZpcm9ubWVudCBp
biBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjUxMjEKLSAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Cisg
ICAgcHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImV4cG9ydHMiKSwg
bW9kdWxlTmFtZXNwYWNlT2JqZWN0LCBOb25lKTsKIH0KIAogdm9pZCBKU1dlYkFzc2VtYmx5SW5z
dGFuY2U6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcAppbmRleCA5ZmY2YzJhNTkyZDBm
ZDI5NDA4NDZhMmYwY2NmZGUxNDdkMjhlYzYxLi5jNWMxMGZmNjY2M2RlMGM5ZjUxZWY4MDI4MWIw
MTNmMTQ5NzRjMTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIkpT
RnVuY3Rpb25JbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJKU1dl
YkFzc2VtYmx5SW5zdGFuY2UuaCIKLSNpbmNsdWRlICJMTGludFRodW5rcy5oIgorI2luY2x1ZGUg
IkxMSW50VGh1bmtzLmgiCiAjaW5jbHVkZSAiUHJvdG9DYWxsRnJhbWUuaCIKICNpbmNsdWRlICJW
TS5oIgogI2luY2x1ZGUgIldhc21Gb3JtYXQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDg4Y2Y5NzNlM2U4OTllOTAzNzVlMDM1YTc2M2IyMzhhNmE5YzhiYzQuLjI5NTJk
ZDBjYzEzMzE1YzkyODQ5ZTFmZjNmMjY2NzM3MTk3NmQ0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNv
bnN0cnVjdG9yLmNwcApAQCAtNzIsMTAgKzcyLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJseUluc3RhbmNlKEV4ZWNTdGF0ZSogc3QK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihzdGF0ZSwgc2Nv
cGUsIGNyZWF0ZVR5cGVFcnJvcihzdGF0ZSwgQVNDSUlMaXRlcmFsKCJzZWNvbmQgYXJndW1lbnQg
dG8gV2ViQXNzZW1ibHkuSW5zdGFuY2UgbXVzdCBiZSBPYmplY3QgYmVjYXVzZSB0aGUgV2ViQXNz
ZW1ibHkuTW9kdWxlIGhhcyBpbXBvcnRzIiksIGRlZmF1bHRTb3VyY2VBcHBlbmRlciwgcnVudGlt
ZVR5cGVGb3JWYWx1ZShpbXBvcnRBcmd1bWVudCkpKSk7CiAKICAgICBJZGVudGlmaWVyIG1vZHVs
ZUtleSA9IElkZW50aWZpZXI6OmZyb21VaWQoUHJpdmF0ZU5hbWUoUHJpdmF0ZU5hbWU6OkRlc2Ny
aXB0aW9uLCAiV2ViQXNzZW1ibHlJbnN0YW5jZSIpKTsKLSAgICBTb3VyY2VDb2RlIHNvdXJjZUNv
ZGU7Ci0gICAgVmFyaWFibGVFbnZpcm9ubWVudCBkZWNsYXJlZFZhcmlhYmxlczsKLSAgICBWYXJp
YWJsZUVudmlyb25tZW50IGxleGljYWxWYXJpYWJsZXM7Ci0gICAgV2ViQXNzZW1ibHlNb2R1bGVS
ZWNvcmQqIG1vZHVsZVJlY29yZCA9IFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjpjcmVhdGUoc3Rh
dGUsIHZtLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5TW9kdWxlUmVjb3JkU3RydWN0dXJlKCks
IG1vZHVsZUtleSwgc291cmNlQ29kZSwgZGVjbGFyZWRWYXJpYWJsZXMsIGxleGljYWxWYXJpYWJs
ZXMpOworICAgIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQgPSBXZWJBc3Nl
bWJseU1vZHVsZVJlY29yZDo6Y3JlYXRlKHN0YXRlLCB2bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3Nl
bWJseU1vZHVsZVJlY29yZFN0cnVjdHVyZSgpLCBtb2R1bGVLZXksIG1vZHVsZUluZm9ybWF0aW9u
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAog
ICAgIFN0cnVjdHVyZSogaW5zdGFuY2VTdHJ1Y3R1cmUgPSBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVh
dGVTdWJjbGFzc1N0cnVjdHVyZShzdGF0ZSwgc3RhdGUtPm5ld1RhcmdldCgpLCBnbG9iYWxPYmpl
Y3QtPldlYkFzc2VtYmx5SW5zdGFuY2VTdHJ1Y3R1cmUoKSk7CkBAIC04OCw4ICs4NSw2IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZShFeGVjU3RhdGUqIHN0CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5j
b2RlZEpTVmFsdWUoKSk7CiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIG1vZHVsZVJlY29yZC0+
ZHVtcCgpOwotICAgIC8vIEZJWE1FIHRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIGluIEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZSBpbnN0ZWFkIG9mIGhlcmUuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjUxMjEKLSAgICBpbnN0YW5jZS0+cHV0RGlyZWN0KHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKCZ2bSwgImV4cG9ydHMiKSwgSlNWYWx1ZShtb2R1bGVSZWNvcmQtPm1v
ZHVsZUVudmlyb25tZW50KCkpLCBOb25lKTsKICAgICBKU1ZhbHVlIHN0YXJ0UmVzdWx0ID0gbW9k
dWxlUmVjb3JkLT5ldmFsdWF0ZShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXJ0UmVzdWx0
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxl
UmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9k
dWxlUmVjb3JkLmNwcAppbmRleCBkYWI1YjgyYTJkMzkyMDAzMjE1N2RkOGZjMDNmNTA1ZTBlZWQ4
NDUwLi5hOGI3ZjAzMWFiMDVhNmFjZWJmYWRiMGFiMmU1MDhiZTkwNDY3MmU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVS
ZWNvcmQuY3BwCkBAIC00NiwxNSArNDYsMTUgQEAgU3RydWN0dXJlKiBXZWJBc3NlbWJseU1vZHVs
ZVJlY29yZDo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2IKICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKLVdlYkFz
c2VtYmx5TW9kdWxlUmVjb3JkKiBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6Y3JlYXRlKEV4ZWNT
dGF0ZSogZXhlYywgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmll
ciYgbW9kdWxlS2V5LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBjb25zdCBWYXJpYWJs
ZUVudmlyb25tZW50JiBkZWNsYXJlZFZhcmlhYmxlcywgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVu
dCYgbGV4aWNhbFZhcmlhYmxlcykKK1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkKiBXZWJBc3NlbWJs
eU1vZHVsZVJlY29yZDo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgbW9kdWxlS2V5LCBjb25zdCBXYXNtOjpNb2R1
bGVJbmZvcm1hdGlvbiYgbW9kdWxlSW5mb3JtYXRpb24pCiB7Ci0gICAgV2ViQXNzZW1ibHlNb2R1
bGVSZWNvcmQqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8V2ViQXNzZW1i
bHlNb2R1bGVSZWNvcmQ+KHZtLmhlYXApKSBXZWJBc3NlbWJseU1vZHVsZVJlY29yZCh2bSwgc3Ry
dWN0dXJlLCBtb2R1bGVLZXksIHNvdXJjZUNvZGUsIGRlY2xhcmVkVmFyaWFibGVzLCBsZXhpY2Fs
VmFyaWFibGVzKTsKLSAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24oZXhlYywgdm0pOworICAg
IFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkKiBpbnN0YW5jZSA9IG5ldyAoTm90TnVsbCwgYWxsb2Nh
dGVDZWxsPFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkPih2bS5oZWFwKSkgV2ViQXNzZW1ibHlNb2R1
bGVSZWNvcmQodm0sIHN0cnVjdHVyZSwgbW9kdWxlS2V5KTsKKyAgICBpbnN0YW5jZS0+ZmluaXNo
Q3JlYXRpb24oZXhlYywgdm0sIG1vZHVsZUluZm9ybWF0aW9uKTsKICAgICByZXR1cm4gaW5zdGFu
Y2U7CiB9CiAKLVdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjpXZWJBc3NlbWJseU1vZHVsZVJlY29y
ZChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVL
ZXksIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1l
bnQmIGRlY2xhcmVkVmFyaWFibGVzLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50JiBsZXhpY2Fs
VmFyaWFibGVzKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBtb2R1bGVLZXksIHNvdXJjZUNv
ZGUsIGRlY2xhcmVkVmFyaWFibGVzLCBsZXhpY2FsVmFyaWFibGVzKQorV2ViQXNzZW1ibHlNb2R1
bGVSZWNvcmQ6OldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIG1vZHVsZUtleSkKKyAgICA6IEJhc2Uodm0sIHN0cnVj
dHVyZSwgbW9kdWxlS2V5KQogewogfQogCkBAIC02NCwxMCArNjQsMTIgQEAgdm9pZCBXZWJBc3Nl
bWJseU1vZHVsZVJlY29yZDo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiAgICAgdGhpc09iamVjdC0+
V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6On5XZWJBc3NlbWJseU1vZHVsZVJlY29yZCgpOwogfQog
Ci12b2lkIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUq
IGV4ZWMsIFZNJiB2bSkKK3ZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmZpbmlzaENyZWF0
aW9uKEV4ZWNTdGF0ZSogZXhlYywgVk0mIHZtLCBjb25zdCBXYXNtOjpNb2R1bGVJbmZvcm1hdGlv
biYgbW9kdWxlSW5mb3JtYXRpb24pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZXhlYywg
dm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8m
IGV4cCA6IG1vZHVsZUluZm9ybWF0aW9uLmV4cG9ydHMpCisgICAgICAgIGFkZEV4cG9ydEVudHJ5
KEV4cG9ydEVudHJ5OjpjcmVhdGVMb2NhbChleHAuZmllbGQsIGV4cC5maWVsZCkpOwogfQogCiB2
b2lkIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuaAppbmRleCBhYWIzNTNhZWQyY2FjNzc0
ODI0ZjRhYTFlNjdmYzY1MjNkOTUyZmIxLi5hMDJmOWVkNTcxMmYwNDFkYzdjOWQ5Mjg0Y2JkYjk1
NzFiM2E3MjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseU1vZHVsZVJlY29yZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCiAKICNpbmNsdWRlICJBYnN0cmFjdE1vZHVsZVJlY29yZC5oIgorI2luY2x1
ZGUgIldhc21Gb3JtYXQuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTQzLDE1ICs0NCwxNSBA
QCBjbGFzcyBXZWJBc3NlbWJseU1vZHVsZVJlY29yZCA6IHB1YmxpYyBBYnN0cmFjdE1vZHVsZVJl
Y29yZCB7CiAgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7Ci0gICAgc3Rh
dGljIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkKiBjcmVhdGUoRXhlY1N0YXRlKiwgVk0mLCBTdHJ1
Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgU291cmNlQ29kZSYsIGNvbnN0IFZhcmlh
YmxlRW52aXJvbm1lbnQmLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Jik7CisgICAgc3RhdGlj
IFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkKiBjcmVhdGUoRXhlY1N0YXRlKiwgVk0mLCBTdHJ1Y3R1
cmUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgV2FzbTo6TW9kdWxlSW5mb3JtYXRpb24mKTsK
IAogICAgIHZvaWQgbGluayhFeGVjU3RhdGUqLCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqKTsKICAg
ICBKU19FWFBPUlRfUFJJVkFURSBKU1ZhbHVlIGV2YWx1YXRlKEV4ZWNTdGF0ZSopOwogCiBwcml2
YXRlOgotICAgIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkKFZNJiwgU3RydWN0dXJlKiwgY29uc3Qg
SWRlbnRpZmllciYsIGNvbnN0IFNvdXJjZUNvZGUmLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50
JiwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCYpOworICAgIFdlYkFzc2VtYmx5TW9kdWxlUmVj
b3JkKFZNJiwgU3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYpOwogCi0gICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihFeGVjU3RhdGUqLCBWTSYpOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhl
Y1N0YXRlKiwgVk0mLCBjb25zdCBXYXNtOjpNb2R1bGVJbmZvcm1hdGlvbiYpOwogICAgIHN0YXRp
YyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVu
KEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295709</attachid>
            <date>2016-11-30 02:18:56 -0800</date>
            <delta_ts>2016-11-30 19:31:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165121-20161130191829.patch</filename>
            <type>text/plain</type>
            <size>18191</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5MTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
OTY3ZjgwODc3NWJlYjcxMGE3ZGFhYjE4ZjgyYmYxNWI0ZDU2Zjc1Li5jOGRhNDdiMzFlNGJjZDcz
ZTYyY2RhZDczYWI1Y2FjZTY3ODVhZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAxNi0xMS0zMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBXZWJBc3NlbWJseSBKUyBBUEk6IGV4cG9ydCBhIG1vZHVsZSBuYW1l
c3BhY2Ugb2JqZWN0IGluc3RlYWQgb2YgYSBtb2R1bGUgZW52aXJvbm1lbnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTEyMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggc2V0dXAgQWJz
dHJhY3RNb2R1bGVSZWNvcmQgZnVydGhlciBmb3IgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuCisg
ICAgICAgIEZvciBleHBvcnRlZCBlbnRyaWVzIGluIGEgd2FzbSBpbnN0YW5jZSwgd2Ugc2V0IHVw
IGV4cG9ydGVkIGVudHJpZXMgZm9yCisgICAgICAgIEFic3RyYWN0TW9kdWxlUmVjb3JkLiBUaGlz
IGFsbG93cyB1cyB0byBleHBvcnQgV0FTTSBleHBvcnRlZCBmdW5jdGlvbnMgaW4KKyAgICAgICAg
dGhlIG1vZHVsZSBoYW5kbGluZyBjb2RlLgorCisgICAgICAgIFNpbmNlIHRoZSBleHBvcnRlZCBl
bnRyaWVzIGluIHRoZSBhYnN0cmFjdCBtb2R1bGUgcmVjb3JkIGFyZSBjb3JyZWN0bHkKKyAgICAg
ICAgaW5zdGFudGlhdGVkLCB0aGUgbW9kdWxlIG5hbWVzcGFjZSBvYmplY3QgZm9yIFdBU00gbW9k
dWxlIGFsc28gc3RhcnRzCisgICAgICAgIHdvcmtpbmcgY29ycmVjdGx5LiBTbyB3ZSBzdGFydCBl
eHBvc2luZyB0aGUgbW9kdWxlIG5hbWVzcGFjZSBvYmplY3QKKyAgICAgICAgYXMgYGluc3RhbmNl
LmV4cG9ydHNgIGluc3RlYWQgb2YgdGhlIG1vZHVsZSBlbnZpcm9ubWVudCBvYmplY3QuCisKKyAg
ICAgICAgQW5kIHdlIG1vdmUgU291cmNlQ29kZSwgbGV4aWNhbFZhcmlhYmxlcywgYW5kIGRlY2xh
cmVkVmFyaWFibGVzIGZpZWxkcyB0bworICAgICAgICBKU01vZHVsZVJlY29yZCBzaW5jZSB0aGV5
IGFyZSByZWxhdGVkIHRvIEpTIHNvdXJjZSBjb2RlIChpbiB0aGUgc3BlYyB3b3JkcywKKyAgICAg
ICAgdGhleSBhcmUgcmVsYXRlZCB0byB0aGUgc291cmNlIHRleHQgbW9kdWxlIHJlY29yZCkuCisK
KyAgICAgICAgKiBydW50aW1lL0Fic3RyYWN0TW9kdWxlUmVjb3JkLmNwcDoKKyAgICAgICAgKEpT
Qzo6QWJzdHJhY3RNb2R1bGVSZWNvcmQ6OkFic3RyYWN0TW9kdWxlUmVjb3JkKToKKyAgICAgICAg
KiBydW50aW1lL0Fic3RyYWN0TW9kdWxlUmVjb3JkLmg6CisgICAgICAgIChKU0M6OkFic3RyYWN0
TW9kdWxlUmVjb3JkOjpzb3VyY2VDb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QWJzdHJh
Y3RNb2R1bGVSZWNvcmQ6OmRlY2xhcmVkVmFyaWFibGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6QWJzdHJhY3RNb2R1bGVSZWNvcmQ6OmxleGljYWxWYXJpYWJsZXMpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVSZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpKU01vZHVs
ZVJlY29yZDo6SlNNb2R1bGVSZWNvcmQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVSZWNv
cmQuaDoKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVSZWNvcmQ6OnNvdXJjZUNvZGUpOgorICAgICAg
ICAoSlNDOjpKU01vZHVsZVJlY29yZDo6ZGVjbGFyZWRWYXJpYWJsZXMpOgorICAgICAgICAoSlND
OjpKU01vZHVsZVJlY29yZDo6bGV4aWNhbFZhcmlhYmxlcyk6CisgICAgICAgICogd2FzbS9XYXNt
Rm9ybWF0LmNwcDoKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHA6
CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6ZmluaXNoQ3JlYXRpb24pOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHA6CisgICAgICAgICogd2Fz
bS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpj
b25zdHJ1Y3RKU1dlYkFzc2VtYmx5SW5zdGFuY2UpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNz
ZW1ibHlNb2R1bGVSZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZVJl
Y29yZDo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6Oldl
YkFzc2VtYmx5TW9kdWxlUmVjb3JkKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNb2R1bGVS
ZWNvcmQ6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6
Omxpbmsgc2hvdWxkIHBlcmZvcm0gbGlua2luZyB0aGluZ3MuCisgICAgICAgIFNvIGFsbG9jYXRp
bmcgZXhwb3J0ZWQgZW50cmllcyBzaG91bGQgYmUgZG9uZSBoZXJlLgorICAgICAgICAoSlNDOjpX
ZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6bGluayk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3Nl
bWJseU1vZHVsZVJlY29yZC5oOgorCiAyMDE2LTExLTI5ICBKRiBCYXN0aWVuICA8amZiYXN0aWVu
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJBc3NlbWJseSBKUyBBUEk6IGltcHJvdmUgSW5zdGFu
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fic3RyYWN0TW9k
dWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fic3RyYWN0TW9k
dWxlUmVjb3JkLmNwcAppbmRleCBhNWJlNjA0OGRjOGZhM2JhMzk5MWE2Y2YyNWRiZGQyOWM3NmUz
Mjk0Li5lYmU1ZjVkNThiYzdlNTE4NjhmZTY4NzZiNzE2NGQwNWFmODBmOTZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BYnN0cmFjdE1vZHVsZVJlY29yZC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWJzdHJhY3RNb2R1bGVSZWNvcmQu
Y3BwCkBAIC0zOCwxMiArMzgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZv
IEFic3RyYWN0TW9kdWxlUmVjb3JkOjpzX2luZm8gPSB7ICJBYnN0cmFjdE1vZHVsZVJlY29yZCIs
ICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoQWJzdHJhY3RNb2R1bGVSZWNv
cmQpIH07CiAKLUFic3RyYWN0TW9kdWxlUmVjb3JkOjpBYnN0cmFjdE1vZHVsZVJlY29yZChWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVLZXksIGNv
bnN0IFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQmIGRl
Y2xhcmVkVmFyaWFibGVzLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50JiBsZXhpY2FsVmFyaWFi
bGVzKQorQWJzdHJhY3RNb2R1bGVSZWNvcmQ6OkFic3RyYWN0TW9kdWxlUmVjb3JkKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIG1vZHVsZUtleSkKICAgICA6
IEJhc2Uodm0sIHN0cnVjdHVyZSkKICAgICAsIG1fbW9kdWxlS2V5KG1vZHVsZUtleSkKLSAgICAs
IG1fc291cmNlQ29kZShzb3VyY2VDb2RlKQotICAgICwgbV9kZWNsYXJlZFZhcmlhYmxlcyhkZWNs
YXJlZFZhcmlhYmxlcykKLSAgICAsIG1fbGV4aWNhbFZhcmlhYmxlcyhsZXhpY2FsVmFyaWFibGVz
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BYnN0
cmFjdE1vZHVsZVJlY29yZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWJzdHJh
Y3RNb2R1bGVSZWNvcmQuaAppbmRleCBlYzY5OTJkYmMwMmJmZjQyY2ViZmExM2FjOGQ0ODY5Mjc5
ODUwOTUyLi4wNGFmMTI2MWE4OTkyZjRkZjg5MDQ5NjcyNGNhYmY2MjQzZWQ5ZTViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BYnN0cmFjdE1vZHVsZVJlY29yZC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fic3RyYWN0TW9kdWxlUmVjb3Jk
LmgKQEAgLTg4LDE2ICs4OCwxMiBAQCBjbGFzcyBBYnN0cmFjdE1vZHVsZVJlY29yZCA6IHB1Ymxp
YyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAgICAgc3RkOjpvcHRpb25hbDxJbXBvcnRFbnRyeT4g
dHJ5R2V0SW1wb3J0RW50cnkoVW5pcXVlZFN0cmluZ0ltcGwqIGxvY2FsTmFtZSk7CiAgICAgc3Rk
OjpvcHRpb25hbDxFeHBvcnRFbnRyeT4gdHJ5R2V0RXhwb3J0RW50cnkoVW5pcXVlZFN0cmluZ0lt
cGwqIGV4cG9ydE5hbWUpOwogCi0gICAgY29uc3QgU291cmNlQ29kZSYgc291cmNlQ29kZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc291cmNlQ29kZTsgfQogICAgIGNvbnN0IElkZW50aWZpZXImIG1vZHVs
ZUtleSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlS2V5OyB9CiAgICAgY29uc3QgT3JkZXJlZElk
ZW50aWZpZXJTZXQmIHJlcXVlc3RlZE1vZHVsZXMoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3Rl
ZE1vZHVsZXM7IH0KICAgICBjb25zdCBFeHBvcnRFbnRyaWVzJiBleHBvcnRFbnRyaWVzKCkgY29u
c3QgeyByZXR1cm4gbV9leHBvcnRFbnRyaWVzOyB9CiAgICAgY29uc3QgSW1wb3J0RW50cmllcyYg
aW1wb3J0RW50cmllcygpIGNvbnN0IHsgcmV0dXJuIG1faW1wb3J0RW50cmllczsgfQogICAgIGNv
bnN0IE9yZGVyZWRJZGVudGlmaWVyU2V0JiBzdGFyRXhwb3J0RW50cmllcygpIGNvbnN0IHsgcmV0
dXJuIG1fc3RhckV4cG9ydEVudHJpZXM7IH0KIAotICAgIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1l
bnQmIGRlY2xhcmVkVmFyaWFibGVzKCkgY29uc3QgeyByZXR1cm4gbV9kZWNsYXJlZFZhcmlhYmxl
czsgfQotICAgIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQmIGxleGljYWxWYXJpYWJsZXMoKSBj
b25zdCB7IHJldHVybiBtX2xleGljYWxWYXJpYWJsZXM7IH0KLQogICAgIHZvaWQgZHVtcCgpOwog
CiAgICAgc3RydWN0IFJlc29sdXRpb24gewpAQCAtMTI2LDcgKzEyMiw3IEBAIGNsYXNzIEFic3Ry
YWN0TW9kdWxlUmVjb3JkIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKICAgICB9CiAK
IHByb3RlY3RlZDoKLSAgICBBYnN0cmFjdE1vZHVsZVJlY29yZChWTSYsIFN0cnVjdHVyZSosIGNv
bnN0IElkZW50aWZpZXImLCBjb25zdCBTb3VyY2VDb2RlJiwgY29uc3QgVmFyaWFibGVFbnZpcm9u
bWVudCYsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQmKTsKKyAgICBBYnN0cmFjdE1vZHVsZVJl
Y29yZChWTSYsIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXImKTsKICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEV4ZWNTdGF0ZSosIFZNJik7CiAKICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxk
cmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CkBAIC0xNDMsMTEgKzEzOSw2IEBAIGNsYXNzIEFi
c3RyYWN0TW9kdWxlUmVjb3JkIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKICAgICAv
LyBUaGUgbG9hZGVyIHJlc29sdmVzIHRoZSBnaXZlbiBtb2R1bGUgbmFtZSB0byB0aGUgbW9kdWxl
IGtleS4gVGhlIG1vZHVsZSBrZXkgaXMgdGhlIHVuaXF1ZSB2YWx1ZSB0byByZXByZXNlbnQgdGhp
cyBtb2R1bGUuCiAgICAgSWRlbnRpZmllciBtX21vZHVsZUtleTsKIAotICAgIFNvdXJjZUNvZGUg
bV9zb3VyY2VDb2RlOwotCi0gICAgVmFyaWFibGVFbnZpcm9ubWVudCBtX2RlY2xhcmVkVmFyaWFi
bGVzOwotICAgIFZhcmlhYmxlRW52aXJvbm1lbnQgbV9sZXhpY2FsVmFyaWFibGVzOwotCiAgICAg
Ly8gQ3VycmVudGx5LCB3ZSBkb24ndCBrZWVwIHRoZSBvY2N1cnJlbmNlIG9yZGVyIG9mIHRoZSBp
bXBvcnQgLyBleHBvcnQgZW50cmllcy4KICAgICAvLyBTbywgd2UgZG9lcyBub3QgZ3VhcmFudGVl
IHRoZSBvcmRlciBvZiB0aGUgZXJyb3JzLgogICAgIC8vIGUuZy4gVGhlIGltcG9ydCBkZWNsYXJh
dGlvbiB0aGF0IG9jY3VyciBsYXRlciB0aGFuIHRoZSBhbm90aGVyIGltcG9ydCBkZWNsYXJhdGlv
biBtYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxl
UmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3Jk
LmNwcAppbmRleCBjMmU2MTU2MzgwNTY1MmJlMWFjMzM1N2MwMzQ4ODg0NTg4YWFiMzVlLi40MDgx
OWQ3NTM0OWRmYWVkMDM5M2I1MDZlODVkMGQyNDI1YTc2NDM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuY3BwCkBAIC01MCw3ICs1MCwxMCBA
QCBKU01vZHVsZVJlY29yZCogSlNNb2R1bGVSZWNvcmQ6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1YwogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIEpTTW9k
dWxlUmVjb3JkOjpKU01vZHVsZVJlY29yZChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBj
b25zdCBJZGVudGlmaWVyJiBtb2R1bGVLZXksIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUs
IGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQmIGRlY2xhcmVkVmFyaWFibGVzLCBjb25zdCBWYXJp
YWJsZUVudmlyb25tZW50JiBsZXhpY2FsVmFyaWFibGVzKQotICAgIDogQmFzZSh2bSwgc3RydWN0
dXJlLCBtb2R1bGVLZXksIHNvdXJjZUNvZGUsIGRlY2xhcmVkVmFyaWFibGVzLCBsZXhpY2FsVmFy
aWFibGVzKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBtb2R1bGVLZXkpCisgICAgLCBtX3Nv
dXJjZUNvZGUoc291cmNlQ29kZSkKKyAgICAsIG1fZGVjbGFyZWRWYXJpYWJsZXMoZGVjbGFyZWRW
YXJpYWJsZXMpCisgICAgLCBtX2xleGljYWxWYXJpYWJsZXMobGV4aWNhbFZhcmlhYmxlcykKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVS
ZWNvcmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmgK
aW5kZXggYWYwMTYxYzYwNWI4MmMyZWI3OWRmODI2NGJkNjkwZDczYTM4ODkzZi4uOWU2OWIwZmU1
N2ZkMzc0ZGM0MTJmODRlOGYxM2QyMmZiNWI3YWMzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5oCkBAIC01MSw2ICs1MSwxMCBAQCBjbGFzcyBK
U01vZHVsZVJlY29yZCA6IHB1YmxpYyBBYnN0cmFjdE1vZHVsZVJlY29yZCB7CiAgICAgdm9pZCBs
aW5rKEV4ZWNTdGF0ZSopOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIEpTVmFsdWUgZXZhbHVhdGUo
RXhlY1N0YXRlKik7CiAKKyAgICBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2VDb2RlOyB9CisgICAgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCYg
ZGVjbGFyZWRWYXJpYWJsZXMoKSBjb25zdCB7IHJldHVybiBtX2RlY2xhcmVkVmFyaWFibGVzOyB9
CisgICAgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCYgbGV4aWNhbFZhcmlhYmxlcygpIGNvbnN0
IHsgcmV0dXJuIG1fbGV4aWNhbFZhcmlhYmxlczsgfQorCiAgICAgTW9kdWxlUHJvZ3JhbUV4ZWN1
dGFibGUqIG1vZHVsZVByb2dyYW1FeGVjdXRhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVQ
cm9ncmFtRXhlY3V0YWJsZS5nZXQoKTsgfQogCiBwcml2YXRlOgpAQCAtNjMsNiArNjcsOSBAQCBj
bGFzcyBKU01vZHVsZVJlY29yZCA6IHB1YmxpYyBBYnN0cmFjdE1vZHVsZVJlY29yZCB7CiAKICAg
ICB2b2lkIGluc3RhbnRpYXRlRGVjbGFyYXRpb25zKEV4ZWNTdGF0ZSosIE1vZHVsZVByb2dyYW1F
eGVjdXRhYmxlKik7CiAKKyAgICBTb3VyY2VDb2RlIG1fc291cmNlQ29kZTsKKyAgICBWYXJpYWJs
ZUVudmlyb25tZW50IG1fZGVjbGFyZWRWYXJpYWJsZXM7CisgICAgVmFyaWFibGVFbnZpcm9ubWVu
dCBtX2xleGljYWxWYXJpYWJsZXM7CiAgICAgV3JpdGVCYXJyaWVyPE1vZHVsZVByb2dyYW1FeGVj
dXRhYmxlPiBtX21vZHVsZVByb2dyYW1FeGVjdXRhYmxlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtRm9ybWF0LmNwcAppbmRleCBiZjhlMzU2MzRjYWIwMTVkMmJlZWZiMjU1
ZjM2YmZjZjQ1YWMzMmJjLi4yMGM5ZTNkM2U5MzJjMGMzZmFkOGY0MDExMjdlYjQzZWUzZWU2YWIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmNwcApAQCAtMzEsNiAr
MzEsMTEgQEAKIAogI2luY2x1ZGUgIldhc21NZW1vcnkuaCIKIAorI2lmIENPTVBJTEVSKEdDQykg
JiYgQVNTRVJUX0RJU0FCTEVECisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKKyNlbmRpZiAvLyBDT01QSUxF
UihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdh
c20gewogCiBjb25zdCBjaGFyKiB0b1N0cmluZyhUeXBlIHR5cGUpCkBAIC01Myw0ICs1OCw4IEBA
IE1vZHVsZUluZm9ybWF0aW9uOjp+TW9kdWxlSW5mb3JtYXRpb24oKSB7IH0KIAogfSB9IC8vIG5h
bWVzcGFjZSBKU0M6Oldhc20KIAorI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVE
CisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYg
QVNTRVJUX0RJU0FCTEVECisKICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2Uu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNl
LmNwcAppbmRleCBjZTNmZGM3ZTgzNDUxMGIxNDNlZDA2OTQwNGQ0ODYzZWIzZTVhMDQ4Li4wYWQy
MDE5NjY4MzNmZjk3ZWRhZWUwMDI0NmMyZTY2ZTlhMDU2OWE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAKQEAg
LTU2LDEwICs1NiwxMCBAQCBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OkpTV2ViQXNzZW1ibHlJbnN0
YW5jZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogdm9pZCBKU1dlYkFzc2VtYmx5SW5z
dGFuY2U6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNXZWJBc3NlbWJseU1vZHVsZSogbW9kdWxl
LCBKU01vZHVsZU5hbWVzcGFjZU9iamVjdCogbW9kdWxlTmFtZXNwYWNlT2JqZWN0KQogewogICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7
CiAgICAgbV9tb2R1bGUuc2V0KHZtLCB0aGlzLCBtb2R1bGUpOwogICAgIG1fbW9kdWxlTmFtZXNw
YWNlT2JqZWN0LnNldCh2bSwgdGhpcywgbW9kdWxlTmFtZXNwYWNlT2JqZWN0KTsKLSAgICAvLyBG
SVhNRSB0aGlzIHNob3VsZCBwdXQgdGhlIG1vZHVsZSBuYW1lc3BhY2Ugb2JqZWN0IG9udG8gdGhl
IGV4cG9ydHMgb2JqZWN0LCBpbnN0ZWFkIG9mIG1vZHVsZUVudmlyb25tZW50IGluIFdlYkFzc2Vt
Ymx5SW5zdGFuY2VDb25zdHJ1Y3Rvci4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NTEyMQotICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKKyAgICBwdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZXhwb3J0cyIpLCBtb2R1bGVOYW1l
c3BhY2VPYmplY3QsIE5vbmUpOwogfQogCiB2b2lkIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6ZGVz
dHJveShKU0NlbGwqIGNlbGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCmluZGV4IDlmZjZjMmE1OTJkMGZkMjk0MDg0NmEy
ZjBjY2ZkZTE0N2QyOGVjNjEuLmM1YzEwZmY2NjYzZGUwYzlmNTFlZjgwMjgxYjAxM2YxNDk3NGMx
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
RnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5RnVuY3Rpb24uY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiSlNGdW5jdGlvbklu
bGluZXMuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlJ
bnN0YW5jZS5oIgotI2luY2x1ZGUgIkxMaW50VGh1bmtzLmgiCisjaW5jbHVkZSAiTExJbnRUaHVu
a3MuaCIKICNpbmNsdWRlICJQcm90b0NhbGxGcmFtZS5oIgogI2luY2x1ZGUgIlZNLmgiCiAjaW5j
bHVkZSAiV2FzbUZvcm1hdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
ODhjZjk3M2UzZTg5OWU5MDM3NWUwMzVhNzYzYjIzOGE2YTljOGJjNC4uMjk1MmRkMGNjMTMzMTVj
OTI4NDllMWZmM2YyNjY3MzcxOTc2ZDRlOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3Iu
Y3BwCkBAIC03MiwxMCArNzIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5SW5zdGFuY2UoRXhlY1N0YXRlKiBzdAogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhjZXB0aW9uKHN0YXRlLCBzY29wZSwgY3JlYXRl
VHlwZUVycm9yKHN0YXRlLCBBU0NJSUxpdGVyYWwoInNlY29uZCBhcmd1bWVudCB0byBXZWJBc3Nl
bWJseS5JbnN0YW5jZSBtdXN0IGJlIE9iamVjdCBiZWNhdXNlIHRoZSBXZWJBc3NlbWJseS5Nb2R1
bGUgaGFzIGltcG9ydHMiKSwgZGVmYXVsdFNvdXJjZUFwcGVuZGVyLCBydW50aW1lVHlwZUZvclZh
bHVlKGltcG9ydEFyZ3VtZW50KSkpKTsKIAogICAgIElkZW50aWZpZXIgbW9kdWxlS2V5ID0gSWRl
bnRpZmllcjo6ZnJvbVVpZChQcml2YXRlTmFtZShQcml2YXRlTmFtZTo6RGVzY3JpcHRpb24sICJX
ZWJBc3NlbWJseUluc3RhbmNlIikpOwotICAgIFNvdXJjZUNvZGUgc291cmNlQ29kZTsKLSAgICBW
YXJpYWJsZUVudmlyb25tZW50IGRlY2xhcmVkVmFyaWFibGVzOwotICAgIFZhcmlhYmxlRW52aXJv
bm1lbnQgbGV4aWNhbFZhcmlhYmxlczsKLSAgICBXZWJBc3NlbWJseU1vZHVsZVJlY29yZCogbW9k
dWxlUmVjb3JkID0gV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmNyZWF0ZShzdGF0ZSwgdm0sIGds
b2JhbE9iamVjdC0+d2ViQXNzZW1ibHlNb2R1bGVSZWNvcmRTdHJ1Y3R1cmUoKSwgbW9kdWxlS2V5
LCBzb3VyY2VDb2RlLCBkZWNsYXJlZFZhcmlhYmxlcywgbGV4aWNhbFZhcmlhYmxlcyk7CisgICAg
V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCA9IFdlYkFzc2VtYmx5TW9kdWxl
UmVjb3JkOjpjcmVhdGUoc3RhdGUsIHZtLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5TW9kdWxl
UmVjb3JkU3RydWN0dXJlKCksIG1vZHVsZUtleSwgbW9kdWxlSW5mb3JtYXRpb24pOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogCiAgICAgU3RydWN0
dXJlKiBpbnN0YW5jZVN0cnVjdHVyZSA9IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNz
U3RydWN0dXJlKHN0YXRlLCBzdGF0ZS0+bmV3VGFyZ2V0KCksIGdsb2JhbE9iamVjdC0+V2ViQXNz
ZW1ibHlJbnN0YW5jZVN0cnVjdHVyZSgpKTsKQEAgLTg4LDggKzg1LDYgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJseUluc3RhbmNlKEV4
ZWNTdGF0ZSogc3QKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgbW9kdWxlUmVjb3JkLT5kdW1wKCk7Ci0g
ICAgLy8gRklYTUUgdGhlIGZvbGxvd2luZyBzaG91bGQgYmUgaW4gSlNXZWJBc3NlbWJseUluc3Rh
bmNlIGluc3RlYWQgb2YgaGVyZS4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NTEyMQotICAgIGluc3RhbmNlLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcoJnZtLCAiZXhwb3J0cyIpLCBKU1ZhbHVlKG1vZHVsZVJlY29yZC0+bW9kdWxlRW52aXJv
bm1lbnQoKSksIE5vbmUpOwogICAgIEpTVmFsdWUgc3RhcnRSZXN1bHQgPSBtb2R1bGVSZWNvcmQt
PmV2YWx1YXRlKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0oc3RhcnRSZXN1bHQpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQu
Y3BwCmluZGV4IGRhYjViODJhMmQzOTIwMDMyMTU3ZGQ4ZmMwM2Y1MDVlMGVlZDg0NTAuLmE2MThl
MDVlZmMzY2Q0ZjkzZmFjZTJlNzM2MzAyZmQzZDIwMGQyMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAK
QEAgLTQ2LDE1ICs0NiwxNSBAQCBTdHJ1Y3R1cmUqIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjpj
cmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAotV2ViQXNzZW1ibHlNb2R1
bGVSZWNvcmQqIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVj
LCBWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVL
ZXksIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1l
bnQmIGRlY2xhcmVkVmFyaWFibGVzLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50JiBsZXhpY2Fs
VmFyaWFibGVzKQorV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQqIFdlYkFzc2VtYmx5TW9kdWxlUmVj
b3JkOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVLZXksIGNvbnN0IFdhc206Ok1vZHVsZUluZm9ybWF0
aW9uJiBtb2R1bGVJbmZvcm1hdGlvbikKIHsKLSAgICBXZWJBc3NlbWJseU1vZHVsZVJlY29yZCog
aW5zdGFuY2UgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxXZWJBc3NlbWJseU1vZHVsZVJl
Y29yZD4odm0uaGVhcCkpIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkKHZtLCBzdHJ1Y3R1cmUsIG1v
ZHVsZUtleSwgc291cmNlQ29kZSwgZGVjbGFyZWRWYXJpYWJsZXMsIGxleGljYWxWYXJpYWJsZXMp
OwotICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbihleGVjLCB2bSk7CisgICAgV2ViQXNzZW1i
bHlNb2R1bGVSZWNvcmQqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8V2Vi
QXNzZW1ibHlNb2R1bGVSZWNvcmQ+KHZtLmhlYXApKSBXZWJBc3NlbWJseU1vZHVsZVJlY29yZCh2
bSwgc3RydWN0dXJlLCBtb2R1bGVLZXkpOworICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbihl
eGVjLCB2bSwgbW9kdWxlSW5mb3JtYXRpb24pOwogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIAot
V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIG1vZHVsZUtleSwgY29uc3Qg
U291cmNlQ29kZSYgc291cmNlQ29kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCYgZGVjbGFy
ZWRWYXJpYWJsZXMsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQmIGxleGljYWxWYXJpYWJsZXMp
Ci0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIG1vZHVsZUtleSwgc291cmNlQ29kZSwgZGVjbGFy
ZWRWYXJpYWJsZXMsIGxleGljYWxWYXJpYWJsZXMpCitXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6
V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29u
c3QgSWRlbnRpZmllciYgbW9kdWxlS2V5KQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBtb2R1
bGVLZXkpCiB7CiB9CiAKQEAgLTY0LDEwICs2NCwzMSBAQCB2b2lkIFdlYkFzc2VtYmx5TW9kdWxl
UmVjb3JkOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKICAgICB0aGlzT2JqZWN0LT5XZWJBc3NlbWJs
eU1vZHVsZVJlY29yZDo6fldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkKCk7CiB9CiAKLXZvaWQgV2Vi
QXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgVk0m
IHZtKQordm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0
YXRlKiBleGVjLCBWTSYgdm0sIGNvbnN0IFdhc206Ok1vZHVsZUluZm9ybWF0aW9uJiBtb2R1bGVJ
bmZvcm1hdGlvbikKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLCB2bSk7CiAgICAg
QVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOworICAgIGZvciAoY29uc3QgYXV0byYgZXhwIDogbW9k
dWxlSW5mb3JtYXRpb24uZXhwb3J0cykgeworICAgICAgICBzd2l0Y2ggKGV4cC5raW5kKSB7Cisg
ICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWw6OkZ1bmN0aW9uOiB7CisgICAgICAgICAgICBhZGRF
eHBvcnRFbnRyeShFeHBvcnRFbnRyeTo6Y3JlYXRlTG9jYWwoZXhwLmZpZWxkLCBleHAuZmllbGQp
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgV2FzbTo6RXh0
ZXJuYWw6OlRhYmxlOiB7CisgICAgICAgICAgICAvLyBGSVhNRSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MTM1CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsOjpNZW1vcnk6IHsKKyAgICAgICAgICAgIC8v
IEZJWE1FIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQxMzQKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWw6
Okdsb2JhbDogeworICAgICAgICAgICAgLy8gRklYTUUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2NDEzMworICAgICAgICAgICAgLy8gSW4gdGhlIE1WUCwgb25seSBp
bW11dGFibGUgZ2xvYmFsIHZhcmlhYmxlcyBjYW4gYmUgZXhwb3J0ZWQuCisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQogfQogCiB2b2lkIFdlYkFzc2VtYmx5
TW9kdWxlUmVjb3JkOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCkBAIC05MiwxMSArMTEzLDggQEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6
bGluayhFeGVjU3RhdGUqIHN0YXRlLCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3QKIAogICAg
IC8vIExldCBleHBvcnRzIGJlIGEgbGlzdCBvZiAoc3RyaW5nLCBKUyB2YWx1ZSkgcGFpcnMgdGhh
dCBpcyBtYXBwZWQgZnJvbSBlYWNoIGV4dGVybmFsIHZhbHVlIGUgaW4gaW5zdGFuY2UuZXhwb3J0
cyBhcyBmb2xsb3dzOgogICAgIEpTTW9kdWxlRW52aXJvbm1lbnQqIG1vZHVsZUVudmlyb25tZW50
ID0gSlNNb2R1bGVFbnZpcm9ubWVudDo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIG51bGxwdHIs
IGV4cG9ydFN5bWJvbFRhYmxlLCBKU1ZhbHVlKCksIHRoaXMpOwotICAgIHVuc2lnbmVkIG9mZnNl
dCA9IDA7CiAgICAgZm9yIChjb25zdCBhdXRvJiBleHAgOiBtb2R1bGVJbmZvcm1hdGlvbi5leHBv
cnRzKSB7CiAgICAgICAgIEpTVmFsdWUgZXhwb3J0ZWRWYWx1ZTsKLSAgICAgICAgUHV0UHJvcGVy
dHlTbG90IHNsb3QodGhpcyk7Ci0gICAgICAgIHNsb3Quc2V0TmV3UHJvcGVydHkodGhpcywgb2Zm
c2V0KyspOwogICAgICAgICBzd2l0Y2ggKGV4cC5raW5kKSB7CiAgICAgICAgIGNhc2UgV2FzbTo6
RXh0ZXJuYWw6OkZ1bmN0aW9uOiB7CiAgICAgICAgICAgICAvLyAxLiBJZiBlIGlzIGEgY2xvc3Vy
ZSBjOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlNb2R1bGVSZWNvcmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5TW9kdWxlUmVjb3JkLmgKaW5kZXggYWFiMzUzYWVkMmNhYzc3NDgyNGY0YWExZTY3ZmM2NTIz
ZDk1MmZiMS4uYTAyZjllZDU3MTJmMDQxZGM3YzlkOTI4NGNiZGI5NTcxYjNhNzI5YyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNv
cmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVs
ZVJlY29yZC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCiAj
aW5jbHVkZSAiQWJzdHJhY3RNb2R1bGVSZWNvcmQuaCIKKyNpbmNsdWRlICJXYXNtRm9ybWF0Lmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC00MywxNSArNDQsMTUgQEAgY2xhc3MgV2ViQXNzZW1i
bHlNb2R1bGVSZWNvcmQgOiBwdWJsaWMgQWJzdHJhY3RNb2R1bGVSZWNvcmQgewogICAgIERFQ0xB
UkVfRVhQT1JUX0lORk87CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
Vk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwotICAgIHN0YXRpYyBXZWJBc3NlbWJseU1v
ZHVsZVJlY29yZCogY3JlYXRlKEV4ZWNTdGF0ZSosIFZNJiwgU3RydWN0dXJlKiwgY29uc3QgSWRl
bnRpZmllciYsIGNvbnN0IFNvdXJjZUNvZGUmLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Jiwg
Y29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCYpOworICAgIHN0YXRpYyBXZWJBc3NlbWJseU1vZHVs
ZVJlY29yZCogY3JlYXRlKEV4ZWNTdGF0ZSosIFZNJiwgU3RydWN0dXJlKiwgY29uc3QgSWRlbnRp
ZmllciYsIGNvbnN0IFdhc206Ok1vZHVsZUluZm9ybWF0aW9uJik7CiAKICAgICB2b2lkIGxpbmso
RXhlY1N0YXRlKiwgSlNXZWJBc3NlbWJseUluc3RhbmNlKik7CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgSlNWYWx1ZSBldmFsdWF0ZShFeGVjU3RhdGUqKTsKIAogcHJpdmF0ZToKLSAgICBXZWJBc3Nl
bWJseU1vZHVsZVJlY29yZChWTSYsIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXImLCBjb25z
dCBTb3VyY2VDb2RlJiwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCYsIGNvbnN0IFZhcmlhYmxl
RW52aXJvbm1lbnQmKTsKKyAgICBXZWJBc3NlbWJseU1vZHVsZVJlY29yZChWTSYsIFN0cnVjdHVy
ZSosIGNvbnN0IElkZW50aWZpZXImKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0
YXRlKiwgVk0mKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIFZNJiwgY29u
c3QgV2FzbTo6TW9kdWxlSW5mb3JtYXRpb24mKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpT
Q2VsbCopOwogCiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90Vmlz
aXRvciYpOwo=
</data>
<flag name="review"
          id="318249"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>