<?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>191252</bug_id>
          
          <creation_ts>2018-11-05 01:25:44 -0800</creation_ts>
          <short_desc>Null pointer dereference in JSC::WriteBarrierBase()</short_desc>
          <delta_ts>2018-12-15 21:49:06 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kamil Frankowicz">kamil.frankowicz</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ap</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1474989</commentid>
    <comment_count>0</comment_count>
      <attachid>353836</attachid>
    <who name="Kamil Frankowicz">kamil.frankowicz</who>
    <bug_when>2018-11-05 01:25:44 -0800</bug_when>
    <thetext>Created attachment 353836
Crashing test case (jsc)

After some fuzz testing I found a crashing test case.

Git HEAD: 43cf251237d5c47f1d0fd8978fd1254870af6721

To reproduce: jsc jsc_nullptr_WriteBarrierBase

Compiler: Clang 4.0

OS: Ubuntu 18.04 x64

ASAN:

==21789==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000018 (pc 0x7f0ed74c493e bp 0x7ffddeadda70 sp 0x7ffddeadd900 T0)
==21789==The signal is caused by a READ memory access.
==21789==Hint: address points to the zero page.
    #0 0x7f0ed74c493d in JSC::WriteBarrierBase&lt;JSC::JSFunction, WTF::DumbPtrTraits&lt;JSC::JSFunction&gt; &gt;::get() const XYZ/webkit_asan/WebKitBuild/Release/../../Source/JavaScriptCore/runtime/WriteBarrier.h:102:28
    #1 0x7f0ed74c493d in JSC::JSPromiseDeferred::reject(JSC::ExecState*, JSC::JSValue) XYZ/webkit_asan/WebKitBuild/Release/../../Source/JavaScriptCore/runtime/JSPromiseDeferred.cpp:118
    #2 0x7f0ed73d3588 in JSC::JSInternalPromiseDeferred::reject(JSC::ExecState*, JSC::JSValue) XYZ/webkit_asan/WebKitBuild/Release/../../Source/JavaScriptCore/runtime/JSInternalPromiseDeferred.cpp:71:11
    #3 0x526ef1 in GlobalObject::moduleLoaderFetch(JSC::JSGlobalObject*, JSC::ExecState*, JSC::JSModuleLoader*, JSC::JSValue, JSC::JSValue, JSC::JSValue) XYZ/webkit_asan/WebKitBuild/Release/../../Source/JavaScriptCore/jsc.cpp:1000:26
    #4 0x7f0ed73f05d6 in JSC::JSModuleLoader::fetch(JSC::ExecState*, JSC::JSValue, JSC::JSValue, JSC::JSValue) XYZ/webkit_asan/WebKitBuild/Release/../../Source/JavaScriptCore/runtime/JSModuleLoader.cpp:285:16
    #5 0x7f0ed7406103 in JSC::moduleLoaderFetch(JSC::ExecState*) XYZ/webkit_asan/WebKitBuild/Release/../../Source/JavaScriptCore/runtime/JSModuleLoader.cpp:461:36
    #6 0x7f0e8c1fe176  (&lt;unknown module&gt;)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV XYZ/webkit_asan/WebKitBuild/Release/../../Source/JavaScriptCore/runtime/WriteBarrier.h:102:28 in JSC::WriteBarrierBase&lt;JSC::JSFunction, WTF::DumbPtrTraits&lt;JSC::JSFunction&gt; &gt;::get() const
==21789==ABORTING</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475312</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-11-05 16:05:36 -0800</bug_when>
    <thetext>I could reproduce in shipping Safari/WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475313</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-05 16:06:04 -0800</bug_when>
    <thetext>&lt;rdar://problem/45824650&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475315</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-11-05 16:07:49 -0800</bug_when>
    <thetext>This looks more like a consequence of infinite recursion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475438</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-11-06 00:34:31 -0800</bug_when>
    <thetext>JSInternalPromiseDeferred::create fails if stack overflow happens. We should

1. rename it to `tryCreate`
2. and put error check after calling it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475447</commentid>
    <comment_count>5</comment_count>
      <attachid>353950</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-11-06 01:09:01 -0800</bug_when>
    <thetext>Created attachment 353950
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475449</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-11-06 01:10:22 -0800</bug_when>
    <thetext>Currently, our module mechanism leverages JS builtin code. And right now, it is not immune to the stack overflow. Let&apos;s just `RELEASE_ASSERT` instead of nullptr dereference to avoid incorrect memory loading.

With the example test case, JSC shows expected RELEASE_ASSERT crash instead of nullptr dereference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475450</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-11-06 01:13:12 -0800</bug_when>
    <thetext>Attachment 353950 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477494</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-11-11 23:58:47 -0800</bug_when>
    <thetext>Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488069</commentid>
    <comment_count>9</comment_count>
      <attachid>353950</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-12-14 15:08:05 -0800</bug_when>
    <thetext>Comment on attachment 353950
Patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488344</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-12-15 21:49:06 -0800</bug_when>
    <thetext>Committed r239256: &lt;https://trac.webkit.org/changeset/239256&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>353836</attachid>
            <date>2018-11-05 01:25:44 -0800</date>
            <delta_ts>2018-11-05 01:25:44 -0800</delta_ts>
            <desc>Crashing test case (jsc)</desc>
            <filename>jsc_nullptr_WriteBarrierBase</filename>
            <type>text/plain</type>
            <size>68</size>
            <attacher name="Kamil Frankowicz">kamil.frankowicz</attacher>
            
              <data encoding="base64">X18wXzA9e30KZnVuY3Rpb24gX19mXzAoKXt0cnl7X19mXzAoKTvffWNhdGNoe2ltcG9ydChfXzBf
MCl9fV9fZl8wKCk=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353950</attachid>
            <date>2018-11-06 01:09:01 -0800</date>
            <delta_ts>2018-12-14 15:08:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191252-20181106180900.patch</filename>
            <type>text/plain</type>
            <size>25657</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3ODQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
N2U0ODU5NGZhOTc0MTJiZDI3MDZhYTk4ZmIyZDY3NGI4YzdmM2Y1Li42ODJmYTY4MjVmYTVmYWI0
YWFiYmQyODY3NjZkYjhhZjIxYTY5YmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MyBAQAorMjAxOC0xMS0wNiAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93
c3RhcnQub3JnPgorCisgICAgICAgIE51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiBKU0M6Oldy
aXRlQmFycmllckJhc2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkxMjUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSBjYW4gcmV0dXJuIG51bGxwdHIgYW5k
IGFuIGV4Y2VwdGlvbiBpZiBzdGFjayBvdmVyZmxvdyBoYXBwZW5zLgorICAgICAgICBXZSB3b3Vs
ZCBsaWtlIHRvIG1ha2UgaXQgUkVMRUFTRV9BU1NFUlQgc2luY2UgdGhlIGN1cnJlbnQgbW9kdWxl
IG1lY2hhbmlzbSBpcyBub3QgaW1tdW5lCisgICAgICAgIHRvIHN0YWNrIG92ZXJmbG93LgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggcmVuYW1lcyBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlIHRvIEpT
UHJvbWlzZURlZmVycmVkOjp0cnlDcmVhdGUgdG8gdGVsbCB0aGF0CisgICAgICAgIGl0IGNhbiBy
ZXR1cm4gbnVsbHB0ci4gQW5kIHdlIGluc2VydCBlcnJvciBjaGVja3Mgb3IgYXNzZXJ0aW9ucyBh
ZnRlciB0aGlzIGNhbGwuCisKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoR2xvYmFsT2Jq
ZWN0Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOgorICAgICAgICAoR2xvYmFsT2JqZWN0Ojpt
b2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgICogcnVudGltZS9Db21wbGV0aW9uLmNwcDoKKyAg
ICAgICAgKEpTQzo6cmVqZWN0UHJvbWlzZSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9i
amVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNJbXBvcnRNb2R1bGUp
OgorICAgICAgICAqIHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHA6CisgICAg
ICAgIChKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OnRyeUNyZWF0ZSk6CisgICAgICAg
IChKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgICogcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg6CisgICAgICAgICogcnVu
dGltZS9KU01vZHVsZUxvYWRlci5jcHA6CisgICAgICAgIChKU0M6OkpTTW9kdWxlTG9hZGVyOjpp
bXBvcnRNb2R1bGUpOgorICAgICAgICAoSlNDOjpKU01vZHVsZUxvYWRlcjo6cmVzb2x2ZSk6Cisg
ICAgICAgIChKU0M6OkpTTW9kdWxlTG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChKU0M6Om1vZHVs
ZUxvYWRlclBhcnNlTW9kdWxlKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZS5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlRGVmZXJyZWQuY3BwOgorICAgICAgICAoSlNDOjpKU1By
b21pc2VEZWZlcnJlZDo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZURl
ZmVycmVkLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHA6Cisg
ICAgICAgIChKU0M6OndlYkFzc2VtYmx5Q29tcGlsZUZ1bmMpOgorICAgICAgICAoSlNDOjp3ZWJB
c3NlbWJseUluc3RhbnRpYXRlRnVuYyk6CisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5Q29tcGls
ZVN0cmVhbWluZ0ludGVybmFsKToKKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlJbnN0YW50aWF0
ZVN0cmVhbWluZ0ludGVybmFsKToKKwogMjAxOC0xMS0wNSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9s
bXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIEZpeCB0eXBvcyBpbiBjbG9zaW5nIEVOQUJMRSBn
dWFyZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA1NzNhNTZmZjE1ODYxMGU5ZDA4ZTYxNjg5OGMwY2JkNjU5NmZi
NDhmLi5lNGQ0YjI3Y2Q4Y2Y1NTcyNjc3NGJlMjc3MjZhMGExOWIzM2I1M2Q3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjYgQEAKKzIwMTgtMTEtMDYgIFl1c3VrZSBTdXp1a2kgIDx5dXN1a2VzdXp1
a2lAc2xvd3N0YXJ0Lm9yZz4KKworICAgICAgICBOdWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4g
SlNDOjpXcml0ZUJhcnJpZXJCYXNlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5MTI1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNDdXN0b21FbGVtZW50UmVnaXN0cnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNDdXN0b21FbGVtZW50UmVnaXN0cnk6OndoZW5EZWZpbmVkKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVEZWZlcnJlZFByb21pc2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURl
ZmVycmVkLmg6CisgICAgICAgIChXZWJDb3JlOjpEZWZlcnJlZFByb21pc2U6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjYWxsUHJvbWlzZUZ1bmN0aW9uKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dC
YXNlOjptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jh
c2U6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2Ny
aXB0TW9kdWxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxvYWRl
cjo6ZmV0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6cmVqZWN0UHJvbWlzZSk6CisKIDIwMTgtMTEt
MDUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBD
YWNoZSBnbHlwaCBwYXRocyBhbmQgc2hhcmUgdW5kZXJsaW5lIHNraXBwaW5nIGNvZGUgYmV0d2Vl
biBhbGwgdGhlIHBvcnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDU4Njg3YmRhMjU2ZjZkYWRj
MDI1YjY1NzEzMmFjMGYzNTk3MjFjMDkuLmQ4ODEzNzFlODRjNzU5ZjlmODIwOWQ1MTQ0MDA4YTVj
MmFmZDFmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC04MDQsNyArODA0LDcgQEAgSlNJbnRl
cm5hbFByb21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWwKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2
bSk7CiAKICAgICBhdXRvIHJlamVjdFByb21pc2UgPSBbJl0gKEpTVmFsdWUgZXJyb3IpIHsKLSAg
ICAgICAgcmV0dXJuIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9i
YWxPYmplY3QpLT5yZWplY3QoZXhlYywgZXJyb3IpOworICAgICAgICByZXR1cm4gSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZDo6dHJ5Q3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCktPnJlamVjdChl
eGVjLCBlcnJvcik7CiAgICAgfTsKIAogICAgIGlmIChzb3VyY2VPcmlnaW4uaXNOdWxsKCkpCkBA
IC05OTIsNyArOTkyLDggQEAgSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxl
TG9hZGVyRmV0Y2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NP
UEUodm0pOwotICAgIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgSlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkOjp0cnlDcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICBzY29wZS5yZWxlYXNlQXNz
ZXJ0Tm9FeGNlcHRpb24oKTsKICAgICBTdHJpbmcgbW9kdWxlS2V5ID0ga2V5LnRvV1RGU3RyaW5n
KGV4ZWMpOwogICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkpIHsKICAgICAgICAg
SlNWYWx1ZSBleGNlcHRpb24gPSBzY29wZS5leGNlcHRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKaW5kZXggYjE3NDdjNGQ3YWY2ZDRhMzNmYjgy
MzFkYmQ3ZjIyODY2NzA2NDI5Zi4uMTEwMmY2NmMzMjI2ZDc0NWNhZThjZmJhMjBmNmFmNDMzNzlh
YmVkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlv
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAK
QEAgLTE1NCw4ICsxNTQsMTAgQEAgc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiByZWplY3RQcm9t
aXNlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICBzY29wZS5h
c3NlcnROb0V4Y2VwdGlvbigpOwogICAgIEpTVmFsdWUgZXhjZXB0aW9uID0gc2NvcGUuZXhjZXB0
aW9uKCktPnZhbHVlKCk7CiAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKLSAgICBKU0ludGVy
bmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6
OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOworICAgIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJy
ZWQqIGRlZmVycmVkID0gSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6dHJ5Q3JlYXRlKGV4ZWMs
IGdsb2JhbE9iamVjdCk7CisgICAgc2NvcGUucmVsZWFzZUFzc2VydE5vRXhjZXB0aW9uKCk7CiAg
ICAgZGVmZXJyZWQtPnJlamVjdChleGVjLCBleGNlcHRpb24pOworICAgIHNjb3BlLnJlbGVhc2VB
c3NlcnROb0V4Y2VwdGlvbigpOwogICAgIHJldHVybiBkZWZlcnJlZC0+cHJvbWlzZSgpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdEZ1bmN0aW9ucy5jcHAKaW5kZXggM2YxZTJmOWEzNWVkN2NlMDQ2NGUwZTYxMDAwMWJiOGI4
ZTk3N2U4ZC4uNDdmOTYwNWI1NDkzNjg5NmY0ZWU4NTQzNjg2YWM2YjU3MWY0Nzg2NSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlv
bnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
RnVuY3Rpb25zLmNwcApAQCAtNzg3LDcgKzc4Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZ2xvYmFsRnVuY0ltcG9ydE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICBhdXRv
KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAKLSAgICBhdXRv
KiBwcm9taXNlID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3Qp
OworICAgIGF1dG8qIHByb21pc2UgPSBKU1Byb21pc2VEZWZlcnJlZDo6dHJ5Q3JlYXRlKGV4ZWMs
IGdsb2JhbE9iamVjdCk7CiAgICAgQ0xFQVJfQU5EX1JFVFVSTl9JRl9FWENFUFRJT04oY2F0Y2hT
Y29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKICAgICBhdXRvIHNvdXJjZU9yaWdpbiA9IGV4ZWMt
PmNhbGxlclNvdXJjZU9yaWdpbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcAppbmRleCA5MmM2NGVm
NjFkZWY3YzFiM2YzY2NkYWIzNGVkM2ZhZjUxYmMwMGRlLi5mM2Y5OGRlZDdhZWRhY2Q2OTVjM2Ni
ODk4MjFmMGYyZjY5ZTc5NjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcApAQCAtMzcsNyArMzcs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEpTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQ6OnNfaW5mbyA9IHsgIkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQiLCAmQmFzZTo6
c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTSW50ZXJuYWxQ
cm9taXNlRGVmZXJyZWQpIH07CiAKLUpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIEpTSW50ZXJu
YWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCitKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBKU0ludGVybmFsUHJv
bWlzZURlZmVycmVkOjp0cnlDcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oCmluZGV4IDM3NGY4
NWE1NThjZjhiNGIwYzFmYTNiOWMxOGE1NTgwODU1MTMwMDYuLmE0ZTdlY2NmNmZmODk0NTM3MmM1
MDBiNjM5MWM3MGU2NjBjZjYwNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmgKQEAgLTM2LDcgKzM2LDcg
QEAgY2xhc3MgSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCBmaW5hbCA6IHB1YmxpYyBKU1Byb21p
c2VEZWZlcnJlZCB7CiAgICAgdHlwZWRlZiBKU1Byb21pc2VEZWZlcnJlZCBCYXNlOwogICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBK
U0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBjcmVhdGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgSlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZCogdHJ5Q3JlYXRlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kik7CiAKICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5jcHAKaW5kZXggYjAyMjFmMzBmODJkNTY5
OGE3YmRhOTViMmRlYTEzYTI5MzAwM2EwOC4uYWVlMjNhYWI1ODk1OGIyMjNkOTMxMjcxOGM5OGRk
NzVlMTA0ZjU0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNN
b2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9k
dWxlTG9hZGVyLmNwcApAQCAtMjMyLDcgKzIzMiw4IEBAIEpTSW50ZXJuYWxQcm9taXNlKiBKU01v
ZHVsZUxvYWRlcjo6aW1wb3J0TW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgSlNTdHJpbmcqIG1vZHVs
CiAgICAgaWYgKGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxl
TG9hZGVySW1wb3J0TW9kdWxlKQogICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5nbG9iYWxP
YmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0
LCBleGVjLCB0aGlzLCBtb2R1bGVOYW1lLCBwYXJhbWV0ZXJzLCByZWZlcnJlcik7CiAKLSAgICBh
dXRvKiBkZWZlcnJlZCA9IEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBn
bG9iYWxPYmplY3QpOworICAgIGF1dG8qIGRlZmVycmVkID0gSlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZDo6dHJ5Q3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgc2NvcGUucmVsZWFzZUFz
c2VydE5vRXhjZXB0aW9uKCk7CiAgICAgYXV0byBtb2R1bGVOYW1lU3RyaW5nID0gbW9kdWxlTmFt
ZS0+dmFsdWUoZXhlYyk7CiAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewog
ICAgICAgICBKU1ZhbHVlIGV4Y2VwdGlvbiA9IHNjb3BlLmV4Y2VwdGlvbigpLT52YWx1ZSgpOwpA
QCAtMjYwLDcgKzI2MSw3IEBAIEpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6cmVz
b2x2ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgbmFtZSwgSlNWYWx1CiAgICAgVk0mIHZtID0g
ZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAK
LSAgICBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTSW50ZXJuYWxQcm9t
aXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOwor
ICAgIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNJbnRlcm5hbFByb21p
c2VEZWZlcnJlZDo6dHJ5Q3JlYXRlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7
CiAgICAgc2NvcGUucmVsZWFzZUFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgY29uc3QgSWRlbnRp
ZmllciBtb2R1bGVLZXkgPSByZXNvbHZlU3luYyhleGVjLCBuYW1lLCByZWZlcnJlciwgc2NyaXB0
RmV0Y2hlcik7CiAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewpAQCAtMjgz
LDcgKzI4NCw4IEBAIEpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6ZmV0Y2goRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBwCiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwogICAgIGlmIChnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVj
dE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlckZldGNoKQogICAgICAgICByZXR1cm4gZ2xvYmFs
T2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2FkZXJGZXRjaChnbG9i
YWxPYmplY3QsIGV4ZWMsIHRoaXMsIGtleSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hlcik7Ci0g
ICAgSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0ludGVybmFsUHJvbWlz
ZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICBKU0ludGVybmFsUHJv
bWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OnRyeUNy
ZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOworICAgIHNjb3BlLnJlbGVhc2VBc3NlcnROb0V4Y2Vw
dGlvbigpOwogICAgIFN0cmluZyBtb2R1bGVLZXkgPSBrZXkudG9XVEZTdHJpbmcoZXhlYyk7CiAg
ICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewogICAgICAgICBKU1ZhbHVlIGV4
Y2VwdGlvbiA9IHNjb3BlLmV4Y2VwdGlvbigpLT52YWx1ZSgpOwpAQCAtMzM4LDcgKzM0MCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUGFyc2VNb2R1bGUoRXhl
Y1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwogCi0gICAgSlNJbnRlcm5hbFByb21pc2VEZWZlcnJl
ZCogZGVmZXJyZWQgPSBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKKyAgICBKU0ludGVybmFsUHJvbWlzZURlZmVycmVk
KiBkZWZlcnJlZCA9IEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OnRyeUNyZWF0ZShleGVjLCBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOwogICAgIHNjb3BlLnJlbGVhc2VBc3NlcnROb0V4
Y2VwdGlvbigpOwogCiAgICAgYXV0byByZWplY3QgPSBbJl0gewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1Byb21pc2UuaAppbmRleCA5ZmMyZTRjM2YyYTY2NDY4N2QzNDQyZmUwYmU3
ZDI5ZjJlNGYwZWRkLi4wZGUxODRhOGFkMjJiYzIxYmRiOTEwOWE0NDgyYzczNmJlYmJlNjM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2UuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2UuaApAQCAtMzEsMTYgKzMx
LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpTUHJvbWlzZSA6IHB1YmxpYyBKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKLSAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsK
KyAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKIAogICAgIHN0YXRpYyBKU1Byb21p
c2UqIGNyZWF0ZShWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0cnVjdCBKU1Byb21pc2VBbmRDYWxs
YmFja3MgewotICAgICAgICBKU1Byb21pc2UqIHByb21pc2U7Ci0gICAgICAgIEpTRnVuY3Rpb24q
IHJlc29sdmU7Ci0gICAgICAgIEpTRnVuY3Rpb24qIHJlamVjdDsKLSAgICB9OwotICAgIHN0YXRp
YyBKU1Byb21pc2VBbmRDYWxsYmFja3MgY3JlYXRlV2l0aENhbGxiYWNrcyhWTSYsIFN0cnVjdHVy
ZSopOwotCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9i
YWxPYmplY3QqLCBKU1ZhbHVlKTsKIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VEZWZlcnJlZC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VEZWZlcnJlZC5jcHAKaW5k
ZXggMzQ1NWVhYWJhNzc4MWJjZDc0NWQ3YWRkOWIwMmNlY2EyMDk4MzIxYi4uZDRjYWQwYjBmNTll
NWZlOWZmYThiMTcyOTkxODc3NGViZWYxMGRkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlRGVmZXJyZWQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmNwcApAQCAtNjYsNyArNjYsNyBAQCBK
U1Byb21pc2VEZWZlcnJlZDo6RGVmZXJyZWREYXRhIEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGVE
ZWZlcnJlZERhdGEoRXhlY1N0YXRlKgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpTUHJvbWlz
ZURlZmVycmVkKiBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK0pTUHJvbWlzZURlZmVycmVkKiBKU1Byb21pc2VE
ZWZlcnJlZDo6dHJ5Q3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1Byb21pc2VEZWZlcnJlZC5oCmluZGV4IDQ5MjM0YWMxNDcyNGE2OGEwYjNjZTUyNDI2
YWRiYTVmMDc4MmVlZGQuLmFjMDE4OTkwNTVhZDI1MmQ4MDRhYWY5MzIzNTU2NjhhZDkxNmQxMzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVy
cmVkLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlRGVmZXJy
ZWQuaApAQCAtNDksNyArNDksNyBAQCBjbGFzcyBKU1Byb21pc2VEZWZlcnJlZCA6IHB1YmxpYyBK
U0NlbGwgewogICAgIH07CiAgICAgc3RhdGljIERlZmVycmVkRGF0YSBjcmVhdGVEZWZlcnJlZERh
dGEoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU1Byb21pc2VDb25zdHJ1Y3RvciopOwog
Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIEpTUHJvbWlzZURlZmVycmVkKiBjcmVhdGUo
RXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0
aWMgSlNQcm9taXNlRGVmZXJyZWQqIHRyeUNyZWF0ZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVj
dCopOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBKU1Byb21pc2VEZWZlcnJlZCogY3Jl
YXRlKFZNJiwgSlNQcm9taXNlKiwgSlNGdW5jdGlvbiogcmVzb2x2ZSwgSlNGdW5jdGlvbiogcmVq
ZWN0KTsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3Bw
CmluZGV4IGRjYWRjMGQwZGJjZTVhOWQyNTUzYTRkYmRjOGNlNGI0ZmNjNWQ0NTAuLjY1YjAzZDk0
MzMyYTViZDU0ZjRiNjc1ZjJhYTJjMWY5ODI3MTVmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAKQEAgLTExNSw3
ICsxMTUsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJs
eUNvbXBpbGVGdW5jKEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCk7CiAKLSAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZSA9IEpT
UHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICBKU1Byb21p
c2VEZWZlcnJlZCogcHJvbWlzZSA9IEpTUHJvbWlzZURlZmVycmVkOjp0cnlDcmVhdGUoZXhlYywg
Z2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29k
ZWRKU1ZhbHVlKCkpOwogCiAgICAgewpAQCAtMjYxLDcgKzI2MSw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5SW5zdGFudGlhdGVGdW5jKEV4ZWNTdGF0
ZSogZXhlYykKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ICAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAK
LSAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZSA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVh
dGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZSA9
IEpTUHJvbWlzZURlZmVycmVkOjp0cnlDcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogCiAgICAg
ewpAQCAtMzA2LDcgKzMwNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNz
ZW1ibHlDb21waWxlU3RyZWFtaW5nSW50ZXJuYWwoRXhlY1N0YXRlKiBleGVjCiAgICAgYXV0byog
Z2xvYmFsT2JqZWN0ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwogICAgIGF1dG8gY2F0
Y2hTY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwogCi0gICAgSlNQcm9taXNlRGVmZXJy
ZWQqIHByb21pc2UgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVj
dCk7CisgICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2UgPSBKU1Byb21pc2VEZWZlcnJlZDo6
dHJ5Q3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAKICAgICBWZWN0b3I8U3Ryb25nPEpTQ2Vs
bD4+IGRlcGVuZGVuY2llczsKICAgICBkZXBlbmRlbmNpZXMuYXBwZW5kKFN0cm9uZzxKU0NlbGw+
KHZtLCBnbG9iYWxPYmplY3QpKTsKQEAgLTMzMCw4ICszMzAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5SW5zdGFudGlhdGVTdHJlYW1pbmdJbnRlcm5hbChFeGVj
U3RhdGUqCiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAg
ICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwogCi0g
ICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2UgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRl
KGV4ZWMsIGdsb2JhbE9iamVjdCk7Ci0KKyAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZSA9
IEpTUHJvbWlzZURlZmVycmVkOjp0cnlDcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIHsK
ICAgICAgICAgYXV0byBjYXRjaFNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRSZWdpc3Ry
eUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRS
ZWdpc3RyeUN1c3RvbS5jcHAKaW5kZXggYjcxODFkZDA4NTVjODQyZmM4N2Q3MjdkMmEyNjQ0YmNi
OTZjMDQxZC4uNDE1OTdjZDQ4ODAxODVmMzg2ZDc0MTQ5Mjc5YTcwNTdjOTYwYTAyZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50UmVnaXN0cnlD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVu
dFJlZ2lzdHJ5Q3VzdG9tLmNwcApAQCAtMjA3LDggKzIwNyw4IEBAIEpTVmFsdWUgSlNDdXN0b21F
bGVtZW50UmVnaXN0cnk6OndoZW5EZWZpbmVkKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUoc3RhdGUudm0oKSk7CiAKICAgICBBU1NFUlQoZ2xv
YmFsT2JqZWN0KCkpOwotICAgIGF1dG8gcHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVmZXJy
ZWQ6OmNyZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKLSAgICBBU1NFUlQocHJvbWlzZURl
ZmVycmVkKTsKKyAgICBhdXRvIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjp0
cnlDcmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQocHJv
bWlzZURlZmVycmVkKTsKICAgICBKU1ZhbHVlIHByb21pc2UgPSB3aGVuRGVmaW5lZFByb21pc2Uo
c3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLCAqcHJvbWlzZURlZmVycmVkKTsKIAog
ICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmNwcAppbmRleCAwOWFkMjcz
MzQyZWJjZmM2NjIxZTAxNTM2ZDA1MGQ3ZGE2YWNlZWNkLi4yMGY5NzM3YjFjYjA4ZjY5MTg0Mzk1
ZDQxYTE3NzQ4Zjk4Mjc4YWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVByb21pc2VEZWZlcnJlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01Qcm9taXNlRGVmZXJyZWQuY3BwCkBAIC0xOTEsOSArMTkxLDkgQEAgdm9pZCByZWpl
Y3RQcm9taXNlV2l0aEV4Y2VwdGlvbklmQW55KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNET01H
bG9iYWxPYmplY3QmIGcKIAogUmVmPERlZmVycmVkUHJvbWlzZT4gY3JlYXRlRGVmZXJyZWRQcm9t
aXNlKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNET01XaW5kb3cmIGRvbVdpbmRvdykKIHsKLSAg
ICBKU0M6OkpTUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNQcm9taXNlRGVmZXJy
ZWQ6OmNyZWF0ZSgmc3RhdGUsICZkb21XaW5kb3cpOworICAgIEpTQzo6SlNQcm9taXNlRGVmZXJy
ZWQqIGRlZmVycmVkID0gSlNDOjpKU1Byb21pc2VEZWZlcnJlZDo6dHJ5Q3JlYXRlKCZzdGF0ZSwg
JmRvbVdpbmRvdyk7CiAgICAgLy8gZGVmZXJyZWQgY2FuIG9ubHkgYmUgbnVsbCBpbiB3b3JrZXJz
LgotICAgIEFTU0VSVChkZWZlcnJlZCk7CisgICAgUkVMRUFTRV9BU1NFUlQoZGVmZXJyZWQpOwog
ICAgIHJldHVybiBEZWZlcnJlZFByb21pc2U6OmNyZWF0ZShkb21XaW5kb3csICpkZWZlcnJlZCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlz
ZURlZmVycmVkLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZl
cnJlZC5oCmluZGV4IDJiN2FmMGQzMWU2MTFlYWU2YmM2YTc4ODBiNDI1MWY1OTIxYzY0NzUuLjQz
MThjOWYzN2RjMTYwY2ViZGQwZDUxN2ZiNGQyZTkwZDRmMDU2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuaApAQCAtNDQsNyArNDQs
NyBAQCBjbGFzcyBEZWZlcnJlZFByb21pc2UgOiBwdWJsaWMgRE9NR3VhcmRlZDxKU0M6OkpTUHJv
bWlzZURlZmVycmVkPiB7CiAKICAgICBzdGF0aWMgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4gY3Jl
YXRlKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVj
dCwgTW9kZSBtb2RlID0gTW9kZTo6Q2xlYXJQcm9taXNlT25SZXNvbHZlKQogICAgIHsKLSAgICAg
ICAgYXV0byogcHJvbWlzZURlZmVycmVkID0gSlNDOjpKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRl
KCZzdGF0ZSwgJmdsb2JhbE9iamVjdCk7CisgICAgICAgIGF1dG8qIHByb21pc2VEZWZlcnJlZCA9
IEpTQzo6SlNQcm9taXNlRGVmZXJyZWQ6OnRyeUNyZWF0ZSgmc3RhdGUsICZnbG9iYWxPYmplY3Qp
OwogICAgICAgICBpZiAoIXByb21pc2VEZWZlcnJlZCkKICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERlZmVycmVkUHJvbWlzZShnbG9iYWxP
YmplY3QsICpwcm9taXNlRGVmZXJyZWQsIG1vZGUpKTsKQEAgLTI3MCw3ICsyNzAsNyBAQCBpbmxp
bmUgSlNDOjpKU1ZhbHVlIGNhbGxQcm9taXNlRnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUmIHN0YXRl
KQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKIAogICAgIGF1dG8m
IGdsb2JhbE9iamVjdCA9IGNhbGxlckdsb2JhbE9iamVjdChzdGF0ZSk7Ci0gICAgSlNDOjpKU1By
b21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0gSlNDOjpKU1Byb21pc2VEZWZlcnJlZDo6
Y3JlYXRlKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCk7CisgICAgSlNDOjpKU1Byb21pc2VEZWZlcnJl
ZCogcHJvbWlzZURlZmVycmVkID0gSlNDOjpKU1Byb21pc2VEZWZlcnJlZDo6dHJ5Q3JlYXRlKCZz
dGF0ZSwgJmdsb2JhbE9iamVjdCk7CiAKICAgICAvLyBwcm9taXNlRGVmZXJyZWQgY2FuIGJlIG51
bGwgd2hlbiB0ZXJtaW5hdGluZyBhIFdvcmtlciBhYnJ1cHRseS4KICAgICBpZiAoZXhlY3V0aW9u
U2NvcGUgPT0gUHJvbWlzZUV4ZWN1dGlvblNjb3BlOjpXaW5kb3dPcldvcmtlciAmJiAhcHJvbWlz
ZURlZmVycmVkKQpAQCAtMjkwLDcgKzI5MCw3IEBAIGlubGluZSBKU0M6OkpTVmFsdWUgY2FsbFBy
b21pc2VGdW5jdGlvbihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFByb21pc2VGdW5jdG9yIGZ1CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwogCiAgICAgYXV0byYgZ2xv
YmFsT2JqZWN0ID0gY2FsbGVyR2xvYmFsT2JqZWN0KHN0YXRlKTsKLSAgICBKU0M6OkpTUHJvbWlz
ZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU0M6OkpTUHJvbWlzZURlZmVycmVkOjpjcmVh
dGUoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0KTsKKyAgICBKU0M6OkpTUHJvbWlzZURlZmVycmVkKiBw
cm9taXNlRGVmZXJyZWQgPSBKU0M6OkpTUHJvbWlzZURlZmVycmVkOjp0cnlDcmVhdGUoJnN0YXRl
LCAmZ2xvYmFsT2JqZWN0KTsKIAogICAgIC8vIHByb21pc2VEZWZlcnJlZCBjYW4gYmUgbnVsbCB3
aGVuIHRlcm1pbmF0aW5nIGEgV29ya2VyIGFicnVwdGx5LgogICAgIGlmIChleGVjdXRpb25TY29w
ZSA9PSBQcm9taXNlRXhlY3V0aW9uU2NvcGU6OldpbmRvd09yV29ya2VyICYmICFwcm9taXNlRGVm
ZXJyZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNw
cAppbmRleCBkZWEwZGUyNzM5OWU5MWU1ODZiZDAwZjlkN2QxNGQ0MTZhZDdjMzI4Li5mMmViMmY3
OGJlNmJlZTgxNWJkMDVhMWY4YjAwZmQ1OTFhMjg3YWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTMxMiwxMSArMzEyLDE0IEBAIEpT
Qzo6SWRlbnRpZmllciBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsCiAKIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2lu
ZG93QmFzZTo6bW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9h
ZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgcGFyYW1ldGVycywgSlND
OjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCiB7CisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNET01XaW5kb3dC
YXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2Jq
ZWN0KTsKICAgICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndy
YXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRl
cigpLT5mZXRjaChnbG9iYWxPYmplY3QsIGV4ZWMsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBw
YXJhbWV0ZXJzLCBzY3JpcHRGZXRjaGVyKTsKLSAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVm
ZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUo
ZXhlYywgZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBq
c1VuZGVmaW5lZCgpKTsKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVu
dC0+bW9kdWxlTG9hZGVyKCktPmZldGNoKGdsb2JhbE9iamVjdCwgZXhlYywgbW9kdWxlTG9hZGVy
LCBtb2R1bGVLZXksIHBhcmFtZXRlcnMsIHNjcmlwdEZldGNoZXIpKTsKKyAgICBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURl
ZmVycmVkOjp0cnlDcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGRl
ZmVycmVkLT5yZWplY3QoZXhlYywganNVbmRlZmluZWQoKSkpOwogfQogCiBKU0M6OkpTVmFsdWUg
SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVy
KiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1
bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQpAQCAtMzI5LDExICszMzIsMTQg
QEAgSlNDOjpKU1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKIAogSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNE
T01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRl
ciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5nKiBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUg
cGFyYW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbikKIHsKKyAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKICAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxK
U0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwogICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+
IGRvY3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJl
dHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPmltcG9ydE1vZHVsZShnbG9iYWxPYmplY3Qs
IGV4ZWMsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgcGFyYW1ldGVycywgc291cmNlT3JpZ2lu
KTsKLSAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpK
U0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKLSAg
ICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPmltcG9y
dE1vZHVsZShnbG9iYWxPYmplY3QsIGV4ZWMsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgcGFy
YW1ldGVycywgc291cmNlT3JpZ2luKSk7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6dHJ5Q3JlYXRl
KGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVs
bHB0cik7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBkZWZlcnJlZC0+cmVqZWN0KGV4
ZWMsIGpzVW5kZWZpbmVkKCkpKTsKIH0KIAogSlNDOjpKU09iamVjdCogSlNET01XaW5kb3dCYXNl
Ojptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNNb2R1bGVS
ZWNvcmQqIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRleCAx
ZDkzMjU0ZWMwNjBiZTJkNGVlODdmNWUzMzQ4Njk0NzdlZTk2MjY0Li5kZmUzMTQxNDQwMWE1ZTZm
MTNkNjFjODAyMTg4YWYzZTQyNTY2MDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTE0NiwxNiArMTQ2LDE3IEBAIEpTQzo6
SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2Jh
bE9iamVjdCoganNHbG9iYWxPCiAgICAgQVNTRVJUKEpTQzo6anNEeW5hbWljQ2FzdDxKU0M6OkpT
U2NyaXB0RmV0Y2hlcio+KHZtLCBzY3JpcHRGZXRjaGVyKSk7CiAKICAgICBhdXRvJiBnbG9iYWxP
YmplY3QgPSAqSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihqc0dsb2JhbE9iamVjdCk7
Ci0gICAgYXV0byYganNQcm9taXNlID0gKkpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6
Y3JlYXRlKGV4ZWMsICZnbG9iYWxPYmplY3QpOwotICAgIGF1dG8gZGVmZXJyZWQgPSBEZWZlcnJl
ZFByb21pc2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGpzUHJvbWlzZSk7CisgICAgYXV0byoganNQ
cm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjp0cnlDcmVhdGUoZXhlYywg
Jmdsb2JhbE9iamVjdCk7CisgICAgUkVMRUFTRV9BU1NFUlQoanNQcm9taXNlKTsKKyAgICBhdXRv
IGRlZmVycmVkID0gRGVmZXJyZWRQcm9taXNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCAqanNQcm9t
aXNlKTsKICAgICBpZiAobW9kdWxlS2V5VmFsdWUuaXNTeW1ib2woKSkgewogICAgICAgICBkZWZl
cnJlZC0+cmVqZWN0KFR5cGVFcnJvciwgIlN5bWJvbCBtb2R1bGUga2V5IHNob3VsZCBiZSBhbHJl
YWR5IGZ1bGZpbGxlZCB3aXRoIHRoZSBpbmxpbmVkIHJlc291cmNlLiJfcyk7Ci0gICAgICAgIHJl
dHVybiBqc1Byb21pc2UucHJvbWlzZSgpOworICAgICAgICByZXR1cm4ganNQcm9taXNlLT5wcm9t
aXNlKCk7CiAgICAgfQogCiAgICAgaWYgKCFtb2R1bGVLZXlWYWx1ZS5pc1N0cmluZygpKSB7CiAg
ICAgICAgIGRlZmVycmVkLT5yZWplY3QoVHlwZUVycm9yLCAiTW9kdWxlIGtleSBpcyBub3QgU3lt
Ym9sIG9yIFN0cmluZy4iX3MpOwotICAgICAgICByZXR1cm4ganNQcm9taXNlLnByb21pc2UoKTsK
KyAgICAgICAgcmV0dXJuIGpzUHJvbWlzZS0+cHJvbWlzZSgpOwogICAgIH0KIAogICAgIC8vIGh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNmZXRj
aC1hLXNpbmdsZS1tb2R1bGUtc2NyaXB0CkBAIC0xNjMsNyArMTY0LDcgQEAgSlNDOjpKU0ludGVy
bmFsUHJvbWlzZSogU2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0
KiBqc0dsb2JhbE8KICAgICBVUkwgY29tcGxldGVkVVJMKFVSTCgpLCBhc1N0cmluZyhtb2R1bGVL
ZXlWYWx1ZSktPnZhbHVlKGV4ZWMpKTsKICAgICBpZiAoIWNvbXBsZXRlZFVSTC5pc1ZhbGlkKCkp
IHsKICAgICAgICAgZGVmZXJyZWQtPnJlamVjdChUeXBlRXJyb3IsICJNb2R1bGUga2V5IGlzIGEg
dmFsaWQgVVJMLiJfcyk7Ci0gICAgICAgIHJldHVybiBqc1Byb21pc2UucHJvbWlzZSgpOworICAg
ICAgICByZXR1cm4ganNQcm9taXNlLT5wcm9taXNlKCk7CiAgICAgfQogCiAgICAgUmVmUHRyPE1v
ZHVsZUZldGNoUGFyYW1ldGVycz4gdG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnM7CkBAIC0xNzYsMTAg
KzE3NywxMCBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmZl
dGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAgICAgICBsb2FkZXItPmNsZWFy
Q2xpZW50KCk7CiAgICAgICAgIG1fbG9hZGVycy5yZW1vdmUoV1RGTW92ZShsb2FkZXIpKTsKICAg
ICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IoZGVmZXJyZWQuZ2V0KCksIE1vZHVs
ZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0
IGZhaWxlZC4iX3MpOwotICAgICAgICByZXR1cm4ganNQcm9taXNlLnByb21pc2UoKTsKKyAgICAg
ICAgcmV0dXJuIGpzUHJvbWlzZS0+cHJvbWlzZSgpOwogICAgIH0KIAotICAgIHJldHVybiBqc1By
b21pc2UucHJvbWlzZSgpOworICAgIHJldHVybiBqc1Byb21pc2UtPnByb21pc2UoKTsKIH0KIAog
VVJMIFNjcmlwdE1vZHVsZUxvYWRlcjo6bW9kdWxlVVJMKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
SlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlKQpAQCAtMjE0LDEwICsyMTUsMTEgQEAgSlNDOjpK
U1ZhbHVlIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RXhlY1N0YXRlKgogCiBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogcmVqZWN0
UHJvbWlzZShKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QsIEV4Y2VwdGlvbkNvZGUgZWMsIEFTQ0lJTGl0ZXJhbCBtZXNzYWdlKQogewotICAgIGF1
dG8mIGpzUHJvbWlzZSA9ICpKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgm
c3RhdGUsICZnbG9iYWxPYmplY3QpOwotICAgIGF1dG8gZGVmZXJyZWQgPSBEZWZlcnJlZFByb21p
c2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGpzUHJvbWlzZSk7CisgICAgYXV0byoganNQcm9taXNl
ID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjp0cnlDcmVhdGUoJnN0YXRlLCAmZ2xv
YmFsT2JqZWN0KTsKKyAgICBSRUxFQVNFX0FTU0VSVChqc1Byb21pc2UpOworICAgIGF1dG8gZGVm
ZXJyZWQgPSBEZWZlcnJlZFByb21pc2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsICpqc1Byb21pc2Up
OwogICAgIGRlZmVycmVkLT5yZWplY3QoZWMsIFdURk1vdmUobWVzc2FnZSkpOwotICAgIHJldHVy
biBqc1Byb21pc2UucHJvbWlzZSgpOworICAgIHJldHVybiBqc1Byb21pc2UtPnByb21pc2UoKTsK
IH0KIAogSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9kdWxlTG9hZGVyOjppbXBvcnRN
b2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRl
KiBleGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0cmluZyogbW9kdWxlTmFtZSwg
SlNDOjpKU1ZhbHVlIHBhcmFtZXRlcnMsIGNvbnN0IEpTQzo6U291cmNlT3JpZ2luJiBzb3VyY2VP
cmlnaW4pCg==
</data>
<flag name="review"
          id="371163"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
      

    </bug>

</bugzilla>