<?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>194513</bug_id>
          
          <creation_ts>2019-02-11 13:48:39 -0800</creation_ts>
          <short_desc>REGRESSION(r241272): Broke the Apple Internal build and the fix requires human intervention :( (Requested by dydz on #webkit).</short_desc>
          <delta_ts>2019-02-11 13:51:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>191446</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>dbates</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1504983</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-11 13:48:39 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/241272 broke the build:
Broke the Apple Internal build and the fix requires human intervention :( (Requested by dydz on #webkit).

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

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504988</commentid>
    <comment_count>2</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-02-11 13:51:04 -0800</bug_when>
    <thetext>Wrong commit!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>361710</attachid>
            <date>2019-02-11 13:48:49 -0800</date>
            <delta_ts>2019-02-11 13:50:50 -0800</delta_ts>
            <desc>ROLLOUT of r241272</desc>
            <filename>bug-194513-20190211134849.patch</filename>
            <type>text/plain</type>
            <size>107790</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxMjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE3ZmRiYzg0NDEzYzBh
ZmE5OTFlNjNjNDEyMjRiODgwODY0MmZmOS4uMmU5MmM1Y2Y3ZjJiMzUyMTUwNmY0M2VmMWY4NWVh
YmMwNjE3Yzc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTAyLTExICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjQxMjcyIGFuZCByMjQxMjcyLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NTEzCisKKyAgICAgICAgQnJva2UgdGhlIEFw
cGxlIEludGVybmFsIGJ1aWxkIGFuZCB0aGUgZml4IHJlcXVpcmVzIGh1bWFuCisgICAgICAgIGlu
dGVydmVudGlvbiA6KCAoUmVxdWVzdGVkIGJ5IGR5ZHogb24gI3dlYmtpdCkuCisKKyAgICAgICAg
UmV2ZXJ0ZWQgY2hhbmdlc2V0czoKKworICAgICAgICAiW2lPU10gTW91c2UvVG91Y2gvUG9pbnRl
ciBldmVudHMgYXJlIG1pc3NpbmcgbW9kaWZpZXIga2V5cyIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTQ0NgorICAgICAgICBodHRwczovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjQxMjcyCisKKyAgICAgICAgIltpT1NdIE1vdXNlL1RvdWNo
L1BvaW50ZXIgZXZlbnRzIGFyZSBtaXNzaW5nIG1vZGlmaWVyIGtleXMiCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0NDYKKyAgICAgICAgaHR0cHM6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI0MTI3MgorCiAyMDE5LTAyLTExICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU3RvcCB1c2lu
ZyBzZXREZWZlcnNMb2FkaW5nIGZyb20gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyYTQxNjhkMWZmMmI2
NGVkZGVhYTcxODM4YmU5Nzg2NmJlM2NkYzYyLi42MjM2ZGI1NmQwNTZhYmFlMTU4MWQwMzA5NWQ0
NTg4NDUxNGFiMTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTAyLTExICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjQxMjcyIGFuZCByMjQxMjcyLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NTEzCisKKyAgICAgICAgQnJva2UgdGhlIEFw
cGxlIEludGVybmFsIGJ1aWxkIGFuZCB0aGUgZml4IHJlcXVpcmVzIGh1bWFuCisgICAgICAgIGlu
dGVydmVudGlvbiA6KCAoUmVxdWVzdGVkIGJ5IGR5ZHogb24gI3dlYmtpdCkuCisKKyAgICAgICAg
UmV2ZXJ0ZWQgY2hhbmdlc2V0czoKKworICAgICAgICAiW2lPU10gTW91c2UvVG91Y2gvUG9pbnRl
ciBldmVudHMgYXJlIG1pc3NpbmcgbW9kaWZpZXIga2V5cyIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTQ0NgorICAgICAgICBodHRwczovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjQxMjcyCisKKyAgICAgICAgIltpT1NdIE1vdXNlL1RvdWNo
L1BvaW50ZXIgZXZlbnRzIGFyZSBtaXNzaW5nIG1vZGlmaWVyIGtleXMiCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0NDYKKyAgICAgICAgaHR0cHM6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI0MTI3MgorCiAyMDE5LTAyLTExICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IGludGVy
bmFsIGlPUyBidWlsZCBhZnRlciByMjQxMjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KaW5kZXggYTE3MWI5ZGIxZmQ0
ZjUwMzQ1NGQ0NmI0ZTg3ZmMxZjJmYjA0NjAyOS4uYmUyM2Y1NGMwNTkzMjQ2MDNhMTM5ZDk2YjUz
ZGIzZDc0NDhiMjg1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bs
YXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQpAQCAtOTUsNyArOTUsNiBAQCBwdWJsaWM6CiAg
ICAgICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBnbG9iYWxQb2ludEZvckV2ZW50KGV2ZW50KTsKICAg
ICAgICAgbV9idXR0b24gPSBMZWZ0QnV0dG9uOyAvLyBUaGlzIGhhcyBhbHdheXMgYmVlbiB0aGUg
TGVmdEJ1dHRvbiBvbiBpT1MuCiAgICAgICAgIG1fY2xpY2tDb3VudCA9IDE7IC8vIFRoaXMgaGFz
IGFsd2F5cyBiZWVuIDEgb24gaU9TLgotICAgICAgICBtX21vZGlmaWVycyA9IG1vZGlmaWVyc0Zv
ckV2ZW50KGV2ZW50KTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJF
dmVudC5oCmluZGV4IDNhMmYwYzljNGY0M2Y0YmJhMWM4ZjYyOWQxMGUzMmNmYWRkY2YxOGQuLjk3
NTE4ZGZmZDk4NTEwNmE4OTljZDcyOGM1MWE1ODU4NzgwYWYxNjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJFdmVudC5oCkBAIC0xMzksMTMgKzEzOSwxMCBAQCBXRUJDT1JFX0VYUE9S
VCBAaW50ZXJmYWNlIFdlYkV2ZW50IDogTlNPYmplY3QgewogICAgIEJPT0wgX3dhc0hhbmRsZWQ7
CiB9CiAKLS8vIERlcHJlY2F0ZWQuIFJlbW92ZSBvbmNlIFVJS2l0IGFkb3B0cyAtaW5pdFdpdGhN
b3VzZUV2ZW50VHlwZSB0YWtpbmcgbW9kaWZpZXJzLgogLSAoV2ViRXZlbnQgKilpbml0V2l0aE1v
dXNlRXZlbnRUeXBlOihXZWJFdmVudFR5cGUpdHlwZQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGltZVN0YW1wOihDRlRpbWVJbnRlcnZhbCl0aW1lU3RhbXAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsb2NhdGlvbjooQ0dQb2ludClwb2ludDsKIAotLSAoV2ViRXZlbnQgKilpbml0
V2l0aE1vdXNlRXZlbnRUeXBlOihXZWJFdmVudFR5cGUpdHlwZSB0aW1lU3RhbXA6KENGVGltZUlu
dGVydmFsKXRpbWVTdGFtcCBsb2NhdGlvbjooQ0dQb2ludClwb2ludCBtb2RpZmllcnM6KFdlYkV2
ZW50RmxhZ3MpbW9kaWZpZXJzOwotCiAtIChXZWJFdmVudCAqKWluaXRXaXRoU2Nyb2xsV2hlZWxF
dmVudFdpdGhUaW1lU3RhbXA6KENGVGltZUludGVydmFsKXRpbWVTdGFtcAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOihDR1BvaW50KXBvaW50CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsdGFYOihmbG9h
dClkZWx0YVgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVu
dC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5tbQppbmRleCA1NDQz
MTE3OTIxZThiZDY1OGI5OTliYjc4YzFjZGM2MDRiZDljYTc2Li4xZDVmNmE0NGZiNzBiOTEzZjhm
ZDE3MWE2OWQ5ODFkMmYwZGQ2YjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViRXZlbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkV2
ZW50Lm1tCkBAIC00OSwyMCArNDksMTkgQEAgdXNpbmcgV2ViQ29yZTo6d2luZG93c0tleUNvZGVG
b3JDaGFyQ29kZTsKIEBzeW50aGVzaXplIHRpbWVzdGFtcCA9IF90aW1lc3RhbXA7CiBAc3ludGhl
c2l6ZSB3YXNIYW5kbGVkID0gX3dhc0hhbmRsZWQ7CiAKLS0gKFdlYkV2ZW50ICopaW5pdFdpdGhN
b3VzZUV2ZW50VHlwZTooV2ViRXZlbnRUeXBlKXR5cGUgdGltZVN0YW1wOihDRlRpbWVJbnRlcnZh
bCl0aW1lU3RhbXAgbG9jYXRpb246KENHUG9pbnQpcG9pbnQKLXsKLSAgICByZXR1cm4gW3NlbGYg
aW5pdFdpdGhNb3VzZUV2ZW50VHlwZTp0eXBlIHRpbWVTdGFtcDp0aW1lU3RhbXAgbG9jYXRpb246
cG9pbnQgbW9kaWZpZXJzOjBdOwotfQotCi0tIChXZWJFdmVudCAqKWluaXRXaXRoTW91c2VFdmVu
dFR5cGU6KFdlYkV2ZW50VHlwZSl0eXBlIHRpbWVTdGFtcDooQ0ZUaW1lSW50ZXJ2YWwpdGltZVN0
YW1wIGxvY2F0aW9uOihDR1BvaW50KXBvaW50IG1vZGlmaWVyczooV2ViRXZlbnRGbGFncyltb2Rp
ZmllcnMKKy0gKFdlYkV2ZW50ICopaW5pdFdpdGhNb3VzZUV2ZW50VHlwZTooV2ViRXZlbnRUeXBl
KXR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVTdGFtcDooQ0ZUaW1lSW50ZXJ2
YWwpdGltZVN0YW1wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246KENHUG9p
bnQpcG9pbnQKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKICAg
ICAgICAgcmV0dXJuIG5pbDsKKyAgICAKICAgICBfdHlwZSA9IHR5cGU7CiAgICAgX3RpbWVzdGFt
cCA9IHRpbWVTdGFtcDsKKwogICAgIF9sb2NhdGlvbkluV2luZG93ID0gcG9pbnQ7Ci0gICAgX21v
ZGlmaWVyRmxhZ3MgPSBtb2RpZmllcnM7CisgICAgCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAppbmRleCAzOTEwYTQ4Yzc1
N2M1Nzg3NjAzNzFjYjViODc1YTRiYzA2ODYwNzhiLi4zYjdjZWRiMTVmNmQ2OTQ2Mzc1ZThkZDFj
NTdjZjcxYzY5ODg5OWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVX
ZWJUb3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViVG91Y2hF
dmVudC5oCkBAIC0yMywzNSArMjMsMjcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaWZu
ZGVmIE5hdGl2ZVdlYlRvdWNoRXZlbnRfaAorI2RlZmluZSBOYXRpdmVXZWJUb3VjaEV2ZW50X2gK
IAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAKKyNpbmNsdWRlICJXZWJFdmVudC5oIgorCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNpZiBkZWZpbmVkKF9fT0JKQ19fKQotI2luY2x1ZGUg
PFVJS2l0L1VJS2l0Lmg+CiBzdHJ1Y3QgX1VJV2ViVG91Y2hFdmVudDsKLSNlbmRpZgogI2VsaWYg
UExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPFdlYkNvcmUvR1VuaXF1ZVB0ckd0ay5oPgogI2VsaWYg
VVNFKExJQldQRSkKICNpbmNsdWRlIDx3cGUvd3BlLmg+CiAjZW5kaWYKIAotI2VuZGlmIC8vIEVO
QUJMRShUT1VDSF9FVkVOVFMpCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCi0jaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKLQogY2xhc3MgTmF0aXZlV2ViVG91Y2hFdmVudCA6IHB1YmxpYyBXZWJUb3Vj
aEV2ZW50IHsKIHB1YmxpYzoKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotI2lmIGRlZmluZWQo
X19PQkpDX18pCi0gICAgZXhwbGljaXQgTmF0aXZlV2ViVG91Y2hFdmVudChjb25zdCBfVUlXZWJU
b3VjaEV2ZW50KiwgVUlLZXlNb2RpZmllckZsYWdzKTsKLSNlbmRpZgorICAgIGV4cGxpY2l0IE5h
dGl2ZVdlYlRvdWNoRXZlbnQoY29uc3QgX1VJV2ViVG91Y2hFdmVudCopOwogI2VsaWYgUExBVEZP
Uk0oR1RLKQogICAgIE5hdGl2ZVdlYlRvdWNoRXZlbnQoR2RrRXZlbnQqLCBWZWN0b3I8V2ViUGxh
dGZvcm1Ub3VjaFBvaW50PiYmKTsKICAgICBOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IE5hdGl2
ZVdlYlRvdWNoRXZlbnQmKTsKQEAgLTY0LDcgKzU2LDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHBy
aXZhdGU6Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgZGVmaW5lZChfX09CSkNfXykKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+
IGV4dHJhY3RXZWJUb3VjaFBvaW50KGNvbnN0IF9VSVdlYlRvdWNoRXZlbnQqKTsKICNlbmRpZgog
CkBAIC03NSwxMCArNjcsOCBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi0jZW5kaWYgLy8gRU5B
QkxFKFRPVUNIX0VWRU5UUykKK30gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgZGVmaW5lZChfX09CSkNfXykKLU9wdGlvblNldDxXZWJFdmVudDo6TW9k
aWZpZXI+IHdlYkV2ZW50TW9kaWZpZXJGbGFncyhVSUtleU1vZGlmaWVyRmxhZ3MpOwotI2VuZGlm
CisjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5UUykKIAotfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisjZW5kaWYgLy8gTmF0aXZlV2ViVG91Y2hFdmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50SU9TLm1tCmluZGV4IDMyM2M5ZWMwMzI1NWFj
YzllYzZiZGFhM2YwNTVjNmQyMDIyN2RhMjEuLjk5NWY2NDBjZjczNjVmYTI2YWM5YzNlNTE3Y2Yz
YmU4ZjI0YzI2ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVX
ZWJUb3VjaEV2ZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVX
ZWJUb3VjaEV2ZW50SU9TLm1tCkBAIC0yNiwxNyArMjYsMTYgQEAKICNpbXBvcnQgImNvbmZpZy5o
IgogI2ltcG9ydCAiTmF0aXZlV2ViVG91Y2hFdmVudC5oIgogCi0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQog
CiAjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgPFVJ
S2l0L1VJVG91Y2guaD4KICNpbXBvcnQgPFdlYkNvcmUvSW50UG9pbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvV0FLQXBwS2l0U3R1YnMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLSNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQotCiBzdGF0aWMgaW5saW5lIFdlYkV2ZW50OjpUeXBlIHdlYkV2ZW50
VHlwZUZvclVJV2ViVG91Y2hFdmVudFR5cGUoVUlXZWJUb3VjaEV2ZW50VHlwZSB0eXBlKQogewog
ICAgIHN3aXRjaCAodHlwZSkgewpAQCAtMTE4LDEwICsxMTcsMTAgQEAgVmVjdG9yPFdlYlBsYXRm
b3JtVG91Y2hQb2ludD4gTmF0aXZlV2ViVG91Y2hFdmVudDo6ZXh0cmFjdFdlYlRvdWNoUG9pbnQo
Y29uc3QgX1UKICAgICByZXR1cm4gdG91Y2hQb2ludExpc3Q7CiB9CiAKLU5hdGl2ZVdlYlRvdWNo
RXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoY29uc3QgX1VJV2ViVG91Y2hFdmVudCogZXZlbnQs
IFVJS2V5TW9kaWZpZXJGbGFncyBmbGFncykKK05hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdl
YlRvdWNoRXZlbnQoY29uc3QgX1VJV2ViVG91Y2hFdmVudCogZXZlbnQpCiAgICAgOiBXZWJUb3Vj
aEV2ZW50KAogICAgICAgICB3ZWJFdmVudFR5cGVGb3JVSVdlYlRvdWNoRXZlbnRUeXBlKGV2ZW50
LT50eXBlKSwKLSAgICAgICAgd2ViRXZlbnRNb2RpZmllckZsYWdzKGZsYWdzKSwKKyAgICAgICAg
T3B0aW9uU2V0PE1vZGlmaWVyPiB7IH0sCiAgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhldmVudC0+dGltZXN0YW1wKSwKICAgICAgICAgZXh0cmFjdFdlYlRvdWNoUG9pbnQoZXZlbnQp
LAogICAgICAgICBwb3NpdGlvbkZvckNHUG9pbnQoZXZlbnQtPmxvY2F0aW9uSW5Eb2N1bWVudENv
b3JkaW5hdGVzKSwKQEAgLTEzNiwyNCArMTM1LDYgQEAgTmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0
aXZlV2ViVG91Y2hFdmVudChjb25zdCBfVUlXZWJUb3VjaEV2ZW50KiBldmVudCwgVUlLZXlNb2QK
IHsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0KLU9wdGlvblNldDxXZWJF
dmVudDo6TW9kaWZpZXI+IHdlYkV2ZW50TW9kaWZpZXJGbGFncyhVSUtleU1vZGlmaWVyRmxhZ3Mg
ZmxhZ3MpCi17Ci0gICAgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzOwot
ICAgIGlmIChmbGFncyAmIFVJS2V5TW9kaWZpZXJTaGlmdCkKLSAgICAgICAgbW9kaWZpZXJzLmFk
ZChXZWJFdmVudDo6TW9kaWZpZXI6OlNoaWZ0S2V5KTsKLSAgICBpZiAoZmxhZ3MgJiBVSUtleU1v
ZGlmaWVyQ29udHJvbCkKLSAgICAgICAgbW9kaWZpZXJzLmFkZChXZWJFdmVudDo6TW9kaWZpZXI6
OkNvbnRyb2xLZXkpOwotICAgIGlmIChmbGFncyAmIFVJS2V5TW9kaWZpZXJBbHRlcm5hdGUpCi0g
ICAgICAgIG1vZGlmaWVycy5hZGQoV2ViRXZlbnQ6Ok1vZGlmaWVyOjpBbHRLZXkpOwotICAgIGlm
IChmbGFncyAmIFVJS2V5TW9kaWZpZXJDb21tYW5kKQotICAgICAgICBtb2RpZmllcnMuYWRkKFdl
YkV2ZW50OjpNb2RpZmllcjo6TWV0YUtleSk7Ci0gICAgaWYgKGZsYWdzICYgVUlLZXlNb2RpZmll
ckFscGhhU2hpZnQpCi0gICAgICAgIG1vZGlmaWVycy5hZGQoV2ViRXZlbnQ6Ok1vZGlmaWVyOjpD
YXBzTG9ja0tleSk7Ci0gICAgcmV0dXJuIG1vZGlmaWVyczsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQorI2VuZGlmIC8vIFBMQVRG
T1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShUT1VDSF9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5LmgKaW5kZXggODU3OWMzMzRmYWMyMjcwNzA3
OWFmMmZhM2ZkOTQ0MTM1MzIzOTZhMy4uYWI5OGQ4ZmMwZDhlMWIyZDg0YTNlYmQ3MWJhZjdkYWIw
ZWUyMWQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYklPU0V2ZW50
RmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3Rv
cnkuaApAQCAtMjMsMjAgKzIzLDIwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAotI3ByYWdtYSBvbmNlCisjaWZuZGVmIFdlYklPU0V2ZW50RmFjdG9yeV9oCisj
ZGVmaW5lIFdlYklPU0V2ZW50RmFjdG9yeV9oCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
CiAjaW1wb3J0ICJXZWJFdmVudC5oIgotI2ltcG9ydCA8VUlLaXQvVUlLaXQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvV2ViRXZlbnQuaD4KIAogY2xhc3MgV2ViSU9TRXZlbnRGYWN0b3J5IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50IGNyZWF0ZVdlYktleWJvYXJk
RXZlbnQoOjpXZWJFdmVudCAqKTsKICAgICBzdGF0aWMgV2ViS2l0OjpXZWJNb3VzZUV2ZW50IGNy
ZWF0ZVdlYk1vdXNlRXZlbnQoOjpXZWJFdmVudCAqKTsKLQotICAgIHN0YXRpYyBVSUtleU1vZGlm
aWVyRmxhZ3MgdG9VSUtleU1vZGlmaWVyRmxhZ3MoT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6
Ok1vZGlmaWVyPik7CiB9OwogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2Vu
ZGlmIC8vIFdlYklPU0V2ZW50RmFjdG9yeV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L1dlYklPU0V2ZW50RmFjdG9yeS5tbQppbmRleCAyNWMxNmVjMjI1MmQ0NTA2OTRjYzgyMzc0OTU3
MWVkMjBmYmQwYTQ3Li44NGE3YTVhNGRiZjAxMmUyMjJiZDM4NmVhZTAxYzZmNmQyNGQxNWFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0KQEAg
LTMxLDIyICszMSw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL0tleUV2ZW50Q29kZXNJT1MuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MuaD4KIAotVUlLZXlNb2RpZmll
ckZsYWdzIFdlYklPU0V2ZW50RmFjdG9yeTo6dG9VSUtleU1vZGlmaWVyRmxhZ3MoT3B0aW9uU2V0
PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMpCi17Ci0gICAgVUlLZXlNb2Rp
ZmllckZsYWdzIG1vZGlmaWVyRmxhZ3MgPSAwOwotICAgIGlmIChtb2RpZmllcnMuY29udGFpbnMo
V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI6OlNoaWZ0S2V5KSkKLSAgICAgICAgbW9kaWZpZXJG
bGFncyB8PSBVSUtleU1vZGlmaWVyU2hpZnQ7Ci0gICAgaWYgKG1vZGlmaWVycy5jb250YWlucyhX
ZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcjo6Q29udHJvbEtleSkpCi0gICAgICAgIG1vZGlmaWVy
RmxhZ3MgfD0gVUlLZXlNb2RpZmllckNvbnRyb2w7Ci0gICAgaWYgKG1vZGlmaWVycy5jb250YWlu
cyhXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcjo6QWx0S2V5KSkKLSAgICAgICAgbW9kaWZpZXJG
bGFncyB8PSBVSUtleU1vZGlmaWVyQWx0ZXJuYXRlOwotICAgIGlmIChtb2RpZmllcnMuY29udGFp
bnMoV2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI6Ok1ldGFLZXkpKQotICAgICAgICBtb2RpZmll
ckZsYWdzIHw9IFVJS2V5TW9kaWZpZXJDb21tYW5kOwotICAgIGlmIChtb2RpZmllcnMuY29udGFp
bnMoV2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKLSAgICAgICAgbW9k
aWZpZXJGbGFncyB8PSBVSUtleU1vZGlmaWVyQWxwaGFTaGlmdDsKLSAgICByZXR1cm4gbW9kaWZp
ZXJGbGFnczsKLX0KLQogc3RhdGljIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmll
cj4gbW9kaWZpZXJzRm9yRXZlbnQoOjpXZWJFdmVudCAqZXZlbnQpCiB7CiAgICAgT3B0aW9uU2V0
PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5tbQppbmRl
eCA4ZWJiYTFmNWJjNTNjNjk3NDk4YjUxNGJiYjRlNmQ2YThkODM4NTcwLi40NGM4YmI2MDkyZWRh
YTEyY2EzZWNjOWM0N2RlNTEwZDZjZmI2ZDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24ubW0KQEAgLTM2LDEwICsz
Niw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jaW1wb3J0ICJXZWJJT1NFdmVu
dEZhY3RvcnkuaCIKLSNlbmRpZgotCiBAaW1wbGVtZW50YXRpb24gV0tOYXZpZ2F0aW9uQWN0aW9u
CiAKIHN0YXRpYyBXS05hdmlnYXRpb25UeXBlIHRvV0tOYXZpZ2F0aW9uVHlwZShXZWJDb3JlOjpO
YXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSkKQEAgLTEzMSw3ICsxMjcsNiBAQCBzdGF0aWMg
V0tTeW50aGV0aWNDbGlja1R5cGUgdG9XS1N5bnRoZXRpY0NsaWNrVHlwZShXZWJLaXQ6OldlYk1v
dXNlRXZlbnQ6OlN5bnRoZQogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0KIC0gKE5TRXZl
bnRNb2RpZmllckZsYWdzKW1vZGlmaWVyRmxhZ3MKIHsKICAgICByZXR1cm4gV2ViS2l0OjpXZWJF
dmVudEZhY3Rvcnk6OnRvTlNFdmVudE1vZGlmaWVyRmxhZ3MoX25hdmlnYXRpb25BY3Rpb24tPm1v
ZGlmaWVycygpKTsKQEAgLTE0MSwxNCArMTM2LDYgQEAgc3RhdGljIFdLU3ludGhldGljQ2xpY2tU
eXBlIHRvV0tTeW50aGV0aWNDbGlja1R5cGUoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpTeW50aGUK
IHsKICAgICByZXR1cm4gV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OnRvTlNCdXR0b25OdW1iZXIo
X25hdmlnYXRpb25BY3Rpb24tPm1vdXNlQnV0dG9uKCkpOwogfQotCi0jZWxzZQotCi0tIChVSUtl
eU1vZGlmaWVyRmxhZ3MpbW9kaWZpZXJGbGFncwotewotICAgIHJldHVybiBXZWJJT1NFdmVudEZh
Y3Rvcnk6OnRvVUlLZXlNb2RpZmllckZsYWdzKF9uYXZpZ2F0aW9uQWN0aW9uLT5tb2RpZmllcnMo
KSk7Ci19Ci0KICNlbmRpZgogCiAjcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVt
ZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oCmluZGV4IGFkNzQyMmYyYjc1NzE1YTRj
ZGVjODljODI2ZWZkNjcwN2I2ZTc1ZWUuLjVkZjdhZTBkNTA5MTU1ODcwZmJiOGUxMDY2ZjNmZmNk
MjJhMTk3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaApAQCAtMzEsOCArMzEsNiBAQAog
QGNsYXNzIF9XS1VzZXJJbml0aWF0ZWRBY3Rpb247CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCi0j
aW5jbHVkZSA8VUlLaXQvVUlLaXQuaD4KLQogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tT
eW50aGV0aWNDbGlja1R5cGUpIHsKICAgICBXS1N5bnRoZXRpY0NsaWNrVHlwZU5vVGFwLAogICAg
IFdLU3ludGhldGljQ2xpY2tUeXBlT25lRmluZ2VyVGFwLApAQCAtNTUsOCArNTMsNiBAQCB0eXBl
ZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS1N5bnRoZXRpY0NsaWNrVHlwZSkgewogI2lmIFRBUkdF
VF9PU19JUEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tTeW50aGV0aWND
bGlja1R5cGUgX3N5bnRoZXRpY0NsaWNrVHlwZSBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4wKSk7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUG9pbnQgX2NsaWNrTG9jYXRpb25J
blJvb3RWaWV3Q29vcmRpbmF0ZXMgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwotCi1AcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJS2V5TW9kaWZpZXJGbGFncyBtb2RpZmllckZs
YWdzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKICNlbmRpZgogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2lzUmVkaXJlY3QgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCAwYmEyOTM2Y2Y3NGM2ZGY4NWZiMGUxZTUzNDE0YWNjZmE3NzU0NTQ2Li5k
OTljMmFkYTRiNGQ2YzNhMzY3MzRmNDM0ZWQ5NTU1ZTQ4YThjMGJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtODAsNyArODAsNiBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvTGF5b3V0U2l6ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldENv
bnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1BsYXRmb3JtRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVu
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qb2ludGVySUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nj
cm9sbFR5cGVzLmg+CkBAIC02NzMsNyArNjcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzYWJs
ZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3NhcnkodWludDY0X3QgcmVxdWVzdElE
KTsKICAgICB2b2lkIGNvbnRlbnRTaXplQ2F0ZWdvcnlEaWRDaGFuZ2UoY29uc3QgU3RyaW5nJiBj
b250ZW50U2l6ZUNhdGVnb3J5KTsKICAgICB2b2lkIGdldFNlbGVjdGlvbkNvbnRleHQoV1RGOjpG
dW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYs
IENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKLSAgICB2b2lkIGhhbmRsZVR3b0ZpbmdlclRhcEF0
UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVu
dDo6TW9kaWZpZXI+LCB1aW50NjRfdCByZXF1ZXN0SUQpOworICAgIHZvaWQgaGFuZGxlVHdvRmlu
Z2VyVGFwQXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIHVpbnQ2NF90IHJlcXVlc3RJ
RCk7CiAgICAgdm9pZCBoYW5kbGVTdHlsdXNTaW5nbGVUYXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiwgdWludDY0X3QgcmVxdWVzdElEKTsKICAgICB2b2lkIHNldEZvcmNlQWx3YXlz
VXNlclNjYWxhYmxlKGJvb2wpOwogICAgIGJvb2wgZm9yY2VBbHdheXNVc2VyU2NhbGFibGUoKSBj
b25zdCB7IHJldHVybiBtX2ZvcmNlQWx3YXlzVXNlclNjYWxhYmxlOyB9CkBAIC0xMTcyLDEwICsx
MTcxLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxTdGFydFVzZXJUcmlnZ2VyZWRab29taW5n
KCk7CiAKICAgICB2b2lkIHBvdGVudGlhbFRhcEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYsIHVpbnQ2NF90JiByZXF1ZXN0SUQpOwotICAgIHZvaWQgY29tbWl0UG90ZW50aWFs
VGFwKE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4sIHVpbnQ2NF90IGxheWVy
VHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KTsKKyAgICB2b2lkIGNvbW1pdFBvdGVu
dGlhbFRhcCh1aW50NjRfdCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCk7
CiAgICAgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXAoKTsKICAgICB2b2lkIHRhcEhpZ2hsaWdodEF0
UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIHVpbnQ2NF90JiByZXF1ZXN0SUQp
OwotICAgIHZvaWQgaGFuZGxlVGFwKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBPcHRpb25T
ZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCB1aW50NjRfdCBsYXllclRyZWVUcmFuc2Fj
dGlvbklkQXRMYXN0VG91Y2hTdGFydCk7CisgICAgdm9pZCBoYW5kbGVUYXAoY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYsIHVpbnQ2NF90IGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3Vj
aFN0YXJ0KTsKIAogICAgIHZvaWQgaW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbihj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CiAgICAgdm9pZCBpbnNwZWN0b3JOb2RlU2VhcmNo
RW5kZWRBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApp
bmRleCA5MTg5ZWJkY2Y1OWFhMTM1M2I0NDI0ZWYzNzU0Y2JiMTA1ZjIyYjBkLi40NGM2YmY3ZDdl
MDA5ZWM2OWEwY2Q2YjZmOTQ5MDdhYTJmN2Y4OWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC00MDYsNyAr
NDA2LDcgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dL
Q09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpX3VwZGF0ZUNoYW5nZWRT
ZWxlY3Rpb247CiAtIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooOjpXZWJFdmVudCAqKXRoZUV2
ZW50IGlzQ2hhckV2ZW50OihCT09MKWlzQ2hhckV2ZW50OwogLSAodm9pZClfcG9zaXRpb25JbmZv
cm1hdGlvbkRpZENoYW5nZTooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbiYpaW5mbzsKLS0gKHZvaWQpX2F0dGVtcHRDbGlja0F0TG9jYXRpb246KENHUG9pbnQp
bG9jYXRpb24gbW9kaWZpZXJGbGFnczooVUlLZXlNb2RpZmllckZsYWdzKW1vZGlmaWVyRmxhZ3M7
CistICh2b2lkKV9hdHRlbXB0Q2xpY2tBdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uOwogLSAo
dm9pZClfd2lsbFN0YXJ0U2Nyb2xsaW5nT3Jab29taW5nOwogLSAodm9pZClfZGlkU2Nyb2xsOwog
LSAodm9pZClfZGlkRW5kU2Nyb2xsaW5nT3Jab29taW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggMTgz
ODY3MjY2MzYzZGYxOGViNzhjYjlmZmM2ZTRmNzJiZDc3YWQ5MS4uNjgwMzY2NDU3NjA3ZTQwMmQ0
ZmRjZDQ3OTY0Zjg0ZWQ3MmQ1NDQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xMTYwLDExICsxMTYw
LDYgQEAgc3RhdGljIGlubGluZSBib29sIGhhc0ZvY3VzZWRFbGVtZW50KFdlYktpdDo6Rm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbiBmb2N1c2VkRWwKIH0KICNlbmRpZgogCi1pbmxpbmUgc3RhdGlj
IFVJS2V5TW9kaWZpZXJGbGFncyBnZXN0dXJlUmVjb2duaXplck1vZGlmaWVyRmxhZ3MoVUlHZXN0
dXJlUmVjb2duaXplciAqcmVjb2duaXplcikKLXsKLSAgICByZXR1cm4gW3JlY29nbml6ZXIgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfbW9kaWZpZXJGbGFncyldID8gcmVjb2duaXplci5t
b2RpZmllckZsYWdzIDogMDsKLX0KLQogLSAodm9pZClfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVk
OihVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgog
ewogICAgIGlmICghX3BhZ2UtPmlzVmFsaWQoKSkKQEAgLTExNzcsNyArMTE3Miw3IEBAIGlubGlu
ZSBzdGF0aWMgVUlLZXlNb2RpZmllckZsYWdzIGdlc3R1cmVSZWNvZ25pemVyTW9kaWZpZXJGbGFn
cyhVSUdlc3R1cmVSZWNvZ25pCiAgICAgICAgIF9sYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0
VG91Y2hTdGFydCA9IGRvd25jYXN0PFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eT4oKl9wYWdlLT5kcmF3aW5nQXJlYSgpKS5sYXN0Q29tbWl0dGVkTGF5ZXJUcmVlVHJhbnNh
Y3Rpb25JRCgpOwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICBXZWJLaXQ6Ok5hdGl2
ZVdlYlRvdWNoRXZlbnQgbmF0aXZlV2ViVG91Y2hFdmVudCB7IGxhc3RUb3VjaEV2ZW50LCBnZXN0
dXJlUmVjb2duaXplck1vZGlmaWVyRmxhZ3MoZ2VzdHVyZVJlY29nbml6ZXIpIH07CisgICAgV2Vi
S2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50IG5hdGl2ZVdlYlRvdWNoRXZlbnQobGFzdFRvdWNoRXZl
bnQpOwogICAgIG5hdGl2ZVdlYlRvdWNoRXZlbnQuc2V0Q2FuUHJldmVudE5hdGl2ZUdlc3R1cmVz
KCFfY2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3VzbHkgfHwgW2dlc3R1cmVSZWNvZ25pemVy
IGlzRGVmYXVsdFByZXZlbnRlZF0pOwogCiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQpAQCAt
MjA2MCw3ICsyMDU1LDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzU2FtZVBhaXIoVUlHZXN0dXJl
UmVjb2duaXplciAqYSwgVUlHZXN0dXJlUmVjb2duaXplciAqYiwgVUkKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVFbmRlZDoKICAgICAgICAgaWYgKF9o
aWdobGlnaHRMb25nUHJlc3NDYW5DbGljayAmJiBfcG9zaXRpb25JbmZvcm1hdGlvbi5pc0VsZW1l
bnQpIHsKLSAgICAgICAgICAgIFtzZWxmIF9hdHRlbXB0Q2xpY2tBdExvY2F0aW9uOmdlc3R1cmVS
ZWNvZ25pemVyLnN0YXJ0UG9pbnQgbW9kaWZpZXJGbGFnczpnZXN0dXJlUmVjb2duaXplck1vZGlm
aWVyRmxhZ3MoZ2VzdHVyZVJlY29nbml6ZXIpXTsKKyAgICAgICAgICAgIFtzZWxmIF9hdHRlbXB0
Q2xpY2tBdExvY2F0aW9uOltnZXN0dXJlUmVjb2duaXplciBzdGFydFBvaW50XV07CiAgICAgICAg
ICAgICBbc2VsZiBfZmluaXNoSW50ZXJhY3Rpb25dOwogICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgIFtzZWxmIF9jYW5jZWxJbnRlcmFjdGlvbl07CkBAIC0yMDc5LDcgKzIwNzQsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgaXNTYW1lUGFpcihVSUdlc3R1cmVSZWNvZ25pemVyICphLCBVSUdlc3R1
cmVSZWNvZ25pemVyICpiLCBVSQogewogICAgIF9pc1RhcEhpZ2hsaWdodElEVmFsaWQgPSBZRVM7
CiAgICAgX2lzRXhwZWN0aW5nRmFzdFNpbmdsZVRhcENvbW1pdCA9IFlFUzsKLSAgICBfcGFnZS0+
aGFuZGxlVHdvRmluZ2VyVGFwQXRQb2ludChXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQoZ2VzdHVy
ZVJlY29nbml6ZXIuY2VudHJvaWQpLCBXZWJLaXQ6OndlYkV2ZW50TW9kaWZpZXJGbGFncyhnZXN0
dXJlUmVjb2duaXplck1vZGlmaWVyRmxhZ3MoZ2VzdHVyZVJlY29nbml6ZXIpKSwgKytfbGF0ZXN0
VGFwSUQpOworICAgIF9wYWdlLT5oYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KFdlYkNvcmU6OnJv
dW5kZWRJbnRQb2ludChnZXN0dXJlUmVjb2duaXplci5jZW50cm9pZCksICsrX2xhdGVzdFRhcElE
KTsKIH0KIAogLSAodm9pZClfc3R5bHVzU2luZ2xlVGFwUmVjb2duaXplZDooVUlUYXBHZXN0dXJl
UmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCkBAIC0yMjAxLDcgKzIxOTYsNyBAQCBzdGF0
aWMgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXBJZk5lY2Vzc2FyeShXS0NvbnRlbnRWaWV3KiBjb250
ZW50VmlldykKICAgICB9CiAKICAgICBbX2lucHV0UGVyaXBoZXJhbCBlbmRFZGl0aW5nXTsKLSAg
ICBfcGFnZS0+Y29tbWl0UG90ZW50aWFsVGFwKFdlYktpdDo6d2ViRXZlbnRNb2RpZmllckZsYWdz
KGdlc3R1cmVSZWNvZ25pemVyTW9kaWZpZXJGbGFncyhnZXN0dXJlUmVjb2duaXplcikpLCBfbGF5
ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpOworICAgIF9wYWdlLT5jb21taXRQ
b3RlbnRpYWxUYXAoX2xheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KTsKIAog
ICAgIGlmICghX2lzRXhwZWN0aW5nRmFzdFNpbmdsZVRhcENvbW1pdCkKICAgICAgICAgW3NlbGYg
X2ZpbmlzaEludGVyYWN0aW9uXTsKQEAgLTIyMzQsNyArMjIyOSw3IEBAIHN0YXRpYyB2b2lkIGNh
bmNlbFBvdGVudGlhbFRhcElmTmVjZXNzYXJ5KFdLQ29udGVudFZpZXcqIGNvbnRlbnRWaWV3KQog
ICAgIF9zbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLT5oYW5kbGVSZXNldE1hZ25pZmljYXRp
b25HZXN0dXJlKGdlc3R1cmVSZWNvZ25pemVyLmxvY2F0aW9uKTsKIH0KIAotLSAodm9pZClfYXR0
ZW1wdENsaWNrQXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbiBtb2RpZmllckZsYWdzOihVSUtl
eU1vZGlmaWVyRmxhZ3MpbW9kaWZpZXJGbGFncworLSAodm9pZClfYXR0ZW1wdENsaWNrQXRMb2Nh
dGlvbjooQ0dQb2ludClsb2NhdGlvbgogewogICAgIGlmICghW3NlbGYgaXNGaXJzdFJlc3BvbmRl
cl0pIHsKICAgICAgICAgaWYgKCFfaW5wdXRWaWV3VXBkYXRlRGVmZXJyZXIpCkBAIC0yMjQzLDcg
KzIyMzgsNyBAQCBzdGF0aWMgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXBJZk5lY2Vzc2FyeShXS0Nv
bnRlbnRWaWV3KiBjb250ZW50VmlldykKICAgICB9CiAKICAgICBbX2lucHV0UGVyaXBoZXJhbCBl
bmRFZGl0aW5nXTsKLSAgICBfcGFnZS0+aGFuZGxlVGFwKGxvY2F0aW9uLCBXZWJLaXQ6OndlYkV2
ZW50TW9kaWZpZXJGbGFncyhtb2RpZmllckZsYWdzKSwgX2xheWVyVHJlZVRyYW5zYWN0aW9uSWRB
dExhc3RUb3VjaFN0YXJ0KTsKKyAgICBfcGFnZS0+aGFuZGxlVGFwKGxvY2F0aW9uLCBfbGF5ZXJU
cmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpOwogfQogCiAtICh2b2lkKXNldFVwVGV4
dFNlbGVjdGlvbkFzc2lzdGFudApAQCAtNTQxNiw3ICs1NDExLDcgQEAgc3RhdGljIGNvbnN0IGRv
dWJsZSBtaW5pbXVtRm9jdXNlZEVsZW1lbnRBcmVhRm9yU3VwcHJlc3NpbmdTZWxlY3Rpb25Bc3Np
c3RhbnQgPQogCiAtICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNz
aXN0YW50ICopYXNzaXN0YW50IG9wZW5FbGVtZW50QXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlv
bgogewotICAgIFtzZWxmIF9hdHRlbXB0Q2xpY2tBdExvY2F0aW9uOmxvY2F0aW9uIG1vZGlmaWVy
RmxhZ3M6MF07CisgICAgW3NlbGYgX2F0dGVtcHRDbGlja0F0TG9jYXRpb246bG9jYXRpb25dOwog
fQogCiAtICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50
ICopYXNzaXN0YW50IHNoYXJlRWxlbWVudFdpdGhVUkw6KE5TVVJMICopdXJsIHJlY3Q6KENHUmVj
dClib3VuZGluZ1JlY3QKQEAgLTY0MjMsMjIgKzY0MTgsNiBAQCBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICBfcGFnZS0+cGVyZm9ybURpY3Rpb25hcnlMb29rdXBBdExvY2F0
aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQobG9jYXRpb25JblZpZXdDb29yZGluYXRlcykpOwogfQog
Ci1zdGF0aWMgV2ViRXZlbnRGbGFncyB3ZWJFdmVudEZsYWdzRm9yVUlLZXlNb2RpZmllckZsYWdz
KFVJS2V5TW9kaWZpZXJGbGFncyBmbGFncykKLXsKLSAgICBXZWJFdmVudEZsYWdzIGV2ZW50Rmxh
Z3MgPSAwOwotICAgIGlmIChmbGFncyAmIFVJS2V5TW9kaWZpZXJTaGlmdCkKLSAgICAgICAgZXZl
bnRGbGFncyB8PSBXZWJFdmVudEZsYWdNYXNrTGVmdFNoaWZ0S2V5OwotICAgIGlmIChmbGFncyAm
IFVJS2V5TW9kaWZpZXJDb250cm9sKQotICAgICAgICBldmVudEZsYWdzIHw9IFdlYkV2ZW50Rmxh
Z01hc2tMZWZ0Q29udHJvbEtleTsKLSAgICBpZiAoZmxhZ3MgJiBVSUtleU1vZGlmaWVyQWx0ZXJu
YXRlKQotICAgICAgICBldmVudEZsYWdzIHw9IFdlYkV2ZW50RmxhZ01hc2tMZWZ0T3B0aW9uS2V5
OwotICAgIGlmIChmbGFncyAmIFVJS2V5TW9kaWZpZXJDb21tYW5kKQotICAgICAgICBldmVudEZs
YWdzIHw9IFdlYkV2ZW50RmxhZ01hc2tMZWZ0Q29tbWFuZEtleTsKLSAgICBpZiAoZmxhZ3MgJiBV
SUtleU1vZGlmaWVyQWxwaGFTaGlmdCkKLSAgICAgICAgZXZlbnRGbGFncyB8PSBXZWJFdmVudEZs
YWdNYXNrTGVmdENhcHNMb2NrS2V5OwotICAgIHJldHVybiBldmVudEZsYWdzOwotfQotCiAtICh2
b2lkKV9ob3Zlckdlc3R1cmVSZWNvZ25pemVyQ2hhbmdlZDooVUlHZXN0dXJlUmVjb2duaXplciAq
KWdlc3R1cmVSZWNvZ25pemVyCiB7CiAgICAgaWYgKCFfcGFnZS0+aXNWYWxpZCgpKQpAQCAtNjQ2
MCw3ICs2NDM5LDcgQEAgc3RhdGljIFdlYkV2ZW50RmxhZ3Mgd2ViRXZlbnRGbGFnc0ZvclVJS2V5
TW9kaWZpZXJGbGFncyhVSUtleU1vZGlmaWVyRmxhZ3MgZmxhZ3MKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogCi0gICAgYXV0byBldmVudCA9IGFkb3B0TlMoW1s6OldlYkV2ZW50IGFsbG9jXSBpbml0
V2l0aE1vdXNlRXZlbnRUeXBlOldlYkV2ZW50TW91c2VNb3ZlZCB0aW1lU3RhbXA6dGltZXN0YW1w
IGxvY2F0aW9uOnBvaW50IG1vZGlmaWVyczp3ZWJFdmVudEZsYWdzRm9yVUlLZXlNb2RpZmllckZs
YWdzKGdlc3R1cmVSZWNvZ25pemVyTW9kaWZpZXJGbGFncyhnZXN0dXJlUmVjb2duaXplcikpXSk7
CisgICAgYXV0byBldmVudCA9IGFkb3B0TlMoW1s6OldlYkV2ZW50IGFsbG9jXSBpbml0V2l0aE1v
dXNlRXZlbnRUeXBlOldlYkV2ZW50TW91c2VNb3ZlZCB0aW1lU3RhbXA6dGltZXN0YW1wIGxvY2F0
aW9uOnBvaW50XSk7CiAgICAgX3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQoV2ViS2l0OjpOYXRpdmVX
ZWJNb3VzZUV2ZW50KGV2ZW50LmdldCgpKSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IGU1MDA2ZWRlNWI1MDQyMjgx
NDM3MTZhZGM3YTQwNTgzOGYzNDM5NDMuLmZlMWQ3YTMwMTEyMmNlYThmODFiMGQ2MDgzZjFhZTli
NmRkMGJkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbQpAQCAtNTk2LDkgKzU5Niw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRTZWxlY3Rp
b25Db250ZXh0KFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmLCBjb25zdCBTCiAgICAg
bV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRTZWxlY3Rpb25Db250ZXh0KGNh
bGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVUd29G
aW5nZXJUYXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgT3B0aW9uU2V0
PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCB1aW50NjRfdCByZXF1ZXN0SUQpCit2b2lk
IFdlYlBhZ2VQcm94eTo6aGFuZGxlVHdvRmluZ2VyVGFwQXRQb2ludChjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgcG9pbnQsIHVpbnQ2NF90IHJlcXVlc3RJRCkKIHsKLSAgICBwcm9jZXNzKCkuc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6SGFuZGxlVHdvRmluZ2VyVGFwQXRQb2ludChwb2ludCwgbW9k
aWZpZXJzLCByZXF1ZXN0SUQpLCBtX3BhZ2VJRCk7CisgICAgcHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQocG9pbnQsIHJlcXVlc3RJRCks
IG1fcGFnZUlEKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVN0eWx1c1NpbmdsZVRh
cEF0UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50LCB1aW50NjRfdCByZXF1ZXN0
SUQpCkBAIC04MjcsOSArODI3LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBvdGVudGlhbFRhcEF0
UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9zaXRpb24sIHUKICAgICBwcm9j
ZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UG90ZW50aWFsVGFwQXRQb3NpdGlvbihyZXF1
ZXN0SUQsIHBvc2l0aW9uKSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Y29t
bWl0UG90ZW50aWFsVGFwKE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywg
dWludDY0X3QgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpCit2b2lkIFdl
YlBhZ2VQcm94eTo6Y29tbWl0UG90ZW50aWFsVGFwKHVpbnQ2NF90IGxheWVyVHJlZVRyYW5zYWN0
aW9uSWRBdExhc3RUb3VjaFN0YXJ0KQogewotICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpDb21taXRQb3RlbnRpYWxUYXAobW9kaWZpZXJzLCBsYXllclRyZWVUcmFuc2FjdGlv
bklkQXRMYXN0VG91Y2hTdGFydCksIG1fcGFnZUlEKTsKKyAgICBwcm9jZXNzKCkuc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6Q29tbWl0UG90ZW50aWFsVGFwKGxheWVyVHJlZVRyYW5zYWN0aW9uSWRB
dExhc3RUb3VjaFN0YXJ0KSwgbV9wYWdlSUQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y2Fu
Y2VsUG90ZW50aWFsVGFwKCkKQEAgLTg0Miw5ICs4NDIsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
dGFwSGlnaGxpZ2h0QXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwb3NpdGlv
biwgdQogICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpUYXBIaWdobGlnaHRB
dFBvc2l0aW9uKHJlcXVlc3RJRCwgcG9zaXRpb24pLCBtX3BhZ2VJRCk7CiB9CiAKLXZvaWQgV2Vi
UGFnZVByb3h5OjpoYW5kbGVUYXAoY29uc3QgRmxvYXRQb2ludCYgbG9jYXRpb24sIE9wdGlvblNl
dDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgdWludDY0X3QgbGF5ZXJUcmVlVHJhbnNh
Y3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpCit2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVGFwKGNv
bnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uLCB1aW50NjRfdCBsYXllclRyZWVUcmFuc2FjdGlvbklk
QXRMYXN0VG91Y2hTdGFydCkKIHsKLSAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6SGFuZGxlVGFwKHJvdW5kZWRJbnRQb2ludChsb2NhdGlvbiksIG1vZGlmaWVycywgbGF5ZXJU
cmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpLCBtX3BhZ2VJRCk7CisgICAgcHJvY2Vz
cygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZVRhcChyb3VuZGVkSW50UG9pbnQobG9j
YXRpb24pLCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCksIG1fcGFnZUlE
KTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6Omluc3BlY3Rvck5vZGVTZWFyY2hNb3ZlZFRvUG9z
aXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9zaXRpb24pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMThlZWEwMTBkNjcxNjY2ZDAyNTNk
OTJiN2MyOTg4YThjYzA4ZWQ0Ny4uYjkxMzMzMmJiNTI1MDZhZGMxNTk1N2E0YWIyZmY0MmNiYTc0
M2Y2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAt
NjE0LDkgKzYxNCw5IEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93c1VzZXJTY2FsaW5nKCkgY29u
c3Q7CiAgICAgYm9vbCBoYXNTdGFibGVQYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBt
X2hhc1N0YWJsZVBhZ2VTY2FsZUZhY3RvcjsgfQogCi0gICAgdm9pZCBoYW5kbGVUYXAoY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+
LCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCk7CisgICAgdm9pZCBoYW5kbGVU
YXAoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNh
Y3Rpb25JZCk7CiAgICAgdm9pZCBwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVl
c3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHZvaWQgY29tbWl0UG90ZW50
aWFsVGFwKE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4sIHVpbnQ2NF90IGxh
c3RMYXllclRyZWVUcmFuc2FjdGlvbklkKTsKKyAgICB2b2lkIGNvbW1pdFBvdGVudGlhbFRhcCh1
aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCk7CiAgICAgdm9pZCBjb21taXRQb3Rl
bnRpYWxUYXBGYWlsZWQoKTsKICAgICB2b2lkIGNhbmNlbFBvdGVudGlhbFRhcCgpOwogICAgIHZv
aWQgY2FuY2VsUG90ZW50aWFsVGFwSW5GcmFtZShXZWJGcmFtZSYpOwpAQCAtNjYyLDcgKzY2Miw3
IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpJbnRSZWN0IHJlY3RGb3JFbGVtZW50QXRJbnRlcmFj
dGlvbkxvY2F0aW9uKCk7CiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlKCk7CiAg
ICAgdm9pZCBnZXRTZWxlY3Rpb25Db250ZXh0KENhbGxiYWNrSUQpOwotICAgIHZvaWQgaGFuZGxl
VHdvRmluZ2VyVGFwQXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIE9wdGlvblNldDxX
ZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4sIHVpbnQ2NF90IHJlcXVlc3RJRCk7CisgICAgdm9p
ZCBoYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgdWlu
dDY0X3QgcmVxdWVzdElEKTsKICAgICB2b2lkIGhhbmRsZVN0eWx1c1NpbmdsZVRhcEF0UG9pbnQo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCB1aW50NjRfdCByZXF1ZXN0SUQpOwogICAgIHZvaWQg
Z2V0UmVjdHNGb3JHcmFudWxhcml0eVdpdGhTZWxlY3Rpb25PZmZzZXQodWludDMyX3QsIGludDMy
X3QsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgZ2V0UmVjdHNBdFNlbGVjdGlvbk9mZnNldFdpdGhU
ZXh0KGludDMyX3QsIGNvbnN0IFN0cmluZyYsIENhbGxiYWNrSUQpOwpAQCAtMTE4NSw4ICsxMTg1
LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IHJhbmdlRm9yV2ViU2Vs
ZWN0aW9uQXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6
OlZpc2libGVQb3NpdGlvbiYsIFNlbGVjdGlvbkZsYWdzJik7CiAgICAgdm9pZCBnZXRGb2N1c2Vk
RWxlbWVudEluZm9ybWF0aW9uKEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mKTsKICAgICB2b2lk
IHBsYXRmb3JtSW5pdGlhbGl6ZUFjY2Vzc2liaWxpdHkoKTsKLSAgICB2b2lkIGhhbmRsZVN5bnRo
ZXRpY0NsaWNrKFdlYkNvcmU6Ok5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24sIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpN
b2RpZmllcj4pOwotICAgIHZvaWQgY29tcGxldGVTeW50aGV0aWNDbGljayhXZWJDb3JlOjpOb2Rl
KiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0
aW9uLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCBXZWJDb3JlOjpTeW50
aGV0aWNDbGlja1R5cGUpOworICAgIHZvaWQgaGFuZGxlU3ludGhldGljQ2xpY2soV2ViQ29yZTo6
Tm9kZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBs
b2NhdGlvbik7CisgICAgdm9pZCBjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKFdlYkNvcmU6Ok5vZGUq
IG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRp
b24sIFdlYkNvcmU6OlN5bnRoZXRpY0NsaWNrVHlwZSk7CiAgICAgdm9pZCBzZW5kVGFwSGlnaGxp
Z2h0Rm9yTm9kZUlmTmVjZXNzYXJ5KHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6Tm9kZSop
OwogICAgIHZvaWQgcmVzZXRUZXh0QXV0b3NpemluZygpOwogICAgIFdlYkNvcmU6OlZpc2libGVQ
b3NpdGlvbiB2aXNpYmxlUG9zaXRpb25JbkZvY3VzZWROb2RlRm9yUG9pbnQoY29uc3QgV2ViQ29y
ZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wgaXNJbnRlcmFjdGluZ1dp
dGhGb2N1c2VkRWxlbWVudCk7CkBAIC0xNzY4LDcgKzE3NjgsNiBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxXZWJDb3JlOjpOb2RlPiBtX3BlbmRpbmdTeW50aGV0aWNDbGlja05vZGU7CiAgICAgV2Vi
Q29yZTo6RmxvYXRQb2ludCBtX3BlbmRpbmdTeW50aGV0aWNDbGlja0xvY2F0aW9uOwogICAgIFdl
YkNvcmU6OkZsb2F0UmVjdCBtX3ByZXZpb3VzRXhwb3NlZENvbnRlbnRSZWN0OwotICAgIE9wdGlv
blNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tN
b2RpZmllcnM7CiAgICAgRm9jdXNlZEVsZW1lbnRJZGVudGlmaWVyIG1fY3VycmVudEZvY3VzZWRF
bGVtZW50SWRlbnRpZmllciB7IDAgfTsKICAgICBPcHRpb25hbDxEeW5hbWljVmlld3BvcnRTaXpl
VXBkYXRlSUQ+IG1fcGVuZGluZ0R5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRDsKICAgICBkb3Vi
bGUgbV9sYXN0VHJhbnNhY3Rpb25QYWdlU2NhbGVGYWN0b3IgeyAwIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAy
ZDViN2I1YTZiY2QwOTMwNzE4M2Y0NDlmYWQxNmMyN2NkNjRiNjgxLi5hOGM2MTc2OWU1ZTc0ZDIx
NGU4Y2VmMGE2NDE1ODQ3OGIyMzAxY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTUxLDkgKzUxLDkgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0T3ZlcnJpZGVWaWV3cG9y
dEFyZ3VtZW50cyhPcHRpb25hbDxXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cz4gYXJndW1lbnRz
KQogICAgIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoV2ViQ29yZTo6RmxvYXRTaXplIHZpZXdM
YXlvdXRTaXplLCBXZWJDb3JlOjpGbG9hdFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplLCBXZWJD
b3JlOjpGbG9hdFJlY3QgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBXZWJDb3JlOjpGbG9hdFJl
Y3QgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1
cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBXZWJDb3JlOjpSZWN0RWRnZXM8ZmxvYXQ+
IHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBpbnQzMl90IGRl
dmljZU9yaWVudGF0aW9uLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCiAK
LSAgICBIYW5kbGVUYXAoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIE9wdGlvblNldDxXZWJLaXQ6
OldlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJh
bnNhY3Rpb25JZCkKKyAgICBIYW5kbGVUYXAoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIHVpbnQ2
NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQogICAgIFBvdGVudGlhbFRhcEF0UG9zaXRp
b24odWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpGbG9hdFBvaW50IHBvaW50KQotICAgIENv
bW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+IG1v
ZGlmaWVycywgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCisgICAgQ29tbWl0
UG90ZW50aWFsVGFwKHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQogICAgIENh
bmNlbFBvdGVudGlhbFRhcCgpCiAgICAgVGFwSGlnaGxpZ2h0QXRQb3NpdGlvbih1aW50NjRfdCBy
ZXF1ZXN0SUQsIFdlYkNvcmU6OkZsb2F0UG9pbnQgcG9pbnQpCiAgICAgSW5zcGVjdG9yTm9kZVNl
YXJjaE1vdmVkVG9Qb3NpdGlvbihXZWJDb3JlOjpGbG9hdFBvaW50IHBvaW50KQpAQCAtOTgsNyAr
OTgsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBDb250ZW50
U2l6ZUNhdGVnb3J5RGlkQ2hhbmdlKFN0cmluZyBjb250ZW50U2l6ZUNhdGVnb3J5KQogICAgIEdl
dFNlbGVjdGlvbkNvbnRleHQoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgU2V0
QWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKGJvb2wgYWxsb3dzKQotICAgIEhhbmRs
ZVR3b0ZpbmdlclRhcEF0UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIE9wdGlvblNldDxX
ZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCB1aW50NjRfdCByZXF1ZXN0SUQp
CisgICAgSGFuZGxlVHdvRmluZ2VyVGFwQXRQb2ludChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwg
dWludDY0X3QgcmVxdWVzdElEKQogICAgIEhhbmRsZVN0eWx1c1NpbmdsZVRhcEF0UG9pbnQoV2Vi
Q29yZTo6SW50UG9pbnQgcG9pbnQsIHVpbnQ2NF90IHJlcXVlc3RJRCkKICAgICBTZXRGb3JjZUFs
d2F5c1VzZXJTY2FsYWJsZShib29sIHVzZXJTY2FsYWJsZSkKICAgICBHZXRSZWN0c0ZvckdyYW51
bGFyaXR5V2l0aFNlbGVjdGlvbk9mZnNldCh1aW50MzJfdCBncmFudWxhcml0eSwgaW50MzJfdCBv
ZmZzZXQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBmOWRmZDBkMzcy
MjZlOThmOTQ1YWJjNWZmNGMwYTFmZmFiODRhYjM0Li43ZWI3MWFlOTEyYTkzNTAwYjM1ODkzODMw
YjZlMjRhMDYzNmNkN2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNTM0LDcgKzUzNCw3IEBAIHZvaWQgV2ViUGFnZTo6
dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZSgpCiAgICAgICAgIGRpZENoYW5nZVNlbGVjdGlvbigp
OwogfQogCi12b2lkIFdlYlBhZ2U6OmhhbmRsZVN5bnRoZXRpY0NsaWNrKE5vZGUqIG5vZGVSZXNw
b25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24sIE9wdGlv
blNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycykKK3ZvaWQgV2ViUGFnZTo6aGFuZGxl
U3ludGhldGljQ2xpY2soTm9kZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBsb2NhdGlvbikKIHsKICAgICBJbnRQb2ludCByb3VuZGVkQWRqdXN0ZWRQ
b2ludCA9IHJvdW5kZWRJbnRQb2ludChsb2NhdGlvbik7CiAgICAgRnJhbWUmIG1haW5mcmFtZSA9
IG1fcGFnZS0+bWFpbkZyYW1lKCk7CkBAIC01NDMsMTIgKzU0Myw3IEBAIHZvaWQgV2ViUGFnZTo6
aGFuZGxlU3ludGhldGljQ2xpY2soTm9kZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBX
ZWJDb3JlOjpGCiAgICAgV0tTdGFydE9ic2VydmluZ0NvbnRlbnRDaGFuZ2VzKCk7CiAgICAgV0tT
dGFydE9ic2VydmluZ0RPTVRpbWVyU2NoZWR1bGluZygpOwogCi0gICAgLy8gRklYTUU6IFBhc3Mg
Y2FwcyBsb2NrIHN0YXRlLgotICAgIGJvb2wgc2hpZnRLZXkgPSBtb2RpZmllcnMuY29udGFpbnMo
V2ViRXZlbnQ6Ok1vZGlmaWVyOjpTaGlmdEtleSk7Ci0gICAgYm9vbCBjdHJsS2V5ID0gbW9kaWZp
ZXJzLmNvbnRhaW5zKFdlYkV2ZW50OjpNb2RpZmllcjo6Q29udHJvbEtleSk7Ci0gICAgYm9vbCBh
bHRLZXkgPSBtb2RpZmllcnMuY29udGFpbnMoV2ViRXZlbnQ6Ok1vZGlmaWVyOjpBbHRLZXkpOwot
ICAgIGJvb2wgbWV0YUtleSA9IG1vZGlmaWVycy5jb250YWlucyhXZWJFdmVudDo6TW9kaWZpZXI6
Ok1ldGFLZXkpOwotICAgIG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKFBsYXRm
b3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQs
IE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtl
eSwgYWx0S2V5LCBtZXRhS2V5LCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGlj
aywgV2ViQ29yZTo6Tm9UYXApKTsKKyAgICBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91c2VN
b3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1
c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENs
aWNrLCBXZWJDb3JlOjpOb1RhcCkpOwogICAgIG1haW5mcmFtZS5kb2N1bWVudCgpLT51cGRhdGVT
dHlsZUlmTmVlZGVkKCk7CiAKICAgICBXS1N0b3BPYnNlcnZpbmdET01UaW1lclNjaGVkdWxpbmco
KTsKQEAgLTU1Niw3ICs1NTEsNiBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZVN5bnRoZXRpY0NsaWNr
KE5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZTo6RgogCiAgICAgbV9w
ZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlID0gbnVsbHB0cjsKICAgICBtX3BlbmRpbmdTeW50aGV0
aWNDbGlja0xvY2F0aW9uID0gRmxvYXRQb2ludCgpOwotICAgIG1fcGVuZGluZ1N5bnRoZXRpY0Ns
aWNrTW9kaWZpZXJzID0geyB9OwogCiAgICAgaWYgKG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVy
bjsKQEAgLTU2NiwxNiArNTYwLDE1IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlU3ludGhldGljQ2xp
Y2soTm9kZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGCiAgICAgICAg
IC8vIFRoZSBtb3ZlIGV2ZW50IGNhdXNlZCBuZXcgY29udGVudHMgdG8gYXBwZWFyLiBEb24ndCBz
ZW5kIHRoZSBjbGljayBldmVudC4KICAgICAgICAgTE9HKENvbnRlbnRPYnNlcnZhdGlvbiwgImhh
bmRsZVN5bnRoZXRpY0NsaWNrOiBPYnNlcnZlZCBtZWFuaW5nZnVsIHZpc2libGUgY2hhbmdlIC0+
IGhvdmVyLiIpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBXS0NvbnRlbnRJbmRldGVybWlu
YXRlQ2hhbmdlOiB7CisgICAgY2FzZSBXS0NvbnRlbnRJbmRldGVybWluYXRlQ2hhbmdlOgogICAg
ICAgICAvLyBXYWl0IGZvciBjYWxsYmFjayB0byBjb21wbGV0ZVBlbmRpbmdTeW50aGV0aWNDbGlj
a0ZvckNvbnRlbnRDaGFuZ2VPYnNlcnZlcigpIHRvIGRlY2lkZSB3aGV0aGVyIHRvIHNlbmQgdGhl
IGNsaWNrIGV2ZW50LgogICAgICAgICBtX3BlbmRpbmdTeW50aGV0aWNDbGlja05vZGUgPSBub2Rl
UmVzcG9uZGluZ1RvQ2xpY2s7CiAgICAgICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTG9jYXRp
b24gPSBsb2NhdGlvbjsKLSAgICAgICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmllcnMg
PSBtb2RpZmllcnM7CiAgICAgICAgIExPRyhDb250ZW50T2JzZXJ2YXRpb24sICJoYW5kbGVTeW50
aGV0aWNDbGljazogT2JzZXJ2ZWQgc29tZSBjaGFuZ2UsIGJ1dCBjYW4ndCBkZWNpZGUgaXQgeWV0
IC0+IHdhaXQuIik7CiAgICAgICAgIHJldHVybjsKLSAgICB9IGNhc2UgV0tDb250ZW50Tm9DaGFu
Z2U6CisgICAgY2FzZSBXS0NvbnRlbnROb0NoYW5nZToKICAgICAgICAgTE9HKENvbnRlbnRPYnNl
cnZhdGlvbiwgImhhbmRsZVN5bnRoZXRpY0NsaWNrOiBObyBjaGFuZ2Ugd2FzIG9ic2VydmVkIC0+
IGNsaWNrLiIpOwotICAgICAgICBjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKG5vZGVSZXNwb25kaW5n
VG9DbGljaywgbG9jYXRpb24sIG1vZGlmaWVycywgV2ViQ29yZTo6T25lRmluZ2VyVGFwKTsKKyAg
ICAgICAgY29tcGxldGVTeW50aGV0aWNDbGljayhub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGxvY2F0
aW9uLCBXZWJDb3JlOjpPbmVGaW5nZXJUYXApOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTg5LDE2ICs1ODIsMTUgQEAgdm9pZCBXZWJQYWdl
Ojpjb21wbGV0ZVBlbmRpbmdTeW50aGV0aWNDbGlja0ZvckNvbnRlbnRDaGFuZ2VPYnNlcnZlcigp
CiAgICAgLy8gT25seSBkaXNwYXRjaCB0aGUgY2xpY2sgaWYgdGhlIGRvY3VtZW50IGRpZG4ndCBn
ZXQgY2hhbmdlZCBieSBhbnkgdGltZXJzIHN0YXJ0ZWQgYnkgdGhlIG1vdmUgZXZlbnQuCiAgICAg
aWYgKFdLT2JzZXJ2ZWRDb250ZW50Q2hhbmdlKCkgPT0gV0tDb250ZW50Tm9DaGFuZ2UpIHsKICAg
ICAgICAgTE9HKENvbnRlbnRPYnNlcnZhdGlvbiwgIk5vIGNoYWdlIHdhcyBvYnNlcnZlZCAtPiBj
bGljay4iKTsKLSAgICAgICAgY29tcGxldGVTeW50aGV0aWNDbGljayhtX3BlbmRpbmdTeW50aGV0
aWNDbGlja05vZGUuZ2V0KCksIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTG9jYXRpb24sIG1fcGVu
ZGluZ1N5bnRoZXRpY0NsaWNrTW9kaWZpZXJzLCBXZWJDb3JlOjpPbmVGaW5nZXJUYXApOworICAg
ICAgICBjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZS5n
ZXQoKSwgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tMb2NhdGlvbiwgV2ViQ29yZTo6T25lRmluZ2Vy
VGFwKTsKICAgICB9IGVsc2UKICAgICAgICAgTE9HKENvbnRlbnRPYnNlcnZhdGlvbiwgIk9ic2Vy
dmVkIG1lYW5pbmdmdWwgdmlzaWJsZSBjaGFuZ2UgLT4gaG92ZXIuIik7CiAKICAgICBtX3BlbmRp
bmdTeW50aGV0aWNDbGlja05vZGUgPSBudWxscHRyOwogICAgIG1fcGVuZGluZ1N5bnRoZXRpY0Ns
aWNrTG9jYXRpb24gPSBGbG9hdFBvaW50KCk7Ci0gICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tN
b2RpZmllcnMgPSB7IH07CiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tcGxldGVTeW50aGV0aWNDbGlj
ayhOb2RlKiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IGxvY2F0aW9uLCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIFN5bnRo
ZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUpCit2b2lkIFdlYlBhZ2U6OmNvbXBsZXRl
U3ludGhldGljQ2xpY2soTm9kZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBsb2NhdGlvbiwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNr
VHlwZSkKIHsKICAgICBJbnRQb2ludCByb3VuZGVkQWRqdXN0ZWRQb2ludCA9IHJvdW5kZWRJbnRQ
b2ludChsb2NhdGlvbik7CiAgICAgRnJhbWUmIG1haW5mcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1l
KCk7CkBAIC02MTEsMTcgKzYwMywxMSBAQCB2b2lkIFdlYlBhZ2U6OmNvbXBsZXRlU3ludGhldGlj
Q2xpY2soTm9kZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOgogICAgIGJv
b2wgdGFwV2FzSGFuZGxlZCA9IGZhbHNlOwogICAgIG1fbGFzdEludGVyYWN0aW9uTG9jYXRpb24g
PSByb3VuZGVkQWRqdXN0ZWRQb2ludDsKIAotICAgIC8vIEZJWE1FOiBQYXNzIGNhcHMgbG9jayBz
dGF0ZS4KLSAgICBib29sIHNoaWZ0S2V5ID0gbW9kaWZpZXJzLmNvbnRhaW5zKFdlYkV2ZW50OjpN
b2RpZmllcjo6U2hpZnRLZXkpOwotICAgIGJvb2wgY3RybEtleSA9IG1vZGlmaWVycy5jb250YWlu
cyhXZWJFdmVudDo6TW9kaWZpZXI6OkNvbnRyb2xLZXkpOwotICAgIGJvb2wgYWx0S2V5ID0gbW9k
aWZpZXJzLmNvbnRhaW5zKFdlYkV2ZW50OjpNb2RpZmllcjo6QWx0S2V5KTsKLSAgICBib29sIG1l
dGFLZXkgPSBtb2RpZmllcnMuY29udGFpbnMoV2ViRXZlbnQ6Ok1vZGlmaWVyOjpNZXRhS2V5KTsK
LQotICAgIHRhcFdhc0hhbmRsZWQgfD0gbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1v
dXNlUHJlc3NFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJv
dW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNz
ZWQsIDEsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIFdhbGxUaW1lOjpub3co
KSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5cGUpKTsKKyAgICB0YXBX
YXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZl
bnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0
ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0
Q2xpY2ssIHN5bnRoZXRpY0NsaWNrVHlwZSkpOwogICAgIGlmIChtX2lzQ2xvc2VkKQogICAgICAg
ICByZXR1cm47CiAKLSAgICB0YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhhbmRsZXIo
KS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVz
dGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpNb3VzZVJlbGVhc2VkLCAxLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCBX
YWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgc3ludGhldGljQ2xpY2tUeXBl
KSk7CisgICAgdGFwV2FzSGFuZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxl
TW91c2VSZWxlYXNlRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50
LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VS
ZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwg
V2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5cGUpKTsKICAgICBpZiAobV9p
c0Nsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCkBAIC02NDEsNyArNjI3LDcgQEAgdm9pZCBXZWJQ
YWdlOjpjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKE5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGljaywg
Y29uc3QgV2ViQ29yZToKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENvbXBs
ZXRlU3ludGhldGljQ2xpY2soKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6aGFuZGxlVGFwKGNvbnN0
IEludFBvaW50JiBwb2ludCwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJz
LCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCkKK3ZvaWQgV2ViUGFnZTo6aGFu
ZGxlVGFwKGNvbnN0IEludFBvaW50JiBwb2ludCwgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5z
YWN0aW9uSWQpCiB7CiAgICAgRmxvYXRQb2ludCBhZGp1c3RlZFBvaW50OwogICAgIE5vZGUqIG5v
ZGVSZXNwb25kaW5nVG9DbGljayA9IG1fcGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdU
b0NsaWNrRXZlbnRzKHBvaW50LCBhZGp1c3RlZFBvaW50KTsKQEAgLTY1OCw3ICs2NDQsNyBAQCB2
b2lkIFdlYlBhZ2U6OmhhbmRsZVRhcChjb25zdCBJbnRQb2ludCYgcG9pbnQsIE9wdGlvblNldDxX
ZWJFdmVudDo6TW9kaWZpZXI+IG1vZAogICAgIH0KICNlbmRpZgogICAgIGVsc2UKLSAgICAgICAg
aGFuZGxlU3ludGhldGljQ2xpY2sobm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBhZGp1c3RlZFBvaW50
LCBtb2RpZmllcnMpOworICAgICAgICBoYW5kbGVTeW50aGV0aWNDbGljayhub2RlUmVzcG9uZGlu
Z1RvQ2xpY2ssIGFkanVzdGVkUG9pbnQpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RGb2N1
c2VkRWxlbWVudEluZm9ybWF0aW9uKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQpAQCAt
NzUzLDcgKzczOSw3IEBAIHZvaWQgV2ViUGFnZTo6c2VuZFRhcEhpZ2hsaWdodEZvck5vZGVJZk5l
Y2Vzc2FyeSh1aW50NjRfdCByZXF1ZXN0SUQsIE5vZGUqIG5vZGUpCiAjZW5kaWYKIH0KIAotdm9p
ZCBXZWJQYWdlOjpoYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBwb2ludCwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmll
cnMsIHVpbnQ2NF90IHJlcXVlc3RJRCkKK3ZvaWQgV2ViUGFnZTo6aGFuZGxlVHdvRmluZ2VyVGFw
QXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIHVpbnQ2NF90IHJlcXVlc3RJ
RCkKIHsKICAgICBGbG9hdFBvaW50IGFkanVzdGVkUG9pbnQ7CiAgICAgTm9kZSogbm9kZVJlc3Bv
bmRpbmdUb0NsaWNrID0gbV9wYWdlLT5tYWluRnJhbWUoKS5ub2RlUmVzcG9uZGluZ1RvQ2xpY2tF
dmVudHMocG9pbnQsIGFkanVzdGVkUG9pbnQpOwpAQCAtNzY5LDcgKzc1NSw3IEBAIHZvaWQgV2Vi
UGFnZTo6aGFuZGxlVHdvRmluZ2VyVGFwQXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cG9pbnQsIE9wdGlvblNlCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlk
Tm90SGFuZGxlVGFwQXNDbGljayhyb3VuZGVkSW50UG9pbnQoYWRqdXN0ZWRQb2ludCkpKTsKICAg
ICB9IGVsc2UKICNlbmRpZgotICAgICAgICBjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKG5vZGVSZXNw
b25kaW5nVG9DbGljaywgYWRqdXN0ZWRQb2ludCwgbW9kaWZpZXJzLCBXZWJDb3JlOjpUd29GaW5n
ZXJUYXApOworICAgICAgICBjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKG5vZGVSZXNwb25kaW5nVG9D
bGljaywgYWRqdXN0ZWRQb2ludCwgV2ViQ29yZTo6VHdvRmluZ2VyVGFwKTsKIH0KIAogdm9pZCBX
ZWJQYWdlOjpoYW5kbGVTdHlsdXNTaW5nbGVUYXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBwb2ludCwgdWludDY0X3QgcmVxdWVzdElEKQpAQCAtODE0LDcgKzgwMCw3IEBAIHZvaWQg
V2ViUGFnZTo6cG90ZW50aWFsVGFwQXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlOjpjb21taXRQb3Rl
bnRpYWxUYXAoT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCB1aW50NjRf
dCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCkKK3ZvaWQgV2ViUGFnZTo6Y29tbWl0UG90ZW50
aWFsVGFwKHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQogewogICAgIGlmICgh
bV9wb3RlbnRpYWxUYXBOb2RlIHx8ICghbV9wb3RlbnRpYWxUYXBOb2RlLT5yZW5kZXJlcigpICYm
ICFpczxIVE1MQXJlYUVsZW1lbnQ+KG1fcG90ZW50aWFsVGFwTm9kZS5nZXQoKSkpKSB7CiAgICAg
ICAgIGNvbW1pdFBvdGVudGlhbFRhcEZhaWxlZCgpOwpAQCAtODM4LDcgKzgyNCw3IEBAIHZvaWQg
V2ViUGFnZTo6Y29tbWl0UG90ZW50aWFsVGFwKE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+
IG1vZGlmaWVycywgdWludDY0CiAgICAgICAgICAgICBjb21taXRQb3RlbnRpYWxUYXBGYWlsZWQo
KTsKICAgICAgICAgfSBlbHNlCiAjZW5kaWYKLSAgICAgICAgICAgIGhhbmRsZVN5bnRoZXRpY0Ns
aWNrKG5vZGVSZXNwb25kaW5nVG9DbGljaywgYWRqdXN0ZWRQb2ludCwgbW9kaWZpZXJzKTsKKyAg
ICAgICAgICAgIGhhbmRsZVN5bnRoZXRpY0NsaWNrKG5vZGVSZXNwb25kaW5nVG9DbGljaywgYWRq
dXN0ZWRQb2ludCk7CiAgICAgfSBlbHNlCiAgICAgICAgIGNvbW1pdFBvdGVudGlhbFRhcEZhaWxl
ZCgpOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggN2Q0OTQ3NDY0NzE1MGYxYzJlYjQwZGJiNmVkYzFjMWYzMDA3ODc0OS4uNmY0Y2EyNGJlNzE4
OGQ2MWFmZWI4ZmU1MzNkOWIzNmI1MGZhYTA4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTAyLTExICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjQxMjcyIGFuZCByMjQxMjcyLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NTEzCisKKyAgICAgICAgQnJva2UgdGhlIEFw
cGxlIEludGVybmFsIGJ1aWxkIGFuZCB0aGUgZml4IHJlcXVpcmVzIGh1bWFuCisgICAgICAgIGlu
dGVydmVudGlvbiA6KCAoUmVxdWVzdGVkIGJ5IGR5ZHogb24gI3dlYmtpdCkuCisKKyAgICAgICAg
UmV2ZXJ0ZWQgY2hhbmdlc2V0czoKKworICAgICAgICAiW2lPU10gTW91c2UvVG91Y2gvUG9pbnRl
ciBldmVudHMgYXJlIG1pc3NpbmcgbW9kaWZpZXIga2V5cyIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTQ0NgorICAgICAgICBodHRwczovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjQxMjcyCisKKyAgICAgICAgIltpT1NdIE1vdXNlL1RvdWNo
L1BvaW50ZXIgZXZlbnRzIGFyZSBtaXNzaW5nIG1vZGlmaWVyIGtleXMiCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0NDYKKyAgICAgICAgaHR0cHM6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI0MTI3MgorCiAyMDE5LTAyLTExICBUcnVpdHQg
U2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjI0MTI2OS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9VSVNj
cmlwdENvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRD
b250cm9sbGVySU9TLm1tCmluZGV4IGYzMmMxMDQyM2UzOGIyOTFhZGMzZjA1MjIzMWU1M2U0NTgw
MGQ2YjYuLmUwMzBjZDY1YTA3MTNmZmE0NzdjZWFiZGZmMGE1NzcyNjdiZDhjNGEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQpAQCAt
MTE1LDEwICsxMTUsNiBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2luZ2xlVGFwQXRQb2lu
dChsb25nIHgsIGxvbmcgeSwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsKIH0KIAotdm9pZCBVSVNj
cmlwdENvbnRyb2xsZXI6OnNpbmdsZVRhcEF0UG9pbnRXaXRoTW9kaWZpZXJzKGxvbmcgeCwgbG9u
ZyB5LCBKU1ZhbHVlUmVmIG1vZGlmaWVyQXJyYXksIEpTVmFsdWVSZWYgY2FsbGJhY2spCi17Ci19
Ci0KIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkb3VibGVUYXBBdFBvaW50KGxvbmcgeCwgbG9u
ZyB5LCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQogewogfQpAQCAtMTQ3LDEwICsxNDMsNiBAQCB2b2lk
IFVJU2NyaXB0Q29udHJvbGxlcjo6c3R5bHVzVGFwQXRQb2ludChsb25nIHgsIGxvbmcgeSwgZmxv
YXQgYXppbXV0aEFuZ2xlLCBmbAogewogfQogCi12b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c3R5
bHVzVGFwQXRQb2ludFdpdGhNb2RpZmllcnMobG9uZyB4LCBsb25nIHksIGZsb2F0IGF6aW11dGhB
bmdsZSwgZmxvYXQgYWx0aXR1ZGVBbmdsZSwgZmxvYXQgcHJlc3N1cmUsIEpTVmFsdWVSZWYgbW9k
aWZpZXJBcnJheSwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKLXsKLX0KLQogdm9pZCBVSVNjcmlwdENv
bnRyb2xsZXI6OnNlbmRFdmVudFN0cmVhbShKU1N0cmluZ1JlZiBldmVudHNKU09OLCBKU1ZhbHVl
UmVmIGNhbGxiYWNrKQogewogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxl
ci5pZGwKaW5kZXggMzUwYjI5YTE3MTExMDRhN2VmNGE2N2VjYmRjZGI3OGQ4N2I4YTg1OS4uM2Nl
MWViNTZmN2ZhOTU1MGQ1ZTk5MTczZWFlZmU1Yjc4ZDNkZDQxMiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9s
bGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5k
aW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC01Niw3ICs1Niw2IEBAIGludGVyZmFjZSBV
SVNjcmlwdENvbnRyb2xsZXIgewogICAgIHZvaWQgdG91Y2hEb3duQXRQb2ludChsb25nIHgsIGxv
bmcgeSwgbG9uZyB0b3VjaENvdW50LCBvYmplY3QgY2FsbGJhY2spOwogICAgIHZvaWQgbGlmdFVw
QXRQb2ludChsb25nIHgsIGxvbmcgeSwgbG9uZyB0b3VjaENvdW50LCBvYmplY3QgY2FsbGJhY2sp
OwogICAgIHZvaWQgc2luZ2xlVGFwQXRQb2ludChsb25nIHgsIGxvbmcgeSwgb2JqZWN0IGNhbGxi
YWNrKTsKLSAgICB2b2lkIHNpbmdsZVRhcEF0UG9pbnRXaXRoTW9kaWZpZXJzKGxvbmcgeCwgbG9u
ZyB5LCBvYmplY3QgbW9kaWZpZXJBcnJheSwgb2JqZWN0IGNhbGxiYWNrKTsKICAgICB2b2lkIGRv
dWJsZVRhcEF0UG9pbnQobG9uZyB4LCBsb25nIHksIG9iamVjdCBjYWxsYmFjayk7CiAgICAgdm9p
ZCBkcmFnRnJvbVBvaW50VG9Qb2ludChsb25nIHN0YXJ0WCwgbG9uZyBzdGFydFksIGxvbmcgZW5k
WCwgbG9uZyBlbmRZLCBkb3VibGUgZHVyYXRpb25TZWNvbmRzLCBvYmplY3QgY2FsbGJhY2spOwog
CkBAIC02Niw3ICs2NSw2IEBAIGludGVyZmFjZSBVSVNjcmlwdENvbnRyb2xsZXIgewogICAgIHZv
aWQgc3R5bHVzTW92ZVRvUG9pbnQobG9uZyB4LCBsb25nIHksIGZsb2F0IGF6aW11dGhBbmdsZSwg
ZmxvYXQgYWx0aXR1ZGVBbmdsZSwgZmxvYXQgcHJlc3N1cmUsIG9iamVjdCBjYWxsYmFjayk7CiAg
ICAgdm9pZCBzdHlsdXNVcEF0UG9pbnQobG9uZyB4LCBsb25nIHksIG9iamVjdCBjYWxsYmFjayk7
CiAgICAgdm9pZCBzdHlsdXNUYXBBdFBvaW50KGxvbmcgeCwgbG9uZyB5LCBmbG9hdCBhemltdXRo
QW5nbGUsIGZsb2F0IGFsdGl0dWRlQW5nbGUsIGZsb2F0IHByZXNzdXJlLCBvYmplY3QgY2FsbGJh
Y2spOwotICAgIHZvaWQgc3R5bHVzVGFwQXRQb2ludFdpdGhNb2RpZmllcnMobG9uZyB4LCBsb25n
IHksIGZsb2F0IGF6aW11dGhBbmdsZSwgZmxvYXQgYWx0aXR1ZGVBbmdsZSwgZmxvYXQgcHJlc3N1
cmUsIG9iamVjdCBtb2RpZmllckFycmF5LCBvYmplY3QgY2FsbGJhY2spOwogCiAgICAgdm9pZCBl
bnRlclRleHQoRE9NU3RyaW5nIHRleHQpOwogICAgIHZvaWQgdHlwZUNoYXJhY3RlclVzaW5nSGFy
ZHdhcmVLZXlib2FyZChET01TdHJpbmcgY2hhcmFjdGVyLCBvYmplY3QgY2FsbGJhY2spOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRD
b250cm9sbGVyLmNwcCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJ
U2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggZTNiMjE2YmY1YTExMzRlNjc4ZDMwODZmYTMxNGEx
YzU3NjdmN2JmNi4uZjZkODRkNjUzYzEzNzBjOTI3NjM1YzZkYjRmOWJiZTcyMzM2OGFmZiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRD
b250cm9sbGVyLmNwcAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4
dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0yNjUsMTAgKzI2NSw2IEBAIHZvaWQgVUlTY3Jp
cHRDb250cm9sbGVyOjpzaW5nbGVUYXBBdFBvaW50KGxvbmcgeCwgbG9uZyB5LCBKU1ZhbHVlUmVm
KQogewogfQogCi12b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2luZ2xlVGFwQXRQb2ludFdpdGhN
b2RpZmllcnMobG9uZyB4LCBsb25nIHksIEpTVmFsdWVSZWYgbW9kaWZpZXJBcnJheSwgSlNWYWx1
ZVJlZiBjYWxsYmFjaykKLXsKLX0KLQogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmRvdWJsZVRh
cEF0UG9pbnQobG9uZyB4LCBsb25nIHksIEpTVmFsdWVSZWYpCiB7CiB9CkBAIC0yOTcsMTAgKzI5
Myw2IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzdHlsdXNUYXBBdFBvaW50KGxvbmcgeCwg
bG9uZyB5LCBmbG9hdCBhemltdXRoQW5nbGUsIGZsCiB7CiB9CiAKLXZvaWQgVUlTY3JpcHRDb250
cm9sbGVyOjpzdHlsdXNUYXBBdFBvaW50V2l0aE1vZGlmaWVycyhsb25nIHgsIGxvbmcgeSwgZmxv
YXQgYXppbXV0aEFuZ2xlLCBmbG9hdCBhbHRpdHVkZUFuZ2xlLCBmbG9hdCBwcmVzc3VyZSwgSlNW
YWx1ZVJlZiBtb2RpZmllckFycmF5LCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQotewotfQotCiB2b2lk
IFVJU2NyaXB0Q29udHJvbGxlcjo6c2VuZEV2ZW50U3RyZWFtKEpTU3RyaW5nUmVmIGV2ZW50c0pT
T04sIEpTVmFsdWVSZWYgY2FsbGJhY2spCiB7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVu
bmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCmluZGV4
IDlmNTQzMWE4NDBmNDE5YTUwYjRiMjU4YjJhOTE1MGM3OTNkMzE3MWEuLmY3NzA1M2I1ZmE0YjJj
MzQ0YWQ0ZDFmMjAzMjU0MGU4MDVkNTFhYzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCkBAIC03
OCw3ICs3OCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHRvdWNoRG93bkF0UG9pbnQobG9uZyB4LCBs
b25nIHksIGxvbmcgdG91Y2hDb3VudCwgSlNWYWx1ZVJlZiBjYWxsYmFjayk7CiAgICAgdm9pZCBs
aWZ0VXBBdFBvaW50KGxvbmcgeCwgbG9uZyB5LCBsb25nIHRvdWNoQ291bnQsIEpTVmFsdWVSZWYg
Y2FsbGJhY2spOwogICAgIHZvaWQgc2luZ2xlVGFwQXRQb2ludChsb25nIHgsIGxvbmcgeSwgSlNW
YWx1ZVJlZiBjYWxsYmFjayk7Ci0gICAgdm9pZCBzaW5nbGVUYXBBdFBvaW50V2l0aE1vZGlmaWVy
cyhsb25nIHgsIGxvbmcgeSwgSlNWYWx1ZVJlZiBtb2RpZmllckFycmF5LCBKU1ZhbHVlUmVmIGNh
bGxiYWNrKTsKICAgICB2b2lkIGRvdWJsZVRhcEF0UG9pbnQobG9uZyB4LCBsb25nIHksIEpTVmFs
dWVSZWYgY2FsbGJhY2spOwogICAgIHZvaWQgZHJhZ0Zyb21Qb2ludFRvUG9pbnQobG9uZyBzdGFy
dFgsIGxvbmcgc3RhcnRZLCBsb25nIGVuZFgsIGxvbmcgZW5kWSwgZG91YmxlIGR1cmF0aW9uU2Vj
b25kcywgSlNWYWx1ZVJlZiBjYWxsYmFjayk7CiAKQEAgLTg2LDcgKzg1LDYgQEAgcHVibGljOgog
ICAgIHZvaWQgc3R5bHVzTW92ZVRvUG9pbnQobG9uZyB4LCBsb25nIHksIGZsb2F0IGF6aW11dGhB
bmdsZSwgZmxvYXQgYWx0aXR1ZGVBbmdsZSwgZmxvYXQgcHJlc3N1cmUsIEpTVmFsdWVSZWYgY2Fs
bGJhY2spOwogICAgIHZvaWQgc3R5bHVzVXBBdFBvaW50KGxvbmcgeCwgbG9uZyB5LCBKU1ZhbHVl
UmVmIGNhbGxiYWNrKTsKICAgICB2b2lkIHN0eWx1c1RhcEF0UG9pbnQobG9uZyB4LCBsb25nIHks
IGZsb2F0IGF6aW11dGhBbmdsZSwgZmxvYXQgYWx0aXR1ZGVBbmdsZSwgZmxvYXQgcHJlc3N1cmUs
IEpTVmFsdWVSZWYgY2FsbGJhY2spOwotICAgIHZvaWQgc3R5bHVzVGFwQXRQb2ludFdpdGhNb2Rp
ZmllcnMobG9uZyB4LCBsb25nIHksIGZsb2F0IGF6aW11dGhBbmdsZSwgZmxvYXQgYWx0aXR1ZGVB
bmdsZSwgZmxvYXQgcHJlc3N1cmUsIEpTVmFsdWVSZWYgbW9kaWZpZXJBcnJheSwgSlNWYWx1ZVJl
ZiBjYWxsYmFjayk7CiAKICAgICB2b2lkIGxvbmdQcmVzc0F0UG9pbnQobG9uZyB4LCBsb25nIHks
IEpTVmFsdWVSZWYgY2FsbGJhY2spOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXggMTM4MzQyODVlNzM2YjQwMjkzMmQ1
MDgxODdlYjZmOTUwMzdiZDhjNS4uNmMxMGYwNmQwMzIyNWIwZTUwOTRiYjEzYTNlODdkMDc3NzMw
MzEyMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250
cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29u
dHJvbGxlcklPUy5tbQpAQCAtNjMsNDUgKzYzLDcgQEAgc3RhdGljIE5TRGljdGlvbmFyeSAqdG9O
U0RpY3Rpb25hcnkoQ0dSZWN0IHJlY3QpCiAgICAgICAgIEAiaGVpZ2h0IjogQChyZWN0LnNpemUu
aGVpZ2h0KQogICAgIH07CiB9Ci0KLXN0YXRpYyB1bnNpZ25lZCBhcnJheUxlbmd0aChKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgYXJyYXkpCi17Ci0gICAgYXV0byBsZW5ndGhTdHJp
bmcgPSBhZG9wdChKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygibGVuZ3RoIikpOwotICAg
IGlmIChhdXRvIGxlbmd0aFZhbHVlID0gSlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0LCBhcnJh
eSwgbGVuZ3RoU3RyaW5nLmdldCgpLCBudWxscHRyKSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgbGVuZ3RoVmFsdWUsIG51bGxw
dHIpKTsKLSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIFZlY3RvcjxTdHJpbmc+IHBhcnNlTW9k
aWZpZXJBcnJheShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBhcnJheVZhbHVlKQot
ewotICAgIGlmICghYXJyYXlWYWx1ZSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIC8vIFRo
ZSB2YWx1ZSBtYXkgZWl0aGVyIGJlIGEgc3RyaW5nIHdpdGggYSBzaW5nbGUgbW9kaWZpZXIgb3Ig
YW4gYXJyYXkgb2YgbW9kaWZpZXJzLgotICAgIGlmIChKU1ZhbHVlSXNTdHJpbmcoY29udGV4dCwg
YXJyYXlWYWx1ZSkpIHsKLSAgICAgICAgYXV0byBzdHJpbmcgPSB0b1dURlN0cmluZyh0b1dLKGFk
b3B0KEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJyYXlWYWx1ZSwgbnVsbHB0cikpKSk7
Ci0gICAgICAgIHJldHVybiB7IHN0cmluZyB9OwotICAgIH0KLQotICAgIGlmICghSlNWYWx1ZUlz
T2JqZWN0KGNvbnRleHQsIGFycmF5VmFsdWUpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIEpT
T2JqZWN0UmVmIGFycmF5ID0gY29uc3RfY2FzdDxKU09iamVjdFJlZj4oYXJyYXlWYWx1ZSk7Ci0g
ICAgdW5zaWduZWQgbGVuZ3RoID0gYXJyYXlMZW5ndGgoY29udGV4dCwgYXJyYXkpOwotICAgIFZl
Y3RvcjxTdHJpbmc+IG1vZGlmaWVyczsKLSAgICBtb2RpZmllcnMucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShsZW5ndGgpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkg
ewotICAgICAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgIEpTVmFs
dWVSZWYgdmFsdWUgPSBKU09iamVjdEdldFByb3BlcnR5QXRJbmRleChjb250ZXh0LCBhcnJheSwg
aSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgIGlmIChleGNlcHRpb24pCi0gICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgYXV0byBzdHJpbmcgPSBhZG9wdChKU1ZhbHVlVG9TdHJpbmdDb3B5KGNv
bnRleHQsIHZhbHVlLCAmZXhjZXB0aW9uKSk7Ci0gICAgICAgIGlmIChleGNlcHRpb24pCi0gICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgbW9kaWZpZXJzLmFwcGVuZCh0b1dURlN0cmluZyh0
b1dLKHN0cmluZy5nZXQoKSkpKTsKLSAgICB9Ci0gICAgcmV0dXJuIG1vZGlmaWVyczsKLX0KLQor
ICAgIAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmNoZWNrRm9yT3V0c3RhbmRpbmdDYWxsYmFj
a3MoKQogewogICAgIGlmICghW1tISURFdmVudEdlbmVyYXRvciBzaGFyZWRISURFdmVudEdlbmVy
YXRvcl0gY2hlY2tGb3JPdXRzdGFuZGluZ0NhbGxiYWNrc10pCkBAIC0yMzAsMzAgKzE5MiwxMyBA
QCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6bGlmdFVwQXRQb2ludChsb25nIHgsIGxvbmcgeSwg
bG9uZyB0b3VjaENvdW50LCBKU1ZhbHVlUgogfQogCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6
c2luZ2xlVGFwQXRQb2ludChsb25nIHgsIGxvbmcgeSwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKLXsK
LSAgICBzaW5nbGVUYXBBdFBvaW50V2l0aE1vZGlmaWVycyh4LCB5LCBudWxscHRyLCBjYWxsYmFj
ayk7Ci19Ci0KLXZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzaW5nbGVUYXBBdFBvaW50V2l0aE1v
ZGlmaWVycyhsb25nIHgsIGxvbmcgeSwgSlNWYWx1ZVJlZiBtb2RpZmllckFycmF5LCBKU1ZhbHVl
UmVmIGNhbGxiYWNrKQogewogICAgIHVuc2lnbmVkIGNhbGxiYWNrSUQgPSBtX2NvbnRleHQtPnBy
ZXBhcmVGb3JBc3luY1Rhc2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZU5vblBlcnNpc3RlbnQpOwog
Ci0gICAgYXV0byBtb2RpZmllckZsYWdzID0gcGFyc2VNb2RpZmllckFycmF5KG1fY29udGV4dC0+
anNDb250ZXh0KCksIG1vZGlmaWVyQXJyYXkpOwotICAgIGZvciAoYXV0byYgbW9kaWZpZXJGbGFn
IDogbW9kaWZpZXJGbGFncykKLSAgICAgICAgW1tISURFdmVudEdlbmVyYXRvciBzaGFyZWRISURF
dmVudEdlbmVyYXRvcl0ga2V5RG93bjptb2RpZmllckZsYWddOwotCiAgICAgW1tISURFdmVudEdl
bmVyYXRvciBzaGFyZWRISURFdmVudEdlbmVyYXRvcl0gdGFwOmdsb2JhbFRvQ29udGVudENvb3Jk
aW5hdGVzKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9y
bVZpZXcoKSwgeCwgeSkgY29tcGxldGlvbkJsb2NrOl57CiAgICAgICAgIGlmICghbV9jb250ZXh0
KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gbW9kaWZpZXJG
bGFncy5zaXplKCk7IGk7ICkgewotICAgICAgICAgICAgLS1pOwotICAgICAgICAgICAgW1tISURF
dmVudEdlbmVyYXRvciBzaGFyZWRISURFdmVudEdlbmVyYXRvcl0ga2V5VXA6bW9kaWZpZXJGbGFn
c1tpXV07Ci0gICAgICAgIH0KLSAgICAgICAgW1tISURFdmVudEdlbmVyYXRvciBzaGFyZWRISURF
dmVudEdlbmVyYXRvcl0gc2VuZE1hcmtlckhJREV2ZW50V2l0aENvbXBsZXRpb25CbG9jazpeewot
ICAgICAgICAgICAgaWYgKCFtX2NvbnRleHQpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgbV9jb250ZXh0LT5hc3luY1Rhc2tDb21wbGV0ZShjYWxsYmFja0lEKTsKLSAgICAg
ICAgfV07CisgICAgICAgIG1fY29udGV4dC0+YXN5bmNUYXNrQ29tcGxldGUoY2FsbGJhY2tJRCk7
CiAgICAgfV07CiB9CiAKQEAgLTMwNSwzNCArMjUwLDE3IEBAIHZvaWQgVUlTY3JpcHRDb250cm9s
bGVyOjpzdHlsdXNVcEF0UG9pbnQobG9uZyB4LCBsb25nIHksIEpTVmFsdWVSZWYgY2FsbGJhY2sp
CiB9CiAKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzdHlsdXNUYXBBdFBvaW50KGxvbmcgeCwg
bG9uZyB5LCBmbG9hdCBhemltdXRoQW5nbGUsIGZsb2F0IGFsdGl0dWRlQW5nbGUsIGZsb2F0IHBy
ZXNzdXJlLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQotewotICAgIHN0eWx1c1RhcEF0UG9pbnRXaXRo
TW9kaWZpZXJzKHgsIHksIGF6aW11dGhBbmdsZSwgYWx0aXR1ZGVBbmdsZSwgcHJlc3N1cmUsIG51
bGxwdHIsIGNhbGxiYWNrKTsKLX0KLQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnN0eWx1c1Rh
cEF0UG9pbnRXaXRoTW9kaWZpZXJzKGxvbmcgeCwgbG9uZyB5LCBmbG9hdCBhemltdXRoQW5nbGUs
IGZsb2F0IGFsdGl0dWRlQW5nbGUsIGZsb2F0IHByZXNzdXJlLCBKU1ZhbHVlUmVmIG1vZGlmaWVy
QXJyYXksIEpTVmFsdWVSZWYgY2FsbGJhY2spCiB7CiAgICAgdW5zaWduZWQgY2FsbGJhY2tJRCA9
IG1fY29udGV4dC0+cHJlcGFyZUZvckFzeW5jVGFzayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlTm9u
UGVyc2lzdGVudCk7CiAKLSAgICBhdXRvIG1vZGlmaWVyRmxhZ3MgPSBwYXJzZU1vZGlmaWVyQXJy
YXkobV9jb250ZXh0LT5qc0NvbnRleHQoKSwgbW9kaWZpZXJBcnJheSk7Ci0gICAgZm9yIChhdXRv
JiBtb2RpZmllckZsYWcgOiBtb2RpZmllckZsYWdzKQotICAgICAgICBbW0hJREV2ZW50R2VuZXJh
dG9yIHNoYXJlZEhJREV2ZW50R2VuZXJhdG9yXSBrZXlEb3duOm1vZGlmaWVyRmxhZ107Ci0KICAg
ICBhdXRvIGxvY2F0aW9uID0gZ2xvYmFsVG9Db250ZW50Q29vcmRpbmF0ZXMoVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpLCB4LCB5KTsKICAg
ICBbW0hJREV2ZW50R2VuZXJhdG9yIHNoYXJlZEhJREV2ZW50R2VuZXJhdG9yXSBzdHlsdXNUYXBB
dFBvaW50OmxvY2F0aW9uIGF6aW11dGhBbmdsZTphemltdXRoQW5nbGUgYWx0aXR1ZGVBbmdsZTph
bHRpdHVkZUFuZ2xlIHByZXNzdXJlOnByZXNzdXJlIGNvbXBsZXRpb25CbG9jazpeewogICAgICAg
ICBpZiAoIW1fY29udGV4dCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgZm9yIChzaXpl
X3QgaSA9IG1vZGlmaWVyRmxhZ3Muc2l6ZSgpOyBpOyApIHsKLSAgICAgICAgICAgIC0taTsKLSAg
ICAgICAgICAgIFtbSElERXZlbnRHZW5lcmF0b3Igc2hhcmVkSElERXZlbnRHZW5lcmF0b3JdIGtl
eVVwOm1vZGlmaWVyRmxhZ3NbaV1dOwotICAgICAgICB9Ci0gICAgICAgIFtbSElERXZlbnRHZW5l
cmF0b3Igc2hhcmVkSElERXZlbnRHZW5lcmF0b3JdIHNlbmRNYXJrZXJISURFdmVudFdpdGhDb21w
bGV0aW9uQmxvY2s6XnsKLSAgICAgICAgICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgIG1fY29udGV4dC0+YXN5bmNUYXNrQ29tcGxldGUoY2Fs
bGJhY2tJRCk7Ci0gICAgICAgIH1dOworICAgICAgICBtX2NvbnRleHQtPmFzeW5jVGFza0NvbXBs
ZXRlKGNhbGxiYWNrSUQpOwogICAgIH1dOwogfQotCisgICAgCiB2b2lkIGNvbnZlcnRDb29yZGlu
YXRlcyhOU011dGFibGVEaWN0aW9uYXJ5ICpldmVudCkKIHsKICAgICBpZiAoZXZlbnRbSElERXZl
bnRUb3VjaGVzS2V5XSkgewpAQCAtNDIxLDYgKzM0OSw0NCBAQCB2b2lkIFVJU2NyaXB0Q29udHJv
bGxlcjo6dHlwZUNoYXJhY3RlclVzaW5nSGFyZHdhcmVLZXlib2FyZChKU1N0cmluZ1JlZiBjaGFy
YWN0ZQogICAgIH1dOwogfQogCitzdGF0aWMgdW5zaWduZWQgYXJyYXlMZW5ndGgoSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGFycmF5KQoreworICAgIGF1dG8gbGVuZ3RoU3RyaW5n
ID0gYWRvcHQoSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImxlbmd0aCIpKTsKKyAgICBp
ZiAoYXV0byBsZW5ndGhWYWx1ZSA9IEpTT2JqZWN0R2V0UHJvcGVydHkoY29udGV4dCwgYXJyYXks
IGxlbmd0aFN0cmluZy5nZXQoKSwgbnVsbHB0cikpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGxlbmd0aFZhbHVlLCBudWxscHRy
KSk7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiBwYXJzZU1vZGlm
aWVyQXJyYXkoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgYXJyYXlWYWx1ZSkKK3sK
KyAgICBpZiAoIWFycmF5VmFsdWUpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICAvLyBUaGUg
dmFsdWUgbWF5IGVpdGhlciBiZSBhIHN0cmluZyB3aXRoIGEgc2luZ2xlIG1vZGlmaWVyIG9yIGFu
IGFycmF5IG9mIG1vZGlmaWVycy4KKyAgICBpZiAoSlNWYWx1ZUlzU3RyaW5nKGNvbnRleHQsIGFy
cmF5VmFsdWUpKSB7CisgICAgICAgIGF1dG8gc3RyaW5nID0gdG9XVEZTdHJpbmcodG9XSyhhZG9w
dChKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFycmF5VmFsdWUsIG51bGxwdHIpKSkpOwor
ICAgICAgICByZXR1cm4geyBzdHJpbmcgfTsKKyAgICB9CisKKyAgICBpZiAoIUpTVmFsdWVJc09i
amVjdChjb250ZXh0LCBhcnJheVZhbHVlKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBKU09i
amVjdFJlZiBhcnJheSA9IGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KGFycmF5VmFsdWUpOworICAg
IHVuc2lnbmVkIGxlbmd0aCA9IGFycmF5TGVuZ3RoKGNvbnRleHQsIGFycmF5KTsKKyAgICBWZWN0
b3I8U3RyaW5nPiBtb2RpZmllcnM7CisgICAgbW9kaWZpZXJzLnJlc2VydmVJbml0aWFsQ2FwYWNp
dHkobGVuZ3RoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsK
KyAgICAgICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSBudWxscHRyOworICAgICAgICBKU1ZhbHVl
UmVmIHZhbHVlID0gSlNPYmplY3RHZXRQcm9wZXJ0eUF0SW5kZXgoY29udGV4dCwgYXJyYXksIGks
ICZleGNlcHRpb24pOworICAgICAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIGF1dG8gc3RyaW5nID0gYWRvcHQoSlNWYWx1ZVRvU3RyaW5nQ29weShjb250
ZXh0LCB2YWx1ZSwgJmV4Y2VwdGlvbikpOworICAgICAgICBpZiAoZXhjZXB0aW9uKQorICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIG1vZGlmaWVycy5hcHBlbmQodG9XVEZTdHJpbmcodG9X
SyhzdHJpbmcuZ2V0KCkpKSk7CisgICAgfQorICAgIHJldHVybiBtb2RpZmllcnM7Cit9CisKIHN0
YXRpYyBVSVBoeXNpY2FsS2V5Ym9hcmRFdmVudCAqY3JlYXRlVUlQaHlzaWNhbEtleWJvYXJkRXZl
bnQoTlNTdHJpbmcgKmhpZElucHV0U3RyaW5nLCBOU1N0cmluZyAqdWlFdmVudElucHV0U3RyaW5n
LCBVSUtleU1vZGlmaWVyRmxhZ3MgbW9kaWZpZXJGbGFncywgVUlLZXlib2FyZElucHV0RmxhZ3Mg
aW5wdXRGbGFncywgYm9vbCBpc0tleURvd24pCiB7CiAgICAgYXV0byoga2V5Ym9hcmRFdmVudCA9
IFtnZXRVSVBoeXNpY2FsS2V5Ym9hcmRFdmVudENsYXNzKCkgX2V2ZW50V2l0aElucHV0OnVpRXZl
bnRJbnB1dFN0cmluZyBpbnB1dEZsYWdzOmlucHV0RmxhZ3NdOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZkMTllNzdiZmIy
OWUwODEwOWNjMmRlODlkODNhMGI0MGJjNWNlMTguLjc1MGFhOGZhMmI2YjI3ZjY5YjljYmY5OTU1
OGM2MWYwZjRmYzYwNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxOS0wMi0xMSAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjI0MTI3MiBhbmQgcjI0MTI3Mi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDUxMworCisgICAgICAgIEJyb2tlIHRoZSBBcHBs
ZSBJbnRlcm5hbCBidWlsZCBhbmQgdGhlIGZpeCByZXF1aXJlcyBodW1hbgorICAgICAgICBpbnRl
cnZlbnRpb24gOiggKFJlcXVlc3RlZCBieSBkeWR6IG9uICN3ZWJraXQpLgorCisgICAgICAgIFJl
dmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAgIltpT1NdIE1vdXNlL1RvdWNoL1BvaW50ZXIg
ZXZlbnRzIGFyZSBtaXNzaW5nIG1vZGlmaWVyIGtleXMiCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0NDYKKyAgICAgICAgaHR0cHM6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0LzI0MTI3MgorCisgICAgICAgICJbaU9TXSBNb3VzZS9Ub3VjaC9Q
b2ludGVyIGV2ZW50cyBhcmUgbWlzc2luZyBtb2RpZmllciBrZXlzIgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxNDQ2CisgICAgICAgIGh0dHBzOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNDEyNzIKKwogMjAxOS0wMi0xMSAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBmYXN0L2Zvcm1zL2lvcy9m
b3JjZS1ncmVnb3JpYW4tY2FsZW5kYXItZm9yLWNyZWRpdC1jYXJkLWV4cGlyeS5odG1sIGRvZXMg
bm90IHdvcmsgb24gaVBhZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9z
L2tleS1ldmVudHMtbWV0YS1hbHQtY29tYmluYXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9pb3Mva2V5LWV2ZW50cy1tZXRhLWFsdC1jb21iaW5hdGlvbnMuaHRtbAppbmRleCA0
ZjBlNWFmNzk3YzFkNTU1YzFiNTdkNWY5NjFhMDVjZmY0Mzg3MTBmLi5mZTg4ZDM0MWViZGJhMWQ4
NzQxMGYwOTc5YzgzZjM2NGY2MTZjMjYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9pb3Mva2V5LWV2ZW50cy1tZXRhLWFsdC1jb21iaW5hdGlvbnMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mva2V5LWV2ZW50cy1tZXRhLWFsdC1jb21iaW5hdGlvbnMu
aHRtbApAQCAtMiwxMiArMiwxMSBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvY29tcHV0ZS1zdWJzZXRzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMva2V5LXRlc3Rlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogY29uc3QgbW9kaWZlcktl
eVN1YnNldHNUb1Rlc3QgPSBjb21wdXRlU3Vic2V0cyhbIm1ldGFLZXkiLCAiYWx0S2V5Il0pOwog
Zm9yIChjb25zdCBrIG9mIGtleXNFeGNsdWRpbmdEZWFkQW5kU2tpcHBlZEtleXMpIHsKLSAgICBm
b3IgKGNvbnN0IG1vZGlmaWVycyBvZiBjb21wdXRlU3Vic2V0cyhtb2RpZmllcktleXMpKQorICAg
IGZvciAoY29uc3QgbW9kaWZpZXJzIG9mIG1vZGlmZXJLZXlTdWJzZXRzVG9UZXN0KQogICAgICAg
ICB0ZXN0cy5wdXNoKG5ldyBLZXlDb21tYW5kKGssIG1vZGlmaWVycykpOwogfQogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3MvcmVzb3VyY2VzL2tleS10
ZXN0ZXIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3MvcmVzb3VyY2VzL2tleS10ZXN0
ZXIuanMKaW5kZXggNjBkYmU5ZWNlN2RkNmUzY2FjZTgzZmQ1NjQ5YTQ0ZWMzZWQyYjM1Yy4uNTc0
ODA3MGIzYjhmYTNiNmZiODBiZTdlYmI4NDQ1MzdjNmNkYmE0MCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Jlc291cmNlcy9rZXktdGVzdGVyLmpzCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9yZXNvdXJjZXMva2V5LXRlc3Rlci5qcwpAQCAtNTMsNiAr
NTMsNDMgQEAgZnVuY3Rpb24ga2V5Q29tbWFuZHNIYXNDb21tYW5kKGtleUNvbW1hbmRzLCBjb21t
YW5kKQogICAgIHJldHVybiAhIWtleUNvbW1hbmRzLmZpbmQoKGspID0+IGFyZUtleUNvbW1hbmRz
RXF1YWwoaywgY29tbWFuZCkpOwogfQogCisvLyBUaGlzIGFsZ29yaXRobSBydW5zIGluIE8oMl5O
KS4KK2Z1bmN0aW9uIGNvbXB1dGVTdWJzZXRzKGFuQXJyYXkpCit7CisgICAgZnVuY3Rpb24gY29t
cGFyZUJ5TW9kaWZpZXJPcmRlcihhLCBiKSB7CisgICAgICAgIGlmIChhLmxlbmd0aCA8IGIubGVu
Z3RoKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBpZiAoYS5sZW5ndGggPiBiLmxl
bmd0aCkKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGxldCByYW5rQSA9IGFuQXJyYXkuaW5kZXhP
ZihhW2ldKTsKKyAgICAgICAgICAgIGxldCByYW5rQiA9IGFuQXJyYXkuaW5kZXhPZihiW2ldKTsK
KyAgICAgICAgICAgIGlmIChyYW5rQSA8IHJhbmtCKQorICAgICAgICAgICAgICAgIHJldHVybiAt
MTsKKyAgICAgICAgICAgIGlmIChyYW5rQSA+IHJhbmtCKQorICAgICAgICAgICAgICAgIHJldHVy
biAxOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBsZXQgcmVzdWx0
ID0gW107CisgICAgY29uc3QgbnVtYmVyT2ZOb25FbXB0eVBlcm11dGF0aW9ucyA9ICgxIDw8IGFu
QXJyYXkubGVuZ3RoKSAtIDE7CisgICAgLy8gRm9yIGVhY2ggb3JkaW5hbCAxLCAyLCAuLi4gbnVt
YmVyT2ZOb25FbXB0eVBlcm11dGF0aW9ucyB3ZSBsb29rIGF0IGl0cyBiaW5hcnkgcmVwcmVzZW50
YXRpb24KKyAgICAvLyBhbmQgZ2VuZXJhdGUgYSBwZXJtdXRhdGlvbiB0aGF0IGNvbnNpc3RzIG9m
IHRoZSBlbnRyaWVzIGluIGFuQXJyYXkgYXQgdGhlIGluZGljZXMgd2hlcmUgdGhlcmUKKyAgICAv
LyBpcyBhIG9uZSBiaXQgaW4gdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbi4gRm9yIGV4YW1wbGUs
IHN1cHBvc2UgYW5BcnJheSA9IFsibWV0YUtleSIsICJhbHRLZXkiLCAiY3RybEtleSJdLgorICAg
IC8vIFRvIGdlbmVyYXRlIHRoZSA1dGggcGVybXV0YXRpb24gd2UgbG9vayBhdCB0aGUgYmluYXJ5
IHJlcHJlc2VudGF0aW9uIG9mIGkgPSA1ID0+IDBiMTAxLiBBbmQKKyAgICAvLyBjb21wdXRlIHRo
ZSBwZXJtdXRhdGlvbiB0byBiZSBbIGFuQXJyYXlbMF0sIGFuQXJyYXlbMl0gXSA9IFsgIm1ldGFL
ZXkiLCAiY3RybEtleSIgXSBiZWNhdXNlCisgICAgLy8gdGhlIDB0aCBhbmQgMm5kIGJpdHMgYXJl
IG9uZXMgaW4gdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbi4KKyAgICBmb3IgKGxldCBpID0gMTsg
aSA8PSBudW1iZXJPZk5vbkVtcHR5UGVybXV0YXRpb25zOyArK2kpIHsKKyAgICAgICAgbGV0IHRl
bXAgPSBbXTsKKyAgICAgICAgZm9yIChsZXQgYml0bWFzayA9IGksIGogPSAwOyBiaXRtYXNrOyBi
aXRtYXNrID0gTWF0aC5mbG9vcihiaXRtYXNrIC8gMiksICsraikgeworICAgICAgICAgICAgaWYg
KGJpdG1hc2sgJSAyKQorICAgICAgICAgICAgICAgIHRlbXAucHVzaChhbkFycmF5W2pdKTsKKyAg
ICAgICAgfQorICAgICAgICByZXN1bHQucHVzaCh0ZW1wKTsKKyAgICB9CisgICAgcmV0dXJuIHJl
c3VsdC5zb3J0KGNvbXBhcmVCeU1vZGlmaWVyT3JkZXIpOworfQorCiBjb25zdCBrZXlzID0gbmV3
IFNldCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LT1bXVxcOycsLi8iLnNw
bGl0KCIiKSk7CiBjb25zdCBkZWFkS2V5cyA9IG5ldyBTZXQoImBldWluIi5zcGxpdCgiIikpOwog
Y29uc3Qga2V5c0V4Y2x1ZGluZ0RlYWRLZXlzID0gY29tcHV0ZURpZmZlcmVuY2Uoa2V5cywgZGVh
ZEtleXMpOwpAQCAtODAsNiArMTE3LDcgQEAgZm9yIChsZXQgaSA9IDE7IGkgPD0gOTsgKytpKQog
ICAgIGRpc2FsbG93ZWRLZXlDb21tYW5kcy5wdXNoKG5ldyBLZXlDb21tYW5kKGksIFsibWV0YUtl
eSJdKSk7CiAKIGNvbnN0IG1vZGlmaWVyS2V5cyA9IFsibWV0YUtleSIsICJhbHRLZXkiLCAiY3Ry
bEtleSIsICJzaGlmdEtleSJdOworY29uc3QgbW9kaWZlcktleVN1YnNldHMgPSBjb21wdXRlU3Vi
c2V0cyhtb2RpZmllcktleXMpOwogCiBsZXQgdGVzdHMgPSBbXTsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL2NvbXB1dGUtc3Vic2V0cy5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9jb21wdXRlLXN1YnNldHMuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwZjkyODc2ZWE2MDRiNjQ4ZGU3ODdkM2U3NzIzZjFhMmNj
MTJhNmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL2NvbXB1dGUtc3Vic2V0cy5qcworKysgL2Rl
di9udWxsCkBAIC0xLDM2ICswLDAgQEAKLS8vIFRoaXMgYWxnb3JpdGhtIHJ1bnMgaW4gTygyXk4p
LgotZnVuY3Rpb24gY29tcHV0ZVN1YnNldHMoYW5BcnJheSkKLXsKLSAgICBmdW5jdGlvbiBjb21w
YXJlQnlPcmlnaW5hbEFycmF5T3JkZXIoYSwgYikgewotICAgICAgICBpZiAoYS5sZW5ndGggPCBi
Lmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgaWYgKGEubGVuZ3RoID4g
Yi5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCBhLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBsZXQgcmFua0EgPSBhbkFycmF5Lmlu
ZGV4T2YoYVtpXSk7Ci0gICAgICAgICAgICBsZXQgcmFua0IgPSBhbkFycmF5LmluZGV4T2YoYltp
XSk7Ci0gICAgICAgICAgICBpZiAocmFua0EgPCByYW5rQikKLSAgICAgICAgICAgICAgICByZXR1
cm4gLTE7Ci0gICAgICAgICAgICBpZiAocmFua0EgPiByYW5rQikKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gMTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgbGV0IHJl
c3VsdCA9IFtdOwotICAgIGNvbnN0IG51bWJlck9mTm9uRW1wdHlQZXJtdXRhdGlvbnMgPSAoMSA8
PCBhbkFycmF5Lmxlbmd0aCkgLSAxOwotICAgIC8vIEZvciBlYWNoIG9yZGluYWwgMSwgMiwgLi4u
IG51bWJlck9mTm9uRW1wdHlQZXJtdXRhdGlvbnMgd2UgbG9vayBhdCBpdHMgYmluYXJ5IHJlcHJl
c2VudGF0aW9uCi0gICAgLy8gYW5kIGdlbmVyYXRlIGEgcGVybXV0YXRpb24gdGhhdCBjb25zaXN0
cyBvZiB0aGUgZW50cmllcyBpbiBhbkFycmF5IGF0IHRoZSBpbmRpY2VzIHdoZXJlIHRoZXJlCi0g
ICAgLy8gaXMgYSBvbmUgYml0IGluIHRoZSBiaW5hcnkgcmVwcmVzZW50YXRpb24uIEZvciBleGFt
cGxlLCBzdXBwb3NlIGFuQXJyYXkgPSBbIm1ldGFLZXkiLCAiYWx0S2V5IiwgImN0cmxLZXkiXS4K
LSAgICAvLyBUbyBnZW5lcmF0ZSB0aGUgNXRoIHBlcm11dGF0aW9uIHdlIGxvb2sgYXQgdGhlIGJp
bmFyeSByZXByZXNlbnRhdGlvbiBvZiBpID0gNSA9PiAwYjEwMS4gQW5kCi0gICAgLy8gY29tcHV0
ZSB0aGUgcGVybXV0YXRpb24gdG8gYmUgWyBhbkFycmF5WzBdLCBhbkFycmF5WzJdIF0gPSBbICJt
ZXRhS2V5IiwgImN0cmxLZXkiIF0gYmVjYXVzZQotICAgIC8vIHRoZSAwdGggYW5kIDJuZCBiaXRz
IGFyZSBvbmVzIGluIHRoZSBiaW5hcnkgcmVwcmVzZW50YXRpb24uCi0gICAgZm9yIChsZXQgaSA9
IDE7IGkgPD0gbnVtYmVyT2ZOb25FbXB0eVBlcm11dGF0aW9uczsgKytpKSB7Ci0gICAgICAgIGxl
dCB0ZW1wID0gW107Ci0gICAgICAgIGZvciAobGV0IGJpdG1hc2sgPSBpLCBqID0gMDsgYml0bWFz
azsgYml0bWFzayA9IE1hdGguZmxvb3IoYml0bWFzayAvIDIpLCArK2opIHsKLSAgICAgICAgICAg
IGlmIChiaXRtYXNrICUgMikKLSAgICAgICAgICAgICAgICB0ZW1wLnB1c2goYW5BcnJheVtqXSk7
Ci0gICAgICAgIH0KLSAgICAgICAgcmVzdWx0LnB1c2godGVtcCk7Ci0gICAgfQotICAgIHJldHVy
biByZXN1bHQuc29ydChjb21wYXJlQnlPcmlnaW5hbEFycmF5T3JkZXIpOwotfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL21vdXNlLWV2ZW50cy13aXRoLW1v
ZGlmaWVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
bW91c2UtZXZlbnRzLXdpdGgtbW9kaWZpZXJzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggODA1MTM4MzY3NGQ5ZTNjYTJiZWMxYWM3MDNlYjljZGRkMTJhODEyNC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbW91c2UtZXZlbnRzLXdpdGgtbW9kaWZpZXJzLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLVRoaXMgbG9ncyBET00gbW91
c2Vkb3duLCBtb3VzZW1vdmUsIGFuZCBtb3VzZXVwIGV2ZW50cyB0aGF0IGFyZSBkaXNwYXRjaGVk
IHdoZW4gc2luZ2xlIHRhcHBpbmcgYW4gZWxlbWVudCB3aGlsZSBob2xkaW5nIG1vZGlmaWVyIGtl
eXMuIE11c3QgYmUgcnVuIGluIFdlYktpdFRlc3RSdW5uZXIuCi0KLQotVGVzdCBDb21tYW5kICsg
U2luZ2xlIFRhcDoKLXR5cGU6IG1vdXNlbW92ZSwgeDogNzIsIHk6IDEzNiwgb2Zmc2V0WDogNjQs
IG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6IDcyLCBzY3JlZW5Z
OiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtleTogZmFsc2UsIGN0cmxLZXk6
IGZhbHNlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTogZmFsc2UKLXR5cGU6IG1vdXNlZG93biwg
eDogNzIsIHk6IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1dHRv
bnM6IDAsIHNjcmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZOiAx
MzYsIGFsdEtleTogZmFsc2UsIGN0cmxLZXk6IGZhbHNlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtl
eTogZmFsc2UKLXR5cGU6IG1vdXNldXAsIHg6IDcyLCB5OiAxMzYsIG9mZnNldFg6IDY0LCBvZmZz
ZXRZOiA2NCwgYnV0dG9uOiAwLCBidXR0b25zOiAwLCBzY3JlZW5YOiA3Miwgc2NyZWVuWTogMTM2
LCBjbGllbnRYOiA3MiwgY2xpZW50WTogMTM2LCBhbHRLZXk6IGZhbHNlLCBjdHJsS2V5OiBmYWxz
ZSwgbWV0YUtleTogdHJ1ZSwgc2hpZnRLZXk6IGZhbHNlCi0KLVRlc3QgT3B0aW9uICsgU2luZ2xl
IFRhcDoKLXR5cGU6IG1vdXNlbW92ZSwgeDogNzIsIHk6IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNl
dFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYs
IGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtleTogdHJ1ZSwgY3RybEtleTogZmFsc2Us
IG1ldGFLZXk6IGZhbHNlLCBzaGlmdEtleTogZmFsc2UKLXR5cGU6IG1vdXNlZG93biwgeDogNzIs
IHk6IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6IDAs
IHNjcmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYsIGFs
dEtleTogdHJ1ZSwgY3RybEtleTogZmFsc2UsIG1ldGFLZXk6IGZhbHNlLCBzaGlmdEtleTogZmFs
c2UKLXR5cGU6IG1vdXNldXAsIHg6IDcyLCB5OiAxMzYsIG9mZnNldFg6IDY0LCBvZmZzZXRZOiA2
NCwgYnV0dG9uOiAwLCBidXR0b25zOiAwLCBzY3JlZW5YOiA3Miwgc2NyZWVuWTogMTM2LCBjbGll
bnRYOiA3MiwgY2xpZW50WTogMTM2LCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6IGZhbHNlLCBtZXRh
S2V5OiBmYWxzZSwgc2hpZnRLZXk6IGZhbHNlCi0KLVRlc3QgQ29udHJvbCArIFNpbmdsZSBUYXA6
Ci10eXBlOiBtb3VzZW1vdmUsIHg6IDcyLCB5OiAxMzYsIG9mZnNldFg6IDY0LCBvZmZzZXRZOiA2
NCwgYnV0dG9uOiAwLCBidXR0b25zOiAwLCBzY3JlZW5YOiA3Miwgc2NyZWVuWTogMTM2LCBjbGll
bnRYOiA3MiwgY2xpZW50WTogMTM2LCBhbHRLZXk6IGZhbHNlLCBjdHJsS2V5OiB0cnVlLCBtZXRh
S2V5OiBmYWxzZSwgc2hpZnRLZXk6IGZhbHNlCi10eXBlOiBtb3VzZWRvd24sIHg6IDcyLCB5OiAx
MzYsIG9mZnNldFg6IDY0LCBvZmZzZXRZOiA2NCwgYnV0dG9uOiAwLCBidXR0b25zOiAwLCBzY3Jl
ZW5YOiA3Miwgc2NyZWVuWTogMTM2LCBjbGllbnRYOiA3MiwgY2xpZW50WTogMTM2LCBhbHRLZXk6
IGZhbHNlLCBjdHJsS2V5OiB0cnVlLCBtZXRhS2V5OiBmYWxzZSwgc2hpZnRLZXk6IGZhbHNlCi10
eXBlOiBtb3VzZXVwLCB4OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1
dHRvbjogMCwgYnV0dG9uczogMCwgc2NyZWVuWDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDog
NzIsIGNsaWVudFk6IDEzNiwgYWx0S2V5OiBmYWxzZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtleTog
ZmFsc2UsIHNoaWZ0S2V5OiBmYWxzZQotCi1UZXN0IFNoaWZ0ICsgU2luZ2xlIFRhcDoKLXR5cGU6
IG1vdXNlbW92ZSwgeDogNzIsIHk6IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0
b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcy
LCBjbGllbnRZOiAxMzYsIGFsdEtleTogZmFsc2UsIGN0cmxLZXk6IGZhbHNlLCBtZXRhS2V5OiBm
YWxzZSwgc2hpZnRLZXk6IHRydWUKLXR5cGU6IG1vdXNlZG93biwgeDogNzIsIHk6IDEzNiwgb2Zm
c2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6IDcy
LCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtleTogZmFsc2Us
IGN0cmxLZXk6IGZhbHNlLCBtZXRhS2V5OiBmYWxzZSwgc2hpZnRLZXk6IHRydWUKLXR5cGU6IG1v
dXNldXAsIHg6IDcyLCB5OiAxMzYsIG9mZnNldFg6IDY0LCBvZmZzZXRZOiA2NCwgYnV0dG9uOiAw
LCBidXR0b25zOiAwLCBzY3JlZW5YOiA3Miwgc2NyZWVuWTogMTM2LCBjbGllbnRYOiA3MiwgY2xp
ZW50WTogMTM2LCBhbHRLZXk6IGZhbHNlLCBjdHJsS2V5OiBmYWxzZSwgbWV0YUtleTogZmFsc2Us
IHNoaWZ0S2V5OiB0cnVlCi0KLVRlc3QgQ29tbWFuZCArIE9wdGlvbiArIFNpbmdsZSBUYXA6Ci10
eXBlOiBtb3VzZW1vdmUsIHg6IDcyLCB5OiAxMzYsIG9mZnNldFg6IDY0LCBvZmZzZXRZOiA2NCwg
YnV0dG9uOiAwLCBidXR0b25zOiAwLCBzY3JlZW5YOiA3Miwgc2NyZWVuWTogMTM2LCBjbGllbnRY
OiA3MiwgY2xpZW50WTogMTM2LCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6IGZhbHNlLCBtZXRhS2V5
OiB0cnVlLCBzaGlmdEtleTogZmFsc2UKLXR5cGU6IG1vdXNlZG93biwgeDogNzIsIHk6IDEzNiwg
b2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6
IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtleTogdHJ1
ZSwgY3RybEtleTogZmFsc2UsIG1ldGFLZXk6IHRydWUsIHNoaWZ0S2V5OiBmYWxzZQotdHlwZTog
bW91c2V1cCwgeDogNzIsIHk6IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0b246
IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBj
bGllbnRZOiAxMzYsIGFsdEtleTogdHJ1ZSwgY3RybEtleTogZmFsc2UsIG1ldGFLZXk6IHRydWUs
IHNoaWZ0S2V5OiBmYWxzZQotCi1UZXN0IENvbW1hbmQgKyBDb250cm9sICsgU2luZ2xlIFRhcDoK
LXR5cGU6IG1vdXNlbW92ZSwgeDogNzIsIHk6IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0
LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVu
dFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtleTogZmFsc2UsIGN0cmxLZXk6IHRydWUsIG1ldGFL
ZXk6IHRydWUsIHNoaWZ0S2V5OiBmYWxzZQotdHlwZTogbW91c2Vkb3duLCB4OiA3MiwgeTogMTM2
LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczogMCwgc2NyZWVu
WDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwgYWx0S2V5OiBm
YWxzZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtleTogdHJ1ZSwgc2hpZnRLZXk6IGZhbHNlCi10eXBl
OiBtb3VzZXVwLCB4OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRv
bjogMCwgYnV0dG9uczogMCwgc2NyZWVuWDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIs
IGNsaWVudFk6IDEzNiwgYWx0S2V5OiBmYWxzZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtleTogdHJ1
ZSwgc2hpZnRLZXk6IGZhbHNlCi0KLVRlc3QgQ29tbWFuZCArIFNoaWZ0ICsgU2luZ2xlIFRhcDoK
LXR5cGU6IG1vdXNlbW92ZSwgeDogNzIsIHk6IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0
LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVu
dFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtleTogZmFsc2UsIGN0cmxLZXk6IGZhbHNlLCBtZXRh
S2V5OiB0cnVlLCBzaGlmdEtleTogdHJ1ZQotdHlwZTogbW91c2Vkb3duLCB4OiA3MiwgeTogMTM2
LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczogMCwgc2NyZWVu
WDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwgYWx0S2V5OiBm
YWxzZSwgY3RybEtleTogZmFsc2UsIG1ldGFLZXk6IHRydWUsIHNoaWZ0S2V5OiB0cnVlCi10eXBl
OiBtb3VzZXVwLCB4OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRv
bjogMCwgYnV0dG9uczogMCwgc2NyZWVuWDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIs
IGNsaWVudFk6IDEzNiwgYWx0S2V5OiBmYWxzZSwgY3RybEtleTogZmFsc2UsIG1ldGFLZXk6IHRy
dWUsIHNoaWZ0S2V5OiB0cnVlCi0KLVRlc3QgT3B0aW9uICsgQ29udHJvbCArIFNpbmdsZSBUYXA6
Ci10eXBlOiBtb3VzZW1vdmUsIHg6IDcyLCB5OiAxMzYsIG9mZnNldFg6IDY0LCBvZmZzZXRZOiA2
NCwgYnV0dG9uOiAwLCBidXR0b25zOiAwLCBzY3JlZW5YOiA3Miwgc2NyZWVuWTogMTM2LCBjbGll
bnRYOiA3MiwgY2xpZW50WTogMTM2LCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6IHRydWUsIG1ldGFL
ZXk6IGZhbHNlLCBzaGlmdEtleTogZmFsc2UKLXR5cGU6IG1vdXNlZG93biwgeDogNzIsIHk6IDEz
Niwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVl
blg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtleTog
dHJ1ZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtleTogZmFsc2UsIHNoaWZ0S2V5OiBmYWxzZQotdHlw
ZTogbW91c2V1cCwgeDogNzIsIHk6IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0
b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcy
LCBjbGllbnRZOiAxMzYsIGFsdEtleTogdHJ1ZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtleTogZmFs
c2UsIHNoaWZ0S2V5OiBmYWxzZQotCi1UZXN0IE9wdGlvbiArIFNoaWZ0ICsgU2luZ2xlIFRhcDoK
LXR5cGU6IG1vdXNlbW92ZSwgeDogNzIsIHk6IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0
LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVu
dFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtleTogdHJ1ZSwgY3RybEtleTogZmFsc2UsIG1ldGFL
ZXk6IGZhbHNlLCBzaGlmdEtleTogdHJ1ZQotdHlwZTogbW91c2Vkb3duLCB4OiA3MiwgeTogMTM2
LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczogMCwgc2NyZWVu
WDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwgYWx0S2V5OiB0
cnVlLCBjdHJsS2V5OiBmYWxzZSwgbWV0YUtleTogZmFsc2UsIHNoaWZ0S2V5OiB0cnVlCi10eXBl
OiBtb3VzZXVwLCB4OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRv
bjogMCwgYnV0dG9uczogMCwgc2NyZWVuWDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIs
IGNsaWVudFk6IDEzNiwgYWx0S2V5OiB0cnVlLCBjdHJsS2V5OiBmYWxzZSwgbWV0YUtleTogZmFs
c2UsIHNoaWZ0S2V5OiB0cnVlCi0KLVRlc3QgQ29udHJvbCArIFNoaWZ0ICsgU2luZ2xlIFRhcDoK
LXR5cGU6IG1vdXNlbW92ZSwgeDogNzIsIHk6IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0
LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVu
dFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtleTogZmFsc2UsIGN0cmxLZXk6IHRydWUsIG1ldGFL
ZXk6IGZhbHNlLCBzaGlmdEtleTogdHJ1ZQotdHlwZTogbW91c2Vkb3duLCB4OiA3MiwgeTogMTM2
LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczogMCwgc2NyZWVu
WDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwgYWx0S2V5OiBm
YWxzZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtleTogZmFsc2UsIHNoaWZ0S2V5OiB0cnVlCi10eXBl
OiBtb3VzZXVwLCB4OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRv
bjogMCwgYnV0dG9uczogMCwgc2NyZWVuWDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIs
IGNsaWVudFk6IDEzNiwgYWx0S2V5OiBmYWxzZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtleTogZmFs
c2UsIHNoaWZ0S2V5OiB0cnVlCi0KLVRlc3QgQ29tbWFuZCArIE9wdGlvbiArIENvbnRyb2wgKyBT
aW5nbGUgVGFwOgotdHlwZTogbW91c2Vtb3ZlLCB4OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwg
b2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczogMCwgc2NyZWVuWDogNzIsIHNjcmVlblk6
IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwgYWx0S2V5OiB0cnVlLCBjdHJsS2V5OiB0
cnVlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTogZmFsc2UKLXR5cGU6IG1vdXNlZG93biwgeDog
NzIsIHk6IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6
IDAsIHNjcmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYs
IGFsdEtleTogdHJ1ZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtleTogdHJ1ZSwgc2hpZnRLZXk6IGZh
bHNlCi10eXBlOiBtb3VzZXVwLCB4OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTog
NjQsIGJ1dHRvbjogMCwgYnV0dG9uczogMCwgc2NyZWVuWDogNzIsIHNjcmVlblk6IDEzNiwgY2xp
ZW50WDogNzIsIGNsaWVudFk6IDEzNiwgYWx0S2V5OiB0cnVlLCBjdHJsS2V5OiB0cnVlLCBtZXRh
S2V5OiB0cnVlLCBzaGlmdEtleTogZmFsc2UKLQotVGVzdCBDb21tYW5kICsgT3B0aW9uICsgU2hp
ZnQgKyBTaW5nbGUgVGFwOgotdHlwZTogbW91c2Vtb3ZlLCB4OiA3MiwgeTogMTM2LCBvZmZzZXRY
OiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczogMCwgc2NyZWVuWDogNzIsIHNj
cmVlblk6IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwgYWx0S2V5OiB0cnVlLCBjdHJs
S2V5OiBmYWxzZSwgbWV0YUtleTogdHJ1ZSwgc2hpZnRLZXk6IHRydWUKLXR5cGU6IG1vdXNlZG93
biwgeDogNzIsIHk6IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1
dHRvbnM6IDAsIHNjcmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZ
OiAxMzYsIGFsdEtleTogdHJ1ZSwgY3RybEtleTogZmFsc2UsIG1ldGFLZXk6IHRydWUsIHNoaWZ0
S2V5OiB0cnVlCi10eXBlOiBtb3VzZXVwLCB4OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwgb2Zm
c2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczogMCwgc2NyZWVuWDogNzIsIHNjcmVlblk6IDEz
NiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwgYWx0S2V5OiB0cnVlLCBjdHJsS2V5OiBmYWxz
ZSwgbWV0YUtleTogdHJ1ZSwgc2hpZnRLZXk6IHRydWUKLQotVGVzdCBDb21tYW5kICsgQ29udHJv
bCArIFNoaWZ0ICsgU2luZ2xlIFRhcDoKLXR5cGU6IG1vdXNlbW92ZSwgeDogNzIsIHk6IDEzNiwg
b2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6
IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtleTogZmFs
c2UsIGN0cmxLZXk6IHRydWUsIG1ldGFLZXk6IHRydWUsIHNoaWZ0S2V5OiB0cnVlCi10eXBlOiBt
b3VzZWRvd24sIHg6IDcyLCB5OiAxMzYsIG9mZnNldFg6IDY0LCBvZmZzZXRZOiA2NCwgYnV0dG9u
OiAwLCBidXR0b25zOiAwLCBzY3JlZW5YOiA3Miwgc2NyZWVuWTogMTM2LCBjbGllbnRYOiA3Miwg
Y2xpZW50WTogMTM2LCBhbHRLZXk6IGZhbHNlLCBjdHJsS2V5OiB0cnVlLCBtZXRhS2V5OiB0cnVl
LCBzaGlmdEtleTogdHJ1ZQotdHlwZTogbW91c2V1cCwgeDogNzIsIHk6IDEzNiwgb2Zmc2V0WDog
NjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6IDcyLCBzY3Jl
ZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtleTogZmFsc2UsIGN0cmxL
ZXk6IHRydWUsIG1ldGFLZXk6IHRydWUsIHNoaWZ0S2V5OiB0cnVlCi0KLVRlc3QgT3B0aW9uICsg
Q29udHJvbCArIFNoaWZ0ICsgU2luZ2xlIFRhcDoKLXR5cGU6IG1vdXNlbW92ZSwgeDogNzIsIHk6
IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNj
cmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtl
eTogdHJ1ZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtleTogZmFsc2UsIHNoaWZ0S2V5OiB0cnVlCi10
eXBlOiBtb3VzZWRvd24sIHg6IDcyLCB5OiAxMzYsIG9mZnNldFg6IDY0LCBvZmZzZXRZOiA2NCwg
YnV0dG9uOiAwLCBidXR0b25zOiAwLCBzY3JlZW5YOiA3Miwgc2NyZWVuWTogMTM2LCBjbGllbnRY
OiA3MiwgY2xpZW50WTogMTM2LCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6IHRydWUsIG1ldGFLZXk6
IGZhbHNlLCBzaGlmdEtleTogdHJ1ZQotdHlwZTogbW91c2V1cCwgeDogNzIsIHk6IDEzNiwgb2Zm
c2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6IDcy
LCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtleTogdHJ1ZSwg
Y3RybEtleTogdHJ1ZSwgbWV0YUtleTogZmFsc2UsIHNoaWZ0S2V5OiB0cnVlCi0KLVRlc3QgQ29t
bWFuZCArIE9wdGlvbiArIENvbnRyb2wgKyBTaGlmdCArIFNpbmdsZSBUYXA6Ci10eXBlOiBtb3Vz
ZW1vdmUsIHg6IDcyLCB5OiAxMzYsIG9mZnNldFg6IDY0LCBvZmZzZXRZOiA2NCwgYnV0dG9uOiAw
LCBidXR0b25zOiAwLCBzY3JlZW5YOiA3Miwgc2NyZWVuWTogMTM2LCBjbGllbnRYOiA3MiwgY2xp
ZW50WTogMTM2LCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6IHRydWUsIG1ldGFLZXk6IHRydWUsIHNo
aWZ0S2V5OiB0cnVlCi10eXBlOiBtb3VzZWRvd24sIHg6IDcyLCB5OiAxMzYsIG9mZnNldFg6IDY0
LCBvZmZzZXRZOiA2NCwgYnV0dG9uOiAwLCBidXR0b25zOiAwLCBzY3JlZW5YOiA3Miwgc2NyZWVu
WTogMTM2LCBjbGllbnRYOiA3MiwgY2xpZW50WTogMTM2LCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6
IHRydWUsIG1ldGFLZXk6IHRydWUsIHNoaWZ0S2V5OiB0cnVlCi10eXBlOiBtb3VzZXVwLCB4OiA3
MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczog
MCwgc2NyZWVuWDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwg
YWx0S2V5OiB0cnVlLCBjdHJsS2V5OiB0cnVlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTogdHJ1
ZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbW91c2Ut
ZXZlbnRzLXdpdGgtbW9kaWZpZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvbW91c2UtZXZlbnRzLXdpdGgtbW9kaWZpZXJzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQ4YWZhYzdmNTJjNjIwZTNiZTRiYTJhNzUzNTM4Zjg1ZDc5NTBjM2QuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL21vdXNlLWV2ZW50cy13aXRoLW1vZGlmaWVycy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMTQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvY29tcHV0ZS1zdWJzZXRzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLX0K
LQotY2xhc3MgVG91Y2hUZXN0IHsKLSAgICBjb25zdHJ1Y3RvcihlbGVtZW50VG9Ub3VjaCwgbW9k
aWZpZXJzID0gW10pCi0gICAgewotICAgICAgICB0aGlzLmVsZW1lbnRUb1RvdWNoID0gZWxlbWVu
dFRvVG91Y2g7Ci0gICAgICAgIHRoaXMubW9kaWZpZXJzID0gbW9kaWZpZXJzOwotICAgIH0KLQot
ICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBgeyAke3RoaXMuZWxlbWVudFRv
VG91Y2h9LCBbJHt0aGlzLm1vZGlmaWVyc31dIH1gOwotICAgIH0KLQotICAgIHJ1bigpCi0gICAg
ewotICAgICAgICBsZXQgY2VudGVyWCA9IHRoaXMuZWxlbWVudFRvVG91Y2gub2Zmc2V0TGVmdCAr
IHRoaXMuZWxlbWVudFRvVG91Y2gub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICBsZXQgY2VudGVy
WSA9IHRoaXMuZWxlbWVudFRvVG91Y2gub2Zmc2V0VG9wICsgdGhpcy5lbGVtZW50VG9Ub3VjaC5v
ZmZzZXRIZWlnaHQgLyAyOwotICAgICAgICByZXR1cm4gVUlIZWxwZXIudGFwQXQoY2VudGVyWCwg
Y2VudGVyWSwgdGhpcy5tb2RpZmllcnMpOwotICAgIH0KLX0KLQotY29uc3QgbW9kaWZpZXJLZXlz
ID0gWyJtZXRhS2V5IiwgImFsdEtleSIsICJjdHJsS2V5IiwgInNoaWZ0S2V5Il07Ci0KLWxldCBj
dXJyZW50VGVzdDsKLWxldCB0ZXN0cyA9IFtdOwotCi1mdW5jdGlvbiBoYW5kbGVNb3VzZURvd24o
ZXZlbnQpCi17Ci0gICAgbG9nTW91c2VFdmVudChldmVudCk7Ci19Ci0KLWZ1bmN0aW9uIGhhbmRs
ZU1vdXNlTW92ZShldmVudCkKLXsKLSAgICBsb2dNb3VzZUV2ZW50KGV2ZW50KTsKLX0KLQotZnVu
Y3Rpb24gaGFuZGxlTW91c2VVcChldmVudCkKLXsKLSAgICBsb2dNb3VzZUV2ZW50KGV2ZW50KTsK
LSAgICBuZXh0VG91Y2hQcmVzcygpOwotfQotCi1mdW5jdGlvbiBsb2cobWVzc2FnZSkKLXsKLSAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAiXG4iKSk7Ci19Ci0KLWZ1bmN0aW9uIGxvZ01vdXNl
RXZlbnQoZXZlbnQpCi17Ci0gICAgbGV0IHBpZWNlcyA9IFtdOwotICAgIGZvciAobGV0IHByb3Bl
cnR5TmFtZSBvZiBbInR5cGUiLCAieCIsICJ5IiwgIm9mZnNldFgiLCAib2Zmc2V0WSIsICJidXR0
b24iLCAiYnV0dG9ucyIsICJzY3JlZW5YIiwgInNjcmVlblkiLCAiY2xpZW50WCIsICJjbGllbnRZ
IiwgImFsdEtleSIsICJjdHJsS2V5IiwgIm1ldGFLZXkiLCAic2hpZnRLZXkiXSkKLSAgICAgICAg
cGllY2VzLnB1c2goYCR7cHJvcGVydHlOYW1lfTogJHtldmVudFtwcm9wZXJ0eU5hbWVdfWApOwot
ICAgIGxvZyhwaWVjZXMuam9pbigiLCAiKSk7Ci19Ci0KLWNvbnN0IG1vZGlmaWVyRGlzcGxheU5h
bWVNYXAgPSB7Ci0gICAgImFsdEtleSI6ICJPcHRpb24iLAotICAgICJjdHJsS2V5IjogIkNvbnRy
b2wiLAotICAgICJtZXRhS2V5IjogIkNvbW1hbmQiLAotICAgICJzaGlmdEtleSI6ICJTaGlmdCIs
Ci0gICAgImNhcHNMb2NrS2V5IjogIkNhcHMgTG9jayIsCi19Ci0KLWZ1bmN0aW9uIGRpc3BsYXlO
YW1lRm9yVGVzdCh0ZXN0KQotewotICAgIGxldCBkaXNwbGF5TmFtZXNPZk1vZGlmaWVycyA9IFtd
OwotICAgIGZvciAoY29uc3QgbW9kaWZpZXIgb2YgdGVzdC5tb2RpZmllcnMpCi0gICAgICAgIGRp
c3BsYXlOYW1lc09mTW9kaWZpZXJzLnB1c2gobW9kaWZpZXJEaXNwbGF5TmFtZU1hcFttb2RpZmll
cl0pOwotICAgIGxldCByZXN1bHQgPSAiIjsKLSAgICBpZiAoZGlzcGxheU5hbWVzT2ZNb2RpZmll
cnMubGVuZ3RoKQotICAgICAgICByZXN1bHQgKz0gZGlzcGxheU5hbWVzT2ZNb2RpZmllcnMuam9p
bigiICsgIikgKyAiICsgIjsKLSAgICByZXN1bHQgKz0gIlNpbmdsZSBUYXAiOwotICAgIHJldHVy
biByZXN1bHQ7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIG5leHRUb3VjaFByZXNzKCkKLXsKLSAgICBp
ZiAoIXRlc3RzLmxlbmd0aCkgewotICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcXVhcmUiKSk7Ci0gICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIGN1cnJlbnRUZXN0ID0gdGVzdHMuc2hpZnQoKTsKLSAgICBsb2co
YFxuVGVzdCAke2Rpc3BsYXlOYW1lRm9yVGVzdChjdXJyZW50VGVzdCl9OmApOwotICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgYXdhaXQgY3VycmVudFRlc3QucnVuKCk7Ci19Ci0K
LWZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgIHJldHVybjsKLSAgICBuZXh0VG91Y2hQcmVzcygpOwotfQotCi1mdW5jdGlvbiBzZXRVcCgp
Ci17Ci0gICAgbGV0IHNxdWFyZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcXVhcmUiKTsK
LSAgICBzcXVhcmUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgaGFuZGxlTW91c2VEb3du
LCB0cnVlKTsKLSAgICBzcXVhcmUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgaGFuZGxl
TW91c2VNb3ZlLCB0cnVlKTsKLSAgICBzcXVhcmUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIs
IGhhbmRsZU1vdXNlVXAsIHRydWUpOwotCi0gICAgZm9yIChjb25zdCBtb2RpZmllcnMgb2YgY29t
cHV0ZVN1YnNldHMobW9kaWZpZXJLZXlzKSkKLSAgICAgICAgdGVzdHMucHVzaChuZXcgVG91Y2hU
ZXN0KHNxdWFyZSwgbW9kaWZpZXJzKSk7Ci0KLSAgICBydW5UZXN0KCk7Ci19Ci0KLXdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc2V0VXAsIHRydWUpOwotPC9zY3JpcHQ+Ci08c3R5bGU+
Ci0jc3F1YXJlIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOwotICAgIGNvbG9yOiB3aGl0
ZTsKLSAgICBoZWlnaHQ6IDEyOHB4OwotICAgIHdpZHRoOiAxMjhweDsKLSAgICBkaXNwbGF5OiBm
bGV4OwotICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Ci0gICAganVzdGlmeS1jb250ZW50OiBjZW50
ZXI7Ci0gICAgdXNlci1zZWxlY3Q6IG5vbmU7Ci0gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9u
ZTsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgbG9ncyBET00gbW91c2Vk
b3duLCBtb3VzZW1vdmUsIGFuZCBtb3VzZXVwIGV2ZW50cyB0aGF0IGFyZSBkaXNwYXRjaGVkIHdo
ZW4gc2luZ2xlIHRhcHBpbmcgYW4gZWxlbWVudCB3aGlsZSBob2xkaW5nIG1vZGlmaWVyIGtleXMu
IE11c3QgYmUgcnVuIGluIFdlYktpdFRlc3RSdW5uZXIuPC9wPgotPGRpdiBpZD0ic3F1YXJlIj5U
b3VjaCBNZTwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvcG9pbnRlci1l
dmVudHMtd2l0aC1tb2RpZmllcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3BvaW50ZXItZXZlbnRzLXdpdGgtbW9kaWZpZXJzLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDliZTgxZjBjNzM5Y2Q0YmY1NzkwMjUzNWNj
MjExNjQ3MWFhNTk3Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvcG9pbnRlci1ldmVudHMtd2l0
aC1tb2RpZmllcnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAot
VGhpcyBsb2dzIERPTSBwb2ludGVyZG93biBhbmQgcG9pbnRlcnVwIGV2ZW50cyB0aGF0IGFyZSBk
aXNwYXRjaGVkIHdoZW4gc2luZ2xlIHRhcHBpbmcgYW4gZWxlbWVudCB3aGlsZSBob2xkaW5nIG1v
ZGlmaWVyIGtleXMuIE11c3QgYmUgcnVuIGluIFdlYktpdFRlc3RSdW5uZXIuCi0KLQotVGVzdCBD
b21tYW5kICsgU2luZ2xlIFRhcDoKLXR5cGU6IHBvaW50ZXJkb3duLCBwb2ludGVyVHlwZTogdG91
Y2gsIGlzUHJpbWFyeTogdHJ1ZSwgd2lkdGg6IDQwLCBoZWlnaHQ6IDQwLCBwcmVzc3VyZTogMCwg
dGFuZ2VudGlhbFByZXNzdXJlOiAwLCB0aWx0WDogOTAsIHRpbHRZOiAwLCB0d2lzdDogMCwgeDog
NzIsIHk6IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6
IDAsIHNjcmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYs
IGFsdEtleTogZmFsc2UsIGN0cmxLZXk6IGZhbHNlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTog
ZmFsc2UKLXR5cGU6IHBvaW50ZXJ1cCwgcG9pbnRlclR5cGU6IHRvdWNoLCBpc1ByaW1hcnk6IGZh
bHNlLCB3aWR0aDogMCwgaGVpZ2h0OiAwLCBwcmVzc3VyZTogMCwgdGFuZ2VudGlhbFByZXNzdXJl
OiAwLCB0aWx0WDogOTAsIHRpbHRZOiAwLCB0d2lzdDogMCwgeDogNzIsIHk6IDEzNiwgb2Zmc2V0
WDogNjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6IDcyLCBz
Y3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtleTogZmFsc2UsIGN0
cmxLZXk6IGZhbHNlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTogZmFsc2UKLQotVGVzdCBPcHRp
b24gKyBTaW5nbGUgVGFwOgotdHlwZTogcG9pbnRlcmRvd24sIHBvaW50ZXJUeXBlOiB0b3VjaCwg
aXNQcmltYXJ5OiB0cnVlLCB3aWR0aDogNDAsIGhlaWdodDogNDAsIHByZXNzdXJlOiAwLCB0YW5n
ZW50aWFsUHJlc3N1cmU6IDAsIHRpbHRYOiA5MCwgdGlsdFk6IDAsIHR3aXN0OiAwLCB4OiA3Miwg
eTogMTM2LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczogMCwg
c2NyZWVuWDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwgYWx0
S2V5OiB0cnVlLCBjdHJsS2V5OiBmYWxzZSwgbWV0YUtleTogZmFsc2UsIHNoaWZ0S2V5OiBmYWxz
ZQotdHlwZTogcG9pbnRlcnVwLCBwb2ludGVyVHlwZTogdG91Y2gsIGlzUHJpbWFyeTogZmFsc2Us
IHdpZHRoOiAwLCBoZWlnaHQ6IDAsIHByZXNzdXJlOiAwLCB0YW5nZW50aWFsUHJlc3N1cmU6IDAs
IHRpbHRYOiA5MCwgdGlsdFk6IDAsIHR3aXN0OiAwLCB4OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2
NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczogMCwgc2NyZWVuWDogNzIsIHNjcmVl
blk6IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwgYWx0S2V5OiB0cnVlLCBjdHJsS2V5
OiBmYWxzZSwgbWV0YUtleTogZmFsc2UsIHNoaWZ0S2V5OiBmYWxzZQotCi1UZXN0IENvbnRyb2wg
KyBTaW5nbGUgVGFwOgotdHlwZTogcG9pbnRlcmRvd24sIHBvaW50ZXJUeXBlOiB0b3VjaCwgaXNQ
cmltYXJ5OiB0cnVlLCB3aWR0aDogNDAsIGhlaWdodDogNDAsIHByZXNzdXJlOiAwLCB0YW5nZW50
aWFsUHJlc3N1cmU6IDAsIHRpbHRYOiA5MCwgdGlsdFk6IDAsIHR3aXN0OiAwLCB4OiA3MiwgeTog
MTM2LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczogMCwgc2Ny
ZWVuWDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwgYWx0S2V5
OiBmYWxzZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtleTogZmFsc2UsIHNoaWZ0S2V5OiBmYWxzZQot
dHlwZTogcG9pbnRlcnVwLCBwb2ludGVyVHlwZTogdG91Y2gsIGlzUHJpbWFyeTogZmFsc2UsIHdp
ZHRoOiAwLCBoZWlnaHQ6IDAsIHByZXNzdXJlOiAwLCB0YW5nZW50aWFsUHJlc3N1cmU6IDAsIHRp
bHRYOiA5MCwgdGlsdFk6IDAsIHR3aXN0OiAwLCB4OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwg
b2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczogMCwgc2NyZWVuWDogNzIsIHNjcmVlblk6
IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwgYWx0S2V5OiBmYWxzZSwgY3RybEtleTog
dHJ1ZSwgbWV0YUtleTogZmFsc2UsIHNoaWZ0S2V5OiBmYWxzZQotCi1UZXN0IFNoaWZ0ICsgU2lu
Z2xlIFRhcDoKLXR5cGU6IHBvaW50ZXJkb3duLCBwb2ludGVyVHlwZTogdG91Y2gsIGlzUHJpbWFy
eTogdHJ1ZSwgd2lkdGg6IDQwLCBoZWlnaHQ6IDQwLCBwcmVzc3VyZTogMCwgdGFuZ2VudGlhbFBy
ZXNzdXJlOiAwLCB0aWx0WDogOTAsIHRpbHRZOiAwLCB0d2lzdDogMCwgeDogNzIsIHk6IDEzNiwg
b2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6
IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtleTogZmFs
c2UsIGN0cmxLZXk6IGZhbHNlLCBtZXRhS2V5OiBmYWxzZSwgc2hpZnRLZXk6IHRydWUKLXR5cGU6
IHBvaW50ZXJ1cCwgcG9pbnRlclR5cGU6IHRvdWNoLCBpc1ByaW1hcnk6IGZhbHNlLCB3aWR0aDog
MCwgaGVpZ2h0OiAwLCBwcmVzc3VyZTogMCwgdGFuZ2VudGlhbFByZXNzdXJlOiAwLCB0aWx0WDog
OTAsIHRpbHRZOiAwLCB0d2lzdDogMCwgeDogNzIsIHk6IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNl
dFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYs
IGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtleTogZmFsc2UsIGN0cmxLZXk6IGZhbHNl
LCBtZXRhS2V5OiBmYWxzZSwgc2hpZnRLZXk6IHRydWUKLQotVGVzdCBDb21tYW5kICsgT3B0aW9u
ICsgU2luZ2xlIFRhcDoKLXR5cGU6IHBvaW50ZXJkb3duLCBwb2ludGVyVHlwZTogdG91Y2gsIGlz
UHJpbWFyeTogdHJ1ZSwgd2lkdGg6IDQwLCBoZWlnaHQ6IDQwLCBwcmVzc3VyZTogMCwgdGFuZ2Vu
dGlhbFByZXNzdXJlOiAwLCB0aWx0WDogOTAsIHRpbHRZOiAwLCB0d2lzdDogMCwgeDogNzIsIHk6
IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNj
cmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtl
eTogdHJ1ZSwgY3RybEtleTogZmFsc2UsIG1ldGFLZXk6IHRydWUsIHNoaWZ0S2V5OiBmYWxzZQot
dHlwZTogcG9pbnRlcnVwLCBwb2ludGVyVHlwZTogdG91Y2gsIGlzUHJpbWFyeTogZmFsc2UsIHdp
ZHRoOiAwLCBoZWlnaHQ6IDAsIHByZXNzdXJlOiAwLCB0YW5nZW50aWFsUHJlc3N1cmU6IDAsIHRp
bHRYOiA5MCwgdGlsdFk6IDAsIHR3aXN0OiAwLCB4OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwg
b2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczogMCwgc2NyZWVuWDogNzIsIHNjcmVlblk6
IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwgYWx0S2V5OiB0cnVlLCBjdHJsS2V5OiBm
YWxzZSwgbWV0YUtleTogdHJ1ZSwgc2hpZnRLZXk6IGZhbHNlCi0KLVRlc3QgQ29tbWFuZCArIENv
bnRyb2wgKyBTaW5nbGUgVGFwOgotdHlwZTogcG9pbnRlcmRvd24sIHBvaW50ZXJUeXBlOiB0b3Vj
aCwgaXNQcmltYXJ5OiB0cnVlLCB3aWR0aDogNDAsIGhlaWdodDogNDAsIHByZXNzdXJlOiAwLCB0
YW5nZW50aWFsUHJlc3N1cmU6IDAsIHRpbHRYOiA5MCwgdGlsdFk6IDAsIHR3aXN0OiAwLCB4OiA3
MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczog
MCwgc2NyZWVuWDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwg
YWx0S2V5OiBmYWxzZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtleTogdHJ1ZSwgc2hpZnRLZXk6IGZh
bHNlCi10eXBlOiBwb2ludGVydXAsIHBvaW50ZXJUeXBlOiB0b3VjaCwgaXNQcmltYXJ5OiBmYWxz
ZSwgd2lkdGg6IDAsIGhlaWdodDogMCwgcHJlc3N1cmU6IDAsIHRhbmdlbnRpYWxQcmVzc3VyZTog
MCwgdGlsdFg6IDkwLCB0aWx0WTogMCwgdHdpc3Q6IDAsIHg6IDcyLCB5OiAxMzYsIG9mZnNldFg6
IDY0LCBvZmZzZXRZOiA2NCwgYnV0dG9uOiAwLCBidXR0b25zOiAwLCBzY3JlZW5YOiA3Miwgc2Ny
ZWVuWTogMTM2LCBjbGllbnRYOiA3MiwgY2xpZW50WTogMTM2LCBhbHRLZXk6IGZhbHNlLCBjdHJs
S2V5OiB0cnVlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTogZmFsc2UKLQotVGVzdCBDb21tYW5k
ICsgU2hpZnQgKyBTaW5nbGUgVGFwOgotdHlwZTogcG9pbnRlcmRvd24sIHBvaW50ZXJUeXBlOiB0
b3VjaCwgaXNQcmltYXJ5OiB0cnVlLCB3aWR0aDogNDAsIGhlaWdodDogNDAsIHByZXNzdXJlOiAw
LCB0YW5nZW50aWFsUHJlc3N1cmU6IDAsIHRpbHRYOiA5MCwgdGlsdFk6IDAsIHR3aXN0OiAwLCB4
OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9u
czogMCwgc2NyZWVuWDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEz
NiwgYWx0S2V5OiBmYWxzZSwgY3RybEtleTogZmFsc2UsIG1ldGFLZXk6IHRydWUsIHNoaWZ0S2V5
OiB0cnVlCi10eXBlOiBwb2ludGVydXAsIHBvaW50ZXJUeXBlOiB0b3VjaCwgaXNQcmltYXJ5OiBm
YWxzZSwgd2lkdGg6IDAsIGhlaWdodDogMCwgcHJlc3N1cmU6IDAsIHRhbmdlbnRpYWxQcmVzc3Vy
ZTogMCwgdGlsdFg6IDkwLCB0aWx0WTogMCwgdHdpc3Q6IDAsIHg6IDcyLCB5OiAxMzYsIG9mZnNl
dFg6IDY0LCBvZmZzZXRZOiA2NCwgYnV0dG9uOiAwLCBidXR0b25zOiAwLCBzY3JlZW5YOiA3Miwg
c2NyZWVuWTogMTM2LCBjbGllbnRYOiA3MiwgY2xpZW50WTogMTM2LCBhbHRLZXk6IGZhbHNlLCBj
dHJsS2V5OiBmYWxzZSwgbWV0YUtleTogdHJ1ZSwgc2hpZnRLZXk6IHRydWUKLQotVGVzdCBPcHRp
b24gKyBDb250cm9sICsgU2luZ2xlIFRhcDoKLXR5cGU6IHBvaW50ZXJkb3duLCBwb2ludGVyVHlw
ZTogdG91Y2gsIGlzUHJpbWFyeTogdHJ1ZSwgd2lkdGg6IDQwLCBoZWlnaHQ6IDQwLCBwcmVzc3Vy
ZTogMCwgdGFuZ2VudGlhbFByZXNzdXJlOiAwLCB0aWx0WDogOTAsIHRpbHRZOiAwLCB0d2lzdDog
MCwgeDogNzIsIHk6IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1
dHRvbnM6IDAsIHNjcmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZ
OiAxMzYsIGFsdEtleTogdHJ1ZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtleTogZmFsc2UsIHNoaWZ0
S2V5OiBmYWxzZQotdHlwZTogcG9pbnRlcnVwLCBwb2ludGVyVHlwZTogdG91Y2gsIGlzUHJpbWFy
eTogZmFsc2UsIHdpZHRoOiAwLCBoZWlnaHQ6IDAsIHByZXNzdXJlOiAwLCB0YW5nZW50aWFsUHJl
c3N1cmU6IDAsIHRpbHRYOiA5MCwgdGlsdFk6IDAsIHR3aXN0OiAwLCB4OiA3MiwgeTogMTM2LCBv
ZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczogMCwgc2NyZWVuWDog
NzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwgYWx0S2V5OiB0cnVl
LCBjdHJsS2V5OiB0cnVlLCBtZXRhS2V5OiBmYWxzZSwgc2hpZnRLZXk6IGZhbHNlCi0KLVRlc3Qg
T3B0aW9uICsgU2hpZnQgKyBTaW5nbGUgVGFwOgotdHlwZTogcG9pbnRlcmRvd24sIHBvaW50ZXJU
eXBlOiB0b3VjaCwgaXNQcmltYXJ5OiB0cnVlLCB3aWR0aDogNDAsIGhlaWdodDogNDAsIHByZXNz
dXJlOiAwLCB0YW5nZW50aWFsUHJlc3N1cmU6IDAsIHRpbHRYOiA5MCwgdGlsdFk6IDAsIHR3aXN0
OiAwLCB4OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwg
YnV0dG9uczogMCwgc2NyZWVuWDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIsIGNsaWVu
dFk6IDEzNiwgYWx0S2V5OiB0cnVlLCBjdHJsS2V5OiBmYWxzZSwgbWV0YUtleTogZmFsc2UsIHNo
aWZ0S2V5OiB0cnVlCi10eXBlOiBwb2ludGVydXAsIHBvaW50ZXJUeXBlOiB0b3VjaCwgaXNQcmlt
YXJ5OiBmYWxzZSwgd2lkdGg6IDAsIGhlaWdodDogMCwgcHJlc3N1cmU6IDAsIHRhbmdlbnRpYWxQ
cmVzc3VyZTogMCwgdGlsdFg6IDkwLCB0aWx0WTogMCwgdHdpc3Q6IDAsIHg6IDcyLCB5OiAxMzYs
IG9mZnNldFg6IDY0LCBvZmZzZXRZOiA2NCwgYnV0dG9uOiAwLCBidXR0b25zOiAwLCBzY3JlZW5Y
OiA3Miwgc2NyZWVuWTogMTM2LCBjbGllbnRYOiA3MiwgY2xpZW50WTogMTM2LCBhbHRLZXk6IHRy
dWUsIGN0cmxLZXk6IGZhbHNlLCBtZXRhS2V5OiBmYWxzZSwgc2hpZnRLZXk6IHRydWUKLQotVGVz
dCBDb250cm9sICsgU2hpZnQgKyBTaW5nbGUgVGFwOgotdHlwZTogcG9pbnRlcmRvd24sIHBvaW50
ZXJUeXBlOiB0b3VjaCwgaXNQcmltYXJ5OiB0cnVlLCB3aWR0aDogNDAsIGhlaWdodDogNDAsIHBy
ZXNzdXJlOiAwLCB0YW5nZW50aWFsUHJlc3N1cmU6IDAsIHRpbHRYOiA5MCwgdGlsdFk6IDAsIHR3
aXN0OiAwLCB4OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjog
MCwgYnV0dG9uczogMCwgc2NyZWVuWDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIsIGNs
aWVudFk6IDEzNiwgYWx0S2V5OiBmYWxzZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtleTogZmFsc2Us
IHNoaWZ0S2V5OiB0cnVlCi10eXBlOiBwb2ludGVydXAsIHBvaW50ZXJUeXBlOiB0b3VjaCwgaXNQ
cmltYXJ5OiBmYWxzZSwgd2lkdGg6IDAsIGhlaWdodDogMCwgcHJlc3N1cmU6IDAsIHRhbmdlbnRp
YWxQcmVzc3VyZTogMCwgdGlsdFg6IDkwLCB0aWx0WTogMCwgdHdpc3Q6IDAsIHg6IDcyLCB5OiAx
MzYsIG9mZnNldFg6IDY0LCBvZmZzZXRZOiA2NCwgYnV0dG9uOiAwLCBidXR0b25zOiAwLCBzY3Jl
ZW5YOiA3Miwgc2NyZWVuWTogMTM2LCBjbGllbnRYOiA3MiwgY2xpZW50WTogMTM2LCBhbHRLZXk6
IGZhbHNlLCBjdHJsS2V5OiB0cnVlLCBtZXRhS2V5OiBmYWxzZSwgc2hpZnRLZXk6IHRydWUKLQot
VGVzdCBDb21tYW5kICsgT3B0aW9uICsgQ29udHJvbCArIFNpbmdsZSBUYXA6Ci10eXBlOiBwb2lu
dGVyZG93biwgcG9pbnRlclR5cGU6IHRvdWNoLCBpc1ByaW1hcnk6IHRydWUsIHdpZHRoOiA0MCwg
aGVpZ2h0OiA0MCwgcHJlc3N1cmU6IDAsIHRhbmdlbnRpYWxQcmVzc3VyZTogMCwgdGlsdFg6IDkw
LCB0aWx0WTogMCwgdHdpc3Q6IDAsIHg6IDcyLCB5OiAxMzYsIG9mZnNldFg6IDY0LCBvZmZzZXRZ
OiA2NCwgYnV0dG9uOiAwLCBidXR0b25zOiAwLCBzY3JlZW5YOiA3Miwgc2NyZWVuWTogMTM2LCBj
bGllbnRYOiA3MiwgY2xpZW50WTogMTM2LCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6IHRydWUsIG1l
dGFLZXk6IHRydWUsIHNoaWZ0S2V5OiBmYWxzZQotdHlwZTogcG9pbnRlcnVwLCBwb2ludGVyVHlw
ZTogdG91Y2gsIGlzUHJpbWFyeTogZmFsc2UsIHdpZHRoOiAwLCBoZWlnaHQ6IDAsIHByZXNzdXJl
OiAwLCB0YW5nZW50aWFsUHJlc3N1cmU6IDAsIHRpbHRYOiA5MCwgdGlsdFk6IDAsIHR3aXN0OiAw
LCB4OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0
dG9uczogMCwgc2NyZWVuWDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6
IDEzNiwgYWx0S2V5OiB0cnVlLCBjdHJsS2V5OiB0cnVlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtl
eTogZmFsc2UKLQotVGVzdCBDb21tYW5kICsgT3B0aW9uICsgU2hpZnQgKyBTaW5nbGUgVGFwOgot
dHlwZTogcG9pbnRlcmRvd24sIHBvaW50ZXJUeXBlOiB0b3VjaCwgaXNQcmltYXJ5OiB0cnVlLCB3
aWR0aDogNDAsIGhlaWdodDogNDAsIHByZXNzdXJlOiAwLCB0YW5nZW50aWFsUHJlc3N1cmU6IDAs
IHRpbHRYOiA5MCwgdGlsdFk6IDAsIHR3aXN0OiAwLCB4OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2
NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczogMCwgc2NyZWVuWDogNzIsIHNjcmVl
blk6IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwgYWx0S2V5OiB0cnVlLCBjdHJsS2V5
OiBmYWxzZSwgbWV0YUtleTogdHJ1ZSwgc2hpZnRLZXk6IHRydWUKLXR5cGU6IHBvaW50ZXJ1cCwg
cG9pbnRlclR5cGU6IHRvdWNoLCBpc1ByaW1hcnk6IGZhbHNlLCB3aWR0aDogMCwgaGVpZ2h0OiAw
LCBwcmVzc3VyZTogMCwgdGFuZ2VudGlhbFByZXNzdXJlOiAwLCB0aWx0WDogOTAsIHRpbHRZOiAw
LCB0d2lzdDogMCwgeDogNzIsIHk6IDEzNiwgb2Zmc2V0WDogNjQsIG9mZnNldFk6IDY0LCBidXR0
b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6IDcyLCBzY3JlZW5ZOiAxMzYsIGNsaWVudFg6IDcy
LCBjbGllbnRZOiAxMzYsIGFsdEtleTogdHJ1ZSwgY3RybEtleTogZmFsc2UsIG1ldGFLZXk6IHRy
dWUsIHNoaWZ0S2V5OiB0cnVlCi0KLVRlc3QgQ29tbWFuZCArIENvbnRyb2wgKyBTaGlmdCArIFNp
bmdsZSBUYXA6Ci10eXBlOiBwb2ludGVyZG93biwgcG9pbnRlclR5cGU6IHRvdWNoLCBpc1ByaW1h
cnk6IHRydWUsIHdpZHRoOiA0MCwgaGVpZ2h0OiA0MCwgcHJlc3N1cmU6IDAsIHRhbmdlbnRpYWxQ
cmVzc3VyZTogMCwgdGlsdFg6IDkwLCB0aWx0WTogMCwgdHdpc3Q6IDAsIHg6IDcyLCB5OiAxMzYs
IG9mZnNldFg6IDY0LCBvZmZzZXRZOiA2NCwgYnV0dG9uOiAwLCBidXR0b25zOiAwLCBzY3JlZW5Y
OiA3Miwgc2NyZWVuWTogMTM2LCBjbGllbnRYOiA3MiwgY2xpZW50WTogMTM2LCBhbHRLZXk6IGZh
bHNlLCBjdHJsS2V5OiB0cnVlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTogdHJ1ZQotdHlwZTog
cG9pbnRlcnVwLCBwb2ludGVyVHlwZTogdG91Y2gsIGlzUHJpbWFyeTogZmFsc2UsIHdpZHRoOiAw
LCBoZWlnaHQ6IDAsIHByZXNzdXJlOiAwLCB0YW5nZW50aWFsUHJlc3N1cmU6IDAsIHRpbHRYOiA5
MCwgdGlsdFk6IDAsIHR3aXN0OiAwLCB4OiA3MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwgb2Zmc2V0
WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczogMCwgc2NyZWVuWDogNzIsIHNjcmVlblk6IDEzNiwg
Y2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwgYWx0S2V5OiBmYWxzZSwgY3RybEtleTogdHJ1ZSwg
bWV0YUtleTogdHJ1ZSwgc2hpZnRLZXk6IHRydWUKLQotVGVzdCBPcHRpb24gKyBDb250cm9sICsg
U2hpZnQgKyBTaW5nbGUgVGFwOgotdHlwZTogcG9pbnRlcmRvd24sIHBvaW50ZXJUeXBlOiB0b3Vj
aCwgaXNQcmltYXJ5OiB0cnVlLCB3aWR0aDogNDAsIGhlaWdodDogNDAsIHByZXNzdXJlOiAwLCB0
YW5nZW50aWFsUHJlc3N1cmU6IDAsIHRpbHRYOiA5MCwgdGlsdFk6IDAsIHR3aXN0OiAwLCB4OiA3
MiwgeTogMTM2LCBvZmZzZXRYOiA2NCwgb2Zmc2V0WTogNjQsIGJ1dHRvbjogMCwgYnV0dG9uczog
MCwgc2NyZWVuWDogNzIsIHNjcmVlblk6IDEzNiwgY2xpZW50WDogNzIsIGNsaWVudFk6IDEzNiwg
YWx0S2V5OiB0cnVlLCBjdHJsS2V5OiB0cnVlLCBtZXRhS2V5OiBmYWxzZSwgc2hpZnRLZXk6IHRy
dWUKLXR5cGU6IHBvaW50ZXJ1cCwgcG9pbnRlclR5cGU6IHRvdWNoLCBpc1ByaW1hcnk6IGZhbHNl
LCB3aWR0aDogMCwgaGVpZ2h0OiAwLCBwcmVzc3VyZTogMCwgdGFuZ2VudGlhbFByZXNzdXJlOiAw
LCB0aWx0WDogOTAsIHRpbHRZOiAwLCB0d2lzdDogMCwgeDogNzIsIHk6IDEzNiwgb2Zmc2V0WDog
NjQsIG9mZnNldFk6IDY0LCBidXR0b246IDAsIGJ1dHRvbnM6IDAsIHNjcmVlblg6IDcyLCBzY3Jl
ZW5ZOiAxMzYsIGNsaWVudFg6IDcyLCBjbGllbnRZOiAxMzYsIGFsdEtleTogdHJ1ZSwgY3RybEtl
eTogdHJ1ZSwgbWV0YUtleTogZmFsc2UsIHNoaWZ0S2V5OiB0cnVlCi0KLVRlc3QgQ29tbWFuZCAr
IE9wdGlvbiArIENvbnRyb2wgKyBTaGlmdCArIFNpbmdsZSBUYXA6Ci10eXBlOiBwb2ludGVyZG93
biwgcG9pbnRlclR5cGU6IHRvdWNoLCBpc1ByaW1hcnk6IHRydWUsIHdpZHRoOiA0MCwgaGVpZ2h0
OiA0MCwgcHJlc3N1cmU6IDAsIHRhbmdlbnRpYWxQcmVzc3VyZTogMCwgdGlsdFg6IDkwLCB0aWx0
WTogMCwgdHdpc3Q6IDAsIHg6IDcyLCB5OiAxMzYsIG9mZnNldFg6IDY0LCBvZmZzZXRZOiA2NCwg
YnV0dG9uOiAwLCBidXR0b25zOiAwLCBzY3JlZW5YOiA3Miwgc2NyZWVuWTogMTM2LCBjbGllbnRY
OiA3MiwgY2xpZW50WTogMTM2LCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6IHRydWUsIG1ldGFLZXk6
IHRydWUsIHNoaWZ0S2V5OiB0cnVlCi10eXBlOiBwb2ludGVydXAsIHBvaW50ZXJUeXBlOiB0b3Vj
aCwgaXNQcmltYXJ5OiBmYWxzZSwgd2lkdGg6IDAsIGhlaWdodDogMCwgcHJlc3N1cmU6IDAsIHRh
bmdlbnRpYWxQcmVzc3VyZTogMCwgdGlsdFg6IDkwLCB0aWx0WTogMCwgdHdpc3Q6IDAsIHg6IDcy
LCB5OiAxMzYsIG9mZnNldFg6IDY0LCBvZmZzZXRZOiA2NCwgYnV0dG9uOiAwLCBidXR0b25zOiAw
LCBzY3JlZW5YOiA3Miwgc2NyZWVuWTogMTM2LCBjbGllbnRYOiA3MiwgY2xpZW50WTogMTM2LCBh
bHRLZXk6IHRydWUsIGN0cmxLZXk6IHRydWUsIG1ldGFLZXk6IHRydWUsIHNoaWZ0S2V5OiB0cnVl
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9wb2ludGVy
LWV2ZW50cy13aXRoLW1vZGlmaWVycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvaW9zL3BvaW50ZXItZXZlbnRzLXdpdGgtbW9kaWZpZXJzLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGQ0NzUzMDNiZWE5MmQzY2FlM2I5MjNlMTQxOGVmOWYwM2FkNzQ4Mzcu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3BvaW50ZXItZXZlbnRzLXdpdGgtbW9kaWZpZXJzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9jb21wdXRlLXN1YnNl
dHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwotfQotCi1jbGFzcyBUb3VjaFRlc3QgewotICAgIGNvbnN0cnVjdG9yKGVsZW1lbnRUb1RvdWNo
LCBtb2RpZmllcnMgPSBbXSkKLSAgICB7Ci0gICAgICAgIHRoaXMuZWxlbWVudFRvVG91Y2ggPSBl
bGVtZW50VG9Ub3VjaDsKLSAgICAgICAgdGhpcy5tb2RpZmllcnMgPSBtb2RpZmllcnM7Ci0gICAg
fQotCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGB7ICR7dGhpcy5lbGVt
ZW50VG9Ub3VjaH0sIFske3RoaXMubW9kaWZpZXJzfV0gfWA7Ci0gICAgfQotCi0gICAgcnVuKCkK
LSAgICB7Ci0gICAgICAgIGxldCBjZW50ZXJYID0gdGhpcy5lbGVtZW50VG9Ub3VjaC5vZmZzZXRM
ZWZ0ICsgdGhpcy5lbGVtZW50VG9Ub3VjaC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIGxldCBj
ZW50ZXJZID0gdGhpcy5lbGVtZW50VG9Ub3VjaC5vZmZzZXRUb3AgKyB0aGlzLmVsZW1lbnRUb1Rv
dWNoLm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIHJldHVybiBVSUhlbHBlci50YXBBdChjZW50
ZXJYLCBjZW50ZXJZLCB0aGlzLm1vZGlmaWVycyk7Ci0gICAgfQotfQotCi1jb25zdCBtb2RpZmll
cktleXMgPSBbIm1ldGFLZXkiLCAiYWx0S2V5IiwgImN0cmxLZXkiLCAic2hpZnRLZXkiXTsKLQot
bGV0IGN1cnJlbnRUZXN0OwotbGV0IHRlc3RzID0gW107Ci0KLWZ1bmN0aW9uIGhhbmRsZVBvaW50
ZXJEb3duKGV2ZW50KQotewotICAgIGxvZ1BvaW50ZXJFdmVudChldmVudCk7Ci19Ci0KLWZ1bmN0
aW9uIGhhbmRsZVBvaW50ZXJVcChldmVudCkKLXsKLSAgICBsb2dQb2ludGVyRXZlbnQoZXZlbnQp
OwotICAgIG5leHRUb3VjaFByZXNzKCk7Ci19Ci0KLWZ1bmN0aW9uIGxvZyhtZXNzYWdlKQotewot
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICJcbiIpKTsKLX0KLQotZnVuY3Rpb24gbG9nUG9p
bnRlckV2ZW50KGV2ZW50KQotewotICAgIGxldCBwaWVjZXMgPSBbXTsKLSAgICBmb3IgKGxldCBw
cm9wZXJ0eU5hbWUgb2YgWyJ0eXBlIiwgInBvaW50ZXJUeXBlIiwgImlzUHJpbWFyeSIsICJ3aWR0
aCIsICJoZWlnaHQiLCAicHJlc3N1cmUiLCAidGFuZ2VudGlhbFByZXNzdXJlIiwgInRpbHRYIiwg
InRpbHRZIiwgInR3aXN0IiwgIngiLCAieSIsICJvZmZzZXRYIiwgIm9mZnNldFkiLCAiYnV0dG9u
IiwgImJ1dHRvbnMiLCAic2NyZWVuWCIsICJzY3JlZW5ZIiwgImNsaWVudFgiLCAiY2xpZW50WSIs
ICJhbHRLZXkiLCAiY3RybEtleSIsICJtZXRhS2V5IiwgInNoaWZ0S2V5Il0pCi0gICAgICAgIHBp
ZWNlcy5wdXNoKGAke3Byb3BlcnR5TmFtZX06ICR7ZXZlbnRbcHJvcGVydHlOYW1lXX1gKTsKLSAg
ICBsb2cocGllY2VzLmpvaW4oIiwgIikpOwotfQotCi1jb25zdCBtb2RpZmllckRpc3BsYXlOYW1l
TWFwID0gewotICAgICJhbHRLZXkiOiAiT3B0aW9uIiwKLSAgICAiY3RybEtleSI6ICJDb250cm9s
IiwKLSAgICAibWV0YUtleSI6ICJDb21tYW5kIiwKLSAgICAic2hpZnRLZXkiOiAiU2hpZnQiLAot
ICAgICJjYXBzTG9ja0tleSI6ICJDYXBzIExvY2siLAotfQotCi1mdW5jdGlvbiBkaXNwbGF5TmFt
ZUZvclRlc3QodGVzdCkKLXsKLSAgICBsZXQgZGlzcGxheU5hbWVzT2ZNb2RpZmllcnMgPSBbXTsK
LSAgICBmb3IgKGNvbnN0IG1vZGlmaWVyIG9mIHRlc3QubW9kaWZpZXJzKQotICAgICAgICBkaXNw
bGF5TmFtZXNPZk1vZGlmaWVycy5wdXNoKG1vZGlmaWVyRGlzcGxheU5hbWVNYXBbbW9kaWZpZXJd
KTsKLSAgICBsZXQgcmVzdWx0ID0gIiI7Ci0gICAgaWYgKGRpc3BsYXlOYW1lc09mTW9kaWZpZXJz
Lmxlbmd0aCkKLSAgICAgICAgcmVzdWx0ICs9IGRpc3BsYXlOYW1lc09mTW9kaWZpZXJzLmpvaW4o
IiArICIpICsgIiArICI7Ci0gICAgcmVzdWx0ICs9ICJTaW5nbGUgVGFwIjsKLSAgICByZXR1cm4g
cmVzdWx0OwotfQotCi1hc3luYyBmdW5jdGlvbiBuZXh0VG91Y2hQcmVzcygpCi17Ci0gICAgaWYg
KCF0ZXN0cy5sZW5ndGgpIHsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic3F1YXJlIikpOwotICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLSAgICBjdXJyZW50VGVzdCA9IHRlc3RzLnNoaWZ0KCk7Ci0gICAgbG9nKGBc
blRlc3QgJHtkaXNwbGF5TmFtZUZvclRlc3QoY3VycmVudFRlc3QpfTpgKTsKLSAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIGF3YWl0IGN1cnJlbnRUZXN0LnJ1bigpOwotfQotCi1m
dW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICByZXR1cm47Ci0gICAgbmV4dFRvdWNoUHJlc3MoKTsKLX0KLQotZnVuY3Rpb24gc2V0VXAoKQot
ewotICAgIGxldCBzcXVhcmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3F1YXJlIik7Ci0g
ICAgc3F1YXJlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIiwgaGFuZGxlUG9pbnRlckRv
d24sIHRydWUpOwotICAgIHNxdWFyZS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLCBoYW5k
bGVQb2ludGVyVXAsIHRydWUpOwotCi0gICAgZm9yIChjb25zdCBtb2RpZmllcnMgb2YgY29tcHV0
ZVN1YnNldHMobW9kaWZpZXJLZXlzKSkKLSAgICAgICAgdGVzdHMucHVzaChuZXcgVG91Y2hUZXN0
KHNxdWFyZSwgbW9kaWZpZXJzKSk7Ci0KLSAgICBydW5UZXN0KCk7Ci19Ci0KLXdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJsb2FkIiwgc2V0VXAsIHRydWUpOwotPC9zY3JpcHQ+Ci08c3R5bGU+Ci0j
c3F1YXJlIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOwotICAgIGNvbG9yOiB3aGl0ZTsK
LSAgICBoZWlnaHQ6IDEyOHB4OwotICAgIHdpZHRoOiAxMjhweDsKLSAgICBkaXNwbGF5OiBmbGV4
OwotICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Ci0gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7
Ci0gICAgdXNlci1zZWxlY3Q6IG5vbmU7Ci0gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsK
LX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgbG9ncyBET00gcG9pbnRlcmRv
d24gYW5kIHBvaW50ZXJ1cCBldmVudHMgdGhhdCBhcmUgZGlzcGF0Y2hlZCB3aGVuIHNpbmdsZSB0
YXBwaW5nIGFuIGVsZW1lbnQgd2hpbGUgaG9sZGluZyBtb2RpZmllciBrZXlzLiBNdXN0IGJlIHJ1
biBpbiBXZWJLaXRUZXN0UnVubmVyLjwvcD4KLTxkaXYgaWQ9InNxdWFyZSI+VG91Y2ggTWU8L2Rp
dj4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RvdWNoLWV2ZW50cy13aXRoLW1v
ZGlmaWVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
dG91Y2gtZXZlbnRzLXdpdGgtbW9kaWZpZXJzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNGU1NTUwYzlkMGU2NDdkNDAzYmU5OGM3NTdmMGRhNzM1NGFhMTBiZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdG91Y2gtZXZlbnRzLXdpdGgtbW9kaWZpZXJzLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyMyArMCwwIEBACi1UaGlzIGxvZ3MgRE9NIHRv
dWNoZG93biBhbmQgdG91Y2h1cCBldmVudHMgdGhhdCBhcmUgZGlzcGF0Y2hlZCB3aGVuIHNpbmds
ZSB0YXBwaW5nIGFuIGVsZW1lbnQgd2hpbGUgaG9sZGluZyBtb2RpZmllciBrZXlzIHdpdGggYW5k
IHdpdGhvdXQgYSBzdHlsdXMuIE11c3QgYmUgcnVuIGluIFdlYktpdFRlc3RSdW5uZXIuCi0KLQot
VGVzdCBDb21tYW5kICsgU2luZ2xlIFRhcDoKLXR5cGU6IHRvdWNoc3RhcnQsIHBhZ2VYOiA3Miwg
cGFnZVg6IDcyLCBzY2FsZTogMSwgcm90YXRpb246IDAsIGFsdEtleTogZmFsc2UsIGN0cmxLZXk6
IGZhbHNlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTogZmFsc2UKLXR5cGU6IHRvdWNoZW5kLCBw
YWdlWDogNzIsIHBhZ2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IGZhbHNl
LCBjdHJsS2V5OiBmYWxzZSwgbWV0YUtleTogdHJ1ZSwgc2hpZnRLZXk6IGZhbHNlCi0KLVRlc3Qg
T3B0aW9uICsgU2luZ2xlIFRhcDoKLXR5cGU6IHRvdWNoc3RhcnQsIHBhZ2VYOiA3MiwgcGFnZVg6
IDcyLCBzY2FsZTogMSwgcm90YXRpb246IDAsIGFsdEtleTogdHJ1ZSwgY3RybEtleTogZmFsc2Us
IG1ldGFLZXk6IGZhbHNlLCBzaGlmdEtleTogZmFsc2UKLXR5cGU6IHRvdWNoZW5kLCBwYWdlWDog
NzIsIHBhZ2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IHRydWUsIGN0cmxL
ZXk6IGZhbHNlLCBtZXRhS2V5OiBmYWxzZSwgc2hpZnRLZXk6IGZhbHNlCi0KLVRlc3QgQ29udHJv
bCArIFNpbmdsZSBUYXA6Ci10eXBlOiB0b3VjaHN0YXJ0LCBwYWdlWDogNzIsIHBhZ2VYOiA3Miwg
c2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IGZhbHNlLCBjdHJsS2V5OiB0cnVlLCBtZXRh
S2V5OiBmYWxzZSwgc2hpZnRLZXk6IGZhbHNlCi10eXBlOiB0b3VjaGVuZCwgcGFnZVg6IDcyLCBw
YWdlWDogNzIsIHNjYWxlOiAxLCByb3RhdGlvbjogMCwgYWx0S2V5OiBmYWxzZSwgY3RybEtleTog
dHJ1ZSwgbWV0YUtleTogZmFsc2UsIHNoaWZ0S2V5OiBmYWxzZQotCi1UZXN0IFNoaWZ0ICsgU2lu
Z2xlIFRhcDoKLXR5cGU6IHRvdWNoc3RhcnQsIHBhZ2VYOiA3MiwgcGFnZVg6IDcyLCBzY2FsZTog
MSwgcm90YXRpb246IDAsIGFsdEtleTogZmFsc2UsIGN0cmxLZXk6IGZhbHNlLCBtZXRhS2V5OiBm
YWxzZSwgc2hpZnRLZXk6IHRydWUKLXR5cGU6IHRvdWNoZW5kLCBwYWdlWDogNzIsIHBhZ2VYOiA3
Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IGZhbHNlLCBjdHJsS2V5OiBmYWxzZSwg
bWV0YUtleTogZmFsc2UsIHNoaWZ0S2V5OiB0cnVlCi0KLVRlc3QgQ29tbWFuZCArIE9wdGlvbiAr
IFNpbmdsZSBUYXA6Ci10eXBlOiB0b3VjaHN0YXJ0LCBwYWdlWDogNzIsIHBhZ2VYOiA3Miwgc2Nh
bGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6IGZhbHNlLCBtZXRhS2V5
OiB0cnVlLCBzaGlmdEtleTogZmFsc2UKLXR5cGU6IHRvdWNoZW5kLCBwYWdlWDogNzIsIHBhZ2VY
OiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6IGZhbHNl
LCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTogZmFsc2UKLQotVGVzdCBDb21tYW5kICsgQ29udHJv
bCArIFNpbmdsZSBUYXA6Ci10eXBlOiB0b3VjaHN0YXJ0LCBwYWdlWDogNzIsIHBhZ2VYOiA3Miwg
c2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IGZhbHNlLCBjdHJsS2V5OiB0cnVlLCBtZXRh
S2V5OiB0cnVlLCBzaGlmdEtleTogZmFsc2UKLXR5cGU6IHRvdWNoZW5kLCBwYWdlWDogNzIsIHBh
Z2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IGZhbHNlLCBjdHJsS2V5OiB0
cnVlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTogZmFsc2UKLQotVGVzdCBDb21tYW5kICsgU2hp
ZnQgKyBTaW5nbGUgVGFwOgotdHlwZTogdG91Y2hzdGFydCwgcGFnZVg6IDcyLCBwYWdlWDogNzIs
IHNjYWxlOiAxLCByb3RhdGlvbjogMCwgYWx0S2V5OiBmYWxzZSwgY3RybEtleTogZmFsc2UsIG1l
dGFLZXk6IHRydWUsIHNoaWZ0S2V5OiB0cnVlCi10eXBlOiB0b3VjaGVuZCwgcGFnZVg6IDcyLCBw
YWdlWDogNzIsIHNjYWxlOiAxLCByb3RhdGlvbjogMCwgYWx0S2V5OiBmYWxzZSwgY3RybEtleTog
ZmFsc2UsIG1ldGFLZXk6IHRydWUsIHNoaWZ0S2V5OiB0cnVlCi0KLVRlc3QgT3B0aW9uICsgQ29u
dHJvbCArIFNpbmdsZSBUYXA6Ci10eXBlOiB0b3VjaHN0YXJ0LCBwYWdlWDogNzIsIHBhZ2VYOiA3
Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6IHRydWUsIG1l
dGFLZXk6IGZhbHNlLCBzaGlmdEtleTogZmFsc2UKLXR5cGU6IHRvdWNoZW5kLCBwYWdlWDogNzIs
IHBhZ2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6
IHRydWUsIG1ldGFLZXk6IGZhbHNlLCBzaGlmdEtleTogZmFsc2UKLQotVGVzdCBPcHRpb24gKyBT
aGlmdCArIFNpbmdsZSBUYXA6Ci10eXBlOiB0b3VjaHN0YXJ0LCBwYWdlWDogNzIsIHBhZ2VYOiA3
Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6IGZhbHNlLCBt
ZXRhS2V5OiBmYWxzZSwgc2hpZnRLZXk6IHRydWUKLXR5cGU6IHRvdWNoZW5kLCBwYWdlWDogNzIs
IHBhZ2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6
IGZhbHNlLCBtZXRhS2V5OiBmYWxzZSwgc2hpZnRLZXk6IHRydWUKLQotVGVzdCBDb250cm9sICsg
U2hpZnQgKyBTaW5nbGUgVGFwOgotdHlwZTogdG91Y2hzdGFydCwgcGFnZVg6IDcyLCBwYWdlWDog
NzIsIHNjYWxlOiAxLCByb3RhdGlvbjogMCwgYWx0S2V5OiBmYWxzZSwgY3RybEtleTogdHJ1ZSwg
bWV0YUtleTogZmFsc2UsIHNoaWZ0S2V5OiB0cnVlCi10eXBlOiB0b3VjaGVuZCwgcGFnZVg6IDcy
LCBwYWdlWDogNzIsIHNjYWxlOiAxLCByb3RhdGlvbjogMCwgYWx0S2V5OiBmYWxzZSwgY3RybEtl
eTogdHJ1ZSwgbWV0YUtleTogZmFsc2UsIHNoaWZ0S2V5OiB0cnVlCi0KLVRlc3QgQ29tbWFuZCAr
IE9wdGlvbiArIENvbnRyb2wgKyBTaW5nbGUgVGFwOgotdHlwZTogdG91Y2hzdGFydCwgcGFnZVg6
IDcyLCBwYWdlWDogNzIsIHNjYWxlOiAxLCByb3RhdGlvbjogMCwgYWx0S2V5OiB0cnVlLCBjdHJs
S2V5OiB0cnVlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTogZmFsc2UKLXR5cGU6IHRvdWNoZW5k
LCBwYWdlWDogNzIsIHBhZ2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IHRy
dWUsIGN0cmxLZXk6IHRydWUsIG1ldGFLZXk6IHRydWUsIHNoaWZ0S2V5OiBmYWxzZQotCi1UZXN0
IENvbW1hbmQgKyBPcHRpb24gKyBTaGlmdCArIFNpbmdsZSBUYXA6Ci10eXBlOiB0b3VjaHN0YXJ0
LCBwYWdlWDogNzIsIHBhZ2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IHRy
dWUsIGN0cmxLZXk6IGZhbHNlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTogdHJ1ZQotdHlwZTog
dG91Y2hlbmQsIHBhZ2VYOiA3MiwgcGFnZVg6IDcyLCBzY2FsZTogMSwgcm90YXRpb246IDAsIGFs
dEtleTogdHJ1ZSwgY3RybEtleTogZmFsc2UsIG1ldGFLZXk6IHRydWUsIHNoaWZ0S2V5OiB0cnVl
Ci0KLVRlc3QgQ29tbWFuZCArIENvbnRyb2wgKyBTaGlmdCArIFNpbmdsZSBUYXA6Ci10eXBlOiB0
b3VjaHN0YXJ0LCBwYWdlWDogNzIsIHBhZ2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBh
bHRLZXk6IGZhbHNlLCBjdHJsS2V5OiB0cnVlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTogdHJ1
ZQotdHlwZTogdG91Y2hlbmQsIHBhZ2VYOiA3MiwgcGFnZVg6IDcyLCBzY2FsZTogMSwgcm90YXRp
b246IDAsIGFsdEtleTogZmFsc2UsIGN0cmxLZXk6IHRydWUsIG1ldGFLZXk6IHRydWUsIHNoaWZ0
S2V5OiB0cnVlCi0KLVRlc3QgT3B0aW9uICsgQ29udHJvbCArIFNoaWZ0ICsgU2luZ2xlIFRhcDoK
LXR5cGU6IHRvdWNoc3RhcnQsIHBhZ2VYOiA3MiwgcGFnZVg6IDcyLCBzY2FsZTogMSwgcm90YXRp
b246IDAsIGFsdEtleTogdHJ1ZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtleTogZmFsc2UsIHNoaWZ0
S2V5OiB0cnVlCi10eXBlOiB0b3VjaGVuZCwgcGFnZVg6IDcyLCBwYWdlWDogNzIsIHNjYWxlOiAx
LCByb3RhdGlvbjogMCwgYWx0S2V5OiB0cnVlLCBjdHJsS2V5OiB0cnVlLCBtZXRhS2V5OiBmYWxz
ZSwgc2hpZnRLZXk6IHRydWUKLQotVGVzdCBDb21tYW5kICsgT3B0aW9uICsgQ29udHJvbCArIFNo
aWZ0ICsgU2luZ2xlIFRhcDoKLXR5cGU6IHRvdWNoc3RhcnQsIHBhZ2VYOiA3MiwgcGFnZVg6IDcy
LCBzY2FsZTogMSwgcm90YXRpb246IDAsIGFsdEtleTogdHJ1ZSwgY3RybEtleTogdHJ1ZSwgbWV0
YUtleTogdHJ1ZSwgc2hpZnRLZXk6IHRydWUKLXR5cGU6IHRvdWNoZW5kLCBwYWdlWDogNzIsIHBh
Z2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6IHRy
dWUsIG1ldGFLZXk6IHRydWUsIHNoaWZ0S2V5OiB0cnVlCi0KLVRlc3QgQ29tbWFuZCArIFN0eWx1
cyBTaW5nbGUgVGFwOgotdHlwZTogdG91Y2hzdGFydCwgcGFnZVg6IDcyLCBwYWdlWDogNzIsIHNj
YWxlOiAxLCByb3RhdGlvbjogMCwgYWx0S2V5OiBmYWxzZSwgY3RybEtleTogZmFsc2UsIG1ldGFL
ZXk6IHRydWUsIHNoaWZ0S2V5OiBmYWxzZQotdHlwZTogdG91Y2hlbmQsIHBhZ2VYOiA3MiwgcGFn
ZVg6IDcyLCBzY2FsZTogMSwgcm90YXRpb246IDAsIGFsdEtleTogZmFsc2UsIGN0cmxLZXk6IGZh
bHNlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTogZmFsc2UKLQotVGVzdCBPcHRpb24gKyBTdHls
dXMgU2luZ2xlIFRhcDoKLXR5cGU6IHRvdWNoc3RhcnQsIHBhZ2VYOiA3MiwgcGFnZVg6IDcyLCBz
Y2FsZTogMSwgcm90YXRpb246IDAsIGFsdEtleTogdHJ1ZSwgY3RybEtleTogZmFsc2UsIG1ldGFL
ZXk6IGZhbHNlLCBzaGlmdEtleTogZmFsc2UKLXR5cGU6IHRvdWNoZW5kLCBwYWdlWDogNzIsIHBh
Z2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6IGZh
bHNlLCBtZXRhS2V5OiBmYWxzZSwgc2hpZnRLZXk6IGZhbHNlCi0KLVRlc3QgQ29udHJvbCArIFN0
eWx1cyBTaW5nbGUgVGFwOgotdHlwZTogdG91Y2hzdGFydCwgcGFnZVg6IDcyLCBwYWdlWDogNzIs
IHNjYWxlOiAxLCByb3RhdGlvbjogMCwgYWx0S2V5OiBmYWxzZSwgY3RybEtleTogdHJ1ZSwgbWV0
YUtleTogZmFsc2UsIHNoaWZ0S2V5OiBmYWxzZQotdHlwZTogdG91Y2hlbmQsIHBhZ2VYOiA3Miwg
cGFnZVg6IDcyLCBzY2FsZTogMSwgcm90YXRpb246IDAsIGFsdEtleTogZmFsc2UsIGN0cmxLZXk6
IHRydWUsIG1ldGFLZXk6IGZhbHNlLCBzaGlmdEtleTogZmFsc2UKLQotVGVzdCBTaGlmdCArIFN0
eWx1cyBTaW5nbGUgVGFwOgotdHlwZTogdG91Y2hzdGFydCwgcGFnZVg6IDcyLCBwYWdlWDogNzIs
IHNjYWxlOiAxLCByb3RhdGlvbjogMCwgYWx0S2V5OiBmYWxzZSwgY3RybEtleTogZmFsc2UsIG1l
dGFLZXk6IGZhbHNlLCBzaGlmdEtleTogdHJ1ZQotdHlwZTogdG91Y2hlbmQsIHBhZ2VYOiA3Miwg
cGFnZVg6IDcyLCBzY2FsZTogMSwgcm90YXRpb246IDAsIGFsdEtleTogZmFsc2UsIGN0cmxLZXk6
IGZhbHNlLCBtZXRhS2V5OiBmYWxzZSwgc2hpZnRLZXk6IHRydWUKLQotVGVzdCBDb21tYW5kICsg
T3B0aW9uICsgU3R5bHVzIFNpbmdsZSBUYXA6Ci10eXBlOiB0b3VjaHN0YXJ0LCBwYWdlWDogNzIs
IHBhZ2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6
IGZhbHNlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTogZmFsc2UKLXR5cGU6IHRvdWNoZW5kLCBw
YWdlWDogNzIsIHBhZ2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IHRydWUs
IGN0cmxLZXk6IGZhbHNlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTogZmFsc2UKLQotVGVzdCBD
b21tYW5kICsgQ29udHJvbCArIFN0eWx1cyBTaW5nbGUgVGFwOgotdHlwZTogdG91Y2hzdGFydCwg
cGFnZVg6IDcyLCBwYWdlWDogNzIsIHNjYWxlOiAxLCByb3RhdGlvbjogMCwgYWx0S2V5OiBmYWxz
ZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtleTogdHJ1ZSwgc2hpZnRLZXk6IGZhbHNlCi10eXBlOiB0
b3VjaGVuZCwgcGFnZVg6IDcyLCBwYWdlWDogNzIsIHNjYWxlOiAxLCByb3RhdGlvbjogMCwgYWx0
S2V5OiBmYWxzZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtleTogdHJ1ZSwgc2hpZnRLZXk6IGZhbHNl
Ci0KLVRlc3QgQ29tbWFuZCArIFNoaWZ0ICsgU3R5bHVzIFNpbmdsZSBUYXA6Ci10eXBlOiB0b3Vj
aHN0YXJ0LCBwYWdlWDogNzIsIHBhZ2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRL
ZXk6IGZhbHNlLCBjdHJsS2V5OiBmYWxzZSwgbWV0YUtleTogdHJ1ZSwgc2hpZnRLZXk6IHRydWUK
LXR5cGU6IHRvdWNoZW5kLCBwYWdlWDogNzIsIHBhZ2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9u
OiAwLCBhbHRLZXk6IGZhbHNlLCBjdHJsS2V5OiBmYWxzZSwgbWV0YUtleTogdHJ1ZSwgc2hpZnRL
ZXk6IHRydWUKLQotVGVzdCBPcHRpb24gKyBDb250cm9sICsgU3R5bHVzIFNpbmdsZSBUYXA6Ci10
eXBlOiB0b3VjaHN0YXJ0LCBwYWdlWDogNzIsIHBhZ2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9u
OiAwLCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6IHRydWUsIG1ldGFLZXk6IGZhbHNlLCBzaGlmdEtl
eTogZmFsc2UKLXR5cGU6IHRvdWNoZW5kLCBwYWdlWDogNzIsIHBhZ2VYOiA3Miwgc2NhbGU6IDEs
IHJvdGF0aW9uOiAwLCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6IHRydWUsIG1ldGFLZXk6IGZhbHNl
LCBzaGlmdEtleTogZmFsc2UKLQotVGVzdCBPcHRpb24gKyBTaGlmdCArIFN0eWx1cyBTaW5nbGUg
VGFwOgotdHlwZTogdG91Y2hzdGFydCwgcGFnZVg6IDcyLCBwYWdlWDogNzIsIHNjYWxlOiAxLCBy
b3RhdGlvbjogMCwgYWx0S2V5OiB0cnVlLCBjdHJsS2V5OiBmYWxzZSwgbWV0YUtleTogZmFsc2Us
IHNoaWZ0S2V5OiB0cnVlCi10eXBlOiB0b3VjaGVuZCwgcGFnZVg6IDcyLCBwYWdlWDogNzIsIHNj
YWxlOiAxLCByb3RhdGlvbjogMCwgYWx0S2V5OiB0cnVlLCBjdHJsS2V5OiBmYWxzZSwgbWV0YUtl
eTogZmFsc2UsIHNoaWZ0S2V5OiB0cnVlCi0KLVRlc3QgQ29udHJvbCArIFNoaWZ0ICsgU3R5bHVz
IFNpbmdsZSBUYXA6Ci10eXBlOiB0b3VjaHN0YXJ0LCBwYWdlWDogNzIsIHBhZ2VYOiA3Miwgc2Nh
bGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IGZhbHNlLCBjdHJsS2V5OiB0cnVlLCBtZXRhS2V5
OiBmYWxzZSwgc2hpZnRLZXk6IHRydWUKLXR5cGU6IHRvdWNoZW5kLCBwYWdlWDogNzIsIHBhZ2VY
OiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IGZhbHNlLCBjdHJsS2V5OiB0cnVl
LCBtZXRhS2V5OiBmYWxzZSwgc2hpZnRLZXk6IHRydWUKLQotVGVzdCBDb21tYW5kICsgT3B0aW9u
ICsgQ29udHJvbCArIFN0eWx1cyBTaW5nbGUgVGFwOgotdHlwZTogdG91Y2hzdGFydCwgcGFnZVg6
IDcyLCBwYWdlWDogNzIsIHNjYWxlOiAxLCByb3RhdGlvbjogMCwgYWx0S2V5OiB0cnVlLCBjdHJs
S2V5OiB0cnVlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTogZmFsc2UKLXR5cGU6IHRvdWNoZW5k
LCBwYWdlWDogNzIsIHBhZ2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRLZXk6IHRy
dWUsIGN0cmxLZXk6IHRydWUsIG1ldGFLZXk6IHRydWUsIHNoaWZ0S2V5OiBmYWxzZQotCi1UZXN0
IENvbW1hbmQgKyBPcHRpb24gKyBTaGlmdCArIFN0eWx1cyBTaW5nbGUgVGFwOgotdHlwZTogdG91
Y2hzdGFydCwgcGFnZVg6IDcyLCBwYWdlWDogNzIsIHNjYWxlOiAxLCByb3RhdGlvbjogMCwgYWx0
S2V5OiB0cnVlLCBjdHJsS2V5OiBmYWxzZSwgbWV0YUtleTogdHJ1ZSwgc2hpZnRLZXk6IHRydWUK
LXR5cGU6IHRvdWNoZW5kLCBwYWdlWDogNzIsIHBhZ2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9u
OiAwLCBhbHRLZXk6IHRydWUsIGN0cmxLZXk6IGZhbHNlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtl
eTogdHJ1ZQotCi1UZXN0IENvbW1hbmQgKyBDb250cm9sICsgU2hpZnQgKyBTdHlsdXMgU2luZ2xl
IFRhcDoKLXR5cGU6IHRvdWNoc3RhcnQsIHBhZ2VYOiA3MiwgcGFnZVg6IDcyLCBzY2FsZTogMSwg
cm90YXRpb246IDAsIGFsdEtleTogZmFsc2UsIGN0cmxLZXk6IHRydWUsIG1ldGFLZXk6IHRydWUs
IHNoaWZ0S2V5OiB0cnVlCi10eXBlOiB0b3VjaGVuZCwgcGFnZVg6IDcyLCBwYWdlWDogNzIsIHNj
YWxlOiAxLCByb3RhdGlvbjogMCwgYWx0S2V5OiBmYWxzZSwgY3RybEtleTogdHJ1ZSwgbWV0YUtl
eTogdHJ1ZSwgc2hpZnRLZXk6IHRydWUKLQotVGVzdCBPcHRpb24gKyBDb250cm9sICsgU2hpZnQg
KyBTdHlsdXMgU2luZ2xlIFRhcDoKLXR5cGU6IHRvdWNoc3RhcnQsIHBhZ2VYOiA3MiwgcGFnZVg6
IDcyLCBzY2FsZTogMSwgcm90YXRpb246IDAsIGFsdEtleTogdHJ1ZSwgY3RybEtleTogdHJ1ZSwg
bWV0YUtleTogZmFsc2UsIHNoaWZ0S2V5OiB0cnVlCi10eXBlOiB0b3VjaGVuZCwgcGFnZVg6IDcy
LCBwYWdlWDogNzIsIHNjYWxlOiAxLCByb3RhdGlvbjogMCwgYWx0S2V5OiB0cnVlLCBjdHJsS2V5
OiB0cnVlLCBtZXRhS2V5OiBmYWxzZSwgc2hpZnRLZXk6IHRydWUKLQotVGVzdCBDb21tYW5kICsg
T3B0aW9uICsgQ29udHJvbCArIFNoaWZ0ICsgU3R5bHVzIFNpbmdsZSBUYXA6Ci10eXBlOiB0b3Vj
aHN0YXJ0LCBwYWdlWDogNzIsIHBhZ2VYOiA3Miwgc2NhbGU6IDEsIHJvdGF0aW9uOiAwLCBhbHRL
ZXk6IHRydWUsIGN0cmxLZXk6IHRydWUsIG1ldGFLZXk6IHRydWUsIHNoaWZ0S2V5OiB0cnVlCi10
eXBlOiB0b3VjaGVuZCwgcGFnZVg6IDcyLCBwYWdlWDogNzIsIHNjYWxlOiAxLCByb3RhdGlvbjog
MCwgYWx0S2V5OiB0cnVlLCBjdHJsS2V5OiB0cnVlLCBtZXRhS2V5OiB0cnVlLCBzaGlmdEtleTog
dHJ1ZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdG91
Y2gtZXZlbnRzLXdpdGgtbW9kaWZpZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvdG91Y2gtZXZlbnRzLXdpdGgtbW9kaWZpZXJzLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGE1MmY1MDk2ODM5YTkxZGU0MDNjNzdiYTZjMTVjODdkZGU5ODYxY2Qu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RvdWNoLWV2ZW50cy13aXRoLW1vZGlmaWVycy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMTUwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvY29tcHV0ZS1zdWJzZXRz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
LX0KLQotLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciB0ZXN0aW5nIGZvcmNlIHRvdWNoLgotY29u
c3QgVG91Y2hUeXBlID0gewotICAgICJTaW5nbGVUYXAiOiAiU2luZ2xlVGFwIiwKLSAgICAiU3R5
bHVzU2luZ2xlVGFwIjogIlN0eWx1c1NpbmdsZVRhcCIsCi19OwotY29uc3QgVG91Y2hUeXBlRGlz
cGxheU5hbWUgPSB7Ci0gICAgIlNpbmdsZVRhcCI6ICJTaW5nbGUgVGFwIiwKLSAgICAiU3R5bHVz
U2luZ2xlVGFwIjogIlN0eWx1cyBTaW5nbGUgVGFwIiwKLX07Ci0KLWNsYXNzIFRvdWNoVGVzdCB7
Ci0gICAgY29uc3RydWN0b3IoZWxlbWVudFRvVG91Y2gsIHRvdWNoVHlwZSwgbW9kaWZpZXJzID0g
W10pCi0gICAgewotICAgICAgICB0aGlzLmVsZW1lbnRUb1RvdWNoID0gZWxlbWVudFRvVG91Y2g7
Ci0gICAgICAgIHRoaXMudG91Y2hUeXBlID0gdG91Y2hUeXBlOwotICAgICAgICB0aGlzLm1vZGlm
aWVycyA9IG1vZGlmaWVyczsKLSAgICB9Ci0KLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAg
ICByZXR1cm4gYHsgJHt0aGlzLnRvdWNoVHlwZX0sICR7dGhpcy5lbGVtZW50VG9Ub3VjaH0sIFsk
e3RoaXMubW9kaWZpZXJzfV0gfWA7Ci0gICAgfQotCi0gICAgcnVuKCkKLSAgICB7Ci0gICAgICAg
IGxldCBjZW50ZXJYID0gdGhpcy5lbGVtZW50VG9Ub3VjaC5vZmZzZXRMZWZ0ICsgdGhpcy5lbGVt
ZW50VG9Ub3VjaC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIGxldCBjZW50ZXJZID0gdGhpcy5l
bGVtZW50VG9Ub3VjaC5vZmZzZXRUb3AgKyB0aGlzLmVsZW1lbnRUb1RvdWNoLm9mZnNldEhlaWdo
dCAvIDI7Ci0gICAgICAgIGlmICh0aGlzLnRvdWNoVHlwZSA9PT0gVG91Y2hUeXBlLlNpbmdsZVRh
cCkKLSAgICAgICAgICAgIHJldHVybiBVSUhlbHBlci50YXBBdChjZW50ZXJYLCBjZW50ZXJZLCB0
aGlzLm1vZGlmaWVycyk7Ci0gICAgICAgIHJldHVybiBVSUhlbHBlci5zdHlsdXNUYXBBdChjZW50
ZXJYLCBjZW50ZXJZLCB0aGlzLm1vZGlmaWVycyk7Ci0gICAgfQotfQotCi1jb25zdCBtb2RpZmll
cktleXMgPSBbIm1ldGFLZXkiLCAiYWx0S2V5IiwgImN0cmxLZXkiLCAic2hpZnRLZXkiXTsKLQot
bGV0IGN1cnJlbnRUZXN0OwotbGV0IHRlc3RzID0gW107Ci0KLWZ1bmN0aW9uIGhhbmRsZVRvdWNo
RG93bihldmVudCkKLXsKLSAgICBsb2dUb3VjaEV2ZW50KGV2ZW50KTsKLX0KLQotZnVuY3Rpb24g
aGFuZGxlVG91Y2hVcChldmVudCkKLXsKLSAgICBsb2dUb3VjaEV2ZW50KGV2ZW50KTsKLSAgICBu
ZXh0VG91Y2hQcmVzcygpOwotfQotCi1mdW5jdGlvbiBsb2cobWVzc2FnZSkKLXsKLSAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKG1lc3NhZ2UgKyAiXG4iKSk7Ci19Ci0KLWZ1bmN0aW9uIGxvZ1RvdWNoRXZlbnQo
ZXZlbnQpCi17Ci0gICAgbGV0IHBpZWNlcyA9IFtdOwotICAgIGZvciAobGV0IHByb3BlcnR5TmFt
ZSBvZiBbInR5cGUiLCAicGFnZVgiLCAicGFnZVgiLCAic2NhbGUiLCAicm90YXRpb24iLCAiYWx0
S2V5IiwgImN0cmxLZXkiLCAibWV0YUtleSIsICJzaGlmdEtleSJdKQotICAgICAgICBwaWVjZXMu
cHVzaChgJHtwcm9wZXJ0eU5hbWV9OiAke2V2ZW50W3Byb3BlcnR5TmFtZV19YCk7Ci0gICAgbG9n
KHBpZWNlcy5qb2luKCIsICIpKTsKLX0KLQotY29uc3QgbW9kaWZpZXJEaXNwbGF5TmFtZU1hcCA9
IHsKLSAgICAiYWx0S2V5IjogIk9wdGlvbiIsCi0gICAgImN0cmxLZXkiOiAiQ29udHJvbCIsCi0g
ICAgIm1ldGFLZXkiOiAiQ29tbWFuZCIsCi0gICAgInNoaWZ0S2V5IjogIlNoaWZ0IiwKLSAgICAi
Y2Fwc0xvY2tLZXkiOiAiQ2FwcyBMb2NrIiwKLX0KLQotZnVuY3Rpb24gZGlzcGxheU5hbWVGb3JU
ZXN0KHRlc3QpCi17Ci0gICAgbGV0IGRpc3BsYXlOYW1lc09mTW9kaWZpZXJzID0gW107Ci0gICAg
Zm9yIChjb25zdCBtb2RpZmllciBvZiB0ZXN0Lm1vZGlmaWVycykKLSAgICAgICAgZGlzcGxheU5h
bWVzT2ZNb2RpZmllcnMucHVzaChtb2RpZmllckRpc3BsYXlOYW1lTWFwW21vZGlmaWVyXSk7Ci0g
ICAgbGV0IHJlc3VsdCA9ICIiOwotICAgIGlmIChkaXNwbGF5TmFtZXNPZk1vZGlmaWVycy5sZW5n
dGgpCi0gICAgICAgIHJlc3VsdCArPSBkaXNwbGF5TmFtZXNPZk1vZGlmaWVycy5qb2luKCIgKyAi
KSArICIgKyAiOwotICAgIHJlc3VsdCArPSBUb3VjaFR5cGVEaXNwbGF5TmFtZVt0ZXN0LnRvdWNo
VHlwZV07Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotYXN5bmMgZnVuY3Rpb24gbmV4dFRvdWNo
UHJlc3MoKQotewotICAgIGlmICghdGVzdHMubGVuZ3RoKSB7Ci0gICAgICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNxdWFyZSIpKTsKLSAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY3VycmVudFRlc3QgPSB0ZXN0cy5z
aGlmdCgpOwotICAgIGxvZyhgXG5UZXN0ICR7ZGlzcGxheU5hbWVGb3JUZXN0KGN1cnJlbnRUZXN0
KX06YCk7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICBhd2FpdCBjdXJyZW50
VGVzdC5ydW4oKTsKLX0KLQotZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgaWYgKCF3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICAgICAgcmV0dXJuOwotICAgIG5leHRUb3VjaFByZXNzKCk7Ci19Ci0K
LWZ1bmN0aW9uIHNldFVwKCkKLXsKLSAgICBsZXQgc3F1YXJlID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInNxdWFyZSIpOwotICAgIHNxdWFyZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0
IiwgaGFuZGxlVG91Y2hEb3duLCB0cnVlKTsKLSAgICBzcXVhcmUuYWRkRXZlbnRMaXN0ZW5lcigi
dG91Y2hlbmQiLCBoYW5kbGVUb3VjaFVwLCB0cnVlKTsKLQotICAgIGZvciAoY29uc3QgdG91Y2hU
eXBlIGluIFRvdWNoVHlwZSkgewotICAgICAgICBmb3IgKGNvbnN0IG1vZGlmaWVycyBvZiBjb21w
dXRlU3Vic2V0cyhtb2RpZmllcktleXMpKQotICAgICAgICAgICAgdGVzdHMucHVzaChuZXcgVG91
Y2hUZXN0KHNxdWFyZSwgdG91Y2hUeXBlLCBtb2RpZmllcnMpKTsKLSAgICB9Ci0KLSAgICBydW5U
ZXN0KCk7Ci19Ci0KLXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc2V0VXAsIHRydWUp
OwotPC9zY3JpcHQ+Ci08c3R5bGU+Ci0jc3F1YXJlIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBi
bHVlOwotICAgIGNvbG9yOiB3aGl0ZTsKLSAgICBoZWlnaHQ6IDEyOHB4OwotICAgIHdpZHRoOiAx
MjhweDsKLSAgICBkaXNwbGF5OiBmbGV4OwotICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Ci0gICAg
anVzdGlmeS1jb250ZW50OiBjZW50ZXI7Ci0gICAgdXNlci1zZWxlY3Q6IG5vbmU7Ci0gICAgLXdl
YmtpdC11c2VyLXNlbGVjdDogbm9uZTsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxw
PlRoaXMgbG9ncyBET00gdG91Y2hkb3duIGFuZCB0b3VjaHVwIGV2ZW50cyB0aGF0IGFyZSBkaXNw
YXRjaGVkIHdoZW4gc2luZ2xlIHRhcHBpbmcgYW4gZWxlbWVudCB3aGlsZSBob2xkaW5nIG1vZGlm
aWVyIGtleXMgd2l0aCBhbmQgd2l0aG91dCBhIHN0eWx1cy4gTXVzdCBiZSBydW4gaW4gV2ViS2l0
VGVzdFJ1bm5lci48L3A+Ci08ZGl2IGlkPSJzcXVhcmUiPlRvdWNoIE1lPC9kaXY+Ci08cHJlIGlk
PSJjb25zb2xlIj48L3ByZT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10YWctYXR0cmlidXRlcy12
YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0
dHJpYnV0aW9uL2FuY2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dApp
bmRleCA0ZGUxOGNjMzc5NGI4NDNhYTg1NDJjNDgwNzA3ZDQ4NDA2NWFhNjg5Li4zMTEwODRlNmQz
NGZmMjM0OGQ1ZGQ5OGE3YTRlYzI5ZTgzM2UyOTIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRh
dGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0
cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CkBA
IC0xLDEzICsxLDEzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA4OiBhZGNhbXBhaWduaWQg
bXVzdCBoYXZlIGEgbm9uLW5lZ2F0aXZlIHZhbHVlIGxlc3MgdGhhbiA2NCBmb3IgQWQgQ2xpY2sg
QXR0cmlidXRpb24uCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA4OiBhZGNhbXBhaWduaWQgbXVz
dCBoYXZlIGEgbm9uLW5lZ2F0aXZlIHZhbHVlIGxlc3MgdGhhbiA2NCBmb3IgQWQgQ2xpY2sgQXR0
cmlidXRpb24uCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA4OiBhZGNhbXBhaWduaWQgY2FuIG5v
dCBiZSBjb252ZXJ0ZWQgdG8gYSBub24tbmVnYXRpdmUgaW50ZWdlciB3aGljaCBpcyByZXF1aXJl
ZCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA4OiBh
ZGNhbXBhaWduaWQgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBub24tbmVnYXRpdmUgaW50ZWdl
ciB3aGljaCBpcyByZXF1aXJlZCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTA4OiBhZGNhbXBhaWduaWQgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBu
b24tbmVnYXRpdmUgaW50ZWdlciB3aGljaCBpcyByZXF1aXJlZCBmb3IgQWQgQ2xpY2sgQXR0cmli
dXRpb24uCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA4OiBhZGRkZXN0aW5hdGlvbiBjb3VsZCBu
b3QgYmUgY29udmVydGVkIHRvIGEgdmFsaWQgSFRUUC1mYW1pbHkgVVJMLgotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDEwODogYWRkZGVzdGluYXRpb24gY291bGQgbm90IGJlIGNvbnZlcnRlZCB0byBh
IHZhbGlkIEhUVFAtZmFtaWx5IFVSTC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDg6IGFkZGRl
c3RpbmF0aW9uIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxpZCBIVFRQLWZhbWlseSBV
UkwuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA4OiBCb3RoIGFkY2FtcGFpZ25pZCBhbmQgYWRk
ZXN0aW5hdGlvbiBuZWVkIHRvIGJlIHNldCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24gdG8gd29y
ay4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDg6IEJvdGggYWRjYW1wYWlnbmlkIGFuZCBhZGRl
c3RpbmF0aW9uIG5lZWQgdG8gYmUgc2V0IGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbiB0byB3b3Jr
LgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwNzogYWRjYW1wYWlnbmlkIG11c3QgaGF2ZSBhIG5v
bi1uZWdhdGl2ZSB2YWx1ZSBsZXNzIHRoYW4gNjQgZm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uLgor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDEwNzogYWRjYW1wYWlnbmlkIG11c3QgaGF2ZSBhIG5vbi1u
ZWdhdGl2ZSB2YWx1ZSBsZXNzIHRoYW4gNjQgZm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uLgorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDEwNzogYWRjYW1wYWlnbmlkIGNhbiBub3QgYmUgY29udmVydGVk
IHRvIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIEFkIENsaWNr
IEF0dHJpYnV0aW9uLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwNzogYWRjYW1wYWlnbmlkIGNh
biBub3QgYmUgY29udmVydGVkIHRvIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgd2hpY2ggaXMgcmVx
dWlyZWQgZm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEw
NzogYWRjYW1wYWlnbmlkIGNhbiBub3QgYmUgY29udmVydGVkIHRvIGEgbm9uLW5lZ2F0aXZlIGlu
dGVnZXIgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uLgorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDEwNzogYWRkZGVzdGluYXRpb24gY291bGQgbm90IGJlIGNvbnZlcnRl
ZCB0byBhIHZhbGlkIEhUVFAtZmFtaWx5IFVSTC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMDc6
IGFkZGRlc3RpbmF0aW9uIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxpZCBIVFRQLWZh
bWlseSBVUkwuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA3OiBhZGRkZXN0aW5hdGlvbiBjb3Vs
ZCBub3QgYmUgY29udmVydGVkIHRvIGEgdmFsaWQgSFRUUC1mYW1pbHkgVVJMLgorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDEwNzogQm90aCBhZGNhbXBhaWduaWQgYW5kIGFkZGVzdGluYXRpb24gbmVl
ZCB0byBiZSBzZXQgZm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uIHRvIHdvcmsuCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTA3OiBCb3RoIGFkY2FtcGFpZ25pZCBhbmQgYWRkZXN0aW5hdGlvbiBuZWVk
IHRvIGJlIHNldCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24gdG8gd29yay4KIFRlc3QgZm9yIHZh
bGlkaXR5IG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGF0dHJpYnV0ZXMgb24gYW5jaG9yIHRhZ3Mu
CiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvYW5jaG9yLWRvd25sb2FkLWJsb2NrLWNyb3Nzb3JpZ2luLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYW5jaG9yLWRvd25sb2Fk
LWJsb2NrLWNyb3Nzb3JpZ2luLWV4cGVjdGVkLnR4dAppbmRleCBhMDcwMjI3MGQ1ZDI2ZmYwZTg5
NDFhYWQxM2M5NGM0Mjk5ODY2YTU4Li5mYzZkMzcwNWZhZGNmMjNlMTE0OWZiM2EwZWE4OTM1YThi
NGIzMzk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2FuY2hv
ci1kb3dubG9hZC1ibG9jay1jcm9zc29yaWdpbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93bmxvYWQtYmxvY2stY3Jvc3NvcmlnaW4t
ZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwODog
VGhlIGRvd25sb2FkIGF0dHJpYnV0ZSBvbiBhbmNob3Igd2FzIGlnbm9yZWQgYmVjYXVzZSBpdHMg
aHJlZiBVUkwgaGFzIGEgZGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbi4KK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAxMDc6IFRoZSBkb3dubG9hZCBhdHRyaWJ1dGUgb24gYW5jaG9yIHdhcyBpZ25vcmVk
IGJlY2F1c2UgaXRzIGhyZWYgVVJMIGhhcyBhIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4uCiBU
ZXN0cyB0aGF0IHRoZSBkb3dubG9hZCBhdHRyaWJ1dGUgaXMgaWdub3JlZCBpZiB0aGUgbGluayBp
cyBjcm9zcyBvcmlnaW4uCiAKIEl0IHNob3VsZCBuYXZpZ2F0ZSB0aGUgc3ViZnJhbWUgaW5zdGVh
ZCBvZiBkb3dubG9hZGluZyB0aGUgZmlsZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNWE3NDM1ZDFhNGRhODFlYjM4NTAzOGY1YmI1NzIzNTM3Y2JlNTdh
ZS4uZjQwMTYxY2NhMmM5OGM3M2Q3NmU1MjYwNTMxZTgxNzAzN2IzMmM1ZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMyMTAsOCArMzIxMCwzIEBAIHdl
YmtpdC5vcmcvYi8xOTM5NTUgY29tcG9zaXRpbmcvaWZyYW1lcy9yZW1vdmUtcmVpbnNlcnQtd2Vi
dmlldy13aXRoLWlmcmFtZS5odG1sCiB3ZWJraXQub3JnL2IvMTUzMzM3IHBhZ2VvdmVybGF5L292
ZXJsYXktaW5zdGFsbGF0aW9uLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE1
MzMzNyBwYWdlb3ZlcmxheS9vdmVybGF5LWxhcmdlLWRvY3VtZW50LXNjcm9sbGVkLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE1MzMzNyBwYWdlb3ZlcmxheS9vdmVybGF5LWxh
cmdlLWRvY3VtZW50Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCi0jIEZJWE1FOiBVbnNraXAgdGhl
IGZvbGxvd2luZyB0ZXN0IG9uY2Ugd2UgaGF2ZSB0aGUgZml4IGZvciA8cmRhcjovL3Byb2JsZW0v
NDU5NzAwNDA+LgotZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RvdWNoLWV2ZW50cy13aXRoLW1vZGlm
aWVycy5odG1sIFsgU2tpcCBdCi1mYXN0L2V2ZW50cy90b3VjaC9pb3MvbW91c2UtZXZlbnRzLXdp
dGgtbW9kaWZpZXJzLmh0bWwgWyBTa2lwIF0KLWZhc3QvZXZlbnRzL3RvdWNoL2lvcy9wb2ludGVy
LWV2ZW50cy13aXRoLW1vZGlmaWVycy5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhl
bHBlci5qcwppbmRleCBlZjkzZjNjYjQ4YWRlOTY0OTBlM2I3OGI2NDZhZWYzOTg4NzMwOThjLi4z
MWFhYzdlMWVmN2FmZWUwYzQ1MWEyOGMyMjc3ZjlmOGIyYThiNTI5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNl
cy91aS1oZWxwZXIuanMKQEAgLTI5LDEyICsyOSwxMSBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFz
cyBVSUhlbHBlciB7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKICAgICB9CiAKLSAg
ICBzdGF0aWMgdGFwQXQoeCwgeSwgbW9kaWZpZXJzPVtdKQorICAgIHN0YXRpYyB0YXBBdCh4LCB5
KQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5pc0lPUygpKTsKIAogICAgICAg
ICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkpIHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFt
b2RpZmllcnMgfHwgIW1vZGlmaWVycy5sZW5ndGgpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIu
YWRkVG91Y2hQb2ludCh4LCB5KTsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLnRvdWNoU3RhcnQo
KTsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLnJlbGVhc2VUb3VjaFBvaW50KDApOwpAQCAtNDQs
NyArNDMsNyBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAKICAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICAgICAgICAgICB0ZXN0UnVubmVy
LnJ1blVJU2NyaXB0KGAKLSAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2luZ2xlVGFwQXRQ
b2ludFdpdGhNb2RpZmllcnMoJHt4fSwgJHt5fSwgJHtKU09OLnN0cmluZ2lmeShtb2RpZmllcnMp
fSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnNpbmdsZVRhcEF0
UG9pbnQoJHt4fSwgJHt5fSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgIHVpQ29u
dHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CiAgICAgICAgICAgICAgICAgfSk7YCwgcmVzb2x2
ZSk7CiAgICAgICAgIH0pOwpAQCAtNTY2LDE0ICs1NjUsMTQgQEAgd2luZG93LlVJSGVscGVyID0g
Y2xhc3MgVUlIZWxwZXIgewogICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0
ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGB1aUNvbnRyb2xsZXIuZHJhd1NxdWFyZUluRWRpdGFibGVJ
bWFnZSgpYCwgcmVzb2x2ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBzdHlsdXNUYXBBdCh4LCB5
LCBtb2RpZmllcnM9W10pCisgICAgc3RhdGljIHN0eWx1c1RhcEF0KHgsIHkpCiAgICAgewogICAg
ICAgICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkpCiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5y
ZXNvbHZlKCk7CiAKICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKLSAgICAgICAgICAgICAgICB1aUNv
bnRyb2xsZXIuc3R5bHVzVGFwQXRQb2ludFdpdGhNb2RpZmllcnMoJHt4fSwgJHt5fSwgMiwgMSwg
MC41LCAke0pTT04uc3RyaW5naWZ5KG1vZGlmaWVycyl9LCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICB1aUNvbnRyb2xsZXIuc3R5bHVzVGFwQXRQb2ludCgke3h9LCAke3l9LCAyLCAxLCAw
LjUsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3Jp
cHRDb21wbGV0ZSgpOwogICAgICAgICAgICAgICAgIH0pO2AsIHJlc29sdmUpOwogICAgICAgICB9
KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>