<?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>194480</bug_id>
          
          <creation_ts>2019-02-10 04:58:03 -0800</creation_ts>
          <short_desc>Flaky API Test: TestWebKitAPI.ProcessSwap.SessionStorage</short_desc>
          <delta_ts>2019-02-27 17:40:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=194481</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=194545</see_also>
          <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="Aakash Jain">aakash_jain</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>lforschler</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1504675</commentid>
    <comment_count>0</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-02-10 04:58:03 -0800</bug_when>
    <thetext>TestWebKitAPI.ProcessSwap.SessionStorage seems flaky. In https://ews-build.webkit-uat.org/#/builders/20/builds/819, the test Failed in run-api-tests step. However, in the immediately next retry step (re-run-api-tests), it passed.

Same thing happened in  https://ews-build.webkit-uat.org/#/builders/20/builds/829</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1505209</commentid>
    <comment_count>1</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-02-12 06:37:23 -0800</bug_when>
    <thetext>Another one: https://ews-build.webkit-uat.org/#/builders/20/builds/880
(different test failure in re-run)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510424</commentid>
    <comment_count>2</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-02-27 05:54:55 -0800</bug_when>
    <thetext>Can we prioritize this?
I am working on EWS for API tests, and this flaky failure is creating problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510431</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-27 06:55:55 -0800</bug_when>
    <thetext>(In reply to Aakash Jain from comment #2)
&gt; Can we prioritize this?
&gt; I am working on EWS for API tests, and this flaky failure is creating
&gt; problem.

Ok, I think I should have some time to look into this today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510558</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-27 12:16:30 -0800</bug_when>
    <thetext>It looks like sometimes, when StorageManager::setItem() is called, findStorageArea(connection, storageMapID) returns null, so we fail to set the item.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510570</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-27 12:39:13 -0800</bug_when>
    <thetext>It is very weird, I see the StorageManager::CreateSessionStorageMap() getting sent by the WebProcess, then the StorageManager::SetItem() getting sent by the WebProcess. However, when it fails, on the UIProcess side, I see StorageManager::setItem() getting called but not StorageManager::createSessionStorageMap().

I added an assertion on sending side and it did not hit so the sender side believes that it was successful sending both IPC messages.

Both IPC messages are async so there is no way they could be processed out of order..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510644</commentid>
    <comment_count>6</comment_count>
      <attachid>363141</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-27 15:28:44 -0800</bug_when>
    <thetext>Created attachment 363141
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510653</commentid>
    <comment_count>7</comment_count>
      <attachid>363147</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-27 15:43:10 -0800</bug_when>
    <thetext>Created attachment 363147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510705</commentid>
    <comment_count>8</comment_count>
      <attachid>363147</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-27 16:54:25 -0800</bug_when>
    <thetext>Comment on attachment 363147
Patch

Clearing flags on attachment: 363147

Committed r242182: &lt;https://trac.webkit.org/changeset/242182&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510706</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-27 16:54:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510741</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-27 17:40:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/48458499&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363141</attachid>
            <date>2019-02-27 15:28:44 -0800</date>
            <delta_ts>2019-02-27 15:43:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194480-20190227152841.patch</filename>
            <type>text/plain</type>
            <size>31006</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcxNzIzZjkxZTJiZjY3ODE2
M2VmNjUxYzcxMTRkODUyMjI3Y2RjZWQuLjc0MzkyZTIxMzE3MjRhNzk0Njk5YTA0NjdiZjY3MGVj
NTdjZmM2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMTktMDItMjcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGbGFreSBBUEkgVGVzdDogVGVzdFdl
YktpdEFQSS5Qcm9jZXNzU3dhcC5TZXNzaW9uU3RvcmFnZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIFN0b3JhZ2VNYW5hZ2VyIHdvdWxkIG9ubHkg
c3RhcnQgbGlzdGVuaW5nIGZvciBJUEMgb24gYSBnaXZlbiBjb25uZWN0aW9uIHdoZW4KKyAgICAg
ICAgU3RvcmFnZU1hbmFnZXI6OnByb2Nlc3NXaWxsT3BlbkNvbm5lY3Rpb24oKSBpcyBjYWxsZWQu
IFRoaXMgZ2V0cyBjYWxsZWQgZnJvbQorICAgICAgICBXZWJzaXRlRGF0YVN0b3JlOjp3ZWJQcm9j
ZXNzV2lsbE9wZW5Db25uZWN0aW9uKCkgd2hpY2ggZ2V0cyBjYWxsZWQgZnJvbQorICAgICAgICBX
ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyOjp3ZWJQYWdlRW50ZXJpbmdXZWJQcm9jZXNzKCkuCisK
KyAgICAgICAgd2ViUGFnZUVudGVyaW5nV2ViUHJvY2VzcygpIHdhcyBjYWxsZWQgaW4gV2ViUGFn
ZVByb3h5OjpmaW5pc2hBdHRhY2hpbmdUb1dlYlByb2Nlc3MoKQorICAgICAgICBhZnRlciBwcm9j
ZXNzLXN3YXBwaW5nLiBUaGlzIG1lYW5zIHRoYXQgSVBDIGNvbW1pbmcgZnJvbSB0aGUgKnByb3Zp
c2lvbmFsKiBwcm9jZXNzCisgICAgICAgIHdvdWxkIG5vdCBnZXQgcHJvY2Vzc2VkIGFuZCB3ZSB3
b3VsZCBvbmx5IHN0YXJ0IHByb2Nlc3NpbmcgSVBDIG9uIHRoZSBwcm92aXNpb25hbAorICAgICAg
ICBwcm9jZXNzJ3MgY29ubmVjdGlvbiB3aGVuIGl0IHdvdWxkIGdldCBjb21taXR0ZWQuCisKKyAg
ICAgICAgVG8gYWRkcmVzcyB0aGUgaXNzdWUsIHRoaXMgcGF0Y2ggdGVhY2hlcyBXZWJQcm9jZXNz
TGlmZXRpbWVUcmFja2VyIHRoYXQgYSBwYWdlIGNhbgorICAgICAgICBub3cgaGF2ZSBzZXZlcmFs
IHByb2Nlc3Nlcy4gV2UgYWxzbyBtYWtlIHN1cmUgdGhhdCB3ZWJQYWdlRW50ZXJpbmdXZWJQcm9j
ZXNzKCkgZ2V0cworICAgICAgICBjYWxsZWQgZm9yIHRoZSBwcm92aXNpb25hbCBwcm9jZXNzIGFz
IHNvb24gYXMgd2UgY3JlYXRlIHRoZSBwcm92aXNpb25hbCBwYWdlLCBpbnN0ZWFkCisgICAgICAg
IG9mIHdhaXRpbmcgZm9yIGl0IHRvIGdldCBjb21taXR0ZWQuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25h
bFBhZ2VQcm94eTo6UHJvdmlzaW9uYWxQYWdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQcm92
aXNpb25hbFBhZ2VQcm94eTo6flByb3Zpc2lvbmFsUGFnZVByb3h5KToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbm5lY3Rpb25XaWxsT3Blbik6CisgICAgICAgICog
VUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZmluaXNoQXR0
YWNoaW5nVG9XZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb25u
ZWN0aW9uV2lsbE9wZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OndlYlByb2Nl
c3NXaWxsU2h1dERvd24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByb2Nlc3NE
aWRUZXJtaW5hdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlcjo6YWRkV2ViUGFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyOjpyZW1vdmVXZWJQYWdlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NMaWZldGltZVRyYWNrZXI6OmFkZE9ic2VydmVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlcjo6d2ViUGFnZUVudGVyaW5nV2ViUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NMaWZldGltZVRyYWNrZXI6OndlYlBh
Z2VMZWF2aW5nV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NMaWZldGlt
ZVRyYWNrZXI6OnBhZ2VXYXNJbnZhbGlkYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NMaWZldGltZVRyYWNrZXI6OnByb2Nlc3NJc1J1bm5pbmcpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y29ubmVj
dGlvbldpbGxPcGVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpTZXNzaW9uU3RvcmFn
ZU5hbWVzcGFjZTo6YWxsb3dlZENvbm5lY3Rpb25zIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
U3RvcmFnZU1hbmFnZXI6OlNlc3Npb25TdG9yYWdlTmFtZXNwYWNlOjphZGRBbGxvd2VkQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpTZXNzaW9uU3RvcmFnZU5h
bWVzcGFjZTo6cmVtb3ZlQWxsb3dlZENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlTWFuYWdlcjo6YWRkQWxsb3dlZFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlQ29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpyZW1vdmVBbGxvd2VkU2Vzc2lvblN0
b3JhZ2VOYW1lc3BhY2VDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFn
ZXI6OnByb2Nlc3NXaWxsT3BlbkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
TWFuYWdlcjo6cHJvY2Vzc0RpZENsb3NlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlN0
b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU1hcCk6CisgICAgICAgIChXZWJLaXQ6
OlN0b3JhZ2VNYW5hZ2VyOjpTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZTo6YWxsb3dlZENvbm5lY3Rp
b24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6U2Vz
c2lvblN0b3JhZ2VOYW1lc3BhY2U6OnNldEFsbG93ZWRDb25uZWN0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OnNldEFsbG93ZWRTZXNzaW9uU3RvcmFnZU5h
bWVzcGFjZUNvbm5lY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjp3
ZWJQYWdlV2lsbE9wZW5Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6d2ViUGFnZURpZENsb3NlQ29ubmVjdGlvbik6CisKIDIwMTktMDItMjYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbUFNPTl0gQWRkIG1lY2hhbmlzbSB0
byBjbGVhciBzdXNwZW5kZWQgcGFnZXMgd2hpbGUgYnlwYXNzaW5nIHRoZSBXZWJQcm9jZXNzIGNh
Y2hlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5j
cHAKaW5kZXggOWIxYjA0NjgxYjllNWViY2NmY2E0Y2M4YjM2MjU0YTI5MzhmMjIyMi4uMTI5OWVm
ODFjOTZkN2I0NjE0ZjZlYzA1YzhhZDcxYTJkOWMwNzAzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAtNjMsNiArNjMsOSBAQCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6UHJvdmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBw
YWdlLCBSZWY8V2ViUHJvY2Vzc1BybwogICAgIG1fcHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLnBh
Z2VJRCgpLCAqdGhpcyk7CiAgICAgbV9wcm9jZXNzLT5hZGRQcm92aXNpb25hbFBhZ2VQcm94eSgq
dGhpcyk7CiAKKyAgICBpZiAobV9wcm9jZXNzLT5zdGF0ZSgpID09IEF1eGlsaWFyeVByb2Nlc3NQ
cm94eTo6U3RhdGU6OlJ1bm5pbmcpCisgICAgICAgIG1fcGFnZS53ZWJQcm9jZXNzTGlmZXRpbWVU
cmFja2VyKCkud2ViUGFnZUVudGVyaW5nV2ViUHJvY2VzcyhtX3Byb2Nlc3MpOworCiAgICAgLy8g
SWYgd2UgYXJlIHJlYXR0YWNoaW5nIHRvIGEgU3VzcGVuZGVkUGFnZSwgdGhlbiB0aGUgV2ViUHJv
Y2VzcycgV2ViUGFnZSBhbHJlYWR5IGV4aXN0cyBhbmQKICAgICAvLyBXZWJQYWdlUHJveHk6OmRp
ZENyZWF0ZU1haW5GcmFtZSgpIHdpbGwgbm90IGJlIGNhbGxlZCB0byBpbml0aWFsaXplIG1fbWFp
bkZyYW1lLiBJbiBzdWNoCiAgICAgLy8gY2FzZSwgd2UgbmVlZCB0byBpbml0aWFsaXplIG1fbWFp
bkZyYW1lIHRvIHJlZmxlY3QgdGhlIGZhY3QgdGhlIHRoZSBXZWJQcm9jZXNzJyBXZWJQYWdlCkBA
IC04NCw2ICs4Nyw5IEBAIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojp+UHJvdmlzaW9uYWxQYWdlUHJv
eHkoKQogICAgIGlmIChtX3dhc0NvbW1pdHRlZCkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYg
KG1fcHJvY2Vzcy0+c3RhdGUoKSA9PSBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OlN0YXRlOjpSdW5u
aW5nKQorICAgICAgICBtX3BhZ2Uud2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlcigpLndlYlBhZ2VM
ZWF2aW5nV2ViUHJvY2VzcyhtX3Byb2Nlc3MpOworCiAgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX3BhZ2UucGFnZUlEKCkpOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6Q2xvc2UoKSwgbV9wYWdlLnBhZ2VJRCgpKTsKIApAQCAtOTIsNiArOTgsMTMgQEAgUHJvdmlz
aW9uYWxQYWdlUHJveHk6On5Qcm92aXNpb25hbFBhZ2VQcm94eSgpCiAgICAgfSk7CiB9CiAKK3Zv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24pCit7CisgICAgQVNTRVJUX1VOVVNFRChjb25uZWN0aW9uLCAmY29ubmVj
dGlvbiA9PSBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKSk7CisKKyAgICBtX3BhZ2Uud2ViUHJvY2Vz
c0xpZmV0aW1lVHJhY2tlcigpLndlYlBhZ2VFbnRlcmluZ1dlYlByb2Nlc3MobV9wcm9jZXNzKTsK
K30KKwogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZSgpCiB7
CiAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJwcm9j
ZXNzRGlkVGVybWluYXRlOiBwYWdlSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCA1
ZGI5ODg2NzYxMGQ0ZTJhMWNmZTA4ZjExZTJiZDgxYmU4NzhhMzczLi44ODgzZjczNDU2NzY5NDRm
NDNiMzg4MDFjNWE1MWFjMDcwYjI0NWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKQEAgLTgwLDYgKzgwLDcgQEAgcHVibGljOgogCiAgICAg
dm9pZCBwcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKCk7CiAgICAgdm9pZCBwcm9jZXNzRGlkVGVy
bWluYXRlKCk7CisgICAgdm9pZCBjb25uZWN0aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uJik7
CiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGI2NmZjZjNmYTQyMmQyMWU5YTVhNjk1Njc2
YWY2OTQ3M2RhNTZiNzIuLmFkYzNmNTE4OGI2M2M3YmZjYzc2MmEwZTdkNTc3MTUzNzg4MjdkNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzU0LDcgKzc1
NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2VzcygpCiAgICAgbV9w
cm9jZXNzLT5hZGRFeGlzdGluZ1dlYlBhZ2UoKnRoaXMsIG1fcGFnZUlELCBXZWJQcm9jZXNzUHJv
eHk6OkJlZ2luc1VzaW5nRGF0YVN0b3JlOjpZZXMpOwogICAgIG1fcHJvY2Vzcy0+YWRkTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
bV9wYWdlSUQsICp0aGlzKTsKIAotICAgIGZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2VzcygpOwor
ICAgIGZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2VzcyhJc1Byb2Nlc3NTd2FwOjpObyk7CiB9CiAK
IGJvb2wgV2ViUGFnZVByb3h5OjpzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6TmF2
aWdhdGlvbiYgbmF2aWdhdGlvbiwgT3B0aW9uYWw8dWludDY0X3Q+IG1haW5GcmFtZUlELCBQcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQpCkBA
IC04MTYsMTYgKzgxNiwxOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c3dhcFRvV2ViUHJvY2VzcyhS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHN0ZDo6dW5pcXVlXwogICAgIG1fcHJvY2Vz
cy0+YWRkRXhpc3RpbmdXZWJQYWdlKCp0aGlzLCBtX3BhZ2VJRCwgV2ViUHJvY2Vzc1Byb3h5OjpC
ZWdpbnNVc2luZ0RhdGFTdG9yZTo6Tm8pOwogICAgIG1fcHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdl
SUQsICp0aGlzKTsKIAotICAgIC8vIE5vIG5lZWQgdG8gaW5pdGlhbGl6ZSB0aGUgV2ViUGFnZSBz
aW5jZSBpdCB3YXMgY3JlYXRlZCB3aGVuIHdlIGNyZWF0ZWQgdGhlIFByb3Zpc2lvbmFsUGFnZVBy
b3h5LgotICAgIGZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2VzcyhTaG91bGRJbml0aWFsaXplV2Vi
UGFnZTo6Tm8pOworICAgIGZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2VzcyhJc1Byb2Nlc3NTd2Fw
OjpZZXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZmluaXNoQXR0YWNoaW5nVG9XZWJQcm9j
ZXNzKFNob3VsZEluaXRpYWxpemVXZWJQYWdlIHNob3VsZEluaXRpYWxpemVQYWdlKQordm9pZCBX
ZWJQYWdlUHJveHk6OmZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2VzcyhJc1Byb2Nlc3NTd2FwIGlz
UHJvY2Vzc1N3YXApCiB7CiAgICAgQVNTRVJUKG1fcHJvY2Vzcy0+c3RhdGUoKSAhPSBBdXhpbGlh
cnlQcm9jZXNzUHJveHk6OlN0YXRlOjpUZXJtaW5hdGVkKTsKIAogICAgIGlmIChtX3Byb2Nlc3Mt
PnN0YXRlKCkgPT0gQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpTdGF0ZTo6UnVubmluZykgewotICAg
ICAgICBtX3dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIud2ViUGFnZUVudGVyaW5nV2ViUHJvY2Vz
cygpOworICAgICAgICAvLyBJbiB0aGUgcHJvY2Vzcy1zd2FwIGNhc2UsIHRoZSBQcm92aXNpb25h
bFBhZ2VQcm94eSBjb25zdHJ1Y3RvciBhbHJlYWR5IHRvb2sgY2FyZSBvZiBjYWxsaW5nIHdlYlBh
Z2VFbnRlcmluZ1dlYlByb2Nlc3MoKQorICAgICAgICAvLyB3aGVuIHRoZSBwcm9jZXNzIHdhcyBw
cm92aXNpb25hbC4KKyAgICAgICAgaWYgKGlzUHJvY2Vzc1N3YXAgIT0gSXNQcm9jZXNzU3dhcDo6
WWVzKQorICAgICAgICAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLndlYlBhZ2VFbnRl
cmluZ1dlYlByb2Nlc3MobV9wcm9jZXNzKTsKICAgICAgICAgcHJvY2Vzc0RpZEZpbmlzaExhdW5j
aGluZygpOwogICAgIH0KIApAQCAtODU2LDcgKzg1OCw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpm
aW5pc2hBdHRhY2hpbmdUb1dlYlByb2Nlc3MoU2hvdWxkSW5pdGlhbGl6ZVdlYlBhZ2Ugc2hvdWxk
SW5pCiAgICAgbV9lZGl0YWJsZUltYWdlQ29udHJvbGxlciA9IHN0ZDo6bWFrZV91bmlxdWU8RWRp
dGFibGVJbWFnZUNvbnRyb2xsZXI+KCp0aGlzKTsKICNlbmRpZgogCi0gICAgaWYgKHNob3VsZElu
aXRpYWxpemVQYWdlID09IFNob3VsZEluaXRpYWxpemVXZWJQYWdlOjpZZXMpCisgICAgLy8gSW4g
dGhlIHByb2Nlc3Mtc3dhcCBjYXNlLCB0aGUgUHJvdmlzaW9uYWxQYWdlUHJveHkgYWxyZWFkeSB0
b29rIGNhcmUgb2YgaW5pdGlhbGl6aW5nIHRoZSBXZWJQYWdlIGluIHRoZSBXZWJQcm9jZXNzLgor
ICAgIGlmIChpc1Byb2Nlc3NTd2FwICE9IElzUHJvY2Vzc1N3YXA6OlllcykKICAgICAgICAgaW5p
dGlhbGl6ZVdlYlBhZ2UoKTsKIAogICAgIG1faW5zcGVjdG9yLT51cGRhdGVGb3JOZXdQYWdlUHJv
Y2Vzcyh0aGlzKTsKQEAgLTQ5OTYsMTIgKzQ5OTksMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNv
bm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CiAgICAgQVNT
RVJUX1VOVVNFRChjb25uZWN0aW9uLCAmY29ubmVjdGlvbiA9PSBtX3Byb2Nlc3MtPmNvbm5lY3Rp
b24oKSk7CiAKLSAgICBtX3dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIud2ViUGFnZUVudGVyaW5n
V2ViUHJvY2VzcygpOworICAgIG1fd2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci53ZWJQYWdlRW50
ZXJpbmdXZWJQcm9jZXNzKG1fcHJvY2Vzcyk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojp3ZWJQ
cm9jZXNzV2lsbFNodXREb3duKCkKIHsKLSAgICBtX3dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIu
d2ViUGFnZUxlYXZpbmdXZWJQcm9jZXNzKCk7CisgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFj
a2VyLndlYlBhZ2VMZWF2aW5nV2ViUHJvY2VzcyhtX3Byb2Nlc3MpOwogfQogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6cHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZygpCkBAIC02NTYwLDcgKzY1NjMsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZShQcm9jZXNzVGVybWluYXRp
b25SZWFzb24gcmVhc29uKQogICAgIC8vIElmIGl0IGRvZXMgKmR1cmluZyogcHJvY2VzcyBzd2Fw
cGluZywgYW5kIHRoZSBjbGllbnQgdHJpZ2dlcnMgYSByZWxvYWQsIHRoYXQgY2F1c2VzIGJpemFy
cmUgV2ViS2l0IHJlLWVudHJ5LgogICAgIC8vIEZJWE1FOiBUaGlzIG1pZ2h0IGhhdmUgdG8gY2hh
bmdlCiAgICAgaWYgKHJlYXNvbiA9PSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246Ok5hdmlnYXRp
b25Td2FwKQotICAgICAgICBtX3dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIud2ViUGFnZUxlYXZp
bmdXZWJQcm9jZXNzKCk7CisgICAgICAgIG1fd2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci53ZWJQ
YWdlTGVhdmluZ1dlYlByb2Nlc3MobV9wcm9jZXNzKTsKICAgICBlbHNlIHsKICAgICAgICAgbmF2
aWdhdGlvblN0YXRlKCkuY2xlYXJBbGxOYXZpZ2F0aW9ucygpOwogICAgICAgICBkaXNwYXRjaFBy
b2Nlc3NEaWRUZXJtaW5hdGUocmVhc29uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggNjMzZDM1Y2M3ZDA4MmM4NGQwYmRlMGZkNWVlNjcyZDk3ZTU0YTQ0Zi4uOWNh
ZTNjOTk4NjdmMTI1NmI4ZjM4YjNlYTJhMjJjYjU5Njk0NzNmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTM3Niw2ICszNzYsOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGFkZFByZXZpb3VzbHlWaXNpdGVkUGF0aChjb25zdCBTdHJpbmcmKTsKIAorICAgIFdlYlBy
b2Nlc3NMaWZldGltZVRyYWNrZXImIHdlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIoKSB7IHJldHVy
biBtX3dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXI7IH0KKwogI2lmIEVOQUJMRShEQVRBX0RFVEVD
VElPTikKICAgICBOU0FycmF5ICpkYXRhRGV0ZWN0aW9uUmVzdWx0cygpIHsgcmV0dXJuIG1fZGF0
YURldGVjdGlvblJlc3VsdHMuZ2V0KCk7IH0KICAgICB2b2lkIGRldGVjdERhdGFJbkFsbEZyYW1l
cyhXZWJDb3JlOjpEYXRhRGV0ZWN0b3JUeXBlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBEYXRhRGV0ZWN0aW9uUmVzdWx0Jik+JiYpOwpAQCAtMTYzMyw4ICsxNjM1LDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZEZhaWxUb1N1c3BlbmRBZnRlclByb2Nlc3NTd2FwKCk7CiAgICAgdm9p
ZCBkaWRTdXNwZW5kQWZ0ZXJQcm9jZXNzU3dhcCgpOwogCi0gICAgZW51bSBjbGFzcyBTaG91bGRJ
bml0aWFsaXplV2ViUGFnZSB7IE5vLCBZZXMgfTsKLSAgICB2b2lkIGZpbmlzaEF0dGFjaGluZ1Rv
V2ViUHJvY2VzcyhTaG91bGRJbml0aWFsaXplV2ViUGFnZSA9IFNob3VsZEluaXRpYWxpemVXZWJQ
YWdlOjpZZXMpOworICAgIGVudW0gY2xhc3MgSXNQcm9jZXNzU3dhcCB7IE5vLCBZZXMgfTsKKyAg
ICB2b2lkIGZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2VzcyhJc1Byb2Nlc3NTd2FwKTsKIAogICAg
IFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IHJlYXR0YWNoVG9XZWJQcm9jZXNzRm9yUmVsb2FkKCk7
CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gcmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRl
bShXZWJCYWNrRm9yd2FyZExpc3RJdGVtJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlci5jcHAKaW5kZXggYzM2NDc0ZjJiMWM4
ZmIzNTczZDhkNjQ3MjExMjFlMGMyYmVlYjM3ZS4uM2Q3NWFiZGNiMjcwMzJjMGUxZjcxZGIyOTM5
YmFkZDUyZTMzNGQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NMaWZldGltZU9ic2VydmVyLmNwcApAQCAtMzksMTAgKzM5LDggQEAgV2ViUHJvY2Vz
c0xpZmV0aW1lT2JzZXJ2ZXI6On5XZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlcigpCiB7CiB9CiAK
LXZvaWQgV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXI6OmFkZFdlYlBhZ2UoV2ViUGFnZVByb3h5
JiB3ZWJQYWdlUHJveHkpCit2b2lkIFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyOjphZGRXZWJQ
YWdlKFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3Mp
CiB7Ci0gICAgYXV0byYgcHJvY2VzcyA9IHdlYlBhZ2VQcm94eS5wcm9jZXNzKCk7Ci0KICAgICBB
U1NFUlQocHJvY2Vzcy5zdGF0ZSgpID09IFdlYlByb2Nlc3NQcm94eTo6U3RhdGU6OlJ1bm5pbmcp
OwogCiAgICAgaWYgKG1fcHJvY2Vzc2VzLmFkZCgmcHJvY2VzcykuaXNOZXdFbnRyeSkKQEAgLTUx
LDEwICs0OSw4IEBAIHZvaWQgV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXI6OmFkZFdlYlBhZ2Uo
V2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHkpCiAgICAgd2ViUGFnZVdpbGxPcGVuQ29ubmVjdGlv
bih3ZWJQYWdlUHJveHksICpwcm9jZXNzLmNvbm5lY3Rpb24oKSk7CiB9CiAKLXZvaWQgV2ViUHJv
Y2Vzc0xpZmV0aW1lT2JzZXJ2ZXI6OnJlbW92ZVdlYlBhZ2UoV2ViUGFnZVByb3h5JiB3ZWJQYWdl
UHJveHkpCit2b2lkIFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyOjpyZW1vdmVXZWJQYWdlKFdl
YlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCiB7Ci0g
ICAgYXV0byYgcHJvY2VzcyA9IHdlYlBhZ2VQcm94eS5wcm9jZXNzKCk7Ci0KICAgICAvLyBGSVhN
RTogVGhpcyBzaG91bGQgYXNzZXJ0IHRoYXQgdGhlIHBhZ2UgaXMgZWl0aGVyIGNsb3NlZCBvciB0
aGF0IHRoZSBwcm9jZXNzIGlzIG5vIGxvbmdlciBydW5uaW5nLAogICAgIC8vIGJ1dCB3ZSBoYXZl
IHRvIG1ha2Ugc3VyZSB0aGF0IHJlbW92ZVdlYlBhZ2UgaXMgY2FsbGVkIGFmdGVyIHRoZSBjb25u
ZWN0aW9uIGhhcyBiZWVuIHJlbW92ZWQgaW4gdGhhdCBjYXNlLgogICAgIEFTU0VSVChtX3Byb2Nl
c3Nlcy5jb250YWlucygmcHJvY2VzcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyLmgKaW5kZXggNDhmN2EwZTJhNGY1MWU5ZjM4
YTZmMTQ3MzQ2MTUzMTE2ZmJkODEyYy4uNjFjZTIyYjZmNjYwOGI2NGEyODMyM2ZmMTQ2Y2Y0Njdk
NTFiZjIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc0xp
ZmV0aW1lT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
TGlmZXRpbWVPYnNlcnZlci5oCkBAIC00Myw4ICs0Myw4IEBAIHB1YmxpYzoKICAgICBXZWJQcm9j
ZXNzTGlmZXRpbWVPYnNlcnZlcigpOwogICAgIHZpcnR1YWwgfldlYlByb2Nlc3NMaWZldGltZU9i
c2VydmVyKCk7CiAKLSAgICB2b2lkIGFkZFdlYlBhZ2UoV2ViUGFnZVByb3h5Jik7Ci0gICAgdm9p
ZCByZW1vdmVXZWJQYWdlKFdlYlBhZ2VQcm94eSYpOworICAgIHZvaWQgYWRkV2ViUGFnZShXZWJQ
YWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkmKTsKKyAgICB2b2lkIHJlbW92ZVdlYlBhZ2UoV2Vi
UGFnZVByb3h5JiwgV2ViUHJvY2Vzc1Byb3h5Jik7CiAKICAgICBXVEY6Okl0ZXJhdG9yUmFuZ2U8
SGFzaENvdW50ZWRTZXQ8V2ViUHJvY2Vzc1Byb3h5Kj46OmNvbnN0X2l0ZXJhdG9yOjpLZXlzPiBw
cm9jZXNzZXMoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmNwcAppbmRleCBkMWQ3MDE2NjMyOWY4NWJjMjU5M2Y2
YjdjODU1YmRhODBiMWIxZTIzLi43MWEwYTViMjVhYmUwYmMxYmQzODhjZjA3OTUyYzcyYTg3MTAy
MDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzTGlmZXRp
bWVUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzTGlm
ZXRpbWVUcmFja2VyLmNwcApAQCAtNDksNDEgKzQ5LDQxIEBAIHZvaWQgV2ViUHJvY2Vzc0xpZmV0
aW1lVHJhY2tlcjo6YWRkT2JzZXJ2ZXIoV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXImIG9ic2Vy
dmVyCiAKICAgICBvYnNlcnZlci53ZWJQYWdlV2FzQWRkZWQobV93ZWJQYWdlUHJveHkpOwogCi0g
ICAgaWYgKHByb2Nlc3NJc1J1bm5pbmcoKSkKLSAgICAgICAgb2JzZXJ2ZXIuYWRkV2ViUGFnZSht
X3dlYlBhZ2VQcm94eSk7CisgICAgaWYgKHByb2Nlc3NJc1J1bm5pbmcobV93ZWJQYWdlUHJveHku
cHJvY2VzcygpKSkKKyAgICAgICAgb2JzZXJ2ZXIuYWRkV2ViUGFnZShtX3dlYlBhZ2VQcm94eSwg
bV93ZWJQYWdlUHJveHkucHJvY2VzcygpKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzTGlmZXRpbWVU
cmFja2VyOjp3ZWJQYWdlRW50ZXJpbmdXZWJQcm9jZXNzKCkKK3ZvaWQgV2ViUHJvY2Vzc0xpZmV0
aW1lVHJhY2tlcjo6d2ViUGFnZUVudGVyaW5nV2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MpCiB7Ci0gICAgQVNTRVJUKHByb2Nlc3NJc1J1bm5pbmcoKSk7CisgICAgQVNTRVJUKHBy
b2Nlc3NJc1J1bm5pbmcocHJvY2VzcykpOwogCiAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1f
b2JzZXJ2ZXJzKQotICAgICAgICBvYnNlcnZlci0+YWRkV2ViUGFnZShtX3dlYlBhZ2VQcm94eSk7
CisgICAgICAgIG9ic2VydmVyLT5hZGRXZWJQYWdlKG1fd2ViUGFnZVByb3h5LCBwcm9jZXNzKTsK
IH0KIAotdm9pZCBXZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyOjp3ZWJQYWdlTGVhdmluZ1dlYlBy
b2Nlc3MoKQordm9pZCBXZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyOjp3ZWJQYWdlTGVhdmluZ1dl
YlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQogewotICAgIEFTU0VSVChwcm9jZXNz
SXNSdW5uaW5nKCkpOworICAgIEFTU0VSVChwcm9jZXNzSXNSdW5uaW5nKHByb2Nlc3MpKTsKIAog
ICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKLSAgICAgICAgb2JzZXJ2ZXIt
PnJlbW92ZVdlYlBhZ2UobV93ZWJQYWdlUHJveHkpOworICAgICAgICBvYnNlcnZlci0+cmVtb3Zl
V2ViUGFnZShtX3dlYlBhZ2VQcm94eSwgcHJvY2Vzcyk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc0xp
ZmV0aW1lVHJhY2tlcjo6cGFnZVdhc0ludmFsaWRhdGVkKCkKIHsKLSAgICBpZiAoIXByb2Nlc3NJ
c1J1bm5pbmcoKSkKKyAgICBpZiAoIXByb2Nlc3NJc1J1bm5pbmcobV93ZWJQYWdlUHJveHkucHJv
Y2VzcygpKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1f
b2JzZXJ2ZXJzKSB7Ci0gICAgICAgIG9ic2VydmVyLT5yZW1vdmVXZWJQYWdlKG1fd2ViUGFnZVBy
b3h5KTsKKyAgICAgICAgb2JzZXJ2ZXItPnJlbW92ZVdlYlBhZ2UobV93ZWJQYWdlUHJveHksIG1f
d2ViUGFnZVByb3h5LnByb2Nlc3MoKSk7CiAKICAgICAgICAgb2JzZXJ2ZXItPndlYlBhZ2VXYXNJ
bnZhbGlkYXRlZChtX3dlYlBhZ2VQcm94eSk7CiAgICAgfQogfQogCi1ib29sIFdlYlByb2Nlc3NM
aWZldGltZVRyYWNrZXI6OnByb2Nlc3NJc1J1bm5pbmcoKQorYm9vbCBXZWJQcm9jZXNzTGlmZXRp
bWVUcmFja2VyOjpwcm9jZXNzSXNSdW5uaW5nKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKIHsK
LSAgICByZXR1cm4gbV93ZWJQYWdlUHJveHkucHJvY2VzcygpLnN0YXRlKCkgPT0gV2ViUHJvY2Vz
c1Byb3h5OjpTdGF0ZTo6UnVubmluZzsKKyAgICByZXR1cm4gcHJvY2Vzcy5zdGF0ZSgpID09IFdl
YlByb2Nlc3NQcm94eTo6U3RhdGU6OlJ1bm5pbmc7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIuaAppbmRleCBmZGM0ZGVm
MjgzMzM4NzQ4MzE4ZTY3YzQ3YWVhYjljN2Q4ZWVmNTVmLi4xMjg3NWFlNjM0MGVkYTRjOWI5MDEz
MjM5NGY5MTkxMjk0OTE2YjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5oCkBAIC0zNiw2ICszNiw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzTGlmZXRpbWVP
YnNlcnZlcjsKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKIAogY2xhc3MgV2ViUHJvY2Vzc0xpZmV0
aW1lVHJhY2tlciB7CiBwdWJsaWM6CkBAIC00NCwxMyArNDUsMTMgQEAgcHVibGljOgogCiAgICAg
dm9pZCBhZGRPYnNlcnZlcihXZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlciYpOwogCi0gICAgdm9p
ZCB3ZWJQYWdlRW50ZXJpbmdXZWJQcm9jZXNzKCk7Ci0gICAgdm9pZCB3ZWJQYWdlTGVhdmluZ1dl
YlByb2Nlc3MoKTsKKyAgICB2b2lkIHdlYlBhZ2VFbnRlcmluZ1dlYlByb2Nlc3MoV2ViUHJvY2Vz
c1Byb3h5Jik7CisgICAgdm9pZCB3ZWJQYWdlTGVhdmluZ1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1By
b3h5Jik7CiAKICAgICB2b2lkIHBhZ2VXYXNJbnZhbGlkYXRlZCgpOwogCiBwcml2YXRlOgotICAg
IGJvb2wgcHJvY2Vzc0lzUnVubmluZygpOworICAgIHN0YXRpYyBib29sIHByb2Nlc3NJc1J1bm5p
bmcoV2ViUHJvY2Vzc1Byb3h5Jik7CiAKICAgICBXZWJQYWdlUHJveHkmIG1fd2ViUGFnZVByb3h5
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBk
M2I2MjdiMDk1ZjA4YTg0ZDI3MDQ2ZDNmMmI3OGYyZmZjNGE2MjFjLi5lNDMyOWM4MjcyNGM1MzA4
MzJkZWQ4N2Y1NTcxZWU5ODQ5OGRmODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKQEAgLTI2MSw2ICsyNjEsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6Y29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIAogICAg
IGZvciAoYXV0byYgcGFnZSA6IG1fcGFnZU1hcC52YWx1ZXMoKSkKICAgICAgICAgcGFnZS0+Y29u
bmVjdGlvbldpbGxPcGVuKGNvbm5lY3Rpb24pOworCisgICAgZm9yIChhdXRvKiBwcm92aXNpb25h
bFBhZ2UgOiBtX3Byb3Zpc2lvbmFsUGFnZXMpCisgICAgICAgIHByb3Zpc2lvbmFsUGFnZS0+Y29u
bmVjdGlvbldpbGxPcGVuKGNvbm5lY3Rpb24pOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6
cHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3Bw
CmluZGV4IGJlZDIzYjAwZmY2MmMzYjNlZTg1NTYzYTg0MWE5MGRmZTAwNDcyODAuLjhjY2NkYzFh
YmQ3OTU5ZTI0ZjQ5OWQ1YmRlZmUzNGY4Yzg2ZjE2OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0zODMsOCAr
MzgzLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9z
dG9yYWdlQXJlYU1hcC5pc0VtcHR5KCk7IH0KIAotICAgIElQQzo6Q29ubmVjdGlvbjo6VW5pcXVl
SUQgYWxsb3dlZENvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2FsbG93ZWRDb25uZWN0aW9u
OyB9Ci0gICAgdm9pZCBzZXRBbGxvd2VkQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OlVuaXF1
ZUlEKTsKKyAgICBWZWN0b3I8SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRD4gYWxsb3dlZENvbm5l
Y3Rpb25zKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2VkQ29ubmVjdGlvbnM7IH0KKyAgICB2b2lk
IGFkZEFsbG93ZWRDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQpOworICAgIHZv
aWQgcmVtb3ZlQWxsb3dlZENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCk7CiAK
ICAgICBSZWY8U3RvcmFnZUFyZWE+IGdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoU2VjdXJpdHlPcmln
aW5EYXRhJiYpOwogCkBAIC00MTksNyArNDIwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YUluQnl0ZXMpOwog
Ci0gICAgSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBtX2FsbG93ZWRDb25uZWN0aW9uOworICAg
IFZlY3RvcjxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEPiBtX2FsbG93ZWRDb25uZWN0aW9uczsK
ICAgICB1bnNpZ25lZCBtX3F1b3RhSW5CeXRlczsKIAogICAgIEhhc2hNYXA8U2VjdXJpdHlPcmln
aW5EYXRhLCBSZWZQdHI8U3RvcmFnZUFyZWE+PiBtX3N0b3JhZ2VBcmVhTWFwOwpAQCAtNDM5LDEx
ICs0NDAsMTggQEAgU3RvcmFnZU1hbmFnZXI6OlNlc3Npb25TdG9yYWdlTmFtZXNwYWNlOjp+U2Vz
c2lvblN0b3JhZ2VOYW1lc3BhY2UoKQogewogfQogCi12b2lkIFN0b3JhZ2VNYW5hZ2VyOjpTZXNz
aW9uU3RvcmFnZU5hbWVzcGFjZTo6c2V0QWxsb3dlZENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9u
OjpVbmlxdWVJRCBhbGxvd2VkQ29ubmVjdGlvbikKK3ZvaWQgU3RvcmFnZU1hbmFnZXI6OlNlc3Np
b25TdG9yYWdlTmFtZXNwYWNlOjphZGRBbGxvd2VkQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246
OlVuaXF1ZUlEIGFsbG93ZWRDb25uZWN0aW9uKQogewotICAgIG1fYWxsb3dlZENvbm5lY3Rpb24g
PSBhbGxvd2VkQ29ubmVjdGlvbjsKKyAgICBBU1NFUlQoIW1fYWxsb3dlZENvbm5lY3Rpb25zLmNv
bnRhaW5zKGFsbG93ZWRDb25uZWN0aW9uKSk7CisgICAgbV9hbGxvd2VkQ29ubmVjdGlvbnMuYXBw
ZW5kKGFsbG93ZWRDb25uZWN0aW9uKTsKIH0KIAorCit2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpTZXNz
aW9uU3RvcmFnZU5hbWVzcGFjZTo6cmVtb3ZlQWxsb3dlZENvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uOjpVbmlxdWVJRCBhbGxvd2VkQ29ubmVjdGlvbikKK3sKKyAgICBBU1NFUlQobV9hbGxvd2Vk
Q29ubmVjdGlvbnMuY29udGFpbnMoYWxsb3dlZENvbm5lY3Rpb24pKTsKKyAgICBtX2FsbG93ZWRD
b25uZWN0aW9ucy5yZW1vdmVBbGwoYWxsb3dlZENvbm5lY3Rpb24pOworfQogYXV0byBTdG9yYWdl
TWFuYWdlcjo6U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2U6OmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEo
U2VjdXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4pIC0+IFJlZjxTdG9yYWdlQXJlYT4K
IHsKICAgICByZXR1cm4gKm1fc3RvcmFnZUFyZWFNYXAuZW5zdXJlKHNlY3VyaXR5T3JpZ2luLCBb
dGhpcywgc2VjdXJpdHlPcmlnaW5dKCkgbXV0YWJsZSB7CkBAIC00OTQsMTMgKzUwMiwyMyBAQCB2
b2lkIFN0b3JhZ2VNYW5hZ2VyOjpkZXN0cm95U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UodWludDY0
X3Qgc3RvcmFnZU5hbWVzcGFjZUlEKQogICAgIH0pOwogfQogCi12b2lkIFN0b3JhZ2VNYW5hZ2Vy
OjpzZXRBbGxvd2VkU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VDb25uZWN0aW9uKHVpbnQ2NF90IHN0
b3JhZ2VOYW1lc3BhY2VJRCwgSVBDOjpDb25uZWN0aW9uKiBhbGxvd2VkQ29ubmVjdGlvbikKK3Zv
aWQgU3RvcmFnZU1hbmFnZXI6OmFkZEFsbG93ZWRTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUNvbm5l
Y3Rpb24odWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlELCBJUEM6OkNvbm5lY3Rpb24mIGFsbG93
ZWRDb25uZWN0aW9uKQoreworICAgIGF1dG8gYWxsb3dlZENvbm5lY3Rpb25JRCA9IGFsbG93ZWRD
b25uZWN0aW9uLnVuaXF1ZUlEKCk7CisgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYWxsb3dlZENvbm5lY3Rpb25JRCwgc3RvcmFnZU5h
bWVzcGFjZUlEXSgpIG11dGFibGUgeworICAgICAgICBBU1NFUlQobV9zZXNzaW9uU3RvcmFnZU5h
bWVzcGFjZXMuY29udGFpbnMoc3RvcmFnZU5hbWVzcGFjZUlEKSk7CisKKyAgICAgICAgbV9zZXNz
aW9uU3RvcmFnZU5hbWVzcGFjZXMuZ2V0KHN0b3JhZ2VOYW1lc3BhY2VJRCktPmFkZEFsbG93ZWRD
b25uZWN0aW9uKGFsbG93ZWRDb25uZWN0aW9uSUQpOworICAgIH0pOworfQorCit2b2lkIFN0b3Jh
Z2VNYW5hZ2VyOjpyZW1vdmVBbGxvd2VkU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VDb25uZWN0aW9u
KHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgSVBDOjpDb25uZWN0aW9uJiBhbGxvd2VkQ29u
bmVjdGlvbikKIHsKLSAgICBhdXRvIGFsbG93ZWRDb25uZWN0aW9uSUQgPSBhbGxvd2VkQ29ubmVj
dGlvbiA/IGFsbG93ZWRDb25uZWN0aW9uLT51bmlxdWVJRCgpIDogSVBDOjpDb25uZWN0aW9uOjpV
bmlxdWVJRCB7IH07CisgICAgYXV0byBhbGxvd2VkQ29ubmVjdGlvbklEID0gYWxsb3dlZENvbm5l
Y3Rpb24udW5pcXVlSUQoKTsKICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBhbGxvd2VkQ29ubmVjdGlvbklELCBzdG9yYWdlTmFtZXNw
YWNlSURdKCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChtX3Nlc3Npb25TdG9yYWdlTmFtZXNw
YWNlcy5jb250YWlucyhzdG9yYWdlTmFtZXNwYWNlSUQpKTsKIAotICAgICAgICBtX3Nlc3Npb25T
dG9yYWdlTmFtZXNwYWNlcy5nZXQoc3RvcmFnZU5hbWVzcGFjZUlEKS0+c2V0QWxsb3dlZENvbm5l
Y3Rpb24oYWxsb3dlZENvbm5lY3Rpb25JRCk7CisgICAgICAgIG1fc2Vzc2lvblN0b3JhZ2VOYW1l
c3BhY2VzLmdldChzdG9yYWdlTmFtZXNwYWNlSUQpLT5yZW1vdmVBbGxvd2VkQ29ubmVjdGlvbihh
bGxvd2VkQ29ubmVjdGlvbklEKTsKICAgICB9KTsKIH0KIApAQCAtNTIyLDEyICs1NDAsMTIgQEAg
dm9pZCBTdG9yYWdlTWFuYWdlcjo6Y2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh1aW50NjRf
dCBzdG9yYWdlTmFtZXNwYWNlSUQsIHUKICAgICB9KTsKIH0KIAotdm9pZCBTdG9yYWdlTWFuYWdl
cjo6cHJvY2Vzc1dpbGxPcGVuQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24pCit2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpwcm9jZXNzV2lsbE9wZW5D
b25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKQogewogICAgIGNvbm5lY3Rpb24uYWRkV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpTdG9yYWdlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3F1ZXVlLmdl
dCgpLCB0aGlzKTsKIH0KIAotdm9pZCBTdG9yYWdlTWFuYWdlcjo6cHJvY2Vzc0RpZENsb3NlQ29u
bmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit2
b2lkIFN0b3JhZ2VNYW5hZ2VyOjpwcm9jZXNzRGlkQ2xvc2VDb25uZWN0aW9uKFdlYlByb2Nlc3NQ
cm94eSYgcHJvY2VzcywgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogICAgIGNvbm5l
Y3Rpb24ucmVtb3ZlV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTdG9yYWdlTWFu
YWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIApAQCAtNzY0LDcgKzc4Miw3IEBAIHZvaWQg
U3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTWFwKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgdWludDY0CiAgICAgQVNTRVJUKCFzbG90KTsKIAogICAgIC8vIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSBhIG1lc3NhZ2UgY2hlY2suCi0gICAgQVNTRVJUKGNvbm5lY3Rpb24udW5p
cXVlSUQoKSA9PSBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZS0+YWxsb3dlZENvbm5lY3Rpb24oKSk7
CisgICAgQVNTRVJUKHNlc3Npb25TdG9yYWdlTmFtZXNwYWNlLT5hbGxvd2VkQ29ubmVjdGlvbnMo
KS5jb250YWlucyhjb25uZWN0aW9uLnVuaXF1ZUlEKCkpKTsKIAogICAgIGF1dG8gc3RvcmFnZUFy
ZWEgPSBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZS0+Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYShXVEZN
b3ZlKHNlY3VyaXR5T3JpZ2luRGF0YSkpOwogICAgIHN0b3JhZ2VBcmVhLT5hZGRMaXN0ZW5lcihj
b25uZWN0aW9uLnVuaXF1ZUlEKCksIHN0b3JhZ2VNYXBJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggMzg2NmZmOTM0
MmNkNmRlYmUyMGMzZDQ4Y2I4MDgyZGM4ZTQ5NjA5Ny4uZDZmNjJhMGY0OWU2ZjA2MmY1OGRkYWM3
YTJlMTIzZmI0NTQ1M2YxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
U3RvcmFnZS9TdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuaApAQCAtNTEsNyArNTEsOCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHVpbnQ2NF90IHN0b3JhZ2VOYW1l
c3BhY2VJRCwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzKTsKICAgICB2b2lkIGRlc3Ryb3lTZXNzaW9u
U3RvcmFnZU5hbWVzcGFjZSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQpOwotICAgIHZvaWQg
c2V0QWxsb3dlZFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlQ29ubmVjdGlvbih1aW50NjRfdCBzdG9y
YWdlTmFtZXNwYWNlSUQsIElQQzo6Q29ubmVjdGlvbiogYWxsb3dlZENvbm5lY3Rpb24pOworICAg
IHZvaWQgYWRkQWxsb3dlZFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlQ29ubmVjdGlvbih1aW50NjRf
dCBzdG9yYWdlTmFtZXNwYWNlSUQsIElQQzo6Q29ubmVjdGlvbiYpOworICAgIHZvaWQgcmVtb3Zl
QWxsb3dlZFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlQ29ubmVjdGlvbih1aW50NjRfdCBzdG9yYWdl
TmFtZXNwYWNlSUQsIElQQzo6Q29ubmVjdGlvbiYpOwogICAgIHZvaWQgY2xvbmVTZXNzaW9uU3Rv
cmFnZU5hbWVzcGFjZSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIHVpbnQ2NF90IG5ld1N0
b3JhZ2VOYW1lc3BhY2VJRCk7CiAKICAgICB2b2lkIHByb2Nlc3NXaWxsT3BlbkNvbm5lY3Rpb24o
V2ViUHJvY2Vzc1Byb3h5JiwgSVBDOjpDb25uZWN0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4
IDkyOTJkMzUzMzllODA2YzZjZDU0MTI3MmViNGE5MTBkZWQ4ZGU3Y2UuLjAxN2Y3ZmFmMzA4Yjc1
NjFiMzZjN2ViNTUxMmExNTkxM2RkYTgyMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xODAzLDEz
ICsxODAzLDEzIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6d2ViUHJvY2Vzc1dpbGxPcGVuQ29u
bmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQCiB2b2lkIFdlYnNpdGVEYXRhU3Rv
cmU6OndlYlBhZ2VXaWxsT3BlbkNvbm5lY3Rpb24oV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHks
IElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsKICAgICBpZiAobV9zdG9yYWdlTWFuYWdl
cikKLSAgICAgICAgbV9zdG9yYWdlTWFuYWdlci0+c2V0QWxsb3dlZFNlc3Npb25TdG9yYWdlTmFt
ZXNwYWNlQ29ubmVjdGlvbih3ZWJQYWdlUHJveHkucGFnZUlEKCksICZjb25uZWN0aW9uKTsKKyAg
ICAgICAgbV9zdG9yYWdlTWFuYWdlci0+YWRkQWxsb3dlZFNlc3Npb25TdG9yYWdlTmFtZXNwYWNl
Q29ubmVjdGlvbih3ZWJQYWdlUHJveHkucGFnZUlEKCksIGNvbm5lY3Rpb24pOwogfQogCi12b2lk
IFdlYnNpdGVEYXRhU3RvcmU6OndlYlBhZ2VEaWRDbG9zZUNvbm5lY3Rpb24oV2ViUGFnZVByb3h5
JiB3ZWJQYWdlUHJveHksIElQQzo6Q29ubmVjdGlvbiYpCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6
OndlYlBhZ2VEaWRDbG9zZUNvbm5lY3Rpb24oV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHksIElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsKICAgICBpZiAobV9zdG9yYWdlTWFuYWdlcikK
LSAgICAgICAgbV9zdG9yYWdlTWFuYWdlci0+c2V0QWxsb3dlZFNlc3Npb25TdG9yYWdlTmFtZXNw
YWNlQ29ubmVjdGlvbih3ZWJQYWdlUHJveHkucGFnZUlEKCksIG51bGxwdHIpOworICAgICAgICBt
X3N0b3JhZ2VNYW5hZ2VyLT5yZW1vdmVBbGxvd2VkU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VDb25u
ZWN0aW9uKHdlYlBhZ2VQcm94eS5wYWdlSUQoKSwgY29ubmVjdGlvbik7CiB9CiAKIHZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6d2ViUHJvY2Vzc0RpZENsb3NlQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJv
eHkmIHdlYlByb2Nlc3NQcm94eSwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGFlZDFkZGYwZTQw
NWNjZmNlMGFkMzhkMThlOGUyNTMxM2E5N2JjOWEuLmQ0ZTFjZDdiYmE4MDg4ZWI4YTU3NzA1YmE3
MDViYWI3ZWExM2VjZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0wMi0yNyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZsYWt5IEFQSSBUZXN0OiBUZXN0V2ViS2l0QVBJLlBy
b2Nlc3NTd2FwLlNlc3Npb25TdG9yYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTQ0ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVcGRhdGUgZXhpc3RpbmcgQVBJIHRlc3QgdG8gbWFrZSBpdCBtb3Jl
IGxpa2VseSB0byByZXByb2R1Y2UgdGhlIGlzc3VlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKwogMjAxOS0w
Mi0yNiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHJl
bWFpbmluZyBwb2lzb25pbmcgY29kZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmlu
ZGV4IDlmMTgyODI5NDVmMTAyYTUyYzA5MDQxYjI2NWVlZTkzMThlYzNmOTQuLmNhYzQ3YWFjNjQz
MTNiODgwNDM5MWZmNGNhNmMwN2VmZGU3ZDViN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdh
dGlvbi5tbQpAQCAtMjI4OCw1OCArMjI4OCw2MiBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24o
ZXZ0KSB7CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIFNlc3Npb25TdG9yYWdlKQogewotICAgIGF1dG8g
cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigp
OwotICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10g
X2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsK
LQotICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQ
cm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07Ci0gICAgYXV0byBoYW5kbGVyID0gYWRvcHRO
UyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKLSAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJv
bVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTpzZXNz
aW9uU3RvcmFnZVRlc3RCeXRlc107Ci0gICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNj
aGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07Ci0KLSAgICBh
dXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1BTT05NZXNzYWdlSGFuZGxlciBhbGxvY10g
aW5pdF0pOwotICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVy
XSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAicHNv
biJdOwotCi0gICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZp
ZXdDb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tQ
U09OTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7Ci0gICAgW3dlYlZpZXcgc2V0TmF2
aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8
IDU7ICsraSkgeworICAgICAgICBbcmVjZWl2ZWRNZXNzYWdlcyByZW1vdmVBbGxPYmplY3RzXTsK
KyAgICAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uKCk7CisgICAgICAgIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKS5w
cm9jZXNzU3dhcHNPbk5hdmlnYXRpb24gPSBZRVM7CisgICAgICAgIGF1dG8gcHJvY2Vzc1Bvb2wg
PSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpw
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgICAgICBhdXRvIHdlYlZpZXdD
b25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKKyAgICAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nl
c3NQb29sLmdldCgpXTsKKyAgICAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hl
bWUgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJp
bmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6c2Vzc2lvblN0b3Jh
Z2VUZXN0Qnl0ZXNdOworICAgICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1l
SGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKKworICAgICAgICBh
dXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1BTT05NZXNzYWdlSGFuZGxlciBhbGxvY10g
aW5pdF0pOworICAgICAgICBbW3dlYlZpZXdDb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJv
bGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpA
InBzb24iXTsKKworICAgICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICAgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tQU09OTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgICAg
IFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICAg
ICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07
CisgICAgICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgTlNVUkxSZXF1
ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07Ci0gICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Cisg
ICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgICAgIGRvbmUgPSBm
YWxzZTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsK
LSAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOwotICAgIGRvbmUgPSBmYWxzZTsKKyAgICAgICAgYXV0byB3ZWJraXRQSUQgPSBb
d2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogCi0gICAgYXV0byB3ZWJraXRQSUQgPSBb
d2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwotCi0gICAgcmVxdWVzdCA9IFtOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFw
cGxlLmNvbS9tYWluLmh0bWwiXV07Ci0gICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
CisgICAgICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dOworICAgICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7Ci0gICAgZG9uZSA9IGZhbHNlOworICAgICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgICAgICBkb25lID0gZmFsc2U7CiAKLSAgICBhdXRvIGFw
cGxlUElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICAgICAgYXV0byBh
cHBsZVBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAKLSAgICAvLyBWZXJp
ZnkgdGhlIHdlYiBwYWdlcyBhcmUgaW4gZGlmZmVyZW50IHByb2Nlc3NlcwotICAgIEVYUEVDVF9O
RSh3ZWJraXRQSUQsIGFwcGxlUElEKTsKKyAgICAgICAgLy8gVmVyaWZ5IHRoZSB3ZWIgcGFnZXMg
YXJlIGluIGRpZmZlcmVudCBwcm9jZXNzZXMKKyAgICAgICAgRVhQRUNUX05FKHdlYmtpdFBJRCwg
YXBwbGVQSUQpOwogCi0gICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1d
OwotICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgICAgICByZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CisgICAgICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZE1l
c3NhZ2UpOwotICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7Ci0gICAgZG9uZSA9IGZhbHNlOworICAgICAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7CisgICAgICAgIHJlY2VpdmVkTWVzc2Fn
ZSA9IGZhbHNlOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
ICAgICBkb25lID0gZmFsc2U7CiAKLSAgICAvLyBXZSBzaG91bGQgaGF2ZSBnb25lIGJhY2sgdG8g
dGhlIHdlYmtpdC5vcmcgcHJvY2VzcyBmb3IgdGhpcyBsb2FkIHNpbmNlIHdlIHJldXNlIFN1c3Bl
bmRlZFBhZ2VzJyBwcm9jZXNzIHdoZW4gcG9zc2libGUuCi0gICAgRVhQRUNUX0VRKHdlYmtpdFBJ
RCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CisgICAgICAgIC8vIFdlIHNob3Vs
ZCBoYXZlIGdvbmUgYmFjayB0byB0aGUgd2Via2l0Lm9yZyBwcm9jZXNzIGZvciB0aGlzIGxvYWQg
c2luY2Ugd2UgcmV1c2UgU3VzcGVuZGVkUGFnZXMnIHByb2Nlc3Mgd2hlbiBwb3NzaWJsZS4KKyAg
ICAgICAgRVhQRUNUX0VRKHdlYmtpdFBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVy
XSk7CiAKLSAgICAvLyBWZXJpZnkgdGhlIHNlc3Npb25TdG9yYWdlIHZhbHVlcyB3ZXJlIGFzIGV4
cGVjdGVkCi0gICAgRVhQRUNUX0VRKFtyZWNlaXZlZE1lc3NhZ2VzIGNvdW50XSwgMnUpOwotICAg
IEVYUEVDVF9UUlVFKFtyZWNlaXZlZE1lc3NhZ2VzLmdldCgpWzBdIGlzRXF1YWxUb1N0cmluZzpA
IiJdKTsKLSAgICBFWFBFQ1RfVFJVRShbcmVjZWl2ZWRNZXNzYWdlcy5nZXQoKVsxXSBpc0VxdWFs
VG9TdHJpbmc6QCJJIGV4aXN0ISJdKTsKKyAgICAgICAgLy8gVmVyaWZ5IHRoZSBzZXNzaW9uU3Rv
cmFnZSB2YWx1ZXMgd2VyZSBhcyBleHBlY3RlZAorICAgICAgICBFWFBFQ1RfRVEoW3JlY2VpdmVk
TWVzc2FnZXMgY291bnRdLCAydSk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZWNlaXZlZE1lc3Nh
Z2VzLmdldCgpWzBdIGlzRXF1YWxUb1N0cmluZzpAIiJdKTsKKyAgICAgICAgRVhQRUNUX1RSVUUo
W3JlY2VpdmVkTWVzc2FnZXMuZ2V0KClbMV0gaXNFcXVhbFRvU3RyaW5nOkAiSSBleGlzdCEiXSk7
CisgICAgfQogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBSZXVzZVN1c3BlbmRlZFByb2Nlc3MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363147</attachid>
            <date>2019-02-27 15:43:10 -0800</date>
            <delta_ts>2019-02-27 16:54:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194480-20190227154308.patch</filename>
            <type>text/plain</type>
            <size>30926</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcxNzIzZjkxZTJiZjY3ODE2
M2VmNjUxYzcxMTRkODUyMjI3Y2RjZWQuLjc0MzkyZTIxMzE3MjRhNzk0Njk5YTA0NjdiZjY3MGVj
NTdjZmM2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMTktMDItMjcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGbGFreSBBUEkgVGVzdDogVGVzdFdl
YktpdEFQSS5Qcm9jZXNzU3dhcC5TZXNzaW9uU3RvcmFnZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIFN0b3JhZ2VNYW5hZ2VyIHdvdWxkIG9ubHkg
c3RhcnQgbGlzdGVuaW5nIGZvciBJUEMgb24gYSBnaXZlbiBjb25uZWN0aW9uIHdoZW4KKyAgICAg
ICAgU3RvcmFnZU1hbmFnZXI6OnByb2Nlc3NXaWxsT3BlbkNvbm5lY3Rpb24oKSBpcyBjYWxsZWQu
IFRoaXMgZ2V0cyBjYWxsZWQgZnJvbQorICAgICAgICBXZWJzaXRlRGF0YVN0b3JlOjp3ZWJQcm9j
ZXNzV2lsbE9wZW5Db25uZWN0aW9uKCkgd2hpY2ggZ2V0cyBjYWxsZWQgZnJvbQorICAgICAgICBX
ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyOjp3ZWJQYWdlRW50ZXJpbmdXZWJQcm9jZXNzKCkuCisK
KyAgICAgICAgd2ViUGFnZUVudGVyaW5nV2ViUHJvY2VzcygpIHdhcyBjYWxsZWQgaW4gV2ViUGFn
ZVByb3h5OjpmaW5pc2hBdHRhY2hpbmdUb1dlYlByb2Nlc3MoKQorICAgICAgICBhZnRlciBwcm9j
ZXNzLXN3YXBwaW5nLiBUaGlzIG1lYW5zIHRoYXQgSVBDIGNvbW1pbmcgZnJvbSB0aGUgKnByb3Zp
c2lvbmFsKiBwcm9jZXNzCisgICAgICAgIHdvdWxkIG5vdCBnZXQgcHJvY2Vzc2VkIGFuZCB3ZSB3
b3VsZCBvbmx5IHN0YXJ0IHByb2Nlc3NpbmcgSVBDIG9uIHRoZSBwcm92aXNpb25hbAorICAgICAg
ICBwcm9jZXNzJ3MgY29ubmVjdGlvbiB3aGVuIGl0IHdvdWxkIGdldCBjb21taXR0ZWQuCisKKyAg
ICAgICAgVG8gYWRkcmVzcyB0aGUgaXNzdWUsIHRoaXMgcGF0Y2ggdGVhY2hlcyBXZWJQcm9jZXNz
TGlmZXRpbWVUcmFja2VyIHRoYXQgYSBwYWdlIGNhbgorICAgICAgICBub3cgaGF2ZSBzZXZlcmFs
IHByb2Nlc3Nlcy4gV2UgYWxzbyBtYWtlIHN1cmUgdGhhdCB3ZWJQYWdlRW50ZXJpbmdXZWJQcm9j
ZXNzKCkgZ2V0cworICAgICAgICBjYWxsZWQgZm9yIHRoZSBwcm92aXNpb25hbCBwcm9jZXNzIGFz
IHNvb24gYXMgd2UgY3JlYXRlIHRoZSBwcm92aXNpb25hbCBwYWdlLCBpbnN0ZWFkCisgICAgICAg
IG9mIHdhaXRpbmcgZm9yIGl0IHRvIGdldCBjb21taXR0ZWQuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25h
bFBhZ2VQcm94eTo6UHJvdmlzaW9uYWxQYWdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQcm92
aXNpb25hbFBhZ2VQcm94eTo6flByb3Zpc2lvbmFsUGFnZVByb3h5KToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbm5lY3Rpb25XaWxsT3Blbik6CisgICAgICAgICog
VUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZmluaXNoQXR0
YWNoaW5nVG9XZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb25u
ZWN0aW9uV2lsbE9wZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OndlYlByb2Nl
c3NXaWxsU2h1dERvd24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByb2Nlc3NE
aWRUZXJtaW5hdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlcjo6YWRkV2ViUGFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyOjpyZW1vdmVXZWJQYWdlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NMaWZldGltZVRyYWNrZXI6OmFkZE9ic2VydmVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlcjo6d2ViUGFnZUVudGVyaW5nV2ViUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NMaWZldGltZVRyYWNrZXI6OndlYlBh
Z2VMZWF2aW5nV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NMaWZldGlt
ZVRyYWNrZXI6OnBhZ2VXYXNJbnZhbGlkYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NMaWZldGltZVRyYWNrZXI6OnByb2Nlc3NJc1J1bm5pbmcpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y29ubmVj
dGlvbldpbGxPcGVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpTZXNzaW9uU3RvcmFn
ZU5hbWVzcGFjZTo6YWxsb3dlZENvbm5lY3Rpb25zIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
U3RvcmFnZU1hbmFnZXI6OlNlc3Npb25TdG9yYWdlTmFtZXNwYWNlOjphZGRBbGxvd2VkQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpTZXNzaW9uU3RvcmFnZU5h
bWVzcGFjZTo6cmVtb3ZlQWxsb3dlZENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlTWFuYWdlcjo6YWRkQWxsb3dlZFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlQ29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpyZW1vdmVBbGxvd2VkU2Vzc2lvblN0
b3JhZ2VOYW1lc3BhY2VDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFn
ZXI6OnByb2Nlc3NXaWxsT3BlbkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
TWFuYWdlcjo6cHJvY2Vzc0RpZENsb3NlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlN0
b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU1hcCk6CisgICAgICAgIChXZWJLaXQ6
OlN0b3JhZ2VNYW5hZ2VyOjpTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZTo6YWxsb3dlZENvbm5lY3Rp
b24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6U2Vz
c2lvblN0b3JhZ2VOYW1lc3BhY2U6OnNldEFsbG93ZWRDb25uZWN0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OnNldEFsbG93ZWRTZXNzaW9uU3RvcmFnZU5h
bWVzcGFjZUNvbm5lY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjp3
ZWJQYWdlV2lsbE9wZW5Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6d2ViUGFnZURpZENsb3NlQ29ubmVjdGlvbik6CisKIDIwMTktMDItMjYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbUFNPTl0gQWRkIG1lY2hhbmlzbSB0
byBjbGVhciBzdXNwZW5kZWQgcGFnZXMgd2hpbGUgYnlwYXNzaW5nIHRoZSBXZWJQcm9jZXNzIGNh
Y2hlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5j
cHAKaW5kZXggOWIxYjA0NjgxYjllNWViY2NmY2E0Y2M4YjM2MjU0YTI5MzhmMjIyMi4uMTI5OWVm
ODFjOTZkN2I0NjE0ZjZlYzA1YzhhZDcxYTJkOWMwNzAzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAtNjMsNiArNjMsOSBAQCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6UHJvdmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBw
YWdlLCBSZWY8V2ViUHJvY2Vzc1BybwogICAgIG1fcHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLnBh
Z2VJRCgpLCAqdGhpcyk7CiAgICAgbV9wcm9jZXNzLT5hZGRQcm92aXNpb25hbFBhZ2VQcm94eSgq
dGhpcyk7CiAKKyAgICBpZiAobV9wcm9jZXNzLT5zdGF0ZSgpID09IEF1eGlsaWFyeVByb2Nlc3NQ
cm94eTo6U3RhdGU6OlJ1bm5pbmcpCisgICAgICAgIG1fcGFnZS53ZWJQcm9jZXNzTGlmZXRpbWVU
cmFja2VyKCkud2ViUGFnZUVudGVyaW5nV2ViUHJvY2VzcyhtX3Byb2Nlc3MpOworCiAgICAgLy8g
SWYgd2UgYXJlIHJlYXR0YWNoaW5nIHRvIGEgU3VzcGVuZGVkUGFnZSwgdGhlbiB0aGUgV2ViUHJv
Y2VzcycgV2ViUGFnZSBhbHJlYWR5IGV4aXN0cyBhbmQKICAgICAvLyBXZWJQYWdlUHJveHk6OmRp
ZENyZWF0ZU1haW5GcmFtZSgpIHdpbGwgbm90IGJlIGNhbGxlZCB0byBpbml0aWFsaXplIG1fbWFp
bkZyYW1lLiBJbiBzdWNoCiAgICAgLy8gY2FzZSwgd2UgbmVlZCB0byBpbml0aWFsaXplIG1fbWFp
bkZyYW1lIHRvIHJlZmxlY3QgdGhlIGZhY3QgdGhlIHRoZSBXZWJQcm9jZXNzJyBXZWJQYWdlCkBA
IC04NCw2ICs4Nyw5IEBAIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojp+UHJvdmlzaW9uYWxQYWdlUHJv
eHkoKQogICAgIGlmIChtX3dhc0NvbW1pdHRlZCkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYg
KG1fcHJvY2Vzcy0+c3RhdGUoKSA9PSBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OlN0YXRlOjpSdW5u
aW5nKQorICAgICAgICBtX3BhZ2Uud2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlcigpLndlYlBhZ2VM
ZWF2aW5nV2ViUHJvY2VzcyhtX3Byb2Nlc3MpOworCiAgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX3BhZ2UucGFnZUlEKCkpOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6Q2xvc2UoKSwgbV9wYWdlLnBhZ2VJRCgpKTsKIApAQCAtOTIsNiArOTgsMTMgQEAgUHJvdmlz
aW9uYWxQYWdlUHJveHk6On5Qcm92aXNpb25hbFBhZ2VQcm94eSgpCiAgICAgfSk7CiB9CiAKK3Zv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24pCit7CisgICAgQVNTRVJUX1VOVVNFRChjb25uZWN0aW9uLCAmY29ubmVj
dGlvbiA9PSBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKSk7CisKKyAgICBtX3BhZ2Uud2ViUHJvY2Vz
c0xpZmV0aW1lVHJhY2tlcigpLndlYlBhZ2VFbnRlcmluZ1dlYlByb2Nlc3MobV9wcm9jZXNzKTsK
K30KKwogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZSgpCiB7
CiAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJwcm9j
ZXNzRGlkVGVybWluYXRlOiBwYWdlSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCA1
ZGI5ODg2NzYxMGQ0ZTJhMWNmZTA4ZjExZTJiZDgxYmU4NzhhMzczLi44ODgzZjczNDU2NzY5NDRm
NDNiMzg4MDFjNWE1MWFjMDcwYjI0NWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKQEAgLTgwLDYgKzgwLDcgQEAgcHVibGljOgogCiAgICAg
dm9pZCBwcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKCk7CiAgICAgdm9pZCBwcm9jZXNzRGlkVGVy
bWluYXRlKCk7CisgICAgdm9pZCBjb25uZWN0aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uJik7
CiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGI2NmZjZjNmYTQyMmQyMWU5YTVhNjk1Njc2
YWY2OTQ3M2RhNTZiNzIuLmFkYzNmNTE4OGI2M2M3YmZjYzc2MmEwZTdkNTc3MTUzNzg4MjdkNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzU0LDcgKzc1
NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2VzcygpCiAgICAgbV9w
cm9jZXNzLT5hZGRFeGlzdGluZ1dlYlBhZ2UoKnRoaXMsIG1fcGFnZUlELCBXZWJQcm9jZXNzUHJv
eHk6OkJlZ2luc1VzaW5nRGF0YVN0b3JlOjpZZXMpOwogICAgIG1fcHJvY2Vzcy0+YWRkTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
bV9wYWdlSUQsICp0aGlzKTsKIAotICAgIGZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2VzcygpOwor
ICAgIGZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2VzcyhJc1Byb2Nlc3NTd2FwOjpObyk7CiB9CiAK
IGJvb2wgV2ViUGFnZVByb3h5OjpzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6TmF2
aWdhdGlvbiYgbmF2aWdhdGlvbiwgT3B0aW9uYWw8dWludDY0X3Q+IG1haW5GcmFtZUlELCBQcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQpCkBA
IC04MTYsMTYgKzgxNiwxOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c3dhcFRvV2ViUHJvY2VzcyhS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHN0ZDo6dW5pcXVlXwogICAgIG1fcHJvY2Vz
cy0+YWRkRXhpc3RpbmdXZWJQYWdlKCp0aGlzLCBtX3BhZ2VJRCwgV2ViUHJvY2Vzc1Byb3h5OjpC
ZWdpbnNVc2luZ0RhdGFTdG9yZTo6Tm8pOwogICAgIG1fcHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdl
SUQsICp0aGlzKTsKIAotICAgIC8vIE5vIG5lZWQgdG8gaW5pdGlhbGl6ZSB0aGUgV2ViUGFnZSBz
aW5jZSBpdCB3YXMgY3JlYXRlZCB3aGVuIHdlIGNyZWF0ZWQgdGhlIFByb3Zpc2lvbmFsUGFnZVBy
b3h5LgotICAgIGZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2VzcyhTaG91bGRJbml0aWFsaXplV2Vi
UGFnZTo6Tm8pOworICAgIGZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2VzcyhJc1Byb2Nlc3NTd2Fw
OjpZZXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZmluaXNoQXR0YWNoaW5nVG9XZWJQcm9j
ZXNzKFNob3VsZEluaXRpYWxpemVXZWJQYWdlIHNob3VsZEluaXRpYWxpemVQYWdlKQordm9pZCBX
ZWJQYWdlUHJveHk6OmZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2VzcyhJc1Byb2Nlc3NTd2FwIGlz
UHJvY2Vzc1N3YXApCiB7CiAgICAgQVNTRVJUKG1fcHJvY2Vzcy0+c3RhdGUoKSAhPSBBdXhpbGlh
cnlQcm9jZXNzUHJveHk6OlN0YXRlOjpUZXJtaW5hdGVkKTsKIAogICAgIGlmIChtX3Byb2Nlc3Mt
PnN0YXRlKCkgPT0gQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpTdGF0ZTo6UnVubmluZykgewotICAg
ICAgICBtX3dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIud2ViUGFnZUVudGVyaW5nV2ViUHJvY2Vz
cygpOworICAgICAgICAvLyBJbiB0aGUgcHJvY2Vzcy1zd2FwIGNhc2UsIHRoZSBQcm92aXNpb25h
bFBhZ2VQcm94eSBjb25zdHJ1Y3RvciBhbHJlYWR5IHRvb2sgY2FyZSBvZiBjYWxsaW5nIHdlYlBh
Z2VFbnRlcmluZ1dlYlByb2Nlc3MoKQorICAgICAgICAvLyB3aGVuIHRoZSBwcm9jZXNzIHdhcyBw
cm92aXNpb25hbC4KKyAgICAgICAgaWYgKGlzUHJvY2Vzc1N3YXAgIT0gSXNQcm9jZXNzU3dhcDo6
WWVzKQorICAgICAgICAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLndlYlBhZ2VFbnRl
cmluZ1dlYlByb2Nlc3MobV9wcm9jZXNzKTsKICAgICAgICAgcHJvY2Vzc0RpZEZpbmlzaExhdW5j
aGluZygpOwogICAgIH0KIApAQCAtODU2LDcgKzg1OCw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpm
aW5pc2hBdHRhY2hpbmdUb1dlYlByb2Nlc3MoU2hvdWxkSW5pdGlhbGl6ZVdlYlBhZ2Ugc2hvdWxk
SW5pCiAgICAgbV9lZGl0YWJsZUltYWdlQ29udHJvbGxlciA9IHN0ZDo6bWFrZV91bmlxdWU8RWRp
dGFibGVJbWFnZUNvbnRyb2xsZXI+KCp0aGlzKTsKICNlbmRpZgogCi0gICAgaWYgKHNob3VsZElu
aXRpYWxpemVQYWdlID09IFNob3VsZEluaXRpYWxpemVXZWJQYWdlOjpZZXMpCisgICAgLy8gSW4g
dGhlIHByb2Nlc3Mtc3dhcCBjYXNlLCB0aGUgUHJvdmlzaW9uYWxQYWdlUHJveHkgYWxyZWFkeSB0
b29rIGNhcmUgb2YgaW5pdGlhbGl6aW5nIHRoZSBXZWJQYWdlIGluIHRoZSBXZWJQcm9jZXNzLgor
ICAgIGlmIChpc1Byb2Nlc3NTd2FwICE9IElzUHJvY2Vzc1N3YXA6OlllcykKICAgICAgICAgaW5p
dGlhbGl6ZVdlYlBhZ2UoKTsKIAogICAgIG1faW5zcGVjdG9yLT51cGRhdGVGb3JOZXdQYWdlUHJv
Y2Vzcyh0aGlzKTsKQEAgLTQ5OTYsMTIgKzQ5OTksMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNv
bm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CiAgICAgQVNT
RVJUX1VOVVNFRChjb25uZWN0aW9uLCAmY29ubmVjdGlvbiA9PSBtX3Byb2Nlc3MtPmNvbm5lY3Rp
b24oKSk7CiAKLSAgICBtX3dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIud2ViUGFnZUVudGVyaW5n
V2ViUHJvY2VzcygpOworICAgIG1fd2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci53ZWJQYWdlRW50
ZXJpbmdXZWJQcm9jZXNzKG1fcHJvY2Vzcyk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojp3ZWJQ
cm9jZXNzV2lsbFNodXREb3duKCkKIHsKLSAgICBtX3dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIu
d2ViUGFnZUxlYXZpbmdXZWJQcm9jZXNzKCk7CisgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFj
a2VyLndlYlBhZ2VMZWF2aW5nV2ViUHJvY2VzcyhtX3Byb2Nlc3MpOwogfQogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6cHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZygpCkBAIC02NTYwLDcgKzY1NjMsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZShQcm9jZXNzVGVybWluYXRp
b25SZWFzb24gcmVhc29uKQogICAgIC8vIElmIGl0IGRvZXMgKmR1cmluZyogcHJvY2VzcyBzd2Fw
cGluZywgYW5kIHRoZSBjbGllbnQgdHJpZ2dlcnMgYSByZWxvYWQsIHRoYXQgY2F1c2VzIGJpemFy
cmUgV2ViS2l0IHJlLWVudHJ5LgogICAgIC8vIEZJWE1FOiBUaGlzIG1pZ2h0IGhhdmUgdG8gY2hh
bmdlCiAgICAgaWYgKHJlYXNvbiA9PSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246Ok5hdmlnYXRp
b25Td2FwKQotICAgICAgICBtX3dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIud2ViUGFnZUxlYXZp
bmdXZWJQcm9jZXNzKCk7CisgICAgICAgIG1fd2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci53ZWJQ
YWdlTGVhdmluZ1dlYlByb2Nlc3MobV9wcm9jZXNzKTsKICAgICBlbHNlIHsKICAgICAgICAgbmF2
aWdhdGlvblN0YXRlKCkuY2xlYXJBbGxOYXZpZ2F0aW9ucygpOwogICAgICAgICBkaXNwYXRjaFBy
b2Nlc3NEaWRUZXJtaW5hdGUocmVhc29uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggNjMzZDM1Y2M3ZDA4MmM4NGQwYmRlMGZkNWVlNjcyZDk3ZTU0YTQ0Zi4uOWNh
ZTNjOTk4NjdmMTI1NmI4ZjM4YjNlYTJhMjJjYjU5Njk0NzNmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTM3Niw2ICszNzYsOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGFkZFByZXZpb3VzbHlWaXNpdGVkUGF0aChjb25zdCBTdHJpbmcmKTsKIAorICAgIFdlYlBy
b2Nlc3NMaWZldGltZVRyYWNrZXImIHdlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIoKSB7IHJldHVy
biBtX3dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXI7IH0KKwogI2lmIEVOQUJMRShEQVRBX0RFVEVD
VElPTikKICAgICBOU0FycmF5ICpkYXRhRGV0ZWN0aW9uUmVzdWx0cygpIHsgcmV0dXJuIG1fZGF0
YURldGVjdGlvblJlc3VsdHMuZ2V0KCk7IH0KICAgICB2b2lkIGRldGVjdERhdGFJbkFsbEZyYW1l
cyhXZWJDb3JlOjpEYXRhRGV0ZWN0b3JUeXBlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBEYXRhRGV0ZWN0aW9uUmVzdWx0Jik+JiYpOwpAQCAtMTYzMyw4ICsxNjM1LDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZEZhaWxUb1N1c3BlbmRBZnRlclByb2Nlc3NTd2FwKCk7CiAgICAgdm9p
ZCBkaWRTdXNwZW5kQWZ0ZXJQcm9jZXNzU3dhcCgpOwogCi0gICAgZW51bSBjbGFzcyBTaG91bGRJ
bml0aWFsaXplV2ViUGFnZSB7IE5vLCBZZXMgfTsKLSAgICB2b2lkIGZpbmlzaEF0dGFjaGluZ1Rv
V2ViUHJvY2VzcyhTaG91bGRJbml0aWFsaXplV2ViUGFnZSA9IFNob3VsZEluaXRpYWxpemVXZWJQ
YWdlOjpZZXMpOworICAgIGVudW0gY2xhc3MgSXNQcm9jZXNzU3dhcCB7IE5vLCBZZXMgfTsKKyAg
ICB2b2lkIGZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2VzcyhJc1Byb2Nlc3NTd2FwKTsKIAogICAg
IFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IHJlYXR0YWNoVG9XZWJQcm9jZXNzRm9yUmVsb2FkKCk7
CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gcmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRl
bShXZWJCYWNrRm9yd2FyZExpc3RJdGVtJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlci5jcHAKaW5kZXggYzM2NDc0ZjJiMWM4
ZmIzNTczZDhkNjQ3MjExMjFlMGMyYmVlYjM3ZS4uM2Q3NWFiZGNiMjcwMzJjMGUxZjcxZGIyOTM5
YmFkZDUyZTMzNGQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NMaWZldGltZU9ic2VydmVyLmNwcApAQCAtMzksMTAgKzM5LDggQEAgV2ViUHJvY2Vz
c0xpZmV0aW1lT2JzZXJ2ZXI6On5XZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlcigpCiB7CiB9CiAK
LXZvaWQgV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXI6OmFkZFdlYlBhZ2UoV2ViUGFnZVByb3h5
JiB3ZWJQYWdlUHJveHkpCit2b2lkIFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyOjphZGRXZWJQ
YWdlKFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3Mp
CiB7Ci0gICAgYXV0byYgcHJvY2VzcyA9IHdlYlBhZ2VQcm94eS5wcm9jZXNzKCk7Ci0KICAgICBB
U1NFUlQocHJvY2Vzcy5zdGF0ZSgpID09IFdlYlByb2Nlc3NQcm94eTo6U3RhdGU6OlJ1bm5pbmcp
OwogCiAgICAgaWYgKG1fcHJvY2Vzc2VzLmFkZCgmcHJvY2VzcykuaXNOZXdFbnRyeSkKQEAgLTUx
LDEwICs0OSw4IEBAIHZvaWQgV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXI6OmFkZFdlYlBhZ2Uo
V2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHkpCiAgICAgd2ViUGFnZVdpbGxPcGVuQ29ubmVjdGlv
bih3ZWJQYWdlUHJveHksICpwcm9jZXNzLmNvbm5lY3Rpb24oKSk7CiB9CiAKLXZvaWQgV2ViUHJv
Y2Vzc0xpZmV0aW1lT2JzZXJ2ZXI6OnJlbW92ZVdlYlBhZ2UoV2ViUGFnZVByb3h5JiB3ZWJQYWdl
UHJveHkpCit2b2lkIFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyOjpyZW1vdmVXZWJQYWdlKFdl
YlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCiB7Ci0g
ICAgYXV0byYgcHJvY2VzcyA9IHdlYlBhZ2VQcm94eS5wcm9jZXNzKCk7Ci0KICAgICAvLyBGSVhN
RTogVGhpcyBzaG91bGQgYXNzZXJ0IHRoYXQgdGhlIHBhZ2UgaXMgZWl0aGVyIGNsb3NlZCBvciB0
aGF0IHRoZSBwcm9jZXNzIGlzIG5vIGxvbmdlciBydW5uaW5nLAogICAgIC8vIGJ1dCB3ZSBoYXZl
IHRvIG1ha2Ugc3VyZSB0aGF0IHJlbW92ZVdlYlBhZ2UgaXMgY2FsbGVkIGFmdGVyIHRoZSBjb25u
ZWN0aW9uIGhhcyBiZWVuIHJlbW92ZWQgaW4gdGhhdCBjYXNlLgogICAgIEFTU0VSVChtX3Byb2Nl
c3Nlcy5jb250YWlucygmcHJvY2VzcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyLmgKaW5kZXggNDhmN2EwZTJhNGY1MWU5ZjM4
YTZmMTQ3MzQ2MTUzMTE2ZmJkODEyYy4uNjFjZTIyYjZmNjYwOGI2NGEyODMyM2ZmMTQ2Y2Y0Njdk
NTFiZjIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc0xp
ZmV0aW1lT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
TGlmZXRpbWVPYnNlcnZlci5oCkBAIC00Myw4ICs0Myw4IEBAIHB1YmxpYzoKICAgICBXZWJQcm9j
ZXNzTGlmZXRpbWVPYnNlcnZlcigpOwogICAgIHZpcnR1YWwgfldlYlByb2Nlc3NMaWZldGltZU9i
c2VydmVyKCk7CiAKLSAgICB2b2lkIGFkZFdlYlBhZ2UoV2ViUGFnZVByb3h5Jik7Ci0gICAgdm9p
ZCByZW1vdmVXZWJQYWdlKFdlYlBhZ2VQcm94eSYpOworICAgIHZvaWQgYWRkV2ViUGFnZShXZWJQ
YWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkmKTsKKyAgICB2b2lkIHJlbW92ZVdlYlBhZ2UoV2Vi
UGFnZVByb3h5JiwgV2ViUHJvY2Vzc1Byb3h5Jik7CiAKICAgICBXVEY6Okl0ZXJhdG9yUmFuZ2U8
SGFzaENvdW50ZWRTZXQ8V2ViUHJvY2Vzc1Byb3h5Kj46OmNvbnN0X2l0ZXJhdG9yOjpLZXlzPiBw
cm9jZXNzZXMoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmNwcAppbmRleCBkMWQ3MDE2NjMyOWY4NWJjMjU5M2Y2
YjdjODU1YmRhODBiMWIxZTIzLi43MWEwYTViMjVhYmUwYmMxYmQzODhjZjA3OTUyYzcyYTg3MTAy
MDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzTGlmZXRp
bWVUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzTGlm
ZXRpbWVUcmFja2VyLmNwcApAQCAtNDksNDEgKzQ5LDQxIEBAIHZvaWQgV2ViUHJvY2Vzc0xpZmV0
aW1lVHJhY2tlcjo6YWRkT2JzZXJ2ZXIoV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXImIG9ic2Vy
dmVyCiAKICAgICBvYnNlcnZlci53ZWJQYWdlV2FzQWRkZWQobV93ZWJQYWdlUHJveHkpOwogCi0g
ICAgaWYgKHByb2Nlc3NJc1J1bm5pbmcoKSkKLSAgICAgICAgb2JzZXJ2ZXIuYWRkV2ViUGFnZSht
X3dlYlBhZ2VQcm94eSk7CisgICAgaWYgKHByb2Nlc3NJc1J1bm5pbmcobV93ZWJQYWdlUHJveHku
cHJvY2VzcygpKSkKKyAgICAgICAgb2JzZXJ2ZXIuYWRkV2ViUGFnZShtX3dlYlBhZ2VQcm94eSwg
bV93ZWJQYWdlUHJveHkucHJvY2VzcygpKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzTGlmZXRpbWVU
cmFja2VyOjp3ZWJQYWdlRW50ZXJpbmdXZWJQcm9jZXNzKCkKK3ZvaWQgV2ViUHJvY2Vzc0xpZmV0
aW1lVHJhY2tlcjo6d2ViUGFnZUVudGVyaW5nV2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MpCiB7Ci0gICAgQVNTRVJUKHByb2Nlc3NJc1J1bm5pbmcoKSk7CisgICAgQVNTRVJUKHBy
b2Nlc3NJc1J1bm5pbmcocHJvY2VzcykpOwogCiAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1f
b2JzZXJ2ZXJzKQotICAgICAgICBvYnNlcnZlci0+YWRkV2ViUGFnZShtX3dlYlBhZ2VQcm94eSk7
CisgICAgICAgIG9ic2VydmVyLT5hZGRXZWJQYWdlKG1fd2ViUGFnZVByb3h5LCBwcm9jZXNzKTsK
IH0KIAotdm9pZCBXZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyOjp3ZWJQYWdlTGVhdmluZ1dlYlBy
b2Nlc3MoKQordm9pZCBXZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyOjp3ZWJQYWdlTGVhdmluZ1dl
YlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQogewotICAgIEFTU0VSVChwcm9jZXNz
SXNSdW5uaW5nKCkpOworICAgIEFTU0VSVChwcm9jZXNzSXNSdW5uaW5nKHByb2Nlc3MpKTsKIAog
ICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKLSAgICAgICAgb2JzZXJ2ZXIt
PnJlbW92ZVdlYlBhZ2UobV93ZWJQYWdlUHJveHkpOworICAgICAgICBvYnNlcnZlci0+cmVtb3Zl
V2ViUGFnZShtX3dlYlBhZ2VQcm94eSwgcHJvY2Vzcyk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc0xp
ZmV0aW1lVHJhY2tlcjo6cGFnZVdhc0ludmFsaWRhdGVkKCkKIHsKLSAgICBpZiAoIXByb2Nlc3NJ
c1J1bm5pbmcoKSkKKyAgICBpZiAoIXByb2Nlc3NJc1J1bm5pbmcobV93ZWJQYWdlUHJveHkucHJv
Y2VzcygpKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1f
b2JzZXJ2ZXJzKSB7Ci0gICAgICAgIG9ic2VydmVyLT5yZW1vdmVXZWJQYWdlKG1fd2ViUGFnZVBy
b3h5KTsKKyAgICAgICAgb2JzZXJ2ZXItPnJlbW92ZVdlYlBhZ2UobV93ZWJQYWdlUHJveHksIG1f
d2ViUGFnZVByb3h5LnByb2Nlc3MoKSk7CiAKICAgICAgICAgb2JzZXJ2ZXItPndlYlBhZ2VXYXNJ
bnZhbGlkYXRlZChtX3dlYlBhZ2VQcm94eSk7CiAgICAgfQogfQogCi1ib29sIFdlYlByb2Nlc3NM
aWZldGltZVRyYWNrZXI6OnByb2Nlc3NJc1J1bm5pbmcoKQorYm9vbCBXZWJQcm9jZXNzTGlmZXRp
bWVUcmFja2VyOjpwcm9jZXNzSXNSdW5uaW5nKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKIHsK
LSAgICByZXR1cm4gbV93ZWJQYWdlUHJveHkucHJvY2VzcygpLnN0YXRlKCkgPT0gV2ViUHJvY2Vz
c1Byb3h5OjpTdGF0ZTo6UnVubmluZzsKKyAgICByZXR1cm4gcHJvY2Vzcy5zdGF0ZSgpID09IFdl
YlByb2Nlc3NQcm94eTo6U3RhdGU6OlJ1bm5pbmc7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIuaAppbmRleCBmZGM0ZGVm
MjgzMzM4NzQ4MzE4ZTY3YzQ3YWVhYjljN2Q4ZWVmNTVmLi4xMjg3NWFlNjM0MGVkYTRjOWI5MDEz
MjM5NGY5MTkxMjk0OTE2YjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5oCkBAIC0zNiw2ICszNiw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzTGlmZXRpbWVP
YnNlcnZlcjsKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKIAogY2xhc3MgV2ViUHJvY2Vzc0xpZmV0
aW1lVHJhY2tlciB7CiBwdWJsaWM6CkBAIC00NCwxMyArNDUsMTMgQEAgcHVibGljOgogCiAgICAg
dm9pZCBhZGRPYnNlcnZlcihXZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlciYpOwogCi0gICAgdm9p
ZCB3ZWJQYWdlRW50ZXJpbmdXZWJQcm9jZXNzKCk7Ci0gICAgdm9pZCB3ZWJQYWdlTGVhdmluZ1dl
YlByb2Nlc3MoKTsKKyAgICB2b2lkIHdlYlBhZ2VFbnRlcmluZ1dlYlByb2Nlc3MoV2ViUHJvY2Vz
c1Byb3h5Jik7CisgICAgdm9pZCB3ZWJQYWdlTGVhdmluZ1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1By
b3h5Jik7CiAKICAgICB2b2lkIHBhZ2VXYXNJbnZhbGlkYXRlZCgpOwogCiBwcml2YXRlOgotICAg
IGJvb2wgcHJvY2Vzc0lzUnVubmluZygpOworICAgIHN0YXRpYyBib29sIHByb2Nlc3NJc1J1bm5p
bmcoV2ViUHJvY2Vzc1Byb3h5Jik7CiAKICAgICBXZWJQYWdlUHJveHkmIG1fd2ViUGFnZVByb3h5
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBk
M2I2MjdiMDk1ZjA4YTg0ZDI3MDQ2ZDNmMmI3OGYyZmZjNGE2MjFjLi5lNDMyOWM4MjcyNGM1MzA4
MzJkZWQ4N2Y1NTcxZWU5ODQ5OGRmODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKQEAgLTI2MSw2ICsyNjEsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6Y29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIAogICAg
IGZvciAoYXV0byYgcGFnZSA6IG1fcGFnZU1hcC52YWx1ZXMoKSkKICAgICAgICAgcGFnZS0+Y29u
bmVjdGlvbldpbGxPcGVuKGNvbm5lY3Rpb24pOworCisgICAgZm9yIChhdXRvKiBwcm92aXNpb25h
bFBhZ2UgOiBtX3Byb3Zpc2lvbmFsUGFnZXMpCisgICAgICAgIHByb3Zpc2lvbmFsUGFnZS0+Y29u
bmVjdGlvbldpbGxPcGVuKGNvbm5lY3Rpb24pOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6
cHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3Bw
CmluZGV4IGJlZDIzYjAwZmY2MmMzYjNlZTg1NTYzYTg0MWE5MGRmZTAwNDcyODAuLjhjY2NkYzFh
YmQ3OTU5ZTI0ZjQ5OWQ1YmRlZmUzNGY4Yzg2ZjE2OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0zODMsOCAr
MzgzLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9z
dG9yYWdlQXJlYU1hcC5pc0VtcHR5KCk7IH0KIAotICAgIElQQzo6Q29ubmVjdGlvbjo6VW5pcXVl
SUQgYWxsb3dlZENvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2FsbG93ZWRDb25uZWN0aW9u
OyB9Ci0gICAgdm9pZCBzZXRBbGxvd2VkQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OlVuaXF1
ZUlEKTsKKyAgICBWZWN0b3I8SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRD4gYWxsb3dlZENvbm5l
Y3Rpb25zKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2VkQ29ubmVjdGlvbnM7IH0KKyAgICB2b2lk
IGFkZEFsbG93ZWRDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQpOworICAgIHZv
aWQgcmVtb3ZlQWxsb3dlZENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCk7CiAK
ICAgICBSZWY8U3RvcmFnZUFyZWE+IGdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoU2VjdXJpdHlPcmln
aW5EYXRhJiYpOwogCkBAIC00MTksNyArNDIwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YUluQnl0ZXMpOwog
Ci0gICAgSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBtX2FsbG93ZWRDb25uZWN0aW9uOworICAg
IFZlY3RvcjxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEPiBtX2FsbG93ZWRDb25uZWN0aW9uczsK
ICAgICB1bnNpZ25lZCBtX3F1b3RhSW5CeXRlczsKIAogICAgIEhhc2hNYXA8U2VjdXJpdHlPcmln
aW5EYXRhLCBSZWZQdHI8U3RvcmFnZUFyZWE+PiBtX3N0b3JhZ2VBcmVhTWFwOwpAQCAtNDM5LDEx
ICs0NDAsMTggQEAgU3RvcmFnZU1hbmFnZXI6OlNlc3Npb25TdG9yYWdlTmFtZXNwYWNlOjp+U2Vz
c2lvblN0b3JhZ2VOYW1lc3BhY2UoKQogewogfQogCi12b2lkIFN0b3JhZ2VNYW5hZ2VyOjpTZXNz
aW9uU3RvcmFnZU5hbWVzcGFjZTo6c2V0QWxsb3dlZENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9u
OjpVbmlxdWVJRCBhbGxvd2VkQ29ubmVjdGlvbikKK3ZvaWQgU3RvcmFnZU1hbmFnZXI6OlNlc3Np
b25TdG9yYWdlTmFtZXNwYWNlOjphZGRBbGxvd2VkQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246
OlVuaXF1ZUlEIGFsbG93ZWRDb25uZWN0aW9uKQogewotICAgIG1fYWxsb3dlZENvbm5lY3Rpb24g
PSBhbGxvd2VkQ29ubmVjdGlvbjsKKyAgICBBU1NFUlQoIW1fYWxsb3dlZENvbm5lY3Rpb25zLmNv
bnRhaW5zKGFsbG93ZWRDb25uZWN0aW9uKSk7CisgICAgbV9hbGxvd2VkQ29ubmVjdGlvbnMuYXBw
ZW5kKGFsbG93ZWRDb25uZWN0aW9uKTsKIH0KIAorCit2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpTZXNz
aW9uU3RvcmFnZU5hbWVzcGFjZTo6cmVtb3ZlQWxsb3dlZENvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uOjpVbmlxdWVJRCBhbGxvd2VkQ29ubmVjdGlvbikKK3sKKyAgICBBU1NFUlQobV9hbGxvd2Vk
Q29ubmVjdGlvbnMuY29udGFpbnMoYWxsb3dlZENvbm5lY3Rpb24pKTsKKyAgICBtX2FsbG93ZWRD
b25uZWN0aW9ucy5yZW1vdmVBbGwoYWxsb3dlZENvbm5lY3Rpb24pOworfQogYXV0byBTdG9yYWdl
TWFuYWdlcjo6U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2U6OmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEo
U2VjdXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4pIC0+IFJlZjxTdG9yYWdlQXJlYT4K
IHsKICAgICByZXR1cm4gKm1fc3RvcmFnZUFyZWFNYXAuZW5zdXJlKHNlY3VyaXR5T3JpZ2luLCBb
dGhpcywgc2VjdXJpdHlPcmlnaW5dKCkgbXV0YWJsZSB7CkBAIC00OTQsMTMgKzUwMiwyMyBAQCB2
b2lkIFN0b3JhZ2VNYW5hZ2VyOjpkZXN0cm95U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UodWludDY0
X3Qgc3RvcmFnZU5hbWVzcGFjZUlEKQogICAgIH0pOwogfQogCi12b2lkIFN0b3JhZ2VNYW5hZ2Vy
OjpzZXRBbGxvd2VkU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VDb25uZWN0aW9uKHVpbnQ2NF90IHN0
b3JhZ2VOYW1lc3BhY2VJRCwgSVBDOjpDb25uZWN0aW9uKiBhbGxvd2VkQ29ubmVjdGlvbikKK3Zv
aWQgU3RvcmFnZU1hbmFnZXI6OmFkZEFsbG93ZWRTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUNvbm5l
Y3Rpb24odWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlELCBJUEM6OkNvbm5lY3Rpb24mIGFsbG93
ZWRDb25uZWN0aW9uKQoreworICAgIGF1dG8gYWxsb3dlZENvbm5lY3Rpb25JRCA9IGFsbG93ZWRD
b25uZWN0aW9uLnVuaXF1ZUlEKCk7CisgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYWxsb3dlZENvbm5lY3Rpb25JRCwgc3RvcmFnZU5h
bWVzcGFjZUlEXSgpIG11dGFibGUgeworICAgICAgICBBU1NFUlQobV9zZXNzaW9uU3RvcmFnZU5h
bWVzcGFjZXMuY29udGFpbnMoc3RvcmFnZU5hbWVzcGFjZUlEKSk7CisKKyAgICAgICAgbV9zZXNz
aW9uU3RvcmFnZU5hbWVzcGFjZXMuZ2V0KHN0b3JhZ2VOYW1lc3BhY2VJRCktPmFkZEFsbG93ZWRD
b25uZWN0aW9uKGFsbG93ZWRDb25uZWN0aW9uSUQpOworICAgIH0pOworfQorCit2b2lkIFN0b3Jh
Z2VNYW5hZ2VyOjpyZW1vdmVBbGxvd2VkU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VDb25uZWN0aW9u
KHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgSVBDOjpDb25uZWN0aW9uJiBhbGxvd2VkQ29u
bmVjdGlvbikKIHsKLSAgICBhdXRvIGFsbG93ZWRDb25uZWN0aW9uSUQgPSBhbGxvd2VkQ29ubmVj
dGlvbiA/IGFsbG93ZWRDb25uZWN0aW9uLT51bmlxdWVJRCgpIDogSVBDOjpDb25uZWN0aW9uOjpV
bmlxdWVJRCB7IH07CisgICAgYXV0byBhbGxvd2VkQ29ubmVjdGlvbklEID0gYWxsb3dlZENvbm5l
Y3Rpb24udW5pcXVlSUQoKTsKICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBhbGxvd2VkQ29ubmVjdGlvbklELCBzdG9yYWdlTmFtZXNw
YWNlSURdKCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChtX3Nlc3Npb25TdG9yYWdlTmFtZXNw
YWNlcy5jb250YWlucyhzdG9yYWdlTmFtZXNwYWNlSUQpKTsKIAotICAgICAgICBtX3Nlc3Npb25T
dG9yYWdlTmFtZXNwYWNlcy5nZXQoc3RvcmFnZU5hbWVzcGFjZUlEKS0+c2V0QWxsb3dlZENvbm5l
Y3Rpb24oYWxsb3dlZENvbm5lY3Rpb25JRCk7CisgICAgICAgIG1fc2Vzc2lvblN0b3JhZ2VOYW1l
c3BhY2VzLmdldChzdG9yYWdlTmFtZXNwYWNlSUQpLT5yZW1vdmVBbGxvd2VkQ29ubmVjdGlvbihh
bGxvd2VkQ29ubmVjdGlvbklEKTsKICAgICB9KTsKIH0KIApAQCAtNTIyLDEyICs1NDAsMTIgQEAg
dm9pZCBTdG9yYWdlTWFuYWdlcjo6Y2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh1aW50NjRf
dCBzdG9yYWdlTmFtZXNwYWNlSUQsIHUKICAgICB9KTsKIH0KIAotdm9pZCBTdG9yYWdlTWFuYWdl
cjo6cHJvY2Vzc1dpbGxPcGVuQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24pCit2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpwcm9jZXNzV2lsbE9wZW5D
b25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKQogewogICAgIGNvbm5lY3Rpb24uYWRkV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpTdG9yYWdlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3F1ZXVlLmdl
dCgpLCB0aGlzKTsKIH0KIAotdm9pZCBTdG9yYWdlTWFuYWdlcjo6cHJvY2Vzc0RpZENsb3NlQ29u
bmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit2
b2lkIFN0b3JhZ2VNYW5hZ2VyOjpwcm9jZXNzRGlkQ2xvc2VDb25uZWN0aW9uKFdlYlByb2Nlc3NQ
cm94eSYgcHJvY2VzcywgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogICAgIGNvbm5l
Y3Rpb24ucmVtb3ZlV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTdG9yYWdlTWFu
YWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIApAQCAtNzY0LDcgKzc4Miw3IEBAIHZvaWQg
U3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTWFwKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgdWludDY0CiAgICAgQVNTRVJUKCFzbG90KTsKIAogICAgIC8vIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSBhIG1lc3NhZ2UgY2hlY2suCi0gICAgQVNTRVJUKGNvbm5lY3Rpb24udW5p
cXVlSUQoKSA9PSBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZS0+YWxsb3dlZENvbm5lY3Rpb24oKSk7
CisgICAgQVNTRVJUKHNlc3Npb25TdG9yYWdlTmFtZXNwYWNlLT5hbGxvd2VkQ29ubmVjdGlvbnMo
KS5jb250YWlucyhjb25uZWN0aW9uLnVuaXF1ZUlEKCkpKTsKIAogICAgIGF1dG8gc3RvcmFnZUFy
ZWEgPSBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZS0+Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYShXVEZN
b3ZlKHNlY3VyaXR5T3JpZ2luRGF0YSkpOwogICAgIHN0b3JhZ2VBcmVhLT5hZGRMaXN0ZW5lcihj
b25uZWN0aW9uLnVuaXF1ZUlEKCksIHN0b3JhZ2VNYXBJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggMzg2NmZmOTM0
MmNkNmRlYmUyMGMzZDQ4Y2I4MDgyZGM4ZTQ5NjA5Ny4uZDZmNjJhMGY0OWU2ZjA2MmY1OGRkYWM3
YTJlMTIzZmI0NTQ1M2YxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
U3RvcmFnZS9TdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuaApAQCAtNTEsNyArNTEsOCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHVpbnQ2NF90IHN0b3JhZ2VOYW1l
c3BhY2VJRCwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzKTsKICAgICB2b2lkIGRlc3Ryb3lTZXNzaW9u
U3RvcmFnZU5hbWVzcGFjZSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQpOwotICAgIHZvaWQg
c2V0QWxsb3dlZFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlQ29ubmVjdGlvbih1aW50NjRfdCBzdG9y
YWdlTmFtZXNwYWNlSUQsIElQQzo6Q29ubmVjdGlvbiogYWxsb3dlZENvbm5lY3Rpb24pOworICAg
IHZvaWQgYWRkQWxsb3dlZFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlQ29ubmVjdGlvbih1aW50NjRf
dCBzdG9yYWdlTmFtZXNwYWNlSUQsIElQQzo6Q29ubmVjdGlvbiYpOworICAgIHZvaWQgcmVtb3Zl
QWxsb3dlZFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlQ29ubmVjdGlvbih1aW50NjRfdCBzdG9yYWdl
TmFtZXNwYWNlSUQsIElQQzo6Q29ubmVjdGlvbiYpOwogICAgIHZvaWQgY2xvbmVTZXNzaW9uU3Rv
cmFnZU5hbWVzcGFjZSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIHVpbnQ2NF90IG5ld1N0
b3JhZ2VOYW1lc3BhY2VJRCk7CiAKICAgICB2b2lkIHByb2Nlc3NXaWxsT3BlbkNvbm5lY3Rpb24o
V2ViUHJvY2Vzc1Byb3h5JiwgSVBDOjpDb25uZWN0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4
IDkyOTJkMzUzMzllODA2YzZjZDU0MTI3MmViNGE5MTBkZWQ4ZGU3Y2UuLjAxN2Y3ZmFmMzA4Yjc1
NjFiMzZjN2ViNTUxMmExNTkxM2RkYTgyMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xODAzLDEz
ICsxODAzLDEzIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6d2ViUHJvY2Vzc1dpbGxPcGVuQ29u
bmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQCiB2b2lkIFdlYnNpdGVEYXRhU3Rv
cmU6OndlYlBhZ2VXaWxsT3BlbkNvbm5lY3Rpb24oV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHks
IElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsKICAgICBpZiAobV9zdG9yYWdlTWFuYWdl
cikKLSAgICAgICAgbV9zdG9yYWdlTWFuYWdlci0+c2V0QWxsb3dlZFNlc3Npb25TdG9yYWdlTmFt
ZXNwYWNlQ29ubmVjdGlvbih3ZWJQYWdlUHJveHkucGFnZUlEKCksICZjb25uZWN0aW9uKTsKKyAg
ICAgICAgbV9zdG9yYWdlTWFuYWdlci0+YWRkQWxsb3dlZFNlc3Npb25TdG9yYWdlTmFtZXNwYWNl
Q29ubmVjdGlvbih3ZWJQYWdlUHJveHkucGFnZUlEKCksIGNvbm5lY3Rpb24pOwogfQogCi12b2lk
IFdlYnNpdGVEYXRhU3RvcmU6OndlYlBhZ2VEaWRDbG9zZUNvbm5lY3Rpb24oV2ViUGFnZVByb3h5
JiB3ZWJQYWdlUHJveHksIElQQzo6Q29ubmVjdGlvbiYpCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6
OndlYlBhZ2VEaWRDbG9zZUNvbm5lY3Rpb24oV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHksIElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsKICAgICBpZiAobV9zdG9yYWdlTWFuYWdlcikK
LSAgICAgICAgbV9zdG9yYWdlTWFuYWdlci0+c2V0QWxsb3dlZFNlc3Npb25TdG9yYWdlTmFtZXNw
YWNlQ29ubmVjdGlvbih3ZWJQYWdlUHJveHkucGFnZUlEKCksIG51bGxwdHIpOworICAgICAgICBt
X3N0b3JhZ2VNYW5hZ2VyLT5yZW1vdmVBbGxvd2VkU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VDb25u
ZWN0aW9uKHdlYlBhZ2VQcm94eS5wYWdlSUQoKSwgY29ubmVjdGlvbik7CiB9CiAKIHZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6d2ViUHJvY2Vzc0RpZENsb3NlQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJv
eHkmIHdlYlByb2Nlc3NQcm94eSwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGFlZDFkZGYwZTQw
NWNjZmNlMGFkMzhkMThlOGUyNTMxM2E5N2JjOWEuLmQ0ZTFjZDdiYmE4MDg4ZWI4YTU3NzA1YmE3
MDViYWI3ZWExM2VjZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0wMi0yNyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZsYWt5IEFQSSBUZXN0OiBUZXN0V2ViS2l0QVBJLlBy
b2Nlc3NTd2FwLlNlc3Npb25TdG9yYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTQ0ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVcGRhdGUgZXhpc3RpbmcgQVBJIHRlc3QgdG8gbWFrZSBpdCBtb3Jl
IGxpa2VseSB0byByZXByb2R1Y2UgdGhlIGlzc3VlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKwogMjAxOS0w
Mi0yNiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHJl
bWFpbmluZyBwb2lzb25pbmcgY29kZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmlu
ZGV4IDlmMTgyODI5NDVmMTAyYTUyYzA5MDQxYjI2NWVlZTkzMThlYzNmOTQuLmIwMTRjNTBkYWYz
NTFmNWY0NTQ1ZDJiYjk3MzI2ODRmNTkwNTRhZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdh
dGlvbi5tbQpAQCAtMjI4OCw1OCArMjI4OCw2MSBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24o
ZXZ0KSB7CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIFNlc3Npb25TdG9yYWdlKQogewotICAgIGF1dG8g
cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigp
OwotICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10g
X2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsK
KyAgICBmb3IgKGludCBpID0gMDsgaSA8IDU7ICsraSkgeworICAgICAgICBbcmVjZWl2ZWRNZXNz
YWdlcyByZW1vdmVBbGxPYmplY3RzXTsKKyAgICAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24gPSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7CisgICAgICAgIGF1dG8gcHJv
Y2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmln
dXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKIAotICAgIGF1dG8gd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOwotICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9j
ZXNzUG9vbC5nZXQoKV07Ci0gICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUg
YWxsb2NdIGluaXRdKTsKLSAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBz
b246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTpzZXNzaW9uU3RvcmFnZVRlc3RC
eXRlc107Ci0gICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFu
ZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CisgICAgICAgIGF1dG8gd2ViVmlld0Nv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOworICAgICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vz
c1Bvb2wuZ2V0KCldOworICAgICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVt
ZSBhbGxvY10gaW5pdF0pOworICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmlu
ZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTpzZXNzaW9uU3RvcmFn
ZVRlc3RCeXRlc107CisgICAgICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVI
YW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwogCi0gICAgYXV0byBt
ZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tQU09OTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRd
KTsKLSAgICBbW3dlYlZpZXdDb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRk
U2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAInBzb24iXTsK
KyAgICAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tQU09OTWVzc2FnZUhhbmRs
ZXIgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgW1t3ZWJWaWV3Q29uZmlndXJhdGlvbiB1c2VyQ29u
dGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdl
dCgpIG5hbWU6QCJwc29uIl07CiAKLSAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZp
Z3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBhdXRvIGRlbGVnYXRl
ID0gYWRvcHROUyhbW1BTT05OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKLSAgICBb
d2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgICAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRp
b24uZ2V0KCldKTsKKyAgICAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tQU09OTmF2aWdh
dGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRp
b25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3Qg
PSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNv
bjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKLSAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKKyAgICAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0
Lm9yZy9tYWluLmh0bWwiXV07CisgICAgICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3Rd
OwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZE1lc3NhZ2UpOwotICAg
IHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7Ci0gICAgZG9uZSA9IGZhbHNlOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlY2VpdmVkTWVzc2FnZSk7CisgICAgICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwor
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgICAgICBkb25lID0g
ZmFsc2U7CiAKLSAgICBhdXRvIHdlYmtpdFBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl07CisgICAgICAgIGF1dG8gd2Via2l0UElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVu
dGlmaWVyXTsKIAotICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dOwot
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgICAgICByZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93
d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXTsKKyAgICAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwotICAgIGRv
bmUgPSBmYWxzZTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAg
ICAgICAgZG9uZSA9IGZhbHNlOwogCi0gICAgYXV0byBhcHBsZVBJRCA9IFt3ZWJWaWV3IF93ZWJQ
cm9jZXNzSWRlbnRpZmllcl07CisgICAgICAgIGF1dG8gYXBwbGVQSUQgPSBbd2ViVmlldyBfd2Vi
UHJvY2Vzc0lkZW50aWZpZXJdOwogCi0gICAgLy8gVmVyaWZ5IHRoZSB3ZWIgcGFnZXMgYXJlIGlu
IGRpZmZlcmVudCBwcm9jZXNzZXMKLSAgICBFWFBFQ1RfTkUod2Via2l0UElELCBhcHBsZVBJRCk7
CisgICAgICAgIC8vIFZlcmlmeSB0aGUgd2ViIHBhZ2VzIGFyZSBpbiBkaWZmZXJlbnQgcHJvY2Vz
c2VzCisgICAgICAgIEVYUEVDVF9ORSh3ZWJraXRQSUQsIGFwcGxlUElEKTsKIAotICAgIHJlcXVl
c3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
cHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKLSAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpyZXF1ZXN0XTsKKyAgICAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5o
dG1sIl1dOworICAgICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsKLSAgICByZWNlaXZlZE1l
c3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwotICAg
IGRvbmUgPSBmYWxzZTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZl
ZE1lc3NhZ2UpOworICAgICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKKyAgICAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICAgICAgZG9uZSA9IGZhbHNlOwogCi0g
ICAgLy8gV2Ugc2hvdWxkIGhhdmUgZ29uZSBiYWNrIHRvIHRoZSB3ZWJraXQub3JnIHByb2Nlc3Mg
Zm9yIHRoaXMgbG9hZCBzaW5jZSB3ZSByZXVzZSBTdXNwZW5kZWRQYWdlcycgcHJvY2VzcyB3aGVu
IHBvc3NpYmxlLgotICAgIEVYUEVDVF9FUSh3ZWJraXRQSUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNz
SWRlbnRpZmllcl0pOworICAgICAgICAvLyBXZSBzaG91bGQgaGF2ZSBnb25lIGJhY2sgdG8gdGhl
IHdlYmtpdC5vcmcgcHJvY2VzcyBmb3IgdGhpcyBsb2FkIHNpbmNlIHdlIHJldXNlIFN1c3BlbmRl
ZFBhZ2VzJyBwcm9jZXNzIHdoZW4gcG9zc2libGUuCisgICAgICAgIEVYUEVDVF9FUSh3ZWJraXRQ
SUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOwogCi0gICAgLy8gVmVyaWZ5IHRo
ZSBzZXNzaW9uU3RvcmFnZSB2YWx1ZXMgd2VyZSBhcyBleHBlY3RlZAotICAgIEVYUEVDVF9FUShb
cmVjZWl2ZWRNZXNzYWdlcyBjb3VudF0sIDJ1KTsKLSAgICBFWFBFQ1RfVFJVRShbcmVjZWl2ZWRN
ZXNzYWdlcy5nZXQoKVswXSBpc0VxdWFsVG9TdHJpbmc6QCIiXSk7Ci0gICAgRVhQRUNUX1RSVUUo
W3JlY2VpdmVkTWVzc2FnZXMuZ2V0KClbMV0gaXNFcXVhbFRvU3RyaW5nOkAiSSBleGlzdCEiXSk7
CisgICAgICAgIC8vIFZlcmlmeSB0aGUgc2Vzc2lvblN0b3JhZ2UgdmFsdWVzIHdlcmUgYXMgZXhw
ZWN0ZWQKKyAgICAgICAgRVhQRUNUX0VRKFtyZWNlaXZlZE1lc3NhZ2VzIGNvdW50XSwgMnUpOwor
ICAgICAgICBFWFBFQ1RfVFJVRShbcmVjZWl2ZWRNZXNzYWdlcy5nZXQoKVswXSBpc0VxdWFsVG9T
dHJpbmc6QCIiXSk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZWNlaXZlZE1lc3NhZ2VzLmdldCgp
WzFdIGlzRXF1YWxUb1N0cmluZzpAIkkgZXhpc3QhIl0pOworICAgIH0KIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgUmV1c2VTdXNwZW5kZWRQcm9jZXNzKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>