<?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>124253</bug_id>
          
          <creation_ts>2013-11-12 17:29:02 -0800</creation_ts>
          <short_desc>REGRESSION(r159160): Too many errors (make fewer) (Requested by ap on #webkit).</short_desc>
          <delta_ts>2013-11-12 17:32:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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>124236</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ap</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>949972</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-12 17:29:02 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/159160 broke the build:
Too many errors (make fewer) (Requested by ap on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949974</commentid>
    <comment_count>1</comment_count>
      <attachid>216751</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-12 17:29:24 -0800</bug_when>
    <thetext>Created attachment 216751
ROLLOUT of r159160

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949978</commentid>
    <comment_count>2</comment_count>
      <attachid>216751</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-12 17:32:53 -0800</bug_when>
    <thetext>Comment on attachment 216751
ROLLOUT of r159160

Clearing flags on attachment: 216751

Committed r159167: &lt;http://trac.webkit.org/changeset/159167&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949979</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-12 17:32:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216751</attachid>
            <date>2013-11-12 17:29:24 -0800</date>
            <delta_ts>2013-11-12 17:32:53 -0800</delta_ts>
            <desc>ROLLOUT of r159160</desc>
            <filename>bug-124253-20131112172924.patch</filename>
            <type>text/plain</type>
            <size>111710</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5MTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDI2YTFlNDRmNTExYWMw
NmFjOWNmOGNjOGU5NjFmZDE4NDg5M2ViNC4uYzI0OWJkNzEyODQ4MTA5ODQ1ZmE3NWQ3ODBhMWQx
ZjkyOGU4YTYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEzLTExLTEyICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTU5MTYwLCByMTU5MTYxLCBhbmQgcjE1OTE2NC4KKyAgICAgICAgaHR0
cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTU5MTYwCisgICAgICAgIGh0dHA6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LzE1OTE2MQorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC8xNTkxNjQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyNDI1MworCisgICAgICAgIFRvbyBtYW55IGVycm9ycyAobWFrZSBmZXdl
cikgKFJlcXVlc3RlZCBieSBhcCBvbiAjd2Via2l0KS4KKworICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0b0Fs
Z29yaXRobUJ1aWxkZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3Jp
dGhtQnVpbGRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGlj
dGlvbmFyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBZXNDYmNQYXJhbXMpOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlQWVzS2V5R2VuUGFyYW1zKToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZUhtYWNQYXJhbXMpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSG1hY0tleVBhcmFt
cyk6CisgICAgICAgIChXZWJDb3JlOjpKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0
ZVBhcmFtZXRlcnNGb3JFbmNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3J5cHRvQWxnb3Jp
dGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRlY3J5cHQpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yU2ln
bik6CisgICAgICAgIChXZWJDb3JlOjpKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0
ZVBhcmFtZXRlcnNGb3JWZXJpZnkpOgorICAgICAgICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0
aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGlnZXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckdlbmVy
YXRlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6
Y3JlYXRlUGFyYW1ldGVyc0ZvckRlcml2ZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NyeXB0
b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZXJpdmVCaXRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1l
dGVyc0ZvckltcG9ydEtleSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NyeXB0b0FsZ29yaXRobURp
Y3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JFeHBvcnRLZXkpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yV3JhcEtl
eSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0
ZVBhcmFtZXRlcnNGb3JVbndyYXBLZXkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3J5cHRv
S2V5U2VyaWFsaXphdGlvbkpXSy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NyeXB0b0tleVNl
cmlhbGl6YXRpb25KV0s6OnJlY29uY2lsZUFsZ29yaXRobSk6CisgICAgICAgIChXZWJDb3JlOjpK
U0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OmtleURhdGEpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oOgorICAgICAgICAqIGNyeXB0by9Dcnlw
dG9BbGdvcml0aG1EZXNjcmlwdGlvbkJ1aWxkZXIuaDoKKyAgICAgICAgKiBjcnlwdG8vQ3J5cHRv
QWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGNy
eXB0by9DcnlwdG9LZXkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVOVU1fQ0xBU1MpOgorICAgICAg
ICAqIGNyeXB0by9DcnlwdG9LZXlEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlE
YXRhOjpFTlVNX0NMQVNTKToKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfQ0JDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19D
QkM6OmltcG9ydEtleSk6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtSE1BQy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1ITUFDOjppbXBv
cnRLZXkpOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNT
QV9QS0NTMV92MV81LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oOiBSZW1vdmVkLgorICAgICAgICAqIGNy
eXB0by9rZXlzL0NyeXB0b0tleUFFUy5oOgorICAgICAgICAoV2ViQ29yZTo6YXNDcnlwdG9LZXlB
RVMpOgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlLmg6
CisgICAgICAgIChXZWJDb3JlOjphc0NyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlKToKKyAgICAg
ICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5jcHA6IFJlbW92ZWQu
CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmg6CisgICAgICAgIChX
ZWJDb3JlOjphc0NyeXB0b0tleUhNQUMpOgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tl
eVJTQS5oOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVT
X0NCQ01hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpl
bmNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19DQkM6OmRlY3J5
cHQpOgorICAgICAgICAqIGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1ITUFDOjpzaWduKToKKyAgICAgICAgKFdl
YkNvcmU6OkNyeXB0b0FsZ29yaXRobUhNQUM6OnZlcmlmeSk6CisgICAgICAgICogY3J5cHRvL21h
Yy9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeU1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlw
dG9BbGdvcml0aG1SZWdpc3RyeTo6cGxhdGZvcm1SZWdpc3RlckFsZ29yaXRobXMpOgorICAgICAg
ICAqIGNyeXB0by9tYWMvQ3J5cHRvS2V5UlNBTWFjLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBj
cnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zLmg6CisgICAgICAg
ICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmg6IFJl
bW92ZWQuCisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhU3Nh
S2V5UGFyYW1zLmg6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRv
QWxnb3JpdGhtUnNhU3NhUGFyYW1zLmg6IFJlbW92ZWQuCisKIDIwMTMtMTEtMTIgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGtleSBnZW5l
cmF0aW9uIGFuZCBKV0sgaW1wb3J0IGZvciBSU0FTU0EtUEtDUzEtdjFfNQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY2ZjFiZjM5
ZjI5NDNjNDJlNTZjODk0YzcyYTdlNGEzNDNiMDBiZWQuLjZkNTBhNTYwZDY2NTAwNjEzMGJmNzU5
MTVjMDNhNGUxYTc1ZDczMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU1OTUsOCArNTU5NSw2IEBACiAJCUUxNTdBOEYxMTgx
ODU0MjUwMDlGODIxRCAvKiBKU0NyeXB0b0FsZ29yaXRobUJ1aWxkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTdBOEVGMTgxODU0MjUwMDlGODIx
RCAvKiBKU0NyeXB0b0FsZ29yaXRobUJ1aWxkZXIuaCAqLzsgfTsKIAkJRTE1QTM2RDcxMTA0NTcy
MDAwQjdCNjM5IC8qIFhNTE5TTmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxNUEzNkQ2MTEwNDU3MjAwMEI3QjYzOSAvKiBYTUxOU05hbWVzLmgg
Ki87IH07CiAJCUUxNUEzNkQ5MTEwNDU3MjcwMEI3QjYzOSAvKiBYTUxOU05hbWVzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNUEzNkQ4MTEwNDU3
MjcwMEI3QjYzOSAvKiBYTUxOU05hbWVzLmNwcCAqLzsgfTsKLQkJRTE2NEZBQTMxODMxNUJGNDAw
REI0RTYxIC8qIENyeXB0b0tleVJTQS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTE2NEZBQTIxODMxNUJGNDAwREI0RTYxIC8qIENyeXB0b0tleVJTQS5o
ICovOyB9OwotCQlFMTY0RkFBNTE4MzE1RTFBMDBEQjRFNjEgLyogQ3J5cHRvS2V5UlNBTWFjLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNjRGQUE0
MTgzMTVFMUEwMERCNEU2MSAvKiBDcnlwdG9LZXlSU0FNYWMuY3BwICovOyB9OwogCQlFMTY5ODAz
RDExMzM1NDJEMDA4OTQxMTUgLyogQ1J1bnRpbWVPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNjk4MDNDMTEzMzU0MkQwMDg5NDExNSAvKiBD
UnVudGltZU9iamVjdC5oICovOyB9OwogCQlFMTY5ODA0OTExMzM2NDQ3MDA4OTQxMTUgLyogQ1J1
bnRpbWVPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTE2OTgwNDgxMTMzNjQ0NzAwODk0MTE1IC8qIENSdW50aW1lT2JqZWN0LmNwcCAqLzsg
fTsKIAkJRTE2OTgyNTUxMTM0NjI5RDAwODk0MTE1IC8qIE9iakNSdW50aW1lT2JqZWN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTY5ODI1NDExMzQ2
MjlEMDA4OTQxMTUgLyogT2JqQ1J1bnRpbWVPYmplY3QuaCAqLzsgfTsKQEAgLTU2NzEsMTYgKzU2
NjksOCBAQAogCQlFMUJBNjcxODE3NDJCRUU2MDBDMjAyNTEgLyogQ2FyYm9uLmZyYW1ld29yayBp
biBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzI4Njk0
MDI4NDZEQ0QwMTg2MzVDQSAvKiBDYXJib24uZnJhbWV3b3JrICovOyB9OwogCQlFMUJBNjcxQTE3
NDJCRUY0MDBDMjAyNTEgLyogV2ViQ29yZVRlc3RTaGltTGlicmFyeS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUJBNjcxOTE3NDJCRUY0MDBDMjAy
NTEgLyogV2ViQ29yZVRlc3RTaGltTGlicmFyeS5jcHAgKi87IH07CiAJCUUxQkI4NEFEMTgyMkNB
NzQwMDUyNTA0MyAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeU1hYy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUJCODRBQzE4MjJDQTc0MDA1MjUw
NDMgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlNYWMuY3BwICovOyB9OwotCQlFMUJEMzMxOTE4
MkQ4REREMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCRDMzMTcxODJE
OERERDAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmNwcCAqLzsg
fTsKLQkJRTFCRDMzMUExODJEOERERDAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9Q
S0NTMV92MV81LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMUJEMzMxODE4MkQ4REREMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1Mx
X3YxXzUuaCAqLzsgfTsKLQkJRTFCRDMzMUMxODJEOEVFOTAwQzA1RDlGIC8qIENyeXB0b0FsZ29y
aXRobVJzYVNzYVBhcmFtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFCRDMzMUIxODJEOEVFOTAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYVNz
YVBhcmFtcy5oICovOyB9OwotCQlFMUJEMzMxRTE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxn
b3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUJEMzMxRDE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGht
UnNhS2V5R2VuUGFyYW1zLmggKi87IH07CiAJCUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBY
U0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFCRTUxMkIwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAg
Ki87IH07CiAJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkU1MTJDMENG
NkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCAqLzsgfTsKLQkJRTFDMjY2RDgxODMx
N0FCNDAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzI2NkQ2MTgz
MTdBQjQwMDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAg
Ki87IH07Ci0JCUUxQzI2NkRCMTgzMTk5MzUwMDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FT
c2FLZXlQYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxQzI2NkRBMTgzMTk5MzUwMDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FLZXlQ
YXJhbXMuaCAqLzsgfTsKLQkJRTFDMjY2REUxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURh
dGFSU0FDb21wb25lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxQzI2NkRDMTgzMTlGMzEwMDNGOEIzMyAvKiBDcnlwdG9LZXlEYXRhUlNBQ29t
cG9uZW50cy5jcHAgKi87IH07Ci0JCUUxQzI2NkRGMTgzMTlGMzEwMDNGOEIzMyAvKiBDcnlwdG9L
ZXlEYXRhUlNBQ29tcG9uZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFDMjY2REQxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FD
b21wb25lbnRzLmggKi87IH07CiAJCUUxQzJGMjRBMTUzM0EyMTIwMDgzRjk3NCAvKiBTZXR0aW5n
c01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
QzJGMjQ4MTUzM0EyMTIwMDgzRjk3NCAvKiBTZXR0aW5nc01hYy5tbSAqLzsgfTsKIAkJRTFDMzYy
RUYwRUFGMkFBOTAwNzQxMEJDIC8qIEpTV29ya2VyTG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzM2MkVEMEVBRjJBQTkwMDc0MTBCQyAv
KiBKU1dvcmtlckxvY2F0aW9uLmggKi87IH07CiAJCUUxQzM2MkYwMEVBRjJBQTkwMDc0MTBCQyAv
KiBKU1dvcmtlckxvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxQzM2MkVFMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9u
LmNwcCAqLzsgfTsKQEAgLTEyNjg3LDggKzEyNjc3LDYgQEAKIAkJRTE1N0E4RUYxODE4NTQyNTAw
OUY4MjFEIC8qIEpTQ3J5cHRvQWxnb3JpdGhtQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0NyeXB0b0FsZ29yaXRobUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTE1QTM2RDYxMTA0NTcyMDAwQjdCNjM5IC8qIFhNTE5TTmFtZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWE1MTlNOYW1lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMTVBMzZEODExMDQ1NzI3MDBCN0I2MzkgLyogWE1MTlNOYW1l
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYTUxOU05hbWVzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTE2NEZBQTIxODMxNUJGNDAwREI0RTYx
IC8qIENyeXB0b0tleVJTQS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDcnlw
dG9LZXlSU0EuaDsgcGF0aCA9IGtleXMvQ3J5cHRvS2V5UlNBLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUUxNjRGQUE0MTgzMTVFMUEwMERCNEU2MSAvKiBDcnlwdG9LZXlSU0FNYWMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ3J5cHRvS2V5UlNBTWFj
LmNwcDsgcGF0aCA9IG1hYy9DcnlwdG9LZXlSU0FNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMTY5ODAzQzExMzM1NDJEMDA4OTQxMTUgLyogQ1J1bnRpbWVPYmplY3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1J1bnRpbWVPYmplY3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE2OTgwNDgxMTMzNjQ0NzAwODk0MTE1IC8qIENSdW50
aW1lT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENSdW50
aW1lT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE2OTgyNTQxMTM0
NjI5RDAwODk0MTE1IC8qIE9iakNSdW50aW1lT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE9iakNSdW50aW1lT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMjc3MiwxNiArMTI3NjAsOCBAQAogCQlFMUJBNjcxNjE3NDJCREUwMDBDMjAyNTEg
LyogbGliV2ViQ29yZVRlc3RTaGltLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5k
ZXggPSAwOyBwYXRoID0gbGliV2ViQ29yZVRlc3RTaGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OwogCQlFMUJBNjcxOTE3NDJCRUY0MDBDMjAyNTEgLyogV2ViQ29y
ZVRlc3RTaGltTGlicmFyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJDb3JlVGVzdFNoaW1MaWJyYXJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTFCQjg0QUMxODIyQ0E3NDAwNTI1MDQzIC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5TWFj
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENyeXB0b0FsZ29yaXRo
bVJlZ2lzdHJ5TWFjLmNwcDsgcGF0aCA9IG1hYy9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeU1hYy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxQkQzMzE3MTgyRDhEREQwMEMwNUQ5
RiAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxQkQzMzE4MTgyRDhEREQwMEMwNUQ5
RiAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUJEMzMxQjE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5
cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oOyBwYXRoID0gcGFyYW1ldGVycy9Dcnlw
dG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
RTFCRDMzMUQxODJEOEY0MjAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFt
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDcnlwdG9BbGdvcml0aG1Sc2FL
ZXlHZW5QYXJhbXMuaDsgcGF0aCA9IHBhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2Vu
UGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQkU1MTJCMENGNkM1MTIw
MDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gWFNMVFVuaWNvZGVTb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTFCRTUxMkMwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYU0xUVW5pY29kZVNvcnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFDMjY2RDYxODMxN0FCNDAwM0Y4QjMzIC8qIENyeXB0b0Fs
Z29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFDMjY2REExODMxOTkzNTAwM0Y4QjMzIC8qIENy
eXB0b0FsZ29yaXRobVJzYVNzYUtleVBhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBDcnlwdG9BbGdvcml0aG1Sc2FTc2FLZXlQYXJhbXMuaDsgcGF0aCA9IHBhcmFtZXRl
cnMvQ3J5cHRvQWxnb3JpdGhtUnNhU3NhS2V5UGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUUxQzI2NkRDMTgzMTlGMzEwMDNGOEIzMyAvKiBDcnlwdG9LZXlEYXRhUlNBQ29t
cG9uZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDcnlwdG9L
ZXlEYXRhUlNBQ29tcG9uZW50cy5jcHA7IHBhdGggPSBrZXlzL0NyeXB0b0tleURhdGFSU0FDb21w
b25lbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFDMjY2REQxODMxOUYz
MTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmg7IHBhdGggPSBr
ZXlzL0NyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUxQzJGMjQ4MTUzM0EyMTIwMDgzRjk3NCAvKiBTZXR0aW5nc01hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNldHRpbmdzTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMUMzNjJFRDBFQUYyQUE5MDA3NDEwQkMgLyogSlNXb3Jr
ZXJMb2NhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dvcmtlckxv
Y2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQzM2MkVFMEVBRjJBQTkw
MDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTV29ya2VyTG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjAzNDgsMTMgKzIwMzI4LDExIEBACiAJCQkJRTEyNUY4MzcxODIyRjFFQjAwRDg0
Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwICovLAogCQkJCUUxQkI4NEFDMTgyMkNB
NzQwMDUyNTA0MyAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeU1hYy5jcHAgKi8sCiAJCQkJRTEy
NUY4MkQxODIyQ0ZGRjAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobVNIQTFNYWMuY3BwICovLAot
CQkJCUUxQzI2NkQ2MTgzMTdBQjQwMDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtD
UzFfdjFfNU1hYy5jcHAgKi8sCiAJCQkJRTE5QUMzREUxODI0REM2OTAwMzQ5NDI2IC8qIENyeXB0
b0FsZ29yaXRobVNIQTIyNE1hYy5jcHAgKi8sCiAJCQkJRTE5QUMzREYxODI0REM2OTAwMzQ5NDI2
IC8qIENyeXB0b0FsZ29yaXRobVNIQTI1Nk1hYy5jcHAgKi8sCiAJCQkJRTE5QUMzRTAxODI0REM2
OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTM4NE1hYy5jcHAgKi8sCiAJCQkJRTE5QUMz
RTExODI0REM2OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTUxMk1hYy5jcHAgKi8sCiAJ
CQkJRTE5QUMzRjgxODI1NjZGNzAwMzQ5NDI2IC8qIENyeXB0b0tleU1hYy5jcHAgKi8sCi0JCQkJ
RTE2NEZBQTQxODMxNUUxQTAwREI0RTYxIC8qIENyeXB0b0tleVJTQU1hYy5jcHAgKi8sCiAJCQkp
OwogCQkJbmFtZSA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMDM2Niw4
ICsyMDM0NCw2IEBACiAJCQkJRTEyNUY4NDAxODI0MjUzQTAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29y
aXRobUFFU19DQkMuaCAqLywKIAkJCQlFMTI1RjgyRjE4MjJGMTFCMDBEODRDRDkgLyogQ3J5cHRv
QWxnb3JpdGhtSE1BQy5jcHAgKi8sCiAJCQkJRTEyNUY4MzAxODIyRjExQjAwRDg0Q0Q5IC8qIENy
eXB0b0FsZ29yaXRobUhNQUMuaCAqLywKLQkJCQlFMUJEMzMxNzE4MkQ4REREMDBDMDVEOUYgLyog
Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3BwICovLAotCQkJCUUxQkQzMzE4MTgy
RDhEREQwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oICovLAog
CQkJCUUxMjVGODI5MTgyMkNGRUMwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1TSEExLmNwcCAq
LywKIAkJCQlFMTI1RjgyQTE4MjJDRkVDMDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtU0hBMS5o
ICovLAogCQkJCUUxOUFDM0U2MTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1TSEEy
MjQuY3BwICovLApAQCAtMjAzODksMTEgKzIwMzY1LDggQEAKIAkJCQlFMTI1Rjg0QzE4MjQyODlE
MDBEODRDRDkgLyogQ3J5cHRvS2V5QUVTLmggKi8sCiAJCQkJRTEyNUY4NjExODJDMzAzQTAwRDg0
Q0Q5IC8qIENyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlLmNwcCAqLywKIAkJCQlFMTI1Rjg2MjE4
MkMzMDNBMDBEODRDRDkgLyogQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UuaCAqLywKLQkJCQlF
MUMyNjZEQzE4MzE5RjMxMDAzRjhCMzMgLyogQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3Bw
ICovLAotCQkJCUUxQzI2NkREMTgzMTlGMzEwMDNGOEIzMyAvKiBDcnlwdG9LZXlEYXRhUlNBQ29t
cG9uZW50cy5oICovLAogCQkJCUUxMjVGODMzMTgyMkYxOEEwMEQ4NENEOSAvKiBDcnlwdG9LZXlI
TUFDLmNwcCAqLywKIAkJCQlFMTI1RjgzNDE4MjJGMThBMDBEODRDRDkgLyogQ3J5cHRvS2V5SE1B
Qy5oICovLAotCQkJCUUxNjRGQUEyMTgzMTVCRjQwMERCNEU2MSAvKiBDcnlwdG9LZXlSU0EuaCAq
LywKIAkJCQlFMTI1Rjg1NzE4MkMxQUE2MDBEODRDRDkgLyogQ3J5cHRvS2V5U2VyaWFsaXphdGlv
blJhdy5jcHAgKi8sCiAJCQkJRTEyNUY4NTgxODJDMUFBNjAwRDg0Q0Q5IC8qIENyeXB0b0tleVNl
cmlhbGl6YXRpb25SYXcuaCAqLywKIAkJCSk7CkBAIC0yMDQwNyw5ICsyMDM4MCw2IEBACiAJCQkJ
RTE5QUMzRjYxODI0RTVEMTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFt
cy5oICovLAogCQkJCUUxOURBMjlCMTgxODlBREQwMDA4OEJDOCAvKiBDcnlwdG9BbGdvcml0aG1I
bWFjS2V5UGFyYW1zLmggKi8sCiAJCQkJRTFDNjU3MUUxODE2RTUwMzAwMjU2Q0REIC8qIENyeXB0
b0FsZ29yaXRobUhtYWNQYXJhbXMuaCAqLywKLQkJCQlFMUJEMzMxRDE4MkQ4RjQyMDBDMDVEOUYg
LyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggKi8sCi0JCQkJRTFDMjY2REExODMx
OTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYVNzYUtleVBhcmFtcy5oICovLAotCQkJ
CUUxQkQzMzFCMTgyRDhFRTkwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMu
aCAqLywKIAkJCSk7CiAJCQluYW1lID0gcGFyYW1ldGVyczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0yMjE0MCw3ICsyMjExMCw2IEBACiAJCQkJRkQzMTYwMDIxMkIwMjY3NjAwQzFB
MzU5IC8qIENoYW5uZWxTcGxpdHRlck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBCNkEw
MDk5REYwMjcwMDkwRDc4MSAvKiBDaGFyYWN0ZXJEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
N0I4RkZEMTE2QUU3Rjk2MDAzODM4OEQgLyogQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTE2NEZBQTMxODMxNUJGNDAwREI0RTYxIC8qIENyeXB0
b0tleVJTQS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBMkEwRDAwNkMxRDAwRUY2RjI2IC8q
IENoYXJzZXREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RCMjEyNTFGMTJEMDAzRUYy
NjkgLyogQ2hlY2tib3hJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjkyNTQzMEY3
RUY1QjgwMDdFMzdDOSAvKiBDaGVja2VkUmFkaW9CdXR0b25zLmggaW4gSGVhZGVycyAqLywKQEAg
LTIyMzQyLDcgKzIyMzExLDYgQEAKIAkJCQlGNTVCM0RCNjEyNTFGMTJEMDAzRUYyNjkgLyogRGF0
ZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDUzRUI2MzcxNTlDNTcwNDAwMDAxQkI3
IC8qIERhdGVUaW1lRm9ybWF0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzA1ODUwMzE3RkExMEQw
MDA1RjJCQ0IgLyogSlNBbGxWaWRlb0NhcGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
RTFCRDMzMUExODJEOERERDAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92
MV81LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RCODEyNTFGMTJEMDAzRUYyNjkgLyogRGF0
ZVRpbWVJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREJBMTI1MUYxMkQwMDNF
RjI2OSAvKiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NUZF
QTVEMDE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjkw
Miw3ICsyMjg3MCw2IEBACiAJCQkJQjI3NTM1NkIwQjA1MzgxNDAwMkNFNjRGIC8qIEZsb2F0UmVj
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1NkQwQjA1MzgxNDAwMkNFNjRGIC8qIEZsb2F0
U2l6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDcyRjZEN0ExNTMxNTlBMzAwMUVFNDRFIC8qIEZs
b3dUaHJlYWRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMUJEMzMxRTE4MkQ4RjQy
MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNDk5M0JFNjBCMkYyQjFDMDA1MDQ5N0YgLyogRm9jdXNDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNjIyODc4NDBCNERCMzIyMDAwQzM0REYgLyogRm9jdXNEaXJlY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCUI2RDlEMjM1MTRFQUJEMjYwMDkwRDc1RSAvKiBGb2N1
c0V2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIzNDc4LDcgKzIzNDQ1LDYgQEAKIAkJCQlBODBF
N0IwQzBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MVGl0bGVFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwNzA3NTZENDE0MjM5QTRGMDA0MTQxNjEgLyogSlNIVE1MVHJhY2tFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTg1QjIxMTBBMUIyNTg3MDBEOEM4N0MgLyogSlNIVE1MVUxp
c3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlFMUMyNjZERjE4MzE5RjMxMDAzRjhCMzMg
LyogQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFNEFC
Q0Q1MTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDc4RTA5MjcxN0QxNEQxQzAwNDIwQUExIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQ2MTQxNzBDRDY4MjY5MDBGQURBNzUg
LyogSlNIVE1MVmlkZW9FbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIzNzA3LDcgKzIzNjcz
LDYgQEAKIAkJCQlCMkZBM0RERDBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnTW92ZXRv
QWJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0RERjBBQjc1QTZGMDAwRTVBQzQgLyogSlNT
VkdQYXRoU2VnTW92ZXRvUmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzA1ODUyMTE3RkRDMTQw
MDA1RjJCQ0IgLyogTWVkaWFUcmFja0NvbnN0cmFpbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUUx
QzI2NkRCMTgzMTk5MzUwMDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FLZXlQYXJhbXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEI1QTQ2MTgwREZGNEUwMDhCOEU2NSAvKiBWaWRlb1Ry
YWNrTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzREUxMEFCNzVBNkYwMDBF
NUFDNCAvKiBKU1NWR1BhdHRlcm5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTQyQTc5
NTBBRTVDOTQxMDBERjU4REYgLyogSlNTVkdQb2ludC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDAy
MCw3ICsyMzk4NSw2IEBACiAJCQkJMDc4RTA5MUIxN0QxNEQxQzAwNDIwQUExIC8qIE5hdmlnYXRv
clVzZXJNZWRpYUVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjVERDBFODFCOEREMDBC
MjU5NjUgLyogT3V0bGluZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBENTczNzBBNUM3
N0ZFMDA3RURENEMgLyogT3ZlcmZsb3dFdmVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTFCRDMz
MUMxODJEOEVFOTAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzc3NEFCQTUwRkEyMUVCNDAwQUQ3REU5IC8qIE92ZXJsYXBUZXN0UmVx
dWVzdENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVBMjE0NjgwOTdBMzI5MTAwQjkwNTBB
IC8qIFBhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCNTBCMURFMTdDRDRDMEYwMDg3RjYzQyAv
KiBGb3JtTmFtZWRJdGVtLmggaW4gSGVhZGVycyAqLywKQEAgLTI1NzkwLDcgKzI1NzU0LDYgQEAK
IAkJCQk1MEQ0MDYxMTE0N0Q0OURFMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyQ29tcGlsZWRQcm9n
cmFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwOTg3QzI2MTU3RDY3NkQwMEJEQTgzNSAvKiBD
dXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwRDQwNUY5
MTQ3RDMxRjMwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNoLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUUxQzI2NkRFMTgzMTlGMzEwMDNGOEIzMyAvKiBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RTEyRTkxMDE1RkE1RDNBMDA1RTQxMjYgLyogQ3Vz
dG9tRmlsdGVyTWVzaEdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MENDMEEzOTE0
QzZGNUIxMDAxN0FCNTEgLyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUwOTMzMzRGMTYzQjBFNDMwMDA5OUE2MCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJM
aXN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjYzOTIsNyArMjYzNTUsNiBAQAogCQkJCUUxMjVG
ODM4MTgyMkYxRUIwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1ITUFDTWFjLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDQ0Q3NEU1MEE0QzhEREYwMDVGREE2RCAvKiBIVE1MVmlld1NvdXJjZURv
Y3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0IzODc5MTIyODgzRTkwMEI4MUZGOCAv
KiBIVE1MVmlld1NvdXJjZVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlFMUMyNjZEODE4
MzE3QUI0MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEI4QzU2RDQwRjI4NjI3RjAwMDUwMkUxIC8qIEhUVFBIZWFk
ZXJNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE0Qzc2NzIwQ0U5MjNBMTAwN0VGM0NEIC8q
IEhUVFBQYXJzZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3MUE2N0NCMTFDNkM3REIwMDA0
N0I4QiAvKiBIeXBoZW5hdGlvbkNGLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjY4MDcsNyArMjY3
NjksNiBAQAogCQkJCUM2RjQyMEEyMTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJh
Y2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMxRkIwOUQxQ0M2MDAwMEJFMzI1IC8qIEpT
TXV0YXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNkYwOTAyQzE0MzI3RDRGMDA2
ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUxNjRG
QUE1MTgzMTVFMUEwMERCNEU2MSAvKiBDcnlwdG9LZXlSU0FNYWMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzZGMDkxN0YxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNkYwOEZDOTE0MzEwMDBEMDA2ODU4NDkgLyogSlNN
dXRhdGlvblJlY29yZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwMTE3RDE0Q0VFMDA0
MjBBQTEgLyogTWVkaWFTdHJlYW1SZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3MDk4
LDcgKzI3MDU5LDYgQEAKIAkJCQk5M0YxRDVDMDEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJHTExv
c2VDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOTlCMTA0MkQyRDMwMDA5RDQ0
NyAvKiBKU1dlYkdMUHJvZ3JhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUM3Qjk5RDEwNDJE
MkQzMDAwOUQ0NDcgLyogSlNXZWJHTFJlbmRlcmJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlFMUJEMzMxOTE4MkQ4REREMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1Mx
X3YxXzUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlFRUQxNDYxMDUxOTY5NDAwMDk5RkFCIC8q
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5RUVEMTRG
MTA1MTk3MUEwMDA5OUZBQiAvKiBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0OUM3QjlBMjEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTFNoYWRl
ci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3J5cHRvQWxnb3JpdGhtQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NyeXB0b0FsZ29yaXRobUJ1aWxkZXIuY3BwCmluZGV4IDEzYzA2M2IzMzM5NTc4NWJm
NDRiMzNkOGM3YjE2ZTg0ZmM2NTUyZTYuLjdiOTMyN2ZmMzQ0NDdlZjc0NDhjZThkMWE4NGU3ZWU3
NjgwNDQ2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRv
QWxnb3JpdGhtQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
cnlwdG9BbGdvcml0aG1CdWlsZGVyLmNwcApAQCAtMzAsOCArMzAsNiBAQAogCiAjaW5jbHVkZSA8
cnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0aW9u
cy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvVHlwZWRBcnJheXMuaD4KLSNpbmNsdWRlIDxydW50aW1l
L1R5cGVkQXJyYXlJbmxpbmVzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKQEAgLTY2LDE0
ICs2NCw2IEBAIHZvaWQgSlNDcnlwdG9BbGdvcml0aG1CdWlsZGVyOjphZGQoY29uc3QgY2hhciog
a2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgIG1fZGljdGlvbmFyeS0+cHV0RGlyZWN0KHZt
LCBpZGVudGlmaWVyLCBqc1N0cmluZyhtX2V4ZWMsIHZhbHVlKSk7CiB9CiAKLXZvaWQgSlNDcnlw
dG9BbGdvcml0aG1CdWlsZGVyOjphZGQoY29uc3QgY2hhcioga2V5LCBjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIGJ1ZmZlcikKLXsKLSAgICBWTSYgdm0gPSBtX2V4ZWMtPnZtKCk7Ci0gICAgSWRlbnRp
ZmllciBpZGVudGlmaWVyKCZ2bSwga2V5KTsKLSAgICBSZWZQdHI8VWludDhBcnJheT4gYXJyYXlW
aWV3ID0gVWludDhBcnJheTo6Y3JlYXRlKGJ1ZmZlci5kYXRhKCksIGJ1ZmZlci5zaXplKCkpOwot
ICAgIG1fZGljdGlvbmFyeS0+cHV0RGlyZWN0KHZtLCBpZGVudGlmaWVyLCBhcnJheVZpZXctPndy
YXAobV9leGVjLCB2bS5keW5hbWljR2xvYmFsT2JqZWN0KSk7Ci19Ci0KIHZvaWQgSlNDcnlwdG9B
bGdvcml0aG1CdWlsZGVyOjphZGQoY29uc3QgY2hhcioga2V5LCBjb25zdCBDcnlwdG9BbGdvcml0
aG1EZXNjcmlwdGlvbkJ1aWxkZXImIG5lc3RlZEJ1aWxkZXIpCiB7CiAgICAgVk0mIHZtID0gbV9l
eGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlw
dG9BbGdvcml0aG1CdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0
b0FsZ29yaXRobUJ1aWxkZXIuaAppbmRleCBlMDhjOGZlMjM4MTU5MDQ5ODlhNmNmMTUzYjdmNDNh
NGRmNTI4OGZiLi5kMmYzZDU4YWUxMDI1NzdkMzJlNWU3YTg0YzY0YWRjYTI0NDU3MzY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobUJ1aWxk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobUJ1
aWxkZXIuaApAQCAtNDgsNyArNDgsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRk
KGNvbnN0IGNoYXIqLCB1bnNpZ25lZCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFkZChj
b25zdCBjaGFyKiwgY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFk
ZChjb25zdCBjaGFyKiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIGFkZChjb25zdCBjaGFyKiwgY29uc3QgQ3J5cHRvQWxnb3JpdGhtRGVzY3JpcHRp
b25CdWlsZGVyJikgT1ZFUlJJREU7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcAppbmRl
eCA3YjkxZmE4YmI5Zjk4NmExZDE3YTAxYjNhMjdlZWI0NThlNzU4NTFmLi41MDlmNWNiZjhlZGJm
ZWMxYjI3YTNlZTkyMGIxNjQ2YmUyNGI5ZWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKQEAgLTMz
LDkgKzMzLDYgQEAKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zLmgiCiAj
aW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oIgogI2luY2x1ZGUgIkNyeXB0b0Fs
Z29yaXRobVJlZ2lzdHJ5LmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFy
YW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhU3NhS2V5UGFyYW1zLmgiCi0jaW5j
bHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIkpTQ3J5cHRvT3BlcmF0aW9uRGF0YS5oIgogI2luY2x1ZGUgIkpT
RE9NQmluZGluZy5oIgpAQCAtMTE5LDcgKzExNiw3IEBAIHN0YXRpYyBib29sIGdldEhhc2hBbGdv
cml0aG0oSlNEaWN0aW9uYXJ5JiBkaWN0aW9uYXJ5LCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
CiAgICAgcmV0dXJuIEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Z2V0QWxnb3JpdGhtSWRl
bnRpZmllcihleGVjLCBoYXNoLCByZXN1bHQpOwogfQogCi1zdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZUFlc0NiY1BhcmFtcyhFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnM+IGNyZWF0ZUFlc0NiY1BhcmFtcyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
SlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkgewogICAg
ICAgICB0aHJvd1R5cGVFcnJvcihleGVjKTsKQEAgLTE0OCw3ICsxNDUsNyBAQCBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZUFlc0NiY1BhcmFt
cyhFeGVjU3RhdGUqCiAgICAgcmV0dXJuIHN0ZDo6bW92ZShyZXN1bHQpOwogfQogCi1zdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZUFlc0tleUdl
blBhcmFtcyhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZUFlc0tleUdlblBhcmFtcyhK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICghdmFs
dWUuaXNPYmplY3QoKSkgewogICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjKTsKQEAgLTE2Niw3
ICsxNjMsNyBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnM+IGNyZWF0ZUFlc0tleUdlblBhcmFtcyhFeGVjU3RhdAogICAgIHJldHVybiBzdGQ6Om1vdmUo
cmVzdWx0KTsKIH0KIAotc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzPiBjcmVhdGVIbWFjUGFyYW1zKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkK
K3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRl
SG1hY1BhcmFtcyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewog
ICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkgewogICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVj
KTsKQEAgLTE4NCw3ICsxODEsNyBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnM+IGNyZWF0ZUhtYWNQYXJhbXMoRXhlY1N0YXRlKiBleAogICAgIHJldHVy
biBzdGQ6Om1vdmUocmVzdWx0KTsKIH0KIAotc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVIbWFjS2V5UGFyYW1zKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycz4gY3JlYXRlSG1hY0tleVBhcmFtcyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpK
U1ZhbHVlIHZhbHVlKQogewogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkgewogICAgICAgICB0
aHJvd1R5cGVFcnJvcihleGVjKTsKQEAgLTIwNiw2MyArMjAzLDcgQEAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVIbWFjS2V5UGFyYW1zKEV4
ZWNTdGF0ZSoKICAgICByZXR1cm4gc3RkOjptb3ZlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUnNhS2V5R2VuUGFy
YW1zKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAoIXZhbHVlLmlz
T2JqZWN0KCkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYyk7Ci0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIH0KLQotICAgIGF1dG8gcmVzdWx0ID0gc3RkOjptYWtlX3VuaXF1ZTxD
cnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXM+KCk7Ci0KLSAgICBKU1ZhbHVlIG1vZHVsdXNM
ZW5ndGhWYWx1ZSA9IGdldFByb3BlcnR5KGV4ZWMsIHZhbHVlLmdldE9iamVjdCgpLCAibW9kdWx1
c0xlbmd0aCIpOwotICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0KLSAgICAvLyBGSVhNRTogV2h5IG5vIEVuZm9yY2VSYW5nZT8gRmlsZWQgYXMg
PGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjM3Nzk+Lgot
ICAgIHJlc3VsdC0+bW9kdWx1c0xlbmd0aCA9IHRvVUludDMyKGV4ZWMsIG1vZHVsdXNMZW5ndGhW
YWx1ZSwgTm9ybWFsQ29udmVyc2lvbik7Ci0gICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIEpTVmFsdWUgcHVibGljRXhwb25lbnRWYWx1
ZSA9IGdldFByb3BlcnR5KGV4ZWMsIHZhbHVlLmdldE9iamVjdCgpLCAicHVibGljRXhwb25lbnQi
KTsKLSAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotCi0gICAgUmVmUHRyPFVpbnQ4QXJyYXk+IHB1YmxpY0V4cG9uZW50QXJyYXkgPSB0b1VpbnQ4
QXJyYXkocHVibGljRXhwb25lbnRWYWx1ZSk7Ci0gICAgaWYgKHB1YmxpY0V4cG9uZW50QXJyYXkp
IHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgIkV4cGVjdGVkIGEgVWludDhBcnJheSBp
biBwdWJsaWNFeHBvbmVudCIpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAg
cmVzdWx0LT5wdWJsaWNFeHBvbmVudC5hcHBlbmQocHVibGljRXhwb25lbnRBcnJheS0+ZGF0YSgp
LCBwdWJsaWNFeHBvbmVudEFycmF5LT5ieXRlTGVuZ3RoKCkpOwotCi0gICAgcmV0dXJuIHN0ZDo6
bW92ZShyZXN1bHQpOwotfQotCi1zdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnM+IGNyZWF0ZVJzYVNzYUtleVBhcmFtcyhFeGVjU3RhdGUqLCBKU1ZhbHVlKQot
ewotICAgIC8vIFdlYkNyeXB0byBSU0FTU0EtUEtDUzEtdjFfNSBhbGdvcml0aG0gY3VycmVudGx5
IGRvZXMgbm90IHRha2UgYW55IHBhcmFtZXRlcnMgdG8gaW1wb3J0S2V5LgotICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPENyeXB0b0FsZ29yaXRobVJzYVNzYUtleVBhcmFtcz4oKTsKLX0KLQot
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVS
c2FTc2FQYXJhbXMoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIGlmICgh
dmFsdWUuaXNPYmplY3QoKSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjKTsKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgSlNEaWN0aW9uYXJ5IGpzRGljdGlvbmFy
eShleGVjLCB2YWx1ZS5nZXRPYmplY3QoKSk7Ci0gICAgYXV0byByZXN1bHQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcz4oKTsKLQotICAgIGlmICghZ2V0SGFz
aEFsZ29yaXRobShqc0RpY3Rpb25hcnksIHJlc3VsdC0+aGFzaCkpIHsKLSAgICAgICAgQVNTRVJU
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
Ci0gICAgcmV0dXJuIHN0ZDo6bW92ZShyZXN1bHQpOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVh
dGVQYXJhbWV0ZXJzRm9yRW5jcnlwdChFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQorc3RkOjp1bmlxdWVfcHRyPENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRl
UGFyYW1ldGVyc0ZvckVuY3J5cHQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgc3dpdGNo
IChhbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVT
X1BLQ1MxX3YxXzU6CkBAIC0yOTQsNyArMjM1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGEK
ICAgICB9CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBK
U0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KEV4
ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFs
dWUgdmFsdWUpCitzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlND
cnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVjcnlwdChKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpT
Qzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2Ug
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKQEAgLTMyNiwxNCAr
MjY3LDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0Ny
eXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhCiAgICAgfQogfQogCi1zdGQ6OnVuaXF1
ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9u
YXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yU2lnbihFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQorc3RkOjp1bmlxdWVfcHRy
PENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6
Y3JlYXRlUGFyYW1ldGVyc0ZvclNpZ24oSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgc3dp
dGNoIChhbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJT
QUVTX1BLQ1MxX3YxXzU6Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBOT1RfU1VQUE9S
VEVEX0VSUik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2UgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6UlNBU1NBX1BLQ1MxX3YxXzU6Ci0gICAgICAgIHJldHVybiBjcmVhdGVS
c2FTc2FQYXJhbXMoZXhlYywgdmFsdWUpOwogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6UlNBX1BTUzoKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9P
QUVQOgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNEU0E6CkBAIC0zNjEs
MTQgKzI5OSwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4g
SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYQogICAgIH0KIH0KIAotc3RkOjp1
bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGlj
dGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclZlcmlmeShFeGVjU3RhdGUqIGV4ZWMsIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQorc3RkOjp1bmlx
dWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlv
bmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclZlcmlmeShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsK
ICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6UlNBRVNfUEtDUzFfdjFfNToKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIE5P
VF9TVVBQT1JURURfRVJSKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNToKLSAgICAgICAgcmV0dXJu
IGNyZWF0ZVJzYVNzYVBhcmFtcyhleGVjLCB2YWx1ZSk7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpSU0FfUFNTOgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6UlNBX09BRVA6CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RTQToK
QEAgLTM5Niw3ICszMzEsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYQogICAgIH0KIH0KIAot
c3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3Jp
dGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRpZ2VzdChFeGVjU3RhdGUqIGV4ZWMs
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlKQorc3RkOjp1bmlx
dWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlv
bmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRpZ2VzdChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTQzo6SlNWYWx1ZSkKIHsKICAgICBz
d2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
UlNBRVNfUEtDUzFfdjFfNToKQEAgLTQyOCwxNCArMzYzLDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNy
ZWF0ZVBhCiAgICAgfQogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yR2Vu
ZXJhdGVLZXkoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29y
aXRobSwgSlNWYWx1ZSB2YWx1ZSkKK3N0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JH
ZW5lcmF0ZUtleShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ciBhbGdvcml0aG0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29yaXRo
bSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFf
NToKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81
OgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX1BTUzoKICAgICBjYXNl
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQOgotICAgICAgICByZXR1cm4gY3Jl
YXRlUnNhS2V5R2VuUGFyYW1zKGV4ZWMsIHZhbHVlKTsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OkVDRFNBOgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
RUNESDoKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIE5PVF9TVVBQT1JURURfRVJSKTsK
QEAgLTQ2Miw3ICszOTYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYQogICAgIH0KIH0KIAot
c3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3Jp
dGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRlcml2ZUtleShFeGVjU3RhdGUqIGV4
ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlKQorc3RkOjp1
bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGlj
dGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRlcml2ZUtleShKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTQzo6SlNWYWx1ZSkKIHsK
ICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6UlNBRVNfUEtDUzFfdjFfNToKQEAgLTQ5MSw3ICs0MjUsNyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5
OjpjcmVhdGVQYQogICAgIH0KIH0KIAotc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0Zv
ckRlcml2ZUJpdHMoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFs
Z29yaXRobSwgSlNWYWx1ZSkKK3N0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZXJp
dmVCaXRzKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFs
Z29yaXRobSwgSlNDOjpKU1ZhbHVlKQogewogICAgIHN3aXRjaCAoYWxnb3JpdGhtKSB7CiAgICAg
Y2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81OgpAQCAtNTIw
LDEzICs0NTQsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGEKICAgICB9CiB9CiAKLXN0ZDo6
dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURp
Y3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JJbXBvcnRLZXkoRXhlY1N0YXRlKiBleGVjLCBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSB2YWx1ZSkKK3N0ZDo6
dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURp
Y3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JJbXBvcnRLZXkoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU0M6OkpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgc3dpdGNoIChhbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+KCk7CiAgICAgY2FzZSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNToKLSAgICAgICAgcmV0dXJuIGNyZWF0
ZVJzYVNzYUtleVBhcmFtcyhleGVjLCB2YWx1ZSk7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyOjpSU0FfUFNTOgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
UlNBX09BRVA6CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RTQToKQEAg
LTU1NCw3ICs0ODYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYQogICAgIH0KIH0KIAotc3Rk
Ojp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGht
RGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckV4cG9ydEtleShFeGVjU3RhdGUqIGV4ZWMs
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlKQorc3RkOjp1bmlx
dWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlv
bmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckV4cG9ydEtleShKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTQzo6SlNWYWx1ZSkKIHsKICAg
ICBzd2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6UlNBRVNfUEtDUzFfdjFfNToKQEAgLTU4NCw3ICs1MTYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5Ojpj
cmVhdGVQYQogICAgIH0KIH0KIAotc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0Zvcldy
YXBLZXkoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRo
bSwgSlNWYWx1ZSkKK3N0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBK
U0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JXcmFwS2V5KEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwg
SlNDOjpKU1ZhbHVlKQogewogICAgIHN3aXRjaCAoYWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81OgpAQCAtNjEzLDcgKzU0NSw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0Fs
Z29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhCiAgICAgfQogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5Ojpj
cmVhdGVQYXJhbWV0ZXJzRm9yVW53cmFwS2V5KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUpCitzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQ
YXJhbWV0ZXJzRm9yVW53cmFwS2V5KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNDOjpKU1ZhbHVlKQogewogICAgIHN3aXRjaCAoYWxn
b3JpdGhtKSB7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NT
MV92MV81OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9L
ZXlTZXJpYWxpemF0aW9uSldLLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5
cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5jcHAKaW5kZXggMDIyNjkyNTA2ZDI2ZTRkZWM4YTdhMTQ2
YzU4YzJlZGE4ODQzNzY0Ni4uN2RiZTQ4OTFjZGVkZGUyMDMzZGFlNDEyZjFlMmQyZjYwY2Q0NTc2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJp
YWxpemF0aW9uSldLLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0
b0tleVNlcmlhbGl6YXRpb25KV0suY3BwCkBAIC0zMSw5ICszMSw3IEBACiAjaW5jbHVkZSAiQ3J5
cHRvQWxnb3JpdGhtLmgiCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oIgog
I2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxn
b3JpdGhtUnNhU3NhS2V5UGFyYW1zLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5RGF0YU9jdGV0U2Vx
dWVuY2UuaCIKLSNpbmNsdWRlICJDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRl
IDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KQEAgLTQ0LDI2ICs0Miw2IEBAIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGJvb2wgZ2V0SlNBcnJheUZy
b21KU09OKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGpzb24sIGNvbnN0IGNoYXIqIGtleSwg
SlNBcnJheSomIHJlc3VsdCkKLXsKLSAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIoZXhlYywga2V5
KTsKLSAgICBQcm9wZXJ0eVNsb3Qgc2xvdChqc29uKTsKLQotICAgIGlmICghanNvbi0+Z2V0UHJv
cGVydHlTbG90KGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBKU1ZhbHVlIHZhbHVlID0gc2xvdC5nZXRWYWx1ZShleGVjLCBpZGVudGlmaWVyKTsK
LSAgICBBU1NFUlQoIWV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKLSAgICBpZiAoaXNKU0FycmF5KHZh
bHVlKSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBTdHJpbmc6OmZvcm1hdCgiRXhw
ZWN0ZWQgYW4gYXJyYXkgZm9yIFwiJXNcIiBKU09OIGtleSIsICBrZXkpKTsKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJlc3VsdCA9IGFzQXJyYXkodmFsdWUpOwotCi0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KIHN0YXRpYyBib29sIGdldFN0cmluZ0Zyb21KU09OKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqIGpzb24sIGNvbnN0IGNoYXIqIGtleSwgU3RyaW5nJiByZXN1bHQp
CiB7CiAgICAgSWRlbnRpZmllciBpZGVudGlmaWVyKGV4ZWMsIGtleSk7CkBAIC0xMDQsMjUgKzgy
LDYgQEAgc3RhdGljIGJvb2wgZ2V0Qm9vbGVhbkZyb21KU09OKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIGpzb24sIGNvbnN0IGNoYXIqIGtleSwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3Rh
dGljIGJvb2wgZ2V0QmlnSW50ZWdlclZlY3RvckZyb21KU09OKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIGpzb24sIGNvbnN0IGNoYXIqIGtleSwgVmVjdG9yPGNoYXI+JiByZXN1bHQpCi17Ci0g
ICAgU3RyaW5nIGJhc2U2NHVybEVuY29kZWROdW1iZXI7Ci0gICAgaWYgKCFnZXRTdHJpbmdGcm9t
SlNPTihleGVjLCBqc29uLCBrZXksIGJhc2U2NHVybEVuY29kZWROdW1iZXIpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWJhc2U2NFVSTERlY29kZShiYXNlNjR1cmxFbmNvZGVk
TnVtYmVyLCByZXN1bHQpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMsICJDYW5ub3Qg
ZGVjb2RlIGJhc2U2NHVybCBrZXkgZGF0YSBpbiBKV0siKTsKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KLQotICAgIGlmIChyZXN1bHRbMF0gPT0gMCkgewotICAgICAgICB0aHJvd1R5cGVF
cnJvcihleGVjLCAiSldLIEJpZ0ludGVnZXIgbXVzdCB1dGlsaXplIHRoZSBtaW5pbXVtIG51bWJl
ciBvZiBvY3RldHMgdG8gcmVwcmVzZW50IHRoZSB2YWx1ZSIpOwotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIEpTQ3J5cHRvS2V5U2VyaWFsaXph
dGlvbkpXSzo6SlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgU3RyaW5nJiBqc29uU3RyaW5nKQogICAgIDogbV9leGVjKGV4ZWMpCiB7CkBAIC0xNDksMTUg
KzEwOCw2IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cz4gY3JlYXRlSE1BQ1BhcmFtZXRlcnMoQ3J5cHRvQWxnCiAgICAgcmV0dXJuIHN0ZDo6bW92ZSho
bWFjUGFyYW1ldGVycyk7CiB9CiAKLXN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycz4gY3JlYXRlUlNBU1NBS2V5UGFyYW1ldGVycyhDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyIGhhc2hGdW5jdGlvbikKLXsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxn
b3JpdGhtUnNhU3NhS2V5UGFyYW1zPiByc2FTU0FQYXJhbWV0ZXJzID0gc3RkOjptYWtlX3VuaXF1
ZTxDcnlwdG9BbGdvcml0aG1Sc2FTc2FLZXlQYXJhbXM+KCk7Ci0gICAgcnNhU1NBUGFyYW1ldGVy
cy0+aGFzSGFzaCA9IHRydWU7Ci0gICAgcnNhU1NBUGFyYW1ldGVycy0+aGFzaCA9IGhhc2hGdW5j
dGlvbjsKLSAgICByZXR1cm4gc3RkOjptb3ZlKHJzYVNTQVBhcmFtZXRlcnMpOwotfQotCi0KIGJv
b2wgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpyZWNvbmNpbGVBbGdvcml0aG0oc3RkOjp1
bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4mIHN1Z2dlc3RlZEFsZ29yaXRobSwgc3RkOjp1bmlx
dWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+JiBzdWdnZXN0ZWRQYXJhbWV0ZXJzKSBj
b25zdAogewogICAgIGlmICghZ2V0U3RyaW5nRnJvbUpTT04obV9leGVjLCBtX2pzb24uZ2V0KCks
ICJhbGciLCBtX2p3a0FsZ29yaXRobU5hbWUpKSB7CkBAIC0xNzYsMTUgKzEyNiw2IEBAIGJvb2wg
SlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpyZWNvbmNpbGVBbGdvcml0aG0oc3RkOjp1bmlx
dWVfcHRyPENyeXB0b0FsZ29yCiAgICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0g
IkhTNTEyIikgewogICAgICAgICBhbGdvcml0aG0gPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6
c2hhcmVkKCkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUMpOwogICAgICAg
ICBwYXJhbWV0ZXJzID0gY3JlYXRlSE1BQ1BhcmFtZXRlcnMoQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6U0hBXzUxMik7Ci0gICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIlJT
MjU2IikgewotICAgICAgICBhbGdvcml0aG0gPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6c2hh
cmVkKCkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81
KTsKLSAgICAgICAgcGFyYW1ldGVycyA9IGNyZWF0ZVJTQVNTQUtleVBhcmFtZXRlcnMoQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzI1Nik7Ci0gICAgfSBlbHNlIGlmIChtX2p3a0FsZ29y
aXRobU5hbWUgPT0gIlJTMzg0IikgewotICAgICAgICBhbGdvcml0aG0gPSBDcnlwdG9BbGdvcml0
aG1SZWdpc3RyeTo6c2hhcmVkKCkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJT
QVNTQV9QS0NTMV92MV81KTsKLSAgICAgICAgcGFyYW1ldGVycyA9IGNyZWF0ZVJTQVNTQUtleVBh
cmFtZXRlcnMoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzM4NCk7Ci0gICAgfSBlbHNl
IGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIlJTNTEyIikgewotICAgICAgICBhbGdvcml0aG0g
PSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6c2hhcmVkKCkuY3JlYXRlKENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81KTsKLSAgICAgICAgcGFyYW1ldGVycyA9IGNy
ZWF0ZVJTQVNTQUtleVBhcmFtZXRlcnMoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzUx
Mik7CiAgICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIkExMjhDQkMiKSB7CiAg
ICAgICAgIGFsZ29yaXRobSA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjpzaGFyZWQoKS5jcmVh
dGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQyk7CiAgICAgICAgIHBhcmFtZXRl
cnMgPSBzdGQ6Om1ha2VfdW5pcXVlPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+KCk7CkBAIC0y
MTEsMjAgKzE1MiwxMSBAQCBib29sIEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6cmVjb25j
aWxlQWxnb3JpdGhtKHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcgogICAgIGlmIChhbGdvcml0
aG0tPmlkZW50aWZpZXIoKSAhPSBzdWdnZXN0ZWRBbGdvcml0aG0tPmlkZW50aWZpZXIoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGFsZ29yaXRobS0+aWRlbnRpZmllcigpID09
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUMpCi0gICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJj4oKnBhcmFtZXRlcnMpLmhhc2ggPT0gc3Rh
dGljX2Nhc3Q8Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyY+KCpzdWdnZXN0ZWRQYXJhbWV0ZXJz
KS5oYXNoOwotICAgIGlmIChhbGdvcml0aG0tPmlkZW50aWZpZXIoKSA9PSBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNSkgewotICAgICAgICBDcnlwdG9BbGdvcml0
aG1Sc2FTc2FLZXlQYXJhbXMmIHJzYVNTQVBhcmFtZXRlcnMgPSBzdGF0aWNfY2FzdDxDcnlwdG9B
bGdvcml0aG1Sc2FTc2FLZXlQYXJhbXMmPigqcGFyYW1ldGVycyk7Ci0gICAgICAgIENyeXB0b0Fs
Z29yaXRobVJzYVNzYUtleVBhcmFtcyYgc3VnZ2VzdGVkUlNBU1NBUGFyYW1ldGVycyA9IHN0YXRp
Y19jYXN0PENyeXB0b0FsZ29yaXRobVJzYVNzYUtleVBhcmFtcyY+KCpzdWdnZXN0ZWRQYXJhbWV0
ZXJzKTsKLSAgICAgICAgQVNTRVJUKHJzYVNTQVBhcmFtZXRlcnMuaGFzSGFzaCk7Ci0gICAgICAg
IGlmIChzdWdnZXN0ZWRSU0FTU0FQYXJhbWV0ZXJzLmhhc0hhc2gpCi0gICAgICAgICAgICByZXR1
cm4gc3VnZ2VzdGVkUlNBU1NBUGFyYW1ldGVycy5oYXNoID09IHJzYVNTQVBhcmFtZXRlcnMuaGFz
aDsKLSAgICAgICAgc3VnZ2VzdGVkUlNBU1NBUGFyYW1ldGVycy5oYXNIYXNoID0gdHJ1ZTsKLSAg
ICAgICAgc3VnZ2VzdGVkUlNBU1NBUGFyYW1ldGVycy5oYXNoID0gcnNhU1NBUGFyYW1ldGVycy5o
YXNoOwotICAgIH0KKyAgICAvLyBITUFDIGlzIHRoZSBvbmx5IGFsZ29yaXRobSB0aGF0IGhhcyBw
YXJhbWV0ZXJzIGluIGltcG9ydEtleS4KKyAgICBpZiAoYWxnb3JpdGhtLT5pZGVudGlmaWVyKCkg
IT0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQykKKyAgICAgICAgcmV0dXJuIHRydWU7
CiAKLSAgICAvLyBPdGhlciBhbGdvcml0aG1zIGRvbid0IGhhdmUgcGFyYW1ldGVycy4KLSAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q3J5cHRvQWxnb3JpdGhtSG1hY1Bh
cmFtcyY+KCpwYXJhbWV0ZXJzKS5oYXNoID09IHN0YXRpY19jYXN0PENyeXB0b0FsZ29yaXRobUht
YWNQYXJhbXMmPigqc3VnZ2VzdGVkUGFyYW1ldGVycykuaGFzaDsKIH0KIAogdm9pZCBKU0NyeXB0
b0tleVNlcmlhbGl6YXRpb25KV0s6OnJlY29uY2lsZVVzYWdlcyhDcnlwdG9LZXlVc2FnZSYgc3Vn
Z2VzdGVkVXNhZ2UpIGNvbnN0CkBAIC0yNzUsOCArMjA3LDIwIEBAIGJvb2wgSlNDcnlwdG9LZXlT
ZXJpYWxpemF0aW9uSldLOjprZXlTaXplSXNWYWxpZChzaXplX3Qgc2l6ZUluQml0cykgY29uc3QK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPENyeXB0b0tleURhdGE+IEpT
Q3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6a2V5RGF0YU9jdGV0U2VxdWVuY2UoKSBjb25zdAor
c3RkOjp1bmlxdWVfcHRyPENyeXB0b0tleURhdGE+IEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpX
Szo6a2V5RGF0YSgpIGNvbnN0CiB7CisgICAgU3RyaW5nIGp3a0tleVR5cGU7CisgICAgaWYgKCFn
ZXRTdHJpbmdGcm9tSlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgImt0eSIsIGp3a0tleVR5cGUp
KSB7CisgICAgICAgIGlmICghbV9leGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHRo
cm93VHlwZUVycm9yKG1fZXhlYywgIlJlcXVpcmVkIEpXSyBcImt0eVwiIG1lbWJlciBpcyBtaXNz
aW5nIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChqd2tLZXlU
eXBlICE9ICJvY3QiKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKG1fZXhlYywgIlVuc3VwcG9y
dGVkIEpXSyBrZXkgdHlwZSAiICsgandrS2V5VHlwZSk7CisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIH0KKwogICAgIFN0cmluZyBrZXlCYXNlNjRVUkw7CiAgICAgaWYgKCFnZXRTdHJpbmdG
cm9tSlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgImsiLCBrZXlCYXNlNjRVUkwpKSB7CiAgICAg
ICAgIGlmICghbV9leGVjLT5oYWRFeGNlcHRpb24oKSkKQEAgLTI5OCwxMTkgKzI0Miw2IEBAIHN0
ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRhPiBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6
OmtleURhdGFPY3RldFNlcXVlbmNlCiAgICAgcmV0dXJuIENyeXB0b0tleURhdGFPY3RldFNlcXVl
bmNlOjpjcmVhdGUob2N0ZXRTZXF1ZW5jZSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9L
ZXlEYXRhPiBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OmtleURhdGFSU0FDb21wb25lbnRz
KCkgY29uc3QKLXsKLSAgICBWZWN0b3I8Y2hhcj4gbW9kdWx1czsKLSAgICBWZWN0b3I8Y2hhcj4g
ZXhwb25lbnQ7Ci0gICAgVmVjdG9yPGNoYXI+IHByaXZhdGVFeHBvbmVudDsKLQotICAgIGlmICgh
Z2V0QmlnSW50ZWdlclZlY3RvckZyb21KU09OKG1fZXhlYywgbV9qc29uLmdldCgpLCAibiIsIG1v
ZHVsdXMpKSB7Ci0gICAgICAgIGlmICghbV9leGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAg
ICAgIHRocm93VHlwZUVycm9yKG1fZXhlYywgIlJlcXVpcmVkIEpXSyBcIm5cIiBtZW1iZXIgaXMg
bWlzc2luZyIpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBpZiAoIWdl
dEJpZ0ludGVnZXJWZWN0b3JGcm9tSlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgImUiLCBleHBv
bmVudCkpIHsKLSAgICAgICAgaWYgKCFtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAg
ICAgdGhyb3dUeXBlRXJyb3IobV9leGVjLCAiUmVxdWlyZWQgSldLIFwiZVwiIG1lbWJlciBpcyBt
aXNzaW5nIik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIGlmICghZ2V0
QmlnSW50ZWdlclZlY3RvckZyb21KU09OKG1fZXhlYywgbV9qc29uLmdldCgpLCAiZCIsIG1vZHVs
dXMpKSB7Ci0gICAgICAgIGlmIChtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50
czo6Y3JlYXRlUHVibGljKG1vZHVsdXMsIGV4cG9uZW50KTsKLSAgICB9Ci0KLSAgICBDcnlwdG9L
ZXlEYXRhUlNBQ29tcG9uZW50czo6UHJpbWVJbmZvIGZpcnN0UHJpbWVJbmZvOwotICAgIENyeXB0
b0tleURhdGFSU0FDb21wb25lbnRzOjpQcmltZUluZm8gc2Vjb25kUHJpbWVJbmZvOwotICAgIFZl
Y3RvcjxDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czo6UHJpbWVJbmZvPiBvdGhlclByaW1lSW5m
b3M7Ci0gICAgaWYgKCFnZXRCaWdJbnRlZ2VyVmVjdG9yRnJvbUpTT04obV9leGVjLCBtX2pzb24u
Z2V0KCksICJwIiwgZmlyc3RQcmltZUluZm8ucHJpbWVGYWN0b3IpKSB7Ci0gICAgICAgIGlmICht
X2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
ICAgIHJldHVybiBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czo6Y3JlYXRlUHJpdmF0ZShtb2R1
bHVzLCBleHBvbmVudCwgcHJpdmF0ZUV4cG9uZW50KTsKLSAgICB9Ci0KLSAgICBpZiAoIWdldEJp
Z0ludGVnZXJWZWN0b3JGcm9tSlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgImRwIiwgZmlyc3RQ
cmltZUluZm8uZmFjdG9yQ1JURXhwb25lbnQpKSB7Ci0gICAgICAgIGlmIChtX2V4ZWMtPmhhZEV4
Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBD
cnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czo6Y3JlYXRlUHJpdmF0ZShtb2R1bHVzLCBleHBvbmVu
dCwgcHJpdmF0ZUV4cG9uZW50KTsKLSAgICB9Ci0KLSAgICBpZiAoIWdldEJpZ0ludGVnZXJWZWN0
b3JGcm9tSlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgInEiLCBzZWNvbmRQcmltZUluZm8ucHJp
bWVGYWN0b3IpKSB7Ci0gICAgICAgIGlmIChtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBDcnlwdG9LZXlEYXRhUlNBQ29t
cG9uZW50czo6Y3JlYXRlUHJpdmF0ZShtb2R1bHVzLCBleHBvbmVudCwgcHJpdmF0ZUV4cG9uZW50
KTsKLSAgICB9Ci0KLSAgICBpZiAoIWdldEJpZ0ludGVnZXJWZWN0b3JGcm9tSlNPTihtX2V4ZWMs
IG1fanNvbi5nZXQoKSwgImRxIiwgc2Vjb25kUHJpbWVJbmZvLmZhY3RvckNSVEV4cG9uZW50KSkg
ewotICAgICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwotICAgICAgICByZXR1cm4gQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM6OmNy
ZWF0ZVByaXZhdGUobW9kdWx1cywgZXhwb25lbnQsIHByaXZhdGVFeHBvbmVudCk7Ci0gICAgfQot
Ci0gICAgaWYgKCFnZXRCaWdJbnRlZ2VyVmVjdG9yRnJvbUpTT04obV9leGVjLCBtX2pzb24uZ2V0
KCksICJxaSIsIHNlY29uZFByaW1lSW5mby5mYWN0b3JDUlRDb2VmZmljaWVudCkpIHsKLSAgICAg
ICAgaWYgKG1fZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICAgICAgcmV0dXJuIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzOjpjcmVhdGVQcml2
YXRlKG1vZHVsdXMsIGV4cG9uZW50LCBwcml2YXRlRXhwb25lbnQpOwotICAgIH0KLQotICAgIEpT
QXJyYXkqIG90aGVyUHJpbWVJbmZvSlNBcnJheTsKLSAgICBpZiAoIWdldEpTQXJyYXlGcm9tSlNP
TihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgIm90aCIsIG90aGVyUHJpbWVJbmZvSlNBcnJheSkpIHsK
LSAgICAgICAgaWYgKG1fZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICAgICAgcmV0dXJuIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzOjpjcmVh
dGVQcml2YXRlV2l0aEFkZGl0aW9uYWxEYXRhKG1vZHVsdXMsIGV4cG9uZW50LCBwcml2YXRlRXhw
b25lbnQsIGZpcnN0UHJpbWVJbmZvLCBzZWNvbmRQcmltZUluZm8sIG90aGVyUHJpbWVJbmZvcyk7
Ci0gICAgfQotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvdGhlclByaW1lSW5mb0pTQXJy
YXktPmxlbmd0aCgpOyArK2kpIHsKLSAgICAgICAgQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM6
OlByaW1lSW5mbyBpbmZvOwotICAgICAgICBKU1ZhbHVlIGVsZW1lbnQgPSBvdGhlclByaW1lSW5m
b0pTQXJyYXktPmdldEluZGV4KG1fZXhlYywgaSk7Ci0gICAgICAgIGlmIChtX2V4ZWMtPmhhZEV4
Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGlmICghZWxl
bWVudC5pc09iamVjdCgpKSB7Ci0gICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihtX2V4ZWMsICJK
V0sgXCJvdGhcIiBhcnJheSBtZW1iZXIgaXMgbm90IGFuIG9iamVjdCIpOwotICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFnZXRCaWdJbnRlZ2VyVmVj
dG9yRnJvbUpTT04obV9leGVjLCBhc09iamVjdChlbGVtZW50KSwgInIiLCBpbmZvLnByaW1lRmFj
dG9yKSkgewotICAgICAgICAgICAgaWYgKCFtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAg
ICAgICAgICAgIHRocm93VHlwZUVycm9yKG1fZXhlYywgIkNhbm5vdCBnZXQgcHJpbWUgZmFjdG9y
IGZvciBhIHByaW1lIGluIFwib3RoXCIgZGljdGlvbmFyeSIpOwotICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFnZXRCaWdJbnRlZ2VyVmVjdG9yRnJv
bUpTT04obV9leGVjLCBhc09iamVjdChlbGVtZW50KSwgImQiLCBpbmZvLmZhY3RvckNSVEV4cG9u
ZW50KSkgewotICAgICAgICAgICAgaWYgKCFtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAg
ICAgICAgICAgIHRocm93VHlwZUVycm9yKG1fZXhlYywgIkNhbm5vdCBnZXQgZmFjdG9yIENSVCBl
eHBvbmVudCBmb3IgYSBwcmltZSBpbiBcIm90aFwiIGRpY3Rpb25hcnkiKTsKLSAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwotICAgICAgICB9Ci0gICAgICAgIGlmICghZ2V0QmlnSW50ZWdlclZl
Y3RvckZyb21KU09OKG1fZXhlYywgYXNPYmplY3QoZWxlbWVudCksICJ0IiwgaW5mby5mYWN0b3JD
UlRDb2VmZmljaWVudCkpIHsKLSAgICAgICAgICAgIGlmICghbV9leGVjLT5oYWRFeGNlcHRpb24o
KSkKLSAgICAgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihtX2V4ZWMsICJDYW5ub3QgZ2V0IGZh
Y3RvciBDUlQgY29lZmZpY2llbnQgZm9yIGEgcHJpbWUgaW4gXCJvdGhcIiBkaWN0aW9uYXJ5Iik7
Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgfQotICAgICAgICBvdGhlclBy
aW1lSW5mb3MuYXBwZW5kKGluZm8pOwotICAgIH0KLQotICAgIHJldHVybiBDcnlwdG9LZXlEYXRh
UlNBQ29tcG9uZW50czo6Y3JlYXRlUHJpdmF0ZVdpdGhBZGRpdGlvbmFsRGF0YShtb2R1bHVzLCBl
eHBvbmVudCwgcHJpdmF0ZUV4cG9uZW50LCBmaXJzdFByaW1lSW5mbywgc2Vjb25kUHJpbWVJbmZv
LCBvdGhlclByaW1lSW5mb3MpOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YT4g
SlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjprZXlEYXRhKCkgY29uc3QKLXsKLSAgICBTdHJp
bmcgandrS2V5VHlwZTsKLSAgICBpZiAoIWdldFN0cmluZ0Zyb21KU09OKG1fZXhlYywgbV9qc29u
LmdldCgpLCAia3R5IiwgandrS2V5VHlwZSkpIHsKLSAgICAgICAgaWYgKCFtX2V4ZWMtPmhhZEV4
Y2VwdGlvbigpKQotICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IobV9leGVjLCAiUmVxdWlyZWQg
SldLIFwia3R5XCIgbWVtYmVyIGlzIG1pc3NpbmciKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgfQotCi0gICAgaWYgKGp3a0tleVR5cGUgPT0gIm9jdCIpCi0gICAgICAgIHJldHVybiBr
ZXlEYXRhT2N0ZXRTZXF1ZW5jZSgpOwotCi0gICAgaWYgKGp3a0tleVR5cGUgPT0gIlJTQSIpCi0g
ICAgICAgIHJldHVybiBrZXlEYXRhUlNBQ29tcG9uZW50cygpOwotCi0gICAgdGhyb3dUeXBlRXJy
b3IobV9leGVjLCAiVW5zdXBwb3J0ZWQgSldLIGtleSB0eXBlICIgKyBqd2tLZXlUeXBlKTsKLSAg
ICByZXR1cm4gbnVsbHB0cjsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oCmluZGV4IGFkMDUxNzAwNWMx
NmZiNmFmNzVjOGZkODkyYTk2ZmNjYzRjZjZlMDUuLjVkNWU4MjA3NDJkOTNkNThjMzIyNzZmNTE5
OTRmNWMwYjViYmUxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oCkBAIC02Myw4ICs2Myw2IEBAIHByaXZh
dGU6CiAgICAgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJik7CiAKICAgICBib29sIGtleVNpemVJc1ZhbGlkKHNpemVfdCBzaXplSW5CaXRz
KSBjb25zdDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YT4ga2V5RGF0YU9jdGV0
U2VxdWVuY2UoKSBjb25zdDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YT4ga2V5
RGF0YVJTQUNvbXBvbmVudHMoKSBjb25zdDsKIAogICAgIEpTQzo6RXhlY1N0YXRlKiBtX2V4ZWM7
CiAgICAgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4gbV9qc29uOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobURlc2NyaXB0aW9uQnVpbGRlci5oIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobURlc2NyaXB0aW9uQnVpbGRlci5o
CmluZGV4IGE3ZmUxNGJiMGM0OWE0NDYwNzkzMTEyM2FjODVhNGM0ZTM3ZWY4NTEuLjc3YWEyZTJh
ODJmMWIxNDRlMTEyNmU1NjNhY2E2NWU4YjIyYThkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1EZXNjcmlwdGlvbkJ1aWxkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtRGVzY3JpcHRpb25CdWlsZGVyLmgKQEAg
LTI4LDcgKzI4LDYgQEAKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgRU5BQkxFKFNV
QlRMRV9DUllQVE8pCiAKQEAgLTQ0LDcgKzQzLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2
b2lkIGFkZChjb25zdCBjaGFyKiwgdW5zaWduZWQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWRk
KGNvbnN0IGNoYXIqLCBjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGFkZChj
b25zdCBjaGFyKiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBhZGQoY29uc3QgY2hhciosIGNvbnN0IENyeXB0b0FsZ29yaXRobURlc2NyaXB0aW9uQnVpbGRl
ciYpID0gMDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9B
bGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2MGEzMWM3NzM4Y2YxODA2MzRjMGQ1ZjRiMzMwNTdjNDIyOWE0MzgyLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmgiCi0KLSNpZiBF
TkFCTEUoU1VCVExFX0NSWVBUTykKLQotI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81
OjpzaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkm
LCBjb25zdCBWZWN0b3I8Q3J5cHRvT3BlcmF0aW9uRGF0YT4mLCBzdGQ6OnVuaXF1ZV9wdHI8UHJv
bWlzZVdyYXBwZXI+LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBlYyA9IE5PVF9TVVBQT1JU
RURfRVJSOwotfQotCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81Ojp2ZXJp
ZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNv
bnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIC8qc2lnbmF0dXJlKi8sIGNvbnN0IFZlY3RvcjxDcnlw
dG9PcGVyYXRpb25EYXRhPiYgLypkYXRhKi8sIHN0ZDo6dW5pcXVlX3B0cjxQcm9taXNlV3JhcHBl
cj4sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZ
UFRPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleS5oIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleS5oCmluZGV4IDczNjJkYzc0YzNlNmJmYzA3MTMz
YzNiMzI0ZjRjZmZhNTI3ZGFjOGIuLmY2OThiYjNkYzRlYmZjNDAwY2ExMjIwOTFlNjk4ZDZiMDI5
MjIxZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5LmgKQEAgLTQxLDggKzQxLDcgQEAgY2xh
c3MgQ3J5cHRvQWxnb3JpdGhtRGVzY3JpcHRpb25CdWlsZGVyOwogCiBFTlVNX0NMQVNTKENyeXB0
b0tleUNsYXNzKSB7CiAgICAgSE1BQywKLSAgICBBRVMsCi0gICAgUlNBCisgICAgQUVTCiB9Owog
CiBjbGFzcyBDcnlwdG9LZXkgOiBwdWJsaWMgUmVmQ291bnRlZDxDcnlwdG9LZXk+IHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlEYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vQ3J5cHRvS2V5RGF0YS5oCmluZGV4IDU0MTA2YjNmNWVlZjc1OTgxMDBjNjFl
YWYzMGMwYWVjYTFkZGE4NWMuLjJlNTQ1MTIyNmY0ODE3MTU1YjVlNDgyN2FkY2ZlZDQwNzc4OGVl
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlEYXRhLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleURhdGEuaApAQCAtMzYsOCArMzYsNyBA
QCBjbGFzcyBDcnlwdG9LZXlEYXRhIHsKIFdURl9NQUtFX05PTkNPUFlBQkxFKENyeXB0b0tleURh
dGEpOwogcHVibGljOgogICAgIEVOVU1fQ0xBU1MoRm9ybWF0KSB7Ci0gICAgICAgIE9jdGV0U2Vx
dWVuY2UsCi0gICAgICAgIFJTQUNvbXBvbmVudHMKKyAgICAgICAgT2N0ZXRTZXF1ZW5jZQogICAg
IH07CiAKICAgICBDcnlwdG9LZXlEYXRhKEZvcm1hdCBmb3JtYXQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMu
Y3BwCmluZGV4IDA4M2EzZmVmOWFlZTZlYjAxODdlNThjMTQ0NDY0OGZlYzg5NGZjZWMuLjI4MzZj
YjdiNDZjNjUyNzU1NDZlZTc3ZThkZGZhOWFjMjkwZWQ2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMu
Y3BwCkBAIC03NSw3ICs3NSw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6aW1wb3J0
S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDCiAgICAgICAgIGVj
ID0gTk9UX1NVUFBPUlRFRF9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY29uc3Qg
Q3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UmIGtleURhdGFPY3RldFNlcXVlbmNlID0gdG9Dcnlw
dG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZShrZXlEYXRhKTsKKyAgICBjb25zdCBDcnlwdG9LZXlEYXRh
T2N0ZXRTZXF1ZW5jZSYga2V5RGF0YU9jdGV0U2VxdWVuY2UgPSBhc0NyeXB0b0tleURhdGFPY3Rl
dFNlcXVlbmNlKGtleURhdGEpOwogICAgIFJlZlB0cjxDcnlwdG9LZXlBRVM+IHJlc3VsdCA9IENy
eXB0b0tleUFFUzo6Y3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkMsIGtl
eURhdGFPY3RldFNlcXVlbmNlLm9jdGV0U2VxdWVuY2UoKSwgZXh0cmFjdGFibGUsIHVzYWdlKTsK
ICAgICBwcm9taXNlLT5mdWxmaWxsKHJlc3VsdC5yZWxlYXNlKCkpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNw
cAppbmRleCAzYzFhMzhjNzdhNzY1NTY5ZmFhMWE4NGJiMmJlMDU0YjExNDQ1ZGFmLi5mMmVkMmNl
MTZkMDM0YjA0ZmFlZTY0N2JhOTY0YzU0NTc2ZWM3YjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcApAQCAt
NzYsNyArNzYsNyBAQCB2b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OmltcG9ydEtleShjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLAogICAgICAgICBlYyA9IE5PVF9T
VVBQT1JURURfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNvbnN0IENyeXB0b0tl
eURhdGFPY3RldFNlcXVlbmNlJiBrZXlEYXRhT2N0ZXRTZXF1ZW5jZSA9IHRvQ3J5cHRvS2V5RGF0
YU9jdGV0U2VxdWVuY2Uoa2V5RGF0YSk7CisgICAgY29uc3QgQ3J5cHRvS2V5RGF0YU9jdGV0U2Vx
dWVuY2UmIGtleURhdGFPY3RldFNlcXVlbmNlID0gYXNDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5j
ZShrZXlEYXRhKTsKIAogICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmIGhtYWNQ
YXJhbWV0ZXJzID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyY+
KHBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4Yzk3N2ZiYzFlZGMyNTYyODU3ZmE3YjM4
YmIxMjM5NDE3MmZiNzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNB
U1NBX1BLQ1MxX3YxXzUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SU0FT
U0FfUEtDUzFfdjFfNS5oIgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLSNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdv
cml0aG1Sc2FTc2FLZXlQYXJhbXMuaCIKLSNpbmNsdWRlICJDcnlwdG9LZXlEYXRhUlNBQ29tcG9u
ZW50cy5oIgotI2luY2x1ZGUgIkNyeXB0b0tleVJTQS5oIgotI2luY2x1ZGUgIkpTRE9NUHJvbWlz
ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNvbnN0IGNoYXIqIGNvbnN0IENyeXB0b0Fs
Z29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpzX25hbWUgPSAicnNhc3NhLXBrY3MxLXYxXzUiOwot
Ci1DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6Q3J5cHRvQWxnb3JpdGhtUlNBU1NB
X1BLQ1MxX3YxXzUoKQotewotfQotCi1DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6
fkNyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81KCkKLXsKLX0KLQotc3RkOjp1bmlxdWVf
cHRyPENyeXB0b0FsZ29yaXRobT4gQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmNy
ZWF0ZSgpCi17Ci0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG0+KG5l
dyBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNSk7Ci19Ci0KLUNyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmlkZW50aWZpZXIo
KSBjb25zdAotewotICAgIHJldHVybiBzX2lkZW50aWZpZXI7Ci19Ci0KLXZvaWQgQ3J5cHRvQWxn
b3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29s
IGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSwgc3RkOjp1bmlxdWVfcHRyPFByb21p
c2VXcmFwcGVyPiBwcm9taXNlLCBFeGNlcHRpb25Db2RlJikKLXsKLSAgICBjb25zdCBDcnlwdG9B
bGdvcml0aG1Sc2FTc2FLZXlQYXJhbXMmIHJzYVNTQVBhcmFtZXRlcnMgPSBzdGF0aWNfY2FzdDxj
b25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FLZXlQYXJhbXMmPihwYXJhbWV0ZXJzKTsKLSAgICBj
b25zdCBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyYgcnNhQ29tcG9uZW50cyA9IHRvQ3J5cHRv
S2V5RGF0YVJTQUNvbXBvbmVudHMoa2V5RGF0YSk7Ci0KLSAgICBSZWZQdHI8Q3J5cHRvS2V5UlNB
PiByZXN1bHQgPSBDcnlwdG9LZXlSU0E6OmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpSU0FTU0FfUEtDUzFfdjFfNSwgcnNhQ29tcG9uZW50cywgZXh0cmFjdGFibGUsIHVzYWdlKTsK
LSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QobnVsbHB0cik7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAocnNhU1NBUGFyYW1ldGVycy5oYXNIYXNo
KQotICAgICAgICByZXN1bHQtPnJlc3RyaWN0VG9IYXNoKHJzYVNTQVBhcmFtZXRlcnMuaGFzaCk7
Ci0KLSAgICBwcm9taXNlLT5mdWxmaWxsKHJlc3VsdC5yZWxlYXNlKCkpOwotfQotCi12b2lkIENy
eXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9L
ZXlVc2FnZSB1c2FnZXMsIHN0ZDo6dW5pcXVlX3B0cjxQcm9taXNlV3JhcHBlcj4gcHJvbWlzZSwg
RXhjZXB0aW9uQ29kZSYpCi17Ci0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFy
YW1zJiByc2FQYXJhbWV0ZXJzID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNh
S2V5R2VuUGFyYW1zJj4ocGFyYW1ldGVycyk7Ci0KLSAgICBDcnlwdG9LZXlSU0E6OmdlbmVyYXRl
UGFpcihDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNSwgcnNhUGFy
YW1ldGVycy5tb2R1bHVzTGVuZ3RoLCByc2FQYXJhbWV0ZXJzLnB1YmxpY0V4cG9uZW50LCBleHRy
YWN0YWJsZSwgdXNhZ2VzLCBzdGQ6Om1vdmUocHJvbWlzZSkpOwotfQotCi19Ci0KLSNlbmRpZiAv
LyBFTkFCTEUoU1VCVExFX0NSWVBUTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmggYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFf
NS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzVkYThlOWM0YTc2MTU1YjZhMmFj
NmFlZjhkODlmYWQwOTg1Y2YwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVJTQVNTQV9QS0NTMV92MV81LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2lmbmRlZiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNV9oCi0jZGVm
aW5lIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81X2gKLQotI2luY2x1ZGUgIkNyeXB0
b0FsZ29yaXRobS5oIgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUgRklOQUwg
OiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgY2hh
ciogY29uc3Qgc19uYW1lOwotICAgIHN0YXRpYyBjb25zdCBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NT
MV92MV81OwotCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG0+IGNy
ZWF0ZSgpOwotCi0gICAgdmlydHVhbCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZp
ZXIoKSBjb25zdCBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9pZCBzaWduKGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBWZWN0b3I8Q3J5
cHRvT3BlcmF0aW9uRGF0YT4mLCBzdGQ6OnVuaXF1ZV9wdHI8UHJvbWlzZVdyYXBwZXI+LCBFeGNl
cHRpb25Db2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHZlcmlmeShjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBWZWN0b3I8Q3J5cHRvT3BlcmF0aW9uRGF0YT4m
IGRhdGEsIHN0ZDo6dW5pcXVlX3B0cjxQcm9taXNlV3JhcHBlcj4sIEV4Y2VwdGlvbkNvZGUmKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycyYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBzdGQ6OnVu
aXF1ZV9wdHI8UHJvbWlzZVdyYXBwZXI+LCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwg
Y29uc3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBz
dGQ6OnVuaXF1ZV9wdHI8UHJvbWlzZVdyYXBwZXI+LCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7
Ci0KLXByaXZhdGU6Ci0gICAgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUoKTsKLSAg
ICB2aXJ0dWFsIH5DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNSgpOwotfTsKLQotfQot
Ci0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0jZW5kaWYgLy8gQ3J5cHRvQWxnb3Jp
dGhtUlNBU1NBX1BLQ1MxX3YxXzVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2tleXMvQ3J5cHRvS2V5QUVTLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9L
ZXlBRVMuaAppbmRleCA5YWE0YjZiMzFlYWUwNjhlZmRlMjMyMDQ4ZjEzNmViZGFkZDYyMWQzLi5m
Nzc3NDdmZDY0NDdhMmQyNDI3ZTZiMzRmN2M2YTlmNzVlMmE3NWM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuaApAQCAtNTYsMjEgKzU2LDE4IEBAIHByaXZhdGU6
CiAgICAgVmVjdG9yPGNoYXI+IG1fa2V5OwogfTsKIAotaW5saW5lIGJvb2wgaXNDcnlwdG9LZXlB
RVMoY29uc3QgQ3J5cHRvS2V5JiBrZXkpCitpbmxpbmUgY29uc3QgQ3J5cHRvS2V5QUVTKiBhc0Ny
eXB0b0tleUFFUyhjb25zdCBDcnlwdG9LZXkmIGtleSkKIHsKLSAgICByZXR1cm4ga2V5LmtleUNs
YXNzKCkgPT0gQ3J5cHRvS2V5Q2xhc3M6OkFFUzsKKyAgICBpZiAoa2V5LmtleUNsYXNzKCkgIT0g
Q3J5cHRvS2V5Q2xhc3M6OkFFUykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGNvbnN0IENyeXB0b0tleUFFUyo+KCZrZXkpOwogfQogCi1pbmxpbmUgY29u
c3QgQ3J5cHRvS2V5QUVTJiB0b0NyeXB0b0tleUFFUyhjb25zdCBDcnlwdG9LZXkmIGtleSkKK2lu
bGluZSBDcnlwdG9LZXlBRVMqIGFzQ3J5cHRvS2V5QUVTKENyeXB0b0tleSYga2V5KQogewotICAg
IEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGlzQ3J5cHRvS2V5QUVTKGtleSkpOwot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBDcnlwdG9LZXlBRVMmPihrZXkpOwotfQotCi1p
bmxpbmUgQ3J5cHRvS2V5QUVTJiB0b0NyeXB0b0tleUFFUyhDcnlwdG9LZXkmIGtleSkKLXsKLSAg
ICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpc0NyeXB0b0tleUFFUyhrZXkpKTsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q3J5cHRvS2V5QUVTJj4oa2V5KTsKKyAgICBpZiAoa2V5
LmtleUNsYXNzKCkgIT0gQ3J5cHRvS2V5Q2xhc3M6OkFFUykKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENyeXB0b0tleUFFUyo+KCZrZXkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
a2V5cy9DcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2tleXMvQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UuaAppbmRleCAyZjU1OWE2MDYyMmYyNTZj
ZTE3MWJmYTc1NTExMTFmNzAwNGNhYTkwLi4wMzk2ZjRjZDU3MmYwN2JmNTBhMjliZWUzY2I2ZWNk
NzNmNzhkYTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9L
ZXlEYXRhT2N0ZXRTZXF1ZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0Ny
eXB0b0tleURhdGFPY3RldFNlcXVlbmNlLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAg
ICBWZWN0b3I8Y2hhcj4gbV9rZXlEYXRhOwogfTsKIAotaW5saW5lIGNvbnN0IENyeXB0b0tleURh
dGFPY3RldFNlcXVlbmNlJiB0b0NyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlKGNvbnN0IENyeXB0
b0tleURhdGEmIGRhdGEpCitpbmxpbmUgY29uc3QgQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2Um
IGFzQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UoY29uc3QgQ3J5cHRvS2V5RGF0YSYgZGF0YSkK
IHsKICAgICBBU1NFUlQoZGF0YS5mb3JtYXQoKSA9PSBDcnlwdG9LZXlEYXRhOjpGb3JtYXQ6Ok9j
dGV0U2VxdWVuY2UpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBDcnlwdG9LZXlEYXRh
T2N0ZXRTZXF1ZW5jZSY+KGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2tleXMvQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2tleXMvQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1ZDhkNTExNmU2YzhjMTY0M2EyYjhlMjViOWJmMThlZDI0MWY4NTBjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDcwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuaCIKLQotI2lmIEVOQUJMRShTVUJU
TEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUNyeXB0b0tleURhdGFSU0FDb21w
b25lbnRzOjpDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyhjb25zdCBWZWN0b3I8Y2hhcj4mIG1v
ZHVsdXMsIGNvbnN0IFZlY3RvcjxjaGFyPiYgZXhwb25lbnQpCi0gICAgOiBDcnlwdG9LZXlEYXRh
KENyeXB0b0tleURhdGE6OkZvcm1hdDo6UlNBQ29tcG9uZW50cykKLSAgICAsIG1fdHlwZShUeXBl
OjpQdWJsaWMpCi0gICAgLCBtX21vZHVsdXMobW9kdWx1cykKLSAgICAsIG1fZXhwb25lbnQoZXhw
b25lbnQpCi17Ci19Ci0KLUNyeXB0b0tleURhdGFSU0FDb21wb25lbnRzOjpDcnlwdG9LZXlEYXRh
UlNBQ29tcG9uZW50cyhjb25zdCBWZWN0b3I8Y2hhcj4mIG1vZHVsdXMsIGNvbnN0IFZlY3Rvcjxj
aGFyPiYgZXhwb25lbnQsIGNvbnN0IFZlY3RvcjxjaGFyPiYgcHJpdmF0ZUV4cG9uZW50KQotICAg
IDogQ3J5cHRvS2V5RGF0YShDcnlwdG9LZXlEYXRhOjpGb3JtYXQ6OlJTQUNvbXBvbmVudHMpCi0g
ICAgLCBtX3R5cGUoVHlwZTo6UHJpdmF0ZSkKLSAgICAsIG1fbW9kdWx1cyhtb2R1bHVzKQotICAg
ICwgbV9leHBvbmVudChleHBvbmVudCkKLSAgICAsIG1fcHJpdmF0ZUV4cG9uZW50KHByaXZhdGVF
eHBvbmVudCkKLSAgICAsIG1faGFzQWRkaXRpb25hbFByaXZhdGVLZXlQYXJhbWV0ZXJzKGZhbHNl
KQotewotfQotCi1DcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czo6Q3J5cHRvS2V5RGF0YVJTQUNv
bXBvbmVudHMoY29uc3QgVmVjdG9yPGNoYXI+JiBtb2R1bHVzLCBjb25zdCBWZWN0b3I8Y2hhcj4m
IGV4cG9uZW50LCBjb25zdCBWZWN0b3I8Y2hhcj4mIHByaXZhdGVFeHBvbmVudCwgY29uc3QgUHJp
bWVJbmZvJiBmaXJzdFByaW1lSW5mbywgY29uc3QgUHJpbWVJbmZvJiBzZWNvbmRQcmltZUluZm8s
IGNvbnN0IFZlY3RvcjxQcmltZUluZm8+JiBvdGhlclByaW1lSW5mb3MpCi0gICAgOiBDcnlwdG9L
ZXlEYXRhKENyeXB0b0tleURhdGE6OkZvcm1hdDo6UlNBQ29tcG9uZW50cykKLSAgICAsIG1fdHlw
ZShUeXBlOjpQcml2YXRlKQotICAgICwgbV9tb2R1bHVzKG1vZHVsdXMpCi0gICAgLCBtX2V4cG9u
ZW50KGV4cG9uZW50KQotICAgICwgbV9wcml2YXRlRXhwb25lbnQocHJpdmF0ZUV4cG9uZW50KQot
ICAgICwgbV9oYXNBZGRpdGlvbmFsUHJpdmF0ZUtleVBhcmFtZXRlcnModHJ1ZSkKLSAgICAsIG1f
Zmlyc3RQcmltZUluZm8oZmlyc3RQcmltZUluZm8pCi0gICAgLCBtX3NlY29uZFByaW1lSW5mbyhz
ZWNvbmRQcmltZUluZm8pCi0gICAgLCBtX290aGVyUHJpbWVJbmZvcyhvdGhlclByaW1lSW5mb3Mp
Ci17Ci19Ci0KLUNyeXB0b0tleURhdGFSU0FDb21wb25lbnRzOjp+Q3J5cHRvS2V5RGF0YVJTQUNv
bXBvbmVudHMoKQotewotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBF
TkFCTEUoU1VCVExFX0NSWVBUTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9r
ZXlzL0NyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
a2V5cy9DcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzNDdlMDhkMjYwY2JiY2FhOTA4YjBiZTBjMjkwNDc3OWJkNmZmNWI0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9rZXlzL0NyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmgKKysrIC9kZXYvbnVsbApAQCAt
MSwxMDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ3J5cHRvS2V5RGF0YVJTQUNvbXBv
bmVudHNfaAotI2RlZmluZSBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50c19oCi0KLSNpbmNsdWRl
ICJDcnlwdG9LZXlEYXRhLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi0jaWYgRU5BQkxF
KFNVQlRMRV9DUllQVE8pCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ3J5cHRvS2V5
RGF0YVJTQUNvbXBvbmVudHMgRklOQUwgOiBwdWJsaWMgQ3J5cHRvS2V5RGF0YSB7Ci1wdWJsaWM6
Ci0gICAgRU5VTV9DTEFTUyhUeXBlKSB7Ci0gICAgICAgIFB1YmxpYywKLSAgICAgICAgUHJpdmF0
ZQotICAgIH07Ci0KLSAgICBzdHJ1Y3QgUHJpbWVJbmZvIHsKLSAgICAgICAgVmVjdG9yPGNoYXI+
IHByaW1lRmFjdG9yOwotICAgICAgICBWZWN0b3I8Y2hhcj4gZmFjdG9yQ1JURXhwb25lbnQ7Ci0g
ICAgICAgIFZlY3RvcjxjaGFyPiBmYWN0b3JDUlRDb2VmZmljaWVudDsKLSAgICB9OwotCi0gICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cz4gY3JlYXRl
UHVibGljKGNvbnN0IFZlY3RvcjxjaGFyPiYgbW9kdWx1cywgY29uc3QgVmVjdG9yPGNoYXI+JiBl
eHBvbmVudCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5
RGF0YVJTQUNvbXBvbmVudHM+KG5ldyBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyhtb2R1bHVz
LCBleHBvbmVudCkpOwotICAgIH0KLQotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRv
S2V5RGF0YVJTQUNvbXBvbmVudHM+IGNyZWF0ZVByaXZhdGUoY29uc3QgVmVjdG9yPGNoYXI+JiBt
b2R1bHVzLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGV4cG9uZW50LCBjb25zdCBWZWN0b3I8Y2hhcj4m
IHByaXZhdGVFeHBvbmVudCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8
Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM+KG5ldyBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50
cyhtb2R1bHVzLCBleHBvbmVudCwgcHJpdmF0ZUV4cG9uZW50KSk7Ci0gICAgfQotCi0gICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cz4gY3JlYXRlUHJp
dmF0ZVdpdGhBZGRpdGlvbmFsRGF0YShjb25zdCBWZWN0b3I8Y2hhcj4mIG1vZHVsdXMsIGNvbnN0
IFZlY3RvcjxjaGFyPiYgZXhwb25lbnQsIGNvbnN0IFZlY3RvcjxjaGFyPiYgcHJpdmF0ZUV4cG9u
ZW50LCBjb25zdCBQcmltZUluZm8mIGZpcnN0UHJpbWVJbmZvLCBjb25zdCBQcmltZUluZm8mIHNl
Y29uZFByaW1lSW5mbywgY29uc3QgVmVjdG9yPFByaW1lSW5mbz4mIG90aGVyUHJpbWVJbmZvcykK
LSAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YVJTQUNv
bXBvbmVudHM+KG5ldyBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyhtb2R1bHVzLCBleHBvbmVu
dCwgcHJpdmF0ZUV4cG9uZW50LCBmaXJzdFByaW1lSW5mbywgc2Vjb25kUHJpbWVJbmZvLCBvdGhl
clByaW1lSW5mb3MpKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIH5DcnlwdG9LZXlEYXRhUlNBQ29t
cG9uZW50cygpOwotCi0gICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0K
LSAgICAvLyBQcml2YXRlIGFuZCBwdWJsaWMga2V5cy4KLSAgICBjb25zdCBWZWN0b3I8Y2hhcj4m
IG1vZHVsdXMoKSBjb25zdCB7IHJldHVybiBtX21vZHVsdXM7IH0KLSAgICBjb25zdCBWZWN0b3I8
Y2hhcj4mIGV4cG9uZW50KCkgY29uc3QgeyByZXR1cm4gbV9leHBvbmVudDsgfQotCi0gICAgLy8g
T25seSBwcml2YXRlIGtleXMuCi0gICAgY29uc3QgVmVjdG9yPGNoYXI+JiBwcml2YXRlRXhwb25l
bnQoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGVFeHBvbmVudDsgfQotICAgIGJvb2wgaGFzQWRk
aXRpb25hbFByaXZhdGVLZXlQYXJhbWV0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNBZGRpdGlv
bmFsUHJpdmF0ZUtleVBhcmFtZXRlcnM7IH0KLSAgICBjb25zdCBQcmltZUluZm8mIGZpcnN0UHJp
bWVJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9maXJzdFByaW1lSW5mbzsgfQotICAgIGNvbnN0IFBy
aW1lSW5mbyYgc2Vjb25kUHJpbWVJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9zZWNvbmRQcmltZUlu
Zm87IH0KLSAgICBjb25zdCBWZWN0b3I8UHJpbWVJbmZvPiYgb3RoZXJQcmltZUluZm9zKCkgY29u
c3QgeyByZXR1cm4gbV9vdGhlclByaW1lSW5mb3M7IH0KLQotcHJpdmF0ZToKLSAgICBDcnlwdG9L
ZXlEYXRhUlNBQ29tcG9uZW50cyhjb25zdCBWZWN0b3I8Y2hhcj4mIG1vZHVsdXMsIGNvbnN0IFZl
Y3RvcjxjaGFyPiYgZXhwb25lbnQpOwotICAgIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzKGNv
bnN0IFZlY3RvcjxjaGFyPiYgbW9kdWx1cywgY29uc3QgVmVjdG9yPGNoYXI+JiBleHBvbmVudCwg
Y29uc3QgVmVjdG9yPGNoYXI+JiBwcml2YXRlRXhwb25lbnQpOwotICAgIENyeXB0b0tleURhdGFS
U0FDb21wb25lbnRzKGNvbnN0IFZlY3RvcjxjaGFyPiYgbW9kdWx1cywgY29uc3QgVmVjdG9yPGNo
YXI+JiBleHBvbmVudCwgY29uc3QgVmVjdG9yPGNoYXI+JiBwcml2YXRlRXhwb25lbnQsIGNvbnN0
IFByaW1lSW5mbyYgZmlyc3RQcmltZUluZm8sIGNvbnN0IFByaW1lSW5mbyYgc2Vjb25kUHJpbWVJ
bmZvLCBjb25zdCBWZWN0b3I8UHJpbWVJbmZvPiYgb3RoZXJQcmltZUluZm9zKTsKLQotICAgIFR5
cGUgbV90eXBlOwotCi0gICAgLy8gUHJpdmF0ZSBhbmQgcHVibGljIGtleXMuCi0gICAgVmVjdG9y
PGNoYXI+IG1fbW9kdWx1czsKLSAgICBWZWN0b3I8Y2hhcj4gbV9leHBvbmVudDsKLQotICAgIC8v
IE9ubHkgcHJpdmF0ZSBrZXlzLgotICAgIFZlY3RvcjxjaGFyPiBtX3ByaXZhdGVFeHBvbmVudDsK
LSAgICBib29sIG1faGFzQWRkaXRpb25hbFByaXZhdGVLZXlQYXJhbWV0ZXJzOwotICAgIFByaW1l
SW5mbyBtX2ZpcnN0UHJpbWVJbmZvOwotICAgIFByaW1lSW5mbyBtX3NlY29uZFByaW1lSW5mbzsK
LSAgICBWZWN0b3I8UHJpbWVJbmZvPiBtX290aGVyUHJpbWVJbmZvczsgLy8gV2hlbiB0aHJlZSBv
ciBtb3JlIHByaW1lcyBoYXZlIGJlZW4gdXNlZCwgdGhlIG51bWJlciBvZiBhcnJheSBlbGVtZW50
cyBpcyBiZSB0aGUgbnVtYmVyIG9mIHByaW1lcyB1c2VkIG1pbnVzIHR3by4KLX07Ci0KLWlubGlu
ZSBjb25zdCBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyYgdG9DcnlwdG9LZXlEYXRhUlNBQ29t
cG9uZW50cyhjb25zdCBDcnlwdG9LZXlEYXRhJiBkYXRhKQotewotICAgIEFTU0VSVChkYXRhLmZv
cm1hdCgpID09IENyeXB0b0tleURhdGE6OkZvcm1hdDo6UlNBQ29tcG9uZW50cyk7Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PGNvbnN0IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzJj4oZGF0YSk7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVf
Q1JZUFRPKQotI2VuZGlmIC8vIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuaAppbmRleCBhMGE2MGUwNDYwZDM5NjZk
M2Y2MmQ3NzlmNmE3YmFlMThmOTViNmRjLi42ODJlNTRjMDAwMTU1ZmY1NmZmMDBmMWU4YzkyYjM1
MzhiN2ExYzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9L
ZXlITUFDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5o
CkBAIC01NywyMSArNTcsMTggQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8Y2hhcj4gbV9rZXk7CiB9
OwogCi1pbmxpbmUgYm9vbCBpc0NyeXB0b0tleUhNQUMoY29uc3QgQ3J5cHRvS2V5JiBrZXkpCitp
bmxpbmUgY29uc3QgQ3J5cHRvS2V5SE1BQyogYXNDcnlwdG9LZXlITUFDKGNvbnN0IENyeXB0b0tl
eSYga2V5KQogewotICAgIHJldHVybiBrZXkua2V5Q2xhc3MoKSA9PSBDcnlwdG9LZXlDbGFzczo6
SE1BQzsKKyAgICBpZiAoa2V5LmtleUNsYXNzKCkgIT0gQ3J5cHRvS2V5Q2xhc3M6OkhNQUMpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBDcnlw
dG9LZXlITUFDKj4oJmtleSk7CiB9CiAKLWlubGluZSBjb25zdCBDcnlwdG9LZXlITUFDJiB0b0Ny
eXB0b0tleUhNQUMoY29uc3QgQ3J5cHRvS2V5JiBrZXkpCitpbmxpbmUgQ3J5cHRvS2V5SE1BQyog
YXNDcnlwdG9LZXlITUFDKENyeXB0b0tleSYga2V5KQogewotICAgIEFTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKGlzQ3J5cHRvS2V5SE1BQyhrZXkpKTsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Y29uc3QgQ3J5cHRvS2V5SE1BQyY+KGtleSk7Ci19Ci0KLWlubGluZSBDcnlwdG9LZXlI
TUFDJiB0b0NyeXB0b0tleUhNQUMoQ3J5cHRvS2V5JiBrZXkpCi17Ci0gICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oaXNDcnlwdG9LZXlITUFDKGtleSkpOwotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxDcnlwdG9LZXlITUFDJj4oa2V5KTsKKyAgICBpZiAoa2V5LmtleUNsYXNzKCkg
IT0gQ3J5cHRvS2V5Q2xhc3M6OkhNQUMpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxDcnlwdG9LZXlITUFDKj4oJmtleSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0
b0tleVJTQS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1MTI5MzBhOGVkMzAwNzA4ZTRjN2U2OWJiZTU5
OGFhYjQ1MzIyNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw5MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDcnlwdG9LZXlSU0FfaAot
I2RlZmluZSBDcnlwdG9LZXlSU0FfaAotCi0jaW5jbHVkZSAiQ3J5cHRvS2V5LmgiCi0KLSNpZiBF
TkFCTEUoU1VCVExFX0NSWVBUTykKLQotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9T
KQotdHlwZWRlZiBzdHJ1Y3QgX0NDUlNBQ3J5cHRvciAqQ0NSU0FDcnlwdG9yUmVmOwotdHlwZWRl
ZiBDQ1JTQUNyeXB0b3JSZWYgUGxhdGZvcm1SU0FLZXk7Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1jbGFzcyBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czsKLWNsYXNzIENyeXB0
b0tleVBhaXI7Ci1jbGFzcyBQcm9taXNlV3JhcHBlcjsKLQotY2xhc3MgQ3J5cHRvS2V5UlNBIEZJ
TkFMIDogcHVibGljIENyeXB0b0tleSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
Q3J5cHRvS2V5UlNBPiBjcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVy
LCBDcnlwdG9LZXlUeXBlIHR5cGUsIFBsYXRmb3JtUlNBS2V5IHBsYXRmb3JtS2V5LCBib29sIGV4
dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQ3J5cHRvS2V5UlNBKGlkZW50aWZpZXIsIHR5cGUsIHBsYXRmb3JtS2V5LCBl
eHRyYWN0YWJsZSwgdXNhZ2UpKTsKLSAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q3J5cHRv
S2V5UlNBPiBjcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgY29uc3QgQ3J5cHRvS2V5
RGF0YVJTQUNvbXBvbmVudHMmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSk7Ci0g
ICAgdmlydHVhbCB+Q3J5cHRvS2V5UlNBKCk7Ci0KLSAgICB2b2lkIHJlc3RyaWN0VG9IYXNoKENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXIpOwotCi0gICAgc3RhdGljIHZvaWQgZ2VuZXJhdGVQYWly
KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIHVuc2lnbmVkIG1vZHVsdXNMZW5ndGgsIGNvbnN0
IFZlY3RvcjxjaGFyPiYgcHVibGljRXhwb25lbnQsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tl
eVVzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8UHJvbWlzZVdyYXBwZXI+KTsKLQotICAgIHZpcnR1YWwg
Q3J5cHRvS2V5Q2xhc3Mga2V5Q2xhc3MoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBDcnlwdG9L
ZXlDbGFzczo6UlNBOyB9Ci0KLSAgICBQbGF0Zm9ybVJTQUtleSBwbGF0Zm9ybUtleSgpIGNvbnN0
IHsgcmV0dXJuIG1fcGxhdGZvcm1LZXk7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBidWlsZEFsZ29y
aXRobURlc2NyaXB0aW9uKENyeXB0b0FsZ29yaXRobURlc2NyaXB0aW9uQnVpbGRlciYpIGNvbnN0
IE9WRVJSSURFOwotCi1wcml2YXRlOgotICAgIENyeXB0b0tleVJTQShDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyLCBDcnlwdG9LZXlUeXBlLCBQbGF0Zm9ybVJTQUtleSwgYm9vbCBleHRyYWN0YWJs
ZSwgQ3J5cHRvS2V5VXNhZ2UpOwotCi0gICAgUGxhdGZvcm1SU0FLZXkgbV9wbGF0Zm9ybUtleTsK
LQotICAgIGJvb2wgbV9yZXN0cmljdGVkVG9TcGVjaWZpY0hhc2g7Ci0gICAgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciBtX2hhc2g7Ci19OwotCi1pbmxpbmUgYm9vbCBpc0NyeXB0b0tleVJTQShj
b25zdCBDcnlwdG9LZXkmIGtleSkKLXsKLSAgICByZXR1cm4ga2V5LmtleUNsYXNzKCkgPT0gQ3J5
cHRvS2V5Q2xhc3M6OlJTQTsKLX0KLQotaW5saW5lIGNvbnN0IENyeXB0b0tleVJTQSYgdG9Dcnlw
dG9LZXlSU0EoY29uc3QgQ3J5cHRvS2V5JiBrZXkpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJ
VFlfSU1QTElDQVRJT04oaXNDcnlwdG9LZXlSU0Eoa2V5KSk7Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PGNvbnN0IENyeXB0b0tleVJTQSY+KGtleSk7Ci19Ci0KLWlubGluZSBDcnlwdG9LZXlSU0Em
IGFzQ3J5cHRvS2V5UlNBKENyeXB0b0tleSYga2V5KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKGlzQ3J5cHRvS2V5UlNBKGtleSkpOwotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxDcnlwdG9LZXlSU0EmPihrZXkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSNlbmRpZiAvLyBDcnlwdG9LZXlSU0Ff
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1B
RVNfQ0JDTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGht
QUVTX0NCQ01hYy5jcHAKaW5kZXggZGFhYjgxMjc4MDVlNmVkOWVlNTg3MWRkOGU0NWRmMzg3ZDkz
MWQ3MC4uZGM0OGFkNGE0ZmIzYzcyYzhmZDBhOWM0OTQ4OTJjZjNhODc1YWUyOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19DQkNN
YWMuY3BwCkBAIC05MiwyNyArOTIsMjcgQEAgc3RhdGljIHZvaWQgdHJhbnNmb3JtQUVTX0NCQyhD
Q09wZXJhdGlvbiBvcGVyYXRpb24sIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1AKIHZvaWQg
Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgVmVjdG9yPENy
eXB0b09wZXJhdGlvbkRhdGE+JiBkYXRhLCBzdGQ6OnVuaXF1ZV9wdHI8UHJvbWlzZVdyYXBwZXI+
IHByb21pc2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGNvbnN0IENyeXB0b0FsZ29yaXRo
bUFlc0NiY1BhcmFtcyYgYWVzQ0JDUGFyYW1ldGVycyA9IHN0YXRpY19jYXN0PGNvbnN0IENyeXB0
b0FsZ29yaXRobUFlc0NiY1BhcmFtcyY+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0tl
eUFFUyogYWVzS2V5ID0gYXNDcnlwdG9LZXlBRVMoa2V5KTsKIAotICAgIGlmICghaXNDcnlwdG9L
ZXlBRVMoa2V5KSkgeworICAgIGlmICghYWVzS2V5KSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBP
UlRFRF9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY29uc3QgQ3J5cHRvS2V5QUVT
JiBhZXNLZXkgPSB0b0NyeXB0b0tleUFFUyhrZXkpOwogCi0gICAgdHJhbnNmb3JtQUVTX0NCQyhr
Q0NFbmNyeXB0LCBhZXNDQkNQYXJhbWV0ZXJzLCBhZXNLZXksIGRhdGEsIHN0ZDo6bW92ZShwcm9t
aXNlKSk7CisgICAgdHJhbnNmb3JtQUVTX0NCQyhrQ0NFbmNyeXB0LCBhZXNDQkNQYXJhbWV0ZXJz
LCAqYWVzS2V5LCBkYXRhLCBzdGQ6Om1vdmUocHJvbWlzZSkpOwogfQogCiB2b2lkIENyeXB0b0Fs
Z29yaXRobUFFU19DQkM6OmRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYg
cGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IFZlY3RvcjxDcnlwdG9PcGVy
YXRpb25EYXRhPiYgZGF0YSwgc3RkOjp1bmlxdWVfcHRyPFByb21pc2VXcmFwcGVyPiBwcm9taXNl
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQ
YXJhbXMmIGFlc0NCQ1BhcmFtZXRlcnMgPSBzdGF0aWNfY2FzdDxjb25zdCBDcnlwdG9BbGdvcml0
aG1BZXNDYmNQYXJhbXMmPihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9LZXlBRVMqIGFl
c0tleSA9IGFzQ3J5cHRvS2V5QUVTKGtleSk7CiAKLSAgICBpZiAoIWlzQ3J5cHRvS2V5QUVTKGtl
eSkpIHsKKyAgICBpZiAoIWFlc0tleSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJS
OwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNvbnN0IENyeXB0b0tleUFFUyYgYWVzS2V5
ID0gdG9DcnlwdG9LZXlBRVMoa2V5KTsKIAotICAgIHRyYW5zZm9ybUFFU19DQkMoa0NDRGVjcnlw
dCwgYWVzQ0JDUGFyYW1ldGVycywgYWVzS2V5LCBkYXRhLCBzdGQ6Om1vdmUocHJvbWlzZSkpOwor
ICAgIHRyYW5zZm9ybUFFU19DQkMoa0NDRGVjcnlwdCwgYWVzQ0JDUGFyYW1ldGVycywgKmFlc0tl
eSwgZGF0YSwgc3RkOjptb3ZlKHByb21pc2UpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1I
TUFDTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtSE1B
Q01hYy5jcHAKaW5kZXggYzFjNDJiMDhkY2ZhMWZjZTdlMWE1ZGYyYjJkMzQ2ZGYyYmZmMWVhYS4u
YTA5ZjkwYjJjYzExZTMyYmQ2NDc4YWE2YTcyMTZmNjJkYTMxYzg5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1ITUFDTWFjLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwCkBAIC05
NSwyMCArOTUsMjAgQEAgc3RhdGljIFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiBjYWxjdWxhdGVTaWdu
YXR1cmUoQ0NIbWFjQWxnb3JpdGhtIGFsZ29yaXRobSwgY29uc3QKIHZvaWQgQ3J5cHRvQWxnb3Jp
dGhtSE1BQzo6c2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
LCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgVmVjdG9yPENyeXB0b09wZXJhdGlvbkRhdGE+
JiBkYXRhLCBzdGQ6OnVuaXF1ZV9wdHI8UHJvbWlzZVdyYXBwZXI+IHByb21pc2UsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewogICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmIGhtYWNQ
YXJhbWV0ZXJzID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyY+
KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0tleUhNQUMqIGhtYWNLZXkgPSBhc0NyeXB0
b0tleUhNQUMoa2V5KTsKIAotICAgIGlmICghaXNDcnlwdG9LZXlITUFDKGtleSkpIHsKKyAgICBD
Q0htYWNBbGdvcml0aG0gYWxnb3JpdGhtOworICAgIGlmICghZ2V0Q29tbW9uQ3J5cHRvQWxnb3Jp
dGhtKGhtYWNQYXJhbWV0ZXJzLmhhc2gsIGFsZ29yaXRobSkpIHsKICAgICAgICAgZWMgPSBOT1Rf
U1VQUE9SVEVEX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjb25zdCBDcnlwdG9L
ZXlITUFDJiBobWFjS2V5ID0gdG9DcnlwdG9LZXlITUFDKGtleSk7CiAKLSAgICBDQ0htYWNBbGdv
cml0aG0gYWxnb3JpdGhtOwotICAgIGlmICghZ2V0Q29tbW9uQ3J5cHRvQWxnb3JpdGhtKGhtYWNQ
YXJhbWV0ZXJzLmhhc2gsIGFsZ29yaXRobSkpIHsKKyAgICBpZiAoIWhtYWNLZXkpIHsKICAgICAg
ICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiBzaWduYXR1cmUgPSBjYWxjdWxhdGVTaWduYXR1cmUoYWxn
b3JpdGhtLCBobWFjS2V5LmtleSgpLCBkYXRhKTsKKyAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4g
c2lnbmF0dXJlID0gY2FsY3VsYXRlU2lnbmF0dXJlKGFsZ29yaXRobSwgaG1hY0tleS0+a2V5KCks
IGRhdGEpOwogCiAgICAgcHJvbWlzZS0+ZnVsZmlsbChzaWduYXR1cmUpOwogfQpAQCAtMTE2LDIw
ICsxMTYsMjAgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpzaWduKGNvbnN0IENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnMKIHZvaWQgQ3J5cHRvQWxnb3JpdGht
SE1BQzo6dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMs
IGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBleHBlY3Rl
ZFNpZ25hdHVyZSwgY29uc3QgVmVjdG9yPENyeXB0b09wZXJhdGlvbkRhdGE+JiBkYXRhLCBzdGQ6
OnVuaXF1ZV9wdHI8UHJvbWlzZVdyYXBwZXI+IHByb21pc2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmIGhtYWNQYXJhbWV0ZXJzID0g
c3RhdGljX2Nhc3Q8Y29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyY+KHBhcmFtZXRlcnMp
OworICAgIGNvbnN0IENyeXB0b0tleUhNQUMqIGhtYWNLZXkgPSBhc0NyeXB0b0tleUhNQUMoa2V5
KTsKIAotICAgIGlmICghaXNDcnlwdG9LZXlITUFDKGtleSkpIHsKKyAgICBDQ0htYWNBbGdvcml0
aG0gYWxnb3JpdGhtOworICAgIGlmICghZ2V0Q29tbW9uQ3J5cHRvQWxnb3JpdGhtKGhtYWNQYXJh
bWV0ZXJzLmhhc2gsIGFsZ29yaXRobSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VS
UjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjb25zdCBDcnlwdG9LZXlITUFDJiBobWFj
S2V5ID0gdG9DcnlwdG9LZXlITUFDKGtleSk7CiAKLSAgICBDQ0htYWNBbGdvcml0aG0gYWxnb3Jp
dGhtOwotICAgIGlmICghZ2V0Q29tbW9uQ3J5cHRvQWxnb3JpdGhtKGhtYWNQYXJhbWV0ZXJzLmhh
c2gsIGFsZ29yaXRobSkpIHsKKyAgICBpZiAoIWhtYWNLZXkpIHsKICAgICAgICAgZWMgPSBOT1Rf
U1VQUE9SVEVEX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFZlY3Rvcjx1bnNp
Z25lZCBjaGFyPiBzaWduYXR1cmUgPSBjYWxjdWxhdGVTaWduYXR1cmUoYWxnb3JpdGhtLCBobWFj
S2V5LmtleSgpLCBkYXRhKTsKKyAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4gc2lnbmF0dXJlID0g
Y2FsY3VsYXRlU2lnbmF0dXJlKGFsZ29yaXRobSwgaG1hY0tleS0+a2V5KCksIGRhdGEpOwogCiAg
ICAgYm9vbCByZXN1bHQgPSBzaWduYXR1cmUuc2l6ZSgpID09IGV4cGVjdGVkU2lnbmF0dXJlLnNl
Y29uZCAmJiAhbWVtY21wKHNpZ25hdHVyZS5kYXRhKCksIGV4cGVjdGVkU2lnbmF0dXJlLmZpcnN0
LCBzaWduYXR1cmUuc2l6ZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L21hYy9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeU1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vbWFjL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5TWFjLmNwcAppbmRleCAzMTE2OGU3MDZjZTE0
YjYxY2E5YzJjNTJmZmE3YjJmZWNiYzk1OTcxLi44ZjZjZDY0NTMxZjExNjIzMjA1NWQ3YWYwNTQ0
M2M4MGJiYjcwYjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0
b0FsZ29yaXRobVJlZ2lzdHJ5TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFj
L0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5TWFjLmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5j
bHVkZSAiQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oIgogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRo
bUhNQUMuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oIgog
I2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVNIQTEuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0
aG1TSEEyMjQuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1TSEEyNTYuaCIKQEAgLTQzLDcg
KzQyLDYgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6cGxhdGZvcm1SZWdpc3RlckFs
Z29yaXRobXMoKQogewogICAgIHJlZ2lzdGVyQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobUFFU19D
QkM6OnNfbmFtZSwgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6c19pZGVudGlmaWVyLCBDcnlwdG9B
bGdvcml0aG1BRVNfQ0JDOjpjcmVhdGUpOwogICAgIHJlZ2lzdGVyQWxnb3JpdGhtKENyeXB0b0Fs
Z29yaXRobUhNQUM6OnNfbmFtZSwgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6c19pZGVudGlmaWVyLCBD
cnlwdG9BbGdvcml0aG1ITUFDOjpjcmVhdGUpOwotICAgIHJlZ2lzdGVyQWxnb3JpdGhtKENyeXB0
b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpzX25hbWUsIENyeXB0b0FsZ29yaXRobVJTQVNT
QV9QS0NTMV92MV81OjpzX2lkZW50aWZpZXIsIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92
MV81OjpjcmVhdGUpOwogICAgIHJlZ2lzdGVyQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobVNIQTE6
OnNfbmFtZSwgQ3J5cHRvQWxnb3JpdGhtU0hBMTo6c19pZGVudGlmaWVyLCBDcnlwdG9BbGdvcml0
aG1TSEExOjpjcmVhdGUpOwogICAgIHJlZ2lzdGVyQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobVNI
QTIyNDo6c19uYW1lLCBDcnlwdG9BbGdvcml0aG1TSEEyMjQ6OnNfaWRlbnRpZmllciwgQ3J5cHRv
QWxnb3JpdGhtU0hBMjI0OjpjcmVhdGUpOwogICAgIHJlZ2lzdGVyQWxnb3JpdGhtKENyeXB0b0Fs
Z29yaXRobVNIQTI1Njo6c19uYW1lLCBDcnlwdG9BbGdvcml0aG1TSEEyNTY6OnNfaWRlbnRpZmll
ciwgQ3J5cHRvQWxnb3JpdGhtU0hBMjU2OjpjcmVhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL21hYy9DcnlwdG9LZXlSU0FNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL21hYy9DcnlwdG9LZXlSU0FNYWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjYTQ2MWRhZjQzZmJlYzVlZDdhYzFhY2FhMzZiNTU1NDMzMGZjYzUzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9t
YWMvQ3J5cHRvS2V5UlNBTWFjLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDIwMCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNyeXB0b0tleVJTQS5o
IgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0
aG1EZXNjcmlwdGlvbkJ1aWxkZXIuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SZWdpc3Ry
eS5oIgotI2luY2x1ZGUgIkNyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmgiCi0jaW5jbHVkZSAi
Q3J5cHRvS2V5UGFpci5oIgotI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgotI2luY2x1ZGUgPENv
bW1vbkNyeXB0by9Db21tb25DcnlwdG9yLmg+Ci0KLSNpZiBkZWZpbmVkKF9faGFzX2luY2x1ZGUp
Ci0jaWYgX19oYXNfaW5jbHVkZSg8Q29tbW9uQ3J5cHRvL0NvbW1vblJTQUNyeXB0b3IuaD4pCi0j
aW5jbHVkZSA8Q29tbW9uQ3J5cHRvL0NvbW1vblJTQUNyeXB0b3IuaD4KLSNlbmRpZgotI2VuZGlm
Ci0KLSNpZm5kZWYgX0NDX1JTQUNSWVBUT1JfSF8KLWVudW0gewotICAgIGNjUlNBS2V5UHVibGlj
ICAgICAgICAgID0gMCwKLSAgICBjY1JTQUtleVByaXZhdGUgICAgICAgICA9IDEKLX07Ci10eXBl
ZGVmIHVpbnQzMl90IENDUlNBS2V5VHlwZTsKLSNlbmRpZgotCi1leHRlcm4gIkMiIENDQ3J5cHRv
clN0YXR1cyBDQ1JTQUNyeXB0b3JDcmVhdGVGcm9tRGF0YShDQ1JTQUtleVR5cGUga2V5VHlwZSwg
dWludDhfdCAqbW9kdWx1cywgc2l6ZV90IG1vZHVsdXNMZW5ndGgsIHVpbnQ4X3QgKmV4cG9uZW50
LCBzaXplX3QgZXhwb25lbnRMZW5ndGgsIHVpbnQ4X3QgKnAsIHNpemVfdCBwTGVuZ3RoLCB1aW50
OF90ICpxLCBzaXplX3QgcUxlbmd0aCwgQ0NSU0FDcnlwdG9yUmVmICpyZWYpOwotZXh0ZXJuICJD
IiBDQ0NyeXB0b3JTdGF0dXMgQ0NSU0FDcnlwdG9yR2VuZXJhdGVQYWlyKHNpemVfdCBrZXlzaXpl
LCB1aW50MzJfdCBlLCBDQ1JTQUNyeXB0b3JSZWYgKnB1YmxpY0tleSwgQ0NSU0FDcnlwdG9yUmVm
ICpwcml2YXRlS2V5KTsKLWV4dGVybiAiQyIgQ0NSU0FDcnlwdG9yUmVmIENDUlNBQ3J5cHRvckdl
dFB1YmxpY0tleUZyb21Qcml2YXRlS2V5KENDUlNBQ3J5cHRvclJlZiBwcml2a2V5KTsKLWV4dGVy
biAiQyIgdm9pZCBDQ1JTQUNyeXB0b3JSZWxlYXNlKENDUlNBQ3J5cHRvclJlZiBrZXkpOwotZXh0
ZXJuICJDIiBDQ0NyeXB0b3JTdGF0dXMgQ0NSU0FHZXRLZXlDb21wb25lbnRzKENDUlNBQ3J5cHRv
clJlZiByc2FLZXksIHVpbnQ4X3QgKm1vZHVsdXMsIHNpemVfdCAqbW9kdWx1c0xlbmd0aCwgdWlu
dDhfdCAqZXhwb25lbnQsIHNpemVfdCAqZXhwb25lbnRMZW5ndGgsIHVpbnQ4X3QgKnAsIHNpemVf
dCAqcExlbmd0aCwgdWludDhfdCAqcSwgc2l6ZV90ICpxTGVuZ3RoKTsKLWV4dGVybiAiQyIgQ0NS
U0FLZXlUeXBlIENDUlNBR2V0S2V5VHlwZShDQ1JTQUNyeXB0b3JSZWYga2V5KTsKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1DcnlwdG9LZXlSU0E6OkNyeXB0b0tleVJTQShDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIGlkZW50aWZpZXIsIENyeXB0b0tleVR5cGUgdHlwZSwgUGxhdGZvcm1SU0FL
ZXkgcGxhdGZvcm1LZXksIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlKQot
ICAgIDogQ3J5cHRvS2V5KGlkZW50aWZpZXIsIHR5cGUsIGV4dHJhY3RhYmxlLCB1c2FnZSkKLSAg
ICAsIG1fcGxhdGZvcm1LZXkocGxhdGZvcm1LZXkpCi0gICAgLCBtX3Jlc3RyaWN0ZWRUb1NwZWNp
ZmljSGFzaChmYWxzZSkKLXsKLX0KLQotUGFzc1JlZlB0cjxDcnlwdG9LZXlSU0E+IENyeXB0b0tl
eVJTQTo6Y3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3Qg
Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENy
eXB0b0tleVVzYWdlIHVzYWdlKQotewotICAgIGlmIChrZXlEYXRhLnR5cGUoKSA9PSBDcnlwdG9L
ZXlEYXRhUlNBQ29tcG9uZW50czo6VHlwZTo6UHJpdmF0ZSAmJiAha2V5RGF0YS5oYXNBZGRpdGlv
bmFsUHJpdmF0ZUtleVBhcmFtZXRlcnMoKSkgewotICAgICAgICBXVEZMb2dBbHdheXMoIlByaXZh
dGUga2V5cyB3aXRob3V0IGFkZGl0aW9uYWwgZGF0YSBhcmUgbm90IHN1cHBvcnRlZCIpOwotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgaWYgKGtleURhdGEub3RoZXJQcmltZUlu
Zm9zKCkuc2l6ZSgpKSB7Ci0gICAgICAgIC8vIDxyZGFyOi8vcHJvYmxlbS8xNTQ0NDA3ND4gdHJh
Y2tzIGFkZGluZyBzdXBwb3J0LgotICAgICAgICBXVEZMb2dBbHdheXMoIktleXMgd2l0aCBtb3Jl
IHRoYW4gdHdvIHByaW1lcyBhcmUgbm90IHN1cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICB9Ci0gICAgQ0NSU0FDcnlwdG9yUmVmIGNyeXB0b3I7Ci0gICAgQ0NDcnlwdG9y
U3RhdHVzIHN0YXR1cyA9IENDUlNBQ3J5cHRvckNyZWF0ZUZyb21EYXRhKAotICAgICAgICBrZXlE
YXRhLnR5cGUoKSA9PSBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czo6VHlwZTo6UHVibGljID8g
Y2NSU0FLZXlQdWJsaWMgOiBjY1JTQUtleVByaXZhdGUsCi0gICAgICAgICh1aW50OF90KilrZXlE
YXRhLm1vZHVsdXMoKS5kYXRhKCksIGtleURhdGEubW9kdWx1cygpLnNpemUoKSwKLSAgICAgICAg
KHVpbnQ4X3QqKWtleURhdGEuZXhwb25lbnQoKS5kYXRhKCksIGtleURhdGEuZXhwb25lbnQoKS5z
aXplKCksCi0gICAgICAgICh1aW50OF90KilrZXlEYXRhLmZpcnN0UHJpbWVJbmZvKCkucHJpbWVG
YWN0b3IuZGF0YSgpLCBrZXlEYXRhLmZpcnN0UHJpbWVJbmZvKCkucHJpbWVGYWN0b3Iuc2l6ZSgp
LAotICAgICAgICAodWludDhfdCopa2V5RGF0YS5zZWNvbmRQcmltZUluZm8oKS5wcmltZUZhY3Rv
ci5kYXRhKCksIGtleURhdGEuc2Vjb25kUHJpbWVJbmZvKCkucHJpbWVGYWN0b3Iuc2l6ZSgpLAot
ICAgICAgICAmY3J5cHRvcik7Ci0KLSAgICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgIExPR19FUlJP
UigiQ291bGRuJ3QgY3JlYXRlIFJTQSBrZXkgZnJvbSBkYXRhLCBlcnJvciAlZCIsIHN0YXR1cyk7
Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQ3J5cHRvS2V5UlNBKGlkZW50aWZpZXIsIGtleURhdGEudHlwZSgpID09IENyeXB0b0tleURh
dGFSU0FDb21wb25lbnRzOjpUeXBlOjpQdWJsaWMgPyBDcnlwdG9LZXlUeXBlOjpQdWJsaWMgOiBD
cnlwdG9LZXlUeXBlOjpQcml2YXRlLCBjcnlwdG9yLCBleHRyYWN0YWJsZSwgdXNhZ2UpKTsKLX0K
LQotQ3J5cHRvS2V5UlNBOjp+Q3J5cHRvS2V5UlNBKCkKLXsKLSAgICBDQ1JTQUNyeXB0b3JSZWxl
YXNlKG1fcGxhdGZvcm1LZXkpOwotfQotCi12b2lkIENyeXB0b0tleVJTQTo6cmVzdHJpY3RUb0hh
c2goQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyKQotewotICAgIG1fcmVzdHJp
Y3RlZFRvU3BlY2lmaWNIYXNoID0gdHJ1ZTsKLSAgICBtX2hhc2ggPSBpZGVudGlmaWVyOwotfQot
Ci12b2lkIENyeXB0b0tleVJTQTo6YnVpbGRBbGdvcml0aG1EZXNjcmlwdGlvbihDcnlwdG9BbGdv
cml0aG1EZXNjcmlwdGlvbkJ1aWxkZXImIGJ1aWxkZXIpIGNvbnN0Ci17Ci0gICAgQ3J5cHRvS2V5
OjpidWlsZEFsZ29yaXRobURlc2NyaXB0aW9uKGJ1aWxkZXIpOwotCi0gICAgQVNTRVJUKENDUlNB
R2V0S2V5VHlwZShtX3BsYXRmb3JtS2V5KSA9PSBjY1JTQUtleVB1YmxpYyB8fCBDQ1JTQUdldEtl
eVR5cGUobV9wbGF0Zm9ybUtleSkgPT0gY2NSU0FLZXlQcml2YXRlKTsKLSAgICBib29sIHBsYXRm
b3JtS2V5SXNQdWJsaWMgPSBDQ1JTQUdldEtleVR5cGUobV9wbGF0Zm9ybUtleSkgPT0gY2NSU0FL
ZXlQdWJsaWM7Ci0jaWYgUExBVEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwOTAKLSAgICBDQ1JTQUNyeXB0b3JSZWYgcHVibGljS2V5ID0gcGxhdGZvcm1L
ZXlJc1B1YmxpYyA/IG1fcGxhdGZvcm1LZXkgOiBDQ1JTQUNyeXB0b3JHZXRQdWJsaWNLZXlGcm9t
UHJpdmF0ZUtleShtX3BsYXRmb3JtS2V5KTsKLSNlbHNlCi0gICAgaWYgKCFwbGF0Zm9ybUtleUlz
UHVibGljKQotICAgICAgICByZXR1cm47Ci0gICAgQ0NSU0FDcnlwdG9yUmVmIHB1YmxpY0tleSA9
IG1fcGxhdGZvcm1LZXk7Ci0jZW5kaWYKLQotICAgIHNpemVfdCBtb2R1bHVzTGVuZ3RoOwotICAg
IHNpemVfdCBleHBvbmVudExlbmd0aDsKLSAgICB1aW50OF90IHB1YmxpY0V4cG9uZW50WzE2Mzg0
XTsKLSAgICBzaXplX3QgZHVtbXk7Ci0gICAgdWludDhfdCBidWZbMTYzODRdOwotICAgIENDQ3J5
cHRvclN0YXR1cyBzdGF0dXMgPSBDQ1JTQUdldEtleUNvbXBvbmVudHMocHVibGljS2V5LCBidWYs
ICZtb2R1bHVzTGVuZ3RoLCBwdWJsaWNFeHBvbmVudCwgJmV4cG9uZW50TGVuZ3RoLCBidWYsICZk
dW1teSwgYnVmLCAmZHVtbXkpOwotICAgIGlmICghcGxhdGZvcm1LZXlJc1B1YmxpYykgewotICAg
ICAgICAvLyBDQ1JTQUNyeXB0b3JHZXRQdWJsaWNLZXlGcm9tUHJpdmF0ZUtleSBoYXMgIkdldCIg
aW4gdGhlIG5hbWUsIGJ1dCBpdHMgcmVzdWx0IG5lZWRzIHRvIGJlIHJlbGVhc2VkIChzZWUgPHJk
YXI6Ly9wcm9ibGVtLzE1NDQ5Njk3PikuCi0gICAgICAgIENDUlNBQ3J5cHRvclJlbGVhc2UocHVi
bGljS2V5KTsKLSAgICB9Ci0gICAgaWYgKHN0YXR1cykgewotICAgICAgICBXVEZMb2dBbHdheXMo
IkNvdWxkbid0IGdldCBSU0Ega2V5IGNvbXBvbmVudHMsIHN0YXR1cyAlZCIsIHN0YXR1cyk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBidWlsZGVyLmFkZCgibW9kdWx1c0xlbmd0aCIs
IG1vZHVsdXNMZW5ndGggKiA4KTsKLQotICAgIFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiBwdWJsaWNF
eHBvbmVudFZlY3RvcjsKLSAgICBwdWJsaWNFeHBvbmVudFZlY3Rvci5hcHBlbmQocHVibGljRXhw
b25lbnQsIGV4cG9uZW50TGVuZ3RoKTsKLSAgICBidWlsZGVyLmFkZCgicHVibGljRXhwb25lbnQi
LCBwdWJsaWNFeHBvbmVudFZlY3Rvcik7Ci0KLSAgICBpZiAobV9yZXN0cmljdGVkVG9TcGVjaWZp
Y0hhc2gpIHsKLSAgICAgICAgYXV0byBoYXNoRGVzY3JpcHRpb25CdWlsZGVyID0gYnVpbGRlci5j
cmVhdGVFbXB0eUNsb25lKCk7Ci0gICAgICAgIGhhc2hEZXNjcmlwdGlvbkJ1aWxkZXItPmFkZCgi
bmFtZSIsIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjpzaGFyZWQoKS5uYW1lRm9ySWRlbnRpZmll
cihtX2hhc2gpKTsKLSAgICAgICAgYnVpbGRlci5hZGQoImhhc2giLCAqaGFzaERlc2NyaXB0aW9u
QnVpbGRlcik7Ci0gICAgfQotfQotCi1zdGF0aWMgYm9vbCBiaWdJbnRlZ2VyVG9VSW50MzIoY29u
c3QgVmVjdG9yPGNoYXI+JiBiaWdJbnRlZ2VyLCB1aW50MzJfdCYgcmVzdWx0KQotewotICAgIHJl
c3VsdCA9IDA7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgKyA0IDwgYmlnSW50ZWdlci5zaXpl
KCk7ICsraSkgewotICAgICAgICBpZiAoYmlnSW50ZWdlcltpXSkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsgLy8gVG9vIGJpZyB0byBmaXQgaW4gMzIgYml0cy4KLSAgICB9Ci0KLSAgICBmb3Ig
KHNpemVfdCBpID0gYmlnSW50ZWdlci5zaXplKCkgPiA0ID8gYmlnSW50ZWdlci5zaXplKCkgLSA0
IDogMDsgaSA8IGJpZ0ludGVnZXIuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgcmVzdWx0IDw8PSA4
OwotICAgICAgICByZXN1bHQgKz0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oYmlnSW50ZWdl
cltpXSk7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIENyeXB0b0tleVJTQTo6
Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCB1bnNpZ25l
ZCBtb2R1bHVzTGVuZ3RoLCBjb25zdCBWZWN0b3I8Y2hhcj4mIHB1YmxpY0V4cG9uZW50LCBib29s
IGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSwgc3RkOjp1bmlxdWVfcHRyPFByb21p
c2VXcmFwcGVyPiBwcm9taXNlKQotewotICAgIHVpbnQzMl90IGU7Ci0gICAgaWYgKCFiaWdJbnRl
Z2VyVG9VSW50MzIocHVibGljRXhwb25lbnQsIGUpKSB7Ci0gICAgICAgIC8vIEFkZGluZyBzdXBw
b3J0IGlzIHRyYWNrZWQgYXMgPHJkYXI6Ly9wcm9ibGVtLzE1NDQ0MDM0Pi4KLSAgICAgICAgV1RG
TG9nQWx3YXlzKCJQdWJsaWMgZXhwb25lbnQgaXMgdG9vIGJpZywgbm90IHN1cHBvcnRlZCBieSBD
b21tb25DcnlwdG8iKTsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KG51bGxwdHIpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgUHJvbWlzZVdyYXBwZXIqIGxvY2FsUHJvbWlzZSA9IHBy
b21pc2UucmVsZWFzZSgpOwotCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2dsb2Jh
bF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgXnsKLSAgICAgICAg
Q0NSU0FDcnlwdG9yUmVmIGNjUHVibGljS2V5OwotICAgICAgICBDQ1JTQUNyeXB0b3JSZWYgY2NQ
cml2YXRlS2V5OwotICAgICAgICBDQ0NyeXB0b3JTdGF0dXMgc3RhdHVzID0gQ0NSU0FDcnlwdG9y
R2VuZXJhdGVQYWlyKG1vZHVsdXNMZW5ndGgsIGUsICZjY1B1YmxpY0tleSwgJmNjUHJpdmF0ZUtl
eSk7Ci0gICAgICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiQ291
bGQgbm90IGdlbmVyYXRlIGEga2V5IHBhaXIsIHN0YXR1cyAlZCIsIHN0YXR1cyk7Ci0gICAgICAg
ICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewotICAgICAg
ICAgICAgICAgIGxvY2FsUHJvbWlzZS0+cmVqZWN0KG51bGxwdHIpOwotICAgICAgICAgICAgICAg
IGRlbGV0ZSBsb2NhbFByb21pc2U7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotICAgICAgICBSZWZQdHI8Q3J5cHRvS2V5UlNBPiBwdWJsaWNLZXkgPSBD
cnlwdG9LZXlSU0E6OmNyZWF0ZShhbGdvcml0aG0sIENyeXB0b0tleVR5cGU6OlB1YmxpYywgY2NQ
dWJsaWNLZXksIGV4dHJhY3RhYmxlLCB1c2FnZSk7Ci0gICAgICAgIFJlZlB0cjxDcnlwdG9LZXlS
U0E+IHByaXZhdGVLZXkgPSBDcnlwdG9LZXlSU0E6OmNyZWF0ZShhbGdvcml0aG0sIENyeXB0b0tl
eVR5cGU6OlByaXZhdGUsIGNjUHJpdmF0ZUtleSwgZXh0cmFjdGFibGUsIHVzYWdlKTsKLSAgICAg
ICAgQ3J5cHRvS2V5UGFpciogcmVzdWx0ID0gQ3J5cHRvS2V5UGFpcjo6Y3JlYXRlKHB1YmxpY0tl
eS5yZWxlYXNlKCksIHByaXZhdGVLZXkucmVsZWFzZSgpKS5sZWFrUmVmKCk7Ci0gICAgICAgIGRp
c3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57Ci0gICAgICAgICAgICBs
b2NhbFByb21pc2UtPmZ1bGZpbGwoYWRvcHRSZWYocmVzdWx0KSk7Ci0gICAgICAgICAgICBkZWxl
dGUgbG9jYWxQcm9taXNlOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5
UGFyYW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0
aG1IbWFjS2V5UGFyYW1zLmgKaW5kZXggY2QyM2FmMWEwNThiYzQyNTdhMTA4ZWZkODVmMDNmNzkw
ZWY0OGJjNy4uMzdkNGNlM2JjMTA2NWIzMzllOTk0MzkwYzI2MTYyYjU1MzQ0M2ViZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1h
Y0tleVBhcmFtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0
b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaApAQCAtMzUsMTEgKzM1LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zIEZJTkFMIDogcHVi
bGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMgewogcHVibGljOgotICAgIENyeXB0b0FsZ29y
aXRobUhtYWNLZXlQYXJhbXMoKQotICAgICAgICA6IGhhc0xlbmd0aChmYWxzZSkKLSAgICB7Ci0g
ICAgfQotCiAgICAgLy8gVGhlIGlubmVyIGhhc2ggZnVuY3Rpb24gdG8gdXNlLgogICAgIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJh
bXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzBlMjdkZDVkNzFkMDQ4MWU1NTZk
ZmU4YjUzZGRkNDM3NWM1NjZjMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0
aG1Sc2FLZXlHZW5QYXJhbXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc19oCi0jZGVmaW5l
IENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc19oCi0KLSNpbmNsdWRlICJDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzLmgiCi0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMgRklO
QUwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyB7Ci1wdWJsaWM6Ci0gICAgLy8g
VGhlIGxlbmd0aCwgaW4gYml0cywgb2YgdGhlIFJTQSBtb2R1bHVzLgotICAgIHVuc2lnbmVkIG1v
ZHVsdXNMZW5ndGg7Ci0gICAgLy8gVGhlIFJTQSBwdWJsaWMgZXhwb25lbnQsIGVuY29kZWQgYXMg
QmlnSW50ZWdlci4KLSAgICBWZWN0b3I8Y2hhcj4gcHVibGljRXhwb25lbnQ7Ci19OwotCi19Ci0K
LSNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSNlbmRpZiAvLyBDcnlwdG9BbGdvcml0
aG1Sc2FLZXlHZW5QYXJhbXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3Bh
cmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhU3NhS2V5UGFyYW1zLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FTc2FLZXlQYXJhbXMuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTU1YTdiZjcxOGVhMjJiNWFjYmFjZWY2NmRiNTcz
ZWYxMzM5NTM0NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FTc2FL
ZXlQYXJhbXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIENyeXB0b0FsZ29yaXRobVJzYVNzYUtleVBhcmFtc19oCi0jZGVmaW5lIENyeXB0b0Fs
Z29yaXRobVJzYVNzYUtleQotCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5o
IgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIKLQotI2lmIEVOQUJMRShT
VUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIFRoaXMgcGFyYW1ldGVy
cyBjbGFzcyBpcyBjdXJyZW50bHkgbm90IHNwZWNpZmllZCBpbiBXZWJDcnlwdG8uCi0vLyBJdCBp
cyBuZWNlc3NhcnkgdG8gc3VwcG9ydCBpbXBvcnQgZnJvbSBKV0ssIHdoaWNoIHRyZWF0cyBoYXNo
IGZ1bmN0aW9uIGFzIHBhcnQgb2YgYWxnb3JpdGhtCi0vLyBpZGVudGlmaWVyLCBzbyB3ZSBuZWVk
IHRvIHJlbWVtYmVyIGl0IHRvIGNvbXBhcmUgd2l0aCBvbmUgcGFzc2VkIHRvIHNpZ24gb3IgdmVy
aWZ5IGZ1bmN0aW9ucy4KLWNsYXNzIENyeXB0b0FsZ29yaXRobVJzYVNzYUtleVBhcmFtcyBGSU5B
TCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzIHsKLXB1YmxpYzoKLSAgICBDcnlw
dG9BbGdvcml0aG1Sc2FTc2FLZXlQYXJhbXMoKQotICAgICAgICA6IGhhc0hhc2goZmFsc2UpCi0g
ICAgewotICAgIH0KLQotICAgIC8vIFRoZSBoYXNoIGFsZ29yaXRobSB0byB1c2UuCi0gICAgYm9v
bCBoYXNIYXNoOwotICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsKLX07Ci0KLX0K
LQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotI2VuZGlmIC8vIENyeXB0b0FsZ29y
aXRobVJzYVNzYVBhcmFtc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFy
YW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2ZThlMGZkN2M3ZjkyNTU2ZGJlNzM1YmMzOWFiODE5YWUxYmIw
ZTExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5o
CisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ3J5
cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zX2gKLSNkZWZpbmUgQ3J5cHRvQWxnb3JpdGhtUnNhU3Nh
UGFyYW1zX2gKLQotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaCIKLSNpbmNs
dWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmgiCi0KLSNpZiBFTkFCTEUoU1VCVExFX0NS
WVBUTykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FT
c2FQYXJhbXMgRklOQUwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyB7Ci1wdWJs
aWM6Ci0gICAgLy8gVGhlIGhhc2ggYWxnb3JpdGhtIHRvIHVzZS4KLSAgICBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIGhhc2g7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NS
WVBUTykKLSNlbmRpZiAvLyBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNfaApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNl
NWYyN2VhN2Y2M2U2MzJjODQ4YjVlNGYyZjQ4MmQwYWRlNmUxNDUuLmIyZGY2M2NlYjMwNTVlZWQ3
ZmM5YzE2NTBlNzdkNzA1ZDQ1MmM4Y2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMy0xMS0x
MiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE1OTE2MCwgcjE1OTE2MSwgYW5kIHIxNTkxNjQuCisgICAg
ICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE1OTE2MAorICAgICAgICBodHRw
Oi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xNTkxNjEKKyAgICAgICAgaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTU5MTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQyNTMKKworICAgICAgICBUb28gbWFueSBlcnJvcnMgKG1h
a2UgZmV3ZXIpIChSZXF1ZXN0ZWQgYnkgYXAgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBjcnlw
dG8vc3VidGxlL3Jlc291cmNlcy9jb21tb24uanM6CisgICAgICAgIChoZXhUb0FycmF5QnVmZmVy
KToKKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtl
eS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3N1YnRsZS9yc2Fzc2Et
cGtjczEtdjFfNS1nZW5lcmF0ZS1rZXkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8v
c3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2stZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgor
CiAyMDEzLTExLTEyICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAg
ICAgIEltcGxlbWVudCBrZXkgZ2VuZXJhdGlvbiBhbmQgSldLIGltcG9ydCBmb3IgUlNBU1NBLVBL
Q1MxLXYxXzUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3VyY2Vz
L2NvbW1vbi5qcyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3VyY2VzL2NvbW1vbi5q
cwppbmRleCA4YTQwZjQyM2ZkYjk2NzUyMDgyNTA2M2ZlOTMxM2QyNWRjM2JlMmI5Li4zODRhNTAy
ZmY0ZGY0MzI2YTBkMTU4NmE2NjIzN2JhNzZiOWU0NTc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL3Jlc291cmNlcy9jb21tb24uanMKKysrIGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9yZXNvdXJjZXMvY29tbW9uLmpzCkBAIC00OCwyNCArNDgsMTMgQEAgZnVuY3Rp
b24gYXNjaWlUb0FycmF5QnVmZmVyKHN0cikKIGZ1bmN0aW9uIGhleFRvQXJyYXlCdWZmZXIoc3Ry
KQogewogICAgIGlmIChzdHIubGVuZ3RoICUgMikKLSAgICAgICAgdGhyb3cgIkhleCBzdHJpbmcg
bGVuZ3RoIG11c3QgYmUgZXZlbiI7CisgICAgICAgIHRocm93ICJIZXggc3RyaW5nIGxlbmdodCBt
dXN0IGJlIGV2ZW4iOwogICAgIHZhciBjaGFycyA9IFtdOwogICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgc3RyLmxlbmd0aDsgaSArPSAyKQogICAgICAgICBjaGFycy5wdXNoKHBhcnNlSW50KHN0ci5z
dWJzdHIoaSwgMiksIDE2KSk7CiAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGNoYXJzKTsKIH0K
IAotdmFyIEJhc2U2NFVSTCA9IHsKLSAgICBzdHJpbmdpZnk6IGZ1bmN0aW9uIChhKSB7Ci0gICAg
ICAgIHZhciBiYXNlNjRzdHJpbmcgPSBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoMCwg
YSkpOwotICAgICAgICByZXR1cm4gYmFzZTY0c3RyaW5nLnJlcGxhY2UoLz0vZywgIiIpLnJlcGxh
Y2UoL1wrL2csICItIikucmVwbGFjZSgvXC8vZywgIl8iKTsKLSAgICB9LAotICAgIHBhcnNlOiBm
dW5jdGlvbiAocykgewotICAgICAgICBzID0gcy5yZXBsYWNlKC8tL2csICIrIikucmVwbGFjZSgv
Xy9nLCAiLyIpLnJlcGxhY2UoL1xzL2csICcnKTsKLSAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFy
cmF5KEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChhdG9iKHMpLCBmdW5jdGlvbiAoYykgeyByZXR1
cm4gYy5jaGFyQ29kZUF0KDApIH0pKTsKLSAgICB9Ci19OwotCiBmdW5jdGlvbiBwcmludFJlamVj
dGVkUmVzdWx0KHZhbHVlKQogewogICAgIGRlYnVnKCIgICAgcmVqZWN0ZWQgd2l0aCB2YWx1ZSBv
ZiAiICsgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fz
c2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZTAzNzgwOGVjZDU2OWJhMWE0OWYzM2FlMDFj
Zjc3NmQzYmZmOWM0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUt
a2V5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLVRlc3QgZ2Vu
ZXJhdGluZyBhbiBSU0Ega2V5IHBhaXIgZm9yIFJTQVNTQS1QS0NTMS12MV81LgotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotR2VuZXJhdGluZyBhIGtleSBwYWlyLi4uCi1QQVNTIGtl
eVBhaXIudG9TdHJpbmcoKSBpcyAnW29iamVjdCBLZXlQYWlyXScKLVBBU1Mga2V5UGFpci5wdWJs
aWNLZXkudHlwZSBpcyAncHVibGljJwotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0u
bmFtZSBpcyAncnNhc3NhLXBrY3MxLXYxXzUnCi1QQVNTIGtleVBhaXIucHVibGljS2V5LmFsZ29y
aXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBBU1MgYnl0ZUFycmF5VG9IZXhTdHJpbmcoa2V5
UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnWzAxIDAwIDAxXScK
LVBBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgotUEFT
UyBrZXlQYWlyLnByaXZhdGVLZXkudHlwZSBpcyAncHJpdmF0ZScKLVBBU1Mga2V5UGFpci5wcml2
YXRlS2V5LmFsZ29yaXRobS5uYW1lIGlzICdyc2Fzc2EtcGtjczEtdjFfNScKLVBBU1Mga2V5UGFp
ci5wcml2YXRlS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBBU1MgYnl0ZUFy
cmF5VG9IZXhTdHJpbmcoa2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVu
dCkgaXMgJ1swMSAwMCAwMV0nCi1QQVNTIGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0uaGFz
aCBpcyB1bmRlZmluZWQuCi0KLVRlc3RpbmcgdGhhdCBjdXN0b20gYXR0cmlidXRlcyBvbiBrZXlz
IHN1cnZpdmUgZ2FyYmFnZSBjb2xsZWN0aW9uLi4uCi1QQVNTIGtleVBhaXIucHVibGljS2V5LmZv
byBpcyAnYmFyJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3Mx
LXYxXzUtZ2VuZXJhdGUta2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNz
YS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1YmE2Y2NjM2NiYmFiNjhhN2Q4OWM2ODdkYjgwYjVhOWZmMzBhZDQwLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5Lmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw1NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlw
dD4KLWRlc2NyaXB0aW9uKCJUZXN0IGdlbmVyYXRpbmcgYW4gUlNBIGtleSBwYWlyIGZvciBSU0FT
U0EtUEtDUzEtdjFfNS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWlmICghd2luZG93
LnN1YnRsZSkKLSAgICB3aW5kb3cuY3J5cHRvLnN1YnRsZSA9IHdpbmRvdy5jcnlwdG8ud2Via2l0
U3VidGxlOwotCi12YXIgYWxnb3JpdGhtS2V5R2VuID0gewotICAgIG5hbWU6ICJSU0FTU0EtUEtD
UzEtdjFfNSIsCi0gICAgLy8gUnNhS2V5R2VuUGFyYW1zCi0gICAgbW9kdWx1c0xlbmd0aDogMjA0
OCwKLSAgICBwdWJsaWNFeHBvbmVudDogbmV3IFVpbnQ4QXJyYXkoWzB4MDEsIDB4MDAsIDB4MDFd
KSwgIC8vIEVxdWl2YWxlbnQgdG8gNjU1MzcKLX07Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwot
Ci1kZWJ1ZygiR2VuZXJhdGluZyBhIGtleSBwYWlyLi4uIik7Ci1jcnlwdG8uc3VidGxlLmdlbmVy
YXRlS2V5KGFsZ29yaXRobUtleUdlbiwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSku
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXlQYWlyID0gcmVzdWx0OwotICAgIHNob3Vs
ZEJlKCJrZXlQYWlyLnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgS2V5UGFpcl0nIik7Ci0gICAgc2hv
dWxkQmUoImtleVBhaXIucHVibGljS2V5LnR5cGUiLCAiJ3B1YmxpYyciKTsKLSAgICBzaG91bGRC
ZSgia2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ3JzYXNzYS1wa2NzMS12MV81
JyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ubW9kdWx1c0xl
bmd0aCIsICIyMDQ4Iik7Ci0gICAgc2hvdWxkQmUoImJ5dGVBcnJheVRvSGV4U3RyaW5nKGtleVBh
aXIucHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJ1swMSAwMCAwMV0nIik7
Ci0gICAgc2hvdWxkQmVVbmRlZmluZWQoImtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5oYXNo
Iik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS50eXBlIiwgIidwcml2YXRlJyIp
OwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ3Jz
YXNzYS1wa2NzMS12MV81JyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnByaXZhdGVLZXkuYWxn
b3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNob3VsZEJlKCJieXRlQXJyYXlU
b0hleFN0cmluZyhrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIs
ICInWzAxIDAwIDAxXSciKTsKLSAgICBzaG91bGRCZVVuZGVmaW5lZCgia2V5UGFpci5wcml2YXRl
S2V5LmFsZ29yaXRobS5oYXNoIik7Ci0KLSAgICBkZWJ1ZygiXG5UZXN0aW5nIHRoYXQgY3VzdG9t
IGF0dHJpYnV0ZXMgb24ga2V5cyBzdXJ2aXZlIGdhcmJhZ2UgY29sbGVjdGlvbi4uLiIpOwotICAg
IGtleVBhaXIucHVibGljS2V5LmZvbyA9ICJiYXIiOwotICAgIGdjKCk7Ci0gICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKLSAgICAgICAgZ2MoKTsKLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5mb28iLCAiJ2Jh
ciciKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9LCAwKTsKLSAgICB9
LCAwKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWlt
cG9ydC1qd2stZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjNh
OWVkNDVjN2FlMjY1ODViZDc0NTE4MDNhYjZmY2NmOWIzMzI0Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNh
c3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwyNiArMCwwIEBACi1UZXN0IGltcG9ydGluZyBhbiBSU0Ega2V5IGZvciBSU0FTU0EtUEtDUzEt
djFfNS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBhIHB1Ymxp
YyBrZXkuLi4KLVBBU1MgcHVibGljS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5XScKLVBB
U1MgcHVibGljS2V5LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1MgcHVibGljS2V5LnVzYWdlcyBpcyBb
J3NpZ24nLCd2ZXJpZnknXQotUEFTUyBwdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ3JzYXNz
YS1wa2NzMS12MV81JwotUEFTUyBwdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMg
MjA0OAotUEFTUyBieXRlQXJyYXlUb0hleFN0cmluZyhwdWJsaWNLZXkuYWxnb3JpdGhtLnB1Ymxp
Y0V4cG9uZW50KSBpcyAnWzAxIDAwIDAxXScKLVBBU1MgcHVibGljS2V5LmFsZ29yaXRobS5oYXNo
Lm5hbWUgaXMgJ3NoYS0yNTYnCi0KLUltcG9ydGluZyBhIHByaXZhdGUga2V5Li4uCi1QQVNTIHBy
aXZhdGVLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBLZXldJwotUEFTUyBwcml2YXRlS2V5LnR5
cGUgaXMgJ3ByaXZhdGUnCi1QQVNTIHByaXZhdGVLZXkudXNhZ2VzIGlzIFsnc2lnbicsJ3Zlcmlm
eSddCi1QQVNTIHByaXZhdGVLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ3JzYXNzYS1wa2NzMS12MV81
JwotUEFTUyBwcml2YXRlS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBBU1Mg
Ynl0ZUFycmF5VG9IZXhTdHJpbmcocHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQp
IGlzICdbMDEgMDAgMDFdJwotUEFTUyBwcml2YXRlS2V5LmFsZ29yaXRobS5oYXNoLm5hbWUgaXMg
J3NoYS0yNTYnCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEt
djFfNS1pbXBvcnQtandrLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1w
a2NzMS12MV81LWltcG9ydC1qd2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjcxNzBmNjRmNGEyM2FmOTNhNmU5MmYxMDY2MWRkMWU4NDM2NTEwNy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcx
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVz
Y3JpcHRpb24oIlRlc3QgaW1wb3J0aW5nIGFuIFJTQSBrZXkgZm9yIFJTQVNTQS1QS0NTMS12MV81
LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotaWYgKCF3aW5kb3cuc3VidGxlKQotICAg
IHdpbmRvdy5jcnlwdG8uc3VidGxlID0gd2luZG93LmNyeXB0by53ZWJraXRTdWJ0bGU7Ci0KLXZh
ciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLXZhciBwdWJsaWNLZXlKU09OID0gewotICAgIGt0eTog
IlJTQSIsCi0gICAgYWxnOiAiUlMyNTYiLAotICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFr
blRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFn
cHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNT
TERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRM
SzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1p
Zzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRYS05zNlIt
TXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAotICAgIGU6ICJBUUFCIgotfTsK
LQotdmFyIHByaXZhdGVLZXlKU09OID0gewotICAgIGt0eTogIlJTQSIsCi0gICAgYWxnOiAiUlMy
NTYiLAotICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBC
eWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFs
R2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5
bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4
dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRx
dW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWds
eE1MX2kzLV9DZWVjQ3ciLAotICAgIGU6ICJBUUFCIiwKLSAgICBkOiAiZU5MUzM3YUN6N1JYU05Q
RF9EdExCSjZqNVQ4Y1N4ZHpSQkNqUGFJNldjR3FKcDE2bHEzVVR3dW9ETEFxbEE5b0dZbTIzOGRz
SVdwdXVjUF9sUXRiV2UtN1NweG9JNl92bVlHZjdZVlVIdjEtREY5cWlPbVNyTW1keE1uVk96WVhZ
OFJhVDZ0aFBqbl9KNWNmTFYyeElfTHdzck10bXBkU3lObGdYMHpUVWh3dHVhaGdBS01FQ2hZakgy
RW5qSGRIdzZzWTItd0FwZGNRSTdVTEUwb281UnpiUVpwbXVoY045aGlCYzBMM2hoRjBxbzUwbWJs
MDJfNjVfR1E3RHBWa1hCeE5nUkJMemxQYWJtenpHMm9BaGZlZkxnWW1TQzFvcGFDa1hFNnZSV1FO
V05MNDVSWk5aRllNM3VvSmdoT01xR2VvY00wQnBqZENoSHJQT2xGdlNRIiwKLSAgICBwOiAiNG1p
VHVBaktNZUg1dUo1S0IzOTdRVXdoYmtZRWdTYmNBMm1pZm1Ta3ZFMjAxOGdiNTVxa0JISzFlVnJ5
ZjFfbTQzTE5sYzZPX2FrNmdmemRaSVp2UzVOQ0dqUGwwcTA5cGxVcHU4cUZPU3NwQndBNjdxR0g3
NmxGbFpMbl9kNHlnbFM3d2ZMcnU0XzVZczhxTExzLURxVkx2aXdwb3NPbnl5V3F3TTVBWHAwIiwK
LSAgICBxOiAieEhZcnpraXZ0bW56X3NHY2huV0djMHEtcERPa0tpY3B0UnB2MnBNRklJWHhuRlg1
YU1lRVhJWmpWdWpYdHdVeTFVbEZJTjJHWkpTdnk1S0o3OW11X1h5Tm5GSE16ZWRILUEzZWUzdTho
MVVVclpGLXZVdTFfZTRVX3g2N05OMWRlZHpVU0t5bk43cEZsM09rdVNoTUJXR1YtY3d6T1BkY1ZB
ZlZ1Wmx4VU1jIiwKLSAgICBkcDogImZCekR6WURVQm1CUUdvcDdIbjBkdmZfVDI3VjZScXBjdFdv
MDc0Q1FaY0ZiUDJhdEZWdEtTajN2aVdUM3hpZDJWSHpjZ2lESGRmcE0zbkVWbEVPMXd3SW9uR0NT
dmRqR0VPWmlpRlZPanJaQU9WeEE4Z3VPanl5RnZxYlhrZTA2VndQSUlWdmZLZVNVMnp1aGJQX18x
dHQ2Rl9meG93NEtiMnhvbkdUMEdHayIsCi0gICAgZHE6ICJqbUUyRGlJUGRod0RnTFhBUXBJYUJx
UTgxYk8zWGZWVF9MUlVMQXd3d3dsUHVRVjE0OEgwNHpsaDlUSjZZMkdaSFlva1YxVTBlT0JwSnhm
a2I3ZExZdHBKcHVpQmpSZjR5SVVFb0dsa2tJX1FsSm5GU0ZyLVlqR1JkZk5IcVdCa3hsU01aTDc3
MFI5bUlBVG5kR2tIN3o1eC1yOUt3QlpGQzRGQ0cyaGdfekUiLAotICAgIHFpOiAiWUNYX3BMd2JN
QkExVGhWSDBXY3dtbnl0cU5jck1DRXdUbTdCeUEyZVU2bldiUXJVTHZmN205X2t6ZkxVY2pzbnBB
VmxCUUc1Sk1YTXkwU3E0cHR3Ynl3c2E1LUc4S0FPT09SMkwzdjRoQy1FeXM5ZnRnRk1fM2kwbzQw
ZWVRSDRiM2hhUGJudHJJZU1nOEl6bE91VllLZjktMlF1S0RvV2VSZGQ3TnNkeFRrIgotfTsKLQot
ZGVidWcoIkltcG9ydGluZyBhIHB1YmxpYyBrZXkuLi4iKTsKLWNyeXB0by5zdWJ0bGUuaW1wb3J0
S2V5KCJqd2siLCBhc2NpaVRvQXJyYXlCdWZmZXIoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5SlNP
TikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgewotICAgIHB1YmxpY0tleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgicHVibGlj
S2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgS2V5XSciKTsKLSAgICBzaG91bGRCZSgicHVibGlj
S2V5LnR5cGUiLCAiJ3B1YmxpYyciKTsKLSAgICBzaG91bGRCZSgicHVibGljS2V5LnVzYWdlcyIs
ICJbJ3NpZ24nLCd2ZXJpZnknXSIpOwotICAgIHNob3VsZEJlKCJwdWJsaWNLZXkuYWxnb3JpdGht
Lm5hbWUiLCAiJ3JzYXNzYS1wa2NzMS12MV81JyIpOwotICAgIHNob3VsZEJlKCJwdWJsaWNLZXku
YWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNob3VsZEJlKCJieXRlQXJy
YXlUb0hleFN0cmluZyhwdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICInWzAx
IDAwIDAxXSciKTsKLSAgICBzaG91bGRCZSgicHVibGljS2V5LmFsZ29yaXRobS5oYXNoLm5hbWUi
LCAiJ3NoYS0yNTYnIik7Ci0gICAgZGVidWcoIlxuSW1wb3J0aW5nIGEgcHJpdmF0ZSBrZXkuLi4i
KTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9BcnJh
eUJ1ZmZlcihKU09OLnN0cmluZ2lmeShwcml2YXRlS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJs
ZSwgWyJzaWduIiwgInZlcmlmeSJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAg
cHJpdmF0ZUtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgicHJpdmF0ZUtleS50b1N0cmluZygp
IiwgIidbb2JqZWN0IEtleV0nIik7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkudHlwZSIsICIn
cHJpdmF0ZSciKTsKLSAgICBzaG91bGRCZSgicHJpdmF0ZUtleS51c2FnZXMiLCAiWydzaWduJywn
dmVyaWZ5J10iKTsKLSAgICBzaG91bGRCZSgicHJpdmF0ZUtleS5hbGdvcml0aG0ubmFtZSIsICIn
cnNhc3NhLXBrY3MxLXYxXzUnIik7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkuYWxnb3JpdGht
Lm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNob3VsZEJlKCJieXRlQXJyYXlUb0hleFN0
cmluZyhwcml2YXRlS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJ1swMSAwMCAwMV0n
Iik7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2gubmFtZSIsICInc2hh
LTI1NiciKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0aW9uKHJlc3VsdCkgewotICAg
IGRlYnVnKCJGQUlMIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGM2Y2IyNjVlYWM1Yjk5NWUzMGYwOWRhMzRmOTg3YzhjZDA4ZmEzYWUuLmQ4NDIwY2Rh
NDJkODFjNWQyMjEzOGViNzEyOWI1YjZlZmI4OWZhMTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjk3LDEwICsxMjk3LDYgQEAgd2Via2l0Lm9yZy9i
LzEyMzQ5OCBbIE1hdmVyaWNrcyBdIG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtY3Vlcy1hZGRl
ZC1vbmNlLmh0bWwKIAogd2Via2l0Lm9yZy9iLzEyMzUyMiBbIE1hdmVyaWNrcyBdIG1lZGlhL3Ry
YWNrL3RyYWNrLWluLWJhbmQtbGVnYWN5LWFwaS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotIyBU
aGVzZSB0ZXN0cyBhcmUgZmFpbGluZyBmb3IgbXVsdGlwbGUgcmVhc29ucywgb25lIG9mIHRoZXNl
IGJlaW5nIDx3ZWJraXQub3JnL2IvMTI0MjQ5Pi4KLVsgTW91bnRhaW5MaW9uIF0gY3J5cHRvL3N1
YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXkuaHRtbCBbIFNraXAgXQotWyBNb3Vu
dGFpbkxpb24gXSBjcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2suaHRt
bCBbIEZhaWx1cmUgXQotCiAjIEF1ZGlvIGFuZCB2aWRlbyB0cmFja3MgYXJlbid0IHN1cHBvcnRl
ZCBvbiBtYWMKIG1lZGlhL3RyYWNrL2F1ZGlvCiBtZWRpYS90cmFjay92aWRlbwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>