<?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>167870</bug_id>
          
          <creation_ts>2017-02-05 23:36:30 -0800</creation_ts>
          <short_desc>[EME] Implement MediaKeySession::remove()</short_desc>
          <delta_ts>2017-02-08 02:41:30 -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>WebCore Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>158841</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>calvaris</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1273484</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-02-05 23:36:30 -0800</bug_when>
    <thetext>SSIA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273502</commentid>
    <comment_count>1</comment_count>
      <attachid>300698</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-02-06 01:19:55 -0800</bug_when>
    <thetext>Created attachment 300698
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273505</commentid>
    <comment_count>2</comment_count>
      <attachid>300698</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-02-06 02:18:02 -0800</bug_when>
    <thetext>Comment on attachment 300698
Patch

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

&gt; Source/WebCore/testing/MockCDMFactory.h:75
&gt; +    Vector&lt;Ref&lt;SharedBuffer&gt;&gt; removeKeysFromSessionWithID(const String&amp; id);

You don&apos;t need the parameter name here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273576</commentid>
    <comment_count>3</comment_count>
      <attachid>300698</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-02-06 08:47:52 -0800</bug_when>
    <thetext>Comment on attachment 300698
Patch

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

&gt; Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp:422
&gt; +        CDMInstance::LicenseType sessionType;
&gt; +        switch (m_sessionType) {
&gt; +        case MediaKeySessionType::Temporary:
&gt; +            sessionType = CDMInstance::LicenseType::Temporary;
&gt; +            break;
&gt; +        case MediaKeySessionType::PersistentLicense:
&gt; +            sessionType = CDMInstance::LicenseType::Persistable;
&gt; +            break;
&gt; +        case MediaKeySessionType::PersistentUsageRecord:
&gt; +            sessionType = CDMInstance::LicenseType::UsageRecord;
&gt; +            break;
&gt; +        };

This pattern happens enough in the new MSE code that we should have a conversion routine to cast between MediaKeySessionType &lt;-&gt; LicenseType.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273664</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-02-06 11:45:33 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; This pattern happens enough in the new MSE code that we should have a
&gt; conversion routine to cast between MediaKeySessionType &lt;-&gt; LicenseType.

Posted a patch in bug #167896.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273901</commentid>
    <comment_count>5</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-02-07 01:11:49 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp:422
&gt; &gt; +        CDMInstance::LicenseType sessionType;
&gt; &gt; +        switch (m_sessionType) {
&gt; &gt; +        case MediaKeySessionType::Temporary:
&gt; &gt; +            sessionType = CDMInstance::LicenseType::Temporary;
&gt; &gt; +            break;
&gt; &gt; +        case MediaKeySessionType::PersistentLicense:
&gt; &gt; +            sessionType = CDMInstance::LicenseType::Persistable;
&gt; &gt; +            break;
&gt; &gt; +        case MediaKeySessionType::PersistentUsageRecord:
&gt; &gt; +            sessionType = CDMInstance::LicenseType::UsageRecord;
&gt; &gt; +            break;
&gt; &gt; +        };
&gt; 
&gt; This pattern happens enough in the new MSE code that we should have a
&gt; conversion routine to cast between MediaKeySessionType &lt;-&gt; LicenseType.

I thought of that too but I thought it might be left for a rework later.

Same goes for several functions that we have on the tests and I am seeing repeated during the latest patches review processes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274292</commentid>
    <comment_count>6</comment_count>
      <attachid>300886</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-02-08 02:39:19 -0800</bug_when>
    <thetext>Created attachment 300886
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274293</commentid>
    <comment_count>7</comment_count>
      <attachid>300886</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-02-08 02:41:22 -0800</bug_when>
    <thetext>Comment on attachment 300886
Patch for landing

Clearing flags on attachment: 300886

Committed r211857: &lt;http://trac.webkit.org/changeset/211857&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274294</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-02-08 02:41:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300698</attachid>
            <date>2017-02-06 01:19:55 -0800</date>
            <delta_ts>2017-02-08 02:39:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167870-20170206011734.patch</filename>
            <type>text/plain</type>
            <size>21711</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWExM2U3ZjU5MTNiMzU2
NjcyYWE4OWYyODUwNzYzNjFkNTQ0NjhjMS4uOWNiODQ2YTcyYmZhZTg3ZTU2MzJjOWI4NTJlMGRl
ZmVlNzBjNjljMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE3LTAyLTA2ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbRU1FXSBJbXBsZW1l
bnQgTWVkaWFLZXlTZXNzaW9uOjpyZW1vdmUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IE1lZGlhS2V5U2Vzc2lvbjo6cmVtb3ZlKCkg
YXMgb3V0bGluZWQgaW4gdGhlIHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgVGhlIENETUluc3Rh
bmNlOjpyZW1vdmVTZXNzaW9uRGF0YSgpIHZpcnR1YWwgbWV0aG9kIGlzIGFkZGVkLiBDRE1JbnN0
YW5jZQorICAgICAgICBpbXBsZW1lbnRvcnMgc2hvdWxkIHJlbW92ZSBhbnkgc2Vzc2lvbiBkYXRh
IHN0b3JlZCBmb3IgdGhlIHNlc3Npb24gdGhhdCdzCisgICAgICAgIHJlcHJlc2VudGVkIGJ5IHRo
ZSBwYXNzZWQtaW4gc2Vzc2lvbiBJRCBhbmQgc2Vzc2lvbiB0eXBlLgorCisgICAgICAgIE9uY2Ug
dGhlIHNlc3Npb24gZGF0YSBpcyByZW1vdmVkLCB0aGUgcGFzc2VkLWluIGNhbGxiYWNrIHNob3Vs
ZCBiZSBpbnZva2VkCisgICAgICAgIGJ5IHRoZSBDRE1JbnN0YW5jZSBvYmplY3Qgc28gdGhhdCBN
ZWRpYUtleVNlc3Npb24gY2FuIGltbWVkaWF0ZWx5IHF1ZXVlIGEKKyAgICAgICAgdGFzayBpbiB3
aGljaCBpdCB1cGRhdGVzIGtleSBzdGF0dXNlcyBhbmQgZXhwaXJhdGlvbiwgcmVqZWN0IHRoZSBw
cm9taXNlIGlmCisgICAgICAgIHRoZSBkYXRhIHJlbW92YWwgZmFpbGVkLCBvciBlbnF1ZXVlIGFu
eSBsaWNlbnNlLXJlbGVhc2UgbWVzc2FnZSBhbmQgZmluYWxseQorICAgICAgICBzdWNjZXNzZnVs
bHkgcmVzb2x2ZSB0aGUgcHJvbWlzZS4KKworICAgICAgICBNb2NrQ0RNRmFjdG9yeSBnYWlucyB0
aGUgcmVtb3ZlS2V5c0Zyb21TZXNzaW9uV2l0aElEKCkgbWV0aG9kIHRoYXQgcHVyZ2VzCisgICAg
ICAgIHRoZSBrZXlzIGZvciBhIGdpdmVuIHNlc3Npb24gSUQuIFRoZSBtZXRob2QgaXMgY2FsbGVk
IGZyb20KKyAgICAgICAgTW9ja0NETUluc3RhbmNlOjpyZW1vdmVTZXNzaW9uRGF0YSgpIGltcGxl
bWVudGF0aW9uLCB3aGljaCBwYXNzZXMgdGhlCisgICAgICAgIHJlbW92ZWQga2V5cyB0byB0aGUg
UmVtb3ZlU2Vzc2lvbkRhdGFDYWxsYmFjaywgYWxvbmcgd2l0aCBhIGxpY2Vuc2UtcmVsZWFzZQor
ICAgICAgICBtZXNzYWdlIHRoYXQgaXMgY2hlY2tlZCBpbiB0aGUgdGVzdHMuIFRoZSBrZXkgcmVt
b3ZhbCBpdHNlbGYgaXNuJ3QgdGVzdGVkCisgICAgICAgIHlldCBiZWNhdXNlIHRoZSBNZWRpYUtl
eVNlc3Npb24ncyBgdXBkYXRlIGtleSBzdGF0dXNlc2AgYWxnb3JpdGhtIGlzbid0CisgICAgICAg
IGltcGxlbWVudGVkIHlldC4KKworICAgICAgICBUZXN0OiBtZWRpYS9lbmNyeXB0ZWQtbWVkaWEv
bW9jay1NZWRpYUtleVNlc3Npb24tcmVtb3ZlLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvQ0RNSW5zdGFuY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Np
b246OnJlbW92ZSk6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrQ0RNRmFjdG9yeTo6cmVtb3ZlS2V5c0Zyb21TZXNzaW9uV2l0aElE
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDRE1JbnN0YW5jZTo6cmVtb3ZlU2Vzc2lvbkRhdGEp
OgorICAgICAgICAqIHRlc3RpbmcvTW9ja0NETUZhY3RvcnkuaDoKKwogMjAxNy0wMi0wNCAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFN0YXRpYyBBbmFs
eXplcjogV2ViQ29yZU5TVVJMRXh0cmFzLm1tOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9p
bnRlZCB0byBieSAnYWxsQnl0ZXNCdWZmZXInCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETUluc3RhbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL0NETUluc3RhbmNlLmgKaW5kZXggMTk3YzVlMWE2MjBhZDllNmE3
M2E5MTRjYjA3NGIxZjM1MjU1ZmE5YS4uNjIyMDFiY2Y0YWFiMTY4YTUwZGI1M2UyMzE3ZGViNmJj
ZjYwMDk4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9DRE1JbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvQ0RNSW5zdGFuY2UuaApAQCAtODIsNiArODIsOSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTWVz
c2FnZSA9IHN0ZDo6cGFpcjxNZXNzYWdlVHlwZSwgUmVmPFNoYXJlZEJ1ZmZlcj4+OwogICAgIHVz
aW5nIExpY2Vuc2VVcGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoYm9vbCBzZXNzaW9uV2Fz
Q2xvc2VkLCBzdGQ6Om9wdGlvbmFsPEtleVN0YXR1c1ZlY3Rvcj4mJiBjaGFuZ2VkS2V5cywgc3Rk
OjpvcHRpb25hbDxkb3VibGU+JiYgY2hhbmdlZEV4cGlyYXRpb24sIHN0ZDo6b3B0aW9uYWw8TWVz
c2FnZT4mJiBtZXNzYWdlLCBTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKT47CiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUxpY2Vuc2UoTGljZW5zZVR5cGUsIGNvbnN0IFNoYXJlZEJ1ZmZlciYgcmVzcG9u
c2UsIExpY2Vuc2VVcGRhdGVDYWxsYmFjaykgPSAwOworCisgICAgdXNpbmcgUmVtb3ZlU2Vzc2lv
bkRhdGFDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoS2V5U3RhdHVzVmVjdG9yJiYsIHN0ZDo6b3B0
aW9uYWw8UmVmPFNoYXJlZEJ1ZmZlcj4+JiYsIFN1Y2Nlc3NWYWx1ZSk+OworICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVTZXNzaW9uRGF0YShjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgTGljZW5zZVR5
cGUsIFJlbW92ZVNlc3Npb25EYXRhQ2FsbGJhY2spID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9u
LmNwcAppbmRleCA4NzJiOWUxYWNiOTNjYzI5YmQ5MzAxNjQwNmNiZjE2ZTVmOTVlOWFlLi5iYmE5
OTkzNDYwODFlN2E2ZGVlMjA2Zjc3NjY3NzFiODUwZjQ4NTI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3Bw
CkBAIC0zODksOSArMzg5LDgzIEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpjbG9zZShSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgTWVkaWFL
ZXlTZXNzaW9uOjpyZW1vdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJikKK3ZvaWQgTWVkaWFLZXlT
ZXNzaW9uOjpyZW1vdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2VuY3J5cHRlZC1t
ZWRpYS8jZG9tLW1lZGlha2V5c2Vzc2lvbi1yZW1vdmUKKyAgICAvLyBXM0MgRWRpdG9yJ3MgRHJh
ZnQgMDkgTm92ZW1iZXIgMjAxNgorCisgICAgLy8gMS4gSWYgdGhpcyBvYmplY3QgaXMgY2xvc2Vk
LCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gSW52YWxpZFN0YXRlRXJyb3IuCisg
ICAgLy8gMi4gSWYgdGhpcyBvYmplY3QncyBjYWxsYWJsZSB2YWx1ZSBpcyBmYWxzZSwgcmV0dXJu
IGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuIEludmFsaWRTdGF0ZUVycm9yLgorICAgIGlmICht
X2Nsb3NlZCB8fCAhbV9jYWxsYWJsZSkgeworICAgICAgICBwcm9taXNlLT5yZWplY3QoSU5WQUxJ
RF9TVEFURV9FUlIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gMy4gTGV0IHBy
b21pc2UgYmUgYSBuZXcgcHJvbWlzZS4KKyAgICAvLyA0LiBSdW4gdGhlIGZvbGxvd2luZyBzdGVw
cyBpbiBwYXJhbGxlbDoKKyAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgICAgICAvLyA0LjEuIExldCBj
ZG0gYmUgdGhlIENETSBpbnN0YW5jZSByZXByZXNlbnRlZCBieSB0aGlzIG9iamVjdCdzIGNkbSBp
bnN0YW5jZSB2YWx1ZS4KKyAgICAgICAgLy8gNC4yLiBMZXQgbWVzc2FnZSBiZSBudWxsLgorICAg
ICAgICAvLyA0LjMuIExldCBtZXNzYWdlIHR5cGUgYmUgbnVsbC4KKworICAgICAgICBDRE1JbnN0
YW5jZTo6TGljZW5zZVR5cGUgc2Vzc2lvblR5cGU7CisgICAgICAgIHN3aXRjaCAobV9zZXNzaW9u
VHlwZSkgeworICAgICAgICBjYXNlIE1lZGlhS2V5U2Vzc2lvblR5cGU6OlRlbXBvcmFyeToKKyAg
ICAgICAgICAgIHNlc3Npb25UeXBlID0gQ0RNSW5zdGFuY2U6OkxpY2Vuc2VUeXBlOjpUZW1wb3Jh
cnk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRpYUtleVNlc3Npb25UeXBl
OjpQZXJzaXN0ZW50TGljZW5zZToKKyAgICAgICAgICAgIHNlc3Npb25UeXBlID0gQ0RNSW5zdGFu
Y2U6OkxpY2Vuc2VUeXBlOjpQZXJzaXN0YWJsZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIE1lZGlhS2V5U2Vzc2lvblR5cGU6OlBlcnNpc3RlbnRVc2FnZVJlY29yZDoKKyAgICAg
ICAgICAgIHNlc3Npb25UeXBlID0gQ0RNSW5zdGFuY2U6OkxpY2Vuc2VUeXBlOjpVc2FnZVJlY29y
ZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9OworCisgICAgICAgIC8vIDQuNC4gVXNl
IHRoZSBjZG0gdG8gZXhlY3V0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOgorICAgICAgICBtX2luc3Rh
bmNlLT5yZW1vdmVTZXNzaW9uRGF0YShtX3Nlc3Npb25JZCwgc2Vzc2lvblR5cGUsIFt0aGlzLCB3
ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0gKENETUluc3RhbmNlOjpLZXlTdGF0dXNWZWN0b3ImJiBrZXlzLCBzdGQ6
Om9wdGlvbmFsPFJlZjxTaGFyZWRCdWZmZXI+PiYmIG1lc3NhZ2UsIENETUluc3RhbmNlOjpTdWNj
ZXNzVmFsdWUgc3VjY2VlZGVkKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmICghd2Vha1RoaXMp
CisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAvLyA0LjQuMS4gSWYgYW55
IGxpY2Vuc2UocykgYW5kL29yIGtleShzKSBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZXNzaW9u
OgorICAgICAgICAgICAgLy8gICA0LjQuMS4xLiBEZXN0cm95IHRoZSBsaWNlbnNlKHMpIGFuZC9v
ciBrZXkocykgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZXNzaW9uLgorICAgICAgICAgICAgLy8gICA0
LjQuMS4yLiBGb2xsb3cgdGhlIHN0ZXBzIGZvciB0aGUgdmFsdWUgb2YgdGhpcyBvYmplY3QncyBz
ZXNzaW9uIHR5cGUgZnJvbSB0aGUgZm9sbG93aW5nIGxpc3Q6CisgICAgICAgICAgICAvLyAgICAg
4oazICJ0ZW1wb3JhcnkiCisgICAgICAgICAgICAvLyAgICAgICA0LjQuMS4yLjEuMSBDb250aW51
ZSB3aXRoIHRoZSBmb2xsb3dpbmcgc3RlcHMuCisgICAgICAgICAgICAvLyAgICAg4oazICJwZXJz
aXN0ZW50LWxpY2Vuc2UiCisgICAgICAgICAgICAvLyAgICAgICA0LjQuMS4yLjIuMS4gTGV0IHJl
Y29yZCBvZiBsaWNlbnNlIGRlc3RydWN0aW9uIGJlIGEgcmVjb3JkIG9mIGxpY2Vuc2UgZGVzdHJ1
Y3Rpb24gZm9yIHRoZSBsaWNlbnNlIHJlcHJlc2VudGVkIGJ5IHRoaXMgb2JqZWN0LgorICAgICAg
ICAgICAgLy8gICAgICAgNC40LjEuMi4yLjIuIFN0b3JlIHRoZSByZWNvcmQgb2YgbGljZW5zZSBk
ZXN0cnVjdGlvbi4KKyAgICAgICAgICAgIC8vICAgICAgIDQuNC4xLjIuMi4zLiBMZXQgbWVzc2Fn
ZSBiZSBhIG1lc3NhZ2UgY29udGFpbmluZyBvciByZWZsZWN0aW5nIHRoZSByZWNvcmQgb2YgbGlj
ZW5zZSBkZXN0cnVjdGlvbi4KKyAgICAgICAgICAgIC8vICAgICDihrMgInBlcnNpc3RlbnQtdXNh
Z2UtcmVjb3JkIgorICAgICAgICAgICAgLy8gICAgICAgNC40LjEuMi4zLjEuIFN0b3JlIHRoaXMg
b2JqZWN0J3MgcmVjb3JkIG9mIGtleSB1c2FnZS4KKyAgICAgICAgICAgIC8vICAgICAgIDQuNC4x
LjIuMy4yLiBMZXQgbWVzc2FnZSBiZSBhIG1lc3NhZ2UgY29udGFpbmluZyBvciByZWZsZWN0aW5n
IHRoaXMgb2JqZWN0J3MgcmVjb3JkIG9mIGtleSB1c2FnZS4KKyAgICAgICAgICAgIC8vIE5PVEU6
IFN0ZXAgNC40LjEuIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBpbiBDRE1JbnN0YW5jZS4KKworICAg
ICAgICAgICAgLy8gNC41LiBRdWV1ZSBhIHRhc2sgdG8gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6
CisgICAgICAgICAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywga2V5cyA9IFdURk1v
dmUoa2V5cyksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBzdWNjZWVkZWQsIHByb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAvLyA0LjUu
MS4gUnVuIHRoZSBVcGRhdGUgS2V5IFN0YXR1c2VzIGFsZ29yaXRobSBvbiB0aGUgc2Vzc2lvbiwg
cHJvdmlkaW5nIGFsbCBrZXkgSUQocykgaW4gdGhlIHNlc3Npb24gYWxvbmcgd2l0aCB0aGUgInJl
bGVhc2VkIiBNZWRpYUtleVN0YXR1cyB2YWx1ZSBmb3IgZWFjaC4KKyAgICAgICAgICAgICAgICB1
cGRhdGVLZXlTdGF0dXNlcyhXVEZNb3ZlKGtleXMpKTsKKworICAgICAgICAgICAgICAgIC8vIDQu
NS4yLiBSdW4gdGhlIFVwZGF0ZSBFeHBpcmF0aW9uIGFsZ29yaXRobSBvbiB0aGUgc2Vzc2lvbiwg
cHJvdmlkaW5nIE5hTi4KKyAgICAgICAgICAgICAgICB1cGRhdGVFeHBpcmF0aW9uKHN0ZDo6bnVt
ZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOworCisgICAgICAgICAgICAgICAgLy8g
NC41LjMuIElmIGFueSBvZiB0aGUgcHJlY2VkaW5nIHN0ZXBzIGZhaWxlZCwgcmVqZWN0IHByb21p
c2Ugd2l0aCBhIG5ldyBET01FeGNlcHRpb24gd2hvc2UgbmFtZSBpcyB0aGUgYXBwcm9wcmlhdGUg
ZXJyb3IgbmFtZS4KKyAgICAgICAgICAgICAgICBpZiAoc3VjY2VlZGVkID09IENETUluc3RhbmNl
OjpTdWNjZXNzVmFsdWU6OkZhaWxlZCkgeworICAgICAgICAgICAgICAgICAgICBwcm9taXNlLT5y
ZWplY3QoTk9UX1NVUFBPUlRFRF9FUlIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gNC41LjQuIExldCBtZXNzYWdl
IHR5cGUgYmUgImxpY2Vuc2UtcmVsZWFzZSIuCisgICAgICAgICAgICAgICAgLy8gNC41LjUuIElm
IG1lc3NhZ2UgaXMgbm90IG51bGwsIHJ1biB0aGUgUXVldWUgYSAibWVzc2FnZSIgRXZlbnQgYWxn
b3JpdGhtIG9uIHRoZSBzZXNzaW9uLCBwcm92aWRpbmcgbWVzc2FnZSB0eXBlIGFuZCBtZXNzYWdl
LgorICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlKQorICAgICAgICAgICAgICAgICAgICBlbnF1
ZXVlTWVzc2FnZShNZWRpYUtleU1lc3NhZ2VUeXBlOjpMaWNlbnNlUmVsZWFzZSwgKm1lc3NhZ2Up
OworCisgICAgICAgICAgICAgICAgLy8gNC41LjYuIFJlc29sdmUgcHJvbWlzZS4KKyAgICAgICAg
ICAgICAgICBwcm9taXNlLT5yZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7
CisgICAgfSk7CisKKyAgICAvLyA1LiBSZXR1cm4gcHJvbWlzZS4KIH0KIAogdm9pZCBNZWRpYUtl
eVNlc3Npb246OmVucXVldWVNZXNzYWdlKE1lZGlhS2V5TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUs
IGNvbnN0IFNoYXJlZEJ1ZmZlciYgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2Nr
Q0RNRmFjdG9yeS5jcHAKaW5kZXggNDUxYmMxZjc2ZDNkZDIzYTZkNDdlYTc4ZWI5NWNiYTUxNDEy
NTFlYS4uOGY1Y2UyMDU2MWM3OTY5Yjk4YzMxOWNlN2FlYzUwNzUxMGE2MThjNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAKQEAgLTcyLDYgKzcyLDE1IEBAIHZv
aWQgTW9ja0NETUZhY3Rvcnk6OmFkZEtleXNUb1Nlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBp
ZCwgVmVjdG9yPFJlZjxTaGFyZWRCCiAgICAgICAgIHZhbHVlLmFwcGVuZChXVEZNb3ZlKGtleSkp
OwogfQogCitWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IE1vY2tDRE1GYWN0b3J5OjpyZW1vdmVL
ZXlzRnJvbVNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCkKK3sKKyAgICBhdXRvIGl0ID0g
bV9zZXNzaW9ucy5maW5kKGlkKTsKKyAgICBpZiAoaXQgPT0gbV9zZXNzaW9ucy5lbmQoKSkKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBXVEZNb3ZlKGl0LT52YWx1ZSk7Cit9CisK
IHZvaWQgTW9ja0NETUZhY3Rvcnk6OnNldFN1cHBvcnRlZERhdGFUeXBlcyhWZWN0b3I8U3RyaW5n
PiYmIHR5cGVzKQogewogICAgIG1fc3VwcG9ydGVkRGF0YVR5cGVzLmNsZWFyKCk7CkBAIC0yOTIs
NiArMzAxLDI0IEBAIHZvaWQgTW9ja0NETUluc3RhbmNlOjp1cGRhdGVMaWNlbnNlKExpY2Vuc2VU
eXBlLCBjb25zdCBTaGFyZWRCdWZmZXImIHJlc3BvbnNlLCBMCiAgICAgY2FsbGJhY2soZmFsc2Us
IHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQsIFN1Y2Nlc3NWYWx1ZTo6
U3VjY2VlZGVkKTsKIH0KIAordm9pZCBNb2NrQ0RNSW5zdGFuY2U6OnJlbW92ZVNlc3Npb25EYXRh
KGNvbnN0IFN0cmluZyYgaWQsIExpY2Vuc2VUeXBlLCBSZW1vdmVTZXNzaW9uRGF0YUNhbGxiYWNr
IGNhbGxiYWNrKQoreworICAgIE1vY2tDRE1GYWN0b3J5KiBmYWN0b3J5ID0gbV9jZG0gPyBtX2Nk
bS0+ZmFjdG9yeSgpIDogbnVsbHB0cjsKKyAgICBpZiAoIWZhY3RvcnkpIHsKKyAgICAgICAgY2Fs
bGJhY2soeyB9LCBzdGQ6Om51bGxvcHQsIFN1Y2Nlc3NWYWx1ZTo6RmFpbGVkKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGF1dG8ga2V5cyA9IGZhY3RvcnktPnJlbW92ZUtleXNGcm9t
U2Vzc2lvbldpdGhJRChpZCk7CisgICAgS2V5U3RhdHVzVmVjdG9yIGtleVN0YXR1c1ZlY3RvcjsK
KyAgICBrZXlTdGF0dXNWZWN0b3IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShrZXlzLnNpemUoKSk7
CisgICAgZm9yIChhdXRvJiBrZXkgOiBrZXlzKQorICAgICAgICBrZXlTdGF0dXNWZWN0b3IudW5j
aGVja2VkQXBwZW5kKHsgV1RGTW92ZShrZXkpLCBLZXlTdGF0dXM6OlJlbGVhc2VkIH0pOworCisg
ICAgQ1N0cmluZyBtZXNzYWdlIHsgInJlbW92ZS1tZXNzYWdlIiB9OworICAgIGNhbGxiYWNrKFdU
Rk1vdmUoa2V5U3RhdHVzVmVjdG9yKSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUobWVzc2FnZS5kYXRh
KCksIG1lc3NhZ2UubGVuZ3RoKCkpLCBTdWNjZXNzVmFsdWU6OlN1Y2NlZWRlZCk7Cit9CisKIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0
b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmgKaW5kZXggMDli
NTNmZWM4ZmYxODkzZTliMDA3NTNiNWViMjE3ZTNjMzBiMGU2ZC4uMjE0NDMzNGJiYmQ0MGI2OWI2
Nzc1MzA3MWFkNWYyMzk0MjBiYTgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrQ0RNRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZh
Y3RvcnkuaApAQCAtNzIsNiArNzIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNTZXNzaW9uV2l0
aElEKGNvbnN0IFN0cmluZyYgaWQpIHsgcmV0dXJuIG1fc2Vzc2lvbnMuY29udGFpbnMoaWQpOyB9
CiAgICAgdm9pZCByZW1vdmVTZXNzaW9uV2l0aElEKGNvbnN0IFN0cmluZyYgaWQpIHsgbV9zZXNz
aW9ucy5yZW1vdmUoaWQpOyB9CiAgICAgdm9pZCBhZGRLZXlzVG9TZXNzaW9uV2l0aElEKGNvbnN0
IFN0cmluZyYgaWQsIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4mJik7CisgICAgVmVjdG9yPFJl
ZjxTaGFyZWRCdWZmZXI+PiByZW1vdmVLZXlzRnJvbVNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5n
JiBpZCk7CiAKIHByaXZhdGU6CiAgICAgTW9ja0NETUZhY3RvcnkoKTsKQEAgLTEzMCw2ICsxMzEs
NyBAQCBwcml2YXRlOgogICAgIFN1Y2Nlc3NWYWx1ZSBzZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShSZWY8
U2hhcmVkQnVmZmVyPiYmKSBmaW5hbDsKICAgICB2b2lkIHJlcXVlc3RMaWNlbnNlKExpY2Vuc2VU
eXBlLCBjb25zdCBBdG9taWNTdHJpbmcmIGluaXREYXRhVHlwZSwgUmVmPFNoYXJlZEJ1ZmZlcj4m
JiBpbml0RGF0YSwgTGljZW5zZUNhbGxiYWNrKSBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZUxpY2Vu
c2UoTGljZW5zZVR5cGUsIGNvbnN0IFNoYXJlZEJ1ZmZlciYsIExpY2Vuc2VVcGRhdGVDYWxsYmFj
aykgZmluYWw7CisgICAgdm9pZCByZW1vdmVTZXNzaW9uRGF0YShjb25zdCBTdHJpbmcmLCBMaWNl
bnNlVHlwZSwgUmVtb3ZlU2Vzc2lvbkRhdGFDYWxsYmFjaykgZmluYWw7CiAKICAgICBXZWFrUHRy
PE1vY2tDRE0+IG1fY2RtOwogICAgIGJvb2wgbV9kaXN0aW5jdGl2ZUlkZW50aWZpZXJzQWxsb3dl
ZCB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAxN2Q5Y2U0NThmOTU5OWVlOGU2MGM3MTJlNjI2ZTNkM2JmNjk4
YWMxLi4xODM1OTlmM2RhZmI4ZDNlOGQ4N2VlNDQxZGY2ZTY4OTE2ZjUwYWYzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTctMDItMDYgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtFTUVdIEltcGxlbWVudCBNZWRpYUtleVNlc3Npb246OnJlbW92ZSgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc4NzAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhl
IG1vY2stTWVkaWFLZXlTZXNzaW9uLXJlbW92ZS5odG1sIHRlc3QgdGhhdCB0ZXN0cyB0aGUgZnVu
Y3Rpb25hbGl0eQorICAgICAgICBvZiB0aGUgTWVkaWFLZXlTZXNzaW9uOjpyZW1vdmUoKSBpbXBs
ZW1lbnRhdGlvbi4gVGhlIHRlc3QgY2hlY2tzIHRoYXQgdGhlCisgICAgICAgIGNhbGxzIHRvIHRo
YXQgbWV0aG9kIHByb3Blcmx5IHJlc29sdmUgb3IgcmVqZWN0IHRoZSByZXR1cm5lZCBwcm9taXNl
LAorICAgICAgICBkZXBlbmRpbmcgb24gdGhlIG9iamVjdCBzdGF0ZS4gQW5vdGhlciB0ZXN0IGNo
ZWNrcyB0aGUgbWVzc2FnZSB0aGF0J3MKKyAgICAgICAgcXVldWVkIHVwb24gYSBzdWNjZXNzZnVs
IHJlbW92YWwuCisKKyAgICAgICAgQWRkaXRpb25hbCB0ZXN0cyB3aWxsIGJlIGFkZGVkIGxhdGVy
IG9uY2UgTWVkaWFLZXlTZXNzaW9uIHByb3Blcmx5CisgICAgICAgIGltcGxlbWVudHMgdGhlIGNs
b3NlKCkgbWV0aG9kIGFuZCBrZXkgc3RhdHVzIHVwZGF0ZXMuCisKKyAgICAgICAgKiBtZWRpYS9l
bmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVNlc3Npb24tcmVtb3ZlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTZXNz
aW9uLXJlbW92ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAx
Ny0wMi0wMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04ocjIwNDg1OCk6IFN5bnRoZXRpYyBib2xkIHRleHQgaW4gdmVydGljYWwg
d3JpdGluZyBtb2RlIGlzIHJvdGF0ZWQgYXdheSBmcm9tIG9yaWdpbmFsIHRleHQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U2Vzc2lv
bi1yZW1vdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlh
L21vY2stTWVkaWFLZXlTZXNzaW9uLXJlbW92ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ5
OTJmYTkxZTU2YzNjNGQwYmI2OGQ4MzRjY2VjYjZmMmQ2NzBhOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U2Vzc2lvbi1y
ZW1vdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTggQEAKK1JVTihpbnRlcm5hbHMuaW5pdGlh
bGl6ZU1vY2tNZWRpYVNvdXJjZSgpKQorUlVOKG1vY2sgPSBpbnRlcm5hbHMucmVnaXN0ZXJNb2Nr
Q0RNKCkpCitSVU4obW9jay5zdXBwb3J0ZWREYXRhVHlwZXMgPSBbImtleWlkcyJdKQorUlVOKGNh
cGFiaWxpdGllcy5pbml0RGF0YVR5cGVzID0gWyJrZXlpZHMiXSkKK1JVTihjYXBhYmlsaXRpZXMu
dmlkZW9DYXBhYmlsaXRpZXMgPSBbeyBjb250ZW50VHlwZTogJ3ZpZGVvL21vY2s7IGNvZGVjcz0i
bW9jayInIH1dICkKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3Rl
bUFjY2Vzcygib3JnLndlYmtpdC5tb2NrIiwgW2NhcGFiaWxpdGllc10pKQorUHJvbWlzZSByZXNv
bHZlZCBPSworCitSVU4ocHJvbWlzZSA9IG1lZGlhS2V5U3lzdGVtQWNjZXNzLmNyZWF0ZU1lZGlh
S2V5cygpKQorUHJvbWlzZSByZXNvbHZlZCBPSworCitSZW1vdmluZyBmcm9tIGEgbm9uLWNhbGxh
YmxlIE1lZGlhS2V5U2Vzc2lvbiBzaG91bGQgcmVqZWN0LgorUlVOKG1lZGlhS2V5U2Vzc2lvbiA9
IG1lZGlhS2V5cy5jcmVhdGVTZXNzaW9uKCJ0ZW1wb3JhcnkiKSkKK0VYUEVDVEVEICh0eXBlb2Yg
bWVkaWFLZXlTZXNzaW9uID09ICdvYmplY3QnKSBPSworUlVOKHByb21pc2UgPSBtZWRpYUtleVNl
c3Npb24ucmVtb3ZlKCkpCitQcm9taXNlIHJlamVjdGVkIGNvcnJlY3RseSBPSworCitSZW1vdmlu
ZyBmcm9tIGEgZmFpbGVkIE1lZGlhS2V5U2Vzc2lvbiBzaG91bGQgcmVqZWN0LgorUlVOKGtpZHMg
PSBKU09OLnN0cmluZ2lmeSh7IGludmFsaWQ6ICJpbnZhbGlkIiB9KSkKK1JVTihtZWRpYUtleVNl
c3Npb24gPSBtZWRpYUtleXMuY3JlYXRlU2Vzc2lvbigidGVtcG9yYXJ5IikpCitSVU4ocHJvbWlz
ZSA9IG1lZGlhS2V5U2Vzc2lvbi5nZW5lcmF0ZVJlcXVlc3QoImtleWlkcyIsIHN0cmluZ1RvVUlu
dDhBcnJheShraWRzKSkpCitQcm9taXNlIHJlamVjdGVkIGNvcnJlY3RseSBPSworUlVOKHByb21p
c2UgPSBtZWRpYUtleVNlc3Npb24ucmVtb3ZlKCkpCitQcm9taXNlIHJlamVjdGVkIGNvcnJlY3Rs
eSBPSworCitSZW1vdmluZyBmcm9tIGEgdmFsaWQgTWVkaWFLZXlTZXNzaW9uIHNob3VsZCByZXNv
bHZlLgorUlVOKGtpZHMgPSBKU09OLnN0cmluZ2lmeSh7IGtpZHM6IFsgIk1USXpORFU9IiBdIH0p
KQorUlVOKG1lZGlhS2V5U2Vzc2lvbiA9IG1lZGlhS2V5cy5jcmVhdGVTZXNzaW9uKCJ0ZW1wb3Jh
cnkiKSkKK1JVTihwcm9taXNlID0gbWVkaWFLZXlTZXNzaW9uLmdlbmVyYXRlUmVxdWVzdCgia2V5
aWRzIiwgc3RyaW5nVG9VSW50OEFycmF5KGtpZHMpKSkKK1Byb21pc2UgcmVzb2x2ZWQgT0sKK1JV
Tihwcm9taXNlID0gbWVkaWFLZXlTZXNzaW9uLnJlbW92ZSgpKQorUHJvbWlzZSByZXNvbHZlZCBP
SworCitSZW1vdmluZyBmcm9tIGEgdmFsaWQgTWVkaWFLZXlTZXNzaW9uIHNob3VsZCBkaXNwYXRj
aCBhIGxpY2Vuc2UtcmVsZWFzZSBtZXNzYWdlLgorUlVOKGtpZHMgPSBKU09OLnN0cmluZ2lmeSh7
IGtpZHM6IFsgIk1USXpORFU9IiBdIH0pKQorUlVOKG1lZGlhS2V5U2Vzc2lvbiA9IG1lZGlhS2V5
cy5jcmVhdGVTZXNzaW9uKCJ0ZW1wb3JhcnkiKSkKK1JVTihwcm9taXNlID0gbWVkaWFLZXlTZXNz
aW9uLmdlbmVyYXRlUmVxdWVzdCgia2V5aWRzIiwgc3RyaW5nVG9VSW50OEFycmF5KGtpZHMpKSkK
K1Byb21pc2UgcmVzb2x2ZWQgT0sKK1JVTihwcm9taXNlID0gbWVkaWFLZXlTZXNzaW9uLnJlbW92
ZSgpKQorRVhQRUNURUQgKGV2ZW50Lm1lc3NhZ2VUeXBlID09ICdsaWNlbnNlLXJlbGVhc2UnKSBP
SworRVhQRUNURUQgKG5ldyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpLmxlbmd0aCA9PSAnMTQn
KSBPSworRVhQRUNURUQgKG5ldyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzBdID09ICcxMTQn
KSBPSworRVhQRUNURUQgKG5ldyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzFdID09ICcxMDEn
KSBPSworRVhQRUNURUQgKG5ldyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzJdID09ICcxMDkn
KSBPSworRVhQRUNURUQgKG5ldyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzNdID09ICcxMTEn
KSBPSworRVhQRUNURUQgKG5ldyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzRdID09ICcxMTgn
KSBPSworRVhQRUNURUQgKG5ldyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzVdID09ICcxMDEn
KSBPSworRVhQRUNURUQgKG5ldyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzZdID09ICc0NScp
IE9LCitFWFBFQ1RFRCAobmV3IFVpbnQ4QXJyYXkoZXZlbnQubWVzc2FnZSlbN10gPT0gJzEwOScp
IE9LCitFWFBFQ1RFRCAobmV3IFVpbnQ4QXJyYXkoZXZlbnQubWVzc2FnZSlbOF0gPT0gJzEwMScp
IE9LCitFWFBFQ1RFRCAobmV3IFVpbnQ4QXJyYXkoZXZlbnQubWVzc2FnZSlbOV0gPT0gJzExNScp
IE9LCitFWFBFQ1RFRCAobmV3IFVpbnQ4QXJyYXkoZXZlbnQubWVzc2FnZSlbMTBdID09ICcxMTUn
KSBPSworRVhQRUNURUQgKG5ldyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzExXSA9PSAnOTcn
KSBPSworRVhQRUNURUQgKG5ldyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzEyXSA9PSAnMTAz
JykgT0sKK0VYUEVDVEVEIChuZXcgVWludDhBcnJheShldmVudC5tZXNzYWdlKVsxM10gPT0gJzEw
MScpIE9LCitQcm9taXNlIHJlc29sdmVkIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVNlc3Npb24tcmVt
b3ZlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtl
eVNlc3Npb24tcmVtb3ZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE1OGVmZDQ5ZThhYTI2N2MzOGEzYTQ5
NDUzNjBjZmJjZWZmOGNmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL2Vu
Y3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U2Vzc2lvbi1yZW1vdmUuaHRtbApAQCAtMCwwICsx
LDExNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PS4uL3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgorICAgIHZhciBtb2NrOworICAgIHZhciBwcm9taXNlOworICAgIHZhciBtZWRpYUtl
eVN5c3RlbUFjY2VzczsKKyAgICB2YXIgbWVkaWFLZXlzOworICAgIHZhciBtZWRpYUtleVNlc3Np
b247CisgICAgdmFyIGNhcGFiaWxpdGllcyA9IHt9OworICAgIHZhciBraWRzOworCisgICAgZnVu
Y3Rpb24gZG9UZXN0KCkKKyAgICB7CisgICAgICAgIGlmICghd2luZG93LmludGVybmFscykgewor
ICAgICAgICAgICAgZmFpbFRlc3QoIkludGVybmFscyBpcyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0
LiIpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBydW4oJ2ludGVy
bmFscy5pbml0aWFsaXplTW9ja01lZGlhU291cmNlKCknKTsKKyAgICAgICAgcnVuKCdtb2NrID0g
aW50ZXJuYWxzLnJlZ2lzdGVyTW9ja0NETSgpJyk7CisgICAgICAgIHJ1bignbW9jay5zdXBwb3J0
ZWREYXRhVHlwZXMgPSBbImtleWlkcyJdJyk7CisgICAgICAgIHJ1bignY2FwYWJpbGl0aWVzLmlu
aXREYXRhVHlwZXMgPSBbImtleWlkcyJdJyk7CisgICAgICAgIHJ1bihgY2FwYWJpbGl0aWVzLnZp
ZGVvQ2FwYWJpbGl0aWVzID0gW3sgY29udGVudFR5cGU6ICd2aWRlby9tb2NrOyBjb2RlY3M9Im1v
Y2siJyB9XSBgKTsKKyAgICAgICAgcnVuKCdwcm9taXNlID0gbmF2aWdhdG9yLnJlcXVlc3RNZWRp
YUtleVN5c3RlbUFjY2Vzcygib3JnLndlYmtpdC5tb2NrIiwgW2NhcGFiaWxpdGllc10pJyk7Cisg
ICAgICAgIHNob3VsZFJlc29sdmUocHJvbWlzZSkudGhlbihnb3RNZWRpYUtleVN5c3RlbUFjY2Vz
cywgZmFpbFRlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG5leHQoKSB7CisgICAgICAgIGlm
ICghdGVzdHMubGVuZ3RoKSB7CisgICAgICAgICAgICBtb2NrLnVucmVnaXN0ZXIoKTsKKyAgICAg
ICAgICAgIGVuZFRlc3QoKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgdmFyIG5leHRUZXN0ID0gdGVzdHMuc2hpZnQoKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcn
KTsKKyAgICAgICAgbmV4dFRlc3QoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBnb3RNZWRpYUtl
eVN5c3RlbUFjY2VzcyhyZXN1bHQpIHsKKyAgICAgICAgbWVkaWFLZXlTeXN0ZW1BY2Nlc3MgPSBy
ZXN1bHQ7CisgICAgICAgIG5leHQoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBnb3RNZWRpYUtl
eXMocmVzdWx0KSB7CisgICAgICAgIG1lZGlhS2V5cyA9IHJlc3VsdDsKKyAgICAgICAgbmV4dCgp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0cmluZ1RvVUludDhBcnJheShzdHIpCisgICAgewor
ICAgICAgIHZhciBhcnJheSA9IG5ldyBVaW50OEFycmF5KHN0ci5sZW5ndGgpOworICAgICAgIGZv
ciAodmFyIGk9MDsgaTxzdHIubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBhcnJheVtpXSA9IHN0
ci5jaGFyQ29kZUF0KGkpOworICAgICAgIHJldHVybiBhcnJheTsKKyAgICB9CisKKyAgICB0ZXN0
cyA9IFsKKyAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBydW4oJ3Byb21pc2UgPSBt
ZWRpYUtleVN5c3RlbUFjY2Vzcy5jcmVhdGVNZWRpYUtleXMoKScpOworICAgICAgICAgICAgc2hv
dWxkUmVzb2x2ZShwcm9taXNlKS50aGVuKGdvdE1lZGlhS2V5cywgZmFpbFRlc3QpOworICAgICAg
ICB9LAorCisgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgY29uc29sZVdyaXRlKCdS
ZW1vdmluZyBmcm9tIGEgbm9uLWNhbGxhYmxlIE1lZGlhS2V5U2Vzc2lvbiBzaG91bGQgcmVqZWN0
LicpOworICAgICAgICAgICAgcnVuKCdtZWRpYUtleVNlc3Npb24gPSBtZWRpYUtleXMuY3JlYXRl
U2Vzc2lvbigidGVtcG9yYXJ5IiknKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndHlwZW9m
IG1lZGlhS2V5U2Vzc2lvbicsICdvYmplY3QnKTsKKyAgICAgICAgICAgIHJ1bigncHJvbWlzZSA9
IG1lZGlhS2V5U2Vzc2lvbi5yZW1vdmUoKScpOworICAgICAgICAgICAgc2hvdWxkUmVqZWN0KHBy
b21pc2UpLnRoZW4obmV4dCwgbmV4dCk7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoJ1JlbW92aW5nIGZyb20gYSBmYWlsZWQgTWVk
aWFLZXlTZXNzaW9uIHNob3VsZCByZWplY3QuJyk7CisgICAgICAgICAgICBydW4oJ2tpZHMgPSBK
U09OLnN0cmluZ2lmeSh7IGludmFsaWQ6ICJpbnZhbGlkIiB9KScpOworICAgICAgICAgICAgcnVu
KCdtZWRpYUtleVNlc3Npb24gPSBtZWRpYUtleXMuY3JlYXRlU2Vzc2lvbigidGVtcG9yYXJ5Iikn
KTsKKyAgICAgICAgICAgIHJ1bigncHJvbWlzZSA9IG1lZGlhS2V5U2Vzc2lvbi5nZW5lcmF0ZVJl
cXVlc3QoImtleWlkcyIsIHN0cmluZ1RvVUludDhBcnJheShraWRzKSknKTsKKyAgICAgICAgICAg
IHNob3VsZFJlamVjdChwcm9taXNlKS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IHJ1bigncHJvbWlzZSA9IG1lZGlhS2V5U2Vzc2lvbi5yZW1vdmUoKScpOworICAgICAgICAgICAg
ICAgIHNob3VsZFJlamVjdChwcm9taXNlKS50aGVuKG5leHQsIG5leHQpOworICAgICAgICAgICAg
fSwgbmV4dCk7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBjb25zb2xlV3JpdGUoJ1JlbW92aW5nIGZyb20gYSB2YWxpZCBNZWRpYUtleVNlc3Npb24gc2hv
dWxkIHJlc29sdmUuJyk7CisgICAgICAgICAgICBydW4oJ2tpZHMgPSBKU09OLnN0cmluZ2lmeSh7
IGtpZHM6IFsgIk1USXpORFU9IiBdIH0pJyk7CisgICAgICAgICAgICBydW4oJ21lZGlhS2V5U2Vz
c2lvbiA9IG1lZGlhS2V5cy5jcmVhdGVTZXNzaW9uKCJ0ZW1wb3JhcnkiKScpOworICAgICAgICAg
ICAgcnVuKCdwcm9taXNlID0gbWVkaWFLZXlTZXNzaW9uLmdlbmVyYXRlUmVxdWVzdCgia2V5aWRz
Iiwgc3RyaW5nVG9VSW50OEFycmF5KGtpZHMpKScpOworICAgICAgICAgICAgc2hvdWxkUmVzb2x2
ZShwcm9taXNlKS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHJ1bigncHJvbWlz
ZSA9IG1lZGlhS2V5U2Vzc2lvbi5yZW1vdmUoKScpOworICAgICAgICAgICAgICAgIHNob3VsZFJl
c29sdmUocHJvbWlzZSkudGhlbihuZXh0LCBuZXh0KTsKKyAgICAgICAgICAgIH0sIG5leHQpOwor
ICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgY29uc29sZVdy
aXRlKCdSZW1vdmluZyBmcm9tIGEgdmFsaWQgTWVkaWFLZXlTZXNzaW9uIHNob3VsZCBkaXNwYXRj
aCBhIGxpY2Vuc2UtcmVsZWFzZSBtZXNzYWdlLicpOworICAgICAgICAgICAgcnVuKCdraWRzID0g
SlNPTi5zdHJpbmdpZnkoeyBraWRzOiBbICJNVEl6TkRVPSIgXSB9KScpOworICAgICAgICAgICAg
cnVuKCdtZWRpYUtleVNlc3Npb24gPSBtZWRpYUtleXMuY3JlYXRlU2Vzc2lvbigidGVtcG9yYXJ5
IiknKTsKKyAgICAgICAgICAgIHJ1bigncHJvbWlzZSA9IG1lZGlhS2V5U2Vzc2lvbi5nZW5lcmF0
ZVJlcXVlc3QoImtleWlkcyIsIHN0cmluZ1RvVUludDhBcnJheShraWRzKSknKTsKKyAgICAgICAg
ICAgIHNob3VsZFJlc29sdmUocHJvbWlzZSkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBydW4oJ3Byb21pc2UgPSBtZWRpYUtleVNlc3Npb24ucmVtb3ZlKCknKTsKKyAgICAgICAg
ICAgICAgICBtZWRpYUtleVNlc3Npb24uYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnZXZlbnQubWVz
c2FnZVR5cGUnLCAnbGljZW5zZS1yZWxlYXNlJyk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RB
cnJheXNFcXVhbCgnbmV3IFVpbnQ4QXJyYXkoZXZlbnQubWVzc2FnZSknLCBzdHJpbmdUb1VJbnQ4
QXJyYXkoInJlbW92ZS1tZXNzYWdlIikpOworCisgICAgICAgICAgICAgICAgICAgIHNob3VsZFJl
c29sdmUocHJvbWlzZSkudGhlbihuZXh0LCBuZXh0KTsKKyAgICAgICAgICAgICAgICB9LCB0cnVl
KTsKKyAgICAgICAgICAgIH0sIG5leHQpOworICAgICAgICB9LAorICAgIF07CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImRvVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjZmZDNlOTg0
MWNjZGQ4ZWMwZTlkMGQ3MTcwMTY3NjI0OWEyMmMxZi4uOTU4YmM5ODdhZWU2NjA4YjQ0YzVjZWEw
NDY4NzI1MDA3MzJjNjIwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTI5ODIsNiArMjk4Miw3IEBAIEJ1ZyhFRkwpIG1lZGlhL2VuY3J5cHRlZC1tZWRp
YS9lbmNyeXB0ZWQtbWVkaWEtaXMtdHlwZS1zdXBwb3J0ZWQuaHRtbCBbIEZhaWx1cmUKIEJ1ZyhF
RkwpIG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9lbmNyeXB0ZWQtbWVkaWEtbm90LWxvYWRlZC5odG1s
IFsgRmFpbHVyZSBdCiBCdWcoRUZMKSBtZWRpYS9lbmNyeXB0ZWQtbWVkaWEvZW5jcnlwdGVkLW1l
ZGlhLXN5bnRheC5odG1sIFsgRmFpbHVyZSBdCiBCdWcoRUZMKSBtZWRpYS9lbmNyeXB0ZWQtbWVk
aWEvbW9jay1NZWRpYUtleVNlc3Npb24tZ2VuZXJhdGVSZXF1ZXN0Lmh0bWwgWyBGYWlsdXJlIF0K
K0J1ZyhFRkwpIG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U2Vzc2lvbi1yZW1v
dmUuaHRtbCBbIEZhaWx1cmUgXQogQnVnKEVGTCkgbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2st
TWVkaWFLZXlTZXNzaW9uLXVwZGF0ZS5odG1sIFsgRmFpbHVyZSBdCiBCdWcoRUZMKSBtZWRpYS9l
bmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy5odG1sIFsgRmFpbHVyZSBd
CiBCdWcoRUZMKSBtZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleXMtY3JlYXRlU2Vz
c2lvbi5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IGY1NTRkYTQ0NzQ0YzAyMzNmOWM5NmQ2MmRhNzNlMTRjZmZlZDVkMzcuLjk5
Y2NjNGMxODc4OWM2ZDk2NDVhNzAyMzVhYWQxZDJhZTQxMmU3MDMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNDk0LDYgKzE0OTQsNyBAQCBtZWRpYS9l
bmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy5odG1sIFsgU2tpcCBdCiBt
ZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleXMtc2V0U2VydmVyQ2VydGlmaWNhdGUu
aHRtbCBbIFNraXAgXQogbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlzLWNyZWF0
ZVNlc3Npb24uaHRtbCBbIFNraXAgXQogbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFL
ZXlTZXNzaW9uLWdlbmVyYXRlUmVxdWVzdC5odG1sIFsgU2tpcCBdCittZWRpYS9lbmNyeXB0ZWQt
bWVkaWEvbW9jay1NZWRpYUtleVNlc3Npb24tcmVtb3ZlLmh0bWwgWyBTa2lwIF0KIG1lZGlhL2Vu
Y3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U2Vzc2lvbi11cGRhdGUuaHRtbCBbIFNraXAgXQog
CiB3ZWJraXQub3JnL2IvMTY2MDI1IGh0dHAvdGVzdHMvZmV0Y2gvZmV0Y2hpbmctc2FtZS1yZXNv
dXJjZS13aXRoLWRpZmZmZXJlbnQtb3B0aW9ucy5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300886</attachid>
            <date>2017-02-08 02:39:19 -0800</date>
            <delta_ts>2017-02-08 02:39:19 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-167870-20170208113655.patch</filename>
            <type>text/plain</type>
            <size>20705</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExODU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTcwMDEwNzllYjFiNDVk
MDc4YjZmYzgxZDFmMTVmMTJhMDMxYWI4MC4uODg1ZTM1MWMyNTc2NGQ3Y2FiNWIyZThhNDc2ZTc1
YmU5YTE5YzE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQyIEBACiAyMDE3LTAyLTA4ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbRU1FXSBJbXBsZW1l
bnQgTWVkaWFLZXlTZXNzaW9uOjpyZW1vdmUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWGFiaWVy
IFJvZHJpZ3Vlei1DYWx2YXIuCisKKyAgICAgICAgSW1wbGVtZW50IE1lZGlhS2V5U2Vzc2lvbjo6
cmVtb3ZlKCkgYXMgb3V0bGluZWQgaW4gdGhlIHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgVGhl
IENETUluc3RhbmNlOjpyZW1vdmVTZXNzaW9uRGF0YSgpIHZpcnR1YWwgbWV0aG9kIGlzIGFkZGVk
LiBDRE1JbnN0YW5jZQorICAgICAgICBpbXBsZW1lbnRvcnMgc2hvdWxkIHJlbW92ZSBhbnkgc2Vz
c2lvbiBkYXRhIHN0b3JlZCBmb3IgdGhlIHNlc3Npb24gdGhhdCdzCisgICAgICAgIHJlcHJlc2Vu
dGVkIGJ5IHRoZSBwYXNzZWQtaW4gc2Vzc2lvbiBJRCBhbmQgc2Vzc2lvbiB0eXBlLgorCisgICAg
ICAgIE9uY2UgdGhlIHNlc3Npb24gZGF0YSBpcyByZW1vdmVkLCB0aGUgcGFzc2VkLWluIGNhbGxi
YWNrIHNob3VsZCBiZSBpbnZva2VkCisgICAgICAgIGJ5IHRoZSBDRE1JbnN0YW5jZSBvYmplY3Qg
c28gdGhhdCBNZWRpYUtleVNlc3Npb24gY2FuIGltbWVkaWF0ZWx5IHF1ZXVlIGEKKyAgICAgICAg
dGFzayBpbiB3aGljaCBpdCB1cGRhdGVzIGtleSBzdGF0dXNlcyBhbmQgZXhwaXJhdGlvbiwgcmVq
ZWN0IHRoZSBwcm9taXNlIGlmCisgICAgICAgIHRoZSBkYXRhIHJlbW92YWwgZmFpbGVkLCBvciBl
bnF1ZXVlIGFueSBsaWNlbnNlLXJlbGVhc2UgbWVzc2FnZSBhbmQgZmluYWxseQorICAgICAgICBz
dWNjZXNzZnVsbHkgcmVzb2x2ZSB0aGUgcHJvbWlzZS4KKworICAgICAgICBNb2NrQ0RNRmFjdG9y
eSBnYWlucyB0aGUgcmVtb3ZlS2V5c0Zyb21TZXNzaW9uV2l0aElEKCkgbWV0aG9kIHRoYXQgcHVy
Z2VzCisgICAgICAgIHRoZSBrZXlzIGZvciBhIGdpdmVuIHNlc3Npb24gSUQuIFRoZSBtZXRob2Qg
aXMgY2FsbGVkIGZyb20KKyAgICAgICAgTW9ja0NETUluc3RhbmNlOjpyZW1vdmVTZXNzaW9uRGF0
YSgpIGltcGxlbWVudGF0aW9uLCB3aGljaCBwYXNzZXMgdGhlCisgICAgICAgIHJlbW92ZWQga2V5
cyB0byB0aGUgUmVtb3ZlU2Vzc2lvbkRhdGFDYWxsYmFjaywgYWxvbmcgd2l0aCBhIGxpY2Vuc2Ut
cmVsZWFzZQorICAgICAgICBtZXNzYWdlIHRoYXQgaXMgY2hlY2tlZCBpbiB0aGUgdGVzdHMuIFRo
ZSBrZXkgcmVtb3ZhbCBpdHNlbGYgaXNuJ3QgdGVzdGVkCisgICAgICAgIHlldCBiZWNhdXNlIHRo
ZSBNZWRpYUtleVNlc3Npb24ncyBgdXBkYXRlIGtleSBzdGF0dXNlc2AgYWxnb3JpdGhtIGlzbid0
CisgICAgICAgIGltcGxlbWVudGVkIHlldC4KKworICAgICAgICBUZXN0OiBtZWRpYS9lbmNyeXB0
ZWQtbWVkaWEvbW9jay1NZWRpYUtleVNlc3Npb24tcmVtb3ZlLmh0bWwKKworICAgICAgICAqIE1v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNSW5zdGFuY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUtleVNlc3Npb246OnJlbW92ZSk6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNRmFjdG9yeTo6cmVtb3ZlS2V5c0Zyb21TZXNz
aW9uV2l0aElEKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDRE1JbnN0YW5jZTo6cmVtb3ZlU2Vz
c2lvbkRhdGEpOgorICAgICAgICAqIHRlc3RpbmcvTW9ja0NETUZhY3RvcnkuaDoKKworMjAxNy0w
Mi0wOCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKICAgICAgICAgW0VN
RV0gSW1wbGVtZW50IE1lZGlhS2V5U2Vzc2lvbjo6Y2xvc2UoKQogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3ODY5CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNSW5zdGFuY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNSW5zdGFuY2UuaAppbmRleCBjOTQxNjcx
ZWRmNzAxMDcxYTZkM2VlODM3ZmRlZmY2MTMzNzRjYzE4Li4xNTMxZDgyMGY3ZTllMmFjNGVmNzE2
YjFkMTQwYjY3NjE3Njg4ZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0NETUluc3RhbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9DRE1JbnN0YW5jZS5oCkBAIC02OSw2ICs2OSw5IEBAIHB1YmxpYzoKIAog
ICAgIHVzaW5nIENsb3NlU2Vzc2lvbkNhbGxiYWNrID0gRnVuY3Rpb248dm9pZCgpPjsKICAgICB2
aXJ0dWFsIHZvaWQgY2xvc2VTZXNzaW9uKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBDbG9zZVNl
c3Npb25DYWxsYmFjaykgPSAwOworCisgICAgdXNpbmcgUmVtb3ZlU2Vzc2lvbkRhdGFDYWxsYmFj
ayA9IEZ1bmN0aW9uPHZvaWQoS2V5U3RhdHVzVmVjdG9yJiYsIHN0ZDo6b3B0aW9uYWw8UmVmPFNo
YXJlZEJ1ZmZlcj4+JiYsIFN1Y2Nlc3NWYWx1ZSk+OworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVT
ZXNzaW9uRGF0YShjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgTGljZW5zZVR5cGUsIFJlbW92ZVNl
c3Npb25EYXRhQ2FsbGJhY2spID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcAppbmRleCBm
MTRiYzVjMmExNmNmZjk4ZDQ3MWM4ZDhmNzhkMDQ0Nzc4ZmEyZTNiLi44ZTBiN2VmZmJmZjllYTgz
ZjdhNGZiZTUxYTZmMmZmNTFjMzcwYTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCkBAIC00MDAsOSAr
NDAwLDcwIEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpjbG9zZShSZWY8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pc2UpCiAgICAgLy8gNi4gUmV0dXJuIHByb21pc2UuCiB9CiAKLXZvaWQgTWVkaWFL
ZXlTZXNzaW9uOjpyZW1vdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJikKK3ZvaWQgTWVkaWFLZXlT
ZXNzaW9uOjpyZW1vdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2VuY3J5cHRlZC1t
ZWRpYS8jZG9tLW1lZGlha2V5c2Vzc2lvbi1yZW1vdmUKKyAgICAvLyBXM0MgRWRpdG9yJ3MgRHJh
ZnQgMDkgTm92ZW1iZXIgMjAxNgorCisgICAgLy8gMS4gSWYgdGhpcyBvYmplY3QgaXMgY2xvc2Vk
LCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gSW52YWxpZFN0YXRlRXJyb3IuCisg
ICAgLy8gMi4gSWYgdGhpcyBvYmplY3QncyBjYWxsYWJsZSB2YWx1ZSBpcyBmYWxzZSwgcmV0dXJu
IGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuIEludmFsaWRTdGF0ZUVycm9yLgorICAgIGlmICht
X2Nsb3NlZCB8fCAhbV9jYWxsYWJsZSkgeworICAgICAgICBwcm9taXNlLT5yZWplY3QoSU5WQUxJ
RF9TVEFURV9FUlIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gMy4gTGV0IHBy
b21pc2UgYmUgYSBuZXcgcHJvbWlzZS4KKyAgICAvLyA0LiBSdW4gdGhlIGZvbGxvd2luZyBzdGVw
cyBpbiBwYXJhbGxlbDoKKyAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgICAgICAvLyA0LjEuIExldCBj
ZG0gYmUgdGhlIENETSBpbnN0YW5jZSByZXByZXNlbnRlZCBieSB0aGlzIG9iamVjdCdzIGNkbSBp
bnN0YW5jZSB2YWx1ZS4KKyAgICAgICAgLy8gNC4yLiBMZXQgbWVzc2FnZSBiZSBudWxsLgorICAg
ICAgICAvLyA0LjMuIExldCBtZXNzYWdlIHR5cGUgYmUgbnVsbC4KKworICAgICAgICAvLyA0LjQu
IFVzZSB0aGUgY2RtIHRvIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAgICAgbV9p
bnN0YW5jZS0+cmVtb3ZlU2Vzc2lvbkRhdGEobV9zZXNzaW9uSWQsIG1fc2Vzc2lvblR5cGUsIFt0
aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0gKENETUluc3RhbmNlOjpLZXlTdGF0dXNWZWN0b3ImJiBrZXlz
LCBzdGQ6Om9wdGlvbmFsPFJlZjxTaGFyZWRCdWZmZXI+PiYmIG1lc3NhZ2UsIENETUluc3RhbmNl
OjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmICghd2Vh
a1RoaXMpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAvLyA0LjQuMS4g
SWYgYW55IGxpY2Vuc2UocykgYW5kL29yIGtleShzKSBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBz
ZXNzaW9uOgorICAgICAgICAgICAgLy8gICA0LjQuMS4xLiBEZXN0cm95IHRoZSBsaWNlbnNlKHMp
IGFuZC9vciBrZXkocykgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZXNzaW9uLgorICAgICAgICAgICAg
Ly8gICA0LjQuMS4yLiBGb2xsb3cgdGhlIHN0ZXBzIGZvciB0aGUgdmFsdWUgb2YgdGhpcyBvYmpl
Y3QncyBzZXNzaW9uIHR5cGUgZnJvbSB0aGUgZm9sbG93aW5nIGxpc3Q6CisgICAgICAgICAgICAv
LyAgICAg4oazICJ0ZW1wb3JhcnkiCisgICAgICAgICAgICAvLyAgICAgICA0LjQuMS4yLjEuMSBD
b250aW51ZSB3aXRoIHRoZSBmb2xsb3dpbmcgc3RlcHMuCisgICAgICAgICAgICAvLyAgICAg4oaz
ICJwZXJzaXN0ZW50LWxpY2Vuc2UiCisgICAgICAgICAgICAvLyAgICAgICA0LjQuMS4yLjIuMS4g
TGV0IHJlY29yZCBvZiBsaWNlbnNlIGRlc3RydWN0aW9uIGJlIGEgcmVjb3JkIG9mIGxpY2Vuc2Ug
ZGVzdHJ1Y3Rpb24gZm9yIHRoZSBsaWNlbnNlIHJlcHJlc2VudGVkIGJ5IHRoaXMgb2JqZWN0Lgor
ICAgICAgICAgICAgLy8gICAgICAgNC40LjEuMi4yLjIuIFN0b3JlIHRoZSByZWNvcmQgb2YgbGlj
ZW5zZSBkZXN0cnVjdGlvbi4KKyAgICAgICAgICAgIC8vICAgICAgIDQuNC4xLjIuMi4zLiBMZXQg
bWVzc2FnZSBiZSBhIG1lc3NhZ2UgY29udGFpbmluZyBvciByZWZsZWN0aW5nIHRoZSByZWNvcmQg
b2YgbGljZW5zZSBkZXN0cnVjdGlvbi4KKyAgICAgICAgICAgIC8vICAgICDihrMgInBlcnNpc3Rl
bnQtdXNhZ2UtcmVjb3JkIgorICAgICAgICAgICAgLy8gICAgICAgNC40LjEuMi4zLjEuIFN0b3Jl
IHRoaXMgb2JqZWN0J3MgcmVjb3JkIG9mIGtleSB1c2FnZS4KKyAgICAgICAgICAgIC8vICAgICAg
IDQuNC4xLjIuMy4yLiBMZXQgbWVzc2FnZSBiZSBhIG1lc3NhZ2UgY29udGFpbmluZyBvciByZWZs
ZWN0aW5nIHRoaXMgb2JqZWN0J3MgcmVjb3JkIG9mIGtleSB1c2FnZS4KKyAgICAgICAgICAgIC8v
IE5PVEU6IFN0ZXAgNC40LjEuIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBpbiBDRE1JbnN0YW5jZS4K
KworICAgICAgICAgICAgLy8gNC41LiBRdWV1ZSBhIHRhc2sgdG8gcnVuIHRoZSBmb2xsb3dpbmcg
c3RlcHM6CisgICAgICAgICAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywga2V5cyA9
IFdURk1vdmUoa2V5cyksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBzdWNjZWVkZWQsIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAv
LyA0LjUuMS4gUnVuIHRoZSBVcGRhdGUgS2V5IFN0YXR1c2VzIGFsZ29yaXRobSBvbiB0aGUgc2Vz
c2lvbiwgcHJvdmlkaW5nIGFsbCBrZXkgSUQocykgaW4gdGhlIHNlc3Npb24gYWxvbmcgd2l0aCB0
aGUgInJlbGVhc2VkIiBNZWRpYUtleVN0YXR1cyB2YWx1ZSBmb3IgZWFjaC4KKyAgICAgICAgICAg
ICAgICB1cGRhdGVLZXlTdGF0dXNlcyhXVEZNb3ZlKGtleXMpKTsKKworICAgICAgICAgICAgICAg
IC8vIDQuNS4yLiBSdW4gdGhlIFVwZGF0ZSBFeHBpcmF0aW9uIGFsZ29yaXRobSBvbiB0aGUgc2Vz
c2lvbiwgcHJvdmlkaW5nIE5hTi4KKyAgICAgICAgICAgICAgICB1cGRhdGVFeHBpcmF0aW9uKHN0
ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOworCisgICAgICAgICAgICAg
ICAgLy8gNC41LjMuIElmIGFueSBvZiB0aGUgcHJlY2VkaW5nIHN0ZXBzIGZhaWxlZCwgcmVqZWN0
IHByb21pc2Ugd2l0aCBhIG5ldyBET01FeGNlcHRpb24gd2hvc2UgbmFtZSBpcyB0aGUgYXBwcm9w
cmlhdGUgZXJyb3IgbmFtZS4KKyAgICAgICAgICAgICAgICBpZiAoc3VjY2VlZGVkID09IENETUlu
c3RhbmNlOjpTdWNjZXNzVmFsdWU6OkZhaWxlZCkgeworICAgICAgICAgICAgICAgICAgICBwcm9t
aXNlLT5yZWplY3QoTk9UX1NVUFBPUlRFRF9FUlIpOworICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gNC41LjQuIExldCBt
ZXNzYWdlIHR5cGUgYmUgImxpY2Vuc2UtcmVsZWFzZSIuCisgICAgICAgICAgICAgICAgLy8gNC41
LjUuIElmIG1lc3NhZ2UgaXMgbm90IG51bGwsIHJ1biB0aGUgUXVldWUgYSAibWVzc2FnZSIgRXZl
bnQgYWxnb3JpdGhtIG9uIHRoZSBzZXNzaW9uLCBwcm92aWRpbmcgbWVzc2FnZSB0eXBlIGFuZCBt
ZXNzYWdlLgorICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlKQorICAgICAgICAgICAgICAgICAg
ICBlbnF1ZXVlTWVzc2FnZShNZWRpYUtleU1lc3NhZ2VUeXBlOjpMaWNlbnNlUmVsZWFzZSwgKm1l
c3NhZ2UpOworCisgICAgICAgICAgICAgICAgLy8gNC41LjYuIFJlc29sdmUgcHJvbWlzZS4KKyAg
ICAgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSk7CisgICAgfSk7CisKKyAgICAvLyA1LiBSZXR1cm4gcHJvbWlzZS4KIH0KIAogdm9pZCBN
ZWRpYUtleVNlc3Npb246OmVucXVldWVNZXNzYWdlKE1lZGlhS2V5TWVzc2FnZVR5cGUgbWVzc2Fn
ZVR5cGUsIGNvbnN0IFNoYXJlZEJ1ZmZlciYgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrQ0RNRmFjdG9yeS5jcHAKaW5kZXggMGZmMjYxMDNmMjgwYTgzOTExZWFjMDc0MzVlYzQ5
MjBhMTlkOWEwZS4uOWEwZDI2MGE5YTYzOTgxYTc2NzBjNmU1NGM2ZTkyYWZlNjk4YmRhMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAKQEAgLTcyLDYgKzcyLDE1
IEBAIHZvaWQgTW9ja0NETUZhY3Rvcnk6OmFkZEtleXNUb1Nlc3Npb25XaXRoSUQoY29uc3QgU3Ry
aW5nJiBpZCwgVmVjdG9yPFJlZjxTaGFyZWRCCiAgICAgICAgIHZhbHVlLmFwcGVuZChXVEZNb3Zl
KGtleSkpOwogfQogCitWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IE1vY2tDRE1GYWN0b3J5Ojpy
ZW1vdmVLZXlzRnJvbVNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCkKK3sKKyAgICBhdXRv
IGl0ID0gbV9zZXNzaW9ucy5maW5kKGlkKTsKKyAgICBpZiAoaXQgPT0gbV9zZXNzaW9ucy5lbmQo
KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBXVEZNb3ZlKGl0LT52YWx1ZSk7
Cit9CisKIHZvaWQgTW9ja0NETUZhY3Rvcnk6OnNldFN1cHBvcnRlZERhdGFUeXBlcyhWZWN0b3I8
U3RyaW5nPiYmIHR5cGVzKQogewogICAgIG1fc3VwcG9ydGVkRGF0YVR5cGVzLmNsZWFyKCk7CkBA
IC0zMDEsNiArMzEwLDI0IEBAIHZvaWQgTW9ja0NETUluc3RhbmNlOjpjbG9zZVNlc3Npb24oY29u
c3QgU3RyaW5nJiBzZXNzaW9uSUQsIENsb3NlU2Vzc2lvbkNhbGxiYWNrCiAgICAgY2FsbGJhY2so
KTsKIH0KIAordm9pZCBNb2NrQ0RNSW5zdGFuY2U6OnJlbW92ZVNlc3Npb25EYXRhKGNvbnN0IFN0
cmluZyYgaWQsIExpY2Vuc2VUeXBlLCBSZW1vdmVTZXNzaW9uRGF0YUNhbGxiYWNrIGNhbGxiYWNr
KQoreworICAgIE1vY2tDRE1GYWN0b3J5KiBmYWN0b3J5ID0gbV9jZG0gPyBtX2NkbS0+ZmFjdG9y
eSgpIDogbnVsbHB0cjsKKyAgICBpZiAoIWZhY3RvcnkpIHsKKyAgICAgICAgY2FsbGJhY2soeyB9
LCBzdGQ6Om51bGxvcHQsIFN1Y2Nlc3NWYWx1ZTo6RmFpbGVkKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8ga2V5cyA9IGZhY3RvcnktPnJlbW92ZUtleXNGcm9tU2Vzc2lvbldp
dGhJRChpZCk7CisgICAgS2V5U3RhdHVzVmVjdG9yIGtleVN0YXR1c1ZlY3RvcjsKKyAgICBrZXlT
dGF0dXNWZWN0b3IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShrZXlzLnNpemUoKSk7CisgICAgZm9y
IChhdXRvJiBrZXkgOiBrZXlzKQorICAgICAgICBrZXlTdGF0dXNWZWN0b3IudW5jaGVja2VkQXBw
ZW5kKHsgV1RGTW92ZShrZXkpLCBLZXlTdGF0dXM6OlJlbGVhc2VkIH0pOworCisgICAgQ1N0cmlu
ZyBtZXNzYWdlIHsgInJlbW92ZS1tZXNzYWdlIiB9OworICAgIGNhbGxiYWNrKFdURk1vdmUoa2V5
U3RhdHVzVmVjdG9yKSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUobWVzc2FnZS5kYXRhKCksIG1lc3Nh
Z2UubGVuZ3RoKCkpLCBTdWNjZXNzVmFsdWU6OlN1Y2NlZWRlZCk7Cit9CisKIH0KIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmgKaW5kZXggMjhjM2Q1ZjMxNjM4
YTA1NGQ2ZDcwZWZjYjIxNTUwOTU5OTAxZjU5OC4uMDFmMWJjMzYxMmEwN2I2OTMwOTI5MDg4ODNl
YzhmYzFkNmEyOGEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RN
RmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuaApA
QCAtNzIsNiArNzIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNTZXNzaW9uV2l0aElEKGNvbnN0
IFN0cmluZyYgaWQpIHsgcmV0dXJuIG1fc2Vzc2lvbnMuY29udGFpbnMoaWQpOyB9CiAgICAgdm9p
ZCByZW1vdmVTZXNzaW9uV2l0aElEKGNvbnN0IFN0cmluZyYgaWQpIHsgbV9zZXNzaW9ucy5yZW1v
dmUoaWQpOyB9CiAgICAgdm9pZCBhZGRLZXlzVG9TZXNzaW9uV2l0aElEKGNvbnN0IFN0cmluZyYg
aWQsIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4mJik7CisgICAgVmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+PiByZW1vdmVLZXlzRnJvbVNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCk7CiAK
IHByaXZhdGU6CiAgICAgTW9ja0NETUZhY3RvcnkoKTsKQEAgLTEzMSw2ICsxMzIsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcmVxdWVzdExpY2Vuc2UoTGljZW5zZVR5cGUsIGNvbnN0IEF0b21pY1N0
cmluZyYgaW5pdERhdGFUeXBlLCBSZWY8U2hhcmVkQnVmZmVyPiYmIGluaXREYXRhLCBMaWNlbnNl
Q2FsbGJhY2spIGZpbmFsOwogICAgIHZvaWQgdXBkYXRlTGljZW5zZShMaWNlbnNlVHlwZSwgY29u
c3QgU2hhcmVkQnVmZmVyJiwgTGljZW5zZVVwZGF0ZUNhbGxiYWNrKSBmaW5hbDsKICAgICB2b2lk
IGNsb3NlU2Vzc2lvbihjb25zdCBTdHJpbmcmLCBDbG9zZVNlc3Npb25DYWxsYmFjaykgZmluYWw7
CisgICAgdm9pZCByZW1vdmVTZXNzaW9uRGF0YShjb25zdCBTdHJpbmcmLCBMaWNlbnNlVHlwZSwg
UmVtb3ZlU2Vzc2lvbkRhdGFDYWxsYmFjaykgZmluYWw7CiAKICAgICBXZWFrUHRyPE1vY2tDRE0+
IG1fY2RtOwogICAgIGJvb2wgbV9kaXN0aW5jdGl2ZUlkZW50aWZpZXJzQWxsb3dlZCB7IHRydWUg
fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAyZjVhMDYzNWZjOWY5YTBiYzdhMjJhM2JmYzIwMjgyNTZiZTg5MWI3Li5hZTlm
MjAyMGJkYTExN2U3ODc0NjllZDc4NmQyNjJlYjYzOTUzNTdjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjYg
QEAKIDIwMTctMDItMDggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCisg
ICAgICAgIFtFTUVdIEltcGxlbWVudCBNZWRpYUtleVNlc3Npb246OnJlbW92ZSgpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc4NzAKKworICAgICAg
ICBSZXZpZXdlZCBieSBYYWJpZXIgUm9kcmlndWV6LUNhbHZhci4KKworICAgICAgICBBZGQgdGhl
IG1vY2stTWVkaWFLZXlTZXNzaW9uLXJlbW92ZS5odG1sIHRlc3QgdGhhdCB0ZXN0cyB0aGUgZnVu
Y3Rpb25hbGl0eQorICAgICAgICBvZiB0aGUgTWVkaWFLZXlTZXNzaW9uOjpyZW1vdmUoKSBpbXBs
ZW1lbnRhdGlvbi4gVGhlIHRlc3QgY2hlY2tzIHRoYXQgdGhlCisgICAgICAgIGNhbGxzIHRvIHRo
YXQgbWV0aG9kIHByb3Blcmx5IHJlc29sdmUgb3IgcmVqZWN0IHRoZSByZXR1cm5lZCBwcm9taXNl
LAorICAgICAgICBkZXBlbmRpbmcgb24gdGhlIG9iamVjdCBzdGF0ZS4gQW5vdGhlciB0ZXN0IGNo
ZWNrcyB0aGUgbWVzc2FnZSB0aGF0J3MKKyAgICAgICAgcXVldWVkIHVwb24gYSBzdWNjZXNzZnVs
IHJlbW92YWwuCisKKyAgICAgICAgQWRkaXRpb25hbCB0ZXN0cyB3aWxsIGJlIGFkZGVkIGxhdGVy
IG9uY2UgTWVkaWFLZXlTZXNzaW9uIHByb3Blcmx5CisgICAgICAgIGltcGxlbWVudHMgdGhlIGNs
b3NlKCkgbWV0aG9kIGFuZCBrZXkgc3RhdHVzIHVwZGF0ZXMuCisKKyAgICAgICAgKiBtZWRpYS9l
bmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVNlc3Npb24tcmVtb3ZlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTZXNz
aW9uLXJlbW92ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKworMjAx
Ny0wMi0wOCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKICAgICAgICAg
W0VNRV0gSW1wbGVtZW50IE1lZGlhS2V5U2Vzc2lvbjo6Y2xvc2UoKQogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3ODY5CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U2Vzc2lvbi1yZW1v
dmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2st
TWVkaWFLZXlTZXNzaW9uLXJlbW92ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjJjMmYwYmQy
NjAzZDY5MjQ3MDQ3NTc4Y2QxZDVjOGViMWVkYTVlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U2Vzc2lvbi1yZW1vdmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTggQEAKK1JVTihpbnRlcm5hbHMuaW5pdGlhbGl6ZU1v
Y2tNZWRpYVNvdXJjZSgpKQorUlVOKG1vY2sgPSBpbnRlcm5hbHMucmVnaXN0ZXJNb2NrQ0RNKCkp
CitSVU4obW9jay5zdXBwb3J0ZWREYXRhVHlwZXMgPSBbImtleWlkcyJdKQorUlVOKGNhcGFiaWxp
dGllcy5pbml0RGF0YVR5cGVzID0gWyJrZXlpZHMiXSkKK1JVTihjYXBhYmlsaXRpZXMudmlkZW9D
YXBhYmlsaXRpZXMgPSBbeyBjb250ZW50VHlwZTogJ3ZpZGVvL21vY2s7IGNvZGVjcz0ibW9jayIn
IH1dICkKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2Vz
cygib3JnLndlYmtpdC5tb2NrIiwgW2NhcGFiaWxpdGllc10pKQorUHJvbWlzZSByZXNvbHZlZCBP
SworCitSVU4ocHJvbWlzZSA9IG1lZGlhS2V5U3lzdGVtQWNjZXNzLmNyZWF0ZU1lZGlhS2V5cygp
KQorUHJvbWlzZSByZXNvbHZlZCBPSworCitSZW1vdmluZyBmcm9tIGEgbm9uLWNhbGxhYmxlIE1l
ZGlhS2V5U2Vzc2lvbiBzaG91bGQgcmVqZWN0LgorUlVOKG1lZGlhS2V5U2Vzc2lvbiA9IG1lZGlh
S2V5cy5jcmVhdGVTZXNzaW9uKCJ0ZW1wb3JhcnkiKSkKK0VYUEVDVEVEICh0eXBlb2YgbWVkaWFL
ZXlTZXNzaW9uID09ICdvYmplY3QnKSBPSworUlVOKHByb21pc2UgPSBtZWRpYUtleVNlc3Npb24u
cmVtb3ZlKCkpCitQcm9taXNlIHJlamVjdGVkIGNvcnJlY3RseSBPSworCitSZW1vdmluZyBmcm9t
IGEgZmFpbGVkIE1lZGlhS2V5U2Vzc2lvbiBzaG91bGQgcmVqZWN0LgorUlVOKGtpZHMgPSBKU09O
LnN0cmluZ2lmeSh7IGludmFsaWQ6ICJpbnZhbGlkIiB9KSkKK1JVTihtZWRpYUtleVNlc3Npb24g
PSBtZWRpYUtleXMuY3JlYXRlU2Vzc2lvbigidGVtcG9yYXJ5IikpCitSVU4ocHJvbWlzZSA9IG1l
ZGlhS2V5U2Vzc2lvbi5nZW5lcmF0ZVJlcXVlc3QoImtleWlkcyIsIGVuY29kZXIuZW5jb2RlKGtp
ZHMpKSkKK1Byb21pc2UgcmVqZWN0ZWQgY29ycmVjdGx5IE9LCitSVU4ocHJvbWlzZSA9IG1lZGlh
S2V5U2Vzc2lvbi5yZW1vdmUoKSkKK1Byb21pc2UgcmVqZWN0ZWQgY29ycmVjdGx5IE9LCisKK1Jl
bW92aW5nIGZyb20gYSB2YWxpZCBNZWRpYUtleVNlc3Npb24gc2hvdWxkIHJlc29sdmUuCitSVU4o
a2lkcyA9IEpTT04uc3RyaW5naWZ5KHsga2lkczogWyAiTVRJek5EVT0iIF0gfSkpCitSVU4obWVk
aWFLZXlTZXNzaW9uID0gbWVkaWFLZXlzLmNyZWF0ZVNlc3Npb24oInRlbXBvcmFyeSIpKQorUlVO
KHByb21pc2UgPSBtZWRpYUtleVNlc3Npb24uZ2VuZXJhdGVSZXF1ZXN0KCJrZXlpZHMiLCBlbmNv
ZGVyLmVuY29kZShraWRzKSkpCitQcm9taXNlIHJlc29sdmVkIE9LCitSVU4ocHJvbWlzZSA9IG1l
ZGlhS2V5U2Vzc2lvbi5yZW1vdmUoKSkKK1Byb21pc2UgcmVzb2x2ZWQgT0sKKworUmVtb3Zpbmcg
ZnJvbSBhIHZhbGlkIE1lZGlhS2V5U2Vzc2lvbiBzaG91bGQgZGlzcGF0Y2ggYSBsaWNlbnNlLXJl
bGVhc2UgbWVzc2FnZS4KK1JVTihraWRzID0gSlNPTi5zdHJpbmdpZnkoeyBraWRzOiBbICJNVEl6
TkRVPSIgXSB9KSkKK1JVTihtZWRpYUtleVNlc3Npb24gPSBtZWRpYUtleXMuY3JlYXRlU2Vzc2lv
bigidGVtcG9yYXJ5IikpCitSVU4ocHJvbWlzZSA9IG1lZGlhS2V5U2Vzc2lvbi5nZW5lcmF0ZVJl
cXVlc3QoImtleWlkcyIsIGVuY29kZXIuZW5jb2RlKGtpZHMpKSkKK1Byb21pc2UgcmVzb2x2ZWQg
T0sKK1JVTihwcm9taXNlID0gbWVkaWFLZXlTZXNzaW9uLnJlbW92ZSgpKQorRVhQRUNURUQgKGV2
ZW50Lm1lc3NhZ2VUeXBlID09ICdsaWNlbnNlLXJlbGVhc2UnKSBPSworRVhQRUNURUQgKG5ldyBV
aW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpLmxlbmd0aCA9PSAnMTQnKSBPSworRVhQRUNURUQgKG5l
dyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzBdID09ICcxMTQnKSBPSworRVhQRUNURUQgKG5l
dyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzFdID09ICcxMDEnKSBPSworRVhQRUNURUQgKG5l
dyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzJdID09ICcxMDknKSBPSworRVhQRUNURUQgKG5l
dyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzNdID09ICcxMTEnKSBPSworRVhQRUNURUQgKG5l
dyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzRdID09ICcxMTgnKSBPSworRVhQRUNURUQgKG5l
dyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzVdID09ICcxMDEnKSBPSworRVhQRUNURUQgKG5l
dyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzZdID09ICc0NScpIE9LCitFWFBFQ1RFRCAobmV3
IFVpbnQ4QXJyYXkoZXZlbnQubWVzc2FnZSlbN10gPT0gJzEwOScpIE9LCitFWFBFQ1RFRCAobmV3
IFVpbnQ4QXJyYXkoZXZlbnQubWVzc2FnZSlbOF0gPT0gJzEwMScpIE9LCitFWFBFQ1RFRCAobmV3
IFVpbnQ4QXJyYXkoZXZlbnQubWVzc2FnZSlbOV0gPT0gJzExNScpIE9LCitFWFBFQ1RFRCAobmV3
IFVpbnQ4QXJyYXkoZXZlbnQubWVzc2FnZSlbMTBdID09ICcxMTUnKSBPSworRVhQRUNURUQgKG5l
dyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzExXSA9PSAnOTcnKSBPSworRVhQRUNURUQgKG5l
dyBVaW50OEFycmF5KGV2ZW50Lm1lc3NhZ2UpWzEyXSA9PSAnMTAzJykgT0sKK0VYUEVDVEVEIChu
ZXcgVWludDhBcnJheShldmVudC5tZXNzYWdlKVsxM10gPT0gJzEwMScpIE9LCitQcm9taXNlIHJl
c29sdmVkIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9l
bmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVNlc3Npb24tcmVtb3ZlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVNlc3Npb24tcmVtb3ZlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZGE4NjU4OTJiZjdmZDdhNmFhMWM4Y2U4ZDk1ZmIxOGZkYjllYTk5ZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2Nr
LU1lZGlhS2V5U2Vzc2lvbi1yZW1vdmUuaHRtbApAQCAtMCwwICsxLDEwOSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPS4uL3ZpZGVvLXRlc3QuanM+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIHZhciBt
b2NrOworICAgIHZhciBwcm9taXNlOworICAgIHZhciBtZWRpYUtleVN5c3RlbUFjY2VzczsKKyAg
ICB2YXIgbWVkaWFLZXlzOworICAgIHZhciBtZWRpYUtleVNlc3Npb247CisgICAgdmFyIGNhcGFi
aWxpdGllcyA9IHt9OworICAgIHZhciBraWRzOworICAgIHZhciBlbmNvZGVyID0gbmV3IFRleHRF
bmNvZGVyKCk7CisKKyAgICBmdW5jdGlvbiBkb1Rlc3QoKQorICAgIHsKKyAgICAgICAgaWYgKCF3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBmYWlsVGVzdCgiSW50ZXJuYWxzIGlzIHJl
cXVpcmVkIGZvciB0aGlzIHRlc3QuIikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIHJ1bignaW50ZXJuYWxzLmluaXRpYWxpemVNb2NrTWVkaWFTb3VyY2UoKScpOwor
ICAgICAgICBydW4oJ21vY2sgPSBpbnRlcm5hbHMucmVnaXN0ZXJNb2NrQ0RNKCknKTsKKyAgICAg
ICAgcnVuKCdtb2NrLnN1cHBvcnRlZERhdGFUeXBlcyA9IFsia2V5aWRzIl0nKTsKKyAgICAgICAg
cnVuKCdjYXBhYmlsaXRpZXMuaW5pdERhdGFUeXBlcyA9IFsia2V5aWRzIl0nKTsKKyAgICAgICAg
cnVuKGBjYXBhYmlsaXRpZXMudmlkZW9DYXBhYmlsaXRpZXMgPSBbeyBjb250ZW50VHlwZTogJ3Zp
ZGVvL21vY2s7IGNvZGVjcz0ibW9jayInIH1dIGApOworICAgICAgICBydW4oJ3Byb21pc2UgPSBu
YXZpZ2F0b3IucmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKCJvcmcud2Via2l0Lm1vY2siLCBb
Y2FwYWJpbGl0aWVzXSknKTsKKyAgICAgICAgc2hvdWxkUmVzb2x2ZShwcm9taXNlKS50aGVuKGdv
dE1lZGlhS2V5U3lzdGVtQWNjZXNzLCBmYWlsVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
bmV4dCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgIG1vY2su
dW5yZWdpc3RlcigpOworICAgICAgICAgICAgZW5kVGVzdCgpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICB2YXIgbmV4dFRlc3QgPSB0ZXN0cy5zaGlmdCgpOworICAg
ICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBuZXh0VGVzdCgpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGdvdE1lZGlhS2V5U3lzdGVtQWNjZXNzKHJlc3VsdCkgeworICAgICAgICBtZWRp
YUtleVN5c3RlbUFjY2VzcyA9IHJlc3VsdDsKKyAgICAgICAgbmV4dCgpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGdvdE1lZGlhS2V5cyhyZXN1bHQpIHsKKyAgICAgICAgbWVkaWFLZXlzID0gcmVz
dWx0OworICAgICAgICBuZXh0KCk7CisgICAgfQorCisgICAgdGVzdHMgPSBbCisgICAgICAgIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgcnVuKCdwcm9taXNlID0gbWVkaWFLZXlTeXN0ZW1BY2Nl
c3MuY3JlYXRlTWVkaWFLZXlzKCknKTsKKyAgICAgICAgICAgIHNob3VsZFJlc29sdmUocHJvbWlz
ZSkudGhlbihnb3RNZWRpYUtleXMsIGZhaWxUZXN0KTsKKyAgICAgICAgfSwKKworICAgICAgICBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgnUmVtb3ZpbmcgZnJvbSBhIG5v
bi1jYWxsYWJsZSBNZWRpYUtleVNlc3Npb24gc2hvdWxkIHJlamVjdC4nKTsKKyAgICAgICAgICAg
IHJ1bignbWVkaWFLZXlTZXNzaW9uID0gbWVkaWFLZXlzLmNyZWF0ZVNlc3Npb24oInRlbXBvcmFy
eSIpJyk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3R5cGVvZiBtZWRpYUtleVNlc3Npb24n
LCAnb2JqZWN0Jyk7CisgICAgICAgICAgICBydW4oJ3Byb21pc2UgPSBtZWRpYUtleVNlc3Npb24u
cmVtb3ZlKCknKTsKKyAgICAgICAgICAgIHNob3VsZFJlamVjdChwcm9taXNlKS50aGVuKG5leHQs
IG5leHQpOworICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCdSZW1vdmluZyBmcm9tIGEgZmFpbGVkIE1lZGlhS2V5U2Vzc2lvbiBzaG91
bGQgcmVqZWN0LicpOworICAgICAgICAgICAgcnVuKCdraWRzID0gSlNPTi5zdHJpbmdpZnkoeyBp
bnZhbGlkOiAiaW52YWxpZCIgfSknKTsKKyAgICAgICAgICAgIHJ1bignbWVkaWFLZXlTZXNzaW9u
ID0gbWVkaWFLZXlzLmNyZWF0ZVNlc3Npb24oInRlbXBvcmFyeSIpJyk7CisgICAgICAgICAgICBy
dW4oJ3Byb21pc2UgPSBtZWRpYUtleVNlc3Npb24uZ2VuZXJhdGVSZXF1ZXN0KCJrZXlpZHMiLCBl
bmNvZGVyLmVuY29kZShraWRzKSknKTsKKyAgICAgICAgICAgIHNob3VsZFJlamVjdChwcm9taXNl
KS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHJ1bigncHJvbWlzZSA9IG1lZGlh
S2V5U2Vzc2lvbi5yZW1vdmUoKScpOworICAgICAgICAgICAgICAgIHNob3VsZFJlamVjdChwcm9t
aXNlKS50aGVuKG5leHQsIG5leHQpOworICAgICAgICAgICAgfSwgbmV4dCk7CisgICAgICAgIH0s
CisKKyAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoJ1JlbW92
aW5nIGZyb20gYSB2YWxpZCBNZWRpYUtleVNlc3Npb24gc2hvdWxkIHJlc29sdmUuJyk7CisgICAg
ICAgICAgICBydW4oJ2tpZHMgPSBKU09OLnN0cmluZ2lmeSh7IGtpZHM6IFsgIk1USXpORFU9IiBd
IH0pJyk7CisgICAgICAgICAgICBydW4oJ21lZGlhS2V5U2Vzc2lvbiA9IG1lZGlhS2V5cy5jcmVh
dGVTZXNzaW9uKCJ0ZW1wb3JhcnkiKScpOworICAgICAgICAgICAgcnVuKCdwcm9taXNlID0gbWVk
aWFLZXlTZXNzaW9uLmdlbmVyYXRlUmVxdWVzdCgia2V5aWRzIiwgZW5jb2Rlci5lbmNvZGUoa2lk
cykpJyk7CisgICAgICAgICAgICBzaG91bGRSZXNvbHZlKHByb21pc2UpLnRoZW4oZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgcnVuKCdwcm9taXNlID0gbWVkaWFLZXlTZXNzaW9uLnJlbW92
ZSgpJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkUmVzb2x2ZShwcm9taXNlKS50aGVuKG5leHQs
IG5leHQpOworICAgICAgICAgICAgfSwgbmV4dCk7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoJ1JlbW92aW5nIGZyb20gYSB2YWxp
ZCBNZWRpYUtleVNlc3Npb24gc2hvdWxkIGRpc3BhdGNoIGEgbGljZW5zZS1yZWxlYXNlIG1lc3Nh
Z2UuJyk7CisgICAgICAgICAgICBydW4oJ2tpZHMgPSBKU09OLnN0cmluZ2lmeSh7IGtpZHM6IFsg
Ik1USXpORFU9IiBdIH0pJyk7CisgICAgICAgICAgICBydW4oJ21lZGlhS2V5U2Vzc2lvbiA9IG1l
ZGlhS2V5cy5jcmVhdGVTZXNzaW9uKCJ0ZW1wb3JhcnkiKScpOworICAgICAgICAgICAgcnVuKCdw
cm9taXNlID0gbWVkaWFLZXlTZXNzaW9uLmdlbmVyYXRlUmVxdWVzdCgia2V5aWRzIiwgZW5jb2Rl
ci5lbmNvZGUoa2lkcykpJyk7CisgICAgICAgICAgICBzaG91bGRSZXNvbHZlKHByb21pc2UpLnRo
ZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgcnVuKCdwcm9taXNlID0gbWVkaWFLZXlT
ZXNzaW9uLnJlbW92ZSgpJyk7CisgICAgICAgICAgICAgICAgbWVkaWFLZXlTZXNzaW9uLmFkZEV2
ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgICAg
ICAgICB0ZXN0RXhwZWN0ZWQoJ2V2ZW50Lm1lc3NhZ2VUeXBlJywgJ2xpY2Vuc2UtcmVsZWFzZScp
OworICAgICAgICAgICAgICAgICAgICB0ZXN0QXJyYXlzRXF1YWwoJ25ldyBVaW50OEFycmF5KGV2
ZW50Lm1lc3NhZ2UpJywgZW5jb2Rlci5lbmNvZGUoInJlbW92ZS1tZXNzYWdlIikpOworCisgICAg
ICAgICAgICAgICAgICAgIHNob3VsZFJlc29sdmUocHJvbWlzZSkudGhlbihuZXh0LCBuZXh0KTsK
KyAgICAgICAgICAgICAgICB9LCB0cnVlKTsKKyAgICAgICAgICAgIH0sIG5leHQpOworICAgICAg
ICB9LAorICAgIF07CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImRvVGVz
dCgpIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggNDgyNzIwZTQ2MDFjYWJhZTRiMDk1NzY5ZWQ5YWI0ZTVkN2I1NTIzNS4u
ODQ0NTQzNjEwNWJlNjQyNWE3N2Y1ZjZmOTQ0N2EzOTIxMTI2Y2JkMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI5ODMsNiArMjk4Myw3IEBAIEJ1ZyhF
RkwpIG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9lbmNyeXB0ZWQtbWVkaWEtbm90LWxvYWRlZC5odG1s
IFsgRmFpbHVyZSBdCiBCdWcoRUZMKSBtZWRpYS9lbmNyeXB0ZWQtbWVkaWEvZW5jcnlwdGVkLW1l
ZGlhLXN5bnRheC5odG1sIFsgRmFpbHVyZSBdCiBCdWcoRUZMKSBtZWRpYS9lbmNyeXB0ZWQtbWVk
aWEvbW9jay1NZWRpYUtleVNlc3Npb24tY2xvc2UuaHRtbCBbIEZhaWx1cmUgXQogQnVnKEVGTCkg
bWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTZXNzaW9uLWdlbmVyYXRlUmVxdWVz
dC5odG1sIFsgRmFpbHVyZSBdCitCdWcoRUZMKSBtZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1N
ZWRpYUtleVNlc3Npb24tcmVtb3ZlLmh0bWwgWyBGYWlsdXJlIF0KIEJ1ZyhFRkwpIG1lZGlhL2Vu
Y3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U2Vzc2lvbi11cGRhdGUuaHRtbCBbIEZhaWx1cmUg
XQogQnVnKEVGTCkgbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nl
c3MuaHRtbCBbIEZhaWx1cmUgXQogQnVnKEVGTCkgbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2st
TWVkaWFLZXlzLWNyZWF0ZVNlc3Npb24uaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhZTMxNTZlOTYwZGRkMTA3MDU3ZWEyYmVh
YzU2ODI3ODc4NmFkZjZmLi4yMWQ5N2VlY2JjZGFmM2FjMDc0YThhMzBkMDk1NGYxOTAzNGYyNTEy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTQ5NCw2
ICsxNDk0LDcgQEAgbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlzLXNldFNlcnZl
ckNlcnRpZmljYXRlLmh0bWwgWyBTa2lwIF0KIG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1l
ZGlhS2V5cy1jcmVhdGVTZXNzaW9uLmh0bWwgWyBTa2lwIF0KIG1lZGlhL2VuY3J5cHRlZC1tZWRp
YS9tb2NrLU1lZGlhS2V5U2Vzc2lvbi1jbG9zZS5odG1sIFsgU2tpcCBdCiBtZWRpYS9lbmNyeXB0
ZWQtbWVkaWEvbW9jay1NZWRpYUtleVNlc3Npb24tZ2VuZXJhdGVSZXF1ZXN0Lmh0bWwgWyBTa2lw
IF0KK21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U2Vzc2lvbi1yZW1vdmUuaHRt
bCBbIFNraXAgXQogbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTZXNzaW9uLXVw
ZGF0ZS5odG1sIFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xNjYwMjUgaHR0cC90ZXN0cy9mZXRj
aC9mZXRjaGluZy1zYW1lLXJlc291cmNlLXdpdGgtZGlmZmZlcmVudC1vcHRpb25zLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>