<?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>206934</bug_id>
          
          <creation_ts>2020-01-29 08:07:39 -0800</creation_ts>
          <short_desc>[ iOS ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.serviceworker.html is flaky failing.</short_desc>
          <delta_ts>2020-03-04 11:19:56 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=206935</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="Jason Lawrence">Lawrence.j</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jacob_uphoff</cc>
    
    <cc>koivisto</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1612456</commentid>
    <comment_count>0</comment_count>
    <who name="Jason Lawrence">Lawrence.j</who>
    <bug_when>2020-01-29 08:07:39 -0800</bug_when>
    <thetext>imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.serviceworker.html


Description:
This test is flaky failing. This test is also flaky crashing, I will create another related bug for that issue.

History:
https://results.webkit.org/?suite=layout-tests&amp;test=imported%2Fw3c%2Fweb-platform-tests%2FIndexedDB%2Fkey-generators%2Freading-autoincrement-indexes-cursors.any.serviceworker.html

Diff:
--- /Volumes/Data/slave/ios-simulator-13-debug-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.serviceworker-expected.txt
+++ /Volumes/Data/slave/ios-simulator-13-debug-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.serviceworker-actual.txt
@@ -1,6 +1,4 @@
 
-PASS IDBIndex.openCursor() iterates over an index on the autoincrement key 
-PASS IDBIndex.openKeyCursor() iterates over an index on the autoincrement key 
-PASS IDBIndex.openCursor() iterates over an index not covering the autoincrement key 
-PASS IDBIndex.openKeyCursor() iterates over an index not covering the autoincrement key 
+Harness Error (TIMEOUT), message = null
 
+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612457</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-29 08:08:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/58991581&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612490</commentid>
    <comment_count>2</comment_count>
      <attachid>389143</attachid>
    <who name="Jason Lawrence">Lawrence.j</who>
    <bug_when>2020-01-29 09:02:23 -0800</bug_when>
    <thetext>Created attachment 389143
Update Test Expectations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612493</commentid>
    <comment_count>3</comment_count>
      <attachid>389143</attachid>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2020-01-29 09:09:05 -0800</bug_when>
    <thetext>Comment on attachment 389143
Update Test Expectations

Clearing flags on attachment: 389143

Committed r255360: &lt;https://trac.webkit.org/changeset/255360&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612526</commentid>
    <comment_count>4</comment_count>
    <who name="Jason Lawrence">Lawrence.j</who>
    <bug_when>2020-01-29 10:10:01 -0800</bug_when>
    <thetext>After reviewing the dashboard, this appears to have regressed at 251589 (https://trac.webkit.org/changeset/251589/webkit).  

I am able to reproduce the flaky failure locally with run-webkit-tests iterations.

Also, bug 206935 has been marked as a duplicate of 206396.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613432</commentid>
    <comment_count>5</comment_count>
      <attachid>389367</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-31 09:47:43 -0800</bug_when>
    <thetext>Created attachment 389367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613451</commentid>
    <comment_count>6</comment_count>
      <attachid>389370</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-31 10:00:08 -0800</bug_when>
    <thetext>Created attachment 389370
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613463</commentid>
    <comment_count>7</comment_count>
      <attachid>389372</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-31 10:22:30 -0800</bug_when>
    <thetext>Created attachment 389372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613535</commentid>
    <comment_count>8</comment_count>
      <attachid>389372</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-31 12:58:51 -0800</bug_when>
    <thetext>Comment on attachment 389372
Patch

Clearing flags on attachment: 389372

Committed r255518: &lt;https://trac.webkit.org/changeset/255518&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613536</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-31 12:58:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613540</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-31 13:05:55 -0800</bug_when>
    <thetext>Follow-up build fix: &lt;https://trac.webkit.org/changeset/255519&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613648</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-31 16:23:21 -0800</bug_when>
    <thetext>Flakiness dashboard shows one timeout after this fix so this fix does not appear to be sufficient. Reopening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617651</commentid>
    <comment_count>12</comment_count>
    <who name="Jason Lawrence">Lawrence.j</who>
    <bug_when>2020-02-11 14:44:33 -0800</bug_when>
    <thetext>I have marked this test as failing while this issue is investigated further.
https://trac.webkit.org/changeset/256375/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621774</commentid>
    <comment_count>13</comment_count>
    <who name="Jason Lawrence">Lawrence.j</who>
    <bug_when>2020-02-21 13:37:26 -0800</bug_when>
    <thetext>I have removed the expectation that was previously set when there was an issue.
https://trac.webkit.org/changeset/257159/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625628</commentid>
    <comment_count>14</comment_count>
    <who name="Jacob Uphoff">jacob_uphoff</who>
    <bug_when>2020-03-04 11:00:15 -0800</bug_when>
    <thetext>Looks like this is still failing with the same diff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625637</commentid>
    <comment_count>15</comment_count>
    <who name="Jacob Uphoff">jacob_uphoff</who>
    <bug_when>2020-03-04 11:13:40 -0800</bug_when>
    <thetext>rdar://problem/60047632</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625640</commentid>
    <comment_count>16</comment_count>
    <who name="Jacob Uphoff">jacob_uphoff</who>
    <bug_when>2020-03-04 11:19:56 -0800</bug_when>
    <thetext>I cloned the original radar that was closed and set expectations here: https://trac.webkit.org/changeset/257863/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389143</attachid>
            <date>2020-01-29 09:02:23 -0800</date>
            <delta_ts>2020-01-29 11:03:39 -0800</delta_ts>
            <desc>Update Test Expectations</desc>
            <filename>bug-206934-20200129090222.patch</filename>
            <type>text/plain</type>
            <size>1684</size>
            <attacher name="Jason Lawrence">Lawrence.j</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MzU3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTk3YzhhYWQyNWE1YjE2ZmVlOGE4
M2QzNTcxMWJhNWQzODljZmNkOC4uYjVlNjM2MDRiMjE0OWUyMDEwNDMwNzM0ZjVhNjM0ZjQ0N2Mw
ZjUxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAxLTI5ICBKYXNvbiBMYXdyZW5jZSAg
PGxhd3JlbmNlLmpAYXBwbGUuY29tPgorCisgICAgICAgIFsgaU9TIF0gaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5LWdlbmVyYXRvcnMvcmVhZGluZy1hdXRvaW5j
cmVtZW50LWluZGV4ZXMtY3Vyc29ycy5hbnkuc2VydmljZXdvcmtlci5odG1sIGlzIGZsYWt5IGZh
aWxpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDY5MzQKKworICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLgorCisgICAgICAgICog
cGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTAxLTI5ICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMjU1MzQ1LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
LXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGM1ZTU4N2JjOWNlMTY1Yjg5YmJiNTc0YWIzOWM3ODFlMzJmMzE4
MjcuLjBhYzM1YjFjODI5MGZkMDk3M2Q4YmZkOTU0NTI0Mjc3OWVlMWE4NWQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEzNTksNCArMTM1
OSw2IEBAIHdlYmtpdC5vcmcvYi8yMDY2ODUgWyBEZWJ1ZyBdIGFuaW1hdGlvbnMvYW5pbWF0aW9u
LWRpcmVjdGlvbi1ub3JtYWwuaHRtbCBbIFBhc3MKIAogd2Via2l0Lm9yZy9iLzIwNjY4NyBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9pZGxoYXJuZXNzLmFueS5odG1sIFsg
UGFzcyBUaW1lb3V0IF0KIAotd2Via2l0Lm9yZy9iLzIwNjc1MiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1zZXJp
YWxpemFibGUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQord2Via2l0Lm9yZy9iLzIwNjc1MiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLzJk
Y29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1zZXJpYWxpemFibGUuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCisKK3dlYmtpdC5vcmcvYi8yMDY5MzQgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5LWdlbmVyYXRvcnMvcmVhZGluZy1hdXRvaW5jcmVt
ZW50LWluZGV4ZXMtY3Vyc29ycy5hbnkuc2VydmljZXdvcmtlci5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389367</attachid>
            <date>2020-01-31 09:47:43 -0800</date>
            <delta_ts>2020-01-31 10:00:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206934-20200131094617.patch</filename>
            <type>text/plain</type>
            <size>22834</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIxOTEzMjEyYjU2ZDBjZGY3
NDg3ZmQ5NWJiNjg1NmIwODIwN2M4MmUuLmFjOTkxMTdkOTA1ZjRlNzdmMDA2NTJhMWEzMmE3YTFi
ZTU2MDc0NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMDEtMzEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbIGlPUyBdIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleS1nZW5lcmF0b3JzL3JlYWRpbmctYXV0b2lu
Y3JlbWVudC1pbmRleGVzLWN1cnNvcnMuYW55LnNlcnZpY2V3b3JrZXIuaHRtbCBpcyBmbGFreSBm
YWlsaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA2OTM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODk5MTU4MT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGbGFraW5lc3Mgd291bGQgaGFwcGVu
IHdoZW4gdGhlIHNlcnZpY2Ugd29ya2VyIHdvdWxkIHRha2UgdG9vIGxvbmcgdG8gbGF1bmNoIGFu
ZCB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIgd291bGQgZmlyZSBhbmQKKyAgICAgICAgcmVwb3J0
IHRoZSBwcm9jZXNzIGFzIHVucmVzcG9uc2l2ZSB3aGlsZSBzdGlsbCBsYXVuY2hpbmcgb3IgdmVy
eSBzaG9ydGx5IGFmdGVyLiBXaGVuIGEgc2VydmljZSB3b3JrZXIgaXMgcmVwb3J0ZWQgYXMKKyAg
ICAgICAgdW5yZXNwb25zaXZlLCB3ZSB3b3VsZCBraWxsIGl0LgorCisgICAgICAgIFRvIGFkZHJl
c3MgdGhlIGlzc3VlLCBzZXZlcmFsIGNoYW5nZXMgd2VyZSBtYWRlOgorICAgICAgICAtIFJlc3Bv
bnNpdmVuZXNzIGNoZWNrcyBhcmUgbm93IGRpc2FibGVkIGZvciBzbG93IGJ1aWxkcyAoRGVidWcs
IEFTQU4sIEd1YXJkTWFsbG9jKQorICAgICAgICAtIFdlIG9ubHkgc3RhcnQgdGhlIFJlc3BvbnNp
dmVuZXNzVGltZXIgYWZ0ZXIgdGhlIHByb2Nlc3MgaGFzIGZpbmlzaGVkIGxhdW5jaGluZyBzaW5j
ZSB0aGUgcmVzcG9uc2l2ZW5lc3MKKyAgICAgICAgICBjaGVjayByZWxpZXMgb24gSVBDIHRvIHRo
ZSBwcm9jZXNzIGFuZCB3ZSBjYW5ub3Qgc2VuZCB0aGUgSVBDIHVudGlsIGFmdGVyIHRoZSBwcm9j
ZXNzIGhhcyBsYXVuY2hlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3M6OnNlbmRVcGRhdGVCYWNr
aW5nU3RvcmVTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9y
d2FyZEl0ZW0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3NGb3JSZWxvYWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3NXaXRoSXRlbSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZEZpbGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRBbHRlcm5hdGVIVE1MKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkV2ViQXJjaGl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6Om5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdG9wTG9hZGluZyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVsb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojpnb1RvQmFja0ZvcndhcmRJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
aXNwYXRjaEFjdGl2aXR5U3RhdGVDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OnByb2Nlc3NOZXh0UXVldWVkTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpoYW5kbGVQcmV2ZW50YWJsZVRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmhhbmRsZVRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnJ1bkphdmFTY3JpcHRBbGVydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVu
SmF2YVNjcmlwdENvbmZpcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1bkph
dmFTY3JpcHRQcm9tcHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVu
T3BlblBhbmVsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjptYXlCZWNvbWVVbnJlc3BvbnNpdmUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVy
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojppc1Jlc3BvbnNpdmUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpyZXNwb25zaXZlbmVzc1RpbWVyKToKKwogMjAyMC0wMS0zMCAgeW91ZW5u
IGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBTZXJ2aWNlIFdv
cmtlcnMgYmVmb3JlIHRlcm1pbmF0aW5nIGFuIHVucmVzcG9uc2l2ZSBzZXJ2aWNlIHdvcmtlciBw
cm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFQcm94eUNvb3Jk
aW5hdGVkR3JhcGhpY3MuY3BwCmluZGV4IDcxYzg5YTk4ZWQyY2VmYjlmZTc2ZWExNjg1NmI4YmY4
ZjlmNDQ2ODcuLjc5ZjgyOWNlMzcyYTQzNWVkOWY2MzRkZjc5NTkxZGRlNThmNTIwZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2lu
Z0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3Jh
cGhpY3MuY3BwCkBAIC0zMTksNyArMzE5LDcgQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5Q29vcmRp
bmF0ZWRHcmFwaGljczo6c2VuZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKFJlc3BvbmRJbW0KICAg
ICBpZiAobV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSkgewogICAgICAg
ICAvLyBTdGFydCB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIuIFdlIHdpbGwgc3RvcCBpdCB3aGVu
IHdlIGhlYXIgYmFjayBmcm9tIHRoZSBXZWJQcm9jZXNzCiAgICAgICAgIC8vIGluIGRpZFVwZGF0
ZUJhY2tpbmdTdG9yZVN0YXRlLgotICAgICAgICBwcm9jZXNzKCkucmVzcG9uc2l2ZW5lc3NUaW1l
cigpLnN0YXJ0KCk7CisgICAgICAgIHByb2Nlc3MoKS5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIo
KTsKICAgICB9CiAKICAgICBpZiAobV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVCYWNraW5nU3RvcmVT
dGF0ZSAmJiAhbV9sYXllclRyZWVDb250ZXh0LmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCmluZGV4IDg5MjIzZDg1ODNh
MmIxZWE4ZTljOWMwMWUyNDM1MjUxYTUyMDg4YjguLjQxZTJiMGIzZThhNWU4MDBmYTA2MjExNDI4
MzY5YTk3Y2Y5ZDdiMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zp
c2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNp
b25hbFBhZ2VQcm94eS5jcHAKQEAgLTE4MSw3ICsxODEsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwg
V2ViQgogICAgIH0pOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVwZGF0ZUJhY2tGb3J3
YXJkTGlzdEZvclJlYXR0YWNoKFdURk1vdmUoaXRlbVN0YXRlcykpKTsKICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24ubmF2aWdhdGlvbklE
KCksIGl0ZW0uaXRlbUlEKCksICpuYXZpZ2F0aW9uLmJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSgp
LCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJz
aXRlUG9saWNpZXMpKSk7Ci0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3Rh
cnQoKTsKKyAgICBtX3Byb2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogfQogCiBp
bmxpbmUgYm9vbCBQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dChGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiBuYXZpZ2F0aW9uSUQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBhNWUzNmU0YzBiMzM3
NmIzOTU1ZDY0MDQ0ZDcyMWMwMmJmMjY5MjM3Li41NzQxNzM3M2QzOWJkMWE1NDVkMjliYmY5YjVm
ODk3ZTQxNDRjZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTk3NSw3ICs5NzUsNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6
OmxhdW5jaFByb2Nlc3NGb3JSZWxvYWQoKQogCiAgICAgLy8gV2UgYWxsb3cgc3RhbGUgY29udGVu
dCB3aGVuIHJlbG9hZGluZyBhIFdlYlByb2Nlc3MgdGhhdCdzIGJlZW4ga2lsbGVkIG9yIGNyYXNo
ZWQuCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZp
Z2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCkt
Pml0ZW1JRCgpLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZDo6Tm8sIFdURjo6bnVsbG9wdCkpOwotICAgIG1fcHJvY2Vzcy0+cmVz
cG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CisgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNp
dmVuZXNzVGltZXIoKTsKIAogICAgIHJldHVybiBuYXZpZ2F0aW9uOwogfQpAQCAtOTk4LDcgKzk5
OCw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bGF1bmNoUHJvY2Vz
c1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0CiAgICAgYXV0byBuYXZpZ2F0aW9uID0gbV9u
YXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUJhY2tGb3J3YXJkTmF2aWdhdGlvbihpdGVtLCBtX2JhY2tG
b3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSwgRnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3
YXJkKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0o
bmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCksIGl0ZW0uaXRlbUlEKCksIEZyYW1lTG9hZFR5cGU6
OkluZGV4ZWRCYWNrRm9yd2FyZCwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObywgV1RG
OjpudWxsb3B0KSk7Ci0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQo
KTsKKyAgICBtX3Byb2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogCiAgICAgcmV0
dXJuIG5hdmlnYXRpb247CiB9CkBAIC0xMjg4LDcgKzEyODgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2NlcwogI2Vsc2UKICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2Fk
UmVxdWVzdChsb2FkUGFyYW1ldGVycyksIHdlYlBhZ2VJRCk7CiAjZW5kaWYKLSAgICBwcm9jZXNz
LT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKKyAgICBwcm9jZXNzLT5zdGFydFJlc3Bv
bnNpdmVuZXNzVGltZXIoKTsKIH0KIAogUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVBy
b3h5Ojpsb2FkRmlsZShjb25zdCBTdHJpbmcmIGZpbGVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYg
cmVzb3VyY2VEaXJlY3RvcnlVUkxTdHJpbmcsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKQEAgLTEz
NDMsNyArMTM0Myw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9h
ZEZpbGUoY29uc3QgU3RyaW5nJiBmaWxlVVJMU3RyaW5nLCBjb25zCiAjZWxzZQogICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRSZXF1ZXN0KGxvYWRQYXJhbWV0ZXJzKSk7CiAjZW5kaWYK
LSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOworICAgIG1fcHJv
Y2Vzcy0+c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAKICAgICByZXR1cm4gbmF2aWdhdGlv
bjsKIH0KQEAgLTEzODksNyArMTM4OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdp
dGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKIAogICAg
IHByb2Nlc3MtPmFzc3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwoKnRoaXMsIGJhc2VVUkwpOwogICAg
IHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWREYXRhKGxvYWRQYXJhbWV0ZXJz
KSwgd2ViUGFnZUlEKTsKLSAgICBwcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQo
KTsKKyAgICBwcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIH0KIAogdm9pZCBX
ZWJQYWdlUHJveHk6OmxvYWRBbHRlcm5hdGVIVE1MKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
aHRtbERhdGEsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFVSTCYgYmFzZVVSTCwgY29u
c3QgVVJMJiB1bnJlYWNoYWJsZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQpAQCAtMTQzMiw3
ICsxNDMyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRBbHRlcm5hdGVIVE1MKGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgaHRtbERhdGEsIGNvbnN0IFMKICAgICBtX3Byb2Nlc3MtPmFzc3Vt
ZVJlYWRBY2Nlc3NUb0Jhc2VVUkwoKnRoaXMsIGJhc2VVUkwpOwogICAgIG1fcHJvY2Vzcy0+YXNz
dW1lUmVhZEFjY2Vzc1RvQmFzZVVSTCgqdGhpcywgdW5yZWFjaGFibGVVUkwpOwogICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRBbHRlcm5hdGVIVE1MKGxvYWRQYXJhbWV0ZXJzKSk7Ci0g
ICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKKyAgICBtX3Byb2Nl
c3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
bG9hZFdlYkFyY2hpdmVEYXRhKEFQSTo6RGF0YSogd2ViQXJjaGl2ZURhdGEsIEFQSTo6T2JqZWN0
KiB1c2VyRGF0YSkKQEAgLTE0NTksNyArMTQ1OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2Fk
V2ViQXJjaGl2ZURhdGEoQVBJOjpEYXRhKiB3ZWJBcmNoaXZlRGF0YSwgQVBJOjpPYmplY3QqIHVz
CiAgICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhsb2FkUGFyYW1ldGVycyk7CiAKICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkRGF0YShsb2FkUGFyYW1ldGVycykpOwotICAgIG1f
cHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CisgICAgbV9wcm9jZXNzLT5z
dGFydFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6Om5hdmln
YXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBJ
bnRQb2ludCBkb2N1bWVudFBvaW50LCBJbnRQb2ludCBzY3JlZW5Qb2ludCkKQEAgLTE0NzgsNyAr
MTQ3OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0
ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybFN0cmluZywKICAgICAgICAgbGF1bmNoUHJvY2VzcyhS
ZWdpc3RyYWJsZURvbWFpbiB7IFVSTChVUkwoKSwgdXJsU3RyaW5nKSB9LCBQcm9jZXNzTGF1bmNo
UmVhc29uOjpJbml0aWFsUHJvY2Vzcyk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpO
YXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayh1cmxTdHJpbmcsIGRvY3VtZW50UG9p
bnQsIHNjcmVlblBvaW50KSk7Ci0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCku
c3RhcnQoKTsKKyAgICBtX3Byb2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogfQog
CiB2b2lkIFdlYlBhZ2VQcm94eTo6c3RvcExvYWRpbmcoKQpAQCAtMTQ5NSw3ICsxNDk1LDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnN0b3BMb2FkaW5nKCkKICAgICAgICAgbV9wcm92aXNpb25hbFBh
Z2UtPmNhbmNlbCgpOwogICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZSA9IG51bGxwdHI7CiAgICAg
fQotICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CisgICAgbV9w
cm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIH0KIAogUmVmUHRyPEFQSTo6TmF2
aWdhdGlvbj4gV2ViUGFnZVByb3h5OjpyZWxvYWQoT3B0aW9uU2V0PFdlYkNvcmU6OlJlbG9hZE9w
dGlvbj4gb3B0aW9ucykKQEAgLTE1MjYsNyArMTUyNiw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRp
b24+IFdlYlBhZ2VQcm94eTo6cmVsb2FkKE9wdGlvblNldDxXZWJDb3JlOjpSZWxvYWRPcHRpb24+
IG9wCiAgICAgICAgIG5hdmlnYXRpb24tPnNldFVzZXJDb250ZW50RXh0ZW5zaW9uc0VuYWJsZWQo
ZmFsc2UpOwogCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UmVsb2FkKG5hdmlnYXRpb24t
Pm5hdmlnYXRpb25JRCgpLCBvcHRpb25zLnRvUmF3KCksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUp
KTsKLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOworICAgIG1f
cHJvY2Vzcy0+c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAKICNpZiBFTkFCTEUoU1BFRUNI
X1NZTlRIRVNJUykKICAgICByZXNldFNwZWVjaFN5bnRoZXNpemVyKCk7CkBAIC0xNTk1LDcgKzE1
OTUsNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OmdvVG9CYWNrRm9y
d2FyZEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbQogICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRQ
ZW5kaW5nQVBJUmVxdWVzdCh0cmFuc2FjdGlvbiwgeyBuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+
bmF2aWdhdGlvbklEKCkgOiAwLCBpdGVtLnVybCgpIH0pOwogCiAgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2
aWdhdGlvbklEKCkgOiAwLCBpdGVtLml0ZW1JRCgpLCBmcmFtZUxvYWRUeXBlLCBTaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQ6Ok5vLCBXVEY6Om51bGxvcHQpKTsKLSAgICBtX3Byb2Nlc3MtPnJl
c3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOworICAgIG1fcHJvY2Vzcy0+c3RhcnRSZXNwb25z
aXZlbmVzc1RpbWVyKCk7CiAKICAgICByZXR1cm4gbmF2aWdhdGlvbjsKIH0KQEAgLTE5NDksNyAr
MTk0OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaXNwYXRjaEFjdGl2aXR5U3RhdGVDaGFuZ2Uo
KQogICAgICAgICAgICAgLy8gSWYgd2UndmUgc3RhcnRlZCB0aGUgcmVzcG9uc2l2ZW5lc3MgdGlt
ZXIgYXMgcGFydCBvZiB0ZWxsaW5nIHRoZSB3ZWIgcHJvY2VzcyB0byB1cGRhdGUgdGhlIGJhY2tp
bmcgc3RvcmUKICAgICAgICAgICAgIC8vIHN0YXRlLCBpdCBtaWdodCBub3Qgc2VuZCBiYWNrIGEg
cmVwbHkgKHNpbmNlIGl0IHdvbid0IHBhaW50IGFueXRoaW5nIGlmIHRoZSB3ZWIgcGFnZSBpcyBo
aWRkZW4pIHNvIHdlCiAgICAgICAgICAgICAvLyBzdG9wIHRoZSB1bnJlc3BvbnNpdmVuZXNzIHRp
bWVyIGhlcmUuCi0gICAgICAgICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5z
dG9wKCk7CisgICAgICAgICAgICBtX3Byb2Nlc3MtPnN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCk7
CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTI0NzksMTAgKzI0NzksMTAgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnByb2Nlc3NOZXh0UXVldWVkTW91c2VFdmVudCgpCiAKICAgICBXZWJFdmVudDo6VHlw
ZSBldmVudFR5cGUgPSBldmVudC50eXBlKCk7CiAgICAgaWYgKGV2ZW50VHlwZSA9PSBXZWJFdmVu
dDo6TW91c2VEb3duIHx8IGV2ZW50VHlwZSA9PSBXZWJFdmVudDo6TW91c2VGb3JjZUNoYW5nZWQg
fHwgZXZlbnRUeXBlID09IFdlYkV2ZW50OjpNb3VzZUZvcmNlRG93bikKLSAgICAgICAgbV9wcm9j
ZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnRXaXRoTGF6eVN0b3AoKTsKKyAgICAgICAg
bV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIoV2ViUHJvY2Vzc1Byb3h5OjpVc2VM
YXp5U3RvcDo6WWVzKTsKICAgICBlbHNlIGlmIChldmVudFR5cGUgIT0gV2ViRXZlbnQ6Ok1vdXNl
TW92ZSkgewogICAgICAgICAvLyBOT1RFOiBUaGlzIGRvZXMgbm90IHN0YXJ0IHRoZSByZXNwb25z
aXZlbmVzcyB0aW1lciBiZWNhdXNlIG1vdXNlIG1vdmUgc2hvdWxkIG5vdCBpbmRpY2F0ZSBpbnRl
cmFjdGlvbi4KLSAgICAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQo
KTsKKyAgICAgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKICAgICB9
CiAKICAgICBMT0coTW91c2VIYW5kbGluZywgIlVJUHJvY2Vzczogc2VudCBtb3VzZSBldmVudCAl
cyAocXVldWUgc2l6ZSAlenUpIiwgd2ViTW91c2VFdmVudFR5cGVTdHJpbmcoZXZlbnRUeXBlKSwg
bV9tb3VzZUV2ZW50UXVldWUuc2l6ZSgpKTsKQEAgLTI2NzEsMTEgKzI2NzEsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6aGFuZGxlS2V5Ym9hcmRFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50JiBldmVudCkKIAogICAgIG1fa2V5RXZlbnRRdWV1ZS5hcHBlbmQoZXZlbnQpOwogCi0gICAg
UmVzcG9uc2l2ZW5lc3NUaW1lciYgcmVzcG9uc2l2ZW5lc3NUaW1lciA9IG1fcHJvY2Vzcy0+cmVz
cG9uc2l2ZW5lc3NUaW1lcigpOwotICAgIGlmIChldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6Oktl
eURvd24pCi0gICAgICAgIHJlc3BvbnNpdmVuZXNzVGltZXIuc3RhcnRXaXRoTGF6eVN0b3AoKTsK
LSAgICBlbHNlCi0gICAgICAgIHJlc3BvbnNpdmVuZXNzVGltZXIuc3RhcnQoKTsKKyAgICBtX3By
b2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcihldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6
OktleURvd24gPyBXZWJQcm9jZXNzUHJveHk6OlVzZUxhenlTdG9wOjpZZXMgOiBXZWJQcm9jZXNz
UHJveHk6OlVzZUxhenlTdG9wOjpObyk7CiAKICAgICBpZiAobV9rZXlFdmVudFF1ZXVlLnNpemUo
KSA9PSAxKSB7IC8vIE90aGVyd2lzZSwgc2VudCBmcm9tIERpZFJlY2VpdmVFdmVudCBtZXNzYWdl
IGhhbmRsZXIuCiAgICAgICAgIExPRyhLZXlIYW5kbGluZywgIiBVSSBwcm9jZXNzOiBzZW50IGtl
eUV2ZW50IGZyb20gaGFuZGxlS2V5Ym9hcmRFdmVudCIpOwpAQCAtMjg0NiwxMSArMjg0Miw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgTmF0aXZlV2ViR2Vz
dHVyZUV2ZW50JiBldmVudCkKICAgICBtX2dlc3R1cmVFdmVudFF1ZXVlLmFwcGVuZChldmVudCk7
CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIGRvaW5nIHNvbWUgY29hbGVzY2luZyBoZXJlLgogCi0g
ICAgUmVzcG9uc2l2ZW5lc3NUaW1lciYgcmVzcG9uc2l2ZW5lc3NUaW1lciA9IG1fcHJvY2Vzcy0+
cmVzcG9uc2l2ZW5lc3NUaW1lcigpOwotICAgIGlmIChldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6
Okdlc3R1cmVTdGFydCB8fCBldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6Okdlc3R1cmVDaGFuZ2Up
Ci0gICAgICAgIHJlc3BvbnNpdmVuZXNzVGltZXIuc3RhcnRXaXRoTGF6eVN0b3AoKTsKLSAgICBl
bHNlCi0gICAgICAgIHJlc3BvbnNpdmVuZXNzVGltZXIuc3RhcnQoKTsKKyAgICBtX3Byb2Nlc3Mt
PnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigoZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpHZXN0
dXJlU3RhcnQgfHwgZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpHZXN0dXJlQ2hhbmdlKSA/IFdl
YlByb2Nlc3NQcm94eTo6VXNlTGF6eVN0b3A6OlllcyA/IFdlYlByb2Nlc3NQcm94eTo6VXNlTGF6
eVN0b3A6Ok5vKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6R2VzdHVy
ZUV2ZW50KG1fd2ViUGFnZUlELCBldmVudCksIDApOwogfQpAQCAtMjkyMSw3ICsyOTEzLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVByZXZlbnRhYmxlVG91Y2hFdmVudChOYXRpdmVXZWJU
b3VjaEV2ZW50JiBldmVudCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcHJvY2Vz
cy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CisgICAgbV9wcm9jZXNzLT5zdGFydFJl
c3BvbnNpdmVuZXNzVGltZXIoKTsKICAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKICAgICBib29s
IHJlcGx5UmVjZWl2ZWQgPSBzZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hFdmVudFN5
bmMoZXZlbnQpLCBNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hFdmVudFN5bmM6OlJlcGx5KGhhbmRs
ZWQpLCAxX3MsIElQQzo6U2VuZFN5bmNPcHRpb246OkZvcmNlRGlzcGF0Y2hXaGVuRGVzdGluYXRp
b25Jc1dhaXRpbmdGb3JVbmJvdW5kZWRTeW5jUmVwbHkpOwogICAgIC8vIElmIHRoZSBzeW5jIHJl
cXVlc3QgaGFzIHRpbWVkIG91dCwgd2Ugc2hvdWxkIGNvbnNpZGVyIHRoZSBldmVudCBoYW5kbGVk
LiBUaGUgV2ViIFByb2Nlc3MgaXMgdG9vIGJ1c3kgdG8gYW5zd2VyIGFueSBxdWVzdGlvbnMsIHNv
IHRoZSBkZWZhdWx0IGFjdGlvbiBpcyBhbHNvIGxpa2VseSB0byBoYXZlIGlzc3Vlcy4KQEAgLTI5
MzMsNyArMjkyNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVQcmV2ZW50YWJsZVRvdWNo
RXZlbnQoTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgICAgIHBhZ2VDbGllbnQoKS5k
b25lRGVmZXJyaW5nTmF0aXZlR2VzdHVyZXMoaGFuZGxlZCk7CiAgICAgZWxzZSBpZiAoaGFuZGxl
ZCkKICAgICAgICAgbV9oYW5kbGVkU3luY2hyb25vdXNUb3VjaEV2ZW50V2hpbGVEaXNwYXRjaGlu
Z1ByZXZlbnRhYmxlVG91Y2hTdGFydCA9IHRydWU7Ci0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZl
bmVzc1RpbWVyKCkuc3RvcCgpOworICAgIG1fcHJvY2Vzcy0+c3RvcFJlc3BvbnNpdmVuZXNzVGlt
ZXIoKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0UG90ZW50aWFsVGFwU2VjdXJpdHlP
cmlnaW4oKQpAQCAtMjk3Nyw3ICsyOTY5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVRv
dWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgLy8gd2UgZG8g
bm90IHNlbmQgYW55IG9mIHRoZSBldmVudHMgdG8gdGhlIHBhZ2UgZXZlbiBpZiBpcyBoYXMgbGlz
dGVuZXJzLgogICAgIGlmICghbV9pc1BhZ2VTdXNwZW5kZWQpIHsKICAgICAgICAgbV90b3VjaEV2
ZW50UXVldWUuYXBwZW5kKGV2ZW50KTsKLSAgICAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVz
c1RpbWVyKCkuc3RhcnQoKTsKKyAgICAgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNz
VGltZXIoKTsKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hFdmVudChldmVu
dCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChtX3RvdWNoRXZlbnRRdWV1ZS5pc0VtcHR5
KCkpIHsKQEAgLTU0NTQsNyArNTQ0Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2Ny
aXB0QWxlcnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFNlY3VyaXR5T3JpZ2luRGF0CiAjZW5k
aWYKIAogICAgIC8vIFNpbmNlIHJ1bkphdmFTY3JpcHRBbGVydCgpIGNhbiBzcGluIGEgbmVzdGVk
IHJ1biBsb29wIHdlIG5lZWQgdG8gdHVybiBvZmYgdGhlIHJlc3BvbnNpdmVuZXNzIHRpbWVyLgot
ICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0b3AoKTsKKyAgICBtX3Byb2Nl
c3MtPnN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAKICAgICBpZiAobV9jb250cm9sbGVkQnlB
dXRvbWF0aW9uKSB7CiAgICAgICAgIGlmIChhdXRvKiBhdXRvbWF0aW9uU2Vzc2lvbiA9IHByb2Nl
c3MoKS5wcm9jZXNzUG9vbCgpLmF1dG9tYXRpb25TZXNzaW9uKCkpCkBAIC01NDczLDcgKzU0NjUs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFNlY3VyaXR5T3JpZ2luRAogI2VuZGlmCiAKICAgICAvLyBTaW5jZSBydW5K
YXZhU2NyaXB0Q29uZmlybSgpIGNhbiBzcGluIGEgbmVzdGVkIHJ1biBsb29wIHdlIG5lZWQgdG8g
dHVybiBvZmYgdGhlIHJlc3BvbnNpdmVuZXNzIHRpbWVyLgotICAgIG1fcHJvY2Vzcy0+cmVzcG9u
c2l2ZW5lc3NUaW1lcigpLnN0b3AoKTsKKyAgICBtX3Byb2Nlc3MtPnN0b3BSZXNwb25zaXZlbmVz
c1RpbWVyKCk7CiAKICAgICBpZiAobV9jb250cm9sbGVkQnlBdXRvbWF0aW9uKSB7CiAgICAgICAg
IGlmIChhdXRvKiBhdXRvbWF0aW9uU2Vzc2lvbiA9IHByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmF1
dG9tYXRpb25TZXNzaW9uKCkpCkBAIC01NDkyLDcgKzU0ODQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU2VjdXJpdHlP
cmlnaW5EYQogICAgIGV4aXRGdWxsc2NyZWVuSW1tZWRpYXRlbHkoKTsKICNlbmRpZgogICAgIC8v
IFNpbmNlIHJ1bkphdmFTY3JpcHRQcm9tcHQoKSBjYW4gc3BpbiBhIG5lc3RlZCBydW4gbG9vcCB3
ZSBuZWVkIHRvIHR1cm4gb2ZmIHRoZSByZXNwb25zaXZlbmVzcyB0aW1lci4KLSAgICBtX3Byb2Nl
c3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdG9wKCk7CisgICAgbV9wcm9jZXNzLT5zdG9wUmVz
cG9uc2l2ZW5lc3NUaW1lcigpOwogCiAgICAgaWYgKG1fY29udHJvbGxlZEJ5QXV0b21hdGlvbikg
ewogICAgICAgICBpZiAoYXV0byogYXV0b21hdGlvblNlc3Npb24gPSBwcm9jZXNzKCkucHJvY2Vz
c1Bvb2woKS5hdXRvbWF0aW9uU2Vzc2lvbigpKQpAQCAtNTY1OSw3ICs1NjUxLDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgU2VjdXJpdHkKICAgICB9CiAKICAgICAvLyBTaW5jZSBydW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwoKSBjYW4gc3BpbiBhIG5lc3RlZCBydW4gbG9vcCB3ZSBuZWVkIHRvIHR1cm4g
b2ZmIHRoZSByZXNwb25zaXZlbmVzcyB0aW1lciBhbmQgdGhlIHRyeUNsb3NlIHRpbWVyLgotICAg
IG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0b3AoKTsKKyAgICBtX3Byb2Nlc3Mt
PnN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAgICAgbV90cnlDbG9zZVRpbWVvdXRUaW1lci5z
dG9wKCk7CiAgICAgbV91aUNsaWVudC0+cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCp0aGlz
LCBtZXNzYWdlLCBmcmFtZSwgV1RGTW92ZShzZWN1cml0eU9yaWdpbiksIFdURk1vdmUocmVwbHkp
KTsKIH0KQEAgLTU3MDYsNyArNTY5OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5PcGVuUGFu
ZWwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyCiAgICAg
fQogCiAgICAgLy8gU2luY2UgcnVuT3BlblBhbmVsKCkgY2FuIHNwaW4gYSBuZXN0ZWQgcnVuIGxv
b3Agd2UgbmVlZCB0byB0dXJuIG9mZiB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIuCi0gICAgbV9w
cm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RvcCgpOworICAgIG1fcHJvY2Vzcy0+c3Rv
cFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIAogICAgIGlmICghbV91aUNsaWVudC0+cnVuT3BlblBh
bmVsKCp0aGlzLCBmcmFtZSwgV1RGTW92ZShmcmFtZVNlY3VyaXR5T3JpZ2luKSwgcGFyYW1ldGVy
cy5wdHIoKSwgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5nZXQoKSkpIHsKICAgICAgICAgaWYg
KCFwYWdlQ2xpZW50KCkuaGFuZGxlUnVuT3BlblBhbmVsKHRoaXMsIGZyYW1lLCBwYXJhbWV0ZXJz
LnB0cigpLCBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmdldCgpKSkKQEAgLTYyOTQsNyArNjI4
Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJl
Y3QsIHVpbnQ2NF90IHRleHREaXJlY3Rpb24sIGNvCiAgICAgICAgIHJldHVybjsKIAogICAgIC8v
IFNpbmNlIHNob3dQb3B1cE1lbnUoKSBjYW4gc3BpbiBhIG5lc3RlZCBydW4gbG9vcCB3ZSBuZWVk
IHRvIHR1cm4gb2ZmIHRoZSByZXNwb25zaXZlbmVzcyB0aW1lci4KLSAgICBtX3Byb2Nlc3MtPnJl
c3BvbnNpdmVuZXNzVGltZXIoKS5zdG9wKCk7CisgICAgbV9wcm9jZXNzLT5zdG9wUmVzcG9uc2l2
ZW5lc3NUaW1lcigpOwogCiAgICAgLy8gU2hvd2luZyBhIHBvcHVwIG1lbnUgcnVucyBhIG5lc3Rl
ZCBydW5sb29wLCB3aGljaCBjYW4gaGFuZGxlIG1lc3NhZ2VzIHRoYXQgY2F1c2UgfHRoaXN8IHRv
IGdldCBjbG9zZWQuCiAgICAgUmVmPFdlYlBhZ2VQcm94eT4gcHJvdGVjdCgqdGhpcyk7CkBAIC02
MzM3LDcgKzYzMjksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0NvbnRleHRNZW51KENvbnRl
eHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0TWVudUNvbnRleHREYQogICAgIG1fYWN0aXZlQ29u
dGV4dE1lbnUgPSBwYWdlQ2xpZW50KCkuY3JlYXRlQ29udGV4dE1lbnVQcm94eSgqdGhpcywgV1RG
TW92ZShjb250ZXh0TWVudUNvbnRleHREYXRhKSwgdXNlckRhdGEpOwogCiAgICAgLy8gU2luY2Ug
c2hvd0NvbnRleHRNZW51KCkgY2FuIHNwaW4gYSBuZXN0ZWQgcnVuIGxvb3Agd2UgbmVlZCB0byB0
dXJuIG9mZiB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIuCi0gICAgbV9wcm9jZXNzLT5yZXNwb25z
aXZlbmVzc1RpbWVyKCkuc3RvcCgpOworICAgIG1fcHJvY2Vzcy0+c3RvcFJlc3BvbnNpdmVuZXNz
VGltZXIoKTsKIAogICAgIC8vIG1fYWN0aXZlQ29udGV4dE1lbnUgbWlnaHQgZ2V0IGNsZWFyZWQg
aWYgV2ViUGFnZVByb3h5IGNvZGUgaXMgcmUtZW50ZXJlZCBmcm9tIHRoZSBtZW51IHJ1bmxvb3Ag
b3IgZGVsZWdhdGVzLgogICAgIFJlZjxXZWJDb250ZXh0TWVudVByb3h5PiBwcm90ZWN0b3IoKm1f
YWN0aXZlQ29udGV4dE1lbnUpOwpAQCAtNjY4NCw3ICs2Njc2LDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFJlY2VpdmVFdmVudCh1aW50MzJfdCBvcGFxdWVUeXBlLCBib29sIGhhbmRsZWQpCiAg
ICAgY2FzZSBXZWJFdmVudDo6R2VzdHVyZUNoYW5nZToKICAgICBjYXNlIFdlYkV2ZW50OjpHZXN0
dXJlRW5kOgogI2VuZGlmCi0gICAgICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigp
LnN0b3AoKTsKKyAgICAgICAgbV9wcm9jZXNzLT5zdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcigpOwog
ICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTc5MTksNyArNzkxMSw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkcmF3Rm9vdGVyKFdlYkZyYW1lUHJveHkmIGZyYW1lLCBGbG9hdFJlY3QmJiByZWN0
KQogdm9pZCBXZWJQYWdlUHJveHk6OnJ1bk1vZGFsKCkKIHsKICAgICAvLyBTaW5jZSBydW5Nb2Rh
bCgpIGNhbiAoYW5kIHByb2JhYmx5IHdpbGwpIHNwaW4gYSBuZXN0ZWQgcnVuIGxvb3Agd2UgbmVl
ZCB0byB0dXJuIG9mZiB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIuCi0gICAgbV9wcm9jZXNzLT5y
ZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RvcCgpOworICAgIG1fcHJvY2Vzcy0+c3RvcFJlc3BvbnNp
dmVuZXNzVGltZXIoKTsKIAogICAgIC8vIE91ciBDb25uZWN0aW9uJ3MgcnVuIGxvb3AgbWlnaHQg
aGF2ZSBtb3JlIG1lc3NhZ2VzIHdhaXRpbmcgdG8gYmUgaGFuZGxlZCBhZnRlciB0aGlzIFJ1bk1v
ZGFsIG1lc3NhZ2UuCiAgICAgLy8gVG8gbWFrZSBzdXJlIHRoZXkgYXJlIGhhbmRsZWQgaW5zaWRl
IG9mIHRoZSBuZXN0ZWQgbW9kYWwgcnVuIGxvb3Agd2UgbXVzdCBmaXJzdCBzaWduYWwgdGhlIENv
bm5lY3Rpb24ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
aW5kZXggZTI3Y2QxNjc4YTdjNmNiMzcxZTk0Y2UwNGRiN2I2MDU1NTkwZmE4Zi4uNzE3ZDNmMWYw
ODc5NTk5MzUyZmI5MmE4OTg5ZDVhMmE1NGY1NDI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC04NjMsNyArODYzLDI2IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5OjpkaWRDaGFuZ2VJc1Jlc3BvbnNpdmUoKQogCiBib29sIFdlYlByb2Nlc3NQcm94
eTo6bWF5QmVjb21lVW5yZXNwb25zaXZlKCkKIHsKLSAgICByZXR1cm4gIXBsYXRmb3JtSXNCZWlu
Z0RlYnVnZ2VkKCk7CisjaWYgIWRlZmluZWQoTkRFQlVHKSB8fCBBU0FOX0VOQUJMRUQKKyAgICAv
LyBEaXNhYmxlIHJlc3BvbnNpdmVuZXNzIGNoZWNrcyBpbiBzbG93IGJ1aWxkcyB0byBhdm9pZCBm
YWxzZSBwb3NpdGl2ZXMuCisgICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKKyAgICBpZiAocGxhdGZv
cm1Jc0JlaW5nRGVidWdnZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc3RhdGlj
IGJvb2wgaXNMaWJnbWFsbG9jRW5hYmxlZCA9IFtdIHsKKyAgICAgICAgY2hhciogdmFyaWFibGUg
PSBnZXRlbnYoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIpOworICAgICAgICBpZiAoIXZhcmlhYmxl
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIXN0cnN0cih2YXJpYWJs
ZSwgImxpYmdtYWxsb2MiKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfSgpOworICAgIGlmIChpc0xpYmdtYWxsb2NFbmFibGVkKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgogfQogCiB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNo
ZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKQEAg
LTg5Miw2ICs5MTEsMTEgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGlu
ZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbm5lY3QKIAogICAgIHVuYmxvY2tB
Y2Nlc3NpYmlsaXR5U2VydmVySWZOZWVkZWQoKTsKICNlbmRpZgorCisgICAgaWYgKG1fc2hvdWxk
U3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyV2hlbkxhdW5jaGVkKSB7CisgICAgICAgIGF1dG8gdXNl
TGF6eVN0b3AgPSAqc3RkOjpleGNoYW5nZShtX3Nob3VsZFN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1l
cldoZW5MYXVuY2hlZCwgV1RGOjpudWxsb3B0KTsKKyAgICAgICAgc3RhcnRSZXNwb25zaXZlbmVz
c1RpbWVyKHVzZUxhenlTdG9wKTsKKyAgICB9CiB9CiAKIFdlYkZyYW1lUHJveHkqIFdlYlByb2Nl
c3NQcm94eTo6d2ViRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIGNvbnN0CkBAIC0xMTIy
LDYgKzExNDYsMTkgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnN0b3BSZXNwb25zaXZlbmVzc1Rp
bWVyKCkKICAgICByZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RvcCgpOwogfQogCit2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyKFVzZUxhenlTdG9wIHVzZUxhenlT
dG9wKQoreworICAgIGlmIChpc0xhdW5jaGluZygpKSB7CisgICAgICAgIG1fc2hvdWxkU3RhcnRS
ZXNwb25zaXZlbmVzc1RpbWVyV2hlbkxhdW5jaGVkID0gdXNlTGF6eVN0b3A7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAodXNlTGF6eVN0b3AgPT0gVXNlTGF6eVN0b3A6OlllcykK
KyAgICAgICAgcmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0V2l0aExhenlTdG9wKCk7CisgICAg
ZWxzZQorICAgICAgICByZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKK30KKwogdm9pZCBX
ZWJQcm9jZXNzUHJveHk6OmVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkKIHsKICAgICBpZiAoc3Rh
dGUoKSAhPSBTdGF0ZTo6UnVubmluZykKQEAgLTEzNDIsNyArMTM3OSw3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5Ojppc1Jlc3BvbnNpdmUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGlzV2Vi
UHJvY2Vzc1Jlc3BvCiAgICAgaWYgKGNhbGxiYWNrKQogICAgICAgICBtX2lzUmVzcG9uc2l2ZUNh
bGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjYWxsYmFjaykpOwogCi0gICAgcmVzcG9uc2l2ZW5lc3NU
aW1lcigpLnN0YXJ0KCk7CisgICAgc3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6TWFpblRocmVhZFBpbmcoKSwgMCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMTMyZGZiMzhjZjc2NTYz
MWUwNzFmMzVjMjUzMmNiOWZhMjgzYzhiMy4uZjEzMWM1YTA4YzBmZGQ1OGRlNWU5MTM2ZDYzMjQ2
NjVlZGIwY2M3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
QEAgLTE3NSw3ICsxNzUsNiBAQCBwdWJsaWM6CiAKICAgICBSZWZQdHI8QVBJOjpVc2VySW5pdGlh
dGVkQWN0aW9uPiB1c2VySW5pdGlhdGVkQWN0aXZpdHkodWludDY0X3QpOwogCi0gICAgUmVzcG9u
c2l2ZW5lc3NUaW1lciYgcmVzcG9uc2l2ZW5lc3NUaW1lcigpIHsgcmV0dXJuIG1fcmVzcG9uc2l2
ZW5lc3NUaW1lcjsgfQogICAgIGJvb2wgaXNSZXNwb25zaXZlKCkgY29uc3Q7CiAKICAgICBXZWJG
cmFtZVByb3h5KiB3ZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OwpAQCAt
MjE3LDYgKzIxNiw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVxdWVzdFRlcm1pbmF0aW9uKFBy
b2Nlc3NUZXJtaW5hdGlvblJlYXNvbik7CiAKKyAgICBlbnVtIGNsYXNzIFVzZUxhenlTdG9wIDog
Ym9vbCB7IE5vLCBZZXMgfTsKKyAgICB2b2lkIHN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcihVc2VM
YXp5U3RvcCA9IFVzZUxhenlTdG9wOjpObyk7CiAgICAgdm9pZCBzdG9wUmVzcG9uc2l2ZW5lc3NU
aW1lcigpOwogCiAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiB0cmFuc2Zvcm1IYW5kbGVzVG9PYmpl
Y3RzKEFQSTo6T2JqZWN0Kik7CkBAIC00MTEsNiArNDEyLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0
YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZz4mIHBsYXRmb3JtUGF0aHNXaXRoQXNzdW1lZFJlYWRB
Y2Nlc3MoKTsKIAorICAgIFJlc3BvbnNpdmVuZXNzVGltZXImIHJlc3BvbnNpdmVuZXNzVGltZXIo
KSB7IHJldHVybiBtX3Jlc3BvbnNpdmVuZXNzVGltZXI7IH0KICAgICB2b2lkIHVwZGF0ZUJhY2tn
cm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAKICAgICB2b2lkIHByb2Nlc3NEaWRUZXJtaW5h
dGVPckZhaWxlZFRvTGF1bmNoKCk7CkBAIC01MzIsNiArNTM0LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faGFzQ29tbWl0dGVkQW55UHJvdmlzaW9uYWxMb2FkcyB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2lzUHJld2FybWVkOwogICAgIGJvb2wgbV9oYXNBdWRpYmxlV2ViUGFnZSB7IGZhbHNlIH07
CisgICAgT3B0aW9uYWw8VXNlTGF6eVN0b3A+IG1fc2hvdWxkU3RhcnRSZXNwb25zaXZlbmVzc1Rp
bWVyV2hlbkxhdW5jaGVkOwogCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5PiBtX2JhY2tncm91bmRB
Y3Rpdml0eUZvckZ1bGxzY3JlZW5Gb3JtQ29udHJvbHM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389370</attachid>
            <date>2020-01-31 10:00:08 -0800</date>
            <delta_ts>2020-01-31 10:22:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206934-20200131095841.patch</filename>
            <type>text/plain</type>
            <size>24515</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBhZWFjYTg2MDY2ZTk0NDNh
ZWRhYjY4MWQ4YzAxNDhkZGUxOGYzZWYuLjA0NmEwZGUzZmRhZDQzODdmNGY1ZTNiNGQ4ZGQyZDc2
Yzc4NjMwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMDEtMzEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbIGlPUyBdIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleS1nZW5lcmF0b3JzL3JlYWRpbmctYXV0b2lu
Y3JlbWVudC1pbmRleGVzLWN1cnNvcnMuYW55LnNlcnZpY2V3b3JrZXIuaHRtbCBpcyBmbGFreSBm
YWlsaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA2OTM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODk5MTU4MT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGbGFraW5lc3Mgd291bGQgaGFwcGVu
IHdoZW4gdGhlIHNlcnZpY2Ugd29ya2VyIHdvdWxkIHRha2UgdG9vIGxvbmcgdG8gbGF1bmNoIGFu
ZCB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIgd291bGQgZmlyZSBhbmQKKyAgICAgICAgcmVwb3J0
IHRoZSBwcm9jZXNzIGFzIHVucmVzcG9uc2l2ZSB3aGlsZSBzdGlsbCBsYXVuY2hpbmcgb3IgdmVy
eSBzaG9ydGx5IGFmdGVyLiBXaGVuIGEgc2VydmljZSB3b3JrZXIgaXMgcmVwb3J0ZWQgYXMKKyAg
ICAgICAgdW5yZXNwb25zaXZlLCB3ZSB3b3VsZCBraWxsIGl0LgorCisgICAgICAgIFRvIGFkZHJl
c3MgdGhlIGlzc3VlLCBzZXZlcmFsIGNoYW5nZXMgd2VyZSBtYWRlOgorICAgICAgICAtIFJlc3Bv
bnNpdmVuZXNzIGNoZWNrcyBhcmUgbm93IGRpc2FibGVkIGZvciBzbG93IGJ1aWxkcyAoRGVidWcs
IEFTQU4sIEd1YXJkTWFsbG9jKQorICAgICAgICAtIFdlIG9ubHkgc3RhcnQgdGhlIFJlc3BvbnNp
dmVuZXNzVGltZXIgYWZ0ZXIgdGhlIHByb2Nlc3MgaGFzIGZpbmlzaGVkIGxhdW5jaGluZyBzaW5j
ZSB0aGUgcmVzcG9uc2l2ZW5lc3MKKyAgICAgICAgICBjaGVjayByZWxpZXMgb24gSVBDIHRvIHRo
ZSBwcm9jZXNzIGFuZCB3ZSBjYW5ub3Qgc2VuZCB0aGUgSVBDIHVudGlsIGFmdGVyIHRoZSBwcm9j
ZXNzIGhhcyBsYXVuY2hlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3M6OnNlbmRVcGRhdGVCYWNr
aW5nU3RvcmVTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9y
d2FyZEl0ZW0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3NGb3JSZWxvYWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3NXaXRoSXRlbSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZEZpbGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRBbHRlcm5hdGVIVE1MKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkV2ViQXJjaGl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6Om5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdG9wTG9hZGluZyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVsb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojpnb1RvQmFja0ZvcndhcmRJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
aXNwYXRjaEFjdGl2aXR5U3RhdGVDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OnByb2Nlc3NOZXh0UXVldWVkTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpoYW5kbGVQcmV2ZW50YWJsZVRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmhhbmRsZVRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnJ1bkphdmFTY3JpcHRBbGVydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVu
SmF2YVNjcmlwdENvbmZpcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1bkph
dmFTY3JpcHRQcm9tcHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVu
T3BlblBhbmVsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjptYXlCZWNvbWVVbnJlc3BvbnNpdmUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVy
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojppc1Jlc3BvbnNpdmUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpyZXNwb25zaXZlbmVzc1RpbWVyKToKKwogMjAyMC0wMS0zMSAgQnJlbnQg
RnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjUx
NTExKTogW2lPU10gSERSIFBsYXliYWNrIGJyb2tlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0
ZWRHcmFwaGljcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcAppbmRleCA3MWM4OWE5
OGVkMmNlZmI5ZmU3NmVhMTY4NTZiOGJmOGY5ZjQ0Njg3Li43OWY4MjljZTM3MmE0MzVlZDlmNjM0
ZGY3OTU5MWRkZTU4ZjUyMGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0RyYXdp
bmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcApAQCAtMzE5LDcgKzMxOSw3IEBAIHZv
aWQgRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3M6OnNlbmRVcGRhdGVCYWNraW5n
U3RvcmVTdGF0ZShSZXNwb25kSW1tCiAgICAgaWYgKG1faXNXYWl0aW5nRm9yRGlkVXBkYXRlQmFj
a2luZ1N0b3JlU3RhdGUpIHsKICAgICAgICAgLy8gU3RhcnQgdGhlIHJlc3BvbnNpdmVuZXNzIHRp
bWVyLiBXZSB3aWxsIHN0b3AgaXQgd2hlbiB3ZSBoZWFyIGJhY2sgZnJvbSB0aGUgV2ViUHJvY2Vz
cwogICAgICAgICAvLyBpbiBkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZS4KLSAgICAgICAgcHJv
Y2VzcygpLnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOworICAgICAgICBwcm9jZXNzKCku
c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAgICAgfQogCiAgICAgaWYgKG1faXNXYWl0aW5n
Rm9yRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUgJiYgIW1fbGF5ZXJUcmVlQ29udGV4dC5pc0Vt
cHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFs
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmNwcAppbmRleCBhNGJmY2JmMjNjODExNTRkYzE2MzEyODQwZDEwMTM3MGJkZTk1MjFkLi41
ZmIwMDkzN2JhMWMzMmM0Y2FiZmQwYjQ0ZDMwZGYxODlhYTgyMTY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC0xODEsNyArMTgx
LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6
Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkIKICAgICB9KTsKICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpVcGRhdGVCYWNrRm9yd2FyZExpc3RGb3JSZWF0dGFjaChXVEZNb3ZlKGl0ZW1T
dGF0ZXMpKSk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRl
bShuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCBpdGVtLml0ZW1JRCgpLCAqbmF2aWdhdGlvbi5i
YWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUoKSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkOjpZZXMsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSkpOwotICAgIG1fcHJvY2Vzcy0+
cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CisgICAgbV9wcm9jZXNzLT5zdGFydFJlc3Bv
bnNpdmVuZXNzVGltZXIoKTsKIH0KIAogaW5saW5lIGJvb2wgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OnZhbGlkYXRlSW5wdXQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFsPHVp
bnQ2NF90PiYgbmF2aWdhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggMzQ1OGM3YTk3MDA0MmE5MDZlZTk1ZGNhMWU4MWRmNzFkMmVlYWIzMC4uOTA0
ODA2ODhhYjhmZjdlNjAxYWZhOTZmMTkyYWY4OTU3MmQyNWNhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC05NzYsNyArOTc2LDcgQEAgUmVmUHRyPEFQSTo6
TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5OjpsYXVuY2hQcm9jZXNzRm9yUmVsb2FkKCkKIAogICAg
IC8vIFdlIGFsbG93IHN0YWxlIGNvbnRlbnQgd2hlbiByZWxvYWRpbmcgYSBXZWJQcm9jZXNzIHRo
YXQncyBiZWVuIGtpbGxlZCBvciBjcmFzaGVkLgogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCksIG1fYmFja0Zv
cndhcmRMaXN0LT5jdXJyZW50SXRlbSgpLT5pdGVtSUQoKSwgRnJhbWVMb2FkVHlwZTo6SW5kZXhl
ZEJhY2tGb3J3YXJkLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vLCBXVEY6Om51bGxv
cHQpKTsKLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOworICAg
IG1fcHJvY2Vzcy0+c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAKICAgICByZXR1cm4gbmF2
aWdhdGlvbjsKIH0KQEAgLTk5OSw3ICs5OTksNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBX
ZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3NXaXRoSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdAog
ICAgIGF1dG8gbmF2aWdhdGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVCYWNrRm9yd2Fy
ZE5hdmlnYXRpb24oaXRlbSwgbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCksIEZyYW1l
TG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpLCBpdGVt
Lml0ZW1JRCgpLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZDo6Tm8sIFdURjo6bnVsbG9wdCkpOwotICAgIG1fcHJvY2Vzcy0+cmVz
cG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CisgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNp
dmVuZXNzVGltZXIoKTsKIAogICAgIHJldHVybiBuYXZpZ2F0aW9uOwogfQpAQCAtMTI4OSw3ICsx
Mjg5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKICNlbHNlCiAgICAgcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFJlcXVlc3QobG9hZFBhcmFtZXRlcnMpLCB3ZWJQYWdl
SUQpOwogI2VuZGlmCi0gICAgcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7
CisgICAgcHJvY2Vzcy0+c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiB9CiAKIFJlZlB0cjxB
UEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZEZpbGUoY29uc3QgU3RyaW5nJiBmaWxl
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlc291cmNlRGlyZWN0b3J5VVJMU3RyaW5nLCBBUEk6
Ok9iamVjdCogdXNlckRhdGEpCkBAIC0xMzQ0LDcgKzEzNDQsNyBAQCBSZWZQdHI8QVBJOjpOYXZp
Z2F0aW9uPiBXZWJQYWdlUHJveHk6OmxvYWRGaWxlKGNvbnN0IFN0cmluZyYgZmlsZVVSTFN0cmlu
ZywgY29ucwogI2Vsc2UKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkUmVxdWVzdChs
b2FkUGFyYW1ldGVycykpOwogI2VuZGlmCi0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1Rp
bWVyKCkuc3RhcnQoKTsKKyAgICBtX3Byb2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigp
OwogCiAgICAgcmV0dXJuIG5hdmlnYXRpb247CiB9CkBAIC0xMzkwLDcgKzEzOTAsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6bG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsCiAKICAgICBwcm9jZXNzLT5hc3N1bWVSZWFkQWNjZXNzVG9CYXNl
VVJMKCp0aGlzLCBiYXNlVVJMKTsKICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpMb2FkRGF0YShsb2FkUGFyYW1ldGVycyksIHdlYlBhZ2VJRCk7Ci0gICAgcHJvY2Vzcy0+cmVz
cG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CisgICAgcHJvY2Vzcy0+c3RhcnRSZXNwb25zaXZl
bmVzc1RpbWVyKCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkQWx0ZXJuYXRlSFRNTChj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGh0bWxEYXRhLCBjb25zdCBTdHJpbmcmIGVuY29kaW5n
LCBjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0IFVSTCYgdW5yZWFjaGFibGVVUkwsIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YSkKQEAgLTE0MzMsNyArMTQzMyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojps
b2FkQWx0ZXJuYXRlSFRNTChjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGh0bWxEYXRhLCBjb25z
dCBTCiAgICAgbV9wcm9jZXNzLT5hc3N1bWVSZWFkQWNjZXNzVG9CYXNlVVJMKCp0aGlzLCBiYXNl
VVJMKTsKICAgICBtX3Byb2Nlc3MtPmFzc3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwoKnRoaXMsIHVu
cmVhY2hhYmxlVVJMKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkQWx0ZXJuYXRl
SFRNTChsb2FkUGFyYW1ldGVycykpOwotICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1l
cigpLnN0YXJ0KCk7CisgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIoKTsK
IH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRXZWJBcmNoaXZlRGF0YShBUEk6OkRhdGEqIHdl
YkFyY2hpdmVEYXRhLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCkBAIC0xNDYwLDcgKzE0NjAsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFdlYkFyY2hpdmVEYXRhKEFQSTo6RGF0YSogd2ViQXJj
aGl2ZURhdGEsIEFQSTo6T2JqZWN0KiB1cwogICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMo
bG9hZFBhcmFtZXRlcnMpOwogCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZERhdGEo
bG9hZFBhcmFtZXRlcnMpKTsKLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5z
dGFydCgpOworICAgIG1fcHJvY2Vzcy0+c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiB9CiAK
IHZvaWQgV2ViUGFnZVByb3h5OjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayhj
b25zdCBTdHJpbmcmIHVybFN0cmluZywgSW50UG9pbnQgZG9jdW1lbnRQb2ludCwgSW50UG9pbnQg
c2NyZWVuUG9pbnQpCkBAIC0xNDc5LDcgKzE0NzksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bmF2
aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcs
CiAgICAgICAgIGxhdW5jaFByb2Nlc3MoUmVnaXN0cmFibGVEb21haW4geyBVUkwoVVJMKCksIHVy
bFN0cmluZykgfSwgUHJvY2Vzc0xhdW5jaFJlYXNvbjo6SW5pdGlhbFByb2Nlc3MpOwogCiAgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TmF2aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xp
Y2sodXJsU3RyaW5nLCBkb2N1bWVudFBvaW50LCBzY3JlZW5Qb2ludCkpOwotICAgIG1fcHJvY2Vz
cy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CisgICAgbV9wcm9jZXNzLT5zdGFydFJl
c3BvbnNpdmVuZXNzVGltZXIoKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnN0b3BMb2FkaW5n
KCkKQEAgLTE0OTYsNyArMTQ5Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzdG9wTG9hZGluZygp
CiAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlLT5jYW5jZWwoKTsKICAgICAgICAgbV9wcm92aXNp
b25hbFBhZ2UgPSBudWxscHRyOwogICAgIH0KLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNz
VGltZXIoKS5zdGFydCgpOworICAgIG1fcHJvY2Vzcy0+c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVy
KCk7CiB9CiAKIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6cmVsb2FkKE9w
dGlvblNldDxXZWJDb3JlOjpSZWxvYWRPcHRpb24+IG9wdGlvbnMpCkBAIC0xNTI3LDcgKzE1Mjcs
NyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OnJlbG9hZChPcHRpb25T
ZXQ8V2ViQ29yZTo6UmVsb2FkT3B0aW9uPiBvcAogICAgICAgICBuYXZpZ2F0aW9uLT5zZXRVc2Vy
Q29udGVudEV4dGVuc2lvbnNFbmFibGVkKGZhbHNlKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlJlbG9hZChuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgb3B0aW9ucy50b1Jhdygp
LCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSk7Ci0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVz
c1RpbWVyKCkuc3RhcnQoKTsKKyAgICBtX3Byb2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1l
cigpOwogCiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAgICAgcmVzZXRTcGVlY2hTeW50
aGVzaXplcigpOwpAQCAtMTU5Niw3ICsxNTk2LDcgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4g
V2ViUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0K
ICAgICBtX3BhZ2VMb2FkU3RhdGUuc2V0UGVuZGluZ0FQSVJlcXVlc3QodHJhbnNhY3Rpb24sIHsg
bmF2aWdhdGlvbiA/IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwgaXRlbS51cmwoKSB9
KTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2
aWdhdGlvbiA/IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwgaXRlbS5pdGVtSUQoKSwg
ZnJhbWVMb2FkVHlwZSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObywgV1RGOjpudWxs
b3B0KSk7Ci0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKKyAg
ICBtX3Byb2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogCiAgICAgcmV0dXJuIG5h
dmlnYXRpb247CiB9CkBAIC0xOTUwLDcgKzE5NTAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlz
cGF0Y2hBY3Rpdml0eVN0YXRlQ2hhbmdlKCkKICAgICAgICAgICAgIC8vIElmIHdlJ3ZlIHN0YXJ0
ZWQgdGhlIHJlc3BvbnNpdmVuZXNzIHRpbWVyIGFzIHBhcnQgb2YgdGVsbGluZyB0aGUgd2ViIHBy
b2Nlc3MgdG8gdXBkYXRlIHRoZSBiYWNraW5nIHN0b3JlCiAgICAgICAgICAgICAvLyBzdGF0ZSwg
aXQgbWlnaHQgbm90IHNlbmQgYmFjayBhIHJlcGx5IChzaW5jZSBpdCB3b24ndCBwYWludCBhbnl0
aGluZyBpZiB0aGUgd2ViIHBhZ2UgaXMgaGlkZGVuKSBzbyB3ZQogICAgICAgICAgICAgLy8gc3Rv
cCB0aGUgdW5yZXNwb25zaXZlbmVzcyB0aW1lciBoZXJlLgotICAgICAgICAgICAgbV9wcm9jZXNz
LT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RvcCgpOworICAgICAgICAgICAgbV9wcm9jZXNzLT5z
dG9wUmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yNDgwLDEw
ICsyNDgwLDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzTmV4dFF1ZXVlZE1vdXNlRXZl
bnQoKQogCiAgICAgV2ViRXZlbnQ6OlR5cGUgZXZlbnRUeXBlID0gZXZlbnQudHlwZSgpOwogICAg
IGlmIChldmVudFR5cGUgPT0gV2ViRXZlbnQ6Ok1vdXNlRG93biB8fCBldmVudFR5cGUgPT0gV2Vi
RXZlbnQ6Ok1vdXNlRm9yY2VDaGFuZ2VkIHx8IGV2ZW50VHlwZSA9PSBXZWJFdmVudDo6TW91c2VG
b3JjZURvd24pCi0gICAgICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0
V2l0aExhenlTdG9wKCk7CisgICAgICAgIG1fcHJvY2Vzcy0+c3RhcnRSZXNwb25zaXZlbmVzc1Rp
bWVyKFdlYlByb2Nlc3NQcm94eTo6VXNlTGF6eVN0b3A6Olllcyk7CiAgICAgZWxzZSBpZiAoZXZl
bnRUeXBlICE9IFdlYkV2ZW50OjpNb3VzZU1vdmUpIHsKICAgICAgICAgLy8gTk9URTogVGhpcyBk
b2VzIG5vdCBzdGFydCB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIgYmVjYXVzZSBtb3VzZSBtb3Zl
IHNob3VsZCBub3QgaW5kaWNhdGUgaW50ZXJhY3Rpb24uCi0gICAgICAgIG1fcHJvY2Vzcy0+cmVz
cG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CisgICAgICAgIG1fcHJvY2Vzcy0+c3RhcnRSZXNw
b25zaXZlbmVzc1RpbWVyKCk7CiAgICAgfQogCiAgICAgTE9HKE1vdXNlSGFuZGxpbmcsICJVSVBy
b2Nlc3M6IHNlbnQgbW91c2UgZXZlbnQgJXMgKHF1ZXVlIHNpemUgJXp1KSIsIHdlYk1vdXNlRXZl
bnRUeXBlU3RyaW5nKGV2ZW50VHlwZSksIG1fbW91c2VFdmVudFF1ZXVlLnNpemUoKSk7CkBAIC0y
NjcyLDExICsyNjcyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUtleWJvYXJkRXZlbnQo
Y29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiAKICAgICBtX2tleUV2ZW50UXVl
dWUuYXBwZW5kKGV2ZW50KTsKIAotICAgIFJlc3BvbnNpdmVuZXNzVGltZXImIHJlc3BvbnNpdmVu
ZXNzVGltZXIgPSBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKTsKLSAgICBpZiAoZXZl
bnQudHlwZSgpID09IFdlYkV2ZW50OjpLZXlEb3duKQotICAgICAgICByZXNwb25zaXZlbmVzc1Rp
bWVyLnN0YXJ0V2l0aExhenlTdG9wKCk7Ci0gICAgZWxzZQotICAgICAgICByZXNwb25zaXZlbmVz
c1RpbWVyLnN0YXJ0KCk7CisgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIo
ZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpLZXlEb3duID8gV2ViUHJvY2Vzc1Byb3h5OjpVc2VM
YXp5U3RvcDo6WWVzIDogV2ViUHJvY2Vzc1Byb3h5OjpVc2VMYXp5U3RvcDo6Tm8pOwogCiAgICAg
aWYgKG1fa2V5RXZlbnRRdWV1ZS5zaXplKCkgPT0gMSkgeyAvLyBPdGhlcndpc2UsIHNlbnQgZnJv
bSBEaWRSZWNlaXZlRXZlbnQgbWVzc2FnZSBoYW5kbGVyLgogICAgICAgICBMT0coS2V5SGFuZGxp
bmcsICIgVUkgcHJvY2Vzczogc2VudCBrZXlFdmVudCBmcm9tIGhhbmRsZUtleWJvYXJkRXZlbnQi
KTsKQEAgLTI4NDcsMTEgKzI4NDMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlR2VzdHVy
ZUV2ZW50KGNvbnN0IE5hdGl2ZVdlYkdlc3R1cmVFdmVudCYgZXZlbnQpCiAgICAgbV9nZXN0dXJl
RXZlbnRRdWV1ZS5hcHBlbmQoZXZlbnQpOwogICAgIC8vIEZJWE1FOiBDb25zaWRlciBkb2luZyBz
b21lIGNvYWxlc2NpbmcgaGVyZS4KIAotICAgIFJlc3BvbnNpdmVuZXNzVGltZXImIHJlc3BvbnNp
dmVuZXNzVGltZXIgPSBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKTsKLSAgICBpZiAo
ZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpHZXN0dXJlU3RhcnQgfHwgZXZlbnQudHlwZSgpID09
IFdlYkV2ZW50OjpHZXN0dXJlQ2hhbmdlKQotICAgICAgICByZXNwb25zaXZlbmVzc1RpbWVyLnN0
YXJ0V2l0aExhenlTdG9wKCk7Ci0gICAgZWxzZQotICAgICAgICByZXNwb25zaXZlbmVzc1RpbWVy
LnN0YXJ0KCk7CisgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIoKGV2ZW50
LnR5cGUoKSA9PSBXZWJFdmVudDo6R2VzdHVyZVN0YXJ0IHx8IGV2ZW50LnR5cGUoKSA9PSBXZWJF
dmVudDo6R2VzdHVyZUNoYW5nZSkgPyBXZWJQcm9jZXNzUHJveHk6OlVzZUxhenlTdG9wOjpZZXMg
PyBXZWJQcm9jZXNzUHJveHk6OlVzZUxhenlTdG9wOjpObyk7CiAKICAgICBzZW5kKE1lc3NhZ2Vz
OjpFdmVudERpc3BhdGNoZXI6Okdlc3R1cmVFdmVudChtX3dlYlBhZ2VJRCwgZXZlbnQpLCAwKTsK
IH0KQEAgLTI5MjIsNyArMjkxNCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVQcmV2ZW50
YWJsZVRvdWNoRXZlbnQoTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgp
OworICAgIG1fcHJvY2Vzcy0+c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAgICAgYm9vbCBo
YW5kbGVkID0gZmFsc2U7CiAgICAgYm9vbCByZXBseVJlY2VpdmVkID0gc2VuZFN5bmMoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlRvdWNoRXZlbnRTeW5jKGV2ZW50KSwgTWVzc2FnZXM6OldlYlBhZ2U6OlRv
dWNoRXZlbnRTeW5jOjpSZXBseShoYW5kbGVkKSwgMV9zLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpG
b3JjZURpc3BhdGNoV2hlbkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9yVW5ib3VuZGVkU3luY1JlcGx5
KTsKICAgICAvLyBJZiB0aGUgc3luYyByZXF1ZXN0IGhhcyB0aW1lZCBvdXQsIHdlIHNob3VsZCBj
b25zaWRlciB0aGUgZXZlbnQgaGFuZGxlZC4gVGhlIFdlYiBQcm9jZXNzIGlzIHRvbyBidXN5IHRv
IGFuc3dlciBhbnkgcXVlc3Rpb25zLCBzbyB0aGUgZGVmYXVsdCBhY3Rpb24gaXMgYWxzbyBsaWtl
bHkgdG8gaGF2ZSBpc3N1ZXMuCkBAIC0yOTM0LDcgKzI5MjYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6aGFuZGxlUHJldmVudGFibGVUb3VjaEV2ZW50KE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZW50
KQogICAgICAgICBwYWdlQ2xpZW50KCkuZG9uZURlZmVycmluZ05hdGl2ZUdlc3R1cmVzKGhhbmRs
ZWQpOwogICAgIGVsc2UgaWYgKGhhbmRsZWQpCiAgICAgICAgIG1faGFuZGxlZFN5bmNocm9ub3Vz
VG91Y2hFdmVudFdoaWxlRGlzcGF0Y2hpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnQgPSB0cnVlOwot
ICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0b3AoKTsKKyAgICBtX3Byb2Nl
c3MtPnN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpy
ZXNldFBvdGVudGlhbFRhcFNlY3VyaXR5T3JpZ2luKCkKQEAgLTI5NzgsNyArMjk3MCw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZl
bnQmIGV2ZW50KQogICAgIC8vIHdlIGRvIG5vdCBzZW5kIGFueSBvZiB0aGUgZXZlbnRzIHRvIHRo
ZSBwYWdlIGV2ZW4gaWYgaXMgaGFzIGxpc3RlbmVycy4KICAgICBpZiAoIW1faXNQYWdlU3VzcGVu
ZGVkKSB7CiAgICAgICAgIG1fdG91Y2hFdmVudFF1ZXVlLmFwcGVuZChldmVudCk7Ci0gICAgICAg
IG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CisgICAgICAgIG1fcHJv
Y2Vzcy0+c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAgICAgICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlRvdWNoRXZlbnQoZXZlbnQpKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAo
bV90b3VjaEV2ZW50UXVldWUuaXNFbXB0eSgpKSB7CkBAIC01NDU1LDcgKzU0NDcsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBTZWN1cml0eU9yaWdpbkRhdAogI2VuZGlmCiAKICAgICAvLyBTaW5jZSBydW5KYXZhU2NyaXB0
QWxlcnQoKSBjYW4gc3BpbiBhIG5lc3RlZCBydW4gbG9vcCB3ZSBuZWVkIHRvIHR1cm4gb2ZmIHRo
ZSByZXNwb25zaXZlbmVzcyB0aW1lci4KLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGlt
ZXIoKS5zdG9wKCk7CisgICAgbV9wcm9jZXNzLT5zdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcigpOwog
CiAgICAgaWYgKG1fY29udHJvbGxlZEJ5QXV0b21hdGlvbikgewogICAgICAgICBpZiAoYXV0byog
YXV0b21hdGlvblNlc3Npb24gPSBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hdXRvbWF0aW9uU2Vz
c2lvbigpKQpAQCAtNTQ3NCw3ICs1NDY2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFT
Y3JpcHRDb25maXJtKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTZWN1cml0eU9yaWdpbkQKICNl
bmRpZgogCiAgICAgLy8gU2luY2UgcnVuSmF2YVNjcmlwdENvbmZpcm0oKSBjYW4gc3BpbiBhIG5l
c3RlZCBydW4gbG9vcCB3ZSBuZWVkIHRvIHR1cm4gb2ZmIHRoZSByZXNwb25zaXZlbmVzcyB0aW1l
ci4KLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdG9wKCk7CisgICAgbV9w
cm9jZXNzLT5zdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogCiAgICAgaWYgKG1fY29udHJvbGxl
ZEJ5QXV0b21hdGlvbikgewogICAgICAgICBpZiAoYXV0byogYXV0b21hdGlvblNlc3Npb24gPSBw
cm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hdXRvbWF0aW9uU2Vzc2lvbigpKQpAQCAtNTQ5Myw3ICs1
NDg1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFNlY3VyaXR5T3JpZ2luRGEKICAgICBleGl0RnVsbHNjcmVlbkltbWVk
aWF0ZWx5KCk7CiAjZW5kaWYKICAgICAvLyBTaW5jZSBydW5KYXZhU2NyaXB0UHJvbXB0KCkgY2Fu
IHNwaW4gYSBuZXN0ZWQgcnVuIGxvb3Agd2UgbmVlZCB0byB0dXJuIG9mZiB0aGUgcmVzcG9uc2l2
ZW5lc3MgdGltZXIuCi0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RvcCgp
OworICAgIG1fcHJvY2Vzcy0+c3RvcFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIAogICAgIGlmICht
X2NvbnRyb2xsZWRCeUF1dG9tYXRpb24pIHsKICAgICAgICAgaWYgKGF1dG8qIGF1dG9tYXRpb25T
ZXNzaW9uID0gcHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYXV0b21hdGlvblNlc3Npb24oKSkKQEAg
LTU2NjAsNyArNTY1Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFNlY3VyaXR5CiAgICAgfQogCiAgICAg
Ly8gU2luY2UgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgY2FuIHNwaW4gYSBuZXN0ZWQg
cnVuIGxvb3Agd2UgbmVlZCB0byB0dXJuIG9mZiB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIgYW5k
IHRoZSB0cnlDbG9zZSB0aW1lci4KLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIo
KS5zdG9wKCk7CisgICAgbV9wcm9jZXNzLT5zdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogICAg
IG1fdHJ5Q2xvc2VUaW1lb3V0VGltZXIuc3RvcCgpOwogICAgIG1fdWlDbGllbnQtPnJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbCgqdGhpcywgbWVzc2FnZSwgZnJhbWUsIFdURk1vdmUoc2VjdXJp
dHlPcmlnaW4pLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CkBAIC01NzA3LDcgKzU2OTksNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6cnVuT3BlblBhbmVsKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTZWN1
cml0eU9yaWdpbkRhdGEmJiBmcgogICAgIH0KIAogICAgIC8vIFNpbmNlIHJ1bk9wZW5QYW5lbCgp
IGNhbiBzcGluIGEgbmVzdGVkIHJ1biBsb29wIHdlIG5lZWQgdG8gdHVybiBvZmYgdGhlIHJlc3Bv
bnNpdmVuZXNzIHRpbWVyLgotICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0
b3AoKTsKKyAgICBtX3Byb2Nlc3MtPnN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAKICAgICBp
ZiAoIW1fdWlDbGllbnQtPnJ1bk9wZW5QYW5lbCgqdGhpcywgZnJhbWUsIFdURk1vdmUoZnJhbWVT
ZWN1cml0eU9yaWdpbiksIHBhcmFtZXRlcnMucHRyKCksIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXIuZ2V0KCkpKSB7CiAgICAgICAgIGlmICghcGFnZUNsaWVudCgpLmhhbmRsZVJ1bk9wZW5QYW5l
bCh0aGlzLCBmcmFtZSwgcGFyYW1ldGVycy5wdHIoKSwgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
ci5nZXQoKSkpCkBAIC02Mjk1LDcgKzYyODcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd1Bv
cHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCB1aW50NjRfdCB0ZXh0RGlyZWN0aW9uLCBjbwog
ICAgICAgICByZXR1cm47CiAKICAgICAvLyBTaW5jZSBzaG93UG9wdXBNZW51KCkgY2FuIHNwaW4g
YSBuZXN0ZWQgcnVuIGxvb3Agd2UgbmVlZCB0byB0dXJuIG9mZiB0aGUgcmVzcG9uc2l2ZW5lc3Mg
dGltZXIuCi0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RvcCgpOworICAg
IG1fcHJvY2Vzcy0+c3RvcFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIAogICAgIC8vIFNob3dpbmcg
YSBwb3B1cCBtZW51IHJ1bnMgYSBuZXN0ZWQgcnVubG9vcCwgd2hpY2ggY2FuIGhhbmRsZSBtZXNz
YWdlcyB0aGF0IGNhdXNlIHx0aGlzfCB0byBnZXQgY2xvc2VkLgogICAgIFJlZjxXZWJQYWdlUHJv
eHk+IHByb3RlY3QoKnRoaXMpOwpAQCAtNjMzOCw3ICs2MzMwLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnNob3dDb250ZXh0TWVudShDb250ZXh0TWVudUNvbnRleHREYXRhJiYgY29udGV4dE1lbnVD
b250ZXh0RGEKICAgICBtX2FjdGl2ZUNvbnRleHRNZW51ID0gcGFnZUNsaWVudCgpLmNyZWF0ZUNv
bnRleHRNZW51UHJveHkoKnRoaXMsIFdURk1vdmUoY29udGV4dE1lbnVDb250ZXh0RGF0YSksIHVz
ZXJEYXRhKTsKIAogICAgIC8vIFNpbmNlIHNob3dDb250ZXh0TWVudSgpIGNhbiBzcGluIGEgbmVz
dGVkIHJ1biBsb29wIHdlIG5lZWQgdG8gdHVybiBvZmYgdGhlIHJlc3BvbnNpdmVuZXNzIHRpbWVy
LgotICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0b3AoKTsKKyAgICBtX3By
b2Nlc3MtPnN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAKICAgICAvLyBtX2FjdGl2ZUNvbnRl
eHRNZW51IG1pZ2h0IGdldCBjbGVhcmVkIGlmIFdlYlBhZ2VQcm94eSBjb2RlIGlzIHJlLWVudGVy
ZWQgZnJvbSB0aGUgbWVudSBydW5sb29wIG9yIGRlbGVnYXRlcy4KICAgICBSZWY8V2ViQ29udGV4
dE1lbnVQcm94eT4gcHJvdGVjdG9yKCptX2FjdGl2ZUNvbnRleHRNZW51KTsKQEAgLTY2ODUsNyAr
NjY3Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlRXZlbnQodWludDMyX3Qgb3Bh
cXVlVHlwZSwgYm9vbCBoYW5kbGVkKQogICAgIGNhc2UgV2ViRXZlbnQ6Okdlc3R1cmVDaGFuZ2U6
CiAgICAgY2FzZSBXZWJFdmVudDo6R2VzdHVyZUVuZDoKICNlbmRpZgotICAgICAgICBtX3Byb2Nl
c3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdG9wKCk7CisgICAgICAgIG1fcHJvY2Vzcy0+c3Rv
cFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC03OTQw
LDcgKzc5MzIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZHJhd0Zvb3RlcihXZWJGcmFtZVByb3h5
JiBmcmFtZSwgRmxvYXRSZWN0JiYgcmVjdCkKIHZvaWQgV2ViUGFnZVByb3h5OjpydW5Nb2RhbCgp
CiB7CiAgICAgLy8gU2luY2UgcnVuTW9kYWwoKSBjYW4gKGFuZCBwcm9iYWJseSB3aWxsKSBzcGlu
IGEgbmVzdGVkIHJ1biBsb29wIHdlIG5lZWQgdG8gdHVybiBvZmYgdGhlIHJlc3BvbnNpdmVuZXNz
IHRpbWVyLgotICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0b3AoKTsKKyAg
ICBtX3Byb2Nlc3MtPnN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAKICAgICAvLyBPdXIgQ29u
bmVjdGlvbidzIHJ1biBsb29wIG1pZ2h0IGhhdmUgbW9yZSBtZXNzYWdlcyB3YWl0aW5nIHRvIGJl
IGhhbmRsZWQgYWZ0ZXIgdGhpcyBSdW5Nb2RhbCBtZXNzYWdlLgogICAgIC8vIFRvIG1ha2Ugc3Vy
ZSB0aGV5IGFyZSBoYW5kbGVkIGluc2lkZSBvZiB0aGUgbmVzdGVkIG1vZGFsIHJ1biBsb29wIHdl
IG11c3QgZmlyc3Qgc2lnbmFsIHRoZSBDb25uZWN0aW9uJ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGUyN2NkMTY3OGE3YzZjYjM3MWU5NGNlMDRk
YjdiNjA1NTU5MGZhOGYuLjcxN2QzZjFmMDg3OTU5OTM1MmZiOTJhODk4OWQ1YTJhNTRmNTQyOWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtODYz
LDcgKzg2MywyNiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkQ2hhbmdlSXNSZXNwb25zaXZl
KCkKIAogYm9vbCBXZWJQcm9jZXNzUHJveHk6Om1heUJlY29tZVVucmVzcG9uc2l2ZSgpCiB7Ci0g
ICAgcmV0dXJuICFwbGF0Zm9ybUlzQmVpbmdEZWJ1Z2dlZCgpOworI2lmICFkZWZpbmVkKE5ERUJV
RykgfHwgQVNBTl9FTkFCTEVECisgICAgLy8gRGlzYWJsZSByZXNwb25zaXZlbmVzcyBjaGVja3Mg
aW4gc2xvdyBidWlsZHMgdG8gYXZvaWQgZmFsc2UgcG9zaXRpdmVzLgorICAgIHJldHVybiBmYWxz
ZTsKKyNlbHNlCisgICAgaWYgKHBsYXRmb3JtSXNCZWluZ0RlYnVnZ2VkKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIHN0YXRpYyBib29sIGlzTGliZ21hbGxvY0VuYWJsZWQgPSBbXSB7
CisgICAgICAgIGNoYXIqIHZhcmlhYmxlID0gZ2V0ZW52KCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMi
KTsKKyAgICAgICAgaWYgKCF2YXJpYWJsZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgaWYgKCFzdHJzdHIodmFyaWFibGUsICJsaWJnbWFsbG9jIikpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0oKTsKKyAgICBpZiAoaXNM
aWJnbWFsbG9jRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRy
dWU7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGlu
ZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIg
Y29ubmVjdGlvbklkZW50aWZpZXIpCkBAIC04OTIsNiArOTExLDExIEBAIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwgSVBD
OjpDb25uZWN0CiAKICAgICB1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CiAj
ZW5kaWYKKworICAgIGlmIChtX3Nob3VsZFN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcldoZW5MYXVu
Y2hlZCkgeworICAgICAgICBhdXRvIHVzZUxhenlTdG9wID0gKnN0ZDo6ZXhjaGFuZ2UobV9zaG91
bGRTdGFydFJlc3BvbnNpdmVuZXNzVGltZXJXaGVuTGF1bmNoZWQsIFdURjo6bnVsbG9wdCk7Cisg
ICAgICAgIHN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcih1c2VMYXp5U3RvcCk7CisgICAgfQogfQog
CiBXZWJGcmFtZVByb3h5KiBXZWJQcm9jZXNzUHJveHk6OndlYkZyYW1lKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEKSBjb25zdApAQCAtMTEyMiw2ICsxMTQ2LDE5IEBAIHZvaWQgV2ViUHJvY2Vzc1By
b3h5OjpzdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcigpCiAgICAgcmVzcG9uc2l2ZW5lc3NUaW1lcigp
LnN0b3AoKTsKIH0KIAordm9pZCBXZWJQcm9jZXNzUHJveHk6OnN0YXJ0UmVzcG9uc2l2ZW5lc3NU
aW1lcihVc2VMYXp5U3RvcCB1c2VMYXp5U3RvcCkKK3sKKyAgICBpZiAoaXNMYXVuY2hpbmcoKSkg
eworICAgICAgICBtX3Nob3VsZFN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcldoZW5MYXVuY2hlZCA9
IHVzZUxhenlTdG9wOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHVzZUxhenlT
dG9wID09IFVzZUxhenlTdG9wOjpZZXMpCisgICAgICAgIHJlc3BvbnNpdmVuZXNzVGltZXIoKS5z
dGFydFdpdGhMYXp5U3RvcCgpOworICAgIGVsc2UKKyAgICAgICAgcmVzcG9uc2l2ZW5lc3NUaW1l
cigpLnN0YXJ0KCk7Cit9CisKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjplbmFibGVTdWRkZW5UZXJt
aW5hdGlvbigpCiB7CiAgICAgaWYgKHN0YXRlKCkgIT0gU3RhdGU6OlJ1bm5pbmcpCkBAIC0xMzQy
LDcgKzEzNzksNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6aXNSZXNwb25zaXZlKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCBpc1dlYlByb2Nlc3NSZXNwbwogICAgIGlmIChjYWxsYmFjaykK
ICAgICAgICAgbV9pc1Jlc3BvbnNpdmVDYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY2FsbGJhY2sp
KTsKIAotICAgIHJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOworICAgIHN0YXJ0UmVzcG9u
c2l2ZW5lc3NUaW1lcigpOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6Ok1haW5UaHJl
YWRQaW5nKCksIDApOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oCmluZGV4IDZjMTk1MzBhZGMxNjE1Zjk5Nzg1MTI1OTJkNjU5OTA3MTVkNTgxNzUuLmVmNjRi
M2MyZTk0MjgwOTY1OTQ4MTE1ZjdhYmYzNzQ1ZTZlN2Y2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xNzUsNyArMTc1LDYgQEAgcHVibGljOgogCiAg
ICAgUmVmUHRyPEFQSTo6VXNlckluaXRpYXRlZEFjdGlvbj4gdXNlckluaXRpYXRlZEFjdGl2aXR5
KHVpbnQ2NF90KTsKIAotICAgIFJlc3BvbnNpdmVuZXNzVGltZXImIHJlc3BvbnNpdmVuZXNzVGlt
ZXIoKSB7IHJldHVybiBtX3Jlc3BvbnNpdmVuZXNzVGltZXI7IH0KICAgICBib29sIGlzUmVzcG9u
c2l2ZSgpIGNvbnN0OwogCiAgICAgV2ViRnJhbWVQcm94eSogd2ViRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyKSBjb25zdDsKQEAgLTIxNyw2ICsyMTYsOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHJlcXVlc3RUZXJtaW5hdGlvbihQcm9jZXNzVGVybWluYXRpb25SZWFzb24pOwogCisgICAg
ZW51bSBjbGFzcyBVc2VMYXp5U3RvcCA6IGJvb2wgeyBObywgWWVzIH07CisgICAgdm9pZCBzdGFy
dFJlc3BvbnNpdmVuZXNzVGltZXIoVXNlTGF6eVN0b3AgPSBVc2VMYXp5U3RvcDo6Tm8pOwogICAg
IHZvaWQgc3RvcFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIAogICAgIFJlZlB0cjxBUEk6Ok9iamVj
dD4gdHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyhBUEk6Ok9iamVjdCopOwpAQCAtNDE2LDYgKzQx
Nyw3IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBwbGF0
Zm9ybVBhdGhzV2l0aEFzc3VtZWRSZWFkQWNjZXNzKCk7CiAKKyAgICBSZXNwb25zaXZlbmVzc1Rp
bWVyJiByZXNwb25zaXZlbmVzc1RpbWVyKCkgeyByZXR1cm4gbV9yZXNwb25zaXZlbmVzc1RpbWVy
OyB9CiAgICAgdm9pZCB1cGRhdGVCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogCiAg
ICAgdm9pZCBwcm9jZXNzRGlkVGVybWluYXRlT3JGYWlsZWRUb0xhdW5jaCgpOwpAQCAtNTQwLDYg
KzU0Miw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkgJiYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICBib29sIG1faGFzSXNzdWVkQXR0YWNobWVudEVsZW1lbnRS
ZWxhdGVkU2FuZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9OwogI2VuZGlmCisgICAgT3B0aW9uYWw8
VXNlTGF6eVN0b3A+IG1fc2hvdWxkU3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyV2hlbkxhdW5jaGVk
OwogCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc1Ro
cm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5PiBtX2JhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxz
Y3JlZW5Gb3JtQ29udHJvbHM7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2I3NzUwMWJkNTgwMDJhYmYzMjk3OWIyYWY3MGMy
Mjg1YjY4NDAwMC4uOGYxM2JhOTRhMmQ5OTMyNjk2NTE0OTdmNDY3NGFiM2ViYjFmY2M1YSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAxLTMxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgWyBpT1MgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9rZXktZ2VuZXJhdG9ycy9yZWFkaW5nLWF1dG9pbmNyZW1lbnQtaW5kZXhlcy1j
dXJzb3JzLmFueS5zZXJ2aWNld29ya2VyLmh0bWwgaXMgZmxha3kgZmFpbGluZy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjkzNAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTg5OTE1ODE+CisKKyAgICAgICAgVW5za2lwIHRlc3Qgd2hpY2ggc2hv
dWxkIG5vIGxvbmdlciBiZSBmbGFreS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvVGVz
dEV4cGVjdGF0aW9uczoKKwogMjAyMC0wMS0zMSAgTWF0dCBMZXdpcyAgPGpsZXdpczNAYXBwbGUu
Y29tPgogCiAgICAgICAgIExheW91dCBUZXN0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2ZpcmUtZXJyb3ItZXZlbnQtZXhjZXB0aW9uLmh0bWwgaXMgYSBGbGFreSBG
YWlsdXJlIG9uIG1hYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDJlYWM5NGNjNjU1MDkxOGY4YmViZjUwZmJmOTRjNzRiODJlMTNiOGIuLmQ5
Y2M5ODFjZjVlOTczNjU0NzkwMjdhMmQxMTZiYWMzNGVmMzZiNzggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEzNTksOCArMTM1OSw2IEBA
IHdlYmtpdC5vcmcvYi8yMDY2ODcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFj
b24vaWRsaGFybmVzcy5hbnkuaHRtbCBbCiAKIHdlYmtpdC5vcmcvYi8yMDY3NTIgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRleHQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VC
aXRtYXAtc2VyaWFsaXphYmxlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2Iv
MjA2OTM0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleS1nZW5l
cmF0b3JzL3JlYWRpbmctYXV0b2luY3JlbWVudC1pbmRleGVzLWN1cnNvcnMuYW55LnNlcnZpY2V3
b3JrZXIuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8yMDY5NDYgaHR0cC90
ZXN0cy9zZWN1cml0eS9jb29raWVzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy1tYWluLWZy
YW1lLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzIwNjk2NSBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUtcHJpdmF0ZS5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389372</attachid>
            <date>2020-01-31 10:22:30 -0800</date>
            <delta_ts>2020-01-31 12:58:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206934-20200131102103.patch</filename>
            <type>text/plain</type>
            <size>24976</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBhZWFjYTg2MDY2ZTk0NDNh
ZWRhYjY4MWQ4YzAxNDhkZGUxOGYzZWYuLjA0NmEwZGUzZmRhZDQzODdmNGY1ZTNiNGQ4ZGQyZDc2
Yzc4NjMwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMDEtMzEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbIGlPUyBdIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleS1nZW5lcmF0b3JzL3JlYWRpbmctYXV0b2lu
Y3JlbWVudC1pbmRleGVzLWN1cnNvcnMuYW55LnNlcnZpY2V3b3JrZXIuaHRtbCBpcyBmbGFreSBm
YWlsaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA2OTM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODk5MTU4MT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGbGFraW5lc3Mgd291bGQgaGFwcGVu
IHdoZW4gdGhlIHNlcnZpY2Ugd29ya2VyIHdvdWxkIHRha2UgdG9vIGxvbmcgdG8gbGF1bmNoIGFu
ZCB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIgd291bGQgZmlyZSBhbmQKKyAgICAgICAgcmVwb3J0
IHRoZSBwcm9jZXNzIGFzIHVucmVzcG9uc2l2ZSB3aGlsZSBzdGlsbCBsYXVuY2hpbmcgb3IgdmVy
eSBzaG9ydGx5IGFmdGVyLiBXaGVuIGEgc2VydmljZSB3b3JrZXIgaXMgcmVwb3J0ZWQgYXMKKyAg
ICAgICAgdW5yZXNwb25zaXZlLCB3ZSB3b3VsZCBraWxsIGl0LgorCisgICAgICAgIFRvIGFkZHJl
c3MgdGhlIGlzc3VlLCBzZXZlcmFsIGNoYW5nZXMgd2VyZSBtYWRlOgorICAgICAgICAtIFJlc3Bv
bnNpdmVuZXNzIGNoZWNrcyBhcmUgbm93IGRpc2FibGVkIGZvciBzbG93IGJ1aWxkcyAoRGVidWcs
IEFTQU4sIEd1YXJkTWFsbG9jKQorICAgICAgICAtIFdlIG9ubHkgc3RhcnQgdGhlIFJlc3BvbnNp
dmVuZXNzVGltZXIgYWZ0ZXIgdGhlIHByb2Nlc3MgaGFzIGZpbmlzaGVkIGxhdW5jaGluZyBzaW5j
ZSB0aGUgcmVzcG9uc2l2ZW5lc3MKKyAgICAgICAgICBjaGVjayByZWxpZXMgb24gSVBDIHRvIHRo
ZSBwcm9jZXNzIGFuZCB3ZSBjYW5ub3Qgc2VuZCB0aGUgSVBDIHVudGlsIGFmdGVyIHRoZSBwcm9j
ZXNzIGhhcyBsYXVuY2hlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3M6OnNlbmRVcGRhdGVCYWNr
aW5nU3RvcmVTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9y
d2FyZEl0ZW0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3NGb3JSZWxvYWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3NXaXRoSXRlbSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZEZpbGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRBbHRlcm5hdGVIVE1MKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkV2ViQXJjaGl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6Om5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdG9wTG9hZGluZyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVsb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojpnb1RvQmFja0ZvcndhcmRJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
aXNwYXRjaEFjdGl2aXR5U3RhdGVDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OnByb2Nlc3NOZXh0UXVldWVkTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpoYW5kbGVQcmV2ZW50YWJsZVRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmhhbmRsZVRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnJ1bkphdmFTY3JpcHRBbGVydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVu
SmF2YVNjcmlwdENvbmZpcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1bkph
dmFTY3JpcHRQcm9tcHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVu
T3BlblBhbmVsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjptYXlCZWNvbWVVbnJlc3BvbnNpdmUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVy
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojppc1Jlc3BvbnNpdmUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpyZXNwb25zaXZlbmVzc1RpbWVyKToKKwogMjAyMC0wMS0zMSAgQnJlbnQg
RnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjUx
NTExKTogW2lPU10gSERSIFBsYXliYWNrIGJyb2tlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0
ZWRHcmFwaGljcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcAppbmRleCA3MWM4OWE5
OGVkMmNlZmI5ZmU3NmVhMTY4NTZiOGJmOGY5ZjQ0Njg3Li42YmJkMWNhYmQyN2FlMjg0NzY0OGE4
YzJlZGNmOWFjZmNkNTU2ZmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0RyYXdp
bmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcApAQCAtMTc1LDcgKzE3NSw3IEBAIHZv
aWQgRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3M6OmRpZFVwZGF0ZUJhY2tpbmdT
dG9yZVN0YXRlKHVpbnQ2NF90IGJhCiAgICAgbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVCYWNraW5n
U3RvcmVTdGF0ZSA9IGZhbHNlOwogCiAgICAgLy8gU3RvcCB0aGUgcmVzcG9uc2l2ZW5lc3MgdGlt
ZXIgdGhhdCB3YXMgc3RhcnRlZCBpbiBzZW5kVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUuCi0gICAg
cHJvY2VzcygpLnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdG9wKCk7CisgICAgcHJvY2VzcygpLnN0
b3BSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAKICAgICBpZiAobGF5ZXJUcmVlQ29udGV4dCAhPSBt
X2xheWVyVHJlZUNvbnRleHQpIHsKICAgICAgICAgaWYgKGxheWVyVHJlZUNvbnRleHQuaXNFbXB0
eSgpICYmICFtX2xheWVyVHJlZUNvbnRleHQuaXNFbXB0eSgpKSB7CkBAIC0zMTksNyArMzE5LDcg
QEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6c2VuZFVwZGF0ZUJh
Y2tpbmdTdG9yZVN0YXRlKFJlc3BvbmRJbW0KICAgICBpZiAobV9pc1dhaXRpbmdGb3JEaWRVcGRh
dGVCYWNraW5nU3RvcmVTdGF0ZSkgewogICAgICAgICAvLyBTdGFydCB0aGUgcmVzcG9uc2l2ZW5l
c3MgdGltZXIuIFdlIHdpbGwgc3RvcCBpdCB3aGVuIHdlIGhlYXIgYmFjayBmcm9tIHRoZSBXZWJQ
cm9jZXNzCiAgICAgICAgIC8vIGluIGRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlLgotICAgICAg
ICBwcm9jZXNzKCkucmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CisgICAgICAgIHByb2Nl
c3MoKS5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKICAgICB9CiAKICAgICBpZiAobV9pc1dh
aXRpbmdGb3JEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSAmJiAhbV9sYXllclRyZWVDb250ZXh0
LmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlz
aW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQ
YWdlUHJveHkuY3BwCmluZGV4IGE0YmZjYmYyM2M4MTE1NGRjMTYzMTI4NDBkMTAxMzcwYmRlOTUy
MWQuLjVmYjAwOTM3YmExYzMyYzRjYWJmZDBiNDRkMzBkZjE4OWFhODIxNjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTE4MSw3
ICsxODEsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVt
KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQgogICAgIH0pOwogICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlVwZGF0ZUJhY2tGb3J3YXJkTGlzdEZvclJlYXR0YWNoKFdURk1vdmUo
aXRlbVN0YXRlcykpKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0Zvcndh
cmRJdGVtKG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIGl0ZW0uaXRlbUlEKCksICpuYXZpZ2F0
aW9uLmJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSgpLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKSk7Ci0gICAgbV9wcm9j
ZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKKyAgICBtX3Byb2Nlc3MtPnN0YXJ0
UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogfQogCiBpbmxpbmUgYm9vbCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6dmFsaWRhdGVJbnB1dChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgT3B0aW9u
YWw8dWludDY0X3Q+JiBuYXZpZ2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCAzNDU4YzdhOTcwMDQyYTkwNmVlOTVkY2ExZTgxZGY3MWQyZWVhYjMw
Li45MDQ4MDY4OGFiOGZmN2U2MDFhZmE5NmYxOTJhZjg5NTcyZDI1Y2E2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTk3Niw3ICs5NzYsNyBAQCBSZWZQdHI8
QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3NGb3JSZWxvYWQoKQog
CiAgICAgLy8gV2UgYWxsb3cgc3RhbGUgY29udGVudCB3aGVuIHJlbG9hZGluZyBhIFdlYlByb2Nl
c3MgdGhhdCdzIGJlZW4ga2lsbGVkIG9yIGNyYXNoZWQuCiAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgbV9i
YWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCktPml0ZW1JRCgpLCBGcmFtZUxvYWRUeXBlOjpJ
bmRleGVkQmFja0ZvcndhcmQsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8sIFdURjo6
bnVsbG9wdCkpOwotICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7
CisgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIAogICAgIHJldHVy
biBuYXZpZ2F0aW9uOwogfQpAQCAtOTk5LDcgKzk5OSw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRp
b24+IFdlYlBhZ2VQcm94eTo6bGF1bmNoUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlz
dEl0CiAgICAgYXV0byBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUJhY2tG
b3J3YXJkTmF2aWdhdGlvbihpdGVtLCBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSwg
RnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCks
IGl0ZW0uaXRlbUlEKCksIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObywgV1RGOjpudWxsb3B0KSk7Ci0gICAgbV9wcm9jZXNz
LT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKKyAgICBtX3Byb2Nlc3MtPnN0YXJ0UmVz
cG9uc2l2ZW5lc3NUaW1lcigpOwogCiAgICAgcmV0dXJuIG5hdmlnYXRpb247CiB9CkBAIC0xMjg5
LDcgKzEyODksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlv
blNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2NlcwogI2Vsc2UKICAgICBwcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkUmVxdWVzdChsb2FkUGFyYW1ldGVycyksIHdl
YlBhZ2VJRCk7CiAjZW5kaWYKLSAgICBwcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3Rh
cnQoKTsKKyAgICBwcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIH0KIAogUmVm
UHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpsb2FkRmlsZShjb25zdCBTdHJpbmcm
IGZpbGVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEaXJlY3RvcnlVUkxTdHJpbmcs
IEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKQEAgLTEzNDQsNyArMTM0NCw3IEBAIFJlZlB0cjxBUEk6
Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZEZpbGUoY29uc3QgU3RyaW5nJiBmaWxlVVJM
U3RyaW5nLCBjb25zCiAjZWxzZQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRSZXF1
ZXN0KGxvYWRQYXJhbWV0ZXJzKSk7CiAjZW5kaWYKLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVu
ZXNzVGltZXIoKS5zdGFydCgpOworICAgIG1fcHJvY2Vzcy0+c3RhcnRSZXNwb25zaXZlbmVzc1Rp
bWVyKCk7CiAKICAgICByZXR1cm4gbmF2aWdhdGlvbjsKIH0KQEAgLTEzOTAsNyArMTM5MCw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYgcHJvY2VzcywKIAogICAgIHByb2Nlc3MtPmFzc3VtZVJlYWRBY2Nlc3NU
b0Jhc2VVUkwoKnRoaXMsIGJhc2VVUkwpOwogICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OkxvYWREYXRhKGxvYWRQYXJhbWV0ZXJzKSwgd2ViUGFnZUlEKTsKLSAgICBwcm9jZXNz
LT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKKyAgICBwcm9jZXNzLT5zdGFydFJlc3Bv
bnNpdmVuZXNzVGltZXIoKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRBbHRlcm5hdGVI
VE1MKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgaHRtbERhdGEsIGNvbnN0IFN0cmluZyYgZW5j
b2RpbmcsIGNvbnN0IFVSTCYgYmFzZVVSTCwgY29uc3QgVVJMJiB1bnJlYWNoYWJsZVVSTCwgQVBJ
OjpPYmplY3QqIHVzZXJEYXRhKQpAQCAtMTQzMyw3ICsxNDMzLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmxvYWRBbHRlcm5hdGVIVE1MKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgaHRtbERhdGEs
IGNvbnN0IFMKICAgICBtX3Byb2Nlc3MtPmFzc3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwoKnRoaXMs
IGJhc2VVUkwpOwogICAgIG1fcHJvY2Vzcy0+YXNzdW1lUmVhZEFjY2Vzc1RvQmFzZVVSTCgqdGhp
cywgdW5yZWFjaGFibGVVUkwpOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRBbHRl
cm5hdGVIVE1MKGxvYWRQYXJhbWV0ZXJzKSk7Ci0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVz
c1RpbWVyKCkuc3RhcnQoKTsKKyAgICBtX3Byb2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1l
cigpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFdlYkFyY2hpdmVEYXRhKEFQSTo6RGF0
YSogd2ViQXJjaGl2ZURhdGEsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKQEAgLTE0NjAsNyArMTQ2
MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkV2ViQXJjaGl2ZURhdGEoQVBJOjpEYXRhKiB3
ZWJBcmNoaXZlRGF0YSwgQVBJOjpPYmplY3QqIHVzCiAgICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1l
dGVycyhsb2FkUGFyYW1ldGVycyk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2Fk
RGF0YShsb2FkUGFyYW1ldGVycykpOwotICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1l
cigpLnN0YXJ0KCk7CisgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIoKTsK
IH0KIAogdm9pZCBXZWJQYWdlUHJveHk6Om5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENs
aWNrKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBJbnRQb2ludCBkb2N1bWVudFBvaW50LCBJbnRQ
b2ludCBzY3JlZW5Qb2ludCkKQEAgLTE0NzksNyArMTQ3OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybFN0
cmluZywKICAgICAgICAgbGF1bmNoUHJvY2VzcyhSZWdpc3RyYWJsZURvbWFpbiB7IFVSTChVUkwo
KSwgdXJsU3RyaW5nKSB9LCBQcm9jZXNzTGF1bmNoUmVhc29uOjpJbml0aWFsUHJvY2Vzcyk7CiAK
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpOYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0
ZWRDbGljayh1cmxTdHJpbmcsIGRvY3VtZW50UG9pbnQsIHNjcmVlblBvaW50KSk7Ci0gICAgbV9w
cm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKKyAgICBtX3Byb2Nlc3MtPnN0
YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c3RvcExv
YWRpbmcoKQpAQCAtMTQ5Niw3ICsxNDk2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnN0b3BMb2Fk
aW5nKCkKICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UtPmNhbmNlbCgpOwogICAgICAgICBtX3By
b3Zpc2lvbmFsUGFnZSA9IG51bGxwdHI7CiAgICAgfQotICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2
ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CisgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNz
VGltZXIoKTsKIH0KIAogUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5OjpyZWxv
YWQoT3B0aW9uU2V0PFdlYkNvcmU6OlJlbG9hZE9wdGlvbj4gb3B0aW9ucykKQEAgLTE1MjcsNyAr
MTUyNyw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6cmVsb2FkKE9w
dGlvblNldDxXZWJDb3JlOjpSZWxvYWRPcHRpb24+IG9wCiAgICAgICAgIG5hdmlnYXRpb24tPnNl
dFVzZXJDb250ZW50RXh0ZW5zaW9uc0VuYWJsZWQoZmFsc2UpOwogCiAgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6UmVsb2FkKG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpLCBvcHRpb25zLnRv
UmF3KCksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpKTsKLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNp
dmVuZXNzVGltZXIoKS5zdGFydCgpOworICAgIG1fcHJvY2Vzcy0+c3RhcnRSZXNwb25zaXZlbmVz
c1RpbWVyKCk7CiAKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICByZXNldFNwZWVj
aFN5bnRoZXNpemVyKCk7CkBAIC0xNTk2LDcgKzE1OTYsNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0
aW9uPiBXZWJQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0
SXRlbQogICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRQZW5kaW5nQVBJUmVxdWVzdCh0cmFuc2FjdGlv
biwgeyBuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCBpdGVtLnVy
bCgpIH0pOwogCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRl
bShuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCBpdGVtLml0ZW1J
RCgpLCBmcmFtZUxvYWRUeXBlLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vLCBXVEY6
Om51bGxvcHQpKTsKLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgp
OworICAgIG1fcHJvY2Vzcy0+c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAKICAgICByZXR1
cm4gbmF2aWdhdGlvbjsKIH0KQEAgLTE5NTAsNyArMTk1MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaXNwYXRjaEFjdGl2aXR5U3RhdGVDaGFuZ2UoKQogICAgICAgICAgICAgLy8gSWYgd2UndmUg
c3RhcnRlZCB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIgYXMgcGFydCBvZiB0ZWxsaW5nIHRoZSB3
ZWIgcHJvY2VzcyB0byB1cGRhdGUgdGhlIGJhY2tpbmcgc3RvcmUKICAgICAgICAgICAgIC8vIHN0
YXRlLCBpdCBtaWdodCBub3Qgc2VuZCBiYWNrIGEgcmVwbHkgKHNpbmNlIGl0IHdvbid0IHBhaW50
IGFueXRoaW5nIGlmIHRoZSB3ZWIgcGFnZSBpcyBoaWRkZW4pIHNvIHdlCiAgICAgICAgICAgICAv
LyBzdG9wIHRoZSB1bnJlc3BvbnNpdmVuZXNzIHRpbWVyIGhlcmUuCi0gICAgICAgICAgICBtX3By
b2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdG9wKCk7CisgICAgICAgICAgICBtX3Byb2Nl
c3MtPnN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTI0
ODAsMTAgKzI0ODAsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnByb2Nlc3NOZXh0UXVldWVkTW91
c2VFdmVudCgpCiAKICAgICBXZWJFdmVudDo6VHlwZSBldmVudFR5cGUgPSBldmVudC50eXBlKCk7
CiAgICAgaWYgKGV2ZW50VHlwZSA9PSBXZWJFdmVudDo6TW91c2VEb3duIHx8IGV2ZW50VHlwZSA9
PSBXZWJFdmVudDo6TW91c2VGb3JjZUNoYW5nZWQgfHwgZXZlbnRUeXBlID09IFdlYkV2ZW50OjpN
b3VzZUZvcmNlRG93bikKLSAgICAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCku
c3RhcnRXaXRoTGF6eVN0b3AoKTsKKyAgICAgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVu
ZXNzVGltZXIoV2ViUHJvY2Vzc1Byb3h5OjpVc2VMYXp5U3RvcDo6WWVzKTsKICAgICBlbHNlIGlm
IChldmVudFR5cGUgIT0gV2ViRXZlbnQ6Ok1vdXNlTW92ZSkgewogICAgICAgICAvLyBOT1RFOiBU
aGlzIGRvZXMgbm90IHN0YXJ0IHRoZSByZXNwb25zaXZlbmVzcyB0aW1lciBiZWNhdXNlIG1vdXNl
IG1vdmUgc2hvdWxkIG5vdCBpbmRpY2F0ZSBpbnRlcmFjdGlvbi4KLSAgICAgICAgbV9wcm9jZXNz
LT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKKyAgICAgICAgbV9wcm9jZXNzLT5zdGFy
dFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKICAgICB9CiAKICAgICBMT0coTW91c2VIYW5kbGluZywg
IlVJUHJvY2Vzczogc2VudCBtb3VzZSBldmVudCAlcyAocXVldWUgc2l6ZSAlenUpIiwgd2ViTW91
c2VFdmVudFR5cGVTdHJpbmcoZXZlbnRUeXBlKSwgbV9tb3VzZUV2ZW50UXVldWUuc2l6ZSgpKTsK
QEAgLTI2NzIsMTEgKzI2NzIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlS2V5Ym9hcmRF
dmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiBldmVudCkKIAogICAgIG1fa2V5RXZl
bnRRdWV1ZS5hcHBlbmQoZXZlbnQpOwogCi0gICAgUmVzcG9uc2l2ZW5lc3NUaW1lciYgcmVzcG9u
c2l2ZW5lc3NUaW1lciA9IG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpOwotICAgIGlm
IChldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6OktleURvd24pCi0gICAgICAgIHJlc3BvbnNpdmVu
ZXNzVGltZXIuc3RhcnRXaXRoTGF6eVN0b3AoKTsKLSAgICBlbHNlCi0gICAgICAgIHJlc3BvbnNp
dmVuZXNzVGltZXIuc3RhcnQoKTsKKyAgICBtX3Byb2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NU
aW1lcihldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6OktleURvd24gPyBXZWJQcm9jZXNzUHJveHk6
OlVzZUxhenlTdG9wOjpZZXMgOiBXZWJQcm9jZXNzUHJveHk6OlVzZUxhenlTdG9wOjpObyk7CiAK
ICAgICBpZiAobV9rZXlFdmVudFF1ZXVlLnNpemUoKSA9PSAxKSB7IC8vIE90aGVyd2lzZSwgc2Vu
dCBmcm9tIERpZFJlY2VpdmVFdmVudCBtZXNzYWdlIGhhbmRsZXIuCiAgICAgICAgIExPRyhLZXlI
YW5kbGluZywgIiBVSSBwcm9jZXNzOiBzZW50IGtleUV2ZW50IGZyb20gaGFuZGxlS2V5Ym9hcmRF
dmVudCIpOwpAQCAtMjg0NywxMSArMjg0Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVH
ZXN0dXJlRXZlbnQoY29uc3QgTmF0aXZlV2ViR2VzdHVyZUV2ZW50JiBldmVudCkKICAgICBtX2dl
c3R1cmVFdmVudFF1ZXVlLmFwcGVuZChldmVudCk7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIGRv
aW5nIHNvbWUgY29hbGVzY2luZyBoZXJlLgogCi0gICAgUmVzcG9uc2l2ZW5lc3NUaW1lciYgcmVz
cG9uc2l2ZW5lc3NUaW1lciA9IG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpOwotICAg
IGlmIChldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6Okdlc3R1cmVTdGFydCB8fCBldmVudC50eXBl
KCkgPT0gV2ViRXZlbnQ6Okdlc3R1cmVDaGFuZ2UpCi0gICAgICAgIHJlc3BvbnNpdmVuZXNzVGlt
ZXIuc3RhcnRXaXRoTGF6eVN0b3AoKTsKLSAgICBlbHNlCi0gICAgICAgIHJlc3BvbnNpdmVuZXNz
VGltZXIuc3RhcnQoKTsKKyAgICBtX3Byb2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigo
ZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpHZXN0dXJlU3RhcnQgfHwgZXZlbnQudHlwZSgpID09
IFdlYkV2ZW50OjpHZXN0dXJlQ2hhbmdlKSA/IFdlYlByb2Nlc3NQcm94eTo6VXNlTGF6eVN0b3A6
OlllcyA/IFdlYlByb2Nlc3NQcm94eTo6VXNlTGF6eVN0b3A6Ok5vKTsKIAogICAgIHNlbmQoTWVz
c2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6R2VzdHVyZUV2ZW50KG1fd2ViUGFnZUlELCBldmVudCks
IDApOwogfQpAQCAtMjkyMiw3ICsyOTE0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVBy
ZXZlbnRhYmxlVG91Y2hFdmVudChOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVudCkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0
YXJ0KCk7CisgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKICAgICBi
b29sIGhhbmRsZWQgPSBmYWxzZTsKICAgICBib29sIHJlcGx5UmVjZWl2ZWQgPSBzZW5kU3luYyhN
ZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hFdmVudFN5bmMoZXZlbnQpLCBNZXNzYWdlczo6V2ViUGFn
ZTo6VG91Y2hFdmVudFN5bmM6OlJlcGx5KGhhbmRsZWQpLCAxX3MsIElQQzo6U2VuZFN5bmNPcHRp
b246OkZvcmNlRGlzcGF0Y2hXaGVuRGVzdGluYXRpb25Jc1dhaXRpbmdGb3JVbmJvdW5kZWRTeW5j
UmVwbHkpOwogICAgIC8vIElmIHRoZSBzeW5jIHJlcXVlc3QgaGFzIHRpbWVkIG91dCwgd2Ugc2hv
dWxkIGNvbnNpZGVyIHRoZSBldmVudCBoYW5kbGVkLiBUaGUgV2ViIFByb2Nlc3MgaXMgdG9vIGJ1
c3kgdG8gYW5zd2VyIGFueSBxdWVzdGlvbnMsIHNvIHRoZSBkZWZhdWx0IGFjdGlvbiBpcyBhbHNv
IGxpa2VseSB0byBoYXZlIGlzc3Vlcy4KQEAgLTI5MzQsNyArMjkyNiw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpoYW5kbGVQcmV2ZW50YWJsZVRvdWNoRXZlbnQoTmF0aXZlV2ViVG91Y2hFdmVudCYg
ZXZlbnQpCiAgICAgICAgIHBhZ2VDbGllbnQoKS5kb25lRGVmZXJyaW5nTmF0aXZlR2VzdHVyZXMo
aGFuZGxlZCk7CiAgICAgZWxzZSBpZiAoaGFuZGxlZCkKICAgICAgICAgbV9oYW5kbGVkU3luY2hy
b25vdXNUb3VjaEV2ZW50V2hpbGVEaXNwYXRjaGluZ1ByZXZlbnRhYmxlVG91Y2hTdGFydCA9IHRy
dWU7Ci0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RvcCgpOworICAgIG1f
cHJvY2Vzcy0+c3RvcFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJv
eHk6OnJlc2V0UG90ZW50aWFsVGFwU2VjdXJpdHlPcmlnaW4oKQpAQCAtMjk3OCw3ICsyOTcwLDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91
Y2hFdmVudCYgZXZlbnQpCiAgICAgLy8gd2UgZG8gbm90IHNlbmQgYW55IG9mIHRoZSBldmVudHMg
dG8gdGhlIHBhZ2UgZXZlbiBpZiBpcyBoYXMgbGlzdGVuZXJzLgogICAgIGlmICghbV9pc1BhZ2VT
dXNwZW5kZWQpIHsKICAgICAgICAgbV90b3VjaEV2ZW50UXVldWUuYXBwZW5kKGV2ZW50KTsKLSAg
ICAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKKyAgICAgICAg
bV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKICAgICAgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6VG91Y2hFdmVudChldmVudCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IGlmIChtX3RvdWNoRXZlbnRRdWV1ZS5pc0VtcHR5KCkpIHsKQEAgLTU0NTUsNyArNTQ0Nyw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFNlY3VyaXR5T3JpZ2luRGF0CiAjZW5kaWYKIAogICAgIC8vIFNpbmNlIHJ1bkphdmFT
Y3JpcHRBbGVydCgpIGNhbiBzcGluIGEgbmVzdGVkIHJ1biBsb29wIHdlIG5lZWQgdG8gdHVybiBv
ZmYgdGhlIHJlc3BvbnNpdmVuZXNzIHRpbWVyLgotICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5l
c3NUaW1lcigpLnN0b3AoKTsKKyAgICBtX3Byb2Nlc3MtPnN0b3BSZXNwb25zaXZlbmVzc1RpbWVy
KCk7CiAKICAgICBpZiAobV9jb250cm9sbGVkQnlBdXRvbWF0aW9uKSB7CiAgICAgICAgIGlmIChh
dXRvKiBhdXRvbWF0aW9uU2Vzc2lvbiA9IHByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmF1dG9tYXRp
b25TZXNzaW9uKCkpCkBAIC01NDc0LDcgKzU0NjYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVu
SmF2YVNjcmlwdENvbmZpcm0oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFNlY3VyaXR5T3JpZ2lu
RAogI2VuZGlmCiAKICAgICAvLyBTaW5jZSBydW5KYXZhU2NyaXB0Q29uZmlybSgpIGNhbiBzcGlu
IGEgbmVzdGVkIHJ1biBsb29wIHdlIG5lZWQgdG8gdHVybiBvZmYgdGhlIHJlc3BvbnNpdmVuZXNz
IHRpbWVyLgotICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0b3AoKTsKKyAg
ICBtX3Byb2Nlc3MtPnN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAKICAgICBpZiAobV9jb250
cm9sbGVkQnlBdXRvbWF0aW9uKSB7CiAgICAgICAgIGlmIChhdXRvKiBhdXRvbWF0aW9uU2Vzc2lv
biA9IHByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmF1dG9tYXRpb25TZXNzaW9uKCkpCkBAIC01NDkz
LDcgKzU0ODUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgU2VjdXJpdHlPcmlnaW5EYQogICAgIGV4aXRGdWxsc2NyZWVu
SW1tZWRpYXRlbHkoKTsKICNlbmRpZgogICAgIC8vIFNpbmNlIHJ1bkphdmFTY3JpcHRQcm9tcHQo
KSBjYW4gc3BpbiBhIG5lc3RlZCBydW4gbG9vcCB3ZSBuZWVkIHRvIHR1cm4gb2ZmIHRoZSByZXNw
b25zaXZlbmVzcyB0aW1lci4KLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5z
dG9wKCk7CisgICAgbV9wcm9jZXNzLT5zdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogCiAgICAg
aWYgKG1fY29udHJvbGxlZEJ5QXV0b21hdGlvbikgewogICAgICAgICBpZiAoYXV0byogYXV0b21h
dGlvblNlc3Npb24gPSBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hdXRvbWF0aW9uU2Vzc2lvbigp
KQpAQCAtNTY2MCw3ICs1NjUyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU2VjdXJpdHkKICAgICB9CiAK
ICAgICAvLyBTaW5jZSBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSBjYW4gc3BpbiBhIG5l
c3RlZCBydW4gbG9vcCB3ZSBuZWVkIHRvIHR1cm4gb2ZmIHRoZSByZXNwb25zaXZlbmVzcyB0aW1l
ciBhbmQgdGhlIHRyeUNsb3NlIHRpbWVyLgotICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NU
aW1lcigpLnN0b3AoKTsKKyAgICBtX3Byb2Nlc3MtPnN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCk7
CiAgICAgbV90cnlDbG9zZVRpbWVvdXRUaW1lci5zdG9wKCk7CiAgICAgbV91aUNsaWVudC0+cnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCp0aGlzLCBtZXNzYWdlLCBmcmFtZSwgV1RGTW92ZShz
ZWN1cml0eU9yaWdpbiksIFdURk1vdmUocmVwbHkpKTsKIH0KQEAgLTU3MDcsNyArNTY5OSw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyCiAgICAgfQogCiAgICAgLy8gU2luY2UgcnVuT3BlblBh
bmVsKCkgY2FuIHNwaW4gYSBuZXN0ZWQgcnVuIGxvb3Agd2UgbmVlZCB0byB0dXJuIG9mZiB0aGUg
cmVzcG9uc2l2ZW5lc3MgdGltZXIuCi0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVy
KCkuc3RvcCgpOworICAgIG1fcHJvY2Vzcy0+c3RvcFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIAog
ICAgIGlmICghbV91aUNsaWVudC0+cnVuT3BlblBhbmVsKCp0aGlzLCBmcmFtZSwgV1RGTW92ZShm
cmFtZVNlY3VyaXR5T3JpZ2luKSwgcGFyYW1ldGVycy5wdHIoKSwgbV9vcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lci5nZXQoKSkpIHsKICAgICAgICAgaWYgKCFwYWdlQ2xpZW50KCkuaGFuZGxlUnVuT3Bl
blBhbmVsKHRoaXMsIGZyYW1lLCBwYXJhbWV0ZXJzLnB0cigpLCBtX29wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLmdldCgpKSkKQEAgLTYyOTUsNyArNjI4Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
aG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIHVpbnQ2NF90IHRleHREaXJlY3Rpb24s
IGNvCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFNpbmNlIHNob3dQb3B1cE1lbnUoKSBjYW4g
c3BpbiBhIG5lc3RlZCBydW4gbG9vcCB3ZSBuZWVkIHRvIHR1cm4gb2ZmIHRoZSByZXNwb25zaXZl
bmVzcyB0aW1lci4KLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdG9wKCk7
CisgICAgbV9wcm9jZXNzLT5zdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogCiAgICAgLy8gU2hv
d2luZyBhIHBvcHVwIG1lbnUgcnVucyBhIG5lc3RlZCBydW5sb29wLCB3aGljaCBjYW4gaGFuZGxl
IG1lc3NhZ2VzIHRoYXQgY2F1c2UgfHRoaXN8IHRvIGdldCBjbG9zZWQuCiAgICAgUmVmPFdlYlBh
Z2VQcm94eT4gcHJvdGVjdCgqdGhpcyk7CkBAIC02MzM4LDcgKzYzMzAsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6c2hvd0NvbnRleHRNZW51KENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0
TWVudUNvbnRleHREYQogICAgIG1fYWN0aXZlQ29udGV4dE1lbnUgPSBwYWdlQ2xpZW50KCkuY3Jl
YXRlQ29udGV4dE1lbnVQcm94eSgqdGhpcywgV1RGTW92ZShjb250ZXh0TWVudUNvbnRleHREYXRh
KSwgdXNlckRhdGEpOwogCiAgICAgLy8gU2luY2Ugc2hvd0NvbnRleHRNZW51KCkgY2FuIHNwaW4g
YSBuZXN0ZWQgcnVuIGxvb3Agd2UgbmVlZCB0byB0dXJuIG9mZiB0aGUgcmVzcG9uc2l2ZW5lc3Mg
dGltZXIuCi0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RvcCgpOworICAg
IG1fcHJvY2Vzcy0+c3RvcFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIAogICAgIC8vIG1fYWN0aXZl
Q29udGV4dE1lbnUgbWlnaHQgZ2V0IGNsZWFyZWQgaWYgV2ViUGFnZVByb3h5IGNvZGUgaXMgcmUt
ZW50ZXJlZCBmcm9tIHRoZSBtZW51IHJ1bmxvb3Agb3IgZGVsZWdhdGVzLgogICAgIFJlZjxXZWJD
b250ZXh0TWVudVByb3h5PiBwcm90ZWN0b3IoKm1fYWN0aXZlQ29udGV4dE1lbnUpOwpAQCAtNjY4
NSw3ICs2Njc3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVFdmVudCh1aW50MzJf
dCBvcGFxdWVUeXBlLCBib29sIGhhbmRsZWQpCiAgICAgY2FzZSBXZWJFdmVudDo6R2VzdHVyZUNo
YW5nZToKICAgICBjYXNlIFdlYkV2ZW50OjpHZXN0dXJlRW5kOgogI2VuZGlmCi0gICAgICAgIG1f
cHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0b3AoKTsKKyAgICAgICAgbV9wcm9jZXNz
LT5zdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAg
LTc5NDAsNyArNzkzMiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkcmF3Rm9vdGVyKFdlYkZyYW1l
UHJveHkmIGZyYW1lLCBGbG9hdFJlY3QmJiByZWN0KQogdm9pZCBXZWJQYWdlUHJveHk6OnJ1bk1v
ZGFsKCkKIHsKICAgICAvLyBTaW5jZSBydW5Nb2RhbCgpIGNhbiAoYW5kIHByb2JhYmx5IHdpbGwp
IHNwaW4gYSBuZXN0ZWQgcnVuIGxvb3Agd2UgbmVlZCB0byB0dXJuIG9mZiB0aGUgcmVzcG9uc2l2
ZW5lc3MgdGltZXIuCi0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RvcCgp
OworICAgIG1fcHJvY2Vzcy0+c3RvcFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIAogICAgIC8vIE91
ciBDb25uZWN0aW9uJ3MgcnVuIGxvb3AgbWlnaHQgaGF2ZSBtb3JlIG1lc3NhZ2VzIHdhaXRpbmcg
dG8gYmUgaGFuZGxlZCBhZnRlciB0aGlzIFJ1bk1vZGFsIG1lc3NhZ2UuCiAgICAgLy8gVG8gbWFr
ZSBzdXJlIHRoZXkgYXJlIGhhbmRsZWQgaW5zaWRlIG9mIHRoZSBuZXN0ZWQgbW9kYWwgcnVuIGxv
b3Agd2UgbXVzdCBmaXJzdCBzaWduYWwgdGhlIENvbm5lY3Rpb24ncwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggZTI3Y2QxNjc4YTdjNmNiMzcxZTk0
Y2UwNGRiN2I2MDU1NTkwZmE4Zi4uNzE3ZDNmMWYwODc5NTk5MzUyZmI5MmE4OTg5ZDVhMmE1NGY1
NDI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBA
IC04NjMsNyArODYzLDI2IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDaGFuZ2VJc1Jlc3Bv
bnNpdmUoKQogCiBib29sIFdlYlByb2Nlc3NQcm94eTo6bWF5QmVjb21lVW5yZXNwb25zaXZlKCkK
IHsKLSAgICByZXR1cm4gIXBsYXRmb3JtSXNCZWluZ0RlYnVnZ2VkKCk7CisjaWYgIWRlZmluZWQo
TkRFQlVHKSB8fCBBU0FOX0VOQUJMRUQKKyAgICAvLyBEaXNhYmxlIHJlc3BvbnNpdmVuZXNzIGNo
ZWNrcyBpbiBzbG93IGJ1aWxkcyB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZXMuCisgICAgcmV0dXJu
IGZhbHNlOworI2Vsc2UKKyAgICBpZiAocGxhdGZvcm1Jc0JlaW5nRGVidWdnZWQoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgc3RhdGljIGJvb2wgaXNMaWJnbWFsbG9jRW5hYmxlZCA9
IFtdIHsKKyAgICAgICAgY2hhciogdmFyaWFibGUgPSBnZXRlbnYoIkRZTERfSU5TRVJUX0xJQlJB
UklFUyIpOworICAgICAgICBpZiAoIXZhcmlhYmxlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICBpZiAoIXN0cnN0cih2YXJpYWJsZSwgImxpYmdtYWxsb2MiKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSgpOworICAgIGlm
IChpc0xpYmdtYWxsb2NFbmFibGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1
cm4gdHJ1ZTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1
bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKQEAgLTg5Miw2ICs5MTEsMTEgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVy
LCBJUEM6OkNvbm5lY3QKIAogICAgIHVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVySWZOZWVkZWQo
KTsKICNlbmRpZgorCisgICAgaWYgKG1fc2hvdWxkU3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyV2hl
bkxhdW5jaGVkKSB7CisgICAgICAgIGF1dG8gdXNlTGF6eVN0b3AgPSAqc3RkOjpleGNoYW5nZSht
X3Nob3VsZFN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcldoZW5MYXVuY2hlZCwgV1RGOjpudWxsb3B0
KTsKKyAgICAgICAgc3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyKHVzZUxhenlTdG9wKTsKKyAgICB9
CiB9CiAKIFdlYkZyYW1lUHJveHkqIFdlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpIGNvbnN0CkBAIC0xMTIyLDYgKzExNDYsMTkgQEAgdm9pZCBXZWJQcm9j
ZXNzUHJveHk6OnN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCkKICAgICByZXNwb25zaXZlbmVzc1Rp
bWVyKCkuc3RvcCgpOwogfQogCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6c3RhcnRSZXNwb25zaXZl
bmVzc1RpbWVyKFVzZUxhenlTdG9wIHVzZUxhenlTdG9wKQoreworICAgIGlmIChpc0xhdW5jaGlu
ZygpKSB7CisgICAgICAgIG1fc2hvdWxkU3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyV2hlbkxhdW5j
aGVkID0gdXNlTGF6eVN0b3A7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAodXNl
TGF6eVN0b3AgPT0gVXNlTGF6eVN0b3A6OlllcykKKyAgICAgICAgcmVzcG9uc2l2ZW5lc3NUaW1l
cigpLnN0YXJ0V2l0aExhenlTdG9wKCk7CisgICAgZWxzZQorICAgICAgICByZXNwb25zaXZlbmVz
c1RpbWVyKCkuc3RhcnQoKTsKK30KKwogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmVuYWJsZVN1ZGRl
blRlcm1pbmF0aW9uKCkKIHsKICAgICBpZiAoc3RhdGUoKSAhPSBTdGF0ZTo6UnVubmluZykKQEAg
LTEzNDIsNyArMTM3OSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojppc1Jlc3BvbnNpdmUoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sIGlzV2ViUHJvY2Vzc1Jlc3BvCiAgICAgaWYgKGNhbGxi
YWNrKQogICAgICAgICBtX2lzUmVzcG9uc2l2ZUNhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjYWxs
YmFjaykpOwogCi0gICAgcmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CisgICAgc3RhcnRS
ZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6TWFp
blRocmVhZFBpbmcoKSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKaW5kZXggNmMxOTUzMGFkYzE2MTVmOTk3ODUxMjU5MmQ2NTk5MDcxNWQ1ODE3NS4u
ZWY2NGIzYzJlOTQyODA5NjU5NDgxMTVmN2FiZjM3NDVlNmU3ZjYyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTE3NSw3ICsxNzUsNiBAQCBwdWJsaWM6
CiAKICAgICBSZWZQdHI8QVBJOjpVc2VySW5pdGlhdGVkQWN0aW9uPiB1c2VySW5pdGlhdGVkQWN0
aXZpdHkodWludDY0X3QpOwogCi0gICAgUmVzcG9uc2l2ZW5lc3NUaW1lciYgcmVzcG9uc2l2ZW5l
c3NUaW1lcigpIHsgcmV0dXJuIG1fcmVzcG9uc2l2ZW5lc3NUaW1lcjsgfQogICAgIGJvb2wgaXNS
ZXNwb25zaXZlKCkgY29uc3Q7CiAKICAgICBXZWJGcmFtZVByb3h5KiB3ZWJGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OwpAQCAtMjE3LDYgKzIxNiw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgcmVxdWVzdFRlcm1pbmF0aW9uKFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbik7CiAK
KyAgICBlbnVtIGNsYXNzIFVzZUxhenlTdG9wIDogYm9vbCB7IE5vLCBZZXMgfTsKKyAgICB2b2lk
IHN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcihVc2VMYXp5U3RvcCA9IFVzZUxhenlTdG9wOjpObyk7
CiAgICAgdm9pZCBzdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogCiAgICAgUmVmUHRyPEFQSTo6
T2JqZWN0PiB0cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKEFQSTo6T2JqZWN0Kik7CkBAIC00MTYs
NiArNDE3LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZz4m
IHBsYXRmb3JtUGF0aHNXaXRoQXNzdW1lZFJlYWRBY2Nlc3MoKTsKIAorICAgIFJlc3BvbnNpdmVu
ZXNzVGltZXImIHJlc3BvbnNpdmVuZXNzVGltZXIoKSB7IHJldHVybiBtX3Jlc3BvbnNpdmVuZXNz
VGltZXI7IH0KICAgICB2b2lkIHVwZGF0ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCk7
CiAKICAgICB2b2lkIHByb2Nlc3NEaWRUZXJtaW5hdGVPckZhaWxlZFRvTGF1bmNoKCk7CkBAIC01
NDAsNiArNTQyLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKSAm
JiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGJvb2wgbV9oYXNJc3N1ZWRBdHRhY2htZW50RWxl
bWVudFJlbGF0ZWRTYW5kYm94RXh0ZW5zaW9ucyB7IGZhbHNlIH07CiAjZW5kaWYKKyAgICBPcHRp
b25hbDxVc2VMYXp5U3RvcD4gbV9zaG91bGRTdGFydFJlc3BvbnNpdmVuZXNzVGltZXJXaGVuTGF1
bmNoZWQ7CiAKICNpZiBQTEFURk9STShXQVRDSE9TKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9j
ZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHk+IG1fYmFja2dyb3VuZEFjdGl2aXR5Rm9y
RnVsbHNjcmVlbkZvcm1Db250cm9sczsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYjc3NTAxYmQ1ODAwMmFiZjMyOTc5YjJh
ZjcwYzIyODViNjg0MDAwLi44ZjEzYmE5NGEyZDk5MzI2OTY1MTQ5N2Y0Njc0YWIzZWJiMWZjYzVh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDEtMzEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbIGlPUyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2tleS1nZW5lcmF0b3JzL3JlYWRpbmctYXV0b2luY3JlbWVudC1pbmRl
eGVzLWN1cnNvcnMuYW55LnNlcnZpY2V3b3JrZXIuaHRtbCBpcyBmbGFreSBmYWlsaW5nLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2OTM0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81ODk5MTU4MT4KKworICAgICAgICBVbnNraXAgdGVzdCB3aGlj
aCBzaG91bGQgbm8gbG9uZ2VyIGJlIGZsYWt5LgorCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdr
Mi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTAxLTMxICBNYXR0IExld2lzICA8amxld2lzM0Bh
cHBsZS5jb20+CiAKICAgICAgICAgTGF5b3V0IFRlc3QgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvZmlyZS1lcnJvci1ldmVudC1leGNlcHRpb24uaHRtbCBpcyBhIEZs
YWt5IEZhaWx1cmUgb24gbWFjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mt
d2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggMmVhYzk0Y2M2NTUwOTE4ZjhiZWJmNTBmYmY5NGM3NGI4MmUxM2I4
Yi4uZDljYzk4MWNmNWU5NzM2NTQ3OTAyN2EyZDExNmJhYzM0ZWYzNmI3OCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM1OSw4ICsxMzU5
LDYgQEAgd2Via2l0Lm9yZy9iLzIwNjY4NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2JlYWNvbi9pZGxoYXJuZXNzLmFueS5odG1sIFsKIAogd2Via2l0Lm9yZy9iLzIwNjc1MiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJ
bWFnZUJpdG1hcC1zZXJpYWxpemFibGUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLXdlYmtpdC5v
cmcvYi8yMDY5MzQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5
LWdlbmVyYXRvcnMvcmVhZGluZy1hdXRvaW5jcmVtZW50LWluZGV4ZXMtY3Vyc29ycy5hbnkuc2Vy
dmljZXdvcmtlci5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzIwNjk0NiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLW1h
aW4tZnJhbWUuaHRtbCBbIFBhc3MgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvMjA2OTY1IHN0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1wcml2YXRlLmh0bWwgWyBQYXNzIEZh
aWx1cmUgXQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>