<?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>203089</bug_id>
          
          <creation_ts>2019-10-17 09:42:14 -0700</creation_ts>
          <short_desc>MediaKeySession / WebKitMediaKeySession should not prevent entering the back/forward cache</short_desc>
          <delta_ts>2019-11-04 19:03:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>202293</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1580997</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-17 09:42:14 -0700</bug_when>
    <thetext>MediaKeySession should not prevent entering the back/forward cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585672</commentid>
    <comment_count>1</comment_count>
      <attachid>382392</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-30 16:53:18 -0700</bug_when>
    <thetext>Created attachment 382392
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585676</commentid>
    <comment_count>2</comment_count>
      <attachid>382395</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-30 17:02:27 -0700</bug_when>
    <thetext>Created attachment 382395
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585898</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-31 07:45:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/56780551&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585899</commentid>
    <comment_count>4</comment_count>
      <attachid>382457</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-31 07:49:29 -0700</bug_when>
    <thetext>Created attachment 382457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586993</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-04 08:18:52 -0800</bug_when>
    <thetext>ping review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587000</commentid>
    <comment_count>6</comment_count>
      <attachid>382457</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-11-04 08:24:23 -0800</bug_when>
    <thetext>Comment on attachment 382457
Patch

How do we make sure we have not missed to enqueue one event or a task?
We probably do not have a lot of coverage there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587001</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-04 08:26:36 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #6)
&gt; Comment on attachment 382457 [details]
&gt; Patch
&gt; 
&gt; How do we make sure we have not missed to enqueue one event or a task?
&gt; We probably do not have a lot of coverage there.

If you try to dispatch events while in the cache, then we would hit assertions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587012</commentid>
    <comment_count>8</comment_count>
      <attachid>382457</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-04 08:51:30 -0800</bug_when>
    <thetext>Comment on attachment 382457
Patch

Clearing flags on attachment: 382457

Committed r251993: &lt;https://trac.webkit.org/changeset/251993&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587013</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-04 08:51:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587099</commentid>
    <comment_count>10</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-11-04 12:57:46 -0800</bug_when>
    <thetext>The changes in https://trac.webkit.org/changeset/251993/webkit

broke platform/mac/media/encrypted-media/fps-generateRequest.html

History:
https://results.webkit.org/?suite=layout-tests&amp;test=platform%2Fmac%2Fmedia%2Fencrypted-media%2Ffps-generateRequest.html

Diff:
--- /Volumes/Data/slave/catalina-release-tests-wk1/build/layout-test-results/platform/mac/media/encrypted-media/fps-generateRequest-expected.txt
+++ /Volumes/Data/slave/catalina-release-tests-wk1/build/layout-test-results/platform/mac/media/encrypted-media/fps-generateRequest-actual.txt
@@ -6,6 +6,6 @@
 RUN(session = keys.createSession())
 EXPECTED (session != &apos;null&apos;) OK
 RUN(promise = session.generateRequest(&quot;sinf&quot;, initData))
-Promise resolved OK
+Promise rejected FAIL
 END OF TEST</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587101</commentid>
    <comment_count>11</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-11-04 12:58:57 -0800</bug_when>
    <thetext>Reverted r251993 for reason:

Broke platform/mac/media/encrypted-media/fps-generateRequest.html on Mojave+

Committed r252008: &lt;https://trac.webkit.org/changeset/252008&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587227</commentid>
    <comment_count>12</comment_count>
      <attachid>382787</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-04 16:31:13 -0800</bug_when>
    <thetext>Created attachment 382787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587249</commentid>
    <comment_count>13</comment_count>
      <attachid>382787</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-04 18:20:00 -0800</bug_when>
    <thetext>Comment on attachment 382787
Patch

Rejecting attachment 382787 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 382787, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.

Full output: https://webkit-queues.webkit.org/results/13212916</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587251</commentid>
    <comment_count>14</comment_count>
      <attachid>382795</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-04 18:41:27 -0800</bug_when>
    <thetext>Created attachment 382795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587261</commentid>
    <comment_count>15</comment_count>
      <attachid>382795</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-04 19:03:44 -0800</bug_when>
    <thetext>Comment on attachment 382795
Patch

Clearing flags on attachment: 382795

Committed r252033: &lt;https://trac.webkit.org/changeset/252033&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587262</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-04 19:03:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382392</attachid>
            <date>2019-10-30 16:53:18 -0700</date>
            <delta_ts>2019-10-30 17:02:27 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>203089_wip.patch</filename>
            <type>text/plain</type>
            <size>12249</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFL
ZXlTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVk
aWFLZXlTZXNzaW9uLmNwcAppbmRleCA4OGM4YWVhNDRjYi4uMWQ0YjEzNTA1MGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5
U2Vzc2lvbi5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVE
SUEpCiAKKyNpbmNsdWRlICJBYnN0cmFjdEV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkNETS5oIgog
I2luY2x1ZGUgIkNETUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiRE9NUHJvbWlzZVByb3h5LmgiCkBA
IC03MCw3ICs3MSw2IEBAIE1lZGlhS2V5U2Vzc2lvbjo6TWVkaWFLZXlTZXNzaW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdlYWtQdHI8TWVkaWFLCiAgICAgLCBtX3Nlc3Npb25U
eXBlKHNlc3Npb25UeXBlKQogICAgICwgbV9pbXBsZW1lbnRhdGlvbihXVEZNb3ZlKGltcGxlbWVu
dGF0aW9uKSkKICAgICAsIG1faW5zdGFuY2VTZXNzaW9uKFdURk1vdmUoaW5zdGFuY2VTZXNzaW9u
KSkKLSAgICAsIG1fZXZlbnRRdWV1ZShNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmNyZWF0
ZSgqdGhpcykpCiB7CiAgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2VuY3J5cHRlZC1tZWRp
YS8jZG9tLW1lZGlha2V5cy1jcmVhdGVzZXNzaW9uCiAgICAgLy8gVzNDIEVkaXRvcidzIERyYWZ0
IDA5IE5vdmVtYmVyIDIwMTYKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lv
bjo6Z2VuZXJhdGVSZXF1ZXN0KGNvbnN0IEF0b21TdHJpbmcmIGluaXREYXRhVHlwZSwgY29uc3Qg
QnVmZgogICAgIC8vIDguIExldCBzZXNzaW9uIHR5cGUgYmUgdGhpcyBvYmplY3QncyBzZXNzaW9u
IHR5cGUuCiAgICAgLy8gOS4gTGV0IHByb21pc2UgYmUgYSBuZXcgcHJvbWlzZS4KICAgICAvLyAx
MC4gUnVuIHRoZSBmb2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6Ci0gICAgbV90YXNrUXVldWUu
ZW5xdWV1ZVRhc2soW3RoaXMsIGluaXREYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoaW5pdERh
dGEuZGF0YSgpLCBpbml0RGF0YS5sZW5ndGgoKSksIGluaXREYXRhVHlwZSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgIGVucXVldWVUYXNrKFt0aGlzLCBpbml0
RGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGluaXREYXRhLmRhdGEoKSwgaW5pdERhdGEubGVu
Z3RoKCkpLCBpbml0RGF0YVR5cGUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRh
YmxlIHsKICAgICAgICAgLy8gMTAuMS4gSWYgdGhlIGluaXQgZGF0YSBpcyBub3QgdmFsaWQgZm9y
IGluaXREYXRhVHlwZSwgcmVqZWN0IHByb21pc2Ugd2l0aCBhIG5ld2x5IGNyZWF0ZWQgVHlwZUVy
cm9yLgogICAgICAgICAvLyAxMC4yLiBMZXQgc2FuaXRpemVkIGluaXQgZGF0YSBiZSBhIHZhbGlk
YXRlZCBhbmQgc2FuaXRpemVkIHZlcnNpb24gb2YgaW5pdCBkYXRhLgogICAgICAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZWRJbml0RGF0YSA9IG1faW1wbGVtZW50YXRpb24tPnNhbml0
aXplSW5pdERhdGEoaW5pdERhdGFUeXBlLCBpbml0RGF0YSk7CkBAIC0yMjYsNyArMjI2LDcgQEAg
dm9pZCBNZWRpYUtleVNlc3Npb246OmdlbmVyYXRlUmVxdWVzdChjb25zdCBBdG9tU3RyaW5nJiBp
bml0RGF0YVR5cGUsIGNvbnN0IEJ1ZmYKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8g
MTAuMTAuIFF1ZXVlIGEgdGFzayB0byBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAgICAg
ICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIG1lc3NhZ2VUeXBlLCBzZXNzaW9uSWQs
IHN1Y2NlZWRlZF0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBlbnF1ZXVlVGFzayhbdGhpcywg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBt
ZXNzYWdlVHlwZSwgc2Vzc2lvbklkLCBzdWNjZWVkZWRdICgpIG11dGFibGUgewogICAgICAgICAg
ICAgICAgIC8vIDEwLjEwLjEuIElmIGFueSBvZiB0aGUgcHJlY2VkaW5nIHN0ZXBzIGZhaWxlZCwg
cmVqZWN0IHByb21pc2Ugd2l0aCBhIG5ldyBET01FeGNlcHRpb24gd2hvc2UgbmFtZSBpcyB0aGUg
YXBwcm9wcmlhdGUgZXJyb3IgbmFtZS4KICAgICAgICAgICAgICAgICBpZiAoc3VjY2VlZGVkID09
IENETUluc3RhbmNlU2Vzc2lvbjo6U3VjY2Vzc1ZhbHVlOjpGYWlsZWQpIHsKICAgICAgICAgICAg
ICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yKTsKQEAgLTI3Nyw3ICsy
NzcsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6bG9hZChjb25zdCBTdHJpbmcmIHNlc3Npb25J
ZCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taQogCiAgICAgLy8gNy4gTGV0IHByb21pc2Ug
YmUgYSBuZXcgcHJvbWlzZS4KICAgICAvLyA4LiBSdW4gdGhlIGZvbGxvd2luZyBzdGVwcyBpbiBw
YXJhbGxlbDoKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgc2Vzc2lvbklkLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CisgICAgZW5xdWV1ZVRhc2so
W3RoaXMsIHNlc3Npb25JZCwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUg
ewogICAgICAgICAvLyA4LjEuIExldCBzYW5pdGl6ZWQgc2Vzc2lvbiBJRCBiZSBhIHZhbGlkYXRl
ZCBhbmQvb3Igc2FuaXRpemVkIHZlcnNpb24gb2Ygc2Vzc2lvbklkLgogICAgICAgICAvLyA4LjIu
IElmIHRoZSBwcmVjZWRpbmcgc3RlcCBmYWlsZWQsIG9yIGlmIHNhbml0aXplZCBzZXNzaW9uIElE
IGlzIGVtcHR5LCByZWplY3QgcHJvbWlzZSB3aXRoIGEgbmV3bHkgY3JlYXRlZCBUeXBlRXJyb3Iu
CiAgICAgICAgIE9wdGlvbmFsPFN0cmluZz4gc2FuaXRpemVkU2Vzc2lvbklkID0gbV9pbXBsZW1l
bnRhdGlvbi0+c2FuaXRpemVTZXNzaW9uSWQoc2Vzc2lvbklkKTsKQEAgLTMyOSw3ICszMjksNyBA
QCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6bG9hZChjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgUmVm
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAv
LyA4LjkuIFF1ZXVlIGEgdGFzayB0byBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAgICAg
ICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBrbm93bktleXMgPSBXVEZNb3ZlKGtu
b3duS2V5cyksIGV4cGlyYXRpb24gPSBXVEZNb3ZlKGV4cGlyYXRpb24pLCBtZXNzYWdlID0gV1RG
TW92ZShtZXNzYWdlKSwgc2FuaXRpemVkU2Vzc2lvbklkLCBzdWNjZWVkZWQsIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGVucXVldWVUYXNrKFt0
aGlzLCBrbm93bktleXMgPSBXVEZNb3ZlKGtub3duS2V5cyksIGV4cGlyYXRpb24gPSBXVEZNb3Zl
KGV4cGlyYXRpb24pLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKSwgc2FuaXRpemVkU2Vzc2lv
bklkLCBzdWNjZWVkZWQsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsK
ICAgICAgICAgICAgICAgICAvLyA4LjkuMS4gSWYgYW55IG9mIHRoZSBwcmVjZWRpbmcgc3RlcHMg
ZmFpbGVkLCByZWplY3QgcHJvbWlzZSB3aXRoIGEgdGhlIGFwcHJvcHJpYXRlIGVycm9yIG5hbWUu
CiAgICAgICAgICAgICAgICAgaWYgKHN1Y2NlZWRlZCA9PSBDRE1JbnN0YW5jZVNlc3Npb246OlN1
Y2Nlc3NWYWx1ZTo6RmFpbGVkKSB7CiAgICAgICAgICAgICAgICAgICAgIHByb21pc2UtPnJlamVj
dChOb3RTdXBwb3J0ZWRFcnJvcik7CkBAIC0zODYsNyArMzg2LDcgQEAgdm9pZCBNZWRpYUtleVNl
c3Npb246OnVwZGF0ZShjb25zdCBCdWZmZXJTb3VyY2UmIHJlc3BvbnNlLCBSZWY8RGVmZXJyZWRQ
cm9taXNlPiYKICAgICAvLyA0LiBMZXQgcmVzcG9uc2UgY29weSBiZSBhIGNvcHkgb2YgdGhlIGNv
bnRlbnRzIG9mIHRoZSByZXNwb25zZSBwYXJhbWV0ZXIuCiAgICAgLy8gNS4gTGV0IHByb21pc2Ug
YmUgYSBuZXcgcHJvbWlzZS4KICAgICAvLyA2LiBSdW4gdGhlIGZvbGxvd2luZyBzdGVwcyBpbiBw
YXJhbGxlbDoKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgcmVzcG9uc2UgPSBT
aGFyZWRCdWZmZXI6OmNyZWF0ZShyZXNwb25zZS5kYXRhKCksIHJlc3BvbnNlLmxlbmd0aCgpKSwg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgIGVucXVldWVUYXNr
KFt0aGlzLCByZXNwb25zZSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlc3BvbnNlLmRhdGEoKSwg
cmVzcG9uc2UubGVuZ3RoKCkpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJs
ZSB7CiAgICAgICAgIC8vIDYuMS4gTGV0IHNhbml0aXplZCByZXNwb25zZSBiZSBhIHZhbGlkYXRl
ZCBhbmQvb3Igc2FuaXRpemVkIHZlcnNpb24gb2YgcmVzcG9uc2UgY29weS4KICAgICAgICAgUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVkUmVzcG9uc2UgPSBtX2ltcGxlbWVudGF0aW9uLT5z
YW5pdGl6ZVJlc3BvbnNlKHJlc3BvbnNlKTsKIApAQCAtNDM3LDcgKzQzNyw3IEBAIHZvaWQgTWVk
aWFLZXlTZXNzaW9uOjp1cGRhdGUoY29uc3QgQnVmZmVyU291cmNlJiByZXNwb25zZSwgUmVmPERl
ZmVycmVkUHJvbWlzZT4mCiAgICAgICAgICAgICAvLyAgIDYuNy4zLjEuIExldCBtZXNzYWdlIGJl
IHRoYXQgbWVzc2FnZS4KICAgICAgICAgICAgIC8vICAgNi43LjMuMi4gTGV0IG1lc3NhZ2UgdHlw
ZSBiZSB0aGUgYXBwcm9wcmlhdGUgTWVkaWFLZXlNZXNzYWdlVHlwZSBmb3IgdGhlIG1lc3NhZ2Uu
CiAgICAgICAgICAgICAvLyA2LjguIFF1ZXVlIGEgdGFzayB0byBydW4gdGhlIGZvbGxvd2luZyBz
dGVwczoKLSAgICAgICAgICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBzZXNzaW9u
V2FzQ2xvc2VkLCBjaGFuZ2VkS2V5cyA9IFdURk1vdmUoY2hhbmdlZEtleXMpLCBjaGFuZ2VkRXhw
aXJhdGlvbiA9IFdURk1vdmUoY2hhbmdlZEV4cGlyYXRpb24pLCBtZXNzYWdlID0gV1RGTW92ZSht
ZXNzYWdlKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgICAg
ICAgICAgZW5xdWV1ZVRhc2soW3RoaXMsIHNlc3Npb25XYXNDbG9zZWQsIGNoYW5nZWRLZXlzID0g
V1RGTW92ZShjaGFuZ2VkS2V5cyksIGNoYW5nZWRFeHBpcmF0aW9uID0gV1RGTW92ZShjaGFuZ2Vk
RXhwaXJhdGlvbiksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgTE9HKEVNRSwgIkVNRSAt
IHVwZGF0aW5nIENETSBsaWNlbnNlIHN1Y2NlZWRlZCBmb3Igc2Vzc2lvbiAlcywgc2VuZGluZyBh
IG1lc3NhZ2UgdG8gdGhlIGxpY2Vuc2Ugc2VydmVyIiwgbV9zZXNzaW9uSWQudXRmOCgpLmRhdGEo
KSk7CiAgICAgICAgICAgICAgICAgLy8gNi44LjEuCiAgICAgICAgICAgICAgICAgaWYgKHNlc3Np
b25XYXNDbG9zZWQpIHsKQEAgLTUxNCw3ICs1MTQsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6
Y2xvc2UoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogCiAgICAgLy8gNC4gTGV0IHBy
b21pc2UgYmUgYSBuZXcgcHJvbWlzZS4KICAgICAvLyA1LiBSdW4gdGhlIGZvbGxvd2luZyBzdGVw
cyBpbiBwYXJhbGxlbDoKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgIGVucXVldWVUYXNrKFt0aGlz
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIC8vIDUu
MS4gTGV0IGNkbSBiZSB0aGUgQ0RNIGluc3RhbmNlIHJlcHJlc2VudGVkIGJ5IHNlc3Npb24ncyBj
ZG0gaW5zdGFuY2UgdmFsdWUuCiAgICAgICAgIC8vIDUuMi4gVXNlIGNkbSB0byBjbG9zZSB0aGUg
a2V5IHNlc3Npb24gYXNzb2NpYXRlZCB3aXRoIHNlc3Npb24uCiAgICAgICAgIExPRyhFTUUsICJF
TUUgLSBjbG9zaW5nIENETSBzZXNzaW9uICVzIiwgbV9zZXNzaW9uSWQudXRmOCgpLmRhdGEoKSk7
CkBAIC01MjMsNyArNTIzLDcgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246OmNsb3NlKFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAg
ICAgICAgIC8vIDUuMy4gUXVldWUgYSB0YXNrIHRvIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgot
ICAgICAgICAgICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGVucXVldWVUYXNrKFt0aGlz
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAg
ICAgLy8gNS4zLjEuIFJ1biB0aGUgU2Vzc2lvbiBDbG9zZWQgYWxnb3JpdGhtIG9uIHRoZSBzZXNz
aW9uLgogICAgICAgICAgICAgICAgIHNlc3Npb25DbG9zZWQoKTsKIApAQCAtNTUyLDcgKzU1Miw3
IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpyZW1vdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQogCiAgICAgLy8gMy4gTGV0IHByb21pc2UgYmUgYSBuZXcgcHJvbWlzZS4KICAgICAv
LyA0LiBSdW4gdGhlIGZvbGxvd2luZyBzdGVwcyBpbiBwYXJhbGxlbDoKLSAgICBtX3Rhc2tRdWV1
ZS5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFi
bGUgeworICAgIGVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0g
KCkgbXV0YWJsZSB7CiAgICAgICAgIC8vIDQuMS4gTGV0IGNkbSBiZSB0aGUgQ0RNIGluc3RhbmNl
IHJlcHJlc2VudGVkIGJ5IHRoaXMgb2JqZWN0J3MgY2RtIGluc3RhbmNlIHZhbHVlLgogICAgICAg
ICAvLyA0LjIuIExldCBtZXNzYWdlIGJlIG51bGwuCiAgICAgICAgIC8vIDQuMy4gTGV0IG1lc3Nh
Z2UgdHlwZSBiZSBudWxsLgpAQCAtNTc3LDcgKzU3Nyw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9u
OjpyZW1vdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogICAgICAgICAgICAgLy8g
Tk9URTogU3RlcCA0LjQuMS4gc2hvdWxkIGJlIGltcGxlbWVudGVkIGluIENETUluc3RhbmNlLgog
CiAgICAgICAgICAgICAvLyA0LjUuIFF1ZXVlIGEgdGFzayB0byBydW4gdGhlIGZvbGxvd2luZyBz
dGVwczoKLSAgICAgICAgICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBrZXlzID0g
V1RGTW92ZShrZXlzKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIHN1Y2NlZWRlZCwgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgICAgICAgICAgZW5xdWV1
ZVRhc2soW3RoaXMsIGtleXMgPSBXVEZNb3ZlKGtleXMpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNz
YWdlKSwgc3VjY2VlZGVkLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7
CiAgICAgICAgICAgICAgICAgLy8gNC41LjEuIFJ1biB0aGUgVXBkYXRlIEtleSBTdGF0dXNlcyBh
bGdvcml0aG0gb24gdGhlIHNlc3Npb24sIHByb3ZpZGluZyBhbGwga2V5IElEKHMpIGluIHRoZSBz
ZXNzaW9uIGFsb25nIHdpdGggdGhlICJyZWxlYXNlZCIgTWVkaWFLZXlTdGF0dXMgdmFsdWUgZm9y
IGVhY2guCiAgICAgICAgICAgICAgICAgdXBkYXRlS2V5U3RhdHVzZXMoV1RGTW92ZShrZXlzKSk7
CiAKQEAgLTYxNiw3ICs2MTYsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6ZW5xdWV1ZU1lc3Nh
Z2UoTWVkaWFLZXlNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgY29uc3QgU2hhcgogICAgIC8vICAg
IGludGVyZmFjZSB3aXRoIGl0cyB0eXBlIGF0dHJpYnV0ZSBzZXQgdG8gbWVzc2FnZSBhbmQgaXRz
IGlzVHJ1c3RlZCBhdHRyaWJ1dGUgaW5pdGlhbGl6ZWQgdG8gdHJ1ZSwgYW5kIGRpc3BhdGNoIGl0
IGF0IHRoZQogICAgIC8vICAgIHNlc3Npb24uCiAgICAgYXV0byBtZXNzYWdlRXZlbnQgPSBNZWRp
YUtleU1lc3NhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5tZXNzYWdlRXZlbnQsIHttZXNz
YWdlVHlwZSwgbWVzc2FnZS50cnlDcmVhdGVBcnJheUJ1ZmZlcigpfSwgRXZlbnQ6OklzVHJ1c3Rl
ZDo6WWVzKTsKLSAgICBtX2V2ZW50UXVldWUtPmVucXVldWVFdmVudChXVEZNb3ZlKG1lc3NhZ2VF
dmVudCkpOworICAgIGVucXVldWVFdmVudChXVEZNb3ZlKG1lc3NhZ2VFdmVudCkpOwogfQogCiB2
b2lkIE1lZGlhS2V5U2Vzc2lvbjo6dXBkYXRlS2V5U3RhdHVzZXMoQ0RNSW5zdGFuY2VTZXNzaW9u
OjpLZXlTdGF0dXNWZWN0b3ImJiBpbnB1dFN0YXR1c2VzKQpAQCAtNjYxLDEwICs2NjEsMTAgQEAg
dm9pZCBNZWRpYUtleVNlc3Npb246OnVwZGF0ZUtleVN0YXR1c2VzKENETUluc3RhbmNlU2Vzc2lv
bjo6S2V5U3RhdHVzVmVjdG9yJiYgaW4KICAgICAgICAgbV9zdGF0dXNlcy51bmNoZWNrZWRBcHBl
bmQoeyBXVEZNb3ZlKHN0YXR1cy5maXJzdCksIHRvTWVkaWFLZXlTdGF0dXMoc3RhdHVzLnNlY29u
ZCkgfSk7CiAKICAgICAvLyA1LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBu
YW1lZCBrZXlzdGF0dXNlc2NoYW5nZSBhdCB0aGUgc2Vzc2lvbi4KLSAgICBtX2V2ZW50UXVldWUt
PmVucXVldWVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5rZXlzdGF0dXNlc2NoYW5n
ZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsK
KyAgICBlbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkua2V5c3RhdHVzZXNj
aGFuZ2VFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5v
KSk7CiAKICAgICAvLyA2LiBRdWV1ZSBhIHRhc2sgdG8gcnVuIHRoZSBBdHRlbXB0IHRvIFJlc3Vt
ZSBQbGF5YmFjayBJZiBOZWNlc3NhcnkgYWxnb3JpdGhtIG9uIGVhY2ggb2YgdGhlIG1lZGlhIGVs
ZW1lbnQocykgd2hvc2UgbWVkaWFLZXlzIGF0dHJpYnV0ZSBpcyB0aGUgTWVkaWFLZXlzIG9iamVj
dCB0aGF0IGNyZWF0ZWQgdGhlIHNlc3Npb24uCi0gICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2so
CisgICAgZW5xdWV1ZVRhc2soCiAgICAgICAgIFt0aGlzXSAoKSBtdXRhYmxlIHsKICAgICAgICAg
ICAgIGlmIChtX2tleXMpCiAgICAgICAgICAgICAgICAgbV9rZXlzLT5hdHRlbXB0VG9SZXN1bWVQ
bGF5YmFja09uQ2xpZW50cygpOwpAQCAtNzMzLDI2ICs3MzMsMzYgQEAgU3RyaW5nIE1lZGlhS2V5
U2Vzc2lvbjo6bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0CiAKIGJvb2wgTWVkaWFL
ZXlTZXNzaW9uOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIC8vIEEgTWVkaWFLZXlTZXNzaW9uIG9iamVj
dCBTSEFMTCBOT1QgYmUgZGVzdHJveWVkIGFuZCBTSEFMTCBjb250aW51ZSB0byByZWNlaXZlIGV2
ZW50cyBpZiBpdCBpcyBub3QgY2xvc2VkIGFuZCB0aGUgTWVkaWFLZXlzIG9iamVjdCB0aGF0IGNy
ZWF0ZWQgaXQgcmVtYWlucyBhY2Nlc3NpYmxlLgorICAgIHJldHVybiAoIW1fY2xvc2VkICYmIG1f
a2V5cykgfHwgQWN0aXZlRE9NT2JqZWN0OjpoYXNQZW5kaW5nQWN0aXZpdHkoKTsKIH0KIAogY29u
c3QgY2hhciogTWVkaWFLZXlTZXNzaW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIHsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAiTWVkaWFLZXlTZXNzaW9uIjsKIH0K
IAotLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5ldmVyIHByZXZlbnQgZW50ZXJpbmcgdGhlIGJhY2sv
Zm9yd2FyZCBjYWNoZS4KLWJvb2wgTWVkaWFLZXlTZXNzaW9uOjpzaG91bGRQcmV2ZW50RW50ZXJp
bmdCYWNrRm9yd2FyZENhY2hlX0RFUFJFQ0FURUQoKSBjb25zdAordm9pZCBNZWRpYUtleVNlc3Np
b246OmVucXVldWVUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGNvbnRleHQtPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5n
LCAqY29udGV4dCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0YXNrID0gV1RGTW92
ZSh0YXNrKV0geworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB0YXNrKCk7Cisg
ICAgfSk7CiB9CiAKLXZvaWQgTWVkaWFLZXlTZXNzaW9uOjpzdG9wKCkKK3ZvaWQgTWVkaWFLZXlT
ZXNzaW9uOjplbnF1ZXVlRXZlbnQoUmVmPEV2ZW50PiYmIGV2ZW50KQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsK
KyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnRleHQtPmV2ZW50
TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCAqY29udGV4dCwgW3RoaXMs
IHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBldmVudCA9IFdU
Rk1vdmUoZXZlbnQpXSgpIG11dGFibGUgeworICAgICAgICBkaXNwYXRjaEV2ZW50KFdURk1vdmUo
ZXZlbnQpKTsKKyAgICB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24u
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9u
LmgKaW5kZXggYWViNWMyMmVlODQuLjBlOTI0MDYyOWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKQEAgLTkx
LDYgKzkxLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlc3Npb25DbG9zZWQoKTsKICAgICBTdHJp
bmcgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0OwogCisgICAgdm9pZCBlbnF1ZXVl
VGFzayhGdW5jdGlvbjx2b2lkKCk+JiYpOworICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFJlZjxFdmVu
dD4mJik7CisKICAgICAvLyBDRE1JbnN0YW5jZVNlc3Npb25DbGllbnQKICAgICB2b2lkIHVwZGF0
ZUtleVN0YXR1c2VzKENETUluc3RhbmNlU2Vzc2lvbkNsaWVudDo6S2V5U3RhdHVzVmVjdG9yJiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgc2VuZE1lc3NhZ2UoQ0RNTWVzc2FnZVR5cGUsIFJlZjxTaGFy
ZWRCdWZmZXI+JiYgbWVzc2FnZSkgZmluYWw7CkBAIC0xMDQsOCArMTA3LDYgQEAgcHJpdmF0ZToK
IAogICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZFByZXZlbnRFbnRlcmluZ0Jh
Y2tGb3J3YXJkQ2FjaGVfREVQUkVDQVRFRCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc3Rv
cCgpIG92ZXJyaWRlOwogCiAgICAgV2Vha1B0cjxNZWRpYUtleXM+IG1fa2V5czsKICAgICBTdHJp
bmcgbV9zZXNzaW9uSWQ7CkBAIC0xMTksOCArMTIwLDYgQEAgcHJpdmF0ZToKICAgICBNZWRpYUtl
eVNlc3Npb25UeXBlIG1fc2Vzc2lvblR5cGU7CiAgICAgUmVmPENETT4gbV9pbXBsZW1lbnRhdGlv
bjsKICAgICBSZWY8Q0RNSW5zdGFuY2VTZXNzaW9uPiBtX2luc3RhbmNlU2Vzc2lvbjsKLSAgICBV
bmlxdWVSZWY8TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlPiBtX2V2ZW50UXVldWU7Ci0gICAg
R2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV90YXNrUXVldWU7CiAgICAgVmVjdG9yPFJlZjxTaGFy
ZWRCdWZmZXI+PiBtX3JlY29yZE9mS2V5VXNhZ2U7CiAgICAgZG91YmxlIG1fZmlyc3REZWNyeXB0
VGltZSB7IDAgfTsKICAgICBkb3VibGUgbV9sYXRlc3REZWNyeXB0VGltZSB7IDAgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382395</attachid>
            <date>2019-10-30 17:02:27 -0700</date>
            <delta_ts>2019-10-31 07:49:25 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>203089_wip.patch</filename>
            <type>text/plain</type>
            <size>18181</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFL
ZXlTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVk
aWFLZXlTZXNzaW9uLmNwcAppbmRleCA4OGM4YWVhNDRjYi4uMWQ0YjEzNTA1MGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5
U2Vzc2lvbi5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVE
SUEpCiAKKyNpbmNsdWRlICJBYnN0cmFjdEV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkNETS5oIgog
I2luY2x1ZGUgIkNETUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiRE9NUHJvbWlzZVByb3h5LmgiCkBA
IC03MCw3ICs3MSw2IEBAIE1lZGlhS2V5U2Vzc2lvbjo6TWVkaWFLZXlTZXNzaW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdlYWtQdHI8TWVkaWFLCiAgICAgLCBtX3Nlc3Npb25U
eXBlKHNlc3Npb25UeXBlKQogICAgICwgbV9pbXBsZW1lbnRhdGlvbihXVEZNb3ZlKGltcGxlbWVu
dGF0aW9uKSkKICAgICAsIG1faW5zdGFuY2VTZXNzaW9uKFdURk1vdmUoaW5zdGFuY2VTZXNzaW9u
KSkKLSAgICAsIG1fZXZlbnRRdWV1ZShNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmNyZWF0
ZSgqdGhpcykpCiB7CiAgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2VuY3J5cHRlZC1tZWRp
YS8jZG9tLW1lZGlha2V5cy1jcmVhdGVzZXNzaW9uCiAgICAgLy8gVzNDIEVkaXRvcidzIERyYWZ0
IDA5IE5vdmVtYmVyIDIwMTYKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lv
bjo6Z2VuZXJhdGVSZXF1ZXN0KGNvbnN0IEF0b21TdHJpbmcmIGluaXREYXRhVHlwZSwgY29uc3Qg
QnVmZgogICAgIC8vIDguIExldCBzZXNzaW9uIHR5cGUgYmUgdGhpcyBvYmplY3QncyBzZXNzaW9u
IHR5cGUuCiAgICAgLy8gOS4gTGV0IHByb21pc2UgYmUgYSBuZXcgcHJvbWlzZS4KICAgICAvLyAx
MC4gUnVuIHRoZSBmb2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6Ci0gICAgbV90YXNrUXVldWUu
ZW5xdWV1ZVRhc2soW3RoaXMsIGluaXREYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoaW5pdERh
dGEuZGF0YSgpLCBpbml0RGF0YS5sZW5ndGgoKSksIGluaXREYXRhVHlwZSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgIGVucXVldWVUYXNrKFt0aGlzLCBpbml0
RGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGluaXREYXRhLmRhdGEoKSwgaW5pdERhdGEubGVu
Z3RoKCkpLCBpbml0RGF0YVR5cGUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRh
YmxlIHsKICAgICAgICAgLy8gMTAuMS4gSWYgdGhlIGluaXQgZGF0YSBpcyBub3QgdmFsaWQgZm9y
IGluaXREYXRhVHlwZSwgcmVqZWN0IHByb21pc2Ugd2l0aCBhIG5ld2x5IGNyZWF0ZWQgVHlwZUVy
cm9yLgogICAgICAgICAvLyAxMC4yLiBMZXQgc2FuaXRpemVkIGluaXQgZGF0YSBiZSBhIHZhbGlk
YXRlZCBhbmQgc2FuaXRpemVkIHZlcnNpb24gb2YgaW5pdCBkYXRhLgogICAgICAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZWRJbml0RGF0YSA9IG1faW1wbGVtZW50YXRpb24tPnNhbml0
aXplSW5pdERhdGEoaW5pdERhdGFUeXBlLCBpbml0RGF0YSk7CkBAIC0yMjYsNyArMjI2LDcgQEAg
dm9pZCBNZWRpYUtleVNlc3Npb246OmdlbmVyYXRlUmVxdWVzdChjb25zdCBBdG9tU3RyaW5nJiBp
bml0RGF0YVR5cGUsIGNvbnN0IEJ1ZmYKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8g
MTAuMTAuIFF1ZXVlIGEgdGFzayB0byBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAgICAg
ICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIG1lc3NhZ2VUeXBlLCBzZXNzaW9uSWQs
IHN1Y2NlZWRlZF0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBlbnF1ZXVlVGFzayhbdGhpcywg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBt
ZXNzYWdlVHlwZSwgc2Vzc2lvbklkLCBzdWNjZWVkZWRdICgpIG11dGFibGUgewogICAgICAgICAg
ICAgICAgIC8vIDEwLjEwLjEuIElmIGFueSBvZiB0aGUgcHJlY2VkaW5nIHN0ZXBzIGZhaWxlZCwg
cmVqZWN0IHByb21pc2Ugd2l0aCBhIG5ldyBET01FeGNlcHRpb24gd2hvc2UgbmFtZSBpcyB0aGUg
YXBwcm9wcmlhdGUgZXJyb3IgbmFtZS4KICAgICAgICAgICAgICAgICBpZiAoc3VjY2VlZGVkID09
IENETUluc3RhbmNlU2Vzc2lvbjo6U3VjY2Vzc1ZhbHVlOjpGYWlsZWQpIHsKICAgICAgICAgICAg
ICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yKTsKQEAgLTI3Nyw3ICsy
NzcsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6bG9hZChjb25zdCBTdHJpbmcmIHNlc3Npb25J
ZCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taQogCiAgICAgLy8gNy4gTGV0IHByb21pc2Ug
YmUgYSBuZXcgcHJvbWlzZS4KICAgICAvLyA4LiBSdW4gdGhlIGZvbGxvd2luZyBzdGVwcyBpbiBw
YXJhbGxlbDoKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgc2Vzc2lvbklkLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CisgICAgZW5xdWV1ZVRhc2so
W3RoaXMsIHNlc3Npb25JZCwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUg
ewogICAgICAgICAvLyA4LjEuIExldCBzYW5pdGl6ZWQgc2Vzc2lvbiBJRCBiZSBhIHZhbGlkYXRl
ZCBhbmQvb3Igc2FuaXRpemVkIHZlcnNpb24gb2Ygc2Vzc2lvbklkLgogICAgICAgICAvLyA4LjIu
IElmIHRoZSBwcmVjZWRpbmcgc3RlcCBmYWlsZWQsIG9yIGlmIHNhbml0aXplZCBzZXNzaW9uIElE
IGlzIGVtcHR5LCByZWplY3QgcHJvbWlzZSB3aXRoIGEgbmV3bHkgY3JlYXRlZCBUeXBlRXJyb3Iu
CiAgICAgICAgIE9wdGlvbmFsPFN0cmluZz4gc2FuaXRpemVkU2Vzc2lvbklkID0gbV9pbXBsZW1l
bnRhdGlvbi0+c2FuaXRpemVTZXNzaW9uSWQoc2Vzc2lvbklkKTsKQEAgLTMyOSw3ICszMjksNyBA
QCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6bG9hZChjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgUmVm
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAv
LyA4LjkuIFF1ZXVlIGEgdGFzayB0byBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAgICAg
ICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBrbm93bktleXMgPSBXVEZNb3ZlKGtu
b3duS2V5cyksIGV4cGlyYXRpb24gPSBXVEZNb3ZlKGV4cGlyYXRpb24pLCBtZXNzYWdlID0gV1RG
TW92ZShtZXNzYWdlKSwgc2FuaXRpemVkU2Vzc2lvbklkLCBzdWNjZWVkZWQsIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGVucXVldWVUYXNrKFt0
aGlzLCBrbm93bktleXMgPSBXVEZNb3ZlKGtub3duS2V5cyksIGV4cGlyYXRpb24gPSBXVEZNb3Zl
KGV4cGlyYXRpb24pLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKSwgc2FuaXRpemVkU2Vzc2lv
bklkLCBzdWNjZWVkZWQsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsK
ICAgICAgICAgICAgICAgICAvLyA4LjkuMS4gSWYgYW55IG9mIHRoZSBwcmVjZWRpbmcgc3RlcHMg
ZmFpbGVkLCByZWplY3QgcHJvbWlzZSB3aXRoIGEgdGhlIGFwcHJvcHJpYXRlIGVycm9yIG5hbWUu
CiAgICAgICAgICAgICAgICAgaWYgKHN1Y2NlZWRlZCA9PSBDRE1JbnN0YW5jZVNlc3Npb246OlN1
Y2Nlc3NWYWx1ZTo6RmFpbGVkKSB7CiAgICAgICAgICAgICAgICAgICAgIHByb21pc2UtPnJlamVj
dChOb3RTdXBwb3J0ZWRFcnJvcik7CkBAIC0zODYsNyArMzg2LDcgQEAgdm9pZCBNZWRpYUtleVNl
c3Npb246OnVwZGF0ZShjb25zdCBCdWZmZXJTb3VyY2UmIHJlc3BvbnNlLCBSZWY8RGVmZXJyZWRQ
cm9taXNlPiYKICAgICAvLyA0LiBMZXQgcmVzcG9uc2UgY29weSBiZSBhIGNvcHkgb2YgdGhlIGNv
bnRlbnRzIG9mIHRoZSByZXNwb25zZSBwYXJhbWV0ZXIuCiAgICAgLy8gNS4gTGV0IHByb21pc2Ug
YmUgYSBuZXcgcHJvbWlzZS4KICAgICAvLyA2LiBSdW4gdGhlIGZvbGxvd2luZyBzdGVwcyBpbiBw
YXJhbGxlbDoKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgcmVzcG9uc2UgPSBT
aGFyZWRCdWZmZXI6OmNyZWF0ZShyZXNwb25zZS5kYXRhKCksIHJlc3BvbnNlLmxlbmd0aCgpKSwg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgIGVucXVldWVUYXNr
KFt0aGlzLCByZXNwb25zZSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlc3BvbnNlLmRhdGEoKSwg
cmVzcG9uc2UubGVuZ3RoKCkpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJs
ZSB7CiAgICAgICAgIC8vIDYuMS4gTGV0IHNhbml0aXplZCByZXNwb25zZSBiZSBhIHZhbGlkYXRl
ZCBhbmQvb3Igc2FuaXRpemVkIHZlcnNpb24gb2YgcmVzcG9uc2UgY29weS4KICAgICAgICAgUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVkUmVzcG9uc2UgPSBtX2ltcGxlbWVudGF0aW9uLT5z
YW5pdGl6ZVJlc3BvbnNlKHJlc3BvbnNlKTsKIApAQCAtNDM3LDcgKzQzNyw3IEBAIHZvaWQgTWVk
aWFLZXlTZXNzaW9uOjp1cGRhdGUoY29uc3QgQnVmZmVyU291cmNlJiByZXNwb25zZSwgUmVmPERl
ZmVycmVkUHJvbWlzZT4mCiAgICAgICAgICAgICAvLyAgIDYuNy4zLjEuIExldCBtZXNzYWdlIGJl
IHRoYXQgbWVzc2FnZS4KICAgICAgICAgICAgIC8vICAgNi43LjMuMi4gTGV0IG1lc3NhZ2UgdHlw
ZSBiZSB0aGUgYXBwcm9wcmlhdGUgTWVkaWFLZXlNZXNzYWdlVHlwZSBmb3IgdGhlIG1lc3NhZ2Uu
CiAgICAgICAgICAgICAvLyA2LjguIFF1ZXVlIGEgdGFzayB0byBydW4gdGhlIGZvbGxvd2luZyBz
dGVwczoKLSAgICAgICAgICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBzZXNzaW9u
V2FzQ2xvc2VkLCBjaGFuZ2VkS2V5cyA9IFdURk1vdmUoY2hhbmdlZEtleXMpLCBjaGFuZ2VkRXhw
aXJhdGlvbiA9IFdURk1vdmUoY2hhbmdlZEV4cGlyYXRpb24pLCBtZXNzYWdlID0gV1RGTW92ZSht
ZXNzYWdlKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgICAg
ICAgICAgZW5xdWV1ZVRhc2soW3RoaXMsIHNlc3Npb25XYXNDbG9zZWQsIGNoYW5nZWRLZXlzID0g
V1RGTW92ZShjaGFuZ2VkS2V5cyksIGNoYW5nZWRFeHBpcmF0aW9uID0gV1RGTW92ZShjaGFuZ2Vk
RXhwaXJhdGlvbiksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgTE9HKEVNRSwgIkVNRSAt
IHVwZGF0aW5nIENETSBsaWNlbnNlIHN1Y2NlZWRlZCBmb3Igc2Vzc2lvbiAlcywgc2VuZGluZyBh
IG1lc3NhZ2UgdG8gdGhlIGxpY2Vuc2Ugc2VydmVyIiwgbV9zZXNzaW9uSWQudXRmOCgpLmRhdGEo
KSk7CiAgICAgICAgICAgICAgICAgLy8gNi44LjEuCiAgICAgICAgICAgICAgICAgaWYgKHNlc3Np
b25XYXNDbG9zZWQpIHsKQEAgLTUxNCw3ICs1MTQsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6
Y2xvc2UoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogCiAgICAgLy8gNC4gTGV0IHBy
b21pc2UgYmUgYSBuZXcgcHJvbWlzZS4KICAgICAvLyA1LiBSdW4gdGhlIGZvbGxvd2luZyBzdGVw
cyBpbiBwYXJhbGxlbDoKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgIGVucXVldWVUYXNrKFt0aGlz
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIC8vIDUu
MS4gTGV0IGNkbSBiZSB0aGUgQ0RNIGluc3RhbmNlIHJlcHJlc2VudGVkIGJ5IHNlc3Npb24ncyBj
ZG0gaW5zdGFuY2UgdmFsdWUuCiAgICAgICAgIC8vIDUuMi4gVXNlIGNkbSB0byBjbG9zZSB0aGUg
a2V5IHNlc3Npb24gYXNzb2NpYXRlZCB3aXRoIHNlc3Npb24uCiAgICAgICAgIExPRyhFTUUsICJF
TUUgLSBjbG9zaW5nIENETSBzZXNzaW9uICVzIiwgbV9zZXNzaW9uSWQudXRmOCgpLmRhdGEoKSk7
CkBAIC01MjMsNyArNTIzLDcgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246OmNsb3NlKFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAg
ICAgICAgIC8vIDUuMy4gUXVldWUgYSB0YXNrIHRvIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgot
ICAgICAgICAgICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGVucXVldWVUYXNrKFt0aGlz
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAg
ICAgLy8gNS4zLjEuIFJ1biB0aGUgU2Vzc2lvbiBDbG9zZWQgYWxnb3JpdGhtIG9uIHRoZSBzZXNz
aW9uLgogICAgICAgICAgICAgICAgIHNlc3Npb25DbG9zZWQoKTsKIApAQCAtNTUyLDcgKzU1Miw3
IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpyZW1vdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQogCiAgICAgLy8gMy4gTGV0IHByb21pc2UgYmUgYSBuZXcgcHJvbWlzZS4KICAgICAv
LyA0LiBSdW4gdGhlIGZvbGxvd2luZyBzdGVwcyBpbiBwYXJhbGxlbDoKLSAgICBtX3Rhc2tRdWV1
ZS5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFi
bGUgeworICAgIGVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0g
KCkgbXV0YWJsZSB7CiAgICAgICAgIC8vIDQuMS4gTGV0IGNkbSBiZSB0aGUgQ0RNIGluc3RhbmNl
IHJlcHJlc2VudGVkIGJ5IHRoaXMgb2JqZWN0J3MgY2RtIGluc3RhbmNlIHZhbHVlLgogICAgICAg
ICAvLyA0LjIuIExldCBtZXNzYWdlIGJlIG51bGwuCiAgICAgICAgIC8vIDQuMy4gTGV0IG1lc3Nh
Z2UgdHlwZSBiZSBudWxsLgpAQCAtNTc3LDcgKzU3Nyw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9u
OjpyZW1vdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogICAgICAgICAgICAgLy8g
Tk9URTogU3RlcCA0LjQuMS4gc2hvdWxkIGJlIGltcGxlbWVudGVkIGluIENETUluc3RhbmNlLgog
CiAgICAgICAgICAgICAvLyA0LjUuIFF1ZXVlIGEgdGFzayB0byBydW4gdGhlIGZvbGxvd2luZyBz
dGVwczoKLSAgICAgICAgICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBrZXlzID0g
V1RGTW92ZShrZXlzKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIHN1Y2NlZWRlZCwgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgICAgICAgICAgZW5xdWV1
ZVRhc2soW3RoaXMsIGtleXMgPSBXVEZNb3ZlKGtleXMpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNz
YWdlKSwgc3VjY2VlZGVkLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7
CiAgICAgICAgICAgICAgICAgLy8gNC41LjEuIFJ1biB0aGUgVXBkYXRlIEtleSBTdGF0dXNlcyBh
bGdvcml0aG0gb24gdGhlIHNlc3Npb24sIHByb3ZpZGluZyBhbGwga2V5IElEKHMpIGluIHRoZSBz
ZXNzaW9uIGFsb25nIHdpdGggdGhlICJyZWxlYXNlZCIgTWVkaWFLZXlTdGF0dXMgdmFsdWUgZm9y
IGVhY2guCiAgICAgICAgICAgICAgICAgdXBkYXRlS2V5U3RhdHVzZXMoV1RGTW92ZShrZXlzKSk7
CiAKQEAgLTYxNiw3ICs2MTYsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6ZW5xdWV1ZU1lc3Nh
Z2UoTWVkaWFLZXlNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgY29uc3QgU2hhcgogICAgIC8vICAg
IGludGVyZmFjZSB3aXRoIGl0cyB0eXBlIGF0dHJpYnV0ZSBzZXQgdG8gbWVzc2FnZSBhbmQgaXRz
IGlzVHJ1c3RlZCBhdHRyaWJ1dGUgaW5pdGlhbGl6ZWQgdG8gdHJ1ZSwgYW5kIGRpc3BhdGNoIGl0
IGF0IHRoZQogICAgIC8vICAgIHNlc3Npb24uCiAgICAgYXV0byBtZXNzYWdlRXZlbnQgPSBNZWRp
YUtleU1lc3NhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5tZXNzYWdlRXZlbnQsIHttZXNz
YWdlVHlwZSwgbWVzc2FnZS50cnlDcmVhdGVBcnJheUJ1ZmZlcigpfSwgRXZlbnQ6OklzVHJ1c3Rl
ZDo6WWVzKTsKLSAgICBtX2V2ZW50UXVldWUtPmVucXVldWVFdmVudChXVEZNb3ZlKG1lc3NhZ2VF
dmVudCkpOworICAgIGVucXVldWVFdmVudChXVEZNb3ZlKG1lc3NhZ2VFdmVudCkpOwogfQogCiB2
b2lkIE1lZGlhS2V5U2Vzc2lvbjo6dXBkYXRlS2V5U3RhdHVzZXMoQ0RNSW5zdGFuY2VTZXNzaW9u
OjpLZXlTdGF0dXNWZWN0b3ImJiBpbnB1dFN0YXR1c2VzKQpAQCAtNjYxLDEwICs2NjEsMTAgQEAg
dm9pZCBNZWRpYUtleVNlc3Npb246OnVwZGF0ZUtleVN0YXR1c2VzKENETUluc3RhbmNlU2Vzc2lv
bjo6S2V5U3RhdHVzVmVjdG9yJiYgaW4KICAgICAgICAgbV9zdGF0dXNlcy51bmNoZWNrZWRBcHBl
bmQoeyBXVEZNb3ZlKHN0YXR1cy5maXJzdCksIHRvTWVkaWFLZXlTdGF0dXMoc3RhdHVzLnNlY29u
ZCkgfSk7CiAKICAgICAvLyA1LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBu
YW1lZCBrZXlzdGF0dXNlc2NoYW5nZSBhdCB0aGUgc2Vzc2lvbi4KLSAgICBtX2V2ZW50UXVldWUt
PmVucXVldWVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5rZXlzdGF0dXNlc2NoYW5n
ZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsK
KyAgICBlbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkua2V5c3RhdHVzZXNj
aGFuZ2VFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5v
KSk7CiAKICAgICAvLyA2LiBRdWV1ZSBhIHRhc2sgdG8gcnVuIHRoZSBBdHRlbXB0IHRvIFJlc3Vt
ZSBQbGF5YmFjayBJZiBOZWNlc3NhcnkgYWxnb3JpdGhtIG9uIGVhY2ggb2YgdGhlIG1lZGlhIGVs
ZW1lbnQocykgd2hvc2UgbWVkaWFLZXlzIGF0dHJpYnV0ZSBpcyB0aGUgTWVkaWFLZXlzIG9iamVj
dCB0aGF0IGNyZWF0ZWQgdGhlIHNlc3Npb24uCi0gICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2so
CisgICAgZW5xdWV1ZVRhc2soCiAgICAgICAgIFt0aGlzXSAoKSBtdXRhYmxlIHsKICAgICAgICAg
ICAgIGlmIChtX2tleXMpCiAgICAgICAgICAgICAgICAgbV9rZXlzLT5hdHRlbXB0VG9SZXN1bWVQ
bGF5YmFja09uQ2xpZW50cygpOwpAQCAtNzMzLDI2ICs3MzMsMzYgQEAgU3RyaW5nIE1lZGlhS2V5
U2Vzc2lvbjo6bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0CiAKIGJvb2wgTWVkaWFL
ZXlTZXNzaW9uOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIC8vIEEgTWVkaWFLZXlTZXNzaW9uIG9iamVj
dCBTSEFMTCBOT1QgYmUgZGVzdHJveWVkIGFuZCBTSEFMTCBjb250aW51ZSB0byByZWNlaXZlIGV2
ZW50cyBpZiBpdCBpcyBub3QgY2xvc2VkIGFuZCB0aGUgTWVkaWFLZXlzIG9iamVjdCB0aGF0IGNy
ZWF0ZWQgaXQgcmVtYWlucyBhY2Nlc3NpYmxlLgorICAgIHJldHVybiAoIW1fY2xvc2VkICYmIG1f
a2V5cykgfHwgQWN0aXZlRE9NT2JqZWN0OjpoYXNQZW5kaW5nQWN0aXZpdHkoKTsKIH0KIAogY29u
c3QgY2hhciogTWVkaWFLZXlTZXNzaW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIHsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAiTWVkaWFLZXlTZXNzaW9uIjsKIH0K
IAotLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5ldmVyIHByZXZlbnQgZW50ZXJpbmcgdGhlIGJhY2sv
Zm9yd2FyZCBjYWNoZS4KLWJvb2wgTWVkaWFLZXlTZXNzaW9uOjpzaG91bGRQcmV2ZW50RW50ZXJp
bmdCYWNrRm9yd2FyZENhY2hlX0RFUFJFQ0FURUQoKSBjb25zdAordm9pZCBNZWRpYUtleVNlc3Np
b246OmVucXVldWVUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGNvbnRleHQtPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5n
LCAqY29udGV4dCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0YXNrID0gV1RGTW92
ZSh0YXNrKV0geworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB0YXNrKCk7Cisg
ICAgfSk7CiB9CiAKLXZvaWQgTWVkaWFLZXlTZXNzaW9uOjpzdG9wKCkKK3ZvaWQgTWVkaWFLZXlT
ZXNzaW9uOjplbnF1ZXVlRXZlbnQoUmVmPEV2ZW50PiYmIGV2ZW50KQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsK
KyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnRleHQtPmV2ZW50
TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCAqY29udGV4dCwgW3RoaXMs
IHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBldmVudCA9IFdU
Rk1vdmUoZXZlbnQpXSgpIG11dGFibGUgeworICAgICAgICBkaXNwYXRjaEV2ZW50KFdURk1vdmUo
ZXZlbnQpKTsKKyAgICB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24u
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9u
LmgKaW5kZXggYWViNWMyMmVlODQuLmU0MjI5ZjgxOTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKQEAgLTMz
LDEzICszMywxMiBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkNE
TUluc3RhbmNlU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCi0jaW5jbHVkZSAi
R2VuZXJpY0V2ZW50UXVldWUuaCIKLSNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCiAjaW5j
bHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRlICJNZWRpYUtleU1lc3NhZ2VUeXBlLmgiCiAjaW5j
bHVkZSAiTWVkaWFLZXlTZXNzaW9uVHlwZS5oIgogI2luY2x1ZGUgIk1lZGlhS2V5U3RhdHVzLmgi
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC05MSw2ICs5MCw5IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzZXNzaW9uQ2xvc2VkKCk7CiAgICAgU3RyaW5nIG1lZGlhS2V5c1N0b3JhZ2VEaXJl
Y3RvcnkoKSBjb25zdDsKIAorICAgIHZvaWQgZW5xdWV1ZVRhc2soRnVuY3Rpb248dm9pZCgpPiYm
KTsKKyAgICB2b2lkIGVucXVldWVFdmVudChSZWY8RXZlbnQ+JiYpOworCiAgICAgLy8gQ0RNSW5z
dGFuY2VTZXNzaW9uQ2xpZW50CiAgICAgdm9pZCB1cGRhdGVLZXlTdGF0dXNlcyhDRE1JbnN0YW5j
ZVNlc3Npb25DbGllbnQ6OktleVN0YXR1c1ZlY3RvciYmKSBvdmVycmlkZTsKICAgICB2b2lkIHNl
bmRNZXNzYWdlKENETU1lc3NhZ2VUeXBlLCBSZWY8U2hhcmVkQnVmZmVyPiYmIG1lc3NhZ2UpIGZp
bmFsOwpAQCAtMTA0LDggKzEwNiw2IEBAIHByaXZhdGU6CiAKICAgICAvLyBBY3RpdmVET01PYmpl
Y3QKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgYm9vbCBzaG91bGRQcmV2ZW50RW50ZXJpbmdCYWNrRm9yd2FyZENhY2hlX0RFUFJFQ0FU
RUQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKIAogICAgIFdl
YWtQdHI8TWVkaWFLZXlzPiBtX2tleXM7CiAgICAgU3RyaW5nIG1fc2Vzc2lvbklkOwpAQCAtMTE5
LDggKzExOSw2IEBAIHByaXZhdGU6CiAgICAgTWVkaWFLZXlTZXNzaW9uVHlwZSBtX3Nlc3Npb25U
eXBlOwogICAgIFJlZjxDRE0+IG1faW1wbGVtZW50YXRpb247CiAgICAgUmVmPENETUluc3RhbmNl
U2Vzc2lvbj4gbV9pbnN0YW5jZVNlc3Npb247Ci0gICAgVW5pcXVlUmVmPE1haW5UaHJlYWRHZW5l
cmljRXZlbnRRdWV1ZT4gbV9ldmVudFF1ZXVlOwotICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+
IG1fdGFza1F1ZXVlOwogICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4gbV9yZWNvcmRPZktl
eVVzYWdlOwogICAgIGRvdWJsZSBtX2ZpcnN0RGVjcnlwdFRpbWUgeyAwIH07CiAgICAgZG91Ymxl
IG1fbGF0ZXN0RGVjcnlwdFRpbWUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9XZWJLaXRNZWRpYUtleVNlc3Npb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFL
ZXlTZXNzaW9uLmNwcAppbmRleCA4ZGRlZjI1N2RmZS4uNDc5MzFlMWY5NmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L1dlYktpdE1lZGlh
S2V5U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9sZWdhY3kvV2ViS2l0TWVkaWFLZXlTZXNzaW9uLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAj
aWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAKKyNpbmNsdWRlICJBYnN0cmFjdEV2
ZW50TG9vcC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTU0LDcgKzU1LDYgQEAgV2ViS2l0TWVkaWFLZXlTZXNz
aW9uOjpXZWJLaXRNZWRpYUtleVNlc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgV2UKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAsIG1fa2V5cygma2V5
cykKICAgICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKLSAgICAsIG1fYXN5bmNFdmVudFF1ZXVl
KE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlzKSkKICAgICAsIG1fc2Vz
c2lvbihrZXlzLmNkbSgpLmNyZWF0ZVNlc3Npb24oKnRoaXMpKQogICAgICwgbV9rZXlSZXF1ZXN0
VGltZXIoKnRoaXMsICZXZWJLaXRNZWRpYUtleVNlc3Npb246OmtleVJlcXVlc3RUaW1lckZpcmVk
KQogICAgICwgbV9hZGRLZXlUaW1lcigqdGhpcywgJldlYktpdE1lZGlhS2V5U2Vzc2lvbjo6YWRk
S2V5VGltZXJGaXJlZCkKQEAgLTY3LDggKzY3LDYgQEAgV2ViS2l0TWVkaWFLZXlTZXNzaW9uOjp+
V2ViS2l0TWVkaWFLZXlTZXNzaW9uKCkKIHsKICAgICBpZiAobV9zZXNzaW9uKQogICAgICAgICBt
X3Nlc3Npb24tPnNldENsaWVudChudWxscHRyKTsKLQotICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5j
YW5jZWxBbGxFdmVudHMoKTsKIH0KIAogdm9pZCBXZWJLaXRNZWRpYUtleVNlc3Npb246OmNsb3Nl
KCkKQEAgLTE4Myw3ICsxODEsNyBAQCB2b2lkIFdlYktpdE1lZGlhS2V5U2Vzc2lvbjo6YWRkS2V5
VGltZXJGaXJlZCgpCiAgICAgICAgIGlmIChkaWRTdG9yZUtleSkgewogICAgICAgICAgICAgYXV0
byBrZXlhZGRlZEV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0a2V5YWRk
ZWRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKTsK
ICAgICAgICAgICAgIGtleWFkZGVkRXZlbnQtPnNldFRhcmdldCh0aGlzKTsKLSAgICAgICAgICAg
IG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShrZXlhZGRlZEV2ZW50KSk7
CisgICAgICAgICAgICBlbnF1ZXVlRXZlbnQoV1RGTW92ZShrZXlhZGRlZEV2ZW50KSk7CiAKICAg
ICAgICAgICAgIEFTU0VSVChtX2tleXMpOwogICAgICAgICAgICAgbV9rZXlzLT5rZXlBZGRlZCgp
OwpAQCAtMjA3LDcgKzIwNSw3IEBAIHZvaWQgV2ViS2l0TWVkaWFLZXlTZXNzaW9uOjpzZW5kTWVz
c2FnZShVaW50OEFycmF5KiBtZXNzYWdlLCBTdHJpbmcgZGVzdGluYXRpb25VCiB7CiAgICAgYXV0
byBldmVudCA9IFdlYktpdE1lZGlhS2V5TWVzc2FnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LndlYmtpdGtleW1lc3NhZ2VFdmVudCwgbWVzc2FnZSwgZGVzdGluYXRpb25VUkwpOwogICAgIGV2
ZW50LT5zZXRUYXJnZXQodGhpcyk7Ci0gICAgbV9hc3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVu
dChXVEZNb3ZlKGV2ZW50KSk7CisgICAgZW5xdWV1ZUV2ZW50KFdURk1vdmUoZXZlbnQpKTsKIH0K
IAogdm9pZCBXZWJLaXRNZWRpYUtleVNlc3Npb246OnNlbmRFcnJvcihNZWRpYUtleUVycm9yQ29k
ZSBlcnJvckNvZGUsIHVpbnQzMl90IHN5c3RlbUNvZGUpCkBAIC0yMTYsNyArMjE0LDcgQEAgdm9p
ZCBXZWJLaXRNZWRpYUtleVNlc3Npb246OnNlbmRFcnJvcihNZWRpYUtleUVycm9yQ29kZSBlcnJv
ckNvZGUsIHVpbnQzMl90IHN5c3QKIAogICAgIGF1dG8ga2V5ZXJyb3JFdmVudCA9IEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLndlYmtpdGtleWVycm9yRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObyk7CiAgICAga2V5ZXJyb3JFdmVudC0+c2V0VGFy
Z2V0KHRoaXMpOwotICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShr
ZXllcnJvckV2ZW50KSk7CisgICAgZW5xdWV1ZUV2ZW50KFdURk1vdmUoa2V5ZXJyb3JFdmVudCkp
OwogfQogCiBTdHJpbmcgV2ViS2l0TWVkaWFLZXlTZXNzaW9uOjptZWRpYUtleXNTdG9yYWdlRGly
ZWN0b3J5KCkgY29uc3QKQEAgLTIzOCw3ICsyMzYsNyBAQCBTdHJpbmcgV2ViS2l0TWVkaWFLZXlT
ZXNzaW9uOjptZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QKIAogYm9vbCBXZWJLaXRN
ZWRpYUtleVNlc3Npb246Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IChtX2tleXMgJiYgbV9zZXNzaW9uKSB8fCBtX2FzeW5jRXZlbnRRdWV1ZS0+aGFzUGVuZGluZ0V2
ZW50cygpOworICAgIHJldHVybiAobV9rZXlzICYmIG1fc2Vzc2lvbikgfHwgQWN0aXZlRE9NT2Jq
ZWN0OjpoYXNQZW5kaW5nQWN0aXZpdHkoKTsKIH0KIAogdm9pZCBXZWJLaXRNZWRpYUtleVNlc3Np
b246OnN0b3AoKQpAQCAtMjUxLDEwICsyNDksMTUgQEAgY29uc3QgY2hhciogV2ViS2l0TWVkaWFL
ZXlTZXNzaW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKICAgICByZXR1cm4gIldlYktp
dE1lZGlhS2V5U2Vzc2lvbiI7CiB9CiAKLWJvb2wgV2ViS2l0TWVkaWFLZXlTZXNzaW9uOjpzaG91
bGRQcmV2ZW50RW50ZXJpbmdCYWNrRm9yd2FyZENhY2hlX0RFUFJFQ0FURUQoKSBjb25zdAordm9p
ZCBXZWJLaXRNZWRpYUtleVNlc3Npb246OmVucXVldWVFdmVudChSZWY8RXZlbnQ+JiYgZXZlbnQp
CiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5ldmVyIHByZXZlbnQgZW50ZXJpbmcgdGhl
IGJhY2svZm9yd2FyZCBjYWNoZS4KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBhdXRvKiBjb250ZXh0
ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgY29udGV4dC0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6
Ok5ldHdvcmtpbmcsICpjb250ZXh0LCBbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRp
bmdBY3Rpdml0eSgqdGhpcyksIGV2ZW50ID0gV1RGTW92ZShldmVudCldKCkgbXV0YWJsZSB7Cisg
ICAgICAgIGRpc3BhdGNoRXZlbnQoV1RGTW92ZShldmVudCkpOworICAgIH0pOwogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9X
ZWJLaXRNZWRpYUtleVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvbGVnYWN5L1dlYktpdE1lZGlhS2V5U2Vzc2lvbi5oCmluZGV4IGNmZGViMjQ4NjVlLi4z
ZDRlNjI3MjY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFLZXlTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFLZXlTZXNzaW9uLmgKQEAg
LTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJF
dmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCi0jaW5jbHVkZSAiR2VuZXJp
Y0V2ZW50UXVldWUuaCIKICNpbmNsdWRlICJMZWdhY3lDRE1TZXNzaW9uLmgiCiAjaW5jbHVkZSAi
VGltZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9VaW50OEFycmF5Lmg+CkBAIC00MSw3
ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFdlYktpdE1lZGlhS2V5RXJyb3I7
CiBjbGFzcyBXZWJLaXRNZWRpYUtleXM7CiAKLWNsYXNzIFdlYktpdE1lZGlhS2V5U2Vzc2lvbiBm
aW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdE1lZGlhS2V5U2Vzc2lvbj4sIHB1YmxpYyBF
dmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwcml2YXRlIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0
ZSBMZWdhY3lDRE1TZXNzaW9uQ2xpZW50IHsKK2NsYXNzIFdlYktpdE1lZGlhS2V5U2Vzc2lvbiBm
aW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdE1lZGlhS2V5U2Vzc2lvbj4sIHB1YmxpYyBF
dmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRl
IExlZ2FjeUNETVNlc3Npb25DbGllbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2Vi
S2l0TWVkaWFLZXlTZXNzaW9uKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYktpdE1lZGlh
S2V5U2Vzc2lvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJLaXRNZWRpYUtl
eXMmLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSk7CkBAIC03NCwxMSArNzMsMTIgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNlbmRFcnJvcihNZWRpYUtleUVycm9yQ29kZSwgdWludDMyX3Qgc3lzdGVt
Q29kZSkgZmluYWw7CiAgICAgU3RyaW5nIG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKSBjb25z
dCBmaW5hbDsKIAorICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFJlZjxFdmVudD4mJik7CisKICAgICB2
b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQogICAgIHZvaWQgZGVyZWZFdmVu
dFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQogCiAgICAgdm9pZCBzdG9wKCkgZmluYWw7Ci0g
ICAgYm9vbCBzaG91bGRQcmV2ZW50RW50ZXJpbmdCYWNrRm9yd2FyZENhY2hlX0RFUFJFQ0FURUQo
KSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3QgZmluYWw7CiAKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFj
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdlYktpdE1lZGlhS2V5U2Vzc2lvbkV2ZW50VGFyZ2V0
SW50ZXJmYWNlVHlwZTsgfQpAQCAtODgsNyArODgsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZyBt
X2tleVN5c3RlbTsKICAgICBTdHJpbmcgbV9zZXNzaW9uSWQ7CiAgICAgUmVmUHRyPFdlYktpdE1l
ZGlhS2V5RXJyb3I+IG1fZXJyb3I7Ci0gICAgVW5pcXVlUmVmPE1haW5UaHJlYWRHZW5lcmljRXZl
bnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPExlZ2FjeUNE
TVNlc3Npb24+IG1fc2Vzc2lvbjsKIAogICAgIHN0cnVjdCBQZW5kaW5nS2V5UmVxdWVzdCB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382457</attachid>
            <date>2019-10-31 07:49:29 -0700</date>
            <delta_ts>2019-11-04 16:31:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203089-20191031074927.patch</filename>
            <type>text/plain</type>
            <size>24092</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY4NTY4NGIxMTM4YmE1
MTQzZGFkNWY1NzQ0OGFlMmZhMmJiZTc3MC4uMDlkMzdmYzRlMGExOGEwNzI0MjEzNmUxZjUzMDAw
NjFlYWMwNmNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTEwLTMxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFLZXlTZXNzaW9uIC8g
V2ViS2l0TWVkaWFLZXlTZXNzaW9uIHNob3VsZCBub3QgcHJldmVudCBlbnRlcmluZyB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDMwODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBQb3J0IE1lZGlhS2V5U2Vzc2lvbiAvIFdlYktpdE1lZGlhS2V5U2Vzc2lvbiB0byB0
aGUgSFRNTDUgZXZlbnQgbG9vcCBpbnN0ZWFkIG9mIHVzaW5nIGl0cworICAgICAgICBvd24gR2Vu
ZXJpY0V2ZW50UXVldWUgLyBHZW5lcmljVGFza1F1ZXVlLiBCZWNhdXNlIHRoZSBIVE1MNSBldmVu
dCBsb29wIHBsYXlzIG5pY2VseSB3aXRoCisgICAgICAgIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUs
IHdlIGNhbiBub3cgbGV0IHBhZ2VzIHVzaW5nIE1lZGlhS2V5U2Vzc2lvbiAvIFdlYktpdE1lZGlh
S2V5U2Vzc2lvbgorICAgICAgICBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisKKyAgICAg
ICAgVGVzdDogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtbWVkaWFrZXlzZXNzaW9u
Lmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6TWVkaWFLZXlTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6Z2VuZXJhdGVSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6bG9hZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVNlc3Npb246OnVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtl
eVNlc3Npb246OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6cmVt
b3ZlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6ZW5xdWV1ZU1lc3NhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjp1cGRhdGVLZXlTdGF0dXNlcyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246Omhhc1BlbmRpbmdBY3Rpdml0eSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OmFjdGl2ZURPTU9iamVj
dE5hbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjplbnF1ZXVl
VGFzayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OmVucXVldWVFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OnNob3VsZFByZXZlbnRFbnRlcmlu
Z0JhY2tGb3J3YXJkQ2FjaGVfREVQUkVDQVRFRCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OnN0b3ApOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmg6CisgICAgICAgICogTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFLZXlTZXNzaW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYktpdE1lZGlhS2V5U2Vzc2lvbjo6V2ViS2l0TWVkaWFLZXlTZXNzaW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1lZGlhS2V5U2Vzc2lvbjo6fldlYktpdE1lZGlhS2V5
U2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNZWRpYUtleVNlc3Npb246OmFkZEtl
eVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TWVkaWFLZXlTZXNzaW9uOjpz
ZW5kTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNZWRpYUtleVNlc3Npb246OnNl
bmRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNZWRpYUtleVNlc3Npb246Omhhc1Bl
bmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNZWRpYUtleVNl
c3Npb246OmVucXVldWVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNZWRpYUtleVNl
c3Npb246OnNob3VsZFByZXZlbnRFbnRlcmluZ0JhY2tGb3J3YXJkQ2FjaGVfREVQUkVDQVRFRCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kv
V2ViS2l0TWVkaWFLZXlTZXNzaW9uLmg6CisKIDIwMTktMTAtMzEgIEFudG9pbmUgUXVpbnQgIDxn
cmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFkZCBzdXBwb3J0
IGZvciBBbmltYXRpb25FdmVudC5wc2V1ZG9FbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKaW5kZXgg
ODhjOGFlYTQ0Y2I5Y2Y3OWQ3MzllNTFlNTMyM2QxMTM1NmNhM2ZhZi4uNDcyODI3Njg3YjAyYThj
ODYxMjdmN2ViYTgzOWUzYTI3NzQ1MDk5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcApAQCAtMzEsNiAr
MzEsNyBAQAogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKIAorI2luY2x1ZGUgIkFic3Ry
YWN0RXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiQ0RNLmgiCiAjaW5jbHVkZSAiQ0RNSW5zdGFuY2Uu
aCIKICNpbmNsdWRlICJET01Qcm9taXNlUHJveHkuaCIKQEAgLTcwLDcgKzcxLDYgQEAgTWVkaWFL
ZXlTZXNzaW9uOjpNZWRpYUtleVNlc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgV2Vha1B0cjxNZWRpYUsKICAgICAsIG1fc2Vzc2lvblR5cGUoc2Vzc2lvblR5cGUpCiAgICAg
LCBtX2ltcGxlbWVudGF0aW9uKFdURk1vdmUoaW1wbGVtZW50YXRpb24pKQogICAgICwgbV9pbnN0
YW5jZVNlc3Npb24oV1RGTW92ZShpbnN0YW5jZVNlc3Npb24pKQotICAgICwgbV9ldmVudFF1ZXVl
KE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlzKSkKIHsKICAgICAvLyBo
dHRwczovL3czYy5naXRodWIuaW8vZW5jcnlwdGVkLW1lZGlhLyNkb20tbWVkaWFrZXlzLWNyZWF0
ZXNlc3Npb24KICAgICAvLyBXM0MgRWRpdG9yJ3MgRHJhZnQgMDkgTm92ZW1iZXIgMjAxNgpAQCAt
MTU3LDcgKzE1Nyw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpnZW5lcmF0ZVJlcXVlc3QoY29u
c3QgQXRvbVN0cmluZyYgaW5pdERhdGFUeXBlLCBjb25zdCBCdWZmCiAgICAgLy8gOC4gTGV0IHNl
c3Npb24gdHlwZSBiZSB0aGlzIG9iamVjdCdzIHNlc3Npb24gdHlwZS4KICAgICAvLyA5LiBMZXQg
cHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgogICAgIC8vIDEwLiBSdW4gdGhlIGZvbGxvd2luZyBz
dGVwcyBpbiBwYXJhbGxlbDoKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgaW5p
dERhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShpbml0RGF0YS5kYXRhKCksIGluaXREYXRhLmxl
bmd0aCgpKSwgaW5pdERhdGFUeXBlLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0
YWJsZSB7CisgICAgZW5xdWV1ZVRhc2soW3RoaXMsIGluaXREYXRhID0gU2hhcmVkQnVmZmVyOjpj
cmVhdGUoaW5pdERhdGEuZGF0YSgpLCBpbml0RGF0YS5sZW5ndGgoKSksIGluaXREYXRhVHlwZSwg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgewogICAgICAgICAvLyAxMC4x
LiBJZiB0aGUgaW5pdCBkYXRhIGlzIG5vdCB2YWxpZCBmb3IgaW5pdERhdGFUeXBlLCByZWplY3Qg
cHJvbWlzZSB3aXRoIGEgbmV3bHkgY3JlYXRlZCBUeXBlRXJyb3IuCiAgICAgICAgIC8vIDEwLjIu
IExldCBzYW5pdGl6ZWQgaW5pdCBkYXRhIGJlIGEgdmFsaWRhdGVkIGFuZCBzYW5pdGl6ZWQgdmVy
c2lvbiBvZiBpbml0IGRhdGEuCiAgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNhbml0aXpl
ZEluaXREYXRhID0gbV9pbXBsZW1lbnRhdGlvbi0+c2FuaXRpemVJbml0RGF0YShpbml0RGF0YVR5
cGUsIGluaXREYXRhKTsKQEAgLTIyNiw3ICsyMjYsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6
Z2VuZXJhdGVSZXF1ZXN0KGNvbnN0IEF0b21TdHJpbmcmIGluaXREYXRhVHlwZSwgY29uc3QgQnVm
ZgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyAxMC4xMC4gUXVldWUgYSB0YXNrIHRv
IHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICAgICAgbV90YXNrUXVldWUuZW5xdWV1
ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBtZXNzYWdlID0gV1RGTW92
ZShtZXNzYWdlKSwgbWVzc2FnZVR5cGUsIHNlc3Npb25JZCwgc3VjY2VlZGVkXSAoKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgIGVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIG1lc3NhZ2VUeXBlLCBzZXNzaW9uSWQs
IHN1Y2NlZWRlZF0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgLy8gMTAuMTAuMS4gSWYg
YW55IG9mIHRoZSBwcmVjZWRpbmcgc3RlcHMgZmFpbGVkLCByZWplY3QgcHJvbWlzZSB3aXRoIGEg
bmV3IERPTUV4Y2VwdGlvbiB3aG9zZSBuYW1lIGlzIHRoZSBhcHByb3ByaWF0ZSBlcnJvciBuYW1l
LgogICAgICAgICAgICAgICAgIGlmIChzdWNjZWVkZWQgPT0gQ0RNSW5zdGFuY2VTZXNzaW9uOjpT
dWNjZXNzVmFsdWU6OkZhaWxlZCkgewogICAgICAgICAgICAgICAgICAgICBwcm9taXNlLT5yZWpl
Y3QoTm90U3VwcG9ydGVkRXJyb3IpOwpAQCAtMjc3LDcgKzI3Nyw3IEBAIHZvaWQgTWVkaWFLZXlT
ZXNzaW9uOjpsb2FkKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBSZWY8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pCiAKICAgICAvLyA3LiBMZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgogICAg
IC8vIDguIFJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgotICAgIG1fdGFza1F1
ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBzZXNzaW9uSWQsIHByb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpXSAoKSBtdXRhYmxlIHsKKyAgICBlbnF1ZXVlVGFzayhbdGhpcywgc2Vzc2lvbklkLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIC8vIDguMS4gTGV0
IHNhbml0aXplZCBzZXNzaW9uIElEIGJlIGEgdmFsaWRhdGVkIGFuZC9vciBzYW5pdGl6ZWQgdmVy
c2lvbiBvZiBzZXNzaW9uSWQuCiAgICAgICAgIC8vIDguMi4gSWYgdGhlIHByZWNlZGluZyBzdGVw
IGZhaWxlZCwgb3IgaWYgc2FuaXRpemVkIHNlc3Npb24gSUQgaXMgZW1wdHksIHJlamVjdCBwcm9t
aXNlIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KICAgICAgICAgT3B0aW9uYWw8U3Ry
aW5nPiBzYW5pdGl6ZWRTZXNzaW9uSWQgPSBtX2ltcGxlbWVudGF0aW9uLT5zYW5pdGl6ZVNlc3Np
b25JZChzZXNzaW9uSWQpOwpAQCAtMzI5LDcgKzMyOSw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9u
Ojpsb2FkKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBy
b21pCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIDguOS4gUXVldWUgYSB0YXNrIHRv
IHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICAgICAgbV90YXNrUXVldWUuZW5xdWV1
ZVRhc2soW3RoaXMsIGtub3duS2V5cyA9IFdURk1vdmUoa25vd25LZXlzKSwgZXhwaXJhdGlvbiA9
IFdURk1vdmUoZXhwaXJhdGlvbiksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBzYW5pdGl6
ZWRTZXNzaW9uSWQsIHN1Y2NlZWRlZCwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11
dGFibGUgeworICAgICAgICAgICAgZW5xdWV1ZVRhc2soW3RoaXMsIGtub3duS2V5cyA9IFdURk1v
dmUoa25vd25LZXlzKSwgZXhwaXJhdGlvbiA9IFdURk1vdmUoZXhwaXJhdGlvbiksIG1lc3NhZ2Ug
PSBXVEZNb3ZlKG1lc3NhZ2UpLCBzYW5pdGl6ZWRTZXNzaW9uSWQsIHN1Y2NlZWRlZCwgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIC8vIDgu
OS4xLiBJZiBhbnkgb2YgdGhlIHByZWNlZGluZyBzdGVwcyBmYWlsZWQsIHJlamVjdCBwcm9taXNl
IHdpdGggYSB0aGUgYXBwcm9wcmlhdGUgZXJyb3IgbmFtZS4KICAgICAgICAgICAgICAgICBpZiAo
c3VjY2VlZGVkID09IENETUluc3RhbmNlU2Vzc2lvbjo6U3VjY2Vzc1ZhbHVlOjpGYWlsZWQpIHsK
ICAgICAgICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yKTsK
QEAgLTM4Niw3ICszODYsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6dXBkYXRlKGNvbnN0IEJ1
ZmZlclNvdXJjZSYgcmVzcG9uc2UsIFJlZjxEZWZlcnJlZFByb21pc2U+JgogICAgIC8vIDQuIExl
dCByZXNwb25zZSBjb3B5IGJlIGEgY29weSBvZiB0aGUgY29udGVudHMgb2YgdGhlIHJlc3BvbnNl
IHBhcmFtZXRlci4KICAgICAvLyA1LiBMZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgogICAg
IC8vIDYuIFJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgotICAgIG1fdGFza1F1
ZXVlLmVucXVldWVUYXNrKFt0aGlzLCByZXNwb25zZSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJl
c3BvbnNlLmRhdGEoKSwgcmVzcG9uc2UubGVuZ3RoKCkpLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0gKCkgbXV0YWJsZSB7CisgICAgZW5xdWV1ZVRhc2soW3RoaXMsIHJlc3BvbnNlID0gU2hh
cmVkQnVmZmVyOjpjcmVhdGUocmVzcG9uc2UuZGF0YSgpLCByZXNwb25zZS5sZW5ndGgoKSksIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgLy8gNi4xLiBM
ZXQgc2FuaXRpemVkIHJlc3BvbnNlIGJlIGEgdmFsaWRhdGVkIGFuZC9vciBzYW5pdGl6ZWQgdmVy
c2lvbiBvZiByZXNwb25zZSBjb3B5LgogICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5p
dGl6ZWRSZXNwb25zZSA9IG1faW1wbGVtZW50YXRpb24tPnNhbml0aXplUmVzcG9uc2UocmVzcG9u
c2UpOwogCkBAIC00MzcsNyArNDM3LDcgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246OnVwZGF0ZShj
b25zdCBCdWZmZXJTb3VyY2UmIHJlc3BvbnNlLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYKICAgICAg
ICAgICAgIC8vICAgNi43LjMuMS4gTGV0IG1lc3NhZ2UgYmUgdGhhdCBtZXNzYWdlLgogICAgICAg
ICAgICAgLy8gICA2LjcuMy4yLiBMZXQgbWVzc2FnZSB0eXBlIGJlIHRoZSBhcHByb3ByaWF0ZSBN
ZWRpYUtleU1lc3NhZ2VUeXBlIGZvciB0aGUgbWVzc2FnZS4KICAgICAgICAgICAgIC8vIDYuOC4g
UXVldWUgYSB0YXNrIHRvIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICAgICAgbV90
YXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIHNlc3Npb25XYXNDbG9zZWQsIGNoYW5nZWRLZXlz
ID0gV1RGTW92ZShjaGFuZ2VkS2V5cyksIGNoYW5nZWRFeHBpcmF0aW9uID0gV1RGTW92ZShjaGFu
Z2VkRXhwaXJhdGlvbiksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBlbnF1ZXVlVGFzayhbdGhp
cywgc2Vzc2lvbldhc0Nsb3NlZCwgY2hhbmdlZEtleXMgPSBXVEZNb3ZlKGNoYW5nZWRLZXlzKSwg
Y2hhbmdlZEV4cGlyYXRpb24gPSBXVEZNb3ZlKGNoYW5nZWRFeHBpcmF0aW9uKSwgbWVzc2FnZSA9
IFdURk1vdmUobWVzc2FnZSksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxl
IHsKICAgICAgICAgICAgICAgICBMT0coRU1FLCAiRU1FIC0gdXBkYXRpbmcgQ0RNIGxpY2Vuc2Ug
c3VjY2VlZGVkIGZvciBzZXNzaW9uICVzLCBzZW5kaW5nIGEgbWVzc2FnZSB0byB0aGUgbGljZW5z
ZSBzZXJ2ZXIiLCBtX3Nlc3Npb25JZC51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgICAgICAv
LyA2LjguMS4KICAgICAgICAgICAgICAgICBpZiAoc2Vzc2lvbldhc0Nsb3NlZCkgewpAQCAtNTE0
LDcgKzUxNCw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpjbG9zZShSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmIHByb21pc2UpCiAKICAgICAvLyA0LiBMZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNl
LgogICAgIC8vIDUuIFJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgotICAgIG1f
dGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0g
KCkgbXV0YWJsZSB7CisgICAgZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgLy8gNS4xLiBMZXQgY2RtIGJlIHRoZSBDRE0g
aW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgc2Vzc2lvbidzIGNkbSBpbnN0YW5jZSB2YWx1ZS4KICAg
ICAgICAgLy8gNS4yLiBVc2UgY2RtIHRvIGNsb3NlIHRoZSBrZXkgc2Vzc2lvbiBhc3NvY2lhdGVk
IHdpdGggc2Vzc2lvbi4KICAgICAgICAgTE9HKEVNRSwgIkVNRSAtIGNsb3NpbmcgQ0RNIHNlc3Np
b24gJXMiLCBtX3Nlc3Npb25JZC51dGY4KCkuZGF0YSgpKTsKQEAgLTUyMyw3ICs1MjMsNyBAQCB2
b2lkIE1lZGlhS2V5U2Vzc2lvbjo6Y2xvc2UoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNl
KQogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgLy8gNS4zLiBRdWV1ZSBh
IHRhc2sgdG8gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgICAgICBtX3Rhc2tRdWV1
ZS5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFi
bGUgeworICAgICAgICAgICAgZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICAvLyA1LjMuMS4gUnVuIHRoZSBT
ZXNzaW9uIENsb3NlZCBhbGdvcml0aG0gb24gdGhlIHNlc3Npb24uCiAgICAgICAgICAgICAgICAg
c2Vzc2lvbkNsb3NlZCgpOwogCkBAIC01NTIsNyArNTUyLDcgQEAgdm9pZCBNZWRpYUtleVNlc3Np
b246OnJlbW92ZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAKICAgICAvLyAzLiBM
ZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgogICAgIC8vIDQuIFJ1biB0aGUgZm9sbG93aW5n
IHN0ZXBzIGluIHBhcmFsbGVsOgotICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CisgICAgZW5xdWV1ZVRhc2so
W3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsKICAgICAgICAg
Ly8gNC4xLiBMZXQgY2RtIGJlIHRoZSBDRE0gaW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgdGhpcyBv
YmplY3QncyBjZG0gaW5zdGFuY2UgdmFsdWUuCiAgICAgICAgIC8vIDQuMi4gTGV0IG1lc3NhZ2Ug
YmUgbnVsbC4KICAgICAgICAgLy8gNC4zLiBMZXQgbWVzc2FnZSB0eXBlIGJlIG51bGwuCkBAIC01
NzcsNyArNTc3LDcgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246OnJlbW92ZShSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmIHByb21pc2UpCiAgICAgICAgICAgICAvLyBOT1RFOiBTdGVwIDQuNC4xLiBzaG91
bGQgYmUgaW1wbGVtZW50ZWQgaW4gQ0RNSW5zdGFuY2UuCiAKICAgICAgICAgICAgIC8vIDQuNS4g
UXVldWUgYSB0YXNrIHRvIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICAgICAgbV90
YXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIGtleXMgPSBXVEZNb3ZlKGtleXMpLCBtZXNzYWdl
ID0gV1RGTW92ZShtZXNzYWdlKSwgc3VjY2VlZGVkLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBlbnF1ZXVlVGFzayhbdGhpcywga2V5cyA9IFdU
Rk1vdmUoa2V5cyksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBzdWNjZWVkZWQsIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICAvLyA0
LjUuMS4gUnVuIHRoZSBVcGRhdGUgS2V5IFN0YXR1c2VzIGFsZ29yaXRobSBvbiB0aGUgc2Vzc2lv
biwgcHJvdmlkaW5nIGFsbCBrZXkgSUQocykgaW4gdGhlIHNlc3Npb24gYWxvbmcgd2l0aCB0aGUg
InJlbGVhc2VkIiBNZWRpYUtleVN0YXR1cyB2YWx1ZSBmb3IgZWFjaC4KICAgICAgICAgICAgICAg
ICB1cGRhdGVLZXlTdGF0dXNlcyhXVEZNb3ZlKGtleXMpKTsKIApAQCAtNjE2LDcgKzYxNiw3IEBA
IHZvaWQgTWVkaWFLZXlTZXNzaW9uOjplbnF1ZXVlTWVzc2FnZShNZWRpYUtleU1lc3NhZ2VUeXBl
IG1lc3NhZ2VUeXBlLCBjb25zdCBTaGFyCiAgICAgLy8gICAgaW50ZXJmYWNlIHdpdGggaXRzIHR5
cGUgYXR0cmlidXRlIHNldCB0byBtZXNzYWdlIGFuZCBpdHMgaXNUcnVzdGVkIGF0dHJpYnV0ZSBp
bml0aWFsaXplZCB0byB0cnVlLCBhbmQgZGlzcGF0Y2ggaXQgYXQgdGhlCiAgICAgLy8gICAgc2Vz
c2lvbi4KICAgICBhdXRvIG1lc3NhZ2VFdmVudCA9IE1lZGlhS2V5TWVzc2FnZUV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLm1lc3NhZ2VFdmVudCwge21lc3NhZ2VUeXBlLCBtZXNzYWdlLnRyeUNy
ZWF0ZUFycmF5QnVmZmVyKCl9LCBFdmVudDo6SXNUcnVzdGVkOjpZZXMpOwotICAgIG1fZXZlbnRR
dWV1ZS0+ZW5xdWV1ZUV2ZW50KFdURk1vdmUobWVzc2FnZUV2ZW50KSk7CisgICAgZW5xdWV1ZUV2
ZW50KFdURk1vdmUobWVzc2FnZUV2ZW50KSk7CiB9CiAKIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjp1
cGRhdGVLZXlTdGF0dXNlcyhDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1c1ZlY3RvciYmIGlu
cHV0U3RhdHVzZXMpCkBAIC02NjEsMTAgKzY2MSwxMCBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6
dXBkYXRlS2V5U3RhdHVzZXMoQ0RNSW5zdGFuY2VTZXNzaW9uOjpLZXlTdGF0dXNWZWN0b3ImJiBp
bgogICAgICAgICBtX3N0YXR1c2VzLnVuY2hlY2tlZEFwcGVuZCh7IFdURk1vdmUoc3RhdHVzLmZp
cnN0KSwgdG9NZWRpYUtleVN0YXR1cyhzdGF0dXMuc2Vjb25kKSB9KTsKIAogICAgIC8vIDUuIFF1
ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGtleXN0YXR1c2VzY2hhbmdl
IGF0IHRoZSBzZXNzaW9uLgotICAgIG1fZXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLmtleXN0YXR1c2VzY2hhbmdlRXZlbnQsIEV2ZW50OjpDYW5CdWJi
bGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworICAgIGVucXVldWVFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5rZXlzdGF0dXNlc2NoYW5nZUV2ZW50LCBFdmVudDo6Q2Fu
QnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKIAogICAgIC8vIDYuIFF1ZXVl
IGEgdGFzayB0byBydW4gdGhlIEF0dGVtcHQgdG8gUmVzdW1lIFBsYXliYWNrIElmIE5lY2Vzc2Fy
eSBhbGdvcml0aG0gb24gZWFjaCBvZiB0aGUgbWVkaWEgZWxlbWVudChzKSB3aG9zZSBtZWRpYUtl
eXMgYXR0cmlidXRlIGlzIHRoZSBNZWRpYUtleXMgb2JqZWN0IHRoYXQgY3JlYXRlZCB0aGUgc2Vz
c2lvbi4KLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzaygKKyAgICBlbnF1ZXVlVGFzaygKICAg
ICAgICAgW3RoaXNdICgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKG1fa2V5cykKICAgICAg
ICAgICAgICAgICBtX2tleXMtPmF0dGVtcHRUb1Jlc3VtZVBsYXliYWNrT25DbGllbnRzKCk7CkBA
IC03MzMsMjYgKzczMywzNSBAQCBTdHJpbmcgTWVkaWFLZXlTZXNzaW9uOjptZWRpYUtleXNTdG9y
YWdlRGlyZWN0b3J5KCkgY29uc3QKIAogYm9vbCBNZWRpYUtleVNlc3Npb246Omhhc1BlbmRpbmdB
Y3Rpdml0eSgpIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFs
c2U7CisgICAgLy8gQSBNZWRpYUtleVNlc3Npb24gb2JqZWN0IFNIQUxMIE5PVCBiZSBkZXN0cm95
ZWQgYW5kIFNIQUxMIGNvbnRpbnVlIHRvIHJlY2VpdmUgZXZlbnRzIGlmIGl0IGlzIG5vdCBjbG9z
ZWQgYW5kIHRoZSBNZWRpYUtleXMgb2JqZWN0IHRoYXQgY3JlYXRlZCBpdCByZW1haW5zIGFjY2Vz
c2libGUuCisgICAgcmV0dXJuICghbV9jbG9zZWQgJiYgbV9rZXlzKSB8fCBBY3RpdmVET01PYmpl
Y3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpOwogfQogCiBjb25zdCBjaGFyKiBNZWRpYUtleVNlc3Np
b246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogewotICAgIG5vdEltcGxlbWVudGVkKCk7
CiAgICAgcmV0dXJuICJNZWRpYUtleVNlc3Npb24iOwogfQogCi0vLyBGSVhNRTogVGhpcyBzaG91
bGQgbmV2ZXIgcHJldmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgotYm9vbCBN
ZWRpYUtleVNlc3Npb246OnNob3VsZFByZXZlbnRFbnRlcmluZ0JhY2tGb3J3YXJkQ2FjaGVfREVQ
UkVDQVRFRCgpIGNvbnN0Cit2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6ZW5xdWV1ZVRhc2soRnVuY3Rp
b248dm9pZCgpPiYmIHRhc2spCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
dHJ1ZTsKKyAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAg
IGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29udGV4dC0+ZXZlbnRMb29w
KCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsICpjb250ZXh0LCBbcGVuZGluZ0Fj
dGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyksIHRhc2sgPSBXVEZNb3ZlKHRhc2sp
XSB7CisgICAgICAgIHRhc2soKTsKKyAgICB9KTsKIH0KIAotdm9pZCBNZWRpYUtleVNlc3Npb246
OnN0b3AoKQordm9pZCBNZWRpYUtleVNlc3Npb246OmVucXVldWVFdmVudChSZWY8RXZlbnQ+JiYg
ZXZlbnQpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBhdXRvKiBjb250ZXh0ID0gc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgY29udGV4dC0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdv
cmtpbmcsICpjb250ZXh0LCBbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rp
dml0eSgqdGhpcyksIGV2ZW50ID0gV1RGTW92ZShldmVudCldKCkgbXV0YWJsZSB7CisgICAgICAg
IGRpc3BhdGNoRXZlbnQoV1RGTW92ZShldmVudCkpOworICAgIH0pOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaAppbmRleCBhZWI1YzIyZWU4NGNkMDYzZDE5ZTU2NGFk
OTY1NjdkYTFmNzRlYzU3Li5lNDIyOWY4MTk3OWM2OGM0NTZlZDA3OTcyZDgyM2M1MzVkYjYwMTI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlh
S2V5U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTZXNzaW9uLmgKQEAgLTMzLDEzICszMywxMiBAQAogI2luY2x1ZGUgIkFjdGl2ZURP
TU9iamVjdC5oIgogI2luY2x1ZGUgIkNETUluc3RhbmNlU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkV2
ZW50VGFyZ2V0LmgiCi0jaW5jbHVkZSAiR2VuZXJpY0V2ZW50UXVldWUuaCIKLSNpbmNsdWRlICJH
ZW5lcmljVGFza1F1ZXVlLmgiCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRlICJNZWRp
YUtleU1lc3NhZ2VUeXBlLmgiCiAjaW5jbHVkZSAiTWVkaWFLZXlTZXNzaW9uVHlwZS5oIgogI2lu
Y2x1ZGUgIk1lZGlhS2V5U3RhdHVzLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC05
MSw2ICs5MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXNzaW9uQ2xvc2VkKCk7CiAgICAgU3Ry
aW5nIG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdDsKIAorICAgIHZvaWQgZW5xdWV1
ZVRhc2soRnVuY3Rpb248dm9pZCgpPiYmKTsKKyAgICB2b2lkIGVucXVldWVFdmVudChSZWY8RXZl
bnQ+JiYpOworCiAgICAgLy8gQ0RNSW5zdGFuY2VTZXNzaW9uQ2xpZW50CiAgICAgdm9pZCB1cGRh
dGVLZXlTdGF0dXNlcyhDRE1JbnN0YW5jZVNlc3Npb25DbGllbnQ6OktleVN0YXR1c1ZlY3RvciYm
KSBvdmVycmlkZTsKICAgICB2b2lkIHNlbmRNZXNzYWdlKENETU1lc3NhZ2VUeXBlLCBSZWY8U2hh
cmVkQnVmZmVyPiYmIG1lc3NhZ2UpIGZpbmFsOwpAQCAtMTA0LDggKzEwNiw2IEBAIHByaXZhdGU6
CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzaG91bGRQcmV2ZW50RW50ZXJpbmdC
YWNrRm9yd2FyZENhY2hlX0RFUFJFQ0FURUQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHN0
b3AoKSBvdmVycmlkZTsKIAogICAgIFdlYWtQdHI8TWVkaWFLZXlzPiBtX2tleXM7CiAgICAgU3Ry
aW5nIG1fc2Vzc2lvbklkOwpAQCAtMTE5LDggKzExOSw2IEBAIHByaXZhdGU6CiAgICAgTWVkaWFL
ZXlTZXNzaW9uVHlwZSBtX3Nlc3Npb25UeXBlOwogICAgIFJlZjxDRE0+IG1faW1wbGVtZW50YXRp
b247CiAgICAgUmVmPENETUluc3RhbmNlU2Vzc2lvbj4gbV9pbnN0YW5jZVNlc3Npb247Ci0gICAg
VW5pcXVlUmVmPE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZT4gbV9ldmVudFF1ZXVlOwotICAg
IEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fdGFza1F1ZXVlOwogICAgIFZlY3RvcjxSZWY8U2hh
cmVkQnVmZmVyPj4gbV9yZWNvcmRPZktleVVzYWdlOwogICAgIGRvdWJsZSBtX2ZpcnN0RGVjcnlw
dFRpbWUgeyAwIH07CiAgICAgZG91YmxlIG1fbGF0ZXN0RGVjcnlwdFRpbWUgeyAwIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9XZWJL
aXRNZWRpYUtleVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFLZXlTZXNzaW9uLmNwcAppbmRleCA4ZGRlZjI1N2RmZTBm
NDdhNjU0Mjc4Yjk0ZDRhYzg4ZDkzM2JiNTlmLi40NzkzMWUxZjk2ZTliMjMwOTExY2Y3N2I0MzJl
MDNiMWE0ZGEyMTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL2xlZ2FjeS9XZWJLaXRNZWRpYUtleVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L1dlYktpdE1lZGlhS2V5U2Vzc2lvbi5j
cHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElB
KQogCisjaW5jbHVkZSAiQWJzdHJhY3RFdmVudExvb3AuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC01NCw3ICs1
NSw2IEBAIFdlYktpdE1lZGlhS2V5U2Vzc2lvbjo6V2ViS2l0TWVkaWFLZXlTZXNzaW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdlCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNv
bnRleHQpCiAgICAgLCBtX2tleXMoJmtleXMpCiAgICAgLCBtX2tleVN5c3RlbShrZXlTeXN0ZW0p
Ci0gICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmNy
ZWF0ZSgqdGhpcykpCiAgICAgLCBtX3Nlc3Npb24oa2V5cy5jZG0oKS5jcmVhdGVTZXNzaW9uKCp0
aGlzKSkKICAgICAsIG1fa2V5UmVxdWVzdFRpbWVyKCp0aGlzLCAmV2ViS2l0TWVkaWFLZXlTZXNz
aW9uOjprZXlSZXF1ZXN0VGltZXJGaXJlZCkKICAgICAsIG1fYWRkS2V5VGltZXIoKnRoaXMsICZX
ZWJLaXRNZWRpYUtleVNlc3Npb246OmFkZEtleVRpbWVyRmlyZWQpCkBAIC02Nyw4ICs2Nyw2IEBA
IFdlYktpdE1lZGlhS2V5U2Vzc2lvbjo6fldlYktpdE1lZGlhS2V5U2Vzc2lvbigpCiB7CiAgICAg
aWYgKG1fc2Vzc2lvbikKICAgICAgICAgbV9zZXNzaW9uLT5zZXRDbGllbnQobnVsbHB0cik7Ci0K
LSAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+Y2FuY2VsQWxsRXZlbnRzKCk7CiB9CiAKIHZvaWQgV2Vi
S2l0TWVkaWFLZXlTZXNzaW9uOjpjbG9zZSgpCkBAIC0xODMsNyArMTgxLDcgQEAgdm9pZCBXZWJL
aXRNZWRpYUtleVNlc3Npb246OmFkZEtleVRpbWVyRmlyZWQoKQogICAgICAgICBpZiAoZGlkU3Rv
cmVLZXkpIHsKICAgICAgICAgICAgIGF1dG8ga2V5YWRkZWRFdmVudCA9IEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLndlYmtpdGtleWFkZGVkRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBF
dmVudDo6SXNDYW5jZWxhYmxlOjpObyk7CiAgICAgICAgICAgICBrZXlhZGRlZEV2ZW50LT5zZXRU
YXJnZXQodGhpcyk7Ci0gICAgICAgICAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50
KFdURk1vdmUoa2V5YWRkZWRFdmVudCkpOworICAgICAgICAgICAgZW5xdWV1ZUV2ZW50KFdURk1v
dmUoa2V5YWRkZWRFdmVudCkpOwogCiAgICAgICAgICAgICBBU1NFUlQobV9rZXlzKTsKICAgICAg
ICAgICAgIG1fa2V5cy0+a2V5QWRkZWQoKTsKQEAgLTIwNyw3ICsyMDUsNyBAQCB2b2lkIFdlYktp
dE1lZGlhS2V5U2Vzc2lvbjo6c2VuZE1lc3NhZ2UoVWludDhBcnJheSogbWVzc2FnZSwgU3RyaW5n
IGRlc3RpbmF0aW9uVQogewogICAgIGF1dG8gZXZlbnQgPSBXZWJLaXRNZWRpYUtleU1lc3NhZ2VF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJraXRrZXltZXNzYWdlRXZlbnQsIG1lc3NhZ2Us
IGRlc3RpbmF0aW9uVVJMKTsKICAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOwotICAgIG1fYXN5
bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVudCkpOworICAgIGVucXVldWVF
dmVudChXVEZNb3ZlKGV2ZW50KSk7CiB9CiAKIHZvaWQgV2ViS2l0TWVkaWFLZXlTZXNzaW9uOjpz
ZW5kRXJyb3IoTWVkaWFLZXlFcnJvckNvZGUgZXJyb3JDb2RlLCB1aW50MzJfdCBzeXN0ZW1Db2Rl
KQpAQCAtMjE2LDcgKzIxNCw3IEBAIHZvaWQgV2ViS2l0TWVkaWFLZXlTZXNzaW9uOjpzZW5kRXJy
b3IoTWVkaWFLZXlFcnJvckNvZGUgZXJyb3JDb2RlLCB1aW50MzJfdCBzeXN0CiAKICAgICBhdXRv
IGtleWVycm9yRXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJraXRrZXllcnJv
ckV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pOwog
ICAgIGtleWVycm9yRXZlbnQtPnNldFRhcmdldCh0aGlzKTsKLSAgICBtX2FzeW5jRXZlbnRRdWV1
ZS0+ZW5xdWV1ZUV2ZW50KFdURk1vdmUoa2V5ZXJyb3JFdmVudCkpOworICAgIGVucXVldWVFdmVu
dChXVEZNb3ZlKGtleWVycm9yRXZlbnQpKTsKIH0KIAogU3RyaW5nIFdlYktpdE1lZGlhS2V5U2Vz
c2lvbjo6bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0CkBAIC0yMzgsNyArMjM2LDcg
QEAgU3RyaW5nIFdlYktpdE1lZGlhS2V5U2Vzc2lvbjo6bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9y
eSgpIGNvbnN0CiAKIGJvb2wgV2ViS2l0TWVkaWFLZXlTZXNzaW9uOjpoYXNQZW5kaW5nQWN0aXZp
dHkoKSBjb25zdAogewotICAgIHJldHVybiAobV9rZXlzICYmIG1fc2Vzc2lvbikgfHwgbV9hc3lu
Y0V2ZW50UXVldWUtPmhhc1BlbmRpbmdFdmVudHMoKTsKKyAgICByZXR1cm4gKG1fa2V5cyAmJiBt
X3Nlc3Npb24pIHx8IEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCk7CiB9CiAK
IHZvaWQgV2ViS2l0TWVkaWFLZXlTZXNzaW9uOjpzdG9wKCkKQEAgLTI1MSwxMCArMjQ5LDE1IEBA
IGNvbnN0IGNoYXIqIFdlYktpdE1lZGlhS2V5U2Vzc2lvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgp
IGNvbnN0CiAgICAgcmV0dXJuICJXZWJLaXRNZWRpYUtleVNlc3Npb24iOwogfQogCi1ib29sIFdl
YktpdE1lZGlhS2V5U2Vzc2lvbjo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNo
ZV9ERVBSRUNBVEVEKCkgY29uc3QKK3ZvaWQgV2ViS2l0TWVkaWFLZXlTZXNzaW9uOjplbnF1ZXVl
RXZlbnQoUmVmPEV2ZW50PiYmIGV2ZW50KQogewotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBu
ZXZlciBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCi0gICAgcmV0dXJu
IHRydWU7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAg
ICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnRleHQtPmV2ZW50TG9v
cCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCAqY29udGV4dCwgW3RoaXMsIHBl
bmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBldmVudCA9IFdURk1v
dmUoZXZlbnQpXSgpIG11dGFibGUgeworICAgICAgICBkaXNwYXRjaEV2ZW50KFdURk1vdmUoZXZl
bnQpKTsKKyAgICB9KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFLZXlTZXNzaW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9XZWJLaXRNZWRpYUtleVNlc3Np
b24uaAppbmRleCBjZmRlYjI0ODY1ZWVlZGIzYzYwNjkwNjQ0MDI2OTM0OTlkMjM2MDIzLi4zZDRl
NjI3MjY5NTcxMDhiODk3MWQwYWQyMDAxYWJkODNiN2MxZDE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9XZWJLaXRNZWRpYUtleVNlc3Np
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9X
ZWJLaXRNZWRpYUtleVNlc3Npb24uaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uT3IuaCIKLSNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkxlZ2Fj
eUNETVNlc3Npb24uaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1VpbnQ4QXJyYXkuaD4KQEAgLTQxLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgV2ViS2l0TWVkaWFLZXlFcnJvcjsKIGNsYXNzIFdlYktpdE1lZGlhS2V5czsKIAotY2xh
c3MgV2ViS2l0TWVkaWFLZXlTZXNzaW9uIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0
TWVkaWFLZXlTZXNzaW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHByaXZh
dGUgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIExlZ2FjeUNETVNlc3Npb25DbGllbnQgeworY2xh
c3MgV2ViS2l0TWVkaWFLZXlTZXNzaW9uIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0
TWVkaWFLZXlTZXNzaW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1Ymxp
YyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUgTGVnYWN5Q0RNU2Vzc2lvbkNsaWVudCB7CiAgICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJLaXRNZWRpYUtleVNlc3Npb24pOwogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8V2ViS2l0TWVkaWFLZXlTZXNzaW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIFdlYktpdE1lZGlhS2V5cyYsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsK
QEAgLTc0LDExICs3MywxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgc2VuZEVycm9yKE1lZGlhS2V5
RXJyb3JDb2RlLCB1aW50MzJfdCBzeXN0ZW1Db2RlKSBmaW5hbDsKICAgICBTdHJpbmcgbWVkaWFL
ZXlzU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IGZpbmFsOwogCisgICAgdm9pZCBlbnF1ZXVlRXZl
bnQoUmVmPEV2ZW50PiYmKTsKKwogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJl
ZigpOyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CiAK
ICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKLSAgICBib29sIHNob3VsZFByZXZlbnRFbnRlcmluZ0Jh
Y2tGb3J3YXJkQ2FjaGVfREVQUkVDQVRFRCgpIGNvbnN0IGZpbmFsOwogICAgIGNvbnN0IGNoYXIq
IGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKIAogICAgIEV2ZW50VGFyZ2V0SW50
ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gV2ViS2l0
TWVkaWFLZXlTZXNzaW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CkBAIC04OCw3ICs4OCw2
IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fa2V5U3lzdGVtOwogICAgIFN0cmluZyBtX3Nlc3Np
b25JZDsKICAgICBSZWZQdHI8V2ViS2l0TWVkaWFLZXlFcnJvcj4gbV9lcnJvcjsKLSAgICBVbmlx
dWVSZWY8TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8TGVnYWN5Q0RNU2Vzc2lvbj4gbV9zZXNzaW9uOwogCiAgICAgc3Ry
dWN0IFBlbmRpbmdLZXlSZXF1ZXN0IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNzgzMzY2OTFjYWJiYWFiYzNiMmY4Mjk3
OWRlMjA1NjY0NzM2Y2M4Li5lNmI5YmE4NDg0OWVkNmRlNDI5OWI5NjRlNjA5N2NmOTA3NmEwMGI3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMTAtMzEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYUtleVNlc3Npb24gLyBXZWJLaXRNZWRpYUtleVNl
c3Npb24gc2hvdWxkIG5vdCBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzA4OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlv
dXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLW1lZGlha2V5c2Vzc2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLW1lZGlha2V5c2Vzc2lvbi5odG1sOiBBZGRl
ZC4KKwogMjAxOS0xMC0zMCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtQaWN0dXJlLWluLVBpY3R1cmUgV2ViIEFQSV0gRW5hYmxlIHRoZSBzdXBwb3J0IGZvciBp
T1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNh
Y2hlLW1lZGlha2V5c2Vzc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vcGFnZS1jYWNoZS1tZWRpYWtleXNlc3Npb24tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU0OGI2OTM2NDE0ZjMzYzIyZjBjOWNiMjEwZDA2YzI0ZWY1NDRlMWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1t
ZWRpYWtleXNlc3Npb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIHRoYXQg
YSBwYWdlIHdpdGggYSBNZWRpYUtleVNlc3Npb24gZ29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQg
Y2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTICEhc2Vzc2lvbiBp
cyB0cnVlCitwYWdlc2hvdyAtIG5vdCBmcm9tIGNhY2hlCitwYWdlaGlkZSAtIGVudGVyaW5nIGNh
Y2hlCitwYWdlc2hvdyAtIGZyb20gY2FjaGUKK1BBU1MgUGFnZSB3YXMgcmVzdG9yZWQgZnJvbSBi
YWNrL2ZvcndhcmQgY2FjaGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vcGFnZS1jYWNoZS1tZWRpYWtleXNlc3Npb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLW1lZGlha2V5c2Vzc2lvbi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFjNzdlZDk2MTI4NWU1MjM0YzI2NDljYTJkNTAxNWI0YjU2ZDQwYzIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1tZWRpYWtl
eXNlc3Npb24uaHRtbApAQCAtMCwwICsxLDM5IEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyB0
aGF0IGEgcGFnZSB3aXRoIGEgTWVkaWFLZXlTZXNzaW9uIGdvZXMgaW50byB0aGUgYmFjay9mb3J3
YXJkIGNhY2hlLicpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3dpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJwYWdlc2hvdyIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWcoInBhZ2VzaG93
IC0gIiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAiZnJvbSBjYWNoZSIpOwor
ICAgIGlmIChldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSB3YXMg
cmVzdG9yZWQgZnJvbSBiYWNrL2ZvcndhcmQgY2FjaGUiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgfQorfSk7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsIGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWcoInBhZ2VoaWRlIC0gIiArIChldmVudC5wZXJzaXN0
ZWQgPyAiIiA6ICJub3QgIikgKyAiZW50ZXJpbmcgY2FjaGUiKTsKKyAgICBpZiAoIWV2ZW50LnBl
cnNpc3RlZCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIGZhaWxlZCB0byBlbnRlciB0aGUg
YmFjay9mb3J3YXJkIGNhY2hlIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KK30p
OworCitvbmxvYWQgPSAoKSA9PiB7CisgICAgbWVkaWFLZXlzID0gbmV3IFdlYktpdE1lZGlhS2V5
cygnb3JnLnczYy5jbGVhcmtleScpOworICAgIHNlc3Npb24gPSBtZWRpYUtleXMuY3JlYXRlU2Vz
c2lvbignYXBwbGljYXRpb24veC1tcGVndXJsJywgbmV3IFVpbnQ4QXJyYXkoMSkpOworICAgIHNo
b3VsZEJlVHJ1ZSgiISFzZXNzaW9uIik7CisgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAg
IHRlc3RMaW5rLmNsaWNrKCk7CisgICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4KKzxhIGlkPSJ0ZXN0
TGluayIgaHJlZj0icmVzb3VyY2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwiIHN0eWxlPSJkaXNw
bGF5OiBub25lIj5MaW5rPC9hPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382787</attachid>
            <date>2019-11-04 16:31:13 -0800</date>
            <delta_ts>2019-11-04 18:41:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203089-20191104163112.patch</filename>
            <type>text/plain</type>
            <size>26954</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMDA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU0NTRjZDliNjdmNzFm
NThmMjYwZjM2YmJjNjUwZjMyMzc0YmQ4Zi4uMzZjOGU4YWI5YTgyMWE2NmZiYzg5ODhmZGQzYjRh
NjJhMDNmYjQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTExLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFLZXlTZXNzaW9uIC8g
V2ViS2l0TWVkaWFLZXlTZXNzaW9uIHNob3VsZCBub3QgcHJldmVudCBlbnRlcmluZyB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDMwODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBQb3J0IE1lZGlhS2V5U2Vzc2lvbiAvIFdlYktpdE1lZGlhS2V5U2Vzc2lvbiB0byB0
aGUgSFRNTDUgZXZlbnQgbG9vcCBpbnN0ZWFkIG9mIHVzaW5nIGl0cworICAgICAgICBvd24gR2Vu
ZXJpY0V2ZW50UXVldWUgLyBHZW5lcmljVGFza1F1ZXVlLiBCZWNhdXNlIHRoZSBIVE1MNSBldmVu
dCBsb29wIHBsYXlzIG5pY2VseSB3aXRoCisgICAgICAgIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUs
IHdlIGNhbiBub3cgbGV0IHBhZ2VzIHVzaW5nIE1lZGlhS2V5U2Vzc2lvbiAvIFdlYktpdE1lZGlh
S2V5U2Vzc2lvbgorICAgICAgICBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisKKyAgICAg
ICAgVGVzdDogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtbWVkaWFrZXlzZXNzaW9u
Lmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6TWVkaWFLZXlTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6Z2VuZXJhdGVSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6bG9hZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVNlc3Npb246OnVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtl
eVNlc3Npb246OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6cmVt
b3ZlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6ZW5xdWV1ZU1lc3NhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjp1cGRhdGVLZXlTdGF0dXNlcyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246Omhhc1BlbmRpbmdBY3Rpdml0eSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OmFjdGl2ZURPTU9iamVj
dE5hbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjplbnF1ZXVl
VGFzayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OmVucXVldWVFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OnNob3VsZFByZXZlbnRFbnRlcmlu
Z0JhY2tGb3J3YXJkQ2FjaGVfREVQUkVDQVRFRCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OnN0b3ApOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmg6CisgICAgICAgICogTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFLZXlTZXNzaW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYktpdE1lZGlhS2V5U2Vzc2lvbjo6V2ViS2l0TWVkaWFLZXlTZXNzaW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1lZGlhS2V5U2Vzc2lvbjo6fldlYktpdE1lZGlhS2V5
U2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNZWRpYUtleVNlc3Npb246OmFkZEtl
eVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TWVkaWFLZXlTZXNzaW9uOjpz
ZW5kTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNZWRpYUtleVNlc3Npb246OnNl
bmRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNZWRpYUtleVNlc3Npb246Omhhc1Bl
bmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNZWRpYUtleVNl
c3Npb246OmVucXVldWVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNZWRpYUtleVNl
c3Npb246OnNob3VsZFByZXZlbnRFbnRlcmluZ0JhY2tGb3J3YXJkQ2FjaGVfREVQUkVDQVRFRCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kv
V2ViS2l0TWVkaWFLZXlTZXNzaW9uLmg6CisKIDIwMTktMTEtMDQgIFRydWl0dCBTYXZlbGwgIDx0
c2F2ZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjUx
OTkzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9N
ZWRpYUtleVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9NZWRpYUtleVNlc3Npb24uY3BwCmluZGV4IDg4YzhhZWE0NGNiOWNmNzlkNzM5ZTUxZTUzMjNk
MTEzNTZjYTNmYWYuLjFkODFiMzU5ODM2NDAwNTQ2YTg0M2Q3MDc4MjQ3OWY0OWMyNTQ3ZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
ZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U2Vzc2lvbi5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2lmIEVOQUJMRShFTkNSWVBU
RURfTUVESUEpCiAKKyNpbmNsdWRlICJBYnN0cmFjdEV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkNE
TS5oIgogI2luY2x1ZGUgIkNETUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiRE9NUHJvbWlzZVByb3h5
LmgiCkBAIC03MCw3ICs3MSw2IEBAIE1lZGlhS2V5U2Vzc2lvbjo6TWVkaWFLZXlTZXNzaW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdlYWtQdHI8TWVkaWFLCiAgICAgLCBtX3Nl
c3Npb25UeXBlKHNlc3Npb25UeXBlKQogICAgICwgbV9pbXBsZW1lbnRhdGlvbihXVEZNb3ZlKGlt
cGxlbWVudGF0aW9uKSkKICAgICAsIG1faW5zdGFuY2VTZXNzaW9uKFdURk1vdmUoaW5zdGFuY2VT
ZXNzaW9uKSkKLSAgICAsIG1fZXZlbnRRdWV1ZShNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6
OmNyZWF0ZSgqdGhpcykpCiB7CiAgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2VuY3J5cHRl
ZC1tZWRpYS8jZG9tLW1lZGlha2V5cy1jcmVhdGVzZXNzaW9uCiAgICAgLy8gVzNDIEVkaXRvcidz
IERyYWZ0IDA5IE5vdmVtYmVyIDIwMTYKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIE1lZGlhS2V5
U2Vzc2lvbjo6Z2VuZXJhdGVSZXF1ZXN0KGNvbnN0IEF0b21TdHJpbmcmIGluaXREYXRhVHlwZSwg
Y29uc3QgQnVmZgogICAgIC8vIDguIExldCBzZXNzaW9uIHR5cGUgYmUgdGhpcyBvYmplY3QncyBz
ZXNzaW9uIHR5cGUuCiAgICAgLy8gOS4gTGV0IHByb21pc2UgYmUgYSBuZXcgcHJvbWlzZS4KICAg
ICAvLyAxMC4gUnVuIHRoZSBmb2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6Ci0gICAgbV90YXNr
UXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIGluaXREYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUo
aW5pdERhdGEuZGF0YSgpLCBpbml0RGF0YS5sZW5ndGgoKSksIGluaXREYXRhVHlwZSwgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgIHF1ZXVlVGFza0tlZXBpbmdP
YmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIGluaXREYXRh
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoaW5pdERhdGEuZGF0YSgpLCBpbml0RGF0YS5sZW5ndGgo
KSksIGluaXREYXRhVHlwZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUg
ewogICAgICAgICAvLyAxMC4xLiBJZiB0aGUgaW5pdCBkYXRhIGlzIG5vdCB2YWxpZCBmb3IgaW5p
dERhdGFUeXBlLCByZWplY3QgcHJvbWlzZSB3aXRoIGEgbmV3bHkgY3JlYXRlZCBUeXBlRXJyb3Iu
CiAgICAgICAgIC8vIDEwLjIuIExldCBzYW5pdGl6ZWQgaW5pdCBkYXRhIGJlIGEgdmFsaWRhdGVk
IGFuZCBzYW5pdGl6ZWQgdmVyc2lvbiBvZiBpbml0IGRhdGEuCiAgICAgICAgIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IHNhbml0aXplZEluaXREYXRhID0gbV9pbXBsZW1lbnRhdGlvbi0+c2FuaXRpemVJ
bml0RGF0YShpbml0RGF0YVR5cGUsIGluaXREYXRhKTsKQEAgLTIyNiw3ICsyMjYsNyBAQCB2b2lk
IE1lZGlhS2V5U2Vzc2lvbjo6Z2VuZXJhdGVSZXF1ZXN0KGNvbnN0IEF0b21TdHJpbmcmIGluaXRE
YXRhVHlwZSwgY29uc3QgQnVmZgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyAxMC4x
MC4gUXVldWUgYSB0YXNrIHRvIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICAgICAg
bV90YXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
LCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKSwgbWVzc2FnZVR5cGUsIHNlc3Npb25JZCwgc3Vj
Y2VlZGVkXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RB
bGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKSwgbWVzc2FnZVR5cGUsIHNl
c3Npb25JZCwgc3VjY2VlZGVkXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICAvLyAxMC4x
MC4xLiBJZiBhbnkgb2YgdGhlIHByZWNlZGluZyBzdGVwcyBmYWlsZWQsIHJlamVjdCBwcm9taXNl
IHdpdGggYSBuZXcgRE9NRXhjZXB0aW9uIHdob3NlIG5hbWUgaXMgdGhlIGFwcHJvcHJpYXRlIGVy
cm9yIG5hbWUuCiAgICAgICAgICAgICAgICAgaWYgKHN1Y2NlZWRlZCA9PSBDRE1JbnN0YW5jZVNl
c3Npb246OlN1Y2Nlc3NWYWx1ZTo6RmFpbGVkKSB7CiAgICAgICAgICAgICAgICAgICAgIHByb21p
c2UtPnJlamVjdChOb3RTdXBwb3J0ZWRFcnJvcik7CkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBN
ZWRpYUtleVNlc3Npb246OmxvYWQoY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYgcHJvbWkKIAogICAgIC8vIDcuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21p
c2UuCiAgICAgLy8gOC4gUnVuIHRoZSBmb2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6Ci0gICAg
bV90YXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIHNlc3Npb25JZCwgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2
ZSgqdGhpcywgVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHNlc3Npb25JZCwgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgewogICAgICAgICAvLyA4LjEuIExldCBz
YW5pdGl6ZWQgc2Vzc2lvbiBJRCBiZSBhIHZhbGlkYXRlZCBhbmQvb3Igc2FuaXRpemVkIHZlcnNp
b24gb2Ygc2Vzc2lvbklkLgogICAgICAgICAvLyA4LjIuIElmIHRoZSBwcmVjZWRpbmcgc3RlcCBm
YWlsZWQsIG9yIGlmIHNhbml0aXplZCBzZXNzaW9uIElEIGlzIGVtcHR5LCByZWplY3QgcHJvbWlz
ZSB3aXRoIGEgbmV3bHkgY3JlYXRlZCBUeXBlRXJyb3IuCiAgICAgICAgIE9wdGlvbmFsPFN0cmlu
Zz4gc2FuaXRpemVkU2Vzc2lvbklkID0gbV9pbXBsZW1lbnRhdGlvbi0+c2FuaXRpemVTZXNzaW9u
SWQoc2Vzc2lvbklkKTsKQEAgLTMyOSw3ICszMjksNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6
bG9hZChjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9t
aQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyA4LjkuIFF1ZXVlIGEgdGFzayB0byBy
dW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAgICAgICAgIG1fdGFza1F1ZXVlLmVucXVldWVU
YXNrKFt0aGlzLCBrbm93bktleXMgPSBXVEZNb3ZlKGtub3duS2V5cyksIGV4cGlyYXRpb24gPSBX
VEZNb3ZlKGV4cGlyYXRpb24pLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKSwgc2FuaXRpemVk
U2Vzc2lvbklkLCBzdWNjZWVkZWQsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFz
a1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIGtub3duS2V5cyA9IFdURk1vdmUoa25vd25LZXlz
KSwgZXhwaXJhdGlvbiA9IFdURk1vdmUoZXhwaXJhdGlvbiksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1l
c3NhZ2UpLCBzYW5pdGl6ZWRTZXNzaW9uSWQsIHN1Y2NlZWRlZCwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldICgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIC8vIDguOS4xLiBJZiBhbnkg
b2YgdGhlIHByZWNlZGluZyBzdGVwcyBmYWlsZWQsIHJlamVjdCBwcm9taXNlIHdpdGggYSB0aGUg
YXBwcm9wcmlhdGUgZXJyb3IgbmFtZS4KICAgICAgICAgICAgICAgICBpZiAoc3VjY2VlZGVkID09
IENETUluc3RhbmNlU2Vzc2lvbjo6U3VjY2Vzc1ZhbHVlOjpGYWlsZWQpIHsKICAgICAgICAgICAg
ICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yKTsKQEAgLTM4Niw3ICsz
ODYsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6dXBkYXRlKGNvbnN0IEJ1ZmZlclNvdXJjZSYg
cmVzcG9uc2UsIFJlZjxEZWZlcnJlZFByb21pc2U+JgogICAgIC8vIDQuIExldCByZXNwb25zZSBj
b3B5IGJlIGEgY29weSBvZiB0aGUgY29udGVudHMgb2YgdGhlIHJlc3BvbnNlIHBhcmFtZXRlci4K
ICAgICAvLyA1LiBMZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgogICAgIC8vIDYuIFJ1biB0
aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgotICAgIG1fdGFza1F1ZXVlLmVucXVldWVU
YXNrKFt0aGlzLCByZXNwb25zZSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlc3BvbnNlLmRhdGEo
KSwgcmVzcG9uc2UubGVuZ3RoKCkpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0
YWJsZSB7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNl
OjpOZXR3b3JraW5nLCBbdGhpcywgcmVzcG9uc2UgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShyZXNw
b25zZS5kYXRhKCksIHJlc3BvbnNlLmxlbmd0aCgpKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldICgpIG11dGFibGUgewogICAgICAgICAvLyA2LjEuIExldCBzYW5pdGl6ZWQgcmVzcG9uc2Ug
YmUgYSB2YWxpZGF0ZWQgYW5kL29yIHNhbml0aXplZCB2ZXJzaW9uIG9mIHJlc3BvbnNlIGNvcHku
CiAgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNhbml0aXplZFJlc3BvbnNlID0gbV9pbXBs
ZW1lbnRhdGlvbi0+c2FuaXRpemVSZXNwb25zZShyZXNwb25zZSk7CiAKQEAgLTQzNyw3ICs0Mzcs
NyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6dXBkYXRlKGNvbnN0IEJ1ZmZlclNvdXJjZSYgcmVz
cG9uc2UsIFJlZjxEZWZlcnJlZFByb21pc2U+JgogICAgICAgICAgICAgLy8gICA2LjcuMy4xLiBM
ZXQgbWVzc2FnZSBiZSB0aGF0IG1lc3NhZ2UuCiAgICAgICAgICAgICAvLyAgIDYuNy4zLjIuIExl
dCBtZXNzYWdlIHR5cGUgYmUgdGhlIGFwcHJvcHJpYXRlIE1lZGlhS2V5TWVzc2FnZVR5cGUgZm9y
IHRoZSBtZXNzYWdlLgogICAgICAgICAgICAgLy8gNi44LiBRdWV1ZSBhIHRhc2sgdG8gcnVuIHRo
ZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgICAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhb
dGhpcywgc2Vzc2lvbldhc0Nsb3NlZCwgY2hhbmdlZEtleXMgPSBXVEZNb3ZlKGNoYW5nZWRLZXlz
KSwgY2hhbmdlZEV4cGlyYXRpb24gPSBXVEZNb3ZlKGNoYW5nZWRFeHBpcmF0aW9uKSwgbWVzc2Fn
ZSA9IFdURk1vdmUobWVzc2FnZSksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFz
a1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHNlc3Npb25XYXNDbG9zZWQsIGNoYW5nZWRLZXlz
ID0gV1RGTW92ZShjaGFuZ2VkS2V5cyksIGNoYW5nZWRFeHBpcmF0aW9uID0gV1RGTW92ZShjaGFu
Z2VkRXhwaXJhdGlvbiksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgTE9HKEVNRSwgIkVN
RSAtIHVwZGF0aW5nIENETSBsaWNlbnNlIHN1Y2NlZWRlZCBmb3Igc2Vzc2lvbiAlcywgc2VuZGlu
ZyBhIG1lc3NhZ2UgdG8gdGhlIGxpY2Vuc2Ugc2VydmVyIiwgbV9zZXNzaW9uSWQudXRmOCgpLmRh
dGEoKSk7CiAgICAgICAgICAgICAgICAgLy8gNi44LjEuCiAgICAgICAgICAgICAgICAgaWYgKHNl
c3Npb25XYXNDbG9zZWQpIHsKQEAgLTUxNCw3ICs1MTQsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lv
bjo6Y2xvc2UoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogCiAgICAgLy8gNC4gTGV0
IHByb21pc2UgYmUgYSBuZXcgcHJvbWlzZS4KICAgICAvLyA1LiBSdW4gdGhlIGZvbGxvd2luZyBz
dGVwcyBpbiBwYXJhbGxlbDoKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgIHF1ZXVlVGFza0tlZXBp
bmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgLy8gNS4xLiBMZXQg
Y2RtIGJlIHRoZSBDRE0gaW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgc2Vzc2lvbidzIGNkbSBpbnN0
YW5jZSB2YWx1ZS4KICAgICAgICAgLy8gNS4yLiBVc2UgY2RtIHRvIGNsb3NlIHRoZSBrZXkgc2Vz
c2lvbiBhc3NvY2lhdGVkIHdpdGggc2Vzc2lvbi4KICAgICAgICAgTE9HKEVNRSwgIkVNRSAtIGNs
b3NpbmcgQ0RNIHNlc3Npb24gJXMiLCBtX3Nlc3Npb25JZC51dGY4KCkuZGF0YSgpKTsKQEAgLTUy
Myw3ICs1MjMsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6Y2xvc2UoUmVmPERlZmVycmVkUHJv
bWlzZT4mJiBwcm9taXNlKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAg
Ly8gNS4zLiBRdWV1ZSBhIHRhc2sgdG8gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAg
ICAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldICgpIG11dGFibGUgeworICAgICAgICAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFs
aXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldICgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIC8vIDUuMy4xLiBSdW4g
dGhlIFNlc3Npb24gQ2xvc2VkIGFsZ29yaXRobSBvbiB0aGUgc2Vzc2lvbi4KICAgICAgICAgICAg
ICAgICBzZXNzaW9uQ2xvc2VkKCk7CiAKQEAgLTU1Miw3ICs1NTIsNyBAQCB2b2lkIE1lZGlhS2V5
U2Vzc2lvbjo6cmVtb3ZlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIAogICAgIC8v
IDMuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UuCiAgICAgLy8gNC4gUnVuIHRoZSBmb2xs
b3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6Ci0gICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soW3Ro
aXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsKKyAgICBxdWV1ZVRh
c2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlz
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIC8vIDQu
MS4gTGV0IGNkbSBiZSB0aGUgQ0RNIGluc3RhbmNlIHJlcHJlc2VudGVkIGJ5IHRoaXMgb2JqZWN0
J3MgY2RtIGluc3RhbmNlIHZhbHVlLgogICAgICAgICAvLyA0LjIuIExldCBtZXNzYWdlIGJlIG51
bGwuCiAgICAgICAgIC8vIDQuMy4gTGV0IG1lc3NhZ2UgdHlwZSBiZSBudWxsLgpAQCAtNTc3LDcg
KzU3Nyw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpyZW1vdmUoUmVmPERlZmVycmVkUHJvbWlz
ZT4mJiBwcm9taXNlKQogICAgICAgICAgICAgLy8gTk9URTogU3RlcCA0LjQuMS4gc2hvdWxkIGJl
IGltcGxlbWVudGVkIGluIENETUluc3RhbmNlLgogCiAgICAgICAgICAgICAvLyA0LjUuIFF1ZXVl
IGEgdGFzayB0byBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAgICAgICAgIG1fdGFza1F1
ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBrZXlzID0gV1RGTW92ZShrZXlzKSwgbWVzc2FnZSA9IFdU
Rk1vdmUobWVzc2FnZSksIHN1Y2NlZWRlZCwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgp
IG11dGFibGUgeworICAgICAgICAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlz
LCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywga2V5cyA9IFdURk1vdmUoa2V5cyksIG1l
c3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBzdWNjZWVkZWQsIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICAvLyA0LjUuMS4gUnVuIHRoZSBV
cGRhdGUgS2V5IFN0YXR1c2VzIGFsZ29yaXRobSBvbiB0aGUgc2Vzc2lvbiwgcHJvdmlkaW5nIGFs
bCBrZXkgSUQocykgaW4gdGhlIHNlc3Npb24gYWxvbmcgd2l0aCB0aGUgInJlbGVhc2VkIiBNZWRp
YUtleVN0YXR1cyB2YWx1ZSBmb3IgZWFjaC4KICAgICAgICAgICAgICAgICB1cGRhdGVLZXlTdGF0
dXNlcyhXVEZNb3ZlKGtleXMpKTsKIApAQCAtNjE2LDcgKzYxNiw3IEBAIHZvaWQgTWVkaWFLZXlT
ZXNzaW9uOjplbnF1ZXVlTWVzc2FnZShNZWRpYUtleU1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCBj
b25zdCBTaGFyCiAgICAgLy8gICAgaW50ZXJmYWNlIHdpdGggaXRzIHR5cGUgYXR0cmlidXRlIHNl
dCB0byBtZXNzYWdlIGFuZCBpdHMgaXNUcnVzdGVkIGF0dHJpYnV0ZSBpbml0aWFsaXplZCB0byB0
cnVlLCBhbmQgZGlzcGF0Y2ggaXQgYXQgdGhlCiAgICAgLy8gICAgc2Vzc2lvbi4KICAgICBhdXRv
IG1lc3NhZ2VFdmVudCA9IE1lZGlhS2V5TWVzc2FnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
Lm1lc3NhZ2VFdmVudCwge21lc3NhZ2VUeXBlLCBtZXNzYWdlLnRyeUNyZWF0ZUFycmF5QnVmZmVy
KCl9LCBFdmVudDo6SXNUcnVzdGVkOjpZZXMpOwotICAgIG1fZXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2
ZW50KFdURk1vdmUobWVzc2FnZUV2ZW50KSk7CisgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50
KCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBXVEZNb3ZlKG1lc3NhZ2VFdmVudCkpOwog
fQogCiB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6dXBkYXRlS2V5U3RhdHVzZXMoQ0RNSW5zdGFuY2VT
ZXNzaW9uOjpLZXlTdGF0dXNWZWN0b3ImJiBpbnB1dFN0YXR1c2VzKQpAQCAtNjYxLDEwICs2NjEs
MTAgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246OnVwZGF0ZUtleVN0YXR1c2VzKENETUluc3RhbmNl
U2Vzc2lvbjo6S2V5U3RhdHVzVmVjdG9yJiYgaW4KICAgICAgICAgbV9zdGF0dXNlcy51bmNoZWNr
ZWRBcHBlbmQoeyBXVEZNb3ZlKHN0YXR1cy5maXJzdCksIHRvTWVkaWFLZXlTdGF0dXMoc3RhdHVz
LnNlY29uZCkgfSk7CiAKICAgICAvLyA1LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBl
dmVudCBuYW1lZCBrZXlzdGF0dXNlc2NoYW5nZSBhdCB0aGUgc2Vzc2lvbi4KLSAgICBtX2V2ZW50
UXVldWUtPmVucXVldWVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5rZXlzdGF0dXNl
c2NoYW5nZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6
Tm8pKTsKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6Ok5l
dHdvcmtpbmcsIEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmtleXN0YXR1c2VzY2hhbmdlRXZl
bnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogCiAg
ICAgLy8gNi4gUXVldWUgYSB0YXNrIHRvIHJ1biB0aGUgQXR0ZW1wdCB0byBSZXN1bWUgUGxheWJh
Y2sgSWYgTmVjZXNzYXJ5IGFsZ29yaXRobSBvbiBlYWNoIG9mIHRoZSBtZWRpYSBlbGVtZW50KHMp
IHdob3NlIG1lZGlhS2V5cyBhdHRyaWJ1dGUgaXMgdGhlIE1lZGlhS2V5cyBvYmplY3QgdGhhdCBj
cmVhdGVkIHRoZSBzZXNzaW9uLgotICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKAorICAgIHF1
ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TmV0d29ya2luZywK
ICAgICAgICAgW3RoaXNdICgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKG1fa2V5cykKICAg
ICAgICAgICAgICAgICBtX2tleXMtPmF0dGVtcHRUb1Jlc3VtZVBsYXliYWNrT25DbGllbnRzKCk7
CkBAIC03MzMsMjggKzczMywxNSBAQCBTdHJpbmcgTWVkaWFLZXlTZXNzaW9uOjptZWRpYUtleXNT
dG9yYWdlRGlyZWN0b3J5KCkgY29uc3QKIAogYm9vbCBNZWRpYUtleVNlc3Npb246Omhhc1BlbmRp
bmdBY3Rpdml0eSgpIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
ZmFsc2U7CisgICAgLy8gQSBNZWRpYUtleVNlc3Npb24gb2JqZWN0IFNIQUxMIE5PVCBiZSBkZXN0
cm95ZWQgYW5kIFNIQUxMIGNvbnRpbnVlIHRvIHJlY2VpdmUgZXZlbnRzIGlmIGl0IGlzIG5vdCBj
bG9zZWQgYW5kIHRoZSBNZWRpYUtleXMgb2JqZWN0IHRoYXQgY3JlYXRlZCBpdCByZW1haW5zIGFj
Y2Vzc2libGUuCisgICAgcmV0dXJuICghbV9jbG9zZWQgJiYgbV9rZXlzKSB8fCBBY3RpdmVET01P
YmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpOwogfQogCiBjb25zdCBjaGFyKiBNZWRpYUtleVNl
c3Npb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogewotICAgIG5vdEltcGxlbWVudGVk
KCk7CiAgICAgcmV0dXJuICJNZWRpYUtleVNlc3Npb24iOwogfQogCi0vLyBGSVhNRTogVGhpcyBz
aG91bGQgbmV2ZXIgcHJldmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgotYm9v
bCBNZWRpYUtleVNlc3Npb246OnNob3VsZFByZXZlbnRFbnRlcmluZ0JhY2tGb3J3YXJkQ2FjaGVf
REVQUkVDQVRFRCgpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
dHJ1ZTsKLX0KLQotdm9pZCBNZWRpYUtleVNlc3Npb246OnN0b3AoKQotewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Np
b24uaAppbmRleCBhZWI1YzIyZWU4NGNkMDYzZDE5ZTU2NGFkOTY1NjdkYTFmNzRlYzU3Li5lNWYx
MmRlY2M2ZTU0ODFiOThhMjljODc5YmM5YWMyMGFmYzI3MGYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKQEAg
LTMzLDEzICszMywxMiBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUg
IkNETUluc3RhbmNlU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCi0jaW5jbHVk
ZSAiR2VuZXJpY0V2ZW50UXVldWUuaCIKLSNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCiAj
aW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRlICJNZWRpYUtleU1lc3NhZ2VUeXBlLmgiCiAj
aW5jbHVkZSAiTWVkaWFLZXlTZXNzaW9uVHlwZS5oIgogI2luY2x1ZGUgIk1lZGlhS2V5U3RhdHVz
LmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVm
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0xMDQsOCArMTAzLDYgQEAgcHJpdmF0
ZToKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9i
amVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZFByZXZlbnRFbnRlcmlu
Z0JhY2tGb3J3YXJkQ2FjaGVfREVQUkVDQVRFRCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQg
c3RvcCgpIG92ZXJyaWRlOwogCiAgICAgV2Vha1B0cjxNZWRpYUtleXM+IG1fa2V5czsKICAgICBT
dHJpbmcgbV9zZXNzaW9uSWQ7CkBAIC0xMTksOCArMTE2LDYgQEAgcHJpdmF0ZToKICAgICBNZWRp
YUtleVNlc3Npb25UeXBlIG1fc2Vzc2lvblR5cGU7CiAgICAgUmVmPENETT4gbV9pbXBsZW1lbnRh
dGlvbjsKICAgICBSZWY8Q0RNSW5zdGFuY2VTZXNzaW9uPiBtX2luc3RhbmNlU2Vzc2lvbjsKLSAg
ICBVbmlxdWVSZWY8TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlPiBtX2V2ZW50UXVldWU7Ci0g
ICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV90YXNrUXVldWU7CiAgICAgVmVjdG9yPFJlZjxT
aGFyZWRCdWZmZXI+PiBtX3JlY29yZE9mS2V5VXNhZ2U7CiAgICAgZG91YmxlIG1fZmlyc3REZWNy
eXB0VGltZSB7IDAgfTsKICAgICBkb3VibGUgbV9sYXRlc3REZWNyeXB0VGltZSB7IDAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNw
cAppbmRleCAyZmNkMDM0YTVmOGViNmJiNTMwMDg1YWY5YTRmZjEwZGNkZTYyOTFmLi45Y2FiZTU3
NTExNzhhYTI2YzI2NzA2MTI2OTQ5MWNjNzBmY2Y5ZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCkBAIC0zMSwxMiArMzEs
MTQgQEAKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAKKyNpbmNsdWRlICJBYnN0cmFj
dEV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkNETS5oIgogI2luY2x1ZGUgIkNETUNsaWVudC5oIgog
I2luY2x1ZGUgIkNETUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFLZXlTZXNzaW9uLmgiCisj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZl
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03OSw3ICs4MSw3IEBAIEV4Y2VwdGlvbk9y
PFJlZjxNZWRpYUtleVNlc3Npb24+PiBNZWRpYUtleXM6OmNyZWF0ZVNlc3Npb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4CiAgICAgcmV0dXJuIHNlc3Npb247CiB9CiAKLXZvaWQgTWVkaWFLZXlzOjpz
ZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShjb25zdCBCdWZmZXJTb3VyY2UmIHNlcnZlckNlcnRpZmljYXRl
LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCit2b2lkIE1lZGlhS2V5czo6c2V0U2Vy
dmVyQ2VydGlmaWNhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgQnVm
ZmVyU291cmNlJiBzZXJ2ZXJDZXJ0aWZpY2F0ZSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9t
aXNlKQogewogICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvI2Rv
bS1tZWRpYWtleXMtc2V0c2VydmVyY2VydGlmaWNhdGUKICAgICAvLyBXM0MgRWRpdG9yJ3MgRHJh
ZnQgMDkgTm92ZW1iZXIgMjAxNgpAQCAtMTA0LDcgKzEwNiw3IEBAIHZvaWQgTWVkaWFLZXlzOjpz
ZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShjb25zdCBCdWZmZXJTb3VyY2UmIHNlcnZlckNlcnRpZmljYXRl
LCBSZWY8CiAgICAgLy8gNC4gTGV0IHByb21pc2UgYmUgYSBuZXcgcHJvbWlzZS4KICAgICAvLyA1
LiBSdW4gdGhlIGZvbGxvd2luZyBzdGVwcyBpbiBwYXJhbGxlbDoKIAotICAgIG1fdGFza1F1ZXVl
LmVucXVldWVUYXNrKFt0aGlzLCBjZXJ0aWZpY2F0ZSA9IFdURk1vdmUoY2VydGlmaWNhdGUpLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CisgICAgY29udGV4dC5ldmVu
dExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgY29udGV4dCwgW3RoaXMs
IGNlcnRpZmljYXRlID0gV1RGTW92ZShjZXJ0aWZpY2F0ZSksIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgLy8gNS4xLiBVc2UgdGhpcyBvYmplY3QncyBj
ZG0gaW5zdGFuY2UgdG8gcHJvY2VzcyBjZXJ0aWZpY2F0ZS4KICAgICAgICAgaWYgKG1faW5zdGFu
Y2UtPnNldFNlcnZlckNlcnRpZmljYXRlKFdURk1vdmUoY2VydGlmaWNhdGUpKSA9PSBDRE1JbnN0
YW5jZTo6RmFpbGVkKSB7CiAgICAgICAgICAgICAvLyA1LjIuIElmIHRoZSBwcmVjZWRpbmcgc3Rl
cCBmYWlsZWQsIHJlc29sdmUgcHJvbWlzZSB3aXRoIGEgbmV3IERPTUV4Y2VwdGlvbiB3aG9zZSBu
YW1lIGlzIHRoZSBhcHByb3ByaWF0ZSBlcnJvciBuYW1lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmgKaW5kZXggZmEyNjkzMzAwMmM5Yzc0
NDExYzRlMzIyY2EwNzM0NTFlYWExMmE2Yi4uMWUyZTFhMjc3MTM0MGU2ZGYxZTBhOThhNTQyY2Nk
NWY4MmFlMjhkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9NZWRpYUtleXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5cy5oCkBAIC0zMSw3ICszMSw2IEBACiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCi0jaW5jbHVkZSAiR2VuZXJpY1Rhc2tR
dWV1ZS5oIgogI2luY2x1ZGUgIk1lZGlhS2V5U2Vzc2lvblR5cGUuaCIKICNpbmNsdWRlIDx3dGYv
UmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTU5LDcgKzU4LDcgQEAgcHVi
bGljOgogICAgIH5NZWRpYUtleXMoKTsKIAogICAgIEV4Y2VwdGlvbk9yPFJlZjxNZWRpYUtleVNl
c3Npb24+PiBjcmVhdGVTZXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBNZWRpYUtleVNl
c3Npb25UeXBlKTsKLSAgICB2b2lkIHNldFNlcnZlckNlcnRpZmljYXRlKGNvbnN0IEJ1ZmZlclNv
dXJjZSYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHZvaWQgc2V0U2VydmVyQ2VydGlm
aWNhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IEJ1ZmZlclNvdXJjZSYsIFJlZjxE
ZWZlcnJlZFByb21pc2U+JiYpOwogCiAgICAgdm9pZCBhdHRhY2hDRE1DbGllbnQoQ0RNQ2xpZW50
Jik7CiAgICAgdm9pZCBkZXRhY2hDRE1DbGllbnQoQ0RNQ2xpZW50Jik7CkBAIC04MCw3ICs3OSw2
IEBAIHByb3RlY3RlZDoKIAogICAgIFZlY3RvcjxSZWY8TWVkaWFLZXlTZXNzaW9uPj4gbV9zZXNz
aW9uczsKICAgICBWZWN0b3I8Q0RNQ2xpZW50Kj4gbV9jZG1DbGllbnRzOwotICAgIEdlbmVyaWNU
YXNrUXVldWU8VGltZXI+IG1fdGFza1F1ZXVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRp
YUtleXMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eXMuaWRsCmluZGV4IGRiMWIwNTM0M2JjMjEzOGM5YjZiYzUyMjVmNzkyOTczMzZmZGIyOWQuLmQ2
ZjA0Y2RkYmU1MGQzMTQ4Mzk1ZjY1ZWM2YmY5MDU3ZmZiZjRkY2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5pZGwKQEAgLTMzLDUg
KzMzLDUgQEAKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAogXSBpbnRlcmZhY2UgTWVk
aWFLZXlzIHsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dF
eGNlcHRpb25dIE1lZGlhS2V5U2Vzc2lvbiBjcmVhdGVTZXNzaW9uKG9wdGlvbmFsIE1lZGlhS2V5
U2Vzc2lvblR5cGUgc2Vzc2lvblR5cGUgPSAidGVtcG9yYXJ5Iik7Ci0gICAgUHJvbWlzZTxib29s
PiBzZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShCdWZmZXJTb3VyY2Ugc2VydmVyQ2VydGlmaWNhdGUpOwor
ICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBQcm9taXNlPGJvb2w+IHNldFNl
cnZlckNlcnRpZmljYXRlKEJ1ZmZlclNvdXJjZSBzZXJ2ZXJDZXJ0aWZpY2F0ZSk7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvV2Vi
S2l0TWVkaWFLZXlTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvbGVnYWN5L1dlYktpdE1lZGlhS2V5U2Vzc2lvbi5jcHAKaW5kZXggOGRkZWYyNTdkZmUw
ZjQ3YTY1NDI3OGI5NGQ0YWM4OGQ5MzNiYjU5Zi4uNWJhMmVlZDE4ZDg0NjdjMDI1MTc1MWEzYWIy
YWVmNGFlNWIwNjQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFLZXlTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9XZWJLaXRNZWRpYUtleVNlc3Npb24u
Y3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJ
QSkKIAorI2luY2x1ZGUgIkFic3RyYWN0RXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtNTQsNyAr
NTUsNiBAQCBXZWJLaXRNZWRpYUtleVNlc3Npb246OldlYktpdE1lZGlhS2V5U2Vzc2lvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXZQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZj
b250ZXh0KQogICAgICwgbV9rZXlzKCZrZXlzKQogICAgICwgbV9rZXlTeXN0ZW0oa2V5U3lzdGVt
KQotICAgICwgbV9hc3luY0V2ZW50UXVldWUoTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpj
cmVhdGUoKnRoaXMpKQogICAgICwgbV9zZXNzaW9uKGtleXMuY2RtKCkuY3JlYXRlU2Vzc2lvbigq
dGhpcykpCiAgICAgLCBtX2tleVJlcXVlc3RUaW1lcigqdGhpcywgJldlYktpdE1lZGlhS2V5U2Vz
c2lvbjo6a2V5UmVxdWVzdFRpbWVyRmlyZWQpCiAgICAgLCBtX2FkZEtleVRpbWVyKCp0aGlzLCAm
V2ViS2l0TWVkaWFLZXlTZXNzaW9uOjphZGRLZXlUaW1lckZpcmVkKQpAQCAtNjcsOCArNjcsNiBA
QCBXZWJLaXRNZWRpYUtleVNlc3Npb246On5XZWJLaXRNZWRpYUtleVNlc3Npb24oKQogewogICAg
IGlmIChtX3Nlc3Npb24pCiAgICAgICAgIG1fc2Vzc2lvbi0+c2V0Q2xpZW50KG51bGxwdHIpOwot
Ci0gICAgbV9hc3luY0V2ZW50UXVldWUtPmNhbmNlbEFsbEV2ZW50cygpOwogfQogCiB2b2lkIFdl
YktpdE1lZGlhS2V5U2Vzc2lvbjo6Y2xvc2UoKQpAQCAtMTgzLDcgKzE4MSw3IEBAIHZvaWQgV2Vi
S2l0TWVkaWFLZXlTZXNzaW9uOjphZGRLZXlUaW1lckZpcmVkKCkKICAgICAgICAgaWYgKGRpZFN0
b3JlS2V5KSB7CiAgICAgICAgICAgICBhdXRvIGtleWFkZGVkRXZlbnQgPSBFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS53ZWJraXRrZXlhZGRlZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywg
RXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pOwogICAgICAgICAgICAga2V5YWRkZWRFdmVudC0+c2V0
VGFyZ2V0KHRoaXMpOwotICAgICAgICAgICAgbV9hc3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVu
dChXVEZNb3ZlKGtleWFkZGVkRXZlbnQpKTsKKyAgICAgICAgICAgIHF1ZXVlVGFza1RvRGlzcGF0
Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6TmV0d29ya2luZywgV1RGTW92ZShrZXlhZGRlZEV2
ZW50KSk7CiAKICAgICAgICAgICAgIEFTU0VSVChtX2tleXMpOwogICAgICAgICAgICAgbV9rZXlz
LT5rZXlBZGRlZCgpOwpAQCAtMjA3LDcgKzIwNSw3IEBAIHZvaWQgV2ViS2l0TWVkaWFLZXlTZXNz
aW9uOjpzZW5kTWVzc2FnZShVaW50OEFycmF5KiBtZXNzYWdlLCBTdHJpbmcgZGVzdGluYXRpb25V
CiB7CiAgICAgYXV0byBldmVudCA9IFdlYktpdE1lZGlhS2V5TWVzc2FnZUV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLndlYmtpdGtleW1lc3NhZ2VFdmVudCwgbWVzc2FnZSwgZGVzdGluYXRpb25V
UkwpOwogICAgIGV2ZW50LT5zZXRUYXJnZXQodGhpcyk7Ci0gICAgbV9hc3luY0V2ZW50UXVldWUt
PmVucXVldWVFdmVudChXVEZNb3ZlKGV2ZW50KSk7CisgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2
ZW50KCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBXVEZNb3ZlKGV2ZW50KSk7CiB9CiAK
IHZvaWQgV2ViS2l0TWVkaWFLZXlTZXNzaW9uOjpzZW5kRXJyb3IoTWVkaWFLZXlFcnJvckNvZGUg
ZXJyb3JDb2RlLCB1aW50MzJfdCBzeXN0ZW1Db2RlKQpAQCAtMjE2LDcgKzIxNCw3IEBAIHZvaWQg
V2ViS2l0TWVkaWFLZXlTZXNzaW9uOjpzZW5kRXJyb3IoTWVkaWFLZXlFcnJvckNvZGUgZXJyb3JD
b2RlLCB1aW50MzJfdCBzeXN0CiAKICAgICBhdXRvIGtleWVycm9yRXZlbnQgPSBFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS53ZWJraXRrZXllcnJvckV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpO
bywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pOwogICAgIGtleWVycm9yRXZlbnQtPnNldFRhcmdl
dCh0aGlzKTsKLSAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KFdURk1vdmUoa2V5
ZXJyb3JFdmVudCkpOworICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1Nv
dXJjZTo6TmV0d29ya2luZywgV1RGTW92ZShrZXllcnJvckV2ZW50KSk7CiB9CiAKIFN0cmluZyBX
ZWJLaXRNZWRpYUtleVNlc3Npb246Om1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdApA
QCAtMjM4LDcgKzIzNiw3IEBAIFN0cmluZyBXZWJLaXRNZWRpYUtleVNlc3Npb246Om1lZGlhS2V5
c1N0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdAogCiBib29sIFdlYktpdE1lZGlhS2V5U2Vzc2lvbjo6
aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKLSAgICByZXR1cm4gKG1fa2V5cyAmJiBtX3Nl
c3Npb24pIHx8IG1fYXN5bmNFdmVudFF1ZXVlLT5oYXNQZW5kaW5nRXZlbnRzKCk7CisgICAgcmV0
dXJuIChtX2tleXMgJiYgbV9zZXNzaW9uKSB8fCBBY3RpdmVET01PYmplY3Q6Omhhc1BlbmRpbmdB
Y3Rpdml0eSgpOwogfQogCiB2b2lkIFdlYktpdE1lZGlhS2V5U2Vzc2lvbjo6c3RvcCgpCkBAIC0y
NTEsMTIgKzI0OSw2IEBAIGNvbnN0IGNoYXIqIFdlYktpdE1lZGlhS2V5U2Vzc2lvbjo6YWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJXZWJLaXRNZWRpYUtleVNlc3Npb24i
OwogfQogCi1ib29sIFdlYktpdE1lZGlhS2V5U2Vzc2lvbjo6c2hvdWxkUHJldmVudEVudGVyaW5n
QmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEKCkgY29uc3QKLXsKLSAgICAvLyBGSVhNRTogVGhp
cyBzaG91bGQgbmV2ZXIgcHJldmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgot
ICAgIHJldHVybiB0cnVlOwotfQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFLZXlTZXNzaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9XZWJLaXRN
ZWRpYUtleVNlc3Npb24uaAppbmRleCBjZmRlYjI0ODY1ZWVlZGIzYzYwNjkwNjQ0MDI2OTM0OTlk
MjM2MDIzLi5hMTJmNDk3NTBmODAzOTRjNGQ0YjY3ZDlkMjJlN2I5ZDE5Nzg4M2IyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9XZWJLaXRN
ZWRpYUtleVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL2xlZ2FjeS9XZWJLaXRNZWRpYUtleVNlc3Npb24uaApAQCAtMzAsNyArMzAsNiBAQAogI2lu
Y2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uT3IuaCIKLSNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2lu
Y2x1ZGUgIkxlZ2FjeUNETVNlc3Npb24uaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1VpbnQ4QXJyYXkuaD4KQEAgLTQxLDcgKzQwLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgV2ViS2l0TWVkaWFLZXlFcnJvcjsKIGNsYXNzIFdlYktpdE1lZGlh
S2V5czsKIAotY2xhc3MgV2ViS2l0TWVkaWFLZXlTZXNzaW9uIGZpbmFsIDogcHVibGljIFJlZkNv
dW50ZWQ8V2ViS2l0TWVkaWFLZXlTZXNzaW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGlu
ZURhdGEsIHByaXZhdGUgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIExlZ2FjeUNETVNlc3Npb25D
bGllbnQgeworY2xhc3MgV2ViS2l0TWVkaWFLZXlTZXNzaW9uIGZpbmFsIDogcHVibGljIFJlZkNv
dW50ZWQ8V2ViS2l0TWVkaWFLZXlTZXNzaW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGlu
ZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUgTGVnYWN5Q0RNU2Vzc2lvbkNs
aWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJLaXRNZWRpYUtleVNlc3Npb24p
OwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViS2l0TWVkaWFLZXlTZXNzaW9uPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdlYktpdE1lZGlhS2V5cyYsIGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtKTsKQEAgLTc4LDcgKzc3LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlcmVmRXZl
bnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIHZvaWQgc3RvcCgpIGZpbmFsOwot
ICAgIGJvb2wgc2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVE
KCkgY29uc3QgZmluYWw7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0IGZpbmFsOwogCiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZh
Y2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBXZWJLaXRNZWRpYUtleVNlc3Npb25FdmVudFRhcmdl
dEludGVyZmFjZVR5cGU7IH0KQEAgLTg4LDcgKzg2LDYgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcg
bV9rZXlTeXN0ZW07CiAgICAgU3RyaW5nIG1fc2Vzc2lvbklkOwogICAgIFJlZlB0cjxXZWJLaXRN
ZWRpYUtleUVycm9yPiBtX2Vycm9yOwotICAgIFVuaXF1ZVJlZjxNYWluVGhyZWFkR2VuZXJpY0V2
ZW50UXVldWU+IG1fYXN5bmNFdmVudFF1ZXVlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxMZWdhY3lD
RE1TZXNzaW9uPiBtX3Nlc3Npb247CiAKICAgICBzdHJ1Y3QgUGVuZGluZ0tleVJlcXVlc3Qgewpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDQzMTg0NGM3OGZlZThiMzc4ZjUyMDJiMzEwMDJjZTA0MzM3NTQ4MmQuLjkxYmExYzZk
ODllZTg0YzNmYzNhYWNjMDhiNTcwNTRlZDIzMWUxNTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOS0xMS0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1l
ZGlhS2V5U2Vzc2lvbiAvIFdlYktpdE1lZGlhS2V5U2Vzc2lvbiBzaG91bGQgbm90IHByZXZlbnQg
ZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAg
ICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtbWVkaWFrZXlzZXNzaW9uLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2Ut
Y2FjaGUtbWVkaWFrZXlzZXNzaW9uLmh0bWw6IEFkZGVkLgorCiAyMDE5LTExLTA0ICBUcnVpdHQg
U2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjI1MTk5My4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wYWdlLWNhY2hlLW1lZGlha2V5c2Vzc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1tZWRpYWtleXNlc3Npb24tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU0OGI2OTM2NDE0ZjMzYzIyZjBjOWNiMjEwZDA2YzI0ZWY1NDRl
MWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
cGFnZS1jYWNoZS1tZWRpYWtleXNlc3Npb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAK
K1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGggYSBNZWRpYUtleVNlc3Npb24gZ29lcyBpbnRvIHRoZSBi
YWNrL2ZvcndhcmQgY2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
ICEhc2Vzc2lvbiBpcyB0cnVlCitwYWdlc2hvdyAtIG5vdCBmcm9tIGNhY2hlCitwYWdlaGlkZSAt
IGVudGVyaW5nIGNhY2hlCitwYWdlc2hvdyAtIGZyb20gY2FjaGUKK1BBU1MgUGFnZSB3YXMgcmVz
dG9yZWQgZnJvbSBiYWNrL2ZvcndhcmQgY2FjaGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1tZWRpYWtleXNlc3Npb24uaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLW1lZGlha2V5c2Vzc2lvbi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjFjNzdlZDk2MTI4NWU1MjM0YzI2NDljYTJkNTAxNWI0YjU2ZDQwYzIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1j
YWNoZS1tZWRpYWtleXNlc3Npb24uaHRtbApAQCAtMCwwICsxLDM5IEBACis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCdUZXN0cyB0aGF0IGEgcGFnZSB3aXRoIGEgTWVkaWFLZXlTZXNzaW9uIGdvZXMgaW50byB0
aGUgYmFjay9mb3J3YXJkIGNhY2hlLicpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3dpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVi
dWcoInBhZ2VzaG93IC0gIiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAiZnJv
bSBjYWNoZSIpOworICAgIGlmIChldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgICAgdGVzdFBhc3Nl
ZCgiUGFnZSB3YXMgcmVzdG9yZWQgZnJvbSBiYWNrL2ZvcndhcmQgY2FjaGUiKTsKKyAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgfQorfSk7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJw
YWdlaGlkZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWcoInBhZ2VoaWRlIC0gIiArIChl
dmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAiZW50ZXJpbmcgY2FjaGUiKTsKKyAgICBp
ZiAoIWV2ZW50LnBlcnNpc3RlZCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIGZhaWxlZCB0
byBlbnRlciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgIH0KK30pOworCitvbmxvYWQgPSAoKSA9PiB7CisgICAgbWVkaWFLZXlzID0gbmV3IFdl
YktpdE1lZGlhS2V5cygnb3JnLnczYy5jbGVhcmtleScpOworICAgIHNlc3Npb24gPSBtZWRpYUtl
eXMuY3JlYXRlU2Vzc2lvbignYXBwbGljYXRpb24veC1tcGVndXJsJywgbmV3IFVpbnQ4QXJyYXko
MSkpOworICAgIHNob3VsZEJlVHJ1ZSgiISFzZXNzaW9uIik7CisgICAgc2V0VGltZW91dCgoKSA9
PiB7CisgICAgICAgIHRlc3RMaW5rLmNsaWNrKCk7CisgICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4K
KzxhIGlkPSJ0ZXN0TGluayIgaHJlZj0icmVzb3VyY2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwi
IHN0eWxlPSJkaXNwbGF5OiBub25lIj5MaW5rPC9hPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382795</attachid>
            <date>2019-11-04 18:41:27 -0800</date>
            <delta_ts>2019-11-04 19:03:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203089-20191104184127.patch</filename>
            <type>text/plain</type>
            <size>26952</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMDA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU0NTRjZDliNjdmNzFm
NThmMjYwZjM2YmJjNjUwZjMyMzc0YmQ4Zi4uYzNiM2ExZTk4ZWJiMDFlYmYxYzJjYmE5ODg2OGE2
ZjgxMjAyYzQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTExLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFLZXlTZXNzaW9uIC8g
V2ViS2l0TWVkaWFLZXlTZXNzaW9uIHNob3VsZCBub3QgcHJldmVudCBlbnRlcmluZyB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDMwODkKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisg
ICAgICAgIFBvcnQgTWVkaWFLZXlTZXNzaW9uIC8gV2ViS2l0TWVkaWFLZXlTZXNzaW9uIHRvIHRo
ZSBIVE1MNSBldmVudCBsb29wIGluc3RlYWQgb2YgdXNpbmcgaXRzCisgICAgICAgIG93biBHZW5l
cmljRXZlbnRRdWV1ZSAvIEdlbmVyaWNUYXNrUXVldWUuIEJlY2F1c2UgdGhlIEhUTUw1IGV2ZW50
IGxvb3AgcGxheXMgbmljZWx5IHdpdGgKKyAgICAgICAgdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwg
d2UgY2FuIG5vdyBsZXQgcGFnZXMgdXNpbmcgTWVkaWFLZXlTZXNzaW9uIC8gV2ViS2l0TWVkaWFL
ZXlTZXNzaW9uCisgICAgICAgIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KKworICAgICAg
ICBUZXN0OiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1tZWRpYWtleXNlc3Npb24u
aHRtbAorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjpNZWRpYUtleVNlc3Npb24p
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjpnZW5lcmF0ZVJlcXVlc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjpsb2FkKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhS2V5U2Vzc2lvbjo6dXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5
U2Vzc2lvbjo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjpyZW1v
dmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjplbnF1ZXVlTWVzc2FnZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OnVwZGF0ZUtleVN0YXR1c2VzKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6aGFzUGVuZGluZ0FjdGl2aXR5IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6YWN0aXZlRE9NT2JqZWN0
TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OmVucXVldWVU
YXNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6ZW5xdWV1ZUV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6c2hvdWxkUHJldmVudEVudGVyaW5n
QmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6c3RvcCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL2xlZ2FjeS9XZWJLaXRNZWRpYUtleVNlc3Npb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViS2l0TWVkaWFLZXlTZXNzaW9uOjpXZWJLaXRNZWRpYUtleVNlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TWVkaWFLZXlTZXNzaW9uOjp+V2ViS2l0TWVkaWFLZXlT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1lZGlhS2V5U2Vzc2lvbjo6YWRkS2V5
VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNZWRpYUtleVNlc3Npb246OnNl
bmRNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1lZGlhS2V5U2Vzc2lvbjo6c2Vu
ZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1lZGlhS2V5U2Vzc2lvbjo6aGFzUGVu
ZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1lZGlhS2V5U2Vz
c2lvbjo6ZW5xdWV1ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1lZGlhS2V5U2Vz
c2lvbjo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9X
ZWJLaXRNZWRpYUtleVNlc3Npb24uaDoKKwogMjAxOS0xMS0wNCAgVHJ1aXR0IFNhdmVsbCAgPHRz
YXZlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTE5
OTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5U2Vzc2lvbi5jcHAKaW5kZXggODhjOGFlYTQ0Y2I5Y2Y3OWQ3MzllNTFlNTMyM2Qx
MTM1NmNhM2ZhZi4uMWQ4MWIzNTk4MzY0MDA1NDZhODQzZDcwNzgyNDc5ZjQ5YzI1NDdkMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNl
c3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVk
aWFLZXlTZXNzaW9uLmNwcApAQCAtMzEsNiArMzEsNyBAQAogCiAjaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKIAorI2luY2x1ZGUgIkFic3RyYWN0RXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiQ0RN
LmgiCiAjaW5jbHVkZSAiQ0RNSW5zdGFuY2UuaCIKICNpbmNsdWRlICJET01Qcm9taXNlUHJveHku
aCIKQEAgLTcwLDcgKzcxLDYgQEAgTWVkaWFLZXlTZXNzaW9uOjpNZWRpYUtleVNlc3Npb24oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgV2Vha1B0cjxNZWRpYUsKICAgICAsIG1fc2Vz
c2lvblR5cGUoc2Vzc2lvblR5cGUpCiAgICAgLCBtX2ltcGxlbWVudGF0aW9uKFdURk1vdmUoaW1w
bGVtZW50YXRpb24pKQogICAgICwgbV9pbnN0YW5jZVNlc3Npb24oV1RGTW92ZShpbnN0YW5jZVNl
c3Npb24pKQotICAgICwgbV9ldmVudFF1ZXVlKE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6
Y3JlYXRlKCp0aGlzKSkKIHsKICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vZW5jcnlwdGVk
LW1lZGlhLyNkb20tbWVkaWFrZXlzLWNyZWF0ZXNlc3Npb24KICAgICAvLyBXM0MgRWRpdG9yJ3Mg
RHJhZnQgMDkgTm92ZW1iZXIgMjAxNgpAQCAtMTU3LDcgKzE1Nyw3IEBAIHZvaWQgTWVkaWFLZXlT
ZXNzaW9uOjpnZW5lcmF0ZVJlcXVlc3QoY29uc3QgQXRvbVN0cmluZyYgaW5pdERhdGFUeXBlLCBj
b25zdCBCdWZmCiAgICAgLy8gOC4gTGV0IHNlc3Npb24gdHlwZSBiZSB0aGlzIG9iamVjdCdzIHNl
c3Npb24gdHlwZS4KICAgICAvLyA5LiBMZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgogICAg
IC8vIDEwLiBSdW4gdGhlIGZvbGxvd2luZyBzdGVwcyBpbiBwYXJhbGxlbDoKLSAgICBtX3Rhc2tR
dWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgaW5pdERhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShp
bml0RGF0YS5kYXRhKCksIGluaXREYXRhLmxlbmd0aCgpKSwgaW5pdERhdGFUeXBlLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CisgICAgcXVldWVUYXNrS2VlcGluZ09i
amVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgaW5pdERhdGEg
PSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShpbml0RGF0YS5kYXRhKCksIGluaXREYXRhLmxlbmd0aCgp
KSwgaW5pdERhdGFUeXBlLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7
CiAgICAgICAgIC8vIDEwLjEuIElmIHRoZSBpbml0IGRhdGEgaXMgbm90IHZhbGlkIGZvciBpbml0
RGF0YVR5cGUsIHJlamVjdCBwcm9taXNlIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4K
ICAgICAgICAgLy8gMTAuMi4gTGV0IHNhbml0aXplZCBpbml0IGRhdGEgYmUgYSB2YWxpZGF0ZWQg
YW5kIHNhbml0aXplZCB2ZXJzaW9uIG9mIGluaXQgZGF0YS4KICAgICAgICAgUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gc2FuaXRpemVkSW5pdERhdGEgPSBtX2ltcGxlbWVudGF0aW9uLT5zYW5pdGl6ZUlu
aXREYXRhKGluaXREYXRhVHlwZSwgaW5pdERhdGEpOwpAQCAtMjI2LDcgKzIyNiw3IEBAIHZvaWQg
TWVkaWFLZXlTZXNzaW9uOjpnZW5lcmF0ZVJlcXVlc3QoY29uc3QgQXRvbVN0cmluZyYgaW5pdERh
dGFUeXBlLCBjb25zdCBCdWZmCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIDEwLjEw
LiBRdWV1ZSBhIHRhc2sgdG8gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgICAgICBt
X3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSks
IG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBtZXNzYWdlVHlwZSwgc2Vzc2lvbklkLCBzdWNj
ZWVkZWRdICgpIG11dGFibGUgeworICAgICAgICAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFs
aXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBtZXNzYWdlVHlwZSwgc2Vz
c2lvbklkLCBzdWNjZWVkZWRdICgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIC8vIDEwLjEw
LjEuIElmIGFueSBvZiB0aGUgcHJlY2VkaW5nIHN0ZXBzIGZhaWxlZCwgcmVqZWN0IHByb21pc2Ug
d2l0aCBhIG5ldyBET01FeGNlcHRpb24gd2hvc2UgbmFtZSBpcyB0aGUgYXBwcm9wcmlhdGUgZXJy
b3IgbmFtZS4KICAgICAgICAgICAgICAgICBpZiAoc3VjY2VlZGVkID09IENETUluc3RhbmNlU2Vz
c2lvbjo6U3VjY2Vzc1ZhbHVlOjpGYWlsZWQpIHsKICAgICAgICAgICAgICAgICAgICAgcHJvbWlz
ZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yKTsKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIE1l
ZGlhS2V5U2Vzc2lvbjo6bG9hZChjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgUmVmPERlZmVycmVk
UHJvbWlzZT4mJiBwcm9taQogCiAgICAgLy8gNy4gTGV0IHByb21pc2UgYmUgYSBuZXcgcHJvbWlz
ZS4KICAgICAvLyA4LiBSdW4gdGhlIGZvbGxvd2luZyBzdGVwcyBpbiBwYXJhbGxlbDoKLSAgICBt
X3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgc2Vzc2lvbklkLCBwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZl
KCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgc2Vzc2lvbklkLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIC8vIDguMS4gTGV0IHNh
bml0aXplZCBzZXNzaW9uIElEIGJlIGEgdmFsaWRhdGVkIGFuZC9vciBzYW5pdGl6ZWQgdmVyc2lv
biBvZiBzZXNzaW9uSWQuCiAgICAgICAgIC8vIDguMi4gSWYgdGhlIHByZWNlZGluZyBzdGVwIGZh
aWxlZCwgb3IgaWYgc2FuaXRpemVkIHNlc3Npb24gSUQgaXMgZW1wdHksIHJlamVjdCBwcm9taXNl
IHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KICAgICAgICAgT3B0aW9uYWw8U3RyaW5n
PiBzYW5pdGl6ZWRTZXNzaW9uSWQgPSBtX2ltcGxlbWVudGF0aW9uLT5zYW5pdGl6ZVNlc3Npb25J
ZChzZXNzaW9uSWQpOwpAQCAtMzI5LDcgKzMyOSw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjps
b2FkKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21p
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIDguOS4gUXVldWUgYSB0YXNrIHRvIHJ1
biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICAgICAgbV90YXNrUXVldWUuZW5xdWV1ZVRh
c2soW3RoaXMsIGtub3duS2V5cyA9IFdURk1vdmUoa25vd25LZXlzKSwgZXhwaXJhdGlvbiA9IFdU
Rk1vdmUoZXhwaXJhdGlvbiksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBzYW5pdGl6ZWRT
ZXNzaW9uSWQsIHN1Y2NlZWRlZCwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFi
bGUgeworICAgICAgICAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNr
U291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywga25vd25LZXlzID0gV1RGTW92ZShrbm93bktleXMp
LCBleHBpcmF0aW9uID0gV1RGTW92ZShleHBpcmF0aW9uKSwgbWVzc2FnZSA9IFdURk1vdmUobWVz
c2FnZSksIHNhbml0aXplZFNlc3Npb25JZCwgc3VjY2VlZGVkLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgLy8gOC45LjEuIElmIGFueSBv
ZiB0aGUgcHJlY2VkaW5nIHN0ZXBzIGZhaWxlZCwgcmVqZWN0IHByb21pc2Ugd2l0aCBhIHRoZSBh
cHByb3ByaWF0ZSBlcnJvciBuYW1lLgogICAgICAgICAgICAgICAgIGlmIChzdWNjZWVkZWQgPT0g
Q0RNSW5zdGFuY2VTZXNzaW9uOjpTdWNjZXNzVmFsdWU6OkZhaWxlZCkgewogICAgICAgICAgICAg
ICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3IpOwpAQCAtMzg2LDcgKzM4
Niw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjp1cGRhdGUoY29uc3QgQnVmZmVyU291cmNlJiBy
ZXNwb25zZSwgUmVmPERlZmVycmVkUHJvbWlzZT4mCiAgICAgLy8gNC4gTGV0IHJlc3BvbnNlIGNv
cHkgYmUgYSBjb3B5IG9mIHRoZSBjb250ZW50cyBvZiB0aGUgcmVzcG9uc2UgcGFyYW1ldGVyLgog
ICAgIC8vIDUuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UuCiAgICAgLy8gNi4gUnVuIHRo
ZSBmb2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6Ci0gICAgbV90YXNrUXVldWUuZW5xdWV1ZVRh
c2soW3RoaXMsIHJlc3BvbnNlID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUocmVzcG9uc2UuZGF0YSgp
LCByZXNwb25zZS5sZW5ndGgoKSksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRh
YmxlIHsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6
Ok5ldHdvcmtpbmcsIFt0aGlzLCByZXNwb25zZSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlc3Bv
bnNlLmRhdGEoKSwgcmVzcG9uc2UubGVuZ3RoKCkpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIC8vIDYuMS4gTGV0IHNhbml0aXplZCByZXNwb25zZSBi
ZSBhIHZhbGlkYXRlZCBhbmQvb3Igc2FuaXRpemVkIHZlcnNpb24gb2YgcmVzcG9uc2UgY29weS4K
ICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVkUmVzcG9uc2UgPSBtX2ltcGxl
bWVudGF0aW9uLT5zYW5pdGl6ZVJlc3BvbnNlKHJlc3BvbnNlKTsKIApAQCAtNDM3LDcgKzQzNyw3
IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjp1cGRhdGUoY29uc3QgQnVmZmVyU291cmNlJiByZXNw
b25zZSwgUmVmPERlZmVycmVkUHJvbWlzZT4mCiAgICAgICAgICAgICAvLyAgIDYuNy4zLjEuIExl
dCBtZXNzYWdlIGJlIHRoYXQgbWVzc2FnZS4KICAgICAgICAgICAgIC8vICAgNi43LjMuMi4gTGV0
IG1lc3NhZ2UgdHlwZSBiZSB0aGUgYXBwcm9wcmlhdGUgTWVkaWFLZXlNZXNzYWdlVHlwZSBmb3Ig
dGhlIG1lc3NhZ2UuCiAgICAgICAgICAgICAvLyA2LjguIFF1ZXVlIGEgdGFzayB0byBydW4gdGhl
IGZvbGxvd2luZyBzdGVwczoKLSAgICAgICAgICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKFt0
aGlzLCBzZXNzaW9uV2FzQ2xvc2VkLCBjaGFuZ2VkS2V5cyA9IFdURk1vdmUoY2hhbmdlZEtleXMp
LCBjaGFuZ2VkRXhwaXJhdGlvbiA9IFdURk1vdmUoY2hhbmdlZEV4cGlyYXRpb24pLCBtZXNzYWdl
ID0gV1RGTW92ZShtZXNzYWdlKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFi
bGUgeworICAgICAgICAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNr
U291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgc2Vzc2lvbldhc0Nsb3NlZCwgY2hhbmdlZEtleXMg
PSBXVEZNb3ZlKGNoYW5nZWRLZXlzKSwgY2hhbmdlZEV4cGlyYXRpb24gPSBXVEZNb3ZlKGNoYW5n
ZWRFeHBpcmF0aW9uKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBMT0coRU1FLCAiRU1F
IC0gdXBkYXRpbmcgQ0RNIGxpY2Vuc2Ugc3VjY2VlZGVkIGZvciBzZXNzaW9uICVzLCBzZW5kaW5n
IGEgbWVzc2FnZSB0byB0aGUgbGljZW5zZSBzZXJ2ZXIiLCBtX3Nlc3Npb25JZC51dGY4KCkuZGF0
YSgpKTsKICAgICAgICAgICAgICAgICAvLyA2LjguMS4KICAgICAgICAgICAgICAgICBpZiAoc2Vz
c2lvbldhc0Nsb3NlZCkgewpAQCAtNTE0LDcgKzUxNCw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9u
OjpjbG9zZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAKICAgICAvLyA0LiBMZXQg
cHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgogICAgIC8vIDUuIFJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzIGluIHBhcmFsbGVsOgotICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CisgICAgcXVldWVUYXNrS2VlcGlu
Z09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgewogICAgICAgICAvLyA1LjEuIExldCBj
ZG0gYmUgdGhlIENETSBpbnN0YW5jZSByZXByZXNlbnRlZCBieSBzZXNzaW9uJ3MgY2RtIGluc3Rh
bmNlIHZhbHVlLgogICAgICAgICAvLyA1LjIuIFVzZSBjZG0gdG8gY2xvc2UgdGhlIGtleSBzZXNz
aW9uIGFzc29jaWF0ZWQgd2l0aCBzZXNzaW9uLgogICAgICAgICBMT0coRU1FLCAiRU1FIC0gY2xv
c2luZyBDRE0gc2Vzc2lvbiAlcyIsIG1fc2Vzc2lvbklkLnV0ZjgoKS5kYXRhKCkpOwpAQCAtNTIz
LDcgKzUyMyw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpjbG9zZShSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmIHByb21pc2UpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICAv
LyA1LjMuIFF1ZXVlIGEgdGFzayB0byBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAgICAg
ICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxp
dmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlzLCBwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgLy8gNS4zLjEuIFJ1biB0
aGUgU2Vzc2lvbiBDbG9zZWQgYWxnb3JpdGhtIG9uIHRoZSBzZXNzaW9uLgogICAgICAgICAgICAg
ICAgIHNlc3Npb25DbG9zZWQoKTsKIApAQCAtNTUyLDcgKzU1Miw3IEBAIHZvaWQgTWVkaWFLZXlT
ZXNzaW9uOjpyZW1vdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogCiAgICAgLy8g
My4gTGV0IHByb21pc2UgYmUgYSBuZXcgcHJvbWlzZS4KICAgICAvLyA0LiBSdW4gdGhlIGZvbGxv
d2luZyBzdGVwcyBpbiBwYXJhbGxlbDoKLSAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhp
cywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgIHF1ZXVlVGFz
a0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMs
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgLy8gNC4x
LiBMZXQgY2RtIGJlIHRoZSBDRE0gaW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgdGhpcyBvYmplY3Qn
cyBjZG0gaW5zdGFuY2UgdmFsdWUuCiAgICAgICAgIC8vIDQuMi4gTGV0IG1lc3NhZ2UgYmUgbnVs
bC4KICAgICAgICAgLy8gNC4zLiBMZXQgbWVzc2FnZSB0eXBlIGJlIG51bGwuCkBAIC01NzcsNyAr
NTc3LDcgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246OnJlbW92ZShSZWY8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pc2UpCiAgICAgICAgICAgICAvLyBOT1RFOiBTdGVwIDQuNC4xLiBzaG91bGQgYmUg
aW1wbGVtZW50ZWQgaW4gQ0RNSW5zdGFuY2UuCiAKICAgICAgICAgICAgIC8vIDQuNS4gUXVldWUg
YSB0YXNrIHRvIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICAgICAgbV90YXNrUXVl
dWUuZW5xdWV1ZVRhc2soW3RoaXMsIGtleXMgPSBXVEZNb3ZlKGtleXMpLCBtZXNzYWdlID0gV1RG
TW92ZShtZXNzYWdlKSwgc3VjY2VlZGVkLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkg
bXV0YWJsZSB7CisgICAgICAgICAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMs
IFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlzLCBrZXlzID0gV1RGTW92ZShrZXlzKSwgbWVz
c2FnZSA9IFdURk1vdmUobWVzc2FnZSksIHN1Y2NlZWRlZCwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldICgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIC8vIDQuNS4xLiBSdW4gdGhlIFVw
ZGF0ZSBLZXkgU3RhdHVzZXMgYWxnb3JpdGhtIG9uIHRoZSBzZXNzaW9uLCBwcm92aWRpbmcgYWxs
IGtleSBJRChzKSBpbiB0aGUgc2Vzc2lvbiBhbG9uZyB3aXRoIHRoZSAicmVsZWFzZWQiIE1lZGlh
S2V5U3RhdHVzIHZhbHVlIGZvciBlYWNoLgogICAgICAgICAgICAgICAgIHVwZGF0ZUtleVN0YXR1
c2VzKFdURk1vdmUoa2V5cykpOwogCkBAIC02MTYsNyArNjE2LDcgQEAgdm9pZCBNZWRpYUtleVNl
c3Npb246OmVucXVldWVNZXNzYWdlKE1lZGlhS2V5TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIGNv
bnN0IFNoYXIKICAgICAvLyAgICBpbnRlcmZhY2Ugd2l0aCBpdHMgdHlwZSBhdHRyaWJ1dGUgc2V0
IHRvIG1lc3NhZ2UgYW5kIGl0cyBpc1RydXN0ZWQgYXR0cmlidXRlIGluaXRpYWxpemVkIHRvIHRy
dWUsIGFuZCBkaXNwYXRjaCBpdCBhdCB0aGUKICAgICAvLyAgICBzZXNzaW9uLgogICAgIGF1dG8g
bWVzc2FnZUV2ZW50ID0gTWVkaWFLZXlNZXNzYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
bWVzc2FnZUV2ZW50LCB7bWVzc2FnZVR5cGUsIG1lc3NhZ2UudHJ5Q3JlYXRlQXJyYXlCdWZmZXIo
KX0sIEV2ZW50OjpJc1RydXN0ZWQ6Olllcyk7Ci0gICAgbV9ldmVudFF1ZXVlLT5lbnF1ZXVlRXZl
bnQoV1RGTW92ZShtZXNzYWdlRXZlbnQpKTsKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQo
KnRoaXMsIFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFdURk1vdmUobWVzc2FnZUV2ZW50KSk7CiB9
CiAKIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjp1cGRhdGVLZXlTdGF0dXNlcyhDRE1JbnN0YW5jZVNl
c3Npb246OktleVN0YXR1c1ZlY3RvciYmIGlucHV0U3RhdHVzZXMpCkBAIC02NjEsMTAgKzY2MSwx
MCBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6dXBkYXRlS2V5U3RhdHVzZXMoQ0RNSW5zdGFuY2VT
ZXNzaW9uOjpLZXlTdGF0dXNWZWN0b3ImJiBpbgogICAgICAgICBtX3N0YXR1c2VzLnVuY2hlY2tl
ZEFwcGVuZCh7IFdURk1vdmUoc3RhdHVzLmZpcnN0KSwgdG9NZWRpYUtleVN0YXR1cyhzdGF0dXMu
c2Vjb25kKSB9KTsKIAogICAgIC8vIDUuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2
ZW50IG5hbWVkIGtleXN0YXR1c2VzY2hhbmdlIGF0IHRoZSBzZXNzaW9uLgotICAgIG1fZXZlbnRR
dWV1ZS0+ZW5xdWV1ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmtleXN0YXR1c2Vz
Y2hhbmdlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpO
bykpOworICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6TmV0
d29ya2luZywgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkua2V5c3RhdHVzZXNjaGFuZ2VFdmVu
dCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiAKICAg
ICAvLyA2LiBRdWV1ZSBhIHRhc2sgdG8gcnVuIHRoZSBBdHRlbXB0IHRvIFJlc3VtZSBQbGF5YmFj
ayBJZiBOZWNlc3NhcnkgYWxnb3JpdGhtIG9uIGVhY2ggb2YgdGhlIG1lZGlhIGVsZW1lbnQocykg
d2hvc2UgbWVkaWFLZXlzIGF0dHJpYnV0ZSBpcyB0aGUgTWVkaWFLZXlzIG9iamVjdCB0aGF0IGNy
ZWF0ZWQgdGhlIHNlc3Npb24uCi0gICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soCisgICAgcXVl
dWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLAog
ICAgICAgICBbdGhpc10gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAobV9rZXlzKQogICAg
ICAgICAgICAgICAgIG1fa2V5cy0+YXR0ZW1wdFRvUmVzdW1lUGxheWJhY2tPbkNsaWVudHMoKTsK
QEAgLTczMywyOCArNzMzLDE1IEBAIFN0cmluZyBNZWRpYUtleVNlc3Npb246Om1lZGlhS2V5c1N0
b3JhZ2VEaXJlY3RvcnkoKSBjb25zdAogCiBib29sIE1lZGlhS2V5U2Vzc2lvbjo6aGFzUGVuZGlu
Z0FjdGl2aXR5KCkgY29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBm
YWxzZTsKKyAgICAvLyBBIE1lZGlhS2V5U2Vzc2lvbiBvYmplY3QgU0hBTEwgTk9UIGJlIGRlc3Ry
b3llZCBhbmQgU0hBTEwgY29udGludWUgdG8gcmVjZWl2ZSBldmVudHMgaWYgaXQgaXMgbm90IGNs
b3NlZCBhbmQgdGhlIE1lZGlhS2V5cyBvYmplY3QgdGhhdCBjcmVhdGVkIGl0IHJlbWFpbnMgYWNj
ZXNzaWJsZS4KKyAgICByZXR1cm4gKCFtX2Nsb3NlZCAmJiBtX2tleXMpIHx8IEFjdGl2ZURPTU9i
amVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCk7CiB9CiAKIGNvbnN0IGNoYXIqIE1lZGlhS2V5U2Vz
c2lvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKICAgICByZXR1cm4gIk1lZGlhS2V5U2Vzc2lvbiI7CiB9CiAKLS8vIEZJWE1FOiBUaGlzIHNo
b3VsZCBuZXZlciBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCi1ib29s
IE1lZGlhS2V5U2Vzc2lvbjo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9E
RVBSRUNBVEVEKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB0
cnVlOwotfQotCi12b2lkIE1lZGlhS2V5U2Vzc2lvbjo6c3RvcCgpCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lv
bi5oCmluZGV4IGFlYjVjMjJlZTg0Y2QwNjNkMTllNTY0YWQ5NjU2N2RhMWY3NGVjNTcuLmU1ZjEy
ZGVjYzZlNTQ4MWI5OGEyOWM4NzliYzlhYzIwYWZjMjcwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaApAQCAt
MzMsMTMgKzMzLDEyIEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAi
Q0RNSW5zdGFuY2VTZXNzaW9uLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKLSNpbmNsdWRl
ICJHZW5lcmljRXZlbnRRdWV1ZS5oIgotI2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKICNp
bmNsdWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUgIk1lZGlhS2V5TWVzc2FnZVR5cGUuaCIKICNp
bmNsdWRlICJNZWRpYUtleVNlc3Npb25UeXBlLmgiCiAjaW5jbHVkZSAiTWVkaWFLZXlTdGF0dXMu
aCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTEwNCw4ICsxMDMsNiBAQCBwcml2YXRl
OgogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgc2hvdWxkUHJldmVudEVudGVyaW5n
QmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBz
dG9wKCkgb3ZlcnJpZGU7CiAKICAgICBXZWFrUHRyPE1lZGlhS2V5cz4gbV9rZXlzOwogICAgIFN0
cmluZyBtX3Nlc3Npb25JZDsKQEAgLTExOSw4ICsxMTYsNiBAQCBwcml2YXRlOgogICAgIE1lZGlh
S2V5U2Vzc2lvblR5cGUgbV9zZXNzaW9uVHlwZTsKICAgICBSZWY8Q0RNPiBtX2ltcGxlbWVudGF0
aW9uOwogICAgIFJlZjxDRE1JbnN0YW5jZVNlc3Npb24+IG1faW5zdGFuY2VTZXNzaW9uOwotICAg
IFVuaXF1ZVJlZjxNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU+IG1fZXZlbnRRdWV1ZTsKLSAg
ICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Rhc2tRdWV1ZTsKICAgICBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+IG1fcmVjb3JkT2ZLZXlVc2FnZTsKICAgICBkb3VibGUgbV9maXJzdERlY3J5
cHRUaW1lIHsgMCB9OwogICAgIGRvdWJsZSBtX2xhdGVzdERlY3J5cHRUaW1lIHsgMCB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3Bw
CmluZGV4IDJmY2QwMzRhNWY4ZWI2YmI1MzAwODVhZjlhNGZmMTBkY2RlNjI5MWYuLjljYWJlNTc1
MTE3OGFhMjZjMjY3MDYxMjY5NDkxY2M3MGZjZjlmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKQEAgLTMxLDEyICszMSwx
NCBAQAogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKIAorI2luY2x1ZGUgIkFic3RyYWN0
RXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiQ0RNLmgiCiAjaW5jbHVkZSAiQ0RNQ2xpZW50LmgiCiAj
aW5jbHVkZSAiQ0RNSW5zdGFuY2UuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYUtleVNlc3Npb24uaCIKKyNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVy
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTc5LDcgKzgxLDcgQEAgRXhjZXB0aW9uT3I8
UmVmPE1lZGlhS2V5U2Vzc2lvbj4+IE1lZGlhS2V5czo6Y3JlYXRlU2Vzc2lvbihTY3JpcHRFeGVj
dXRpb25Db250ZXgKICAgICByZXR1cm4gc2Vzc2lvbjsKIH0KIAotdm9pZCBNZWRpYUtleXM6OnNl
dFNlcnZlckNlcnRpZmljYXRlKGNvbnN0IEJ1ZmZlclNvdXJjZSYgc2VydmVyQ2VydGlmaWNhdGUs
IFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3ZvaWQgTWVkaWFLZXlzOjpzZXRTZXJ2
ZXJDZXJ0aWZpY2F0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBCdWZm
ZXJTb3VyY2UmIHNlcnZlckNlcnRpZmljYXRlLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21p
c2UpCiB7CiAgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2VuY3J5cHRlZC1tZWRpYS8jZG9t
LW1lZGlha2V5cy1zZXRzZXJ2ZXJjZXJ0aWZpY2F0ZQogICAgIC8vIFczQyBFZGl0b3IncyBEcmFm
dCAwOSBOb3ZlbWJlciAyMDE2CkBAIC0xMDQsNyArMTA2LDcgQEAgdm9pZCBNZWRpYUtleXM6OnNl
dFNlcnZlckNlcnRpZmljYXRlKGNvbnN0IEJ1ZmZlclNvdXJjZSYgc2VydmVyQ2VydGlmaWNhdGUs
IFJlZjwKICAgICAvLyA0LiBMZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgogICAgIC8vIDUu
IFJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgogCi0gICAgbV90YXNrUXVldWUu
ZW5xdWV1ZVRhc2soW3RoaXMsIGNlcnRpZmljYXRlID0gV1RGTW92ZShjZXJ0aWZpY2F0ZSksIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsKKyAgICBjb250ZXh0LmV2ZW50
TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBjb250ZXh0LCBbdGhpcywg
Y2VydGlmaWNhdGUgPSBXVEZNb3ZlKGNlcnRpZmljYXRlKSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldICgpIG11dGFibGUgewogICAgICAgICAvLyA1LjEuIFVzZSB0aGlzIG9iamVjdCdzIGNk
bSBpbnN0YW5jZSB0byBwcm9jZXNzIGNlcnRpZmljYXRlLgogICAgICAgICBpZiAobV9pbnN0YW5j
ZS0+c2V0U2VydmVyQ2VydGlmaWNhdGUoV1RGTW92ZShjZXJ0aWZpY2F0ZSkpID09IENETUluc3Rh
bmNlOjpGYWlsZWQpIHsKICAgICAgICAgICAgIC8vIDUuMi4gSWYgdGhlIHByZWNlZGluZyBzdGVw
IGZhaWxlZCwgcmVzb2x2ZSBwcm9taXNlIHdpdGggYSBuZXcgRE9NRXhjZXB0aW9uIHdob3NlIG5h
bWUgaXMgdGhlIGFwcHJvcHJpYXRlIGVycm9yIG5hbWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaAppbmRleCBmYTI2OTMzMDAyYzljNzQ0
MTFjNGUzMjJjYTA3MzQ1MWVhYTEyYTZiLi4xZTJlMWEyNzcxMzQwZTZkZjFlMGE5OGE1NDJjY2Q1
ZjgyYWUyOGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvTWVkaWFLZXlzLmgKQEAgLTMxLDcgKzMxLDYgQEAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQogCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKLSNpbmNsdWRlICJHZW5lcmljVGFza1F1
ZXVlLmgiCiAjaW5jbHVkZSAiTWVkaWFLZXlTZXNzaW9uVHlwZS5oIgogI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNTksNyArNTgsNyBAQCBwdWJs
aWM6CiAgICAgfk1lZGlhS2V5cygpOwogCiAgICAgRXhjZXB0aW9uT3I8UmVmPE1lZGlhS2V5U2Vz
c2lvbj4+IGNyZWF0ZVNlc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE1lZGlhS2V5U2Vz
c2lvblR5cGUpOwotICAgIHZvaWQgc2V0U2VydmVyQ2VydGlmaWNhdGUoY29uc3QgQnVmZmVyU291
cmNlJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgdm9pZCBzZXRTZXJ2ZXJDZXJ0aWZp
Y2F0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgQnVmZmVyU291cmNlJiwgUmVmPERl
ZmVycmVkUHJvbWlzZT4mJik7CiAKICAgICB2b2lkIGF0dGFjaENETUNsaWVudChDRE1DbGllbnQm
KTsKICAgICB2b2lkIGRldGFjaENETUNsaWVudChDRE1DbGllbnQmKTsKQEAgLTgwLDcgKzc5LDYg
QEAgcHJvdGVjdGVkOgogCiAgICAgVmVjdG9yPFJlZjxNZWRpYUtleVNlc3Npb24+PiBtX3Nlc3Np
b25zOwogICAgIFZlY3RvcjxDRE1DbGllbnQqPiBtX2NkbUNsaWVudHM7Ci0gICAgR2VuZXJpY1Rh
c2tRdWV1ZTxUaW1lcj4gbV90YXNrUXVldWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlh
S2V5cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5
cy5pZGwKaW5kZXggZGIxYjA1MzQzYmMyMTM4YzliNmJjNTIyNWY3OTI5NzMzNmZkYjI5ZC4uZDZm
MDRjZGRiZTUwZDMxNDgzOTVmNjVlYzZiZjkwNTdmZmJmNGRjZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmlkbApAQCAtMzMsNSAr
MzMsNSBAQAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCiBdIGludGVyZmFjZSBNZWRp
YUtleXMgewogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4
Y2VwdGlvbl0gTWVkaWFLZXlTZXNzaW9uIGNyZWF0ZVNlc3Npb24ob3B0aW9uYWwgTWVkaWFLZXlT
ZXNzaW9uVHlwZSBzZXNzaW9uVHlwZSA9ICJ0ZW1wb3JhcnkiKTsKLSAgICBQcm9taXNlPGJvb2w+
IHNldFNlcnZlckNlcnRpZmljYXRlKEJ1ZmZlclNvdXJjZSBzZXJ2ZXJDZXJ0aWZpY2F0ZSk7Cisg
ICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIFByb21pc2U8Ym9vbD4gc2V0U2Vy
dmVyQ2VydGlmaWNhdGUoQnVmZmVyU291cmNlIHNlcnZlckNlcnRpZmljYXRlKTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9XZWJL
aXRNZWRpYUtleVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFLZXlTZXNzaW9uLmNwcAppbmRleCA4ZGRlZjI1N2RmZTBm
NDdhNjU0Mjc4Yjk0ZDRhYzg4ZDkzM2JiNTlmLi41YmEyZWVkMThkODQ2N2MwMjUxNzUxYTNhYjJh
ZWY0YWU1YjA2NDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL2xlZ2FjeS9XZWJLaXRNZWRpYUtleVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L1dlYktpdE1lZGlhS2V5U2Vzc2lvbi5j
cHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElB
KQogCisjaW5jbHVkZSAiQWJzdHJhY3RFdmVudExvb3AuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC01NCw3ICs1
NSw2IEBAIFdlYktpdE1lZGlhS2V5U2Vzc2lvbjo6V2ViS2l0TWVkaWFLZXlTZXNzaW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdlCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNv
bnRleHQpCiAgICAgLCBtX2tleXMoJmtleXMpCiAgICAgLCBtX2tleVN5c3RlbShrZXlTeXN0ZW0p
Ci0gICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmNy
ZWF0ZSgqdGhpcykpCiAgICAgLCBtX3Nlc3Npb24oa2V5cy5jZG0oKS5jcmVhdGVTZXNzaW9uKCp0
aGlzKSkKICAgICAsIG1fa2V5UmVxdWVzdFRpbWVyKCp0aGlzLCAmV2ViS2l0TWVkaWFLZXlTZXNz
aW9uOjprZXlSZXF1ZXN0VGltZXJGaXJlZCkKICAgICAsIG1fYWRkS2V5VGltZXIoKnRoaXMsICZX
ZWJLaXRNZWRpYUtleVNlc3Npb246OmFkZEtleVRpbWVyRmlyZWQpCkBAIC02Nyw4ICs2Nyw2IEBA
IFdlYktpdE1lZGlhS2V5U2Vzc2lvbjo6fldlYktpdE1lZGlhS2V5U2Vzc2lvbigpCiB7CiAgICAg
aWYgKG1fc2Vzc2lvbikKICAgICAgICAgbV9zZXNzaW9uLT5zZXRDbGllbnQobnVsbHB0cik7Ci0K
LSAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+Y2FuY2VsQWxsRXZlbnRzKCk7CiB9CiAKIHZvaWQgV2Vi
S2l0TWVkaWFLZXlTZXNzaW9uOjpjbG9zZSgpCkBAIC0xODMsNyArMTgxLDcgQEAgdm9pZCBXZWJL
aXRNZWRpYUtleVNlc3Npb246OmFkZEtleVRpbWVyRmlyZWQoKQogICAgICAgICBpZiAoZGlkU3Rv
cmVLZXkpIHsKICAgICAgICAgICAgIGF1dG8ga2V5YWRkZWRFdmVudCA9IEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLndlYmtpdGtleWFkZGVkRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBF
dmVudDo6SXNDYW5jZWxhYmxlOjpObyk7CiAgICAgICAgICAgICBrZXlhZGRlZEV2ZW50LT5zZXRU
YXJnZXQodGhpcyk7Ci0gICAgICAgICAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50
KFdURk1vdmUoa2V5YWRkZWRFdmVudCkpOworICAgICAgICAgICAgcXVldWVUYXNrVG9EaXNwYXRj
aEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBXVEZNb3ZlKGtleWFkZGVkRXZl
bnQpKTsKIAogICAgICAgICAgICAgQVNTRVJUKG1fa2V5cyk7CiAgICAgICAgICAgICBtX2tleXMt
PmtleUFkZGVkKCk7CkBAIC0yMDcsNyArMjA1LDcgQEAgdm9pZCBXZWJLaXRNZWRpYUtleVNlc3Np
b246OnNlbmRNZXNzYWdlKFVpbnQ4QXJyYXkqIG1lc3NhZ2UsIFN0cmluZyBkZXN0aW5hdGlvblUK
IHsKICAgICBhdXRvIGV2ZW50ID0gV2ViS2l0TWVkaWFLZXlNZXNzYWdlRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkud2Via2l0a2V5bWVzc2FnZUV2ZW50LCBtZXNzYWdlLCBkZXN0aW5hdGlvblVS
TCk7CiAgICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKLSAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+
ZW5xdWV1ZUV2ZW50KFdURk1vdmUoZXZlbnQpKTsKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZl
bnQoKnRoaXMsIFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFdURk1vdmUoZXZlbnQpKTsKIH0KIAog
dm9pZCBXZWJLaXRNZWRpYUtleVNlc3Npb246OnNlbmRFcnJvcihNZWRpYUtleUVycm9yQ29kZSBl
cnJvckNvZGUsIHVpbnQzMl90IHN5c3RlbUNvZGUpCkBAIC0yMTYsNyArMjE0LDcgQEAgdm9pZCBX
ZWJLaXRNZWRpYUtleVNlc3Npb246OnNlbmRFcnJvcihNZWRpYUtleUVycm9yQ29kZSBlcnJvckNv
ZGUsIHVpbnQzMl90IHN5c3QKIAogICAgIGF1dG8ga2V5ZXJyb3JFdmVudCA9IEV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLndlYmtpdGtleWVycm9yRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5v
LCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObyk7CiAgICAga2V5ZXJyb3JFdmVudC0+c2V0VGFyZ2V0
KHRoaXMpOwotICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShrZXll
cnJvckV2ZW50KSk7CisgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291
cmNlOjpOZXR3b3JraW5nLCBXVEZNb3ZlKGtleWVycm9yRXZlbnQpKTsKIH0KIAogU3RyaW5nIFdl
YktpdE1lZGlhS2V5U2Vzc2lvbjo6bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0CkBA
IC0yMzgsNyArMjM2LDcgQEAgU3RyaW5nIFdlYktpdE1lZGlhS2V5U2Vzc2lvbjo6bWVkaWFLZXlz
U3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0CiAKIGJvb2wgV2ViS2l0TWVkaWFLZXlTZXNzaW9uOjpo
YXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIHJldHVybiAobV9rZXlzICYmIG1fc2Vz
c2lvbikgfHwgbV9hc3luY0V2ZW50UXVldWUtPmhhc1BlbmRpbmdFdmVudHMoKTsKKyAgICByZXR1
cm4gKG1fa2V5cyAmJiBtX3Nlc3Npb24pIHx8IEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0Fj
dGl2aXR5KCk7CiB9CiAKIHZvaWQgV2ViS2l0TWVkaWFLZXlTZXNzaW9uOjpzdG9wKCkKQEAgLTI1
MSwxMiArMjQ5LDYgQEAgY29uc3QgY2hhciogV2ViS2l0TWVkaWFLZXlTZXNzaW9uOjphY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QKICAgICByZXR1cm4gIldlYktpdE1lZGlhS2V5U2Vzc2lvbiI7
CiB9CiAKLWJvb2wgV2ViS2l0TWVkaWFLZXlTZXNzaW9uOjpzaG91bGRQcmV2ZW50RW50ZXJpbmdC
YWNrRm9yd2FyZENhY2hlX0RFUFJFQ0FURUQoKSBjb25zdAotewotICAgIC8vIEZJWE1FOiBUaGlz
IHNob3VsZCBuZXZlciBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCi0g
ICAgcmV0dXJuIHRydWU7Ci19Ci0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9XZWJLaXRNZWRpYUtleVNlc3Npb24u
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L1dlYktpdE1l
ZGlhS2V5U2Vzc2lvbi5oCmluZGV4IGNmZGViMjQ4NjVlZWVkYjNjNjA2OTA2NDQwMjY5MzQ5OWQy
MzYwMjMuLmExMmY0OTc1MGY4MDM5NGM0ZDRiNjdkOWQyMmU3YjlkMTk3ODgzYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L1dlYktpdE1l
ZGlhS2V5U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvbGVnYWN5L1dlYktpdE1lZGlhS2V5U2Vzc2lvbi5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5j
bHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25Pci5oIgotI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCiAjaW5j
bHVkZSAiTGVnYWN5Q0RNU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvVWludDhBcnJheS5oPgpAQCAtNDEsNyArNDAsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBXZWJLaXRNZWRpYUtleUVycm9yOwogY2xhc3MgV2ViS2l0TWVkaWFL
ZXlzOwogCi1jbGFzcyBXZWJLaXRNZWRpYUtleVNlc3Npb24gZmluYWwgOiBwdWJsaWMgUmVmQ291
bnRlZDxXZWJLaXRNZWRpYUtleVNlc3Npb24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5l
RGF0YSwgcHJpdmF0ZSBBY3RpdmVET01PYmplY3QsIHByaXZhdGUgTGVnYWN5Q0RNU2Vzc2lvbkNs
aWVudCB7CitjbGFzcyBXZWJLaXRNZWRpYUtleVNlc3Npb24gZmluYWwgOiBwdWJsaWMgUmVmQ291
bnRlZDxXZWJLaXRNZWRpYUtleVNlc3Npb24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5l
RGF0YSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0ZSBMZWdhY3lDRE1TZXNzaW9uQ2xp
ZW50IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYktpdE1lZGlhS2V5U2Vzc2lvbik7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJLaXRNZWRpYUtleVNlc3Npb24+IGNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2ViS2l0TWVkaWFLZXlzJiwgY29uc3QgU3RyaW5nJiBr
ZXlTeXN0ZW0pOwpAQCAtNzgsNyArNzcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVyZWZFdmVu
dFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQogCiAgICAgdm9pZCBzdG9wKCkgZmluYWw7Ci0g
ICAgYm9vbCBzaG91bGRQcmV2ZW50RW50ZXJpbmdCYWNrRm9yd2FyZENhY2hlX0RFUFJFQ0FURUQo
KSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3QgZmluYWw7CiAKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFj
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdlYktpdE1lZGlhS2V5U2Vzc2lvbkV2ZW50VGFyZ2V0
SW50ZXJmYWNlVHlwZTsgfQpAQCAtODgsNyArODYsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZyBt
X2tleVN5c3RlbTsKICAgICBTdHJpbmcgbV9zZXNzaW9uSWQ7CiAgICAgUmVmUHRyPFdlYktpdE1l
ZGlhS2V5RXJyb3I+IG1fZXJyb3I7Ci0gICAgVW5pcXVlUmVmPE1haW5UaHJlYWRHZW5lcmljRXZl
bnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPExlZ2FjeUNE
TVNlc3Npb24+IG1fc2Vzc2lvbjsKIAogICAgIHN0cnVjdCBQZW5kaW5nS2V5UmVxdWVzdCB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggNDMxODQ0Yzc4ZmVlOGIzNzhmNTIwMmIzMTAwMmNlMDQzMzc1NDgyZC4uZjY3YWNjMmRj
NmYwZGRiYTJmYzE2NDlhYzcxM2U1NTU3Njk2M2E5OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDE5LTExLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWVk
aWFLZXlTZXNzaW9uIC8gV2ViS2l0TWVkaWFLZXlTZXNzaW9uIHNob3VsZCBub3QgcHJldmVudCBl
bnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMwODkKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vl
bm4gRmFibGV0LgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAg
ICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLW1lZGlha2V5c2Vzc2lvbi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNh
Y2hlLW1lZGlha2V5c2Vzc2lvbi5odG1sOiBBZGRlZC4KKwogMjAxOS0xMS0wNCAgVHJ1aXR0IFNh
dmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIyNTE5OTMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vcGFnZS1jYWNoZS1tZWRpYWtleXNlc3Npb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtbWVkaWFrZXlzZXNzaW9uLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41NDhiNjkzNjQxNGYzM2MyMmYwYzljYjIxMGQwNmMyNGVmNTQ0ZTFm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bh
Z2UtY2FjaGUtbWVkaWFrZXlzZXNzaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitU
ZXN0cyB0aGF0IGEgcGFnZSB3aXRoIGEgTWVkaWFLZXlTZXNzaW9uIGdvZXMgaW50byB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyAh
IXNlc3Npb24gaXMgdHJ1ZQorcGFnZXNob3cgLSBub3QgZnJvbSBjYWNoZQorcGFnZWhpZGUgLSBl
bnRlcmluZyBjYWNoZQorcGFnZXNob3cgLSBmcm9tIGNhY2hlCitQQVNTIFBhZ2Ugd2FzIHJlc3Rv
cmVkIGZyb20gYmFjay9mb3J3YXJkIGNhY2hlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtbWVkaWFrZXlzZXNzaW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1tZWRpYWtleXNlc3Npb24uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xYzc3ZWQ5NjEyODVlNTIzNGMyNjQ5Y2EyZDUwMTViNGI1NmQ0MGMyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2Fj
aGUtbWVkaWFrZXlzZXNzaW9uLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bignVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIE1lZGlhS2V5U2Vzc2lvbiBnb2VzIGludG8gdGhl
IGJhY2svZm9yd2FyZCBjYWNoZS4nKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigicGFnZXNob3ciLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVn
KCJwYWdlc2hvdyAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAibm90ICIpICsgImZyb20g
Y2FjaGUiKTsKKyAgICBpZiAoZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRlc3RQYXNzZWQo
IlBhZ2Ugd2FzIHJlc3RvcmVkIGZyb20gYmFjay9mb3J3YXJkIGNhY2hlIik7CisgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgIH0KK30pOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFn
ZWhpZGUiLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCJwYWdlaGlkZSAtICIgKyAoZXZl
bnQucGVyc2lzdGVkID8gIiIgOiAibm90ICIpICsgImVudGVyaW5nIGNhY2hlIik7CisgICAgaWYg
KCFldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBmYWlsZWQgdG8g
ZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNoZSIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICB9Cit9KTsKKworb25sb2FkID0gKCkgPT4geworICAgIG1lZGlhS2V5cyA9IG5ldyBXZWJL
aXRNZWRpYUtleXMoJ29yZy53M2MuY2xlYXJrZXknKTsKKyAgICBzZXNzaW9uID0gbWVkaWFLZXlz
LmNyZWF0ZVNlc3Npb24oJ2FwcGxpY2F0aW9uL3gtbXBlZ3VybCcsIG5ldyBVaW50OEFycmF5KDEp
KTsKKyAgICBzaG91bGRCZVRydWUoIiEhc2Vzc2lvbiIpOworICAgIHNldFRpbWVvdXQoKCkgPT4g
eworICAgICAgICB0ZXN0TGluay5jbGljaygpOworICAgIH0sIDApOworfQorPC9zY3JpcHQ+Cis8
YSBpZD0idGVzdExpbmsiIGhyZWY9InJlc291cmNlcy9wYWdlLWNhY2hlLWhlbHBlci5odG1sIiBz
dHlsZT0iZGlzcGxheTogbm9uZSI+TGluazwvYT4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>