<?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>195858</bug_id>
          
          <creation_ts>2019-03-16 20:27:50 -0700</creation_ts>
          <short_desc>REGRESSION: !vm.isInitializingObject() void* JSC::tryAllocateCellHelper&lt;JSC::Structure&gt; JSC::Structure::create</short_desc>
          <delta_ts>2019-03-17 00:46:03 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsbell</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1517506</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-16 20:27:50 -0700</bug_when>
    <thetext>Wasm structures should be passed to ::create functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517507</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-16 20:28:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/48954352&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517508</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-16 20:28:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/48958544&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517513</commentid>
    <comment_count>3</comment_count>
      <attachid>364958</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-16 21:00:10 -0700</bug_when>
    <thetext>Created attachment 364958
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517514</commentid>
    <comment_count>4</comment_count>
      <attachid>364959</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-16 21:12:48 -0700</bug_when>
    <thetext>Created attachment 364959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517515</commentid>
    <comment_count>5</comment_count>
      <attachid>364959</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-03-16 22:14:19 -0700</bug_when>
    <thetext>Comment on attachment 364959
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517516</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-03-16 23:32:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/48954352&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517519</commentid>
    <comment_count>7</comment_count>
      <attachid>364959</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-17 00:20:40 -0700</bug_when>
    <thetext>Comment on attachment 364959
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517522</commentid>
    <comment_count>8</comment_count>
      <attachid>364959</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-17 00:46:01 -0700</bug_when>
    <thetext>Comment on attachment 364959
Patch

Clearing flags on attachment: 364959

Committed r243051: &lt;https://trac.webkit.org/changeset/243051&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517523</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-17 00:46:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364958</attachid>
            <date>2019-03-16 21:00:10 -0700</date>
            <delta_ts>2019-03-16 21:12:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195858-20190316210009.patch</filename>
            <type>text/plain</type>
            <size>38747</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
YzBkZWI0N2M3YzBmN2NjMWNjOTk1MzMzMjJkZmQ1NzI5ZDVmMjk2Li44ZTAyZWEyMTA2NjI5YzNk
MzhkODVlNjUwMDFhZGJlY2JiNTVjNTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MyBAQAorMjAxOS0wMy0xNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJFR1JFU1NJT046ICF2bS5pc0luaXRpYWxpemluZ09iamVjdCgpIHZvaWQq
IEpTQzo6dHJ5QWxsb2NhdGVDZWxsSGVscGVyPEpTQzo6U3RydWN0dXJlPiBKU0M6OlN0cnVjdHVy
ZTo6Y3JlYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTU4NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICByMjQzMDExIGNoYW5nZWQgV2ViQXNzZW1ibHkgcmVsYXRlZCBzdHJ1Y3R1cmVzIGxhemlseS1h
bGxvY2F0ZWQuIEl0IG1lYW5zIHRoYXQgdGhpcyBsYXp5IGFsbG9jYXRpb24gbXVzdCBub3QgYmUg
ZG9uZSBpbiB0aGUgbWlkZGxlIG9mCisgICAgICAgIHRoZSBvdGhlciBvYmplY3QgYWxsb2NhdGlv
bnMuIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgc2lnbmF0dXJlIG9mIHdhc20gcmVsYXRlZCBvYmpl
Y3RzJyA6OmNyZWF0ZSBmdW5jdGlvbnMgdG8gdGFraW5nIFN0cnVjdHVyZSouCisgICAgICAgIFRo
aXMgcHJldmVudHMgdXMgZnJvbSBtYXRlcmlhbGl6aW5nIGxhemlseS1hbGxvY2F0ZWQgc3RydWN0
dXJlcyB3aGlsZSBhbGxvY2F0aW5nIHdhc20gcmVsYXRlZCBvYmplY3RzLCBhbmQgdGhpcyBzdHls
ZSBpcyB1c2VkIGluIHRoZQorICAgICAgICBvdGhlciBwbGFjZXMgdG8gZml4IHRoZSBzYW1lIHBy
b2JsZW0uIFRoaXMgYnVnIGlzIGNhdWdodCBieSBleGlzdGluZyBkZWJ1ZyB0ZXN0cyBmb3Igd2Fz
bS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiB3YXNt
L2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVK
U1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1i
bHlJbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6Zmlu
YWxpemVDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwOgorICAg
ICAgICAoSlNDOjpjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKToKKyAgICAgICAgKiB3YXNt
L2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuY3BwOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5
TW9kdWxlOjpjcmVhdGVTdHViKToKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseU1vZHVsZTo6
ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHdhc20vanMvV2FzbVRvSlMuY3BwOgorICAgICAg
ICAoSlNDOjpXYXNtOjp3YXNtVG9KU0V4Y2VwdGlvbik6CisgICAgICAgICogd2FzbS9qcy9XZWJB
c3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3Ry
dWN0SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcik6CisgICAgICAgIChKU0M6OmNhbGxKU1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rp
b24uY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUZ1bmN0aW9uOjpjcmVhdGUpOgorICAg
ICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5oOgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3Ry
dWN0SlNXZWJBc3NlbWJseUluc3RhbmNlKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5
TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RKU1dlYkFz
c2VtYmx5TGlua0Vycm9yKToKKyAgICAgICAgKEpTQzo6Y2FsbEpTV2ViQXNzZW1ibHlMaW5rRXJy
b3IpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlNZW1vcnkpOgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OldlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmNyZWF0ZU1vZHVsZSk6CisgICAgICAgICog
d2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHA6CisgICAgICAgIChKU0M6OldlYkFz
c2VtYmx5TW9kdWxlUmVjb3JkOjpsaW5rKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNb2R1
bGVSZWNvcmQ6OmV2YWx1YXRlKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlNb2R1bGVWYWxpZGF0ZUFzeW5jSW50
ZXJuYWwpOgorICAgICAgICAoSlNDOjppbnN0YW50aWF0ZSk6CisgICAgICAgIChKU0M6OmNvbXBp
bGVBbmRJbnN0YW50aWF0ZSk6CisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5TW9kdWxlSW5zdGFu
dGluYXRlQXN5bmNJbnRlcm5hbCk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRp
bWVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0SlNXZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvcik6CisgICAgICAgIChKU0M6OmNhbGxKU1dlYkFzc2VtYmx5UnVudGlt
ZUVycm9yKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlUYWJsZSk6CisgICAgICAg
ICogd2FzbS9qcy9XZWJBc3NlbWJseVRvSlNDYWxsZWUuY3BwOgorICAgICAgICAoSlNDOjpXZWJB
c3NlbWJseVRvSlNDYWxsZWU6OmNyZWF0ZSk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJs
eVRvSlNDYWxsZWUuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0
aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OmNyZWF0
ZSk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5oOgorCiAy
MDE5LTAzLTE2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBy
b3ZlIG5vcm1hbGl6YXRpb24gY29kZSwgaW5jbHVkaW5nIG1vdmluZyBmcm9tIHVub3JtLmggdG8g
dW5vcm0yLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5oCmluZGV4IDViYzczODQzMGU4YjZlMGVkYzhkMjczMDBkMGRmNWRlZTIxZmMxN2QuLmM1OWYy
YjZkYWEwYmE5NDljMjFlNTYyNDZhYmY1NWEwYjM2NWFkMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMTU3LDEzICsxNTcsMTMgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgV2F0Y2hwb2ludD4gY2xhc3MgT2JqZWN0UHJvcGVydHlDaGFuZ2VB
ZGFwdGl2ZVdhdGNocG9pbnQ7CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAjZGVmaW5lIEZP
Ul9FQUNIX1dFQkFTU0VNQkxZX0NPTlNUUlVDVE9SX1RZUEUobWFjcm8pIFwKLSAgICBtYWNybyhX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvciwgd2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIFdlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yLCBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLCBDb21waWxlRXJyb3Is
IGVycm9yKSBcCi0gICAgbWFjcm8oV2ViQXNzZW1ibHlJbnN0YW5jZSwgICAgIHdlYkFzc2VtYmx5
SW5zdGFuY2UsICAgICBXZWJBc3NlbWJseUluc3RhbmNlLCAgICAgSlNXZWJBc3NlbWJseUluc3Rh
bmNlLCAgICAgSW5zdGFuY2UsICAgICBvYmplY3QpIFwKLSAgICBtYWNybyhXZWJBc3NlbWJseUxp
bmtFcnJvciwgICAgd2ViQXNzZW1ibHlMaW5rRXJyb3IsICAgIFdlYkFzc2VtYmx5TGlua0Vycm9y
LCAgICBKU1dlYkFzc2VtYmx5TGlua0Vycm9yLCAgICBMaW5rRXJyb3IsICAgIGVycm9yKSBcCi0g
ICAgbWFjcm8oV2ViQXNzZW1ibHlNZW1vcnksICAgICAgIHdlYkFzc2VtYmx5TWVtb3J5LCAgICAg
ICBXZWJBc3NlbWJseU1lbW9yeSwgICAgICAgSlNXZWJBc3NlbWJseU1lbW9yeSwgICAgICAgTWVt
b3J5LCAgICAgICBvYmplY3QpIFwKLSAgICBtYWNybyhXZWJBc3NlbWJseU1vZHVsZSwgICAgICAg
d2ViQXNzZW1ibHlNb2R1bGUsICAgICAgIFdlYkFzc2VtYmx5TW9kdWxlLCAgICAgICBKU1dlYkFz
c2VtYmx5TW9kdWxlLCAgICAgICBNb2R1bGUsICAgICAgIG9iamVjdCkgXAotICAgIG1hY3JvKFdl
YkFzc2VtYmx5UnVudGltZUVycm9yLCB3ZWJBc3NlbWJseVJ1bnRpbWVFcnJvciwgV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3IsIEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIFJ1bnRpbWVFcnJvciwg
ZXJyb3IpIFwKLSAgICBtYWNybyhXZWJBc3NlbWJseVRhYmxlLCAgICAgICAgd2ViQXNzZW1ibHlU
YWJsZSwgICAgICAgIFdlYkFzc2VtYmx5VGFibGUsICAgICAgICBKU1dlYkFzc2VtYmx5VGFibGUs
ICAgICAgICBUYWJsZSwgICAgICAgIG9iamVjdCkKKyAgICBtYWNybyhXZWJBc3NlbWJseUNvbXBp
bGVFcnJvciwgd2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIHdlYkFzc2VtYmx5Q29tcGlsZUVycm9y
LCBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLCBDb21waWxlRXJyb3IsIGVycm9yKSBcCisgICAg
bWFjcm8oV2ViQXNzZW1ibHlJbnN0YW5jZSwgICAgIHdlYkFzc2VtYmx5SW5zdGFuY2UsICAgICB3
ZWJBc3NlbWJseUluc3RhbmNlLCAgICAgSlNXZWJBc3NlbWJseUluc3RhbmNlLCAgICAgSW5zdGFu
Y2UsICAgICBvYmplY3QpIFwKKyAgICBtYWNybyhXZWJBc3NlbWJseUxpbmtFcnJvciwgICAgd2Vi
QXNzZW1ibHlMaW5rRXJyb3IsICAgIHdlYkFzc2VtYmx5TGlua0Vycm9yLCAgICBKU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yLCAgICBMaW5rRXJyb3IsICAgIGVycm9yKSBcCisgICAgbWFjcm8oV2ViQXNz
ZW1ibHlNZW1vcnksICAgICAgIHdlYkFzc2VtYmx5TWVtb3J5LCAgICAgICB3ZWJBc3NlbWJseU1l
bW9yeSwgICAgICAgSlNXZWJBc3NlbWJseU1lbW9yeSwgICAgICAgTWVtb3J5LCAgICAgICBvYmpl
Y3QpIFwKKyAgICBtYWNybyhXZWJBc3NlbWJseU1vZHVsZSwgICAgICAgd2ViQXNzZW1ibHlNb2R1
bGUsICAgICAgIHdlYkFzc2VtYmx5TW9kdWxlLCAgICAgICBKU1dlYkFzc2VtYmx5TW9kdWxlLCAg
ICAgICBNb2R1bGUsICAgICAgIG9iamVjdCkgXAorICAgIG1hY3JvKFdlYkFzc2VtYmx5UnVudGlt
ZUVycm9yLCB3ZWJBc3NlbWJseVJ1bnRpbWVFcnJvciwgd2ViQXNzZW1ibHlSdW50aW1lRXJyb3Is
IEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIFJ1bnRpbWVFcnJvciwgZXJyb3IpIFwKKyAgICBt
YWNybyhXZWJBc3NlbWJseVRhYmxlLCAgICAgICAgd2ViQXNzZW1ibHlUYWJsZSwgICAgICAgIHdl
YkFzc2VtYmx5VGFibGUsICAgICAgICBKU1dlYkFzc2VtYmx5VGFibGUsICAgICAgICBUYWJsZSwg
ICAgICAgIG9iamVjdCkKICNlbHNlCiAjZGVmaW5lIEZPUl9FQUNIX1dFQkFTU0VNQkxZX0NPTlNU
UlVDVE9SX1RZUEUobWFjcm8pCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVF
cnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmNwcAppbmRleCA5NmZiODA1NmZlNTAyYjI5NGRjYWM1MGFlNzY3M2RkNjk2MDgz
OWYwLi5lOGRhNmM5NDc4OThkNzFjZjM0YmNkYjkzOTIxYmU5NWQyMzhlZDU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmNwcApAQCAtNTMsNyArNTMsNyBAQCBKU09iamVjdCogY3JlYXRlSlNXZWJBc3Nl
bWJseUNvbXBpbGVFcnJvcihFeGVjU3RhdGUqIGV4ZWMsIFZNJiB2bSwgY29uc3QgU3RyaW5nJgog
ewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwogICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7Ci0gICAgcmV0dXJuIEpT
V2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OmNyZWF0ZShleGVjLCB2bSwgZ2xvYmFsT2JqZWN0LT5X
ZWJBc3NlbWJseUNvbXBpbGVFcnJvclN0cnVjdHVyZSgpLCBtZXNzYWdlKTsKKyAgICByZXR1cm4g
SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6Y3JlYXRlKGV4ZWMsIHZtLCBnbG9iYWxPYmplY3Qt
PndlYkFzc2VtYmx5Q29tcGlsZUVycm9yU3RydWN0dXJlKCksIG1lc3NhZ2UpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCmluZGV4IGI5ZDdiODk2YWE2YzJiMGJkNmI3MmE0
NmJiZDU2MmY1OWM1ZDdjNWQuLmE2M2NmZjJmYjE4NzgwMzZmMTg1N2ZkNTdjYmQ4NGE0YmRjNDRm
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1i
bHlJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseUluc3RhbmNlLmNwcApAQCAtOTgsNyArOTgsNyBAQCB2b2lkIEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZTo6ZmluYWxpemVDcmVhdGlvbihWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgUmVmPFdh
c206OgogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGlm
ICghd2FzbUNvZGVCbG9jay0+cnVubmFibGUoKSkgewotICAgICAgICB0aHJvd0V4Y2VwdGlvbihl
eGVjLCBzY29wZSwgSlNXZWJBc3NlbWJseUxpbmtFcnJvcjo6Y3JlYXRlKGV4ZWMsIHZtLCBnbG9i
YWxPYmplY3Qodm0pLT5XZWJBc3NlbWJseUxpbmtFcnJvclN0cnVjdHVyZSgpLCB3YXNtQ29kZUJs
b2NrLT5lcnJvck1lc3NhZ2UoKSkpOworICAgICAgICB0aHJvd0V4Y2VwdGlvbihleGVjLCBzY29w
ZSwgSlNXZWJBc3NlbWJseUxpbmtFcnJvcjo6Y3JlYXRlKGV4ZWMsIHZtLCBnbG9iYWxPYmplY3Qo
dm0pLT53ZWJBc3NlbWJseUxpbmtFcnJvclN0cnVjdHVyZSgpLCB3YXNtQ29kZUJsb2NrLT5lcnJv
ck1lc3NhZ2UoKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMTQsNyArMTE0LDcg
QEAgdm9pZCBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OmZpbmFsaXplQ3JlYXRpb24oVk0mIHZtLCBF
eGVjU3RhdGUqIGV4ZWMsIFJlZjxXYXNtOjoKICAgICB9IGVsc2UgewogICAgICAgICBqc0NvZGVC
bG9jayA9IEpTV2ViQXNzZW1ibHlDb2RlQmxvY2s6OmNyZWF0ZSh2bSwgV1RGTW92ZSh3YXNtQ29k
ZUJsb2NrKSwgbW9kdWxlKCktPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkpOwogICAgICAg
ICBpZiAoVU5MSUtFTFkoIWpzQ29kZUJsb2NrLT5ydW5uYWJsZSgpKSkgewotICAgICAgICAgICAg
dGhyb3dFeGNlcHRpb24oZXhlYywgc2NvcGUsIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OmNyZWF0
ZShleGVjLCB2bSwgZ2xvYmFsT2JqZWN0KHZtKS0+V2ViQXNzZW1ibHlMaW5rRXJyb3JTdHJ1Y3R1
cmUoKSwganNDb2RlQmxvY2stPmVycm9yTWVzc2FnZSgpKSk7CisgICAgICAgICAgICB0aHJvd0V4
Y2VwdGlvbihleGVjLCBzY29wZSwgSlNXZWJBc3NlbWJseUxpbmtFcnJvcjo6Y3JlYXRlKGV4ZWMs
IHZtLCBnbG9iYWxPYmplY3Qodm0pLT53ZWJBc3NlbWJseUxpbmtFcnJvclN0cnVjdHVyZSgpLCBq
c0NvZGVCbG9jay0+ZXJyb3JNZXNzYWdlKCkpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogICAgICAgICBtX2NvZGVCbG9jay5zZXQodm0sIHRoaXMsIGpzQ29kZUJsb2NrKTsKQEAg
LTI3OCw3ICsyNzgsNyBAQCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIEpTV2ViQXNzZW1ibHlJbnN0
YW5jZTo6Y3JlYXRlKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBjbwogICAgICAgICAgICAgLy8g
V2UgY3JlYXRlIGEgbWVtb3J5IHdoZW4gaXQncyBhIG1lbW9yeSBkZWZpbml0aW9uLgogICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoIW1vZHVsZUluZm9ybWF0aW9uLm1lbW9yeS5pc0ltcG9ydCgp
KTsKIAotICAgICAgICAgICAgYXV0byoganNNZW1vcnkgPSBKU1dlYkFzc2VtYmx5TWVtb3J5Ojpj
cmVhdGUoZXhlYywgdm0sIGdsb2JhbE9iamVjdC0+V2ViQXNzZW1ibHlNZW1vcnlTdHJ1Y3R1cmUo
KSk7CisgICAgICAgICAgICBhdXRvKiBqc01lbW9yeSA9IEpTV2ViQXNzZW1ibHlNZW1vcnk6OmNy
ZWF0ZShleGVjLCB2bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseU1lbW9yeVN0cnVjdHVyZSgp
KTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgbnVsbHB0cik7
CiAKICAgICAgICAgICAgIFJlZlB0cjxXYXNtOjpNZW1vcnk+IG1lbW9yeSA9IFdhc206Ok1lbW9y
eTo6dHJ5Q3JlYXRlKG1vZHVsZUluZm9ybWF0aW9uLm1lbW9yeS5pbml0aWFsKCksIG1vZHVsZUlu
Zm9ybWF0aW9uLm1lbW9yeS5tYXhpbXVtKCksCkBAIC0yOTYsNyArMjk2LDcgQEAgSlNXZWJBc3Nl
bWJseUluc3RhbmNlKiBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OmNyZWF0ZShWTSYgdm0sIEV4ZWNT
dGF0ZSogZXhlYywgY28KICAgICAKICAgICBpZiAoIWpzSW5zdGFuY2UtPm1lbW9yeSgpKSB7CiAg
ICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIGEgZHVtbXkgbWVtb3J5LCBzbyB0aGF0IHdhc20g
LT4gd2FzbSB0aHVua3MgYXZvaWQgY2hlY2tpbmcgZm9yIGEgbnVsbHB0ciBNZW1vcnkgd2hlbiB0
cnlpbmcgdG8gc2V0IHBpbm5lZCByZWdpc3RlcnMuCi0gICAgICAgIGF1dG8qIGpzTWVtb3J5ID0g
SlNXZWJBc3NlbWJseU1lbW9yeTo6Y3JlYXRlKGV4ZWMsIHZtLCBnbG9iYWxPYmplY3QtPldlYkFz
c2VtYmx5TWVtb3J5U3RydWN0dXJlKCkpOworICAgICAgICBhdXRvKiBqc01lbW9yeSA9IEpTV2Vi
QXNzZW1ibHlNZW1vcnk6OmNyZWF0ZShleGVjLCB2bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJs
eU1lbW9yeVN0cnVjdHVyZSgpKTsKICAgICAgICAganNNZW1vcnktPmFkb3B0KFdhc206Ok1lbW9y
eTo6Y3JlYXRlKCkpOwogICAgICAgICBqc0luc3RhbmNlLT5zZXRNZW1vcnkodm0sIGpzTWVtb3J5
KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBudWxscHRyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlMaW5r
RXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxp
bmtFcnJvci5jcHAKaW5kZXggY2JlZjhjYTVkOTg1NTc5MmY3OGM1NjdhODBlN2NjMGY3YzBhM2Nm
OS4uOWRiNGE1OTYxZDQ0MmY5ODgyNDNkYjYwZDFlZjE0ZmRjNGVlYzQyOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJv
ci5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgSlNPYmplY3QqIGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5r
RXJyb3IoRXhlY1N0YXRlKiBleGVjLCBWTSYgdm0sIGNvbnN0IFN0cmluZyYgbWUKIHsKICAgICBB
U1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwotICAgIHJldHVybiBKU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yOjpjcmVhdGUoZXhlYywgdm0sIGdsb2JhbE9iamVjdC0+V2ViQXNzZW1ibHlM
aW5rRXJyb3JTdHJ1Y3R1cmUoKSwgbWVzc2FnZSk7CisgICAgcmV0dXJuIEpTV2ViQXNzZW1ibHlM
aW5rRXJyb3I6OmNyZWF0ZShleGVjLCB2bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseUxpbmtF
cnJvclN0cnVjdHVyZSgpLCBtZXNzYWdlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUu
Y3BwCmluZGV4IDM2NWJjNzBlODg0NDc0MzRkNWY4NWJmOWExMDkwNjA3MGZmMTU1YjAuLjcxOTA5
MDg0YTNjOGY1YjQ2OGQ3ODIwZjc0YjFmZmJmZDI0NzJhNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuY3BwCkBAIC00OCw3
ICs0OCw3IEBAIEpTV2ViQXNzZW1ibHlNb2R1bGUqIEpTV2ViQXNzZW1ibHlNb2R1bGU6OmNyZWF0
ZVN0dWIoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMsIFN0CiB7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIGlmICghcmVzdWx0Lmhhc192YWx1ZSgpKSB7Ci0g
ICAgICAgIGF1dG8qIGVycm9yID0gSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6Y3JlYXRlKGV4
ZWMsIHZtLCBzdHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgpLT5XZWJBc3NlbWJseUNvbXBpbGVFcnJv
clN0cnVjdHVyZSgpLCByZXN1bHQuZXJyb3IoKSk7CisgICAgICAgIGF1dG8qIGVycm9yID0gSlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6Y3JlYXRlKGV4ZWMsIHZtLCBzdHJ1Y3R1cmUtPmdsb2Jh
bE9iamVjdCgpLT53ZWJBc3NlbWJseUNvbXBpbGVFcnJvclN0cnVjdHVyZSgpLCByZXN1bHQuZXJy
b3IoKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAg
ICAgICB0aHJvd0V4Y2VwdGlvbihleGVjLCBzY29wZSwgZXJyb3IpOwogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBKU1dlYkFzc2VtYmx5TW9kdWxlOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0pCiAgICAgfQogCiAgICAgbV9leHBvcnRTeW1ib2xUYWJsZS5zZXQo
dm0sIHRoaXMsIGV4cG9ydFN5bWJvbFRhYmxlKTsKLSAgICBtX2NhbGxlZS5zZXQodm0sIHRoaXMs
IFdlYkFzc2VtYmx5VG9KU0NhbGxlZTo6Y3JlYXRlKHZtLCB0aGlzKSk7CisgICAgbV9jYWxsZWUu
c2V0KHZtLCB0aGlzLCBXZWJBc3NlbWJseVRvSlNDYWxsZWU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0KHZtKS0+d2ViQXNzZW1ibHlUb0pTQ2FsbGVlU3RydWN0dXJlKCksIHRoaXMpKTsKIH0KIAog
dm9pZCBKU1dlYkFzc2VtYmx5TW9kdWxlOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAppbmRleCA3OTJmMDJkMTI3ZWFhNGYx
ZGM0NzliMDZkODEyYWMyY2Y3YWEyY2FiLi41NzJiMDMwN2QwMzJjNDBiNTkyMzUzZTZiNmQ0MjNi
ZDZmY2RiYjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNt
VG9KUy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMuY3Bw
CkBAIC02NjAsNyArNjYwLDcgQEAgdm9pZCogd2FzbVRvSlNFeGNlcHRpb24oRXhlY1N0YXRlKiBl
eGVjLCBXYXNtOjpFeGNlcHRpb25UeXBlIHR5cGUsIEluc3RhbmNlKiB3YXMKICAgICAgICAgaWYg
KHR5cGUgPT0gRXhjZXB0aW9uVHlwZTo6U3RhY2tPdmVyZmxvdykKICAgICAgICAgICAgIGVycm9y
ID0gY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgIGVycm9yID0gSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjo6Y3Jl
YXRlKGV4ZWMsIHZtLCBnbG9iYWxPYmplY3QtPldlYkFzc2VtYmx5UnVudGltZUVycm9yU3RydWN0
dXJlKCksIFdhc206OmVycm9yTWVzc2FnZUZvckV4Y2VwdGlvblR5cGUodHlwZSkpOworICAgICAg
ICAgICAgZXJyb3IgPSBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpjcmVhdGUoZXhlYywgdm0s
IGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlSdW50aW1lRXJyb3JTdHJ1Y3R1cmUoKSwgV2FzbTo6
ZXJyb3JNZXNzYWdlRm9yRXhjZXB0aW9uVHlwZSh0eXBlKSk7CiAgICAgICAgIHRocm93RXhjZXB0
aW9uKGV4ZWMsIHRocm93U2NvcGUsIGVycm9yKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxl
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYzZlOTc4NjU1NjZhYmFkZTI2ZDZlZjFjNDkyMDcy
M2I1MTEzODRmNy4uN2Q3MDc5NTZiODJlMWU3YjEwZTVmZDI5YmM1MGRhMGJmODE2MzY1OSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxl
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJs
eUNvbXBpbGVFcnJvcihFeGVjU3RhdGUKICAgICBhdXRvJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgbWVzc2Fn
ZSA9IGV4ZWMtPmFyZ3VtZW50KDApOwotICAgIGF1dG8qIHN0cnVjdHVyZSA9IEludGVybmFsRnVu
Y3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGV4ZWMsIGV4ZWMtPm5ld1RhcmdldCgpLCBq
c0Nhc3Q8SW50ZXJuYWxGdW5jdGlvbio+KGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3Qo
dm0pLT5XZWJBc3NlbWJseUNvbXBpbGVFcnJvclN0cnVjdHVyZSgpKTsKKyAgICBhdXRvKiBzdHJ1
Y3R1cmUgPSBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShleGVjLCBl
eGVjLT5uZXdUYXJnZXQoKSwganNDYXN0PEludGVybmFsRnVuY3Rpb24qPihleGVjLT5qc0NhbGxl
ZSgpKS0+Z2xvYmFsT2JqZWN0KHZtKS0+d2ViQXNzZW1ibHlDb21waWxlRXJyb3JTdHJ1Y3R1cmUo
KSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNXZWJBc3NlbWJs
eUNvbXBpbGVFcnJvcjo6Y3JlYXRlKGV4ZWMsIHZtLCBzdHJ1Y3R1cmUsIG1lc3NhZ2UpKSk7CiB9
CkBAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnN0cnVjdEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IoRXhlY1N0YXRlCiBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcihFeGVj
U3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gZXhlYy0+YXJndW1lbnQoMCk7
Ci0gICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGpzQ2FzdDxJbnRlcm5hbEZ1bmN0aW9u
Kj4oZXhlYy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdChleGVjLT52bSgpKS0+V2ViQXNzZW1i
bHlDb21waWxlRXJyb3JTdHJ1Y3R1cmUoKTsKKyAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJl
ID0ganNDYXN0PEludGVybmFsRnVuY3Rpb24qPihleGVjLT5qc0NhbGxlZSgpKS0+Z2xvYmFsT2Jq
ZWN0KGV4ZWMtPnZtKCkpLT53ZWJBc3NlbWJseUNvbXBpbGVFcnJvclN0cnVjdHVyZSgpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGV4ZWMsIGVycm9y
U3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5j
dGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0
aW9uLmNwcAppbmRleCA1MGI5OTliMmI2ZWM2YzQ1NWY0N2RkZTMzYWZiYWJjNGEzOTA5Y2E1Li40
MjQ2OGVmMDIxZTRjYjgwMjdlNzBiNjk3OTQxN2M4OGI4MTk4NGUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcApAQCAt
MTQ4LDEwICsxNDgsOSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
V2ViQXNzZW1ibHlGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIHJhd1Jlc3Vs
dDsKIH0KIAotV2ViQXNzZW1ibHlGdW5jdGlvbiogV2ViQXNzZW1ibHlGdW5jdGlvbjo6Y3JlYXRl
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdW5zaWduZWQgbGVuZ3RoLCBj
b25zdCBTdHJpbmcmIG5hbWUsIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGFuY2UsIFdhc206
OkNhbGxlZSYganNFbnRyeXBvaW50LCBXYXNtOjpXYXNtVG9XYXNtSW1wb3J0YWJsZUZ1bmN0aW9u
OjpMb2FkTG9jYXRpb24gd2FzbVRvV2FzbUVudHJ5cG9pbnRMb2FkTG9jYXRpb24sIFdhc206OlNp
Z25hdHVyZUluZGV4IHNpZ25hdHVyZUluZGV4KQorV2ViQXNzZW1ibHlGdW5jdGlvbiogV2ViQXNz
ZW1ibHlGdW5jdGlvbjo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVkIGxlbmd0aCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RhbmNlLCBXYXNtOjpDYWxsZWUmIGpzRW50
cnlwb2ludCwgV2FzbTo6V2FzbVRvV2FzbUltcG9ydGFibGVGdW5jdGlvbjo6TG9hZExvY2F0aW9u
IHdhc21Ub1dhc21FbnRyeXBvaW50TG9hZExvY2F0aW9uLCBXYXNtOjpTaWduYXR1cmVJbmRleCBz
aWduYXR1cmVJbmRleCkKIHsKICAgICBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gdm0u
Z2V0SG9zdEZ1bmN0aW9uKGNhbGxXZWJBc3NlbWJseUZ1bmN0aW9uLCBOb0ludHJpbnNpYywgY2Fs
bEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IsIG51bGxwdHIsIG5hbWUpOwotICAgIFN0cnVjdHVy
ZSogc3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseUZ1bmN0aW9uU3RydWN0dXJl
KCk7CiAgICAgV2ViQXNzZW1ibHlGdW5jdGlvbiogZnVuY3Rpb24gPSBuZXcgKE5vdE51bGwsIGFs
bG9jYXRlQ2VsbDxXZWJBc3NlbWJseUZ1bmN0aW9uPih2bS5oZWFwKSkgV2ViQXNzZW1ibHlGdW5j
dGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGpzRW50cnlwb2ludCwgd2FzbVRvV2Fz
bUVudHJ5cG9pbnRMb2FkTG9jYXRpb24sIHNpZ25hdHVyZUluZGV4KTsKICAgICBmdW5jdGlvbi0+
ZmluaXNoQ3JlYXRpb24odm0sIGV4ZWN1dGFibGUsIGxlbmd0aCwgbmFtZSwgaW5zdGFuY2UpOwog
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIWZ1bmN0aW9uLT5pc0xhcmdlQWxsb2NhdGlvbigpLCAi
V2ViQXNzZW1ibHlGdW5jdGlvbiBzaG91bGQgYmUgYWxsb2NhdGVkIG5vdCBpbiBsYXJnZSBhbGxv
Y2F0aW9uIHNpbmNlIGl0IGlzIEpTQ2FsbGVlLiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5oCmluZGV4IGZlYWRlYzUzN2FhNGFl
MDM1NDUxMDIzMjdjODdkODhkOTlmNzlhNDEuLjNmOTcxZjJjMGVmNTA2Y2MxN2YzNGU3NDU5MjZj
YjE5OGU3MDliM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5RnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUZ1bmN0aW9uLmgKQEAgLTU3LDcgKzU3LDcgQEAgY2xhc3MgV2ViQXNzZW1ibHlG
dW5jdGlvbiBmaW5hbCA6IHB1YmxpYyBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZSB7CiAKICAgICBE
RUNMQVJFX0VYUE9SVF9JTkZPOwogCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFdlYkFz
c2VtYmx5RnVuY3Rpb24qIGNyZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYsIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSosIFdhc206OkNhbGxlZSYganNFbnRy
eXBvaW50LCBXYXNtVG9XYXNtSW1wb3J0YWJsZUZ1bmN0aW9uOjpMb2FkTG9jYXRpb24sIFdhc206
OlNpZ25hdHVyZUluZGV4KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgV2ViQXNzZW1i
bHlGdW5jdGlvbiogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJiwgSlNXZWJBc3NlbWJseUluc3RhbmNlKiwgV2FzbTo6Q2FsbGVl
JiBqc0VudHJ5cG9pbnQsIFdhc21Ub1dhc21JbXBvcnRhYmxlRnVuY3Rpb246OkxvYWRMb2NhdGlv
biwgV2FzbTo6U2lnbmF0dXJlSW5kZXgpOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CiAKICAgICBXYXNtOjpTaWdu
YXR1cmVJbmRleCBzaWduYXR1cmVJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wb3J0YWJsZUZ1
bmN0aW9uLnNpZ25hdHVyZUluZGV4OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcApp
bmRleCBlY2JkNTg3YWVmNjQ5NTMzMTZiZGY0Yzc4YjIxYTY3NWRjNDdmZjU2Li41NDhhM2Y5NmZm
MGUxYTkxZTJmYWUzZWI5NTc1ZjExZTljODZlYzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1
Y3Rvci5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJseUluc3RhbmNlKEV4ZWNTdGF0ZSogZXgKICAgICBp
ZiAoIWltcG9ydEFyZ3VtZW50LmlzVW5kZWZpbmVkKCkgJiYgIWltcG9ydE9iamVjdCkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihleGVjLCBzY29wZSwgY3Jl
YXRlVHlwZUVycm9yKGV4ZWMsICJzZWNvbmQgYXJndW1lbnQgdG8gV2ViQXNzZW1ibHkuSW5zdGFu
Y2UgbXVzdCBiZSB1bmRlZmluZWQgb3IgYW4gT2JqZWN0Il9zLCBkZWZhdWx0U291cmNlQXBwZW5k
ZXIsIHJ1bnRpbWVUeXBlRm9yVmFsdWUodm0sIGltcG9ydEFyZ3VtZW50KSkpKTsKICAgICAKLSAg
ICBTdHJ1Y3R1cmUqIGluc3RhbmNlU3RydWN0dXJlID0gSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRl
U3ViY2xhc3NTdHJ1Y3R1cmUoZXhlYywgZXhlYy0+bmV3VGFyZ2V0KCksIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKS0+V2ViQXNzZW1ibHlJbnN0YW5jZVN0cnVjdHVyZSgpKTsKKyAgICBTdHJ1
Y3R1cmUqIGluc3RhbmNlU3RydWN0dXJlID0gSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xh
c3NTdHJ1Y3R1cmUoZXhlYywgZXhlYy0+bmV3VGFyZ2V0KCksIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKS0+d2ViQXNzZW1ibHlJbnN0YW5jZVN0cnVjdHVyZSgpKTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0
YW5jZSA9IEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6Y3JlYXRlKHZtLCBleGVjLCBKU1dlYkFzc2Vt
Ymx5SW5zdGFuY2U6OmNyZWF0ZVByaXZhdGVNb2R1bGVLZXkoKSwgbW9kdWxlLCBpbXBvcnRPYmpl
Y3QsIGluc3RhbmNlU3RydWN0dXJlLCBSZWY8V2FzbTo6TW9kdWxlPihtb2R1bGUtPm1vZHVsZSgp
KSwgV2FzbTo6Q3JlYXRpb25Nb2RlOjpGcm9tSlMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVj
dG9yLmNwcAppbmRleCBhZDg5NDQ2MGFjNjQ2MDU4MWQ5ZDM5ZjQ1MDQ5YTU0ODEzMTU4M2ZiLi4z
YmQ0YTc4MDQ3ZTM3ZDEwMzFhOTJmOGM1OTlhYmVjZjI5MTIwYWViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtF
cnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TGlua0Vycm9yKEV4ZWNTdGF0
ZSogZQogICAgIGF1dG8mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gZXhlYy0+YXJndW1lbnQo
MCk7Ci0gICAgYXV0byogc3RydWN0dXJlID0gSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xh
c3NTdHJ1Y3R1cmUoZXhlYywgZXhlYy0+bmV3VGFyZ2V0KCksIGpzQ2FzdDxJbnRlcm5hbEZ1bmN0
aW9uKj4oZXhlYy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdCh2bSktPldlYkFzc2VtYmx5TGlu
a0Vycm9yU3RydWN0dXJlKCkpOworICAgIGF1dG8qIHN0cnVjdHVyZSA9IEludGVybmFsRnVuY3Rp
b246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGV4ZWMsIGV4ZWMtPm5ld1RhcmdldCgpLCBqc0Nh
c3Q8SW50ZXJuYWxGdW5jdGlvbio+KGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3Qodm0p
LT53ZWJBc3NlbWJseUxpbmtFcnJvclN0cnVjdHVyZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OmNyZWF0ZShleGVjLCB2bSwgc3RydWN0dXJlLCBtZXNz
YWdlKSk7CiB9CkBAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoRXhlY1N0YXRlKiBlCiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3NlbWJseUxpbmtFcnJv
cihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gZXhlYy0+YXJndW1l
bnQoMCk7Ci0gICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGpzQ2FzdDxJbnRlcm5hbEZ1
bmN0aW9uKj4oZXhlYy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdChleGVjLT52bSgpKS0+V2Vi
QXNzZW1ibHlMaW5rRXJyb3JTdHJ1Y3R1cmUoKTsKKyAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0
dXJlID0ganNDYXN0PEludGVybmFsRnVuY3Rpb24qPihleGVjLT5qc0NhbGxlZSgpKS0+Z2xvYmFs
T2JqZWN0KGV4ZWMtPnZtKCkpLT53ZWJBc3NlbWJseUxpbmtFcnJvclN0cnVjdHVyZSgpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGV4ZWMsIGVycm9y
U3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1v
cnlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcAppbmRleCBjZDRjMGQwMGVmMzVjNjBmN2M5YjEwZDY2
OGFjNzY0NWQ1MjgzZDEzLi44NmY5ZDhiMTNlMzNhNzNkY2IyNDkxMmExYTQ4ZTA5YzIwZTg3YmY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1l
bW9yeUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcApAQCAtOTgsNyArOTgsNyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TWVtb3J5
KEV4ZWNTdGF0ZSogZXhlYwogICAgICAgICB9CiAgICAgfQogCi0gICAgYXV0byoganNNZW1vcnkg
PSBKU1dlYkFzc2VtYmx5TWVtb3J5OjpjcmVhdGUoZXhlYywgdm0sIGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKS0+V2ViQXNzZW1ibHlNZW1vcnlTdHJ1Y3R1cmUoKSk7CisgICAgYXV0byoganNN
ZW1vcnkgPSBKU1dlYkFzc2VtYmx5TWVtb3J5OjpjcmVhdGUoZXhlYywgdm0sIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+d2ViQXNzZW1ibHlNZW1vcnlTdHJ1Y3R1cmUoKSk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAogICAgIFJl
ZlB0cjxXYXNtOjpNZW1vcnk+IG1lbW9yeSA9IFdhc206Ok1lbW9yeTo6dHJ5Q3JlYXRlKGluaXRp
YWxQYWdlQ291bnQsIG1heGltdW1QYWdlQ291bnQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3Bw
CmluZGV4IGMxMDFiOGY2MWRmZWI0YjIwYTRmMjY3NWYyNGZjODlkYzhkNjIxOTIuLmQ5NmM0ZWM0
NDQ1MGE5M2QzMGRiNGYyYmNiY2RiYzUwZGZkNGQyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0
b3IuY3BwCkBAIC0xODEsNyArMTgxLDcgQEAgSlNXZWJBc3NlbWJseU1vZHVsZSogV2ViQXNzZW1i
bHlNb2R1bGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywKICAgICBW
TSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKIAotICAgIGF1dG8qIHN0cnVjdHVyZSA9IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1
YmNsYXNzU3RydWN0dXJlKGV4ZWMsIGV4ZWMtPm5ld1RhcmdldCgpLCBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCktPldlYkFzc2VtYmx5TW9kdWxlU3RydWN0dXJlKCkpOworICAgIGF1dG8qIHN0
cnVjdHVyZSA9IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGV4ZWMs
IGV4ZWMtPm5ld1RhcmdldCgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPndlYkFzc2Vt
Ymx5TW9kdWxlU3RydWN0dXJlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51
bGxwdHIpOwogCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1dlYkFzc2VtYmx5TW9k
dWxlOjpjcmVhdGVTdHViKHZtLCBleGVjLCBzdHJ1Y3R1cmUsIFdhc206Ok1vZHVsZTo6dmFsaWRh
dGVTeW5jKCZ2bS53YXNtQ29udGV4dCwgV1RGTW92ZShidWZmZXIpKSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQu
Y3BwCmluZGV4IGI2N2MwNWUxMmNmZmNmYjlkODA5MTU1MDM5NTViNTFlZWYwMGFkZGMuLjM3NjU1
NTJjMWI1YWEyZjdiYzcwZTc0M2Y4NGYwMzM2N2JiMTJlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAK
QEAgLTMwMSw3ICszMDEsNyBAQCB2b2lkIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjpsaW5rKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSwgSlNPYmplY3QqIGltcG9ydE9iagogICAgICAgICAgICAg
UmVmUHRyPFdhc206OlRhYmxlPiB3YXNtVGFibGUgPSBXYXNtOjpUYWJsZTo6dHJ5Q3JlYXRlKG1v
ZHVsZUluZm9ybWF0aW9uLnRhYmxlSW5mb3JtYXRpb24uaW5pdGlhbCgpLCBtb2R1bGVJbmZvcm1h
dGlvbi50YWJsZUluZm9ybWF0aW9uLm1heGltdW0oKSk7CiAgICAgICAgICAgICBpZiAoIXdhc21U
YWJsZSkKICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1i
bHlMaW5rRXJyb3IoZXhlYywgdm0sICJjb3VsZG4ndCBjcmVhdGUgVGFibGUiKSk7Ci0gICAgICAg
ICAgICBKU1dlYkFzc2VtYmx5VGFibGUqIHRhYmxlID0gSlNXZWJBc3NlbWJseVRhYmxlOjpjcmVh
dGUoZXhlYywgdm0sIGdsb2JhbE9iamVjdC0+V2ViQXNzZW1ibHlUYWJsZVN0cnVjdHVyZSgpLCB3
YXNtVGFibGUucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgICAgICBKU1dlYkFzc2VtYmx5VGFi
bGUqIHRhYmxlID0gSlNXZWJBc3NlbWJseVRhYmxlOjpjcmVhdGUoZXhlYywgdm0sIGdsb2JhbE9i
amVjdC0+d2ViQXNzZW1ibHlUYWJsZVN0cnVjdHVyZSgpLCB3YXNtVGFibGUucmVsZWFzZU5vbk51
bGwoKSk7CiAgICAgICAgICAgICAvLyBXZSBzaG91bGQgYWx3YXlzIGJlIGFibGUgdG8gYWxsb2Nh
dGUgYSBKU1dlYkFzc2VtYmx5VGFibGUgd2UndmUgZGVmaW5lZC4KICAgICAgICAgICAgIC8vIElm
IGl0J3MgZGVmaW5lZCB0byBiZSB0b28gbGFyZ2UsIHdlIHNob3VsZCBoYXZlIHRocm93biBhIHZh
bGlkYXRpb24gZXJyb3IuCiAgICAgICAgICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwpA
QCAtMzQzLDcgKzM0Myw3IEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmxpbmsoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBKU09iamVjdCogaW1wb3J0T2JqCiAgICAgICAgICAgICAg
ICAgICAgIGV4cG9ydGVkVmFsdWUgPSBmdW5jdGlvbkltcG9ydDsKICAgICAgICAgICAgICAgICBl
bHNlIHsKICAgICAgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggc2lnbmF0dXJl
SW5kZXggPSBtb2R1bGUtPnNpZ25hdHVyZUluZGV4RnJvbUZ1bmN0aW9uSW5kZXhTcGFjZShmdW5j
dGlvbkluZGV4KTsKLSAgICAgICAgICAgICAgICAgICAgZXhwb3J0ZWRWYWx1ZSA9IFdlYkFzc2Vt
Ymx5V3JhcHBlckZ1bmN0aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgZnVuY3Rpb25JbXBv
cnQsIGZ1bmN0aW9uSW5kZXgsIG1faW5zdGFuY2UuZ2V0KCksIHNpZ25hdHVyZUluZGV4KTsKKyAg
ICAgICAgICAgICAgICAgICAgZXhwb3J0ZWRWYWx1ZSA9IFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0
aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseVdy
YXBwZXJGdW5jdGlvblN0cnVjdHVyZSgpLCBmdW5jdGlvbkltcG9ydCwgZnVuY3Rpb25JbmRleCwg
bV9pbnN0YW5jZS5nZXQoKSwgc2lnbmF0dXJlSW5kZXgpOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8gICBpaWkuIE90aGVyd2lzZToK
QEAgLTM1NCw3ICszNTQsNyBAQCB2b2lkIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjpsaW5rKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSwgSlNPYmplY3QqIGltcG9ydE9iagogICAgICAgICAgICAg
ICAgIFdhc206Oldhc21Ub1dhc21JbXBvcnRhYmxlRnVuY3Rpb246OkxvYWRMb2NhdGlvbiBlbnRy
eXBvaW50TG9hZExvY2F0aW9uID0gY29kZUJsb2NrLT5lbnRyeXBvaW50TG9hZExvY2F0aW9uRnJv
bUZ1bmN0aW9uSW5kZXhTcGFjZShleHAua2luZEluZGV4KTsKICAgICAgICAgICAgICAgICBXYXNt
OjpTaWduYXR1cmVJbmRleCBzaWduYXR1cmVJbmRleCA9IG1vZHVsZS0+c2lnbmF0dXJlSW5kZXhG
cm9tRnVuY3Rpb25JbmRleFNwYWNlKGV4cC5raW5kSW5kZXgpOwogICAgICAgICAgICAgICAgIGNv
bnN0IFdhc206OlNpZ25hdHVyZSYgc2lnbmF0dXJlID0gV2FzbTo6U2lnbmF0dXJlSW5mb3JtYXRp
b246OmdldChzaWduYXR1cmVJbmRleCk7Ci0gICAgICAgICAgICAgICAgV2ViQXNzZW1ibHlGdW5j
dGlvbiogZnVuY3Rpb24gPSBXZWJBc3NlbWJseUZ1bmN0aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9i
amVjdCwgc2lnbmF0dXJlLmFyZ3VtZW50Q291bnQoKSwgU3RyaW5nOjpmcm9tVVRGOChleHAuZmll
bGQpLCBtX2luc3RhbmNlLmdldCgpLCBlbWJlZGRlckVudHJ5cG9pbnRDYWxsZWUsIGVudHJ5cG9p
bnRMb2FkTG9jYXRpb24sIHNpZ25hdHVyZUluZGV4KTsKKyAgICAgICAgICAgICAgICBXZWJBc3Nl
bWJseUZ1bmN0aW9uKiBmdW5jdGlvbiA9IFdlYkFzc2VtYmx5RnVuY3Rpb246OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5RnVuY3Rpb25TdHJ1Y3R1cmUo
KSwgc2lnbmF0dXJlLmFyZ3VtZW50Q291bnQoKSwgU3RyaW5nOjpmcm9tVVRGOChleHAuZmllbGQp
LCBtX2luc3RhbmNlLmdldCgpLCBlbWJlZGRlckVudHJ5cG9pbnRDYWxsZWUsIGVudHJ5cG9pbnRM
b2FkTG9jYXRpb24sIHNpZ25hdHVyZUluZGV4KTsKICAgICAgICAgICAgICAgICBleHBvcnRlZFZh
bHVlID0gZnVuY3Rpb247CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTQy
NCw3ICs0MjQsNyBAQCB2b2lkIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjpsaW5rKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSwgSlNPYmplY3QqIGltcG9ydE9iagogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgV2FzbTo6Q2FsbGVlJiBlbWJlZGRlckVudHJ5cG9pbnRDYWxsZWUgPSBjb2Rl
QmxvY2stPmVtYmVkZGVyRW50cnlwb2ludENhbGxlZUZyb21GdW5jdGlvbkluZGV4U3BhY2Uoc3Rh
cnRGdW5jdGlvbkluZGV4U3BhY2UpOwogICAgICAgICAgICAgV2FzbTo6V2FzbVRvV2FzbUltcG9y
dGFibGVGdW5jdGlvbjo6TG9hZExvY2F0aW9uIGVudHJ5cG9pbnRMb2FkTG9jYXRpb24gPSBjb2Rl
QmxvY2stPmVudHJ5cG9pbnRMb2FkTG9jYXRpb25Gcm9tRnVuY3Rpb25JbmRleFNwYWNlKHN0YXJ0
RnVuY3Rpb25JbmRleFNwYWNlKTsKLSAgICAgICAgICAgIFdlYkFzc2VtYmx5RnVuY3Rpb24qIGZ1
bmN0aW9uID0gV2ViQXNzZW1ibHlGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHNp
Z25hdHVyZS5hcmd1bWVudENvdW50KCksICJzdGFydCIsIG1faW5zdGFuY2UuZ2V0KCksIGVtYmVk
ZGVyRW50cnlwb2ludENhbGxlZSwgZW50cnlwb2ludExvYWRMb2NhdGlvbiwgc2lnbmF0dXJlSW5k
ZXgpOworICAgICAgICAgICAgV2ViQXNzZW1ibHlGdW5jdGlvbiogZnVuY3Rpb24gPSBXZWJBc3Nl
bWJseUZ1bmN0aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT53ZWJB
c3NlbWJseUZ1bmN0aW9uU3RydWN0dXJlKCksIHNpZ25hdHVyZS5hcmd1bWVudENvdW50KCksICJz
dGFydCIsIG1faW5zdGFuY2UuZ2V0KCksIGVtYmVkZGVyRW50cnlwb2ludENhbGxlZSwgZW50cnlw
b2ludExvYWRMb2NhdGlvbiwgc2lnbmF0dXJlSW5kZXgpOwogICAgICAgICAgICAgbV9zdGFydEZ1
bmN0aW9uLnNldCh2bSwgdGhpcywgZnVuY3Rpb24pOwogICAgICAgICB9CiAgICAgfQpAQCAtNTMz
LDcgKzUzMyw3IEBAIEpTVmFsdWUgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmV2YWx1YXRlKEV4
ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICB0YWJs
ZS0+c2V0RnVuY3Rpb24odm0sIHRhYmxlSW5kZXgsCi0gICAgICAgICAgICAgICAgICAgIFdlYkFz
c2VtYmx5V3JhcHBlckZ1bmN0aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgZnVuY3Rpb25J
bXBvcnQsIGZ1bmN0aW9uSW5kZXgsIG1faW5zdGFuY2UuZ2V0KCksIHNpZ25hdHVyZUluZGV4KSk7
CisgICAgICAgICAgICAgICAgICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlv
blN0cnVjdHVyZSgpLCBmdW5jdGlvbkltcG9ydCwgZnVuY3Rpb25JbmRleCwgbV9pbnN0YW5jZS5n
ZXQoKSwgc2lnbmF0dXJlSW5kZXgpKTsKICAgICAgICAgICAgICAgICArK3RhYmxlSW5kZXg7CiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CkBAIC01NDYsNyArNTQ2LDcg
QEAgSlNWYWx1ZSBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6ZXZhbHVhdGUoRXhlY1N0YXRlKiBl
eGVjKQogICAgICAgICAgICAgLy8gRG9lcyAobmV3IEluc3RhbmNlKC4uLikpLmV4cG9ydHMuZm9v
ID09PSB0YWJsZS5nZXQoMCk/CiAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY1ODI1CiAgICAgICAgICAgICBXZWJBc3NlbWJseUZ1bmN0aW9u
KiBmdW5jdGlvbiA9IFdlYkFzc2VtYmx5RnVuY3Rpb246OmNyZWF0ZSgKLSAgICAgICAgICAgICAg
ICB2bSwgZ2xvYmFsT2JqZWN0LCBzaWduYXR1cmUuYXJndW1lbnRDb3VudCgpLCBTdHJpbmcoKSwg
bV9pbnN0YW5jZS5nZXQoKSwgZW1iZWRkZXJFbnRyeXBvaW50Q2FsbGVlLCBlbnRyeXBvaW50TG9h
ZExvY2F0aW9uLCBzaWduYXR1cmVJbmRleCk7CisgICAgICAgICAgICAgICAgdm0sIGdsb2JhbE9i
amVjdCwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseUZ1bmN0aW9uU3RydWN0dXJlKCksIHNpZ25h
dHVyZS5hcmd1bWVudENvdW50KCksIFN0cmluZygpLCBtX2luc3RhbmNlLmdldCgpLCBlbWJlZGRl
ckVudHJ5cG9pbnRDYWxsZWUsIGVudHJ5cG9pbnRMb2FkTG9jYXRpb24sIHNpZ25hdHVyZUluZGV4
KTsKIAogICAgICAgICAgICAgdGFibGUtPnNldEZ1bmN0aW9uKHZtLCB0YWJsZUluZGV4LCBmdW5j
dGlvbik7CiAgICAgICAgICAgICArK3RhYmxlSW5kZXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAKaW5kZXggNjViMDNk
OTQzMzJhNWJkNTRmNGI2NzVmMmFhMmMxZjk4MjcxNWZlYS4uMjBjMzRiMmFhZTg1YzhkNjNlM2Vh
YjA0Nzk4OTMyOWQzMDRmMWMzYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmNwcApAQCAtOTcsNyArOTcsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJBc3NlbWJseU1vZHVsZVZhbGlkYXRlQXN5bmNJbnRlcm5hbChFeGVjU3RhdGUq
IGV4ZWMsIEpTUHJvbWlzZURlZgogICAgICAgICB2bS5wcm9taXNlRGVmZXJyZWRUaW1lci0+c2No
ZWR1bGVXb3JrU29vbihwcm9taXNlLCBbcHJvbWlzZSwgZ2xvYmFsT2JqZWN0LCByZXN1bHQgPSBX
VEZNb3ZlKHJlc3VsdCksICZ2bV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAgICAgICAgICAgICBFeGVjU3RhdGUqIGV4ZWMg
PSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKLSAgICAgICAgICAgIEpTVmFsdWUgbW9kdWxl
ID0gSlNXZWJBc3NlbWJseU1vZHVsZTo6Y3JlYXRlU3R1Yih2bSwgZXhlYywgZ2xvYmFsT2JqZWN0
LT5XZWJBc3NlbWJseU1vZHVsZVN0cnVjdHVyZSgpLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAg
ICAgICAgSlNWYWx1ZSBtb2R1bGUgPSBKU1dlYkFzc2VtYmx5TW9kdWxlOjpjcmVhdGVTdHViKHZt
LCBleGVjLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5TW9kdWxlU3RydWN0dXJlKCksIFdURk1v
dmUocmVzdWx0KSk7CiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkp
KSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KGV4ZWMsIHNjb3BlLCBwcm9taXNlKTsKICAgICAg
ICAgICAgICAgICByZXR1cm47CkBAIC0xNjYsNyArMTY2LDcgQEAgc3RhdGljIHZvaWQgaW5zdGFu
dGlhdGUoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMsIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNl
LCBKU1cKIHsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAgICAg
Ly8gSW4gb3JkZXIgdG8gYXZvaWQgcG90ZW50aWFsbHkgcmVjb21waWxpbmcgYSBtb2R1bGUuIFdl
IGZpcnN0IGdhdGhlciBhbGwgdGhlIGltcG9ydC9tZW1vcnkgaW5mb3JtYXRpb24gcHJpb3IgdG8g
Y29tcGlsaW5nIGNvZGUuCi0gICAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSA9IEpT
V2ViQXNzZW1ibHlJbnN0YW5jZTo6Y3JlYXRlKHZtLCBleGVjLCBtb2R1bGVLZXksIG1vZHVsZSwg
aW1wb3J0T2JqZWN0LCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPldlYkFzc2VtYmx5SW5z
dGFuY2VTdHJ1Y3R1cmUoKSwgUmVmPFdhc206Ok1vZHVsZT4obW9kdWxlLT5tb2R1bGUoKSksIGNy
ZWF0aW9uTW9kZSk7CisgICAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSA9IEpTV2Vi
QXNzZW1ibHlJbnN0YW5jZTo6Y3JlYXRlKHZtLCBleGVjLCBtb2R1bGVLZXksIG1vZHVsZSwgaW1w
b3J0T2JqZWN0LCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPndlYkFzc2VtYmx5SW5zdGFu
Y2VTdHJ1Y3R1cmUoKSwgUmVmPFdhc206Ok1vZHVsZT4obW9kdWxlLT5tb2R1bGUoKSksIGNyZWF0
aW9uTW9kZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgcmVqZWN0KGV4ZWMsIHNj
b3BlLCBwcm9taXNlKSk7CiAKICAgICBWZWN0b3I8U3Ryb25nPEpTQ2VsbD4+IGRlcGVuZGVuY2ll
czsKQEAgLTIwMyw3ICsyMDMsNyBAQCBzdGF0aWMgdm9pZCBjb21waWxlQW5kSW5zdGFudGlhdGUo
Vk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMsIEpTUHJvbWlzZURlZmVycmVkKiBwcgogICAgICAgICB2
bS5wcm9taXNlRGVmZXJyZWRUaW1lci0+c2NoZWR1bGVXb3JrU29vbihwcm9taXNlLCBbcHJvbWlz
ZSwgaW1wb3J0T2JqZWN0LCBtb2R1bGVLZXlDZWxsLCBnbG9iYWxPYmplY3QsIHJlc3VsdCA9IFdU
Rk1vdmUocmVzdWx0KSwgcmVzb2x2ZUtpbmQsIGNyZWF0aW9uTW9kZSwgJnZtXSAoKSBtdXRhYmxl
IHsKICAgICAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKICAg
ICAgICAgICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwot
ICAgICAgICAgICAgSlNXZWJBc3NlbWJseU1vZHVsZSogbW9kdWxlID0gSlNXZWJBc3NlbWJseU1v
ZHVsZTo6Y3JlYXRlU3R1Yih2bSwgZXhlYywgZ2xvYmFsT2JqZWN0LT5XZWJBc3NlbWJseU1vZHVs
ZVN0cnVjdHVyZSgpLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgSlNXZWJBc3NlbWJs
eU1vZHVsZSogbW9kdWxlID0gSlNXZWJBc3NlbWJseU1vZHVsZTo6Y3JlYXRlU3R1Yih2bSwgZXhl
YywgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseU1vZHVsZVN0cnVjdHVyZSgpLCBXVEZNb3ZlKHJl
c3VsdCkpOwogICAgICAgICAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gcmVqZWN0KGV4ZWMsIHNjb3BlLCBwcm9taXNlKTsKIApAQCAt
MjM3LDcgKzIzNyw3IEBAIHN0YXRpYyB2b2lkIHdlYkFzc2VtYmx5TW9kdWxlSW5zdGFudGluYXRl
QXN5bmNJbnRlcm5hbChFeGVjU3RhdGUqIGV4ZWMsIEpTUHJvbWlzCiAgICAgICAgIHZtLnByb21p
c2VEZWZlcnJlZFRpbWVyLT5zY2hlZHVsZVdvcmtTb29uKHByb21pc2UsIFtwcm9taXNlLCBpbXBv
cnRPYmplY3QsIGdsb2JhbE9iamVjdCwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpLCAmdm1dICgp
IG11dGFibGUgewogICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUo
dm0pOwogICAgICAgICAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxF
eGVjKCk7Ci0gICAgICAgICAgICBKU1dlYkFzc2VtYmx5TW9kdWxlKiBtb2R1bGUgPSBKU1dlYkFz
c2VtYmx5TW9kdWxlOjpjcmVhdGVTdHViKHZtLCBleGVjLCBnbG9iYWxPYmplY3QtPldlYkFzc2Vt
Ymx5TW9kdWxlU3RydWN0dXJlKCksIFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICBKU1dl
YkFzc2VtYmx5TW9kdWxlKiBtb2R1bGUgPSBKU1dlYkFzc2VtYmx5TW9kdWxlOjpjcmVhdGVTdHVi
KHZtLCBleGVjLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5TW9kdWxlU3RydWN0dXJlKCksIFdU
Rk1vdmUocmVzdWx0KSk7CiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9u
KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiByZWplY3QoZXhlYywgc2NvcGUsIHByb21pc2Up
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IGEwYjhjMWM3
NzVlYTBkZWJjMDNjNzhmZjkyODFhOWVlZjdmM2M4YzYuLmQyOWI5YTk0MDZhMjYxMzY0ZDZhZjUx
ZDZiMzg5NjMzMGVjNGNlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3Iu
Y3BwCkBAIC00OSw3ICs0OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoRXhlY1N0YXRlCiAgICAgYXV0byYg
dm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBleGVjLT5hcmd1bWVudCgwKTsKLSAgICBhdXRvKiBz
dHJ1Y3R1cmUgPSBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShleGVj
LCBleGVjLT5uZXdUYXJnZXQoKSwganNDYXN0PEludGVybmFsRnVuY3Rpb24qPihleGVjLT5qc0Nh
bGxlZSgpKS0+Z2xvYmFsT2JqZWN0KHZtKS0+V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JTdHJ1Y3R1
cmUoKSk7CisgICAgYXV0byogc3RydWN0dXJlID0gSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3Vi
Y2xhc3NTdHJ1Y3R1cmUoZXhlYywgZXhlYy0+bmV3VGFyZ2V0KCksIGpzQ2FzdDxJbnRlcm5hbEZ1
bmN0aW9uKj4oZXhlYy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdCh2bSktPndlYkFzc2VtYmx5
UnVudGltZUVycm9yU3RydWN0dXJlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNXZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvcjo6Y3JlYXRlKGV4ZWMsIHZtLCBzdHJ1Y3R1cmUsIG1lc3NhZ2UpKTsK
IH0KQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihFeGVjU3RhdGUKIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKEV4
ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBleGVjLT5hcmd1bWVudCgw
KTsKLSAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0ganNDYXN0PEludGVybmFsRnVuY3Rp
b24qPihleGVjLT5qc0NhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0KGV4ZWMtPnZtKCkpLT5XZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvclN0cnVjdHVyZSgpOworICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1
cmUgPSBqc0Nhc3Q8SW50ZXJuYWxGdW5jdGlvbio+KGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxP
YmplY3QoZXhlYy0+dm0oKSktPndlYkFzc2VtYmx5UnVudGltZUVycm9yU3RydWN0dXJlKCk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZXhlYywgZXJy
b3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRh
YmxlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcAppbmRleCBhNDE1Mzg1YmJhNDM5Y2E0MWQxNWQ5Nzdj
Y2VkNjNhOTc3YmVmN2U0Li4xYTJlYWE3YWIyNjIyZDMxNDAwYmNjZjk5YTA2MTdiN2UyZTM3MmJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRh
YmxlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTk2LDcgKzk2LDcgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJseVRhYmxlKEV4
ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywgImNvdWxk
bid0IGNyZWF0ZSBUYWJsZSJfcykpKTsKICAgICB9CiAKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTV2ViQXNzZW1ibHlUYWJsZTo6Y3JlYXRlKGV4
ZWMsIHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPldlYkFzc2VtYmx5VGFibGVTdHJ1
Y3R1cmUoKSwgd2FzbVRhYmxlLnJlbGVhc2VOb25OdWxsKCkpKSk7CisgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZShKU1dlYkFzc2VtYmx5VGFibGU6OmNy
ZWF0ZShleGVjLCB2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT53ZWJBc3NlbWJseVRh
YmxlU3RydWN0dXJlKCksIHdhc21UYWJsZS5yZWxlYXNlTm9uTnVsbCgpKSkpOwogfQogCiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3NlbWJseVRhYmxlKEV4
ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5VG9KU0NhbGxlZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseVRvSlNDYWxsZWUuY3BwCmluZGV4IDU1MGQ3YTkyZTljNTgxZjRjNDRiMGIz
ZmNhODYwZWZkYzIzMTZhOGMuLmZlMWEwMThkMDFhZDliMDdlOTAwYjNmY2U5NDI1OTEyNDFiYzQ4
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
VG9KU0NhbGxlZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlUb0pTQ2FsbGVlLmNwcApAQCAtMzUsOSArMzUsOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
Y29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5VG9KU0NhbGxlZTo6c19pbmZvID0geyAiV2ViQXNz
ZW1ibHlUb0pTQ2FsbGVlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShXZWJBc3NlbWJseVRvSlNDYWxsZWUpIH07CiAKLVdlYkFzc2VtYmx5VG9K
U0NhbGxlZSogV2ViQXNzZW1ibHlUb0pTQ2FsbGVlOjpjcmVhdGUoVk0mIHZtLCBKU1dlYkFzc2Vt
Ymx5TW9kdWxlKiBtb2R1bGUpCitXZWJBc3NlbWJseVRvSlNDYWxsZWUqIFdlYkFzc2VtYmx5VG9K
U0NhbGxlZTo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTV2ViQXNzZW1i
bHlNb2R1bGUqIG1vZHVsZSkKIHsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG1vZHVsZS0+
Z2xvYmFsT2JqZWN0KHZtKS0+d2ViQXNzZW1ibHlUb0pTQ2FsbGVlU3RydWN0dXJlKCk7CiAgICAg
V2ViQXNzZW1ibHlUb0pTQ2FsbGVlKiBjYWxsZWUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2Vs
bDxXZWJBc3NlbWJseVRvSlNDYWxsZWU+KHZtLmhlYXApKSBXZWJBc3NlbWJseVRvSlNDYWxsZWUo
dm0sIHN0cnVjdHVyZSk7CiAgICAgY2FsbGVlLT5maW5pc2hDcmVhdGlvbih2bSwgbW9kdWxlKTsK
ICAgICByZXR1cm4gY2FsbGVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlUb0pTQ2FsbGVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVRvSlNDYWxsZWUuaAppbmRleCBhNDZiYWY5NTA0NWMxMDg1ZjVhOGMw
MzdmYTFkZTExODkzYTdkYmEwLi5lYjRlOTcyOTQ0NmM0Njg4ZjQwYjE4MjU4NGQ3OGRjNWE4MDNk
NGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVRvSlNDYWxsZWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseVRvSlNDYWxsZWUuaApAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBXZWJBc3NlbWJseVRvSlND
YWxsZWUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgdXNpbmcgQmFzZSA9
IEpTTm9uRmluYWxPYmplY3Q7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKLSAgICBzdGF0aWMgV2ViQXNzZW1ibHlUb0pT
Q2FsbGVlKiBjcmVhdGUoVk0mLCBKU1dlYkFzc2VtYmx5TW9kdWxlKik7CisgICAgc3RhdGljIFdl
YkFzc2VtYmx5VG9KU0NhbGxlZSogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgSlNXZWJBc3NlbWJs
eU1vZHVsZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpT
R2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CiAKICAgICBERUNMQVJFX0VYUE9SVF9JTkZPOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlXcmFwcGVy
RnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlX
cmFwcGVyRnVuY3Rpb24uY3BwCmluZGV4IDkzOGE1NDE4NDdiYTFmYzc4YTc0MDQxZGQ4NDVhMmVk
ZTJlOWRjMDguLmNkZTRmM2NmMjYwNGFkZDc2Y2MwNGZiMjI0ZjlhNTJiZDJkYTAzNzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1
bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVdyYXBwZXJGdW5jdGlvbi5jcHAKQEAgLTU1LDEyICs1NSwxMiBAQCBXZWJBc3NlbWJseVdyYXBw
ZXJGdW5jdGlvbjo6V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24oVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZwogICAgICwgbV9pbXBvcnRhYmxlRnVuY3Rpb24oaW1wb3J0YWJsZUZ1bmN0aW9uKQog
eyB9CiAKLVdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiBXZWJBc3NlbWJseVdyYXBwZXJGdW5j
dGlvbjo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmpl
Y3QqIGZ1bmN0aW9uLCB1bnNpZ25lZCBpbXBvcnRJbmRleCwgSlNXZWJBc3NlbWJseUluc3RhbmNl
KiBpbnN0YW5jZSwgV2FzbTo6U2lnbmF0dXJlSW5kZXggc2lnbmF0dXJlSW5kZXgpCitXZWJBc3Nl
bWJseVdyYXBwZXJGdW5jdGlvbiogV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OmNyZWF0ZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBKU09iamVjdCogZnVuY3Rpb24sIHVuc2lnbmVkIGltcG9ydEluZGV4LCBKU1dlYkFzc2VtYmx5
SW5zdGFuY2UqIGluc3RhbmNlLCBXYXNtOjpTaWduYXR1cmVJbmRleCBzaWduYXR1cmVJbmRleCkK
IHsKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFmdW5jdGlvbi0+aW5oZXJpdHM8V2ViQXNzZW1i
bHlXcmFwcGVyRnVuY3Rpb24+KHZtKSwgIldlIHNob3VsZCBuZXZlciBkb3VibGUgd3JhcCBhIHdy
YXBwZXIgZnVuY3Rpb24uIik7CiAgICAgU3RyaW5nIG5hbWUgPSAiIjsKICAgICBOYXRpdmVFeGVj
dXRhYmxlKiBleGVjdXRhYmxlID0gdm0uZ2V0SG9zdEZ1bmN0aW9uKGNhbGxXZWJBc3NlbWJseVdy
YXBwZXJGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIGNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVjdG9y
LCBudWxscHRyLCBuYW1lKTsKLSAgICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiogcmVzdWx0
ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24+
KHZtLmhlYXApKSBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBn
bG9iYWxPYmplY3QtPndlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uU3RydWN0dXJlKCksIFdhc206
Oldhc21Ub1dhc21JbXBvcnRhYmxlRnVuY3Rpb24geyBzaWduYXR1cmVJbmRleCwgJmluc3RhbmNl
LT5pbnN0YW5jZSgpLmltcG9ydEZ1bmN0aW9uSW5mbyhpbXBvcnRJbmRleCktPndhc21Ub0VtYmVk
ZGVyU3R1YiB9ICk7CisgICAgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24qIHJlc3VsdCA9IG5l
dyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uPih2bS5o
ZWFwKSkgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgc3RydWN0
dXJlLCBXYXNtOjpXYXNtVG9XYXNtSW1wb3J0YWJsZUZ1bmN0aW9uIHsgc2lnbmF0dXJlSW5kZXgs
ICZpbnN0YW5jZS0+aW5zdGFuY2UoKS5pbXBvcnRGdW5jdGlvbkluZm8oaW1wb3J0SW5kZXgpLT53
YXNtVG9FbWJlZGRlclN0dWIgfSApOwogICAgIGNvbnN0IFdhc206OlNpZ25hdHVyZSYgc2lnbmF0
dXJlID0gV2FzbTo6U2lnbmF0dXJlSW5mb3JtYXRpb246OmdldChzaWduYXR1cmVJbmRleCk7CiAg
ICAgcmVzdWx0LT5maW5pc2hDcmVhdGlvbih2bSwgZXhlY3V0YWJsZSwgc2lnbmF0dXJlLmFyZ3Vt
ZW50Q291bnQoKSwgbmFtZSwgZnVuY3Rpb24sIGluc3RhbmNlKTsKICAgICByZXR1cm4gcmVzdWx0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlX
cmFwcGVyRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5V3JhcHBlckZ1bmN0aW9uLmgKaW5kZXggZDEyZTY5MTE0MTllOGZkZDdiYTYyNGZlZTEzNGI4
ZmRlN2IyZjgxNS4uYjc0YjJkZDVlZDQxMDlhZDA1OTE0Zjc3MmQxMmU0NWNiMjE5MjkyYyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlXcmFwcGVy
RnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVdyYXBwZXJGdW5jdGlvbi5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIFdlYkFzc2VtYmx5V3Jh
cHBlckZ1bmN0aW9uIGZpbmFsIDogcHVibGljIFdlYkFzc2VtYmx5RnVuY3Rpb25CYXNlIHsKIAog
ICAgIERFQ0xBUkVfSU5GTzsKIAotICAgIHN0YXRpYyBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlv
biogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIHVuc2lnbmVkIGltcG9y
dEluZGV4LCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqLCBXYXNtOjpTaWduYXR1cmVJbmRleCk7Cisg
ICAgc3RhdGljIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiBjcmVhdGUoVk0mLCBKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIEpTT2JqZWN0KiwgdW5zaWduZWQgaW1wb3J0SW5kZXgsIEpT
V2ViQXNzZW1ibHlJbnN0YW5jZSosIFdhc206OlNpZ25hdHVyZUluZGV4KTsKICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUp
OwogCiAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggc2lnbmF0dXJlSW5kZXgoKSBjb25zdCB7IHJl
dHVybiBtX2ltcG9ydGFibGVGdW5jdGlvbi5zaWduYXR1cmVJbmRleDsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364959</attachid>
            <date>2019-03-16 21:12:48 -0700</date>
            <delta_ts>2019-03-17 00:46:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195858-20190316211247.patch</filename>
            <type>text/plain</type>
            <size>40549</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
YzBkZWI0N2M3YzBmN2NjMWNjOTk1MzMzMjJkZmQ1NzI5ZDVmMjk2Li44ZTAyZWEyMTA2NjI5YzNk
MzhkODVlNjUwMDFhZGJlY2JiNTVjNTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MyBAQAorMjAxOS0wMy0xNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJFR1JFU1NJT046ICF2bS5pc0luaXRpYWxpemluZ09iamVjdCgpIHZvaWQq
IEpTQzo6dHJ5QWxsb2NhdGVDZWxsSGVscGVyPEpTQzo6U3RydWN0dXJlPiBKU0M6OlN0cnVjdHVy
ZTo6Y3JlYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTU4NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICByMjQzMDExIGNoYW5nZWQgV2ViQXNzZW1ibHkgcmVsYXRlZCBzdHJ1Y3R1cmVzIGxhemlseS1h
bGxvY2F0ZWQuIEl0IG1lYW5zIHRoYXQgdGhpcyBsYXp5IGFsbG9jYXRpb24gbXVzdCBub3QgYmUg
ZG9uZSBpbiB0aGUgbWlkZGxlIG9mCisgICAgICAgIHRoZSBvdGhlciBvYmplY3QgYWxsb2NhdGlv
bnMuIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgc2lnbmF0dXJlIG9mIHdhc20gcmVsYXRlZCBvYmpl
Y3RzJyA6OmNyZWF0ZSBmdW5jdGlvbnMgdG8gdGFraW5nIFN0cnVjdHVyZSouCisgICAgICAgIFRo
aXMgcHJldmVudHMgdXMgZnJvbSBtYXRlcmlhbGl6aW5nIGxhemlseS1hbGxvY2F0ZWQgc3RydWN0
dXJlcyB3aGlsZSBhbGxvY2F0aW5nIHdhc20gcmVsYXRlZCBvYmplY3RzLCBhbmQgdGhpcyBzdHls
ZSBpcyB1c2VkIGluIHRoZQorICAgICAgICBvdGhlciBwbGFjZXMgdG8gZml4IHRoZSBzYW1lIHBy
b2JsZW0uIFRoaXMgYnVnIGlzIGNhdWdodCBieSBleGlzdGluZyBkZWJ1ZyB0ZXN0cyBmb3Igd2Fz
bS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiB3YXNt
L2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVK
U1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1i
bHlJbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6Zmlu
YWxpemVDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwOgorICAg
ICAgICAoSlNDOjpjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKToKKyAgICAgICAgKiB3YXNt
L2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuY3BwOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5
TW9kdWxlOjpjcmVhdGVTdHViKToKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseU1vZHVsZTo6
ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHdhc20vanMvV2FzbVRvSlMuY3BwOgorICAgICAg
ICAoSlNDOjpXYXNtOjp3YXNtVG9KU0V4Y2VwdGlvbik6CisgICAgICAgICogd2FzbS9qcy9XZWJB
c3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3Ry
dWN0SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcik6CisgICAgICAgIChKU0M6OmNhbGxKU1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rp
b24uY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUZ1bmN0aW9uOjpjcmVhdGUpOgorICAg
ICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5oOgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3Ry
dWN0SlNXZWJBc3NlbWJseUluc3RhbmNlKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5
TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RKU1dlYkFz
c2VtYmx5TGlua0Vycm9yKToKKyAgICAgICAgKEpTQzo6Y2FsbEpTV2ViQXNzZW1ibHlMaW5rRXJy
b3IpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlNZW1vcnkpOgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OldlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmNyZWF0ZU1vZHVsZSk6CisgICAgICAgICog
d2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHA6CisgICAgICAgIChKU0M6OldlYkFz
c2VtYmx5TW9kdWxlUmVjb3JkOjpsaW5rKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNb2R1
bGVSZWNvcmQ6OmV2YWx1YXRlKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlNb2R1bGVWYWxpZGF0ZUFzeW5jSW50
ZXJuYWwpOgorICAgICAgICAoSlNDOjppbnN0YW50aWF0ZSk6CisgICAgICAgIChKU0M6OmNvbXBp
bGVBbmRJbnN0YW50aWF0ZSk6CisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5TW9kdWxlSW5zdGFu
dGluYXRlQXN5bmNJbnRlcm5hbCk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRp
bWVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0SlNXZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvcik6CisgICAgICAgIChKU0M6OmNhbGxKU1dlYkFzc2VtYmx5UnVudGlt
ZUVycm9yKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlUYWJsZSk6CisgICAgICAg
ICogd2FzbS9qcy9XZWJBc3NlbWJseVRvSlNDYWxsZWUuY3BwOgorICAgICAgICAoSlNDOjpXZWJB
c3NlbWJseVRvSlNDYWxsZWU6OmNyZWF0ZSk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJs
eVRvSlNDYWxsZWUuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0
aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OmNyZWF0
ZSk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5oOgorCiAy
MDE5LTAzLTE2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBy
b3ZlIG5vcm1hbGl6YXRpb24gY29kZSwgaW5jbHVkaW5nIG1vdmluZyBmcm9tIHVub3JtLmggdG8g
dW5vcm0yLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MzQxYTJkODBiYzRlMzRhMWYwY2M0NDliN2JkODY5OGFm
OTdmYWZmLi5jOGE1ZWE3ZTdkZTM3NzkxZDNmODgyNWI4MGM3MTdkMmVhMTBhNmRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDMtMTYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtp
QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OOiAhdm0uaXNJbml0aWFsaXppbmdPYmpl
Y3QoKSB2b2lkKiBKU0M6OnRyeUFsbG9jYXRlQ2VsbEhlbHBlcjxKU0M6OlN0cnVjdHVyZT4gSlND
OjpTdHJ1Y3R1cmU6OmNyZWF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk1ODU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ2hhbmdlZCB0aGUgYWNjZXNzb3IgbmFtZXMuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xv
bmVEZXNlcmlhbGl6ZXI6OnJlYWRUZXJtaW5hbCk6CisKIDIwMTktMDMtMTYgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcHJvdmUgbm9ybWFsaXphdGlvbiBjb2Rl
LCBpbmNsdWRpbmcgbW92aW5nIGZyb20gdW5vcm0uaCB0byB1bm9ybTIuaApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggNWJjNzM4NDMwZThi
NmUwZWRjOGQyNzMwMGQwZGY1ZGVlMjFmYzE3ZC4uYzU5ZjJiNmRhYTBiYTk0OWMyMWU1NjI0NmFi
ZjU1YTBiMzY1YWQxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5oCkBAIC0xNTcsMTMgKzE1NywxMyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBXYXRj
aHBvaW50PiBjbGFzcyBPYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludDsKIAog
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICNkZWZpbmUgRk9SX0VBQ0hfV0VCQVNTRU1CTFlfQ09O
U1RSVUNUT1JfVFlQRShtYWNybykgXAotICAgIG1hY3JvKFdlYkFzc2VtYmx5Q29tcGlsZUVycm9y
LCB3ZWJBc3NlbWJseUNvbXBpbGVFcnJvciwgV2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIEpTV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3IsIENvbXBpbGVFcnJvciwgZXJyb3IpIFwKLSAgICBtYWNybyhX
ZWJBc3NlbWJseUluc3RhbmNlLCAgICAgd2ViQXNzZW1ibHlJbnN0YW5jZSwgICAgIFdlYkFzc2Vt
Ymx5SW5zdGFuY2UsICAgICBKU1dlYkFzc2VtYmx5SW5zdGFuY2UsICAgICBJbnN0YW5jZSwgICAg
IG9iamVjdCkgXAotICAgIG1hY3JvKFdlYkFzc2VtYmx5TGlua0Vycm9yLCAgICB3ZWJBc3NlbWJs
eUxpbmtFcnJvciwgICAgV2ViQXNzZW1ibHlMaW5rRXJyb3IsICAgIEpTV2ViQXNzZW1ibHlMaW5r
RXJyb3IsICAgIExpbmtFcnJvciwgICAgZXJyb3IpIFwKLSAgICBtYWNybyhXZWJBc3NlbWJseU1l
bW9yeSwgICAgICAgd2ViQXNzZW1ibHlNZW1vcnksICAgICAgIFdlYkFzc2VtYmx5TWVtb3J5LCAg
ICAgICBKU1dlYkFzc2VtYmx5TWVtb3J5LCAgICAgICBNZW1vcnksICAgICAgIG9iamVjdCkgXAot
ICAgIG1hY3JvKFdlYkFzc2VtYmx5TW9kdWxlLCAgICAgICB3ZWJBc3NlbWJseU1vZHVsZSwgICAg
ICAgV2ViQXNzZW1ibHlNb2R1bGUsICAgICAgIEpTV2ViQXNzZW1ibHlNb2R1bGUsICAgICAgIE1v
ZHVsZSwgICAgICAgb2JqZWN0KSBcCi0gICAgbWFjcm8oV2ViQXNzZW1ibHlSdW50aW1lRXJyb3Is
IHdlYkFzc2VtYmx5UnVudGltZUVycm9yLCBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvciwgSlNXZWJB
c3NlbWJseVJ1bnRpbWVFcnJvciwgUnVudGltZUVycm9yLCBlcnJvcikgXAotICAgIG1hY3JvKFdl
YkFzc2VtYmx5VGFibGUsICAgICAgICB3ZWJBc3NlbWJseVRhYmxlLCAgICAgICAgV2ViQXNzZW1i
bHlUYWJsZSwgICAgICAgIEpTV2ViQXNzZW1ibHlUYWJsZSwgICAgICAgIFRhYmxlLCAgICAgICAg
b2JqZWN0KQorICAgIG1hY3JvKFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yLCB3ZWJBc3NlbWJseUNv
bXBpbGVFcnJvciwgd2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIEpTV2ViQXNzZW1ibHlDb21waWxl
RXJyb3IsIENvbXBpbGVFcnJvciwgZXJyb3IpIFwKKyAgICBtYWNybyhXZWJBc3NlbWJseUluc3Rh
bmNlLCAgICAgd2ViQXNzZW1ibHlJbnN0YW5jZSwgICAgIHdlYkFzc2VtYmx5SW5zdGFuY2UsICAg
ICBKU1dlYkFzc2VtYmx5SW5zdGFuY2UsICAgICBJbnN0YW5jZSwgICAgIG9iamVjdCkgXAorICAg
IG1hY3JvKFdlYkFzc2VtYmx5TGlua0Vycm9yLCAgICB3ZWJBc3NlbWJseUxpbmtFcnJvciwgICAg
d2ViQXNzZW1ibHlMaW5rRXJyb3IsICAgIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IsICAgIExpbmtF
cnJvciwgICAgZXJyb3IpIFwKKyAgICBtYWNybyhXZWJBc3NlbWJseU1lbW9yeSwgICAgICAgd2Vi
QXNzZW1ibHlNZW1vcnksICAgICAgIHdlYkFzc2VtYmx5TWVtb3J5LCAgICAgICBKU1dlYkFzc2Vt
Ymx5TWVtb3J5LCAgICAgICBNZW1vcnksICAgICAgIG9iamVjdCkgXAorICAgIG1hY3JvKFdlYkFz
c2VtYmx5TW9kdWxlLCAgICAgICB3ZWJBc3NlbWJseU1vZHVsZSwgICAgICAgd2ViQXNzZW1ibHlN
b2R1bGUsICAgICAgIEpTV2ViQXNzZW1ibHlNb2R1bGUsICAgICAgIE1vZHVsZSwgICAgICAgb2Jq
ZWN0KSBcCisgICAgbWFjcm8oV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIHdlYkFzc2VtYmx5UnVu
dGltZUVycm9yLCB3ZWJBc3NlbWJseVJ1bnRpbWVFcnJvciwgSlNXZWJBc3NlbWJseVJ1bnRpbWVF
cnJvciwgUnVudGltZUVycm9yLCBlcnJvcikgXAorICAgIG1hY3JvKFdlYkFzc2VtYmx5VGFibGUs
ICAgICAgICB3ZWJBc3NlbWJseVRhYmxlLCAgICAgICAgd2ViQXNzZW1ibHlUYWJsZSwgICAgICAg
IEpTV2ViQXNzZW1ibHlUYWJsZSwgICAgICAgIFRhYmxlLCAgICAgICAgb2JqZWN0KQogI2Vsc2UK
ICNkZWZpbmUgRk9SX0VBQ0hfV0VCQVNTRU1CTFlfQ09OU1RSVUNUT1JfVFlQRShtYWNybykKICNl
bmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwCmluZGV4IDk2
ZmI4MDU2ZmU1MDJiMjk0ZGNhYzUwYWU3NjczZGQ2OTYwODM5ZjAuLmU4ZGE2Yzk0Nzg5OGQ3MWNm
MzRiY2RiOTM5MjFiZTk1ZDIzOGVkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwCkBAIC01Myw3
ICs1Myw3IEBAIEpTT2JqZWN0KiBjcmVhdGVKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKEV4ZWNT
dGF0ZSogZXhlYywgVk0mIHZtLCBjb25zdCBTdHJpbmcmCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdl
LmlzRW1wdHkoKSk7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKTsKLSAgICByZXR1cm4gSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJv
cjo6Y3JlYXRlKGV4ZWMsIHZtLCBnbG9iYWxPYmplY3QtPldlYkFzc2VtYmx5Q29tcGlsZUVycm9y
U3RydWN0dXJlKCksIG1lc3NhZ2UpOworICAgIHJldHVybiBKU1dlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yOjpjcmVhdGUoZXhlYywgdm0sIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlDb21waWxlRXJy
b3JTdHJ1Y3R1cmUoKSwgbWVzc2FnZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5j
ZS5jcHAKaW5kZXggYjlkN2I4OTZhYTZjMmIwYmQ2YjcyYTQ2YmJkNTYyZjU5YzVkN2M1ZC4uYTYz
Y2ZmMmZiMTg3ODAzNmYxODU3ZmQ1N2NiZDg0YTRiZGM0NGY3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCkBA
IC05OCw3ICs5OCw3IEBAIHZvaWQgSlNXZWJBc3NlbWJseUluc3RhbmNlOjpmaW5hbGl6ZUNyZWF0
aW9uKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBSZWY8V2FzbTo6CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKCF3YXNtQ29kZUJsb2NrLT5ydW5u
YWJsZSgpKSB7Ci0gICAgICAgIHRocm93RXhjZXB0aW9uKGV4ZWMsIHNjb3BlLCBKU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yOjpjcmVhdGUoZXhlYywgdm0sIGdsb2JhbE9iamVjdCh2bSktPldlYkFzc2Vt
Ymx5TGlua0Vycm9yU3RydWN0dXJlKCksIHdhc21Db2RlQmxvY2stPmVycm9yTWVzc2FnZSgpKSk7
CisgICAgICAgIHRocm93RXhjZXB0aW9uKGV4ZWMsIHNjb3BlLCBKU1dlYkFzc2VtYmx5TGlua0Vy
cm9yOjpjcmVhdGUoZXhlYywgdm0sIGdsb2JhbE9iamVjdCh2bSktPndlYkFzc2VtYmx5TGlua0Vy
cm9yU3RydWN0dXJlKCksIHdhc21Db2RlQmxvY2stPmVycm9yTWVzc2FnZSgpKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZTo6ZmluYWxpemVDcmVhdGlvbihWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgUmVmPFdh
c206OgogICAgIH0gZWxzZSB7CiAgICAgICAgIGpzQ29kZUJsb2NrID0gSlNXZWJBc3NlbWJseUNv
ZGVCbG9jazo6Y3JlYXRlKHZtLCBXVEZNb3ZlKHdhc21Db2RlQmxvY2spLCBtb2R1bGUoKS0+bW9k
dWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKSk7CiAgICAgICAgIGlmIChVTkxJS0VMWSghanNDb2Rl
QmxvY2stPnJ1bm5hYmxlKCkpKSB7Ci0gICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihleGVjLCBz
Y29wZSwgSlNXZWJBc3NlbWJseUxpbmtFcnJvcjo6Y3JlYXRlKGV4ZWMsIHZtLCBnbG9iYWxPYmpl
Y3Qodm0pLT5XZWJBc3NlbWJseUxpbmtFcnJvclN0cnVjdHVyZSgpLCBqc0NvZGVCbG9jay0+ZXJy
b3JNZXNzYWdlKCkpKTsKKyAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGV4ZWMsIHNjb3BlLCBK
U1dlYkFzc2VtYmx5TGlua0Vycm9yOjpjcmVhdGUoZXhlYywgdm0sIGdsb2JhbE9iamVjdCh2bSkt
PndlYkFzc2VtYmx5TGlua0Vycm9yU3RydWN0dXJlKCksIGpzQ29kZUJsb2NrLT5lcnJvck1lc3Nh
Z2UoKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIG1fY29kZUJs
b2NrLnNldCh2bSwgdGhpcywganNDb2RlQmxvY2spOwpAQCAtMjc4LDcgKzI3OCw3IEBAIEpTV2Vi
QXNzZW1ibHlJbnN0YW5jZSogSlNXZWJBc3NlbWJseUluc3RhbmNlOjpjcmVhdGUoVk0mIHZtLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvCiAgICAgICAgICAgICAvLyBXZSBjcmVhdGUgYSBtZW1vcnkgd2hl
biBpdCdzIGEgbWVtb3J5IGRlZmluaXRpb24uCiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCgh
bW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmlzSW1wb3J0KCkpOwogCi0gICAgICAgICAgICBhdXRv
KiBqc01lbW9yeSA9IEpTV2ViQXNzZW1ibHlNZW1vcnk6OmNyZWF0ZShleGVjLCB2bSwgZ2xvYmFs
T2JqZWN0LT5XZWJBc3NlbWJseU1lbW9yeVN0cnVjdHVyZSgpKTsKKyAgICAgICAgICAgIGF1dG8q
IGpzTWVtb3J5ID0gSlNXZWJBc3NlbWJseU1lbW9yeTo6Y3JlYXRlKGV4ZWMsIHZtLCBnbG9iYWxP
YmplY3QtPndlYkFzc2VtYmx5TWVtb3J5U3RydWN0dXJlKCkpOwogICAgICAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBudWxscHRyKTsKIAogICAgICAgICAgICAgUmVmUHRy
PFdhc206Ok1lbW9yeT4gbWVtb3J5ID0gV2FzbTo6TWVtb3J5Ojp0cnlDcmVhdGUobW9kdWxlSW5m
b3JtYXRpb24ubWVtb3J5LmluaXRpYWwoKSwgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5Lm1heGlt
dW0oKSwKQEAgLTI5Niw3ICsyOTYsNyBAQCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZTo6Y3JlYXRlKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBjbwogICAgIAog
ICAgIGlmICghanNJbnN0YW5jZS0+bWVtb3J5KCkpIHsKICAgICAgICAgLy8gTWFrZSBzdXJlIHdl
IGhhdmUgYSBkdW1teSBtZW1vcnksIHNvIHRoYXQgd2FzbSAtPiB3YXNtIHRodW5rcyBhdm9pZCBj
aGVja2luZyBmb3IgYSBudWxscHRyIE1lbW9yeSB3aGVuIHRyeWluZyB0byBzZXQgcGlubmVkIHJl
Z2lzdGVycy4KLSAgICAgICAgYXV0byoganNNZW1vcnkgPSBKU1dlYkFzc2VtYmx5TWVtb3J5Ojpj
cmVhdGUoZXhlYywgdm0sIGdsb2JhbE9iamVjdC0+V2ViQXNzZW1ibHlNZW1vcnlTdHJ1Y3R1cmUo
KSk7CisgICAgICAgIGF1dG8qIGpzTWVtb3J5ID0gSlNXZWJBc3NlbWJseU1lbW9yeTo6Y3JlYXRl
KGV4ZWMsIHZtLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5TWVtb3J5U3RydWN0dXJlKCkpOwog
ICAgICAgICBqc01lbW9yeS0+YWRvcHQoV2FzbTo6TWVtb3J5OjpjcmVhdGUoKSk7CiAgICAgICAg
IGpzSW5zdGFuY2UtPnNldE1lbW9yeSh2bSwganNNZW1vcnkpOwogICAgICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcAppbmRleCBjYmVm
OGNhNWQ5ODU1NzkyZjc4YzU2N2E4MGU3Y2MwZjdjMGEzY2Y5Li45ZGI0YTU5NjFkNDQyZjk4ODI0
M2RiNjBkMWVmMTRmZGM0ZWVjNDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcApAQCAtNTMsNyArNTMsNyBA
QCBKU09iamVjdCogY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihFeGVjU3RhdGUqIGV4ZWMs
IFZNJiB2bSwgY29uc3QgU3RyaW5nJiBtZQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5
KCkpOwogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCk7Ci0gICAgcmV0dXJuIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OmNyZWF0ZShl
eGVjLCB2bSwgZ2xvYmFsT2JqZWN0LT5XZWJBc3NlbWJseUxpbmtFcnJvclN0cnVjdHVyZSgpLCBt
ZXNzYWdlKTsKKyAgICByZXR1cm4gSlNXZWJBc3NlbWJseUxpbmtFcnJvcjo6Y3JlYXRlKGV4ZWMs
IHZtLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5TGlua0Vycm9yU3RydWN0dXJlKCksIG1lc3Nh
Z2UpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5jcHAKaW5kZXggMzY1YmM3MGU4ODQ0
NzQzNGQ1Zjg1YmY5YTEwOTA2MDcwZmYxNTViMC4uNzE5MDkwODRhM2M4ZjViNDY4ZDc4MjBmNzRi
MWZmYmZkMjQ3MmE1YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseU1vZHVsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseU1vZHVsZS5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgSlNXZWJBc3NlbWJs
eU1vZHVsZSogSlNXZWJBc3NlbWJseU1vZHVsZTo6Y3JlYXRlU3R1YihWTSYgdm0sIEV4ZWNTdGF0
ZSogZXhlYywgU3QKIHsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAgICAgaWYgKCFyZXN1bHQuaGFzX3ZhbHVlKCkpIHsKLSAgICAgICAgYXV0byogZXJyb3IgPSBK
U1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yOjpjcmVhdGUoZXhlYywgdm0sIHN0cnVjdHVyZS0+Z2xv
YmFsT2JqZWN0KCktPldlYkFzc2VtYmx5Q29tcGlsZUVycm9yU3RydWN0dXJlKCksIHJlc3VsdC5l
cnJvcigpKTsKKyAgICAgICAgYXV0byogZXJyb3IgPSBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
OjpjcmVhdGUoZXhlYywgdm0sIHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCktPndlYkFzc2VtYmx5
Q29tcGlsZUVycm9yU3RydWN0dXJlKCksIHJlc3VsdC5lcnJvcigpKTsKICAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgICAgIHRocm93RXhjZXB0aW9uKGV4
ZWMsIHNjb3BlLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtODYsNyArODYs
NyBAQCB2b2lkIEpTV2ViQXNzZW1ibHlNb2R1bGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAg
ICB9CiAKICAgICBtX2V4cG9ydFN5bWJvbFRhYmxlLnNldCh2bSwgdGhpcywgZXhwb3J0U3ltYm9s
VGFibGUpOwotICAgIG1fY2FsbGVlLnNldCh2bSwgdGhpcywgV2ViQXNzZW1ibHlUb0pTQ2FsbGVl
OjpjcmVhdGUodm0sIHRoaXMpKTsKKyAgICBtX2NhbGxlZS5zZXQodm0sIHRoaXMsIFdlYkFzc2Vt
Ymx5VG9KU0NhbGxlZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qodm0pLT53ZWJBc3NlbWJseVRv
SlNDYWxsZWVTdHJ1Y3R1cmUoKSwgdGhpcykpOwogfQogCiB2b2lkIEpTV2ViQXNzZW1ibHlNb2R1
bGU6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2FzbVRvSlMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2FzbVRvSlMuY3BwCmluZGV4IDc5MmYwMmQxMjdlYWE0ZjFkYzQ3OWIwNmQ4MTJhYzJjZjdhYTJj
YWIuLjU3MmIwMzA3ZDAzMmM0MGI1OTIzNTNlNmI2ZDQyM2JkNmZjZGJiM2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAKQEAgLTY2MCw3ICs2NjAsNyBAQCB2
b2lkKiB3YXNtVG9KU0V4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIFdhc206OkV4Y2VwdGlvblR5
cGUgdHlwZSwgSW5zdGFuY2UqIHdhcwogICAgICAgICBpZiAodHlwZSA9PSBFeGNlcHRpb25UeXBl
OjpTdGFja092ZXJmbG93KQogICAgICAgICAgICAgZXJyb3IgPSBjcmVhdGVTdGFja092ZXJmbG93
RXJyb3IoZXhlYywgZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgZXJy
b3IgPSBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpjcmVhdGUoZXhlYywgdm0sIGdsb2JhbE9i
amVjdC0+V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JTdHJ1Y3R1cmUoKSwgV2FzbTo6ZXJyb3JNZXNz
YWdlRm9yRXhjZXB0aW9uVHlwZSh0eXBlKSk7CisgICAgICAgICAgICBlcnJvciA9IEpTV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3I6OmNyZWF0ZShleGVjLCB2bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvclN0cnVjdHVyZSgpLCBXYXNtOjplcnJvck1lc3NhZ2VGb3JFeGNlcHRp
b25UeXBlKHR5cGUpKTsKICAgICAgICAgdGhyb3dFeGNlcHRpb24oZXhlYywgdGhyb3dTY29wZSwg
ZXJyb3IpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcApp
bmRleCBjNmU5Nzg2NTU2NmFiYWRlMjZkNmVmMWM0OTIwNzIzYjUxMTM4NGY3Li43ZDcwNzk1NmI4
MmUxZTdiMTBlNWZkMjliYzUwZGEwYmY4MTYzNjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJv
ckNvbnN0cnVjdG9yLmNwcApAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKEV4ZWNTdGF0
ZQogICAgIGF1dG8mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gZXhlYy0+YXJndW1lbnQoMCk7
Ci0gICAgYXV0byogc3RydWN0dXJlID0gSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NT
dHJ1Y3R1cmUoZXhlYywgZXhlYy0+bmV3VGFyZ2V0KCksIGpzQ2FzdDxJbnRlcm5hbEZ1bmN0aW9u
Kj4oZXhlYy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdCh2bSktPldlYkFzc2VtYmx5Q29tcGls
ZUVycm9yU3RydWN0dXJlKCkpOworICAgIGF1dG8qIHN0cnVjdHVyZSA9IEludGVybmFsRnVuY3Rp
b246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGV4ZWMsIGV4ZWMtPm5ld1RhcmdldCgpLCBqc0Nh
c3Q8SW50ZXJuYWxGdW5jdGlvbio+KGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3Qodm0p
LT53ZWJBc3NlbWJseUNvbXBpbGVFcnJvclN0cnVjdHVyZSgpKTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yOjpjcmVhdGUo
ZXhlYywgdm0sIHN0cnVjdHVyZSwgbWVzc2FnZSkpKTsKIH0KQEAgLTU3LDcgKzU3LDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJseUNv
bXBpbGVFcnJvcihFeGVjU3RhdGUKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBK
U1ZhbHVlIG1lc3NhZ2UgPSBleGVjLT5hcmd1bWVudCgwKTsKLSAgICBTdHJ1Y3R1cmUqIGVycm9y
U3RydWN0dXJlID0ganNDYXN0PEludGVybmFsRnVuY3Rpb24qPihleGVjLT5qc0NhbGxlZSgpKS0+
Z2xvYmFsT2JqZWN0KGV4ZWMtPnZtKCkpLT5XZWJBc3NlbWJseUNvbXBpbGVFcnJvclN0cnVjdHVy
ZSgpOworICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBqc0Nhc3Q8SW50ZXJuYWxGdW5j
dGlvbio+KGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoZXhlYy0+dm0oKSktPndlYkFz
c2VtYmx5Q29tcGlsZUVycm9yU3RydWN0dXJlKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZXhlYywgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51
bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCmluZGV4IDUwYjk5OWIy
YjZlYzZjNDU1ZjQ3ZGRlMzNhZmJhYmM0YTM5MDljYTUuLjQyNDY4ZWYwMjFlNGNiODAyN2U3MGI2
OTc5NDE3Yzg4YjgxOTg0ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCkBAIC0xNDgsMTAgKzE0OCw5IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxXZWJBc3NlbWJseUZ1bmN0aW9uKEV4
ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gcmF3UmVzdWx0OwogfQogCi1XZWJBc3NlbWJseUZ1
bmN0aW9uKiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBsZW5ndGgsIGNvbnN0IFN0cmluZyYgbmFtZSwgSlNX
ZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSwgV2FzbTo6Q2FsbGVlJiBqc0VudHJ5cG9pbnQs
IFdhc206Oldhc21Ub1dhc21JbXBvcnRhYmxlRnVuY3Rpb246OkxvYWRMb2NhdGlvbiB3YXNtVG9X
YXNtRW50cnlwb2ludExvYWRMb2NhdGlvbiwgV2FzbTo6U2lnbmF0dXJlSW5kZXggc2lnbmF0dXJl
SW5kZXgpCitXZWJBc3NlbWJseUZ1bmN0aW9uKiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpjcmVhdGUo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgdW5zaWduZWQgbGVuZ3RoLCBjb25zdCBTdHJpbmcmIG5hbWUsIEpTV2ViQXNzZW1ibHlJbnN0
YW5jZSogaW5zdGFuY2UsIFdhc206OkNhbGxlZSYganNFbnRyeXBvaW50LCBXYXNtOjpXYXNtVG9X
YXNtSW1wb3J0YWJsZUZ1bmN0aW9uOjpMb2FkTG9jYXRpb24gd2FzbVRvV2FzbUVudHJ5cG9pbnRM
b2FkTG9jYXRpb24sIFdhc206OlNpZ25hdHVyZUluZGV4IHNpZ25hdHVyZUluZGV4KQogewogICAg
IE5hdGl2ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSB2bS5nZXRIb3N0RnVuY3Rpb24oY2FsbFdl
YkFzc2VtYmx5RnVuY3Rpb24sIE5vSW50cmluc2ljLCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1
Y3RvciwgbnVsbHB0ciwgbmFtZSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnbG9iYWxP
YmplY3QtPndlYkFzc2VtYmx5RnVuY3Rpb25TdHJ1Y3R1cmUoKTsKICAgICBXZWJBc3NlbWJseUZ1
bmN0aW9uKiBmdW5jdGlvbiA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFdlYkFzc2VtYmx5
RnVuY3Rpb24+KHZtLmhlYXApKSBXZWJBc3NlbWJseUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSwganNFbnRyeXBvaW50LCB3YXNtVG9XYXNtRW50cnlwb2ludExvYWRMb2NhdGlv
biwgc2lnbmF0dXJlSW5kZXgpOwogICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbih2bSwgZXhl
Y3V0YWJsZSwgbGVuZ3RoLCBuYW1lLCBpbnN0YW5jZSk7CiAgICAgQVNTRVJUX1dJVEhfTUVTU0FH
RSghZnVuY3Rpb24tPmlzTGFyZ2VBbGxvY2F0aW9uKCksICJXZWJBc3NlbWJseUZ1bmN0aW9uIHNo
b3VsZCBiZSBhbGxvY2F0ZWQgbm90IGluIGxhcmdlIGFsbG9jYXRpb24gc2luY2UgaXQgaXMgSlND
YWxsZWUuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseUZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUZ1bmN0aW9uLmgKaW5kZXggZmVhZGVjNTM3YWE0YWUwMzU0NTEwMjMyN2M4N2Q4OGQ5OWY3
OWE0MS4uM2Y5NzFmMmMwZWY1MDZjYzE3ZjM0ZTc0NTkyNmNiMTk4ZTcwOWIzZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uaApA
QCAtNTcsNyArNTcsNyBAQCBjbGFzcyBXZWJBc3NlbWJseUZ1bmN0aW9uIGZpbmFsIDogcHVibGlj
IFdlYkFzc2VtYmx5RnVuY3Rpb25CYXNlIHsKIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAK
LSAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgV2ViQXNzZW1ibHlGdW5jdGlvbiogY3JlYXRl
KFZNJiwgSlNHbG9iYWxPYmplY3QqLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgSlNXZWJBc3Nl
bWJseUluc3RhbmNlKiwgV2FzbTo6Q2FsbGVlJiBqc0VudHJ5cG9pbnQsIFdhc21Ub1dhc21JbXBv
cnRhYmxlRnVuY3Rpb246OkxvYWRMb2NhdGlvbiwgV2FzbTo6U2lnbmF0dXJlSW5kZXgpOworICAg
IEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBXZWJBc3NlbWJseUZ1bmN0aW9uKiBjcmVhdGUoVk0m
LCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBK
U1dlYkFzc2VtYmx5SW5zdGFuY2UqLCBXYXNtOjpDYWxsZWUmIGpzRW50cnlwb2ludCwgV2FzbVRv
V2FzbUltcG9ydGFibGVGdW5jdGlvbjo6TG9hZExvY2F0aW9uLCBXYXNtOjpTaWduYXR1cmVJbmRl
eCk7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxP
YmplY3QqLCBKU1ZhbHVlKTsKIAogICAgIFdhc206OlNpZ25hdHVyZUluZGV4IHNpZ25hdHVyZUlu
ZGV4KCkgY29uc3QgeyByZXR1cm4gbV9pbXBvcnRhYmxlRnVuY3Rpb24uc2lnbmF0dXJlSW5kZXg7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwCmluZGV4IGVjYmQ1ODdhZWY2NDk1MzMx
NmJkZjRjNzhiMjFhNjc1ZGM0N2ZmNTYuLjU0OGEzZjk2ZmYwZTFhOTFlMmZhZTNlYjk1NzVmMTFl
OWM4NmVjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcApAQCAtNzQsNyArNzQs
NyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFz
c2VtYmx5SW5zdGFuY2UoRXhlY1N0YXRlKiBleAogICAgIGlmICghaW1wb3J0QXJndW1lbnQuaXNV
bmRlZmluZWQoKSAmJiAhaW1wb3J0T2JqZWN0KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHRocm93RXhjZXB0aW9uKGV4ZWMsIHNjb3BlLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgInNl
Y29uZCBhcmd1bWVudCB0byBXZWJBc3NlbWJseS5JbnN0YW5jZSBtdXN0IGJlIHVuZGVmaW5lZCBv
ciBhbiBPYmplY3QiX3MsIGRlZmF1bHRTb3VyY2VBcHBlbmRlciwgcnVudGltZVR5cGVGb3JWYWx1
ZSh2bSwgaW1wb3J0QXJndW1lbnQpKSkpOwogICAgIAotICAgIFN0cnVjdHVyZSogaW5zdGFuY2VT
dHJ1Y3R1cmUgPSBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShleGVj
LCBleGVjLT5uZXdUYXJnZXQoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5XZWJBc3Nl
bWJseUluc3RhbmNlU3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVyZSogaW5zdGFuY2VTdHJ1Y3R1
cmUgPSBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShleGVjLCBleGVj
LT5uZXdUYXJnZXQoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT53ZWJBc3NlbWJseUlu
c3RhbmNlU3RydWN0dXJlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
CiAKICAgICBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RhbmNlID0gSlNXZWJBc3NlbWJseUlu
c3RhbmNlOjpjcmVhdGUodm0sIGV4ZWMsIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6Y3JlYXRlUHJp
dmF0ZU1vZHVsZUtleSgpLCBtb2R1bGUsIGltcG9ydE9iamVjdCwgaW5zdGFuY2VTdHJ1Y3R1cmUs
IFJlZjxXYXNtOjpNb2R1bGU+KG1vZHVsZS0+bW9kdWxlKCkpLCBXYXNtOjpDcmVhdGlvbk1vZGU6
OkZyb21KUyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IGFkODk0NDYw
YWM2NDYwNTgxZDlkMzlmNDUwNDlhNTQ4MTMxNTgzZmIuLjNiZDRhNzgwNDdlMzdkMTAzMWE5MmY4
YzU5OWFiZWNmMjkxMjBhZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwCkBA
IC00OSw3ICs0OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoRXhlY1N0YXRlKiBlCiAgICAgYXV0byYgdm0gPSBl
eGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAg
ICBKU1ZhbHVlIG1lc3NhZ2UgPSBleGVjLT5hcmd1bWVudCgwKTsKLSAgICBhdXRvKiBzdHJ1Y3R1
cmUgPSBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShleGVjLCBleGVj
LT5uZXdUYXJnZXQoKSwganNDYXN0PEludGVybmFsRnVuY3Rpb24qPihleGVjLT5qc0NhbGxlZSgp
KS0+Z2xvYmFsT2JqZWN0KHZtKS0+V2ViQXNzZW1ibHlMaW5rRXJyb3JTdHJ1Y3R1cmUoKSk7Cisg
ICAgYXV0byogc3RydWN0dXJlID0gSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1
Y3R1cmUoZXhlYywgZXhlYy0+bmV3VGFyZ2V0KCksIGpzQ2FzdDxJbnRlcm5hbEZ1bmN0aW9uKj4o
ZXhlYy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdCh2bSktPndlYkFzc2VtYmx5TGlua0Vycm9y
U3RydWN0dXJlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1Zh
bHVlKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNXZWJBc3NlbWJseUxpbmtFcnJv
cjo6Y3JlYXRlKGV4ZWMsIHZtLCBzdHJ1Y3R1cmUsIG1lc3NhZ2UpKTsKIH0KQEAgLTU3LDcgKzU3
LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJB
c3NlbWJseUxpbmtFcnJvcihFeGVjU3RhdGUqIGUKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yKEV4ZWNTdGF0ZSogZXhlYykKIHsK
ICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBleGVjLT5hcmd1bWVudCgwKTsKLSAgICBTdHJ1Y3R1cmUq
IGVycm9yU3RydWN0dXJlID0ganNDYXN0PEludGVybmFsRnVuY3Rpb24qPihleGVjLT5qc0NhbGxl
ZSgpKS0+Z2xvYmFsT2JqZWN0KGV4ZWMtPnZtKCkpLT5XZWJBc3NlbWJseUxpbmtFcnJvclN0cnVj
dHVyZSgpOworICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBqc0Nhc3Q8SW50ZXJuYWxG
dW5jdGlvbio+KGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoZXhlYy0+dm0oKSktPndl
YkFzc2VtYmx5TGlua0Vycm9yU3RydWN0dXJlKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZXhlYywgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51
bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3Iu
Y3BwCmluZGV4IGNkNGMwZDAwZWYzNWM2MGY3YzliMTBkNjY4YWM3NjQ1ZDUyODNkMTMuLjg2Zjlk
OGIxM2UzM2E3M2RjYjI0OTEyYTFhNDhlMDljMjBlODdiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3Ry
dWN0b3IuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlNZW1vcnkoRXhlY1N0YXRlKiBleGVjCiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICBhdXRvKiBqc01lbW9yeSA9IEpTV2ViQXNzZW1ibHlNZW1vcnk6
OmNyZWF0ZShleGVjLCB2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5XZWJBc3NlbWJs
eU1lbW9yeVN0cnVjdHVyZSgpKTsKKyAgICBhdXRvKiBqc01lbW9yeSA9IEpTV2ViQXNzZW1ibHlN
ZW1vcnk6OmNyZWF0ZShleGVjLCB2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT53ZWJB
c3NlbWJseU1lbW9yeVN0cnVjdHVyZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93
U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogCiAgICAgUmVmUHRyPFdhc206Ok1lbW9yeT4gbWVt
b3J5ID0gV2FzbTo6TWVtb3J5Ojp0cnlDcmVhdGUoaW5pdGlhbFBhZ2VDb3VudCwgbWF4aW11bVBh
Z2VDb3VudCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYzEwMWI4ZjYxZGZlYjRi
MjBhNGYyNjc1ZjI0ZmM4OWRjOGQ2MjE5Mi4uZDk2YzRlYzQ0NDUwYTkzZDMwZGI0ZjJiY2JjZGJj
NTBkZmQ0ZDJlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTE4MSw3ICsxODEs
NyBAQCBKU1dlYkFzc2VtYmx5TW9kdWxlKiBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpj
cmVhdGVNb2R1bGUoRXhlY1N0YXRlKiBleGVjLAogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgYXV0byogc3Ry
dWN0dXJlID0gSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZXhlYywg
ZXhlYy0+bmV3VGFyZ2V0KCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+V2ViQXNzZW1i
bHlNb2R1bGVTdHJ1Y3R1cmUoKSk7CisgICAgYXV0byogc3RydWN0dXJlID0gSW50ZXJuYWxGdW5j
dGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZXhlYywgZXhlYy0+bmV3VGFyZ2V0KCksIGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+d2ViQXNzZW1ibHlNb2R1bGVTdHJ1Y3R1cmUoKSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIEpTV2ViQXNzZW1ibHlNb2R1bGU6OmNyZWF0ZVN0dWIodm0sIGV4
ZWMsIHN0cnVjdHVyZSwgV2FzbTo6TW9kdWxlOjp2YWxpZGF0ZVN5bmMoJnZtLndhc21Db250ZXh0
LCBXVEZNb3ZlKGJ1ZmZlcikpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAKaW5kZXggYjY3YzA1ZTEyY2Zm
Y2ZiOWQ4MDkxNTUwMzk1NWI1MWVlZjAwYWRkYy4uMzc2NTU1MmMxYjVhYTJmN2JjNzBlNzQzZjg0
ZjAzMzY3YmIxMmU2MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcApAQCAtMzAxLDcgKzMwMSw3IEBAIHZv
aWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmxpbmsoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
LCBKU09iamVjdCogaW1wb3J0T2JqCiAgICAgICAgICAgICBSZWZQdHI8V2FzbTo6VGFibGU+IHdh
c21UYWJsZSA9IFdhc206OlRhYmxlOjp0cnlDcmVhdGUobW9kdWxlSW5mb3JtYXRpb24udGFibGVJ
bmZvcm1hdGlvbi5pbml0aWFsKCksIG1vZHVsZUluZm9ybWF0aW9uLnRhYmxlSW5mb3JtYXRpb24u
bWF4aW11bSgpKTsKICAgICAgICAgICAgIGlmICghd2FzbVRhYmxlKQogICAgICAgICAgICAgICAg
IHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihleGVjLCB2bSwg
ImNvdWxkbid0IGNyZWF0ZSBUYWJsZSIpKTsKLSAgICAgICAgICAgIEpTV2ViQXNzZW1ibHlUYWJs
ZSogdGFibGUgPSBKU1dlYkFzc2VtYmx5VGFibGU6OmNyZWF0ZShleGVjLCB2bSwgZ2xvYmFsT2Jq
ZWN0LT5XZWJBc3NlbWJseVRhYmxlU3RydWN0dXJlKCksIHdhc21UYWJsZS5yZWxlYXNlTm9uTnVs
bCgpKTsKKyAgICAgICAgICAgIEpTV2ViQXNzZW1ibHlUYWJsZSogdGFibGUgPSBKU1dlYkFzc2Vt
Ymx5VGFibGU6OmNyZWF0ZShleGVjLCB2bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseVRhYmxl
U3RydWN0dXJlKCksIHdhc21UYWJsZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIC8v
IFdlIHNob3VsZCBhbHdheXMgYmUgYWJsZSB0byBhbGxvY2F0ZSBhIEpTV2ViQXNzZW1ibHlUYWJs
ZSB3ZSd2ZSBkZWZpbmVkLgogICAgICAgICAgICAgLy8gSWYgaXQncyBkZWZpbmVkIHRvIGJlIHRv
byBsYXJnZSwgd2Ugc2hvdWxkIGhhdmUgdGhyb3duIGEgdmFsaWRhdGlvbiBlcnJvci4KICAgICAg
ICAgICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CkBAIC0zNDMsNyArMzQzLDcgQEAgdm9p
ZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6bGluayhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUs
IEpTT2JqZWN0KiBpbXBvcnRPYmoKICAgICAgICAgICAgICAgICAgICAgZXhwb3J0ZWRWYWx1ZSA9
IGZ1bmN0aW9uSW1wb3J0OwogICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAg
ICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBzaWduYXR1cmVJbmRleCA9IG1vZHVsZS0+c2lnbmF0
dXJlSW5kZXhGcm9tRnVuY3Rpb25JbmRleFNwYWNlKGZ1bmN0aW9uSW5kZXgpOwotICAgICAgICAg
ICAgICAgICAgICBleHBvcnRlZFZhbHVlID0gV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBmdW5jdGlvbkltcG9ydCwgZnVuY3Rpb25JbmRleCwgbV9p
bnN0YW5jZS5nZXQoKSwgc2lnbmF0dXJlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICBleHBv
cnRlZFZhbHVlID0gV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uU3RydWN0dXJl
KCksIGZ1bmN0aW9uSW1wb3J0LCBmdW5jdGlvbkluZGV4LCBtX2luc3RhbmNlLmdldCgpLCBzaWdu
YXR1cmVJbmRleCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgICAgICAvLyAgIGlpaS4gT3RoZXJ3aXNlOgpAQCAtMzU0LDcgKzM1NCw3IEBAIHZv
aWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmxpbmsoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
LCBKU09iamVjdCogaW1wb3J0T2JqCiAgICAgICAgICAgICAgICAgV2FzbTo6V2FzbVRvV2FzbUlt
cG9ydGFibGVGdW5jdGlvbjo6TG9hZExvY2F0aW9uIGVudHJ5cG9pbnRMb2FkTG9jYXRpb24gPSBj
b2RlQmxvY2stPmVudHJ5cG9pbnRMb2FkTG9jYXRpb25Gcm9tRnVuY3Rpb25JbmRleFNwYWNlKGV4
cC5raW5kSW5kZXgpOwogICAgICAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IHNpZ25h
dHVyZUluZGV4ID0gbW9kdWxlLT5zaWduYXR1cmVJbmRleEZyb21GdW5jdGlvbkluZGV4U3BhY2Uo
ZXhwLmtpbmRJbmRleCk7CiAgICAgICAgICAgICAgICAgY29uc3QgV2FzbTo6U2lnbmF0dXJlJiBz
aWduYXR1cmUgPSBXYXNtOjpTaWduYXR1cmVJbmZvcm1hdGlvbjo6Z2V0KHNpZ25hdHVyZUluZGV4
KTsKLSAgICAgICAgICAgICAgICBXZWJBc3NlbWJseUZ1bmN0aW9uKiBmdW5jdGlvbiA9IFdlYkFz
c2VtYmx5RnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBzaWduYXR1cmUuYXJndW1l
bnRDb3VudCgpLCBTdHJpbmc6OmZyb21VVEY4KGV4cC5maWVsZCksIG1faW5zdGFuY2UuZ2V0KCks
IGVtYmVkZGVyRW50cnlwb2ludENhbGxlZSwgZW50cnlwb2ludExvYWRMb2NhdGlvbiwgc2lnbmF0
dXJlSW5kZXgpOworICAgICAgICAgICAgICAgIFdlYkFzc2VtYmx5RnVuY3Rpb24qIGZ1bmN0aW9u
ID0gV2ViQXNzZW1ibHlGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9i
amVjdC0+d2ViQXNzZW1ibHlGdW5jdGlvblN0cnVjdHVyZSgpLCBzaWduYXR1cmUuYXJndW1lbnRD
b3VudCgpLCBTdHJpbmc6OmZyb21VVEY4KGV4cC5maWVsZCksIG1faW5zdGFuY2UuZ2V0KCksIGVt
YmVkZGVyRW50cnlwb2ludENhbGxlZSwgZW50cnlwb2ludExvYWRMb2NhdGlvbiwgc2lnbmF0dXJl
SW5kZXgpOwogICAgICAgICAgICAgICAgIGV4cG9ydGVkVmFsdWUgPSBmdW5jdGlvbjsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDI0LDcgKzQyNCw3IEBAIHZvaWQgV2Vi
QXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmxpbmsoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBKU09i
amVjdCogaW1wb3J0T2JqCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBXYXNtOjpDYWxs
ZWUmIGVtYmVkZGVyRW50cnlwb2ludENhbGxlZSA9IGNvZGVCbG9jay0+ZW1iZWRkZXJFbnRyeXBv
aW50Q2FsbGVlRnJvbUZ1bmN0aW9uSW5kZXhTcGFjZShzdGFydEZ1bmN0aW9uSW5kZXhTcGFjZSk7
CiAgICAgICAgICAgICBXYXNtOjpXYXNtVG9XYXNtSW1wb3J0YWJsZUZ1bmN0aW9uOjpMb2FkTG9j
YXRpb24gZW50cnlwb2ludExvYWRMb2NhdGlvbiA9IGNvZGVCbG9jay0+ZW50cnlwb2ludExvYWRM
b2NhdGlvbkZyb21GdW5jdGlvbkluZGV4U3BhY2Uoc3RhcnRGdW5jdGlvbkluZGV4U3BhY2UpOwot
ICAgICAgICAgICAgV2ViQXNzZW1ibHlGdW5jdGlvbiogZnVuY3Rpb24gPSBXZWJBc3NlbWJseUZ1
bmN0aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgc2lnbmF0dXJlLmFyZ3VtZW50Q291bnQo
KSwgInN0YXJ0IiwgbV9pbnN0YW5jZS5nZXQoKSwgZW1iZWRkZXJFbnRyeXBvaW50Q2FsbGVlLCBl
bnRyeXBvaW50TG9hZExvY2F0aW9uLCBzaWduYXR1cmVJbmRleCk7CisgICAgICAgICAgICBXZWJB
c3NlbWJseUZ1bmN0aW9uKiBmdW5jdGlvbiA9IFdlYkFzc2VtYmx5RnVuY3Rpb246OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5RnVuY3Rpb25TdHJ1Y3R1
cmUoKSwgc2lnbmF0dXJlLmFyZ3VtZW50Q291bnQoKSwgInN0YXJ0IiwgbV9pbnN0YW5jZS5nZXQo
KSwgZW1iZWRkZXJFbnRyeXBvaW50Q2FsbGVlLCBlbnRyeXBvaW50TG9hZExvY2F0aW9uLCBzaWdu
YXR1cmVJbmRleCk7CiAgICAgICAgICAgICBtX3N0YXJ0RnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBm
dW5jdGlvbik7CiAgICAgICAgIH0KICAgICB9CkBAIC01MzMsNyArNTMzLDcgQEAgSlNWYWx1ZSBX
ZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6ZXZhbHVhdGUoRXhlY1N0YXRlKiBleGVjKQogICAgICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIHRhYmxlLT5zZXRGdW5jdGlvbih2bSwgdGFi
bGVJbmRleCwKLSAgICAgICAgICAgICAgICAgICAgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBmdW5jdGlvbkltcG9ydCwgZnVuY3Rpb25JbmRleCwg
bV9pbnN0YW5jZS5nZXQoKSwgc2lnbmF0dXJlSW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgICAg
V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3QtPndlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uU3RydWN0dXJlKCksIGZ1bmN0aW9u
SW1wb3J0LCBmdW5jdGlvbkluZGV4LCBtX2luc3RhbmNlLmdldCgpLCBzaWduYXR1cmVJbmRleCkp
OwogICAgICAgICAgICAgICAgICsrdGFibGVJbmRleDsKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgICAgIH0KQEAgLTU0Niw3ICs1NDYsNyBAQCBKU1ZhbHVlIFdlYkFzc2VtYmx5
TW9kdWxlUmVjb3JkOjpldmFsdWF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAvLyBE
b2VzIChuZXcgSW5zdGFuY2UoLi4uKSkuZXhwb3J0cy5mb28gPT09IHRhYmxlLmdldCgwKT8KICAg
ICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU4
MjUKICAgICAgICAgICAgIFdlYkFzc2VtYmx5RnVuY3Rpb24qIGZ1bmN0aW9uID0gV2ViQXNzZW1i
bHlGdW5jdGlvbjo6Y3JlYXRlKAotICAgICAgICAgICAgICAgIHZtLCBnbG9iYWxPYmplY3QsIHNp
Z25hdHVyZS5hcmd1bWVudENvdW50KCksIFN0cmluZygpLCBtX2luc3RhbmNlLmdldCgpLCBlbWJl
ZGRlckVudHJ5cG9pbnRDYWxsZWUsIGVudHJ5cG9pbnRMb2FkTG9jYXRpb24sIHNpZ25hdHVyZUlu
ZGV4KTsKKyAgICAgICAgICAgICAgICB2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPndl
YkFzc2VtYmx5RnVuY3Rpb25TdHJ1Y3R1cmUoKSwgc2lnbmF0dXJlLmFyZ3VtZW50Q291bnQoKSwg
U3RyaW5nKCksIG1faW5zdGFuY2UuZ2V0KCksIGVtYmVkZGVyRW50cnlwb2ludENhbGxlZSwgZW50
cnlwb2ludExvYWRMb2NhdGlvbiwgc2lnbmF0dXJlSW5kZXgpOwogCiAgICAgICAgICAgICB0YWJs
ZS0+c2V0RnVuY3Rpb24odm0sIHRhYmxlSW5kZXgsIGZ1bmN0aW9uKTsKICAgICAgICAgICAgICsr
dGFibGVJbmRleDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5UHJvdG90eXBlLmNwcAppbmRleCA2NWIwM2Q5NDMzMmE1YmQ1NGY0YjY3NWYyYWEy
YzFmOTgyNzE1ZmVhLi4yMGMzNGIyYWFlODVjOGQ2M2UzZWFiMDQ3OTg5MzI5ZDMwNGYxYzNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVByb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlQ
cm90b3R5cGUuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRpYyB2b2lkIHdlYkFzc2VtYmx5TW9k
dWxlVmFsaWRhdGVBc3luY0ludGVybmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNQcm9taXNlRGVmCiAg
ICAgICAgIHZtLnByb21pc2VEZWZlcnJlZFRpbWVyLT5zY2hlZHVsZVdvcmtTb29uKHByb21pc2Us
IFtwcm9taXNlLCBnbG9iYWxPYmplY3QsIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KSwgJnZtXSAo
KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BF
KHZtKTsKICAgICAgICAgICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFs
RXhlYygpOwotICAgICAgICAgICAgSlNWYWx1ZSBtb2R1bGUgPSBKU1dlYkFzc2VtYmx5TW9kdWxl
OjpjcmVhdGVTdHViKHZtLCBleGVjLCBnbG9iYWxPYmplY3QtPldlYkFzc2VtYmx5TW9kdWxlU3Ry
dWN0dXJlKCksIFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICBKU1ZhbHVlIG1vZHVsZSA9
IEpTV2ViQXNzZW1ibHlNb2R1bGU6OmNyZWF0ZVN0dWIodm0sIGV4ZWMsIGdsb2JhbE9iamVjdC0+
d2ViQXNzZW1ibHlNb2R1bGVTdHJ1Y3R1cmUoKSwgV1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAg
ICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkpIHsKICAgICAgICAgICAgICAgICBy
ZWplY3QoZXhlYywgc2NvcGUsIHByb21pc2UpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAg
LTE2Niw3ICsxNjYsNyBAQCBzdGF0aWMgdm9pZCBpbnN0YW50aWF0ZShWTSYgdm0sIEV4ZWNTdGF0
ZSogZXhlYywgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2UsIEpTVwogewogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKICAgICAvLyBJbiBvcmRlciB0byBhdm9pZCBw
b3RlbnRpYWxseSByZWNvbXBpbGluZyBhIG1vZHVsZS4gV2UgZmlyc3QgZ2F0aGVyIGFsbCB0aGUg
aW1wb3J0L21lbW9yeSBpbmZvcm1hdGlvbiBwcmlvciB0byBjb21waWxpbmcgY29kZS4KLSAgICBK
U1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RhbmNlID0gSlNXZWJBc3NlbWJseUluc3RhbmNlOjpj
cmVhdGUodm0sIGV4ZWMsIG1vZHVsZUtleSwgbW9kdWxlLCBpbXBvcnRPYmplY3QsIGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKS0+V2ViQXNzZW1ibHlJbnN0YW5jZVN0cnVjdHVyZSgpLCBSZWY8
V2FzbTo6TW9kdWxlPihtb2R1bGUtPm1vZHVsZSgpKSwgY3JlYXRpb25Nb2RlKTsKKyAgICBKU1dl
YkFzc2VtYmx5SW5zdGFuY2UqIGluc3RhbmNlID0gSlNXZWJBc3NlbWJseUluc3RhbmNlOjpjcmVh
dGUodm0sIGV4ZWMsIG1vZHVsZUtleSwgbW9kdWxlLCBpbXBvcnRPYmplY3QsIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+d2ViQXNzZW1ibHlJbnN0YW5jZVN0cnVjdHVyZSgpLCBSZWY8V2Fz
bTo6TW9kdWxlPihtb2R1bGUtPm1vZHVsZSgpKSwgY3JlYXRpb25Nb2RlKTsKICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCByZWplY3QoZXhlYywgc2NvcGUsIHByb21pc2UpKTsKIAogICAg
IFZlY3RvcjxTdHJvbmc8SlNDZWxsPj4gZGVwZW5kZW5jaWVzOwpAQCAtMjAzLDcgKzIwMyw3IEBA
IHN0YXRpYyB2b2lkIGNvbXBpbGVBbmRJbnN0YW50aWF0ZShWTSYgdm0sIEV4ZWNTdGF0ZSogZXhl
YywgSlNQcm9taXNlRGVmZXJyZWQqIHByCiAgICAgICAgIHZtLnByb21pc2VEZWZlcnJlZFRpbWVy
LT5zY2hlZHVsZVdvcmtTb29uKHByb21pc2UsIFtwcm9taXNlLCBpbXBvcnRPYmplY3QsIG1vZHVs
ZUtleUNlbGwsIGdsb2JhbE9iamVjdCwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpLCByZXNvbHZl
S2luZCwgY3JlYXRpb25Nb2RlLCAmdm1dICgpIG11dGFibGUgewogICAgICAgICAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwogICAgICAgICAgICAgRXhlY1N0YXRlKiBl
eGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7Ci0gICAgICAgICAgICBKU1dlYkFzc2Vt
Ymx5TW9kdWxlKiBtb2R1bGUgPSBKU1dlYkFzc2VtYmx5TW9kdWxlOjpjcmVhdGVTdHViKHZtLCBl
eGVjLCBnbG9iYWxPYmplY3QtPldlYkFzc2VtYmx5TW9kdWxlU3RydWN0dXJlKCksIFdURk1vdmUo
cmVzdWx0KSk7CisgICAgICAgICAgICBKU1dlYkFzc2VtYmx5TW9kdWxlKiBtb2R1bGUgPSBKU1dl
YkFzc2VtYmx5TW9kdWxlOjpjcmVhdGVTdHViKHZtLCBleGVjLCBnbG9iYWxPYmplY3QtPndlYkFz
c2VtYmx5TW9kdWxlU3RydWN0dXJlKCksIFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAgICAgICBp
ZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKQogICAgICAgICAgICAgICAgIHJldHVybiBy
ZWplY3QoZXhlYywgc2NvcGUsIHByb21pc2UpOwogCkBAIC0yMzcsNyArMjM3LDcgQEAgc3RhdGlj
IHZvaWQgd2ViQXNzZW1ibHlNb2R1bGVJbnN0YW50aW5hdGVBc3luY0ludGVybmFsKEV4ZWNTdGF0
ZSogZXhlYywgSlNQcm9taXMKICAgICAgICAgdm0ucHJvbWlzZURlZmVycmVkVGltZXItPnNjaGVk
dWxlV29ya1Nvb24ocHJvbWlzZSwgW3Byb21pc2UsIGltcG9ydE9iamVjdCwgZ2xvYmFsT2JqZWN0
LCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCksICZ2bV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAgICAgICAgICAgICBFeGVj
U3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKLSAgICAgICAgICAgIEpT
V2ViQXNzZW1ibHlNb2R1bGUqIG1vZHVsZSA9IEpTV2ViQXNzZW1ibHlNb2R1bGU6OmNyZWF0ZVN0
dWIodm0sIGV4ZWMsIGdsb2JhbE9iamVjdC0+V2ViQXNzZW1ibHlNb2R1bGVTdHJ1Y3R1cmUoKSwg
V1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIEpTV2ViQXNzZW1ibHlNb2R1bGUqIG1vZHVs
ZSA9IEpTV2ViQXNzZW1ibHlNb2R1bGU6OmNyZWF0ZVN0dWIodm0sIGV4ZWMsIGdsb2JhbE9iamVj
dC0+d2ViQXNzZW1ibHlNb2R1bGVTdHJ1Y3R1cmUoKSwgV1RGTW92ZShyZXN1bHQpKTsKICAgICAg
ICAgICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIHJlamVjdChleGVjLCBzY29wZSwgcHJvbWlzZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYTBiOGMxYzc3NWVhMGRlYmMwM2M3OGZmOTI4MWE5
ZWVmN2YzYzhjNi4uZDI5YjlhOTQwNmEyNjEzNjRkNmFmNTFkNmIzODk2MzMwZWM0Y2U3NSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvcihFeGVjU3RhdGUKICAgICBhdXRvJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgbWVzc2Fn
ZSA9IGV4ZWMtPmFyZ3VtZW50KDApOwotICAgIGF1dG8qIHN0cnVjdHVyZSA9IEludGVybmFsRnVu
Y3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGV4ZWMsIGV4ZWMtPm5ld1RhcmdldCgpLCBq
c0Nhc3Q8SW50ZXJuYWxGdW5jdGlvbio+KGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3Qo
dm0pLT5XZWJBc3NlbWJseVJ1bnRpbWVFcnJvclN0cnVjdHVyZSgpKTsKKyAgICBhdXRvKiBzdHJ1
Y3R1cmUgPSBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShleGVjLCBl
eGVjLT5uZXdUYXJnZXQoKSwganNDYXN0PEludGVybmFsRnVuY3Rpb24qPihleGVjLT5qc0NhbGxl
ZSgpKS0+Z2xvYmFsT2JqZWN0KHZtKS0+d2ViQXNzZW1ibHlSdW50aW1lRXJyb3JTdHJ1Y3R1cmUo
KSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpjcmVh
dGUoZXhlYywgdm0sIHN0cnVjdHVyZSwgbWVzc2FnZSkpOwogfQpAQCAtNTcsNyArNTcsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yKEV4ZWNTdGF0ZQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoRXhlY1N0YXRlKiBleGVjKQogewogICAg
IEpTVmFsdWUgbWVzc2FnZSA9IGV4ZWMtPmFyZ3VtZW50KDApOwotICAgIFN0cnVjdHVyZSogZXJy
b3JTdHJ1Y3R1cmUgPSBqc0Nhc3Q8SW50ZXJuYWxGdW5jdGlvbio+KGV4ZWMtPmpzQ2FsbGVlKCkp
LT5nbG9iYWxPYmplY3QoZXhlYy0+dm0oKSktPldlYkFzc2VtYmx5UnVudGltZUVycm9yU3RydWN0
dXJlKCk7CisgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGpzQ2FzdDxJbnRlcm5hbEZ1
bmN0aW9uKj4oZXhlYy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdChleGVjLT52bSgpKS0+d2Vi
QXNzZW1ibHlSdW50aW1lRXJyb3JTdHJ1Y3R1cmUoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShleGVjLCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwg
bnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IGE0MTUzODViYmE0MzljYTQxZDE1ZDk3N2NjZWQ2M2E5NzdiZWY3ZTQuLjFhMmVh
YTdhYjI2MjJkMzE0MDBiY2NmOTlhMDYxN2I3ZTJlMzcyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVj
dG9yLmNwcApAQCAtOTYsNyArOTYsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5VGFibGUoRXhlY1N0YXRlKiBleGVjKQogICAgICAg
ICAgICAgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCAiY291bGRuJ3QgY3JlYXRlIFRhYmxlIl9zKSkp
OwogICAgIH0KIAotICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjpl
bmNvZGUoSlNXZWJBc3NlbWJseVRhYmxlOjpjcmVhdGUoZXhlYywgdm0sIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKS0+V2ViQXNzZW1ibHlUYWJsZVN0cnVjdHVyZSgpLCB3YXNtVGFibGUucmVs
ZWFzZU5vbk51bGwoKSkpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKEpTV2ViQXNzZW1ibHlUYWJsZTo6Y3JlYXRlKGV4ZWMsIHZtLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPndlYkFzc2VtYmx5VGFibGVTdHJ1Y3R1cmUoKSwgd2FzbVRh
YmxlLnJlbGVhc2VOb25OdWxsKCkpKSk7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxKU1dlYkFzc2VtYmx5VGFibGUoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUb0pTQ2FsbGVl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VG9KU0NhbGxl
ZS5jcHAKaW5kZXggNTUwZDdhOTJlOWM1ODFmNGM0NGIwYjNmY2E4NjBlZmRjMjMxNmE4Yy4uZmUx
YTAxOGQwMWFkOWIwN2U5MDBiM2ZjZTk0MjU5MTI0MWJjNDgwMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUb0pTQ2FsbGVlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRvSlNDYWxsZWUuY3BwCkBA
IC0zNSw5ICszNSw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gV2ViQXNz
ZW1ibHlUb0pTQ2FsbGVlOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseVRvSlNDYWxsZWUiLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFdlYkFzc2Vt
Ymx5VG9KU0NhbGxlZSkgfTsKIAotV2ViQXNzZW1ibHlUb0pTQ2FsbGVlKiBXZWJBc3NlbWJseVRv
SlNDYWxsZWU6OmNyZWF0ZShWTSYgdm0sIEpTV2ViQXNzZW1ibHlNb2R1bGUqIG1vZHVsZSkKK1dl
YkFzc2VtYmx5VG9KU0NhbGxlZSogV2ViQXNzZW1ibHlUb0pTQ2FsbGVlOjpjcmVhdGUoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNXZWJBc3NlbWJseU1vZHVsZSogbW9kdWxlKQogewot
ICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbW9kdWxlLT5nbG9iYWxPYmplY3Qodm0pLT53ZWJB
c3NlbWJseVRvSlNDYWxsZWVTdHJ1Y3R1cmUoKTsKICAgICBXZWJBc3NlbWJseVRvSlNDYWxsZWUq
IGNhbGxlZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFdlYkFzc2VtYmx5VG9KU0NhbGxl
ZT4odm0uaGVhcCkpIFdlYkFzc2VtYmx5VG9KU0NhbGxlZSh2bSwgc3RydWN0dXJlKTsKICAgICBj
YWxsZWUtPmZpbmlzaENyZWF0aW9uKHZtLCBtb2R1bGUpOwogICAgIHJldHVybiBjYWxsZWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRvSlND
YWxsZWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VG9KU0Nh
bGxlZS5oCmluZGV4IGE0NmJhZjk1MDQ1YzEwODVmNWE4YzAzN2ZhMWRlMTE4OTNhN2RiYTAuLmVi
NGU5NzI5NDQ2YzQ2ODhmNDBiMTgyNTg0ZDc4ZGM1YTgwM2Q0ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VG9KU0NhbGxlZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VG9KU0NhbGxlZS5oCkBAIC0z
OCw3ICszOCw3IEBAIGNsYXNzIFdlYkFzc2VtYmx5VG9KU0NhbGxlZSBmaW5hbCA6IHB1YmxpYyBK
U05vbkZpbmFsT2JqZWN0IHsKICAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFnczsKIAotICAgIHN0YXRpYyBXZWJBc3NlbWJseVRvSlNDYWxsZWUqIGNyZWF0ZShWTSYsIEpT
V2ViQXNzZW1ibHlNb2R1bGUqKTsKKyAgICBzdGF0aWMgV2ViQXNzZW1ibHlUb0pTQ2FsbGVlKiBj
cmVhdGUoVk0mLCBTdHJ1Y3R1cmUqLCBKU1dlYkFzc2VtYmx5TW9kdWxlKik7CiAgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVl
KTsKIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5jcHAKaW5k
ZXggOTM4YTU0MTg0N2JhMWZjNzhhNzQwNDFkZDg0NWEyZWRlMmU5ZGMwOC4uY2RlNGYzY2YyNjA0
YWRkNzZjYzA0ZmIyMjRmOWE1MmJkMmRhMDM3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmNwcApA
QCAtNTUsMTIgKzU1LDEyIEBAIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjpXZWJBc3NlbWJs
eVdyYXBwZXJGdW5jdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgLCBtX2ltcG9y
dGFibGVGdW5jdGlvbihpbXBvcnRhYmxlRnVuY3Rpb24pCiB7IH0KIAotV2ViQXNzZW1ibHlXcmFw
cGVyRnVuY3Rpb24qIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjpjcmVhdGUoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogZnVuY3Rpb24sIHVuc2lnbmVk
IGltcG9ydEluZGV4LCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RhbmNlLCBXYXNtOjpTaWdu
YXR1cmVJbmRleCBzaWduYXR1cmVJbmRleCkKK1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiBX
ZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTT2JqZWN0KiBmdW5jdGlvbiwg
dW5zaWduZWQgaW1wb3J0SW5kZXgsIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGFuY2UsIFdh
c206OlNpZ25hdHVyZUluZGV4IHNpZ25hdHVyZUluZGV4KQogewogICAgIEFTU0VSVF9XSVRIX01F
U1NBR0UoIWZ1bmN0aW9uLT5pbmhlcml0czxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbj4odm0p
LCAiV2Ugc2hvdWxkIG5ldmVyIGRvdWJsZSB3cmFwIGEgd3JhcHBlciBmdW5jdGlvbi4iKTsKICAg
ICBTdHJpbmcgbmFtZSA9ICIiOwogICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSB2
bS5nZXRIb3N0RnVuY3Rpb24oY2FsbFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLCBOb0ludHJp
bnNpYywgY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IsIG51bGxwdHIsIG5hbWUpOwotICAg
IFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiByZXN1bHQgPSBuZXcgKE5vdE51bGwsIGFsbG9j
YXRlQ2VsbDxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbj4odm0uaGVhcCkpIFdlYkFzc2VtYmx5
V3JhcHBlckZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1i
bHlXcmFwcGVyRnVuY3Rpb25TdHJ1Y3R1cmUoKSwgV2FzbTo6V2FzbVRvV2FzbUltcG9ydGFibGVG
dW5jdGlvbiB7IHNpZ25hdHVyZUluZGV4LCAmaW5zdGFuY2UtPmluc3RhbmNlKCkuaW1wb3J0RnVu
Y3Rpb25JbmZvKGltcG9ydEluZGV4KS0+d2FzbVRvRW1iZWRkZXJTdHViIH0gKTsKKyAgICBXZWJB
c3NlbWJseVdyYXBwZXJGdW5jdGlvbiogcmVzdWx0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNl
bGw8V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24+KHZtLmhlYXApKSBXZWJBc3NlbWJseVdyYXBw
ZXJGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIFdhc206Oldhc21Ub1dhc21J
bXBvcnRhYmxlRnVuY3Rpb24geyBzaWduYXR1cmVJbmRleCwgJmluc3RhbmNlLT5pbnN0YW5jZSgp
LmltcG9ydEZ1bmN0aW9uSW5mbyhpbXBvcnRJbmRleCktPndhc21Ub0VtYmVkZGVyU3R1YiB9ICk7
CiAgICAgY29uc3QgV2FzbTo6U2lnbmF0dXJlJiBzaWduYXR1cmUgPSBXYXNtOjpTaWduYXR1cmVJ
bmZvcm1hdGlvbjo6Z2V0KHNpZ25hdHVyZUluZGV4KTsKICAgICByZXN1bHQtPmZpbmlzaENyZWF0
aW9uKHZtLCBleGVjdXRhYmxlLCBzaWduYXR1cmUuYXJndW1lbnRDb3VudCgpLCBuYW1lLCBmdW5j
dGlvbiwgaW5zdGFuY2UpOwogICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uaApp
bmRleCBkMTJlNjkxMTQxOWU4ZmRkN2JhNjI0ZmVlMTM0YjhmZGU3YjJmODE1Li5iNzRiMmRkNWVk
NDEwOWFkMDU5MTRmNzcyZDEyZTQ1Y2IyMTkyOTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmgKQEAg
LTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24gZmluYWwgOiBw
dWJsaWMgV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2UgewogCiAgICAgREVDTEFSRV9JTkZPOwogCi0g
ICAgc3RhdGljIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiBjcmVhdGUoVk0mLCBKU0dsb2Jh
bE9iamVjdCosIEpTT2JqZWN0KiwgdW5zaWduZWQgaW1wb3J0SW5kZXgsIEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZSosIFdhc206OlNpZ25hdHVyZUluZGV4KTsKKyAgICBzdGF0aWMgV2ViQXNzZW1ibHlX
cmFwcGVyRnVuY3Rpb24qIGNyZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwg
SlNPYmplY3QqLCB1bnNpZ25lZCBpbXBvcnRJbmRleCwgSlNXZWJBc3NlbWJseUluc3RhbmNlKiwg
V2FzbTo6U2lnbmF0dXJlSW5kZXgpOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CiAKICAgICBXYXNtOjpTaWduYXR1
cmVJbmRleCBzaWduYXR1cmVJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wb3J0YWJsZUZ1bmN0
aW9uLnNpZ25hdHVyZUluZGV4OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA0ZmZiMzEyMzdjNzIyOGZiYzc5NmRl
NDM1NDhhYWY5Mjk1NjQ1MWVmLi5kMzM2N2JhNWFhNWNjYWEyOGViYTU1NTNkYzhiNTc5YmI4MzYw
MmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHAKQEAgLTI5MjMsNyArMjkyMyw3IEBAIGNsYXNzIENsb25lRGVzZXJpYWxp
emVyIDogQ2xvbmVCYXNlIHsKICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
bV9leGVjLT52bSgpKTsKLSAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNDOjpKU1dlYkFz
c2VtYmx5TW9kdWxlOjpjcmVhdGVTdHViKG1fZXhlYy0+dm0oKSwgbV9leGVjLCBtX2dsb2JhbE9i
amVjdC0+V2ViQXNzZW1ibHlNb2R1bGVTdHJ1Y3R1cmUoKSwgbV93YXNtTW9kdWxlcy0+YXQoaW5k
ZXgpKTsKKyAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNDOjpKU1dlYkFzc2VtYmx5TW9k
dWxlOjpjcmVhdGVTdHViKG1fZXhlYy0+dm0oKSwgbV9leGVjLCBtX2dsb2JhbE9iamVjdC0+d2Vi
QXNzZW1ibHlNb2R1bGVTdHJ1Y3R1cmUoKSwgbV93YXNtTW9kdWxlcy0+YXQoaW5kZXgpKTsKICAg
ICAgICAgICAgIC8vIFNpbmNlIHdlIGFyZSBjbG9uaW5nIGEgSlNXZWJBc3NlbWJseU1vZHVsZSwg
aXQncyBpbXBvc3NpYmxlIGZvciB0aGF0CiAgICAgICAgICAgICAvLyBtb2R1bGUgdG8gbm90IGhh
dmUgYmVlbiBhIHZhbGlkIG1vZHVsZS4gVGhlcmVmb3JlLCBjcmVhdGVTdHViIHNob3VsZAogICAg
ICAgICAgICAgLy8gbm90IHRyb3cuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>