<?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>128360</bug_id>
          
          <creation_ts>2014-02-06 21:12:47 -0800</creation_ts>
          <short_desc>IDB: Remove the entirely unnecessary &quot;Value Key&quot; concept</short_desc>
          <delta_ts>2014-02-06 23:20:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>977708</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-06 21:12:47 -0800</bug_when>
    <thetext>IDB: Remove the entirely unnecessary &quot;Value Key&quot; concept

Turns out this and the primary key are the same thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977709</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-06 21:13:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/16009422&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977721</commentid>
    <comment_count>2</comment_count>
      <attachid>223420</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-06 21:42:59 -0800</bug_when>
    <thetext>Created attachment 223420
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977722</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 21:44:10 -0800</bug_when>
    <thetext>Attachment 223420 did not pass style-queue:


ERROR: Source/WebCore/Modules/indexeddb/IDBTransactionBackendOperations.cpp:154:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.cpp:43:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.cpp:66:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977723</commentid>
    <comment_count>4</comment_count>
      <attachid>223421</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-06 21:45:54 -0800</bug_when>
    <thetext>Created attachment 223421
Patch v2 - Changelog comment for one method that has non-mechanical changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977724</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 21:46:42 -0800</bug_when>
    <thetext>Attachment 223421 did not pass style-queue:


ERROR: Source/WebCore/Modules/indexeddb/IDBTransactionBackendOperations.cpp:154:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.cpp:43:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.cpp:66:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977725</commentid>
    <comment_count>6</comment_count>
      <attachid>223421</attachid>
    <who name="">mitz</who>
    <bug_when>2014-02-06 21:51:46 -0800</bug_when>
    <thetext>Comment on attachment 223421
Patch v2 - Changelog comment for one method that has non-mechanical changes.

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        All cursor operations were setup to pass a value key parameter around, but it was:

setup -&gt; set up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977732</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-06 22:33:47 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/163612</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977740</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-06 23:20:14 -0800</bug_when>
    <thetext>and http://trac.webkit.org/changeset/163613</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223420</attachid>
            <date>2014-02-06 21:42:59 -0800</date>
            <delta_ts>2014-02-06 21:45:54 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>78700</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhMDhhYzY4Li4wMTA5ZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDMg
QEAKIDIwMTQtMDItMDYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIElEQjogUmVtb3ZlIHRoZSBlbnRpcmVseSB1bm5lY2Vzc2FyeSAiVmFsdWUgS2V5IiBjb25j
ZXB0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgz
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMgKE5vIGNoYW5nZSBpbiBiZWhhdmlvcikKKworICAgICAgICBBbGwgY3Vyc29yIG9w
ZXJhdGlvbnMgd2VyZSBzZXR1cCB0byBwYXNzIGEgdmFsdWUga2V5IHBhcmFtZXRlciBhcm91bmQs
IGJ1dCBpdCB3YXM6CisgICAgICAgIDEgLSBFbnRpcmVseSB1bnVzZWQKKyAgICAgICAgMiAtIFRo
ZSBzYW1lIHRoaW5nIHRoYXQgdGhlIHByaW1hcnkga2V5IGlzIHN1cHBvc2VkIHRvIGJlCisKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaDoKKworICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ3Vyc29yQmFja2VuZDo6dXBkYXRlQ3Vyc29yRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJDdXJzb3JCYWNrZW5kOjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yQmFja2VuZC5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
QmFja2VuZE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yQWR2YW5jZU9w
ZXJhdGlvbjo6cGVyZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3JJdGVyYXRpb25PcGVy
YXRpb246OnBlcmZvcm0pOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaDoKKworICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6T3BlbkN1cnNvck9wZXJhdGlvbjo6cGVyZm9ybSk6CisKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJTZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvbGV2ZWxkYi9JREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQjo6b3BlbkN1cnNvcik6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQjo6Y3Vyc29yQWR2YW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQjo6Y3Vyc29ySXRl
cmF0ZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJTZXJ2ZXJDb25u
ZWN0aW9uTGV2ZWxEQi5oOgorCisyMDE0LTAyLTA2ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KKwogICAgICAgICBJREI6IHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY2xlYXIu
aHRtbCBmYWlscwogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTU5OTcxNTU+IGFuZCBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MjgyCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJhY2tzLmgKaW5kZXggMjZhMjJkYi4uNjk1
NzY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ2Fs
bGJhY2tzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJh
Y2tzLmgKQEAgLTY3LDcgKzY3LDYgQEAgcHVibGljOgogCiAgICAgLy8gRnJvbSBJREJDdXJzb3Iu
YWR2YW5jZSgpL2NvbnRpbnVlKCkKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQ
dHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2hh
cmVkQnVmZmVyPikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJ
REJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+LCBQYXNzUmVmUHRyPElEQktleT4gdmFsdWVLZXkpID0gMDsKIAogICAgIC8vIEZyb20g
SURCQ3Vyc29yLmFkdmFuY2UoKS9jb250aW51ZSgpCiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vz
c1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4+JiBrZXlzLCBjb25zdCBW
ZWN0b3I8UmVmUHRyPElEQktleT4+JiBwcmltYXJ5S2V5cywgY29uc3QgVmVjdG9yPFJlZlB0cjxT
aGFyZWRCdWZmZXI+PiYgdmFsdWVzKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmQuY3BwCmluZGV4IDdmOTYxOGEuLjM4MDFj
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvckJhY2tlbmQuY3BwCkBAIC04OSwxMiArODksMTEgQEAgdm9pZCBJREJDdXJzb3JCYWNrZW5k
OjpjbG9zZSgpCiAgICAgbV9zYXZlZEN1cnNvcklEID0gMDsKIH0KIAotdm9pZCBJREJDdXJzb3JC
YWNrZW5kOjp1cGRhdGVDdXJzb3JEYXRhKElEQktleSoga2V5LCBJREJLZXkqIHByaW1hcnlLZXks
IFNoYXJlZEJ1ZmZlciogdmFsdWVCdWZmZXIsIElEQktleSogdmFsdWVLZXkpCit2b2lkIElEQkN1
cnNvckJhY2tlbmQ6OnVwZGF0ZUN1cnNvckRhdGEoSURCS2V5KiBrZXksIElEQktleSogcHJpbWFy
eUtleSwgU2hhcmVkQnVmZmVyKiB2YWx1ZUJ1ZmZlcikKIHsKICAgICBtX2N1cnJlbnRLZXkgPSBr
ZXk7CiAgICAgbV9jdXJyZW50UHJpbWFyeUtleSA9IHByaW1hcnlLZXk7CiAgICAgbV9jdXJyZW50
VmFsdWVCdWZmZXIgPSB2YWx1ZUJ1ZmZlcjsKLSAgICBtX2N1cnJlbnRWYWx1ZUtleSA9IHZhbHVl
S2V5OwogfQogCiB2b2lkIElEQkN1cnNvckJhY2tlbmQ6OmNsZWFyKCkKQEAgLTEwMyw3ICsxMDIs
NiBAQCB2b2lkIElEQkN1cnNvckJhY2tlbmQ6OmNsZWFyKCkKICAgICBtX2N1cnJlbnRLZXkgPSBu
dWxscHRyOwogICAgIG1fY3VycmVudFByaW1hcnlLZXkgPSBudWxscHRyOwogICAgIG1fY3VycmVu
dFZhbHVlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBtX2N1cnJlbnRWYWx1ZUtleSA9IG51bGxwdHI7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmQuaAppbmRleCA3ZTAwNTQ2Li45OGZjYzI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JC
YWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
QmFja2VuZC5oCkBAIC02MCw4ICs2MCw3IEBAIHB1YmxpYzoKICAgICBJREJLZXkqIGtleSgpIGNv
bnN0IHsgcmV0dXJuIG1fY3VycmVudEtleS5nZXQoKTsgfQogICAgIElEQktleSogcHJpbWFyeUtl
eSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFByaW1hcnlLZXkuZ2V0KCk7IH0KICAgICBTaGFy
ZWRCdWZmZXIqIHZhbHVlQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gKG1fY3Vyc29yVHlwZSA9PSBJ
bmRleGVkREI6OkN1cnNvclR5cGU6OktleU9ubHkpID8gbnVsbHB0ciA6IG1fY3VycmVudFZhbHVl
QnVmZmVyLmdldCgpOyB9Ci0gICAgSURCS2V5KiB2YWx1ZUtleSgpIGNvbnN0IHsgcmV0dXJuICht
X2N1cnNvclR5cGUgPT0gSW5kZXhlZERCOjpDdXJzb3JUeXBlOjpLZXlPbmx5KSA/IG51bGxwdHIg
OiBtX2N1cnJlbnRWYWx1ZUtleS5nZXQoKTsgfQotICAgIHZvaWQgdXBkYXRlQ3Vyc29yRGF0YShJ
REJLZXkqLCBJREJLZXkqIHByaW1hcnlLZXksIFNoYXJlZEJ1ZmZlciogdmFsdWVCdWZmZXIsIElE
QktleSogdmFsdWVLZXkpOworICAgIHZvaWQgdXBkYXRlQ3Vyc29yRGF0YShJREJLZXkqLCBJREJL
ZXkqIHByaW1hcnlLZXksIFNoYXJlZEJ1ZmZlciogdmFsdWVCdWZmZXIpOwogCiAgICAgdm9pZCBj
bG9zZSgpOwogCkBAIC04OCw3ICs4Nyw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPElEQktleT4g
bV9jdXJyZW50S2V5OwogICAgIFJlZlB0cjxJREJLZXk+IG1fY3VycmVudFByaW1hcnlLZXk7CiAg
ICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9jdXJyZW50VmFsdWVCdWZmZXI7Ci0gICAgUmVmUHRy
PElEQktleT4gbV9jdXJyZW50VmFsdWVLZXk7CiAKICAgICBib29sIG1fY2xvc2VkOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tl
bmRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvckJhY2tlbmRPcGVyYXRpb25zLmNwcAppbmRleCA1M2Y3ODY5Li5mYjE2ZmM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yQmFja2VuZE9wZXJhdGlvbnMuY3BwCkBAIC00MCwxNSArNDAsMTUgQEAgdm9pZCBDdXJzb3JB
ZHZhbmNlT3BlcmF0aW9uOjpwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9u
Q2FsbGJhY2spCiAgICAgTE9HKFN0b3JhZ2VBUEksICJDdXJzb3JBZHZhbmNlT3BlcmF0aW9uIik7
CiAKICAgICBSZWZQdHI8Q3Vyc29yQWR2YW5jZU9wZXJhdGlvbj4gb3BlcmF0aW9uKHRoaXMpOwot
ICAgIGF1dG8gY2FsbGJhY2sgPSBbdGhpcywgb3BlcmF0aW9uLCBjb21wbGV0aW9uQ2FsbGJhY2td
KFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWVCdWZmZXIsIFBhc3NSZWZQdHI8SURCS2V5PiB2
YWx1ZUtleSwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikgeworICAgIGF1dG8g
Y2FsbGJhY2sgPSBbdGhpcywgb3BlcmF0aW9uLCBjb21wbGV0aW9uQ2FsbGJhY2tdKFBhc3NSZWZQ
dHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gdmFsdWVCdWZmZXIsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4g
ZXJyb3IpIHsKICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICBtX2N1cnNvci0+Y2xl
YXIoKTsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGUgTGV2ZWxEQiBiYWNrZW5kIGNhbGxzIG9u
U3VjY2VzcyBldmVuIG9uIGZhaWx1cmUuCiAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgcHJvYmFi
bHkgaGF2ZSB0byBjaGFuZ2Ugc29vbiAoZm9yIHNhbml0eSkgYW5kIHdpbGwgcHJvYmFibHkgYnJl
YWsgTGV2ZWxEQgogICAgICAgICAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzdGF0aWNfY2Fz
dDxTaGFyZWRCdWZmZXIqPigwKSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2N1
cnNvci0+dXBkYXRlQ3Vyc29yRGF0YShrZXkuZ2V0KCksIHByaW1hcnlLZXkuZ2V0KCksIHZhbHVl
QnVmZmVyLmdldCgpLCB2YWx1ZUtleS5nZXQoKSk7Ci0gICAgICAgICAgICBtX2NhbGxiYWNrcy0+
b25TdWNjZXNzKGtleSwgcHJpbWFyeUtleSwgdmFsdWVCdWZmZXIsIHZhbHVlS2V5KTsKKyAgICAg
ICAgICAgIG1fY3Vyc29yLT51cGRhdGVDdXJzb3JEYXRhKGtleS5nZXQoKSwgcHJpbWFyeUtleS5n
ZXQoKSwgdmFsdWVCdWZmZXIuZ2V0KCkpOworICAgICAgICAgICAgbV9jYWxsYmFja3MtPm9uU3Vj
Y2VzcyhrZXksIHByaW1hcnlLZXksIHZhbHVlQnVmZmVyKTsKICAgICAgICAgfQogCiAgICAgICAg
IC8vIEZJWE1FOiBDdXJzb3Igb3BlcmF0aW9ucyBzaG91bGQgYmUgYWJsZSB0byBwYXNzIGFsb25n
IGFuIGVycm9yIGluc3RlYWQgb2Ygc3VjY2VzcwpAQCAtNjMsMTUgKzYzLDE1IEBAIHZvaWQgQ3Vy
c29ySXRlcmF0aW9uT3BlcmF0aW9uOjpwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21w
bGV0aW9uQ2FsbGJhY2spCiAgICAgTE9HKFN0b3JhZ2VBUEksICJDdXJzb3JJdGVyYXRpb25PcGVy
YXRpb24iKTsKIAogICAgIFJlZlB0cjxDdXJzb3JJdGVyYXRpb25PcGVyYXRpb24+IG9wZXJhdGlv
bih0aGlzKTsKLSAgICBhdXRvIGNhbGxiYWNrID0gW3RoaXMsIG9wZXJhdGlvbiwgY29tcGxldGlv
bkNhbGxiYWNrXShQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktleT4gcHJp
bWFyeUtleSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlQnVmZmVyLCBQYXNzUmVmUHRy
PElEQktleT4gdmFsdWVLZXksIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IpIHsK
KyAgICBhdXRvIGNhbGxiYWNrID0gW3RoaXMsIG9wZXJhdGlvbiwgY29tcGxldGlvbkNhbGxiYWNr
XShQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwg
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlQnVmZmVyLCBQYXNzUmVmUHRyPElEQkRhdGFi
YXNlRXJyb3I+IGVycm9yKSB7CiAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgICAgbV9j
dXJzb3ItPmNsZWFyKCk7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhlIExldmVsREIgYmFja2Vu
ZCBjYWxscyBvblN1Y2Nlc3MgZXZlbiBvbiBmYWlsdXJlLgogICAgICAgICAgICAgLy8gVGhpcyB3
aWxsIHByb2JhYmx5IGhhdmUgdG8gY2hhbmdlIHNvb24gKGZvciBzYW5pdHkpIGFuZCB3aWxsIHBy
b2JhYmx5IGJyZWFrIExldmVsREIKICAgICAgICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Mo
c3RhdGljX2Nhc3Q8U2hhcmVkQnVmZmVyKj4oMCkpOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgbV9jdXJzb3ItPnVwZGF0ZUN1cnNvckRhdGEoa2V5LmdldCgpLCBwcmltYXJ5S2V5Lmdl
dCgpLCB2YWx1ZUJ1ZmZlci5nZXQoKSwgdmFsdWVLZXkuZ2V0KCkpOwotICAgICAgICAgICAgbV9j
YWxsYmFja3MtPm9uU3VjY2VzcyhrZXksIHByaW1hcnlLZXksIHZhbHVlQnVmZmVyLCB2YWx1ZUtl
eSk7CisgICAgICAgICAgICBtX2N1cnNvci0+dXBkYXRlQ3Vyc29yRGF0YShrZXkuZ2V0KCksIHBy
aW1hcnlLZXkuZ2V0KCksIHZhbHVlQnVmZmVyLmdldCgpKTsKKyAgICAgICAgICAgIG1fY2FsbGJh
Y2tzLT5vblN1Y2Nlc3Moa2V5LCBwcmltYXJ5S2V5LCB2YWx1ZUJ1ZmZlcik7CiAgICAgICAgIH0K
IAogICAgICAgICAvLyBGSVhNRTogQ3Vyc29yIG9wZXJhdGlvbnMgc2hvdWxkIGJlIGFibGUgdG8g
cGFzcyBhbG9uZyBhbiBlcnJvciBpbnN0ZWFkIG9mIHN1Y2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggYjQyMTEyNS4uY2FlNzM0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5j
cHAKQEAgLTQwNywxMiArNDA3LDcgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3NJbnRlcm5h
bChjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdmFsdWUpCiAKIHZvaWQgSURCUmVxdWVz
dDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBw
cmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyKQogewotICAgIG9uU3Vj
Y2VzcyhrZXksIHByaW1hcnlLZXksIGJ1ZmZlciwgbnVsbHB0cik7Ci19Ci0KLXZvaWQgSURCUmVx
dWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5
PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBQYXNzUmVmUHRy
PElEQktleT4pCi17Ci0gICAgTE9HKFN0b3JhZ2VBUEksICJJREJSZXF1ZXN0OjpvblN1Y2Nlc3Mo
a2V5LCBwcmltYXJ5S2V5LCB2YWx1ZUJ1ZmZlciwgdmFsdWVLZXkpIik7CisgICAgTE9HKFN0b3Jh
Z2VBUEksICJJREJSZXF1ZXN0OjpvblN1Y2Nlc3Moa2V5LCBwcmltYXJ5S2V5LCB2YWx1ZUJ1ZmZl
cikiKTsKICAgICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQogICAgICAgICByZXR1cm47CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAppbmRleCA5
YjcxZjA5Li40NDI3ZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5oCkBAIC05Myw3ICs5Myw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKGludDY0X3QpOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoKTsKICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJL
ZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPik7Ci0gICAgdmlydHVhbCB2
b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiBwcmlt
YXJ5S2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5PiB2YWx1
ZUtleSk7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0
b3I8UmVmUHRyPElEQktleT4+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+PiYsIGNvbnN0
IFZlY3RvcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4mKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
IC8vIE5vdCBpbXBsZW1lbnRlZC4gQ2FsbGJhY2sgc2hvdWxkIG5vdCByZWFjaCB0aGUgcmVuZGVy
ZXIgc2lkZS4KIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IGVhNTUx
NjguLjNjZTQyODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlNlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJTZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVJbmRleChJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBE
ZWxldGVJbmRleE9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPElEQkRh
dGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGdldChJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBHZXRPcGVyYXRpb24mLCBzdGQ6OmZ1
bmN0aW9uPHZvaWQoY29uc3QgSURCR2V0UmVzdWx0JiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVy
cm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwdXQoSURC
VHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgUHV0T3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2
b2lkKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNv
bXBsZXRpb25DYWxsYmFjaykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKElEQlRy
YW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IE9wZW5DdXJzb3JPcGVyYXRpb24mLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQoaW50NjRfdCwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4s
IFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRy
PElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIG9wZW5DdXJzb3IoSURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgT3BlbkN1cnNv
ck9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChpbnQ2NF90LCBQYXNzUmVmUHRyPElEQktl
eT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBQYXNzUmVm
UHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGNvdW50KElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IENvdW50T3BlcmF0
aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3QsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VF
cnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
UmFuZ2UoSURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgRGVsZXRlUmFuZ2VPcGVyYXRpb24m
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBs
ZXRpb25DYWxsYmFjaykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhck9iamVjdFN0b3JlKElE
QlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IENsZWFyT2JqZWN0U3RvcmVPcGVyYXRpb24mLCBz
dGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRp
b25DYWxsYmFjaykgPSAwOwpAQCAtODcsOCArODcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGNoYW5nZURhdGFiYXNlVmVyc2lvbihJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBJ
REJEYXRhYmFzZUJhY2tlbmQ6OlZlcnNpb25DaGFuZ2VPcGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykg
PSAwOwogCiAgICAgLy8gQ3Vyc29yLWxldmVsIG9wZXJhdGlvbnMKLSAgICB2aXJ0dWFsIHZvaWQg
Y3Vyc29yQWR2YW5jZShJREJDdXJzb3JCYWNrZW5kJiwgY29uc3QgQ3Vyc29yQWR2YW5jZU9wZXJh
dGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8
SURCS2V5PiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRyPElEQktleT4sIFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgY3Vyc29ySXRlcmF0ZShJREJDdXJzb3JCYWNrZW5kJiwgY29uc3QgQ3Vy
c29ySXRlcmF0aW9uT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURC
S2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NS
ZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25D
YWxsYmFjaykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjdXJzb3JBZHZhbmNlKElEQkN1cnNvckJh
Y2tlbmQmLCBjb25zdCBDdXJzb3JBZHZhbmNlT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lk
KFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJh
Y2spID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY3Vyc29ySXRlcmF0ZShJREJDdXJzb3JCYWNrZW5k
JiwgY29uc3QgQ3Vyc29ySXRlcmF0aW9uT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBh
c3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2sp
ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNr
ZW5kT3BlcmF0aW9ucy5jcHAKaW5kZXggODZiN2MyYi4uZjU4ZjZhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb25CYWNrZW5kT3BlcmF0aW9ucy5jcHAKQEAgLTE1MSwxNSArMTUxLDE1IEBAIHZvaWQgT3Bl
bkN1cnNvck9wZXJhdGlvbjo6cGVyZm9ybShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlv
bkNhbGxiYWNrKQogICAgIExPRyhTdG9yYWdlQVBJLCAiT3BlbkN1cnNvck9wZXJhdGlvbiIpOwog
CiAgICAgUmVmUHRyPE9wZW5DdXJzb3JPcGVyYXRpb24+IG9wZXJhdGlvbih0aGlzKTsKLSAgICBh
dXRvIGNhbGxiYWNrID0gW3RoaXMsIG9wZXJhdGlvbiwgY29tcGxldGlvbkNhbGxiYWNrXShpbnQ2
NF90IGN1cnNvcklELCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktleT4g
cHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlQnVmZmVyLCBQYXNzUmVm
UHRyPElEQktleT4gdmFsdWVLZXksIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pIHsKKyAg
ICBhdXRvIGNhbGxiYWNrID0gW3RoaXMsIG9wZXJhdGlvbiwgY29tcGxldGlvbkNhbGxiYWNrXShp
bnQ2NF90IGN1cnNvcklELCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktl
eT4gcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlQnVmZmVyLCBQYXNz
UmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KSB7CiAgICAgICAgIC8vIEZJWE1FOiBXaGVuIHRoZSBM
ZXZlbERCIHBvcnQgZmFpbHMgdG8gb3BlbiBhIGJhY2tpbmcgc3RvcmUgY3Vyc29yIGl0IGNhbGxz
IG9uU3VjY2VzcyhudWxscHRyKTsKICAgICAgICAgLy8gVGhpcyBzZWVtcyBub25zZW5zaWNhbCBh
bmQgbWlnaHQgaGF2ZSB0byBjaGFuZ2Ugc29vbiwgYnJlYWtpbmcgdGhlbS4KICAgICAgICAgaWYg
KCFjdXJzb3JJRCkKICAgICAgICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Moc3RhdGljX2Nh
c3Q8U2hhcmVkQnVmZmVyKj4oMCkpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIFJlZlB0
cjxJREJDdXJzb3JCYWNrZW5kPiBjdXJzb3IgPSBJREJDdXJzb3JCYWNrZW5kOjpjcmVhdGUoY3Vy
c29ySUQsIG1fY3Vyc29yVHlwZSwgbV90YXNrVHlwZSwgKm1fdHJhbnNhY3Rpb24sIG1fb2JqZWN0
U3RvcmVJRCk7Ci0gICAgICAgICAgICBpZiAoa2V5IHx8IHByaW1hcnlLZXkgfHwgdmFsdWVCdWZm
ZXIgfHwgdmFsdWVLZXkpCi0gICAgICAgICAgICAgICAgY3Vyc29yLT51cGRhdGVDdXJzb3JEYXRh
KGtleS5nZXQoKSwgcHJpbWFyeUtleS5nZXQoKSwgdmFsdWVCdWZmZXIuZ2V0KCksIHZhbHVlS2V5
LmdldCgpKTsKKyAgICAgICAgICAgIGlmIChrZXkgfHwgcHJpbWFyeUtleSB8fCB2YWx1ZUJ1ZmZl
cikKKyAgICAgICAgICAgICAgICBjdXJzb3ItPnVwZGF0ZUN1cnNvckRhdGEoa2V5LmdldCgpLCBw
cmltYXJ5S2V5LmdldCgpLCB2YWx1ZUJ1ZmZlci5nZXQoKSk7CiAKICAgICAgICAgICAgIG1fY2Fs
bGJhY2tzLT5vblN1Y2Nlc3MoY3Vyc29yLnJlbGVhc2UoKSk7CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCU2VydmVyQ29u
bmVjdGlvbkxldmVsREIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2
ZWxkYi9JREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQi5jcHAKaW5kZXggZWUyYzMxYS4uZDRiMDA0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9J
REJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvbGV2ZWxkYi9JREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQi5jcHAKQEAgLTQy
OSw3ICs0MjksNyBAQCB2b2lkIElEQlNlcnZlckNvbm5lY3Rpb25MZXZlbERCOjpwdXQoSURCVHJh
bnNhY3Rpb25CYWNrZW5kJiB0cmFuc2FjdGlvbiwgY29uc3QgUAogICAgIH0pOwogfQogCi12b2lk
IElEQlNlcnZlckNvbm5lY3Rpb25MZXZlbERCOjpvcGVuQ3Vyc29yKElEQlRyYW5zYWN0aW9uQmFj
a2VuZCYgdHJhbnNhY3Rpb24sIGNvbnN0IE9wZW5DdXJzb3JPcGVyYXRpb24mIG9wZXJhdGlvbiwg
c3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3QsIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5Piwg
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykKK3ZvaWQg
SURCU2VydmVyQ29ubmVjdGlvbkxldmVsREI6Om9wZW5DdXJzb3IoSURCVHJhbnNhY3Rpb25CYWNr
ZW5kJiB0cmFuc2FjdGlvbiwgY29uc3QgT3BlbkN1cnNvck9wZXJhdGlvbiYgb3BlcmF0aW9uLCBz
dGQ6OmZ1bmN0aW9uPHZvaWQoaW50NjRfdCwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRy
PElEQktleT4sIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykKIHsKICAgICBJREJCYWNraW5nU3RvcmVUcmFu
c2FjdGlvbkxldmVsREIqIGJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uID0gbV9iYWNraW5nU3RvcmVU
cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uLmlkKCkpOwogICAgIEFTU0VSVChiYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbik7CkBAIC00NjIsNyArNDYyLDcgQEAgdm9pZCBJREJTZXJ2ZXJDb25uZWN0
aW9uTGV2ZWxEQjo6b3BlbkN1cnNvcihJREJUcmFuc2FjdGlvbkJhY2tlbmQmIHRyYW5zYWN0aW9u
LAogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY29tcGxldGlvbkNhbGxiYWNrLCBjdXJzb3JJRF0o
KSB7CiAgICAgICAgIC8vIEZJWE1FOiBOZWVkIHRvIGFjdHVhbGx5IHBhc3MgdGhlIGluaXRpYWwg
a2V5LCBwcmltYXJ5S2V5LCBhbmQgdmFsdWUgdG8gdGhlIGNhbGxiYWNrLgotICAgICAgICBjb21w
bGV0aW9uQ2FsbGJhY2soY3Vyc29ySUQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIpOworICAgICAgICBjb21wbGV0aW9uQ2FsbGJhY2soY3Vyc29ySUQsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIpOwogICAgIH0pOwogfQogCkBAIC01NjksNyAr
NTY5LDcgQEAgdm9pZCBJREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQjo6Y2hhbmdlRGF0YWJhc2VW
ZXJzaW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZCYgdHIKICAgICBBU1lOQ19DT01QTEVUSU9OX0NB
TExCQUNLX1dJVEhfTlVMTF9BUkcoY29tcGxldGlvbkNhbGxiYWNrKTsKIH0KIAotdm9pZCBJREJT
ZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQjo6Y3Vyc29yQWR2YW5jZShJREJDdXJzb3JCYWNrZW5kJiBj
dXJzb3IsIGNvbnN0IEN1cnNvckFkdmFuY2VPcGVyYXRpb24mIG9wZXJhdGlvbiwgc3RkOjpmdW5j
dGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykKK3ZvaWQgSURCU2VydmVyQ29ubmVjdGlv
bkxldmVsREI6OmN1cnNvckFkdmFuY2UoSURCQ3Vyc29yQmFja2VuZCYgY3Vyc29yLCBjb25zdCBD
dXJzb3JBZHZhbmNlT3BlcmF0aW9uJiBvcGVyYXRpb24sIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNz
UmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKQog
ewogICAgIElEQkJhY2tpbmdTdG9yZUN1cnNvckxldmVsREIqIGJhY2tpbmdTdG9yZUN1cnNvciA9
IGN1cnNvci5pZCgpID8gbV9iYWNraW5nU3RvcmVDdXJzb3JzLmdldChjdXJzb3IuaWQoKSkgOiAw
OwogI2lmbmRlZiBOREVCVUcKQEAgLTU4MSw3ICs1ODEsNyBAQCB2b2lkIElEQlNlcnZlckNvbm5l
Y3Rpb25MZXZlbERCOjpjdXJzb3JBZHZhbmNlKElEQkN1cnNvckJhY2tlbmQmIGN1cnNvciwgY29u
c3QgQwogICAgICAgICBtX2JhY2tpbmdTdG9yZUN1cnNvcnMucmVtb3ZlKGN1cnNvci5pZCgpKTsK
IAogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtjb21wbGV0aW9uQ2FsbGJhY2tdKCkgewotICAg
ICAgICAgICAgY29tcGxldGlvbkNhbGxiYWNrKG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51
bGxwdHIsIElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5r
bm93bkVycm9yLCAiVW5rbm93biBlcnJvciBhZHZhbmNpbmcgY3Vyc29yIikpOworICAgICAgICAg
ICAgY29tcGxldGlvbkNhbGxiYWNrKG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElEQkRhdGFi
YXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCAiVW5r
bm93biBlcnJvciBhZHZhbmNpbmcgY3Vyc29yIikpOwogICAgICAgICB9KTsKIAogICAgICAgICBy
ZXR1cm47CkBAIC01OTEsMTEgKzU5MSwxMSBAQCB2b2lkIElEQlNlcnZlckNvbm5lY3Rpb25MZXZl
bERCOjpjdXJzb3JBZHZhbmNlKElEQkN1cnNvckJhY2tlbmQmIGN1cnNvciwgY29uc3QgQwogICAg
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlID0gYmFja2luZ1N0b3JlQ3Vyc29yLT52YWx1ZSgp
OwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY29tcGxldGlvbkNhbGxiYWNrLCBrZXksIHByaW1h
cnlLZXksIHZhbHVlXSgpIHsKLSAgICAgICAgY29tcGxldGlvbkNhbGxiYWNrKGtleSwgcHJpbWFy
eUtleSwgdmFsdWUsIG51bGxwdHIsIElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCAiVW5rbm93biBlcnJvciBhZHZhbmNpbmcgY3Vyc29y
IikpOworICAgICAgICBjb21wbGV0aW9uQ2FsbGJhY2soa2V5LCBwcmltYXJ5S2V5LCB2YWx1ZSwg
SURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJy
b3IsICJVbmtub3duIGVycm9yIGFkdmFuY2luZyBjdXJzb3IiKSk7CiAgICAgfSk7CiB9CiAKLXZv
aWQgSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREI6OmN1cnNvckl0ZXJhdGUoSURCQ3Vyc29yQmFj
a2VuZCYgY3Vyc29yLCBjb25zdCBDdXJzb3JJdGVyYXRpb25PcGVyYXRpb24mIG9wZXJhdGlvbiwg
c3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+
LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykKK3ZvaWQgSURCU2VydmVy
Q29ubmVjdGlvbkxldmVsREI6OmN1cnNvckl0ZXJhdGUoSURCQ3Vyc29yQmFja2VuZCYgY3Vyc29y
LCBjb25zdCBDdXJzb3JJdGVyYXRpb25PcGVyYXRpb24mIG9wZXJhdGlvbiwgc3RkOjpmdW5jdGlv
bjx2b2lkKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9u
Q2FsbGJhY2spCiB7CiAgICAgSURCQmFja2luZ1N0b3JlQ3Vyc29yTGV2ZWxEQiogYmFja2luZ1N0
b3JlQ3Vyc29yID0gY3Vyc29yLmlkKCkgPyBtX2JhY2tpbmdTdG9yZUN1cnNvcnMuZ2V0KGN1cnNv
ci5pZCgpKSA6IDA7CiAjaWZuZGVmIE5ERUJVRwpAQCAtNjA3LDcgKzYwNyw3IEBAIHZvaWQgSURC
U2VydmVyQ29ubmVjdGlvbkxldmVsREI6OmN1cnNvckl0ZXJhdGUoSURCQ3Vyc29yQmFja2VuZCYg
Y3Vyc29yLCBjb25zdCBDCiAgICAgICAgIG1fYmFja2luZ1N0b3JlQ3Vyc29ycy5yZW1vdmUoY3Vy
c29yLmlkKCkpOwogCiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2NvbXBsZXRpb25DYWxsYmFj
a10oKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uQ2FsbGJhY2sobnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgbnVsbHB0ciwgSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhj
ZXB0aW9uOjpVbmtub3duRXJyb3IsICJVbmtub3duIGVycm9yIGFkdmFuY2luZyBjdXJzb3IiKSk7
CisgICAgICAgICAgICBjb21wbGV0aW9uQ2FsbGJhY2sobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciwgSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3du
RXJyb3IsICJVbmtub3duIGVycm9yIGFkdmFuY2luZyBjdXJzb3IiKSk7CiAgICAgICAgIH0pOwog
CiAgICAgICAgIHJldHVybjsKQEAgLTYxNyw3ICs2MTcsNyBAQCB2b2lkIElEQlNlcnZlckNvbm5l
Y3Rpb25MZXZlbERCOjpjdXJzb3JJdGVyYXRlKElEQkN1cnNvckJhY2tlbmQmIGN1cnNvciwgY29u
c3QgQwogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlID0gYmFja2luZ1N0b3JlQ3Vyc29y
LT52YWx1ZSgpOwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY29tcGxldGlvbkNhbGxiYWNrLCBr
ZXksIHByaW1hcnlLZXksIHZhbHVlXSgpIHsKLSAgICAgICAgY29tcGxldGlvbkNhbGxiYWNrKGtl
eSwgcHJpbWFyeUtleSwgdmFsdWUsIG51bGxwdHIsIElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCAiVW5rbm93biBlcnJvciBhZHZhbmNp
bmcgY3Vyc29yIikpOworICAgICAgICBjb21wbGV0aW9uQ2FsbGJhY2soa2V5LCBwcmltYXJ5S2V5
LCB2YWx1ZSwgSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpV
bmtub3duRXJyb3IsICJVbmtub3duIGVycm9yIGFkdmFuY2luZyBjdXJzb3IiKSk7CiAgICAgfSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVs
ZGIvSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2xldmVsZGIvSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREIuaAppbmRleCBkYmM4
YzkxLi44NGQ3OTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9sZXZlbGRiL0lEQlNlcnZlckNvbm5lY3Rpb25MZXZlbERCLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQi5o
CkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSW5kZXgo
SURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgRGVsZXRlSW5kZXhPcGVyYXRpb24mLCBzdGQ6
OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25D
YWxsYmFjaykgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGdldChJREJUcmFuc2FjdGlvbkJh
Y2tlbmQmLCBjb25zdCBHZXRPcGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgSURC
R2V0UmVzdWx0JiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxs
YmFjaykgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHB1dChJREJUcmFuc2FjdGlvbkJhY2tl
bmQmLCBjb25zdCBQdXRPcGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJ
REJLZXk+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNr
KSAgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIG9wZW5DdXJzb3IoSURCVHJhbnNhY3Rpb25C
YWNrZW5kJiwgY29uc3QgT3BlbkN1cnNvck9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChp
bnQ2NF90LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBvcGVuQ3Vyc29yKElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IE9wZW5DdXJzb3JPcGVy
YXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoaW50NjRfdCwgUGFzc1JlZlB0cjxJREJLZXk+LCBQ
YXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIGNvdW50KElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IENvdW50T3BlcmF0
aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3QsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VF
cnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBk
ZWxldGVSYW5nZShJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBEZWxldGVSYW5nZU9wZXJh
dGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4g
Y29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJPYmpl
Y3RTdG9yZShJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBDbGVhck9iamVjdFN0b3JlT3Bl
cmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4p
PiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOwpAQCAtNzQsOCArNzQsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGNoYW5nZURhdGFiYXNlVmVyc2lvbihJREJUcmFuc2FjdGlvbkJh
Y2tlbmQmLCBjb25zdCBJREJEYXRhYmFzZUJhY2tlbmQ6OlZlcnNpb25DaGFuZ2VPcGVyYXRpb24m
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBs
ZXRpb25DYWxsYmFjaykgb3ZlcnJpZGU7CiAKICAgICAvLyBDdXJzb3ItbGV2ZWwgb3BlcmF0aW9u
cwotICAgIHZpcnR1YWwgdm9pZCBjdXJzb3JBZHZhbmNlKElEQkN1cnNvckJhY2tlbmQmLCBjb25z
dCBDdXJzb3JBZHZhbmNlT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8
SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBh
c3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRp
b25DYWxsYmFjaykgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGN1cnNvckl0ZXJhdGUoSURC
Q3Vyc29yQmFja2VuZCYsIGNvbnN0IEN1cnNvckl0ZXJhdGlvbk9wZXJhdGlvbiYsIHN0ZDo6ZnVu
Y3Rpb248dm9pZChQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBjdXJzb3JBZHZhbmNlKElEQkN1cnNvckJhY2tlbmQmLCBjb25zdCBDdXJzb3JBZHZhbmNl
T3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1Jl
ZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBjdXJzb3JJdGVyYXRlKElEQkN1cnNvckJhY2tlbmQmLCBjb25zdCBDdXJzb3JJdGVyYXRp
b25PcGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNz
UmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgb3ZlcnJpZGU7CiAKIHByaXZhdGU6
CiAgICAgSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5h
bWUsIElEQkJhY2tpbmdTdG9yZUxldmVsREIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkN2VhZDQ5Li5iN2Jk
NDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTUgQEAKIDIwMTQtMDItMDYgIEJyYWR5IEVpZHNv
biAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIElEQjogUmVtb3ZlIHRoZSBlbnRpcmVs
eSB1bm5lY2Vzc2FyeSAiVmFsdWUgS2V5IiBjb25jZXB0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgzNjAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGwgY3Vyc29yIG9wZXJhdGlvbnMgd2VyZSBzZXR1
cCB0byBwYXNzIGEgdmFsdWUga2V5IHBhcmFtZXRlciBhcm91bmQsIGJ1dCBpdCB3YXM6CisgICAg
ICAgIDEgLSBFbnRpcmVseSB1bnVzZWQKKyAgICAgICAgMiAtIFRoZSBzYW1lIHRoaW5nIHRoYXQg
dGhlIHByaW1hcnkga2V5IGlzIHN1cHBvc2VkIHRvIGJlCisKKyAgICAgICAgKiBEYXRhYmFzZVBy
b2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpvcGVuQ3Vyc29yKToKKyAg
ICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6Y3Vyc29yQWR2YW5j
ZSk6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OmN1cnNv
ckl0ZXJhdGUpOgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJ
REJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVu
Q3Vyc29yKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OmN1cnNvckFkdmFu
Y2UpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6Y3Vyc29ySXRlcmF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29ySW5CYWNraW5n
U3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6ZGlkT3BlbkN1cnNv
ckluQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OmFk
dmFuY2VDdXJzb3JJbkJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRh
dGFiYXNlOjpkaWRBZHZhbmNlQ3Vyc29ySW5CYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViS2l0
OjpVbmlxdWVJREJEYXRhYmFzZTo6aXRlcmF0ZUN1cnNvckluQmFja2luZ1N0b3JlKToKKyAgICAg
ICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZEl0ZXJhdGVDdXJzb3JJbkJhY2tpbmdT
dG9yZSk6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRh
YmFzZS5oOgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FM
aXRlSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U1FMaXRlSURCQ3Vyc29yOjphZHZh
bmNlT25jZSk6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FM
aXRlSURCQ3Vyc29yLmg6CisKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1Vu
aXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6
Z2V0SW5kZXhSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tp
bmdTdG9yZVNRTGl0ZTo6b3BlbkN1cnNvcik6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRh
dGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjphZHZhbmNlQ3Vyc29yKToKKyAgICAgICAgKFdlYktp
dDo6VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6Oml0ZXJhdGVDdXJzb3IpOgor
ICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFi
YXNlQmFja2luZ1N0b3JlU1FMaXRlLmg6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZE9wZW5DdXJzb3IpOgorICAgICAgICAoV2ViS2l0
OjpXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpkaWRBZHZhbmNlQ3Vyc29yKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6ZGlkSXRlcmF0ZUN1cnNvcik6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQlNlcnZlckNvbm5lY3Rpb246Om9wZW5DdXJzb3IpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpjdXJzb3JBZHZhbmNlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6Y3Vyc29ySXRlcmF0ZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24u
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVy
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKworMjAxNC0wMi0wNiAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CisKICAgICAgICAgSURCOiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L2NsZWFyLmh0bWwgZmFpbHMKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE1OTk3MTU1PiBhbmQg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODI4MgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJv
Y2Vzc0lEQkNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0lu
ZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmNwcAppbmRleCA5ZmYzZDc1Li5k
NjVjYzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5j
cHAKQEAgLTI5Niw5ICsyOTYsOSBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246
Om9wZW5DdXJzb3IodWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IHRyYW5zYQogCiAgICAgTE9H
KElEQiwgIkRhdGFiYXNlUHJvY2VzcyBvcGVuQ3Vyc29yIHJlcXVlc3QgSUQgJWxsdSwgb2JqZWN0
IHN0b3JlIGlkICVsbGkiLCByZXF1ZXN0SUQsIG9iamVjdFN0b3JlSUQpOwogICAgIFJlZlB0cjxE
YXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPiBjb25uZWN0aW9uKHRoaXMpOwotICAgIG1fdW5p
cXVlSURCRGF0YWJhc2UtPm9wZW5DdXJzb3IoSURCSWRlbnRpZmllcigqdGhpcywgdHJhbnNhY3Rp
b25JRCksIG9iamVjdFN0b3JlSUQsIGluZGV4SUQsIHN0YXRpY19jYXN0PEluZGV4ZWREQjo6Q3Vy
c29yRGlyZWN0aW9uPihjdXJzb3JEaXJlY3Rpb24pLCBzdGF0aWNfY2FzdDxJbmRleGVkREI6OkN1
cnNvclR5cGU+KGN1cnNvclR5cGUpLCBzdGF0aWNfY2FzdDxJREJEYXRhYmFzZUJhY2tlbmQ6OlRh
c2tUeXBlPih0YXNrVHlwZSksIGtleVJhbmdlRGF0YSwgW2Nvbm5lY3Rpb24sIHJlcXVlc3RJRF0o
aW50NjRfdCBjdXJzb3JJRCwgY29uc3QgSURCS2V5RGF0YSYgcmVzdWx0S2V5LCBjb25zdCBJREJL
ZXlEYXRhJiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUsIGNvbnN0
IElEQktleURhdGEmIHZhbHVlS2V5LCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlKSB7CisgICAgbV91bmlxdWVJREJEYXRhYmFzZS0+b3BlbkN1cnNvcihJREJJ
ZGVudGlmaWVyKCp0aGlzLCB0cmFuc2FjdGlvbklEKSwgb2JqZWN0U3RvcmVJRCwgaW5kZXhJRCwg
c3RhdGljX2Nhc3Q8SW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24+KGN1cnNvckRpcmVjdGlvbiks
IHN0YXRpY19jYXN0PEluZGV4ZWREQjo6Q3Vyc29yVHlwZT4oY3Vyc29yVHlwZSksIHN0YXRpY19j
YXN0PElEQkRhdGFiYXNlQmFja2VuZDo6VGFza1R5cGU+KHRhc2tUeXBlKSwga2V5UmFuZ2VEYXRh
LCBbY29ubmVjdGlvbiwgcmVxdWVzdElEXShpbnQ2NF90IGN1cnNvcklELCBjb25zdCBJREJLZXlE
YXRhJiByZXN1bHRLZXksIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlLZXksIFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiB2YWx1ZSwgdWludDMyX3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSkgewogICAgICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSA9IHZhbHVlID8g
SVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHZhbHVl
LT5kYXRhKCkpLCB2YWx1ZS0+c2l6ZSgpKSA6IElQQzo6RGF0YVJlZmVyZW5jZSgpOwotICAgICAg
ICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpEaWRP
cGVuQ3Vyc29yKHJlcXVlc3RJRCwgY3Vyc29ySUQsIHJlc3VsdEtleSwgcHJpbWFyeUtleSwgZGF0
YSwgdmFsdWVLZXksIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKSk7CisgICAgICAgIGNvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OldlYklEQlNlcnZlckNvbm5lY3Rpb246OkRpZE9wZW5DdXJzb3Io
cmVxdWVzdElELCBjdXJzb3JJRCwgcmVzdWx0S2V5LCBwcmltYXJ5S2V5LCBkYXRhLCBlcnJvckNv
ZGUsIGVycm9yTWVzc2FnZSkpOwogICAgIH0pOwogfQogCkBAIC0zMDgsOSArMzA4LDkgQEAgdm9p
ZCBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpjdXJzb3JBZHZhbmNlKHVpbnQ2NF90IHJl
cXVlc3RJRCwgaW50NjRfdCBjdXIKIAogICAgIExPRyhJREIsICJEYXRhYmFzZVByb2Nlc3MgY3Vy
c29yQWR2YW5jZSByZXF1ZXN0IElEICVsbHUsIGN1cnNvciBpZCAlbGxpIiwgcmVxdWVzdElELCBj
dXJzb3JJRCk7CiAgICAgUmVmUHRyPERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24+IGNvbm5l
Y3Rpb24odGhpcyk7Ci0gICAgbV91bmlxdWVJREJEYXRhYmFzZS0+Y3Vyc29yQWR2YW5jZShJREJJ
ZGVudGlmaWVyKCp0aGlzLCBjdXJzb3JJRCksIGNvdW50LCBbY29ubmVjdGlvbiwgcmVxdWVzdElE
XShjb25zdCBJREJLZXlEYXRhJiByZXN1bHRLZXksIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlL
ZXksIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSwgY29uc3QgSURCS2V5RGF0YSYgdmFs
dWVLZXksIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsK
KyAgICBtX3VuaXF1ZUlEQkRhdGFiYXNlLT5jdXJzb3JBZHZhbmNlKElEQklkZW50aWZpZXIoKnRo
aXMsIGN1cnNvcklEKSwgY291bnQsIFtjb25uZWN0aW9uLCByZXF1ZXN0SURdKGNvbnN0IElEQktl
eURhdGEmIHJlc3VsdEtleSwgY29uc3QgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwgUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlKSB7CiAgICAgICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhID0gdmFsdWUg
PyBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odmFs
dWUtPmRhdGEoKSksIHZhbHVlLT5zaXplKCkpIDogSVBDOjpEYXRhUmVmZXJlbmNlKCk7Ci0gICAg
ICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYklEQlNlcnZlckNvbm5lY3Rpb246OkRp
ZEFkdmFuY2VDdXJzb3IocmVxdWVzdElELCByZXN1bHRLZXksIHByaW1hcnlLZXksIGRhdGEsIHZh
bHVlS2V5LCBlcnJvckNvZGUsIGVycm9yTWVzc2FnZSkpOworICAgICAgICBjb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpEaWRBZHZhbmNlQ3Vyc29yKHJl
cXVlc3RJRCwgcmVzdWx0S2V5LCBwcmltYXJ5S2V5LCBkYXRhLCBlcnJvckNvZGUsIGVycm9yTWVz
c2FnZSkpOwogICAgIH0pOwogfQogCkBAIC0zMjAsOSArMzIwLDkgQEAgdm9pZCBEYXRhYmFzZVBy
b2Nlc3NJREJDb25uZWN0aW9uOjpjdXJzb3JJdGVyYXRlKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50
NjRfdCBjdXIKIAogICAgIExPRyhJREIsICJEYXRhYmFzZVByb2Nlc3MgY3Vyc29ySXRlcmF0ZSBy
ZXF1ZXN0IElEICVsbHUsIGN1cnNvciBpZCAlbGxpIiwgcmVxdWVzdElELCBjdXJzb3JJRCk7CiAg
ICAgUmVmUHRyPERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24+IGNvbm5lY3Rpb24odGhpcyk7
Ci0gICAgbV91bmlxdWVJREJEYXRhYmFzZS0+Y3Vyc29ySXRlcmF0ZShJREJJZGVudGlmaWVyKCp0
aGlzLCBjdXJzb3JJRCksIGtleSwgW2Nvbm5lY3Rpb24sIHJlcXVlc3RJRF0oY29uc3QgSURCS2V5
RGF0YSYgcmVzdWx0S2V5LCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gdmFsdWUsIGNvbnN0IElEQktleURhdGEmIHZhbHVlS2V5LCB1aW50MzJf
dCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7CisgICAgbV91bmlxdWVJ
REJEYXRhYmFzZS0+Y3Vyc29ySXRlcmF0ZShJREJJZGVudGlmaWVyKCp0aGlzLCBjdXJzb3JJRCks
IGtleSwgW2Nvbm5lY3Rpb24sIHJlcXVlc3RJRF0oY29uc3QgSURCS2V5RGF0YSYgcmVzdWx0S2V5
LCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4g
dmFsdWUsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsK
ICAgICAgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEgPSB2YWx1ZSA/IElQQzo6RGF0YVJlZmVy
ZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPih2YWx1ZS0+ZGF0YSgpKSwgdmFs
dWUtPnNpemUoKSkgOiBJUEM6OkRhdGFSZWZlcmVuY2UoKTsKLSAgICAgICAgY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6RGlkSXRlcmF0ZUN1cnNvcihy
ZXF1ZXN0SUQsIHJlc3VsdEtleSwgcHJpbWFyeUtleSwgZGF0YSwgdmFsdWVLZXksIGVycm9yQ29k
ZSwgZXJyb3JNZXNzYWdlKSk7CisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Oldl
YklEQlNlcnZlckNvbm5lY3Rpb246OkRpZEl0ZXJhdGVDdXJzb3IocmVxdWVzdElELCByZXN1bHRL
ZXksIHByaW1hcnlLZXksIGRhdGEsIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKSk7CiAgICAgfSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVk
REIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKaW5kZXggOTJhNTliMy4uN2UxNjBiNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9Vbmlx
dWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0lu
ZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTU5NiwyMSArNTk2LDIxIEBAIHZvaWQg
VW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZChjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIGluCiAgICAgcG9zdERhdGFiYXNlVGFzayhjcmVhdGVBc3luY1Rhc2so
KnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkRnJvbUJhY2tpbmdTdG9yZSwgcmVx
dWVzdElELCB0cmFuc2FjdGlvbklkZW50aWZpZXIsIG1fbWV0YWRhdGEtPm9iamVjdFN0b3Jlcy5n
ZXQob2JqZWN0U3RvcmVJRCksIGluZGV4SUQsIGtleVJhbmdlRGF0YSwgY3Vyc29yVHlwZSkpOwog
fQogCi12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yKGNvbnN0IElEQklkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90
IGluZGV4SUQsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGN1cnNvckRpcmVjdGlvbiwgSW5k
ZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQkRhdGFiYXNlQmFja2VuZDo6VGFza1R5
cGUgdGFza1R5cGUsIGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2VEYXRhLCBzdGQ6OmZ1
bmN0aW9uPHZvaWQoaW50NjRfdCwgY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IElEQktleURhdGEm
LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGNvbnN0IElEQktleURhdGEmLCB1aW50MzJfdCwg
Y29uc3QgU3RyaW5nJik+IGNhbGxiYWNrKQordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1
cnNvcihjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qg
b2JqZWN0U3RvcmVJRCwgaW50NjRfdCBpbmRleElELCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlv
biBjdXJzb3JEaXJlY3Rpb24sIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBJREJE
YXRhYmFzZUJhY2tlbmQ6OlRhc2tUeXBlIHRhc2tUeXBlLCBjb25zdCBJREJLZXlSYW5nZURhdGEm
IGtleVJhbmdlRGF0YSwgc3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3QsIGNvbnN0IElEQktleURh
dGEmLCBjb25zdCBJREJLZXlEYXRhJiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCB1aW50MzJf
dCwgY29uc3QgU3RyaW5nJik+IGNhbGxiYWNrKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAKICAgICBpZiAoIW1fYWNjZXB0aW5nTmV3UmVxdWVzdHMpIHsKLSAgICAgICAgY2FsbGJh
Y2soMCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSU5WQUxJRF9TVEFURV9F
UlIsICJVbmFibGUgdG8gb3BlbiBjdXJzb3IgaW4gZGF0YWJhc2UgYmVjYXVzZSBpdCBoYXMgc2h1
dCBkb3duIik7CisgICAgICAgIGNhbGxiYWNrKDAsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIs
IElOVkFMSURfU1RBVEVfRVJSLCAiVW5hYmxlIHRvIG9wZW4gY3Vyc29yIGluIGRhdGFiYXNlIGJl
Y2F1c2UgaXQgaGFzIHNodXQgZG93biIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
QVNTRVJUKG1fbWV0YWRhdGEtPm9iamVjdFN0b3Jlcy5jb250YWlucyhvYmplY3RTdG9yZUlEKSk7
CiAKLSAgICBSZWZQdHI8QXN5bmNSZXF1ZXN0PiByZXF1ZXN0ID0gQXN5bmNSZXF1ZXN0SW1wbDxp
bnQ2NF90LCBjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgSURCS2V5RGF0YSYsIFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiwgY29uc3QgSURCS2V5RGF0YSYsIHVpbnQzMl90LCBjb25zdCBTdHJpbmcm
Pjo6Y3JlYXRlKFt0aGlzLCBjYWxsYmFja10oaW50NjRfdCBjdXJzb3JJRCwgY29uc3QgSURCS2V5
RGF0YSYga2V5LCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gdmFsdWUsIGNvbnN0IElEQktleURhdGEmIHZhbHVlS2V5LCB1aW50MzJfdCBlcnJv
ckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7Ci0gICAgICAgIGNhbGxiYWNrKGN1
cnNvcklELCBrZXksIHByaW1hcnlLZXksIHZhbHVlLCB2YWx1ZUtleSwgZXJyb3JDb2RlLCBlcnJv
ck1lc3NhZ2UpOworICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+IHJlcXVlc3QgPSBBc3luY1JlcXVl
c3RJbXBsPGludDY0X3QsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBJREJLZXlEYXRhJiwgUGFz
c1JlZlB0cjxTaGFyZWRCdWZmZXI+LCB1aW50MzJfdCwgY29uc3QgU3RyaW5nJj46OmNyZWF0ZShb
dGhpcywgY2FsbGJhY2tdKGludDY0X3QgY3Vyc29ySUQsIGNvbnN0IElEQktleURhdGEmIGtleSwg
Y29uc3QgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZh
bHVlLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7Cisg
ICAgICAgIGNhbGxiYWNrKGN1cnNvcklELCBrZXksIHByaW1hcnlLZXksIHZhbHVlLCBlcnJvckNv
ZGUsIGVycm9yTWVzc2FnZSk7CiAgICAgfSwgW3RoaXMsIGNhbGxiYWNrXSgpIHsKLSAgICAgICAg
Y2FsbGJhY2soMCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSU5WQUxJRF9T
VEFURV9FUlIsICJVbmFibGUgdG8gZ2V0IHJlY29yZCBmcm9tIGRhdGFiYXNlIik7CisgICAgICAg
IGNhbGxiYWNrKDAsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElOVkFMSURfU1RBVEVfRVJS
LCAiVW5hYmxlIHRvIGdldCByZWNvcmQgZnJvbSBkYXRhYmFzZSIpOwogICAgIH0pOwogCiAgICAg
dWludDY0X3QgcmVxdWVzdElEID0gcmVxdWVzdC0+cmVxdWVzdElEKCk7CkBAIC02MTksMTkgKzYx
OSwxOSBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yKGNvbnN0IElEQklkZW50
aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaQogICAgIHBvc3REYXRhYmFzZVRhc2soY3Jl
YXRlQXN5bmNUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5DdXJzb3JJbkJhY2tp
bmdTdG9yZSwgcmVxdWVzdElELCB0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSUQs
IGluZGV4SUQsIGN1cnNvckRpcmVjdGlvbiwgY3Vyc29yVHlwZSwgdGFza1R5cGUsIGtleVJhbmdl
RGF0YSkpOwogfQogCi12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjdXJzb3JBZHZhbmNlKGNvbnN0
IElEQklkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIHVpbnQ2NF90IGNvdW50LCBzdGQ6OmZ1
bmN0aW9uPHZvaWQoY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCBQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4sIGNvbnN0IElEQktleURhdGEmLCB1aW50MzJfdCwgY29uc3QgU3Ry
aW5nJik+IGNhbGxiYWNrKQordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3Vyc29yQWR2YW5jZShj
b25zdCBJREJJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCB1aW50NjRfdCBjb3VudCwgc3Rk
OjpmdW5jdGlvbjx2b2lkKGNvbnN0IElEQktleURhdGEmLCBjb25zdCBJREJLZXlEYXRhJiwgUGFz
c1JlZlB0cjxTaGFyZWRCdWZmZXI+LCB1aW50MzJfdCwgY29uc3QgU3RyaW5nJik+IGNhbGxiYWNr
KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBpZiAoIW1fYWNjZXB0aW5n
TmV3UmVxdWVzdHMpIHsKLSAgICAgICAgY2FsbGJhY2sobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciwgbnVsbHB0ciwgSU5WQUxJRF9TVEFURV9FUlIsICJVbmFibGUgdG8gYWR2YW5jZSBjdXJzb3Ig
aW4gZGF0YWJhc2UgYmVjYXVzZSBpdCBoYXMgc2h1dCBkb3duIik7CisgICAgICAgIGNhbGxiYWNr
KG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElOVkFMSURfU1RBVEVfRVJSLCAiVW5hYmxlIHRv
IGFkdmFuY2UgY3Vyc29yIGluIGRhdGFiYXNlIGJlY2F1c2UgaXQgaGFzIHNodXQgZG93biIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUmVmUHRyPEFzeW5jUmVxdWVzdD4gcmVxdWVz
dCA9IEFzeW5jUmVxdWVzdEltcGw8Y29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IElEQktleURhdGEm
LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGNvbnN0IElEQktleURhdGEmLCB1aW50MzJfdCwg
Y29uc3QgU3RyaW5nJj46OmNyZWF0ZShbdGhpcywgY2FsbGJhY2tdKGNvbnN0IElEQktleURhdGEm
IGtleSwgY29uc3QgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+IHZhbHVlLCBjb25zdCBJREJLZXlEYXRhJiB2YWx1ZUtleSwgdWludDMyX3QgZXJyb3JDb2Rl
LCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgewotICAgICAgICBjYWxsYmFjayhrZXksIHBy
aW1hcnlLZXksIHZhbHVlLCB2YWx1ZUtleSwgZXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UpOworICAg
IFJlZlB0cjxBc3luY1JlcXVlc3Q+IHJlcXVlc3QgPSBBc3luY1JlcXVlc3RJbXBsPGNvbnN0IElE
QktleURhdGEmLCBjb25zdCBJREJLZXlEYXRhJiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCB1
aW50MzJfdCwgY29uc3QgU3RyaW5nJj46OmNyZWF0ZShbdGhpcywgY2FsbGJhY2tdKGNvbnN0IElE
QktleURhdGEmIGtleSwgY29uc3QgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxT
aGFyZWRCdWZmZXI+IHZhbHVlLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlKSB7CisgICAgICAgIGNhbGxiYWNrKGtleSwgcHJpbWFyeUtleSwgdmFsdWUsIGVy
cm9yQ29kZSwgZXJyb3JNZXNzYWdlKTsKICAgICB9LCBbdGhpcywgY2FsbGJhY2tdKCkgewotICAg
ICAgICBjYWxsYmFjayhudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJTlZBTElE
X1NUQVRFX0VSUiwgIlVuYWJsZSB0byBhZHZhbmNlIGN1cnNvciBpbiBkYXRhYmFzZSIpOworICAg
ICAgICBjYWxsYmFjayhudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJTlZBTElEX1NUQVRFX0VS
UiwgIlVuYWJsZSB0byBhZHZhbmNlIGN1cnNvciBpbiBkYXRhYmFzZSIpOwogICAgIH0pOwogCiAg
ICAgdWludDY0X3QgcmVxdWVzdElEID0gcmVxdWVzdC0+cmVxdWVzdElEKCk7CkBAIC02NDAsMTkg
KzY0MCwxOSBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjdXJzb3JBZHZhbmNlKGNvbnN0IElE
QklkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIHVpbgogICAgIHBvc3REYXRhYmFzZVRhc2so
Y3JlYXRlQXN5bmNUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmFkdmFuY2VDdXJzb3JJ
bkJhY2tpbmdTdG9yZSwgcmVxdWVzdElELCBjdXJzb3JJZGVudGlmaWVyLCBjb3VudCkpOwogfQog
Ci12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjdXJzb3JJdGVyYXRlKGNvbnN0IElEQklkZW50aWZp
ZXImIGN1cnNvcklkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmIGtleSwgc3RkOjpmdW5jdGlv
bjx2b2lkKGNvbnN0IElEQktleURhdGEmLCBjb25zdCBJREJLZXlEYXRhJiwgUGFzc1JlZlB0cjxT
aGFyZWRCdWZmZXI+LCBjb25zdCBJREJLZXlEYXRhJiwgdWludDMyX3QsIGNvbnN0IFN0cmluZyYp
PiBjYWxsYmFjaykKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmN1cnNvckl0ZXJhdGUoY29uc3Qg
SURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYga2V5LCBz
dGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCBQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIHVpbnQzMl90LCBjb25zdCBTdHJpbmcmKT4gY2FsbGJh
Y2spCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIGlmICghbV9hY2NlcHRp
bmdOZXdSZXF1ZXN0cykgewotICAgICAgICBjYWxsYmFjayhudWxscHRyLCBudWxscHRyLCBudWxs
cHRyLCBudWxscHRyLCBJTlZBTElEX1NUQVRFX0VSUiwgIlVuYWJsZSB0byBpdGVyYXRlIGN1cnNv
ciBpbiBkYXRhYmFzZSBiZWNhdXNlIGl0IGhhcyBzaHV0IGRvd24iKTsKKyAgICAgICAgY2FsbGJh
Y2sobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSU5WQUxJRF9TVEFURV9FUlIsICJVbmFibGUg
dG8gaXRlcmF0ZSBjdXJzb3IgaW4gZGF0YWJhc2UgYmVjYXVzZSBpdCBoYXMgc2h1dCBkb3duIik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZWZQdHI8QXN5bmNSZXF1ZXN0PiByZXF1
ZXN0ID0gQXN5bmNSZXF1ZXN0SW1wbDxjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgSURCS2V5RGF0
YSYsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgY29uc3QgSURCS2V5RGF0YSYsIHVpbnQzMl90
LCBjb25zdCBTdHJpbmcmPjo6Y3JlYXRlKFt0aGlzLCBjYWxsYmFja10oY29uc3QgSURCS2V5RGF0
YSYga2V5LCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gdmFsdWUsIGNvbnN0IElEQktleURhdGEmIHZhbHVlS2V5LCB1aW50MzJfdCBlcnJvckNv
ZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7Ci0gICAgICAgIGNhbGxiYWNrKGtleSwg
cHJpbWFyeUtleSwgdmFsdWUsIHZhbHVlS2V5LCBlcnJvckNvZGUsIGVycm9yTWVzc2FnZSk7Cisg
ICAgUmVmUHRyPEFzeW5jUmVxdWVzdD4gcmVxdWVzdCA9IEFzeW5jUmVxdWVzdEltcGw8Y29uc3Qg
SURCS2V5RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4s
IHVpbnQzMl90LCBjb25zdCBTdHJpbmcmPjo6Y3JlYXRlKFt0aGlzLCBjYWxsYmFja10oY29uc3Qg
SURCS2V5RGF0YSYga2V5LCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gdmFsdWUsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpIHsKKyAgICAgICAgY2FsbGJhY2soa2V5LCBwcmltYXJ5S2V5LCB2YWx1ZSwg
ZXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UpOwogICAgIH0sIFt0aGlzLCBjYWxsYmFja10oKSB7Ci0g
ICAgICAgIGNhbGxiYWNrKG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElOVkFM
SURfU1RBVEVfRVJSLCAiVW5hYmxlIHRvIGl0ZXJhdGUgY3Vyc29yIGluIGRhdGFiYXNlIik7Cisg
ICAgICAgIGNhbGxiYWNrKG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElOVkFMSURfU1RBVEVf
RVJSLCAiVW5hYmxlIHRvIGl0ZXJhdGUgY3Vyc29yIGluIGRhdGFiYXNlIik7CiAgICAgfSk7CiAK
ICAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSByZXF1ZXN0LT5yZXF1ZXN0SUQoKTsKQEAgLTk1Miwy
NSArOTUyLDI0IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5DdXJzb3JJbkJhY2tpbmdT
dG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQklkCiAgICAgSURCS2V5RGF0YSBrZXk7
CiAgICAgSURCS2V5RGF0YSBwcmltYXJ5S2V5OwogICAgIFZlY3RvcjxjaGFyPiB2YWx1ZUJ1ZmZl
cjsKLSAgICBJREJLZXlEYXRhIHZhbHVlS2V5OwogICAgIGludDMyX3QgZXJyb3JDb2RlID0gMDsK
ICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwotICAgIGJvb2wgc3VjY2VzcyA9IG1fYmFja2luZ1N0
b3JlLT5vcGVuQ3Vyc29yKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJRCwgaW5k
ZXhJRCwgY3Vyc29yRGlyZWN0aW9uLCBjdXJzb3JUeXBlLCB0YXNrVHlwZSwga2V5UmFuZ2UsIGN1
cnNvcklELCBrZXksIHByaW1hcnlLZXksIHZhbHVlQnVmZmVyLCB2YWx1ZUtleSk7CisgICAgYm9v
bCBzdWNjZXNzID0gbV9iYWNraW5nU3RvcmUtPm9wZW5DdXJzb3IodHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBvYmplY3RTdG9yZUlELCBpbmRleElELCBjdXJzb3JEaXJlY3Rpb24sIGN1cnNvclR5cGUs
IHRhc2tUeXBlLCBrZXlSYW5nZSwgY3Vyc29ySUQsIGtleSwgcHJpbWFyeUtleSwgdmFsdWVCdWZm
ZXIpOwogCiAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgIGVycm9yQ29kZSA9IElEQkRhdGFi
YXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3I7CiAgICAgICAgIGVycm9yTWVzc2FnZSA9IEFTQ0lJ
TGl0ZXJhbCgiVW5rbm93biBlcnJvciBvcGVuaW5nIGN1cnNvciBpbiBiYWNraW5nIHN0b3JlIik7
CiAgICAgfQogCi0gICAgcG9zdE1haW5UaHJlYWRUYXNrKGNyZWF0ZUFzeW5jVGFzaygqdGhpcywg
JlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRPcGVuQ3Vyc29ySW5CYWNraW5nU3RvcmUsIHJlcXVlc3RJ
RCwgY3Vyc29ySUQsIGtleSwgcHJpbWFyeUtleSwgdmFsdWVCdWZmZXIsIHZhbHVlS2V5LCBlcnJv
ckNvZGUsIGVycm9yTWVzc2FnZSkpOworICAgIHBvc3RNYWluVGhyZWFkVGFzayhjcmVhdGVBc3lu
Y1Rhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkT3BlbkN1cnNvckluQmFja2luZ1N0
b3JlLCByZXF1ZXN0SUQsIGN1cnNvcklELCBrZXksIHByaW1hcnlLZXksIHZhbHVlQnVmZmVyLCBl
cnJvckNvZGUsIGVycm9yTWVzc2FnZSkpOwogfQogCi12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpk
aWRPcGVuQ3Vyc29ySW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IGN1
cnNvcklELCBjb25zdCBJREJLZXlEYXRhJiBrZXksIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlL
ZXksIGNvbnN0IFZlY3RvcjxjaGFyPiYgdmFsdWVCdWZmZXIsIGNvbnN0IElEQktleURhdGEmIHZh
bHVlS2V5LCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQor
dm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkT3BlbkN1cnNvckluQmFja2luZ1N0b3JlKHVpbnQ2
NF90IHJlcXVlc3RJRCwgaW50NjRfdCBjdXJzb3JJRCwgY29uc3QgSURCS2V5RGF0YSYga2V5LCBj
b25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBjb25zdCBWZWN0b3I8Y2hhcj4mIHZhbHVlQnVm
ZmVyLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewog
ICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+IHJlcXVlc3QgPSBtX3BlbmRpbmdEYXRhYmFzZVRhc2tz
LnRha2UocmVxdWVzdElEKTsKICAgICBBU1NFUlQocmVxdWVzdCk7CiAKLSAgICByZXF1ZXN0LT5j
b21wbGV0ZVJlcXVlc3QoY3Vyc29ySUQsIGtleSwgcHJpbWFyeUtleSwgU2hhcmVkQnVmZmVyOjpj
cmVhdGUodmFsdWVCdWZmZXIuZGF0YSgpLCB2YWx1ZUJ1ZmZlci5zaXplKCkpLCB2YWx1ZUtleSwg
ZXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UpOworICAgIHJlcXVlc3QtPmNvbXBsZXRlUmVxdWVzdChj
dXJzb3JJRCwga2V5LCBwcmltYXJ5S2V5LCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh2YWx1ZUJ1ZmZl
ci5kYXRhKCksIHZhbHVlQnVmZmVyLnNpemUoKSksIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKTsK
IH0KIAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6YWR2YW5jZUN1cnNvckluQmFja2luZ1N0b3Jl
KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgSURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmll
ciwgdWludDY0X3QgY291bnQpCkBAIC05NzgsMjUgKzk3NywyNCBAQCB2b2lkIFVuaXF1ZUlEQkRh
dGFiYXNlOjphZHZhbmNlQ3Vyc29ySW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBj
b25zdCBJRAogICAgIElEQktleURhdGEga2V5OwogICAgIElEQktleURhdGEgcHJpbWFyeUtleTsK
ICAgICBWZWN0b3I8Y2hhcj4gdmFsdWVCdWZmZXI7Ci0gICAgSURCS2V5RGF0YSB2YWx1ZUtleTsK
ICAgICBpbnQzMl90IGVycm9yQ29kZSA9IDA7CiAgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKLSAg
ICBib29sIHN1Y2Nlc3MgPSBtX2JhY2tpbmdTdG9yZS0+YWR2YW5jZUN1cnNvcihjdXJzb3JJZGVu
dGlmaWVyLCBjb3VudCwga2V5LCBwcmltYXJ5S2V5LCB2YWx1ZUJ1ZmZlciwgdmFsdWVLZXkpOwor
ICAgIGJvb2wgc3VjY2VzcyA9IG1fYmFja2luZ1N0b3JlLT5hZHZhbmNlQ3Vyc29yKGN1cnNvcklk
ZW50aWZpZXIsIGNvdW50LCBrZXksIHByaW1hcnlLZXksIHZhbHVlQnVmZmVyKTsKIAogICAgIGlm
ICghc3VjY2VzcykgewogICAgICAgICBlcnJvckNvZGUgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
VW5rbm93bkVycm9yOwogICAgICAgICBlcnJvck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIlVua25v
d24gZXJyb3IgYWR2YW5jaW5nIGN1cnNvciBpbiBiYWNraW5nIHN0b3JlIik7CiAgICAgfQogCi0g
ICAgcG9zdE1haW5UaHJlYWRUYXNrKGNyZWF0ZUFzeW5jVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRh
dGFiYXNlOjpkaWRBZHZhbmNlQ3Vyc29ySW5CYWNraW5nU3RvcmUsIHJlcXVlc3RJRCwga2V5LCBw
cmltYXJ5S2V5LCB2YWx1ZUJ1ZmZlciwgdmFsdWVLZXksIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdl
KSk7CisgICAgcG9zdE1haW5UaHJlYWRUYXNrKGNyZWF0ZUFzeW5jVGFzaygqdGhpcywgJlVuaXF1
ZUlEQkRhdGFiYXNlOjpkaWRBZHZhbmNlQ3Vyc29ySW5CYWNraW5nU3RvcmUsIHJlcXVlc3RJRCwg
a2V5LCBwcmltYXJ5S2V5LCB2YWx1ZUJ1ZmZlciwgZXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UpKTsK
IH0KIAotdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkQWR2YW5jZUN1cnNvckluQmFja2luZ1N0
b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgSURCS2V5RGF0YSYga2V5LCBjb25zdCBJREJL
ZXlEYXRhJiBwcmltYXJ5S2V5LCBjb25zdCBWZWN0b3I8Y2hhcj4mIHZhbHVlQnVmZmVyLCBjb25z
dCBJREJLZXlEYXRhJiB2YWx1ZUtleSwgdWludDMyX3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSkKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZEFkdmFuY2VDdXJzb3JJ
bkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQktleURhdGEmIGtleSwg
Y29uc3QgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGNoYXI+JiB2YWx1ZUJ1
ZmZlciwgdWludDMyX3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsK
ICAgICBSZWZQdHI8QXN5bmNSZXF1ZXN0PiByZXF1ZXN0ID0gbV9wZW5kaW5nRGF0YWJhc2VUYXNr
cy50YWtlKHJlcXVlc3RJRCk7CiAgICAgQVNTRVJUKHJlcXVlc3QpOwogCi0gICAgcmVxdWVzdC0+
Y29tcGxldGVSZXF1ZXN0KGtleSwgcHJpbWFyeUtleSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUodmFs
dWVCdWZmZXIuZGF0YSgpLCB2YWx1ZUJ1ZmZlci5zaXplKCkpLCB2YWx1ZUtleSwgZXJyb3JDb2Rl
LCBlcnJvck1lc3NhZ2UpOworICAgIHJlcXVlc3QtPmNvbXBsZXRlUmVxdWVzdChrZXksIHByaW1h
cnlLZXksIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHZhbHVlQnVmZmVyLmRhdGEoKSwgdmFsdWVCdWZm
ZXIuc2l6ZSgpKSwgZXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UpOwogfQogCiB2b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlOjppdGVyYXRlQ3Vyc29ySW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElE
LCBjb25zdCBJREJJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRh
JiBpdGVyYXRlS2V5KQpAQCAtMTAwNCwyNSArMTAwMiwyNCBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFi
YXNlOjppdGVyYXRlQ3Vyc29ySW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBjb25z
dCBJRAogICAgIElEQktleURhdGEga2V5OwogICAgIElEQktleURhdGEgcHJpbWFyeUtleTsKICAg
ICBWZWN0b3I8Y2hhcj4gdmFsdWVCdWZmZXI7Ci0gICAgSURCS2V5RGF0YSB2YWx1ZUtleTsKICAg
ICBpbnQzMl90IGVycm9yQ29kZSA9IDA7CiAgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKLSAgICBi
b29sIHN1Y2Nlc3MgPSBtX2JhY2tpbmdTdG9yZS0+aXRlcmF0ZUN1cnNvcihjdXJzb3JJZGVudGlm
aWVyLCBpdGVyYXRlS2V5LCBrZXksIHByaW1hcnlLZXksIHZhbHVlQnVmZmVyLCB2YWx1ZUtleSk7
CisgICAgYm9vbCBzdWNjZXNzID0gbV9iYWNraW5nU3RvcmUtPml0ZXJhdGVDdXJzb3IoY3Vyc29y
SWRlbnRpZmllciwgaXRlcmF0ZUtleSwga2V5LCBwcmltYXJ5S2V5LCB2YWx1ZUJ1ZmZlcik7CiAK
ICAgICBpZiAoIXN1Y2Nlc3MpIHsKICAgICAgICAgZXJyb3JDb2RlID0gSURCRGF0YWJhc2VFeGNl
cHRpb246OlVua25vd25FcnJvcjsKICAgICAgICAgZXJyb3JNZXNzYWdlID0gQVNDSUlMaXRlcmFs
KCJVbmtub3duIGVycm9yIGl0ZXJhdGluZyBjdXJzb3IgaW4gYmFja2luZyBzdG9yZSIpOwogICAg
IH0KIAotICAgIHBvc3RNYWluVGhyZWFkVGFzayhjcmVhdGVBc3luY1Rhc2soKnRoaXMsICZVbmlx
dWVJREJEYXRhYmFzZTo6ZGlkSXRlcmF0ZUN1cnNvckluQmFja2luZ1N0b3JlLCByZXF1ZXN0SUQs
IGtleSwgcHJpbWFyeUtleSwgdmFsdWVCdWZmZXIsIHZhbHVlS2V5LCBlcnJvckNvZGUsIGVycm9y
TWVzc2FnZSkpOworICAgIHBvc3RNYWluVGhyZWFkVGFzayhjcmVhdGVBc3luY1Rhc2soKnRoaXMs
ICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkSXRlcmF0ZUN1cnNvckluQmFja2luZ1N0b3JlLCByZXF1
ZXN0SUQsIGtleSwgcHJpbWFyeUtleSwgdmFsdWVCdWZmZXIsIGVycm9yQ29kZSwgZXJyb3JNZXNz
YWdlKSk7CiB9CiAKLXZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZEl0ZXJhdGVDdXJzb3JJbkJh
Y2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQktleURhdGEmIGtleSwgY29u
c3QgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGNoYXI+JiB2YWx1ZUJ1ZmZl
ciwgY29uc3QgSURCS2V5RGF0YSYgdmFsdWVLZXksIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UpCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRJdGVyYXRl
Q3Vyc29ySW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBJREJLZXlEYXRh
JiBrZXksIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlLZXksIGNvbnN0IFZlY3RvcjxjaGFyPiYg
dmFsdWVCdWZmZXIsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UpCiB7CiAgICAgUmVmUHRyPEFzeW5jUmVxdWVzdD4gcmVxdWVzdCA9IG1fcGVuZGluZ0RhdGFi
YXNlVGFza3MudGFrZShyZXF1ZXN0SUQpOwogICAgIEFTU0VSVChyZXF1ZXN0KTsKIAotICAgIHJl
cXVlc3QtPmNvbXBsZXRlUmVxdWVzdChrZXksIHByaW1hcnlLZXksIFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKHZhbHVlQnVmZmVyLmRhdGEoKSwgdmFsdWVCdWZmZXIuc2l6ZSgpKSwgdmFsdWVLZXksIGVy
cm9yQ29kZSwgZXJyb3JNZXNzYWdlKTsKKyAgICByZXF1ZXN0LT5jb21wbGV0ZVJlcXVlc3Qoa2V5
LCBwcmltYXJ5S2V5LCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh2YWx1ZUJ1ZmZlci5kYXRhKCksIHZh
bHVlQnVmZmVyLnNpemUoKSksIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKTsKIH0KIAogdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6Y291bnRJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlELCBpbnQ2NF90IGluZGV4SUQsIGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFu
Z2VEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4
ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCmluZGV4IDIyYjMzZjQuLmQ3ZTJhMDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVl
SURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAgLTk2LDkgKzk2LDkgQEAgcHVibGljOgogICAgIHZv
aWQgcHV0UmVjb3JkKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
aW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiB2YWx1ZSwgaW50NjRfdCBwdXRNb2RlLCBjb25zdCBWZWN0b3I8
aW50NjRfdD4mIGluZGV4SURzLCBjb25zdCBWZWN0b3I8VmVjdG9yPFdlYkNvcmU6OklEQktleURh
dGE+PiYgaW5kZXhLZXlzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6SURCS2V5
RGF0YSYsIHVpbnQzMl90LCBjb25zdCBTdHJpbmcmKT4gY2FsbGJhY2spOwogICAgIHZvaWQgZ2V0
UmVjb3JkKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRf
dCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IGluZGV4SUQsIGNvbnN0IFdlYkNvcmU6OklEQktleVJh
bmdlRGF0YSYsIFdlYkNvcmU6OkluZGV4ZWREQjo6Q3Vyc29yVHlwZSwgc3RkOjpmdW5jdGlvbjx2
b2lkKGNvbnN0IFdlYkNvcmU6OklEQkdldFJlc3VsdCYsIHVpbnQzMl90LCBjb25zdCBTdHJpbmcm
KT4gY2FsbGJhY2spOwogCi0gICAgdm9pZCBvcGVuQ3Vyc29yKGNvbnN0IElEQklkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IGlu
ZGV4SUQsIFdlYkNvcmU6OkluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uLCBXZWJDb3JlOjpJbmRl
eGVkREI6OkN1cnNvclR5cGUsIFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZDo6VGFza1R5cGUs
IGNvbnN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYsIHN0ZDo6ZnVuY3Rpb248dm9pZChpbnQ2
NF90LCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0
YSYsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiwgY29uc3QgV2ViQ29yZTo6SURC
S2V5RGF0YSYsIHVpbnQzMl90LCBjb25zdCBTdHJpbmcmKT4gY2FsbGJhY2spOwotICAgIHZvaWQg
Y3Vyc29yQWR2YW5jZShjb25zdCBJREJJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCB1aW50
NjRfdCBjb3VudCwgc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEm
LCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+LCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgdWludDMyX3QsIGNvbnN0IFN0cmlu
ZyYpPiBjYWxsYmFjayk7Ci0gICAgdm9pZCBjdXJzb3JJdGVyYXRlKGNvbnN0IElEQklkZW50aWZp
ZXImIGN1cnNvcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBzdGQ6OmZ1
bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklE
QktleURhdGEmLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4sIGNvbnN0IFdlYkNv
cmU6OklEQktleURhdGEmLCB1aW50MzJfdCwgY29uc3QgU3RyaW5nJik+IGNhbGxiYWNrKTsKKyAg
ICB2b2lkIG9wZW5DdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCwgV2ViQ29yZTo6SW5k
ZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24sIFdlYkNvcmU6OkluZGV4ZWREQjo6Q3Vyc29yVHlwZSwg
V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kOjpUYXNrVHlwZSwgY29uc3QgV2ViQ29yZTo6SURC
S2V5UmFuZ2VEYXRhJiwgc3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3QsIGNvbnN0IFdlYkNvcmU6
OklEQktleURhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpTaGFyZWRCdWZmZXI+LCB1aW50MzJfdCwgY29uc3QgU3RyaW5nJik+IGNhbGxiYWNrKTsK
KyAgICB2b2lkIGN1cnNvckFkdmFuY2UoY29uc3QgSURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRp
ZmllciwgdWludDY0X3QgY291bnQsIHN0ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpJ
REJLZXlEYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6U2hhcmVkQnVmZmVyPiwgdWludDMyX3QsIGNvbnN0IFN0cmluZyYpPiBjYWxsYmFjayk7Cisg
ICAgdm9pZCBjdXJzb3JJdGVyYXRlKGNvbnN0IElEQklkZW50aWZpZXImIGN1cnNvcklkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3Qg
V2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBQYXNzUmVm
UHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4sIHVpbnQzMl90LCBjb25zdCBTdHJpbmcmKT4gY2Fs
bGJhY2spOwogCiAgICAgdm9pZCBjb3VudChjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgaW50NjRfdCBpbmRleElELCBjb25z
dCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoaW50NjRfdCwg
dWludDMyX3QsIGNvbnN0IFN0cmluZyYpPiBjYWxsYmFjayk7CiAgICAgdm9pZCBkZWxldGVSYW5n
ZShjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhJiwgc3RkOjpmdW5jdGlv
bjx2b2lkKHVpbnQzMl90LCBjb25zdCBTdHJpbmcmKT4gY2FsbGJhY2spOwpAQCAtMTQ5LDggKzE0
OSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmVJbkJhY2tpbmdTdG9y
ZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVNZXRhZGF0YSYpOwogICAgIHZv
aWQgZGVsZXRlT2JqZWN0U3RvcmVJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNv
bnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RT
dG9yZUlEKTsKICAgICB2b2lkIGNsZWFyT2JqZWN0U3RvcmVJbkJhY2tpbmdTdG9yZSh1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
aW50NjRfdCBvYmplY3RTdG9yZUlEKTsKKwogICAgIHZvaWQgY3JlYXRlSW5kZXhJbkJhY2tpbmdT
dG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBXZWJDb3JlOjpJREJJbmRl
eE1ldGFkYXRhJik7CiAgICAgdm9pZCBkZWxldGVJbmRleEluQmFja2luZ1N0b3JlKHVpbnQ2NF90
IHJlcXVlc3RJRCwgY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBp
bnQ2NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCk7CisKICAgICB2b2lkIHB1dFJl
Y29yZEluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgSURCSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJPYmplY3RTdG9yZU1l
dGFkYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IFZlY3Rvcjx1aW50OF90
PiYgdmFsdWUsIGludDY0X3QgcHV0TW9kZSwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElE
cywgY29uc3QgVmVjdG9yPFZlY3RvcjxXZWJDb3JlOjpJREJLZXlEYXRhPj4mIGluZGV4S2V5cyk7
CiAgICAgdm9pZCBnZXRSZWNvcmRGcm9tQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwg
Y29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpJREJPYmplY3RTdG9yZU1ldGFkYXRhJiwgaW50NjRfdCBpbmRleElELCBjb25zdCBXZWJDb3Jl
OjpJREJLZXlSYW5nZURhdGEmLCBXZWJDb3JlOjpJbmRleGVkREI6OkN1cnNvclR5cGUpOwogICAg
IHZvaWQgb3BlbkN1cnNvckluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qg
SURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SUQsIGludDY0X3QgaW5kZXhJRCwgV2ViQ29yZTo6SW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24s
IFdlYkNvcmU6OkluZGV4ZWREQjo6Q3Vyc29yVHlwZSwgV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNr
ZW5kOjpUYXNrVHlwZSwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhJik7CkBAIC0xNzMs
OSArMTc1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZERlbGV0ZUluZGV4KHVpbnQ2NF90IHJl
cXVlc3RJRCwgYm9vbCBzdWNjZXNzKTsKICAgICB2b2lkIGRpZFB1dFJlY29yZEluQmFja2luZ1N0
b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIHVpbnQz
Ml90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgZGlk
R2V0UmVjb3JkRnJvbUJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNv
cmU6OklEQkdldFJlc3VsdCYsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UpOwotICAgIHZvaWQgZGlkT3BlbkN1cnNvckluQmFja2luZ1N0b3JlKHVpbnQ2NF90
IHJlcXVlc3RJRCwgaW50NjRfdCBjdXJzb3JJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYs
IGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBWZWN0b3I8Y2hhcj4mLCBjb25zdCBX
ZWJDb3JlOjpJREJLZXlEYXRhJiwgdWludDMyX3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSk7Ci0gICAgdm9pZCBkaWRBZHZhbmNlQ3Vyc29ySW5CYWNraW5nU3RvcmUodWlu
dDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgY29uc3QgV2ViQ29y
ZTo6SURCS2V5RGF0YSYsIGNvbnN0IFZlY3RvcjxjaGFyPiYsIGNvbnN0IFdlYkNvcmU6OklEQktl
eURhdGEmLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsK
LSAgICB2b2lkIGRpZEl0ZXJhdGVDdXJzb3JJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0
SUQsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRh
JiwgY29uc3QgVmVjdG9yPGNoYXI+JiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIHVpbnQz
Ml90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworICAgIHZvaWQgZGlk
T3BlbkN1cnNvckluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCBjdXJz
b3JJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQktleURh
dGEmLCBjb25zdCBWZWN0b3I8Y2hhcj4mLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmlu
ZyYgZXJyb3JNZXNzYWdlKTsKKyAgICB2b2lkIGRpZEFkdmFuY2VDdXJzb3JJbkJhY2tpbmdTdG9y
ZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBX
ZWJDb3JlOjpJREJLZXlEYXRhJiwgY29uc3QgVmVjdG9yPGNoYXI+JiwgdWludDMyX3QgZXJyb3JD
b2RlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CisgICAgdm9pZCBkaWRJdGVyYXRlQ3Vy
c29ySW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpJREJL
ZXlEYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IFZlY3RvcjxjaGFyPiYs
IHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAgIHZv
aWQgZGlkQ291bnRJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgY291
bnQsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAg
IHZvaWQgZGlkRGVsZXRlUmFuZ2VJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIHVp
bnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRh
dGFiYXNlQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5k
ZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlLmgKaW5kZXggNTEyNWQ1Zi4uOTYw
YTZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWRE
Qi9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmUuaApA
QCAtNzksOSArNzksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldEtleVJhbmdlUmVj
b3JkRnJvbU9iamVjdFN0b3JlKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZSYs
IFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiByZXN1bHQsIFJlZlB0cjxXZWJDb3JlOjpJ
REJLZXk+JiByZXN1bHRLZXkpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgY291bnQoY29uc3QgSURC
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQs
IGludDY0X3QgaW5kZXhJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhJiwgaW50NjRf
dCYgY291bnQpID0gMDsKIAotICAgIHZpcnR1YWwgYm9vbCBvcGVuQ3Vyc29yKGNvbnN0IElEQklk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBp
bnQ2NF90IGluZGV4SUQsIFdlYkNvcmU6OkluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uLCBXZWJD
b3JlOjpJbmRleGVkREI6OkN1cnNvclR5cGUsIFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZDo6
VGFza1R5cGUsIGNvbnN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYsIGludDY0X3QmIGN1cnNv
cklELCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFZlY3Rvcjxj
aGFyPiYsIFdlYkNvcmU6OklEQktleURhdGEmKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGFkdmFu
Y2VDdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgdWludDY0X3Qg
Y291bnQsIFdlYkNvcmU6OklEQktleURhdGEmLCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgVmVjdG9y
PGNoYXI+JiwgV2ViQ29yZTo6SURCS2V5RGF0YSYpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgaXRl
cmF0ZUN1cnNvcihjb25zdCBJREJJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpJREJLZXlEYXRhJiwgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFdlYkNvcmU6OklEQktl
eURhdGEmLCBWZWN0b3I8Y2hhcj4mLCBXZWJDb3JlOjpJREJLZXlEYXRhJikgPSAwOworICAgIHZp
cnR1YWwgYm9vbCBvcGVuQ3Vyc29yKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IGluZGV4SUQsIFdlYkNvcmU6
OkluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uLCBXZWJDb3JlOjpJbmRleGVkREI6OkN1cnNvclR5
cGUsIFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZDo6VGFza1R5cGUsIGNvbnN0IFdlYkNvcmU6
OklEQktleVJhbmdlRGF0YSYsIGludDY0X3QmIGN1cnNvcklELCBXZWJDb3JlOjpJREJLZXlEYXRh
JiwgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFZlY3RvcjxjaGFyPiYpID0gMDsKKyAgICB2aXJ0dWFs
IGJvb2wgYWR2YW5jZUN1cnNvcihjb25zdCBJREJJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVy
LCB1aW50NjRfdCBjb3VudCwgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFdlYkNvcmU6OklEQktleURh
dGEmLCBWZWN0b3I8Y2hhcj4mKSA9IDA7CisgICAgdmlydHVhbCBib29sIGl0ZXJhdGVDdXJzb3Io
Y29uc3QgSURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURC
S2V5RGF0YSYsIFdlYkNvcmU6OklEQktleURhdGEmLCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgVmVj
dG9yPGNoYXI+JikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9TUUxpdGVJ
REJDdXJzb3IuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9z
cWxpdGUvU1FMaXRlSURCQ3Vyc29yLmNwcAppbmRleCBkNTdjNTBjLi45NjRhNWMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9TUUxp
dGVJREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1cnNvci5jcHAKQEAgLTI3Miw3ICsyNzIsNiBAQCBib29s
IFNRTGl0ZUlEQkN1cnNvcjo6YWR2YW5jZU9uY2UoKQogICAgICAgICBtX2N1cnJlbnRLZXkgPSBJ
REJLZXlEYXRhKCk7CiAgICAgICAgIG1fY3VycmVudFByaW1hcnlLZXkgPSBJREJLZXlEYXRhKCk7
CiAgICAgICAgIG1fY3VycmVudFZhbHVlQnVmZmVyLmNsZWFyKCk7Ci0gICAgICAgIG1fY3VycmVu
dFZhbHVlS2V5ID0gSURCS2V5RGF0YSgpOwogCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
QEAgLTI4Nyw4ICsyODYsNyBAQCBib29sIFNRTGl0ZUlEQkN1cnNvcjo6YWR2YW5jZU9uY2UoKQog
ICAgIFZlY3RvcjxjaGFyPiBrZXlEYXRhOwogICAgIG1fc3RhdGVtZW50LT5nZXRDb2x1bW5CbG9i
QXNWZWN0b3IoMCwga2V5RGF0YSk7CiAKLSAgICBJREJLZXlEYXRhIGtleTsKLSAgICBpZiAoIWRl
c2VyaWFsaXplSURCS2V5RGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihrZXlE
YXRhLmRhdGEoKSksIGtleURhdGEuc2l6ZSgpLCBrZXkpKSB7CisgICAgaWYgKCFkZXNlcmlhbGl6
ZUlEQktleURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oa2V5RGF0YS5kYXRh
KCkpLCBrZXlEYXRhLnNpemUoKSwgbV9jdXJyZW50S2V5KSkgewogICAgICAgICBMT0dfRVJST1Io
IlVuYWJsZSB0byBkZXNlcmlhbGl6ZSBrZXkgZGF0YSBmcm9tIGRhdGFiYXNlIHdoaWxlIGFkdmFu
Y2luZyBjdXJzb3IiKTsKICAgICAgICAgbV9jb21wbGV0ZWQgPSB0cnVlOwogICAgICAgICBtX2Vy
cm9yZWQgPSB0cnVlOwpAQCAtMjk3LDEyICsyOTUsOCBAQCBib29sIFNRTGl0ZUlEQkN1cnNvcjo6
YWR2YW5jZU9uY2UoKQogCiAgICAgbV9zdGF0ZW1lbnQtPmdldENvbHVtbkJsb2JBc1ZlY3Rvcigx
LCBrZXlEYXRhKTsKIAotICAgIG1fY3VycmVudEtleSA9IGtleTsKLSAgICBtX2N1cnJlbnRQcmlt
YXJ5S2V5ID0ga2V5OwotICAgIG1fY3VycmVudFZhbHVlQnVmZmVyID0ga2V5RGF0YTsKLQogICAg
IGlmIChtX2luZGV4SUQgIT0gSURCSW5kZXhNZXRhZGF0YTo6SW52YWxpZElkKSB7Ci0gICAgICAg
IGlmICghZGVzZXJpYWxpemVJREJLZXlEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhf
dCo+KGtleURhdGEuZGF0YSgpKSwga2V5RGF0YS5zaXplKCksIG1fY3VycmVudFZhbHVlS2V5KSkg
eworICAgICAgICBpZiAoIWRlc2VyaWFsaXplSURCS2V5RGF0YShyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPihrZXlEYXRhLmRhdGEoKSksIGtleURhdGEuc2l6ZSgpLCBtX2N1cnJlbnRQ
cmltYXJ5S2V5KSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gZGVzZXJpYWxp
emUgdmFsdWUgZGF0YSBmcm9tIGRhdGFiYXNlIHdoaWxlIGFkdmFuY2luZyBpbmRleCBjdXJzb3Ii
KTsKICAgICAgICAgICAgIG1fY29tcGxldGVkID0gdHJ1ZTsKICAgICAgICAgICAgIG1fZXJyb3Jl
ZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5k
ZXhlZERCL3NxbGl0ZS9TUUxpdGVJREJDdXJzb3IuaCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1cnNvci5oCmluZGV4IDJiNGZkODku
LjQxNDQyMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1cnNvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1cnNvci5oCkBAIC01OSw3ICs1
OSw2IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiBjdXJyZW50S2V5
KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50S2V5OyB9CiAgICAgY29uc3QgV2ViQ29yZTo6SURC
S2V5RGF0YSYgY3VycmVudFByaW1hcnlLZXkoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRQcmlt
YXJ5S2V5OyB9CiAgICAgY29uc3QgVmVjdG9yPGNoYXI+JiBjdXJyZW50VmFsdWVCdWZmZXIoKSBj
b25zdCB7IHJldHVybiBtX2N1cnJlbnRWYWx1ZUJ1ZmZlcjsgfQotICAgIGNvbnN0IFdlYkNvcmU6
OklEQktleURhdGEmIGN1cnJlbnRWYWx1ZUtleSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFZh
bHVlS2V5OyB9CiAKICAgICBib29sIGFkdmFuY2UodWludDY0X3QgY291bnQpOwogICAgIGJvb2wg
aXRlcmF0ZShjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiB0YXJnZXRLZXkpOwpAQCAtODUsNyAr
ODQsNiBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OklEQktleURhdGEgbV9jdXJyZW50S2V5Owog
ICAgIFdlYkNvcmU6OklEQktleURhdGEgbV9jdXJyZW50UHJpbWFyeUtleTsKICAgICBWZWN0b3I8
Y2hhcj4gbV9jdXJyZW50VmFsdWVCdWZmZXI7Ci0gICAgV2ViQ29yZTo6SURCS2V5RGF0YSBtX2N1
cnJlbnRWYWx1ZUtleTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0
ZW1lbnQ+IG1fc3RhdGVtZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNR
TGl0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0
ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAKaW5kZXggZTA1YTNmNi4u
OGZhYTA3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4
ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlE
QkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1
ZGUgIlNRTGl0ZUlEQkN1cnNvci5oIgogI2luY2x1ZGUgIlNRTGl0ZUlEQlRyYW5zYWN0aW9uLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JREJC
aW5kaW5nVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJEYXRhYmFzZU1ldGFkYXRh
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJHZXRSZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0lEQktleURhdGEuaD4KQEAgLTg3NSw3ICs4NzYsNyBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNl
QmFja2luZ1N0b3JlU1FMaXRlOjpnZXRJbmRleFJlY29yZChjb25zdCBJREJJZGVudGlmaWVyJiB0
cgogICAgIG1fY3Vyc29ycy5zZXQoY3Vyc29yLT5pZGVudGlmaWVyKCksIGN1cnNvcik7CiAKICAg
ICByZXN1bHQgPSBJREJHZXRSZXN1bHQoU2hhcmVkQnVmZmVyOjpjcmVhdGUoY3Vyc29yLT5jdXJy
ZW50VmFsdWVCdWZmZXIoKS5kYXRhKCksIGN1cnNvci0+Y3VycmVudFZhbHVlQnVmZmVyKCkuc2l6
ZSgpKSk7Ci0gICAgcmVzdWx0LmtleURhdGEgPSBjdXJzb3ItPmN1cnJlbnRWYWx1ZUtleSgpOwor
ICAgIHJlc3VsdC5rZXlEYXRhID0gY3Vyc29yLT5jdXJyZW50UHJpbWFyeUtleSgpOwogCiAgICAg
Ly8gQ2xvc2luZyB0aGUgY3Vyc29yIHdpbGwgZGVzdHJveSB0aGUgY3Vyc29yIG9iamVjdCBhbmQg
cmVtb3ZlIGl0IGZyb20gb3VyIGN1cnNvciBzZXQuCiAgICAgdHJhbnNhY3Rpb24tPmNsb3NlQ3Vy
c29yKCpjdXJzb3IpOwpAQCAtMTEzNSw3ICsxMTM2LDcgQEAgYm9vbCBVbmlxdWVJREJEYXRhYmFz
ZUJhY2tpbmdTdG9yZVNRTGl0ZTo6Y291bnQoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rp
b24KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdT
dG9yZVNRTGl0ZTo6b3BlbkN1cnNvcihjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgaW50NjRfdCBpbmRleElELCBJbmRleGVk
REI6OkN1cnNvckRpcmVjdGlvbiBjdXJzb3JEaXJlY3Rpb24sIEluZGV4ZWREQjo6Q3Vyc29yVHlw
ZSBjdXJzb3JUeXBlLCBJREJEYXRhYmFzZUJhY2tlbmQ6OlRhc2tUeXBlIHRhc2tUeXBlLCBjb25z
dCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlLCBpbnQ2NF90JiBjdXJzb3JJRCwgSURCS2V5RGF0
YSYga2V5LCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBWZWN0b3I8Y2hhcj4mIHZhbHVlQnVmZmVy
LCBJREJLZXlEYXRhJiB2YWx1ZUtleSkKK2Jvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3Rv
cmVTUUxpdGU6Om9wZW5DdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCwgSW5kZXhlZERC
OjpDdXJzb3JEaXJlY3Rpb24gY3Vyc29yRGlyZWN0aW9uLCBJbmRleGVkREI6OkN1cnNvclR5cGUg
Y3Vyc29yVHlwZSwgSURCRGF0YWJhc2VCYWNrZW5kOjpUYXNrVHlwZSB0YXNrVHlwZSwgY29uc3Qg
SURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZSwgaW50NjRfdCYgY3Vyc29ySUQsIElEQktleURhdGEm
IGtleSwgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwgVmVjdG9yPGNoYXI+JiB2YWx1ZUJ1ZmZlcikK
IHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQobV9zcWxpdGVEQik7
CkBAIC0xMTU2LDEyICsxMTU3LDExIEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3Rv
cmVTUUxpdGU6Om9wZW5DdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhCiAgICAga2V5
ID0gY3Vyc29yLT5jdXJyZW50S2V5KCk7CiAgICAgcHJpbWFyeUtleSA9IGN1cnNvci0+Y3VycmVu
dFByaW1hcnlLZXkoKTsKICAgICB2YWx1ZUJ1ZmZlciA9IGN1cnNvci0+Y3VycmVudFZhbHVlQnVm
ZmVyKCk7Ci0gICAgdmFsdWVLZXkgPSBjdXJzb3ItPmN1cnJlbnRWYWx1ZUtleSgpOwogCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxp
dGU6OmFkdmFuY2VDdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwg
dWludDY0X3QgY291bnQsIElEQktleURhdGEmIGtleSwgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwg
VmVjdG9yPGNoYXI+JiB2YWx1ZUJ1ZmZlciwgSURCS2V5RGF0YSYgdmFsdWVLZXkpCitib29sIFVu
aXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjphZHZhbmNlQ3Vyc29yKGNvbnN0IElE
QklkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIHVpbnQ2NF90IGNvdW50LCBJREJLZXlEYXRh
JiBrZXksIElEQktleURhdGEmIHByaW1hcnlLZXksIFZlY3RvcjxjaGFyPiYgdmFsdWVCdWZmZXIp
CiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fc3FsaXRlREIp
OwpAQCAtMTE4NSwxMiArMTE4NSwxMSBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0
b3JlU1FMaXRlOjphZHZhbmNlQ3Vyc29yKGNvbnN0IElEQklkZW50aWZpZXImIGN1cgogICAgIGtl
eSA9IGN1cnNvci0+Y3VycmVudEtleSgpOwogICAgIHByaW1hcnlLZXkgPSBjdXJzb3ItPmN1cnJl
bnRQcmltYXJ5S2V5KCk7CiAgICAgdmFsdWVCdWZmZXIgPSBjdXJzb3ItPmN1cnJlbnRWYWx1ZUJ1
ZmZlcigpOwotICAgIHZhbHVlS2V5ID0gY3Vyc29yLT5jdXJyZW50VmFsdWVLZXkoKTsKIAogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FM
aXRlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQklkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIs
IGNvbnN0IElEQktleURhdGEmIHRhcmdldEtleSwgSURCS2V5RGF0YSYga2V5LCBJREJLZXlEYXRh
JiBwcmltYXJ5S2V5LCBWZWN0b3I8Y2hhcj4mIHZhbHVlQnVmZmVyLCBJREJLZXlEYXRhJiB2YWx1
ZUtleSkKK2Jvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6Oml0ZXJhdGVD
dXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgSURCS2V5
RGF0YSYgdGFyZ2V0S2V5LCBJREJLZXlEYXRhJiBrZXksIElEQktleURhdGEmIHByaW1hcnlLZXks
IFZlY3RvcjxjaGFyPiYgdmFsdWVCdWZmZXIpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7CiAgICAgQVNTRVJUKG1fc3FsaXRlREIpOwpAQCAtMTIxNCw3ICsxMjEzLDYgQEAgYm9vbCBV
bmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6aXRlcmF0ZUN1cnNvcihjb25zdCBJ
REJJZGVudGlmaWVyJiBjdXIKICAgICBrZXkgPSBjdXJzb3ItPmN1cnJlbnRLZXkoKTsKICAgICBw
cmltYXJ5S2V5ID0gY3Vyc29yLT5jdXJyZW50UHJpbWFyeUtleSgpOwogICAgIHZhbHVlQnVmZmVy
ID0gY3Vyc29yLT5jdXJyZW50VmFsdWVCdWZmZXIoKTsKLSAgICB2YWx1ZUtleSA9IGN1cnNvci0+
Y3VycmVudFZhbHVlS2V5KCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRh
dGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nl
c3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5o
CmluZGV4IDg4YTdkYTkuLjg5ZGEyOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3Jl
U1FMaXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9z
cWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuaApAQCAtODIsOSArODIs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldEtleVJhbmdlUmVjb3JkRnJvbU9iamVj
dFN0b3JlKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRf
dCBvYmplY3RTdG9yZUlELCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZSYsIFJlZlB0cjxXZWJD
b3JlOjpTaGFyZWRCdWZmZXI+JiByZXN1bHQsIFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+JiByZXN1
bHRLZXkpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjb3VudChjb25zdCBJREJJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgaW50NjRf
dCBpbmRleElELCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmLCBpbnQ2NF90JiBjb3Vu
dCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgb3BlbkN1cnNvcihjb25zdCBJREJJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgaW50
NjRfdCBpbmRleElELCBXZWJDb3JlOjpJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiwgV2ViQ29y
ZTo6SW5kZXhlZERCOjpDdXJzb3JUeXBlLCBXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmQ6OlRh
c2tUeXBlLCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmLCBpbnQ2NF90JiBjdXJzb3JJ
RCwgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFdlYkNvcmU6OklEQktleURhdGEmLCBWZWN0b3I8Y2hh
cj4mLCBXZWJDb3JlOjpJREJLZXlEYXRhJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIGFk
dmFuY2VDdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgdWludDY0
X3QgY291bnQsIFdlYkNvcmU6OklEQktleURhdGEmLCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgVmVj
dG9yPGNoYXI+JiwgV2ViQ29yZTo6SURCS2V5RGF0YSYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
Ym9vbCBpdGVyYXRlQ3Vyc29yKGNvbnN0IElEQklkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgV2ViQ29y
ZTo6SURCS2V5RGF0YSYsIFZlY3RvcjxjaGFyPiYsIFdlYkNvcmU6OklEQktleURhdGEmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgb3BlbkN1cnNvcihjb25zdCBJREJJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgaW50NjRfdCBpbmRl
eElELCBXZWJDb3JlOjpJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiwgV2ViQ29yZTo6SW5kZXhl
ZERCOjpDdXJzb3JUeXBlLCBXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmQ6OlRhc2tUeXBlLCBj
b25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmLCBpbnQ2NF90JiBjdXJzb3JJRCwgV2ViQ29y
ZTo6SURCS2V5RGF0YSYsIFdlYkNvcmU6OklEQktleURhdGEmLCBWZWN0b3I8Y2hhcj4mKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgYWR2YW5jZUN1cnNvcihjb25zdCBJREJJZGVudGlmaWVy
JiBjdXJzb3JJZGVudGlmaWVyLCB1aW50NjRfdCBjb3VudCwgV2ViQ29yZTo6SURCS2V5RGF0YSYs
IFdlYkNvcmU6OklEQktleURhdGEmLCBWZWN0b3I8Y2hhcj4mKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgaXRlcmF0ZUN1cnNvcihjb25zdCBJREJJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFdl
YkNvcmU6OklEQktleURhdGEmLCBWZWN0b3I8Y2hhcj4mKSBvdmVycmlkZTsKIAogICAgIHZvaWQg
dW5yZWdpc3RlckN1cnNvcihTUUxpdGVJREJDdXJzb3IqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERC
L1dlYklEQlNlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IDc0ZTkyZjAuLjAxYzk2MTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJ
REJTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTQ0NCw3ICs0
NDQsNyBAQCB2b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZEdldFJlY29yZCh1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OklEQgogICAgIHNlcnZlclJlcXVlc3QtPmNvbXBs
ZXRlUmVxdWVzdChnZXRSZXN1bHQsIGVycm9yQ29kZSA/IElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0
ZShlcnJvckNvZGUsIGVycm9yTWVzc2FnZSkgOiBudWxscHRyKTsKIH0KIAotdm9pZCBXZWJJREJT
ZXJ2ZXJDb25uZWN0aW9uOjpkaWRPcGVuQ3Vyc29yKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRf
dCBjdXJzb3JJRCwgY29uc3QgSURCS2V5RGF0YSYga2V5LCBjb25zdCBJREJLZXlEYXRhJiBwcmlt
YXJ5S2V5LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHZhbHVlRGF0YSwgY29uc3QgSURCS2V5
RGF0YSYgdmFsdWVLZXksIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UpCit2b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZE9wZW5DdXJzb3IodWludDY0
X3QgcmVxdWVzdElELCBpbnQ2NF90IGN1cnNvcklELCBjb25zdCBJREJLZXlEYXRhJiBrZXksIGNv
bnN0IElEQktleURhdGEmIHByaW1hcnlLZXksIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgdmFs
dWVEYXRhLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQog
ewogICAgIExPRyhJREIsICJXZWJQcm9jZXNzIGRpZE9wZW5DdXJzb3IgcmVxdWVzdCBJRCAlbGx1
IChlcnJvciAtICVzKSIsIHJlcXVlc3RJRCwgZXJyb3JNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwog
CkBAIC00NTQsMTAgKzQ1NCwxMCBAQCB2b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZE9w
ZW5DdXJzb3IodWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IGN1cnNvcklELAogICAgICAgICBy
ZXR1cm47CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSA9IFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKHZhbHVlRGF0YS5kYXRhKCksIHZhbHVlRGF0YS5zaXplKCkpOwotICAgIHNlcnZlclJl
cXVlc3QtPmNvbXBsZXRlUmVxdWVzdChjdXJzb3JJRCwga2V5Lm1heWJlQ3JlYXRlSURCS2V5KCks
IHByaW1hcnlLZXkubWF5YmVDcmVhdGVJREJLZXkoKSwgdmFsdWUucmVsZWFzZSgpLCB2YWx1ZUtl
eS5tYXliZUNyZWF0ZUlEQktleSgpLCBlcnJvckNvZGUgPyBJREJEYXRhYmFzZUVycm9yOjpjcmVh
dGUoZXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UpIDogbnVsbHB0cik7CisgICAgc2VydmVyUmVxdWVz
dC0+Y29tcGxldGVSZXF1ZXN0KGN1cnNvcklELCBrZXkubWF5YmVDcmVhdGVJREJLZXkoKSwgcHJp
bWFyeUtleS5tYXliZUNyZWF0ZUlEQktleSgpLCB2YWx1ZS5yZWxlYXNlKCksIGVycm9yQ29kZSA/
IElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShlcnJvckNvZGUsIGVycm9yTWVzc2FnZSkgOiBudWxs
cHRyKTsKIH0KIAotdm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpkaWRBZHZhbmNlQ3Vyc29y
KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgSURCS2V5RGF0YSYga2V5LCBjb25zdCBJREJLZXlE
YXRhJiBwcmltYXJ5S2V5LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHZhbHVlRGF0YSwgY29u
c3QgSURCS2V5RGF0YSYgdmFsdWVLZXksIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UpCit2b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZEFkdmFuY2VD
dXJzb3IodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBJREJLZXlEYXRhJiBrZXksIGNvbnN0IElE
QktleURhdGEmIHByaW1hcnlLZXksIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgdmFsdWVEYXRh
LCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewogICAg
IExPRyhJREIsICJXZWJQcm9jZXNzIGRpZEFkdmFuY2VDdXJzb3IgcmVxdWVzdCBJRCAlbGx1IChl
cnJvciAtICVzKSIsIHJlcXVlc3RJRCwgZXJyb3JNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwogCkBA
IC00NjcsMTAgKzQ2NywxMCBAQCB2b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZEFkdmFu
Y2VDdXJzb3IodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBJREJLZXlEYQogICAgICAgICByZXR1
cm47CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSA9IFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKHZhbHVlRGF0YS5kYXRhKCksIHZhbHVlRGF0YS5zaXplKCkpOwotICAgIHNlcnZlclJlcXVl
c3QtPmNvbXBsZXRlUmVxdWVzdChrZXkubWF5YmVDcmVhdGVJREJLZXkoKSwgcHJpbWFyeUtleS5t
YXliZUNyZWF0ZUlEQktleSgpLCB2YWx1ZS5yZWxlYXNlKCksIHZhbHVlS2V5Lm1heWJlQ3JlYXRl
SURCS2V5KCksIGVycm9yQ29kZSA/IElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShlcnJvckNvZGUs
IGVycm9yTWVzc2FnZSkgOiBudWxscHRyKTsKKyAgICBzZXJ2ZXJSZXF1ZXN0LT5jb21wbGV0ZVJl
cXVlc3Qoa2V5Lm1heWJlQ3JlYXRlSURCS2V5KCksIHByaW1hcnlLZXkubWF5YmVDcmVhdGVJREJL
ZXkoKSwgdmFsdWUucmVsZWFzZSgpLCBlcnJvckNvZGUgPyBJREJEYXRhYmFzZUVycm9yOjpjcmVh
dGUoZXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UpIDogbnVsbHB0cik7CiB9CiAKLXZvaWQgV2ViSURC
U2VydmVyQ29ubmVjdGlvbjo6ZGlkSXRlcmF0ZUN1cnNvcih1aW50NjRfdCByZXF1ZXN0SUQsIGNv
bnN0IElEQktleURhdGEmIGtleSwgY29uc3QgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwgY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiB2YWx1ZURhdGEsIGNvbnN0IElEQktleURhdGEmIHZhbHVlS2V5
LCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQordm9pZCBX
ZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpkaWRJdGVyYXRlQ3Vyc29yKHVpbnQ2NF90IHJlcXVlc3RJ
RCwgY29uc3QgSURCS2V5RGF0YSYga2V5LCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHZhbHVlRGF0YSwgdWludDMyX3QgZXJyb3JDb2RlLCBj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKICAgICBMT0coSURCLCAiV2ViUHJvY2VzcyBk
aWRJdGVyYXRlQ3Vyc29yIHJlcXVlc3QgSUQgJWxsdSAoZXJyb3IgLSAlcykiLCByZXF1ZXN0SUQs
IGVycm9yTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKIApAQCAtNDgwLDcgKzQ4MCw3IEBAIHZvaWQg
V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6ZGlkSXRlcmF0ZUN1cnNvcih1aW50NjRfdCByZXF1ZXN0
SUQsIGNvbnN0IElEQktleURhCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxTaGFyZWRC
dWZmZXI+IHZhbHVlID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUodmFsdWVEYXRhLmRhdGEoKSwgdmFs
dWVEYXRhLnNpemUoKSk7Ci0gICAgc2VydmVyUmVxdWVzdC0+Y29tcGxldGVSZXF1ZXN0KGtleS5t
YXliZUNyZWF0ZUlEQktleSgpLCBwcmltYXJ5S2V5Lm1heWJlQ3JlYXRlSURCS2V5KCksIHZhbHVl
LnJlbGVhc2UoKSwgdmFsdWVLZXkubWF5YmVDcmVhdGVJREJLZXkoKSwgZXJyb3JDb2RlID8gSURC
RGF0YWJhc2VFcnJvcjo6Y3JlYXRlKGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKSA6IG51bGxwdHIp
OworICAgIHNlcnZlclJlcXVlc3QtPmNvbXBsZXRlUmVxdWVzdChrZXkubWF5YmVDcmVhdGVJREJL
ZXkoKSwgcHJpbWFyeUtleS5tYXliZUNyZWF0ZUlEQktleSgpLCB2YWx1ZS5yZWxlYXNlKCksIGVy
cm9yQ29kZSA/IElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShlcnJvckNvZGUsIGVycm9yTWVzc2Fn
ZSkgOiBudWxscHRyKTsKIH0KIAogdm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpjb3VudChJ
REJUcmFuc2FjdGlvbkJhY2tlbmQmIHRyYW5zYWN0aW9uLCBjb25zdCBDb3VudE9wZXJhdGlvbiYg
b3BlcmF0aW9uLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoaW50NjRfdCwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykKQEAgLTYyOCwxMiArNjI4LDEyIEBAIHZv
aWQgV2ViSURCU2VydmVyQ29ubmVjdGlvbjo6ZGlkQ2hhbmdlRGF0YWJhc2VWZXJzaW9uKHVpbnQ2
NF90IHJlcXVlc3RJRCwgYm9vbCBzCiAgICAgc2VydmVyUmVxdWVzdC0+Y29tcGxldGVSZXF1ZXN0
KHN1Y2Nlc3MgPyBudWxscHRyIDogSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpVbmtub3duRXJyb3IsICJVbmtub3duIGVycm9yIG9jY3VyZWQgY2hhbmdpbmcg
ZGF0YWJhc2UgdmVyc2lvbiIpKTsKIH0KIAotdm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpv
cGVuQ3Vyc29yKElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IE9wZW5DdXJzb3JPcGVyYXRp
b24mIG9wZXJhdGlvbiwgc3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3QsIFBhc3NSZWZQdHI8SURC
S2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NS
ZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25D
YWxsYmFjaykKK3ZvaWQgV2ViSURCU2VydmVyQ29ubmVjdGlvbjo6b3BlbkN1cnNvcihJREJUcmFu
c2FjdGlvbkJhY2tlbmQmLCBjb25zdCBPcGVuQ3Vyc29yT3BlcmF0aW9uJiBvcGVyYXRpb24sIHN0
ZDo6ZnVuY3Rpb248dm9pZChpbnQ2NF90LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8
SURCS2V5PiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNl
RXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKQogewotICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+
IHNlcnZlclJlcXVlc3QgPSBBc3luY1JlcXVlc3RJbXBsPGludDY0X3QsIFBhc3NSZWZQdHI8SURC
S2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NS
ZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPj46OmNyZWF0ZShjb21w
bGV0aW9uQ2FsbGJhY2spOworICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+IHNlcnZlclJlcXVlc3Qg
PSBBc3luY1JlcXVlc3RJbXBsPGludDY0X3QsIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VFcnJvcj4+OjpjcmVhdGUoY29tcGxldGlvbkNhbGxiYWNrKTsKIAogICAgIHNlcnZlclJlcXVl
c3QtPnNldEFib3J0SGFuZGxlcihbY29tcGxldGlvbkNhbGxiYWNrXSgpIHsKLSAgICAgICAgY29t
cGxldGlvbkNhbGxiYWNrKDAsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElE
QkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9y
LCAiVW5rbm93biBlcnJvciBvY2N1cmVkIG9wZW5pbmcgZGF0YWJhc2UgY3Vyc29yIikpOworICAg
ICAgICBjb21wbGV0aW9uQ2FsbGJhY2soMCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSURC
RGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3Is
ICJVbmtub3duIGVycm9yIG9jY3VyZWQgb3BlbmluZyBkYXRhYmFzZSBjdXJzb3IiKSk7CiAgICAg
fSk7CiAKICAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBzZXJ2ZXJSZXF1ZXN0LT5yZXF1ZXN0SUQo
KTsKQEAgLTY0NSwxMiArNjQ1LDEyIEBAIHZvaWQgV2ViSURCU2VydmVyQ29ubmVjdGlvbjo6b3Bl
bkN1cnNvcihJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBPcGVuQ3Vyc29yCiAgICAgc2Vu
ZChNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6T3BlbkN1cnNvcihyZXF1
ZXN0SUQsIG9wZXJhdGlvbi50cmFuc2FjdGlvbklEKCksIG9wZXJhdGlvbi5vYmplY3RTdG9yZUlE
KCksIG9wZXJhdGlvbi5pbmRleElEKCksIHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhdGlvbi5k
aXJlY3Rpb24oKSksIHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhdGlvbi5jdXJzb3JUeXBlKCkp
LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihvcGVyYXRpb24udGFza1R5cGUoKSksIG9wZXJhdGlvbi5r
ZXlSYW5nZSgpKSk7CiB9CiAKLXZvaWQgV2ViSURCU2VydmVyQ29ubmVjdGlvbjo6Y3Vyc29yQWR2
YW5jZShJREJDdXJzb3JCYWNrZW5kJiwgY29uc3QgQ3Vyc29yQWR2YW5jZU9wZXJhdGlvbiYgb3Bl
cmF0aW9uLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRy
PElEQktleT4sIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKQordm9pZCBX
ZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpjdXJzb3JBZHZhbmNlKElEQkN1cnNvckJhY2tlbmQmLCBj
b25zdCBDdXJzb3JBZHZhbmNlT3BlcmF0aW9uJiBvcGVyYXRpb24sIHN0ZDo6ZnVuY3Rpb248dm9p
ZChQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTaGFy
ZWRCdWZmZXI+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxi
YWNrKQogewotICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+IHNlcnZlclJlcXVlc3QgPSBBc3luY1Jl
cXVlc3RJbXBsPFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUVycm9yPj46OmNyZWF0ZShjb21wbGV0aW9uQ2FsbGJhY2spOworICAgIFJlZlB0cjxBc3lu
Y1JlcXVlc3Q+IHNlcnZlclJlcXVlc3QgPSBBc3luY1JlcXVlc3RJbXBsPFBhc3NSZWZQdHI8SURC
S2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4+OjpjcmVhdGUoY29tcGxldGlvbkNhbGxiYWNrKTsKIAog
ICAgIHNlcnZlclJlcXVlc3QtPnNldEFib3J0SGFuZGxlcihbY29tcGxldGlvbkNhbGxiYWNrXSgp
IHsKLSAgICAgICAgY29tcGxldGlvbkNhbGxiYWNrKG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIs
IG51bGxwdHIsIElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
VW5rbm93bkVycm9yLCAiVW5rbm93biBlcnJvciBvY2N1cmVkIGFkdmFuY2luZyBkYXRhYmFzZSBj
dXJzb3IiKSk7CisgICAgICAgIGNvbXBsZXRpb25DYWxsYmFjayhudWxscHRyLCBudWxscHRyLCBu
dWxscHRyLCBJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OlVu
a25vd25FcnJvciwgIlVua25vd24gZXJyb3Igb2NjdXJlZCBhZHZhbmNpbmcgZGF0YWJhc2UgY3Vy
c29yIikpOwogICAgIH0pOwogCiAgICAgdWludDY0X3QgcmVxdWVzdElEID0gc2VydmVyUmVxdWVz
dC0+cmVxdWVzdElEKCk7CkBAIC02NjIsMTIgKzY2MiwxMiBAQCB2b2lkIFdlYklEQlNlcnZlckNv
bm5lY3Rpb246OmN1cnNvckFkdmFuY2UoSURCQ3Vyc29yQmFja2VuZCYsIGNvbnN0IEN1cnNvckFk
dmFuYwogICAgIHNlbmQoTWVzc2FnZXM6OkRhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OkN1
cnNvckFkdmFuY2UocmVxdWVzdElELCBvcGVyYXRpb24uY3Vyc29ySUQoKSwgb3BlcmF0aW9uLmNv
dW50KCkpKTsKIH0KIAotdm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpjdXJzb3JJdGVyYXRl
KElEQkN1cnNvckJhY2tlbmQmLCBjb25zdCBDdXJzb3JJdGVyYXRpb25PcGVyYXRpb24mIG9wZXJh
dGlvbiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJ
REJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykKK3ZvaWQgV2Vi
SURCU2VydmVyQ29ubmVjdGlvbjo6Y3Vyc29ySXRlcmF0ZShJREJDdXJzb3JCYWNrZW5kJiwgY29u
c3QgQ3Vyc29ySXRlcmF0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24sIHN0ZDo6ZnVuY3Rpb248dm9p
ZChQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTaGFy
ZWRCdWZmZXI+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxi
YWNrKQogewotICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+IHNlcnZlclJlcXVlc3QgPSBBc3luY1Jl
cXVlc3RJbXBsPFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUVycm9yPj46OmNyZWF0ZShjb21wbGV0aW9uQ2FsbGJhY2spOworICAgIFJlZlB0cjxBc3lu
Y1JlcXVlc3Q+IHNlcnZlclJlcXVlc3QgPSBBc3luY1JlcXVlc3RJbXBsPFBhc3NSZWZQdHI8SURC
S2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4+OjpjcmVhdGUoY29tcGxldGlvbkNhbGxiYWNrKTsKIAog
ICAgIHNlcnZlclJlcXVlc3QtPnNldEFib3J0SGFuZGxlcihbY29tcGxldGlvbkNhbGxiYWNrXSgp
IHsKLSAgICAgICAgY29tcGxldGlvbkNhbGxiYWNrKG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIs
IG51bGxwdHIsIElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
VW5rbm93bkVycm9yLCAiVW5rbm93biBlcnJvciBvY2N1cmVkIGl0ZXJhdGluZyBkYXRhYmFzZSBj
dXJzb3IiKSk7CisgICAgICAgIGNvbXBsZXRpb25DYWxsYmFjayhudWxscHRyLCBudWxscHRyLCBu
dWxscHRyLCBJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OlVu
a25vd25FcnJvciwgIlVua25vd24gZXJyb3Igb2NjdXJlZCBpdGVyYXRpbmcgZGF0YWJhc2UgY3Vy
c29yIikpOwogICAgIH0pOwogCiAgICAgdWludDY0X3QgcmVxdWVzdElEID0gc2VydmVyUmVxdWVz
dC0+cmVxdWVzdElEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24u
aAppbmRleCAyYjIxOWQ0Li4yNDVlZWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJTZXJ2
ZXJDb25uZWN0aW9uLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBkZWxldGVJbmRleChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBXZWJD
b3JlOjpEZWxldGVJbmRleE9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRy
PFdlYkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0KFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZCYs
IGNvbnN0IFdlYkNvcmU6OkdldE9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBX
ZWJDb3JlOjpJREJHZXRSZXN1bHQmLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlRXJy
b3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0
KFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IFdlYkNvcmU6OlB1dE9wZXJh
dGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFBh
c3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2sp
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKFdlYkNvcmU6OklEQlRyYW5z
YWN0aW9uQmFja2VuZCYsIGNvbnN0IFdlYkNvcmU6Ok9wZW5DdXJzb3JPcGVyYXRpb24mLCBzdGQ6
OmZ1bmN0aW9uPHZvaWQoaW50NjRfdCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVy
PiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRh
dGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgb3BlbkN1cnNvcihXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBX
ZWJDb3JlOjpPcGVuQ3Vyc29yT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3Qs
IFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+
LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6
SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBjb3VudChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBX
ZWJDb3JlOjpDb3VudE9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChpbnQ2NF90LCBQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUmFuZ2UoV2ViQ29yZTo6SURCVHJhbnNh
Y3Rpb25CYWNrZW5kJiwgY29uc3QgV2ViQ29yZTo6RGVsZXRlUmFuZ2VPcGVyYXRpb24mLCBzdGQ6
OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUVycm9yPik+IGNv
bXBsZXRpb25DYWxsYmFjaykgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyT2JqZWN0
U3RvcmUoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgV2ViQ29yZTo6Q2xl
YXJPYmplY3RTdG9yZU9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlkZTsK
QEAgLTgwLDggKzgwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaGFuZ2VEYXRhYmFz
ZVZlcnNpb24oV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgV2ViQ29yZTo6
SURCRGF0YWJhc2VCYWNrZW5kOjpWZXJzaW9uQ2hhbmdlT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlv
bjx2b2lkKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9u
Q2FsbGJhY2spIG92ZXJyaWRlOwogCiAgICAgLy8gQ3Vyc29yLWxldmVsIG9wZXJhdGlvbnMKLSAg
ICB2aXJ0dWFsIHZvaWQgY3Vyc29yQWR2YW5jZShXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kJiwg
Y29uc3QgV2ViQ29yZTo6Q3Vyc29yQWR2YW5jZU9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9p
ZChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5
PiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRyPFdlYkNvcmU6
OklEQktleT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0
aW9uQ2FsbGJhY2spIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBjdXJzb3JJdGVyYXRlKFdl
YkNvcmU6OklEQkN1cnNvckJhY2tlbmQmLCBjb25zdCBXZWJDb3JlOjpDdXJzb3JJdGVyYXRpb25P
cGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+
LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVk
QnVmZmVyPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQYXNzUmVmUHRyPFdlYkNvcmU6
OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgY3Vyc29yQWR2YW5jZShXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kJiwgY29u
c3QgV2ViQ29yZTo6Q3Vyc29yQWR2YW5jZU9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQ
YXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5Piwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklE
QkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgY3Vyc29ySXRlcmF0ZShXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kJiwgY29uc3Qg
V2ViQ29yZTo6Q3Vyc29ySXRlcmF0aW9uT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBh
c3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURC
RGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOwogCiAgICAgLy8g
TWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGRpZFJlY2VpdmVXZWJJREJTZXJ2ZXJDb25uZWN0
aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CkBAIC0x
MTAsOSArMTEwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZERlbGV0ZUluZGV4KHVpbnQ2NF90
IHJlcXVlc3RJRCwgYm9vbCBzdWNjZXNzKTsKICAgICB2b2lkIGRpZFB1dFJlY29yZCh1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCB1aW50MzJfdCBlcnJvckNv
ZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKICAgICB2b2lkIGRpZEdldFJlY29yZCh1
aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OklEQkdldFJlc3VsdCYsIHVpbnQzMl90
IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwotICAgIHZvaWQgZGlkT3Bl
bkN1cnNvcih1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgY3Vyc29ySUQsIGNvbnN0IFdlYkNv
cmU6OklEQktleURhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIHVpbnQzMl90IGVycm9y
Q29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwotICAgIHZvaWQgZGlkQWR2YW5jZUN1
cnNvcih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25z
dCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3Qg
V2ViQ29yZTo6SURCS2V5RGF0YSYsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpOwotICAgIHZvaWQgZGlkSXRlcmF0ZUN1cnNvcih1aW50NjRfdCByZXF1ZXN0
SUQsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRh
JiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYs
IHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworICAgIHZv
aWQgZGlkT3BlbkN1cnNvcih1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgY3Vyc29ySUQsIGNv
bnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgY29u
c3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgdWludDMyX3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSk7CisgICAgdm9pZCBkaWRBZHZhbmNlQ3Vyc29yKHVpbnQ2NF90IHJlcXVl
c3RJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQktleURh
dGEmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKKyAgICB2b2lkIGRpZEl0ZXJhdGVDdXJzb3IodWludDY0
X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgY29uc3QgV2ViQ29yZTo6
SURCS2V5RGF0YSYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIHVpbnQzMl90IGVycm9yQ29k
ZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgZGlkQ291bnQodWludDY0
X3QgcmVxdWVzdElELCBpbnQ2NF90IGNvdW50LCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0
cmluZyYgZXJyb3JNZXNzYWdlKTsKICAgICB2b2lkIGRpZERlbGV0ZVJhbmdlKHVpbnQ2NF90IHJl
cXVlc3RJRCwgdWludDMyX3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KaW5kZXggOTI3MTBiMS4uNmU0ZjNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTM2LDEzICszNiwx
NSBAQCBtZXNzYWdlcyAtPiBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBEaWRDcmVhdGVPYmplY3RTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgc3VjY2Vz
cykKICAgICBEaWREZWxldGVPYmplY3RTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgc3Vj
Y2VzcykKICAgICBEaWRDbGVhck9iamVjdFN0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBz
dWNjZXNzKQorICAgIAogICAgIERpZENyZWF0ZUluZGV4KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9v
bCBzdWNjZXNzKQogICAgIERpZERlbGV0ZUluZGV4KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBz
dWNjZXNzKQorCiAgICAgRGlkUHV0UmVjb3JkKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6
SURCS2V5RGF0YSByZXN1bHRLZXksIHVpbnQzMl90IGVycm9yQ29kZSwgU3RyaW5nIGVycm9yTWVz
c2FnZSkKICAgICBEaWRHZXRSZWNvcmQodWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpJREJH
ZXRSZXN1bHQgZ2V0UmVzdWx0LCB1aW50MzJfdCBlcnJvckNvZGUsIFN0cmluZyBlcnJvck1lc3Nh
Z2UpCi0gICAgRGlkT3BlbkN1cnNvcih1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgY3Vyc29y
SUQsIFdlYkNvcmU6OklEQktleURhdGEga2V5LCBXZWJDb3JlOjpJREJLZXlEYXRhIHByaW1hcnlL
ZXksIElQQzo6RGF0YVJlZmVyZW5jZSB2YWx1ZSwgV2ViQ29yZTo6SURCS2V5RGF0YSB2YWx1ZUtl
eSwgdWludDMyX3QgZXJyb3JDb2RlLCBTdHJpbmcgZXJyb3JNZXNzYWdlKQotICAgIERpZEFkdmFu
Y2VDdXJzb3IodWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpJREJLZXlEYXRhIGtleSwgV2Vi
Q29yZTo6SURCS2V5RGF0YSBwcmltYXJ5S2V5LCBJUEM6OkRhdGFSZWZlcmVuY2UgdmFsdWUsIFdl
YkNvcmU6OklEQktleURhdGEgdmFsdWVLZXksIHVpbnQzMl90IGVycm9yQ29kZSwgU3RyaW5nIGVy
cm9yTWVzc2FnZSkKLSAgICBEaWRJdGVyYXRlQ3Vyc29yKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2Vi
Q29yZTo6SURCS2V5RGF0YSBrZXksIFdlYkNvcmU6OklEQktleURhdGEgcHJpbWFyeUtleSwgSVBD
OjpEYXRhUmVmZXJlbmNlIHZhbHVlLCBXZWJDb3JlOjpJREJLZXlEYXRhIHZhbHVlS2V5LCB1aW50
MzJfdCBlcnJvckNvZGUsIFN0cmluZyBlcnJvck1lc3NhZ2UpCisgICAgRGlkT3BlbkN1cnNvcih1
aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgY3Vyc29ySUQsIFdlYkNvcmU6OklEQktleURhdGEg
a2V5LCBXZWJDb3JlOjpJREJLZXlEYXRhIHByaW1hcnlLZXksIElQQzo6RGF0YVJlZmVyZW5jZSB2
YWx1ZSwgdWludDMyX3QgZXJyb3JDb2RlLCBTdHJpbmcgZXJyb3JNZXNzYWdlKQorICAgIERpZEFk
dmFuY2VDdXJzb3IodWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpJREJLZXlEYXRhIGtleSwg
V2ViQ29yZTo6SURCS2V5RGF0YSBwcmltYXJ5S2V5LCBJUEM6OkRhdGFSZWZlcmVuY2UgdmFsdWUs
IHVpbnQzMl90IGVycm9yQ29kZSwgU3RyaW5nIGVycm9yTWVzc2FnZSkKKyAgICBEaWRJdGVyYXRl
Q3Vyc29yKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6SURCS2V5RGF0YSBrZXksIFdlYkNv
cmU6OklEQktleURhdGEgcHJpbWFyeUtleSwgSVBDOjpEYXRhUmVmZXJlbmNlIHZhbHVlLCB1aW50
MzJfdCBlcnJvckNvZGUsIFN0cmluZyBlcnJvck1lc3NhZ2UpCiAgICAgRGlkQ291bnQodWludDY0
X3QgcmVxdWVzdElELCBpbnQ2NF90IGNvdW50LCB1aW50MzJfdCBlcnJvckNvZGUsIFN0cmluZyBl
cnJvck1lc3NhZ2UpCiAgICAgRGlkRGVsZXRlUmFuZ2UodWludDY0X3QgcmVxdWVzdElELCB1aW50
MzJfdCBlcnJvckNvZGUsIFN0cmluZyBlcnJvck1lc3NhZ2UpCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223421</attachid>
            <date>2014-02-06 21:45:54 -0800</date>
            <delta_ts>2014-02-06 21:51:46 -0800</delta_ts>
            <desc>Patch v2 - Changelog comment for one method that has non-mechanical changes.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>78826</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhMDhhYzY4Li4wMTA5ZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDMg
QEAKIDIwMTQtMDItMDYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIElEQjogUmVtb3ZlIHRoZSBlbnRpcmVseSB1bm5lY2Vzc2FyeSAiVmFsdWUgS2V5IiBjb25j
ZXB0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgz
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMgKE5vIGNoYW5nZSBpbiBiZWhhdmlvcikKKworICAgICAgICBBbGwgY3Vyc29yIG9w
ZXJhdGlvbnMgd2VyZSBzZXR1cCB0byBwYXNzIGEgdmFsdWUga2V5IHBhcmFtZXRlciBhcm91bmQs
IGJ1dCBpdCB3YXM6CisgICAgICAgIDEgLSBFbnRpcmVseSB1bnVzZWQKKyAgICAgICAgMiAtIFRo
ZSBzYW1lIHRoaW5nIHRoYXQgdGhlIHByaW1hcnkga2V5IGlzIHN1cHBvc2VkIHRvIGJlCisKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaDoKKworICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ3Vyc29yQmFja2VuZDo6dXBkYXRlQ3Vyc29yRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJDdXJzb3JCYWNrZW5kOjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yQmFja2VuZC5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
QmFja2VuZE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yQWR2YW5jZU9w
ZXJhdGlvbjo6cGVyZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3JJdGVyYXRpb25PcGVy
YXRpb246OnBlcmZvcm0pOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaDoKKworICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6T3BlbkN1cnNvck9wZXJhdGlvbjo6cGVyZm9ybSk6CisKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJTZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvbGV2ZWxkYi9JREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQjo6b3BlbkN1cnNvcik6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQjo6Y3Vyc29yQWR2YW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQjo6Y3Vyc29ySXRl
cmF0ZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJTZXJ2ZXJDb25u
ZWN0aW9uTGV2ZWxEQi5oOgorCisyMDE0LTAyLTA2ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KKwogICAgICAgICBJREI6IHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY2xlYXIu
aHRtbCBmYWlscwogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTU5OTcxNTU+IGFuZCBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MjgyCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJhY2tzLmgKaW5kZXggMjZhMjJkYi4uNjk1
NzY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ2Fs
bGJhY2tzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJh
Y2tzLmgKQEAgLTY3LDcgKzY3LDYgQEAgcHVibGljOgogCiAgICAgLy8gRnJvbSBJREJDdXJzb3Iu
YWR2YW5jZSgpL2NvbnRpbnVlKCkKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQ
dHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2hh
cmVkQnVmZmVyPikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJ
REJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+LCBQYXNzUmVmUHRyPElEQktleT4gdmFsdWVLZXkpID0gMDsKIAogICAgIC8vIEZyb20g
SURCQ3Vyc29yLmFkdmFuY2UoKS9jb250aW51ZSgpCiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vz
c1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4+JiBrZXlzLCBjb25zdCBW
ZWN0b3I8UmVmUHRyPElEQktleT4+JiBwcmltYXJ5S2V5cywgY29uc3QgVmVjdG9yPFJlZlB0cjxT
aGFyZWRCdWZmZXI+PiYgdmFsdWVzKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmQuY3BwCmluZGV4IDdmOTYxOGEuLjM4MDFj
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvckJhY2tlbmQuY3BwCkBAIC04OSwxMiArODksMTEgQEAgdm9pZCBJREJDdXJzb3JCYWNrZW5k
OjpjbG9zZSgpCiAgICAgbV9zYXZlZEN1cnNvcklEID0gMDsKIH0KIAotdm9pZCBJREJDdXJzb3JC
YWNrZW5kOjp1cGRhdGVDdXJzb3JEYXRhKElEQktleSoga2V5LCBJREJLZXkqIHByaW1hcnlLZXks
IFNoYXJlZEJ1ZmZlciogdmFsdWVCdWZmZXIsIElEQktleSogdmFsdWVLZXkpCit2b2lkIElEQkN1
cnNvckJhY2tlbmQ6OnVwZGF0ZUN1cnNvckRhdGEoSURCS2V5KiBrZXksIElEQktleSogcHJpbWFy
eUtleSwgU2hhcmVkQnVmZmVyKiB2YWx1ZUJ1ZmZlcikKIHsKICAgICBtX2N1cnJlbnRLZXkgPSBr
ZXk7CiAgICAgbV9jdXJyZW50UHJpbWFyeUtleSA9IHByaW1hcnlLZXk7CiAgICAgbV9jdXJyZW50
VmFsdWVCdWZmZXIgPSB2YWx1ZUJ1ZmZlcjsKLSAgICBtX2N1cnJlbnRWYWx1ZUtleSA9IHZhbHVl
S2V5OwogfQogCiB2b2lkIElEQkN1cnNvckJhY2tlbmQ6OmNsZWFyKCkKQEAgLTEwMyw3ICsxMDIs
NiBAQCB2b2lkIElEQkN1cnNvckJhY2tlbmQ6OmNsZWFyKCkKICAgICBtX2N1cnJlbnRLZXkgPSBu
dWxscHRyOwogICAgIG1fY3VycmVudFByaW1hcnlLZXkgPSBudWxscHRyOwogICAgIG1fY3VycmVu
dFZhbHVlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBtX2N1cnJlbnRWYWx1ZUtleSA9IG51bGxwdHI7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmQuaAppbmRleCA3ZTAwNTQ2Li45OGZjYzI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JC
YWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
QmFja2VuZC5oCkBAIC02MCw4ICs2MCw3IEBAIHB1YmxpYzoKICAgICBJREJLZXkqIGtleSgpIGNv
bnN0IHsgcmV0dXJuIG1fY3VycmVudEtleS5nZXQoKTsgfQogICAgIElEQktleSogcHJpbWFyeUtl
eSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFByaW1hcnlLZXkuZ2V0KCk7IH0KICAgICBTaGFy
ZWRCdWZmZXIqIHZhbHVlQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gKG1fY3Vyc29yVHlwZSA9PSBJ
bmRleGVkREI6OkN1cnNvclR5cGU6OktleU9ubHkpID8gbnVsbHB0ciA6IG1fY3VycmVudFZhbHVl
QnVmZmVyLmdldCgpOyB9Ci0gICAgSURCS2V5KiB2YWx1ZUtleSgpIGNvbnN0IHsgcmV0dXJuICht
X2N1cnNvclR5cGUgPT0gSW5kZXhlZERCOjpDdXJzb3JUeXBlOjpLZXlPbmx5KSA/IG51bGxwdHIg
OiBtX2N1cnJlbnRWYWx1ZUtleS5nZXQoKTsgfQotICAgIHZvaWQgdXBkYXRlQ3Vyc29yRGF0YShJ
REJLZXkqLCBJREJLZXkqIHByaW1hcnlLZXksIFNoYXJlZEJ1ZmZlciogdmFsdWVCdWZmZXIsIElE
QktleSogdmFsdWVLZXkpOworICAgIHZvaWQgdXBkYXRlQ3Vyc29yRGF0YShJREJLZXkqLCBJREJL
ZXkqIHByaW1hcnlLZXksIFNoYXJlZEJ1ZmZlciogdmFsdWVCdWZmZXIpOwogCiAgICAgdm9pZCBj
bG9zZSgpOwogCkBAIC04OCw3ICs4Nyw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPElEQktleT4g
bV9jdXJyZW50S2V5OwogICAgIFJlZlB0cjxJREJLZXk+IG1fY3VycmVudFByaW1hcnlLZXk7CiAg
ICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9jdXJyZW50VmFsdWVCdWZmZXI7Ci0gICAgUmVmUHRy
PElEQktleT4gbV9jdXJyZW50VmFsdWVLZXk7CiAKICAgICBib29sIG1fY2xvc2VkOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tl
bmRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvckJhY2tlbmRPcGVyYXRpb25zLmNwcAppbmRleCA1M2Y3ODY5Li5mYjE2ZmM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yQmFja2VuZE9wZXJhdGlvbnMuY3BwCkBAIC00MCwxNSArNDAsMTUgQEAgdm9pZCBDdXJzb3JB
ZHZhbmNlT3BlcmF0aW9uOjpwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9u
Q2FsbGJhY2spCiAgICAgTE9HKFN0b3JhZ2VBUEksICJDdXJzb3JBZHZhbmNlT3BlcmF0aW9uIik7
CiAKICAgICBSZWZQdHI8Q3Vyc29yQWR2YW5jZU9wZXJhdGlvbj4gb3BlcmF0aW9uKHRoaXMpOwot
ICAgIGF1dG8gY2FsbGJhY2sgPSBbdGhpcywgb3BlcmF0aW9uLCBjb21wbGV0aW9uQ2FsbGJhY2td
KFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWVCdWZmZXIsIFBhc3NSZWZQdHI8SURCS2V5PiB2
YWx1ZUtleSwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikgeworICAgIGF1dG8g
Y2FsbGJhY2sgPSBbdGhpcywgb3BlcmF0aW9uLCBjb21wbGV0aW9uQ2FsbGJhY2tdKFBhc3NSZWZQ
dHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gdmFsdWVCdWZmZXIsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4g
ZXJyb3IpIHsKICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICBtX2N1cnNvci0+Y2xl
YXIoKTsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGUgTGV2ZWxEQiBiYWNrZW5kIGNhbGxzIG9u
U3VjY2VzcyBldmVuIG9uIGZhaWx1cmUuCiAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgcHJvYmFi
bHkgaGF2ZSB0byBjaGFuZ2Ugc29vbiAoZm9yIHNhbml0eSkgYW5kIHdpbGwgcHJvYmFibHkgYnJl
YWsgTGV2ZWxEQgogICAgICAgICAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzdGF0aWNfY2Fz
dDxTaGFyZWRCdWZmZXIqPigwKSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2N1
cnNvci0+dXBkYXRlQ3Vyc29yRGF0YShrZXkuZ2V0KCksIHByaW1hcnlLZXkuZ2V0KCksIHZhbHVl
QnVmZmVyLmdldCgpLCB2YWx1ZUtleS5nZXQoKSk7Ci0gICAgICAgICAgICBtX2NhbGxiYWNrcy0+
b25TdWNjZXNzKGtleSwgcHJpbWFyeUtleSwgdmFsdWVCdWZmZXIsIHZhbHVlS2V5KTsKKyAgICAg
ICAgICAgIG1fY3Vyc29yLT51cGRhdGVDdXJzb3JEYXRhKGtleS5nZXQoKSwgcHJpbWFyeUtleS5n
ZXQoKSwgdmFsdWVCdWZmZXIuZ2V0KCkpOworICAgICAgICAgICAgbV9jYWxsYmFja3MtPm9uU3Vj
Y2VzcyhrZXksIHByaW1hcnlLZXksIHZhbHVlQnVmZmVyKTsKICAgICAgICAgfQogCiAgICAgICAg
IC8vIEZJWE1FOiBDdXJzb3Igb3BlcmF0aW9ucyBzaG91bGQgYmUgYWJsZSB0byBwYXNzIGFsb25n
IGFuIGVycm9yIGluc3RlYWQgb2Ygc3VjY2VzcwpAQCAtNjMsMTUgKzYzLDE1IEBAIHZvaWQgQ3Vy
c29ySXRlcmF0aW9uT3BlcmF0aW9uOjpwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21w
bGV0aW9uQ2FsbGJhY2spCiAgICAgTE9HKFN0b3JhZ2VBUEksICJDdXJzb3JJdGVyYXRpb25PcGVy
YXRpb24iKTsKIAogICAgIFJlZlB0cjxDdXJzb3JJdGVyYXRpb25PcGVyYXRpb24+IG9wZXJhdGlv
bih0aGlzKTsKLSAgICBhdXRvIGNhbGxiYWNrID0gW3RoaXMsIG9wZXJhdGlvbiwgY29tcGxldGlv
bkNhbGxiYWNrXShQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktleT4gcHJp
bWFyeUtleSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlQnVmZmVyLCBQYXNzUmVmUHRy
PElEQktleT4gdmFsdWVLZXksIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IpIHsK
KyAgICBhdXRvIGNhbGxiYWNrID0gW3RoaXMsIG9wZXJhdGlvbiwgY29tcGxldGlvbkNhbGxiYWNr
XShQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwg
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlQnVmZmVyLCBQYXNzUmVmUHRyPElEQkRhdGFi
YXNlRXJyb3I+IGVycm9yKSB7CiAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgICAgbV9j
dXJzb3ItPmNsZWFyKCk7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhlIExldmVsREIgYmFja2Vu
ZCBjYWxscyBvblN1Y2Nlc3MgZXZlbiBvbiBmYWlsdXJlLgogICAgICAgICAgICAgLy8gVGhpcyB3
aWxsIHByb2JhYmx5IGhhdmUgdG8gY2hhbmdlIHNvb24gKGZvciBzYW5pdHkpIGFuZCB3aWxsIHBy
b2JhYmx5IGJyZWFrIExldmVsREIKICAgICAgICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Mo
c3RhdGljX2Nhc3Q8U2hhcmVkQnVmZmVyKj4oMCkpOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgbV9jdXJzb3ItPnVwZGF0ZUN1cnNvckRhdGEoa2V5LmdldCgpLCBwcmltYXJ5S2V5Lmdl
dCgpLCB2YWx1ZUJ1ZmZlci5nZXQoKSwgdmFsdWVLZXkuZ2V0KCkpOwotICAgICAgICAgICAgbV9j
YWxsYmFja3MtPm9uU3VjY2VzcyhrZXksIHByaW1hcnlLZXksIHZhbHVlQnVmZmVyLCB2YWx1ZUtl
eSk7CisgICAgICAgICAgICBtX2N1cnNvci0+dXBkYXRlQ3Vyc29yRGF0YShrZXkuZ2V0KCksIHBy
aW1hcnlLZXkuZ2V0KCksIHZhbHVlQnVmZmVyLmdldCgpKTsKKyAgICAgICAgICAgIG1fY2FsbGJh
Y2tzLT5vblN1Y2Nlc3Moa2V5LCBwcmltYXJ5S2V5LCB2YWx1ZUJ1ZmZlcik7CiAgICAgICAgIH0K
IAogICAgICAgICAvLyBGSVhNRTogQ3Vyc29yIG9wZXJhdGlvbnMgc2hvdWxkIGJlIGFibGUgdG8g
cGFzcyBhbG9uZyBhbiBlcnJvciBpbnN0ZWFkIG9mIHN1Y2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggYjQyMTEyNS4uY2FlNzM0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5j
cHAKQEAgLTQwNywxMiArNDA3LDcgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3NJbnRlcm5h
bChjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdmFsdWUpCiAKIHZvaWQgSURCUmVxdWVz
dDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBw
cmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyKQogewotICAgIG9uU3Vj
Y2VzcyhrZXksIHByaW1hcnlLZXksIGJ1ZmZlciwgbnVsbHB0cik7Ci19Ci0KLXZvaWQgSURCUmVx
dWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5
PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBQYXNzUmVmUHRy
PElEQktleT4pCi17Ci0gICAgTE9HKFN0b3JhZ2VBUEksICJJREJSZXF1ZXN0OjpvblN1Y2Nlc3Mo
a2V5LCBwcmltYXJ5S2V5LCB2YWx1ZUJ1ZmZlciwgdmFsdWVLZXkpIik7CisgICAgTE9HKFN0b3Jh
Z2VBUEksICJJREJSZXF1ZXN0OjpvblN1Y2Nlc3Moa2V5LCBwcmltYXJ5S2V5LCB2YWx1ZUJ1ZmZl
cikiKTsKICAgICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQogICAgICAgICByZXR1cm47CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAppbmRleCA5
YjcxZjA5Li40NDI3ZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5oCkBAIC05Myw3ICs5Myw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKGludDY0X3QpOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoKTsKICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJL
ZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPik7Ci0gICAgdmlydHVhbCB2
b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiBwcmlt
YXJ5S2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5PiB2YWx1
ZUtleSk7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0
b3I8UmVmUHRyPElEQktleT4+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+PiYsIGNvbnN0
IFZlY3RvcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4mKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
IC8vIE5vdCBpbXBsZW1lbnRlZC4gQ2FsbGJhY2sgc2hvdWxkIG5vdCByZWFjaCB0aGUgcmVuZGVy
ZXIgc2lkZS4KIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IGVhNTUx
NjguLjNjZTQyODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlNlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJTZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVJbmRleChJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBE
ZWxldGVJbmRleE9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPElEQkRh
dGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGdldChJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBHZXRPcGVyYXRpb24mLCBzdGQ6OmZ1
bmN0aW9uPHZvaWQoY29uc3QgSURCR2V0UmVzdWx0JiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVy
cm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwdXQoSURC
VHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgUHV0T3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2
b2lkKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNv
bXBsZXRpb25DYWxsYmFjaykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKElEQlRy
YW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IE9wZW5DdXJzb3JPcGVyYXRpb24mLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQoaW50NjRfdCwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4s
IFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRy
PElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIG9wZW5DdXJzb3IoSURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgT3BlbkN1cnNv
ck9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChpbnQ2NF90LCBQYXNzUmVmUHRyPElEQktl
eT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBQYXNzUmVm
UHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGNvdW50KElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IENvdW50T3BlcmF0
aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3QsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VF
cnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
UmFuZ2UoSURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgRGVsZXRlUmFuZ2VPcGVyYXRpb24m
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBs
ZXRpb25DYWxsYmFjaykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhck9iamVjdFN0b3JlKElE
QlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IENsZWFyT2JqZWN0U3RvcmVPcGVyYXRpb24mLCBz
dGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRp
b25DYWxsYmFjaykgPSAwOwpAQCAtODcsOCArODcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGNoYW5nZURhdGFiYXNlVmVyc2lvbihJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBJ
REJEYXRhYmFzZUJhY2tlbmQ6OlZlcnNpb25DaGFuZ2VPcGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykg
PSAwOwogCiAgICAgLy8gQ3Vyc29yLWxldmVsIG9wZXJhdGlvbnMKLSAgICB2aXJ0dWFsIHZvaWQg
Y3Vyc29yQWR2YW5jZShJREJDdXJzb3JCYWNrZW5kJiwgY29uc3QgQ3Vyc29yQWR2YW5jZU9wZXJh
dGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8
SURCS2V5PiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRyPElEQktleT4sIFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgY3Vyc29ySXRlcmF0ZShJREJDdXJzb3JCYWNrZW5kJiwgY29uc3QgQ3Vy
c29ySXRlcmF0aW9uT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURC
S2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NS
ZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25D
YWxsYmFjaykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjdXJzb3JBZHZhbmNlKElEQkN1cnNvckJh
Y2tlbmQmLCBjb25zdCBDdXJzb3JBZHZhbmNlT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lk
KFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJh
Y2spID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY3Vyc29ySXRlcmF0ZShJREJDdXJzb3JCYWNrZW5k
JiwgY29uc3QgQ3Vyc29ySXRlcmF0aW9uT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBh
c3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2sp
ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNr
ZW5kT3BlcmF0aW9ucy5jcHAKaW5kZXggODZiN2MyYi4uZjU4ZjZhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb25CYWNrZW5kT3BlcmF0aW9ucy5jcHAKQEAgLTE1MSwxNSArMTUxLDE1IEBAIHZvaWQgT3Bl
bkN1cnNvck9wZXJhdGlvbjo6cGVyZm9ybShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlv
bkNhbGxiYWNrKQogICAgIExPRyhTdG9yYWdlQVBJLCAiT3BlbkN1cnNvck9wZXJhdGlvbiIpOwog
CiAgICAgUmVmUHRyPE9wZW5DdXJzb3JPcGVyYXRpb24+IG9wZXJhdGlvbih0aGlzKTsKLSAgICBh
dXRvIGNhbGxiYWNrID0gW3RoaXMsIG9wZXJhdGlvbiwgY29tcGxldGlvbkNhbGxiYWNrXShpbnQ2
NF90IGN1cnNvcklELCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktleT4g
cHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlQnVmZmVyLCBQYXNzUmVm
UHRyPElEQktleT4gdmFsdWVLZXksIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pIHsKKyAg
ICBhdXRvIGNhbGxiYWNrID0gW3RoaXMsIG9wZXJhdGlvbiwgY29tcGxldGlvbkNhbGxiYWNrXShp
bnQ2NF90IGN1cnNvcklELCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktl
eT4gcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlQnVmZmVyLCBQYXNz
UmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KSB7CiAgICAgICAgIC8vIEZJWE1FOiBXaGVuIHRoZSBM
ZXZlbERCIHBvcnQgZmFpbHMgdG8gb3BlbiBhIGJhY2tpbmcgc3RvcmUgY3Vyc29yIGl0IGNhbGxz
IG9uU3VjY2VzcyhudWxscHRyKTsKICAgICAgICAgLy8gVGhpcyBzZWVtcyBub25zZW5zaWNhbCBh
bmQgbWlnaHQgaGF2ZSB0byBjaGFuZ2Ugc29vbiwgYnJlYWtpbmcgdGhlbS4KICAgICAgICAgaWYg
KCFjdXJzb3JJRCkKICAgICAgICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Moc3RhdGljX2Nh
c3Q8U2hhcmVkQnVmZmVyKj4oMCkpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIFJlZlB0
cjxJREJDdXJzb3JCYWNrZW5kPiBjdXJzb3IgPSBJREJDdXJzb3JCYWNrZW5kOjpjcmVhdGUoY3Vy
c29ySUQsIG1fY3Vyc29yVHlwZSwgbV90YXNrVHlwZSwgKm1fdHJhbnNhY3Rpb24sIG1fb2JqZWN0
U3RvcmVJRCk7Ci0gICAgICAgICAgICBpZiAoa2V5IHx8IHByaW1hcnlLZXkgfHwgdmFsdWVCdWZm
ZXIgfHwgdmFsdWVLZXkpCi0gICAgICAgICAgICAgICAgY3Vyc29yLT51cGRhdGVDdXJzb3JEYXRh
KGtleS5nZXQoKSwgcHJpbWFyeUtleS5nZXQoKSwgdmFsdWVCdWZmZXIuZ2V0KCksIHZhbHVlS2V5
LmdldCgpKTsKKyAgICAgICAgICAgIGlmIChrZXkgfHwgcHJpbWFyeUtleSB8fCB2YWx1ZUJ1ZmZl
cikKKyAgICAgICAgICAgICAgICBjdXJzb3ItPnVwZGF0ZUN1cnNvckRhdGEoa2V5LmdldCgpLCBw
cmltYXJ5S2V5LmdldCgpLCB2YWx1ZUJ1ZmZlci5nZXQoKSk7CiAKICAgICAgICAgICAgIG1fY2Fs
bGJhY2tzLT5vblN1Y2Nlc3MoY3Vyc29yLnJlbGVhc2UoKSk7CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCU2VydmVyQ29u
bmVjdGlvbkxldmVsREIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2
ZWxkYi9JREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQi5jcHAKaW5kZXggZWUyYzMxYS4uZDRiMDA0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9J
REJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvbGV2ZWxkYi9JREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQi5jcHAKQEAgLTQy
OSw3ICs0MjksNyBAQCB2b2lkIElEQlNlcnZlckNvbm5lY3Rpb25MZXZlbERCOjpwdXQoSURCVHJh
bnNhY3Rpb25CYWNrZW5kJiB0cmFuc2FjdGlvbiwgY29uc3QgUAogICAgIH0pOwogfQogCi12b2lk
IElEQlNlcnZlckNvbm5lY3Rpb25MZXZlbERCOjpvcGVuQ3Vyc29yKElEQlRyYW5zYWN0aW9uQmFj
a2VuZCYgdHJhbnNhY3Rpb24sIGNvbnN0IE9wZW5DdXJzb3JPcGVyYXRpb24mIG9wZXJhdGlvbiwg
c3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3QsIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5Piwg
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykKK3ZvaWQg
SURCU2VydmVyQ29ubmVjdGlvbkxldmVsREI6Om9wZW5DdXJzb3IoSURCVHJhbnNhY3Rpb25CYWNr
ZW5kJiB0cmFuc2FjdGlvbiwgY29uc3QgT3BlbkN1cnNvck9wZXJhdGlvbiYgb3BlcmF0aW9uLCBz
dGQ6OmZ1bmN0aW9uPHZvaWQoaW50NjRfdCwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRy
PElEQktleT4sIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykKIHsKICAgICBJREJCYWNraW5nU3RvcmVUcmFu
c2FjdGlvbkxldmVsREIqIGJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uID0gbV9iYWNraW5nU3RvcmVU
cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uLmlkKCkpOwogICAgIEFTU0VSVChiYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbik7CkBAIC00NjIsNyArNDYyLDcgQEAgdm9pZCBJREJTZXJ2ZXJDb25uZWN0
aW9uTGV2ZWxEQjo6b3BlbkN1cnNvcihJREJUcmFuc2FjdGlvbkJhY2tlbmQmIHRyYW5zYWN0aW9u
LAogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY29tcGxldGlvbkNhbGxiYWNrLCBjdXJzb3JJRF0o
KSB7CiAgICAgICAgIC8vIEZJWE1FOiBOZWVkIHRvIGFjdHVhbGx5IHBhc3MgdGhlIGluaXRpYWwg
a2V5LCBwcmltYXJ5S2V5LCBhbmQgdmFsdWUgdG8gdGhlIGNhbGxiYWNrLgotICAgICAgICBjb21w
bGV0aW9uQ2FsbGJhY2soY3Vyc29ySUQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIpOworICAgICAgICBjb21wbGV0aW9uQ2FsbGJhY2soY3Vyc29ySUQsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIpOwogICAgIH0pOwogfQogCkBAIC01NjksNyAr
NTY5LDcgQEAgdm9pZCBJREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQjo6Y2hhbmdlRGF0YWJhc2VW
ZXJzaW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZCYgdHIKICAgICBBU1lOQ19DT01QTEVUSU9OX0NB
TExCQUNLX1dJVEhfTlVMTF9BUkcoY29tcGxldGlvbkNhbGxiYWNrKTsKIH0KIAotdm9pZCBJREJT
ZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQjo6Y3Vyc29yQWR2YW5jZShJREJDdXJzb3JCYWNrZW5kJiBj
dXJzb3IsIGNvbnN0IEN1cnNvckFkdmFuY2VPcGVyYXRpb24mIG9wZXJhdGlvbiwgc3RkOjpmdW5j
dGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykKK3ZvaWQgSURCU2VydmVyQ29ubmVjdGlv
bkxldmVsREI6OmN1cnNvckFkdmFuY2UoSURCQ3Vyc29yQmFja2VuZCYgY3Vyc29yLCBjb25zdCBD
dXJzb3JBZHZhbmNlT3BlcmF0aW9uJiBvcGVyYXRpb24sIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNz
UmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKQog
ewogICAgIElEQkJhY2tpbmdTdG9yZUN1cnNvckxldmVsREIqIGJhY2tpbmdTdG9yZUN1cnNvciA9
IGN1cnNvci5pZCgpID8gbV9iYWNraW5nU3RvcmVDdXJzb3JzLmdldChjdXJzb3IuaWQoKSkgOiAw
OwogI2lmbmRlZiBOREVCVUcKQEAgLTU4MSw3ICs1ODEsNyBAQCB2b2lkIElEQlNlcnZlckNvbm5l
Y3Rpb25MZXZlbERCOjpjdXJzb3JBZHZhbmNlKElEQkN1cnNvckJhY2tlbmQmIGN1cnNvciwgY29u
c3QgQwogICAgICAgICBtX2JhY2tpbmdTdG9yZUN1cnNvcnMucmVtb3ZlKGN1cnNvci5pZCgpKTsK
IAogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtjb21wbGV0aW9uQ2FsbGJhY2tdKCkgewotICAg
ICAgICAgICAgY29tcGxldGlvbkNhbGxiYWNrKG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51
bGxwdHIsIElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5r
bm93bkVycm9yLCAiVW5rbm93biBlcnJvciBhZHZhbmNpbmcgY3Vyc29yIikpOworICAgICAgICAg
ICAgY29tcGxldGlvbkNhbGxiYWNrKG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElEQkRhdGFi
YXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCAiVW5r
bm93biBlcnJvciBhZHZhbmNpbmcgY3Vyc29yIikpOwogICAgICAgICB9KTsKIAogICAgICAgICBy
ZXR1cm47CkBAIC01OTEsMTEgKzU5MSwxMSBAQCB2b2lkIElEQlNlcnZlckNvbm5lY3Rpb25MZXZl
bERCOjpjdXJzb3JBZHZhbmNlKElEQkN1cnNvckJhY2tlbmQmIGN1cnNvciwgY29uc3QgQwogICAg
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlID0gYmFja2luZ1N0b3JlQ3Vyc29yLT52YWx1ZSgp
OwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY29tcGxldGlvbkNhbGxiYWNrLCBrZXksIHByaW1h
cnlLZXksIHZhbHVlXSgpIHsKLSAgICAgICAgY29tcGxldGlvbkNhbGxiYWNrKGtleSwgcHJpbWFy
eUtleSwgdmFsdWUsIG51bGxwdHIsIElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCAiVW5rbm93biBlcnJvciBhZHZhbmNpbmcgY3Vyc29y
IikpOworICAgICAgICBjb21wbGV0aW9uQ2FsbGJhY2soa2V5LCBwcmltYXJ5S2V5LCB2YWx1ZSwg
SURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJy
b3IsICJVbmtub3duIGVycm9yIGFkdmFuY2luZyBjdXJzb3IiKSk7CiAgICAgfSk7CiB9CiAKLXZv
aWQgSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREI6OmN1cnNvckl0ZXJhdGUoSURCQ3Vyc29yQmFj
a2VuZCYgY3Vyc29yLCBjb25zdCBDdXJzb3JJdGVyYXRpb25PcGVyYXRpb24mIG9wZXJhdGlvbiwg
c3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+
LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykKK3ZvaWQgSURCU2VydmVy
Q29ubmVjdGlvbkxldmVsREI6OmN1cnNvckl0ZXJhdGUoSURCQ3Vyc29yQmFja2VuZCYgY3Vyc29y
LCBjb25zdCBDdXJzb3JJdGVyYXRpb25PcGVyYXRpb24mIG9wZXJhdGlvbiwgc3RkOjpmdW5jdGlv
bjx2b2lkKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9u
Q2FsbGJhY2spCiB7CiAgICAgSURCQmFja2luZ1N0b3JlQ3Vyc29yTGV2ZWxEQiogYmFja2luZ1N0
b3JlQ3Vyc29yID0gY3Vyc29yLmlkKCkgPyBtX2JhY2tpbmdTdG9yZUN1cnNvcnMuZ2V0KGN1cnNv
ci5pZCgpKSA6IDA7CiAjaWZuZGVmIE5ERUJVRwpAQCAtNjA3LDcgKzYwNyw3IEBAIHZvaWQgSURC
U2VydmVyQ29ubmVjdGlvbkxldmVsREI6OmN1cnNvckl0ZXJhdGUoSURCQ3Vyc29yQmFja2VuZCYg
Y3Vyc29yLCBjb25zdCBDCiAgICAgICAgIG1fYmFja2luZ1N0b3JlQ3Vyc29ycy5yZW1vdmUoY3Vy
c29yLmlkKCkpOwogCiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2NvbXBsZXRpb25DYWxsYmFj
a10oKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uQ2FsbGJhY2sobnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgbnVsbHB0ciwgSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhj
ZXB0aW9uOjpVbmtub3duRXJyb3IsICJVbmtub3duIGVycm9yIGFkdmFuY2luZyBjdXJzb3IiKSk7
CisgICAgICAgICAgICBjb21wbGV0aW9uQ2FsbGJhY2sobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciwgSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3du
RXJyb3IsICJVbmtub3duIGVycm9yIGFkdmFuY2luZyBjdXJzb3IiKSk7CiAgICAgICAgIH0pOwog
CiAgICAgICAgIHJldHVybjsKQEAgLTYxNyw3ICs2MTcsNyBAQCB2b2lkIElEQlNlcnZlckNvbm5l
Y3Rpb25MZXZlbERCOjpjdXJzb3JJdGVyYXRlKElEQkN1cnNvckJhY2tlbmQmIGN1cnNvciwgY29u
c3QgQwogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlID0gYmFja2luZ1N0b3JlQ3Vyc29y
LT52YWx1ZSgpOwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY29tcGxldGlvbkNhbGxiYWNrLCBr
ZXksIHByaW1hcnlLZXksIHZhbHVlXSgpIHsKLSAgICAgICAgY29tcGxldGlvbkNhbGxiYWNrKGtl
eSwgcHJpbWFyeUtleSwgdmFsdWUsIG51bGxwdHIsIElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCAiVW5rbm93biBlcnJvciBhZHZhbmNp
bmcgY3Vyc29yIikpOworICAgICAgICBjb21wbGV0aW9uQ2FsbGJhY2soa2V5LCBwcmltYXJ5S2V5
LCB2YWx1ZSwgSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpV
bmtub3duRXJyb3IsICJVbmtub3duIGVycm9yIGFkdmFuY2luZyBjdXJzb3IiKSk7CiAgICAgfSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVs
ZGIvSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2xldmVsZGIvSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREIuaAppbmRleCBkYmM4
YzkxLi44NGQ3OTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9sZXZlbGRiL0lEQlNlcnZlckNvbm5lY3Rpb25MZXZlbERCLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQi5o
CkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSW5kZXgo
SURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgRGVsZXRlSW5kZXhPcGVyYXRpb24mLCBzdGQ6
OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25D
YWxsYmFjaykgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGdldChJREJUcmFuc2FjdGlvbkJh
Y2tlbmQmLCBjb25zdCBHZXRPcGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgSURC
R2V0UmVzdWx0JiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxs
YmFjaykgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHB1dChJREJUcmFuc2FjdGlvbkJhY2tl
bmQmLCBjb25zdCBQdXRPcGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJ
REJLZXk+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNr
KSAgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIG9wZW5DdXJzb3IoSURCVHJhbnNhY3Rpb25C
YWNrZW5kJiwgY29uc3QgT3BlbkN1cnNvck9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChp
bnQ2NF90LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBvcGVuQ3Vyc29yKElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IE9wZW5DdXJzb3JPcGVy
YXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoaW50NjRfdCwgUGFzc1JlZlB0cjxJREJLZXk+LCBQ
YXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIGNvdW50KElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IENvdW50T3BlcmF0
aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3QsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VF
cnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBk
ZWxldGVSYW5nZShJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBEZWxldGVSYW5nZU9wZXJh
dGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4g
Y29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJPYmpl
Y3RTdG9yZShJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBDbGVhck9iamVjdFN0b3JlT3Bl
cmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4p
PiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOwpAQCAtNzQsOCArNzQsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGNoYW5nZURhdGFiYXNlVmVyc2lvbihJREJUcmFuc2FjdGlvbkJh
Y2tlbmQmLCBjb25zdCBJREJEYXRhYmFzZUJhY2tlbmQ6OlZlcnNpb25DaGFuZ2VPcGVyYXRpb24m
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBs
ZXRpb25DYWxsYmFjaykgb3ZlcnJpZGU7CiAKICAgICAvLyBDdXJzb3ItbGV2ZWwgb3BlcmF0aW9u
cwotICAgIHZpcnR1YWwgdm9pZCBjdXJzb3JBZHZhbmNlKElEQkN1cnNvckJhY2tlbmQmLCBjb25z
dCBDdXJzb3JBZHZhbmNlT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8
SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBh
c3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRp
b25DYWxsYmFjaykgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGN1cnNvckl0ZXJhdGUoSURC
Q3Vyc29yQmFja2VuZCYsIGNvbnN0IEN1cnNvckl0ZXJhdGlvbk9wZXJhdGlvbiYsIHN0ZDo6ZnVu
Y3Rpb248dm9pZChQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBjdXJzb3JBZHZhbmNlKElEQkN1cnNvckJhY2tlbmQmLCBjb25zdCBDdXJzb3JBZHZhbmNl
T3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1Jl
ZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBjdXJzb3JJdGVyYXRlKElEQkN1cnNvckJhY2tlbmQmLCBjb25zdCBDdXJzb3JJdGVyYXRp
b25PcGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNz
UmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgb3ZlcnJpZGU7CiAKIHByaXZhdGU6
CiAgICAgSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5h
bWUsIElEQkJhY2tpbmdTdG9yZUxldmVsREIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkN2VhZDQ5Li4zYmU0
ZTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTYgQEAKIDIwMTQtMDItMDYgIEJyYWR5IEVpZHNv
biAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIElEQjogUmVtb3ZlIHRoZSBlbnRpcmVs
eSB1bm5lY2Vzc2FyeSAiVmFsdWUgS2V5IiBjb25jZXB0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgzNjAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGwgY3Vyc29yIG9wZXJhdGlvbnMgd2VyZSBzZXR1
cCB0byBwYXNzIGEgdmFsdWUga2V5IHBhcmFtZXRlciBhcm91bmQsIGJ1dCBpdCB3YXM6CisgICAg
ICAgIDEgLSBFbnRpcmVseSB1bnVzZWQKKyAgICAgICAgMiAtIFRoZSBzYW1lIHRoaW5nIHRoYXQg
dGhlIHByaW1hcnkga2V5IGlzIHN1cHBvc2VkIHRvIGJlCisKKyAgICAgICAgKiBEYXRhYmFzZVBy
b2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpvcGVuQ3Vyc29yKToKKyAg
ICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6Y3Vyc29yQWR2YW5j
ZSk6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OmN1cnNv
ckl0ZXJhdGUpOgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJ
REJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVu
Q3Vyc29yKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OmN1cnNvckFkdmFu
Y2UpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6Y3Vyc29ySXRlcmF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29ySW5CYWNraW5n
U3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6ZGlkT3BlbkN1cnNv
ckluQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OmFk
dmFuY2VDdXJzb3JJbkJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRh
dGFiYXNlOjpkaWRBZHZhbmNlQ3Vyc29ySW5CYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViS2l0
OjpVbmlxdWVJREJEYXRhYmFzZTo6aXRlcmF0ZUN1cnNvckluQmFja2luZ1N0b3JlKToKKyAgICAg
ICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZEl0ZXJhdGVDdXJzb3JJbkJhY2tpbmdT
dG9yZSk6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRh
YmFzZS5oOgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FM
aXRlSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U1FMaXRlSURCQ3Vyc29yOjphZHZh
bmNlT25jZSk6IENsZWFuIHRoaXMgbG9naWMgdXAgdG8gbm90IG5lZWQgdGVtcG9yYXJpZXMsCisg
ICAgICAgICAgYW5kIGFsc28gdG8gc2F2ZSB0aGUgY29ycmVjdCBwcmltYXJ5IGtleSAocHJldmlv
dXNseSB0aGUgJ3ZhbHVlIGtleScpCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWRE
Qi9zcWxpdGUvU1FMaXRlSURCQ3Vyc29yLmg6CisKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3Rv
cmVTUUxpdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdT
dG9yZVNRTGl0ZTo6Z2V0SW5kZXhSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJE
YXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6b3BlbkN1cnNvcik6CisgICAgICAgIChXZWJLaXQ6
OlVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjphZHZhbmNlQ3Vyc29yKToKKyAg
ICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6Oml0ZXJh
dGVDdXJzb3IpOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1Vu
aXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmg6CisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZE9wZW5DdXJzb3IpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpkaWRBZHZhbmNlQ3Vyc29yKToK
KyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6ZGlkSXRlcmF0ZUN1cnNv
cik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlckNvbm5lY3Rpb246Om9wZW5DdXJzb3Ip
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpjdXJzb3JBZHZhbmNl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6Y3Vyc29ySXRlcmF0
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZl
ckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKworMjAxNC0wMi0wNiAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKICAgICAgICAgSURCOiBzdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL2NsZWFyLmh0bWwgZmFpbHMKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE1
OTk3MTU1PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODI4
MgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmNwcAppbmRl
eCA5ZmYzZDc1Li5kNjVjYzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURC
Q29ubmVjdGlvbi5jcHAKQEAgLTI5Niw5ICsyOTYsOSBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzc0lE
QkNvbm5lY3Rpb246Om9wZW5DdXJzb3IodWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IHRyYW5z
YQogCiAgICAgTE9HKElEQiwgIkRhdGFiYXNlUHJvY2VzcyBvcGVuQ3Vyc29yIHJlcXVlc3QgSUQg
JWxsdSwgb2JqZWN0IHN0b3JlIGlkICVsbGkiLCByZXF1ZXN0SUQsIG9iamVjdFN0b3JlSUQpOwog
ICAgIFJlZlB0cjxEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPiBjb25uZWN0aW9uKHRoaXMp
OwotICAgIG1fdW5pcXVlSURCRGF0YWJhc2UtPm9wZW5DdXJzb3IoSURCSWRlbnRpZmllcigqdGhp
cywgdHJhbnNhY3Rpb25JRCksIG9iamVjdFN0b3JlSUQsIGluZGV4SUQsIHN0YXRpY19jYXN0PElu
ZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uPihjdXJzb3JEaXJlY3Rpb24pLCBzdGF0aWNfY2FzdDxJ
bmRleGVkREI6OkN1cnNvclR5cGU+KGN1cnNvclR5cGUpLCBzdGF0aWNfY2FzdDxJREJEYXRhYmFz
ZUJhY2tlbmQ6OlRhc2tUeXBlPih0YXNrVHlwZSksIGtleVJhbmdlRGF0YSwgW2Nvbm5lY3Rpb24s
IHJlcXVlc3RJRF0oaW50NjRfdCBjdXJzb3JJRCwgY29uc3QgSURCS2V5RGF0YSYgcmVzdWx0S2V5
LCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4g
dmFsdWUsIGNvbnN0IElEQktleURhdGEmIHZhbHVlS2V5LCB1aW50MzJfdCBlcnJvckNvZGUsIGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7CisgICAgbV91bmlxdWVJREJEYXRhYmFzZS0+b3Bl
bkN1cnNvcihJREJJZGVudGlmaWVyKCp0aGlzLCB0cmFuc2FjdGlvbklEKSwgb2JqZWN0U3RvcmVJ
RCwgaW5kZXhJRCwgc3RhdGljX2Nhc3Q8SW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24+KGN1cnNv
ckRpcmVjdGlvbiksIHN0YXRpY19jYXN0PEluZGV4ZWREQjo6Q3Vyc29yVHlwZT4oY3Vyc29yVHlw
ZSksIHN0YXRpY19jYXN0PElEQkRhdGFiYXNlQmFja2VuZDo6VGFza1R5cGU+KHRhc2tUeXBlKSwg
a2V5UmFuZ2VEYXRhLCBbY29ubmVjdGlvbiwgcmVxdWVzdElEXShpbnQ2NF90IGN1cnNvcklELCBj
b25zdCBJREJLZXlEYXRhJiByZXN1bHRLZXksIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlLZXks
IFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSwgdWludDMyX3QgZXJyb3JDb2RlLCBjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgewogICAgICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0
YSA9IHZhbHVlID8gSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWlu
dDhfdCo+KHZhbHVlLT5kYXRhKCkpLCB2YWx1ZS0+c2l6ZSgpKSA6IElQQzo6RGF0YVJlZmVyZW5j
ZSgpOwotICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXJDb25u
ZWN0aW9uOjpEaWRPcGVuQ3Vyc29yKHJlcXVlc3RJRCwgY3Vyc29ySUQsIHJlc3VsdEtleSwgcHJp
bWFyeUtleSwgZGF0YSwgdmFsdWVLZXksIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKSk7CisgICAg
ICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYklEQlNlcnZlckNvbm5lY3Rpb246OkRp
ZE9wZW5DdXJzb3IocmVxdWVzdElELCBjdXJzb3JJRCwgcmVzdWx0S2V5LCBwcmltYXJ5S2V5LCBk
YXRhLCBlcnJvckNvZGUsIGVycm9yTWVzc2FnZSkpOwogICAgIH0pOwogfQogCkBAIC0zMDgsOSAr
MzA4LDkgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpjdXJzb3JBZHZhbmNl
KHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCBjdXIKIAogICAgIExPRyhJREIsICJEYXRhYmFz
ZVByb2Nlc3MgY3Vyc29yQWR2YW5jZSByZXF1ZXN0IElEICVsbHUsIGN1cnNvciBpZCAlbGxpIiwg
cmVxdWVzdElELCBjdXJzb3JJRCk7CiAgICAgUmVmUHRyPERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5l
Y3Rpb24+IGNvbm5lY3Rpb24odGhpcyk7Ci0gICAgbV91bmlxdWVJREJEYXRhYmFzZS0+Y3Vyc29y
QWR2YW5jZShJREJJZGVudGlmaWVyKCp0aGlzLCBjdXJzb3JJRCksIGNvdW50LCBbY29ubmVjdGlv
biwgcmVxdWVzdElEXShjb25zdCBJREJLZXlEYXRhJiByZXN1bHRLZXksIGNvbnN0IElEQktleURh
dGEmIHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSwgY29uc3QgSURC
S2V5RGF0YSYgdmFsdWVLZXksIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UpIHsKKyAgICBtX3VuaXF1ZUlEQkRhdGFiYXNlLT5jdXJzb3JBZHZhbmNlKElEQklk
ZW50aWZpZXIoKnRoaXMsIGN1cnNvcklEKSwgY291bnQsIFtjb25uZWN0aW9uLCByZXF1ZXN0SURd
KGNvbnN0IElEQktleURhdGEmIHJlc3VsdEtleSwgY29uc3QgSURCS2V5RGF0YSYgcHJpbWFyeUtl
eSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCB1aW50MzJfdCBlcnJvckNvZGUsIGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7CiAgICAgICAgIElQQzo6RGF0YVJlZmVyZW5jZSBk
YXRhID0gdmFsdWUgPyBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4odmFsdWUtPmRhdGEoKSksIHZhbHVlLT5zaXplKCkpIDogSVBDOjpEYXRhUmVmZXJl
bmNlKCk7Ci0gICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYklEQlNlcnZlckNv
bm5lY3Rpb246OkRpZEFkdmFuY2VDdXJzb3IocmVxdWVzdElELCByZXN1bHRLZXksIHByaW1hcnlL
ZXksIGRhdGEsIHZhbHVlS2V5LCBlcnJvckNvZGUsIGVycm9yTWVzc2FnZSkpOworICAgICAgICBj
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpEaWRBZHZh
bmNlQ3Vyc29yKHJlcXVlc3RJRCwgcmVzdWx0S2V5LCBwcmltYXJ5S2V5LCBkYXRhLCBlcnJvckNv
ZGUsIGVycm9yTWVzc2FnZSkpOwogICAgIH0pOwogfQogCkBAIC0zMjAsOSArMzIwLDkgQEAgdm9p
ZCBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpjdXJzb3JJdGVyYXRlKHVpbnQ2NF90IHJl
cXVlc3RJRCwgaW50NjRfdCBjdXIKIAogICAgIExPRyhJREIsICJEYXRhYmFzZVByb2Nlc3MgY3Vy
c29ySXRlcmF0ZSByZXF1ZXN0IElEICVsbHUsIGN1cnNvciBpZCAlbGxpIiwgcmVxdWVzdElELCBj
dXJzb3JJRCk7CiAgICAgUmVmUHRyPERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24+IGNvbm5l
Y3Rpb24odGhpcyk7Ci0gICAgbV91bmlxdWVJREJEYXRhYmFzZS0+Y3Vyc29ySXRlcmF0ZShJREJJ
ZGVudGlmaWVyKCp0aGlzLCBjdXJzb3JJRCksIGtleSwgW2Nvbm5lY3Rpb24sIHJlcXVlc3RJRF0o
Y29uc3QgSURCS2V5RGF0YSYgcmVzdWx0S2V5LCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5
LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUsIGNvbnN0IElEQktleURhdGEmIHZhbHVl
S2V5LCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7Cisg
ICAgbV91bmlxdWVJREJEYXRhYmFzZS0+Y3Vyc29ySXRlcmF0ZShJREJJZGVudGlmaWVyKCp0aGlz
LCBjdXJzb3JJRCksIGtleSwgW2Nvbm5lY3Rpb24sIHJlcXVlc3RJRF0oY29uc3QgSURCS2V5RGF0
YSYgcmVzdWx0S2V5LCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gdmFsdWUsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UpIHsKICAgICAgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEgPSB2YWx1ZSA/IElQ
Qzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPih2YWx1ZS0+
ZGF0YSgpKSwgdmFsdWUtPnNpemUoKSkgOiBJUEM6OkRhdGFSZWZlcmVuY2UoKTsKLSAgICAgICAg
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6RGlkSXRl
cmF0ZUN1cnNvcihyZXF1ZXN0SUQsIHJlc3VsdEtleSwgcHJpbWFyeUtleSwgZGF0YSwgdmFsdWVL
ZXksIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKSk7CisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OldlYklEQlNlcnZlckNvbm5lY3Rpb246OkRpZEl0ZXJhdGVDdXJzb3IocmVxdWVz
dElELCByZXN1bHRLZXksIHByaW1hcnlLZXksIGRhdGEsIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdl
KSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKaW5kZXggOTJhNTli
My4uN2UxNjBiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0lu
ZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTU5NiwyMSArNTk2
LDIxIEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZChjb25zdCBJREJJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGluCiAgICAgcG9zdERhdGFiYXNlVGFzayhjcmVh
dGVBc3luY1Rhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkRnJvbUJhY2tp
bmdTdG9yZSwgcmVxdWVzdElELCB0cmFuc2FjdGlvbklkZW50aWZpZXIsIG1fbWV0YWRhdGEtPm9i
amVjdFN0b3Jlcy5nZXQob2JqZWN0U3RvcmVJRCksIGluZGV4SUQsIGtleVJhbmdlRGF0YSwgY3Vy
c29yVHlwZSkpOwogfQogCi12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yKGNvbnN0
IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9y
ZUlELCBpbnQ2NF90IGluZGV4SUQsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGN1cnNvckRp
cmVjdGlvbiwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQkRhdGFiYXNlQmFj
a2VuZDo6VGFza1R5cGUgdGFza1R5cGUsIGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2VE
YXRhLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoaW50NjRfdCwgY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0
IElEQktleURhdGEmLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGNvbnN0IElEQktleURhdGEm
LCB1aW50MzJfdCwgY29uc3QgU3RyaW5nJik+IGNhbGxiYWNrKQordm9pZCBVbmlxdWVJREJEYXRh
YmFzZTo6b3BlbkN1cnNvcihjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgaW50NjRfdCBpbmRleElELCBJbmRleGVkREI6OkN1
cnNvckRpcmVjdGlvbiBjdXJzb3JEaXJlY3Rpb24sIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSBjdXJz
b3JUeXBlLCBJREJEYXRhYmFzZUJhY2tlbmQ6OlRhc2tUeXBlIHRhc2tUeXBlLCBjb25zdCBJREJL
ZXlSYW5nZURhdGEmIGtleVJhbmdlRGF0YSwgc3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3QsIGNv
bnN0IElEQktleURhdGEmLCBjb25zdCBJREJLZXlEYXRhJiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+LCB1aW50MzJfdCwgY29uc3QgU3RyaW5nJik+IGNhbGxiYWNrKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAKICAgICBpZiAoIW1fYWNjZXB0aW5nTmV3UmVxdWVzdHMpIHsKLSAg
ICAgICAgY2FsbGJhY2soMCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSU5W
QUxJRF9TVEFURV9FUlIsICJVbmFibGUgdG8gb3BlbiBjdXJzb3IgaW4gZGF0YWJhc2UgYmVjYXVz
ZSBpdCBoYXMgc2h1dCBkb3duIik7CisgICAgICAgIGNhbGxiYWNrKDAsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIElOVkFMSURfU1RBVEVfRVJSLCAiVW5hYmxlIHRvIG9wZW4gY3Vyc29yIGlu
IGRhdGFiYXNlIGJlY2F1c2UgaXQgaGFzIHNodXQgZG93biIpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAgICAgQVNTRVJUKG1fbWV0YWRhdGEtPm9iamVjdFN0b3Jlcy5jb250YWlucyhvYmpl
Y3RTdG9yZUlEKSk7CiAKLSAgICBSZWZQdHI8QXN5bmNSZXF1ZXN0PiByZXF1ZXN0ID0gQXN5bmNS
ZXF1ZXN0SW1wbDxpbnQ2NF90LCBjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgSURCS2V5RGF0YSYs
IFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgY29uc3QgSURCS2V5RGF0YSYsIHVpbnQzMl90LCBj
b25zdCBTdHJpbmcmPjo6Y3JlYXRlKFt0aGlzLCBjYWxsYmFja10oaW50NjRfdCBjdXJzb3JJRCwg
Y29uc3QgSURCS2V5RGF0YSYga2V5LCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBQYXNz
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUsIGNvbnN0IElEQktleURhdGEmIHZhbHVlS2V5LCB1
aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7Ci0gICAgICAg
IGNhbGxiYWNrKGN1cnNvcklELCBrZXksIHByaW1hcnlLZXksIHZhbHVlLCB2YWx1ZUtleSwgZXJy
b3JDb2RlLCBlcnJvck1lc3NhZ2UpOworICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+IHJlcXVlc3Qg
PSBBc3luY1JlcXVlc3RJbXBsPGludDY0X3QsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBJREJL
ZXlEYXRhJiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCB1aW50MzJfdCwgY29uc3QgU3RyaW5n
Jj46OmNyZWF0ZShbdGhpcywgY2FsbGJhY2tdKGludDY0X3QgY3Vyc29ySUQsIGNvbnN0IElEQktl
eURhdGEmIGtleSwgY29uc3QgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTaGFy
ZWRCdWZmZXI+IHZhbHVlLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlKSB7CisgICAgICAgIGNhbGxiYWNrKGN1cnNvcklELCBrZXksIHByaW1hcnlLZXksIHZh
bHVlLCBlcnJvckNvZGUsIGVycm9yTWVzc2FnZSk7CiAgICAgfSwgW3RoaXMsIGNhbGxiYWNrXSgp
IHsKLSAgICAgICAgY2FsbGJhY2soMCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciwgSU5WQUxJRF9TVEFURV9FUlIsICJVbmFibGUgdG8gZ2V0IHJlY29yZCBmcm9tIGRhdGFiYXNl
Iik7CisgICAgICAgIGNhbGxiYWNrKDAsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElOVkFM
SURfU1RBVEVfRVJSLCAiVW5hYmxlIHRvIGdldCByZWNvcmQgZnJvbSBkYXRhYmFzZSIpOwogICAg
IH0pOwogCiAgICAgdWludDY0X3QgcmVxdWVzdElEID0gcmVxdWVzdC0+cmVxdWVzdElEKCk7CkBA
IC02MTksMTkgKzYxOSwxOSBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yKGNv
bnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaQogICAgIHBvc3REYXRh
YmFzZVRhc2soY3JlYXRlQXN5bmNUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5D
dXJzb3JJbkJhY2tpbmdTdG9yZSwgcmVxdWVzdElELCB0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9i
amVjdFN0b3JlSUQsIGluZGV4SUQsIGN1cnNvckRpcmVjdGlvbiwgY3Vyc29yVHlwZSwgdGFza1R5
cGUsIGtleVJhbmdlRGF0YSkpOwogfQogCi12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjdXJzb3JB
ZHZhbmNlKGNvbnN0IElEQklkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIHVpbnQ2NF90IGNv
dW50LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IElEQktleURh
dGEmLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGNvbnN0IElEQktleURhdGEmLCB1aW50MzJf
dCwgY29uc3QgU3RyaW5nJik+IGNhbGxiYWNrKQordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3Vy
c29yQWR2YW5jZShjb25zdCBJREJJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCB1aW50NjRf
dCBjb3VudCwgc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IElEQktleURhdGEmLCBjb25zdCBJREJL
ZXlEYXRhJiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCB1aW50MzJfdCwgY29uc3QgU3RyaW5n
Jik+IGNhbGxiYWNrKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBpZiAo
IW1fYWNjZXB0aW5nTmV3UmVxdWVzdHMpIHsKLSAgICAgICAgY2FsbGJhY2sobnVsbHB0ciwgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSU5WQUxJRF9TVEFURV9FUlIsICJVbmFibGUgdG8gYWR2
YW5jZSBjdXJzb3IgaW4gZGF0YWJhc2UgYmVjYXVzZSBpdCBoYXMgc2h1dCBkb3duIik7CisgICAg
ICAgIGNhbGxiYWNrKG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElOVkFMSURfU1RBVEVfRVJS
LCAiVW5hYmxlIHRvIGFkdmFuY2UgY3Vyc29yIGluIGRhdGFiYXNlIGJlY2F1c2UgaXQgaGFzIHNo
dXQgZG93biIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUmVmUHRyPEFzeW5jUmVx
dWVzdD4gcmVxdWVzdCA9IEFzeW5jUmVxdWVzdEltcGw8Y29uc3QgSURCS2V5RGF0YSYsIGNvbnN0
IElEQktleURhdGEmLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGNvbnN0IElEQktleURhdGEm
LCB1aW50MzJfdCwgY29uc3QgU3RyaW5nJj46OmNyZWF0ZShbdGhpcywgY2FsbGJhY2tdKGNvbnN0
IElEQktleURhdGEmIGtleSwgY29uc3QgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwgUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCBjb25zdCBJREJLZXlEYXRhJiB2YWx1ZUtleSwgdWludDMy
X3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgewotICAgICAgICBjYWxs
YmFjayhrZXksIHByaW1hcnlLZXksIHZhbHVlLCB2YWx1ZUtleSwgZXJyb3JDb2RlLCBlcnJvck1l
c3NhZ2UpOworICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+IHJlcXVlc3QgPSBBc3luY1JlcXVlc3RJ
bXBsPGNvbnN0IElEQktleURhdGEmLCBjb25zdCBJREJLZXlEYXRhJiwgUGFzc1JlZlB0cjxTaGFy
ZWRCdWZmZXI+LCB1aW50MzJfdCwgY29uc3QgU3RyaW5nJj46OmNyZWF0ZShbdGhpcywgY2FsbGJh
Y2tdKGNvbnN0IElEQktleURhdGEmIGtleSwgY29uc3QgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwg
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7CisgICAgICAgIGNhbGxiYWNrKGtleSwgcHJpbWFyeUtl
eSwgdmFsdWUsIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKTsKICAgICB9LCBbdGhpcywgY2FsbGJh
Y2tdKCkgewotICAgICAgICBjYWxsYmFjayhudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxs
cHRyLCBJTlZBTElEX1NUQVRFX0VSUiwgIlVuYWJsZSB0byBhZHZhbmNlIGN1cnNvciBpbiBkYXRh
YmFzZSIpOworICAgICAgICBjYWxsYmFjayhudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJTlZB
TElEX1NUQVRFX0VSUiwgIlVuYWJsZSB0byBhZHZhbmNlIGN1cnNvciBpbiBkYXRhYmFzZSIpOwog
ICAgIH0pOwogCiAgICAgdWludDY0X3QgcmVxdWVzdElEID0gcmVxdWVzdC0+cmVxdWVzdElEKCk7
CkBAIC02NDAsMTkgKzY0MCwxOSBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjdXJzb3JBZHZh
bmNlKGNvbnN0IElEQklkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIHVpbgogICAgIHBvc3RE
YXRhYmFzZVRhc2soY3JlYXRlQXN5bmNUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmFk
dmFuY2VDdXJzb3JJbkJhY2tpbmdTdG9yZSwgcmVxdWVzdElELCBjdXJzb3JJZGVudGlmaWVyLCBj
b3VudCkpOwogfQogCi12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjdXJzb3JJdGVyYXRlKGNvbnN0
IElEQklkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmIGtleSwg
c3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IElEQktleURhdGEmLCBjb25zdCBJREJLZXlEYXRhJiwg
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBjb25zdCBJREJLZXlEYXRhJiwgdWludDMyX3QsIGNv
bnN0IFN0cmluZyYpPiBjYWxsYmFjaykKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmN1cnNvckl0
ZXJhdGUoY29uc3QgSURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgSURCS2V5
RGF0YSYga2V5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IElE
QktleURhdGEmLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIHVpbnQzMl90LCBjb25zdCBTdHJp
bmcmKT4gY2FsbGJhY2spCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIGlm
ICghbV9hY2NlcHRpbmdOZXdSZXF1ZXN0cykgewotICAgICAgICBjYWxsYmFjayhudWxscHRyLCBu
dWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJTlZBTElEX1NUQVRFX0VSUiwgIlVuYWJsZSB0byBp
dGVyYXRlIGN1cnNvciBpbiBkYXRhYmFzZSBiZWNhdXNlIGl0IGhhcyBzaHV0IGRvd24iKTsKKyAg
ICAgICAgY2FsbGJhY2sobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSU5WQUxJRF9TVEFURV9F
UlIsICJVbmFibGUgdG8gaXRlcmF0ZSBjdXJzb3IgaW4gZGF0YWJhc2UgYmVjYXVzZSBpdCBoYXMg
c2h1dCBkb3duIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZWZQdHI8QXN5bmNS
ZXF1ZXN0PiByZXF1ZXN0ID0gQXN5bmNSZXF1ZXN0SW1wbDxjb25zdCBJREJLZXlEYXRhJiwgY29u
c3QgSURCS2V5RGF0YSYsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgY29uc3QgSURCS2V5RGF0
YSYsIHVpbnQzMl90LCBjb25zdCBTdHJpbmcmPjo6Y3JlYXRlKFt0aGlzLCBjYWxsYmFja10oY29u
c3QgSURCS2V5RGF0YSYga2V5LCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUsIGNvbnN0IElEQktleURhdGEmIHZhbHVlS2V5LCB1aW50
MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7Ci0gICAgICAgIGNh
bGxiYWNrKGtleSwgcHJpbWFyeUtleSwgdmFsdWUsIHZhbHVlS2V5LCBlcnJvckNvZGUsIGVycm9y
TWVzc2FnZSk7CisgICAgUmVmUHRyPEFzeW5jUmVxdWVzdD4gcmVxdWVzdCA9IEFzeW5jUmVxdWVz
dEltcGw8Y29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4sIHVpbnQzMl90LCBjb25zdCBTdHJpbmcmPjo6Y3JlYXRlKFt0aGlzLCBjYWxs
YmFja10oY29uc3QgSURCS2V5RGF0YSYga2V5LCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5
LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUsIHVpbnQzMl90IGVycm9yQ29kZSwgY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsKKyAgICAgICAgY2FsbGJhY2soa2V5LCBwcmltYXJ5
S2V5LCB2YWx1ZSwgZXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UpOwogICAgIH0sIFt0aGlzLCBjYWxs
YmFja10oKSB7Ci0gICAgICAgIGNhbGxiYWNrKG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51
bGxwdHIsIElOVkFMSURfU1RBVEVfRVJSLCAiVW5hYmxlIHRvIGl0ZXJhdGUgY3Vyc29yIGluIGRh
dGFiYXNlIik7CisgICAgICAgIGNhbGxiYWNrKG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElO
VkFMSURfU1RBVEVfRVJSLCAiVW5hYmxlIHRvIGl0ZXJhdGUgY3Vyc29yIGluIGRhdGFiYXNlIik7
CiAgICAgfSk7CiAKICAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSByZXF1ZXN0LT5yZXF1ZXN0SUQo
KTsKQEAgLTk1MiwyNSArOTUyLDI0IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5DdXJz
b3JJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQklkCiAgICAgSURC
S2V5RGF0YSBrZXk7CiAgICAgSURCS2V5RGF0YSBwcmltYXJ5S2V5OwogICAgIFZlY3RvcjxjaGFy
PiB2YWx1ZUJ1ZmZlcjsKLSAgICBJREJLZXlEYXRhIHZhbHVlS2V5OwogICAgIGludDMyX3QgZXJy
b3JDb2RlID0gMDsKICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwotICAgIGJvb2wgc3VjY2VzcyA9
IG1fYmFja2luZ1N0b3JlLT5vcGVuQ3Vyc29yKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0
U3RvcmVJRCwgaW5kZXhJRCwgY3Vyc29yRGlyZWN0aW9uLCBjdXJzb3JUeXBlLCB0YXNrVHlwZSwg
a2V5UmFuZ2UsIGN1cnNvcklELCBrZXksIHByaW1hcnlLZXksIHZhbHVlQnVmZmVyLCB2YWx1ZUtl
eSk7CisgICAgYm9vbCBzdWNjZXNzID0gbV9iYWNraW5nU3RvcmUtPm9wZW5DdXJzb3IodHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlELCBpbmRleElELCBjdXJzb3JEaXJlY3Rpb24s
IGN1cnNvclR5cGUsIHRhc2tUeXBlLCBrZXlSYW5nZSwgY3Vyc29ySUQsIGtleSwgcHJpbWFyeUtl
eSwgdmFsdWVCdWZmZXIpOwogCiAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgIGVycm9yQ29k
ZSA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3I7CiAgICAgICAgIGVycm9yTWVz
c2FnZSA9IEFTQ0lJTGl0ZXJhbCgiVW5rbm93biBlcnJvciBvcGVuaW5nIGN1cnNvciBpbiBiYWNr
aW5nIHN0b3JlIik7CiAgICAgfQogCi0gICAgcG9zdE1haW5UaHJlYWRUYXNrKGNyZWF0ZUFzeW5j
VGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRPcGVuQ3Vyc29ySW5CYWNraW5nU3Rv
cmUsIHJlcXVlc3RJRCwgY3Vyc29ySUQsIGtleSwgcHJpbWFyeUtleSwgdmFsdWVCdWZmZXIsIHZh
bHVlS2V5LCBlcnJvckNvZGUsIGVycm9yTWVzc2FnZSkpOworICAgIHBvc3RNYWluVGhyZWFkVGFz
ayhjcmVhdGVBc3luY1Rhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkT3BlbkN1cnNv
ckluQmFja2luZ1N0b3JlLCByZXF1ZXN0SUQsIGN1cnNvcklELCBrZXksIHByaW1hcnlLZXksIHZh
bHVlQnVmZmVyLCBlcnJvckNvZGUsIGVycm9yTWVzc2FnZSkpOwogfQogCi12b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlOjpkaWRPcGVuQ3Vyc29ySW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElE
LCBpbnQ2NF90IGN1cnNvcklELCBjb25zdCBJREJLZXlEYXRhJiBrZXksIGNvbnN0IElEQktleURh
dGEmIHByaW1hcnlLZXksIGNvbnN0IFZlY3RvcjxjaGFyPiYgdmFsdWVCdWZmZXIsIGNvbnN0IElE
QktleURhdGEmIHZhbHVlS2V5LCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlKQordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkT3BlbkN1cnNvckluQmFja2lu
Z1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCBjdXJzb3JJRCwgY29uc3QgSURCS2V5
RGF0YSYga2V5LCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBjb25zdCBWZWN0b3I8Y2hh
cj4mIHZhbHVlQnVmZmVyLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlKQogewogICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+IHJlcXVlc3QgPSBtX3BlbmRpbmdE
YXRhYmFzZVRhc2tzLnRha2UocmVxdWVzdElEKTsKICAgICBBU1NFUlQocmVxdWVzdCk7CiAKLSAg
ICByZXF1ZXN0LT5jb21wbGV0ZVJlcXVlc3QoY3Vyc29ySUQsIGtleSwgcHJpbWFyeUtleSwgU2hh
cmVkQnVmZmVyOjpjcmVhdGUodmFsdWVCdWZmZXIuZGF0YSgpLCB2YWx1ZUJ1ZmZlci5zaXplKCkp
LCB2YWx1ZUtleSwgZXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UpOworICAgIHJlcXVlc3QtPmNvbXBs
ZXRlUmVxdWVzdChjdXJzb3JJRCwga2V5LCBwcmltYXJ5S2V5LCBTaGFyZWRCdWZmZXI6OmNyZWF0
ZSh2YWx1ZUJ1ZmZlci5kYXRhKCksIHZhbHVlQnVmZmVyLnNpemUoKSksIGVycm9yQ29kZSwgZXJy
b3JNZXNzYWdlKTsKIH0KIAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6YWR2YW5jZUN1cnNvcklu
QmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgSURCSWRlbnRpZmllciYgY3Vy
c29ySWRlbnRpZmllciwgdWludDY0X3QgY291bnQpCkBAIC05NzgsMjUgKzk3NywyNCBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjphZHZhbmNlQ3Vyc29ySW5CYWNraW5nU3RvcmUodWludDY0X3Qg
cmVxdWVzdElELCBjb25zdCBJRAogICAgIElEQktleURhdGEga2V5OwogICAgIElEQktleURhdGEg
cHJpbWFyeUtleTsKICAgICBWZWN0b3I8Y2hhcj4gdmFsdWVCdWZmZXI7Ci0gICAgSURCS2V5RGF0
YSB2YWx1ZUtleTsKICAgICBpbnQzMl90IGVycm9yQ29kZSA9IDA7CiAgICAgU3RyaW5nIGVycm9y
TWVzc2FnZTsKLSAgICBib29sIHN1Y2Nlc3MgPSBtX2JhY2tpbmdTdG9yZS0+YWR2YW5jZUN1cnNv
cihjdXJzb3JJZGVudGlmaWVyLCBjb3VudCwga2V5LCBwcmltYXJ5S2V5LCB2YWx1ZUJ1ZmZlciwg
dmFsdWVLZXkpOworICAgIGJvb2wgc3VjY2VzcyA9IG1fYmFja2luZ1N0b3JlLT5hZHZhbmNlQ3Vy
c29yKGN1cnNvcklkZW50aWZpZXIsIGNvdW50LCBrZXksIHByaW1hcnlLZXksIHZhbHVlQnVmZmVy
KTsKIAogICAgIGlmICghc3VjY2VzcykgewogICAgICAgICBlcnJvckNvZGUgPSBJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yOwogICAgICAgICBlcnJvck1lc3NhZ2UgPSBBU0NJSUxp
dGVyYWwoIlVua25vd24gZXJyb3IgYWR2YW5jaW5nIGN1cnNvciBpbiBiYWNraW5nIHN0b3JlIik7
CiAgICAgfQogCi0gICAgcG9zdE1haW5UaHJlYWRUYXNrKGNyZWF0ZUFzeW5jVGFzaygqdGhpcywg
JlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRBZHZhbmNlQ3Vyc29ySW5CYWNraW5nU3RvcmUsIHJlcXVl
c3RJRCwga2V5LCBwcmltYXJ5S2V5LCB2YWx1ZUJ1ZmZlciwgdmFsdWVLZXksIGVycm9yQ29kZSwg
ZXJyb3JNZXNzYWdlKSk7CisgICAgcG9zdE1haW5UaHJlYWRUYXNrKGNyZWF0ZUFzeW5jVGFzaygq
dGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRBZHZhbmNlQ3Vyc29ySW5CYWNraW5nU3RvcmUs
IHJlcXVlc3RJRCwga2V5LCBwcmltYXJ5S2V5LCB2YWx1ZUJ1ZmZlciwgZXJyb3JDb2RlLCBlcnJv
ck1lc3NhZ2UpKTsKIH0KIAotdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkQWR2YW5jZUN1cnNv
ckluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgSURCS2V5RGF0YSYga2V5
LCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBjb25zdCBWZWN0b3I8Y2hhcj4mIHZhbHVl
QnVmZmVyLCBjb25zdCBJREJLZXlEYXRhJiB2YWx1ZUtleSwgdWludDMyX3QgZXJyb3JDb2RlLCBj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZEFk
dmFuY2VDdXJzb3JJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQktl
eURhdGEmIGtleSwgY29uc3QgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGNo
YXI+JiB2YWx1ZUJ1ZmZlciwgdWludDMyX3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVycm9y
TWVzc2FnZSkKIHsKICAgICBSZWZQdHI8QXN5bmNSZXF1ZXN0PiByZXF1ZXN0ID0gbV9wZW5kaW5n
RGF0YWJhc2VUYXNrcy50YWtlKHJlcXVlc3RJRCk7CiAgICAgQVNTRVJUKHJlcXVlc3QpOwogCi0g
ICAgcmVxdWVzdC0+Y29tcGxldGVSZXF1ZXN0KGtleSwgcHJpbWFyeUtleSwgU2hhcmVkQnVmZmVy
OjpjcmVhdGUodmFsdWVCdWZmZXIuZGF0YSgpLCB2YWx1ZUJ1ZmZlci5zaXplKCkpLCB2YWx1ZUtl
eSwgZXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UpOworICAgIHJlcXVlc3QtPmNvbXBsZXRlUmVxdWVz
dChrZXksIHByaW1hcnlLZXksIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHZhbHVlQnVmZmVyLmRhdGEo
KSwgdmFsdWVCdWZmZXIuc2l6ZSgpKSwgZXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UpOwogfQogCiB2
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjppdGVyYXRlQ3Vyc29ySW5CYWNraW5nU3RvcmUodWludDY0
X3QgcmVxdWVzdElELCBjb25zdCBJREJJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCBjb25z
dCBJREJLZXlEYXRhJiBpdGVyYXRlS2V5KQpAQCAtMTAwNCwyNSArMTAwMiwyNCBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjppdGVyYXRlQ3Vyc29ySW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVx
dWVzdElELCBjb25zdCBJRAogICAgIElEQktleURhdGEga2V5OwogICAgIElEQktleURhdGEgcHJp
bWFyeUtleTsKICAgICBWZWN0b3I8Y2hhcj4gdmFsdWVCdWZmZXI7Ci0gICAgSURCS2V5RGF0YSB2
YWx1ZUtleTsKICAgICBpbnQzMl90IGVycm9yQ29kZSA9IDA7CiAgICAgU3RyaW5nIGVycm9yTWVz
c2FnZTsKLSAgICBib29sIHN1Y2Nlc3MgPSBtX2JhY2tpbmdTdG9yZS0+aXRlcmF0ZUN1cnNvcihj
dXJzb3JJZGVudGlmaWVyLCBpdGVyYXRlS2V5LCBrZXksIHByaW1hcnlLZXksIHZhbHVlQnVmZmVy
LCB2YWx1ZUtleSk7CisgICAgYm9vbCBzdWNjZXNzID0gbV9iYWNraW5nU3RvcmUtPml0ZXJhdGVD
dXJzb3IoY3Vyc29ySWRlbnRpZmllciwgaXRlcmF0ZUtleSwga2V5LCBwcmltYXJ5S2V5LCB2YWx1
ZUJ1ZmZlcik7CiAKICAgICBpZiAoIXN1Y2Nlc3MpIHsKICAgICAgICAgZXJyb3JDb2RlID0gSURC
RGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvcjsKICAgICAgICAgZXJyb3JNZXNzYWdlID0g
QVNDSUlMaXRlcmFsKCJVbmtub3duIGVycm9yIGl0ZXJhdGluZyBjdXJzb3IgaW4gYmFja2luZyBz
dG9yZSIpOwogICAgIH0KIAotICAgIHBvc3RNYWluVGhyZWFkVGFzayhjcmVhdGVBc3luY1Rhc2so
KnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkSXRlcmF0ZUN1cnNvckluQmFja2luZ1N0b3Jl
LCByZXF1ZXN0SUQsIGtleSwgcHJpbWFyeUtleSwgdmFsdWVCdWZmZXIsIHZhbHVlS2V5LCBlcnJv
ckNvZGUsIGVycm9yTWVzc2FnZSkpOworICAgIHBvc3RNYWluVGhyZWFkVGFzayhjcmVhdGVBc3lu
Y1Rhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkSXRlcmF0ZUN1cnNvckluQmFja2lu
Z1N0b3JlLCByZXF1ZXN0SUQsIGtleSwgcHJpbWFyeUtleSwgdmFsdWVCdWZmZXIsIGVycm9yQ29k
ZSwgZXJyb3JNZXNzYWdlKSk7CiB9CiAKLXZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZEl0ZXJh
dGVDdXJzb3JJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQktleURh
dGEmIGtleSwgY29uc3QgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGNoYXI+
JiB2YWx1ZUJ1ZmZlciwgY29uc3QgSURCS2V5RGF0YSYgdmFsdWVLZXksIHVpbnQzMl90IGVycm9y
Q29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
OjpkaWRJdGVyYXRlQ3Vyc29ySW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBjb25z
dCBJREJLZXlEYXRhJiBrZXksIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlLZXksIGNvbnN0IFZl
Y3RvcjxjaGFyPiYgdmFsdWVCdWZmZXIsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UpCiB7CiAgICAgUmVmUHRyPEFzeW5jUmVxdWVzdD4gcmVxdWVzdCA9IG1f
cGVuZGluZ0RhdGFiYXNlVGFza3MudGFrZShyZXF1ZXN0SUQpOwogICAgIEFTU0VSVChyZXF1ZXN0
KTsKIAotICAgIHJlcXVlc3QtPmNvbXBsZXRlUmVxdWVzdChrZXksIHByaW1hcnlLZXksIFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKHZhbHVlQnVmZmVyLmRhdGEoKSwgdmFsdWVCdWZmZXIuc2l6ZSgpKSwg
dmFsdWVLZXksIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKTsKKyAgICByZXF1ZXN0LT5jb21wbGV0
ZVJlcXVlc3Qoa2V5LCBwcmltYXJ5S2V5LCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh2YWx1ZUJ1ZmZl
ci5kYXRhKCksIHZhbHVlQnVmZmVyLnNpemUoKSksIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKTsK
IH0KIAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y291bnRJbkJhY2tpbmdTdG9yZSh1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
aW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IGluZGV4SUQsIGNvbnN0IElEQktleVJhbmdl
RGF0YSYga2V5UmFuZ2VEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCmluZGV4IDIyYjMzZjQu
LmQ3ZTJhMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvVW5pcXVlSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAgLTk2LDkgKzk2LDkgQEAgcHVi
bGljOgogICAgIHZvaWQgcHV0UmVjb3JkKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBXZWJDb3JlOjpJREJLZXlE
YXRhJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiB2YWx1ZSwgaW50NjRfdCBwdXRNb2RlLCBj
b25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SURzLCBjb25zdCBWZWN0b3I8VmVjdG9yPFdlYkNv
cmU6OklEQktleURhdGE+PiYgaW5kZXhLZXlzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgV2Vi
Q29yZTo6SURCS2V5RGF0YSYsIHVpbnQzMl90LCBjb25zdCBTdHJpbmcmKT4gY2FsbGJhY2spOwog
ICAgIHZvaWQgZ2V0UmVjb3JkKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IGluZGV4SUQsIGNvbnN0IFdlYkNv
cmU6OklEQktleVJhbmdlRGF0YSYsIFdlYkNvcmU6OkluZGV4ZWREQjo6Q3Vyc29yVHlwZSwgc3Rk
OjpmdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OklEQkdldFJlc3VsdCYsIHVpbnQzMl90LCBj
b25zdCBTdHJpbmcmKT4gY2FsbGJhY2spOwogCi0gICAgdm9pZCBvcGVuQ3Vyc29yKGNvbnN0IElE
QklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlE
LCBpbnQ2NF90IGluZGV4SUQsIFdlYkNvcmU6OkluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uLCBX
ZWJDb3JlOjpJbmRleGVkREI6OkN1cnNvclR5cGUsIFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2Vu
ZDo6VGFza1R5cGUsIGNvbnN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYsIHN0ZDo6ZnVuY3Rp
b248dm9pZChpbnQ2NF90LCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgY29uc3QgV2ViQ29y
ZTo6SURCS2V5RGF0YSYsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiwgY29uc3Qg
V2ViQ29yZTo6SURCS2V5RGF0YSYsIHVpbnQzMl90LCBjb25zdCBTdHJpbmcmKT4gY2FsbGJhY2sp
OwotICAgIHZvaWQgY3Vyc29yQWR2YW5jZShjb25zdCBJREJJZGVudGlmaWVyJiBjdXJzb3JJZGVu
dGlmaWVyLCB1aW50NjRfdCBjb3VudCwgc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6
OklEQktleURhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpTaGFyZWRCdWZmZXI+LCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgdWludDMyX3Qs
IGNvbnN0IFN0cmluZyYpPiBjYWxsYmFjayk7Ci0gICAgdm9pZCBjdXJzb3JJdGVyYXRlKGNvbnN0
IElEQklkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQktleURh
dGEmLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0
IFdlYkNvcmU6OklEQktleURhdGEmLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4s
IGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCB1aW50MzJfdCwgY29uc3QgU3RyaW5nJik+IGNh
bGxiYWNrKTsKKyAgICB2b2lkIG9wZW5DdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCwg
V2ViQ29yZTo6SW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24sIFdlYkNvcmU6OkluZGV4ZWREQjo6
Q3Vyc29yVHlwZSwgV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kOjpUYXNrVHlwZSwgY29uc3Qg
V2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhJiwgc3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3QsIGNv
bnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+LCB1aW50MzJfdCwgY29uc3QgU3RyaW5nJik+
IGNhbGxiYWNrKTsKKyAgICB2b2lkIGN1cnNvckFkdmFuY2UoY29uc3QgSURCSWRlbnRpZmllciYg
Y3Vyc29ySWRlbnRpZmllciwgdWludDY0X3QgY291bnQsIHN0ZDo6ZnVuY3Rpb248dm9pZChjb25z
dCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiwgdWludDMyX3QsIGNvbnN0IFN0cmluZyYpPiBj
YWxsYmFjayk7CisgICAgdm9pZCBjdXJzb3JJdGVyYXRlKGNvbnN0IElEQklkZW50aWZpZXImIGN1
cnNvcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQktleURh
dGEmLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4sIHVpbnQzMl90LCBjb25zdCBT
dHJpbmcmKT4gY2FsbGJhY2spOwogCiAgICAgdm9pZCBjb3VudChjb25zdCBJREJJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgaW50NjRfdCBp
bmRleElELCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmLCBzdGQ6OmZ1bmN0aW9uPHZv
aWQoaW50NjRfdCwgdWludDMyX3QsIGNvbnN0IFN0cmluZyYpPiBjYWxsYmFjayk7CiAgICAgdm9p
ZCBkZWxldGVSYW5nZShjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhJiwg
c3RkOjpmdW5jdGlvbjx2b2lkKHVpbnQzMl90LCBjb25zdCBTdHJpbmcmKT4gY2FsbGJhY2spOwpA
QCAtMTQ5LDggKzE0OSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmVJ
bkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQklkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVNZXRhZGF0
YSYpOwogICAgIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmVJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCBy
ZXF1ZXN0SUQsIGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50
NjRfdCBvYmplY3RTdG9yZUlEKTsKICAgICB2b2lkIGNsZWFyT2JqZWN0U3RvcmVJbkJhY2tpbmdT
dG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlEKTsKKwogICAgIHZvaWQgY3JlYXRlSW5k
ZXhJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQklkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBXZWJD
b3JlOjpJREJJbmRleE1ldGFkYXRhJik7CiAgICAgdm9pZCBkZWxldGVJbmRleEluQmFja2luZ1N0
b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCk7CisKICAg
ICB2b2lkIHB1dFJlY29yZEluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qg
SURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJP
YmplY3RTdG9yZU1ldGFkYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgdmFsdWUsIGludDY0X3QgcHV0TW9kZSwgY29uc3QgVmVjdG9yPGludDY0
X3Q+JiBpbmRleElEcywgY29uc3QgVmVjdG9yPFZlY3RvcjxXZWJDb3JlOjpJREJLZXlEYXRhPj4m
IGluZGV4S2V5cyk7CiAgICAgdm9pZCBnZXRSZWNvcmRGcm9tQmFja2luZ1N0b3JlKHVpbnQ2NF90
IHJlcXVlc3RJRCwgY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpJREJPYmplY3RTdG9yZU1ldGFkYXRhJiwgaW50NjRfdCBpbmRleElELCBj
b25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmLCBXZWJDb3JlOjpJbmRleGVkREI6OkN1cnNv
clR5cGUpOwogICAgIHZvaWQgb3BlbkN1cnNvckluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVl
c3RJRCwgY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90
IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCwgV2ViQ29yZTo6SW5kZXhlZERCOjpDdXJz
b3JEaXJlY3Rpb24sIFdlYkNvcmU6OkluZGV4ZWREQjo6Q3Vyc29yVHlwZSwgV2ViQ29yZTo6SURC
RGF0YWJhc2VCYWNrZW5kOjpUYXNrVHlwZSwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRh
Jik7CkBAIC0xNzMsOSArMTc1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZERlbGV0ZUluZGV4
KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBzdWNjZXNzKTsKICAgICB2b2lkIGRpZFB1dFJlY29y
ZEluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5
RGF0YSYsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwog
ICAgIHZvaWQgZGlkR2V0UmVjb3JkRnJvbUJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IFdlYkNvcmU6OklEQkdldFJlc3VsdCYsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UpOwotICAgIHZvaWQgZGlkT3BlbkN1cnNvckluQmFja2luZ1N0
b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCBjdXJzb3JJRCwgY29uc3QgV2ViQ29yZTo6
SURCS2V5RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBWZWN0b3I8Y2hh
cj4mLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgdWludDMyX3QgZXJyb3JDb2RlLCBjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7Ci0gICAgdm9pZCBkaWRBZHZhbmNlQ3Vyc29ySW5CYWNr
aW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwg
Y29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IFZlY3RvcjxjaGFyPiYsIGNvbnN0IFdl
YkNvcmU6OklEQktleURhdGEmLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlKTsKLSAgICB2b2lkIGRpZEl0ZXJhdGVDdXJzb3JJbkJhY2tpbmdTdG9yZSh1aW50
NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBXZWJDb3Jl
OjpJREJLZXlEYXRhJiwgY29uc3QgVmVjdG9yPGNoYXI+JiwgY29uc3QgV2ViQ29yZTo6SURCS2V5
RGF0YSYsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwor
ICAgIHZvaWQgZGlkT3BlbkN1cnNvckluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwg
aW50NjRfdCBjdXJzb3JJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IFdlYkNv
cmU6OklEQktleURhdGEmLCBjb25zdCBWZWN0b3I8Y2hhcj4mLCB1aW50MzJfdCBlcnJvckNvZGUs
IGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKKyAgICB2b2lkIGRpZEFkdmFuY2VDdXJzb3JJ
bkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OklEQktleURh
dGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgY29uc3QgVmVjdG9yPGNoYXI+JiwgdWlu
dDMyX3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CisgICAgdm9pZCBk
aWRJdGVyYXRlQ3Vyc29ySW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBX
ZWJDb3JlOjpJREJLZXlEYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IFZl
Y3RvcjxjaGFyPiYsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UpOwogICAgIHZvaWQgZGlkQ291bnRJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQs
IGludDY0X3QgY291bnQsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UpOwogICAgIHZvaWQgZGlkRGVsZXRlUmFuZ2VJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCBy
ZXF1ZXN0SUQsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Up
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlLmgKaW5kZXgg
NTEyNWQ1Zi4uOTYwYTZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2VCYWNr
aW5nU3RvcmUuaApAQCAtNzksOSArNzksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdl
dEtleVJhbmdlUmVjb3JkRnJvbU9iamVjdFN0b3JlKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBXZWJDb3JlOjpJ
REJLZXlSYW5nZSYsIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiByZXN1bHQsIFJlZlB0
cjxXZWJDb3JlOjpJREJLZXk+JiByZXN1bHRLZXkpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgY291
bnQoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9i
amVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VE
YXRhJiwgaW50NjRfdCYgY291bnQpID0gMDsKIAotICAgIHZpcnR1YWwgYm9vbCBvcGVuQ3Vyc29y
KGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlELCBpbnQ2NF90IGluZGV4SUQsIFdlYkNvcmU6OkluZGV4ZWREQjo6Q3Vyc29yRGly
ZWN0aW9uLCBXZWJDb3JlOjpJbmRleGVkREI6OkN1cnNvclR5cGUsIFdlYkNvcmU6OklEQkRhdGFi
YXNlQmFja2VuZDo6VGFza1R5cGUsIGNvbnN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYsIGlu
dDY0X3QmIGN1cnNvcklELCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgV2ViQ29yZTo6SURCS2V5RGF0
YSYsIFZlY3RvcjxjaGFyPiYsIFdlYkNvcmU6OklEQktleURhdGEmKSA9IDA7Ci0gICAgdmlydHVh
bCBib29sIGFkdmFuY2VDdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmll
ciwgdWludDY0X3QgY291bnQsIFdlYkNvcmU6OklEQktleURhdGEmLCBXZWJDb3JlOjpJREJLZXlE
YXRhJiwgVmVjdG9yPGNoYXI+JiwgV2ViQ29yZTo6SURCS2V5RGF0YSYpID0gMDsKLSAgICB2aXJ0
dWFsIGJvb2wgaXRlcmF0ZUN1cnNvcihjb25zdCBJREJJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFdl
YkNvcmU6OklEQktleURhdGEmLCBWZWN0b3I8Y2hhcj4mLCBXZWJDb3JlOjpJREJLZXlEYXRhJikg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBvcGVuQ3Vyc29yKGNvbnN0IElEQklkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IGluZGV4
SUQsIFdlYkNvcmU6OkluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uLCBXZWJDb3JlOjpJbmRleGVk
REI6OkN1cnNvclR5cGUsIFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZDo6VGFza1R5cGUsIGNv
bnN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYsIGludDY0X3QmIGN1cnNvcklELCBXZWJDb3Jl
OjpJREJLZXlEYXRhJiwgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFZlY3RvcjxjaGFyPiYpID0gMDsK
KyAgICB2aXJ0dWFsIGJvb2wgYWR2YW5jZUN1cnNvcihjb25zdCBJREJJZGVudGlmaWVyJiBjdXJz
b3JJZGVudGlmaWVyLCB1aW50NjRfdCBjb3VudCwgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFdlYkNv
cmU6OklEQktleURhdGEmLCBWZWN0b3I8Y2hhcj4mKSA9IDA7CisgICAgdmlydHVhbCBib29sIGl0
ZXJhdGVDdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6SURCS2V5RGF0YSYsIFdlYkNvcmU6OklEQktleURhdGEmLCBXZWJDb3JlOjpJREJL
ZXlEYXRhJiwgVmVjdG9yPGNoYXI+JikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3Nx
bGl0ZS9TUUxpdGVJREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCQ3Vyc29yLmNwcAppbmRleCBkNTdjNTBjLi45NjRh
NWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L3NxbGl0ZS9TUUxpdGVJREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1cnNvci5jcHAKQEAgLTI3Miw3ICsy
NzIsNiBAQCBib29sIFNRTGl0ZUlEQkN1cnNvcjo6YWR2YW5jZU9uY2UoKQogICAgICAgICBtX2N1
cnJlbnRLZXkgPSBJREJLZXlEYXRhKCk7CiAgICAgICAgIG1fY3VycmVudFByaW1hcnlLZXkgPSBJ
REJLZXlEYXRhKCk7CiAgICAgICAgIG1fY3VycmVudFZhbHVlQnVmZmVyLmNsZWFyKCk7Ci0gICAg
ICAgIG1fY3VycmVudFZhbHVlS2V5ID0gSURCS2V5RGF0YSgpOwogCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KQEAgLTI4Nyw4ICsyODYsNyBAQCBib29sIFNRTGl0ZUlEQkN1cnNvcjo6YWR2
YW5jZU9uY2UoKQogICAgIFZlY3RvcjxjaGFyPiBrZXlEYXRhOwogICAgIG1fc3RhdGVtZW50LT5n
ZXRDb2x1bW5CbG9iQXNWZWN0b3IoMCwga2V5RGF0YSk7CiAKLSAgICBJREJLZXlEYXRhIGtleTsK
LSAgICBpZiAoIWRlc2VyaWFsaXplSURCS2V5RGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IHVp
bnQ4X3QqPihrZXlEYXRhLmRhdGEoKSksIGtleURhdGEuc2l6ZSgpLCBrZXkpKSB7CisgICAgaWYg
KCFkZXNlcmlhbGl6ZUlEQktleURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4o
a2V5RGF0YS5kYXRhKCkpLCBrZXlEYXRhLnNpemUoKSwgbV9jdXJyZW50S2V5KSkgewogICAgICAg
ICBMT0dfRVJST1IoIlVuYWJsZSB0byBkZXNlcmlhbGl6ZSBrZXkgZGF0YSBmcm9tIGRhdGFiYXNl
IHdoaWxlIGFkdmFuY2luZyBjdXJzb3IiKTsKICAgICAgICAgbV9jb21wbGV0ZWQgPSB0cnVlOwog
ICAgICAgICBtX2Vycm9yZWQgPSB0cnVlOwpAQCAtMjk3LDEyICsyOTUsOCBAQCBib29sIFNRTGl0
ZUlEQkN1cnNvcjo6YWR2YW5jZU9uY2UoKQogCiAgICAgbV9zdGF0ZW1lbnQtPmdldENvbHVtbkJs
b2JBc1ZlY3RvcigxLCBrZXlEYXRhKTsKIAotICAgIG1fY3VycmVudEtleSA9IGtleTsKLSAgICBt
X2N1cnJlbnRQcmltYXJ5S2V5ID0ga2V5OwotICAgIG1fY3VycmVudFZhbHVlQnVmZmVyID0ga2V5
RGF0YTsKLQogICAgIGlmIChtX2luZGV4SUQgIT0gSURCSW5kZXhNZXRhZGF0YTo6SW52YWxpZElk
KSB7Ci0gICAgICAgIGlmICghZGVzZXJpYWxpemVJREJLZXlEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdWludDhfdCo+KGtleURhdGEuZGF0YSgpKSwga2V5RGF0YS5zaXplKCksIG1fY3VycmVu
dFZhbHVlS2V5KSkgeworICAgICAgICBpZiAoIWRlc2VyaWFsaXplSURCS2V5RGF0YShyZWludGVy
cHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihrZXlEYXRhLmRhdGEoKSksIGtleURhdGEuc2l6ZSgp
LCBtX2N1cnJlbnRQcmltYXJ5S2V5KSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUg
dG8gZGVzZXJpYWxpemUgdmFsdWUgZGF0YSBmcm9tIGRhdGFiYXNlIHdoaWxlIGFkdmFuY2luZyBp
bmRleCBjdXJzb3IiKTsKICAgICAgICAgICAgIG1fY29tcGxldGVkID0gdHJ1ZTsKICAgICAgICAg
ICAgIG1fZXJyb3JlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9TUUxpdGVJREJDdXJzb3IuaCBiL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1cnNvci5oCmlu
ZGV4IDJiNGZkODkuLjQxNDQyMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1cnNvci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1cnNvci5o
CkBAIC01OSw3ICs1OSw2IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRh
JiBjdXJyZW50S2V5KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50S2V5OyB9CiAgICAgY29uc3Qg
V2ViQ29yZTo6SURCS2V5RGF0YSYgY3VycmVudFByaW1hcnlLZXkoKSBjb25zdCB7IHJldHVybiBt
X2N1cnJlbnRQcmltYXJ5S2V5OyB9CiAgICAgY29uc3QgVmVjdG9yPGNoYXI+JiBjdXJyZW50VmFs
dWVCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRWYWx1ZUJ1ZmZlcjsgfQotICAgIGNv
bnN0IFdlYkNvcmU6OklEQktleURhdGEmIGN1cnJlbnRWYWx1ZUtleSgpIGNvbnN0IHsgcmV0dXJu
IG1fY3VycmVudFZhbHVlS2V5OyB9CiAKICAgICBib29sIGFkdmFuY2UodWludDY0X3QgY291bnQp
OwogICAgIGJvb2wgaXRlcmF0ZShjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiB0YXJnZXRLZXkp
OwpAQCAtODUsNyArODQsNiBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OklEQktleURhdGEgbV9j
dXJyZW50S2V5OwogICAgIFdlYkNvcmU6OklEQktleURhdGEgbV9jdXJyZW50UHJpbWFyeUtleTsK
ICAgICBWZWN0b3I8Y2hhcj4gbV9jdXJyZW50VmFsdWVCdWZmZXI7Ci0gICAgV2ViQ29yZTo6SURC
S2V5RGF0YSBtX2N1cnJlbnRWYWx1ZUtleTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpTUUxpdGVTdGF0ZW1lbnQ+IG1fc3RhdGVtZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJh
Y2tpbmdTdG9yZVNRTGl0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5k
ZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAKaW5k
ZXggZTA1YTNmNi4uOGZhYTA3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxp
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3Fs
aXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcApAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIlNRTGl0ZUlEQkN1cnNvci5oIgogI2luY2x1ZGUgIlNRTGl0ZUlEQlRy
YW5zYWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9JREJCaW5kaW5nVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJEYXRh
YmFzZU1ldGFkYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJHZXRSZXN1bHQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0lEQktleURhdGEuaD4KQEAgLTg3NSw3ICs4NzYsNyBAQCBib29sIFVuaXF1
ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpnZXRJbmRleFJlY29yZChjb25zdCBJREJJ
ZGVudGlmaWVyJiB0cgogICAgIG1fY3Vyc29ycy5zZXQoY3Vyc29yLT5pZGVudGlmaWVyKCksIGN1
cnNvcik7CiAKICAgICByZXN1bHQgPSBJREJHZXRSZXN1bHQoU2hhcmVkQnVmZmVyOjpjcmVhdGUo
Y3Vyc29yLT5jdXJyZW50VmFsdWVCdWZmZXIoKS5kYXRhKCksIGN1cnNvci0+Y3VycmVudFZhbHVl
QnVmZmVyKCkuc2l6ZSgpKSk7Ci0gICAgcmVzdWx0LmtleURhdGEgPSBjdXJzb3ItPmN1cnJlbnRW
YWx1ZUtleSgpOworICAgIHJlc3VsdC5rZXlEYXRhID0gY3Vyc29yLT5jdXJyZW50UHJpbWFyeUtl
eSgpOwogCiAgICAgLy8gQ2xvc2luZyB0aGUgY3Vyc29yIHdpbGwgZGVzdHJveSB0aGUgY3Vyc29y
IG9iamVjdCBhbmQgcmVtb3ZlIGl0IGZyb20gb3VyIGN1cnNvciBzZXQuCiAgICAgdHJhbnNhY3Rp
b24tPmNsb3NlQ3Vyc29yKCpjdXJzb3IpOwpAQCAtMTEzNSw3ICsxMTM2LDcgQEAgYm9vbCBVbmlx
dWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6Y291bnQoY29uc3QgSURCSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb24KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBVbmlxdWVJREJEYXRh
YmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6b3BlbkN1cnNvcihjb25zdCBJREJJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgaW50NjRfdCBpbmRl
eElELCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBjdXJzb3JEaXJlY3Rpb24sIEluZGV4ZWRE
Qjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBJREJEYXRhYmFzZUJhY2tlbmQ6OlRhc2tUeXBlIHRh
c2tUeXBlLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlLCBpbnQ2NF90JiBjdXJzb3JJ
RCwgSURCS2V5RGF0YSYga2V5LCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBWZWN0b3I8Y2hhcj4m
IHZhbHVlQnVmZmVyLCBJREJLZXlEYXRhJiB2YWx1ZUtleSkKK2Jvb2wgVW5pcXVlSURCRGF0YWJh
c2VCYWNraW5nU3RvcmVTUUxpdGU6Om9wZW5DdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJ
RCwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gY3Vyc29yRGlyZWN0aW9uLCBJbmRleGVkREI6
OkN1cnNvclR5cGUgY3Vyc29yVHlwZSwgSURCRGF0YWJhc2VCYWNrZW5kOjpUYXNrVHlwZSB0YXNr
VHlwZSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZSwgaW50NjRfdCYgY3Vyc29ySUQs
IElEQktleURhdGEmIGtleSwgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwgVmVjdG9yPGNoYXI+JiB2
YWx1ZUJ1ZmZlcikKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQo
bV9zcWxpdGVEQik7CkBAIC0xMTU2LDEyICsxMTU3LDExIEBAIGJvb2wgVW5pcXVlSURCRGF0YWJh
c2VCYWNraW5nU3RvcmVTUUxpdGU6Om9wZW5DdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgdHJh
bnNhCiAgICAga2V5ID0gY3Vyc29yLT5jdXJyZW50S2V5KCk7CiAgICAgcHJpbWFyeUtleSA9IGN1
cnNvci0+Y3VycmVudFByaW1hcnlLZXkoKTsKICAgICB2YWx1ZUJ1ZmZlciA9IGN1cnNvci0+Y3Vy
cmVudFZhbHVlQnVmZmVyKCk7Ci0gICAgdmFsdWVLZXkgPSBjdXJzb3ItPmN1cnJlbnRWYWx1ZUtl
eSgpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNr
aW5nU3RvcmVTUUxpdGU6OmFkdmFuY2VDdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgY3Vyc29y
SWRlbnRpZmllciwgdWludDY0X3QgY291bnQsIElEQktleURhdGEmIGtleSwgSURCS2V5RGF0YSYg
cHJpbWFyeUtleSwgVmVjdG9yPGNoYXI+JiB2YWx1ZUJ1ZmZlciwgSURCS2V5RGF0YSYgdmFsdWVL
ZXkpCitib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjphZHZhbmNlQ3Vy
c29yKGNvbnN0IElEQklkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIHVpbnQ2NF90IGNvdW50
LCBJREJLZXlEYXRhJiBrZXksIElEQktleURhdGEmIHByaW1hcnlLZXksIFZlY3RvcjxjaGFyPiYg
dmFsdWVCdWZmZXIpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJU
KG1fc3FsaXRlREIpOwpAQCAtMTE4NSwxMiArMTE4NSwxMSBAQCBib29sIFVuaXF1ZUlEQkRhdGFi
YXNlQmFja2luZ1N0b3JlU1FMaXRlOjphZHZhbmNlQ3Vyc29yKGNvbnN0IElEQklkZW50aWZpZXIm
IGN1cgogICAgIGtleSA9IGN1cnNvci0+Y3VycmVudEtleSgpOwogICAgIHByaW1hcnlLZXkgPSBj
dXJzb3ItPmN1cnJlbnRQcmltYXJ5S2V5KCk7CiAgICAgdmFsdWVCdWZmZXIgPSBjdXJzb3ItPmN1
cnJlbnRWYWx1ZUJ1ZmZlcigpOwotICAgIHZhbHVlS2V5ID0gY3Vyc29yLT5jdXJyZW50VmFsdWVL
ZXkoKTsKIAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFj
a2luZ1N0b3JlU1FMaXRlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQklkZW50aWZpZXImIGN1cnNv
cklkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmIHRhcmdldEtleSwgSURCS2V5RGF0YSYga2V5
LCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBWZWN0b3I8Y2hhcj4mIHZhbHVlQnVmZmVyLCBJREJL
ZXlEYXRhJiB2YWx1ZUtleSkKK2Jvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxp
dGU6Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwg
Y29uc3QgSURCS2V5RGF0YSYgdGFyZ2V0S2V5LCBJREJLZXlEYXRhJiBrZXksIElEQktleURhdGEm
IHByaW1hcnlLZXksIFZlY3RvcjxjaGFyPiYgdmFsdWVCdWZmZXIpCiB7CiAgICAgQVNTRVJUKCFp
c01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fc3FsaXRlREIpOwpAQCAtMTIxNCw3ICsxMjEz
LDYgQEAgYm9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6aXRlcmF0ZUN1
cnNvcihjb25zdCBJREJJZGVudGlmaWVyJiBjdXIKICAgICBrZXkgPSBjdXJzb3ItPmN1cnJlbnRL
ZXkoKTsKICAgICBwcmltYXJ5S2V5ID0gY3Vyc29yLT5jdXJyZW50UHJpbWFyeUtleSgpOwogICAg
IHZhbHVlQnVmZmVyID0gY3Vyc29yLT5jdXJyZW50VmFsdWVCdWZmZXIoKTsKLSAgICB2YWx1ZUtl
eSA9IGN1cnNvci0+Y3VycmVudFZhbHVlS2V5KCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRl
L1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdT
dG9yZVNRTGl0ZS5oCmluZGV4IDg4YTdkYTkuLjg5ZGEyOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNl
QmFja2luZ1N0b3JlU1FMaXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuaApA
QCAtODIsOSArODIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldEtleVJhbmdlUmVj
b3JkRnJvbU9iamVjdFN0b3JlKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZSYs
IFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiByZXN1bHQsIFJlZlB0cjxXZWJDb3JlOjpJ
REJLZXk+JiByZXN1bHRLZXkpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjb3VudChjb25z
dCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJRCwgaW50NjRfdCBpbmRleElELCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmLCBp
bnQ2NF90JiBjb3VudCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgb3BlbkN1cnNvcihj
b25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0
U3RvcmVJRCwgaW50NjRfdCBpbmRleElELCBXZWJDb3JlOjpJbmRleGVkREI6OkN1cnNvckRpcmVj
dGlvbiwgV2ViQ29yZTo6SW5kZXhlZERCOjpDdXJzb3JUeXBlLCBXZWJDb3JlOjpJREJEYXRhYmFz
ZUJhY2tlbmQ6OlRhc2tUeXBlLCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmLCBpbnQ2
NF90JiBjdXJzb3JJRCwgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFdlYkNvcmU6OklEQktleURhdGEm
LCBWZWN0b3I8Y2hhcj4mLCBXZWJDb3JlOjpJREJLZXlEYXRhJikgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCBib29sIGFkdmFuY2VDdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRp
ZmllciwgdWludDY0X3QgY291bnQsIFdlYkNvcmU6OklEQktleURhdGEmLCBXZWJDb3JlOjpJREJL
ZXlEYXRhJiwgVmVjdG9yPGNoYXI+JiwgV2ViQ29yZTo6SURCS2V5RGF0YSYpIG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgYm9vbCBpdGVyYXRlQ3Vyc29yKGNvbnN0IElEQklkZW50aWZpZXImIGN1cnNv
cklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBXZWJDb3JlOjpJREJLZXlE
YXRhJiwgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFZlY3RvcjxjaGFyPiYsIFdlYkNvcmU6OklEQktl
eURhdGEmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgb3BlbkN1cnNvcihjb25zdCBJREJJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwg
aW50NjRfdCBpbmRleElELCBXZWJDb3JlOjpJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiwgV2Vi
Q29yZTo6SW5kZXhlZERCOjpDdXJzb3JUeXBlLCBXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmQ6
OlRhc2tUeXBlLCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmLCBpbnQ2NF90JiBjdXJz
b3JJRCwgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFdlYkNvcmU6OklEQktleURhdGEmLCBWZWN0b3I8
Y2hhcj4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgYWR2YW5jZUN1cnNvcihjb25zdCBJ
REJJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCB1aW50NjRfdCBjb3VudCwgV2ViQ29yZTo6
SURCS2V5RGF0YSYsIFdlYkNvcmU6OklEQktleURhdGEmLCBWZWN0b3I8Y2hhcj4mKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXRlcmF0ZUN1cnNvcihjb25zdCBJREJJZGVudGlmaWVyJiBj
dXJzb3JJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgV2ViQ29yZTo6SURC
S2V5RGF0YSYsIFdlYkNvcmU6OklEQktleURhdGEmLCBWZWN0b3I8Y2hhcj4mKSBvdmVycmlkZTsK
IAogICAgIHZvaWQgdW5yZWdpc3RlckN1cnNvcihTUUxpdGVJREJDdXJzb3IqKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QlNlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IDc0ZTkyZjAuLjAx
Yzk2MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0lu
ZGV4ZWREQi9XZWJJREJTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5jcHAK
QEAgLTQ0NCw3ICs0NDQsNyBAQCB2b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZEdldFJl
Y29yZCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OklEQgogICAgIHNlcnZlclJl
cXVlc3QtPmNvbXBsZXRlUmVxdWVzdChnZXRSZXN1bHQsIGVycm9yQ29kZSA/IElEQkRhdGFiYXNl
RXJyb3I6OmNyZWF0ZShlcnJvckNvZGUsIGVycm9yTWVzc2FnZSkgOiBudWxscHRyKTsKIH0KIAot
dm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpkaWRPcGVuQ3Vyc29yKHVpbnQ2NF90IHJlcXVl
c3RJRCwgaW50NjRfdCBjdXJzb3JJRCwgY29uc3QgSURCS2V5RGF0YSYga2V5LCBjb25zdCBJREJL
ZXlEYXRhJiBwcmltYXJ5S2V5LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHZhbHVlRGF0YSwg
Y29uc3QgSURCS2V5RGF0YSYgdmFsdWVLZXksIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3Ry
aW5nJiBlcnJvck1lc3NhZ2UpCit2b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZE9wZW5D
dXJzb3IodWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IGN1cnNvcklELCBjb25zdCBJREJLZXlE
YXRhJiBrZXksIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlLZXksIGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYgdmFsdWVEYXRhLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlKQogewogICAgIExPRyhJREIsICJXZWJQcm9jZXNzIGRpZE9wZW5DdXJzb3IgcmVx
dWVzdCBJRCAlbGx1IChlcnJvciAtICVzKSIsIHJlcXVlc3RJRCwgZXJyb3JNZXNzYWdlLnV0Zjgo
KS5kYXRhKCkpOwogCkBAIC00NTQsMTAgKzQ1NCwxMCBAQCB2b2lkIFdlYklEQlNlcnZlckNvbm5l
Y3Rpb246OmRpZE9wZW5DdXJzb3IodWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IGN1cnNvcklE
LAogICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSA9IFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKHZhbHVlRGF0YS5kYXRhKCksIHZhbHVlRGF0YS5zaXplKCkpOwot
ICAgIHNlcnZlclJlcXVlc3QtPmNvbXBsZXRlUmVxdWVzdChjdXJzb3JJRCwga2V5Lm1heWJlQ3Jl
YXRlSURCS2V5KCksIHByaW1hcnlLZXkubWF5YmVDcmVhdGVJREJLZXkoKSwgdmFsdWUucmVsZWFz
ZSgpLCB2YWx1ZUtleS5tYXliZUNyZWF0ZUlEQktleSgpLCBlcnJvckNvZGUgPyBJREJEYXRhYmFz
ZUVycm9yOjpjcmVhdGUoZXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UpIDogbnVsbHB0cik7CisgICAg
c2VydmVyUmVxdWVzdC0+Y29tcGxldGVSZXF1ZXN0KGN1cnNvcklELCBrZXkubWF5YmVDcmVhdGVJ
REJLZXkoKSwgcHJpbWFyeUtleS5tYXliZUNyZWF0ZUlEQktleSgpLCB2YWx1ZS5yZWxlYXNlKCks
IGVycm9yQ29kZSA/IElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShlcnJvckNvZGUsIGVycm9yTWVz
c2FnZSkgOiBudWxscHRyKTsKIH0KIAotdm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpkaWRB
ZHZhbmNlQ3Vyc29yKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgSURCS2V5RGF0YSYga2V5LCBj
b25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHZh
bHVlRGF0YSwgY29uc3QgSURCS2V5RGF0YSYgdmFsdWVLZXksIHVpbnQzMl90IGVycm9yQ29kZSwg
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCit2b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rpb246
OmRpZEFkdmFuY2VDdXJzb3IodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBJREJLZXlEYXRhJiBr
ZXksIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlLZXksIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5j
ZSYgdmFsdWVEYXRhLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNz
YWdlKQogewogICAgIExPRyhJREIsICJXZWJQcm9jZXNzIGRpZEFkdmFuY2VDdXJzb3IgcmVxdWVz
dCBJRCAlbGx1IChlcnJvciAtICVzKSIsIHJlcXVlc3RJRCwgZXJyb3JNZXNzYWdlLnV0ZjgoKS5k
YXRhKCkpOwogCkBAIC00NjcsMTAgKzQ2NywxMCBAQCB2b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rp
b246OmRpZEFkdmFuY2VDdXJzb3IodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBJREJLZXlEYQog
ICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSA9IFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKHZhbHVlRGF0YS5kYXRhKCksIHZhbHVlRGF0YS5zaXplKCkpOwotICAg
IHNlcnZlclJlcXVlc3QtPmNvbXBsZXRlUmVxdWVzdChrZXkubWF5YmVDcmVhdGVJREJLZXkoKSwg
cHJpbWFyeUtleS5tYXliZUNyZWF0ZUlEQktleSgpLCB2YWx1ZS5yZWxlYXNlKCksIHZhbHVlS2V5
Lm1heWJlQ3JlYXRlSURCS2V5KCksIGVycm9yQ29kZSA/IElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0
ZShlcnJvckNvZGUsIGVycm9yTWVzc2FnZSkgOiBudWxscHRyKTsKKyAgICBzZXJ2ZXJSZXF1ZXN0
LT5jb21wbGV0ZVJlcXVlc3Qoa2V5Lm1heWJlQ3JlYXRlSURCS2V5KCksIHByaW1hcnlLZXkubWF5
YmVDcmVhdGVJREJLZXkoKSwgdmFsdWUucmVsZWFzZSgpLCBlcnJvckNvZGUgPyBJREJEYXRhYmFz
ZUVycm9yOjpjcmVhdGUoZXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UpIDogbnVsbHB0cik7CiB9CiAK
LXZvaWQgV2ViSURCU2VydmVyQ29ubmVjdGlvbjo6ZGlkSXRlcmF0ZUN1cnNvcih1aW50NjRfdCBy
ZXF1ZXN0SUQsIGNvbnN0IElEQktleURhdGEmIGtleSwgY29uc3QgSURCS2V5RGF0YSYgcHJpbWFy
eUtleSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiB2YWx1ZURhdGEsIGNvbnN0IElEQktleURh
dGEmIHZhbHVlS2V5LCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNz
YWdlKQordm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpkaWRJdGVyYXRlQ3Vyc29yKHVpbnQ2
NF90IHJlcXVlc3RJRCwgY29uc3QgSURCS2V5RGF0YSYga2V5LCBjb25zdCBJREJLZXlEYXRhJiBw
cmltYXJ5S2V5LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHZhbHVlRGF0YSwgdWludDMyX3Qg
ZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKICAgICBMT0coSURCLCAi
V2ViUHJvY2VzcyBkaWRJdGVyYXRlQ3Vyc29yIHJlcXVlc3QgSUQgJWxsdSAoZXJyb3IgLSAlcyki
LCByZXF1ZXN0SUQsIGVycm9yTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKIApAQCAtNDgwLDcgKzQ4
MCw3IEBAIHZvaWQgV2ViSURCU2VydmVyQ29ubmVjdGlvbjo6ZGlkSXRlcmF0ZUN1cnNvcih1aW50
NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQktleURhCiAgICAgICAgIHJldHVybjsKIAogICAgIFJl
ZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUodmFsdWVEYXRh
LmRhdGEoKSwgdmFsdWVEYXRhLnNpemUoKSk7Ci0gICAgc2VydmVyUmVxdWVzdC0+Y29tcGxldGVS
ZXF1ZXN0KGtleS5tYXliZUNyZWF0ZUlEQktleSgpLCBwcmltYXJ5S2V5Lm1heWJlQ3JlYXRlSURC
S2V5KCksIHZhbHVlLnJlbGVhc2UoKSwgdmFsdWVLZXkubWF5YmVDcmVhdGVJREJLZXkoKSwgZXJy
b3JDb2RlID8gSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKGVycm9yQ29kZSwgZXJyb3JNZXNzYWdl
KSA6IG51bGxwdHIpOworICAgIHNlcnZlclJlcXVlc3QtPmNvbXBsZXRlUmVxdWVzdChrZXkubWF5
YmVDcmVhdGVJREJLZXkoKSwgcHJpbWFyeUtleS5tYXliZUNyZWF0ZUlEQktleSgpLCB2YWx1ZS5y
ZWxlYXNlKCksIGVycm9yQ29kZSA/IElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShlcnJvckNvZGUs
IGVycm9yTWVzc2FnZSkgOiBudWxscHRyKTsKIH0KIAogdm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0
aW9uOjpjb3VudChJREJUcmFuc2FjdGlvbkJhY2tlbmQmIHRyYW5zYWN0aW9uLCBjb25zdCBDb3Vu
dE9wZXJhdGlvbiYgb3BlcmF0aW9uLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoaW50NjRfdCwgUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykKQEAgLTYyOCwxMiAr
NjI4LDEyIEBAIHZvaWQgV2ViSURCU2VydmVyQ29ubmVjdGlvbjo6ZGlkQ2hhbmdlRGF0YWJhc2VW
ZXJzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBzCiAgICAgc2VydmVyUmVxdWVzdC0+Y29t
cGxldGVSZXF1ZXN0KHN1Y2Nlc3MgPyBudWxscHRyIDogSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRl
KElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsICJVbmtub3duIGVycm9yIG9jY3Vy
ZWQgY2hhbmdpbmcgZGF0YWJhc2UgdmVyc2lvbiIpKTsKIH0KIAotdm9pZCBXZWJJREJTZXJ2ZXJD
b25uZWN0aW9uOjpvcGVuQ3Vyc29yKElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IE9wZW5D
dXJzb3JPcGVyYXRpb24mIG9wZXJhdGlvbiwgc3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3QsIFBh
c3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+
IGNvbXBsZXRpb25DYWxsYmFjaykKK3ZvaWQgV2ViSURCU2VydmVyQ29ubmVjdGlvbjo6b3BlbkN1
cnNvcihJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBPcGVuQ3Vyc29yT3BlcmF0aW9uJiBv
cGVyYXRpb24sIHN0ZDo6ZnVuY3Rpb248dm9pZChpbnQ2NF90LCBQYXNzUmVmUHRyPElEQktleT4s
IFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRy
PElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKQogewotICAgIFJlZlB0cjxB
c3luY1JlcXVlc3Q+IHNlcnZlclJlcXVlc3QgPSBBc3luY1JlcXVlc3RJbXBsPGludDY0X3QsIFBh
c3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPj46
OmNyZWF0ZShjb21wbGV0aW9uQ2FsbGJhY2spOworICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+IHNl
cnZlclJlcXVlc3QgPSBBc3luY1JlcXVlc3RJbXBsPGludDY0X3QsIFBhc3NSZWZQdHI8SURCS2V5
PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VFcnJvcj4+OjpjcmVhdGUoY29tcGxldGlvbkNhbGxiYWNrKTsKIAogICAg
IHNlcnZlclJlcXVlc3QtPnNldEFib3J0SGFuZGxlcihbY29tcGxldGlvbkNhbGxiYWNrXSgpIHsK
LSAgICAgICAgY29tcGxldGlvbkNhbGxiYWNrKDAsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIs
IG51bGxwdHIsIElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
VW5rbm93bkVycm9yLCAiVW5rbm93biBlcnJvciBvY2N1cmVkIG9wZW5pbmcgZGF0YWJhc2UgY3Vy
c29yIikpOworICAgICAgICBjb21wbGV0aW9uQ2FsbGJhY2soMCwgbnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpV
bmtub3duRXJyb3IsICJVbmtub3duIGVycm9yIG9jY3VyZWQgb3BlbmluZyBkYXRhYmFzZSBjdXJz
b3IiKSk7CiAgICAgfSk7CiAKICAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBzZXJ2ZXJSZXF1ZXN0
LT5yZXF1ZXN0SUQoKTsKQEAgLTY0NSwxMiArNjQ1LDEyIEBAIHZvaWQgV2ViSURCU2VydmVyQ29u
bmVjdGlvbjo6b3BlbkN1cnNvcihJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBPcGVuQ3Vy
c29yCiAgICAgc2VuZChNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6T3Bl
bkN1cnNvcihyZXF1ZXN0SUQsIG9wZXJhdGlvbi50cmFuc2FjdGlvbklEKCksIG9wZXJhdGlvbi5v
YmplY3RTdG9yZUlEKCksIG9wZXJhdGlvbi5pbmRleElEKCksIHN0YXRpY19jYXN0PGludDY0X3Q+
KG9wZXJhdGlvbi5kaXJlY3Rpb24oKSksIHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhdGlvbi5j
dXJzb3JUeXBlKCkpLCBzdGF0aWNfY2FzdDxpbnQ2NF90PihvcGVyYXRpb24udGFza1R5cGUoKSks
IG9wZXJhdGlvbi5rZXlSYW5nZSgpKSk7CiB9CiAKLXZvaWQgV2ViSURCU2VydmVyQ29ubmVjdGlv
bjo6Y3Vyc29yQWR2YW5jZShJREJDdXJzb3JCYWNrZW5kJiwgY29uc3QgQ3Vyc29yQWR2YW5jZU9w
ZXJhdGlvbiYgb3BlcmF0aW9uLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJLZXk+
LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgUGFzc1JlZlB0
cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxi
YWNrKQordm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpjdXJzb3JBZHZhbmNlKElEQkN1cnNv
ckJhY2tlbmQmLCBjb25zdCBDdXJzb3JBZHZhbmNlT3BlcmF0aW9uJiBvcGVyYXRpb24sIHN0ZDo6
ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFz
c1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29t
cGxldGlvbkNhbGxiYWNrKQogewotICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+IHNlcnZlclJlcXVl
c3QgPSBBc3luY1JlcXVlc3RJbXBsPFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJL
ZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUVycm9yPj46OmNyZWF0ZShjb21wbGV0aW9uQ2FsbGJhY2spOworICAg
IFJlZlB0cjxBc3luY1JlcXVlc3Q+IHNlcnZlclJlcXVlc3QgPSBBc3luY1JlcXVlc3RJbXBsPFBh
c3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4+OjpjcmVhdGUoY29tcGxldGlvbkNh
bGxiYWNrKTsKIAogICAgIHNlcnZlclJlcXVlc3QtPnNldEFib3J0SGFuZGxlcihbY29tcGxldGlv
bkNhbGxiYWNrXSgpIHsKLSAgICAgICAgY29tcGxldGlvbkNhbGxiYWNrKG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIsIElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCAiVW5rbm93biBlcnJvciBvY2N1cmVkIGFkdmFuY2lu
ZyBkYXRhYmFzZSBjdXJzb3IiKSk7CisgICAgICAgIGNvbXBsZXRpb25DYWxsYmFjayhudWxscHRy
LCBudWxscHRyLCBudWxscHRyLCBJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VF
eGNlcHRpb246OlVua25vd25FcnJvciwgIlVua25vd24gZXJyb3Igb2NjdXJlZCBhZHZhbmNpbmcg
ZGF0YWJhc2UgY3Vyc29yIikpOwogICAgIH0pOwogCiAgICAgdWludDY0X3QgcmVxdWVzdElEID0g
c2VydmVyUmVxdWVzdC0+cmVxdWVzdElEKCk7CkBAIC02NjIsMTIgKzY2MiwxMiBAQCB2b2lkIFdl
YklEQlNlcnZlckNvbm5lY3Rpb246OmN1cnNvckFkdmFuY2UoSURCQ3Vyc29yQmFja2VuZCYsIGNv
bnN0IEN1cnNvckFkdmFuYwogICAgIHNlbmQoTWVzc2FnZXM6OkRhdGFiYXNlUHJvY2Vzc0lEQkNv
bm5lY3Rpb246OkN1cnNvckFkdmFuY2UocmVxdWVzdElELCBvcGVyYXRpb24uY3Vyc29ySUQoKSwg
b3BlcmF0aW9uLmNvdW50KCkpKTsKIH0KIAotdm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpj
dXJzb3JJdGVyYXRlKElEQkN1cnNvckJhY2tlbmQmLCBjb25zdCBDdXJzb3JJdGVyYXRpb25PcGVy
YXRpb24mIG9wZXJhdGlvbiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCS2V5Piwg
UGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8
SURCS2V5PiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFj
aykKK3ZvaWQgV2ViSURCU2VydmVyQ29ubmVjdGlvbjo6Y3Vyc29ySXRlcmF0ZShJREJDdXJzb3JC
YWNrZW5kJiwgY29uc3QgQ3Vyc29ySXRlcmF0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24sIHN0ZDo6
ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFz
c1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29t
cGxldGlvbkNhbGxiYWNrKQogewotICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+IHNlcnZlclJlcXVl
c3QgPSBBc3luY1JlcXVlc3RJbXBsPFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJL
ZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUVycm9yPj46OmNyZWF0ZShjb21wbGV0aW9uQ2FsbGJhY2spOworICAg
IFJlZlB0cjxBc3luY1JlcXVlc3Q+IHNlcnZlclJlcXVlc3QgPSBBc3luY1JlcXVlc3RJbXBsPFBh
c3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4+OjpjcmVhdGUoY29tcGxldGlvbkNh
bGxiYWNrKTsKIAogICAgIHNlcnZlclJlcXVlc3QtPnNldEFib3J0SGFuZGxlcihbY29tcGxldGlv
bkNhbGxiYWNrXSgpIHsKLSAgICAgICAgY29tcGxldGlvbkNhbGxiYWNrKG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIsIElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCAiVW5rbm93biBlcnJvciBvY2N1cmVkIGl0ZXJhdGlu
ZyBkYXRhYmFzZSBjdXJzb3IiKSk7CisgICAgICAgIGNvbXBsZXRpb25DYWxsYmFjayhudWxscHRy
LCBudWxscHRyLCBudWxscHRyLCBJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VF
eGNlcHRpb246OlVua25vd25FcnJvciwgIlVua25vd24gZXJyb3Igb2NjdXJlZCBpdGVyYXRpbmcg
ZGF0YWJhc2UgY3Vyc29yIikpOwogICAgIH0pOwogCiAgICAgdWludDY0X3QgcmVxdWVzdElEID0g
c2VydmVyUmVxdWVzdC0+cmVxdWVzdElEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZl
ckNvbm5lY3Rpb24uaAppbmRleCAyYjIxOWQ0Li4yNDVlZWJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJTZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVJbmRleChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmQm
LCBjb25zdCBXZWJDb3JlOjpEZWxldGVJbmRleE9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9p
ZChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxi
YWNrKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0KFdlYkNvcmU6OklEQlRyYW5zYWN0
aW9uQmFja2VuZCYsIGNvbnN0IFdlYkNvcmU6OkdldE9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248
dm9pZChjb25zdCBXZWJDb3JlOjpJREJHZXRSZXN1bHQmLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklE
QkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgcHV0KFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IFdlYkNv
cmU6OlB1dE9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPFdlYkNvcmU6
OklEQktleT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0
aW9uQ2FsbGJhY2spIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKFdlYkNv
cmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IFdlYkNvcmU6Ok9wZW5DdXJzb3JPcGVy
YXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoaW50NjRfdCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJ
REJLZXk+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6
U2hhcmVkQnVmZmVyPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tl
bmQmLCBjb25zdCBXZWJDb3JlOjpPcGVuQ3Vyc29yT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2
b2lkKGludDY0X3QsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpJREJLZXk+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBjb3VudChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tl
bmQmLCBjb25zdCBXZWJDb3JlOjpDb3VudE9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChp
bnQ2NF90LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlv
bkNhbGxiYWNrKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUmFuZ2UoV2ViQ29y
ZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgV2ViQ29yZTo6RGVsZXRlUmFuZ2VPcGVy
YXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFz
ZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IGNsZWFyT2JqZWN0U3RvcmUoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3Qg
V2ViQ29yZTo6Q2xlYXJPYmplY3RTdG9yZU9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQ
YXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNr
KSBvdmVycmlkZTsKQEAgLTgwLDggKzgwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBj
aGFuZ2VEYXRhYmFzZVZlcnNpb24oV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29u
c3QgV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kOjpWZXJzaW9uQ2hhbmdlT3BlcmF0aW9uJiwg
c3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJvcj4p
PiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOwogCiAgICAgLy8gQ3Vyc29yLWxldmVsIG9w
ZXJhdGlvbnMKLSAgICB2aXJ0dWFsIHZvaWQgY3Vyc29yQWR2YW5jZShXZWJDb3JlOjpJREJDdXJz
b3JCYWNrZW5kJiwgY29uc3QgV2ViQ29yZTo6Q3Vyc29yQWR2YW5jZU9wZXJhdGlvbiYsIHN0ZDo6
ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6SURCS2V5PiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+LCBQYXNzUmVm
UHRyPFdlYkNvcmU6OklEQktleT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJv
cj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBjdXJz
b3JJdGVyYXRlKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmQmLCBjb25zdCBXZWJDb3JlOjpDdXJz
b3JJdGVyYXRpb25PcGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxXZWJD
b3JlOjpJREJLZXk+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6U2hhcmVkQnVmZmVyPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQYXNzUmVm
UHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3Vyc29yQWR2YW5jZShXZWJDb3JlOjpJREJDdXJzb3JC
YWNrZW5kJiwgY29uc3QgV2ViQ29yZTo6Q3Vyc29yQWR2YW5jZU9wZXJhdGlvbiYsIHN0ZDo6ZnVu
Y3Rpb248dm9pZChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6SURCS2V5PiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRy
PFdlYkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3Vyc29ySXRlcmF0ZShXZWJDb3JlOjpJREJDdXJzb3JCYWNr
ZW5kJiwgY29uc3QgV2ViQ29yZTo6Q3Vyc29ySXRlcmF0aW9uT3BlcmF0aW9uJiwgc3RkOjpmdW5j
dGlvbjx2b2lkKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpJREJLZXk+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8
V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRl
OwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGRpZFJlY2VpdmVXZWJJREJT
ZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJik7CkBAIC0xMTAsOSArMTEwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZERlbGV0ZUlu
ZGV4KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBzdWNjZXNzKTsKICAgICB2b2lkIGRpZFB1dFJl
Y29yZCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCB1aW50
MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKICAgICB2b2lkIGRp
ZEdldFJlY29yZCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OklEQkdldFJlc3Vs
dCYsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwotICAg
IHZvaWQgZGlkT3BlbkN1cnNvcih1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgY3Vyc29ySUQs
IGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwg
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIHVp
bnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwotICAgIHZvaWQg
ZGlkQWR2YW5jZUN1cnNvcih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OklEQktl
eURhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIHVpbnQzMl90IGVycm9yQ29kZSwgY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwotICAgIHZvaWQgZGlkSXRlcmF0ZUN1cnNvcih1aW50
NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBXZWJDb3Jl
OjpJREJLZXlEYXRhJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgV2ViQ29yZTo6
SURCS2V5RGF0YSYsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UpOworICAgIHZvaWQgZGlkT3BlbkN1cnNvcih1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3Qg
Y3Vyc29ySUQsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJL
ZXlEYXRhJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgdWludDMyX3QgZXJyb3JDb2RlLCBj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CisgICAgdm9pZCBkaWRBZHZhbmNlQ3Vyc29yKHVp
bnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IFdlYkNv
cmU6OklEQktleURhdGEmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCB1aW50MzJfdCBlcnJv
ckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKKyAgICB2b2lkIGRpZEl0ZXJhdGVD
dXJzb3IodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgY29u
c3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIHVpbnQz
Ml90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgZGlk
Q291bnQodWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IGNvdW50LCB1aW50MzJfdCBlcnJvckNv
ZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKICAgICB2b2lkIGRpZERlbGV0ZVJhbmdl
KHVpbnQ2NF90IHJlcXVlc3RJRCwgdWludDMyX3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0
YWJhc2VzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggOTI3MTBiMS4uNmU0ZjNiMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAg
LTM2LDEzICszNiwxNSBAQCBtZXNzYWdlcyAtPiBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uIExlZ2Fj
eVJlY2VpdmVyIHsKICAgICBEaWRDcmVhdGVPYmplY3RTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQs
IGJvb2wgc3VjY2VzcykKICAgICBEaWREZWxldGVPYmplY3RTdG9yZSh1aW50NjRfdCByZXF1ZXN0
SUQsIGJvb2wgc3VjY2VzcykKICAgICBEaWRDbGVhck9iamVjdFN0b3JlKHVpbnQ2NF90IHJlcXVl
c3RJRCwgYm9vbCBzdWNjZXNzKQorICAgIAogICAgIERpZENyZWF0ZUluZGV4KHVpbnQ2NF90IHJl
cXVlc3RJRCwgYm9vbCBzdWNjZXNzKQogICAgIERpZERlbGV0ZUluZGV4KHVpbnQ2NF90IHJlcXVl
c3RJRCwgYm9vbCBzdWNjZXNzKQorCiAgICAgRGlkUHV0UmVjb3JkKHVpbnQ2NF90IHJlcXVlc3RJ
RCwgV2ViQ29yZTo6SURCS2V5RGF0YSByZXN1bHRLZXksIHVpbnQzMl90IGVycm9yQ29kZSwgU3Ry
aW5nIGVycm9yTWVzc2FnZSkKICAgICBEaWRHZXRSZWNvcmQodWludDY0X3QgcmVxdWVzdElELCBX
ZWJDb3JlOjpJREJHZXRSZXN1bHQgZ2V0UmVzdWx0LCB1aW50MzJfdCBlcnJvckNvZGUsIFN0cmlu
ZyBlcnJvck1lc3NhZ2UpCi0gICAgRGlkT3BlbkN1cnNvcih1aW50NjRfdCByZXF1ZXN0SUQsIGlu
dDY0X3QgY3Vyc29ySUQsIFdlYkNvcmU6OklEQktleURhdGEga2V5LCBXZWJDb3JlOjpJREJLZXlE
YXRhIHByaW1hcnlLZXksIElQQzo6RGF0YVJlZmVyZW5jZSB2YWx1ZSwgV2ViQ29yZTo6SURCS2V5
RGF0YSB2YWx1ZUtleSwgdWludDMyX3QgZXJyb3JDb2RlLCBTdHJpbmcgZXJyb3JNZXNzYWdlKQot
ICAgIERpZEFkdmFuY2VDdXJzb3IodWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpJREJLZXlE
YXRhIGtleSwgV2ViQ29yZTo6SURCS2V5RGF0YSBwcmltYXJ5S2V5LCBJUEM6OkRhdGFSZWZlcmVu
Y2UgdmFsdWUsIFdlYkNvcmU6OklEQktleURhdGEgdmFsdWVLZXksIHVpbnQzMl90IGVycm9yQ29k
ZSwgU3RyaW5nIGVycm9yTWVzc2FnZSkKLSAgICBEaWRJdGVyYXRlQ3Vyc29yKHVpbnQ2NF90IHJl
cXVlc3RJRCwgV2ViQ29yZTo6SURCS2V5RGF0YSBrZXksIFdlYkNvcmU6OklEQktleURhdGEgcHJp
bWFyeUtleSwgSVBDOjpEYXRhUmVmZXJlbmNlIHZhbHVlLCBXZWJDb3JlOjpJREJLZXlEYXRhIHZh
bHVlS2V5LCB1aW50MzJfdCBlcnJvckNvZGUsIFN0cmluZyBlcnJvck1lc3NhZ2UpCisgICAgRGlk
T3BlbkN1cnNvcih1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgY3Vyc29ySUQsIFdlYkNvcmU6
OklEQktleURhdGEga2V5LCBXZWJDb3JlOjpJREJLZXlEYXRhIHByaW1hcnlLZXksIElQQzo6RGF0
YVJlZmVyZW5jZSB2YWx1ZSwgdWludDMyX3QgZXJyb3JDb2RlLCBTdHJpbmcgZXJyb3JNZXNzYWdl
KQorICAgIERpZEFkdmFuY2VDdXJzb3IodWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpJREJL
ZXlEYXRhIGtleSwgV2ViQ29yZTo6SURCS2V5RGF0YSBwcmltYXJ5S2V5LCBJUEM6OkRhdGFSZWZl
cmVuY2UgdmFsdWUsIHVpbnQzMl90IGVycm9yQ29kZSwgU3RyaW5nIGVycm9yTWVzc2FnZSkKKyAg
ICBEaWRJdGVyYXRlQ3Vyc29yKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6SURCS2V5RGF0
YSBrZXksIFdlYkNvcmU6OklEQktleURhdGEgcHJpbWFyeUtleSwgSVBDOjpEYXRhUmVmZXJlbmNl
IHZhbHVlLCB1aW50MzJfdCBlcnJvckNvZGUsIFN0cmluZyBlcnJvck1lc3NhZ2UpCiAgICAgRGlk
Q291bnQodWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IGNvdW50LCB1aW50MzJfdCBlcnJvckNv
ZGUsIFN0cmluZyBlcnJvck1lc3NhZ2UpCiAgICAgRGlkRGVsZXRlUmFuZ2UodWludDY0X3QgcmVx
dWVzdElELCB1aW50MzJfdCBlcnJvckNvZGUsIFN0cmluZyBlcnJvck1lc3NhZ2UpCiB9Cg==
</data>
<flag name="review"
          id="247443"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>