<?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>227656</bug_id>
          
          <creation_ts>2021-07-03 00:57:17 -0700</creation_ts>
          <short_desc>[OpenSSL] Implement HKDF and PBKDF2 support</short_desc>
          <delta_ts>2021-07-08 12:27:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>206439</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</reporter>
          <assigned_to name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1774657</commentid>
    <comment_count>0</comment_count>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2021-07-03 00:57:17 -0700</bug_when>
    <thetext>Implement HKDF and PBKDF2 support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775520</commentid>
    <comment_count>1</comment_count>
      <attachid>433091</attachid>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2021-07-07 16:23:22 -0700</bug_when>
    <thetext>Created attachment 433091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775544</commentid>
    <comment_count>2</comment_count>
      <attachid>433097</attachid>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2021-07-07 17:32:14 -0700</bug_when>
    <thetext>Created attachment 433097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775557</commentid>
    <comment_count>3</comment_count>
      <attachid>433097</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-07-07 17:55:41 -0700</bug_when>
    <thetext>Comment on attachment 433097
Patch

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

&gt; Source/WebCore/crypto/openssl/CryptoAlgorithmPBKDF2OpenSSL.cpp:49
&gt; +    if (PKCS5_PBKDF2_HMAC((const char*)key.key().data(), key.key().size(), parameters.saltVector().data(), parameters.saltVector().size(), parameters.iterations, algorithm, output.size(), output.data()) &lt;= 0)

Even though WebKit code style guideline doesn&apos;t mention, some reviewer dislikes C-style case. You should use C++-style cast. Unfortunately, it&apos;s reinterpret_cast in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775564</commentid>
    <comment_count>4</comment_count>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2021-07-07 18:21:37 -0700</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #3)
&gt; Comment on attachment 433097 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=433097&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/crypto/openssl/CryptoAlgorithmPBKDF2OpenSSL.cpp:49
&gt; &gt; +    if (PKCS5_PBKDF2_HMAC((const char*)key.key().data(), key.key().size(), parameters.saltVector().data(), parameters.saltVector().size(), parameters.iterations, algorithm, output.size(), output.data()) &lt;= 0)
&gt; 
&gt; Even though WebKit code style guideline doesn&apos;t mention, some reviewer
&gt; dislikes C-style case. You should use C++-style cast. Unfortunately, it&apos;s
&gt; reinterpret_cast in this case.

Got it, I&apos;ll fix it. Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775577</commentid>
    <comment_count>5</comment_count>
      <attachid>433109</attachid>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2021-07-07 19:04:08 -0700</bug_when>
    <thetext>Created attachment 433109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775755</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-08 12:27:00 -0700</bug_when>
    <thetext>Committed r279742 (239523@main): &lt;https://commits.webkit.org/239523@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433109.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775757</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-08 12:27:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/80337626&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>433091</attachid>
            <date>2021-07-07 16:23:22 -0700</date>
            <delta_ts>2021-07-07 16:24:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227656-20210708082321.patch</filename>
            <type>text/plain</type>
            <size>59339</size>
            <attacher name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTVhMTFiOTkwZjRjMmU0
YzYxMDc1ZWQwMzgyZTBjMjc2MWIxNTFlNi4uZmJhNDc0NzNjYzAzZjY3NzRjZmJjY2RjZGI0NmVm
YTcyMDg5M2JhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA3LTA4ICBZb3No
aWFraSBKaXRzdWthd2EgIDx5b3NoaWFraS5qaXRzdWthd2FAc29ueS5jb20+CisKKyAgICAgICAg
W09wZW5TU0xdIEltcGxlbWVudCBIS0RGIGFuZCBQQktERjIgc3VwcG9ydAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NjU2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjcnlwdG8vb3BlbnNzbC9Dcnlw
dG9BbGdvcml0aG1IS0RGT3BlblNTTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdv
cml0aG1IS0RGOjpwbGF0Zm9ybURlcml2ZUJpdHMpOiBJbXBsZW1lbnRlZCB3aXRoIEhLREYoKS4K
KyAgICAgICAgKiBjcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1QQktERjJPcGVuU1NMLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVBCS0RGMjo6cGxhdGZvcm1EZXJp
dmVCaXRzKToKKyAgICAgICAgKiBjcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1SZWdpc3Ry
eU9wZW5TU0wuY3BwOiBJbXBsZW1lbnRlZCB3aXRoIFBLQ1M1X1BCS0RGMl9ITUFDKCkuCisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6cGxhdGZvcm1SZWdpc3RlckFs
Z29yaXRobXMpOiBSZWdpc3RlciBIS0RGIGFuZCBQQktERjIuCisKIDIwMjEtMDctMDQgIEFsZXhl
eSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFtXZWJJRExdIFNp
bXBsaWZ5IGdlbmVyYXRpb24gb2YgcnVudGltZSBjb25kaXRpb25hbGx5IHJlYWQtd3JpdGUgYXR0
cmlidXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5
RUMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmgKaW5kZXggYjk2
MDYwNTljOGE2NTYxMWI2ZWI0NGM5ZDgxOTNkZWUxZjBmZjQ0My4uOGQ2ZTAwODIxMjkxZTQ4YzFl
YmJkYjA0OTdlMGM1YmUyZmYzMzAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2tleXMvQ3J5cHRvS2V5RUMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9Dcnlw
dG9LZXlFQy5oCkBAIC01MSw4ICs1MSw5IEBAIHR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPHR5cGVu
YW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8Z2NyeV9zZXhwX3Q+Ojp0eXBlLCBQQUw6OkdDCiAjZW5k
aWYKIAogI2lmIFVTRShPUEVOU1NMKQotdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUVDS2V5OwotdHlw
ZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1FQ0tleT4gUGxhdGZvcm1FQ0tleUNvbnRhaW5l
cjsKKyNpbmNsdWRlICJjcnlwdG8vb3BlbnNzbC9PcGVuU1NMQ3J5cHRvVW5pcXVlUHRyLmgiCit0
eXBlZGVmIEVWUF9QS0VZKiBQbGF0Zm9ybUVDS2V5OwordHlwZWRlZiBXZWJDb3JlOjpFdnBQS2V5
UHRyIFBsYXRmb3JtRUNLZXlDb250YWluZXI7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvQWxnb3Jp
dGhtRUNESE9wZW5TU0wuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRv
QWxnb3JpdGhtRUNESE9wZW5TU0wuY3BwCmluZGV4IGNmOTc4MzUyMzI4NTc4YzU2NThhNTNiMmFk
ZTc3NjVhMTM3NGIxZTguLmZkZDA3YTllNGZjNTgyMjNlY2U1MDU1YWQyZTU2OWQwNjQxZTRhY2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRo
bUVDREhPcGVuU1NMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9Dcnlw
dG9BbGdvcml0aG1FQ0RIT3BlblNTTC5jcHAKQEAgLTI5LDE0ICsyOSwzNSBAQAogI2lmIEVOQUJM
RShXRUJfQ1JZUFRPKQogCiAjaW5jbHVkZSAiQ3J5cHRvS2V5RUMuaCIKLSNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIk9wZW5TU0xVdGlsaXRpZXMuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1zdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvQWxnb3Jp
dGhtRUNESDo6cGxhdGZvcm1EZXJpdmVCaXRzKGNvbnN0IENyeXB0b0tleUVDJiwgY29uc3QgQ3J5
cHRvS2V5RUMmKQorc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IENyeXB0b0FsZ29yaXRo
bUVDREg6OnBsYXRmb3JtRGVyaXZlQml0cyhjb25zdCBDcnlwdG9LZXlFQyYgYmFzZUtleSwgY29u
c3QgQ3J5cHRvS2V5RUMmIHB1YmxpY0tleSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiB7IH07CisgICAgYXV0byBjdHggPSBFdnBQS2V5Q3R4UHRyKEVWUF9QS0VZX0NUWF9u
ZXcoYmFzZUtleS5wbGF0Zm9ybUtleSgpLCBudWxscHRyKSk7CisgICAgaWYgKCFjdHgpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBpZiAoRVZQX1BLRVlfZGVyaXZlX2luaXQo
Y3R4LmdldCgpKSA8PSAwKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgaWYg
KEVWUF9QS0VZX2Rlcml2ZV9zZXRfcGVlcihjdHguZ2V0KCksIHB1YmxpY0tleS5wbGF0Zm9ybUtl
eSgpKSA8PSAwKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgLy8gQ2FsbCB3
aXRoIGEgbnVsbHB0ciB0byBnZXQgdGhlIHJlcXVpcmVkIGJ1ZmZlciBzaXplLgorICAgIHNpemVf
dCBrZXlMZW47CisgICAgaWYgKEVWUF9QS0VZX2Rlcml2ZShjdHguZ2V0KCksIG51bGxwdHIsICZr
ZXlMZW4pIDw9IDApCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8
dWludDhfdD4ga2V5KGtleUxlbik7CisgICAgaWYgKEVWUF9QS0VZX2Rlcml2ZShjdHguZ2V0KCks
IGtleS5kYXRhKCksICZrZXlMZW4pIDw9IDApCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAvLyBTaHJpbmsgdGhlIGJ1ZmZlciBzaW5jZSB0aGUgbmV3IGtleUxlbiBtYXkgZGlm
ZmVyIGZyb20gdGhlIGJ1ZmZlciBzaXplLgorICAgIGtleS5zaHJpbmsoa2V5TGVuKTsKKworICAg
IHJldHVybiBrZXk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRobUVDRFNBT3BlblNTTC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1FQ0RTQU9w
ZW5TU0wuY3BwCmluZGV4IDIwMGMwZmZlZWRhMzMwYzcwY2EwMTk2MmI5ZTgyMGI0OGY4OWQyOTUu
LmQyZTU3Nzg5ZjYxODM4Y2E3OWM2NTQ5NTFmNTYzNThmZmVlMWQ5YTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRobUVDRFNBT3BlblNTTC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvQWxnb3JpdGhtRUNE
U0FPcGVuU1NMLmNwcApAQCAtMzAsMjAgKzMwLDY5IEBACiAKICNpbmNsdWRlICJDcnlwdG9BbGdv
cml0aG1FY2RzYVBhcmFtcy5oIgogI2luY2x1ZGUgIkNyeXB0b0tleUVDLmgiCi0jaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJPcGVuU1NMVXRpbGl0aWVzLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdv
cml0aG1FQ0RTQTo6cGxhdGZvcm1TaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobUVjZHNhUGFyYW1z
JiwgY29uc3QgQ3J5cHRvS2V5RUMmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mKQorRXhjZXB0aW9u
T3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1FQ0RTQTo6cGxhdGZvcm1TaWduKGNv
bnN0IENyeXB0b0FsZ29yaXRobUVjZHNhUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9L
ZXlFQyYga2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEpCiB7Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKKyAg
ICBzaXplX3Qga2V5U2l6ZUluQnl0ZXMgPSAoa2V5LmtleVNpemVJbkJpdHMoKSArIDcpIC8gODsK
KworICAgIGNvbnN0IEVWUF9NRCogbWQgPSBkaWdlc3RBbGdvcml0aG0ocGFyYW1ldGVycy5oYXNo
SWRlbnRpZmllcik7CisgICAgaWYgKCFtZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
dFN1cHBvcnRlZEVycm9yIH07CisKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4g
ZGlnZXN0ID0gY2FsY3VsYXRlRGlnZXN0KG1kLCBkYXRhKTsKKyAgICBpZiAoIWRpZ2VzdCkKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yIH07CisKKyAgICBFQ19LRVkq
IGVjS2V5ID0gRVZQX1BLRVlfZ2V0MF9FQ19LRVkoa2V5LnBsYXRmb3JtS2V5KCkpOworICAgIGlm
ICghZWNLZXkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9Owor
CisgICAgLy8gV2UgdXNlIEVDRFNBX2RvX3NpZ24gcmF0aGVyIHRoYW4gRVZQIEFQSSBiZWNhdXNl
IHRoZSBsYXR0ZXIgaGFuZGxlcyBFQ0RTQSBzaWduYXR1cmUgaW4gREVSIGZvcm1hdAorICAgIC8v
IHdoaWxlIHRoaXMgZnVuY3Rpb24gaXMgc3VwcG9zZWQgdG8gcmV0dXJuIHNpbXBseSBjb25jYXRp
bmF0ZWQgInIiIGFuZCAicyIuCisgICAgYXV0byBzaWcgPSBFQ0RTQVNpZ1B0cihFQ0RTQV9kb19z
aWduKGRpZ2VzdC0+ZGF0YSgpLCBkaWdlc3QtPnNpemUoKSwgZWNLZXkpKTsKKyAgICBpZiAoIXNp
ZykKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yIH07CisKKyAgICBj
b25zdCBCSUdOVU0qIHI7CisgICAgY29uc3QgQklHTlVNKiBzOworICAgIEVDRFNBX1NJR19nZXQw
KHNpZy5nZXQoKSwgJnIsICZzKTsKKworICAgIC8vIENvbmNhdGVuYXRlIHIgYW5kIHMsIGV4cGFu
ZGluZyByIGFuZCBzIHRvIGtleVNpemVJbkJ5dGVzLgorICAgIFZlY3Rvcjx1aW50OF90PiBzaWdu
YXR1cmUgPSBjb252ZXJ0VG9CeXRlc0V4cGFuZChyLCBrZXlTaXplSW5CeXRlcyk7CisgICAgc2ln
bmF0dXJlLmFwcGVuZFZlY3Rvcihjb252ZXJ0VG9CeXRlc0V4cGFuZChzLCBrZXlTaXplSW5CeXRl
cykpOworCisgICAgcmV0dXJuIHNpZ25hdHVyZTsKIH0KIAotRXhjZXB0aW9uT3I8Ym9vbD4gQ3J5
cHRvQWxnb3JpdGhtRUNEU0E6OnBsYXRmb3JtVmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobUVj
ZHNhUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5RUMmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBj
b25zdCBWZWN0b3I8dWludDhfdD4mKQorRXhjZXB0aW9uT3I8Ym9vbD4gQ3J5cHRvQWxnb3JpdGht
RUNEU0E6OnBsYXRmb3JtVmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobUVjZHNhUGFyYW1zJiBw
YXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlFQyYga2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4m
IHNpZ25hdHVyZSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Cisg
ICAgc2l6ZV90IGtleVNpemVJbkJ5dGVzID0gKGtleS5rZXlTaXplSW5CaXRzKCkgKyA3KSAvIDg7
CisKKyAgICAvLyBCYWlsIGlmIHRoZSBzaWduYXR1cmUgc2l6ZSBpc24ndCBkb3VibGUgdGhlIGtl
eSBzaXplIChpLmUuIGNvbmNhdGVuYXRlZCByIGFuZCBzIGNvbXBvbmVudHMpLgorICAgIGlmIChz
aWduYXR1cmUuc2l6ZSgpICE9IGtleVNpemVJbkJ5dGVzICogMikKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIAorICAgIGF1dG8gc2lnID0gRUNEU0FTaWdQdHIoRUNEU0FfU0lHX25ldygpKTsK
KyAgICBzaWctPnIgPSBCTl9iaW4yYm4oc2lnbmF0dXJlLmRhdGEoKSwga2V5U2l6ZUluQnl0ZXMs
IHNpZy0+cik7CisgICAgc2lnLT5zID0gQk5fYmluMmJuKHNpZ25hdHVyZS5kYXRhKCkgKyBrZXlT
aXplSW5CeXRlcywga2V5U2l6ZUluQnl0ZXMsIHNpZy0+cyk7CisKKyAgICBjb25zdCBFVlBfTUQq
IG1kID0gZGlnZXN0QWxnb3JpdGhtKHBhcmFtZXRlcnMuaGFzaElkZW50aWZpZXIpOworICAgIGlm
ICghbWQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9Owor
CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IGRpZ2VzdCA9IGNhbGN1bGF0ZURp
Z2VzdChtZCwgZGF0YSk7CisgICAgaWYgKCFkaWdlc3QpCisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBPcGVyYXRpb25FcnJvciB9OworCisgICAgRUNfS0VZKiBlY0tleSA9IEVWUF9QS0VZX2dl
dDBfRUNfS0VZKGtleS5wbGF0Zm9ybUtleSgpKTsKKyAgICBpZiAoIWVjS2V5KQorICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKKworICAgIGludCByZXQgPSBFQ0RT
QV9kb192ZXJpZnkoZGlnZXN0LT5kYXRhKCksIGRpZ2VzdC0+c2l6ZSgpLCBzaWcuZ2V0KCksIGVj
S2V5KTsKKyAgICByZXR1cm4gcmV0ID09IDE7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRo
bUhLREZPcGVuU1NMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0Fs
Z29yaXRobUhLREZPcGVuU1NMLmNwcAppbmRleCBmMGI3YTQ2YzI5YzAxNTYxZTNjZDAwMWRkZjVm
OGUxYWQ5NjYyNDg0Li5lM2MxMTNmMzM2NGMwZTFkYjU5Y2VkNWJlODMzYWU0OThiZGYwMjUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1I
S0RGT3BlblNTTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRv
QWxnb3JpdGhtSEtERk9wZW5TU0wuY3BwCkBAIC0yOSwxNSArMjksMjMgQEAKICNpZiBFTkFCTEUo
V0VCX0NSWVBUTykKIAogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUhrZGZQYXJhbXMuaCIKLSNp
bmNsdWRlICJDcnlwdG9LZXlFQy5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5j
bHVkZSAiQ3J5cHRvS2V5UmF3LmgiCisjaW5jbHVkZSAiT3BlblNTTFV0aWxpdGllcy5oIgorI2lu
Y2x1ZGUgPG9wZW5zc2wvaGtkZi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUV4Y2VwdGlv
bk9yPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvQWxnb3JpdGhtSEtERjo6cGxhdGZvcm1EZXJpdmVC
aXRzKGNvbnN0IENyeXB0b0FsZ29yaXRobUhrZGZQYXJhbXMmLCBjb25zdCBDcnlwdG9LZXlSYXcm
LCBzaXplX3QpCitFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IENyeXB0b0FsZ29yaXRobUhL
REY6OnBsYXRmb3JtRGVyaXZlQml0cyhjb25zdCBDcnlwdG9BbGdvcml0aG1Ia2RmUGFyYW1zJiBw
YXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlSYXcmIGtleSwgc2l6ZV90IGxlbmd0aCkKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRF
cnJvciB9OworICAgIGF1dG8gYWxnb3JpdGhtID0gZGlnZXN0QWxnb3JpdGhtKHBhcmFtZXRlcnMu
aGFzaElkZW50aWZpZXIpOworICAgIGlmICghYWxnb3JpdGhtKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKKworICAgIFZlY3Rvcjx1aW50OF90PiBvdXRw
dXQobGVuZ3RoIC8gOCk7CisgICAgaWYgKEhLREYob3V0cHV0LmRhdGEoKSwgb3V0cHV0LnNpemUo
KSwgYWxnb3JpdGhtLCBrZXkua2V5KCkuZGF0YSgpLCBrZXkua2V5KCkuc2l6ZSgpLCBwYXJhbWV0
ZXJzLnNhbHRWZWN0b3IoKS5kYXRhKCksIHBhcmFtZXRlcnMuc2FsdFZlY3RvcigpLnNpemUoKSwg
cGFyYW1ldGVycy5pbmZvVmVjdG9yKCkuZGF0YSgpLCBwYXJhbWV0ZXJzLmluZm9WZWN0b3IoKS5z
aXplKCkpIDw9IDApCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9
OworCisgICAgcmV0dXJuIG91dHB1dDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvQWxnb3JpdGhtUEJL
REYyT3BlblNTTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdv
cml0aG1QQktERjJPcGVuU1NMLmNwcAppbmRleCBiOTRmNjAyOWZkOGFiMzE3Mzg5MDdhNDI1M2Y3
MWZiZGFmNmFmN2RlLi4yYzczZDk1Yzk0OGYzOWI5ZTMyOGU0ZjA2ZDdmY2VjNDgxMzliMDQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1Q
QktERjJPcGVuU1NMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9Dcnlw
dG9BbGdvcml0aG1QQktERjJPcGVuU1NMLmNwcApAQCAtMzAsMTQgKzMwLDI2IEBACiAKICNpbmNs
dWRlICJDcnlwdG9BbGdvcml0aG1QYmtkZjJQYXJhbXMuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlS
YXcuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIk9wZW5TU0xVdGls
aXRpZXMuaCIKKyNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLUV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvQWxnb3JpdGhtUEJLREYyOjpw
bGF0Zm9ybURlcml2ZUJpdHMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGJrZGYyUGFyYW1zJiwgY29u
c3QgQ3J5cHRvS2V5UmF3Jiwgc2l6ZV90KQorRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBD
cnlwdG9BbGdvcml0aG1QQktERjI6OnBsYXRmb3JtRGVyaXZlQml0cyhjb25zdCBDcnlwdG9BbGdv
cml0aG1QYmtkZjJQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJhdyYga2V5LCBz
aXplX3QgbGVuZ3RoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CisgICAgYXV0byBhbGdvcml0aG0gPSBkaWdlc3RB
bGdvcml0aG0ocGFyYW1ldGVycy5oYXNoSWRlbnRpZmllcik7CisgICAgaWYgKCFhbGdvcml0aG0p
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworCisgICAg
Ly8gaXRlcmF0aW9ucyBtdXN0IG5vdCBiZSB6ZXJvLgorICAgIGlmICghcGFyYW1ldGVycy5pdGVy
YXRpb25zKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKKwor
ICAgIFZlY3Rvcjx1aW50OF90PiBvdXRwdXQobGVuZ3RoIC8gOCk7CisgICAgaWYgKFBLQ1M1X1BC
S0RGMl9ITUFDKChjb25zdCBjaGFyKilrZXkua2V5KCkuZGF0YSgpLCBrZXkua2V5KCkuc2l6ZSgp
LCBwYXJhbWV0ZXJzLnNhbHRWZWN0b3IoKS5kYXRhKCksIHBhcmFtZXRlcnMuc2FsdFZlY3Rvcigp
LnNpemUoKSwgcGFyYW1ldGVycy5pdGVyYXRpb25zLCBhbGdvcml0aG0sIG91dHB1dC5zaXplKCks
IG91dHB1dC5kYXRhKCkpIDw9IDApCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRp
b25FcnJvciB9OworCisgICAgcmV0dXJuIG91dHB1dDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvQWxn
b3JpdGhtUmVnaXN0cnlPcGVuU1NMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3Ns
L0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5T3BlblNTTC5jcHAKaW5kZXggOTUxZjFhMjkyOGEyZmY5
MmIyMTIxMDc1NjY1MzVkOWE2N2QxNTRkNC4uMTk3NmEwMWE4ZDk4MGZkMzk5OWE3ZGZjZWM1OTQx
YmU0ODBhZGJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5
cHRvQWxnb3JpdGhtUmVnaXN0cnlPcGVuU1NMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeU9wZW5TU0wuY3BwCkBAIC0zMyw3ICsz
MywxMSBAQAogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFFU19DVFIuaCIKICNpbmNsdWRlICJD
cnlwdG9BbGdvcml0aG1BRVNfR0NNLmgiCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQUVTX0tX
LmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtRUNESC5oIgorI2luY2x1ZGUgIkNyeXB0b0Fs
Z29yaXRobUVDRFNBLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSEtERi5oIgogI2luY2x1
ZGUgIkNyeXB0b0FsZ29yaXRobUhNQUMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QQktE
RjIuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmgiCiAjaW5j
bHVkZSAiQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCIKICNpbmNsdWRlICJDcnlw
dG9BbGdvcml0aG1SU0FfT0FFUC5oIgpAQCAtNTMsNyArNTcsMTEgQEAgdm9pZCBDcnlwdG9BbGdv
cml0aG1SZWdpc3RyeTo6cGxhdGZvcm1SZWdpc3RlckFsZ29yaXRobXMoKQogICAgIHJlZ2lzdGVy
QWxnb3JpdGhtPENyeXB0b0FsZ29yaXRobUFFU19DVFI+KCk7CiAgICAgcmVnaXN0ZXJBbGdvcml0
aG08Q3J5cHRvQWxnb3JpdGhtQUVTX0dDTT4oKTsKICAgICByZWdpc3RlckFsZ29yaXRobTxDcnlw
dG9BbGdvcml0aG1BRVNfS1c+KCk7CisgICAgcmVnaXN0ZXJBbGdvcml0aG08Q3J5cHRvQWxnb3Jp
dGhtRUNESD4oKTsKKyAgICByZWdpc3RlckFsZ29yaXRobTxDcnlwdG9BbGdvcml0aG1FQ0RTQT4o
KTsKKyAgICByZWdpc3RlckFsZ29yaXRobTxDcnlwdG9BbGdvcml0aG1IS0RGPigpOwogICAgIHJl
Z2lzdGVyQWxnb3JpdGhtPENyeXB0b0FsZ29yaXRobUhNQUM+KCk7CisgICAgcmVnaXN0ZXJBbGdv
cml0aG08Q3J5cHRvQWxnb3JpdGhtUEJLREYyPigpOwogICAgIHJlZ2lzdGVyQWxnb3JpdGhtPENy
eXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU+KCk7CiAgICAgcmVnaXN0ZXJBbGdvcml0aG08
Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU+KCk7CiAgICAgcmVnaXN0ZXJBbGdvcml0
aG08Q3J5cHRvQWxnb3JpdGhtUlNBX09BRVA+KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9LZXlFQ09wZW5TU0wuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL29wZW5zc2wvQ3J5cHRvS2V5RUNPcGVuU1NMLmNwcAppbmRleCBmMzExZWQzYjZmZGNj
Nzg0ODlkZGY4YTNmMDJiOTNkYjUxNGM3MDY1Li5mM2IyZjlkMWRmNTg3OTQ0NjUzZjIzNzY5Y2Ji
MGY2NDA1N2E4MWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9D
cnlwdG9LZXlFQ09wZW5TU0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3Ns
L0NyeXB0b0tleUVDT3BlblNTTC5jcHAKQEAgLTI4LDk0ICsyOCw0MzUgQEAKIAogI2lmIEVOQUJM
RShXRUJfQ1JZUFRPKQogCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJK
c29uV2ViS2V5LmgiCisjaW5jbHVkZSAiT3BlblNTTFV0aWxpdGllcy5oIgorI2luY2x1ZGUgPHd0
Zi90ZXh0L0Jhc2U2NC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXNpemVfdCBDcnlwdG9L
ZXlFQzo6a2V5U2l6ZUluQml0cygpIGNvbnN0CitzdGF0aWMgaW50IGN1cnZlSWRlbnRpZmllcihD
cnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZSBjdXJ2ZSkKK3sKKyAgICBzd2l0Y2ggKGN1cnZlKSB7Cisg
ICAgY2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDI1NjoKKyAgICAgICAgcmV0dXJuIE5J
RF9YOV82Ml9wcmltZTI1NnYxOworICAgIGNhc2UgQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmU6OlAz
ODQ6CisgICAgICAgIHJldHVybiBOSURfc2VjcDM4NHIxOworICAgIGNhc2UgQ3J5cHRvS2V5RUM6
Ok5hbWVkQ3VydmU6OlA1MjE6CisgICAgICAgIHJldHVybiBOSURfc2VjcDUyMXIxOworICAgIH0K
KworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBOSURfdW5kZWY7Cit9CisK
K3N0YXRpYyBzaXplX3QgY3VydmVTaXplKENyeXB0b0tleUVDOjpOYW1lZEN1cnZlIGN1cnZlKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgc3dpdGNoIChjdXJ2ZSkgeworICAgIGNhc2Ug
Q3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmU6OlAyNTY6CisgICAgICAgIHJldHVybiAyNTY7CisgICAg
Y2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDM4NDoKKyAgICAgICAgcmV0dXJuIDM4NDsK
KyAgICBjYXNlIENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQNTIxOgorICAgICAgICByZXR1cm4g
NTIxOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiAwOwog
fQogCi1ib29sIENyeXB0b0tleUVDOjpwbGF0Zm9ybVN1cHBvcnRlZEN1cnZlKE5hbWVkQ3VydmUp
CitzdGF0aWMgRUNLZXlQdHIgY3JlYXRlRUNLZXkoQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmUgY3Vy
dmUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0
byBrZXkgPSBFQ0tleVB0cihFQ19LRVlfbmV3X2J5X2N1cnZlX25hbWUoY3VydmVJZGVudGlmaWVy
KGN1cnZlKSkpOworICAgIGlmIChrZXkpIHsKKyAgICAgICAgLy8gT1BFTlNTTF9FQ19OQU1FRF9D
VVJWRSBuZWVkcyB0byBiZSBzZXQgdG8gZXhwb3J0IHRoZSBrZXkgd2l0aCB0aGUgY3VydmUgbmFt
ZSwgbm90IHdpdGggdGhlIGN1cnZlIHBhcmFtZXRlcnMuCisgICAgICAgIEVDX0tFWV9zZXRfYXNu
MV9mbGFnKGtleS5nZXQoKSwgT1BFTlNTTF9FQ19OQU1FRF9DVVJWRSk7CisgICAgfQorICAgIHJl
dHVybiBrZXk7Cit9CisKKy8vIFRoaXMgZnVuY3Rpb24gdmVyaWZpZXMgdGhhdCB0aGUgZ3JvdXAg
cmVwcmVzZW50cyB0aGUgbmFtZWQgY3VydmUuCitzdGF0aWMgYm9vbCB2ZXJpZnlDdXJ2ZShjb25z
dCBFQ19HUk9VUCogZ3JvdXAsIENyeXB0b0tleUVDOjpOYW1lZEN1cnZlIGN1cnZlKQoreworICAg
IGlmICghZ3JvdXApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8ga2V5ID0gY3Jl
YXRlRUNLZXkoY3VydmUpOworICAgIGlmICgha2V5KQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICByZXR1cm4gIUVDX0dST1VQX2NtcChncm91cCwgRUNfS0VZX2dldDBfZ3JvdXAoa2V5Lmdl
dCgpKSwgbnVsbHB0cik7Cit9CisKK3NpemVfdCBDcnlwdG9LZXlFQzo6a2V5U2l6ZUluQml0cygp
IGNvbnN0Cit7CisgICAgLy8gRVZQX1BLRVlfc2l6ZSgpIHJldHVybnMgdGhlIHNpemUgb2YgREVS
LWVuY29kZWQga2V5IGFuZCBjYW5ub3QgYmUgdXNlZCBmb3IgdGhpcyBmdW5jdGlvbidzIHB1cnBv
c2UuCisgICAgLy8gSW5zdGVhZCB3ZSByZXNvbHZlIHRoZSBrZXkgc2l6ZSBieSBDcnlwdG9LZXlF
Qzo6TmFtZWRDdXJ2ZS4KKyAgICBzaXplX3Qgc2l6ZSA9IGN1cnZlU2l6ZShtX2N1cnZlKTsKKyAg
ICByZXR1cm4gc2l6ZTsKK30KKworYm9vbCBDcnlwdG9LZXlFQzo6cGxhdGZvcm1TdXBwb3J0ZWRD
dXJ2ZShOYW1lZEN1cnZlIGN1cnZlKQoreworICAgIHJldHVybiBjdXJ2ZSA9PSBOYW1lZEN1cnZl
OjpQMjU2IHx8IGN1cnZlID09IE5hbWVkQ3VydmU6OlAzODQgfHwgY3VydmUgPT0gTmFtZWRDdXJ2
ZTo6UDUyMTsKK30KKworc3RkOjpvcHRpb25hbDxDcnlwdG9LZXlQYWlyPiBDcnlwdG9LZXlFQzo6
cGxhdGZvcm1HZW5lcmF0ZVBhaXIoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVy
LCBOYW1lZEN1cnZlIGN1cnZlLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1h
cCB1c2FnZXMpCit7CisgICAgLy8gVG8gZ2VuZXJhdGUgYSBrZXkgcGFpciwgd2UgZ2VuZXJhdGUg
YSBwcml2YXRlIGtleSBhbmQgZXh0cmFjdCB0aGUgcHVibGljIGtleSBmcm9tIHRoZSBwcml2YXRl
IGtleS4KKyAgICBhdXRvIHByaXZhdGVFQ0tleSA9IGNyZWF0ZUVDS2V5KGN1cnZlKTsKKyAgICBp
ZiAoIXByaXZhdGVFQ0tleSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGlm
IChFQ19LRVlfZ2VuZXJhdGVfa2V5KHByaXZhdGVFQ0tleS5nZXQoKSkgPD0gMCkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gcG9pbnQgPSBFQ1BvaW50UHRyKEVDX1BP
SU5UX2R1cChFQ19LRVlfZ2V0MF9wdWJsaWNfa2V5KHByaXZhdGVFQ0tleS5nZXQoKSksIEVDX0tF
WV9nZXQwX2dyb3VwKHByaXZhdGVFQ0tleS5nZXQoKSkpKTsKKyAgICBpZiAoIXBvaW50KQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byBwdWJsaWNFQ0tleSA9IGNyZWF0
ZUVDS2V5KGN1cnZlKTsKKyAgICBpZiAoIXB1YmxpY0VDS2V5KQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgaWYgKEVDX0tFWV9zZXRfcHVibGljX2tleShwdWJsaWNFQ0tleS5n
ZXQoKSwgcG9pbnQuZ2V0KCkpIDw9IDApCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICBhdXRvIHByaXZhdGVQS2V5ID0gRXZwUEtleVB0cihFVlBfUEtFWV9uZXcoKSk7CisgICAg
aWYgKEVWUF9QS0VZX3NldDFfRUNfS0VZKHByaXZhdGVQS2V5LmdldCgpLCBwcml2YXRlRUNLZXku
Z2V0KCkpIDw9IDApCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvIHB1
YmxpY1BLZXkgPSBFdnBQS2V5UHRyKEVWUF9QS0VZX25ldygpKTsKKyAgICBpZiAoRVZQX1BLRVlf
c2V0MV9FQ19LRVkocHVibGljUEtleS5nZXQoKSwgcHVibGljRUNLZXkuZ2V0KCkpIDw9IDApCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvIHB1YmxpY0tleSA9IENyeXB0
b0tleUVDOjpjcmVhdGUoaWRlbnRpZmllciwgY3VydmUsIENyeXB0b0tleVR5cGU6OlB1YmxpYywg
V1RGTW92ZShwdWJsaWNQS2V5KSwgdHJ1ZSwgdXNhZ2VzKTsKKyAgICBhdXRvIHByaXZhdGVLZXkg
PSBDcnlwdG9LZXlFQzo6Y3JlYXRlKGlkZW50aWZpZXIsIGN1cnZlLCBDcnlwdG9LZXlUeXBlOjpQ
cml2YXRlLCBXVEZNb3ZlKHByaXZhdGVQS2V5KSwgZXh0cmFjdGFibGUsIHVzYWdlcyk7CisgICAg
cmV0dXJuIENyeXB0b0tleVBhaXIgeyBXVEZNb3ZlKHB1YmxpY0tleSksIFdURk1vdmUocHJpdmF0
ZUtleSkgfTsKIH0KIAotc3RkOjpvcHRpb25hbDxDcnlwdG9LZXlQYWlyPiBDcnlwdG9LZXlFQzo6
cGxhdGZvcm1HZW5lcmF0ZVBhaXIoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgTmFtZWRDdXJ2
ZSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXApCitSZWZQdHI8Q3J5cHRv
S2V5RUM+IENyeXB0b0tleUVDOjpwbGF0Zm9ybUltcG9ydFJhdyhDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIGlkZW50aWZpZXIsIE5hbWVkQ3VydmUgY3VydmUsIFZlY3Rvcjx1aW50OF90PiYmIGtl
eURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwIHVzYWdlcykKIHsK
LSAgICBVTlVTRURfUEFSQU0oZXh0cmFjdGFibGUpOwotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIHsgfTsKKyAgICBhdXRvIGtleSA9IGNyZWF0ZUVDS2V5KGN1cnZlKTsKKyAgICBp
ZiAoIWtleSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIGdyb3VwID0gRUNf
S0VZX2dldDBfZ3JvdXAoa2V5LmdldCgpKTsKKyAgICBhdXRvIHBvaW50ID0gRUNQb2ludFB0cihF
Q19QT0lOVF9uZXcoZ3JvdXApKTsKKyAgICAvLyBMb2FkIGFuIEVDIHBvaW50IGZyb20gdGhlIGtl
eURhdGEuIFRoaXMgcG9pbnQgaXMgdXNlZCBhcyBhIHB1YmxpYyBrZXkuCisgICAgaWYgKEVDX1BP
SU5UX29jdDJwb2ludChncm91cCwgcG9pbnQuZ2V0KCksIGtleURhdGEuZGF0YSgpLCBrZXlEYXRh
LnNpemUoKSwgbnVsbHB0cikgPD0gMCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBp
ZiAoRUNfS0VZX3NldF9wdWJsaWNfa2V5KGtleS5nZXQoKSwgcG9pbnQuZ2V0KCkpIDw9IDApCisg
ICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEVDX0tFWV9jaGVja19rZXkoa2V5Lmdl
dCgpKSA8PSAwKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8gcGtleSA9IEV2
cFBLZXlQdHIoRVZQX1BLRVlfbmV3KCkpOworICAgIGlmIChFVlBfUEtFWV9zZXQxX0VDX0tFWShw
a2V5LmdldCgpLCBrZXkuZ2V0KCkpIDw9IDApCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgcmV0dXJuIGNyZWF0ZShpZGVudGlmaWVyLCBjdXJ2ZSwgQ3J5cHRvS2V5VHlwZTo6UHVibGlj
LCBXVEZNb3ZlKHBrZXkpLCBleHRyYWN0YWJsZSwgdXNhZ2VzKTsKIH0KIAotUmVmUHRyPENyeXB0
b0tleUVDPiBDcnlwdG9LZXlFQzo6cGxhdGZvcm1JbXBvcnRSYXcoQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllciwgTmFtZWRDdXJ2ZSwgVmVjdG9yPHVpbnQ4X3Q+JiYga2V5RGF0YSwgYm9vbCBleHRy
YWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXApCitSZWZQdHI8Q3J5cHRvS2V5RUM+IENyeXB0
b0tleUVDOjpwbGF0Zm9ybUltcG9ydEpXS1B1YmxpYyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IGlkZW50aWZpZXIsIE5hbWVkQ3VydmUgY3VydmUsIFZlY3Rvcjx1aW50OF90PiYmIHgsIFZlY3Rv
cjx1aW50OF90PiYmIHksIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwIHVz
YWdlcykKIHsKLSAgICBVTlVTRURfUEFSQU0oa2V5RGF0YSk7Ci0gICAgVU5VU0VEX1BBUkFNKGV4
dHJhY3RhYmxlKTsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBudWxscHRyOwor
ICAgIGF1dG8ga2V5ID0gY3JlYXRlRUNLZXkoY3VydmUpOworICAgIGlmICgha2V5KQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8gZ3JvdXAgPSBFQ19LRVlfZ2V0MF9ncm91cChr
ZXkuZ2V0KCkpOworICAgIGF1dG8gcG9pbnQgPSBFQ1BvaW50UHRyKEVDX1BPSU5UX25ldyhncm91
cCkpOworCisgICAgLy8gQ3VycmVudGx5IHdlIG9ubHkgc3VwcG9ydCBlbGxpcHRpYyBjdXJ2ZXMg
b3ZlciBHRihwKS4gICAKKyAgICBpZiAoRUNfUE9JTlRfc2V0X2FmZmluZV9jb29yZGluYXRlc19H
RnAoZ3JvdXAsIHBvaW50LmdldCgpLCBCSUdOVU1QdHIoY29udmVydFRvQmlnTnVtYmVyKG51bGxw
dHIsIHgpKS5nZXQoKSwgQklHTlVNUHRyKGNvbnZlcnRUb0JpZ051bWJlcihudWxscHRyLCB5KSku
Z2V0KCksIG51bGxwdHIpIDw9IDApCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYg
KEVDX0tFWV9zZXRfcHVibGljX2tleShrZXkuZ2V0KCksIHBvaW50LmdldCgpKSA8PSAwKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChFQ19LRVlfY2hlY2tfa2V5KGtleS5nZXQo
KSkgPD0gMCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIHBrZXkgPSBFdnBQ
S2V5UHRyKEVWUF9QS0VZX25ldygpKTsKKyAgICBpZiAoRVZQX1BLRVlfc2V0MV9FQ19LRVkocGtl
eS5nZXQoKSwga2V5LmdldCgpKSA8PSAwKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IHJldHVybiBjcmVhdGUoaWRlbnRpZmllciwgY3VydmUsIENyeXB0b0tleVR5cGU6OlB1YmxpYywg
V1RGTW92ZShwa2V5KSwgZXh0cmFjdGFibGUsIHVzYWdlcyk7CiB9CiAKLVJlZlB0cjxDcnlwdG9L
ZXlFQz4gQ3J5cHRvS2V5RUM6OnBsYXRmb3JtSW1wb3J0SldLUHVibGljKENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIsIE5hbWVkQ3VydmUsIFZlY3Rvcjx1aW50OF90PiYmIHgsIFZlY3Rvcjx1aW50
OF90PiYmIHksIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwKQorUmVmUHRy
PENyeXB0b0tleUVDPiBDcnlwdG9LZXlFQzo6cGxhdGZvcm1JbXBvcnRKV0tQcml2YXRlKENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllciwgTmFtZWRDdXJ2ZSBjdXJ2ZSwgVmVjdG9y
PHVpbnQ4X3Q+JiYgeCwgVmVjdG9yPHVpbnQ4X3Q+JiYgeSwgVmVjdG9yPHVpbnQ4X3Q+JiYgZCwg
Ym9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAgdXNhZ2VzKQogewotICAgIFVO
VVNFRF9QQVJBTSh4KTsKLSAgICBVTlVTRURfUEFSQU0oeSk7Ci0gICAgVU5VU0VEX1BBUkFNKGV4
dHJhY3RhYmxlKTsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBudWxscHRyOwor
ICAgIGF1dG8ga2V5ID0gY3JlYXRlRUNLZXkoY3VydmUpOworICAgIGlmICgha2V5KQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8gZ3JvdXAgPSBFQ19LRVlfZ2V0MF9ncm91cChr
ZXkuZ2V0KCkpOworICAgIGF1dG8gcG9pbnQgPSBFQ1BvaW50UHRyKEVDX1BPSU5UX25ldyhncm91
cCkpOworCisgICAgLy8gQ3VycmVudGx5IHdlIG9ubHkgc3VwcG9ydCBlbGxpcHRpYyBjdXJ2ZXMg
b3ZlciBHRihwKS4gICAKKyAgICBpZiAoRUNfUE9JTlRfc2V0X2FmZmluZV9jb29yZGluYXRlc19H
RnAoZ3JvdXAsIHBvaW50LmdldCgpLCBCSUdOVU1QdHIoY29udmVydFRvQmlnTnVtYmVyKG51bGxw
dHIsIHgpKS5nZXQoKSwgQklHTlVNUHRyKGNvbnZlcnRUb0JpZ051bWJlcihudWxscHRyLCB5KSku
Z2V0KCksIG51bGxwdHIpIDw9IDApCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYg
KEVDX0tFWV9zZXRfcHVibGljX2tleShrZXkuZ2V0KCksIHBvaW50LmdldCgpKSA8PSAwKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChFQ19LRVlfc2V0X3ByaXZhdGVfa2V5KGtl
eS5nZXQoKSwgQklHTlVNUHRyKGNvbnZlcnRUb0JpZ051bWJlcihudWxscHRyLCBkKSkuZ2V0KCkp
IDw9IDApCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEVDX0tFWV9jaGVja19r
ZXkoa2V5LmdldCgpKSA8PSAwKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8g
cGtleSA9IEV2cFBLZXlQdHIoRVZQX1BLRVlfbmV3KCkpOworICAgIGlmIChFVlBfUEtFWV9zZXQx
X0VDX0tFWShwa2V5LmdldCgpLCBrZXkuZ2V0KCkpIDw9IDApCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgcmV0dXJuIGNyZWF0ZShpZGVudGlmaWVyLCBjdXJ2ZSwgQ3J5cHRvS2V5VHlw
ZTo6UHJpdmF0ZSwgV1RGTW92ZShwa2V5KSwgZXh0cmFjdGFibGUsIHVzYWdlcyk7CiB9CiAKLVJl
ZlB0cjxDcnlwdG9LZXlFQz4gQ3J5cHRvS2V5RUM6OnBsYXRmb3JtSW1wb3J0SldLUHJpdmF0ZShD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBOYW1lZEN1cnZlLCBWZWN0b3I8dWludDhfdD4mJiB4
LCBWZWN0b3I8dWludDhfdD4mJiB5LCBWZWN0b3I8dWludDhfdD4mJiBkLCBib29sIGV4dHJhY3Rh
YmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCkKK3N0YXRpYyBjb25zdCBBU04xX09CSkVDVCogZWNQ
dWJsaWNLZXlJZGVudGlmaWVyKCkKIHsKLSAgICBVTlVTRURfUEFSQU0oeCk7Ci0gICAgVU5VU0VE
X1BBUkFNKHkpOwotICAgIFVOVVNFRF9QQVJBTShkKTsKLSAgICBVTlVTRURfUEFSQU0oZXh0cmFj
dGFibGUpOwotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAg
c3RhdGljIEFTTjFfT0JKRUNUKiBvaWQgPSBPQkpfdHh0Mm9iaigiMS4yLjg0MC4xMDA0NS4yLjEi
LCAxKTsKKyAgICByZXR1cm4gb2lkOwogfQogCi1SZWZQdHI8Q3J5cHRvS2V5RUM+IENyeXB0b0tl
eUVDOjpwbGF0Zm9ybUltcG9ydFNwa2koQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgTmFtZWRD
dXJ2ZSwgVmVjdG9yPHVpbnQ4X3Q+JiYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRv
S2V5VXNhZ2VCaXRtYXApCitzdGF0aWMgY29uc3QgQVNOMV9PQkpFQ1QqIGVjREhJZGVudGlmaWVy
KCkKIHsKLSAgICBVTlVTRURfUEFSQU0oa2V5RGF0YSk7Ci0gICAgVU5VU0VEX1BBUkFNKGV4dHJh
Y3RhYmxlKTsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBudWxscHRyOworICAg
IHN0YXRpYyBBU04xX09CSkVDVCogb2lkID0gT0JKX3R4dDJvYmooIjEuMy4xMzIuMS4xMiIsIDEp
OworICAgIHJldHVybiBvaWQ7CiB9CiAKLVJlZlB0cjxDcnlwdG9LZXlFQz4gQ3J5cHRvS2V5RUM6
OnBsYXRmb3JtSW1wb3J0UGtjczgoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgTmFtZWRDdXJ2
ZSwgVmVjdG9yPHVpbnQ4X3Q+JiYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5
VXNhZ2VCaXRtYXApCitzdGF0aWMgYm9vbCBzdXBwb3J0ZWRBbGdvcml0aG1JZGVudGlmaWVyKENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQVNOMV9PQkpFQ1QqIG9p
ZCkKIHsKLSAgICBVTlVTRURfUEFSQU0oa2V5RGF0YSk7Ci0gICAgVU5VU0VEX1BBUkFNKGV4dHJh
Y3RhYmxlKTsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBudWxscHRyOworICAg
IHN3aXRjaCAoaWRlbnRpZmllcikgeworICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6RUNEU0E6CisgICAgICAgIC8vIEVDRFNBIG9ubHkgc3VwcG9ydHMgaWQtZWNQdWJsaWNLZXkg
YWxnb3JpdGhtcyBmb3IgaW1wb3J0ZWQga2V5cy4KKyAgICAgICAgaWYgKCFPQkpfY21wKG9pZCwg
ZWNQdWJsaWNLZXlJZGVudGlmaWVyKCkpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVD
REg6CisgICAgICAgIC8vIEVDREggc3VwcG9ydHMgYm90aCBpZC1lY1B1YmxpY0tleSBhbmQgaWQt
ZWNESCBhbGdvcml0aG1zIGZvciBpbXBvcnRlZCBrZXlzLgorICAgICAgICBpZiAoIU9CSl9jbXAo
b2lkLCBlY1B1YmxpY0tleUlkZW50aWZpZXIoKSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgaWYgKCFPQkpfY21wKG9pZCwgZWNESElkZW50aWZpZXIoKSkpCisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
fQorCitSZWZQdHI8Q3J5cHRvS2V5RUM+IENyeXB0b0tleUVDOjpwbGF0Zm9ybUltcG9ydFNwa2ko
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyLCBOYW1lZEN1cnZlIGN1cnZlLCBW
ZWN0b3I8dWludDhfdD4mJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2Fn
ZUJpdG1hcCB1c2FnZXMpCit7CisgICAgLy8gSW4gdGhpcyBmdW5jdGlvbiB3ZSBleHRyYWN0IHRo
ZSBzdWJqZWN0UHVibGljS2V5IGFmdGVyIHZlcmlmeWluZyB0aGF0IHRoZSBhbGdvcml0aG0gaW4g
dGhlIFNQS0kgZGF0YQorICAgIC8vIG1hdGNoIHRoZSBnaXZlbiBpZGVudGlmaWVyIGFuZCBjdXJ2
ZS4gVGhlbiBjb25zdHJ1Y3QgYW4gRUMga2V5IHdpdGggdGhlIG5hbWVkIGN1cnZlIGFuZCBzZXQg
dGhlIHB1YmxpYyBrZXkuCisKKyAgICAvLyBTdWJqZWN0UHVibGljS2V5SW5mbyAgOjo9ICBTRVFV
RU5DRSAgeworICAgIC8vICAgYWxnb3JpdGhtICAgICAgICAgQWxnb3JpdGhtSWRlbnRpZmllciwK
KyAgICAvLyAgIHN1YmplY3RQdWJsaWNLZXkgIEJJVCBTVFJJTkcKKyAgICAvLyB9CisKKyAgICBj
b25zdCB1aW50OF90KiBwdHIgPSBrZXlEYXRhLmRhdGEoKTsKKyAgICBhdXRvIHN1YmplY3RQdWJs
aWNLZXlJbmZvID0gQVNOMVNlcXVlbmNlUHRyKGQyaV9BU04xX1NFUVVFTkNFX0FOWShudWxscHRy
LCAmcHRyLCBrZXlEYXRhLnNpemUoKSkpOworICAgIGlmICghc3ViamVjdFB1YmxpY0tleUluZm8p
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChwdHIgLSBrZXlEYXRhLmRhdGEoKSAh
PSAocHRyZGlmZl90KWtleURhdGEuc2l6ZSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIGlmIChza19BU04xX1RZUEVfbnVtKHN1YmplY3RQdWJsaWNLZXlJbmZvLmdldCgpKSAhPSAy
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIEFTTjFfVFlQRSogdmFsdWUgPSBza19B
U04xX1RZUEVfdmFsdWUoc3ViamVjdFB1YmxpY0tleUluZm8uZ2V0KCksIDApOworICAgIGlmICh2
YWx1ZS0+dHlwZSAhPSBWX0FTTjFfU0VRVUVOQ0UpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgLy8gQWxnb3JpdGhtSWRlbnRpZmllciAgOjo9ICBTRVFVRU5DRSAgeworICAgIC8vICAg
ICBhbGdvcml0aG0gICBPQkpFQ1QgSURFTlRJRklFUiwKKyAgICAvLyAgICAgcGFyYW1ldGVycyAg
QU5ZIERFRklORUQgQlkgYWxnb3JpdGhtIE9QVElPTkFMCisgICAgLy8gfQorCisgICAgcHRyID0g
dmFsdWUtPnZhbHVlLnNlcXVlbmNlLT5kYXRhOworICAgIGF1dG8gYWxnb3JpdGhtID0gQVNOMVNl
cXVlbmNlUHRyKGQyaV9BU04xX1NFUVVFTkNFX0FOWShudWxscHRyLCAmcHRyLCB2YWx1ZS0+dmFs
dWUuc2VxdWVuY2UtPmxlbmd0aCkpOworICAgIGlmICghYWxnb3JpdGhtKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKworICAgIGlmIChza19BU04xX1RZUEVfbnVtKGFsZ29yaXRobS5nZXQoKSkg
IT0gMikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICB2YWx1ZSA9IHNrX0FTTjFfVFlQ
RV92YWx1ZShhbGdvcml0aG0uZ2V0KCksIDApOworICAgIGlmICh2YWx1ZS0+dHlwZSAhPSBWX0FT
TjFfT0JKRUNUKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAKKyAgICBpZiAoIXN1cHBv
cnRlZEFsZ29yaXRobUlkZW50aWZpZXIoaWRlbnRpZmllciwgdmFsdWUtPnZhbHVlLm9iamVjdCkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgLy8gRUNQYXJhbWV0ZXJzIDo6PSBDSE9J
Q0UgeworICAgIC8vICBuYW1lZEN1cnZlICAgICAgICAgT0JKRUNUIElERU5USUZJRVIKKyAgICAv
LyAgLS0gaW1wbGljaXRDdXJ2ZSAgIG51bGwKKyAgICAvLyAgLS0gc3BlY2lmaWVkQ3VydmUgIFNw
ZWNpZmllZEVDRG9tYWluCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gT25seSAibmFtZWRDdXJ2
ZSIgaXMgc3VwcG9ydGVkLiAKKyAgICB2YWx1ZSA9IHNrX0FTTjFfVFlQRV92YWx1ZShhbGdvcml0
aG0uZ2V0KCksIDEpOworICAgIGlmICh2YWx1ZS0+dHlwZSAhPSBWX0FTTjFfT0JKRUNUKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGludCBjdXJ2ZU5JRCA9IE9CSl9vYmoybmlkKHZh
bHVlLT52YWx1ZS5vYmplY3QpOworICAgIGlmIChjdXJ2ZU5JRCAhPSBjdXJ2ZUlkZW50aWZpZXIo
Y3VydmUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAKKyAgICAvLyBzdWJqZWN0UHVi
bGljS2V5IG11c3QgYmUgYSBCSVQgU1RSSU5HLgorICAgIHZhbHVlID0gc2tfQVNOMV9UWVBFX3Zh
bHVlKHN1YmplY3RQdWJsaWNLZXlJbmZvLmdldCgpLCAxKTsKKyAgICBpZiAodmFsdWUtPnR5cGUg
IT0gVl9BU04xX0JJVF9TVFJJTkcpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgQVNO
MV9CSVRfU1RSSU5HKiBiaXRTdHJpbmcgPSB2YWx1ZS0+dmFsdWUuYml0X3N0cmluZzsKKworICAg
IC8vIFRoZSBTUEtJIGRhdGEgaGFzIGJlZW4gdmVyaWZpZWQgYXQgdGhpcyBwb2ludC4gV2UgcHJl
cGFyZSBwbGF0Zm9ybSBkYXRhIG5leHQuCisgICAgYXV0byBrZXkgPSBjcmVhdGVFQ0tleShjdXJ2
ZSk7CisgICAgaWYgKCFrZXkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBn
cm91cCA9IEVDX0tFWV9nZXQwX2dyb3VwKGtleS5nZXQoKSk7CisgICAgaWYgKCFncm91cCkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIHBvaW50ID0gRUNQb2ludFB0cihFQ19Q
T0lOVF9uZXcoZ3JvdXApKTsKKyAgICBpZiAoIXBvaW50KQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIGlmIChFQ19QT0lOVF9vY3QycG9pbnQoZ3JvdXAsIHBvaW50LmdldCgpLCBiaXRT
dHJpbmctPmRhdGEsIGJpdFN0cmluZy0+bGVuZ3RoLCAwKSA8PSAwKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGlmIChFQ19LRVlfc2V0X3B1YmxpY19rZXkoa2V5LmdldCgpLCBwb2lu
dC5nZXQoKSkgPD0gMCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoRUNfS0VZ
X2NoZWNrX2tleShrZXkuZ2V0KCkpIDw9IDApCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgRUNfS0VZX3NldF9hc24xX2ZsYWcoa2V5LmdldCgpLCBPUEVOU1NMX0VDX05BTUVEX0NVUlZF
KTsKKworICAgIGF1dG8gcGtleSA9IEV2cFBLZXlQdHIoRVZQX1BLRVlfbmV3KCkpOworICAgIGlm
IChFVlBfUEtFWV9zZXQxX0VDX0tFWShwa2V5LmdldCgpLCBrZXkuZ2V0KCkpIDw9IDApCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDcnlwdG9LZXlF
QyhpZGVudGlmaWVyLCBjdXJ2ZSwgQ3J5cHRvS2V5VHlwZTo6UHVibGljLCBXVEZNb3ZlKHBrZXkp
LCBleHRyYWN0YWJsZSwgdXNhZ2VzKSk7Cit9CisKK1JlZlB0cjxDcnlwdG9LZXlFQz4gQ3J5cHRv
S2V5RUM6OnBsYXRmb3JtSW1wb3J0UGtjczgoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBOYW1lZEN1cnZlIGN1cnZlLCBWZWN0b3I8dWludDhfdD4mJiBrZXlEYXRhLCBib29s
IGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCB1c2FnZXMpCit7CisgICAgLy8gV2Ug
bmVlZCBhIGxvY2FsIHBvaW50ZXIgdmFyaWFibGUgdG8gcGFzcyB0byBkMmkgKERFUiB0byBpbnRl
cm5hbCkgZnVuY3Rpb25zKCkuCisgICAgY29uc3QgdWludDhfdCogcHRyID0ga2V5RGF0YS5kYXRh
KCk7CisKKyAgICAvLyBXZSB1c2UgZDJpX1BLQ1M4X1BSSVZfS0VZX0lORk8oKSB0byBpbXBvcnQg
YSBwcml2YXRlIGtleS4KKyAgICBhdXRvIHA4aW5mID0gUEtDUzhQcml2S2V5SW5mb1B0cihkMmlf
UEtDUzhfUFJJVl9LRVlfSU5GTyhudWxscHRyLCAmcHRyLCBrZXlEYXRhLnNpemUoKSkpOworICAg
IGlmICghcDhpbmYpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChwdHIgLSBrZXlE
YXRhLmRhdGEoKSAhPSAocHRyZGlmZl90KWtleURhdGEuc2l6ZSgpKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGF1dG8gcGtleSA9IEV2cFBLZXlQdHIoRVZQX1BLQ1M4MlBLRVkocDhp
bmYuZ2V0KCkpKTsKKyAgICBpZiAoIXBrZXkgfHwgRVZQX1BLRVlfdHlwZShwa2V5LT50eXBlKSAh
PSBFVlBfUEtFWV9FQykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIGVjS2V5
ID0gRVZQX1BLRVlfZ2V0MF9FQ19LRVkocGtleS5nZXQoKSk7CisgICAgaWYgKCFlY0tleSkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoRUNfS0VZX2NoZWNrX2tleShlY0tleSkg
PD0gMCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoIXZlcmlmeUN1cnZlKEVD
X0tFWV9nZXQwX2dyb3VwKGVjS2V5KSwgY3VydmUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIEVDX0tFWV9zZXRfYXNuMV9mbGFnKGVjS2V5LCBPUEVOU1NMX0VDX05BTUVEX0NVUlZF
KTsKKworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3J5cHRvS2V5RUMoaWRlbnRpZmllciwgY3Vy
dmUsIENyeXB0b0tleVR5cGU6OlByaXZhdGUsIFdURk1vdmUocGtleSksIGV4dHJhY3RhYmxlLCB1
c2FnZXMpKTsKIH0KIAogVmVjdG9yPHVpbnQ4X3Q+IENyeXB0b0tleUVDOjpwbGF0Zm9ybUV4cG9y
dFJhdygpIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4geyB9Owor
ICAgIEVDX0tFWSoga2V5ID0gRVZQX1BLRVlfZ2V0MF9FQ19LRVkocGxhdGZvcm1LZXkoKSk7Cisg
ICAgaWYgKCFrZXkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgCisgICAgY29uc3QgRUNfUE9J
TlQqIHBvaW50ID0gRUNfS0VZX2dldDBfcHVibGljX2tleShrZXkpOworICAgIGNvbnN0IEVDX0dS
T1VQKiBncm91cCA9IEVDX0tFWV9nZXQwX2dyb3VwKGtleSk7CisgICAgc2l6ZV90IGtleURhdGFT
aXplID0gRUNfUE9JTlRfcG9pbnQyb2N0KGdyb3VwLCBwb2ludCwgUE9JTlRfQ09OVkVSU0lPTl9V
TkNPTVBSRVNTRUQsIG51bGxwdHIsIDAsIG51bGxwdHIpOworICAgIGlmICgha2V5RGF0YVNpemUp
CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBWZWN0b3I8dWludDhfdD4ga2V5RGF0YShrZXlE
YXRhU2l6ZSk7CisgICAgaWYgKEVDX1BPSU5UX3BvaW50Mm9jdChncm91cCwgcG9pbnQsIFBPSU5U
X0NPTlZFUlNJT05fVU5DT01QUkVTU0VELCBrZXlEYXRhLmRhdGEoKSwga2V5RGF0YS5zaXplKCks
IG51bGxwdHIpICE9IGtleURhdGFTaXplKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0
dXJuIGtleURhdGE7CiB9CiAKLWJvb2wgQ3J5cHRvS2V5RUM6OnBsYXRmb3JtQWRkRmllbGRFbGVt
ZW50cyhKc29uV2ViS2V5JikgY29uc3QKK2Jvb2wgQ3J5cHRvS2V5RUM6OnBsYXRmb3JtQWRkRmll
bGRFbGVtZW50cyhKc29uV2ViS2V5JiBqd2spIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgc2l6ZV90IGtleVNpemVJbkJ5dGVzID0gKGtleVNp
emVJbkJpdHMoKSArIDcpIC8gODsKKworICAgIEVDX0tFWSoga2V5ID0gRVZQX1BLRVlfZ2V0MF9F
Q19LRVkocGxhdGZvcm1LZXkoKSk7CisgICAgaWYgKCFrZXkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGNvbnN0IEVDX1BPSU5UKiBwdWJsaWNLZXkgPSBFQ19LRVlfZ2V0MF9wdWJsaWNf
a2V5KGtleSk7CisgICAgaWYgKHB1YmxpY0tleSkgeworICAgICAgICBhdXRvIGN0eCA9IEJOQ3R4
UHRyKEJOX0NUWF9uZXcoKSk7CisgICAgICAgIGF1dG8geCA9IEJJR05VTVB0cihCTl9uZXcoKSk7
CisgICAgICAgIGF1dG8geSA9IEJJR05VTVB0cihCTl9uZXcoKSk7CisgICAgICAgIGlmICgxID09
IEVDX1BPSU5UX2dldF9hZmZpbmVfY29vcmRpbmF0ZXNfR0ZwKEVDX0tFWV9nZXQwX2dyb3VwKGtl
eSksIHB1YmxpY0tleSwgeC5nZXQoKSwgeS5nZXQoKSwgY3R4LmdldCgpKSkgeworICAgICAgICAg
ICAgandrLnggPSBiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhjb252ZXJ0VG9CeXRlc0V4cGFuZCh4
LmdldCgpLCBrZXlTaXplSW5CeXRlcykpOworICAgICAgICAgICAgandrLnkgPSBiYXNlNjRVUkxF
bmNvZGVUb1N0cmluZyhjb252ZXJ0VG9CeXRlc0V4cGFuZCh5LmdldCgpLCBrZXlTaXplSW5CeXRl
cykpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHR5cGUoKSA9PSBUeXBlOjpQcml2YXRl
KSB7CisgICAgICAgIGNvbnN0IEJJR05VTSogcHJpdmF0ZUtleSA9IEVDX0tFWV9nZXQwX3ByaXZh
dGVfa2V5KGtleSk7CisgICAgICAgIGlmIChwcml2YXRlS2V5KQorICAgICAgICAgICAgandrLmQg
PSBiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhjb252ZXJ0VG9CeXRlcyhwcml2YXRlS2V5KSk7Cisg
ICAgfQorICAgIHJldHVybiB0cnVlOwogfQogCiBWZWN0b3I8dWludDhfdD4gQ3J5cHRvS2V5RUM6
OnBsYXRmb3JtRXhwb3J0U3BraSgpIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4geyB9OworICAgIGlmICh0eXBlKCkgIT0gQ3J5cHRvS2V5VHlwZTo6UHVibGljKQor
ICAgICAgICByZXR1cm4geyB9OworCisgICAgaW50IGxlbiA9IGkyZF9QVUJLRVkocGxhdGZvcm1L
ZXkoKSwgbnVsbHB0cik7CisgICAgaWYgKGxlbiA8IDApCisgICAgICAgIHJldHVybiB7IH07CisK
KyAgICBWZWN0b3I8dWludDhfdD4ga2V5RGF0YShsZW4pOworICAgIGF1dG8gcHRyID0ga2V5RGF0
YS5kYXRhKCk7CisgICAgaWYgKGkyZF9QVUJLRVkocGxhdGZvcm1LZXkoKSwgJnB0cikgPCAwKQor
ICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJuIGtleURhdGE7CiB9CiAKIFZlY3Rvcjx1
aW50OF90PiBDcnlwdG9LZXlFQzo6cGxhdGZvcm1FeHBvcnRQa2NzOCgpIGNvbnN0CiB7Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4geyB9OworICAgIGlmICh0eXBlKCkgIT0gQ3J5
cHRvS2V5VHlwZTo6UHJpdmF0ZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8gcDhp
bmYgPSBQS0NTOFByaXZLZXlJbmZvUHRyKEVWUF9QS0VZMlBLQ1M4KHBsYXRmb3JtS2V5KCkpKTsK
KyAgICBpZiAoIXA4aW5mKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaW50IGxlbiA9IGky
ZF9QS0NTOF9QUklWX0tFWV9JTkZPKHA4aW5mLmdldCgpLCBudWxscHRyKTsKKyAgICBpZiAobGVu
IDwgMCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIFZlY3Rvcjx1aW50OF90PiBrZXlEYXRh
KGxlbik7CisgICAgYXV0byBwdHIgPSBrZXlEYXRhLmRhdGEoKTsKKyAgICBpZiAoaTJkX1BLQ1M4
X1BSSVZfS0VZX0lORk8ocDhpbmYuZ2V0KCksICZwdHIpIDwgMCkKKyAgICAgICAgcmV0dXJuIHsg
fTsKKworICAgIHJldHVybiBrZXlEYXRhOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9LZXlSU0FPcGVu
U1NMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0tleVJTQU9wZW5T
U0wuY3BwCmluZGV4IGQzMjk5ZmY1MzJiMmUyNDk4NjU4ZmQ3NWMzMWNhZWQ4ZTFjMzM5Y2IuLjFk
OTY1YzY4OWNhODNlODI5MzJkOGE5MmFhOGEzNTg5MDYwOWU1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0tleVJTQU9wZW5TU0wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0tleVJTQU9wZW5TU0wuY3BwCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCIKICNpbmNs
dWRlICJDcnlwdG9LZXlQYWlyLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5UlNBQ29tcG9uZW50cy5o
IgorI2luY2x1ZGUgIk9wZW5TU0xVdGlsaXRpZXMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9UeXBlZEFycmF5SW5saW5lcy5oPgogI2luY2x1ZGUgPG9wZW5zc2wvWDUwOS5oPgogI2luY2x1
ZGUgPG9wZW5zc2wvZXZwLmg+CkBAIC00NCwxOCArNDUsNiBAQCBzdGF0aWMgc2l6ZV90IGdldFJT
QU1vZHVsdXNMZW5ndGgoUlNBKiByc2EpCiAgICAgcmV0dXJuIEJOX251bV9ieXRlcyhyc2EtPm4p
ICogODsKIH0KIAotc3RhdGljIFZlY3Rvcjx1aW50OF90PiBjb252ZXJ0VG9CeXRlcyhCSUdOVU0q
IGJpZ251bSkKLXsKLSAgICBWZWN0b3I8dWludDhfdD4gYnl0ZXMoQk5fbnVtX2J5dGVzKGJpZ251
bSkpOwotICAgIEJOX2JuMmJpbihiaWdudW0sIGJ5dGVzLmRhdGEoKSk7Ci0gICAgcmV0dXJuIGJ5
dGVzOwotfQotCi1zdGF0aWMgQklHTlVNKiBjb252ZXJ0VG9CaWdOdW1iZXIoQklHTlVNKiBiaWdu
dW0sIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYnl0ZXMpCi17Ci0gICAgcmV0dXJuIEJOX2JpbjJi
bihieXRlcy5kYXRhKCksIGJ5dGVzLnNpemUoKSwgYmlnbnVtKTsKLX0KLQogUmVmUHRyPENyeXB0
b0tleVJTQT4gQ3J5cHRvS2V5UlNBOjpjcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2gsIGJvb2wgaGFzSGFzaCwg
Y29uc3QgQ3J5cHRvS2V5UlNBQ29tcG9uZW50cyYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwg
Q3J5cHRvS2V5VXNhZ2VCaXRtYXAgdXNhZ2VzKQogewogICAgIENyeXB0b0tleVR5cGUga2V5VHlw
ZTsKQEAgLTIxNiw3ICsyMDUsNyBAQCBSZWZQdHI8Q3J5cHRvS2V5UlNBPiBDcnlwdG9LZXlSU0E6
OmltcG9ydFNwa2koQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaQogCiAgICAgLy8g
V2UgdXNlIGQyaV9QVUJLRVkoKSB0byBpbXBvcnQgYSBwdWJsaWMga2V5LgogICAgIGF1dG8gcGtl
eSA9IEV2cFBLZXlQdHIoZDJpX1BVQktFWShudWxscHRyLCAmcHRyLCBrZXlEYXRhLnNpemUoKSkp
OwotICAgIGlmICghcGtleSkKKyAgICBpZiAoIXBrZXkgfHwgRVZQX1BLRVlfdHlwZShwa2V5LT50
eXBlKSAhPSBFVlBfUEtFWV9SU0EpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDcnlwdG9LZXlSU0EoaWRlbnRpZmllciwgaGFzaC52YWx1ZV9vcihD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMSksICEhaGFzaCwgQ3J5cHRvS2V5VHlwZTo6
UHVibGljLCBXVEZNb3ZlKHBrZXkpLCBleHRyYWN0YWJsZSwgdXNhZ2VzKSk7CkBAIC0yMzMsNyAr
MjIyLDcgQEAgUmVmUHRyPENyeXB0b0tleVJTQT4gQ3J5cHRvS2V5UlNBOjppbXBvcnRQa2NzOChD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWYKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBhdXRvIHBrZXkgPSBFdnBQS2V5UHRyKEVWUF9QS0NTODJQS0VZKHA4aW5mLmdldCgp
KSk7Ci0gICAgaWYgKCFwa2V5KQorICAgIGlmICghcGtleSB8fCBFVlBfUEtFWV90eXBlKHBrZXkt
PnR5cGUpICE9IEVWUF9QS0VZX1JTQSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IENyeXB0b0tleVJTQShpZGVudGlmaWVyLCBoYXNoLnZhbHVlX29y
KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8xKSwgISFoYXNoLCBDcnlwdG9LZXlUeXBl
OjpQcml2YXRlLCBXVEZNb3ZlKHBrZXkpLCBleHRyYWN0YWJsZSwgdXNhZ2VzKSk7CkBAIC0yNDQs
MTMgKzIzMywxMyBAQCBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IENyeXB0b0tleVJTQTo6
ZXhwb3J0U3BraSgpIGNvbnN0CiAgICAgaWYgKHR5cGUoKSAhPSBDcnlwdG9LZXlUeXBlOjpQdWJs
aWMpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKIAot
ICAgIGludCBsZW4gPSBpMmRfUFVCS0VZKG1fcGxhdGZvcm1LZXkuZ2V0KCksIG51bGxwdHIpOwor
ICAgIGludCBsZW4gPSBpMmRfUFVCS0VZKHBsYXRmb3JtS2V5KCksIG51bGxwdHIpOwogICAgIGlm
IChsZW4gPCAwKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsK
IAogICAgIFZlY3Rvcjx1aW50OF90PiBrZXlEYXRhKGxlbik7CiAgICAgYXV0byBwdHIgPSBrZXlE
YXRhLmRhdGEoKTsKLSAgICBpZiAoaTJkX1BVQktFWShtX3BsYXRmb3JtS2V5LmdldCgpLCAmcHRy
KSA8IDApCisgICAgaWYgKGkyZF9QVUJLRVkocGxhdGZvcm1LZXkoKSwgJnB0cikgPCAwKQogICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKIAogICAgIHJldHVybiBr
ZXlEYXRhOwpAQCAtMjYxLDcgKzI1MCw3IEBAIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4g
Q3J5cHRvS2V5UlNBOjpleHBvcnRQa2NzOCgpIGNvbnN0CiAgICAgaWYgKHR5cGUoKSAhPSBDcnlw
dG9LZXlUeXBlOjpQcml2YXRlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFj
Y2Vzc0Vycm9yIH07CiAKLSAgICBhdXRvIHA4aW5mID0gUEtDUzhQcml2S2V5SW5mb1B0cihFVlBf
UEtFWTJQS0NTOChtX3BsYXRmb3JtS2V5LmdldCgpKSk7CisgICAgYXV0byBwOGluZiA9IFBLQ1M4
UHJpdktleUluZm9QdHIoRVZQX1BLRVkyUEtDUzgocGxhdGZvcm1LZXkoKSkpOwogICAgIGlmICgh
cDhpbmYpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OwogCkBA
IC0yNzksOSArMjY4LDkgQEAgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9LZXlS
U0E6OmV4cG9ydFBrY3M4KCkgY29uc3QKIAogYXV0byBDcnlwdG9LZXlSU0E6OmFsZ29yaXRobSgp
IGNvbnN0IC0+IEtleUFsZ29yaXRobQogewotICAgIFJTQSogcnNhID0gRVZQX1BLRVlfZ2V0MF9S
U0EobV9wbGF0Zm9ybUtleS5nZXQoKSk7CisgICAgUlNBKiByc2EgPSBFVlBfUEtFWV9nZXQwX1JT
QShwbGF0Zm9ybUtleSgpKTsKIAotICAgIGF1dG8gbW9kdWx1c0xlbmd0aCA9IGdldFJTQU1vZHVs
dXNMZW5ndGgocnNhKTsKKyAgICBhdXRvIG1vZHVsdXNMZW5ndGggPSByc2EgPyBCTl9udW1fYnl0
ZXMocnNhLT5uKSAqIDggOiAwOwogICAgIGF1dG8gcHVibGljRXhwb25lbnQgPSByc2EgPyBjb252
ZXJ0VG9CeXRlcyhyc2EtPmUpIDogVmVjdG9yPHVpbnQ4X3Q+IHsgfTsKIAogICAgIGlmIChtX3Jl
c3RyaWN0ZWRUb1NwZWNpZmljSGFzaCkgewpAQCAtMzAyLDcgKzI5MSw3IEBAIGF1dG8gQ3J5cHRv
S2V5UlNBOjphbGdvcml0aG0oKSBjb25zdCAtPiBLZXlBbGdvcml0aG0KIAogc3RkOjp1bmlxdWVf
cHRyPENyeXB0b0tleVJTQUNvbXBvbmVudHM+IENyeXB0b0tleVJTQTo6ZXhwb3J0RGF0YSgpIGNv
bnN0CiB7Ci0gICAgUlNBKiByc2EgPSBFVlBfUEtFWV9nZXQwX1JTQShtX3BsYXRmb3JtS2V5Lmdl
dCgpKTsKKyAgICBSU0EqIHJzYSA9IEVWUF9QS0VZX2dldDBfUlNBKHBsYXRmb3JtS2V5KCkpOwog
ICAgIGlmICghcnNhKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvT3BlblNTTENyeXB0b1VuaXF1ZVB0ci5oIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvT3BlblNTTENyeXB0b1VuaXF1ZVB0ci5oCmluZGV4
IGIwZWU0MTE0OGY3ZmJkNTdkYjViMWViNjY4OWQ4MmQzOWNlNDNmZmQuLjE3OGE4MzBjZDg4YjJj
ODQ1NDBiNDEyMGFjMDRmMjMxMmY2M2U5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9vcGVuc3NsL09wZW5TU0xDcnlwdG9VbmlxdWVQdHIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vb3BlbnNzbC9PcGVuU1NMQ3J5cHRvVW5pcXVlUHRyLmgKQEAgLTg5LDYgKzg5LDI3
IEBAIHN0cnVjdCBPcGVuU1NMQ3J5cHRvUHRyRGVsZXRlcjxSU0E+IHsKIAogdXNpbmcgUlNBUHRy
ID0gT3BlblNTTENyeXB0b1B0cjxSU0E+OwogCit0ZW1wbGF0ZSA8Pgorc3RydWN0IE9wZW5TU0xD
cnlwdG9QdHJEZWxldGVyPEVDX0tFWT4geworICAgIHZvaWQgb3BlcmF0b3IoKShFQ19LRVkqIHB0
cikgY29uc3QKKyAgICB7CisgICAgICAgIEVDX0tFWV9mcmVlKHB0cik7CisgICAgfQorfTsKKwor
dXNpbmcgRUNLZXlQdHIgPSBPcGVuU1NMQ3J5cHRvUHRyPEVDX0tFWT47CisKK3RlbXBsYXRlIDw+
CitzdHJ1Y3QgT3BlblNTTENyeXB0b1B0ckRlbGV0ZXI8RUNfUE9JTlQ+IHsKKyAgICB2b2lkIG9w
ZXJhdG9yKCkoRUNfUE9JTlQqIHB0cikgY29uc3QKKyAgICB7CisgICAgICAgIEVDX1BPSU5UX2Ns
ZWFyX2ZyZWUocHRyKTsKKyAgICB9Cit9OworCit1c2luZyBFQ1BvaW50UHRyID0gT3BlblNTTENy
eXB0b1B0cjxFQ19QT0lOVD47CisKKwogdGVtcGxhdGUgPD4KIHN0cnVjdCBPcGVuU1NMQ3J5cHRv
UHRyRGVsZXRlcjxQS0NTOF9QUklWX0tFWV9JTkZPPiB7CiAgICAgdm9pZCBvcGVyYXRvcigpKFBL
Q1M4X1BSSVZfS0VZX0lORk8qIHB0cikgY29uc3QKQEAgLTExOSw1ICsxNDAsMjQgQEAgc3RydWN0
IE9wZW5TU0xDcnlwdG9QdHJEZWxldGVyPEJOX0NUWD4gewogCiB1c2luZyBCTkN0eFB0ciA9IE9w
ZW5TU0xDcnlwdG9QdHI8Qk5fQ1RYPjsKIAordGVtcGxhdGUgPD4KK3N0cnVjdCBPcGVuU1NMQ3J5
cHRvUHRyRGVsZXRlcjxFQ0RTQV9TSUc+IHsKKyAgICB2b2lkIG9wZXJhdG9yKCkoRUNEU0FfU0lH
KiBwdHIpIGNvbnN0CisgICAgeworICAgICAgICBFQ0RTQV9TSUdfZnJlZShwdHIpOworICAgIH0K
K307CisKK3VzaW5nIEVDRFNBU2lnUHRyID0gT3BlblNTTENyeXB0b1B0cjxFQ0RTQV9TSUc+Owor
Cit0ZW1wbGF0ZSA8Pgorc3RydWN0IE9wZW5TU0xDcnlwdG9QdHJEZWxldGVyPEFTTjFfU0VRVUVO
Q0VfQU5ZPiB7CisgICAgdm9pZCBvcGVyYXRvcigpKEFTTjFfU0VRVUVOQ0VfQU5ZKiBwdHIpIGNv
bnN0CisgICAgeworICAgICAgICBza19BU04xX1RZUEVfcG9wX2ZyZWUocHRyLCBBU04xX1RZUEVf
ZnJlZSk7CisgICAgfQorfTsKKwordXNpbmcgQVNOMVNlcXVlbmNlUHRyID0gT3BlblNTTENyeXB0
b1B0cjxBU04xX1NFUVVFTkNFX0FOWT47CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL09wZW5TU0xVdGlsaXRpZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvT3BlblNTTFV0aWxpdGllcy5jcHAKaW5k
ZXggNzRiNDZkNjcwMDEyY2YwZTFiZTNjZTQxOTVkODgzN2I1OWI0OTcxNC4uNTA0MGJhNjFiNjM5
YjZhMWZhMjgxMjc0ODg0MTE1OWU0NzExNmEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL29wZW5zc2wvT3BlblNTTFV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL29wZW5zc2wvT3BlblNTTFV0aWxpdGllcy5jcHAKQEAgLTczLDYgKzczLDM4IEBAIHN0
ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBjYWxjdWxhdGVEaWdlc3QoY29uc3QgRVZQX01E
KiBhbGdvcml0aG0sIGNvbnN0IFZlCiAgICAgcmV0dXJuIGRpZ2VzdDsKIH0KIAorVmVjdG9yPHVp
bnQ4X3Q+IGNvbnZlcnRUb0J5dGVzKGNvbnN0IEJJR05VTSogYmlnbnVtKQoreworICAgIFZlY3Rv
cjx1aW50OF90PiBieXRlcyhCTl9udW1fYnl0ZXMoYmlnbnVtKSk7CisgICAgQk5fYm4yYmluKGJp
Z251bSwgYnl0ZXMuZGF0YSgpKTsKKyAgICByZXR1cm4gYnl0ZXM7Cit9CisKK1ZlY3Rvcjx1aW50
OF90PiBjb252ZXJ0VG9CeXRlc0V4cGFuZChjb25zdCBCSUdOVU0qIGJpZ251bSwgc2l6ZV90IG1p
bmltdW1CdWZmZXJTaXplKQoreworICAgIGludCBsZW5ndGggPSBCTl9udW1fYnl0ZXMoYmlnbnVt
KTsKKyAgICBpZiAobGVuZ3RoIDwgMCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHNpemVf
dCBidWZmZXJTaXplID0gc3RkOjptYXg8c2l6ZV90PihsZW5ndGgsIG1pbmltdW1CdWZmZXJTaXpl
KTsKKworICAgIFZlY3Rvcjx1aW50OF90PiBieXRlcyhidWZmZXJTaXplKTsKKworICAgIHNpemVf
dCBwYWRkaW5nTGVuZ3RoID0gYnVmZmVyU2l6ZSAtIGxlbmd0aDsKKyAgICBpZiAocGFkZGluZ0xl
bmd0aCA+IDApIHsKKyAgICAgICAgdWludDhfdCBwYWRkaW5nID0gQk5faXNfbmVnYXRpdmUoYmln
bnVtKSA/IDB4RkYgOiAweDAwOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhZGRp
bmdMZW5ndGg7IGkrKykKKyAgICAgICAgICAgIGJ5dGVzW2ldID0gcGFkZGluZzsKKyAgICB9Cisg
ICAgQk5fYm4yYmluKGJpZ251bSwgYnl0ZXMuZGF0YSgpICsgcGFkZGluZ0xlbmd0aCk7CisgICAg
cmV0dXJuIGJ5dGVzOworfQorCitCSUdOVU0qIGNvbnZlcnRUb0JpZ051bWJlcihCSUdOVU0qIGJp
Z251bSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBieXRlcykKK3sKKyAgICByZXR1cm4gQk5fYmlu
MmJuKGJ5dGVzLmRhdGEoKSwgYnl0ZXMuc2l6ZSgpLCBiaWdudW0pOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5z
c2wvT3BlblNTTFV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvT3Bl
blNTTFV0aWxpdGllcy5oCmluZGV4IGI4ZjNiZjJlZTA2OGQ3NGU2NTAxMWE5MDNiMTNjZGZiNzU4
YmZjYzguLjlhN2JhYTY3YTEyZGZkNzE2ODUzMDc2N2E2YmI4ZDBhZTlkOTA5YzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL09wZW5TU0xVdGlsaXRpZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9PcGVuU1NMVXRpbGl0aWVzLmgKQEAgLTM4
LDYgKzM4LDE0IEBAIGNvbnN0IEVWUF9NRCogZGlnZXN0QWxnb3JpdGhtKENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIgaGFzaEZ1bmN0aW9uKTsKIAogc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhf
dD4+IGNhbGN1bGF0ZURpZ2VzdChjb25zdCBFVlBfTUQqIGFsZ29yaXRobSwgY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBtZXNzYWdlKTsKIAorVmVjdG9yPHVpbnQ4X3Q+IGNvbnZlcnRUb0J5dGVzKGNv
bnN0IEJJR05VTSopOworCitWZWN0b3I8dWludDhfdD4gY29udmVydFRvQnl0ZXNFeHBhbmQoY29u
c3QgQklHTlVNKiwgc2l6ZV90IGJ1ZmZlclNpemUpOworCisvLyBJZiBhIG51bGwgcG9pbnRlciBp
cyBnaXZlbiBhcyB0aGUgZmlyc3QgYXJndW1lbnQsIHRoaXMgZnVuY3Rpb24gaW50ZXJuYWxseSBh
bGxvY2F0ZXMgYSBuZXcgQklHTlVNCisvLyBhbmQgcmV0dXJucyBpdHMgcG9pbnRlci4gT3RoZXJ3
aXNlIHRoaXMgZnVuY3Rpb24gdXNlcyB0aGUgZ2l2ZW4gQklHTlVNIGFuZCBkb2Vzbid0IGFsbG9j
YXRlIGEgbmV3IG9uZS4KK0JJR05VTSogY29udmVydFRvQmlnTnVtYmVyKEJJR05VTSosIGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgYnl0ZXMpOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoV0VCX0NSWVBUTykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMDM2NzlmMzc4MWRhZjNkYzlkN2Y5
MDZiMjM3ODM5ZDIzZTIxZDAxLi5kODIzMDc0NDdkODNhMWQ5ZGUxNjQ2NDE4ZDRlZjNmOTg1Njk3
NzdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDctMDggIFlvc2hpYWtpIEppdHN1a2F3
YSAgPHlvc2hpYWtpLmppdHN1a2F3YUBzb255LmNvbT4KKworICAgICAgICBbT3BlblNTTF0gSW1w
bGVtZW50IEhLREYgYW5kIFBCS0RGMiBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc2NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUgSEtERiBhbmQgUEJLREYyIHRlc3RzLgorCisg
ICAgICAgICogcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0wNy0w
NCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlc3luYyB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvYXNwZWN0LXJhdGlvIGZyb20gdXBzdHJlYW0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtcGtjczgta2V5
LXA1MjEtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LXBrY3M4LWtleS1wNTIxLXZhbGlk
YXRlLWVjcHJpdmF0ZWtleS1wYXJhbWV0ZXJzLXB1YmxpY2tleS5odG1sCmluZGV4IGE2N2MwMmY3
NDhjNDFjMDhiYjJkYzFiNmY5ODFjMzJiZGY2ZTQ2MjYuLmJlYzRiMzhmZDBkNGE0M2Y1MjY3MWUw
Njg3YTMxZDk4OTJmYjAzNDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
ZWNkaC1pbXBvcnQtcGtjczgta2V5LXA1MjEtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBhcmFtZXRl
cnMtcHVibGlja2V5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RoLWlt
cG9ydC1wa2NzOC1rZXktcDUyMS12YWxpZGF0ZS1lY3ByaXZhdGVrZXktcGFyYW1ldGVycy1wdWJs
aWNrZXkuaHRtbApAQCAtNDIsMTYgKzQyLDE2IEBAIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7CiAgICAgdGVzdFBhc3NlZCgiU3VjY2Vzc2Z1bGx5IGltcG9ydGVkIGEg
UC01MjEga2V5LiIpOwogCiAgICAgZGVidWcoIkVDREg6IGltcG9ydGluZyBQLTUyMSBrZXkgd2hv
c2UgY3VydmUgaWRlbnRpZmllcnMgaW4gRUNQYXJhbWV0ZXJzIHN0cnVjdHVyZXMgaW4gUEtDUyM4
IGRvbid0IG1hdGNoIC4uLiIpOwotICAgIHJldHVybiBzaG91bGRSZWplY3QoJ2ltcG9ydEtleShw
a2NzOFA1MjFLZXlNaXNtYXRjaGVkQ3VydmVJZGVudGlmaWVycyknKTsKKyAgICByZXR1cm4gc2hv
dWxkUmVqZWN0V2l0aEVycm9yTmFtZSgnaW1wb3J0S2V5KHBrY3M4UDUyMUtleU1pc21hdGNoZWRD
dXJ2ZUlkZW50aWZpZXJzKScsICdEYXRhRXJyb3InKTsKIH0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7CiAgICAgZGVidWcoIkVDREg6IGltcG9ydGluZyBQLTUyMSBrZXkgdGhhdCBoYXMgYSBwdWJs
aWMga2V5IGluIFBLQ1MjOCBvZiBpbnZhbGlkIGxlbmd0aCAuLi4iKTsKLSAgICByZXR1cm4gc2hv
dWxkUmVqZWN0KCdpbXBvcnRLZXkocGtjczhQNTIxS2V5SW52YWxpZFB1YmxpY0tleUxlbmd0aCkn
KTsKKyAgICByZXR1cm4gc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZSgnaW1wb3J0S2V5KHBrY3M4
UDUyMUtleUludmFsaWRQdWJsaWNLZXlMZW5ndGgpJywgJ0RhdGFFcnJvcicpOwogfSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKICAgICBkZWJ1ZygiRUNESDogaW1wb3J0aW5nIFAtNTIxIGtleSB0
aGF0IGhhcyBhIHB1YmxpYyBrZXkgaW4gUEtDUyM4IG9mIGludmFsaWQgRUMgcG9pbnQgZm9ybWF0
IC4uLiIpOwotICAgIHJldHVybiBzaG91bGRSZWplY3QoJ2ltcG9ydEtleShwa2NzOFA1MjFLZXlJ
bnZhbGlkUHVibGljS2V5RUNQb2ludEZvcm1hdCknKTsKKyAgICByZXR1cm4gc2hvdWxkUmVqZWN0
V2l0aEVycm9yTmFtZSgnaW1wb3J0S2V5KHBrY3M4UDUyMUtleUludmFsaWRQdWJsaWNLZXlFQ1Bv
aW50Rm9ybWF0KScsICdEYXRhRXJyb3InKTsKIH0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CiAg
ICAgZGVidWcoIkVDREg6IGltcG9ydGluZyBQLTUyMSBrZXkgdGhhdCBoYXMgYW4gaW52YWxpZCBw
dWJsaWMga2V5IGluIFBLQ1MjOCAuLi4iKTsKLSAgICByZXR1cm4gc2hvdWxkUmVqZWN0KCdpbXBv
cnRLZXkocGtjczhQNTIxS2V5SW52YWxpZFB1YmxpY0tleSknKTsKKyAgICByZXR1cm4gc2hvdWxk
UmVqZWN0V2l0aEVycm9yTmFtZSgnaW1wb3J0S2V5KHBrY3M4UDUyMUtleUludmFsaWRQdWJsaWNL
ZXkpJywgJ0RhdGFFcnJvcicpOwogfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKICAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0pOzsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
ZWNkc2EtaW1wb3J0LXBrY3M4LWtleS1wNTIxLXZhbGlkYXRlLWVjcHJpdmF0ZWtleS1wYXJhbWV0
ZXJzLXB1YmxpY2tleS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBv
cnQtcGtjczgta2V5LXA1MjEtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlj
a2V5Lmh0bWwKaW5kZXggNGQ2MTFjOGFhY2Q3N2ZhNDkzN2RjMWFhOWI2Yjc4OTcwMWNmYThkOS4u
MDZlMWVjOTNhOGE2N2ZlNWE1OWMwZGMxMWYzNDZmYzM1ZDc0NWFiMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQtcGtjczgta2V5LXA1MjEtdmFsaWRh
dGUtZWNwcml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQtcGtjczgta2V5LXA1MjEtdmFsaWRhdGUtZWNw
cml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0bWwKQEAgLTQyLDE2ICs0MiwxNiBAQCBQ
cm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgIHRlc3RQYXNzZWQo
IlN1Y2Nlc3NmdWxseSBpbXBvcnRlZCBhIFAtNTIxIGtleS4iKTsKIAogICAgIGRlYnVnKCJFQ0RT
QTogaW1wb3J0aW5nIFAtNTIxIGtleSB3aG9zZSBjdXJ2ZSBpZGVudGlmaWVycyBpbiBFQ1BhcmFt
ZXRlcnMgc3RydWN0dXJlcyBpbiBQS0NTIzggZG9uJ3QgbWF0Y2ggLi4uIik7Ci0gICAgcmV0dXJu
IHNob3VsZFJlamVjdCgnaW1wb3J0S2V5KHBrY3M4UDUyMUtleU1pc21hdGNoZWRDdXJ2ZUlkZW50
aWZpZXJzKScpOworICAgIHJldHVybiBzaG91bGRSZWplY3RXaXRoRXJyb3JOYW1lKCdpbXBvcnRL
ZXkocGtjczhQNTIxS2V5TWlzbWF0Y2hlZEN1cnZlSWRlbnRpZmllcnMpJywgJ0RhdGFFcnJvcicp
OwogfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKICAgICBkZWJ1ZygiRUNEU0E6IGltcG9ydGlu
ZyBQLTUyMSBrZXkgdGhhdCBoYXMgYSBwdWJsaWMga2V5IGluIFBLQ1MjOCBvZiBpbnZhbGlkIGxl
bmd0aCAuLi4iKTsKLSAgICByZXR1cm4gc2hvdWxkUmVqZWN0KCdpbXBvcnRLZXkocGtjczhQNTIx
S2V5SW52YWxpZFB1YmxpY0tleUxlbmd0aCknKTsKKyAgICByZXR1cm4gc2hvdWxkUmVqZWN0V2l0
aEVycm9yTmFtZSgnaW1wb3J0S2V5KHBrY3M4UDUyMUtleUludmFsaWRQdWJsaWNLZXlMZW5ndGgp
JywgJ0RhdGFFcnJvcicpOwogfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKICAgICBkZWJ1Zygi
RUNEU0E6IGltcG9ydGluZyBQLTUyMSBrZXkgdGhhdCBoYXMgYSBwdWJsaWMga2V5IGluIFBLQ1Mj
OCBvZiBpbnZhbGlkIEVDIHBvaW50IGZvcm1hdCAuLi4iKTsKLSAgICByZXR1cm4gc2hvdWxkUmVq
ZWN0KCdpbXBvcnRLZXkocGtjczhQNTIxS2V5SW52YWxpZFB1YmxpY0tleUVDUG9pbnRGb3JtYXQp
Jyk7CisgICAgcmV0dXJuIHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUoJ2ltcG9ydEtleShwa2Nz
OFA1MjFLZXlJbnZhbGlkUHVibGljS2V5RUNQb2ludEZvcm1hdCknLCAnRGF0YUVycm9yJyk7CiB9
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgIGRlYnVnKCJFQ0RTQTogaW1wb3J0aW5nIFAt
NTIxIGtleSB0aGF0IGhhcyBhbiBpbnZhbGlkIHB1YmxpYyBrZXkgaW4gUEtDUyM4IC4uLiIpOwot
ICAgIHJldHVybiBzaG91bGRSZWplY3QoJ2ltcG9ydEtleShwa2NzOFA1MjFLZXlJbnZhbGlkUHVi
bGljS2V5KScpOworICAgIHJldHVybiBzaG91bGRSZWplY3RXaXRoRXJyb3JOYW1lKCdpbXBvcnRL
ZXkocGtjczhQNTIxS2V5SW52YWxpZFB1YmxpY0tleSknLCAnRGF0YUVycm9yJyk7CiB9KS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgewogICAgIGZpbmlzaEpTVGVzdCgpOwogfSk7OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOTA5ZDVjNTQz
ZDMyNTY4MjAyMDA4ZTY2NjU4MThmZGYzMjE1ODIxYi4uOTFkOWIyYWZhNWM2MTRmOGJkN2I3ZmY5
ZTc1MWQwYjcxNmYyZDVhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fp
cm8vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9U
ZXN0RXhwZWN0YXRpb25zCkBAIC03MTUsMTIxICs3MTUsMzAgQEAgd2Via2l0Lm9yZy9iLzIyMTQ0
NSBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9zeXN0ZW0tbGFuZ3VhZ2UvanAtY2lyY2xlZC5odG1s
IFsgU2sKICMgY3J5cHRvCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLSMg
Q3J5cHRzIG90aGVyIHRoYW4gQUVTIGFuZCBSU0EgYXJlIG5vdCBzdXBwb3J0ZWQuCi1jcnlwdG8v
c3VidGxlL2Flcy1nY20taW1wb3J0LWtleS11bndyYXAtZWMtcmF3LWtleS5odG1sIFsgU2tpcCBd
Ci1jcnlwdG8vc3VidGxlL2Rlcml2ZS1iaXRzLW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0bWwgWyBT
a2lwIF0KLWNyeXB0by9zdWJ0bGUvZGVyaXZlLWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy5odG1s
IFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtZGVyaXZlLWJpdHMtbGVuZ3RoLWxpbWl0cy5o
dG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtZGVyaXZlLWJpdHMtbWFsZm9ybWVkLXBh
cmFtZXRycy5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUtZXhwb3J0
LWp3ay1rZXktcDI1Ni5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUt
ZXhwb3J0LWp3ay1rZXktcDM4NC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtZ2Vu
ZXJhdGUtZXhwb3J0LWp3ay1rZXktcDUyMS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2Vj
ZGgtZ2VuZXJhdGUtZXhwb3J0LWtleS1wa2NzOC1wMjU2Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9z
dWJ0bGUvZWNkaC1nZW5lcmF0ZS1leHBvcnQta2V5LXBrY3M4LXAzODQuaHRtbCBbIFNraXAgXQot
Y3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1rZXktcGtjczgtcDUyMS5odG1sIFsg
U2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUtZXhwb3J0LWtleS1yYXctcDI1Ni5o
dG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUtZXhwb3J0LWtleS1yYXct
cDM4NC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUtZXhwb3J0LWtl
eS1yYXctcDUyMS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUtZXhw
b3J0LWtleS1zcGtpLXAyNTYuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVy
YXRlLWV4cG9ydC1rZXktc3BraS1wMzg0Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNk
aC1nZW5lcmF0ZS1leHBvcnQta2V5LXNwa2ktcDUyMS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3Vi
dGxlL2VjZGgtZ2VuZXJhdGUta2V5LWRlcml2ZS1iaXRzLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9z
dWJ0bGUvZWNkaC1nZW5lcmF0ZS1rZXktZXh0cmFjdGFibGUuaHRtbCBbIFNraXAgXQotY3J5cHRv
L3N1YnRsZS9lY2RoLWdlbmVyYXRlLWtleS1wMjU2Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0
bGUvZWNkaC1nZW5lcmF0ZS1rZXktcDM4NC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2Vj
ZGgtZ2VuZXJhdGUta2V5LXA1MjEuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWdl
bmVyYXRlLWtleS1zaW5nbGUtdXNhZ2UuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2Ro
LWltcG9ydC1qd2sta2V5LW1pbmltdW0uaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2Ro
LWltcG9ydC1qd2stcHJpdmF0ZS1rZXktcDI1Ni5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxl
L2VjZGgtaW1wb3J0LWp3ay1wcml2YXRlLWtleS1wMzg0Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9z
dWJ0bGUvZWNkaC1pbXBvcnQtandrLXByaXZhdGUta2V5LXA1MjEuaHRtbCBbIFNraXAgXQotY3J5
cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1qd2stcHVibGljLWtleS1wMjU2Lmh0bWwgWyBTa2lwIF0K
LWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtandrLXB1YmxpYy1rZXktcDM4NC5odG1sIFsgU2tp
cCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWp3ay1wdWJsaWMta2V5LXA1MjEuaHRtbCBb
IFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWFlcy1rZXkuaHRt
bCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMtY3Vz
dG9tLWxlbmd0aC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtleS1k
ZXJpdmUtYml0cy1udWxsLWxlbmd0aC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgt
aW1wb3J0LWtleS1kZXJpdmUtaGtkZi1rZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9l
Y2RoLWltcG9ydC1rZXktZGVyaXZlLWhtYWMta2V5LWN1c3RvbS1sZW5ndGguaHRtbCBbIFNraXAg
XQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLXBia2RmMi1rZXkuaHRtbCBb
IFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1wa2NzOC1rZXktcDI1Ni5odG1sIFsg
U2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LXBrY3M4LWtleS1wMjU2LXZhbGlkYXRl
LWVjcHJpdmF0ZWtleS1wYXJhbWV0ZXJzLXB1YmxpY2tleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8v
c3VidGxlL2VjZGgtaW1wb3J0LXBrY3M4LWtleS1wMzg0Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9z
dWJ0bGUvZWNkaC1pbXBvcnQtcGtjczgta2V5LXAzODQtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBh
cmFtZXRlcnMtcHVibGlja2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBv
cnQtcGtjczgta2V5LXA1MjEuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9y
dC1wa2NzOC1rZXktcDUyMS12YWxpZGF0ZS1lY3ByaXZhdGVrZXktcGFyYW1ldGVycy1wdWJsaWNr
ZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1yYXcta2V5LXAyNTYu
aHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1yYXcta2V5LXAzODQuaHRt
bCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1yYXcta2V5LXA1MjEuaHRtbCBb
IFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1zcGtpLWtleS1lY2RoLWlkZW50aWZp
ZXIuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1zcGtpLWtleS1wMjU2
Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtc3BraS1rZXktcDM4NC5o
dG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LXNwa2kta2V5LXA1MjEuaHRt
bCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1nZW5lcmF0ZS1leHBvcnQtaW1wb3J0LWp3
ay1zaWduLXZlcmlmeS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWdlbmVyYXRl
LWV4cG9ydC1qd2sta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkc2EtZ2VuZXJh
dGUtZXhwb3J0LWtleS1wa2NzOC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWdl
bmVyYXRlLWV4cG9ydC1rZXktcmF3Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkc2Et
Z2VuZXJhdGUtZXhwb3J0LWtleS1zcGtpLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNk
c2EtZ2VuZXJhdGUta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkc2EtZ2VuZXJh
dGUta2V5LXNpZ24tdmVyaWZ5LXAyNTYuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2Rz
YS1nZW5lcmF0ZS1rZXktc2lnbi12ZXJpZnktcDM4NC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3Vi
dGxlL2VjZHNhLWdlbmVyYXRlLWtleS1zaWduLXZlcmlmeS1wNTIxLmh0bWwgWyBTa2lwIF0KLWNy
eXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LWp3ay1wcml2YXRlLWtleS5odG1sIFsgU2tpcCBdCi1j
cnlwdG8vc3VidGxlL2VjZHNhLWltcG9ydC1qd2stcHVibGljLWtleS5odG1sIFsgU2tpcCBdCi1j
cnlwdG8vc3VidGxlL2VjZHNhLWltcG9ydC1qd2stcHVibGljLWtleS1hbGctMjU2Lmh0bWwgWyBT
a2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LWp3ay1wdWJsaWMta2V5LWFsZy0zODQu
aHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQtandrLXB1YmxpYy1rZXkt
YWxnLTUyMS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWltcG9ydC1rZXktc2ln
bi1wMjU2Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LWtleS1zaWdu
LXAzODQuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQta2V5LXNpZ24t
cDUyMS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWltcG9ydC1rZXktdmVyaWZ5
LXAyNTYuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQta2V5LXZlcmlm
eS1wMzg0Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LWtleS12ZXJp
ZnktcDUyMS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWltcG9ydC1wa2NzOC1r
ZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQtcGtjczgta2V5LXAy
NTYtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0bWwgWyBTa2lw
IF0KLWNyeXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LXBrY3M4LWtleS1wMzg0LXZhbGlkYXRlLWVj
cHJpdmF0ZWtleS1wYXJhbWV0ZXJzLXB1YmxpY2tleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3Vi
dGxlL2VjZHNhLWltcG9ydC1wa2NzOC1rZXktcDUyMS12YWxpZGF0ZS1lY3ByaXZhdGVrZXktcGFy
YW1ldGVycy1wdWJsaWNrZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBv
cnQtcmF3LWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWltcG9ydC1zcGtp
LWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLXZlcmlmeS1tYWxmb3JtZWQt
cGFyYW1ldGVycy5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWV4cG9ydC1rZXktbWFs
Zm9ybWVkLXBhcmFtZXRlcnMuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lYy1nZW5lcmF0
ZS1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9l
Yy1pbXBvcnQtandrLWtleS1leHBvcnQtandrLWtleS1wcml2YXRlLmh0bWwgWyBTa2lwIF0KLWNy
eXB0by9zdWJ0bGUvZWMtaW1wb3J0LWp3ay1rZXktZXhwb3J0LWp3ay1rZXktcHVibGljLmh0bWwg
WyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWMtaW1wb3J0LWp3ay1rZXktZXhwb3J0LXBrY3M4LWtl
eS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWltcG9ydC1qd2sta2V5LWV4cG9ydC1y
YXcta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWMtaW1wb3J0LWp3ay1rZXktZXhw
b3J0LXNwa2kta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWMtaW1wb3J0LWtleS1t
YWxmb3JtZWQtcGFyYW1ldGVycy5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWltcG9y
dC1wa2NzOC1rZXktZXhwb3J0LWp3ay1rZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9l
Yy1pbXBvcnQtcGtjczgta2V5LWV4cG9ydC1wa2NzOC1rZXktcDI1Ni5odG1sIFsgU2tpcCBdCi1j
cnlwdG8vc3VidGxlL2VjLWltcG9ydC1wa2NzOC1rZXktZXhwb3J0LXBrY3M4LWtleS1wMzg0Lmh0
bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWMtaW1wb3J0LXBrY3M4LWtleS1leHBvcnQtcGtj
czgta2V5LXA1MjEuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lYy1pbXBvcnQtcmF3LWtl
eS1leHBvcnQtandrLWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWltcG9ydC1y
YXcta2V5LWV4cG9ydC1yYXcta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWMtaW1w
b3J0LXJhdy1rZXktZXhwb3J0LXNwa2kta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUv
ZWMtaW1wb3J0LXNwa2kta2V5LWV4cG9ydC1qd2sta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9z
dWJ0bGUvZWMtaW1wb3J0LXNwa2kta2V5LWV4cG9ydC1yYXcta2V5Lmh0bWwgWyBTa2lwIF0KLWNy
eXB0by9zdWJ0bGUvZWMtaW1wb3J0LXNwa2kta2V5LWV4cG9ydC1zcGtpLWtleS1wMjU2Lmh0bWwg
WyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWMtaW1wb3J0LXNwa2kta2V5LWV4cG9ydC1zcGtpLWtl
eS1wMzg0Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWMtaW1wb3J0LXNwa2kta2V5LWV4
cG9ydC1zcGtpLWtleS1wNTIxLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZ2MuaHRtbCBb
IFNraXAgXQotY3J5cHRvL3N1YnRsZS9nYy0yLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUv
Z2MtMy5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2hrZGYtZGVyaXZlLWJpdHMtbGVuZ3Ro
LWxpbWl0cy5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2hrZGYtZGVyaXZlLWJpdHMtbWFs
Zm9ybWVkLXBhcmFtZXRycy5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2hrZGYtaW1wb3J0
LWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2hrZGYtaW1wb3J0LWtleS1kZXJpdmUt
Yml0cy5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2hrZGYtaW1wb3J0LWtleS1kZXJpdmUt
aG1hYy1rZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9oa2RmLWltcG9ydC1rZXktbWFs
Zm9ybWVkLXBhcmFtZXRlcnMuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9wYmtkZjItZGVy
aXZlLWJpdHMtbWFsZm9ybWVkLXBhcmFtZXRycy5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxl
L3Bia2RmMi1pbXBvcnQta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvcGJrZGYyLWlt
cG9ydC1rZXktZGVyaXZlLWJpdHMuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9wYmtkZjIt
aW1wb3J0LWtleS1kZXJpdmUtaG1hYy1rZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9w
YmtkZjItaW1wb3J0LWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy5odG1sIFsgU2tpcCBdCi1jcnlw
dG8vc3VidGxlL3JzYS1pbmRleGVkZGIuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9yc2Et
aW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvcnNh
LWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2YXRlLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9z
dWJ0bGUvcnNhLWluZGV4ZWRkYi1wcml2YXRlLmh0bWwgWyBTa2lwIF0KKyMgRmxha3kgdGVzdHMu
IEVuY29kZWQgbGVuZ3RoIG9mIGdlbmVyYXRlZCBrZXlzIGNhbiBiZSBzaG9ydGVyIHRoYW4gdGVz
dCBleHBlY3RhdGlvbnMuCitjcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUtZXhwb3J0LWtleS1w
a2NzOC1wMjU2Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQorY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVy
YXRlLWV4cG9ydC1rZXktcGtjczgtcDM4NC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KK2NyeXB0by9z
dWJ0bGUvZWNkaC1nZW5lcmF0ZS1leHBvcnQta2V5LXBrY3M4LXA1MjEuaHRtbCBbIEZhaWx1cmUg
UGFzcyBdCitjcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUtZXhwb3J0LWtleS1zcGtpLXAyNTYu
aHRtbCBbIEZhaWx1cmUgUGFzcyBdCitjcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUtZXhwb3J0
LWtleS1zcGtpLXAzODQuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCitjcnlwdG8vc3VidGxlL2VjZGgt
Z2VuZXJhdGUtZXhwb3J0LWtleS1zcGtpLXA1MjEuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCitjcnlw
dG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUtZXhwb3J0LWp3ay1rZXktcDI1Ni5odG1sIFsgRmFpbHVy
ZSBQYXNzIF0KK2NyeXB0by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1leHBvcnQtandrLWtleS1wMzg0
Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQorY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9y
dC1qd2sta2V5LXA1MjEuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCitjcnlwdG8vc3VidGxlL2VjZGgt
Z2VuZXJhdGUtZXhwb3J0LWtleS1yYXctcDI1Ni5odG1sIFsgRmFpbHVyZSBQYXNzIF0KK2NyeXB0
by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1leHBvcnQta2V5LXJhdy1wMzg0Lmh0bWwgWyBGYWlsdXJl
IFBhc3MgXQorY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1rZXktcmF3LXA1MjEu
aHRtbCBbIEZhaWx1cmUgUGFzcyBdCisKKyMgVGVzdHMgZXhwbGljaXRseSBlbmFibGVkLgorY3J5
cHRvL3N1YnRsZS9kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldGVycy5odG1sIFsgUGFzcyBd
CitjcnlwdG8vc3VidGxlL2Rlcml2ZS1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMuaHRtbCBbIFBh
c3MgXQorY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1wa2NzOC1rZXktcDI1Ni12YWxpZGF0ZS1l
Y3ByaXZhdGVrZXktcGFyYW1ldGVycy1wdWJsaWNrZXkuaHRtbCBbIFBhc3MgXQorY3J5cHRvL3N1
YnRsZS9lY2RoLWltcG9ydC1wa2NzOC1rZXktcDM4NC12YWxpZGF0ZS1lY3ByaXZhdGVrZXktcGFy
YW1ldGVycy1wdWJsaWNrZXkuaHRtbCBbIFBhc3MgXQorY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9y
dC1wa2NzOC1rZXktcDUyMS12YWxpZGF0ZS1lY3ByaXZhdGVrZXktcGFyYW1ldGVycy1wdWJsaWNr
ZXkuaHRtbCBbIFBhc3MgXQorY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1zcGtpLWtleS1lY2Ro
LWlkZW50aWZpZXIuaHRtbCBbIFBhc3MgXQorY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQtcGtj
czgta2V5LXAyNTYtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0
bWwgWyBQYXNzIF0KK2NyeXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LXBrY3M4LWtleS1wMzg0LXZh
bGlkYXRlLWVjcHJpdmF0ZWtleS1wYXJhbWV0ZXJzLXB1YmxpY2tleS5odG1sIFsgUGFzcyBdCitj
cnlwdG8vc3VidGxlL2VjZHNhLWltcG9ydC1wa2NzOC1rZXktcDUyMS12YWxpZGF0ZS1lY3ByaXZh
dGVrZXktcGFyYW1ldGVycy1wdWJsaWNrZXkuaHRtbCBbIFBhc3MgXQogY3J5cHRvL3N1YnRsZS9y
c2EtcHNzLWdlbmVyYXRlLWV4cG9ydC1rZXktandrLXNoYTEuaHRtbCBbIFBhc3MgXQogY3J5cHRv
L3N1YnRsZS9yc2EtcHNzLWdlbmVyYXRlLWV4cG9ydC1rZXktandrLXNoYTIyNC5odG1sIFsgUGFz
cyBdCiBjcnlwdG8vc3VidGxlL3JzYS1wc3MtZ2VuZXJhdGUtZXhwb3J0LWtleS1qd2stc2hhMjU2
Lmh0bWwgWyBQYXNzIF0KQEAgLTg0NiwxMyArNzU1LDE0IEBAIGNyeXB0by9zdWJ0bGUvcnNhLXBz
cy1pbXBvcnQtandrLXB1YmxpYy1rZXktc2hhMjU2Lmh0bWwgWyBQYXNzIF0KIGNyeXB0by9zdWJ0
bGUvcnNhLXBzcy1pbXBvcnQtandrLXB1YmxpYy1rZXktc2hhMzg0Lmh0bWwgWyBQYXNzIF0KIGNy
eXB0by9zdWJ0bGUvcnNhLXBzcy1pbXBvcnQtandrLXB1YmxpYy1rZXktc2hhNTEyLmh0bWwgWyBQ
YXNzIF0KIGNyeXB0by9zdWJ0bGUvcnNhLXBzcy1pbXBvcnQta2V5LXNpZ24uaHRtbCBbIFBhc3Mg
XQotIyBMYXJnZSBzYWx0IHNob3VsZCBiZSBzdXBwb3J0ZWQuCi1jcnlwdG8vc3VidGxlL3JzYS1w
c3MtaW1wb3J0LWtleS1zaWduLWxhcmdlLXNhbHQuaHRtbCBbIEZhaWx1cmUgXQogY3J5cHRvL3N1
YnRsZS9yc2EtcHNzLWltcG9ydC1rZXktdmVyaWZ5Lmh0bWwgWyBQYXNzIF0KIGNyeXB0by9zdWJ0
bGUvcnNhLXBzcy1pbXBvcnQtcGtjczgta2V5Lmh0bWwgWyBQYXNzIF0KIGNyeXB0by9zdWJ0bGUv
cnNhLXBzcy1pbXBvcnQtc3BraS1rZXkuaHRtbCBbIFBhc3MgXQogY3J5cHRvL3N1YnRsZS9yc2Et
cHNzLWltcG9ydC1zcGtpLWtleS1lbXB0eS11c2FnZXMuaHRtbCBbIFBhc3MgXQogCisjIExhcmdl
IHNhbHQgc2hvdWxkIGJlIHN1cHBvcnRlZC4KK2NyeXB0by9zdWJ0bGUvcnNhLXBzcy1pbXBvcnQt
a2V5LXNpZ24tbGFyZ2Utc2FsdC5odG1sIFsgRmFpbHVyZSBdCisKICMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTU2OQogY3J5cHRvL2NyeXB0by1yYW5kb20tdmFs
dWVzLW9vbS5odG1sIFsgU2tpcCBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbmNhaXJvL2NyeXB0by9zdWJ0bGUvZWMtZ2VuZXJhdGUta2V5LW1hbGZvcm1lZC1wYXJhbWV0
ZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL2NyeXB0by9z
dWJ0bGUvZWMtZ2VuZXJhdGUta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iZTQ2NWU3NmMwYmY3NzhlNWJmM2YzMjU2OWU5MjNkNGRiY2FmYzM0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vY3J5cHRvL3N1YnRs
ZS9lYy1nZW5lcmF0ZS1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMzAgQEAKK1Rlc3QgZ2VuZXJhdGluZyBhbiBFQyBrZXkgcGFpciB3aXRoIG1hbGZvcm1l
ZC1wYXJhbXRlcnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGNyeXB0
by5zdWJ0bGUuZ2VuZXJhdGVLZXkoImVjZGgiLCBleHRyYWN0YWJsZSwgWyJkZXJpdmVLZXkiLCAi
ZGVyaXZlQml0cyJdKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVtYmVyIEVj
S2V5UGFyYW1zLm5hbWVkQ3VydmUgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ug
b2YgRE9NU3RyaW5nLgorUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiZWNk
aCJ9LCBleHRyYWN0YWJsZSwgWyJkZXJpdmVLZXkiLCAiZGVyaXZlQml0cyJdKSByZWplY3RlZCBw
cm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVtYmVyIEVjS2V5UGFyYW1zLm5hbWVkQ3VydmUgaXMg
cmVxdWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRE9NU3RyaW5nLgorUEFTUyBjcnlw
dG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiZWNkaCIsIG5hbWVkQ3VydmU6IHRydWV9LCBl
eHRyYWN0YWJsZSwgWyJkZXJpdmVLZXkiLCAiZGVyaXZlQml0cyJdKSByZWplY3RlZCBwcm9taXNl
ICB3aXRoIE5vdFN1cHBvcnRlZEVycm9yOiBUaGUgYWxnb3JpdGhtIGlzIG5vdCBzdXBwb3J0ZWQu
CitQQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJlY2RoIiwgbmFtZWRDdXJ2
ZTogbnVsbH0sIGV4dHJhY3RhYmxlLCBbImRlcml2ZUtleSIsICJkZXJpdmVCaXRzIl0pIHJlamVj
dGVkIHByb21pc2UgIHdpdGggTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBhbGdvcml0aG0gaXMgbm90
IHN1cHBvcnRlZC4KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImVjZGgi
LCBuYW1lZEN1cnZlOiB1bmRlZmluZWR9LCBleHRyYWN0YWJsZSwgWyJkZXJpdmVLZXkiLCAiZGVy
aXZlQml0cyJdKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVtYmVyIEVjS2V5
UGFyYW1zLm5hbWVkQ3VydmUgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2Yg
RE9NU3RyaW5nLgorUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiZWNkaCIs
IG5hbWVkQ3VydmU6IFN5bWJvbCgpfSwgZXh0cmFjdGFibGUsIFsiZGVyaXZlS2V5IiwgImRlcml2
ZUJpdHMiXSkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IENhbm5vdCBjb252ZXJ0
IGEgc3ltYm9sIHRvIGEgc3RyaW5nLgorUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtu
YW1lOiAiZWNkaCIsIG5hbWVkQ3VydmU6IHsgfX0sIGV4dHJhY3RhYmxlLCBbImRlcml2ZUtleSIs
ICJkZXJpdmVCaXRzIl0pIHJlamVjdGVkIHByb21pc2UgIHdpdGggTm90U3VwcG9ydGVkRXJyb3I6
IFRoZSBhbGdvcml0aG0gaXMgbm90IHN1cHBvcnRlZC4KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5l
cmF0ZUtleSh7bmFtZTogImVjZGgiLCBuYW1lZEN1cnZlOiAxfSwgZXh0cmFjdGFibGUsIFsiZGVy
aXZlS2V5IiwgImRlcml2ZUJpdHMiXSkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBOb3RTdXBwb3J0
ZWRFcnJvcjogVGhlIGFsZ29yaXRobSBpcyBub3Qgc3VwcG9ydGVkLgorUEFTUyBjcnlwdG8uc3Vi
dGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiZWNkaCIsIG5hbWVkQ3VydmU6ICJQLTI1NiJ9LCBleHRy
YWN0YWJsZSwgWyJlbmNyeXB0Il0pIHJlamVjdGVkIHByb21pc2UgIHdpdGggU3ludGF4RXJyb3I6
IEEgcmVxdWlyZWQgcGFyYW1ldGVyIHdhcyBtaXNzaW5nIG9yIG91dC1vZi1yYW5nZS4KK1BBU1Mg
Y3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImVjZGgiLCBuYW1lZEN1cnZlOiAiUC0y
NTYifSwgZXh0cmFjdGFibGUsIFsiZGVjcnlwdCJdKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFN5
bnRheEVycm9yOiBBIHJlcXVpcmVkIHBhcmFtZXRlciB3YXMgbWlzc2luZyBvciBvdXQtb2YtcmFu
Z2UuCitQQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJlY2RoIiwgbmFtZWRD
dXJ2ZTogIlAtMjU2In0sIGV4dHJhY3RhYmxlLCBbInNpZ24iXSkgcmVqZWN0ZWQgcHJvbWlzZSAg
d2l0aCBTeW50YXhFcnJvcjogQSByZXF1aXJlZCBwYXJhbWV0ZXIgd2FzIG1pc3Npbmcgb3Igb3V0
LW9mLXJhbmdlLgorUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiZWNkaCIs
IG5hbWVkQ3VydmU6ICJQLTI1NiJ9LCBleHRyYWN0YWJsZSwgWyJ2ZXJpZnkiXSkgcmVqZWN0ZWQg
cHJvbWlzZSAgd2l0aCBTeW50YXhFcnJvcjogQSByZXF1aXJlZCBwYXJhbWV0ZXIgd2FzIG1pc3Np
bmcgb3Igb3V0LW9mLXJhbmdlLgorUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1l
OiAiZWNkaCIsIG5hbWVkQ3VydmU6ICJQLTI1NiJ9LCBleHRyYWN0YWJsZSwgWyJ3cmFwS2V5Il0p
IHJlamVjdGVkIHByb21pc2UgIHdpdGggU3ludGF4RXJyb3I6IEEgcmVxdWlyZWQgcGFyYW1ldGVy
IHdhcyBtaXNzaW5nIG9yIG91dC1vZi1yYW5nZS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0
ZUtleSh7bmFtZTogImVjZGgiLCBuYW1lZEN1cnZlOiAiUC0yNTYifSwgZXh0cmFjdGFibGUsIFsi
dW53cmFwS2V5Il0pIHJlamVjdGVkIHByb21pc2UgIHdpdGggU3ludGF4RXJyb3I6IEEgcmVxdWly
ZWQgcGFyYW1ldGVyIHdhcyBtaXNzaW5nIG9yIG91dC1vZi1yYW5nZS4KK1BBU1MgY3J5cHRvLnN1
YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImVjZHNhIiwgbmFtZWRDdXJ2ZTogIlAtMjU2In0sIGV4
dHJhY3RhYmxlLCBbImVuY3J5cHQiXSkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBTeW50YXhFcnJv
cjogQSByZXF1aXJlZCBwYXJhbWV0ZXIgd2FzIG1pc3Npbmcgb3Igb3V0LW9mLXJhbmdlLgorUEFT
UyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiZWNkc2EiLCBuYW1lZEN1cnZlOiAi
UC0yNTYifSwgZXh0cmFjdGFibGUsIFsiZGVjcnlwdCJdKSByZWplY3RlZCBwcm9taXNlICB3aXRo
IFN5bnRheEVycm9yOiBBIHJlcXVpcmVkIHBhcmFtZXRlciB3YXMgbWlzc2luZyBvciBvdXQtb2Yt
cmFuZ2UuCitQQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJlY2RzYSIsIG5h
bWVkQ3VydmU6ICJQLTI1NiJ9LCBleHRyYWN0YWJsZSwgWyJkZXJpdmVLZXkiXSkgcmVqZWN0ZWQg
cHJvbWlzZSAgd2l0aCBTeW50YXhFcnJvcjogQSByZXF1aXJlZCBwYXJhbWV0ZXIgd2FzIG1pc3Np
bmcgb3Igb3V0LW9mLXJhbmdlLgorUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1l
OiAiZWNkc2EiLCBuYW1lZEN1cnZlOiAiUC0yNTYifSwgZXh0cmFjdGFibGUsIFsiZGVyaXZlQml0
cyJdKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFN5bnRheEVycm9yOiBBIHJlcXVpcmVkIHBhcmFt
ZXRlciB3YXMgbWlzc2luZyBvciBvdXQtb2YtcmFuZ2UuCitQQVNTIGNyeXB0by5zdWJ0bGUuZ2Vu
ZXJhdGVLZXkoe25hbWU6ICJlY2RzYSIsIG5hbWVkQ3VydmU6ICJQLTI1NiJ9LCBleHRyYWN0YWJs
ZSwgWyJ3cmFwS2V5Il0pIHJlamVjdGVkIHByb21pc2UgIHdpdGggU3ludGF4RXJyb3I6IEEgcmVx
dWlyZWQgcGFyYW1ldGVyIHdhcyBtaXNzaW5nIG9yIG91dC1vZi1yYW5nZS4KK1BBU1MgY3J5cHRv
LnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImVjZHNhIiwgbmFtZWRDdXJ2ZTogIlAtMjU2In0s
IGV4dHJhY3RhYmxlLCBbInVud3JhcEtleSJdKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFN5bnRh
eEVycm9yOiBBIHJlcXVpcmVkIHBhcmFtZXRlciB3YXMgbWlzc2luZyBvciBvdXQtb2YtcmFuZ2Uu
CitGQUlMIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJlY2RoIiwgbmFtZWRDdXJ2
ZTogIlAtNTIxIn0sIGV4dHJhY3RhYmxlLCBbImRlcml2ZUtleSJdKSBzaG91bGQgcmVqZWN0IHBy
b21pc2UuIFJlc29sdmVkIHdpdGggW29iamVjdCBPYmplY3RdLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbmNhaXJvL2NyeXB0by9zdWJ0bGUvZWNkaC1kZXJpdmUtYml0cy1sZW5ndGgt
bGltaXRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL2NyeXB0
by9zdWJ0bGUvZWNkaC1kZXJpdmUtYml0cy1sZW5ndGgtbGltaXRzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iNzIwOWIwYzA0OGUwN2U2YzYwNWYxOWM4ZjY1YThmNTY1ZTEzMzk1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vY3J5cHRvL3N1YnRsZS9l
Y2RoLWRlcml2ZS1iaXRzLWxlbmd0aC1saW1pdHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjQg
QEAKK1Rlc3QgRUNESCBkZXJpdmVCaXRzIG9wZXJhdGlvbiBmb3IgY29ybmVyLWNhc2UgbGVuZ3Ro
IHZhbHVlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZGVyaXZlQml0
cyguLi4sIDApIHN1Y2Nlc3NmdWxseSBkZXJpdmVkIDI1NiBiaXRzIGZvciBhIFAtMjU2IGN1cnZl
CitQQVNTIGRlcml2ZUJpdHMoLi4uLCA4KSBzdWNjZXNzZnVsbHkgZGVyaXZlZCA4IGJpdHMgZm9y
IGEgUC0yNTYgY3VydmUKK1BBU1MgZGVyaXZlQml0cyguLi4sIDI1Nikgc3VjY2Vzc2Z1bGx5IGRl
cml2ZWQgMjU2IGJpdHMgZm9yIGEgUC0yNTYgY3VydmUKK1BBU1MgQml0IGRlcml2YXRpb25zIGZv
ciBFQyBQLTI1NiB3aXRoIG1pbmltdW0gYW5kIG1heGltdW0gbGVuZ3RocyBzdWNjZWVkZWQKK1BB
U1MgZGVyaXZlQml0cyhQMjU2LCAyNTYgKyA4KSByZWplY3RlZCBwcm9taXNlICB3aXRoIE9wZXJh
dGlvbkVycm9yOiBUaGUgb3BlcmF0aW9uIGZhaWxlZCBmb3IgYW4gb3BlcmF0aW9uLXNwZWNpZmlj
IHJlYXNvbi4KK1BBU1MgZGVyaXZlQml0cyguLi4sIDApIHN1Y2Nlc3NmdWxseSBkZXJpdmVkIDM4
NCBiaXRzIGZvciBhIFAtMzg0IGN1cnZlCitQQVNTIGRlcml2ZUJpdHMoLi4uLCA4KSBzdWNjZXNz
ZnVsbHkgZGVyaXZlZCA4IGJpdHMgZm9yIGEgUC0zODQgY3VydmUKK1BBU1MgZGVyaXZlQml0cygu
Li4sIDM4NCkgc3VjY2Vzc2Z1bGx5IGRlcml2ZWQgMzg0IGJpdHMgZm9yIGEgUC0zODQgY3VydmUK
K1BBU1MgQml0IGRlcml2YXRpb25zIGZvciBFQyBQLTM4NCB3aXRoIG1pbmltdW0gYW5kIG1heGlt
dW0gbGVuZ3RocyBzdWNjZWVkZWQKK1BBU1MgZGVyaXZlQml0cyhQMzg0LCAzODQgKyA4KSByZWpl
Y3RlZCBwcm9taXNlICB3aXRoIE9wZXJhdGlvbkVycm9yOiBUaGUgb3BlcmF0aW9uIGZhaWxlZCBm
b3IgYW4gb3BlcmF0aW9uLXNwZWNpZmljIHJlYXNvbi4KK1BBU1MgZGVyaXZlQml0cyguLi4sIDAp
IHN1Y2Nlc3NmdWxseSBkZXJpdmVkIDUyOCBiaXRzIGZvciBhIFAtNTIxIGN1cnZlCitQQVNTIGRl
cml2ZUJpdHMoLi4uLCA4KSBzdWNjZXNzZnVsbHkgZGVyaXZlZCA4IGJpdHMgZm9yIGEgUC01MjEg
Y3VydmUKK1BBU1MgZGVyaXZlQml0cyguLi4sIDUyOCkgc3VjY2Vzc2Z1bGx5IGRlcml2ZWQgNTI4
IGJpdHMgZm9yIGEgUC01MjEgY3VydmUKK1BBU1MgQml0IGRlcml2YXRpb25zIGZvciBFQyBQLTUy
MSB3aXRoIG1pbmltdW0gYW5kIG1heGltdW0gbGVuZ3RocyBzdWNjZWVkZWQKK1BBU1MgZGVyaXZl
Qml0cyhQNTIxLCA1MjggKyA4KSByZWplY3RlZCBwcm9taXNlICB3aXRoIE9wZXJhdGlvbkVycm9y
OiBUaGUgb3BlcmF0aW9uIGZhaWxlZCBmb3IgYW4gb3BlcmF0aW9uLXNwZWNpZmljIHJlYXNvbi4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9jcnlwdG8vc3VidGxlL2VjZGgt
aW1wb3J0LXNwa2kta2V5LWVjZGgtaWRlbnRpZmllci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW5jYWlyby9jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LXNwa2kta2V5LWVj
ZGgtaWRlbnRpZmllci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2RiZmRiNzY2NTIwOWUzMzg1
NWEzMzhiYTVmYTVkNmUxYzJkOTJkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbmNhaXJvL2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtc3BraS1rZXktZWNkaC1p
ZGVudGlmaWVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMwIEBACitUZXN0IGltcG9ydGluZyBQ
LTI1NiwgUC0zODQgYW5kIFAtNTIxIFNQS0kgRUNESCBrZXlzIHRoYXQgYXJlIHVzaW5nIHRoZSBl
Y0RIIGFsZ29yaXRobSBpZGVudGlmaWVyCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitJbXBvcnRpbmcgYSBQLTI1NiBrZXkgdGhhdCB1c2VzIHRoZSBlY0RIIGFsZ29yaXRobSBpZGVu
dGlmaWVyIC4uLgorUEFTUyBwdWJsaWNLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBDcnlwdG9L
ZXldJworUEFTUyBwdWJsaWNLZXkudHlwZSBpcyAncHVibGljJworUEFTUyBwdWJsaWNLZXkuZXh0
cmFjdGFibGUgaXMgdHJ1ZQorUEFTUyBwdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0VDREgn
CitQQVNTIHB1YmxpY0tleS5hbGdvcml0aG0ubmFtZWRDdXJ2ZSBpcyAnUC0yNTYnCitQQVNTIHB1
YmxpY0tleS51c2FnZXMgaXMgWyBdCitJbXBvcnRpbmcgYSBQLTM4NCBrZXkgdGhhdCB1c2VzIHRo
ZSBlY0RIIGFsZ29yaXRobSBpZGVudGlmaWVyIC4uLgorUEFTUyBwdWJsaWNLZXkudG9TdHJpbmco
KSBpcyAnW29iamVjdCBDcnlwdG9LZXldJworUEFTUyBwdWJsaWNLZXkudHlwZSBpcyAncHVibGlj
JworUEFTUyBwdWJsaWNLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQorUEFTUyBwdWJsaWNLZXkuYWxn
b3JpdGhtLm5hbWUgaXMgJ0VDREgnCitQQVNTIHB1YmxpY0tleS5hbGdvcml0aG0ubmFtZWRDdXJ2
ZSBpcyAnUC0zODQnCitQQVNTIHB1YmxpY0tleS51c2FnZXMgaXMgWyBdCitJbXBvcnRpbmcgYSBQ
LTUyMSBrZXkgdGhhdCB1c2VzIHRoZSBlY0RIIGFsZ29yaXRobSBpZGVudGlmaWVyIC4uLgorUEFT
UyBwdWJsaWNLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBDcnlwdG9LZXldJworUEFTUyBwdWJs
aWNLZXkudHlwZSBpcyAncHVibGljJworUEFTUyBwdWJsaWNLZXkuZXh0cmFjdGFibGUgaXMgdHJ1
ZQorUEFTUyBwdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0VDREgnCitQQVNTIHB1YmxpY0tl
eS5hbGdvcml0aG0ubmFtZWRDdXJ2ZSBpcyAnUC01MjEnCitQQVNTIHB1YmxpY0tleS51c2FnZXMg
aXMgWyBdCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
Kwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433097</attachid>
            <date>2021-07-07 17:32:14 -0700</date>
            <delta_ts>2021-07-07 19:04:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227656-20210708093212.patch</filename>
            <type>text/plain</type>
            <size>7453</size>
            <attacher name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDIxMDBjYWUxOTRkZDRj
ODU4YTJhODljNGI0MDlhOGMxNzMwODhlOC4uMzdiNDIzMjRhZTU0NmU3Y2RmZGU4NmZkNGU1YzZm
M2E2YjhjODkzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA3LTA4ICBZb3No
aWFraSBKaXRzdWthd2EgIDx5b3NoaWFraS5qaXRzdWthd2FAc29ueS5jb20+CisKKyAgICAgICAg
W09wZW5TU0xdIEltcGxlbWVudCBIS0RGIGFuZCBQQktERjIgc3VwcG9ydAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NjU2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjcnlwdG8vb3BlbnNzbC9Dcnlw
dG9BbGdvcml0aG1IS0RGT3BlblNTTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdv
cml0aG1IS0RGOjpwbGF0Zm9ybURlcml2ZUJpdHMpOiBJbXBsZW1lbnRlZCB3aXRoIEhLREYoKS4K
KyAgICAgICAgKiBjcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1QQktERjJPcGVuU1NMLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVBCS0RGMjo6cGxhdGZvcm1EZXJp
dmVCaXRzKToKKyAgICAgICAgKiBjcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1SZWdpc3Ry
eU9wZW5TU0wuY3BwOiBJbXBsZW1lbnRlZCB3aXRoIFBLQ1M1X1BCS0RGMl9ITUFDKCkuCisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6cGxhdGZvcm1SZWdpc3RlckFs
Z29yaXRobXMpOiBSZWdpc3RlciBIS0RGIGFuZCBQQktERjIuCisKIDIwMjEtMDctMDcgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJREJPYmplY3RTdG9yZS5rZXlQ
YXRoIHNob3VsZCBrZWVwIHJldHVybmluZyB0aGUgc2FtZSBvYmplY3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRobUhLREZPcGVuU1NMLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRobUhLREZPcGVu
U1NMLmNwcAppbmRleCBmMGI3YTQ2YzI5YzAxNTYxZTNjZDAwMWRkZjVmOGUxYWQ5NjYyNDg0Li5l
M2MxMTNmMzM2NGMwZTFkYjU5Y2VkNWJlODMzYWU0OThiZGYwMjUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1IS0RGT3BlblNTTC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvQWxnb3JpdGhtSEtERk9w
ZW5TU0wuY3BwCkBAIC0yOSwxNSArMjksMjMgQEAKICNpZiBFTkFCTEUoV0VCX0NSWVBUTykKIAog
I2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUhrZGZQYXJhbXMuaCIKLSNpbmNsdWRlICJDcnlwdG9L
ZXlFQy5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiQ3J5cHRvS2V5
UmF3LmgiCisjaW5jbHVkZSAiT3BlblNTTFV0aWxpdGllcy5oIgorI2luY2x1ZGUgPG9wZW5zc2wv
aGtkZi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50
OF90Pj4gQ3J5cHRvQWxnb3JpdGhtSEtERjo6cGxhdGZvcm1EZXJpdmVCaXRzKGNvbnN0IENyeXB0
b0FsZ29yaXRobUhrZGZQYXJhbXMmLCBjb25zdCBDcnlwdG9LZXlSYXcmLCBzaXplX3QpCitFeGNl
cHRpb25PcjxWZWN0b3I8dWludDhfdD4+IENyeXB0b0FsZ29yaXRobUhLREY6OnBsYXRmb3JtRGVy
aXZlQml0cyhjb25zdCBDcnlwdG9BbGdvcml0aG1Ia2RmUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25z
dCBDcnlwdG9LZXlSYXcmIGtleSwgc2l6ZV90IGxlbmd0aCkKIHsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworICAgIGF1
dG8gYWxnb3JpdGhtID0gZGlnZXN0QWxnb3JpdGhtKHBhcmFtZXRlcnMuaGFzaElkZW50aWZpZXIp
OworICAgIGlmICghYWxnb3JpdGhtKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3Vw
cG9ydGVkRXJyb3IgfTsKKworICAgIFZlY3Rvcjx1aW50OF90PiBvdXRwdXQobGVuZ3RoIC8gOCk7
CisgICAgaWYgKEhLREYob3V0cHV0LmRhdGEoKSwgb3V0cHV0LnNpemUoKSwgYWxnb3JpdGhtLCBr
ZXkua2V5KCkuZGF0YSgpLCBrZXkua2V5KCkuc2l6ZSgpLCBwYXJhbWV0ZXJzLnNhbHRWZWN0b3Io
KS5kYXRhKCksIHBhcmFtZXRlcnMuc2FsdFZlY3RvcigpLnNpemUoKSwgcGFyYW1ldGVycy5pbmZv
VmVjdG9yKCkuZGF0YSgpLCBwYXJhbWV0ZXJzLmluZm9WZWN0b3IoKS5zaXplKCkpIDw9IDApCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OworCisgICAgcmV0dXJu
IG91dHB1dDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvQWxnb3JpdGhtUEJLREYyT3BlblNTTC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1QQktERjJPcGVu
U1NMLmNwcAppbmRleCBiOTRmNjAyOWZkOGFiMzE3Mzg5MDdhNDI1M2Y3MWZiZGFmNmFmN2RlLi4y
YzczZDk1Yzk0OGYzOWI5ZTMyOGU0ZjA2ZDdmY2VjNDgxMzliMDQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1QQktERjJPcGVuU1NMLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1QQktE
RjJPcGVuU1NMLmNwcApAQCAtMzAsMTQgKzMwLDI2IEBACiAKICNpbmNsdWRlICJDcnlwdG9BbGdv
cml0aG1QYmtkZjJQYXJhbXMuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlSYXcuaCIKLSNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIk9wZW5TU0xVdGlsaXRpZXMuaCIKKyNpbmNs
dWRlIDxvcGVuc3NsL2V2cC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUV4Y2VwdGlvbk9y
PFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvQWxnb3JpdGhtUEJLREYyOjpwbGF0Zm9ybURlcml2ZUJp
dHMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGJrZGYyUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5UmF3
Jiwgc2l6ZV90KQorRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1Q
QktERjI6OnBsYXRmb3JtRGVyaXZlQml0cyhjb25zdCBDcnlwdG9BbGdvcml0aG1QYmtkZjJQYXJh
bXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJhdyYga2V5LCBzaXplX3QgbGVuZ3RoKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBv
cnRlZEVycm9yIH07CisgICAgYXV0byBhbGdvcml0aG0gPSBkaWdlc3RBbGdvcml0aG0ocGFyYW1l
dGVycy5oYXNoSWRlbnRpZmllcik7CisgICAgaWYgKCFhbGdvcml0aG0pCisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworCisgICAgLy8gaXRlcmF0aW9ucyBt
dXN0IG5vdCBiZSB6ZXJvLgorICAgIGlmICghcGFyYW1ldGVycy5pdGVyYXRpb25zKQorICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKKworICAgIFZlY3Rvcjx1aW50
OF90PiBvdXRwdXQobGVuZ3RoIC8gOCk7CisgICAgaWYgKFBLQ1M1X1BCS0RGMl9ITUFDKChjb25z
dCBjaGFyKilrZXkua2V5KCkuZGF0YSgpLCBrZXkua2V5KCkuc2l6ZSgpLCBwYXJhbWV0ZXJzLnNh
bHRWZWN0b3IoKS5kYXRhKCksIHBhcmFtZXRlcnMuc2FsdFZlY3RvcigpLnNpemUoKSwgcGFyYW1l
dGVycy5pdGVyYXRpb25zLCBhbGdvcml0aG0sIG91dHB1dC5zaXplKCksIG91dHB1dC5kYXRhKCkp
IDw9IDApCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OworCisg
ICAgcmV0dXJuIG91dHB1dDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlP
cGVuU1NMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRo
bVJlZ2lzdHJ5T3BlblNTTC5jcHAKaW5kZXggNDMzZDg0ZWU3ZGU1MmNlYzlmMjBiMWM1Y2NiMWJj
ODZkOTFkZDdiYS4uMTk3NmEwMWE4ZDk4MGZkMzk5OWE3ZGZjZWM1OTQxYmU0ODBhZGJlNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvQWxnb3JpdGhtUmVn
aXN0cnlPcGVuU1NMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9Dcnlw
dG9BbGdvcml0aG1SZWdpc3RyeU9wZW5TU0wuY3BwCkBAIC0zNSw3ICszNSw5IEBACiAjaW5jbHVk
ZSAiQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgiCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtRUNE
SC5oIgogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUVDRFNBLmgiCisjaW5jbHVkZSAiQ3J5cHRv
QWxnb3JpdGhtSEtERi5oIgogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUhNQUMuaCIKKyNpbmNs
dWRlICJDcnlwdG9BbGdvcml0aG1QQktERjIuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1S
U0FFU19QS0NTMV92MV81LmgiCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1Mx
X3YxXzUuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5oIgpAQCAtNTcsNyAr
NTksOSBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjpwbGF0Zm9ybVJlZ2lzdGVyQWxn
b3JpdGhtcygpCiAgICAgcmVnaXN0ZXJBbGdvcml0aG08Q3J5cHRvQWxnb3JpdGhtQUVTX0tXPigp
OwogICAgIHJlZ2lzdGVyQWxnb3JpdGhtPENyeXB0b0FsZ29yaXRobUVDREg+KCk7CiAgICAgcmVn
aXN0ZXJBbGdvcml0aG08Q3J5cHRvQWxnb3JpdGhtRUNEU0E+KCk7CisgICAgcmVnaXN0ZXJBbGdv
cml0aG08Q3J5cHRvQWxnb3JpdGhtSEtERj4oKTsKICAgICByZWdpc3RlckFsZ29yaXRobTxDcnlw
dG9BbGdvcml0aG1ITUFDPigpOworICAgIHJlZ2lzdGVyQWxnb3JpdGhtPENyeXB0b0FsZ29yaXRo
bVBCS0RGMj4oKTsKICAgICByZWdpc3RlckFsZ29yaXRobTxDcnlwdG9BbGdvcml0aG1SU0FFU19Q
S0NTMV92MV81PigpOwogICAgIHJlZ2lzdGVyQWxnb3JpdGhtPENyeXB0b0FsZ29yaXRobVJTQVNT
QV9QS0NTMV92MV81PigpOwogICAgIHJlZ2lzdGVyQWxnb3JpdGhtPENyeXB0b0FsZ29yaXRobVJT
QV9PQUVQPigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGYyYTc4ZDkyNmU5MTY1NDhhNmFmNzNiMDJkNjg5Y2U2YTY4ZTQ0
ZjMuLjY4NTUzZTAwNjc3Yjg5ZGI5Nzg5ZTBhMzM3NTMzMmQ2NzEyMzNmODcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0wNy0wOCAgWW9zaGlha2kgSml0c3VrYXdhICA8eW9zaGlha2kuaml0
c3VrYXdhQHNvbnkuY29tPgorCisgICAgICAgIFtPcGVuU1NMXSBJbXBsZW1lbnQgSEtERiBhbmQg
UEJLREYyIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNzY1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEVuYWJsZSBIS0RGIGFuZCBQQktERjIgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTA3LTA3ICBZb3NoaWFraSBKaXRz
dWthd2EgIDx5b3NoaWFraS5qaXRzdWthd2FAc29ueS5jb20+CiAKICAgICAgICAgW09wZW5TU0xd
IEltcGxlbWVudCBDcnlwdG9BbGdvcml0aG1FQyoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDlmOTBlYWRmZjk0NjgwNDIyMjM1NGM0ODM1
ZWI1YjUxN2E3ZGI2YTguLjkxZDliMmFmYTVjNjE0ZjhiZDdiN2ZmOWU3NTFkMGI3MTZmMmQ1YTkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpA
QCAtNzYwLDIxICs3NjAsNiBAQCBjcnlwdG8vc3VidGxlL3JzYS1wc3MtaW1wb3J0LXBrY3M4LWtl
eS5odG1sIFsgUGFzcyBdCiBjcnlwdG8vc3VidGxlL3JzYS1wc3MtaW1wb3J0LXNwa2kta2V5Lmh0
bWwgWyBQYXNzIF0KIGNyeXB0by9zdWJ0bGUvcnNhLXBzcy1pbXBvcnQtc3BraS1rZXktZW1wdHkt
dXNhZ2VzLmh0bWwgWyBQYXNzIF0KIAotIyBIS0RGIGFuZCBQQktERjIgYXJlIG5vdCB5ZXQgc3Vw
cG9ydGVkLgotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWhrZGYta2V5Lmh0
bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1wYmtkZjIt
a2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvaGtkZi1kZXJpdmUtYml0cy1sZW5ndGgt
bGltaXRzLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvaGtkZi1kZXJpdmUtYml0cy1tYWxm
b3JtZWQtcGFyYW1ldHJzLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvaGtkZi1pbXBvcnQt
a2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvaGtkZi1pbXBvcnQta2V5LWRlcml2ZS1i
aXRzLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvaGtkZi1pbXBvcnQta2V5LWRlcml2ZS1o
bWFjLWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2hrZGYtaW1wb3J0LWtleS1tYWxm
b3JtZWQtcGFyYW1ldGVycy5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL3Bia2RmMi1kZXJp
dmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldHJzLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUv
cGJrZGYyLWltcG9ydC1rZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9wYmtkZjItaW1w
b3J0LWtleS1kZXJpdmUtYml0cy5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL3Bia2RmMi1p
bXBvcnQta2V5LWRlcml2ZS1obWFjLWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL3Bi
a2RmMi1pbXBvcnQta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0bWwgWyBTa2lwIF0KLQogIyBM
YXJnZSBzYWx0IHNob3VsZCBiZSBzdXBwb3J0ZWQuCiBjcnlwdG8vc3VidGxlL3JzYS1wc3MtaW1w
b3J0LWtleS1zaWduLWxhcmdlLXNhbHQuaHRtbCBbIEZhaWx1cmUgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433109</attachid>
            <date>2021-07-07 19:04:08 -0700</date>
            <delta_ts>2021-07-08 12:27:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227656-20210708110407.patch</filename>
            <type>text/plain</type>
            <size>7471</size>
            <attacher name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDIxMDBjYWUxOTRkZDRj
ODU4YTJhODljNGI0MDlhOGMxNzMwODhlOC4uNTRiZWYxMDhkZTVmYTZkMWEzNzY4YWNhZmVmNjU5
ZmI4OWI1MTJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA3LTA4ICBZb3No
aWFraSBKaXRzdWthd2EgIDx5b3NoaWFraS5qaXRzdWthd2FAc29ueS5jb20+CisKKyAgICAgICAg
W09wZW5TU0xdIEltcGxlbWVudCBIS0RGIGFuZCBQQktERjIgc3VwcG9ydAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NjU2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRnVqaWkgSGlyb25vcmkuCisKKyAgICAgICAgKiBjcnlwdG8vb3BlbnNzbC9Dcnlw
dG9BbGdvcml0aG1IS0RGT3BlblNTTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdv
cml0aG1IS0RGOjpwbGF0Zm9ybURlcml2ZUJpdHMpOiBJbXBsZW1lbnRlZCB3aXRoIEhLREYoKS4K
KyAgICAgICAgKiBjcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1QQktERjJPcGVuU1NMLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVBCS0RGMjo6cGxhdGZvcm1EZXJp
dmVCaXRzKToKKyAgICAgICAgKiBjcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1SZWdpc3Ry
eU9wZW5TU0wuY3BwOiBJbXBsZW1lbnRlZCB3aXRoIFBLQ1M1X1BCS0RGMl9ITUFDKCkuCisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6cGxhdGZvcm1SZWdpc3RlckFs
Z29yaXRobXMpOiBSZWdpc3RlciBIS0RGIGFuZCBQQktERjIuCisKIDIwMjEtMDctMDcgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJREJPYmplY3RTdG9yZS5rZXlQ
YXRoIHNob3VsZCBrZWVwIHJldHVybmluZyB0aGUgc2FtZSBvYmplY3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRobUhLREZPcGVuU1NMLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRobUhLREZPcGVu
U1NMLmNwcAppbmRleCBmMGI3YTQ2YzI5YzAxNTYxZTNjZDAwMWRkZjVmOGUxYWQ5NjYyNDg0Li5l
M2MxMTNmMzM2NGMwZTFkYjU5Y2VkNWJlODMzYWU0OThiZGYwMjUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1IS0RGT3BlblNTTC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvQWxnb3JpdGhtSEtERk9w
ZW5TU0wuY3BwCkBAIC0yOSwxNSArMjksMjMgQEAKICNpZiBFTkFCTEUoV0VCX0NSWVBUTykKIAog
I2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUhrZGZQYXJhbXMuaCIKLSNpbmNsdWRlICJDcnlwdG9L
ZXlFQy5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiQ3J5cHRvS2V5
UmF3LmgiCisjaW5jbHVkZSAiT3BlblNTTFV0aWxpdGllcy5oIgorI2luY2x1ZGUgPG9wZW5zc2wv
aGtkZi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50
OF90Pj4gQ3J5cHRvQWxnb3JpdGhtSEtERjo6cGxhdGZvcm1EZXJpdmVCaXRzKGNvbnN0IENyeXB0
b0FsZ29yaXRobUhrZGZQYXJhbXMmLCBjb25zdCBDcnlwdG9LZXlSYXcmLCBzaXplX3QpCitFeGNl
cHRpb25PcjxWZWN0b3I8dWludDhfdD4+IENyeXB0b0FsZ29yaXRobUhLREY6OnBsYXRmb3JtRGVy
aXZlQml0cyhjb25zdCBDcnlwdG9BbGdvcml0aG1Ia2RmUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25z
dCBDcnlwdG9LZXlSYXcmIGtleSwgc2l6ZV90IGxlbmd0aCkKIHsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworICAgIGF1
dG8gYWxnb3JpdGhtID0gZGlnZXN0QWxnb3JpdGhtKHBhcmFtZXRlcnMuaGFzaElkZW50aWZpZXIp
OworICAgIGlmICghYWxnb3JpdGhtKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3Vw
cG9ydGVkRXJyb3IgfTsKKworICAgIFZlY3Rvcjx1aW50OF90PiBvdXRwdXQobGVuZ3RoIC8gOCk7
CisgICAgaWYgKEhLREYob3V0cHV0LmRhdGEoKSwgb3V0cHV0LnNpemUoKSwgYWxnb3JpdGhtLCBr
ZXkua2V5KCkuZGF0YSgpLCBrZXkua2V5KCkuc2l6ZSgpLCBwYXJhbWV0ZXJzLnNhbHRWZWN0b3Io
KS5kYXRhKCksIHBhcmFtZXRlcnMuc2FsdFZlY3RvcigpLnNpemUoKSwgcGFyYW1ldGVycy5pbmZv
VmVjdG9yKCkuZGF0YSgpLCBwYXJhbWV0ZXJzLmluZm9WZWN0b3IoKS5zaXplKCkpIDw9IDApCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OworCisgICAgcmV0dXJu
IG91dHB1dDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvQWxnb3JpdGhtUEJLREYyT3BlblNTTC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1QQktERjJPcGVu
U1NMLmNwcAppbmRleCBiOTRmNjAyOWZkOGFiMzE3Mzg5MDdhNDI1M2Y3MWZiZGFmNmFmN2RlLi4x
MjRkN2UyZDFiMmI2YTVhMjk3MDE1MDg2NzU4ZTZmYmMzMjgzMzNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1QQktERjJPcGVuU1NMLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1QQktE
RjJPcGVuU1NMLmNwcApAQCAtMzAsMTQgKzMwLDI2IEBACiAKICNpbmNsdWRlICJDcnlwdG9BbGdv
cml0aG1QYmtkZjJQYXJhbXMuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlSYXcuaCIKLSNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIk9wZW5TU0xVdGlsaXRpZXMuaCIKKyNpbmNs
dWRlIDxvcGVuc3NsL2V2cC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUV4Y2VwdGlvbk9y
PFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvQWxnb3JpdGhtUEJLREYyOjpwbGF0Zm9ybURlcml2ZUJp
dHMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGJrZGYyUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5UmF3
Jiwgc2l6ZV90KQorRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1Q
QktERjI6OnBsYXRmb3JtRGVyaXZlQml0cyhjb25zdCBDcnlwdG9BbGdvcml0aG1QYmtkZjJQYXJh
bXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJhdyYga2V5LCBzaXplX3QgbGVuZ3RoKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBv
cnRlZEVycm9yIH07CisgICAgYXV0byBhbGdvcml0aG0gPSBkaWdlc3RBbGdvcml0aG0ocGFyYW1l
dGVycy5oYXNoSWRlbnRpZmllcik7CisgICAgaWYgKCFhbGdvcml0aG0pCisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworCisgICAgLy8gaXRlcmF0aW9ucyBt
dXN0IG5vdCBiZSB6ZXJvLgorICAgIGlmICghcGFyYW1ldGVycy5pdGVyYXRpb25zKQorICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKKworICAgIFZlY3Rvcjx1aW50
OF90PiBvdXRwdXQobGVuZ3RoIC8gOCk7CisgICAgaWYgKFBLQ1M1X1BCS0RGMl9ITUFDKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGtleS5rZXkoKS5kYXRhKCkpLCBrZXkua2V5KCkuc2l6
ZSgpLCBwYXJhbWV0ZXJzLnNhbHRWZWN0b3IoKS5kYXRhKCksIHBhcmFtZXRlcnMuc2FsdFZlY3Rv
cigpLnNpemUoKSwgcGFyYW1ldGVycy5pdGVyYXRpb25zLCBhbGdvcml0aG0sIG91dHB1dC5zaXpl
KCksIG91dHB1dC5kYXRhKCkpIDw9IDApCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVy
YXRpb25FcnJvciB9OworCisgICAgcmV0dXJuIG91dHB1dDsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnlPcGVuU1NMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVu
c3NsL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5T3BlblNTTC5jcHAKaW5kZXggNDMzZDg0ZWU3ZGU1
MmNlYzlmMjBiMWM1Y2NiMWJjODZkOTFkZDdiYS4uMTk3NmEwMWE4ZDk4MGZkMzk5OWE3ZGZjZWM1
OTQxYmU0ODBhZGJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wv
Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlPcGVuU1NMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeU9wZW5TU0wuY3BwCkBAIC0zNSw3
ICszNSw5IEBACiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgiCiAjaW5jbHVkZSAi
Q3J5cHRvQWxnb3JpdGhtRUNESC5oIgogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUVDRFNBLmgi
CisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSEtERi5oIgogI2luY2x1ZGUgIkNyeXB0b0FsZ29y
aXRobUhNQUMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QQktERjIuaCIKICNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmgiCiAjaW5jbHVkZSAiQ3J5cHRvQWxn
b3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SU0Ff
T0FFUC5oIgpAQCAtNTcsNyArNTksOSBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5Ojpw
bGF0Zm9ybVJlZ2lzdGVyQWxnb3JpdGhtcygpCiAgICAgcmVnaXN0ZXJBbGdvcml0aG08Q3J5cHRv
QWxnb3JpdGhtQUVTX0tXPigpOwogICAgIHJlZ2lzdGVyQWxnb3JpdGhtPENyeXB0b0FsZ29yaXRo
bUVDREg+KCk7CiAgICAgcmVnaXN0ZXJBbGdvcml0aG08Q3J5cHRvQWxnb3JpdGhtRUNEU0E+KCk7
CisgICAgcmVnaXN0ZXJBbGdvcml0aG08Q3J5cHRvQWxnb3JpdGhtSEtERj4oKTsKICAgICByZWdp
c3RlckFsZ29yaXRobTxDcnlwdG9BbGdvcml0aG1ITUFDPigpOworICAgIHJlZ2lzdGVyQWxnb3Jp
dGhtPENyeXB0b0FsZ29yaXRobVBCS0RGMj4oKTsKICAgICByZWdpc3RlckFsZ29yaXRobTxDcnlw
dG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81PigpOwogICAgIHJlZ2lzdGVyQWxnb3JpdGhtPENy
eXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81PigpOwogICAgIHJlZ2lzdGVyQWxnb3JpdGht
PENyeXB0b0FsZ29yaXRobVJTQV9PQUVQPigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYyYTc4ZDkyNmU5MTY1NDhhNmFm
NzNiMDJkNjg5Y2U2YTY4ZTQ0ZjMuLjViOTFjYjYyNjZhMmNlODIzMDRjMzk2MzE4OThhOTljNDEx
MWQyNGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wNy0wOCAgWW9zaGlha2kgSml0c3Vr
YXdhICA8eW9zaGlha2kuaml0c3VrYXdhQHNvbnkuY29tPgorCisgICAgICAgIFtPcGVuU1NMXSBJ
bXBsZW1lbnQgSEtERiBhbmQgUEJLREYyIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzY1NgorCisgICAgICAgIFJldmlld2VkIGJ5IEZ1
amlpIEhpcm9ub3JpLgorCisgICAgICAgIEVuYWJsZSBIS0RGIGFuZCBQQktERjIgdGVzdHMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTA3
LTA3ICBZb3NoaWFraSBKaXRzdWthd2EgIDx5b3NoaWFraS5qaXRzdWthd2FAc29ueS5jb20+CiAK
ICAgICAgICAgW09wZW5TU0xdIEltcGxlbWVudCBDcnlwdG9BbGdvcml0aG1FQyoKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDlmOTBlYWRm
Zjk0NjgwNDIyMjM1NGM0ODM1ZWI1YjUxN2E3ZGI2YTguLjkxZDliMmFmYTVjNjE0ZjhiZDdiN2Zm
OWU3NTFkMGI3MTZmMmQ1YTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNh
aXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8v
VGVzdEV4cGVjdGF0aW9ucwpAQCAtNzYwLDIxICs3NjAsNiBAQCBjcnlwdG8vc3VidGxlL3JzYS1w
c3MtaW1wb3J0LXBrY3M4LWtleS5odG1sIFsgUGFzcyBdCiBjcnlwdG8vc3VidGxlL3JzYS1wc3Mt
aW1wb3J0LXNwa2kta2V5Lmh0bWwgWyBQYXNzIF0KIGNyeXB0by9zdWJ0bGUvcnNhLXBzcy1pbXBv
cnQtc3BraS1rZXktZW1wdHktdXNhZ2VzLmh0bWwgWyBQYXNzIF0KIAotIyBIS0RGIGFuZCBQQktE
RjIgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLgotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXkt
ZGVyaXZlLWhrZGYta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQt
a2V5LWRlcml2ZS1wYmtkZjIta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvaGtkZi1k
ZXJpdmUtYml0cy1sZW5ndGgtbGltaXRzLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvaGtk
Zi1kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldHJzLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9z
dWJ0bGUvaGtkZi1pbXBvcnQta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvaGtkZi1p
bXBvcnQta2V5LWRlcml2ZS1iaXRzLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvaGtkZi1p
bXBvcnQta2V5LWRlcml2ZS1obWFjLWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2hr
ZGYtaW1wb3J0LWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy5odG1sIFsgU2tpcCBdCi1jcnlwdG8v
c3VidGxlL3Bia2RmMi1kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldHJzLmh0bWwgWyBTa2lw
IF0KLWNyeXB0by9zdWJ0bGUvcGJrZGYyLWltcG9ydC1rZXkuaHRtbCBbIFNraXAgXQotY3J5cHRv
L3N1YnRsZS9wYmtkZjItaW1wb3J0LWtleS1kZXJpdmUtYml0cy5odG1sIFsgU2tpcCBdCi1jcnlw
dG8vc3VidGxlL3Bia2RmMi1pbXBvcnQta2V5LWRlcml2ZS1obWFjLWtleS5odG1sIFsgU2tpcCBd
Ci1jcnlwdG8vc3VidGxlL3Bia2RmMi1pbXBvcnQta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0
bWwgWyBTa2lwIF0KLQogIyBMYXJnZSBzYWx0IHNob3VsZCBiZSBzdXBwb3J0ZWQuCiBjcnlwdG8v
c3VidGxlL3JzYS1wc3MtaW1wb3J0LWtleS1zaWduLWxhcmdlLXNhbHQuaHRtbCBbIEZhaWx1cmUg
XQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>