<?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>153499</bug_id>
          
          <creation_ts>2016-01-26 12:26:46 -0800</creation_ts>
          <short_desc>Web Inspector: console.profile should use the new Sampling Profiler</short_desc>
          <delta_ts>2016-06-20 12:13:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>158897</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>burg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mattbaker</cc>
    
    <cc>mkwst</cc>
    
    <cc>msaboff</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1158923</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-01-26 12:26:46 -0800</bug_when>
    <thetext>* SUMMARY
console.profile should use the new Sampling Profiler.

* NOTES
- Currently it uses the LegacyProfiler. It should work with the new Sampling Profiler.
- How that looks is yet to be determined.
  - Should it enable/disable some set of instruments the frontend has told the backend about?
  - Should it just start/stop the ScriptProfiler? which will send profiles to the frontend when done.
  - Should it send sample payload to the frontend on console.profileEnd?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1158924</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-01-26 12:27:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/24352431&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198080</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-31 22:59:33 -0700</bug_when>
    <thetext>I have this working now that we&apos;ve removed the LegacyProfiler.

It takes advantage of the frontend informing the backend of the enabled Instruments (which was added for auto record on page navigations).

I just need to clean the patches up, test, and justify the policy choices I made.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202368</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-06-14 15:51:37 -0700</bug_when>
    <thetext>*** Bug 136466 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202373</commentid>
    <comment_count>4</comment_count>
      <attachid>281294</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-06-14 16:02:40 -0700</bug_when>
    <thetext>Created attachment 281294
[PATCH] Proposed Fix

Depends on bug 158762.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202456</commentid>
    <comment_count>5</comment_count>
      <attachid>281316</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-06-14 19:57:46 -0700</bug_when>
    <thetext>Created attachment 281316
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202997</commentid>
    <comment_count>6</comment_count>
      <attachid>281316</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-06-16 14:19:15 -0700</bug_when>
    <thetext>Comment on attachment 281316
[PATCH] Proposed Fix

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

Very clean!

&gt; Source/JavaScriptCore/inspector/agents/InspectorScriptProfilerAgent.cpp:223
&gt; +}
&gt; +void InspectorScriptProfilerAgent::programmaticCaptureStopped()

Newline.

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:249
&gt; +    // Allow duplicate unnamed profiles. Disallow duplicate named profiles.
&gt; +    if (!title.isEmpty()) {

Sad this needs duplicated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203158</commentid>
    <comment_count>7</comment_count>
      <attachid>281520</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-06-16 18:57:14 -0700</bug_when>
    <thetext>Created attachment 281520
[PATCH] For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203174</commentid>
    <comment_count>8</comment_count>
      <attachid>281520</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-16 19:26:48 -0700</bug_when>
    <thetext>Comment on attachment 281520
[PATCH] For Landing

Clearing flags on attachment: 281520

Committed r202152: &lt;http://trac.webkit.org/changeset/202152&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203518</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-06-17 20:26:49 -0700</bug_when>
    <thetext>The new test is very unstable, timing out very frequently: 

https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=inspector%2Ftimeline%2FsetInstruments-programmatic-capture.html

Rolling out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203532</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-06-17 20:34:22 -0700</bug_when>
    <thetext>Rolled out in https://trac.webkit.org/r202196</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203822</commentid>
    <comment_count>11</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-06-20 12:09:29 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; The new test is very unstable, timing out very frequently: 

This appears to be the same issue that affects all inspector tests.

Locally, I ran the test, and the directory 400 times in Release and Debug mode without issue. I suggest treating this test the same [ Pass Timeout ] until we have time to investigate the systemic inspector test issue. I filed bug 158948 for these specific timeouts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203825</commentid>
    <comment_count>12</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-06-20 12:13:12 -0700</bug_when>
    <thetext>&lt;https://trac.webkit.org/changeset/202234&gt; with TestExpectations</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281294</attachid>
            <date>2016-06-14 16:02:40 -0700</date>
            <delta_ts>2016-06-14 19:57:46 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>profile-1.patch</filename>
            <type>text/plain</type>
            <size>44059</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MTUzMzZmLi5lZWRmMTU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTYtMDYt
MTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBjb25zb2xlLnByb2ZpbGUgc2hvdWxkIHVzZSB0aGUgbmV3IFNhbXBsaW5nIFBy
b2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTM0OTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0MzUyNDMxPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3Nl
dEluc3RydW1lbnRzLXByb2dyYW1tYXRpYy1jYXB0dXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3NldEluc3RydW1lbnRzLXByb2dyYW1tYXRpYy1j
YXB0dXJlLmh0bWw6IEFkZGVkLgorICAgICAgICBOZXcgdGVzdCB0aGF0IHRoZSBiYWNrZW5kIGF1
dG8tc3RhcnRzIGluc3RydW1lbnRzIGR1cmluZyBwcm9ncmFtbWF0aWMgY2FwdHVyZS4KKworMjAx
Ni0wNi0xNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFJlbmFtZSBUaW1lbGluZS5zZXRBdXRvQ2FwdHVyZUluc3RydW1lbnRz
IHRvIFRpbWVsaW5lLnNldEluc3RydW1lbnRzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg3NjIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lL3NldEluc3RydW1lbnRzLXByb2dyYW1tYXRpYy1jYXB0dXJlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS9zZXRJbnN0cnVtZW50cy1w
cm9ncmFtbWF0aWMtY2FwdHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOTQyNmJlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS9zZXRJbnN0cnVtZW50cy1wcm9ncmFtbWF0aWMtY2FwdHVyZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6IEluc2lkZSBO
b0luc3RydW1lbnRzUHJvZ3JhbW1hdGljQ2FwdHVyZSBwcm9maWxlCitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgODogSW5zaWRlIE11bHRpcGxlSW5zdHJ1bWVudHNQcm9ncmFtbWF0aWNDYXB0dXJlIHBy
b2ZpbGUKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4OiBJbnNpZGUgTm9JbnN0cnVtZW50c1Byb2dy
YW1tYXRpY0NhcHR1cmVBZ2FpbiBwcm9maWxlCitUZXN0cyBwcm9ncmFtbWF0aWMgY2FwdHVyZSAo
Y29uc29sZS5wcm9maWxlL3Byb2ZpbGVFbmQpIGF1dG9tYXRpY2FsbHkgc3RhcnRzIGluc3RydW1l
bnRzIHNldCB2aWEgVGltZWxpbmUuc2V0SW5zdHJ1bWVudHMuCisKKworPT0gUnVubmluZyB0ZXN0
IHN1aXRlOiBUaW1lbGluZS5zZXRJbnN0cnVtZW50cy5wcm9ncmFtbWF0aWMtY2FwdHVyZQorLS0g
UnVubmluZyB0ZXN0IGNhc2U6IE5vSW5zdHJ1bWVudHNQcm9ncmFtbWF0aWNDYXB0dXJlCitQQVNT
OiBTaG91bGQgbm90IGJlIGFuIGVycm9yIHNldHRpbmcgdmFsaWQgaW5zdHJ1bWVudHMuCitQQVNT
OiBUaW1lbGluZS5wcm9ncmFtbWF0aWNDYXB0dXJlU3RhcnRlZAorUEFTUzogU2NyaXB0UHJvZmls
ZXIuc3RhcnRUcmFja2luZworUEFTUzogVGltZWxpbmUucHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3Bw
ZWQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IE11bHRpcGxlSW5zdHJ1bWVudHNQcm9ncmFtbWF0
aWNDYXB0dXJlCitQQVNTOiBTaG91bGQgbm90IGJlIGFuIGVycm9yIHNldHRpbmcgdmFsaWQgaW5z
dHJ1bWVudHMuCitQQVNTOiBUaW1lbGluZS5wcm9ncmFtbWF0aWNDYXB0dXJlU3RhcnRlZAorUEFT
UzogU2NyaXB0UHJvZmlsZXIuc3RhcnRUcmFja2luZworUEFTUzogSGVhcC50cmFja2luZ1N0YXJ0
CitQQVNTOiBUaW1lbGluZS5wcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZAorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogTm9JbnN0cnVtZW50c1Byb2dyYW1tYXRpY0NhcHR1cmVBZ2FpbgorUEFTUzog
U2hvdWxkIG5vdCBiZSBhbiBlcnJvciBzZXR0aW5nIHZhbGlkIGluc3RydW1lbnRzLgorUEFTUzog
VGltZWxpbmUucHJvZ3JhbW1hdGljQ2FwdHVyZVN0YXJ0ZWQKK1BBU1M6IFNjcmlwdFByb2ZpbGVy
LnN0YXJ0VHJhY2tpbmcKK1BBU1M6IFRpbWVsaW5lLnByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVk
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS9zZXRJbnN0cnVt
ZW50cy1wcm9ncmFtbWF0aWMtY2FwdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lL3NldEluc3RydW1lbnRzLXByb2dyYW1tYXRpYy1jYXB0dXJlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTgxZGFlNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS9zZXRJbnN0cnVtZW50cy1wcm9ncmFtbWF0aWMt
Y2FwdHVyZS5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
cHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdHJpZ2dlclBy
b2dyYW1tYXRpY0NhcHR1cmUobWVzc2FnZSkgeworICAgIGNvbnNvbGUucHJvZmlsZSgpOworICAg
IGNvbnNvbGUubG9nKGBJbnNpZGUgJHttZXNzYWdlfSBwcm9maWxlYCk7CisgICAgY29uc29sZS5w
cm9maWxlRW5kKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IFBy
b3RvY29sVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJUaW1lbGluZS5zZXRJbnN0cnVtZW50cy5wcm9n
cmFtbWF0aWMtY2FwdHVyZSIpOworCisgICAgbGV0IGhlYXBFeHBlY3RlZCA9IGZhbHNlOworICAg
IGxldCBwcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCA9IG51bGw7CisKKyAgICBJbnNwZWN0b3JQ
cm90b2NvbC5ldmVudEhhbmRsZXJbIlRpbWVsaW5lLnByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVk
Il0gPSAoKSA9PiB7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJUaW1lbGluZS5wcm9ncmFt
bWF0aWNDYXB0dXJlU3RhcnRlZCIpOworICAgIH07CisgICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZl
bnRIYW5kbGVyWyJUaW1lbGluZS5wcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCJdID0gKCkgPT4g
eworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygiVGltZWxpbmUucHJvZ3JhbW1hdGljQ2FwdHVy
ZVN0b3BwZWQiKTsKKyAgICAgICAgcHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3BwZWQoKTsKKyAgICB9
OworCisgICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJTY3JpcHRQcm9maWxlci50
cmFja2luZ1N0YXJ0Il0gPSAoKSA9PiB7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJTY3Jp
cHRQcm9maWxlci5zdGFydFRyYWNraW5nIik7CisgICAgfTsKKworICAgIEluc3BlY3RvclByb3Rv
Y29sLmV2ZW50SGFuZGxlclsiSGVhcC50cmFja2luZ1N0YXJ0Il0gPSAoKSA9PiB7CisgICAgICAg
IGlmIChoZWFwRXhwZWN0ZWQpCisgICAgICAgICAgICBQcm90b2NvbFRlc3QucGFzcygiSGVhcC50
cmFja2luZ1N0YXJ0Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5m
YWlsKCJVbmV4cGVjdGVkIEhlYXAudHJhY2tpbmdTdGFydCIpOworICAgIH07CisKKyAgICBzdWl0
ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJOb0luc3RydW1lbnRzUHJvZ3JhbW1hdGlj
Q2FwdHVyZSIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAg
ICAgIGhlYXBFeHBlY3RlZCA9IGZhbHNlOworICAgICAgICAgICAgcHJvZ3JhbW1hdGljQ2FwdHVy
ZVN0b3BwZWQgPSByZXNvbHZlOworCisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5k
Q29tbWFuZCgiVGltZWxpbmUuc2V0SW5zdHJ1bWVudHMiLCB7aW5zdHJ1bWVudHM6IFtdfSwgKG1l
c3NhZ2VPYmplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhh
dCghbWVzc2FnZU9iamVjdC5lcnJvciwgIlNob3VsZCBub3QgYmUgYW4gZXJyb3Igc2V0dGluZyB2
YWxpZCBpbnN0cnVtZW50cy4iKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgUHJvdG9j
b2xUZXN0LmV2YWx1YXRlSW5QYWdlKCJ0cmlnZ2VyUHJvZ3JhbW1hdGljQ2FwdHVyZSgnTm9JbnN0
cnVtZW50c1Byb2dyYW1tYXRpY0NhcHR1cmUnKSIpOworICAgICAgICB9CisgICAgfSk7CisKKyAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJNdWx0aXBsZUluc3RydW1lbnRz
UHJvZ3JhbW1hdGljQ2FwdHVyZSIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+
IHsKKyAgICAgICAgICAgIGhlYXBFeHBlY3RlZCA9IHRydWU7CisgICAgICAgICAgICBwcm9ncmFt
bWF0aWNDYXB0dXJlU3RvcHBlZCA9IHJlc29sdmU7CisKKyAgICAgICAgICAgIEluc3BlY3RvclBy
b3RvY29sLnNlbmRDb21tYW5kKCJUaW1lbGluZS5zZXRJbnN0cnVtZW50cyIsIHtpbnN0cnVtZW50
czogWyJTY3JpcHRQcm9maWxlciIsICJIZWFwIl19LCAobWVzc2FnZU9iamVjdCkgPT4geworICAg
ICAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0KCFtZXNzYWdlT2JqZWN0LmVycm9y
LCAiU2hvdWxkIG5vdCBiZSBhbiBlcnJvciBzZXR0aW5nIHZhbGlkIGluc3RydW1lbnRzLiIpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXZhbHVhdGVJblBhZ2Uo
InRyaWdnZXJQcm9ncmFtbWF0aWNDYXB0dXJlKCdNdWx0aXBsZUluc3RydW1lbnRzUHJvZ3JhbW1h
dGljQ2FwdHVyZScpIik7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKKyAgICAgICAgbmFtZTogIk5vSW5zdHJ1bWVudHNQcm9ncmFtbWF0aWNDYXB0dXJlQWdh
aW4iLAorICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICBo
ZWFwRXhwZWN0ZWQgPSB0cnVlOworICAgICAgICAgICAgcHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3Bw
ZWQgPSByZXNvbHZlOworCisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFu
ZCgiVGltZWxpbmUuc2V0SW5zdHJ1bWVudHMiLCB7aW5zdHJ1bWVudHM6IFtdfSwgKG1lc3NhZ2VP
YmplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdCghbWVz
c2FnZU9iamVjdC5lcnJvciwgIlNob3VsZCBub3QgYmUgYW4gZXJyb3Igc2V0dGluZyB2YWxpZCBp
bnN0cnVtZW50cy4iKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgUHJvdG9jb2xUZXN0
LmV2YWx1YXRlSW5QYWdlKCJ0cmlnZ2VyUHJvZ3JhbW1hdGljQ2FwdHVyZSgnTm9JbnN0cnVtZW50
c1Byb2dyYW1tYXRpY0NhcHR1cmVBZ2FpbicpIik7CisgICAgICAgIH0KKyAgICB9KTsKKworICAg
IHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyBwcm9ncmFtbWF0aWMgY2FwdHVyZSAo
Y29uc29sZS5wcm9maWxlL3Byb2ZpbGVFbmQpIGF1dG9tYXRpY2FsbHkgc3RhcnRzIGluc3RydW1l
bnRzIHNldCB2aWEgVGltZWxpbmUuc2V0SW5zdHJ1bWVudHMuPC9wPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNGU3YzYzZS4uYjVjZTcwZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjMgQEAKIDIwMTYtMDYtMTQgIEpvc2VwaCBQZWNv
cmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBjb25z
b2xlLnByb2ZpbGUgc2hvdWxkIHVzZSB0aGUgbmV3IFNhbXBsaW5nIFByb2ZpbGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM0OTkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzI0MzUyNDMxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSBjb25zb2xlLnByb2ZpbGUvcHJvZmlsZUVuZCBi
ZWhhdmUgc2xpZ2h0bHkgZGlmZmVyZW50bHkKKyAgICAgICAgYmV0d2VlbiBKU0NvbnRleHQgYW5k
IFdlYiBpbnNwZWN0aW9uLiBVbmlmeWluZyB3aWxsIGJlIHBhcnQgb2Y6CisgICAgICAgIDxodHRw
czovL3dlYmtpdC5vcmcvYi8xNTg3NTM+IEdlbmVyYWxpemUgdGhlIGNvbmNlcHQgb2YgSW5zdHJ1
bWVudHMgb24gdGhlIGJhY2tlbmQKKworICAgICAgICBCb3RoIEpTQ29udGV4dCBhbmQgV2ViIGlu
c3BlY3Rpb24ga2VlcCB0cmFjayBvZiBhY3RpdmUKKyAgICAgICAgcHJvZmlsZXMgc3RhcnRlZCBh
bmQgc3RvcHBlZCB2aWEgY29uc29sZS5wcm9maWxlL3Byb2ZpbGVFbmQuCisKKyAgICAgICAgSlND
b250ZXh0IGluc3BlY3Rpb24gc2VuZHMgaXRzIHByb2dyYW1tYXRpYyBzdGFydC9zdG9wCisgICAg
ICAgIHZpYSB0aGUgU2NyaXB0UHJvZmlsZXIgZG9tYWluLgorCisgICAgICAgIFdlYiBpbnNwZWN0
aW9uIHNlbmRzIGl0cyBwcm9ncmFtbWF0aWMgc3RhcnQvc3RvcAorICAgICAgICB2aWEgdGhlIFRp
bWVsaW5lIGRvbWFpbiwgYW5kIGFsc28gd2lsbCBzdGFydC9zdG9wIGJhY2tlbmQKKyAgICAgICAg
bGlzdCBvZiBJbnN0cnVtZW50cy4KKworICAgICAgICBUaGUgZnVuY3Rpb25hbCBkaWZmZXJlbmNl
cyBiZXR3ZWVuIHRoZXNlIGlzIHRoYXQgZm9yIEpTQ29udGV4dAorICAgICAgICBpbnNwZWN0aW9u
LCBjb25zb2xlLnByb2ZpbGUgb25seSBzdGFydHMvc3RvcHMgdGhlIFNjcmlwdFByb2ZpbGVyCisg
ICAgICAgIGRvbWFpbiwgYW5kIGRvZXMgbm90IGF1dG8tc3RhcnQgb3RoZXIgaW5zdHJ1bWVudHMu
IFRoaXMgaXNuJ3QgcmVhbGx5CisgICAgICAgIGEgcHJvYmxlbSByaWdodCBub3cgZ2l2ZW4gdGhl
IGluc3RydW1lbnRzIGF2YWlsYWJsZSBmb3IgSlNDb250ZXh0CisgICAgICAgIGluc3BlY3Rpb247
IGJ1dCBpdCB3aWxsIGJlIG5pY2UgdG8gdW5pZnkgYXMgd2UgYWRkIG1vcmUgaW5zdHJ1bWVudHMu
CisgICAgICAgIEFsc28sIEpTQ29udGV4dCBpbnNwZWN0aW9uIHdvbid0IGhhdmUgIlByb2ZpbGUg
KG5hbWUpIiByZWNvcmRzIGluCisgICAgICAgIGl0cyBFdmVudHMgdmlldywgc2luY2UgdGhvc2Ug
YXJlIGN1cnJlbnRseSBnZW5lcmF0ZWQgb25seSBieSB0aGUKKyAgICAgICAgV2ViJ3MgVGltZWxp
bmUgZG9tYWluLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL1NjcmlwdFByb2ZpbGVy
Lmpzb246CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL1RpbWVsaW5lLmpzb246CisgICAg
ICAgIEV2ZW50cyB0byBpbmZvcm0gdGhlIGZyb250ZW5kIG9mIHByb2dyYW1tYXRpYyBzdGFydC9z
dG9wLgorCisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9y
OjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpicmVha3BvaW50c0FjdGl2ZSk6CisgICAgICAgIChJ
bnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmlzUGF1c2VkKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgRXhwb3Nl
IGJyZWFrcG9pbnRzIGFjdGl2ZSBzdGF0ZSwgc2luY2UgcHJvZ3JhbW1hdGljIHJlY29yZGluZwor
ICAgICAgICB3aWxsIHRlbXBvcmFyaWx5IGRpc2FibGVkIGJyZWFrcG9pbnRzIGlmIG5lZWRlZC4K
KworICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwOgor
ICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OkpTR2xvYmFs
T2JqZWN0Q29uc29sZUNsaWVudCk6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0
Q29uc29sZUNsaWVudDo6cHJvZmlsZSk6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2Jq
ZWN0Q29uc29sZUNsaWVudDo6cHJvZmlsZUVuZCk6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xv
YmFsT2JqZWN0Q29uc29sZUNsaWVudDo6c3RhcnRDb25zb2xlUHJvZmlsZSk6CisgICAgICAgIChJ
bnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6c3RvcENvbnNvbGVQcm9maWxl
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHA6
CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6
SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVj
dG9yOjpJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojpwcm9ncmFtbWF0aWNDYXB0dXJlU3Rh
cnRlZCk6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQ6
OnByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaDoKKyAgICAgICAgSlNDb250ZXh0IGltcGxl
bWVudGF0aW9uIG9mIGNvbnNvbGUucHJvZmlsZS9wcm9maWxlRW5kLgorCisyMDE2LTA2LTE0ICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogUmVuYW1lIFRpbWVsaW5lLnNldEF1dG9DYXB0dXJlSW5zdHJ1bWVudHMgdG8gVGltZWxp
bmUuc2V0SW5zdHJ1bWVudHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1ODc2MgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ci5oCmluZGV4IDZjZTBkNTIuLmZkMzBmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlci5oCkBAIC03OCw2ICs3OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFy
QnJlYWtwb2ludHMoKTsKICAgICB2b2lkIGFjdGl2YXRlQnJlYWtwb2ludHMoKSB7IHNldEJyZWFr
cG9pbnRzQWN0aXZhdGVkKHRydWUpOyB9CiAgICAgdm9pZCBkZWFjdGl2YXRlQnJlYWtwb2ludHMo
KSB7IHNldEJyZWFrcG9pbnRzQWN0aXZhdGVkKGZhbHNlKTsgfQorICAgIGJvb2wgYnJlYWtwb2lu
dHNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2JyZWFrcG9pbnRzQWN0aXZhdGVkOyB9CiAKICAg
ICBlbnVtIFBhdXNlT25FeGNlcHRpb25zU3RhdGUgewogICAgICAgICBEb250UGF1c2VPbkV4Y2Vw
dGlvbnMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xv
YmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHAKaW5kZXggZTM2ODUwYy4uMzNmMTM4
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9i
amVjdENvbnNvbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAj
aW5jbHVkZSAiQ29uc29sZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb25zb2xlQWdl
bnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgiCisjaW5jbHVkZSAiSW5z
cGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oIgogI2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5o
IgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFj
a0ZhY3RvcnkuaCIKQEAgLTUyLDkgKzU0LDExIEBAIHZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xl
Q2xpZW50OjpzZXRMb2dUb1N5c3RlbUNvbnNvbGUoYm9vbCBzaG91bGRMb2cpCiAgICAgc0xvZ1Rv
U3lzdGVtQ29uc29sZSA9IHNob3VsZExvZzsKIH0KIAotSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xp
ZW50OjpKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQoSW5zcGVjdG9yQ29uc29sZUFnZW50KiBj
b25zb2xlQWdlbnQpCitKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OkpTR2xvYmFsT2JqZWN0
Q29uc29sZUNsaWVudChJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCwgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCwgSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJB
Z2VudCogc2NyaXB0UHJvZmlsZXJBZ2VudCkKICAgICA6IENvbnNvbGVDbGllbnQoKQogICAgICwg
bV9jb25zb2xlQWdlbnQoY29uc29sZUFnZW50KQorICAgICwgbV9kZWJ1Z2dlckFnZW50KGRlYnVn
Z2VyQWdlbnQpCisgICAgLCBtX3NjcmlwdFByb2ZpbGVyQWdlbnQoc2NyaXB0UHJvZmlsZXJBZ2Vu
dCkKIHsKIH0KIApAQCAtNzMsMTQgKzc3LDcxIEBAIHZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xl
Q2xpZW50Ojpjb3VudChFeGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+CiAg
ICAgbV9jb25zb2xlQWdlbnQtPmNvdW50KGV4ZWMsIGFyZ3VtZW50cyk7CiB9CiAKLXZvaWQgSlNH
bG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojpwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJikKK3ZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojpwcm9maWxlKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKLSAgICAvLyBGSVhNRTogc3VwcG9y
dCB8Y29uc29sZS5wcm9maWxlfCBmb3IgSlNDb250ZXh0cy4gPGh0dHBzOi8vd2Via2l0Lm9yZy9i
LzEzNjQ2Nj4KKyAgICBpZiAoIW1fY29uc29sZUFnZW50LT5lbmFibGVkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIC8vIEFsbG93IGR1cGxpY2F0ZSB1bm5hbWVkIHByb2ZpbGVzLiBEaXNhbGxv
dyBkdXBsaWNhdGUgbmFtZWQgcHJvZmlsZXMuCisgICAgaWYgKCF0aXRsZS5pc0VtcHR5KCkpIHsK
KyAgICAgICAgZm9yIChhdXRvJiBleGlzdGluZ1RpdGxlIDogbV9wcm9maWxlcykgeworICAgICAg
ICAgICAgaWYgKGV4aXN0aW5nVGl0bGUgPT0gdGl0bGUpIHsKKyAgICAgICAgICAgICAgICAvLyBG
SVhNRTogU2VuZCBhbiBlbnVtIHRvIHRoZSBmcm9udGVuZCBmb3IgbG9jYWxpemF0aW9uPworICAg
ICAgICAgICAgICAgIFN0cmluZyB3YXJuaW5nID0gdGl0bGUuaXNFbXB0eSgpID8gQVNDSUlMaXRl
cmFsKCJVbm5hbWVkIFByb2ZpbGUgYWxyZWFkeSBleGlzdHMiKSA6IG1ha2VTdHJpbmcoIlByb2Zp
bGUgXCIiLCB0aXRsZSwgIlwiIGFscmVhZHkgZXhpc3RzIik7CisgICAgICAgICAgICAgICAgbV9j
b25zb2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xl
TWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OlByb2ZpbGUs
IE1lc3NhZ2VMZXZlbDo6V2FybmluZywgd2FybmluZykpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIG1fcHJvZmlsZXMuYXBw
ZW5kKHRpdGxlKTsKKyAgICBzdGFydENvbnNvbGVQcm9maWxlKCk7Cit9CisKK3ZvaWQgSlNHbG9i
YWxPYmplY3RDb25zb2xlQ2xpZW50Ojpwcm9maWxlRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJiB0aXRsZSkKK3sKKyAgICBpZiAoIW1fY29uc29sZUFnZW50LT5lbmFibGVkKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIC8vIFN0b3AgcHJvZmlsZXMgaW4gcmV2ZXJzZSBvcmRlci4g
SWYgdGhlIHRpdGxlIGlzIGVtcHR5LCB0aGVuIHN0b3AgdGhlIGxhc3QgcHJvZmlsZS4KKyAgICAv
LyBPdGhlcndpc2UsIG1hdGNoIHRoZSB0aXRsZSBvZiB0aGUgcHJvZmlsZSB0byBzdG9wLgorICAg
IGZvciAocHRyZGlmZl90IGkgPSBtX3Byb2ZpbGVzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7
CisgICAgICAgIGlmICh0aXRsZS5pc0VtcHR5KCkgfHwgbV9wcm9maWxlc1tpXSA9PSB0aXRsZSkg
eworICAgICAgICAgICAgbV9wcm9maWxlcy5yZW1vdmUoaSk7CisgICAgICAgICAgICBpZiAobV9w
cm9maWxlcy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgc3RvcENvbnNvbGVQcm9maWxlKCk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBGSVhNRTog
U2VuZCBhbiBlbnVtIHRvIHRoZSBmcm9udGVuZCBmb3IgbG9jYWxpemF0aW9uPworICAgIFN0cmlu
ZyB3YXJuaW5nID0gdGl0bGUuaXNFbXB0eSgpID8gQVNDSUlMaXRlcmFsKCJObyBwcm9maWxlcyBl
eGlzdCIpIDogbWFrZVN0cmluZygiUHJvZmlsZSBcIiIsIHRpdGxlLCAiXCIgZG9lcyBub3QgZXhp
c3QiKTsKKyAgICBtX2NvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2Vf
dW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdl
VHlwZTo6UHJvZmlsZUVuZCwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCB3YXJuaW5nKSk7ICAgIAog
fQogCi12b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6cHJvZmlsZUVuZChKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYpCit2b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVu
dDo6c3RhcnRDb25zb2xlUHJvZmlsZSgpCiB7Ci0gICAgLy8gRklYTUU6IHN1cHBvcnQgfGNvbnNv
bGUucHJvZmlsZXwgZm9yIEpTQ29udGV4dHMuIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzY0NjY+
CisgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNTg3NTM+IEdlbmVyYWxpemUg
dGhlIGNvbmNlcHQgb2YgSW5zdHJ1bWVudHMgb24gdGhlIGJhY2tlbmQgdG8gd29yayBlcXVhbGx5
IGZvciBKU0NvbnRleHQgYW5kIFdlYiBpbnNwZWN0aW9uCisgICAgbV9zY3JpcHRQcm9maWxlckFn
ZW50LT5wcm9ncmFtbWF0aWNDYXB0dXJlU3RhcnRlZCgpOworCisgICAgbV9wcm9maWxlUmVzdG9y
ZUJyZWFrcG9pbnRBY3RpdmVWYWx1ZSA9IG1fZGVidWdnZXJBZ2VudC0+YnJlYWtwb2ludHNBY3Rp
dmUoKTsKKworICAgIEVycm9yU3RyaW5nIHVudXNlZDsKKyAgICBtX2RlYnVnZ2VyQWdlbnQtPnNl
dEJyZWFrcG9pbnRzQWN0aXZlKHVudXNlZCwgZmFsc2UpOworCisgICAgY29uc3QgYm9vbCBpbmNs
dWRlU2FtcGxlcyA9IHRydWU7CisgICAgbV9zY3JpcHRQcm9maWxlckFnZW50LT5zdGFydFRyYWNr
aW5nKHVudXNlZCwgJmluY2x1ZGVTYW1wbGVzKTsKK30KKwordm9pZCBKU0dsb2JhbE9iamVjdENv
bnNvbGVDbGllbnQ6OnN0b3BDb25zb2xlUHJvZmlsZSgpCit7CisgICAgRXJyb3JTdHJpbmcgdW51
c2VkOworICAgIG1fc2NyaXB0UHJvZmlsZXJBZ2VudC0+c3RvcFRyYWNraW5nKHVudXNlZCk7CisK
KyAgICBtX2RlYnVnZ2VyQWdlbnQtPnNldEJyZWFrcG9pbnRzQWN0aXZlKHVudXNlZCwgbV9wcm9m
aWxlUmVzdG9yZUJyZWFrcG9pbnRBY3RpdmVWYWx1ZSk7CisKKyAgICAvLyBGSVhNRTogPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE1ODc1Mz4gR2VuZXJhbGl6ZSB0aGUgY29uY2VwdCBvZiBJbnN0cnVt
ZW50cyBvbiB0aGUgYmFja2VuZCB0byB3b3JrIGVxdWFsbHkgZm9yIEpTQ29udGV4dCBhbmQgV2Vi
IGluc3BlY3Rpb24KKyAgICBtX3NjcmlwdFByb2ZpbGVyQWdlbnQtPnByb2dyYW1tYXRpY0NhcHR1
cmVTdG9wcGVkKCk7CiB9CiAKIHZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojp0YWtl
SGVhcFNuYXBzaG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25z
b2xlQ2xpZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2Jq
ZWN0Q29uc29sZUNsaWVudC5oCmluZGV4IGYzNjg3ZjQuLjUyN2ZmZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENv
bnNvbGVDbGllbnQuaApAQCAtMjMsMTkgKzIzLDIyIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
LSNpZm5kZWYgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50X2gKLSNkZWZpbmUgSlNHbG9iYWxP
YmplY3RDb25zb2xlQ2xpZW50X2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29uc29sZUNs
aWVudC5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIGNsYXNzIEluc3BlY3RvckNvbnNv
bGVBZ2VudDsKK2NsYXNzIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ7CitjbGFzcyBJbnNwZWN0b3JT
Y3JpcHRQcm9maWxlckFnZW50OwogCiBjbGFzcyBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQg
ZmluYWwgOiBwdWJsaWMgSlNDOjpDb25zb2xlQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGll
bnQoSW5zcGVjdG9yQ29uc29sZUFnZW50Kik7CisgICAgZXhwbGljaXQgSlNHbG9iYWxPYmplY3RD
b25zb2xlQ2xpZW50KEluc3BlY3RvckNvbnNvbGVBZ2VudCosIEluc3BlY3RvckRlYnVnZ2VyQWdl
bnQqLCBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Kik7CiAgICAgdmlydHVhbCB+SlNHbG9i
YWxPYmplY3RDb25zb2xlQ2xpZW50KCkgeyB9CiAKICAgICBzdGF0aWMgYm9vbCBsb2dUb1N5c3Rl
bUNvbnNvbGUoKTsKQEAgLTU1LDkgKzU4LDE0IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3YXJuVW5p
bXBsZW1lbnRlZChjb25zdCBTdHJpbmcmIG1ldGhvZCk7CiAgICAgdm9pZCBpbnRlcm5hbEFkZE1l
c3NhZ2UoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8
U2NyaXB0QXJndW1lbnRzPiYmKTsKIAorICAgIHZvaWQgc3RhcnRDb25zb2xlUHJvZmlsZSgpOwor
ICAgIHZvaWQgc3RvcENvbnNvbGVQcm9maWxlKCk7CisKICAgICBJbnNwZWN0b3JDb25zb2xlQWdl
bnQqIG1fY29uc29sZUFnZW50OworICAgIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIG1fZGVidWdn
ZXJBZ2VudDsKKyAgICBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50KiBtX3NjcmlwdFByb2Zp
bGVyQWdlbnQ7CisgICAgVmVjdG9yPFN0cmluZz4gbV9wcm9maWxlczsKKyAgICBib29sIG1fcHJv
ZmlsZVJlc3RvcmVCcmVha3BvaW50QWN0aXZlVmFsdWUgeyBmYWxzZSB9OwogfTsKIAogfQotCi0j
ZW5kaWYgLy8gIWRlZmluZWQoSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50X2gpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVj
dG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xv
YmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggN2UzNDkwZC4uYmNkOWU4YSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtODgsMTggKzg4
LDE5IEBAIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6SlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyKEpTR2xvYmFsT2JqCiAgICAgYXV0byBoZWFwQWdlbnQgPSBzdGQ6
Om1ha2VfdW5pcXVlPEluc3BlY3RvckhlYXBBZ2VudD4oY29udGV4dCk7CiAgICAgYXV0byBjb25z
b2xlQWdlbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50Pihj
b250ZXh0LCBoZWFwQWdlbnQuZ2V0KCkpOwogICAgIGF1dG8gZGVidWdnZXJBZ2VudCA9IHN0ZDo6
bWFrZV91bmlxdWU8SlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50Pihjb250ZXh0LCBjb25zb2xl
QWdlbnQuZ2V0KCkpOworICAgIGF1dG8gc2NyaXB0UHJvZmlsZXJBZ2VudCA9IHN0ZDo6bWFrZV91
bmlxdWU8SW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudD4oY29udGV4dCk7CiAKICAgICBtX2lu
c3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnQuZ2V0KCk7CiAgICAgbV9kZWJ1Z2dlckFnZW50
ID0gZGVidWdnZXJBZ2VudC5nZXQoKTsKICAgICBtX2NvbnNvbGVBZ2VudCA9IGNvbnNvbGVBZ2Vu
dC5nZXQoKTsKLSAgICBtX2NvbnNvbGVDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEpTR2xvYmFs
T2JqZWN0Q29uc29sZUNsaWVudD4obV9jb25zb2xlQWdlbnQpOworICAgIG1fY29uc29sZUNsaWVu
dCA9IHN0ZDo6bWFrZV91bmlxdWU8SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50PihtX2NvbnNv
bGVBZ2VudCwgbV9kZWJ1Z2dlckFnZW50LCBzY3JpcHRQcm9maWxlckFnZW50LmdldCgpKTsKIAog
ICAgIG1fYWdlbnRzLmFwcGVuZChXVEZNb3ZlKGluc3BlY3RvckFnZW50KSk7CiAgICAgbV9hZ2Vu
dHMuYXBwZW5kKFdURk1vdmUocnVudGltZUFnZW50KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKFdU
Rk1vdmUoY29uc29sZUFnZW50KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKFdURk1vdmUoZGVidWdn
ZXJBZ2VudCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChXVEZNb3ZlKGhlYXBBZ2VudCkpOwotICAg
IG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvclNjcmlwdFByb2ZpbGVy
QWdlbnQ+KGNvbnRleHQpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoV1RGTW92ZShzY3JpcHRQcm9m
aWxlckFnZW50KSk7CiAKICAgICBtX2V4ZWN1dGlvblN0b3B3YXRjaC0+c3RhcnQoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggNzNjZmI2Zi4uMzYzYjQzOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
RGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTEyNSw2ICsxMjUsMTEgQEAgdm9p
ZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nJikKICAgICBkaXNh
YmxlKGZhbHNlKTsKIH0KIAorYm9vbCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpicmVha3BvaW50
c0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2NyaXB0RGVidWdTZXJ2ZXIuYnJlYWtw
b2ludHNBY3RpdmUoKTsKK30KKwogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRCcmVh
a3BvaW50c0FjdGl2ZShFcnJvclN0cmluZyYsIGJvb2wgYWN0aXZlKQogewogICAgIGlmIChhY3Rp
dmUpCkBAIC0xMzMsNyArMTM4LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRC
cmVha3BvaW50c0FjdGl2ZShFcnJvclN0cmluZyYsIGJvb2wgYWN0aXZlKQogICAgICAgICBtX3Nj
cmlwdERlYnVnU2VydmVyLmRlYWN0aXZhdGVCcmVha3BvaW50cygpOwogfQogCi1ib29sIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ6OmlzUGF1c2VkKCkKK2Jvb2wgSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dDo6aXNQYXVzZWQoKSBjb25zdAogewogICAgIHJldHVybiBtX3NjcmlwdERlYnVnU2VydmVyLmlz
UGF1c2VkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXggZjc3YmY2Ni4u
MWM1NzZkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaApAQCAtODMsNyArODMsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBldmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBT
dHJpbmcqIG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGNv
bnN0IGJvb2wqIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwgY29uc3QgYm9v
bCogcmV0dXJuQnlWYWx1ZSwgY29uc3QgYm9vbCogZ2VuZXJhdGVQcmV2aWV3LCBjb25zdCBib29s
KiBzYXZlUmVzdWx0LCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3Rl
T2JqZWN0PiYgcmVzdWx0LCBJbnNwZWN0b3I6OlByb3RvY29sOjpPcHRPdXRwdXQ8Ym9vbD4qIHdh
c1Rocm93biwgSW5zcGVjdG9yOjpQcm90b2NvbDo6T3B0T3V0cHV0PGludD4qIHNhdmVkUmVzdWx0
SW5kZXgpIGZpbmFsOwogICAgIHZvaWQgc2V0T3ZlcmxheU1lc3NhZ2UoRXJyb3JTdHJpbmcmLCBj
b25zdCBTdHJpbmcqKSBvdmVycmlkZTsKIAotICAgIGJvb2wgaXNQYXVzZWQoKTsKKyAgICBib29s
IGlzUGF1c2VkKCkgY29uc3Q7CisgICAgYm9vbCBicmVha3BvaW50c0FjdGl2ZSgpIGNvbnN0Owog
CiAgICAgdm9pZCBzZXRTdXBwcmVzc0FsbFBhdXNlcyhib29sKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmls
ZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmNwcAppbmRleCBlNGFlOTBjLi5mYWZjMGI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JT
Y3JpcHRQcm9maWxlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmNwcApAQCAtMjE2LDQgKzIx
NiwxMyBAQCB2b2lkIEluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQ6OnRyYWNraW5nQ29tcGxl
dGUoKQogI2VuZGlmIC8vIEVOQUJMRShTQU1QTElOR19QUk9GSUxFUikKIH0KIAordm9pZCBJbnNw
ZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojpwcm9ncmFtbWF0aWNDYXB0dXJlU3RhcnRlZCgpCit7
CisgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkKCk7
Cit9Cit2b2lkIEluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQ6OnByb2dyYW1tYXRpY0NhcHR1
cmVTdG9wcGVkKCkKK3sKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cHJvZ3JhbW1hdGljQ2Fw
dHVyZVN0b3BwZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQ
cm9maWxlckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmgKaW5kZXggZWY4N2RiMy4uNjI4NjBiZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
U2NyaXB0UHJvZmlsZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaApAQCAtNTMsNiArNTMsOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydFRyYWNraW5nKEVycm9yU3RyaW5nJiwgY29uc3QgYm9v
bCogaW5jbHVkZVNhbXBsZXMpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcFRyYWNraW5nKEVycm9y
U3RyaW5nJikgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVk
KCk7CisgICAgdm9pZCBwcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCgpOworCiAgICAgLy8gRGVi
dWdnZXI6OlByb2ZpbGluZ0NsaWVudAogICAgIGJvb2wgaXNBbHJlYWR5UHJvZmlsaW5nKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgZG91YmxlIHdpbGxFdmFsdWF0ZVNjcmlwdCgpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9TY3Jp
cHRQcm9maWxlci5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2Nv
bC9TY3JpcHRQcm9maWxlci5qc29uCmluZGV4IDM3ZTViNzcuLmQwMTI1OGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvU2NyaXB0UHJvZmlsZXIu
anNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1Njcmlw
dFByb2ZpbGVyLmpzb24KQEAgLTg2LDYgKzg2LDE0IEBACiAgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNhbXBsZXMiLCAiJHJlZiI6ICJTYW1w
bGVzIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlN0YWNrIHRyYWNlcy4iIH0K
ICAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUi
OiAicHJvZ3JhbW1hdGljQ2FwdHVyZVN0YXJ0ZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkZpcmVkIHdoZW4gcHJvZ3JhbW1hdGljIGNhcHR1cmUgc3RhcnRzIChjb25zb2xlLnByb2Zp
bGUpLiBKU0NvbnRleHQgaW5zcGVjdGlvbiBvbmx5LiIKKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgIm5hbWUiOiAicHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3BwZWQiLAorICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gcHJvZ3JhbW1hdGljIGNhcHR1cmUgc3Rv
cHMgKGNvbnNvbGUucHJvZmlsZUVuZCkuIEpTQ29udGV4dCBpbnNwZWN0aW9uIG9ubHkuIgogICAg
ICAgICB9CiAgICAgXQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9UaW1lbGluZS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9UaW1lbGluZS5qc29uCmluZGV4IGZlM2VlMDMuLjc3Mzk2NzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUu
anNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1RpbWVs
aW5lLmpzb24KQEAgLTEwNSw2ICsxMDUsMTQgQEAKICAgICAgICAgewogICAgICAgICAgICAgIm5h
bWUiOiAiYXV0b0NhcHR1cmVTdGFydGVkIiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJG
aXJlZCB3aGVuIGF1dG8gY2FwdHVyZSBzdGFydGVkLiIKKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgIm5hbWUiOiAicHJvZ3JhbW1hdGljQ2FwdHVyZVN0YXJ0ZWQiLAorICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gcHJvZ3JhbW1hdGljIGNhcHR1cmUgc3Rh
cnRzIChjb25zb2xlLnByb2ZpbGUpLiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
ICAgIm5hbWUiOiAicHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3BwZWQiLAorICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gcHJvZ3JhbW1hdGljIGNhcHR1cmUgc3RvcHMgKGNvbnNv
bGUucHJvZmlsZUVuZCkuIgogICAgICAgICB9CiAgICAgXQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFjNDA5
NzUuLjhlNjQ3OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMCBAQAogMjAxNi0wNi0xNCAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGNvbnNvbGUucHJvZmlsZSBzaG91bGQgdXNlIHRoZSBuZXcgU2FtcGxpbmcgUHJvZmlsZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzQ5OQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjQzNTI0MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL3RpbWVsaW5lL3NldElu
c3RydW1lbnRzLXByb2dyYW1tYXRpYy1jYXB0dXJlLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OnN0YXJ0RnJvbUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcEZyb21Db25zb2xlKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Om1haW5GcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0YXJ0UHJvZ3JhbW1hdGljQ2Fw
dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdG9wUHJv
Z3JhbW1hdGljQ2FwdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFn
ZW50Ojp0b2dnbGVJbnN0cnVtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp0b2dnbGVTY3JpcHRQcm9maWxlckluc3RydW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6dG9nZ2xlSGVhcEluc3RydW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6dG9nZ2xlTWVtb3J5SW5zdHJ1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp0b2dnbGVU
aW1lbGluZUluc3RydW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50Lmg6CisgICAgICAgIFdlYiBpbXBsZW1lbnRhdGlvbiBvZiBjb25zb2xlLnByb2ZpbGUv
cHJvZmlsZUVuZC4KKyAgICAgICAgTWFrZSBoZWxwZXJzIGZvciBzdGFydGluZ3MgLyBzdG9wcGlu
ZyBpbnN0cnVtZW50cy4KKworMjAxNi0wNi0xNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbmFtZSBUaW1lbGluZS5zZXRB
dXRvQ2FwdHVyZUluc3RydW1lbnRzIHRvIFRpbWVsaW5lLnNldEluc3RydW1lbnRzCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg3NjIKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmlu
ZGV4IDgzMzNjODQuLjQ4NDg2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTQzLDYgKzQzLDggQEAKICNpbmNsdWRl
ICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNsdWRlICJUaW1l
bGluZVJlY29yZEZhY3RvcnkuaCIKKyNpbmNsdWRlICJXZWJDb25zb2xlQWdlbnQuaCIKKyNpbmNs
dWRlIDxpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2Ny
aXB0QnJlYWtwb2ludC5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudC5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFn
ZW50Lmg+CkBAIC0yNDEsMTQgKzI0Myw1NSBAQCBkb3VibGUgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6dGltZXN0YW1wKCkKICAgICByZXR1cm4gbV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0
Y2goKS0+ZWxhcHNlZFRpbWUoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpz
dGFydEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6c3RhcnRGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKLSAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0
Lm9yZy9iLzE1MzQ5OT4gV2ViIEluc3BlY3RvcjogY29uc29sZS5wcm9maWxlIHNob3VsZCB1c2Ug
dGhlIG5ldyBTYW1wbGluZyBQcm9maWxlcgorICAgIC8vIEFsbG93IGR1cGxpY2F0ZSB1bm5hbWVk
IHByb2ZpbGVzLiBEaXNhbGxvdyBkdXBsaWNhdGUgbmFtZWQgcHJvZmlsZXMuCisgICAgaWYgKCF0
aXRsZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgZm9yIChjb25zdCBUaW1lbGluZVJlY29yZEVudHJ5
JiByZWNvcmQgOiBtX3BlbmRpbmdDb25zb2xlUHJvZmlsZVJlY29yZHMpIHsKKyAgICAgICAgICAg
IFN0cmluZyByZWNvcmRUaXRsZTsKKyAgICAgICAgICAgIHJlY29yZC5kYXRhLT5nZXRTdHJpbmco
QVNDSUlMaXRlcmFsKCJ0aXRsZSIpLCByZWNvcmRUaXRsZSk7CisgICAgICAgICAgICBpZiAocmVj
b3JkVGl0bGUgPT0gdGl0bGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoV2ViQ29uc29sZUFnZW50
KiBjb25zb2xlQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMud2ViQ29uc29sZUFnZW50KCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFNlbmQgYW4gZW51bSB0byB0aGUgZnJv
bnRlbmQgZm9yIGxvY2FsaXphdGlvbj8KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHdhcm5p
bmcgPSB0aXRsZS5pc0VtcHR5KCkgPyBBU0NJSUxpdGVyYWwoIlVubmFtZWQgUHJvZmlsZSBhbHJl
YWR5IGV4aXN0cyIpIDogbWFrZVN0cmluZygiUHJvZmlsZSBcIiIsIHRpdGxlLCAiXCIgYWxyZWFk
eSBleGlzdHMiKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZUFnZW50LT5hZGRNZXNzYWdl
VG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6
OkNvbnNvbGVBUEksIE1lc3NhZ2VUeXBlOjpQcm9maWxlLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcs
IHdhcm5pbmcpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFtX2VuYWJsZWQgJiYg
bV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzLmlzRW1wdHkoKSkKKyAgICAgICAgc3RhcnRQ
cm9ncmFtbWF0aWNDYXB0dXJlKCk7CisKKyAgICBtX3BlbmRpbmdDb25zb2xlUHJvZmlsZVJlY29y
ZHMuYXBwZW5kKGNyZWF0ZVJlY29yZEVudHJ5KFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
Q29uc29sZVByb2ZpbGVEYXRhKHRpdGxlKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpDb25zb2xlUHJv
ZmlsZSwgdHJ1ZSwgZnJhbWVGcm9tRXhlY1N0YXRlKGV4ZWMpKSk7CiB9CiAKLXZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6c3RvcEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJikKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcEZyb21Db25zb2xlKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKLSAgICAvLyBGSVhNRTogPGh0
dHBzOi8vd2Via2l0Lm9yZy9iLzE1MzQ5OT4gV2ViIEluc3BlY3RvcjogY29uc29sZS5wcm9maWxl
IHNob3VsZCB1c2UgdGhlIG5ldyBTYW1wbGluZyBQcm9maWxlcgorICAgIC8vIFN0b3AgcHJvZmls
ZXMgaW4gcmV2ZXJzZSBvcmRlci4gSWYgdGhlIHRpdGxlIGlzIGVtcHR5LCB0aGVuIHN0b3AgdGhl
IGxhc3QgcHJvZmlsZS4KKyAgICAvLyBPdGhlcndpc2UsIG1hdGNoIHRoZSB0aXRsZSBvZiB0aGUg
cHJvZmlsZSB0byBzdG9wLgorICAgIGZvciAoaW50IGkgPSBtX3BlbmRpbmdDb25zb2xlUHJvZmls
ZVJlY29yZHMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgY29uc3QgVGltZWxp
bmVSZWNvcmRFbnRyeSYgcmVjb3JkID0gbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzW2ld
OworCisgICAgICAgIFN0cmluZyByZWNvcmRUaXRsZTsKKyAgICAgICAgcmVjb3JkLmRhdGEtPmdl
dFN0cmluZyhBU0NJSUxpdGVyYWwoInRpdGxlIiksIHJlY29yZFRpdGxlKTsKKyAgICAgICAgaWYg
KHRpdGxlLmlzRW1wdHkoKSB8fCByZWNvcmRUaXRsZSA9PSB0aXRsZSkgeworICAgICAgICAgICAg
ZGlkQ29tcGxldGVSZWNvcmRFbnRyeShyZWNvcmQpOworICAgICAgICAgICAgbV9wZW5kaW5nQ29u
c29sZVByb2ZpbGVSZWNvcmRzLnJlbW92ZShpKTsKKworICAgICAgICAgICAgaWYgKCFtX2VuYWJs
ZWRGcm9tRnJvbnRlbmQgJiYgbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzLmlzRW1wdHko
KSkKKyAgICAgICAgICAgICAgICBzdG9wUHJvZ3JhbW1hdGljQ2FwdHVyZSgpOworCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoV2ViQ29uc29sZUFnZW50
KiBjb25zb2xlQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMud2ViQ29uc29sZUFnZW50KCkp
IHsKKyAgICAgICAgLy8gRklYTUU6IFNlbmQgYW4gZW51bSB0byB0aGUgZnJvbnRlbmQgZm9yIGxv
Y2FsaXphdGlvbj8KKyAgICAgICAgU3RyaW5nIHdhcm5pbmcgPSB0aXRsZS5pc0VtcHR5KCkgPyBB
U0NJSUxpdGVyYWwoIk5vIHByb2ZpbGVzIGV4aXN0IikgOiBtYWtlU3RyaW5nKCJQcm9maWxlIFwi
IiwgdGl0bGUsICJcIiBkb2VzIG5vdCBleGlzdCIpOworICAgICAgICBjb25zb2xlQWdlbnQtPmFk
ZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2FnZT4oTWVzc2Fn
ZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OlByb2ZpbGVFbmQsIE1lc3NhZ2VMZXZl
bDo6V2FybmluZywgd2FybmluZykpOyAgICAKKyAgICB9CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5jdGlvbihjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGlu
dCBzY3JpcHRMaW5lLCBGcmFtZSogZnJhbWUpCkBAIC00MDUsNDAgKzQ0OCwxMTkgQEAgdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjptYWluRnJhbWVTdGFydGVkTG9hZGluZygpCiAgICAgLy8g
SW5mb3JtIHRoZSBmcm9udGVuZCB3ZSBzdGFydGVkIGFuIGF1dG8gY2FwdHVyZS4gVGhlIGZyb250
ZW5kIG11c3Qgc3RvcCBjYXB0dXJlLgogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5hdXRvQ2Fw
dHVyZVN0YXJ0ZWQoKTsKIAotICAgIC8vIEVuYWJsZSBpbnN0cnVtZW50cy4KKyAgICB0b2dnbGVJ
bnN0cnVtZW50cyhJbnN0cnVtZW50U3RhdGU6OlN0YXJ0KTsKK30KKwordm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpzdGFydFByb2dyYW1tYXRpY0NhcHR1cmUoKQoreworICAgIEFTU0VSVCgh
bV9lbmFibGVkKTsKKworICAgIC8vIERpc2FibGUgYnJlYWtwb2ludHMgZHVyaW5nIHByb2dyYW1t
YXRpYyBjYXB0dXJlLgorICAgIGlmIChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFn
ZW50ID0gbV9pbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKSkgewor
ICAgICAgICBtX3Byb2dyYW1tYXRpY0NhcHR1cmVSZXN0b3JlQnJlYWtwb2ludEFjdGl2ZVZhbHVl
ID0gZGVidWdnZXJBZ2VudC0+YnJlYWtwb2ludHNBY3RpdmUoKTsKKyAgICAgICAgaWYgKG1fcHJv
Z3JhbW1hdGljQ2FwdHVyZVJlc3RvcmVCcmVha3BvaW50QWN0aXZlVmFsdWUpIHsKKyAgICAgICAg
ICAgIEVycm9yU3RyaW5nIHVudXNlZDsKKyAgICAgICAgICAgIGRlYnVnZ2VyQWdlbnQtPnNldEJy
ZWFrcG9pbnRzQWN0aXZlKHVudXNlZCwgZmFsc2UpOworICAgICAgICB9CisgICAgfSBlbHNlCisg
ICAgICAgIG1fcHJvZ3JhbW1hdGljQ2FwdHVyZVJlc3RvcmVCcmVha3BvaW50QWN0aXZlVmFsdWUg
PSBmYWxzZTsKKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtbWF0aWNDYXB0dXJl
U3RhcnRlZCgpOworCisgICAgdG9nZ2xlU2NyaXB0UHJvZmlsZXJJbnN0cnVtZW50KEluc3RydW1l
bnRTdGF0ZTo6U3RhcnQpOyAvLyBFbnN1cmUgSmF2YVNjcmlwdCBzYW1waW5nIGRhdGEuCisgICAg
dG9nZ2xlVGltZWxpbmVJbnN0cnVtZW50KEluc3RydW1lbnRTdGF0ZTo6U3RhcnQpOyAvLyBFbnN1
cmUgQ29uc29sZSBQcm9maWxlIGV2ZW50IHJlY29yZHMuCisgICAgdG9nZ2xlSW5zdHJ1bWVudHMo
SW5zdHJ1bWVudFN0YXRlOjpTdGFydCk7IC8vIEFueSBvdGhlciBpbnN0cnVtZW50cyB0aGUgZnJv
bnRlbmQgd2FudHMgdXMgdG8gcmVjb3JkLgorfQorCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OnN0b3BQcm9ncmFtbWF0aWNDYXB0dXJlKCkKK3sKKyAgICBBU1NFUlQobV9lbmFibGVkKTsK
KyAgICBBU1NFUlQoIW1fZW5hYmxlZEZyb21Gcm9udGVuZCk7CisKKyAgICB0b2dnbGVJbnN0cnVt
ZW50cyhJbnN0cnVtZW50U3RhdGU6OlN0b3ApOworICAgIHRvZ2dsZVRpbWVsaW5lSW5zdHJ1bWVu
dChJbnN0cnVtZW50U3RhdGU6OlN0b3ApOworICAgIHRvZ2dsZVNjcmlwdFByb2ZpbGVySW5zdHJ1
bWVudChJbnN0cnVtZW50U3RhdGU6OlN0b3ApOworCisgICAgLy8gUmUtZW5hYmxlIGJyZWFrcG9p
bnRzIGlmIHRoZXkgd2VyZSBlbmFibGVkLgorICAgIGlmIChtX3Byb2dyYW1tYXRpY0NhcHR1cmVS
ZXN0b3JlQnJlYWtwb2ludEFjdGl2ZVZhbHVlKSB7CisgICAgICAgIGlmIChJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50ID0gbV9pbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQoKSkgeworICAgICAgICAgICAgRXJyb3JTdHJpbmcgdW51c2VkOworICAg
ICAgICAgICAgZGVidWdnZXJBZ2VudC0+c2V0QnJlYWtwb2ludHNBY3RpdmUodW51c2VkLCB0cnVl
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFt
bWF0aWNDYXB0dXJlU3RvcHBlZCgpOworfQorCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OnRvZ2dsZUluc3RydW1lbnRzKEluc3RydW1lbnRTdGF0ZSBzdGF0ZSkKK3sKICAgICBmb3IgKGF1
dG8gaW5zdHJ1bWVudFR5cGUgOiBtX2luc3RydW1lbnRzKSB7CiAgICAgICAgIHN3aXRjaCAoaW5z
dHJ1bWVudFR5cGUpIHsKICAgICAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpUaW1lbGlu
ZTo6SW5zdHJ1bWVudDo6U2NyaXB0UHJvZmlsZXI6IHsKLSAgICAgICAgICAgIGlmIChtX3Njcmlw
dFByb2ZpbGVyQWdlbnQpIHsKLSAgICAgICAgICAgICAgICBFcnJvclN0cmluZyB1bnVzZWQ7Ci0g
ICAgICAgICAgICAgICAgY29uc3QgYm9vbCBpbmNsdWRlU2FtcGxlcyA9IHRydWU7Ci0gICAgICAg
ICAgICAgICAgbV9zY3JpcHRQcm9maWxlckFnZW50LT5zdGFydFRyYWNraW5nKHVudXNlZCwgJmlu
Y2x1ZGVTYW1wbGVzKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRvZ2dsZVNjcmlwdFBy
b2ZpbGVySW5zdHJ1bWVudChzdGF0ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OlRpbWVsaW5lOjpJbnN0cnVtZW50OjpI
ZWFwOiB7Ci0gICAgICAgICAgICBpZiAobV9oZWFwQWdlbnQpIHsKLSAgICAgICAgICAgICAgICBF
cnJvclN0cmluZyB1bnVzZWQ7Ci0gICAgICAgICAgICAgICAgbV9oZWFwQWdlbnQtPnN0YXJ0VHJh
Y2tpbmcodW51c2VkKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRvZ2dsZUhlYXBJbnN0
cnVtZW50KHN0YXRlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6VGltZWxpbmU6Okluc3RydW1lbnQ6Ok1lbW9yeTogewot
I2lmIEVOQUJMRShSRVNPVVJDRV9VU0FHRSkKLSAgICAgICAgICAgIGlmIChJbnNwZWN0b3JNZW1v
cnlBZ2VudCogbWVtb3J5QWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yTWVt
b3J5QWdlbnQoKSkgewotICAgICAgICAgICAgICAgIEVycm9yU3RyaW5nIHVudXNlZDsKLSAgICAg
ICAgICAgICAgICBtZW1vcnlBZ2VudC0+c3RhcnRUcmFja2luZyh1bnVzZWQpOwotICAgICAgICAg
ICAgfQotI2VuZGlmCisgICAgICAgICAgICB0b2dnbGVNZW1vcnlJbnN0cnVtZW50KHN0YXRlKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6VGltZWxpbmU6Okluc3RydW1lbnQ6OlRpbWVsaW5lOgotICAgICAgICAgICAgaW50
ZXJuYWxTdGFydCgpOworICAgICAgICAgICAgdG9nZ2xlVGltZWxpbmVJbnN0cnVtZW50KHN0YXRl
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQogfQogCit2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OnRvZ2dsZVNjcmlwdFByb2ZpbGVySW5zdHJ1bWVudChJbnN0cnVt
ZW50U3RhdGUgc3RhdGUpCit7CisgICAgaWYgKG1fc2NyaXB0UHJvZmlsZXJBZ2VudCkgeworICAg
ICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CisgICAgICAgIGlmIChzdGF0ZSA9PSBJbnN0cnVtZW50
U3RhdGU6OlN0YXJ0KSB7CisgICAgICAgICAgICBjb25zdCBib29sIGluY2x1ZGVTYW1wbGVzID0g
dHJ1ZTsKKyAgICAgICAgICAgIG1fc2NyaXB0UHJvZmlsZXJBZ2VudC0+c3RhcnRUcmFja2luZyh1
bnVzZWQsICZpbmNsdWRlU2FtcGxlcyk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbV9z
Y3JpcHRQcm9maWxlckFnZW50LT5zdG9wVHJhY2tpbmcodW51c2VkKTsKKyAgICB9Cit9CisKK3Zv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6dG9nZ2xlSGVhcEluc3RydW1lbnQoSW5zdHJ1bWVu
dFN0YXRlIHN0YXRlKQoreworICAgIGlmIChtX2hlYXBBZ2VudCkgeworICAgICAgICBFcnJvclN0
cmluZyB1bnVzZWQ7CisgICAgICAgIGlmIChzdGF0ZSA9PSBJbnN0cnVtZW50U3RhdGU6OlN0YXJ0
KQorICAgICAgICAgICAgbV9oZWFwQWdlbnQtPnN0YXJ0VHJhY2tpbmcodW51c2VkKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgbV9oZWFwQWdlbnQtPnN0b3BUcmFja2luZyh1bnVzZWQpOwor
ICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp0b2dnbGVNZW1vcnlJbnN0
cnVtZW50KEluc3RydW1lbnRTdGF0ZSBzdGF0ZSkKK3sKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfVVNB
R0UpCisgICAgaWYgKEluc3BlY3Rvck1lbW9yeUFnZW50KiBtZW1vcnlBZ2VudCA9IG1faW5zdHJ1
bWVudGluZ0FnZW50cy5pbnNwZWN0b3JNZW1vcnlBZ2VudCgpKSB7CisgICAgICAgIEVycm9yU3Ry
aW5nIHVudXNlZDsKKyAgICAgICAgaWYgKHN0YXRlID09IEluc3RydW1lbnRTdGF0ZTo6U3RhcnQp
CisgICAgICAgICAgICBtZW1vcnlBZ2VudC0+c3RhcnRUcmFja2luZyh1bnVzZWQpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBtZW1vcnlBZ2VudC0+c3RvcFRyYWNraW5nKHVudXNlZCk7Cisg
ICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc3RhdGUpOworI2VuZGlmCit9CisKK3ZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6dG9nZ2xlVGltZWxpbmVJbnN0cnVtZW50KEluc3RydW1l
bnRTdGF0ZSBzdGF0ZSkKK3sKKyAgICBpZiAoc3RhdGUgPT0gSW5zdHJ1bWVudFN0YXRlOjpTdGFy
dCkKKyAgICAgICAgaW50ZXJuYWxTdGFydCgpOworICAgIGVsc2UKKyAgICAgICAgaW50ZXJuYWxT
dG9wKCk7Cit9CisKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tbWl0TG9hZCgp
CiB7CiAgICAgY2xlYXJSZWNvcmRTdGFjaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggYTIyODQ4MS4uNDU4MTNmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5o
CkBAIC0xNTMsNiArMTUzLDE4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBicmVha3BvaW50QWN0aW9u
U291bmQoaW50KSBmaW5hbCB7IH0KICAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Qcm9iZShKU0M6
OkV4ZWNTdGF0ZSYsIGNvbnN0IEluc3BlY3Rvcjo6U2NyaXB0QnJlYWtwb2ludEFjdGlvbiYsIHVu
c2lnbmVkIGJhdGNoSWQsIHVuc2lnbmVkIHNhbXBsZUlkLCBKU0M6OkpTVmFsdWUgcmVzdWx0KSBm
aW5hbDsKIAorICAgIHZvaWQgc3RhcnRQcm9ncmFtbWF0aWNDYXB0dXJlKCk7CisgICAgdm9pZCBz
dG9wUHJvZ3JhbW1hdGljQ2FwdHVyZSgpOworCisgICAgZW51bSBjbGFzcyBJbnN0cnVtZW50U3Rh
dGUgeyBTdGFydCwgU3RvcCB9OworICAgIHZvaWQgdG9nZ2xlSW5zdHJ1bWVudHMoSW5zdHJ1bWVu
dFN0YXRlKTsKKyAgICB2b2lkIHRvZ2dsZVNjcmlwdFByb2ZpbGVySW5zdHJ1bWVudChJbnN0cnVt
ZW50U3RhdGUpOworICAgIHZvaWQgdG9nZ2xlSGVhcEluc3RydW1lbnQoSW5zdHJ1bWVudFN0YXRl
KTsKKyAgICB2b2lkIHRvZ2dsZU1lbW9yeUluc3RydW1lbnQoSW5zdHJ1bWVudFN0YXRlKTsKKyAg
ICB2b2lkIHRvZ2dsZVRpbWVsaW5lSW5zdHJ1bWVudChJbnN0cnVtZW50U3RhdGUpOworICAgIHZv
aWQgZGlzYWJsZUJyZWFrcG9pbnRzKCk7CisgICAgdm9pZCBlbmFibGVCcmVha3BvaW50cygpOwor
CiAgICAgZnJpZW5kIGNsYXNzIFRpbWVsaW5lUmVjb3JkU3RhY2s7CiAKICAgICBzdHJ1Y3QgVGlt
ZWxpbmVSZWNvcmRFbnRyeSB7CkBAIC0yMDAsMTIgKzIxMiwxNCBAQCBwcml2YXRlOgogICAgIElu
c3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7CiAKICAgICBWZWN0b3I8VGltZWxpbmVSZWNv
cmRFbnRyeT4gbV9yZWNvcmRTdGFjazsKKyAgICBWZWN0b3I8VGltZWxpbmVSZWNvcmRFbnRyeT4g
bV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzOwogCiAgICAgaW50IG1faWQgeyAxIH07CiAg
ICAgaW50IG1fbWF4Q2FsbFN0YWNrRGVwdGggeyA1IH07CiAKICAgICBib29sIG1fZW5hYmxlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuYWJsZWRGcm9tRnJvbnRlbmQgeyBmYWxzZSB9OworICAg
IGJvb2wgbV9wcm9ncmFtbWF0aWNDYXB0dXJlUmVzdG9yZUJyZWFrcG9pbnRBY3RpdmVWYWx1ZSB7
IGZhbHNlIH07CiAKICAgICBib29sIG1fYXV0b0NhcHR1cmVFbmFibGVkIHsgZmFsc2UgfTsKICAg
ICBWZWN0b3I8SW5zcGVjdG9yOjpQcm90b2NvbDo6VGltZWxpbmU6Okluc3RydW1lbnQ+IG1faW5z
dHJ1bWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA1YjZjNjk0Li4yYmJlNTI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzOCBAQAogMjAxNi0wNi0xNCAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGNvbnNvbGUucHJvZmlsZSBzaG91bGQgdXNlIHRoZSBuZXcgU2FtcGxpbmcgUHJvZmlsZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzQ5OQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjQzNTI0MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1Rp
bWVsaW5lTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIu
cHJvdG90eXBlLnByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZU1hbmFnZXIucHJvdG90eXBlLnByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIucHJvdG90eXBlLnNjcmlw
dFByb2ZpbGVyUHJvZ3JhbW1hdGljQ2FwdHVyZVN0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRpbWVsaW5lTWFuYWdlci5wcm90b3R5cGUuc2NyaXB0UHJvZmlsZXJQcm9ncmFtbWF0aWND
YXB0dXJlU3RvcHBlZCk6CisgICAgICAgIEZvciBwcm9ncmFtbWF0aWMgY2FwdHVyZXMsIGF1dG9t
YXRpY2FsbHkgc2hvdyB0aGUgU2NyaXB0IFRpbWVsaW5lLCBzaW5jZQorICAgICAgICB0aGF0IGlz
IGd1YXJlbnRlZWQgdG8gaGF2ZSBiZWVuIHN0YXJ0ZWQgYnkgdGhlIGJhY2tlbmQuIFN0YXJ0IGNh
cHR1cmluZworICAgICAgICB3aXRob3V0IGNyZWF0aW5nIGEgbmV3IHJlY29yZGluZy4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkaW5nLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nLnByb3RvdHlwZS5zdG9wKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZGluZy5wcm90b3R5cGUuYWRkU2NyaXB0SW5z
dHJ1bWVudEZvclByb2dyYW1tYXRpY0NhcHR1cmUpOgorICAgICAgICBXaGVuIHN0b3BwaW5nIGZv
ciBwcm9ncmFtbWF0aWMgY2FwdHVyZSB3ZSBkb24ndCBuZWVkIHRvIGRpc2FibGUKKyAgICAgICAg
aW5zdHJ1bWVudHMsIHRoZSBiYWNrZW5kIHdvdWxkIGhhdmUgYWxyZWFkeSBkb25lIHRoaXMuCisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL1NjcmlwdFByb2ZpbGVyT2JzZXJ2ZXIu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0UHJvZmlsZXJPYnNlcnZlci5wcm90b3R5
cGUucHJvZ3JhbW1hdGljQ2FwdHVyZVN0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNj
cmlwdFByb2ZpbGVyT2JzZXJ2ZXIucHJvdG90eXBlLnByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRQcm9maWxlck9ic2VydmVyKToKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL1RpbWVsaW5lT2JzZXJ2ZXIuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVPYnNlcnZlci5wcm90b3R5cGUucHJvZ3JhbW1hdGljQ2Fw
dHVyZVN0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT2JzZXJ2ZXIucHJv
dG90eXBlLnByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UaW1lbGluZU9ic2VydmVyKToKKyAgICAgICAgUGFzcyB0aHJvdWdoIFdlYiBhbmQgSlNDb250
ZXh0IHByb2dyYW1tYXRpYyBjYXB0dXJlIGV2ZW50cy4KKworMjAxNi0wNi0xNCAgSm9zZXBoIFBl
Y29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJl
bmFtZSBUaW1lbGluZS5zZXRBdXRvQ2FwdHVyZUluc3RydW1lbnRzIHRvIFRpbWVsaW5lLnNldElu
c3RydW1lbnRzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTg3NjIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCmluZGV4IDQyMGNk
ZDEuLmQ4NmU5NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKQEAgLTI2
Miw3ICsyNjIsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyID0gY2xhc3MgVGltZWxp
bmVNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyLkV2ZW50LkNh
cHR1cmluZ1N0b3BwZWQsIHtlbmRUaW1lfSk7CiAgICAgfQogCi0gICAgYXV0b0NhcHR1cmVTdGFy
dGVkKHN0YXJ0VGltZSkKKyAgICBhdXRvQ2FwdHVyZVN0YXJ0ZWQoKQogICAgIHsKICAgICAgICAg
Ly8gQ2FsbGVkIGZyb20gV2ViSW5zcGVjdG9yLlRpbWVsaW5lT2JzZXJ2ZXIuCiAKQEAgLTI3Miwx
MiArMjcyLDM2IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIgPSBjbGFzcyBUaW1lbGlu
ZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIC8vIFdlIG1heSBh
bHJlYWR5IGhhdmUgYW4gZnJlc2ggVGltZWxpbmVSZWNvcmRpbmcgY3JlYXRlZCBpZiBhdXRvQ2Fw
dHVyZVN0YXJ0ZWQgaXMgcmVjZWl2ZWQKICAgICAgICAgLy8gYmV0d2VlbiBzZW5kaW5nIHRoZSBU
aW1lbGluZS5zdGFydCBjb21tYW5kIGFuZCByZWNlaXZpbmcgVGltZWxpbmUuY2FwdHVyaW5nU3Rh
cnRlZCBldmVudC4KICAgICAgICAgLy8gSW4gdGhhdCBjYXNlLCB0aGVyZSBpcyBubyBuZWVkIHRv
IGNhbGwgc3RhcnRDYXB0dXJpbmcgYWdhaW4uIFJldXNlIHRoZSBmcmVzaCByZWNvcmRpbmcuCi0g
ICAgICAgIGlmICghdGhpcy5fd2FpdGluZ0ZvckNhcHR1cmluZ1N0YXJ0ZWRFdmVudCkKLSAgICAg
ICAgICAgIHRoaXMuc3RhcnRDYXB0dXJpbmcodHJ1ZSk7CisgICAgICAgIGlmICghdGhpcy5fd2Fp
dGluZ0ZvckNhcHR1cmluZ1N0YXJ0ZWRFdmVudCkgeworICAgICAgICAgICAgY29uc3QgY3JlYXRl
TmV3UmVjb3JkaW5nID0gdHJ1ZTsKKyAgICAgICAgICAgIHRoaXMuc3RhcnRDYXB0dXJpbmcoY3Jl
YXRlTmV3UmVjb3JkaW5nKTsKKyAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX3Nob3VsZFNldEF1
dG9DYXB0dXJpbmdNYWluUmVzb3VyY2UgPSB0cnVlOwogICAgIH0KIAorICAgIHByb2dyYW1tYXRp
Y0NhcHR1cmVTdGFydGVkKCkKKyAgICB7CisgICAgICAgIC8vIENhbGxlZCBmcm9tIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZU9ic2VydmVyLgorCisgICAgICAgIHRoaXMuX2FjdGl2ZVJlY29yZGluZy5h
ZGRTY3JpcHRJbnN0cnVtZW50Rm9yUHJvZ3JhbW1hdGljQ2FwdHVyZSgpOworCisgICAgICAgIGNv
bnN0IGNyZWF0ZU5ld1JlY29yZGluZyA9IGZhbHNlOworICAgICAgICB0aGlzLnN0YXJ0Q2FwdHVy
aW5nKGNyZWF0ZU5ld1JlY29yZGluZyk7CisgICAgfQorCisgICAgcHJvZ3JhbW1hdGljQ2FwdHVy
ZVN0b3BwZWQoKQorICAgIHsKKyAgICAgICAgLy8gQ2FsbGVkIGZyb20gV2ViSW5zcGVjdG9yLlRp
bWVsaW5lT2JzZXJ2ZXIuCisKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgcHVyZWx5IHRvIGF2
b2lkIGEgbm9pc3kgYXNzZXJ0LiBQcmV2aW91c2x5CisgICAgICAgIC8vIGl0IHdhcyBpbXBvc3Np
YmxlIHRvIHN0b3Agd2l0aG91dCBzdG9wcGluZyBmcm9tIHRoZSBVSS4KKyAgICAgICAgY29uc29s
ZS5hc3NlcnQoIXRoaXMuX2lzQ2FwdHVyaW5nKTsKKyAgICAgICAgdGhpcy5faXNDYXB0dXJpbmcg
PSB0cnVlOworCisgICAgICAgIHRoaXMuc3RvcENhcHR1cmluZygpOworICAgIH0KKwogICAgIGV2
ZW50UmVjb3JkZWQocmVjb3JkUGF5bG9hZCkKICAgICB7CiAgICAgICAgIC8vIENhbGxlZCBmcm9t
IFdlYkluc3BlY3Rvci5UaW1lbGluZU9ic2VydmVyLgpAQCAtNDg1LDcgKzUwOSw4IEBAIFdlYklu
c3BlY3Rvci5UaW1lbGluZU1hbmFnZXIgPSBjbGFzcyBUaW1lbGluZU1hbmFnZXIgZXh0ZW5kcyBX
ZWJJbnNwZWN0b3IuT2JqZWN0CiAKICAgICAgICAgY2FzZSBUaW1lbGluZUFnZW50LkV2ZW50VHlw
ZS5Db25zb2xlUHJvZmlsZToKICAgICAgICAgICAgIHZhciBwcm9maWxlRGF0YSA9IHJlY29yZFBh
eWxvYWQuZGF0YS5wcm9maWxlOwotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQocHJvZmlsZURh
dGEpOworICAgICAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDkpOiBXaXRoIHRoZSBTYW1w
bGluZyBQcm9maWxlciwgcHJvZmlsZXMgbm8gbG9uZ2VyIGluY2x1ZGUgbGVnYWN5IHByb2ZpbGUg
ZGF0YS4KKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb2ZpbGVEYXRhIHx8IFRpbWVsaW5l
QWdlbnQuc2V0SW5zdHJ1bWVudHMpOwogICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0
b3IuU2NyaXB0VGltZWxpbmVSZWNvcmQoV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lUmVjb3Jk
LkV2ZW50VHlwZS5Db25zb2xlUHJvZmlsZVJlY29yZGVkLCBzdGFydFRpbWUsIGVuZFRpbWUsIGNh
bGxGcmFtZXMsIHNvdXJjZUNvZGVMb2NhdGlvbiwgcmVjb3JkUGF5bG9hZC5kYXRhLnRpdGxlLCBw
cm9maWxlRGF0YSk7CiAKICAgICAgICAgY2FzZSBUaW1lbGluZUFnZW50LkV2ZW50VHlwZS5UaW1l
ckZpcmU6CkBAIC04MzQsNiArODU5LDI0IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIg
PSBjbGFzcyBUaW1lbGluZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAg
ICAgIH0KICAgICB9CiAKKyAgICBzY3JpcHRQcm9maWxlclByb2dyYW1tYXRpY0NhcHR1cmVTdGFy
dGVkKCkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTU4
NzUzPiBHZW5lcmFsaXplIHRoZSBjb25jZXB0IG9mIEluc3RydW1lbnRzIG9uIHRoZSBiYWNrZW5k
IHRvIHdvcmsgZXF1YWxseSBmb3IgSlNDb250ZXh0IGFuZCBXZWIgaW5zcGVjdGlvbgorICAgICAg
ICBjb25zb2xlLmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdnYWJsZVR5cGUgPT09IFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dhYmxlVHlwZS5KYXZhU2NyaXB0KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
IXRoaXMuX2lzQ2FwdHVyaW5nKTsKKworICAgICAgICB0aGlzLnByb2dyYW1tYXRpY0NhcHR1cmVT
dGFydGVkKCk7CisgICAgfQorCisgICAgc2NyaXB0UHJvZmlsZXJQcm9ncmFtbWF0aWNDYXB0dXJl
U3RvcHBlZCgpCisgICAgeworICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9i
LzE1ODc1Mz4gR2VuZXJhbGl6ZSB0aGUgY29uY2VwdCBvZiBJbnN0cnVtZW50cyBvbiB0aGUgYmFj
a2VuZCB0byB3b3JrIGVxdWFsbHkgZm9yIEpTQ29udGV4dCBhbmQgV2ViIGluc3BlY3Rpb24KKyAg
ICAgICAgY29uc29sZS5hc3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2FibGVUeXBlID09PSBXZWJJ
bnNwZWN0b3IuRGVidWdnYWJsZVR5cGUuSmF2YVNjcmlwdCk7CisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KHRoaXMuX2lzQ2FwdHVyaW5nKTsKKworICAgICAgICB0aGlzLnByb2dyYW1tYXRpY0NhcHR1
cmVTdG9wcGVkKCk7CisgICAgfQorCiAgICAgc2NyaXB0UHJvZmlsZXJUcmFja2luZ1N0YXJ0ZWQo
dGltZXN0YW1wKQogICAgIHsKICAgICAgICAgdGhpcy5fc2NyaXB0UHJvZmlsZXJSZWNvcmRzID0g
W107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvU2NyaXB0SW5zdHJ1bWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9TY3JpcHRJbnN0cnVtZW50LmpzCmluZGV4IDYwYWNlZDUuLjU2NzA0OGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY3Jp
cHRJbnN0cnVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9TY3JpcHRJbnN0cnVtZW50LmpzCkBAIC01Niw1ICs1Niw0IEBAIFdlYkluc3BlY3Rv
ci5TY3JpcHRJbnN0cnVtZW50ID0gY2xhc3MgU2NyaXB0SW5zdHJ1bWVudCBleHRlbmRzIFdlYklu
c3BlY3Rvci5JbnN0CiAKICAgICAgICAgU2NyaXB0UHJvZmlsZXJBZ2VudC5zdG9wVHJhY2tpbmco
KTsKICAgICB9Ci0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNvcmRpbmcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNvcmRpbmcuanMKaW5kZXggODkxOTY1
Mi4uM2E0ZTdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9UaW1lbGluZVJlY29yZGluZy5qcwpAQCAtMTI3LDE1ICsx
MjcsMTcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nID0gY2xhc3MgVGltZWxpbmVS
ZWNvcmRpbmcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2IKICAgICAgICAgICAgIGluc3RydW1lbnQu
c3RhcnRJbnN0cnVtZW50YXRpb24oKTsKICAgICB9CiAKLSAgICBzdG9wKCkKKyAgICBzdG9wKHBy
b2dyYW1tYXRpYykKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2NhcHR1cmlu
ZywgIkF0dGVtcHRlZCB0byBzdG9wIGFuIGFscmVhZHkgc3RvcHBlZCBzZXNzaW9uLiIpOwogICAg
ICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fcmVhZG9ubHksICJBdHRlbXB0ZWQgdG8gc3RvcCBh
IHJlYWRvbmx5IHNlc3Npb24uIik7CiAKICAgICAgICAgdGhpcy5fY2FwdHVyaW5nID0gZmFsc2U7
CiAKLSAgICAgICAgZm9yIChsZXQgaW5zdHJ1bWVudCBvZiB0aGlzLl9pbnN0cnVtZW50cykKLSAg
ICAgICAgICAgIGluc3RydW1lbnQuc3RvcEluc3RydW1lbnRhdGlvbigpOworICAgICAgICBpZiAo
IXByb2dyYW1tYXRpYykgeworICAgICAgICAgICAgZm9yIChsZXQgaW5zdHJ1bWVudCBvZiB0aGlz
Ll9pbnN0cnVtZW50cykKKyAgICAgICAgICAgICAgICBpbnN0cnVtZW50LnN0b3BJbnN0cnVtZW50
YXRpb24oKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHNhdmVJZGVudGl0eVRvQ29va2llKCkK
QEAgLTMwNyw2ICszMDksMTkgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nID0gY2xh
c3MgVGltZWxpbmVSZWNvcmRpbmcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2IKICAgICAgICAgcmV0
dXJuIHRoaXMuX2Rpc2NvbnRpbnVpdGllcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uc3RhcnRUaW1l
IDwgZW5kVGltZSAmJiBpdGVtLmVuZFRpbWUgPiBzdGFydFRpbWUpOwogICAgIH0KIAorICAgIGFk
ZFNjcmlwdEluc3RydW1lbnRGb3JQcm9ncmFtbWF0aWNDYXB0dXJlKCkKKyAgICB7CisgICAgICAg
IGZvciAobGV0IGluc3RydW1lbnQgb2YgdGhpcy5faW5zdHJ1bWVudHMpIHsKKyAgICAgICAgICAg
IGlmIChpbnN0cnVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlNjcmlwdEluc3RydW1lbnQp
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5hZGRJ
bnN0cnVtZW50KG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0SW5zdHJ1bWVudCk7CisKKyAgICAgICAg
bGV0IGluc3RydW1lbnRUeXBlcyA9IHRoaXMuX2luc3RydW1lbnRzLm1hcCgoaW5zdHJ1bWVudCkg
PT4gaW5zdHJ1bWVudC50aW1lbGluZVJlY29yZFR5cGUpOworICAgICAgICBXZWJJbnNwZWN0b3Iu
dGltZWxpbmVNYW5hZ2VyLmVuYWJsZWRUaW1lbGluZVR5cGVzID0gaW5zdHJ1bWVudFR5cGVzOwor
ICAgIH0KKwogICAgIGNvbXB1dGVFbGFwc2VkVGltZSh0aW1lc3RhbXApCiAgICAgewogICAgICAg
ICBpZiAoIXRpbWVzdGFtcCB8fCBpc05hTih0aW1lc3RhbXApKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvU2NyaXB0UHJvZmlsZXJPYnNl
cnZlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1Nj
cmlwdFByb2ZpbGVyT2JzZXJ2ZXIuanMKaW5kZXggZTEyOTc2YWIuLmUxOTY0M2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1NjcmlwdFBy
b2ZpbGVyT2JzZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvUHJvdG9jb2wvU2NyaXB0UHJvZmlsZXJPYnNlcnZlci5qcwpAQCAtNDEsNCArNDEsMTQgQEAg
V2ViSW5zcGVjdG9yLlNjcmlwdFByb2ZpbGVyT2JzZXJ2ZXIgPSBjbGFzcyBTY3JpcHRQcm9maWxl
ck9ic2VydmVyCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IudGltZWxpbmVNYW5hZ2VyLnNj
cmlwdFByb2ZpbGVyVHJhY2tpbmdDb21wbGV0ZWQoc2FtcGxlcyk7CiAgICAgfQorICAgIAorICAg
IHByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rv
ci50aW1lbGluZU1hbmFnZXIuc2NyaXB0UHJvZmlsZXJQcm9ncmFtbWF0aWNDYXB0dXJlU3RhcnRl
ZCgpOworICAgIH0KKworICAgIHByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVkKCkKKyAgICB7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuc2NyaXB0UHJvZmlsZXJQcm9ncmFt
bWF0aWNDYXB0dXJlU3RvcHBlZCgpOworICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9UaW1lbGluZU9ic2VydmVyLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvVGltZWxpbmVPYnNl
cnZlci5qcwppbmRleCA4YWRjYmI1Li45OWRmYjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9UaW1lbGluZU9ic2VydmVyLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1RpbWVsaW5lT2Jz
ZXJ2ZXIuanMKQEAgLTQ2LDQgKzQ2LDE0IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU9ic2VydmVy
ID0gY2xhc3MgVGltZWxpbmVPYnNlcnZlcgogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLnRp
bWVsaW5lTWFuYWdlci5hdXRvQ2FwdHVyZVN0YXJ0ZWQoKTsKICAgICB9CisKKyAgICBwcm9ncmFt
bWF0aWNDYXB0dXJlU3RhcnRlZCgpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IudGltZWxp
bmVNYW5hZ2VyLnByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkKCk7CisgICAgfQorCisgICAgcHJv
Z3JhbW1hdGljQ2FwdHVyZVN0b3BwZWQoKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnRp
bWVsaW5lTWFuYWdlci5wcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCgpOworICAgIH0KIH07Cg==
</data>
<flag name="commit-queue"
          id="305165"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281316</attachid>
            <date>2016-06-14 19:57:46 -0700</date>
            <delta_ts>2016-06-16 18:56:54 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>v2.patch</filename>
            <type>text/plain</type>
            <size>43823</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNGY0NjM1Li5kNTA4ZTM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTYtMDYt
MTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBjb25zb2xlLnByb2ZpbGUgc2hvdWxkIHVzZSB0aGUgbmV3IFNhbXBsaW5nIFBy
b2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTM0OTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0MzUyNDMxPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3Nl
dEluc3RydW1lbnRzLXByb2dyYW1tYXRpYy1jYXB0dXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3NldEluc3RydW1lbnRzLXByb2dyYW1tYXRpYy1j
YXB0dXJlLmh0bWw6IEFkZGVkLgorICAgICAgICBOZXcgdGVzdCB0aGF0IHRoZSBiYWNrZW5kIGF1
dG8tc3RhcnRzIGluc3RydW1lbnRzIGR1cmluZyBwcm9ncmFtbWF0aWMgY2FwdHVyZS4KKworMjAx
Ni0wNi0xNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFJlbmFtZSBUaW1lbGluZS5zZXRBdXRvQ2FwdHVyZUluc3RydW1lbnRz
IHRvIFRpbWVsaW5lLnNldEluc3RydW1lbnRzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg3NjIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lL3NldEluc3RydW1lbnRzLXByb2dyYW1tYXRpYy1jYXB0dXJlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS9zZXRJbnN0cnVtZW50cy1w
cm9ncmFtbWF0aWMtY2FwdHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOTQyNmJlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS9zZXRJbnN0cnVtZW50cy1wcm9ncmFtbWF0aWMtY2FwdHVyZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6IEluc2lkZSBO
b0luc3RydW1lbnRzUHJvZ3JhbW1hdGljQ2FwdHVyZSBwcm9maWxlCitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgODogSW5zaWRlIE11bHRpcGxlSW5zdHJ1bWVudHNQcm9ncmFtbWF0aWNDYXB0dXJlIHBy
b2ZpbGUKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4OiBJbnNpZGUgTm9JbnN0cnVtZW50c1Byb2dy
YW1tYXRpY0NhcHR1cmVBZ2FpbiBwcm9maWxlCitUZXN0cyBwcm9ncmFtbWF0aWMgY2FwdHVyZSAo
Y29uc29sZS5wcm9maWxlL3Byb2ZpbGVFbmQpIGF1dG9tYXRpY2FsbHkgc3RhcnRzIGluc3RydW1l
bnRzIHNldCB2aWEgVGltZWxpbmUuc2V0SW5zdHJ1bWVudHMuCisKKworPT0gUnVubmluZyB0ZXN0
IHN1aXRlOiBUaW1lbGluZS5zZXRJbnN0cnVtZW50cy5wcm9ncmFtbWF0aWMtY2FwdHVyZQorLS0g
UnVubmluZyB0ZXN0IGNhc2U6IE5vSW5zdHJ1bWVudHNQcm9ncmFtbWF0aWNDYXB0dXJlCitQQVNT
OiBTaG91bGQgbm90IGJlIGFuIGVycm9yIHNldHRpbmcgdmFsaWQgaW5zdHJ1bWVudHMuCitQQVNT
OiBUaW1lbGluZS5wcm9ncmFtbWF0aWNDYXB0dXJlU3RhcnRlZAorUEFTUzogU2NyaXB0UHJvZmls
ZXIuc3RhcnRUcmFja2luZworUEFTUzogVGltZWxpbmUucHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3Bw
ZWQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IE11bHRpcGxlSW5zdHJ1bWVudHNQcm9ncmFtbWF0
aWNDYXB0dXJlCitQQVNTOiBTaG91bGQgbm90IGJlIGFuIGVycm9yIHNldHRpbmcgdmFsaWQgaW5z
dHJ1bWVudHMuCitQQVNTOiBUaW1lbGluZS5wcm9ncmFtbWF0aWNDYXB0dXJlU3RhcnRlZAorUEFT
UzogU2NyaXB0UHJvZmlsZXIuc3RhcnRUcmFja2luZworUEFTUzogSGVhcC50cmFja2luZ1N0YXJ0
CitQQVNTOiBUaW1lbGluZS5wcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZAorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogTm9JbnN0cnVtZW50c1Byb2dyYW1tYXRpY0NhcHR1cmVBZ2FpbgorUEFTUzog
U2hvdWxkIG5vdCBiZSBhbiBlcnJvciBzZXR0aW5nIHZhbGlkIGluc3RydW1lbnRzLgorUEFTUzog
VGltZWxpbmUucHJvZ3JhbW1hdGljQ2FwdHVyZVN0YXJ0ZWQKK1BBU1M6IFNjcmlwdFByb2ZpbGVy
LnN0YXJ0VHJhY2tpbmcKK1BBU1M6IFRpbWVsaW5lLnByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVk
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS9zZXRJbnN0cnVt
ZW50cy1wcm9ncmFtbWF0aWMtY2FwdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lL3NldEluc3RydW1lbnRzLXByb2dyYW1tYXRpYy1jYXB0dXJlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTgxZGFlNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS9zZXRJbnN0cnVtZW50cy1wcm9ncmFtbWF0aWMt
Y2FwdHVyZS5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
cHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdHJpZ2dlclBy
b2dyYW1tYXRpY0NhcHR1cmUobWVzc2FnZSkgeworICAgIGNvbnNvbGUucHJvZmlsZSgpOworICAg
IGNvbnNvbGUubG9nKGBJbnNpZGUgJHttZXNzYWdlfSBwcm9maWxlYCk7CisgICAgY29uc29sZS5w
cm9maWxlRW5kKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IFBy
b3RvY29sVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJUaW1lbGluZS5zZXRJbnN0cnVtZW50cy5wcm9n
cmFtbWF0aWMtY2FwdHVyZSIpOworCisgICAgbGV0IGhlYXBFeHBlY3RlZCA9IGZhbHNlOworICAg
IGxldCBwcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCA9IG51bGw7CisKKyAgICBJbnNwZWN0b3JQ
cm90b2NvbC5ldmVudEhhbmRsZXJbIlRpbWVsaW5lLnByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVk
Il0gPSAoKSA9PiB7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJUaW1lbGluZS5wcm9ncmFt
bWF0aWNDYXB0dXJlU3RhcnRlZCIpOworICAgIH07CisgICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZl
bnRIYW5kbGVyWyJUaW1lbGluZS5wcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCJdID0gKCkgPT4g
eworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygiVGltZWxpbmUucHJvZ3JhbW1hdGljQ2FwdHVy
ZVN0b3BwZWQiKTsKKyAgICAgICAgcHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3BwZWQoKTsKKyAgICB9
OworCisgICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJTY3JpcHRQcm9maWxlci50
cmFja2luZ1N0YXJ0Il0gPSAoKSA9PiB7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJTY3Jp
cHRQcm9maWxlci5zdGFydFRyYWNraW5nIik7CisgICAgfTsKKworICAgIEluc3BlY3RvclByb3Rv
Y29sLmV2ZW50SGFuZGxlclsiSGVhcC50cmFja2luZ1N0YXJ0Il0gPSAoKSA9PiB7CisgICAgICAg
IGlmIChoZWFwRXhwZWN0ZWQpCisgICAgICAgICAgICBQcm90b2NvbFRlc3QucGFzcygiSGVhcC50
cmFja2luZ1N0YXJ0Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5m
YWlsKCJVbmV4cGVjdGVkIEhlYXAudHJhY2tpbmdTdGFydCIpOworICAgIH07CisKKyAgICBzdWl0
ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJOb0luc3RydW1lbnRzUHJvZ3JhbW1hdGlj
Q2FwdHVyZSIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAg
ICAgIGhlYXBFeHBlY3RlZCA9IGZhbHNlOworICAgICAgICAgICAgcHJvZ3JhbW1hdGljQ2FwdHVy
ZVN0b3BwZWQgPSByZXNvbHZlOworCisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5k
Q29tbWFuZCgiVGltZWxpbmUuc2V0SW5zdHJ1bWVudHMiLCB7aW5zdHJ1bWVudHM6IFtdfSwgKG1l
c3NhZ2VPYmplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhh
dCghbWVzc2FnZU9iamVjdC5lcnJvciwgIlNob3VsZCBub3QgYmUgYW4gZXJyb3Igc2V0dGluZyB2
YWxpZCBpbnN0cnVtZW50cy4iKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgUHJvdG9j
b2xUZXN0LmV2YWx1YXRlSW5QYWdlKCJ0cmlnZ2VyUHJvZ3JhbW1hdGljQ2FwdHVyZSgnTm9JbnN0
cnVtZW50c1Byb2dyYW1tYXRpY0NhcHR1cmUnKSIpOworICAgICAgICB9CisgICAgfSk7CisKKyAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJNdWx0aXBsZUluc3RydW1lbnRz
UHJvZ3JhbW1hdGljQ2FwdHVyZSIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+
IHsKKyAgICAgICAgICAgIGhlYXBFeHBlY3RlZCA9IHRydWU7CisgICAgICAgICAgICBwcm9ncmFt
bWF0aWNDYXB0dXJlU3RvcHBlZCA9IHJlc29sdmU7CisKKyAgICAgICAgICAgIEluc3BlY3RvclBy
b3RvY29sLnNlbmRDb21tYW5kKCJUaW1lbGluZS5zZXRJbnN0cnVtZW50cyIsIHtpbnN0cnVtZW50
czogWyJTY3JpcHRQcm9maWxlciIsICJIZWFwIl19LCAobWVzc2FnZU9iamVjdCkgPT4geworICAg
ICAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0KCFtZXNzYWdlT2JqZWN0LmVycm9y
LCAiU2hvdWxkIG5vdCBiZSBhbiBlcnJvciBzZXR0aW5nIHZhbGlkIGluc3RydW1lbnRzLiIpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXZhbHVhdGVJblBhZ2Uo
InRyaWdnZXJQcm9ncmFtbWF0aWNDYXB0dXJlKCdNdWx0aXBsZUluc3RydW1lbnRzUHJvZ3JhbW1h
dGljQ2FwdHVyZScpIik7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKKyAgICAgICAgbmFtZTogIk5vSW5zdHJ1bWVudHNQcm9ncmFtbWF0aWNDYXB0dXJlQWdh
aW4iLAorICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICBo
ZWFwRXhwZWN0ZWQgPSB0cnVlOworICAgICAgICAgICAgcHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3Bw
ZWQgPSByZXNvbHZlOworCisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFu
ZCgiVGltZWxpbmUuc2V0SW5zdHJ1bWVudHMiLCB7aW5zdHJ1bWVudHM6IFtdfSwgKG1lc3NhZ2VP
YmplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdCghbWVz
c2FnZU9iamVjdC5lcnJvciwgIlNob3VsZCBub3QgYmUgYW4gZXJyb3Igc2V0dGluZyB2YWxpZCBp
bnN0cnVtZW50cy4iKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgUHJvdG9jb2xUZXN0
LmV2YWx1YXRlSW5QYWdlKCJ0cmlnZ2VyUHJvZ3JhbW1hdGljQ2FwdHVyZSgnTm9JbnN0cnVtZW50
c1Byb2dyYW1tYXRpY0NhcHR1cmVBZ2FpbicpIik7CisgICAgICAgIH0KKyAgICB9KTsKKworICAg
IHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyBwcm9ncmFtbWF0aWMgY2FwdHVyZSAo
Y29uc29sZS5wcm9maWxlL3Byb2ZpbGVFbmQpIGF1dG9tYXRpY2FsbHkgc3RhcnRzIGluc3RydW1l
bnRzIHNldCB2aWEgVGltZWxpbmUuc2V0SW5zdHJ1bWVudHMuPC9wPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYzY5MzNlMC4uZTY3Mzg5YyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTYtMDYtMTQgIEpvc2VwaCBQZWNv
cmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBjb25z
b2xlLnByb2ZpbGUgc2hvdWxkIHVzZSB0aGUgbmV3IFNhbXBsaW5nIFByb2ZpbGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM0OTkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzI0MzUyNDMxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSBjb25zb2xlLnByb2ZpbGUvcHJvZmlsZUVuZCBi
ZWhhdmUgc2xpZ2h0bHkgZGlmZmVyZW50bHkKKyAgICAgICAgYmV0d2VlbiBKU0NvbnRleHQgYW5k
IFdlYiBpbnNwZWN0aW9uLiBVbmlmeWluZyB3aWxsIGJlIHBhcnQgb2Y6CisgICAgICAgIDxodHRw
czovL3dlYmtpdC5vcmcvYi8xNTg3NTM+IEdlbmVyYWxpemUgdGhlIGNvbmNlcHQgb2YgSW5zdHJ1
bWVudHMgb24gdGhlIGJhY2tlbmQKKworICAgICAgICBCb3RoIEpTQ29udGV4dCBhbmQgV2ViIGlu
c3BlY3Rpb24ga2VlcCB0cmFjayBvZiBhY3RpdmUKKyAgICAgICAgcHJvZmlsZXMgc3RhcnRlZCBh
bmQgc3RvcHBlZCB2aWEgY29uc29sZS5wcm9maWxlL3Byb2ZpbGVFbmQuCisKKyAgICAgICAgSlND
b250ZXh0IGluc3BlY3Rpb24gc2VuZHMgaXRzIHByb2dyYW1tYXRpYyBzdGFydC9zdG9wCisgICAg
ICAgIHZpYSB0aGUgU2NyaXB0UHJvZmlsZXIgZG9tYWluLgorCisgICAgICAgIFdlYiBpbnNwZWN0
aW9uIHNlbmRzIGl0cyBwcm9ncmFtbWF0aWMgc3RhcnQvc3RvcAorICAgICAgICB2aWEgdGhlIFRp
bWVsaW5lIGRvbWFpbiwgYW5kIGFsc28gd2lsbCBzdGFydC9zdG9wIGJhY2tlbmQKKyAgICAgICAg
bGlzdCBvZiBJbnN0cnVtZW50cy4KKworICAgICAgICBUaGUgZnVuY3Rpb25hbCBkaWZmZXJlbmNl
cyBiZXR3ZWVuIHRoZXNlIGlzIHRoYXQgZm9yIEpTQ29udGV4dAorICAgICAgICBpbnNwZWN0aW9u
LCBjb25zb2xlLnByb2ZpbGUgb25seSBzdGFydHMvc3RvcHMgdGhlIFNjcmlwdFByb2ZpbGVyCisg
ICAgICAgIGRvbWFpbiwgYW5kIGRvZXMgbm90IGF1dG8tc3RhcnQgb3RoZXIgaW5zdHJ1bWVudHMu
IFRoaXMgaXNuJ3QgcmVhbGx5CisgICAgICAgIGEgcHJvYmxlbSByaWdodCBub3cgZ2l2ZW4gdGhl
IGluc3RydW1lbnRzIGF2YWlsYWJsZSBmb3IgSlNDb250ZXh0CisgICAgICAgIGluc3BlY3Rpb247
IGJ1dCBpdCB3aWxsIGJlIG5pY2UgdG8gdW5pZnkgYXMgd2UgYWRkIG1vcmUgaW5zdHJ1bWVudHMu
CisgICAgICAgIEFsc28sIEpTQ29udGV4dCBpbnNwZWN0aW9uIHdvbid0IGhhdmUgIlByb2ZpbGUg
KG5hbWUpIiByZWNvcmRzIGluCisgICAgICAgIGl0cyBFdmVudHMgdmlldywgc2luY2UgdGhvc2Ug
YXJlIGN1cnJlbnRseSBnZW5lcmF0ZWQgb25seSBieSB0aGUKKyAgICAgICAgV2ViJ3MgVGltZWxp
bmUgZG9tYWluLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL1NjcmlwdFByb2ZpbGVy
Lmpzb246CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL1RpbWVsaW5lLmpzb246CisgICAg
ICAgIEV2ZW50cyB0byBpbmZvcm0gdGhlIGZyb250ZW5kIG9mIHByb2dyYW1tYXRpYyBzdGFydC9z
dG9wLgorCisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9y
OjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpicmVha3BvaW50c0FjdGl2ZSk6CisgICAgICAgIChJ
bnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmlzUGF1c2VkKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgRXhwb3Nl
IGJyZWFrcG9pbnRzIGFjdGl2ZSBzdGF0ZSwgc2luY2UgcHJvZ3JhbW1hdGljIHJlY29yZGluZwor
ICAgICAgICB3aWxsIHRlbXBvcmFyaWx5IGRpc2FibGVkIGJyZWFrcG9pbnRzIGlmIG5lZWRlZC4K
KworICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwOgor
ICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OkpTR2xvYmFs
T2JqZWN0Q29uc29sZUNsaWVudCk6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0
Q29uc29sZUNsaWVudDo6cHJvZmlsZSk6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2Jq
ZWN0Q29uc29sZUNsaWVudDo6cHJvZmlsZUVuZCk6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xv
YmFsT2JqZWN0Q29uc29sZUNsaWVudDo6c3RhcnRDb25zb2xlUHJvZmlsZSk6CisgICAgICAgIChJ
bnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6c3RvcENvbnNvbGVQcm9maWxl
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHA6
CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6
SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVj
dG9yOjpJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojpwcm9ncmFtbWF0aWNDYXB0dXJlU3Rh
cnRlZCk6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQ6
OnByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaDoKKyAgICAgICAgSlNDb250ZXh0IGltcGxl
bWVudGF0aW9uIG9mIGNvbnNvbGUucHJvZmlsZS9wcm9maWxlRW5kLgorCiAyMDE2LTA2LTE0ICBD
YWlvIExpbWEgIDx0aWNhaW9saW1hQGdtYWlsLmNvbT4KIAogICAgICAgICBUaGUgcGFyc2VyIGRv
ZXNuJ3QgcHJvcGVybHkgcGFyc2UgInN1cGVyIiB3aGVuIGRlZmF1bHQgcGFyYW1ldGVyIGlzIGFu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCmluZGV4IDZjZTBkNTIu
LmZkMzBmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCkBA
IC03OCw2ICs3OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQnJlYWtwb2ludHMoKTsKICAg
ICB2b2lkIGFjdGl2YXRlQnJlYWtwb2ludHMoKSB7IHNldEJyZWFrcG9pbnRzQWN0aXZhdGVkKHRy
dWUpOyB9CiAgICAgdm9pZCBkZWFjdGl2YXRlQnJlYWtwb2ludHMoKSB7IHNldEJyZWFrcG9pbnRz
QWN0aXZhdGVkKGZhbHNlKTsgfQorICAgIGJvb2wgYnJlYWtwb2ludHNBY3RpdmUoKSBjb25zdCB7
IHJldHVybiBtX2JyZWFrcG9pbnRzQWN0aXZhdGVkOyB9CiAKICAgICBlbnVtIFBhdXNlT25FeGNl
cHRpb25zU3RhdGUgewogICAgICAgICBEb250UGF1c2VPbkV4Y2VwdGlvbnMsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNs
aWVudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0
Q29uc29sZUNsaWVudC5jcHAKaW5kZXggZTM2ODUwYy4uMzNmMTM4MyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RD
b25zb2xlQ2xpZW50LmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaW5jbHVkZSAiQ29uc29sZU1l
c3NhZ2UuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb25zb2xlQWdlbnQuaCIKKyNpbmNsdWRlICJJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yU2NyaXB0UHJvZmls
ZXJBZ2VudC5oIgogI2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlNjcmlw
dENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKQEAgLTUy
LDkgKzU0LDExIEBAIHZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50OjpzZXRMb2dUb1N5
c3RlbUNvbnNvbGUoYm9vbCBzaG91bGRMb2cpCiAgICAgc0xvZ1RvU3lzdGVtQ29uc29sZSA9IHNo
b3VsZExvZzsKIH0KIAotSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50OjpKU0dsb2JhbE9iamVj
dENvbnNvbGVDbGllbnQoSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQpCitKU0ds
b2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudChJbnNw
ZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCog
ZGVidWdnZXJBZ2VudCwgSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudCogc2NyaXB0UHJvZmls
ZXJBZ2VudCkKICAgICA6IENvbnNvbGVDbGllbnQoKQogICAgICwgbV9jb25zb2xlQWdlbnQoY29u
c29sZUFnZW50KQorICAgICwgbV9kZWJ1Z2dlckFnZW50KGRlYnVnZ2VyQWdlbnQpCisgICAgLCBt
X3NjcmlwdFByb2ZpbGVyQWdlbnQoc2NyaXB0UHJvZmlsZXJBZ2VudCkKIHsKIH0KIApAQCAtNzMs
MTQgKzc3LDcxIEBAIHZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojpjb3VudChFeGVj
U3RhdGUqIGV4ZWMsIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+CiAgICAgbV9jb25zb2xlQWdlbnQt
PmNvdW50KGV4ZWMsIGFyZ3VtZW50cyk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xl
Q2xpZW50Ojpwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgSlNH
bG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojpwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJiB0aXRsZSkKIHsKLSAgICAvLyBGSVhNRTogc3VwcG9ydCB8Y29uc29sZS5wcm9maWxl
fCBmb3IgSlNDb250ZXh0cy4gPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzNjQ2Nj4KKyAgICBpZiAo
IW1fY29uc29sZUFnZW50LT5lbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEFs
bG93IGR1cGxpY2F0ZSB1bm5hbWVkIHByb2ZpbGVzLiBEaXNhbGxvdyBkdXBsaWNhdGUgbmFtZWQg
cHJvZmlsZXMuCisgICAgaWYgKCF0aXRsZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgZm9yIChhdXRv
JiBleGlzdGluZ1RpdGxlIDogbV9wcm9maWxlcykgeworICAgICAgICAgICAgaWYgKGV4aXN0aW5n
VGl0bGUgPT0gdGl0bGUpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogU2VuZCBhbiBlbnVt
IHRvIHRoZSBmcm9udGVuZCBmb3IgbG9jYWxpemF0aW9uPworICAgICAgICAgICAgICAgIFN0cmlu
ZyB3YXJuaW5nID0gdGl0bGUuaXNFbXB0eSgpID8gQVNDSUlMaXRlcmFsKCJVbm5hbWVkIFByb2Zp
bGUgYWxyZWFkeSBleGlzdHMiKSA6IG1ha2VTdHJpbmcoIlByb2ZpbGUgXCIiLCB0aXRsZSwgIlwi
IGFscmVhZHkgZXhpc3RzIik7CisgICAgICAgICAgICAgICAgbV9jb25zb2xlQWdlbnQtPmFkZE1l
c3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2FnZT4oTWVzc2FnZVNv
dXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OlByb2ZpbGUsIE1lc3NhZ2VMZXZlbDo6V2Fy
bmluZywgd2FybmluZykpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgIH0KKworICAgIG1fcHJvZmlsZXMuYXBwZW5kKHRpdGxlKTsKKyAgICBz
dGFydENvbnNvbGVQcm9maWxlKCk7Cit9CisKK3ZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xp
ZW50Ojpwcm9maWxlRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3sK
KyAgICBpZiAoIW1fY29uc29sZUFnZW50LT5lbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIC8vIFN0b3AgcHJvZmlsZXMgaW4gcmV2ZXJzZSBvcmRlci4gSWYgdGhlIHRpdGxlIGlzIGVt
cHR5LCB0aGVuIHN0b3AgdGhlIGxhc3QgcHJvZmlsZS4KKyAgICAvLyBPdGhlcndpc2UsIG1hdGNo
IHRoZSB0aXRsZSBvZiB0aGUgcHJvZmlsZSB0byBzdG9wLgorICAgIGZvciAocHRyZGlmZl90IGkg
PSBtX3Byb2ZpbGVzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgIGlmICh0aXRs
ZS5pc0VtcHR5KCkgfHwgbV9wcm9maWxlc1tpXSA9PSB0aXRsZSkgeworICAgICAgICAgICAgbV9w
cm9maWxlcy5yZW1vdmUoaSk7CisgICAgICAgICAgICBpZiAobV9wcm9maWxlcy5pc0VtcHR5KCkp
CisgICAgICAgICAgICAgICAgc3RvcENvbnNvbGVQcm9maWxlKCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBGSVhNRTogU2VuZCBhbiBlbnVtIHRvIHRo
ZSBmcm9udGVuZCBmb3IgbG9jYWxpemF0aW9uPworICAgIFN0cmluZyB3YXJuaW5nID0gdGl0bGUu
aXNFbXB0eSgpID8gQVNDSUlMaXRlcmFsKCJObyBwcm9maWxlcyBleGlzdCIpIDogbWFrZVN0cmlu
ZygiUHJvZmlsZSBcIiIsIHRpdGxlLCAiXCIgZG9lcyBub3QgZXhpc3QiKTsKKyAgICBtX2NvbnNv
bGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNz
YWdlPihNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6UHJvZmlsZUVuZCwg
TWVzc2FnZUxldmVsOjpXYXJuaW5nLCB3YXJuaW5nKSk7ICAgIAogfQogCi12b2lkIEpTR2xvYmFs
T2JqZWN0Q29uc29sZUNsaWVudDo6cHJvZmlsZUVuZChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0
cmluZyYpCit2b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6c3RhcnRDb25zb2xlUHJv
ZmlsZSgpCiB7Ci0gICAgLy8gRklYTUU6IHN1cHBvcnQgfGNvbnNvbGUucHJvZmlsZXwgZm9yIEpT
Q29udGV4dHMuIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzY0NjY+CisgICAgLy8gRklYTUU6IDxo
dHRwczovL3dlYmtpdC5vcmcvYi8xNTg3NTM+IEdlbmVyYWxpemUgdGhlIGNvbmNlcHQgb2YgSW5z
dHJ1bWVudHMgb24gdGhlIGJhY2tlbmQgdG8gd29yayBlcXVhbGx5IGZvciBKU0NvbnRleHQgYW5k
IFdlYiBpbnNwZWN0aW9uCisgICAgbV9zY3JpcHRQcm9maWxlckFnZW50LT5wcm9ncmFtbWF0aWND
YXB0dXJlU3RhcnRlZCgpOworCisgICAgbV9wcm9maWxlUmVzdG9yZUJyZWFrcG9pbnRBY3RpdmVW
YWx1ZSA9IG1fZGVidWdnZXJBZ2VudC0+YnJlYWtwb2ludHNBY3RpdmUoKTsKKworICAgIEVycm9y
U3RyaW5nIHVudXNlZDsKKyAgICBtX2RlYnVnZ2VyQWdlbnQtPnNldEJyZWFrcG9pbnRzQWN0aXZl
KHVudXNlZCwgZmFsc2UpOworCisgICAgY29uc3QgYm9vbCBpbmNsdWRlU2FtcGxlcyA9IHRydWU7
CisgICAgbV9zY3JpcHRQcm9maWxlckFnZW50LT5zdGFydFRyYWNraW5nKHVudXNlZCwgJmluY2x1
ZGVTYW1wbGVzKTsKK30KKwordm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OnN0b3BD
b25zb2xlUHJvZmlsZSgpCit7CisgICAgRXJyb3JTdHJpbmcgdW51c2VkOworICAgIG1fc2NyaXB0
UHJvZmlsZXJBZ2VudC0+c3RvcFRyYWNraW5nKHVudXNlZCk7CisKKyAgICBtX2RlYnVnZ2VyQWdl
bnQtPnNldEJyZWFrcG9pbnRzQWN0aXZlKHVudXNlZCwgbV9wcm9maWxlUmVzdG9yZUJyZWFrcG9p
bnRBY3RpdmVWYWx1ZSk7CisKKyAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1
ODc1Mz4gR2VuZXJhbGl6ZSB0aGUgY29uY2VwdCBvZiBJbnN0cnVtZW50cyBvbiB0aGUgYmFja2Vu
ZCB0byB3b3JrIGVxdWFsbHkgZm9yIEpTQ29udGV4dCBhbmQgV2ViIGluc3BlY3Rpb24KKyAgICBt
X3NjcmlwdFByb2ZpbGVyQWdlbnQtPnByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVkKCk7CiB9CiAK
IHZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojp0YWtlSGVhcFNuYXBzaG90KEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5o
CmluZGV4IGYzNjg3ZjQuLjUyN2ZmZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaApAQCAt
MjMsMTkgKzIzLDIyIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSlNHbG9iYWxP
YmplY3RDb25zb2xlQ2xpZW50X2gKLSNkZWZpbmUgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50
X2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29uc29sZUNsaWVudC5oIgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIEluc3BlY3RvciB7CiAKIGNsYXNzIEluc3BlY3RvckNvbnNvbGVBZ2VudDsKK2NsYXNzIElu
c3BlY3RvckRlYnVnZ2VyQWdlbnQ7CitjbGFzcyBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50
OwogCiBjbGFzcyBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQgZmluYWwgOiBwdWJsaWMgSlND
OjpDb25zb2xlQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LSAgICBleHBsaWNpdCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQoSW5zcGVjdG9yQ29uc29s
ZUFnZW50Kik7CisgICAgZXhwbGljaXQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50KEluc3Bl
Y3RvckNvbnNvbGVBZ2VudCosIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqLCBJbnNwZWN0b3JTY3Jp
cHRQcm9maWxlckFnZW50Kik7CiAgICAgdmlydHVhbCB+SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xp
ZW50KCkgeyB9CiAKICAgICBzdGF0aWMgYm9vbCBsb2dUb1N5c3RlbUNvbnNvbGUoKTsKQEAgLTU1
LDkgKzU4LDE0IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3YXJuVW5pbXBsZW1lbnRlZChjb25zdCBT
dHJpbmcmIG1ldGhvZCk7CiAgICAgdm9pZCBpbnRlcm5hbEFkZE1lc3NhZ2UoTWVzc2FnZVR5cGUs
IE1lc3NhZ2VMZXZlbCwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYm
KTsKIAorICAgIHZvaWQgc3RhcnRDb25zb2xlUHJvZmlsZSgpOworICAgIHZvaWQgc3RvcENvbnNv
bGVQcm9maWxlKCk7CisKICAgICBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIG1fY29uc29sZUFnZW50
OworICAgIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIG1fZGVidWdnZXJBZ2VudDsKKyAgICBJbnNw
ZWN0b3JTY3JpcHRQcm9maWxlckFnZW50KiBtX3NjcmlwdFByb2ZpbGVyQWdlbnQ7CisgICAgVmVj
dG9yPFN0cmluZz4gbV9wcm9maWxlczsKKyAgICBib29sIG1fcHJvZmlsZVJlc3RvcmVCcmVha3Bv
aW50QWN0aXZlVmFsdWUgeyBmYWxzZSB9OwogfTsKIAogfQotCi0jZW5kaWYgLy8gIWRlZmluZWQo
SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50X2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKaW5kZXggN2UzNDkwZC4uYmNkOWU4YSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmpl
Y3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtODgsMTggKzg4LDE5IEBAIEpTR2xvYmFsT2Jq
ZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVy
KEpTR2xvYmFsT2JqCiAgICAgYXV0byBoZWFwQWdlbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3Bl
Y3RvckhlYXBBZ2VudD4oY29udGV4dCk7CiAgICAgYXV0byBjb25zb2xlQWdlbnQgPSBzdGQ6Om1h
a2VfdW5pcXVlPEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50Pihjb250ZXh0LCBoZWFwQWdlbnQu
Z2V0KCkpOwogICAgIGF1dG8gZGVidWdnZXJBZ2VudCA9IHN0ZDo6bWFrZV91bmlxdWU8SlNHbG9i
YWxPYmplY3REZWJ1Z2dlckFnZW50Pihjb250ZXh0LCBjb25zb2xlQWdlbnQuZ2V0KCkpOworICAg
IGF1dG8gc2NyaXB0UHJvZmlsZXJBZ2VudCA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yU2Ny
aXB0UHJvZmlsZXJBZ2VudD4oY29udGV4dCk7CiAKICAgICBtX2luc3BlY3RvckFnZW50ID0gaW5z
cGVjdG9yQWdlbnQuZ2V0KCk7CiAgICAgbV9kZWJ1Z2dlckFnZW50ID0gZGVidWdnZXJBZ2VudC5n
ZXQoKTsKICAgICBtX2NvbnNvbGVBZ2VudCA9IGNvbnNvbGVBZ2VudC5nZXQoKTsKLSAgICBtX2Nv
bnNvbGVDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVu
dD4obV9jb25zb2xlQWdlbnQpOworICAgIG1fY29uc29sZUNsaWVudCA9IHN0ZDo6bWFrZV91bmlx
dWU8SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50PihtX2NvbnNvbGVBZ2VudCwgbV9kZWJ1Z2dl
ckFnZW50LCBzY3JpcHRQcm9maWxlckFnZW50LmdldCgpKTsKIAogICAgIG1fYWdlbnRzLmFwcGVu
ZChXVEZNb3ZlKGluc3BlY3RvckFnZW50KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKFdURk1vdmUo
cnVudGltZUFnZW50KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKFdURk1vdmUoY29uc29sZUFnZW50
KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKFdURk1vdmUoZGVidWdnZXJBZ2VudCkpOwogICAgIG1f
YWdlbnRzLmFwcGVuZChXVEZNb3ZlKGhlYXBBZ2VudCkpOwotICAgIG1fYWdlbnRzLmFwcGVuZChz
dGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQ+KGNvbnRleHQpKTsK
KyAgICBtX2FnZW50cy5hcHBlbmQoV1RGTW92ZShzY3JpcHRQcm9maWxlckFnZW50KSk7CiAKICAg
ICBtX2V4ZWN1dGlvblN0b3B3YXRjaC0+c3RhcnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudC5jcHAKaW5kZXggNzNjZmI2Zi4uMzYzYjQzOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudC5jcHAKQEAgLTEyNSw2ICsxMjUsMTEgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nJikKICAgICBkaXNhYmxlKGZhbHNlKTsKIH0KIAor
Ym9vbCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpicmVha3BvaW50c0FjdGl2ZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fc2NyaXB0RGVidWdTZXJ2ZXIuYnJlYWtwb2ludHNBY3RpdmUoKTsKK30K
Kwogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRCcmVha3BvaW50c0FjdGl2ZShFcnJv
clN0cmluZyYsIGJvb2wgYWN0aXZlKQogewogICAgIGlmIChhY3RpdmUpCkBAIC0xMzMsNyArMTM4
LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRCcmVha3BvaW50c0FjdGl2ZShF
cnJvclN0cmluZyYsIGJvb2wgYWN0aXZlKQogICAgICAgICBtX3NjcmlwdERlYnVnU2VydmVyLmRl
YWN0aXZhdGVCcmVha3BvaW50cygpOwogfQogCi1ib29sIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6
OmlzUGF1c2VkKCkKK2Jvb2wgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6aXNQYXVzZWQoKSBjb25z
dAogewogICAgIHJldHVybiBtX3NjcmlwdERlYnVnU2VydmVyLmlzUGF1c2VkKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXggZjc3YmY2Ni4uMWM1NzZkMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuaApAQCAtODMsNyArODMsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBldmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjYWxsRnJh
bWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3Vw
LCBjb25zdCBib29sKiBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wqIGRvTm90UGF1
c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwgY29uc3QgYm9vbCogcmV0dXJuQnlWYWx1ZSwg
Y29uc3QgYm9vbCogZ2VuZXJhdGVQcmV2aWV3LCBjb25zdCBib29sKiBzYXZlUmVzdWx0LCBSZWZQ
dHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBJ
bnNwZWN0b3I6OlByb3RvY29sOjpPcHRPdXRwdXQ8Ym9vbD4qIHdhc1Rocm93biwgSW5zcGVjdG9y
OjpQcm90b2NvbDo6T3B0T3V0cHV0PGludD4qIHNhdmVkUmVzdWx0SW5kZXgpIGZpbmFsOwogICAg
IHZvaWQgc2V0T3ZlcmxheU1lc3NhZ2UoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcqKSBvdmVy
cmlkZTsKIAotICAgIGJvb2wgaXNQYXVzZWQoKTsKKyAgICBib29sIGlzUGF1c2VkKCkgY29uc3Q7
CisgICAgYm9vbCBicmVha3BvaW50c0FjdGl2ZSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRTdXBw
cmVzc0FsbFBhdXNlcyhib29sKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxl
ckFnZW50LmNwcAppbmRleCBlNGFlOTBjLi5mYWZjMGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JTY3JpcHRQcm9maWxlckFnZW50LmNwcApAQCAtMjE2LDQgKzIxNiwxMyBAQCB2b2lkIEluc3Bl
Y3RvclNjcmlwdFByb2ZpbGVyQWdlbnQ6OnRyYWNraW5nQ29tcGxldGUoKQogI2VuZGlmIC8vIEVO
QUJMRShTQU1QTElOR19QUk9GSUxFUikKIH0KIAordm9pZCBJbnNwZWN0b3JTY3JpcHRQcm9maWxl
ckFnZW50Ojpwcm9ncmFtbWF0aWNDYXB0dXJlU3RhcnRlZCgpCit7CisgICAgbV9mcm9udGVuZERp
c3BhdGNoZXItPnByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkKCk7Cit9Cit2b2lkIEluc3BlY3Rv
clNjcmlwdFByb2ZpbGVyQWdlbnQ6OnByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVkKCkKK3sKKyAg
ICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3BwZWQoKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9m
aWxlckFnZW50LmgKaW5kZXggZWY4N2RiMy4uNjI4NjBiZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
clNjcmlwdFByb2ZpbGVyQWdlbnQuaApAQCAtNTMsNiArNTMsOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzdGFydFRyYWNraW5nKEVycm9yU3RyaW5nJiwgY29uc3QgYm9vbCogaW5jbHVkZVNhbXBsZXMp
IG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcFRyYWNraW5nKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7
CiAKKyAgICB2b2lkIHByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkKCk7CisgICAgdm9pZCBwcm9n
cmFtbWF0aWNDYXB0dXJlU3RvcHBlZCgpOworCiAgICAgLy8gRGVidWdnZXI6OlByb2ZpbGluZ0Ns
aWVudAogICAgIGJvb2wgaXNBbHJlYWR5UHJvZmlsaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
ZG91YmxlIHdpbGxFdmFsdWF0ZVNjcmlwdCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9TY3JpcHRQcm9maWxlci5qc29uIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9TY3JpcHRQcm9maWxlci5q
c29uCmluZGV4IDM3ZTViNzcuLmQwMTI1OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvU2NyaXB0UHJvZmlsZXIuanNvbgorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1NjcmlwdFByb2ZpbGVyLmpzb24KQEAg
LTg2LDYgKzg2LDE0IEBACiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInNhbXBsZXMiLCAiJHJlZiI6ICJTYW1wbGVzIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIlN0YWNrIHRyYWNlcy4iIH0KICAgICAgICAgICAgIF0KKyAg
ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicHJvZ3JhbW1hdGljQ2Fw
dHVyZVN0YXJ0ZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gcHJv
Z3JhbW1hdGljIGNhcHR1cmUgc3RhcnRzIChjb25zb2xlLnByb2ZpbGUpLiBKU0NvbnRleHQgaW5z
cGVjdGlvbiBvbmx5LiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUi
OiAicHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3BwZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkZpcmVkIHdoZW4gcHJvZ3JhbW1hdGljIGNhcHR1cmUgc3RvcHMgKGNvbnNvbGUucHJvZmls
ZUVuZCkuIEpTQ29udGV4dCBpbnNwZWN0aW9uIG9ubHkuIgogICAgICAgICB9CiAgICAgXQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9UaW1l
bGluZS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9UaW1l
bGluZS5qc29uCmluZGV4IGZlM2VlMDMuLjc3Mzk2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbgorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1RpbWVsaW5lLmpzb24KQEAgLTEwNSw2
ICsxMDUsMTQgQEAKICAgICAgICAgewogICAgICAgICAgICAgIm5hbWUiOiAiYXV0b0NhcHR1cmVT
dGFydGVkIiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVuIGF1dG8gY2Fw
dHVyZSBzdGFydGVkLiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUi
OiAicHJvZ3JhbW1hdGljQ2FwdHVyZVN0YXJ0ZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkZpcmVkIHdoZW4gcHJvZ3JhbW1hdGljIGNhcHR1cmUgc3RhcnRzIChjb25zb2xlLnByb2Zp
bGUpLiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicHJvZ3Jh
bW1hdGljQ2FwdHVyZVN0b3BwZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVk
IHdoZW4gcHJvZ3JhbW1hdGljIGNhcHR1cmUgc3RvcHMgKGNvbnNvbGUucHJvZmlsZUVuZCkuIgog
ICAgICAgICB9CiAgICAgXQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY2N2YxNzAuLjg0MWJhNzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxNi0wNi0xNCAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGNvbnNvbGUucHJvZmls
ZSBzaG91bGQgdXNlIHRoZSBuZXcgU2FtcGxpbmcgUHJvZmlsZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzQ5OQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjQzNTI0MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGVzdDogaW5zcGVjdG9yL3RpbWVsaW5lL3NldEluc3RydW1lbnRzLXByb2dyYW1t
YXRpYy1jYXB0dXJlLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0
YXJ0RnJvbUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6c3RvcEZyb21Db25zb2xlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6Om1haW5GcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OnN0YXJ0UHJvZ3JhbW1hdGljQ2FwdHVyZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdG9wUHJvZ3JhbW1hdGljQ2FwdHVyZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp0b2dnbGVJbnN0cnVt
ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp0b2dnbGVT
Y3JpcHRQcm9maWxlckluc3RydW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6dG9nZ2xlSGVhcEluc3RydW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6dG9nZ2xlTWVtb3J5SW5zdHJ1bWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp0b2dnbGVUaW1lbGluZUluc3RydW1lbnQp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50Lmg6CisgICAgICAg
IFdlYiBpbXBsZW1lbnRhdGlvbiBvZiBjb25zb2xlLnByb2ZpbGUvcHJvZmlsZUVuZC4KKyAgICAg
ICAgTWFrZSBoZWxwZXJzIGZvciBzdGFydGluZ3MgLyBzdG9wcGluZyBpbnN0cnVtZW50cy4KKwog
MjAxNi0wNi0xNCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAg
IFtpT1NdIFBsYXkgZ2x5cGggaXMgcGl4ZWxhdGVkIHdoZW4gdGhlIHBhZ2Ugem9vbSBpcyBsYXJn
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuY3BwCmluZGV4IDgzMzNjODQuLjQ4NDg2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTQzLDYgKzQzLDggQEAK
ICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNs
dWRlICJUaW1lbGluZVJlY29yZEZhY3RvcnkuaCIKKyNpbmNsdWRlICJXZWJDb25zb2xlQWdlbnQu
aCIKKyNpbmNsdWRlIDxpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxpbnNw
ZWN0b3IvU2NyaXB0QnJlYWtwb2ludC5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yRGVidWdnZXJBZ2VudC5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9ySGVhcEFnZW50Lmg+CkBAIC0yNDEsMTQgKzI0Myw1NSBAQCBkb3VibGUgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6dGltZXN0YW1wKCkKICAgICByZXR1cm4gbV9lbnZpcm9ubWVudC5leGVjdXRp
b25TdG9wd2F0Y2goKS0+ZWxhcHNlZFRpbWUoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpzdGFydEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikK
K3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RhcnRGcm9tQ29uc29sZShKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKLSAgICAvLyBGSVhNRTogPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE1MzQ5OT4gV2ViIEluc3BlY3RvcjogY29uc29sZS5wcm9maWxlIHNo
b3VsZCB1c2UgdGhlIG5ldyBTYW1wbGluZyBQcm9maWxlcgorICAgIC8vIEFsbG93IGR1cGxpY2F0
ZSB1bm5hbWVkIHByb2ZpbGVzLiBEaXNhbGxvdyBkdXBsaWNhdGUgbmFtZWQgcHJvZmlsZXMuCisg
ICAgaWYgKCF0aXRsZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgZm9yIChjb25zdCBUaW1lbGluZVJl
Y29yZEVudHJ5JiByZWNvcmQgOiBtX3BlbmRpbmdDb25zb2xlUHJvZmlsZVJlY29yZHMpIHsKKyAg
ICAgICAgICAgIFN0cmluZyByZWNvcmRUaXRsZTsKKyAgICAgICAgICAgIHJlY29yZC5kYXRhLT5n
ZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJ0aXRsZSIpLCByZWNvcmRUaXRsZSk7CisgICAgICAgICAg
ICBpZiAocmVjb3JkVGl0bGUgPT0gdGl0bGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoV2ViQ29u
c29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMud2ViQ29uc29s
ZUFnZW50KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFNlbmQgYW4gZW51bSB0
byB0aGUgZnJvbnRlbmQgZm9yIGxvY2FsaXphdGlvbj8KKyAgICAgICAgICAgICAgICAgICAgU3Ry
aW5nIHdhcm5pbmcgPSB0aXRsZS5pc0VtcHR5KCkgPyBBU0NJSUxpdGVyYWwoIlVubmFtZWQgUHJv
ZmlsZSBhbHJlYWR5IGV4aXN0cyIpIDogbWFrZVN0cmluZygiUHJvZmlsZSBcIiIsIHRpdGxlLCAi
XCIgYWxyZWFkeSBleGlzdHMiKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZUFnZW50LT5h
ZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3Nh
Z2VTb3VyY2U6OkNvbnNvbGVBUEksIE1lc3NhZ2VUeXBlOjpQcm9maWxlLCBNZXNzYWdlTGV2ZWw6
Oldhcm5pbmcsIHdhcm5pbmcpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFtX2Vu
YWJsZWQgJiYgbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzLmlzRW1wdHkoKSkKKyAgICAg
ICAgc3RhcnRQcm9ncmFtbWF0aWNDYXB0dXJlKCk7CisKKyAgICBtX3BlbmRpbmdDb25zb2xlUHJv
ZmlsZVJlY29yZHMuYXBwZW5kKGNyZWF0ZVJlY29yZEVudHJ5KFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlQ29uc29sZVByb2ZpbGVEYXRhKHRpdGxlKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpD
b25zb2xlUHJvZmlsZSwgdHJ1ZSwgZnJhbWVGcm9tRXhlY1N0YXRlKGV4ZWMpKSk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcEZyb21D
b25zb2xlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKLSAgICAvLyBG
SVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1MzQ5OT4gV2ViIEluc3BlY3RvcjogY29uc29s
ZS5wcm9maWxlIHNob3VsZCB1c2UgdGhlIG5ldyBTYW1wbGluZyBQcm9maWxlcgorICAgIC8vIFN0
b3AgcHJvZmlsZXMgaW4gcmV2ZXJzZSBvcmRlci4gSWYgdGhlIHRpdGxlIGlzIGVtcHR5LCB0aGVu
IHN0b3AgdGhlIGxhc3QgcHJvZmlsZS4KKyAgICAvLyBPdGhlcndpc2UsIG1hdGNoIHRoZSB0aXRs
ZSBvZiB0aGUgcHJvZmlsZSB0byBzdG9wLgorICAgIGZvciAoaW50IGkgPSBtX3BlbmRpbmdDb25z
b2xlUHJvZmlsZVJlY29yZHMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgY29u
c3QgVGltZWxpbmVSZWNvcmRFbnRyeSYgcmVjb3JkID0gbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVS
ZWNvcmRzW2ldOworCisgICAgICAgIFN0cmluZyByZWNvcmRUaXRsZTsKKyAgICAgICAgcmVjb3Jk
LmRhdGEtPmdldFN0cmluZyhBU0NJSUxpdGVyYWwoInRpdGxlIiksIHJlY29yZFRpdGxlKTsKKyAg
ICAgICAgaWYgKHRpdGxlLmlzRW1wdHkoKSB8fCByZWNvcmRUaXRsZSA9PSB0aXRsZSkgeworICAg
ICAgICAgICAgZGlkQ29tcGxldGVSZWNvcmRFbnRyeShyZWNvcmQpOworICAgICAgICAgICAgbV9w
ZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzLnJlbW92ZShpKTsKKworICAgICAgICAgICAgaWYg
KCFtX2VuYWJsZWRGcm9tRnJvbnRlbmQgJiYgbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRz
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBzdG9wUHJvZ3JhbW1hdGljQ2FwdHVyZSgpOwor
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoV2ViQ29u
c29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMud2ViQ29uc29s
ZUFnZW50KCkpIHsKKyAgICAgICAgLy8gRklYTUU6IFNlbmQgYW4gZW51bSB0byB0aGUgZnJvbnRl
bmQgZm9yIGxvY2FsaXphdGlvbj8KKyAgICAgICAgU3RyaW5nIHdhcm5pbmcgPSB0aXRsZS5pc0Vt
cHR5KCkgPyBBU0NJSUxpdGVyYWwoIk5vIHByb2ZpbGVzIGV4aXN0IikgOiBtYWtlU3RyaW5nKCJQ
cm9maWxlIFwiIiwgdGl0bGUsICJcIiBkb2VzIG5vdCBleGlzdCIpOworICAgICAgICBjb25zb2xl
QWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2Fn
ZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OlByb2ZpbGVFbmQsIE1l
c3NhZ2VMZXZlbDo6V2FybmluZywgd2FybmluZykpOyAgICAKKyAgICB9CiB9CiAKIHZvaWQgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5jdGlvbihjb25zdCBTdHJpbmcmIHNjcmlw
dE5hbWUsIGludCBzY3JpcHRMaW5lLCBGcmFtZSogZnJhbWUpCkBAIC00MDUsNDAgKzQ0OCwxMTkg
QEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjptYWluRnJhbWVTdGFydGVkTG9hZGluZygp
CiAgICAgLy8gSW5mb3JtIHRoZSBmcm9udGVuZCB3ZSBzdGFydGVkIGFuIGF1dG8gY2FwdHVyZS4g
VGhlIGZyb250ZW5kIG11c3Qgc3RvcCBjYXB0dXJlLgogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVy
LT5hdXRvQ2FwdHVyZVN0YXJ0ZWQoKTsKIAotICAgIC8vIEVuYWJsZSBpbnN0cnVtZW50cy4KKyAg
ICB0b2dnbGVJbnN0cnVtZW50cyhJbnN0cnVtZW50U3RhdGU6OlN0YXJ0KTsKK30KKwordm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydFByb2dyYW1tYXRpY0NhcHR1cmUoKQoreworICAg
IEFTU0VSVCghbV9lbmFibGVkKTsKKworICAgIC8vIERpc2FibGUgYnJlYWtwb2ludHMgZHVyaW5n
IHByb2dyYW1tYXRpYyBjYXB0dXJlLgorICAgIGlmIChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBk
ZWJ1Z2dlckFnZW50ID0gbV9pbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRlYnVnZ2VyQWdl
bnQoKSkgeworICAgICAgICBtX3Byb2dyYW1tYXRpY0NhcHR1cmVSZXN0b3JlQnJlYWtwb2ludEFj
dGl2ZVZhbHVlID0gZGVidWdnZXJBZ2VudC0+YnJlYWtwb2ludHNBY3RpdmUoKTsKKyAgICAgICAg
aWYgKG1fcHJvZ3JhbW1hdGljQ2FwdHVyZVJlc3RvcmVCcmVha3BvaW50QWN0aXZlVmFsdWUpIHsK
KyAgICAgICAgICAgIEVycm9yU3RyaW5nIHVudXNlZDsKKyAgICAgICAgICAgIGRlYnVnZ2VyQWdl
bnQtPnNldEJyZWFrcG9pbnRzQWN0aXZlKHVudXNlZCwgZmFsc2UpOworICAgICAgICB9CisgICAg
fSBlbHNlCisgICAgICAgIG1fcHJvZ3JhbW1hdGljQ2FwdHVyZVJlc3RvcmVCcmVha3BvaW50QWN0
aXZlVmFsdWUgPSBmYWxzZTsKKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtbWF0
aWNDYXB0dXJlU3RhcnRlZCgpOworCisgICAgdG9nZ2xlU2NyaXB0UHJvZmlsZXJJbnN0cnVtZW50
KEluc3RydW1lbnRTdGF0ZTo6U3RhcnQpOyAvLyBFbnN1cmUgSmF2YVNjcmlwdCBzYW1waW5nIGRh
dGEuCisgICAgdG9nZ2xlVGltZWxpbmVJbnN0cnVtZW50KEluc3RydW1lbnRTdGF0ZTo6U3RhcnQp
OyAvLyBFbnN1cmUgQ29uc29sZSBQcm9maWxlIGV2ZW50IHJlY29yZHMuCisgICAgdG9nZ2xlSW5z
dHJ1bWVudHMoSW5zdHJ1bWVudFN0YXRlOjpTdGFydCk7IC8vIEFueSBvdGhlciBpbnN0cnVtZW50
cyB0aGUgZnJvbnRlbmQgd2FudHMgdXMgdG8gcmVjb3JkLgorfQorCit2b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OnN0b3BQcm9ncmFtbWF0aWNDYXB0dXJlKCkKK3sKKyAgICBBU1NFUlQobV9l
bmFibGVkKTsKKyAgICBBU1NFUlQoIW1fZW5hYmxlZEZyb21Gcm9udGVuZCk7CisKKyAgICB0b2dn
bGVJbnN0cnVtZW50cyhJbnN0cnVtZW50U3RhdGU6OlN0b3ApOworICAgIHRvZ2dsZVRpbWVsaW5l
SW5zdHJ1bWVudChJbnN0cnVtZW50U3RhdGU6OlN0b3ApOworICAgIHRvZ2dsZVNjcmlwdFByb2Zp
bGVySW5zdHJ1bWVudChJbnN0cnVtZW50U3RhdGU6OlN0b3ApOworCisgICAgLy8gUmUtZW5hYmxl
IGJyZWFrcG9pbnRzIGlmIHRoZXkgd2VyZSBlbmFibGVkLgorICAgIGlmIChtX3Byb2dyYW1tYXRp
Y0NhcHR1cmVSZXN0b3JlQnJlYWtwb2ludEFjdGl2ZVZhbHVlKSB7CisgICAgICAgIGlmIChJbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50ID0gbV9pbnN0cnVtZW50aW5nQWdlbnRz
Lmluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKSkgeworICAgICAgICAgICAgRXJyb3JTdHJpbmcgdW51
c2VkOworICAgICAgICAgICAgZGVidWdnZXJBZ2VudC0+c2V0QnJlYWtwb2ludHNBY3RpdmUodW51
c2VkLCB0cnVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVy
LT5wcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCgpOworfQorCit2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OnRvZ2dsZUluc3RydW1lbnRzKEluc3RydW1lbnRTdGF0ZSBzdGF0ZSkKK3sKICAg
ICBmb3IgKGF1dG8gaW5zdHJ1bWVudFR5cGUgOiBtX2luc3RydW1lbnRzKSB7CiAgICAgICAgIHN3
aXRjaCAoaW5zdHJ1bWVudFR5cGUpIHsKICAgICAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpUaW1lbGluZTo6SW5zdHJ1bWVudDo6U2NyaXB0UHJvZmlsZXI6IHsKLSAgICAgICAgICAgIGlm
IChtX3NjcmlwdFByb2ZpbGVyQWdlbnQpIHsKLSAgICAgICAgICAgICAgICBFcnJvclN0cmluZyB1
bnVzZWQ7Ci0gICAgICAgICAgICAgICAgY29uc3QgYm9vbCBpbmNsdWRlU2FtcGxlcyA9IHRydWU7
Ci0gICAgICAgICAgICAgICAgbV9zY3JpcHRQcm9maWxlckFnZW50LT5zdGFydFRyYWNraW5nKHVu
dXNlZCwgJmluY2x1ZGVTYW1wbGVzKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRvZ2ds
ZVNjcmlwdFByb2ZpbGVySW5zdHJ1bWVudChzdGF0ZSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OlRpbWVsaW5lOjpJbnN0
cnVtZW50OjpIZWFwOiB7Ci0gICAgICAgICAgICBpZiAobV9oZWFwQWdlbnQpIHsKLSAgICAgICAg
ICAgICAgICBFcnJvclN0cmluZyB1bnVzZWQ7Ci0gICAgICAgICAgICAgICAgbV9oZWFwQWdlbnQt
PnN0YXJ0VHJhY2tpbmcodW51c2VkKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRvZ2ds
ZUhlYXBJbnN0cnVtZW50KHN0YXRlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6VGltZWxpbmU6Okluc3RydW1lbnQ6Ok1l
bW9yeTogewotI2lmIEVOQUJMRShSRVNPVVJDRV9VU0FHRSkKLSAgICAgICAgICAgIGlmIChJbnNw
ZWN0b3JNZW1vcnlBZ2VudCogbWVtb3J5QWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMuaW5z
cGVjdG9yTWVtb3J5QWdlbnQoKSkgewotICAgICAgICAgICAgICAgIEVycm9yU3RyaW5nIHVudXNl
ZDsKLSAgICAgICAgICAgICAgICBtZW1vcnlBZ2VudC0+c3RhcnRUcmFja2luZyh1bnVzZWQpOwot
ICAgICAgICAgICAgfQotI2VuZGlmCisgICAgICAgICAgICB0b2dnbGVNZW1vcnlJbnN0cnVtZW50
KHN0YXRlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6VGltZWxpbmU6Okluc3RydW1lbnQ6OlRpbWVsaW5lOgotICAgICAg
ICAgICAgaW50ZXJuYWxTdGFydCgpOworICAgICAgICAgICAgdG9nZ2xlVGltZWxpbmVJbnN0cnVt
ZW50KHN0YXRlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQogfQogCit2
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnRvZ2dsZVNjcmlwdFByb2ZpbGVySW5zdHJ1bWVu
dChJbnN0cnVtZW50U3RhdGUgc3RhdGUpCit7CisgICAgaWYgKG1fc2NyaXB0UHJvZmlsZXJBZ2Vu
dCkgeworICAgICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CisgICAgICAgIGlmIChzdGF0ZSA9PSBJ
bnN0cnVtZW50U3RhdGU6OlN0YXJ0KSB7CisgICAgICAgICAgICBjb25zdCBib29sIGluY2x1ZGVT
YW1wbGVzID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fc2NyaXB0UHJvZmlsZXJBZ2VudC0+c3RhcnRU
cmFja2luZyh1bnVzZWQsICZpbmNsdWRlU2FtcGxlcyk7CisgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgbV9zY3JpcHRQcm9maWxlckFnZW50LT5zdG9wVHJhY2tpbmcodW51c2VkKTsKKyAgICB9
Cit9CisKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6dG9nZ2xlSGVhcEluc3RydW1lbnQo
SW5zdHJ1bWVudFN0YXRlIHN0YXRlKQoreworICAgIGlmIChtX2hlYXBBZ2VudCkgeworICAgICAg
ICBFcnJvclN0cmluZyB1bnVzZWQ7CisgICAgICAgIGlmIChzdGF0ZSA9PSBJbnN0cnVtZW50U3Rh
dGU6OlN0YXJ0KQorICAgICAgICAgICAgbV9oZWFwQWdlbnQtPnN0YXJ0VHJhY2tpbmcodW51c2Vk
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9oZWFwQWdlbnQtPnN0b3BUcmFja2luZyh1
bnVzZWQpOworICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp0b2dnbGVN
ZW1vcnlJbnN0cnVtZW50KEluc3RydW1lbnRTdGF0ZSBzdGF0ZSkKK3sKKyNpZiBFTkFCTEUoUkVT
T1VSQ0VfVVNBR0UpCisgICAgaWYgKEluc3BlY3Rvck1lbW9yeUFnZW50KiBtZW1vcnlBZ2VudCA9
IG1faW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JNZW1vcnlBZ2VudCgpKSB7CisgICAgICAg
IEVycm9yU3RyaW5nIHVudXNlZDsKKyAgICAgICAgaWYgKHN0YXRlID09IEluc3RydW1lbnRTdGF0
ZTo6U3RhcnQpCisgICAgICAgICAgICBtZW1vcnlBZ2VudC0+c3RhcnRUcmFja2luZyh1bnVzZWQp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBtZW1vcnlBZ2VudC0+c3RvcFRyYWNraW5nKHVu
dXNlZCk7CisgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc3RhdGUpOworI2VuZGlmCit9
CisKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6dG9nZ2xlVGltZWxpbmVJbnN0cnVtZW50
KEluc3RydW1lbnRTdGF0ZSBzdGF0ZSkKK3sKKyAgICBpZiAoc3RhdGUgPT0gSW5zdHJ1bWVudFN0
YXRlOjpTdGFydCkKKyAgICAgICAgaW50ZXJuYWxTdGFydCgpOworICAgIGVsc2UKKyAgICAgICAg
aW50ZXJuYWxTdG9wKCk7Cit9CisKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29t
bWl0TG9hZCgpCiB7CiAgICAgY2xlYXJSZWNvcmRTdGFjaygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggYTIyODQ4MS4uNDU4
MTNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVs
aW5lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5oCkBAIC0xNTMsNiArMTUzLDE4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBicmVha3Bv
aW50QWN0aW9uU291bmQoaW50KSBmaW5hbCB7IH0KICAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Q
cm9iZShKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IEluc3BlY3Rvcjo6U2NyaXB0QnJlYWtwb2ludEFj
dGlvbiYsIHVuc2lnbmVkIGJhdGNoSWQsIHVuc2lnbmVkIHNhbXBsZUlkLCBKU0M6OkpTVmFsdWUg
cmVzdWx0KSBmaW5hbDsKIAorICAgIHZvaWQgc3RhcnRQcm9ncmFtbWF0aWNDYXB0dXJlKCk7Cisg
ICAgdm9pZCBzdG9wUHJvZ3JhbW1hdGljQ2FwdHVyZSgpOworCisgICAgZW51bSBjbGFzcyBJbnN0
cnVtZW50U3RhdGUgeyBTdGFydCwgU3RvcCB9OworICAgIHZvaWQgdG9nZ2xlSW5zdHJ1bWVudHMo
SW5zdHJ1bWVudFN0YXRlKTsKKyAgICB2b2lkIHRvZ2dsZVNjcmlwdFByb2ZpbGVySW5zdHJ1bWVu
dChJbnN0cnVtZW50U3RhdGUpOworICAgIHZvaWQgdG9nZ2xlSGVhcEluc3RydW1lbnQoSW5zdHJ1
bWVudFN0YXRlKTsKKyAgICB2b2lkIHRvZ2dsZU1lbW9yeUluc3RydW1lbnQoSW5zdHJ1bWVudFN0
YXRlKTsKKyAgICB2b2lkIHRvZ2dsZVRpbWVsaW5lSW5zdHJ1bWVudChJbnN0cnVtZW50U3RhdGUp
OworICAgIHZvaWQgZGlzYWJsZUJyZWFrcG9pbnRzKCk7CisgICAgdm9pZCBlbmFibGVCcmVha3Bv
aW50cygpOworCiAgICAgZnJpZW5kIGNsYXNzIFRpbWVsaW5lUmVjb3JkU3RhY2s7CiAKICAgICBz
dHJ1Y3QgVGltZWxpbmVSZWNvcmRFbnRyeSB7CkBAIC0yMDAsMTIgKzIxMiwxNCBAQCBwcml2YXRl
OgogICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7CiAKICAgICBWZWN0b3I8VGlt
ZWxpbmVSZWNvcmRFbnRyeT4gbV9yZWNvcmRTdGFjazsKKyAgICBWZWN0b3I8VGltZWxpbmVSZWNv
cmRFbnRyeT4gbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzOwogCiAgICAgaW50IG1faWQg
eyAxIH07CiAgICAgaW50IG1fbWF4Q2FsbFN0YWNrRGVwdGggeyA1IH07CiAKICAgICBib29sIG1f
ZW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuYWJsZWRGcm9tRnJvbnRlbmQgeyBmYWxz
ZSB9OworICAgIGJvb2wgbV9wcm9ncmFtbWF0aWNDYXB0dXJlUmVzdG9yZUJyZWFrcG9pbnRBY3Rp
dmVWYWx1ZSB7IGZhbHNlIH07CiAKICAgICBib29sIG1fYXV0b0NhcHR1cmVFbmFibGVkIHsgZmFs
c2UgfTsKICAgICBWZWN0b3I8SW5zcGVjdG9yOjpQcm90b2NvbDo6VGltZWxpbmU6Okluc3RydW1l
bnQ+IG1faW5zdHJ1bWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAzYzg4ZjAyLi41
MmQxYjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxNi0w
Ni0xNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IGNvbnNvbGUucHJvZmlsZSBzaG91bGQgdXNlIHRoZSBuZXcgU2FtcGxpbmcg
UHJvZmlsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1MzQ5OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjQzNTI0MzE+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZU1hbmFnZXIucHJvdG90eXBlLnByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIucHJvdG90eXBlLnByb2dyYW1tYXRpY0NhcHR1
cmVTdG9wcGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIucHJvdG90
eXBlLnNjcmlwdFByb2ZpbGVyUHJvZ3JhbW1hdGljQ2FwdHVyZVN0YXJ0ZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdlci5wcm90b3R5cGUuc2NyaXB0UHJvZmlsZXJQcm9n
cmFtbWF0aWNDYXB0dXJlU3RvcHBlZCk6CisgICAgICAgIEZvciBwcm9ncmFtbWF0aWMgY2FwdHVy
ZXMsIGF1dG9tYXRpY2FsbHkgc2hvdyB0aGUgU2NyaXB0IFRpbWVsaW5lLCBzaW5jZQorICAgICAg
ICB0aGF0IGlzIGd1YXJlbnRlZWQgdG8gaGF2ZSBiZWVuIHN0YXJ0ZWQgYnkgdGhlIGJhY2tlbmQu
IFN0YXJ0IGNhcHR1cmluZworICAgICAgICB3aXRob3V0IGNyZWF0aW5nIGEgbmV3IHJlY29yZGlu
Zy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkaW5nLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nLnByb3RvdHlwZS5zdG9w
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZGluZy5wcm90b3R5cGUuYWRk
U2NyaXB0SW5zdHJ1bWVudEZvclByb2dyYW1tYXRpY0NhcHR1cmUpOgorICAgICAgICBXaGVuIHN0
b3BwaW5nIGZvciBwcm9ncmFtbWF0aWMgY2FwdHVyZSB3ZSBkb24ndCBuZWVkIHRvIGRpc2FibGUK
KyAgICAgICAgaW5zdHJ1bWVudHMsIHRoZSBiYWNrZW5kIHdvdWxkIGhhdmUgYWxyZWFkeSBkb25l
IHRoaXMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL1NjcmlwdFByb2ZpbGVy
T2JzZXJ2ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0UHJvZmlsZXJPYnNlcnZl
ci5wcm90b3R5cGUucHJvZ3JhbW1hdGljQ2FwdHVyZVN0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNjcmlwdFByb2ZpbGVyT2JzZXJ2ZXIucHJvdG90eXBlLnByb2dyYW1tYXRpY0NhcHR1
cmVTdG9wcGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRQcm9maWxlck9ic2VydmVy
KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL1RpbWVsaW5lT2JzZXJ2ZXIuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPYnNlcnZlci5wcm90b3R5cGUucHJvZ3Jh
bW1hdGljQ2FwdHVyZVN0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT2Jz
ZXJ2ZXIucHJvdG90eXBlLnByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZU9ic2VydmVyKToKKyAgICAgICAgUGFzcyB0aHJvdWdoIFdlYiBh
bmQgSlNDb250ZXh0IHByb2dyYW1tYXRpYyBjYXB0dXJlIGV2ZW50cy4KKwogMjAxNi0wNi0xNCAg
TmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBWaXN1YWwgU2lkZWJhcjogUmVtb3ZlICJUZXh0IC0+IENvbnRlbnQiIHN1YnNlY3Rp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcwppbmRleCA0MjBjZGQxLi5kODZl
OTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250
cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCkBAIC0yNjIsNyArMjYy
LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdlciA9IGNsYXNzIFRpbWVsaW5lTWFuYWdl
ciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdlci5FdmVudC5DYXB0dXJpbmdT
dG9wcGVkLCB7ZW5kVGltZX0pOwogICAgIH0KIAotICAgIGF1dG9DYXB0dXJlU3RhcnRlZChzdGFy
dFRpbWUpCisgICAgYXV0b0NhcHR1cmVTdGFydGVkKCkKICAgICB7CiAgICAgICAgIC8vIENhbGxl
ZCBmcm9tIFdlYkluc3BlY3Rvci5UaW1lbGluZU9ic2VydmVyLgogCkBAIC0yNzIsMTIgKzI3Miwz
NiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyID0gY2xhc3MgVGltZWxpbmVNYW5hZ2Vy
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICAvLyBXZSBtYXkgYWxyZWFkeSBo
YXZlIGFuIGZyZXNoIFRpbWVsaW5lUmVjb3JkaW5nIGNyZWF0ZWQgaWYgYXV0b0NhcHR1cmVTdGFy
dGVkIGlzIHJlY2VpdmVkCiAgICAgICAgIC8vIGJldHdlZW4gc2VuZGluZyB0aGUgVGltZWxpbmUu
c3RhcnQgY29tbWFuZCBhbmQgcmVjZWl2aW5nIFRpbWVsaW5lLmNhcHR1cmluZ1N0YXJ0ZWQgZXZl
bnQuCiAgICAgICAgIC8vIEluIHRoYXQgY2FzZSwgdGhlcmUgaXMgbm8gbmVlZCB0byBjYWxsIHN0
YXJ0Q2FwdHVyaW5nIGFnYWluLiBSZXVzZSB0aGUgZnJlc2ggcmVjb3JkaW5nLgotICAgICAgICBp
ZiAoIXRoaXMuX3dhaXRpbmdGb3JDYXB0dXJpbmdTdGFydGVkRXZlbnQpCi0gICAgICAgICAgICB0
aGlzLnN0YXJ0Q2FwdHVyaW5nKHRydWUpOworICAgICAgICBpZiAoIXRoaXMuX3dhaXRpbmdGb3JD
YXB0dXJpbmdTdGFydGVkRXZlbnQpIHsKKyAgICAgICAgICAgIGNvbnN0IGNyZWF0ZU5ld1JlY29y
ZGluZyA9IHRydWU7CisgICAgICAgICAgICB0aGlzLnN0YXJ0Q2FwdHVyaW5nKGNyZWF0ZU5ld1Jl
Y29yZGluZyk7CisgICAgICAgIH0KIAogICAgICAgICB0aGlzLl9zaG91bGRTZXRBdXRvQ2FwdHVy
aW5nTWFpblJlc291cmNlID0gdHJ1ZTsKICAgICB9CiAKKyAgICBwcm9ncmFtbWF0aWNDYXB0dXJl
U3RhcnRlZCgpCisgICAgeworICAgICAgICAvLyBDYWxsZWQgZnJvbSBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVPYnNlcnZlci4KKworICAgICAgICB0aGlzLl9hY3RpdmVSZWNvcmRpbmcuYWRkU2NyaXB0
SW5zdHJ1bWVudEZvclByb2dyYW1tYXRpY0NhcHR1cmUoKTsKKworICAgICAgICBjb25zdCBjcmVh
dGVOZXdSZWNvcmRpbmcgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5zdGFydENhcHR1cmluZyhjcmVh
dGVOZXdSZWNvcmRpbmcpOworICAgIH0KKworICAgIHByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVk
KCkKKyAgICB7CisgICAgICAgIC8vIENhbGxlZCBmcm9tIFdlYkluc3BlY3Rvci5UaW1lbGluZU9i
c2VydmVyLgorCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHB1cmVseSB0byBhdm9pZCBhIG5v
aXN5IGFzc2VydC4gUHJldmlvdXNseQorICAgICAgICAvLyBpdCB3YXMgaW1wb3NzaWJsZSB0byBz
dG9wIHdpdGhvdXQgc3RvcHBpbmcgZnJvbSB0aGUgVUkuCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KCF0aGlzLl9pc0NhcHR1cmluZyk7CisgICAgICAgIHRoaXMuX2lzQ2FwdHVyaW5nID0gdHJ1ZTsK
KworICAgICAgICB0aGlzLnN0b3BDYXB0dXJpbmcoKTsKKyAgICB9CisKICAgICBldmVudFJlY29y
ZGVkKHJlY29yZFBheWxvYWQpCiAgICAgewogICAgICAgICAvLyBDYWxsZWQgZnJvbSBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVPYnNlcnZlci4KQEAgLTQ4NSw3ICs1MDksOCBAQCBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVNYW5hZ2VyID0gY2xhc3MgVGltZWxpbmVNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVj
dG9yLk9iamVjdAogCiAgICAgICAgIGNhc2UgVGltZWxpbmVBZ2VudC5FdmVudFR5cGUuQ29uc29s
ZVByb2ZpbGU6CiAgICAgICAgICAgICB2YXIgcHJvZmlsZURhdGEgPSByZWNvcmRQYXlsb2FkLmRh
dGEucHJvZmlsZTsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb2ZpbGVEYXRhKTsKKyAg
ICAgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyA5KTogV2l0aCB0aGUgU2FtcGxpbmcgUHJv
ZmlsZXIsIHByb2ZpbGVzIG5vIGxvbmdlciBpbmNsdWRlIGxlZ2FjeSBwcm9maWxlIGRhdGEuCisg
ICAgICAgICAgICBjb25zb2xlLmFzc2VydChwcm9maWxlRGF0YSB8fCBUaW1lbGluZUFnZW50LnNl
dEluc3RydW1lbnRzKTsKICAgICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlNjcmlw
dFRpbWVsaW5lUmVjb3JkKFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZC5FdmVudFR5
cGUuQ29uc29sZVByb2ZpbGVSZWNvcmRlZCwgc3RhcnRUaW1lLCBlbmRUaW1lLCBjYWxsRnJhbWVz
LCBzb3VyY2VDb2RlTG9jYXRpb24sIHJlY29yZFBheWxvYWQuZGF0YS50aXRsZSwgcHJvZmlsZURh
dGEpOwogCiAgICAgICAgIGNhc2UgVGltZWxpbmVBZ2VudC5FdmVudFR5cGUuVGltZXJGaXJlOgpA
QCAtODM0LDYgKzg1OSwyNCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyID0gY2xhc3Mg
VGltZWxpbmVNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICB9CiAg
ICAgfQogCisgICAgc2NyaXB0UHJvZmlsZXJQcm9ncmFtbWF0aWNDYXB0dXJlU3RhcnRlZCgpCisg
ICAgeworICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1ODc1Mz4gR2Vu
ZXJhbGl6ZSB0aGUgY29uY2VwdCBvZiBJbnN0cnVtZW50cyBvbiB0aGUgYmFja2VuZCB0byB3b3Jr
IGVxdWFsbHkgZm9yIEpTQ29udGV4dCBhbmQgV2ViIGluc3BlY3Rpb24KKyAgICAgICAgY29uc29s
ZS5hc3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2FibGVUeXBlID09PSBXZWJJbnNwZWN0b3IuRGVi
dWdnYWJsZVR5cGUuSmF2YVNjcmlwdCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9p
c0NhcHR1cmluZyk7CisKKyAgICAgICAgdGhpcy5wcm9ncmFtbWF0aWNDYXB0dXJlU3RhcnRlZCgp
OworICAgIH0KKworICAgIHNjcmlwdFByb2ZpbGVyUHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3BwZWQo
KQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNTg3NTM+
IEdlbmVyYWxpemUgdGhlIGNvbmNlcHQgb2YgSW5zdHJ1bWVudHMgb24gdGhlIGJhY2tlbmQgdG8g
d29yayBlcXVhbGx5IGZvciBKU0NvbnRleHQgYW5kIFdlYiBpbnNwZWN0aW9uCisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KFdlYkluc3BlY3Rvci5kZWJ1Z2dhYmxlVHlwZSA9PT0gV2ViSW5zcGVjdG9y
LkRlYnVnZ2FibGVUeXBlLkphdmFTY3JpcHQpOworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlz
Ll9pc0NhcHR1cmluZyk7CisKKyAgICAgICAgdGhpcy5wcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBl
ZCgpOworICAgIH0KKwogICAgIHNjcmlwdFByb2ZpbGVyVHJhY2tpbmdTdGFydGVkKHRpbWVzdGFt
cCkKICAgICB7CiAgICAgICAgIHRoaXMuX3NjcmlwdFByb2ZpbGVyUmVjb3JkcyA9IFtdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Njcmlw
dEluc3RydW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvU2NyaXB0SW5zdHJ1bWVudC5qcwppbmRleCA2MGFjZWQ1Li41NjcwNDhkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2NyaXB0SW5zdHJ1
bWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
U2NyaXB0SW5zdHJ1bWVudC5qcwpAQCAtNTYsNSArNTYsNCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0
SW5zdHJ1bWVudCA9IGNsYXNzIFNjcmlwdEluc3RydW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
SW5zdAogCiAgICAgICAgIFNjcmlwdFByb2ZpbGVyQWdlbnQuc3RvcFRyYWNraW5nKCk7CiAgICAg
fQotCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL1RpbWVsaW5lUmVjb3JkaW5nLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkaW5nLmpzCmluZGV4IDg5MTk2NTIuLjNhNGU3
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9UaW1lbGluZVJlY29yZGluZy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNvcmRpbmcuanMKQEAgLTEyNywxNSArMTI3LDE3IEBA
IFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZGluZyA9IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5n
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iCiAgICAgICAgICAgICBpbnN0cnVtZW50LnN0YXJ0SW5z
dHJ1bWVudGF0aW9uKCk7CiAgICAgfQogCi0gICAgc3RvcCgpCisgICAgc3RvcChwcm9ncmFtbWF0
aWMpCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9jYXB0dXJpbmcsICJBdHRl
bXB0ZWQgdG8gc3RvcCBhbiBhbHJlYWR5IHN0b3BwZWQgc2Vzc2lvbi4iKTsKICAgICAgICAgY29u
c29sZS5hc3NlcnQoIXRoaXMuX3JlYWRvbmx5LCAiQXR0ZW1wdGVkIHRvIHN0b3AgYSByZWFkb25s
eSBzZXNzaW9uLiIpOwogCiAgICAgICAgIHRoaXMuX2NhcHR1cmluZyA9IGZhbHNlOwogCi0gICAg
ICAgIGZvciAobGV0IGluc3RydW1lbnQgb2YgdGhpcy5faW5zdHJ1bWVudHMpCi0gICAgICAgICAg
ICBpbnN0cnVtZW50LnN0b3BJbnN0cnVtZW50YXRpb24oKTsKKyAgICAgICAgaWYgKCFwcm9ncmFt
bWF0aWMpIHsKKyAgICAgICAgICAgIGZvciAobGV0IGluc3RydW1lbnQgb2YgdGhpcy5faW5zdHJ1
bWVudHMpCisgICAgICAgICAgICAgICAgaW5zdHJ1bWVudC5zdG9wSW5zdHJ1bWVudGF0aW9uKCk7
CisgICAgICAgIH0KICAgICB9CiAKICAgICBzYXZlSWRlbnRpdHlUb0Nvb2tpZSgpCkBAIC0zMDcs
NiArMzA5LDE5IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZGluZyA9IGNsYXNzIFRpbWVs
aW5lUmVjb3JkaW5nIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iCiAgICAgICAgIHJldHVybiB0aGlz
Ll9kaXNjb250aW51aXRpZXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnN0YXJ0VGltZSA8IGVuZFRp
bWUgJiYgaXRlbS5lbmRUaW1lID4gc3RhcnRUaW1lKTsKICAgICB9CiAKKyAgICBhZGRTY3JpcHRJ
bnN0cnVtZW50Rm9yUHJvZ3JhbW1hdGljQ2FwdHVyZSgpCisgICAgeworICAgICAgICBmb3IgKGxl
dCBpbnN0cnVtZW50IG9mIHRoaXMuX2luc3RydW1lbnRzKSB7CisgICAgICAgICAgICBpZiAoaW5z
dHJ1bWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5TY3JpcHRJbnN0cnVtZW50KQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuYWRkSW5zdHJ1bWVu
dChuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdEluc3RydW1lbnQpOworCisgICAgICAgIGxldCBpbnN0
cnVtZW50VHlwZXMgPSB0aGlzLl9pbnN0cnVtZW50cy5tYXAoKGluc3RydW1lbnQpID0+IGluc3Ry
dW1lbnQudGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnRpbWVsaW5l
TWFuYWdlci5lbmFibGVkVGltZWxpbmVUeXBlcyA9IGluc3RydW1lbnRUeXBlczsKKyAgICB9CisK
ICAgICBjb21wdXRlRWxhcHNlZFRpbWUodGltZXN0YW1wKQogICAgIHsKICAgICAgICAgaWYgKCF0
aW1lc3RhbXAgfHwgaXNOYU4odGltZXN0YW1wKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1NjcmlwdFByb2ZpbGVyT2JzZXJ2ZXIuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9TY3JpcHRQcm9m
aWxlck9ic2VydmVyLmpzCmluZGV4IGUxMjk3NmFiLi5lMTk2NDNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9TY3JpcHRQcm9maWxlck9i
c2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3Rv
Y29sL1NjcmlwdFByb2ZpbGVyT2JzZXJ2ZXIuanMKQEAgLTQxLDQgKzQxLDE0IEBAIFdlYkluc3Bl
Y3Rvci5TY3JpcHRQcm9maWxlck9ic2VydmVyID0gY2xhc3MgU2NyaXB0UHJvZmlsZXJPYnNlcnZl
cgogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5zY3JpcHRQcm9m
aWxlclRyYWNraW5nQ29tcGxldGVkKHNhbXBsZXMpOwogICAgIH0KKyAgICAKKyAgICBwcm9ncmFt
bWF0aWNDYXB0dXJlU3RhcnRlZCgpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IudGltZWxp
bmVNYW5hZ2VyLnNjcmlwdFByb2ZpbGVyUHJvZ3JhbW1hdGljQ2FwdHVyZVN0YXJ0ZWQoKTsKKyAg
ICB9CisKKyAgICBwcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCgpCisgICAgeworICAgICAgICBX
ZWJJbnNwZWN0b3IudGltZWxpbmVNYW5hZ2VyLnNjcmlwdFByb2ZpbGVyUHJvZ3JhbW1hdGljQ2Fw
dHVyZVN0b3BwZWQoKTsKKyAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvVGltZWxpbmVPYnNlcnZlci5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1RpbWVsaW5lT2JzZXJ2ZXIuanMK
aW5kZXggOGFkY2JiNS4uOTlkZmI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvVGltZWxpbmVPYnNlcnZlci5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9UaW1lbGluZU9ic2VydmVyLmpz
CkBAIC00Niw0ICs0NiwxNCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPYnNlcnZlciA9IGNsYXNz
IFRpbWVsaW5lT2JzZXJ2ZXIKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci50aW1lbGluZU1h
bmFnZXIuYXV0b0NhcHR1cmVTdGFydGVkKCk7CiAgICAgfQorCisgICAgcHJvZ3JhbW1hdGljQ2Fw
dHVyZVN0YXJ0ZWQoKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdl
ci5wcm9ncmFtbWF0aWNDYXB0dXJlU3RhcnRlZCgpOworICAgIH0KKworICAgIHByb2dyYW1tYXRp
Y0NhcHR1cmVTdG9wcGVkKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci50aW1lbGluZU1h
bmFnZXIucHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3BwZWQoKTsKKyAgICB9CiB9Owo=
</data>
<flag name="review"
          id="305185"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281520</attachid>
            <date>2016-06-16 18:57:14 -0700</date>
            <delta_ts>2016-06-16 19:26:48 -0700</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>profile-2.patch</filename>
            <type>text/plain</type>
            <size>49429</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">Y29tbWl0IDJmM2UyMTE5ZWViYjY3MjA3MmNhNjE5YThlMmE1MzBiODNkOWRmOGIKQXV0aG9yOiBK
b3NlcGggUGVjb3Jhcm8gPHBlY29yYXJvQGFwcGxlLmNvbT4KRGF0ZTogICBUdWUgSnVuIDE0IDE5
OjUwOjUxIDIwMTYgLTA3MDAKCiAgICBXZWIgSW5zcGVjdG9yOiBjb25zb2xlLnByb2ZpbGUgc2hv
dWxkIHVzZSB0aGUgbmV3IFNhbXBsaW5nIFByb2ZpbGVyCiAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNDk5CiAgICA8cmRhcjovL3Byb2JsZW0vMjQzNTI0MzE+
CiAgICAKICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KICAgIAogICAgU291cmNlL0ph
dmFTY3JpcHRDb3JlOgogICAgCiAgICBDdXJyZW50bHkgY29uc29sZS5wcm9maWxlL3Byb2ZpbGVF
bmQgYmVoYXZlIHNsaWdodGx5IGRpZmZlcmVudGx5CiAgICBiZXR3ZWVuIEpTQ29udGV4dCBhbmQg
V2ViIGluc3BlY3Rpb24uIFVuaWZ5aW5nIHdpbGwgYmUgcGFydCBvZjoKICAgIDxodHRwczovL3dl
YmtpdC5vcmcvYi8xNTg3NTM+IEdlbmVyYWxpemUgdGhlIGNvbmNlcHQgb2YgSW5zdHJ1bWVudHMg
b24gdGhlIGJhY2tlbmQKICAgIAogICAgQm90aCBKU0NvbnRleHQgYW5kIFdlYiBpbnNwZWN0aW9u
IGtlZXAgdHJhY2sgb2YgYWN0aXZlCiAgICBwcm9maWxlcyBzdGFydGVkIGFuZCBzdG9wcGVkIHZp
YSBjb25zb2xlLnByb2ZpbGUvcHJvZmlsZUVuZC4KICAgIAogICAgSlNDb250ZXh0IGluc3BlY3Rp
b24gc2VuZHMgaXRzIHByb2dyYW1tYXRpYyBzdGFydC9zdG9wCiAgICB2aWEgdGhlIFNjcmlwdFBy
b2ZpbGVyIGRvbWFpbi4KICAgIAogICAgV2ViIGluc3BlY3Rpb24gc2VuZHMgaXRzIHByb2dyYW1t
YXRpYyBzdGFydC9zdG9wCiAgICB2aWEgdGhlIFRpbWVsaW5lIGRvbWFpbiwgYW5kIGFsc28gd2ls
bCBzdGFydC9zdG9wIGJhY2tlbmQKICAgIGxpc3Qgb2YgSW5zdHJ1bWVudHMuCiAgICAKICAgIFRo
ZSBmdW5jdGlvbmFsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlc2UgaXMgdGhhdCBmb3IgSlNDb250
ZXh0CiAgICBpbnNwZWN0aW9uLCBjb25zb2xlLnByb2ZpbGUgb25seSBzdGFydHMvc3RvcHMgdGhl
IFNjcmlwdFByb2ZpbGVyCiAgICBkb21haW4sIGFuZCBkb2VzIG5vdCBhdXRvLXN0YXJ0IG90aGVy
IGluc3RydW1lbnRzLiBUaGlzIGlzbid0IHJlYWxseQogICAgYSBwcm9ibGVtIHJpZ2h0IG5vdyBn
aXZlbiB0aGUgaW5zdHJ1bWVudHMgYXZhaWxhYmxlIGZvciBKU0NvbnRleHQKICAgIGluc3BlY3Rp
b247IGJ1dCBpdCB3aWxsIGJlIG5pY2UgdG8gdW5pZnkgYXMgd2UgYWRkIG1vcmUgaW5zdHJ1bWVu
dHMuCiAgICBBbHNvLCBKU0NvbnRleHQgaW5zcGVjdGlvbiB3b24ndCBoYXZlICJQcm9maWxlIChu
YW1lKSIgcmVjb3JkcyBpbgogICAgaXRzIEV2ZW50cyB2aWV3LCBzaW5jZSB0aG9zZSBhcmUgY3Vy
cmVudGx5IGdlbmVyYXRlZCBvbmx5IGJ5IHRoZQogICAgV2ViJ3MgVGltZWxpbmUgZG9tYWluLgog
ICAgCiAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9TY3JpcHRQcm9maWxlci5qc29uOgogICAgKiBp
bnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbjoKICAgIEV2ZW50cyB0byBpbmZvcm0gdGhl
IGZyb250ZW5kIG9mIHByb2dyYW1tYXRpYyBzdGFydC9zdG9wLgogICAgCiAgICAqIGRlYnVnZ2Vy
L0RlYnVnZ2VyLmg6CiAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dC5jcHA6CiAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpicmVha3BvaW50
c0FjdGl2ZSk6CiAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojppc1BhdXNl
ZCk6CiAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oOgogICAg
RXhwb3NlIGJyZWFrcG9pbnRzIGFjdGl2ZSBzdGF0ZSwgc2luY2UgcHJvZ3JhbW1hdGljIHJlY29y
ZGluZwogICAgd2lsbCB0ZW1wb3JhcmlseSBkaXNhYmxlZCBicmVha3BvaW50cyBpZiBuZWVkZWQu
CiAgICAKICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHA6CiAg
ICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OkpTR2xvYmFsT2JqZWN0
Q29uc29sZUNsaWVudCk6CiAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdENvbnNvbGVDbGll
bnQ6OnByb2ZpbGUpOgogICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50
Ojpwcm9maWxlRW5kKToKICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVu
dDo6c3RhcnRDb25zb2xlUHJvZmlsZSk6CiAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdENv
bnNvbGVDbGllbnQ6OnN0b3BDb25zb2xlUHJvZmlsZSk6CiAgICAqIGluc3BlY3Rvci9KU0dsb2Jh
bE9iamVjdENvbnNvbGVDbGllbnQuaDoKICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5z
cGVjdG9yQ29udHJvbGxlci5jcHA6CiAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXI6OkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcik6CiAgICAq
IGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5jcHA6CiAgICAo
SW5zcGVjdG9yOjpJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojpwcm9ncmFtbWF0aWNDYXB0
dXJlU3RhcnRlZCk6CiAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50
Ojpwcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCk6CiAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oOgogICAgSlNDb250ZXh0IGltcGxlbWVudGF0aW9u
IG9mIGNvbnNvbGUucHJvZmlsZS9wcm9maWxlRW5kLgogICAgCiAgICBTb3VyY2UvV2ViQ29yZToK
ICAgIAogICAgVGVzdDogaW5zcGVjdG9yL3RpbWVsaW5lL3NldEluc3RydW1lbnRzLXByb2dyYW1t
YXRpYy1jYXB0dXJlLmh0bWwKICAgIAogICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5jcHA6CiAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RhcnRGcm9t
Q29uc29sZSk6CiAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcEZyb21D
b25zb2xlKToKICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjptYWluRnJhbWVT
dGFydGVkTG9hZGluZyk6CiAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3Rh
cnRQcm9ncmFtbWF0aWNDYXB0dXJlKToKICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpzdG9wUHJvZ3JhbW1hdGljQ2FwdHVyZSk6CiAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6dG9nZ2xlSW5zdHJ1bWVudHMpOgogICAgKFdlYkNvcmU6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OnRvZ2dsZVNjcmlwdFByb2ZpbGVySW5zdHJ1bWVudCk6CiAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6dG9nZ2xlSGVhcEluc3RydW1lbnQpOgogICAgKFdl
YkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnRvZ2dsZU1lbW9yeUluc3RydW1lbnQpOgog
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnRvZ2dsZVRpbWVsaW5lSW5zdHJ1
bWVudCk6CiAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50Lmg6CiAgICBXZWIg
aW1wbGVtZW50YXRpb24gb2YgY29uc29sZS5wcm9maWxlL3Byb2ZpbGVFbmQuCiAgICBNYWtlIGhl
bHBlcnMgZm9yIHN0YXJ0aW5ncyAvIHN0b3BwaW5nIGluc3RydW1lbnRzLgogICAgCiAgICBTb3Vy
Y2UvV2ViSW5zcGVjdG9yVUk6CiAgICAKICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9U
aW1lbGluZU1hbmFnZXIuanM6CiAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdlci5wcm90
b3R5cGUucHJvZ3JhbW1hdGljQ2FwdHVyZVN0YXJ0ZWQpOgogICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZU1hbmFnZXIucHJvdG90eXBlLnByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVkKToKICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyLnByb3RvdHlwZS5zY3JpcHRQcm9maWxlclByb2dy
YW1tYXRpY0NhcHR1cmVTdGFydGVkKToKICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2Vy
LnByb3RvdHlwZS5zY3JpcHRQcm9maWxlclByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVkKToKICAg
IEZvciBwcm9ncmFtbWF0aWMgY2FwdHVyZXMsIGF1dG9tYXRpY2FsbHkgc2hvdyB0aGUgU2NyaXB0
IFRpbWVsaW5lLCBzaW5jZQogICAgdGhhdCBpcyBndWFyZW50ZWVkIHRvIGhhdmUgYmVlbiBzdGFy
dGVkIGJ5IHRoZSBiYWNrZW5kLiBTdGFydCBjYXB0dXJpbmcKICAgIHdpdGhvdXQgY3JlYXRpbmcg
YSBuZXcgcmVjb3JkaW5nLgogICAgCiAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5l
UmVjb3JkaW5nLmpzOgogICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZGluZy5wcm90b3R5
cGUuc3RvcCk6CiAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nLnByb3RvdHlwZS5h
ZGRTY3JpcHRJbnN0cnVtZW50Rm9yUHJvZ3JhbW1hdGljQ2FwdHVyZSk6CiAgICBXaGVuIHN0b3Bw
aW5nIGZvciBwcm9ncmFtbWF0aWMgY2FwdHVyZSB3ZSBkb24ndCBuZWVkIHRvIGRpc2FibGUKICAg
IGluc3RydW1lbnRzLCB0aGUgYmFja2VuZCB3b3VsZCBoYXZlIGFscmVhZHkgZG9uZSB0aGlzLgog
ICAgCiAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvU2NyaXB0UHJvZmlsZXJPYnNlcnZlci5q
czoKICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0UHJvZmlsZXJPYnNlcnZlci5wcm90b3R5cGUucHJv
Z3JhbW1hdGljQ2FwdHVyZVN0YXJ0ZWQpOgogICAgKFdlYkluc3BlY3Rvci5TY3JpcHRQcm9maWxl
ck9ic2VydmVyLnByb3RvdHlwZS5wcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCk6CiAgICAoV2Vi
SW5zcGVjdG9yLlNjcmlwdFByb2ZpbGVyT2JzZXJ2ZXIpOgogICAgKiBVc2VySW50ZXJmYWNlL1By
b3RvY29sL1RpbWVsaW5lT2JzZXJ2ZXIuanM6CiAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT2Jz
ZXJ2ZXIucHJvdG90eXBlLnByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkKToKICAgIChXZWJJbnNw
ZWN0b3IuVGltZWxpbmVPYnNlcnZlci5wcm90b3R5cGUucHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3Bw
ZWQpOgogICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU9ic2VydmVyKToKICAgIFBhc3MgdGhyb3Vn
aCBXZWIgYW5kIEpTQ29udGV4dCBwcm9ncmFtbWF0aWMgY2FwdHVyZSBldmVudHMuCiAgICAKICAg
IExheW91dFRlc3RzOgogICAgCiAgICAqIGluc3BlY3Rvci90aW1lbGluZS9zZXRJbnN0cnVtZW50
cy1wcm9ncmFtbWF0aWMtY2FwdHVyZS1leHBlY3RlZC50eHQ6IEFkZGVkLgogICAgKiBpbnNwZWN0
b3IvdGltZWxpbmUvc2V0SW5zdHJ1bWVudHMtcHJvZ3JhbW1hdGljLWNhcHR1cmUuaHRtbDogQWRk
ZWQuCiAgICBOZXcgdGVzdCB0aGF0IHRoZSBiYWNrZW5kIGF1dG8tc3RhcnRzIGluc3RydW1lbnRz
IGR1cmluZyBwcm9ncmFtbWF0aWMgY2FwdHVyZS4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWVkYzYwYy4uNDJhNGI4ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA2LTE2ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNv
cmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogY29uc29sZS5wcm9maWxl
IHNob3VsZCB1c2UgdGhlIG5ldyBTYW1wbGluZyBQcm9maWxlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNDk5CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yNDM1MjQzMT4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvc2V0SW5zdHJ1bWVudHMtcHJvZ3JhbW1hdGlj
LWNhcHR1cmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxp
bmUvc2V0SW5zdHJ1bWVudHMtcHJvZ3JhbW1hdGljLWNhcHR1cmUuaHRtbDogQWRkZWQuCisgICAg
ICAgIE5ldyB0ZXN0IHRoYXQgdGhlIGJhY2tlbmQgYXV0by1zdGFydHMgaW5zdHJ1bWVudHMgZHVy
aW5nIHByb2dyYW1tYXRpYyBjYXB0dXJlLgorCiAyMDE2LTA2LTE2ICBKb2huIFdpbGFuZGVyICA8
d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc3RyaWN0IHNlY3VyaXR5IG9yaWdpbiBp
bmhlcml0YW5jZSB0byBlbXB0eSwgYWJvdXQ6YmxhbmssIGFuZCBhYm91dDpzcmNkb2MgVVJMcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3NldEluc3RydW1lbnRz
LXByb2dyYW1tYXRpYy1jYXB0dXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS9zZXRJbnN0cnVtZW50cy1wcm9ncmFtbWF0aWMtY2FwdHVyZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQyNmJlYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS9zZXRJbnN0cnVtZW50cy1w
cm9ncmFtbWF0aWMtY2FwdHVyZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNiBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDg6IEluc2lkZSBOb0luc3RydW1lbnRzUHJvZ3JhbW1hdGljQ2FwdHVy
ZSBwcm9maWxlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODogSW5zaWRlIE11bHRpcGxlSW5zdHJ1
bWVudHNQcm9ncmFtbWF0aWNDYXB0dXJlIHByb2ZpbGUKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4
OiBJbnNpZGUgTm9JbnN0cnVtZW50c1Byb2dyYW1tYXRpY0NhcHR1cmVBZ2FpbiBwcm9maWxlCitU
ZXN0cyBwcm9ncmFtbWF0aWMgY2FwdHVyZSAoY29uc29sZS5wcm9maWxlL3Byb2ZpbGVFbmQpIGF1
dG9tYXRpY2FsbHkgc3RhcnRzIGluc3RydW1lbnRzIHNldCB2aWEgVGltZWxpbmUuc2V0SW5zdHJ1
bWVudHMuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBUaW1lbGluZS5zZXRJbnN0cnVtZW50
cy5wcm9ncmFtbWF0aWMtY2FwdHVyZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IE5vSW5zdHJ1bWVu
dHNQcm9ncmFtbWF0aWNDYXB0dXJlCitQQVNTOiBTaG91bGQgbm90IGJlIGFuIGVycm9yIHNldHRp
bmcgdmFsaWQgaW5zdHJ1bWVudHMuCitQQVNTOiBUaW1lbGluZS5wcm9ncmFtbWF0aWNDYXB0dXJl
U3RhcnRlZAorUEFTUzogU2NyaXB0UHJvZmlsZXIuc3RhcnRUcmFja2luZworUEFTUzogVGltZWxp
bmUucHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3BwZWQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IE11
bHRpcGxlSW5zdHJ1bWVudHNQcm9ncmFtbWF0aWNDYXB0dXJlCitQQVNTOiBTaG91bGQgbm90IGJl
IGFuIGVycm9yIHNldHRpbmcgdmFsaWQgaW5zdHJ1bWVudHMuCitQQVNTOiBUaW1lbGluZS5wcm9n
cmFtbWF0aWNDYXB0dXJlU3RhcnRlZAorUEFTUzogU2NyaXB0UHJvZmlsZXIuc3RhcnRUcmFja2lu
ZworUEFTUzogSGVhcC50cmFja2luZ1N0YXJ0CitQQVNTOiBUaW1lbGluZS5wcm9ncmFtbWF0aWND
YXB0dXJlU3RvcHBlZAorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogTm9JbnN0cnVtZW50c1Byb2dy
YW1tYXRpY0NhcHR1cmVBZ2FpbgorUEFTUzogU2hvdWxkIG5vdCBiZSBhbiBlcnJvciBzZXR0aW5n
IHZhbGlkIGluc3RydW1lbnRzLgorUEFTUzogVGltZWxpbmUucHJvZ3JhbW1hdGljQ2FwdHVyZVN0
YXJ0ZWQKK1BBU1M6IFNjcmlwdFByb2ZpbGVyLnN0YXJ0VHJhY2tpbmcKK1BBU1M6IFRpbWVsaW5l
LnByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci90aW1lbGluZS9zZXRJbnN0cnVtZW50cy1wcm9ncmFtbWF0aWMtY2FwdHVyZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3NldEluc3RydW1lbnRzLXByb2dyYW1t
YXRpYy1jYXB0dXJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTgx
ZGFlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS9z
ZXRJbnN0cnVtZW50cy1wcm9ncmFtbWF0aWMtY2FwdHVyZS5odG1sCkBAIC0wLDAgKzEsODQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorZnVuY3Rpb24gdHJpZ2dlclByb2dyYW1tYXRpY0NhcHR1cmUobWVzc2FnZSkgewor
ICAgIGNvbnNvbGUucHJvZmlsZSgpOworICAgIGNvbnNvbGUubG9nKGBJbnNpZGUgJHttZXNzYWdl
fSBwcm9maWxlYCk7CisgICAgY29uc29sZS5wcm9maWxlRW5kKCk7Cit9CisKK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIGxldCBzdWl0ZSA9IFByb3RvY29sVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJU
aW1lbGluZS5zZXRJbnN0cnVtZW50cy5wcm9ncmFtbWF0aWMtY2FwdHVyZSIpOworCisgICAgbGV0
IGhlYXBFeHBlY3RlZCA9IGZhbHNlOworICAgIGxldCBwcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBl
ZCA9IG51bGw7CisKKyAgICBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIlRpbWVsaW5l
LnByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkIl0gPSAoKSA9PiB7CisgICAgICAgIFByb3RvY29s
VGVzdC5wYXNzKCJUaW1lbGluZS5wcm9ncmFtbWF0aWNDYXB0dXJlU3RhcnRlZCIpOworICAgIH07
CisgICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJUaW1lbGluZS5wcm9ncmFtbWF0
aWNDYXB0dXJlU3RvcHBlZCJdID0gKCkgPT4geworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygi
VGltZWxpbmUucHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3BwZWQiKTsKKyAgICAgICAgcHJvZ3JhbW1h
dGljQ2FwdHVyZVN0b3BwZWQoKTsKKyAgICB9OworCisgICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZl
bnRIYW5kbGVyWyJTY3JpcHRQcm9maWxlci50cmFja2luZ1N0YXJ0Il0gPSAoKSA9PiB7CisgICAg
ICAgIFByb3RvY29sVGVzdC5wYXNzKCJTY3JpcHRQcm9maWxlci5zdGFydFRyYWNraW5nIik7Cisg
ICAgfTsKKworICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiSGVhcC50cmFja2lu
Z1N0YXJ0Il0gPSAoKSA9PiB7CisgICAgICAgIGlmIChoZWFwRXhwZWN0ZWQpCisgICAgICAgICAg
ICBQcm90b2NvbFRlc3QucGFzcygiSGVhcC50cmFja2luZ1N0YXJ0Iik7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJVbmV4cGVjdGVkIEhlYXAudHJhY2tpbmdT
dGFydCIpOworICAgIH07CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6
ICJOb0luc3RydW1lbnRzUHJvZ3JhbW1hdGljQ2FwdHVyZSIsCisgICAgICAgIHRlc3Q6IChyZXNv
bHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIGhlYXBFeHBlY3RlZCA9IGZhbHNlOworICAg
ICAgICAgICAgcHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3BwZWQgPSByZXNvbHZlOworCisgICAgICAg
ICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgiVGltZWxpbmUuc2V0SW5zdHJ1bWVu
dHMiLCB7aW5zdHJ1bWVudHM6IFtdfSwgKG1lc3NhZ2VPYmplY3QpID0+IHsKKyAgICAgICAgICAg
ICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdCghbWVzc2FnZU9iamVjdC5lcnJvciwgIlNob3Vs
ZCBub3QgYmUgYW4gZXJyb3Igc2V0dGluZyB2YWxpZCBpbnN0cnVtZW50cy4iKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV2YWx1YXRlSW5QYWdlKCJ0cmlnZ2Vy
UHJvZ3JhbW1hdGljQ2FwdHVyZSgnTm9JbnN0cnVtZW50c1Byb2dyYW1tYXRpY0NhcHR1cmUnKSIp
OworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAg
IG5hbWU6ICJNdWx0aXBsZUluc3RydW1lbnRzUHJvZ3JhbW1hdGljQ2FwdHVyZSIsCisgICAgICAg
IHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIGhlYXBFeHBlY3RlZCA9
IHRydWU7CisgICAgICAgICAgICBwcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCA9IHJlc29sdmU7
CisKKyAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJUaW1lbGluZS5z
ZXRJbnN0cnVtZW50cyIsIHtpbnN0cnVtZW50czogWyJTY3JpcHRQcm9maWxlciIsICJIZWFwIl19
LCAobWVzc2FnZU9iamVjdCkgPT4geworICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBl
Y3RUaGF0KCFtZXNzYWdlT2JqZWN0LmVycm9yLCAiU2hvdWxkIG5vdCBiZSBhbiBlcnJvciBzZXR0
aW5nIHZhbGlkIGluc3RydW1lbnRzLiIpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBQ
cm90b2NvbFRlc3QuZXZhbHVhdGVJblBhZ2UoInRyaWdnZXJQcm9ncmFtbWF0aWNDYXB0dXJlKCdN
dWx0aXBsZUluc3RydW1lbnRzUHJvZ3JhbW1hdGljQ2FwdHVyZScpIik7CisgICAgICAgIH0KKyAg
ICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIk5vSW5zdHJ1
bWVudHNQcm9ncmFtbWF0aWNDYXB0dXJlQWdhaW4iLAorICAgICAgICB0ZXN0OiAocmVzb2x2ZSwg
cmVqZWN0KSA9PiB7CisgICAgICAgICAgICBoZWFwRXhwZWN0ZWQgPSB0cnVlOworICAgICAgICAg
ICAgcHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3BwZWQgPSByZXNvbHZlOworCisgICAgICAgICAgICBJ
bnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgiVGltZWxpbmUuc2V0SW5zdHJ1bWVudHMiLCB7
aW5zdHJ1bWVudHM6IFtdfSwgKG1lc3NhZ2VPYmplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBQ
cm90b2NvbFRlc3QuZXhwZWN0VGhhdCghbWVzc2FnZU9iamVjdC5lcnJvciwgIlNob3VsZCBub3Qg
YmUgYW4gZXJyb3Igc2V0dGluZyB2YWxpZCBpbnN0cnVtZW50cy4iKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV2YWx1YXRlSW5QYWdlKCJ0cmlnZ2VyUHJvZ3Jh
bW1hdGljQ2FwdHVyZSgnTm9JbnN0cnVtZW50c1Byb2dyYW1tYXRpY0NhcHR1cmVBZ2FpbicpIik7
CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgp
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5U
ZXN0cyBwcm9ncmFtbWF0aWMgY2FwdHVyZSAoY29uc29sZS5wcm9maWxlL3Byb2ZpbGVFbmQpIGF1
dG9tYXRpY2FsbHkgc3RhcnRzIGluc3RydW1lbnRzIHNldCB2aWEgVGltZWxpbmUuc2V0SW5zdHJ1
bWVudHMuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzZjYjA0Zi4uNTY3ODJmMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEg
QEAKKzIwMTYtMDYtMTYgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBjb25zb2xlLnByb2ZpbGUgc2hvdWxkIHVzZSB0aGUgbmV3
IFNhbXBsaW5nIFByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTM0OTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0MzUyNDMxPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KKworICAgICAgICBDdXJyZW50bHkg
Y29uc29sZS5wcm9maWxlL3Byb2ZpbGVFbmQgYmVoYXZlIHNsaWdodGx5IGRpZmZlcmVudGx5Cisg
ICAgICAgIGJldHdlZW4gSlNDb250ZXh0IGFuZCBXZWIgaW5zcGVjdGlvbi4gVW5pZnlpbmcgd2ls
bCBiZSBwYXJ0IG9mOgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTU4NzUzPiBHZW5l
cmFsaXplIHRoZSBjb25jZXB0IG9mIEluc3RydW1lbnRzIG9uIHRoZSBiYWNrZW5kCisKKyAgICAg
ICAgQm90aCBKU0NvbnRleHQgYW5kIFdlYiBpbnNwZWN0aW9uIGtlZXAgdHJhY2sgb2YgYWN0aXZl
CisgICAgICAgIHByb2ZpbGVzIHN0YXJ0ZWQgYW5kIHN0b3BwZWQgdmlhIGNvbnNvbGUucHJvZmls
ZS9wcm9maWxlRW5kLgorCisgICAgICAgIEpTQ29udGV4dCBpbnNwZWN0aW9uIHNlbmRzIGl0cyBw
cm9ncmFtbWF0aWMgc3RhcnQvc3RvcAorICAgICAgICB2aWEgdGhlIFNjcmlwdFByb2ZpbGVyIGRv
bWFpbi4KKworICAgICAgICBXZWIgaW5zcGVjdGlvbiBzZW5kcyBpdHMgcHJvZ3JhbW1hdGljIHN0
YXJ0L3N0b3AKKyAgICAgICAgdmlhIHRoZSBUaW1lbGluZSBkb21haW4sIGFuZCBhbHNvIHdpbGwg
c3RhcnQvc3RvcCBiYWNrZW5kCisgICAgICAgIGxpc3Qgb2YgSW5zdHJ1bWVudHMuCisKKyAgICAg
ICAgVGhlIGZ1bmN0aW9uYWwgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGVzZSBpcyB0aGF0IGZvciBK
U0NvbnRleHQKKyAgICAgICAgaW5zcGVjdGlvbiwgY29uc29sZS5wcm9maWxlIG9ubHkgc3RhcnRz
L3N0b3BzIHRoZSBTY3JpcHRQcm9maWxlcgorICAgICAgICBkb21haW4sIGFuZCBkb2VzIG5vdCBh
dXRvLXN0YXJ0IG90aGVyIGluc3RydW1lbnRzLiBUaGlzIGlzbid0IHJlYWxseQorICAgICAgICBh
IHByb2JsZW0gcmlnaHQgbm93IGdpdmVuIHRoZSBpbnN0cnVtZW50cyBhdmFpbGFibGUgZm9yIEpT
Q29udGV4dAorICAgICAgICBpbnNwZWN0aW9uOyBidXQgaXQgd2lsbCBiZSBuaWNlIHRvIHVuaWZ5
IGFzIHdlIGFkZCBtb3JlIGluc3RydW1lbnRzLgorICAgICAgICBBbHNvLCBKU0NvbnRleHQgaW5z
cGVjdGlvbiB3b24ndCBoYXZlICJQcm9maWxlIChuYW1lKSIgcmVjb3JkcyBpbgorICAgICAgICBp
dHMgRXZlbnRzIHZpZXcsIHNpbmNlIHRob3NlIGFyZSBjdXJyZW50bHkgZ2VuZXJhdGVkIG9ubHkg
YnkgdGhlCisgICAgICAgIFdlYidzIFRpbWVsaW5lIGRvbWFpbi4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9wcm90b2NvbC9TY3JpcHRQcm9maWxlci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9w
cm90b2NvbC9UaW1lbGluZS5qc29uOgorICAgICAgICBFdmVudHMgdG8gaW5mb3JtIHRoZSBmcm9u
dGVuZCBvZiBwcm9ncmFtbWF0aWMgc3RhcnQvc3RvcC4KKworICAgICAgICAqIGRlYnVnZ2VyL0Rl
YnVnZ2VyLmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6YnJl
YWtwb2ludHNBY3RpdmUpOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50Ojppc1BhdXNlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50Lmg6CisgICAgICAgIEV4cG9zZSBicmVha3BvaW50cyBhY3RpdmUgc3RhdGUsIHNp
bmNlIHByb2dyYW1tYXRpYyByZWNvcmRpbmcKKyAgICAgICAgd2lsbCB0ZW1wb3JhcmlseSBkaXNh
YmxlZCBicmVha3BvaW50cyBpZiBuZWVkZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNHbG9i
YWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxP
YmplY3RDb25zb2xlQ2xpZW50OjpKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQpOgorICAgICAg
ICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OnByb2ZpbGUpOgorICAg
ICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OnByb2ZpbGVFbmQp
OgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OnN0YXJ0
Q29uc29sZVByb2ZpbGUpOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdENvbnNv
bGVDbGllbnQ6OnN0b3BDb25zb2xlUHJvZmlsZSk6CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xv
YmFsT2JqZWN0Q29uc29sZUNsaWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9i
amVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2Jh
bE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJv
bGxlcik6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxl
ckFnZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJB
Z2VudDo6cHJvZ3JhbW1hdGljQ2FwdHVyZVN0YXJ0ZWQpOgorICAgICAgICAoSW5zcGVjdG9yOjpJ
bnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojpwcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCk6
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50
Lmg6CisgICAgICAgIEpTQ29udGV4dCBpbXBsZW1lbnRhdGlvbiBvZiBjb25zb2xlLnByb2ZpbGUv
cHJvZmlsZUVuZC4KKwogMjAxNi0wNi0xNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29t
PgogCiAgICAgICAgIEtyYWtlbi9zdGFuZm9yZC1jcnlwdG8tcGJrZGYyLmpzIHNvbWV0aW1lcyBj
cmFzaGVzIHdpdGggYW4gT1NSIGFzc2VydGlvbiBpbiBGVEwKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyLmgKaW5kZXggNmNlMGQ1Mi4uZmQzMGZhYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgY2xlYXJCcmVha3BvaW50cygpOwogICAgIHZvaWQgYWN0aXZhdGVCcmVha3Bv
aW50cygpIHsgc2V0QnJlYWtwb2ludHNBY3RpdmF0ZWQodHJ1ZSk7IH0KICAgICB2b2lkIGRlYWN0
aXZhdGVCcmVha3BvaW50cygpIHsgc2V0QnJlYWtwb2ludHNBY3RpdmF0ZWQoZmFsc2UpOyB9Cisg
ICAgYm9vbCBicmVha3BvaW50c0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYnJlYWtwb2ludHNB
Y3RpdmF0ZWQ7IH0KIAogICAgIGVudW0gUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSB7CiAgICAgICAg
IERvbnRQYXVzZU9uRXhjZXB0aW9ucywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcAppbmRl
eCBlMzY4NTBjLi4zM2YxMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwCkBAIC0y
OCw2ICsyOCw4IEBACiAKICNpbmNsdWRlICJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUgIklu
c3BlY3RvckNvbnNvbGVBZ2VudC5oIgorI2luY2x1ZGUgIkluc3BlY3RvckRlYnVnZ2VyQWdlbnQu
aCIKKyNpbmNsdWRlICJJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmgiCiAjaW5jbHVkZSAi
U2NyaXB0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIgpAQCAtNTIsOSArNTQsMTEgQEAgdm9pZCBKU0ds
b2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OnNldExvZ1RvU3lzdGVtQ29uc29sZShib29sIHNob3Vs
ZExvZykKICAgICBzTG9nVG9TeXN0ZW1Db25zb2xlID0gc2hvdWxkTG9nOwogfQogCi1KU0dsb2Jh
bE9iamVjdENvbnNvbGVDbGllbnQ6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudChJbnNwZWN0
b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCkKK0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVu
dDo6SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50KEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29u
c29sZUFnZW50LCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50LCBJbnNwZWN0
b3JTY3JpcHRQcm9maWxlckFnZW50KiBzY3JpcHRQcm9maWxlckFnZW50KQogICAgIDogQ29uc29s
ZUNsaWVudCgpCiAgICAgLCBtX2NvbnNvbGVBZ2VudChjb25zb2xlQWdlbnQpCisgICAgLCBtX2Rl
YnVnZ2VyQWdlbnQoZGVidWdnZXJBZ2VudCkKKyAgICAsIG1fc2NyaXB0UHJvZmlsZXJBZ2VudChz
Y3JpcHRQcm9maWxlckFnZW50KQogewogfQogCkBAIC03MywxNCArNzcsNzEgQEAgdm9pZCBKU0ds
b2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OmNvdW50KEV4ZWNTdGF0ZSogZXhlYywgUmVmUHRyPFNj
cmlwdEFyZ3VtZW50cz4KICAgICBtX2NvbnNvbGVBZ2VudC0+Y291bnQoZXhlYywgYXJndW1lbnRz
KTsKIH0KIAotdm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OnByb2ZpbGUoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmKQordm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGll
bnQ6OnByb2ZpbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKQogewotICAg
IC8vIEZJWE1FOiBzdXBwb3J0IHxjb25zb2xlLnByb2ZpbGV8IGZvciBKU0NvbnRleHRzLiA8aHR0
cHM6Ly93ZWJraXQub3JnL2IvMTM2NDY2PgorICAgIGlmICghbV9jb25zb2xlQWdlbnQtPmVuYWJs
ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gQWxsb3cgZHVwbGljYXRlIHVubmFtZWQg
cHJvZmlsZXMuIERpc2FsbG93IGR1cGxpY2F0ZSBuYW1lZCBwcm9maWxlcy4KKyAgICBpZiAoIXRp
dGxlLmlzRW1wdHkoKSkgeworICAgICAgICBmb3IgKGF1dG8mIGV4aXN0aW5nVGl0bGUgOiBtX3By
b2ZpbGVzKSB7CisgICAgICAgICAgICBpZiAoZXhpc3RpbmdUaXRsZSA9PSB0aXRsZSkgeworICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBTZW5kIGFuIGVudW0gdG8gdGhlIGZyb250ZW5kIGZvciBs
b2NhbGl6YXRpb24/CisgICAgICAgICAgICAgICAgU3RyaW5nIHdhcm5pbmcgPSB0aXRsZS5pc0Vt
cHR5KCkgPyBBU0NJSUxpdGVyYWwoIlVubmFtZWQgUHJvZmlsZSBhbHJlYWR5IGV4aXN0cyIpIDog
bWFrZVN0cmluZygiUHJvZmlsZSBcIiIsIHRpdGxlLCAiXCIgYWxyZWFkeSBleGlzdHMiKTsKKyAg
ICAgICAgICAgICAgICBtX2NvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1h
a2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNz
YWdlVHlwZTo6UHJvZmlsZSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCB3YXJuaW5nKSk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisg
ICAgbV9wcm9maWxlcy5hcHBlbmQodGl0bGUpOworICAgIHN0YXJ0Q29uc29sZVByb2ZpbGUoKTsK
K30KKwordm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OnByb2ZpbGVFbmQoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKQoreworICAgIGlmICghbV9jb25zb2xlQWdl
bnQtPmVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gU3RvcCBwcm9maWxlcyBp
biByZXZlcnNlIG9yZGVyLiBJZiB0aGUgdGl0bGUgaXMgZW1wdHksIHRoZW4gc3RvcCB0aGUgbGFz
dCBwcm9maWxlLgorICAgIC8vIE90aGVyd2lzZSwgbWF0Y2ggdGhlIHRpdGxlIG9mIHRoZSBwcm9m
aWxlIHRvIHN0b3AuCisgICAgZm9yIChwdHJkaWZmX3QgaSA9IG1fcHJvZmlsZXMuc2l6ZSgpIC0g
MTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgaWYgKHRpdGxlLmlzRW1wdHkoKSB8fCBtX3Byb2Zp
bGVzW2ldID09IHRpdGxlKSB7CisgICAgICAgICAgICBtX3Byb2ZpbGVzLnJlbW92ZShpKTsKKyAg
ICAgICAgICAgIGlmIChtX3Byb2ZpbGVzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBzdG9w
Q29uc29sZVByb2ZpbGUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0K
KworICAgIC8vIEZJWE1FOiBTZW5kIGFuIGVudW0gdG8gdGhlIGZyb250ZW5kIGZvciBsb2NhbGl6
YXRpb24/CisgICAgU3RyaW5nIHdhcm5pbmcgPSB0aXRsZS5pc0VtcHR5KCkgPyBBU0NJSUxpdGVy
YWwoIk5vIHByb2ZpbGVzIGV4aXN0IikgOiBtYWtlU3RyaW5nKCJQcm9maWxlIFwiIiwgdGl0bGUs
ICJcIiBkb2VzIG5vdCBleGlzdCIpOworICAgIG1fY29uc29sZUFnZW50LT5hZGRNZXNzYWdlVG9D
b25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNv
bnNvbGVBUEksIE1lc3NhZ2VUeXBlOjpQcm9maWxlRW5kLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcs
IHdhcm5pbmcpKTsgICAgCiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojpw
cm9maWxlRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgSlNHbG9iYWxP
YmplY3RDb25zb2xlQ2xpZW50OjpzdGFydENvbnNvbGVQcm9maWxlKCkKIHsKLSAgICAvLyBGSVhN
RTogc3VwcG9ydCB8Y29uc29sZS5wcm9maWxlfCBmb3IgSlNDb250ZXh0cy4gPGh0dHBzOi8vd2Vi
a2l0Lm9yZy9iLzEzNjQ2Nj4KKyAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1
ODc1Mz4gR2VuZXJhbGl6ZSB0aGUgY29uY2VwdCBvZiBJbnN0cnVtZW50cyBvbiB0aGUgYmFja2Vu
ZCB0byB3b3JrIGVxdWFsbHkgZm9yIEpTQ29udGV4dCBhbmQgV2ViIGluc3BlY3Rpb24KKyAgICBt
X3NjcmlwdFByb2ZpbGVyQWdlbnQtPnByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkKCk7CisKKyAg
ICBtX3Byb2ZpbGVSZXN0b3JlQnJlYWtwb2ludEFjdGl2ZVZhbHVlID0gbV9kZWJ1Z2dlckFnZW50
LT5icmVha3BvaW50c0FjdGl2ZSgpOworCisgICAgRXJyb3JTdHJpbmcgdW51c2VkOworICAgIG1f
ZGVidWdnZXJBZ2VudC0+c2V0QnJlYWtwb2ludHNBY3RpdmUodW51c2VkLCBmYWxzZSk7CisKKyAg
ICBjb25zdCBib29sIGluY2x1ZGVTYW1wbGVzID0gdHJ1ZTsKKyAgICBtX3NjcmlwdFByb2ZpbGVy
QWdlbnQtPnN0YXJ0VHJhY2tpbmcodW51c2VkLCAmaW5jbHVkZVNhbXBsZXMpOworfQorCit2b2lk
IEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6c3RvcENvbnNvbGVQcm9maWxlKCkKK3sKKyAg
ICBFcnJvclN0cmluZyB1bnVzZWQ7CisgICAgbV9zY3JpcHRQcm9maWxlckFnZW50LT5zdG9wVHJh
Y2tpbmcodW51c2VkKTsKKworICAgIG1fZGVidWdnZXJBZ2VudC0+c2V0QnJlYWtwb2ludHNBY3Rp
dmUodW51c2VkLCBtX3Byb2ZpbGVSZXN0b3JlQnJlYWtwb2ludEFjdGl2ZVZhbHVlKTsKKworICAg
IC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTU4NzUzPiBHZW5lcmFsaXplIHRoZSBj
b25jZXB0IG9mIEluc3RydW1lbnRzIG9uIHRoZSBiYWNrZW5kIHRvIHdvcmsgZXF1YWxseSBmb3Ig
SlNDb250ZXh0IGFuZCBXZWIgaW5zcGVjdGlvbgorICAgIG1fc2NyaXB0UHJvZmlsZXJBZ2VudC0+
cHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3BwZWQoKTsKIH0KIAogdm9pZCBKU0dsb2JhbE9iamVjdENv
bnNvbGVDbGllbnQ6OnRha2VIZWFwU25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJp
bmcmIHRpdGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9K
U0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmgKaW5kZXggZjM2ODdmNC4uNTI3ZmZk
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9i
amVjdENvbnNvbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oCkBAIC0yMywxOSArMjMsMjIgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnRfaAot
I2RlZmluZSBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnRfaAorI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJDb25zb2xlQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogY2xh
c3MgSW5zcGVjdG9yQ29uc29sZUFnZW50OworY2xhc3MgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDsK
K2NsYXNzIEluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQ7CiAKIGNsYXNzIEpTR2xvYmFsT2Jq
ZWN0Q29uc29sZUNsaWVudCBmaW5hbCA6IHB1YmxpYyBKU0M6OkNvbnNvbGVDbGllbnQgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IEpTR2xvYmFs
T2JqZWN0Q29uc29sZUNsaWVudChJbnNwZWN0b3JDb25zb2xlQWdlbnQqKTsKKyAgICBleHBsaWNp
dCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQoSW5zcGVjdG9yQ29uc29sZUFnZW50KiwgSW5z
cGVjdG9yRGVidWdnZXJBZ2VudCosIEluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQqKTsKICAg
ICB2aXJ0dWFsIH5KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQoKSB7IH0KIAogICAgIHN0YXRp
YyBib29sIGxvZ1RvU3lzdGVtQ29uc29sZSgpOwpAQCAtNTUsOSArNTgsMTQgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHdhcm5VbmltcGxlbWVudGVkKGNvbnN0IFN0cmluZyYgbWV0aG9kKTsKICAgICB2
b2lkIGludGVybmFsQWRkTWVzc2FnZShNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4
ZWNTdGF0ZSosIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYpOwogCisgICAgdm9pZCBzdGFydENv
bnNvbGVQcm9maWxlKCk7CisgICAgdm9pZCBzdG9wQ29uc29sZVByb2ZpbGUoKTsKKwogICAgIElu
c3BlY3RvckNvbnNvbGVBZ2VudCogbV9jb25zb2xlQWdlbnQ7CisgICAgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudCogbV9kZWJ1Z2dlckFnZW50OworICAgIEluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdl
bnQqIG1fc2NyaXB0UHJvZmlsZXJBZ2VudDsKKyAgICBWZWN0b3I8U3RyaW5nPiBtX3Byb2ZpbGVz
OworICAgIGJvb2wgbV9wcm9maWxlUmVzdG9yZUJyZWFrcG9pbnRBY3RpdmVWYWx1ZSB7IGZhbHNl
IH07CiB9OwogCiB9Ci0KLSNlbmRpZiAvLyAhZGVmaW5lZChKU0dsb2JhbE9iamVjdENvbnNvbGVD
bGllbnRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNH
bG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA3
ZTM0OTBkLi5iY2Q5ZThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCkBAIC04OCwxOCArODgsMTkgQEAgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVy
OjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIoSlNHbG9iYWxPYmoKICAgICBhdXRv
IGhlYXBBZ2VudCA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9ySGVhcEFnZW50Pihjb250ZXh0
KTsKICAgICBhdXRvIGNvbnNvbGVBZ2VudCA9IHN0ZDo6bWFrZV91bmlxdWU8SlNHbG9iYWxPYmpl
Y3RDb25zb2xlQWdlbnQ+KGNvbnRleHQsIGhlYXBBZ2VudC5nZXQoKSk7CiAgICAgYXV0byBkZWJ1
Z2dlckFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQ+
KGNvbnRleHQsIGNvbnNvbGVBZ2VudC5nZXQoKSk7CisgICAgYXV0byBzY3JpcHRQcm9maWxlckFn
ZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Pihjb250
ZXh0KTsKIAogICAgIG1faW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC5nZXQoKTsKICAg
ICBtX2RlYnVnZ2VyQWdlbnQgPSBkZWJ1Z2dlckFnZW50LmdldCgpOwogICAgIG1fY29uc29sZUFn
ZW50ID0gY29uc29sZUFnZW50LmdldCgpOwotICAgIG1fY29uc29sZUNsaWVudCA9IHN0ZDo6bWFr
ZV91bmlxdWU8SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50PihtX2NvbnNvbGVBZ2VudCk7Cisg
ICAgbV9jb25zb2xlQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxKU0dsb2JhbE9iamVjdENvbnNv
bGVDbGllbnQ+KG1fY29uc29sZUFnZW50LCBtX2RlYnVnZ2VyQWdlbnQsIHNjcmlwdFByb2ZpbGVy
QWdlbnQuZ2V0KCkpOwogCiAgICAgbV9hZ2VudHMuYXBwZW5kKFdURk1vdmUoaW5zcGVjdG9yQWdl
bnQpKTsKICAgICBtX2FnZW50cy5hcHBlbmQoV1RGTW92ZShydW50aW1lQWdlbnQpKTsKICAgICBt
X2FnZW50cy5hcHBlbmQoV1RGTW92ZShjb25zb2xlQWdlbnQpKTsKICAgICBtX2FnZW50cy5hcHBl
bmQoV1RGTW92ZShkZWJ1Z2dlckFnZW50KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKFdURk1vdmUo
aGVhcEFnZW50KSk7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVj
dG9yU2NyaXB0UHJvZmlsZXJBZ2VudD4oY29udGV4dCkpOworICAgIG1fYWdlbnRzLmFwcGVuZChX
VEZNb3ZlKHNjcmlwdFByb2ZpbGVyQWdlbnQpKTsKIAogICAgIG1fZXhlY3V0aW9uU3RvcHdhdGNo
LT5zdGFydCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCA3M2Nm
YjZmLi4zNjNiNDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApAQCAtMTI1
LDYgKzEyNSwxMSBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpc2FibGUoRXJyb3JT
dHJpbmcmKQogICAgIGRpc2FibGUoZmFsc2UpOwogfQogCitib29sIEluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQ6OmJyZWFrcG9pbnRzQWN0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY3JpcHRE
ZWJ1Z1NlcnZlci5icmVha3BvaW50c0FjdGl2ZSgpOworfQorCiB2b2lkIEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ6OnNldEJyZWFrcG9pbnRzQWN0aXZlKEVycm9yU3RyaW5nJiwgYm9vbCBhY3RpdmUp
CiB7CiAgICAgaWYgKGFjdGl2ZSkKQEAgLTEzMyw3ICsxMzgsNyBAQCB2b2lkIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OnNldEJyZWFrcG9pbnRzQWN0aXZlKEVycm9yU3RyaW5nJiwgYm9vbCBhY3Rp
dmUpCiAgICAgICAgIG1fc2NyaXB0RGVidWdTZXJ2ZXIuZGVhY3RpdmF0ZUJyZWFrcG9pbnRzKCk7
CiB9CiAKLWJvb2wgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6aXNQYXVzZWQoKQorYm9vbCBJbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50Ojppc1BhdXNlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2Ny
aXB0RGVidWdTZXJ2ZXIuaXNQYXVzZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQu
aAppbmRleCBmNzdiZjY2Li4xYzU3NmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5o
CkBAIC04Myw3ICs4Myw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGV2YWx1YXRlT25DYWxsRnJhbWUo
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcmIGV4
cHJlc3Npb24sIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGluY2x1ZGVD
b21tYW5kTGluZUFQSSwgY29uc3QgYm9vbCogZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVD
b25zb2xlLCBjb25zdCBib29sKiByZXR1cm5CeVZhbHVlLCBjb25zdCBib29sKiBnZW5lcmF0ZVBy
ZXZpZXcsIGNvbnN0IGJvb2wqIHNhdmVSZXN1bHQsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29s
OjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQsIEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok9w
dE91dHB1dDxib29sPiogd2FzVGhyb3duLCBJbnNwZWN0b3I6OlByb3RvY29sOjpPcHRPdXRwdXQ8
aW50Piogc2F2ZWRSZXN1bHRJbmRleCkgZmluYWw7CiAgICAgdm9pZCBzZXRPdmVybGF5TWVzc2Fn
ZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyopIG92ZXJyaWRlOwogCi0gICAgYm9vbCBpc1Bh
dXNlZCgpOworICAgIGJvb2wgaXNQYXVzZWQoKSBjb25zdDsKKyAgICBib29sIGJyZWFrcG9pbnRz
QWN0aXZlKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFN1cHByZXNzQWxsUGF1c2VzKGJvb2wpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IGU0YWU5
MGMuLjc5ZWEwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQu
Y3BwCkBAIC0yMTYsNCArMjE2LDE0IEBAIHZvaWQgSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2Vu
dDo6dHJhY2tpbmdDb21wbGV0ZSgpCiAjZW5kaWYgLy8gRU5BQkxFKFNBTVBMSU5HX1BST0ZJTEVS
KQogfQogCit2b2lkIEluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQ6OnByb2dyYW1tYXRpY0Nh
cHR1cmVTdGFydGVkKCkKK3sKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cHJvZ3JhbW1hdGlj
Q2FwdHVyZVN0YXJ0ZWQoKTsKK30KKwordm9pZCBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50
Ojpwcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCgpCit7CisgICAgbV9mcm9udGVuZERpc3BhdGNo
ZXItPnByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIElu
c3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oCmluZGV4IGVm
ODdkYjMuLjYyODYwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50
LmgKQEAgLTUzLDYgKzUzLDkgQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRUcmFja2luZyhFcnJv
clN0cmluZyYsIGNvbnN0IGJvb2wqIGluY2x1ZGVTYW1wbGVzKSBvdmVycmlkZTsKICAgICB2b2lk
IHN0b3BUcmFja2luZyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogCisgICAgdm9pZCBwcm9ncmFt
bWF0aWNDYXB0dXJlU3RhcnRlZCgpOworICAgIHZvaWQgcHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3Bw
ZWQoKTsKKwogICAgIC8vIERlYnVnZ2VyOjpQcm9maWxpbmdDbGllbnQKICAgICBib29sIGlzQWxy
ZWFkeVByb2ZpbGluZygpIGNvbnN0IG92ZXJyaWRlOwogICAgIGRvdWJsZSB3aWxsRXZhbHVhdGVT
Y3JpcHQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcHJvdG9jb2wvU2NyaXB0UHJvZmlsZXIuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcHJvdG9jb2wvU2NyaXB0UHJvZmlsZXIuanNvbgppbmRleCAzN2U1Yjc3Li5k
MDEyNThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3Rv
Y29sL1NjcmlwdFByb2ZpbGVyLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9TY3JpcHRQcm9maWxlci5qc29uCkBAIC04Niw2ICs4NiwxNCBAQAogICAg
ICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzYW1w
bGVzIiwgIiRyZWYiOiAiU2FtcGxlcyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJTdGFjayB0cmFjZXMuIiB9CiAgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAgICJuYW1lIjogInByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVuIHByb2dyYW1tYXRpYyBjYXB0dXJlIHN0
YXJ0cyAoY29uc29sZS5wcm9maWxlKS4gSlNDb250ZXh0IGluc3BlY3Rpb24gb25seS4iCisgICAg
ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInByb2dyYW1tYXRpY0NhcHR1
cmVTdG9wcGVkIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVuIHByb2dy
YW1tYXRpYyBjYXB0dXJlIHN0b3BzIChjb25zb2xlLnByb2ZpbGVFbmQpLiBKU0NvbnRleHQgaW5z
cGVjdGlvbiBvbmx5LiIKICAgICAgICAgfQogICAgIF0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbgppbmRleCBmZTNl
ZTAzLi43NzM5Njc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3Byb3RvY29sL1RpbWVsaW5lLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9UaW1lbGluZS5qc29uCkBAIC0xMDUsNiArMTA1LDE0IEBACiAgICAgICAg
IHsKICAgICAgICAgICAgICJuYW1lIjogImF1dG9DYXB0dXJlU3RhcnRlZCIsCiAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBhdXRvIGNhcHR1cmUgc3RhcnRlZC4iCisgICAg
ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInByb2dyYW1tYXRpY0NhcHR1
cmVTdGFydGVkIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVuIHByb2dy
YW1tYXRpYyBjYXB0dXJlIHN0YXJ0cyAoY29uc29sZS5wcm9maWxlKS4iCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVk
IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVuIHByb2dyYW1tYXRpYyBj
YXB0dXJlIHN0b3BzIChjb25zb2xlLnByb2ZpbGVFbmQpLiIKICAgICAgICAgfQogICAgIF0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhNmFlZGVlLi42ZTI2OTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTYtMDYtMTYgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBjb25zb2xlLnByb2ZpbGUgc2hvdWxkIHVzZSB0aGUgbmV3
IFNhbXBsaW5nIFByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTM0OTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0MzUyNDMxPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KKworICAgICAgICBUZXN0OiBpbnNw
ZWN0b3IvdGltZWxpbmUvc2V0SW5zdHJ1bWVudHMtcHJvZ3JhbW1hdGljLWNhcHR1cmUuaHRtbAor
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RhcnRGcm9tQ29uc29sZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdG9wRnJvbUNvbnNvbGUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6bWFpbkZyYW1lU3Rh
cnRlZExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
c3RhcnRQcm9ncmFtbWF0aWNDYXB0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OnN0b3BQcm9ncmFtbWF0aWNDYXB0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnRvZ2dsZUluc3RydW1lbnRzKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnRvZ2dsZVNjcmlwdFByb2ZpbGVySW5zdHJ1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp0b2dnbGVI
ZWFwSW5zdHJ1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojp0b2dnbGVNZW1vcnlJbnN0cnVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OnRvZ2dsZVRpbWVsaW5lSW5zdHJ1bWVudCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgV2ViIGltcGxlbWVudGF0aW9u
IG9mIGNvbnNvbGUucHJvZmlsZS9wcm9maWxlRW5kLgorICAgICAgICBNYWtlIGhlbHBlcnMgZm9y
IHN0YXJ0aW5ncyAvIHN0b3BwaW5nIGluc3RydW1lbnRzLgorCiAyMDE2LTA2LTE2ICBKb2huIFdp
bGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc3RyaWN0IHNlY3VyaXR5
IG9yaWdpbiBpbmhlcml0YW5jZSB0byBlbXB0eSwgYWJvdXQ6YmxhbmssIGFuZCBhYm91dDpzcmNk
b2MgVVJMcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVs
aW5lQWdlbnQuY3BwCmluZGV4IDgzMzNjODQuLjQ4NDg2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTQzLDYgKzQz
LDggQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIK
ICNpbmNsdWRlICJUaW1lbGluZVJlY29yZEZhY3RvcnkuaCIKKyNpbmNsdWRlICJXZWJDb25zb2xl
QWdlbnQuaCIKKyNpbmNsdWRlIDxpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRl
IDxpbnNwZWN0b3IvU2NyaXB0QnJlYWtwb2ludC5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9ySGVhcEFnZW50Lmg+CkBAIC0yNDEsMTQgKzI0Myw1NSBAQCBkb3VibGUgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6dGltZXN0YW1wKCkKICAgICByZXR1cm4gbV9lbnZpcm9ubWVudC5l
eGVjdXRpb25TdG9wd2F0Y2goKS0+ZWxhcHNlZFRpbWUoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpzdGFydEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3Ry
aW5nJikKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RhcnRGcm9tQ29uc29sZShKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKLSAgICAvLyBGSVhNRTog
PGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1MzQ5OT4gV2ViIEluc3BlY3RvcjogY29uc29sZS5wcm9m
aWxlIHNob3VsZCB1c2UgdGhlIG5ldyBTYW1wbGluZyBQcm9maWxlcgorICAgIC8vIEFsbG93IGR1
cGxpY2F0ZSB1bm5hbWVkIHByb2ZpbGVzLiBEaXNhbGxvdyBkdXBsaWNhdGUgbmFtZWQgcHJvZmls
ZXMuCisgICAgaWYgKCF0aXRsZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgZm9yIChjb25zdCBUaW1l
bGluZVJlY29yZEVudHJ5JiByZWNvcmQgOiBtX3BlbmRpbmdDb25zb2xlUHJvZmlsZVJlY29yZHMp
IHsKKyAgICAgICAgICAgIFN0cmluZyByZWNvcmRUaXRsZTsKKyAgICAgICAgICAgIHJlY29yZC5k
YXRhLT5nZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJ0aXRsZSIpLCByZWNvcmRUaXRsZSk7CisgICAg
ICAgICAgICBpZiAocmVjb3JkVGl0bGUgPT0gdGl0bGUpIHsKKyAgICAgICAgICAgICAgICBpZiAo
V2ViQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMud2Vi
Q29uc29sZUFnZW50KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFNlbmQgYW4g
ZW51bSB0byB0aGUgZnJvbnRlbmQgZm9yIGxvY2FsaXphdGlvbj8KKyAgICAgICAgICAgICAgICAg
ICAgU3RyaW5nIHdhcm5pbmcgPSB0aXRsZS5pc0VtcHR5KCkgPyBBU0NJSUxpdGVyYWwoIlVubmFt
ZWQgUHJvZmlsZSBhbHJlYWR5IGV4aXN0cyIpIDogbWFrZVN0cmluZygiUHJvZmlsZSBcIiIsIHRp
dGxlLCAiXCIgYWxyZWFkeSBleGlzdHMiKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZUFn
ZW50LT5hZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+
KE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIE1lc3NhZ2VUeXBlOjpQcm9maWxlLCBNZXNzYWdl
TGV2ZWw6Oldhcm5pbmcsIHdhcm5pbmcpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KCFtX2VuYWJsZWQgJiYgbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzLmlzRW1wdHkoKSkK
KyAgICAgICAgc3RhcnRQcm9ncmFtbWF0aWNDYXB0dXJlKCk7CisKKyAgICBtX3BlbmRpbmdDb25z
b2xlUHJvZmlsZVJlY29yZHMuYXBwZW5kKGNyZWF0ZVJlY29yZEVudHJ5KFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlQ29uc29sZVByb2ZpbGVEYXRhKHRpdGxlKSwgVGltZWxpbmVSZWNvcmRU
eXBlOjpDb25zb2xlUHJvZmlsZSwgdHJ1ZSwgZnJhbWVGcm9tRXhlY1N0YXRlKGV4ZWMpKSk7CiB9
CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcEZyb21Db25zb2xlKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3Rv
cEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKLSAg
ICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1MzQ5OT4gV2ViIEluc3BlY3Rvcjog
Y29uc29sZS5wcm9maWxlIHNob3VsZCB1c2UgdGhlIG5ldyBTYW1wbGluZyBQcm9maWxlcgorICAg
IC8vIFN0b3AgcHJvZmlsZXMgaW4gcmV2ZXJzZSBvcmRlci4gSWYgdGhlIHRpdGxlIGlzIGVtcHR5
LCB0aGVuIHN0b3AgdGhlIGxhc3QgcHJvZmlsZS4KKyAgICAvLyBPdGhlcndpc2UsIG1hdGNoIHRo
ZSB0aXRsZSBvZiB0aGUgcHJvZmlsZSB0byBzdG9wLgorICAgIGZvciAoaW50IGkgPSBtX3BlbmRp
bmdDb25zb2xlUHJvZmlsZVJlY29yZHMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAg
ICAgY29uc3QgVGltZWxpbmVSZWNvcmRFbnRyeSYgcmVjb3JkID0gbV9wZW5kaW5nQ29uc29sZVBy
b2ZpbGVSZWNvcmRzW2ldOworCisgICAgICAgIFN0cmluZyByZWNvcmRUaXRsZTsKKyAgICAgICAg
cmVjb3JkLmRhdGEtPmdldFN0cmluZyhBU0NJSUxpdGVyYWwoInRpdGxlIiksIHJlY29yZFRpdGxl
KTsKKyAgICAgICAgaWYgKHRpdGxlLmlzRW1wdHkoKSB8fCByZWNvcmRUaXRsZSA9PSB0aXRsZSkg
eworICAgICAgICAgICAgZGlkQ29tcGxldGVSZWNvcmRFbnRyeShyZWNvcmQpOworICAgICAgICAg
ICAgbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzLnJlbW92ZShpKTsKKworICAgICAgICAg
ICAgaWYgKCFtX2VuYWJsZWRGcm9tRnJvbnRlbmQgJiYgbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVS
ZWNvcmRzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBzdG9wUHJvZ3JhbW1hdGljQ2FwdHVy
ZSgpOworCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAo
V2ViQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMud2Vi
Q29uc29sZUFnZW50KCkpIHsKKyAgICAgICAgLy8gRklYTUU6IFNlbmQgYW4gZW51bSB0byB0aGUg
ZnJvbnRlbmQgZm9yIGxvY2FsaXphdGlvbj8KKyAgICAgICAgU3RyaW5nIHdhcm5pbmcgPSB0aXRs
ZS5pc0VtcHR5KCkgPyBBU0NJSUxpdGVyYWwoIk5vIHByb2ZpbGVzIGV4aXN0IikgOiBtYWtlU3Ry
aW5nKCJQcm9maWxlIFwiIiwgdGl0bGUsICJcIiBkb2VzIG5vdCBleGlzdCIpOworICAgICAgICBj
b25zb2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xl
TWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OlByb2ZpbGVF
bmQsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgd2FybmluZykpOyAgICAKKyAgICB9CiB9CiAKIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5jdGlvbihjb25zdCBTdHJpbmcm
IHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lLCBGcmFtZSogZnJhbWUpCkBAIC00MDUsNDAgKzQ0
OCwxMTkgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjptYWluRnJhbWVTdGFydGVkTG9h
ZGluZygpCiAgICAgLy8gSW5mb3JtIHRoZSBmcm9udGVuZCB3ZSBzdGFydGVkIGFuIGF1dG8gY2Fw
dHVyZS4gVGhlIGZyb250ZW5kIG11c3Qgc3RvcCBjYXB0dXJlLgogICAgIG1fZnJvbnRlbmREaXNw
YXRjaGVyLT5hdXRvQ2FwdHVyZVN0YXJ0ZWQoKTsKIAotICAgIC8vIEVuYWJsZSBpbnN0cnVtZW50
cy4KKyAgICB0b2dnbGVJbnN0cnVtZW50cyhJbnN0cnVtZW50U3RhdGU6OlN0YXJ0KTsKK30KKwor
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydFByb2dyYW1tYXRpY0NhcHR1cmUoKQor
eworICAgIEFTU0VSVCghbV9lbmFibGVkKTsKKworICAgIC8vIERpc2FibGUgYnJlYWtwb2ludHMg
ZHVyaW5nIHByb2dyYW1tYXRpYyBjYXB0dXJlLgorICAgIGlmIChJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50KiBkZWJ1Z2dlckFnZW50ID0gbV9pbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRlYnVn
Z2VyQWdlbnQoKSkgeworICAgICAgICBtX3Byb2dyYW1tYXRpY0NhcHR1cmVSZXN0b3JlQnJlYWtw
b2ludEFjdGl2ZVZhbHVlID0gZGVidWdnZXJBZ2VudC0+YnJlYWtwb2ludHNBY3RpdmUoKTsKKyAg
ICAgICAgaWYgKG1fcHJvZ3JhbW1hdGljQ2FwdHVyZVJlc3RvcmVCcmVha3BvaW50QWN0aXZlVmFs
dWUpIHsKKyAgICAgICAgICAgIEVycm9yU3RyaW5nIHVudXNlZDsKKyAgICAgICAgICAgIGRlYnVn
Z2VyQWdlbnQtPnNldEJyZWFrcG9pbnRzQWN0aXZlKHVudXNlZCwgZmFsc2UpOworICAgICAgICB9
CisgICAgfSBlbHNlCisgICAgICAgIG1fcHJvZ3JhbW1hdGljQ2FwdHVyZVJlc3RvcmVCcmVha3Bv
aW50QWN0aXZlVmFsdWUgPSBmYWxzZTsKKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9n
cmFtbWF0aWNDYXB0dXJlU3RhcnRlZCgpOworCisgICAgdG9nZ2xlU2NyaXB0UHJvZmlsZXJJbnN0
cnVtZW50KEluc3RydW1lbnRTdGF0ZTo6U3RhcnQpOyAvLyBFbnN1cmUgSmF2YVNjcmlwdCBzYW1w
aW5nIGRhdGEuCisgICAgdG9nZ2xlVGltZWxpbmVJbnN0cnVtZW50KEluc3RydW1lbnRTdGF0ZTo6
U3RhcnQpOyAvLyBFbnN1cmUgQ29uc29sZSBQcm9maWxlIGV2ZW50IHJlY29yZHMuCisgICAgdG9n
Z2xlSW5zdHJ1bWVudHMoSW5zdHJ1bWVudFN0YXRlOjpTdGFydCk7IC8vIEFueSBvdGhlciBpbnN0
cnVtZW50cyB0aGUgZnJvbnRlbmQgd2FudHMgdXMgdG8gcmVjb3JkLgorfQorCit2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OnN0b3BQcm9ncmFtbWF0aWNDYXB0dXJlKCkKK3sKKyAgICBBU1NF
UlQobV9lbmFibGVkKTsKKyAgICBBU1NFUlQoIW1fZW5hYmxlZEZyb21Gcm9udGVuZCk7CisKKyAg
ICB0b2dnbGVJbnN0cnVtZW50cyhJbnN0cnVtZW50U3RhdGU6OlN0b3ApOworICAgIHRvZ2dsZVRp
bWVsaW5lSW5zdHJ1bWVudChJbnN0cnVtZW50U3RhdGU6OlN0b3ApOworICAgIHRvZ2dsZVNjcmlw
dFByb2ZpbGVySW5zdHJ1bWVudChJbnN0cnVtZW50U3RhdGU6OlN0b3ApOworCisgICAgLy8gUmUt
ZW5hYmxlIGJyZWFrcG9pbnRzIGlmIHRoZXkgd2VyZSBlbmFibGVkLgorICAgIGlmIChtX3Byb2dy
YW1tYXRpY0NhcHR1cmVSZXN0b3JlQnJlYWtwb2ludEFjdGl2ZVZhbHVlKSB7CisgICAgICAgIGlm
IChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50ID0gbV9pbnN0cnVtZW50aW5n
QWdlbnRzLmluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKSkgeworICAgICAgICAgICAgRXJyb3JTdHJp
bmcgdW51c2VkOworICAgICAgICAgICAgZGVidWdnZXJBZ2VudC0+c2V0QnJlYWtwb2ludHNBY3Rp
dmUodW51c2VkLCB0cnVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1fZnJvbnRlbmREaXNw
YXRjaGVyLT5wcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCgpOworfQorCit2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OnRvZ2dsZUluc3RydW1lbnRzKEluc3RydW1lbnRTdGF0ZSBzdGF0ZSkK
K3sKICAgICBmb3IgKGF1dG8gaW5zdHJ1bWVudFR5cGUgOiBtX2luc3RydW1lbnRzKSB7CiAgICAg
ICAgIHN3aXRjaCAoaW5zdHJ1bWVudFR5cGUpIHsKICAgICAgICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpUaW1lbGluZTo6SW5zdHJ1bWVudDo6U2NyaXB0UHJvZmlsZXI6IHsKLSAgICAgICAg
ICAgIGlmIChtX3NjcmlwdFByb2ZpbGVyQWdlbnQpIHsKLSAgICAgICAgICAgICAgICBFcnJvclN0
cmluZyB1bnVzZWQ7Ci0gICAgICAgICAgICAgICAgY29uc3QgYm9vbCBpbmNsdWRlU2FtcGxlcyA9
IHRydWU7Ci0gICAgICAgICAgICAgICAgbV9zY3JpcHRQcm9maWxlckFnZW50LT5zdGFydFRyYWNr
aW5nKHVudXNlZCwgJmluY2x1ZGVTYW1wbGVzKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHRvZ2dsZVNjcmlwdFByb2ZpbGVySW5zdHJ1bWVudChzdGF0ZSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OlRpbWVsaW5l
OjpJbnN0cnVtZW50OjpIZWFwOiB7Ci0gICAgICAgICAgICBpZiAobV9oZWFwQWdlbnQpIHsKLSAg
ICAgICAgICAgICAgICBFcnJvclN0cmluZyB1bnVzZWQ7Ci0gICAgICAgICAgICAgICAgbV9oZWFw
QWdlbnQtPnN0YXJ0VHJhY2tpbmcodW51c2VkKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHRvZ2dsZUhlYXBJbnN0cnVtZW50KHN0YXRlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6VGltZWxpbmU6Okluc3RydW1l
bnQ6Ok1lbW9yeTogewotI2lmIEVOQUJMRShSRVNPVVJDRV9VU0FHRSkKLSAgICAgICAgICAgIGlm
IChJbnNwZWN0b3JNZW1vcnlBZ2VudCogbWVtb3J5QWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2Vu
dHMuaW5zcGVjdG9yTWVtb3J5QWdlbnQoKSkgewotICAgICAgICAgICAgICAgIEVycm9yU3RyaW5n
IHVudXNlZDsKLSAgICAgICAgICAgICAgICBtZW1vcnlBZ2VudC0+c3RhcnRUcmFja2luZyh1bnVz
ZWQpOwotICAgICAgICAgICAgfQotI2VuZGlmCisgICAgICAgICAgICB0b2dnbGVNZW1vcnlJbnN0
cnVtZW50KHN0YXRlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6VGltZWxpbmU6Okluc3RydW1lbnQ6OlRpbWVsaW5lOgot
ICAgICAgICAgICAgaW50ZXJuYWxTdGFydCgpOworICAgICAgICAgICAgdG9nZ2xlVGltZWxpbmVJ
bnN0cnVtZW50KHN0YXRlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQog
fQogCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnRvZ2dsZVNjcmlwdFByb2ZpbGVySW5z
dHJ1bWVudChJbnN0cnVtZW50U3RhdGUgc3RhdGUpCit7CisgICAgaWYgKG1fc2NyaXB0UHJvZmls
ZXJBZ2VudCkgeworICAgICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CisgICAgICAgIGlmIChzdGF0
ZSA9PSBJbnN0cnVtZW50U3RhdGU6OlN0YXJ0KSB7CisgICAgICAgICAgICBjb25zdCBib29sIGlu
Y2x1ZGVTYW1wbGVzID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fc2NyaXB0UHJvZmlsZXJBZ2VudC0+
c3RhcnRUcmFja2luZyh1bnVzZWQsICZpbmNsdWRlU2FtcGxlcyk7CisgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgbV9zY3JpcHRQcm9maWxlckFnZW50LT5zdG9wVHJhY2tpbmcodW51c2VkKTsK
KyAgICB9Cit9CisKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6dG9nZ2xlSGVhcEluc3Ry
dW1lbnQoSW5zdHJ1bWVudFN0YXRlIHN0YXRlKQoreworICAgIGlmIChtX2hlYXBBZ2VudCkgewor
ICAgICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CisgICAgICAgIGlmIChzdGF0ZSA9PSBJbnN0cnVt
ZW50U3RhdGU6OlN0YXJ0KQorICAgICAgICAgICAgbV9oZWFwQWdlbnQtPnN0YXJ0VHJhY2tpbmco
dW51c2VkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9oZWFwQWdlbnQtPnN0b3BUcmFj
a2luZyh1bnVzZWQpOworICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp0
b2dnbGVNZW1vcnlJbnN0cnVtZW50KEluc3RydW1lbnRTdGF0ZSBzdGF0ZSkKK3sKKyNpZiBFTkFC
TEUoUkVTT1VSQ0VfVVNBR0UpCisgICAgaWYgKEluc3BlY3Rvck1lbW9yeUFnZW50KiBtZW1vcnlB
Z2VudCA9IG1faW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JNZW1vcnlBZ2VudCgpKSB7Cisg
ICAgICAgIEVycm9yU3RyaW5nIHVudXNlZDsKKyAgICAgICAgaWYgKHN0YXRlID09IEluc3RydW1l
bnRTdGF0ZTo6U3RhcnQpCisgICAgICAgICAgICBtZW1vcnlBZ2VudC0+c3RhcnRUcmFja2luZyh1
bnVzZWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtZW1vcnlBZ2VudC0+c3RvcFRyYWNr
aW5nKHVudXNlZCk7CisgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc3RhdGUpOworI2Vu
ZGlmCit9CisKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6dG9nZ2xlVGltZWxpbmVJbnN0
cnVtZW50KEluc3RydW1lbnRTdGF0ZSBzdGF0ZSkKK3sKKyAgICBpZiAoc3RhdGUgPT0gSW5zdHJ1
bWVudFN0YXRlOjpTdGFydCkKKyAgICAgICAgaW50ZXJuYWxTdGFydCgpOworICAgIGVsc2UKKyAg
ICAgICAgaW50ZXJuYWxTdG9wKCk7Cit9CisKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
ZGlkQ29tbWl0TG9hZCgpCiB7CiAgICAgY2xlYXJSZWNvcmRTdGFjaygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggYTIyODQ4
MS4uNDU4MTNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5oCkBAIC0xNTMsNiArMTUzLDE4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBi
cmVha3BvaW50QWN0aW9uU291bmQoaW50KSBmaW5hbCB7IH0KICAgICB2b2lkIGJyZWFrcG9pbnRB
Y3Rpb25Qcm9iZShKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IEluc3BlY3Rvcjo6U2NyaXB0QnJlYWtw
b2ludEFjdGlvbiYsIHVuc2lnbmVkIGJhdGNoSWQsIHVuc2lnbmVkIHNhbXBsZUlkLCBKU0M6OkpT
VmFsdWUgcmVzdWx0KSBmaW5hbDsKIAorICAgIHZvaWQgc3RhcnRQcm9ncmFtbWF0aWNDYXB0dXJl
KCk7CisgICAgdm9pZCBzdG9wUHJvZ3JhbW1hdGljQ2FwdHVyZSgpOworCisgICAgZW51bSBjbGFz
cyBJbnN0cnVtZW50U3RhdGUgeyBTdGFydCwgU3RvcCB9OworICAgIHZvaWQgdG9nZ2xlSW5zdHJ1
bWVudHMoSW5zdHJ1bWVudFN0YXRlKTsKKyAgICB2b2lkIHRvZ2dsZVNjcmlwdFByb2ZpbGVySW5z
dHJ1bWVudChJbnN0cnVtZW50U3RhdGUpOworICAgIHZvaWQgdG9nZ2xlSGVhcEluc3RydW1lbnQo
SW5zdHJ1bWVudFN0YXRlKTsKKyAgICB2b2lkIHRvZ2dsZU1lbW9yeUluc3RydW1lbnQoSW5zdHJ1
bWVudFN0YXRlKTsKKyAgICB2b2lkIHRvZ2dsZVRpbWVsaW5lSW5zdHJ1bWVudChJbnN0cnVtZW50
U3RhdGUpOworICAgIHZvaWQgZGlzYWJsZUJyZWFrcG9pbnRzKCk7CisgICAgdm9pZCBlbmFibGVC
cmVha3BvaW50cygpOworCiAgICAgZnJpZW5kIGNsYXNzIFRpbWVsaW5lUmVjb3JkU3RhY2s7CiAK
ICAgICBzdHJ1Y3QgVGltZWxpbmVSZWNvcmRFbnRyeSB7CkBAIC0yMDAsMTIgKzIxMiwxNCBAQCBw
cml2YXRlOgogICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7CiAKICAgICBWZWN0
b3I8VGltZWxpbmVSZWNvcmRFbnRyeT4gbV9yZWNvcmRTdGFjazsKKyAgICBWZWN0b3I8VGltZWxp
bmVSZWNvcmRFbnRyeT4gbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzOwogCiAgICAgaW50
IG1faWQgeyAxIH07CiAgICAgaW50IG1fbWF4Q2FsbFN0YWNrRGVwdGggeyA1IH07CiAKICAgICBi
b29sIG1fZW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuYWJsZWRGcm9tRnJvbnRlbmQg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9wcm9ncmFtbWF0aWNDYXB0dXJlUmVzdG9yZUJyZWFrcG9p
bnRBY3RpdmVWYWx1ZSB7IGZhbHNlIH07CiAKICAgICBib29sIG1fYXV0b0NhcHR1cmVFbmFibGVk
IHsgZmFsc2UgfTsKICAgICBWZWN0b3I8SW5zcGVjdG9yOjpQcm90b2NvbDo6VGltZWxpbmU6Oklu
c3RydW1lbnQ+IG1faW5zdHJ1bWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA3YzIz
OGZhLi5jM2NjMzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzOCBAQAog
MjAxNi0wNi0xNiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IGNvbnNvbGUucHJvZmlsZSBzaG91bGQgdXNlIHRoZSBuZXcgU2Ft
cGxpbmcgUHJvZmlsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MzQ5OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjQzNTI0MzE+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGltZWxpbmVNYW5hZ2VyLnByb3RvdHlwZS5wcm9ncmFtbWF0aWNDYXB0dXJlU3RhcnRlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyLnByb3RvdHlwZS5wcm9ncmFtbWF0
aWNDYXB0dXJlU3RvcHBlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2Vy
LnByb3RvdHlwZS5zY3JpcHRQcm9maWxlclByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIucHJvdG90eXBlLnNjcmlwdFByb2Zp
bGVyUHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3BwZWQpOgorICAgICAgICBGb3IgcHJvZ3JhbW1hdGlj
IGNhcHR1cmVzLCBhdXRvbWF0aWNhbGx5IHNob3cgdGhlIFNjcmlwdCBUaW1lbGluZSwgc2luY2UK
KyAgICAgICAgdGhhdCBpcyBndWFyZW50ZWVkIHRvIGhhdmUgYmVlbiBzdGFydGVkIGJ5IHRoZSBi
YWNrZW5kLiBTdGFydCBjYXB0dXJpbmcKKyAgICAgICAgd2l0aG91dCBjcmVhdGluZyBhIG5ldyBy
ZWNvcmRpbmcuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9UaW1lbGluZVJlY29y
ZGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZGluZy5wcm90b3R5
cGUuc3RvcCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRpbmcucHJvdG90
eXBlLmFkZFNjcmlwdEluc3RydW1lbnRGb3JQcm9ncmFtbWF0aWNDYXB0dXJlKToKKyAgICAgICAg
V2hlbiBzdG9wcGluZyBmb3IgcHJvZ3JhbW1hdGljIGNhcHR1cmUgd2UgZG9uJ3QgbmVlZCB0byBk
aXNhYmxlCisgICAgICAgIGluc3RydW1lbnRzLCB0aGUgYmFja2VuZCB3b3VsZCBoYXZlIGFscmVh
ZHkgZG9uZSB0aGlzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9TY3JpcHRQ
cm9maWxlck9ic2VydmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFByb2ZpbGVy
T2JzZXJ2ZXIucHJvdG90eXBlLnByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TY3JpcHRQcm9maWxlck9ic2VydmVyLnByb3RvdHlwZS5wcm9ncmFtbWF0
aWNDYXB0dXJlU3RvcHBlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0UHJvZmlsZXJP
YnNlcnZlcik6CisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9UaW1lbGluZU9ic2Vy
dmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT2JzZXJ2ZXIucHJvdG90eXBl
LnByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZU9ic2VydmVyLnByb3RvdHlwZS5wcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPYnNlcnZlcik6CisgICAgICAgIFBhc3MgdGhyb3Vn
aCBXZWIgYW5kIEpTQ29udGV4dCBwcm9ncmFtbWF0aWMgY2FwdHVyZSBldmVudHMuCisKKzIwMTYt
MDYtMTYgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwogICAgICAgICBS
RUdSRVNTSU9OIChyMjAxNTM4KTogV2ViIEluc3BlY3RvcjogQm9yZGVyIG92ZXIgQWxsb2NhdGlv
bnMgVmlld3MgaXMgdG9vIHRoaWNrCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTg4NDYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpz
CmluZGV4IDQyMGNkZDEuLmQ4NmU5NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFn
ZXIuanMKQEAgLTI2Miw3ICsyNjIsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyID0g
Y2xhc3MgVGltZWxpbmVNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5h
Z2VyLkV2ZW50LkNhcHR1cmluZ1N0b3BwZWQsIHtlbmRUaW1lfSk7CiAgICAgfQogCi0gICAgYXV0
b0NhcHR1cmVTdGFydGVkKHN0YXJ0VGltZSkKKyAgICBhdXRvQ2FwdHVyZVN0YXJ0ZWQoKQogICAg
IHsKICAgICAgICAgLy8gQ2FsbGVkIGZyb20gV2ViSW5zcGVjdG9yLlRpbWVsaW5lT2JzZXJ2ZXIu
CiAKQEAgLTI3MiwxMiArMjcyLDM2IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIgPSBj
bGFzcyBUaW1lbGluZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAg
IC8vIFdlIG1heSBhbHJlYWR5IGhhdmUgYW4gZnJlc2ggVGltZWxpbmVSZWNvcmRpbmcgY3JlYXRl
ZCBpZiBhdXRvQ2FwdHVyZVN0YXJ0ZWQgaXMgcmVjZWl2ZWQKICAgICAgICAgLy8gYmV0d2VlbiBz
ZW5kaW5nIHRoZSBUaW1lbGluZS5zdGFydCBjb21tYW5kIGFuZCByZWNlaXZpbmcgVGltZWxpbmUu
Y2FwdHVyaW5nU3RhcnRlZCBldmVudC4KICAgICAgICAgLy8gSW4gdGhhdCBjYXNlLCB0aGVyZSBp
cyBubyBuZWVkIHRvIGNhbGwgc3RhcnRDYXB0dXJpbmcgYWdhaW4uIFJldXNlIHRoZSBmcmVzaCBy
ZWNvcmRpbmcuCi0gICAgICAgIGlmICghdGhpcy5fd2FpdGluZ0ZvckNhcHR1cmluZ1N0YXJ0ZWRF
dmVudCkKLSAgICAgICAgICAgIHRoaXMuc3RhcnRDYXB0dXJpbmcodHJ1ZSk7CisgICAgICAgIGlm
ICghdGhpcy5fd2FpdGluZ0ZvckNhcHR1cmluZ1N0YXJ0ZWRFdmVudCkgeworICAgICAgICAgICAg
Y29uc3QgY3JlYXRlTmV3UmVjb3JkaW5nID0gdHJ1ZTsKKyAgICAgICAgICAgIHRoaXMuc3RhcnRD
YXB0dXJpbmcoY3JlYXRlTmV3UmVjb3JkaW5nKTsKKyAgICAgICAgfQogCiAgICAgICAgIHRoaXMu
X3Nob3VsZFNldEF1dG9DYXB0dXJpbmdNYWluUmVzb3VyY2UgPSB0cnVlOwogICAgIH0KIAorICAg
IHByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkKCkKKyAgICB7CisgICAgICAgIC8vIENhbGxlZCBm
cm9tIFdlYkluc3BlY3Rvci5UaW1lbGluZU9ic2VydmVyLgorCisgICAgICAgIHRoaXMuX2FjdGl2
ZVJlY29yZGluZy5hZGRTY3JpcHRJbnN0cnVtZW50Rm9yUHJvZ3JhbW1hdGljQ2FwdHVyZSgpOwor
CisgICAgICAgIGNvbnN0IGNyZWF0ZU5ld1JlY29yZGluZyA9IGZhbHNlOworICAgICAgICB0aGlz
LnN0YXJ0Q2FwdHVyaW5nKGNyZWF0ZU5ld1JlY29yZGluZyk7CisgICAgfQorCisgICAgcHJvZ3Jh
bW1hdGljQ2FwdHVyZVN0b3BwZWQoKQorICAgIHsKKyAgICAgICAgLy8gQ2FsbGVkIGZyb20gV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lT2JzZXJ2ZXIuCisKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMg
cHVyZWx5IHRvIGF2b2lkIGEgbm9pc3kgYXNzZXJ0LiBQcmV2aW91c2x5CisgICAgICAgIC8vIGl0
IHdhcyBpbXBvc3NpYmxlIHRvIHN0b3Agd2l0aG91dCBzdG9wcGluZyBmcm9tIHRoZSBVSS4KKyAg
ICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2lzQ2FwdHVyaW5nKTsKKyAgICAgICAgdGhpcy5f
aXNDYXB0dXJpbmcgPSB0cnVlOworCisgICAgICAgIHRoaXMuc3RvcENhcHR1cmluZygpOworICAg
IH0KKwogICAgIGV2ZW50UmVjb3JkZWQocmVjb3JkUGF5bG9hZCkKICAgICB7CiAgICAgICAgIC8v
IENhbGxlZCBmcm9tIFdlYkluc3BlY3Rvci5UaW1lbGluZU9ic2VydmVyLgpAQCAtNDg1LDcgKzUw
OSw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIgPSBjbGFzcyBUaW1lbGluZU1hbmFn
ZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAKICAgICAgICAgY2FzZSBUaW1lbGluZUFn
ZW50LkV2ZW50VHlwZS5Db25zb2xlUHJvZmlsZToKICAgICAgICAgICAgIHZhciBwcm9maWxlRGF0
YSA9IHJlY29yZFBheWxvYWQuZGF0YS5wcm9maWxlOwotICAgICAgICAgICAgY29uc29sZS5hc3Nl
cnQocHJvZmlsZURhdGEpOworICAgICAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDkpOiBX
aXRoIHRoZSBTYW1wbGluZyBQcm9maWxlciwgcHJvZmlsZXMgbm8gbG9uZ2VyIGluY2x1ZGUgbGVn
YWN5IHByb2ZpbGUgZGF0YS4KKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb2ZpbGVEYXRh
IHx8IFRpbWVsaW5lQWdlbnQuc2V0SW5zdHJ1bWVudHMpOwogICAgICAgICAgICAgcmV0dXJuIG5l
dyBXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVSZWNvcmQoV2ViSW5zcGVjdG9yLlNjcmlwdFRp
bWVsaW5lUmVjb3JkLkV2ZW50VHlwZS5Db25zb2xlUHJvZmlsZVJlY29yZGVkLCBzdGFydFRpbWUs
IGVuZFRpbWUsIGNhbGxGcmFtZXMsIHNvdXJjZUNvZGVMb2NhdGlvbiwgcmVjb3JkUGF5bG9hZC5k
YXRhLnRpdGxlLCBwcm9maWxlRGF0YSk7CiAKICAgICAgICAgY2FzZSBUaW1lbGluZUFnZW50LkV2
ZW50VHlwZS5UaW1lckZpcmU6CkBAIC04MzQsNiArODU5LDI0IEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZU1hbmFnZXIgPSBjbGFzcyBUaW1lbGluZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
T2JqZWN0CiAgICAgICAgIH0KICAgICB9CiAKKyAgICBzY3JpcHRQcm9maWxlclByb2dyYW1tYXRp
Y0NhcHR1cmVTdGFydGVkKCkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJr
aXQub3JnL2IvMTU4NzUzPiBHZW5lcmFsaXplIHRoZSBjb25jZXB0IG9mIEluc3RydW1lbnRzIG9u
IHRoZSBiYWNrZW5kIHRvIHdvcmsgZXF1YWxseSBmb3IgSlNDb250ZXh0IGFuZCBXZWIgaW5zcGVj
dGlvbgorICAgICAgICBjb25zb2xlLmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdnYWJsZVR5cGUg
PT09IFdlYkluc3BlY3Rvci5EZWJ1Z2dhYmxlVHlwZS5KYXZhU2NyaXB0KTsKKyAgICAgICAgY29u
c29sZS5hc3NlcnQoIXRoaXMuX2lzQ2FwdHVyaW5nKTsKKworICAgICAgICB0aGlzLnByb2dyYW1t
YXRpY0NhcHR1cmVTdGFydGVkKCk7CisgICAgfQorCisgICAgc2NyaXB0UHJvZmlsZXJQcm9ncmFt
bWF0aWNDYXB0dXJlU3RvcHBlZCgpCisgICAgeworICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzE1ODc1Mz4gR2VuZXJhbGl6ZSB0aGUgY29uY2VwdCBvZiBJbnN0cnVtZW50
cyBvbiB0aGUgYmFja2VuZCB0byB3b3JrIGVxdWFsbHkgZm9yIEpTQ29udGV4dCBhbmQgV2ViIGlu
c3BlY3Rpb24KKyAgICAgICAgY29uc29sZS5hc3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2FibGVU
eXBlID09PSBXZWJJbnNwZWN0b3IuRGVidWdnYWJsZVR5cGUuSmF2YVNjcmlwdCk7CisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2lzQ2FwdHVyaW5nKTsKKworICAgICAgICB0aGlzLnByb2dy
YW1tYXRpY0NhcHR1cmVTdG9wcGVkKCk7CisgICAgfQorCiAgICAgc2NyaXB0UHJvZmlsZXJUcmFj
a2luZ1N0YXJ0ZWQodGltZXN0YW1wKQogICAgIHsKICAgICAgICAgdGhpcy5fc2NyaXB0UHJvZmls
ZXJSZWNvcmRzID0gW107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvU2NyaXB0SW5zdHJ1bWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHRJbnN0cnVtZW50LmpzCmluZGV4IDYwYWNlZDUu
LjU2NzA0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9TY3JpcHRJbnN0cnVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHRJbnN0cnVtZW50LmpzCkBAIC01Niw1ICs1Niw0IEBA
IFdlYkluc3BlY3Rvci5TY3JpcHRJbnN0cnVtZW50ID0gY2xhc3MgU2NyaXB0SW5zdHJ1bWVudCBl
eHRlbmRzIFdlYkluc3BlY3Rvci5JbnN0CiAKICAgICAgICAgU2NyaXB0UHJvZmlsZXJBZ2VudC5z
dG9wVHJhY2tpbmcoKTsKICAgICB9Ci0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNvcmRpbmcuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNvcmRpbmcuanMK
aW5kZXggODkxOTY1Mi4uM2E0ZTdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkaW5nLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UaW1lbGluZVJlY29yZGluZy5qcwpA
QCAtMTI3LDE1ICsxMjcsMTcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nID0gY2xh
c3MgVGltZWxpbmVSZWNvcmRpbmcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2IKICAgICAgICAgICAg
IGluc3RydW1lbnQuc3RhcnRJbnN0cnVtZW50YXRpb24oKTsKICAgICB9CiAKLSAgICBzdG9wKCkK
KyAgICBzdG9wKHByb2dyYW1tYXRpYykKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRo
aXMuX2NhcHR1cmluZywgIkF0dGVtcHRlZCB0byBzdG9wIGFuIGFscmVhZHkgc3RvcHBlZCBzZXNz
aW9uLiIpOwogICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fcmVhZG9ubHksICJBdHRlbXB0
ZWQgdG8gc3RvcCBhIHJlYWRvbmx5IHNlc3Npb24uIik7CiAKICAgICAgICAgdGhpcy5fY2FwdHVy
aW5nID0gZmFsc2U7CiAKLSAgICAgICAgZm9yIChsZXQgaW5zdHJ1bWVudCBvZiB0aGlzLl9pbnN0
cnVtZW50cykKLSAgICAgICAgICAgIGluc3RydW1lbnQuc3RvcEluc3RydW1lbnRhdGlvbigpOwor
ICAgICAgICBpZiAoIXByb2dyYW1tYXRpYykgeworICAgICAgICAgICAgZm9yIChsZXQgaW5zdHJ1
bWVudCBvZiB0aGlzLl9pbnN0cnVtZW50cykKKyAgICAgICAgICAgICAgICBpbnN0cnVtZW50LnN0
b3BJbnN0cnVtZW50YXRpb24oKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHNhdmVJZGVudGl0
eVRvQ29va2llKCkKQEAgLTMwNyw2ICszMDksMTkgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVj
b3JkaW5nID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2IK
ICAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2NvbnRpbnVpdGllcy5maWx0ZXIoKGl0ZW0pID0+IGl0
ZW0uc3RhcnRUaW1lIDwgZW5kVGltZSAmJiBpdGVtLmVuZFRpbWUgPiBzdGFydFRpbWUpOwogICAg
IH0KIAorICAgIGFkZFNjcmlwdEluc3RydW1lbnRGb3JQcm9ncmFtbWF0aWNDYXB0dXJlKCkKKyAg
ICB7CisgICAgICAgIGZvciAobGV0IGluc3RydW1lbnQgb2YgdGhpcy5faW5zdHJ1bWVudHMpIHsK
KyAgICAgICAgICAgIGlmIChpbnN0cnVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlNjcmlw
dEluc3RydW1lbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgdGhpcy5hZGRJbnN0cnVtZW50KG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0SW5zdHJ1bWVudCk7
CisKKyAgICAgICAgbGV0IGluc3RydW1lbnRUeXBlcyA9IHRoaXMuX2luc3RydW1lbnRzLm1hcCgo
aW5zdHJ1bWVudCkgPT4gaW5zdHJ1bWVudC50aW1lbGluZVJlY29yZFR5cGUpOworICAgICAgICBX
ZWJJbnNwZWN0b3IudGltZWxpbmVNYW5hZ2VyLmVuYWJsZWRUaW1lbGluZVR5cGVzID0gaW5zdHJ1
bWVudFR5cGVzOworICAgIH0KKwogICAgIGNvbXB1dGVFbGFwc2VkVGltZSh0aW1lc3RhbXApCiAg
ICAgewogICAgICAgICBpZiAoIXRpbWVzdGFtcCB8fCBpc05hTih0aW1lc3RhbXApKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvU2NyaXB0
UHJvZmlsZXJPYnNlcnZlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Byb3RvY29sL1NjcmlwdFByb2ZpbGVyT2JzZXJ2ZXIuanMKaW5kZXggZTEyOTc2YWIuLmUxOTY0
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3Rv
Y29sL1NjcmlwdFByb2ZpbGVyT2JzZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvU2NyaXB0UHJvZmlsZXJPYnNlcnZlci5qcwpAQCAtNDEs
NCArNDEsMTQgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFByb2ZpbGVyT2JzZXJ2ZXIgPSBjbGFzcyBT
Y3JpcHRQcm9maWxlck9ic2VydmVyCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IudGltZWxp
bmVNYW5hZ2VyLnNjcmlwdFByb2ZpbGVyVHJhY2tpbmdDb21wbGV0ZWQoc2FtcGxlcyk7CiAgICAg
fQorICAgIAorICAgIHByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkKCkKKyAgICB7CisgICAgICAg
IFdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuc2NyaXB0UHJvZmlsZXJQcm9ncmFtbWF0aWND
YXB0dXJlU3RhcnRlZCgpOworICAgIH0KKworICAgIHByb2dyYW1tYXRpY0NhcHR1cmVTdG9wcGVk
KCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuc2NyaXB0UHJv
ZmlsZXJQcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCgpOworICAgIH0KIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9UaW1lbGluZU9i
c2VydmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wv
VGltZWxpbmVPYnNlcnZlci5qcwppbmRleCA4YWRjYmI1Li45OWRmYjk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9UaW1lbGluZU9ic2Vy
dmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29s
L1RpbWVsaW5lT2JzZXJ2ZXIuanMKQEAgLTQ2LDQgKzQ2LDE0IEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZU9ic2VydmVyID0gY2xhc3MgVGltZWxpbmVPYnNlcnZlcgogICAgIHsKICAgICAgICAgV2Vi
SW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5hdXRvQ2FwdHVyZVN0YXJ0ZWQoKTsKICAgICB9CisK
KyAgICBwcm9ncmFtbWF0aWNDYXB0dXJlU3RhcnRlZCgpCisgICAgeworICAgICAgICBXZWJJbnNw
ZWN0b3IudGltZWxpbmVNYW5hZ2VyLnByb2dyYW1tYXRpY0NhcHR1cmVTdGFydGVkKCk7CisgICAg
fQorCisgICAgcHJvZ3JhbW1hdGljQ2FwdHVyZVN0b3BwZWQoKQorICAgIHsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5wcm9ncmFtbWF0aWNDYXB0dXJlU3RvcHBlZCgpOwor
ICAgIH0KIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>