<?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>201366</bug_id>
          
          <creation_ts>2019-08-30 16:19:56 -0700</creation_ts>
          <short_desc>Tail Deleted Frames shown in Web Inspector are sometimes incorrect (Shadow Chicken)</short_desc>
          <delta_ts>2019-09-06 12:11:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=201201</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1566870</commentid>
    <comment_count>0</comment_count>
      <attachid>377763</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-30 16:19:56 -0700</bug_when>
    <thetext>Created attachment 377763
[TEST PAGE] test.html

Tail Deleted Frames shown in Web Inspector are sometimes incorrect (Shadow Chicken)

Steps to reproduce:
1. Inspect test page
  =&gt; Show Call Stack in Web Inspector debugger sidebar

Expected:

  Call Stack:
  [green f] a
  [gray  f] b
  [gray  f] c
  [green f] startABC

Actual:

  Call Stack:
  [green f] a
  [gray  f] b
  [gray  f] c
  [gray  f] THIS_DOES_NOT_CALL_c
  [gray  f] THIS_DOES_NOT_CALL_c
  ...
  [gray  f] THIS_DOES_NOT_CALL_c
  [green f] startABC


Test page:

&lt;script&gt;
&quot;use strict&quot;;
function a() {
    let x = 20;
    debugger;
    x;
    return x;
}
function b() {
    let y = 40;
    return a.call({aThis: 2});
}
function c() {
    let z = 60;
    return b.call({bThis: 1}); 
}
function startABC() {
    for (let i = 0; i &lt; 500; ++i)
        THIS_DOES_NOT_CALL_c();
    c.call({cThis: 0});
}
function THIS_DOES_NOT_CALL_c() {
    return Math.random();
}
setInterval(startABC);
&lt;/script&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566878</commentid>
    <comment_count>1</comment_count>
      <attachid>377767</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-30 16:32:11 -0700</bug_when>
    <thetext>Created attachment 377767
[TEST PAGE] test-less-reproducible-issue.html

There is another case we run into with test-less-reproducible-issue.html.

Steps:
1. Open test-less-reproducible-issue.html in a new process
2. Wait about 5 seconds
3. Open inspector (will automatically pause)
4. Reload a few times and look at the stack trace

Expected:

  Call Stack:
  [green f] a
  [gray  f] b
  [gray  f] c
  [green f] startABC

Actual:

  Call Stack:
  [green f] a
  [gray  f] b
  [gray  f] b
  [green f] startABC

This particular issue is very tricky to reproduce, so it could be a different issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566960</commentid>
    <comment_count>2</comment_count>
      <attachid>377793</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-31 01:33:08 -0700</bug_when>
    <thetext>Created attachment 377793
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566961</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-31 01:36:19 -0700</bug_when>
    <thetext>&gt; [TEST PAGE] test.html

The patch only partially addresses this case. I&apos;m not sure yet how we might be able to more completely address this (Native function calls lack prologue).

&gt; [TEST PAGE] test-less-reproducible-issue.html

The patch should address this case. Ensure we include prologues during an update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566963</commentid>
    <comment_count>4</comment_count>
      <attachid>377794</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-31 01:37:28 -0700</bug_when>
    <thetext>Created attachment 377794
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566972</commentid>
    <comment_count>5</comment_count>
      <attachid>377794</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-31 03:53:02 -0700</bug_when>
    <thetext>Comment on attachment 377794
[PATCH] Proposed Fix

Attachment 377794 did not pass jsc-ews (mac):
Output: https://webkit-queues.webkit.org/results/12987002

New failing tests:
stress/shadow-chicken-enabled.js.shadow-chicken</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567430</commentid>
    <comment_count>6</comment_count>
      <attachid>377907</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-03 10:59:08 -0700</bug_when>
    <thetext>Created attachment 377907
[PATCH] Proposed Fix

Had to remove one of the cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568011</commentid>
    <comment_count>7</comment_count>
      <attachid>377907</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-09-04 23:03:23 -0700</bug_when>
    <thetext>Comment on attachment 377907
[PATCH] Proposed Fix

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

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        It is possible for the log buffer to be full right as someone is trying to

Interesting</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568168</commentid>
    <comment_count>8</comment_count>
      <attachid>377907</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-05 10:45:44 -0700</bug_when>
    <thetext>Comment on attachment 377907
[PATCH] Proposed Fix

Rejecting attachment 377907 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 377907, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 5000 characters of output:
viewer&apos;, u&apos;Saam Barati&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Parsed 33 diffs from patch file(s).
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/inspector/debugger/evaluateOnCallFrame-exception.html
patching file LayoutTests/inspector/debugger/resources/tail-deleted-frames-from-vm-entry.js
rm &apos;LayoutTests/inspector/debugger/resources/tail-deleted-frames-from-vm-entry.js&apos;
patching file LayoutTests/inspector/debugger/resources/tail-deleted-frames-this-value.js
Hunk #1 FAILED at 1.
File LayoutTests/inspector/debugger/resources/tail-deleted-frames-this-value.js is not empty after patch, as expected
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/inspector/debugger/resources/tail-deleted-frames-this-value.js.rej
rm &apos;LayoutTests/inspector/debugger/resources/tail-deleted-frames-this-value.js&apos;
patching file LayoutTests/inspector/debugger/resources/tail-deleted-frames.js
rm &apos;LayoutTests/inspector/debugger/resources/tail-deleted-frames.js&apos;
patching file LayoutTests/inspector/debugger/tail-deleted-frames-expected.txt
rm &apos;LayoutTests/inspector/debugger/tail-deleted-frames-expected.txt&apos;
patching file LayoutTests/inspector/debugger/tail-deleted-frames-from-vm-entry-expected.txt
rm &apos;LayoutTests/inspector/debugger/tail-deleted-frames-from-vm-entry-expected.txt&apos;
patching file LayoutTests/inspector/debugger/tail-deleted-frames-from-vm-entry.html
rm &apos;LayoutTests/inspector/debugger/tail-deleted-frames-from-vm-entry.html&apos;
patching file LayoutTests/inspector/debugger/tail-deleted-frames-this-value-expected.txt
Hunk #1 FAILED at 1.
File LayoutTests/inspector/debugger/tail-deleted-frames-this-value-expected.txt is not empty after patch, as expected
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/inspector/debugger/tail-deleted-frames-this-value-expected.txt.rej
rm &apos;LayoutTests/inspector/debugger/tail-deleted-frames-this-value-expected.txt&apos;
patching file LayoutTests/inspector/debugger/tail-deleted-frames-this-value.html
Hunk #1 FAILED at 1.
File LayoutTests/inspector/debugger/tail-deleted-frames-this-value.html is not empty after patch, as expected
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/inspector/debugger/tail-deleted-frames-this-value.html.rej
rm &apos;LayoutTests/inspector/debugger/tail-deleted-frames-this-value.html&apos;
patching file LayoutTests/inspector/debugger/tail-deleted-frames.html
rm &apos;LayoutTests/inspector/debugger/tail-deleted-frames.html&apos;
patching file LayoutTests/inspector/debugger/tail-deleted-frames/resources/stack-trace-utilities.js
patching file LayoutTests/inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-intermediate-frames.js
patching file LayoutTests/inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-intermediate-native-tail-deleted-calls.js
patching file LayoutTests/inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-intermediate-tail-deleted-frames.js
patching file LayoutTests/inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-scopes.js
patching file LayoutTests/inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-this-value.js
patching file LayoutTests/inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-vm-entry.js
patching file LayoutTests/inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-frames-expected.txt
patching file LayoutTests/inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-frames.html
patching file LayoutTests/inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-native-tail-deleted-calls-expected.txt
patching file LayoutTests/inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-native-tail-deleted-calls.html
patching file LayoutTests/inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-tail-deleted-frames-expected.txt
patching file LayoutTests/inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-tail-deleted-frames.html
patching file LayoutTests/inspector/debugger/tail-deleted-frames/tail-deleted-frames-scopes-expected.txt
patching file LayoutTests/inspector/debugger/tail-deleted-frames/tail-deleted-frames-scopes.html
patching file LayoutTests/inspector/debugger/tail-deleted-frames/tail-deleted-frames-this-value-expected.txt
patching file LayoutTests/inspector/debugger/tail-deleted-frames/tail-deleted-frames-this-value.html
patching file LayoutTests/inspector/debugger/tail-deleted-frames/tail-deleted-frames-vm-entry-expected.txt
patching file LayoutTests/inspector/debugger/tail-deleted-frames/tail-deleted-frames-vm-entry.html
patching file LayoutTests/platform/mac/TestExpectations
patching file Source/JavaScriptCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/JavaScriptCore/interpreter/ShadowChicken.cpp

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Saam Barati&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: https://webkit-queues.webkit.org/results/13000828</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568234</commentid>
    <comment_count>9</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-05 13:47:23 -0700</bug_when>
    <thetext>I have concluded that commit-queue doesn&apos;t like me. It never works on my patches =(.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568427</commentid>
    <comment_count>10</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-06 01:15:53 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/249566/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568428</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-06 01:16:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/55104146&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568429</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-06 01:16:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/55104147&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568563</commentid>
    <comment_count>13</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2019-09-06 10:03:33 -0700</bug_when>
    <thetext>Reverted r249566 for reason:

Causes inspector layout test crashes under GuardMalloc

Committed r249577: &lt;https://trac.webkit.org/changeset/249577&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568620</commentid>
    <comment_count>14</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2019-09-06 11:51:48 -0700</bug_when>
    <thetext>Details in &lt;rdar://problem/55104147&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568628</commentid>
    <comment_count>15</comment_count>
      <attachid>377907</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-06 12:09:40 -0700</bug_when>
    <thetext>Comment on attachment 377907
[PATCH] Proposed Fix

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

&gt; Source/JavaScriptCore/interpreter/ShadowChicken.cpp:92
&gt; +    m_log = static_cast&lt;Packet*&gt;(fastZeroedMalloc(sizeof(Packet) * m_logSize + 1));

This needed to be: `* (m_logSize + 1)` so the addition happens first!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568629</commentid>
    <comment_count>16</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-06 12:11:40 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/249586/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>377763</attachid>
            <date>2019-08-30 16:19:56 -0700</date>
            <delta_ts>2019-08-30 16:19:56 -0700</delta_ts>
            <desc>[TEST PAGE] test.html</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>429</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KInVzZSBzdHJpY3QiOwpmdW5jdGlvbiBhKCkgewogICAgbGV0IHggPSAyMDsKICAg
IGRlYnVnZ2VyOwogICAgeDsKICAgIHJldHVybiB4Owp9CmZ1bmN0aW9uIGIoKSB7CiAgICBsZXQg
eSA9IDQwOwogICAgcmV0dXJuIGEuY2FsbCh7YVRoaXM6IDJ9KTsKfQpmdW5jdGlvbiBjKCkgewog
ICAgbGV0IHogPSA2MDsKICAgIHJldHVybiBiLmNhbGwoe2JUaGlzOiAxfSk7IAp9CmZ1bmN0aW9u
IHN0YXJ0QUJDKCkgewogICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MDA7ICsraSkKICAgICAgICBU
SElTX0RPRVNfTk9UX0NBTExfYygpOwogICAgYy5jYWxsKHtjVGhpczogMH0pOwp9CmZ1bmN0aW9u
IFRISVNfRE9FU19OT1RfQ0FMTF9jKCkgewogICAgcmV0dXJuIE1hdGgucmFuZG9tKCk7Cn0Kc2V0
SW50ZXJ2YWwoc3RhcnRBQkMpOwo8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>377767</attachid>
            <date>2019-08-30 16:32:11 -0700</date>
            <delta_ts>2019-08-30 16:32:11 -0700</delta_ts>
            <desc>[TEST PAGE] test-less-reproducible-issue.html</desc>
            <filename>test-less-reproducible-issue.html</filename>
            <type>text/html</type>
            <size>380</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KInVzZSBzdHJpY3QiOwpmdW5jdGlvbiBhKCkgewogICAgbGV0IHggPSAyMDsKICAg
IGRlYnVnZ2VyOwogICAgeDsKICAgIHJldHVybiB4Owp9CmZ1bmN0aW9uIGIoKSB7CiAgICBsZXQg
eSA9IDQwOwogICAgcmV0dXJuIGEuY2FsbCh7YVRoaXM6IDJ9KTsKfQpmdW5jdGlvbiBjKCkgewog
ICAgbGV0IHogPSA2MDsKICAgIHJldHVybiBiLmNhbGwoe2JUaGlzOiAxfSk7IAp9CmZ1bmN0aW9u
IHN0YXJ0QUJDKCkgewogICAgZm9yIChsZXQgaSA9IDA7IGkgPCA5OTE7ICsraSkKICAgICAgICBk
KCk7CiAgICBjLmNhbGwoe2NUaGlzOiAwfSk7Cn0KZnVuY3Rpb24gZCh4KSB7CiAgICByZXR1cm4g
MTsKfQpzZXRJbnRlcnZhbChzdGFydEFCQyk7Cjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377793</attachid>
            <date>2019-08-31 01:33:08 -0700</date>
            <delta_ts>2019-08-31 01:37:28 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>chicken-1.patch</filename>
            <type>text/plain</type>
            <size>68313</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNzI5ZDJkMGMwYi4uNzYxMjdlNGQyODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAor
MjAxOS0wOC0zMSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFRhaWwgRGVsZXRlZCBGcmFtZXMgc2hvd24gaW4gV2ViIEluc3BlY3RvciBhcmUgc29tZXRp
bWVzIGluY29ycmVjdCAoU2hhZG93IENoaWNrZW4pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEzNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQt
ZnJhbWVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvdGFpbC1kZWxldGVkLWZyYW1lcy1mcm9tLXZtLWVudHJ5LWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy1mcm9t
LXZtLWVudHJ5Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Rh
aWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQt
ZnJhbWVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgIFJlbW92ZSBsZWdhY3kgdGVzdHMgdGhhdCBh
cmUgZGlmZmljdWx0IHRvIHJlYWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvdGFp
bC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvc3RhY2stdHJhY2UtdXRpbGl0aWVzLmpzOiBBZGRl
ZC4KKyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIud2luZG93LmdldEFzeW5j
U3RhY2tUcmFjZSk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLmFzeW5j
LmxvZ1RoaXNPYmplY3QpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5h
c3luYy5sb2dTY29wZSk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLmFz
eW5jLmxvZ0NhbGxGcmFtZSk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVy
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNv
dXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtZnJhbWVzLmpzOiBBZGRlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJj
ZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtbmF0aXZlLXRhaWwtZGVsZXRlZC1j
YWxscy5qczogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRl
ZC1mcmFtZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLXRhaWwt
ZGVsZXRlZC1mcmFtZXMuanM6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci90
YWlsLWRlbGV0ZWQtZnJhbWVzL3Jlc291cmNlcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXNjb3Blcy5q
czogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFt
ZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS5qczogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvcmVzb3VyY2Vz
L3RhaWwtZGVsZXRlZC1mcmFtZXMtdm0tZW50cnkuanM6IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50
ZXJtZWRpYXRlLWZyYW1lcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJt
ZWRpYXRlLWZyYW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
dGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWludGVybWVkaWF0ZS10YWls
LWRlbGV0ZWQtZnJhbWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1l
ZGlhdGUtdGFpbC1kZWxldGVkLWZyYW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXNjb3Bl
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci90YWls
LWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtc2NvcGVzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVs
ZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMt
dGhpcy12YWx1ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvdGFp
bC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXZtLWVudHJ5LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFt
ZXMvdGFpbC1kZWxldGVkLWZyYW1lcy12bS1lbnRyeS5odG1sOiBBZGRlZC4KKyAgICAgICAgSW5j
bHVkZSBtb2Rlcm4gdGVzdHMgdGhhdCBhcmUgZWFzaWVyIHRvIHJlYWQuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVz
LWludGVybWVkaWF0ZS1uYXRpdmUtdGFpbC1kZWxldGVkLWNhbGxzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFp
bC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtbmF0aXZlLXRhaWwtZGVsZXRlZC1jYWxscy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgSW5jbHVkZSBhIHRlc3QgdGhhdCBpcyBrbm93biB0byBwcm9k
dWNlIGJhZCBvdXRwdXQsIHNpbmNlIHdlIGhhdmUgcmVwcm9kdWN0aXZlIHN0ZXBzLgorCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIFVwZGF0ZWQgcGF0
aGVzLgorCiAyMDE5LTA4LTI4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTG9jYWwgT3ZlcnJpZGVzIC0gUHJvdmlkZSBzdWJz
dGl0dXRpb24gY29udGVudCBmb3IgcmVzb3VyY2UgbG9hZHMgKFVSTCBiYXNlZCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9ldmFsdWF0ZU9uQ2FsbEZyYW1lLWV4
Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1YXRlT25D
YWxsRnJhbWUtZXhjZXB0aW9uLmh0bWwKaW5kZXggNzFkNmVkZTEzYmEuLjI4OThhNjExZjFiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXZhbHVhdGVPbkNhbGxG
cmFtZS1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
ZXZhbHVhdGVPbkNhbGxGcmFtZS1leGNlcHRpb24uaHRtbApAQCAtMTMsNyArMTMsNiBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICBjb25zdCBpbmNsdWRlQ29tbWFuZExpbmVBUEkgPSB0cnVlOwogICAg
IGNvbnN0IHJldHVybkJ5VmFsdWUgPSB0cnVlOwogCi0gICAgSW5zcGVjdG9yVGVzdC5kZWJ1Zygp
OwogICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiRGVidWdn
ZXIuZXZhbHVhdGVPbkNhbGxGcmFtZS5FeGNlcHRpb24iKTsKIAogICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJj
ZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1mcm9tLXZtLWVudHJ5LmpzIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWZyb20tdm0tZW50
cnkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5ZmNlOTAwYThiLi4wMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL3RhaWwt
ZGVsZXRlZC1mcmFtZXMtZnJvbS12bS1lbnRyeS5qcworKysgL2Rldi9udWxsCkBAIC0xLDkgKzAs
MCBAQAotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24gdGltZW91dChmb28gPSAyNSkgewotICAgIHJl
dHVybiBiYXIoKTsKLX0KLWZ1bmN0aW9uIGJhcihpID0gOSkgewotICAgIGlmIChpID4gMCkKLSAg
ICAgICAgcmV0dXJuIGJhcihpIC0gMSk7Ci0gICAgcmV0dXJuIDI1OwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy90YWlsLWRlbGV0ZWQtZnJh
bWVzLXRoaXMtdmFsdWUuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3Vy
Y2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzQxYzVjYWZmZGUuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVl
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotInVzZSBzdHJpY3QiOwotZnVuY3Rp
b24gYSgpIHsKLSAgICBsZXQgeCA9IDIwOwotICAgIHg7Ci0gICAgcmV0dXJuIHg7Ci19Ci1mdW5j
dGlvbiBiKCkgewotICAgIGxldCB5ID0gNDA7Ci0gICAgcmV0dXJuIGEuY2FsbCh7YVRoaXM6IDJ9
KTsKLX0KLWZ1bmN0aW9uIGMoKSB7Ci0gICAgbGV0IHogPSA2MDsKLSAgICByZXR1cm4gYi5jYWxs
KHtiVGhpczogMX0pOyAKLX0KLWZ1bmN0aW9uIHN0YXJ0QUJDKCkgewotICAgIGMuY2FsbCh7Y1Ro
aXM6IDB9KTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9y
ZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYWYwMzc0YzI0ODMuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy5qcworKysg
L2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIGEoKSB7
Ci0gICAgbGV0IHggPSAyMDsKLSAgICB4OwotICAgIHJldHVybiB4OwotfQotZnVuY3Rpb24gYigp
IHsKLSAgICBsZXQgeSA9IDQwOwotICAgIHJldHVybiBhKCk7Ci19Ci1mdW5jdGlvbiBjKCkgewot
ICAgIGxldCB6ID0gNjA7Ci0gICAgcmV0dXJuIGIoKTsgCi19Ci1mdW5jdGlvbiBzdGFydEFCQygp
IHsKLSAgICBjKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvcmVzb3VyY2VzL3RhaWwtcmVjdXJzaW9uLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3Jlc291cmNlcy90YWlsLXJlY3Vyc2lvbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOTFjMzUzZjIxNjQuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvdGFpbC1yZWN1cnNpb24uanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxNCArMCwwIEBACi0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiByZWN1cnNlKGkpIHsKLSAg
ICBpZiAoaSA8PSAwKSB7Ci0gICAgICAgIGkrKzsKLSAgICAgICAgaSsrOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgcmV0dXJuIHJlY3Vyc2UoaSAtIDEpOwotfQotCi1mdW5jdGlvbiBz
dGFydFJlY3Vyc2UoKSB7Ci0gICAgcmVjdXJzZSgxMDAwKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQ1MTEzMTZkMTIuLjAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0
ZWQtZnJhbWVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRl
c3RpbmcgdGhhdCB3ZSBrZWVwIGFyb3VuZCB0YWlsIGRlbGV0ZWQgZnJhbWVzIGluIHRoZSBpbnNw
ZWN0b3IuCi0KLVN0YXJ0aW5nIFRlc3QKLQotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUhpdCBicmVha3BvaW50IGF0IGxpbmU6IDMsIGNvbHVtbjogNAotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1FeHBlY3RlZCBmcmFtZTogeyJmdW5jdGlvbk5h
bWUiOiJhIiwic2NvcGUiOlsieCIsMjBdLCJpc1RhaWxEZWxldGVkIjpmYWxzZX0KLUV4cGVjdGVk
IGZyYW1lOiB7ImZ1bmN0aW9uTmFtZSI6ImIiLCJzY29wZSI6WyJ5Iiw0MF0sImlzVGFpbERlbGV0
ZWQiOnRydWV9Ci1FeHBlY3RlZCBmcmFtZTogeyJmdW5jdGlvbk5hbWUiOiJjIiwic2NvcGUiOlsi
eiIsNjBdLCJpc1RhaWxEZWxldGVkIjp0cnVlfQotTG9va2luZyBhdCBmcmFtZSBudW1iZXI6IDAK
LSAgICB2YXJpYWJsZSAneCc6IHsiX3R5cGUiOiJudW1iZXIiLCJfZGVzY3JpcHRpb24iOiIyMCIs
Il9oYXNDaGlsZHJlbiI6ZmFsc2UsIl92YWx1ZSI6MjB9Ci1Mb29raW5nIGF0IGZyYW1lIG51bWJl
cjogMQotICAgIHZhcmlhYmxlICd5JzogeyJfdHlwZSI6Im51bWJlciIsIl9kZXNjcmlwdGlvbiI6
IjQwIiwiX2hhc0NoaWxkcmVuIjpmYWxzZSwiX3ZhbHVlIjo0MH0KLUxvb2tpbmcgYXQgZnJhbWUg
bnVtYmVyOiAyCi0gICAgdmFyaWFibGUgJ3onOiB7Il90eXBlIjoibnVtYmVyIiwiX2Rlc2NyaXB0
aW9uIjoiNjAiLCJfaGFzQ2hpbGRyZW4iOmZhbHNlLCJfdmFsdWUiOjYwfQotVGVzdHMgZG9uZQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVk
LWZyYW1lcy1mcm9tLXZtLWVudHJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzLWZyb20tdm0tZW50cnktZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjkwOTVlOTYyYS4uMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMt
ZnJvbS12bS1lbnRyeS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBA
Ci1UZXN0aW5nIHRoYXQgd2Uga2VlcCBhcm91bmQgdGFpbCBkZWxldGVkIGZyYW1lcyB0aGF0IGFy
ZSBlbnRyeSBmcmFtZXMuCi0KLVN0YXJ0aW5nIFRlc3QKLQotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUhpdCBicmVha3BvaW50IGF0IGxpbmU6IDcsIGNvbHVtbjogNAot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1FeHBlY3RlZCBmcmFtZTogeyJm
dW5jdGlvbk5hbWUiOiJiYXIiLCJzY29wZSI6WyJpIiwwXSwiaXNUYWlsRGVsZXRlZCI6ZmFsc2V9
Ci1QQVNTOiBGdW5jdGlvbiBuYW1lOiBiYXIgaXMgY29ycmVjdC4KLVBBU1M6IFRhaWwgZGVsZXRl
ZCBleHBlY3RhdGlvbiBjb3JyZWN0OiBmYWxzZQotRXhwZWN0ZWQgZnJhbWU6IHsiZnVuY3Rpb25O
YW1lIjoiYmFyIiwic2NvcGUiOlsiaSIsMV0sImlzVGFpbERlbGV0ZWQiOnRydWV9Ci1QQVNTOiBG
dW5jdGlvbiBuYW1lOiBiYXIgaXMgY29ycmVjdC4KLVBBU1M6IFRhaWwgZGVsZXRlZCBleHBlY3Rh
dGlvbiBjb3JyZWN0OiB0cnVlCi1FeHBlY3RlZCBmcmFtZTogeyJmdW5jdGlvbk5hbWUiOiJiYXIi
LCJzY29wZSI6WyJpIiwyXSwiaXNUYWlsRGVsZXRlZCI6dHJ1ZX0KLVBBU1M6IEZ1bmN0aW9uIG5h
bWU6IGJhciBpcyBjb3JyZWN0LgotUEFTUzogVGFpbCBkZWxldGVkIGV4cGVjdGF0aW9uIGNvcnJl
Y3Q6IHRydWUKLUV4cGVjdGVkIGZyYW1lOiB7ImZ1bmN0aW9uTmFtZSI6ImJhciIsInNjb3BlIjpb
ImkiLDNdLCJpc1RhaWxEZWxldGVkIjp0cnVlfQotUEFTUzogRnVuY3Rpb24gbmFtZTogYmFyIGlz
IGNvcnJlY3QuCi1QQVNTOiBUYWlsIGRlbGV0ZWQgZXhwZWN0YXRpb24gY29ycmVjdDogdHJ1ZQot
RXhwZWN0ZWQgZnJhbWU6IHsiZnVuY3Rpb25OYW1lIjoiYmFyIiwic2NvcGUiOlsiaSIsNF0sImlz
VGFpbERlbGV0ZWQiOnRydWV9Ci1QQVNTOiBGdW5jdGlvbiBuYW1lOiBiYXIgaXMgY29ycmVjdC4K
LVBBU1M6IFRhaWwgZGVsZXRlZCBleHBlY3RhdGlvbiBjb3JyZWN0OiB0cnVlCi1FeHBlY3RlZCBm
cmFtZTogeyJmdW5jdGlvbk5hbWUiOiJiYXIiLCJzY29wZSI6WyJpIiw1XSwiaXNUYWlsRGVsZXRl
ZCI6dHJ1ZX0KLVBBU1M6IEZ1bmN0aW9uIG5hbWU6IGJhciBpcyBjb3JyZWN0LgotUEFTUzogVGFp
bCBkZWxldGVkIGV4cGVjdGF0aW9uIGNvcnJlY3Q6IHRydWUKLUV4cGVjdGVkIGZyYW1lOiB7ImZ1
bmN0aW9uTmFtZSI6ImJhciIsInNjb3BlIjpbImkiLDZdLCJpc1RhaWxEZWxldGVkIjp0cnVlfQot
UEFTUzogRnVuY3Rpb24gbmFtZTogYmFyIGlzIGNvcnJlY3QuCi1QQVNTOiBUYWlsIGRlbGV0ZWQg
ZXhwZWN0YXRpb24gY29ycmVjdDogdHJ1ZQotRXhwZWN0ZWQgZnJhbWU6IHsiZnVuY3Rpb25OYW1l
IjoiYmFyIiwic2NvcGUiOlsiaSIsN10sImlzVGFpbERlbGV0ZWQiOnRydWV9Ci1QQVNTOiBGdW5j
dGlvbiBuYW1lOiBiYXIgaXMgY29ycmVjdC4KLVBBU1M6IFRhaWwgZGVsZXRlZCBleHBlY3RhdGlv
biBjb3JyZWN0OiB0cnVlCi1FeHBlY3RlZCBmcmFtZTogeyJmdW5jdGlvbk5hbWUiOiJiYXIiLCJz
Y29wZSI6WyJpIiw4XSwiaXNUYWlsRGVsZXRlZCI6dHJ1ZX0KLVBBU1M6IEZ1bmN0aW9uIG5hbWU6
IGJhciBpcyBjb3JyZWN0LgotUEFTUzogVGFpbCBkZWxldGVkIGV4cGVjdGF0aW9uIGNvcnJlY3Q6
IHRydWUKLUV4cGVjdGVkIGZyYW1lOiB7ImZ1bmN0aW9uTmFtZSI6ImJhciIsInNjb3BlIjpbImki
LDldLCJpc1RhaWxEZWxldGVkIjp0cnVlfQotUEFTUzogRnVuY3Rpb24gbmFtZTogYmFyIGlzIGNv
cnJlY3QuCi1QQVNTOiBUYWlsIGRlbGV0ZWQgZXhwZWN0YXRpb24gY29ycmVjdDogdHJ1ZQotRXhw
ZWN0ZWQgZnJhbWU6IHsiZnVuY3Rpb25OYW1lIjoidGltZW91dCIsInNjb3BlIjpbImZvbyIsMjVd
LCJpc1RhaWxEZWxldGVkIjp0cnVlfQotUEFTUzogRnVuY3Rpb24gbmFtZTogdGltZW91dCBpcyBj
b3JyZWN0LgotUEFTUzogVGFpbCBkZWxldGVkIGV4cGVjdGF0aW9uIGNvcnJlY3Q6IHRydWUKLUxv
b2tpbmcgYXQgZnJhbWUgbnVtYmVyOiAwCi0gICAgdmFyaWFibGUgJ2knOiB7Il90eXBlIjoibnVt
YmVyIiwiX2Rlc2NyaXB0aW9uIjoiMCIsIl9oYXNDaGlsZHJlbiI6ZmFsc2UsIl92YWx1ZSI6MH0K
LVBBU1M6IFZhcmlhYmxlIGlzIGEgbnVtYmVyLgotUEFTUzogRm91bmQgc2NvcGUgdmFsdWU6IDAK
LVBBU1M6IERpZCBub3QgZmluZCB2YXJpYWJsZSB3ZSB3ZXJlIGxvb2tpbmcgZm9yOiBpCi1Mb29r
aW5nIGF0IGZyYW1lIG51bWJlcjogMQotICAgIHZhcmlhYmxlICdpJzogeyJfdHlwZSI6Im51bWJl
ciIsIl9kZXNjcmlwdGlvbiI6IjEiLCJfaGFzQ2hpbGRyZW4iOmZhbHNlLCJfdmFsdWUiOjF9Ci1Q
QVNTOiBWYXJpYWJsZSBpcyBhIG51bWJlci4KLVBBU1M6IEZvdW5kIHNjb3BlIHZhbHVlOiAxCi1Q
QVNTOiBEaWQgbm90IGZpbmQgdmFyaWFibGUgd2Ugd2VyZSBsb29raW5nIGZvcjogaQotTG9va2lu
ZyBhdCBmcmFtZSBudW1iZXI6IDIKLSAgICB2YXJpYWJsZSAnaSc6IHsiX3R5cGUiOiJudW1iZXIi
LCJfZGVzY3JpcHRpb24iOiIyIiwiX2hhc0NoaWxkcmVuIjpmYWxzZSwiX3ZhbHVlIjoyfQotUEFT
UzogVmFyaWFibGUgaXMgYSBudW1iZXIuCi1QQVNTOiBGb3VuZCBzY29wZSB2YWx1ZTogMgotUEFT
UzogRGlkIG5vdCBmaW5kIHZhcmlhYmxlIHdlIHdlcmUgbG9va2luZyBmb3I6IGkKLUxvb2tpbmcg
YXQgZnJhbWUgbnVtYmVyOiAzCi0gICAgdmFyaWFibGUgJ2knOiB7Il90eXBlIjoibnVtYmVyIiwi
X2Rlc2NyaXB0aW9uIjoiMyIsIl9oYXNDaGlsZHJlbiI6ZmFsc2UsIl92YWx1ZSI6M30KLVBBU1M6
IFZhcmlhYmxlIGlzIGEgbnVtYmVyLgotUEFTUzogRm91bmQgc2NvcGUgdmFsdWU6IDMKLVBBU1M6
IERpZCBub3QgZmluZCB2YXJpYWJsZSB3ZSB3ZXJlIGxvb2tpbmcgZm9yOiBpCi1Mb29raW5nIGF0
IGZyYW1lIG51bWJlcjogNAotICAgIHZhcmlhYmxlICdpJzogeyJfdHlwZSI6Im51bWJlciIsIl9k
ZXNjcmlwdGlvbiI6IjQiLCJfaGFzQ2hpbGRyZW4iOmZhbHNlLCJfdmFsdWUiOjR9Ci1QQVNTOiBW
YXJpYWJsZSBpcyBhIG51bWJlci4KLVBBU1M6IEZvdW5kIHNjb3BlIHZhbHVlOiA0Ci1QQVNTOiBE
aWQgbm90IGZpbmQgdmFyaWFibGUgd2Ugd2VyZSBsb29raW5nIGZvcjogaQotTG9va2luZyBhdCBm
cmFtZSBudW1iZXI6IDUKLSAgICB2YXJpYWJsZSAnaSc6IHsiX3R5cGUiOiJudW1iZXIiLCJfZGVz
Y3JpcHRpb24iOiI1IiwiX2hhc0NoaWxkcmVuIjpmYWxzZSwiX3ZhbHVlIjo1fQotUEFTUzogVmFy
aWFibGUgaXMgYSBudW1iZXIuCi1QQVNTOiBGb3VuZCBzY29wZSB2YWx1ZTogNQotUEFTUzogRGlk
IG5vdCBmaW5kIHZhcmlhYmxlIHdlIHdlcmUgbG9va2luZyBmb3I6IGkKLUxvb2tpbmcgYXQgZnJh
bWUgbnVtYmVyOiA2Ci0gICAgdmFyaWFibGUgJ2knOiB7Il90eXBlIjoibnVtYmVyIiwiX2Rlc2Ny
aXB0aW9uIjoiNiIsIl9oYXNDaGlsZHJlbiI6ZmFsc2UsIl92YWx1ZSI6Nn0KLVBBU1M6IFZhcmlh
YmxlIGlzIGEgbnVtYmVyLgotUEFTUzogRm91bmQgc2NvcGUgdmFsdWU6IDYKLVBBU1M6IERpZCBu
b3QgZmluZCB2YXJpYWJsZSB3ZSB3ZXJlIGxvb2tpbmcgZm9yOiBpCi1Mb29raW5nIGF0IGZyYW1l
IG51bWJlcjogNwotICAgIHZhcmlhYmxlICdpJzogeyJfdHlwZSI6Im51bWJlciIsIl9kZXNjcmlw
dGlvbiI6IjciLCJfaGFzQ2hpbGRyZW4iOmZhbHNlLCJfdmFsdWUiOjd9Ci1QQVNTOiBWYXJpYWJs
ZSBpcyBhIG51bWJlci4KLVBBU1M6IEZvdW5kIHNjb3BlIHZhbHVlOiA3Ci1QQVNTOiBEaWQgbm90
IGZpbmQgdmFyaWFibGUgd2Ugd2VyZSBsb29raW5nIGZvcjogaQotTG9va2luZyBhdCBmcmFtZSBu
dW1iZXI6IDgKLSAgICB2YXJpYWJsZSAnaSc6IHsiX3R5cGUiOiJudW1iZXIiLCJfZGVzY3JpcHRp
b24iOiI4IiwiX2hhc0NoaWxkcmVuIjpmYWxzZSwiX3ZhbHVlIjo4fQotUEFTUzogVmFyaWFibGUg
aXMgYSBudW1iZXIuCi1QQVNTOiBGb3VuZCBzY29wZSB2YWx1ZTogOAotUEFTUzogRGlkIG5vdCBm
aW5kIHZhcmlhYmxlIHdlIHdlcmUgbG9va2luZyBmb3I6IGkKLUxvb2tpbmcgYXQgZnJhbWUgbnVt
YmVyOiA5Ci0gICAgdmFyaWFibGUgJ2knOiB7Il90eXBlIjoibnVtYmVyIiwiX2Rlc2NyaXB0aW9u
IjoiOSIsIl9oYXNDaGlsZHJlbiI6ZmFsc2UsIl92YWx1ZSI6OX0KLVBBU1M6IFZhcmlhYmxlIGlz
IGEgbnVtYmVyLgotUEFTUzogRm91bmQgc2NvcGUgdmFsdWU6IDkKLVBBU1M6IERpZCBub3QgZmlu
ZCB2YXJpYWJsZSB3ZSB3ZXJlIGxvb2tpbmcgZm9yOiBpCi1Mb29raW5nIGF0IGZyYW1lIG51bWJl
cjogMTAKLSAgICB2YXJpYWJsZSAnZm9vJzogeyJfdHlwZSI6Im51bWJlciIsIl9kZXNjcmlwdGlv
biI6IjI1IiwiX2hhc0NoaWxkcmVuIjpmYWxzZSwiX3ZhbHVlIjoyNX0KLVBBU1M6IFZhcmlhYmxl
IGlzIGEgbnVtYmVyLgotUEFTUzogRm91bmQgc2NvcGUgdmFsdWU6IDI1Ci1QQVNTOiBEaWQgbm90
IGZpbmQgdmFyaWFibGUgd2Ugd2VyZSBsb29raW5nIGZvcjogZm9vCi1UZXN0cyBkb25lCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJh
bWVzLWZyb20tdm0tZW50cnkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90
YWlsLWRlbGV0ZWQtZnJhbWVzLWZyb20tdm0tZW50cnkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjg3YjhjMjg0YmEuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzLWZyb20tdm0tZW50cnkuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDEwNSArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuL3Jlc291cmNlcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWZyb20tdm0tZW50cnkuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgbGV0IHNjcmlw
dE9iamVjdDsKLQotICAgIGZ1bmN0aW9uIHJlbW90ZU9iamVjdEpTT05GaWx0ZXIoa2V5LCB2YWx1
ZSkgewotICAgICAgICBpZiAoa2V5ID09PSAiX3RhcmdldCIgfHwga2V5ID09PSAiX2xpc3RlbmVy
cyIpCi0gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgICBpZiAoa2V5ID09PSAi
X29iamVjdElkIiB8fCBrZXkgPT09ICJfc3RhY2tUcmFjZSIpCi0gICAgICAgICAgICByZXR1cm4g
IjxmaWx0ZXJlZD4iOwotICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gc3RhcnRUZXN0KCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3RhcnRpbmcgVGVz
dCIpOwotICAgICAgICAvLyAwIGJhc2VkIGluZGljZXMuCi0gICAgICAgIGxldCB0ZXN0SW5mbyA9
IHtsaW5lOiA3LCBjb2x1bW46IDR9OwotICAgICAgICBsZXQgbG9jYXRpb24gPSBzY3JpcHRPYmpl
Y3QuY3JlYXRlU291cmNlQ29kZUxvY2F0aW9uKHRlc3RJbmZvLmxpbmUsIHRlc3RJbmZvLmNvbHVt
bik7Ci0gICAgICAgIGxldCBicmVha3BvaW50ID0gbmV3IFdJLkJyZWFrcG9pbnQobG9jYXRpb24p
OwotICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkQnJlYWtwb2ludChicmVha3BvaW50KTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dCh0aW1lb3V0
LCAwKTsiKTsKLSAgICB9Ci0KLSAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQ2FsbEZyYW1lc0RpZENoYW5nZSwgZnVuY3Rpb24o
ZXZlbnQpIHsKLSAgICAgICAgdmFyIGFjdGl2ZUNhbGxGcmFtZSA9IFdJLmRlYnVnZ2VyTWFuYWdl
ci5hY3RpdmVDYWxsRnJhbWU7Ci0KLSAgICAgICAgaWYgKCFhY3RpdmVDYWxsRnJhbWUpCi0gICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIHN0b3BMb2NhdGlvbiA9ICJsaW5lOiAiICsg
YWN0aXZlQ2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbi5saW5lTnVtYmVyICsgIiwgY29sdW1u
OiAiICsgYWN0aXZlQ2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbi5jb2x1bW5OdW1iZXI7Ci0K
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkhpdCBicmVha3BvaW50
IGF0ICIgKyBzdG9wTG9jYXRpb24pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7Ci0KLSAgICAgICAgLy8gdG9wIGRvd24g
bGlzdAotICAgICAgICBsZXQgZXhwZWN0ZWRGcmFtZXMgPSBbXTsKLSAgICAgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCAxMDsgaSsrKQotICAgICAgICAgICAgZXhwZWN0ZWRGcmFtZXMucHVzaCh7ZnVu
Y3Rpb25OYW1lOiAnYmFyJywgc2NvcGU6IFsnaScsIGldLCBpc1RhaWxEZWxldGVkOiBpID4gMCA/
IHRydWUgOiBmYWxzZX0pOwotICAgICAgICBleHBlY3RlZEZyYW1lcy5wdXNoKHtmdW5jdGlvbk5h
bWU6ICd0aW1lb3V0Jywgc2NvcGU6IFsnZm9vJywgMjVdLCBpc1RhaWxEZWxldGVkOiB0cnVlfSk7
Ci0KLSAgICAgICAgbGV0IHRhcmdldERhdGEgPSBXSS5kZWJ1Z2dlck1hbmFnZXIuZGF0YUZvclRh
cmdldChXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lLnRhcmdldCk7Ci0gICAgICAg
IGxldCBjYWxsRnJhbWVzID0gdGFyZ2V0RGF0YS5jYWxsRnJhbWVzOwotCi0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0KGNhbGxGcmFtZXMubGVuZ3RoID49IGV4cGVjdGVkRnJhbWVzLmxlbmd0
aCk7Ci0KLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBleHBlY3RlZEZyYW1lcy5sZW5ndGg7
IGkrKykgewotICAgICAgICAgICAgbGV0IGNhbGxGcmFtZSA9IGNhbGxGcmFtZXNbaV07Ci0gICAg
ICAgICAgICBsZXQgZXhwZWN0ZWRGcmFtZSA9IGV4cGVjdGVkRnJhbWVzW2ldOwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkV4cGVjdGVkIGZyYW1lOiAiICsgSlNPTi5zdHJpbmdpZnko
ZXhwZWN0ZWRGcmFtZSkpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGNh
bGxGcmFtZS5mdW5jdGlvbk5hbWUgPT09IGV4cGVjdGVkRnJhbWUuZnVuY3Rpb25OYW1lLCBgRnVu
Y3Rpb24gbmFtZTogJHtjYWxsRnJhbWUuZnVuY3Rpb25OYW1lfSBpcyBjb3JyZWN0LmApOwotCi0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoY2FsbEZyYW1lLmlzVGFpbERlbGV0
ZWQgPT09IGV4cGVjdGVkRnJhbWUuaXNUYWlsRGVsZXRlZCwgYFRhaWwgZGVsZXRlZCBleHBlY3Rh
dGlvbiBjb3JyZWN0OiAke2NhbGxGcmFtZS5pc1RhaWxEZWxldGVkfWApOwotICAgICAgICAgICAg
bGV0IHNjb3BlID0gY2FsbEZyYW1lLnNjb3BlQ2hhaW5bMV07Ci0KLSAgICAgICAgICAgIHNjb3Bl
Lm9iamVjdHNbMF0uZ2V0UHJvcGVydHlEZXNjcmlwdG9ycyhmdW5jdGlvbihwcm9wZXJ0aWVzKSB7
Ci0gICAgICAgICAgICAgICAgbGV0IGZvdW5kID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgbGV0
IHZhcmlhYmxlTmFtZSA9IGV4cGVjdGVkRnJhbWUuc2NvcGVbMF07Ci0gICAgICAgICAgICAgICAg
bGV0IHZhcmlhYmxlVmFsdWUgPSBleHBlY3RlZEZyYW1lLnNjb3BlWzFdOwotICAgICAgICAgICAg
ICAgIGZvciAobGV0IHByb3BlcnR5RGVzY3JpcHRvciBvZiBwcm9wZXJ0aWVzKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChwcm9wZXJ0eURlc2NyaXB0b3IubmFtZSA9PT0gdmFyaWFibGVOYW1l
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiTG9va2luZyBhdCBmcmFtZSBudW1iZXI6ICIg
KyBpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGAgICAgdmFy
aWFibGUgJyR7dmFyaWFibGVOYW1lfSc6ICR7SlNPTi5zdHJpbmdpZnkocHJvcGVydHlEZXNjcmlw
dG9yLnZhbHVlLCByZW1vdGVPYmplY3RKU09ORmlsdGVyKX1gKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChwcm9wZXJ0eURlc2NyaXB0b3IudmFsdWUu
dHlwZSA9PT0gJ251bWJlcicsICJWYXJpYWJsZSBpcyBhIG51bWJlci4iKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChwcm9wZXJ0eURlc2NyaXB0b3Iu
dmFsdWUudmFsdWUgPT09IHZhcmlhYmxlVmFsdWUsIGBGb3VuZCBzY29wZSB2YWx1ZTogJHt2YXJp
YWJsZVZhbHVlfWApOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCghIWZvdW5kLCBgRGlkIG5v
dCBmaW5kIHZhcmlhYmxlIHdlIHdlcmUgbG9va2luZyBmb3I6ICR7dmFyaWFibGVOYW1lfWApOwot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIu
cmVzdW1lKCk7Ci0gICAgfSk7Ci0KLSAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0
ZW5lcihXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUmVzdW1lZCwgZnVuY3Rpb24oZXZlbnQpIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlRlc3RzIGRvbmUiKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9KTsKLQotICAgIFdJLmRlYnVnZ2VyTWFuYWdl
ci5hZGRFdmVudExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwg
ZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgbGV0IGV2ZW50U2NyaXB0T2JqZWN0ID0gZXZlbnQu
ZGF0YS5zY3JpcHQ7Ci0gICAgICAgIGlmICgvdGFpbC1kZWxldGVkLWZyYW1lcy1mcm9tLXZtLWVu
dHJ5XC5qcyQvLnRlc3QoZXZlbnRTY3JpcHRPYmplY3QudXJsKSkgewotICAgICAgICAgICAgc2Ny
aXB0T2JqZWN0ID0gZXZlbnRTY3JpcHRPYmplY3Q7Ci0gICAgICAgICAgICBzdGFydFRlc3QoKTsK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgfSk7Ci0KLSAgICBJbnNwZWN0
b3JUZXN0LnJlbG9hZFBhZ2UoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgotICAgIDxwPlRlc3RpbmcgdGhhdCB3ZSBrZWVwIGFyb3VuZCB0YWlsIGRl
bGV0ZWQgZnJhbWVzIHRoYXQgYXJlIGVudHJ5IGZyYW1lcy4gPC9wPgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRl
ZC1mcmFtZXMtdGhpcy12YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmI5Y2JlYmFiZWYuLjAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzLXRoaXMt
dmFsdWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGVzdGlu
ZyB0aGF0IHdlIGtlZXAgYXJvdW5kIHRhaWwgZGVsZXRlZCBmcmFtZXMgaW4gdGhlIGluc3BlY3Rv
ciBhbmQgdGhlaXIgdGhpcyB2YWx1ZXMuCi0KLVN0YXJ0aW5nIFRlc3QKLQotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUhpdCBicmVha3BvaW50IGF0IGxpbmU6IDMsIGNv
bHVtbjogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1FeHBlY3RlZCBm
cmFtZTogeyJmdW5jdGlvbk5hbWUiOiJhIiwidGhpc1ZhbHVlIjpbImFUaGlzIiwyXSwiaXNUYWls
RGVsZXRlZCI6ZmFsc2V9Ci1QQVNTOiAndGhpcycgdmFsdWUgc2hvdWxkIGhhdmUgZXhwZWN0ZWQg
cHJvcGVydHk6IGFUaGlzCi1QQVNTOiBDYWxsIEZyYW1lIDAgJ3RoaXMnIHZhbHVlIGlzIGNvcnJl
Y3QuCi1FeHBlY3RlZCBmcmFtZTogeyJmdW5jdGlvbk5hbWUiOiJiIiwidGhpc1ZhbHVlIjpbImJU
aGlzIiwxXSwiaXNUYWlsRGVsZXRlZCI6dHJ1ZX0KLVBBU1M6ICd0aGlzJyB2YWx1ZSBzaG91bGQg
aGF2ZSBleHBlY3RlZCBwcm9wZXJ0eTogYlRoaXMKLVBBU1M6IENhbGwgRnJhbWUgMSAndGhpcycg
dmFsdWUgaXMgY29ycmVjdC4KLUV4cGVjdGVkIGZyYW1lOiB7ImZ1bmN0aW9uTmFtZSI6ImMiLCJ0
aGlzVmFsdWUiOlsiY1RoaXMiLDBdLCJpc1RhaWxEZWxldGVkIjp0cnVlfQotUEFTUzogJ3RoaXMn
IHZhbHVlIHNob3VsZCBoYXZlIGV4cGVjdGVkIHByb3BlcnR5OiBjVGhpcwotUEFTUzogQ2FsbCBG
cmFtZSAyICd0aGlzJyB2YWx1ZSBpcyBjb3JyZWN0LgotVGVzdHMgZG9uZQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlz
LXZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVk
LWZyYW1lcy10aGlzLXZhbHVlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEy
ZmU3NzQyMmRmLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwxMDIgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi9yZXNvdXJj
ZXMvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBzY3JpcHRPYmplY3Q7Ci0KLSAgICBmdW5j
dGlvbiBzdGFydFRlc3QoKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTdGFydGluZyBU
ZXN0Iik7Ci0gICAgICAgIC8vIDAgYmFzZWQgaW5kaWNlcy4KLSAgICAgICAgbGV0IHRlc3RJbmZv
ID0ge2xpbmU6IDMsIGNvbHVtbjogNH07Ci0gICAgICAgIGxldCBsb2NhdGlvbiA9IHNjcmlwdE9i
amVjdC5jcmVhdGVTb3VyY2VDb2RlTG9jYXRpb24odGVzdEluZm8ubGluZSwgdGVzdEluZm8uY29s
dW1uKTsKLSAgICAgICAgbGV0IGJyZWFrcG9pbnQgPSBuZXcgV0kuQnJlYWtwb2ludChsb2NhdGlv
bik7Ci0gICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRCcmVha3BvaW50KGJyZWFrcG9pbnQp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzdGFydEFCQygpIik7Ci0g
ICAgfQotCi0gICAgV0kuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuRGVidWdn
ZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0g
ICAgICAgIHZhciBhY3RpdmVDYWxsRnJhbWUgPSBXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2Fs
bEZyYW1lOwotCi0gICAgICAgIGlmICghYWN0aXZlQ2FsbEZyYW1lKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIHZhciBzdG9wTG9jYXRpb24gPSAibGluZTogIiArIGFjdGl2ZUNhbGxG
cmFtZS5zb3VyY2VDb2RlTG9jYXRpb24ubGluZU51bWJlciArICIsIGNvbHVtbjogIiArIGFjdGl2
ZUNhbGxGcmFtZS5zb3VyY2VDb2RlTG9jYXRpb24uY29sdW1uTnVtYmVyOwotCi0gICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJIaXQgYnJlYWtwb2ludCBhdCAiICsgc3Rv
cExvY2F0aW9uKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSIpOwotCi0gICAgICAgIC8vIHRvcCBkb3duIGxpc3QKLSAgICAg
ICAgbGV0IGV4cGVjdGVkRnJhbWVzID0gWwotICAgICAgICAgICAge2Z1bmN0aW9uTmFtZTogJ2En
LCB0aGlzVmFsdWU6IFsnYVRoaXMnLCAyXSwgaXNUYWlsRGVsZXRlZDogZmFsc2V9LAotICAgICAg
ICAgICAge2Z1bmN0aW9uTmFtZTogJ2InLCB0aGlzVmFsdWU6IFsnYlRoaXMnLCAxXSwgaXNUYWls
RGVsZXRlZDogdHJ1ZX0sCi0gICAgICAgICAgICB7ZnVuY3Rpb25OYW1lOiAnYycsIHRoaXNWYWx1
ZTogWydjVGhpcycsIDBdLCBpc1RhaWxEZWxldGVkOiB0cnVlfQotICAgICAgICBdOwotCi0gICAg
ICAgIGxldCB0YXJnZXREYXRhID0gV0kuZGVidWdnZXJNYW5hZ2VyLmRhdGFGb3JUYXJnZXQoV0ku
ZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZS50YXJnZXQpOwotICAgICAgICBsZXQgY2Fs
bEZyYW1lcyA9IHRhcmdldERhdGEuY2FsbEZyYW1lczsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydChjYWxsRnJhbWVzLmxlbmd0aCA+PSBleHBlY3RlZEZyYW1lcy5sZW5ndGgsIGBTaG91
bGQgaGF2ZSBhdCBsZWFzdCAke2V4cGVjdGVkRnJhbWVzLmxlbmd0aH0gZnJhbWVzLCBidXQgaGF2
ZSAke2NhbGxGcmFtZXMubGVuZ3RofSBpbnN0ZWFkLmApOwotCi0gICAgICAgIC8vIFJlc29sdmUg
YSB0aGlzT2JqZWN0IHByZXZpZXcgb24gZWFjaCBvZiB0aGUgQ2FsbEZyYW1lcy4KLSAgICAgICAg
bGV0IHByb21pc2VzID0gW107Ci0gICAgICAgIGZvciAobGV0IGNhbGxGcmFtZSBvZiBjYWxsRnJh
bWVzKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghY2FsbEZyYW1lLnRoaXNP
YmplY3QucHJldmlldywgInRoaXNPYmplY3Qgc2hvdWxkIG5vdCBoYXZlIGEgcHJldmlldyIpOwot
ICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS50aGlzT2JqZWN0LmNhbkxvYWRQcmV2aWV3KCkpIHsK
LSAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWpl
Y3QpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgY2FsbEZyYW1lLnRoaXNPYmplY3QudXBkYXRl
UHJldmlldyhyZXNvbHZlKTsKLSAgICAgICAgICAgICAgICB9KSk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLQotICAgICAgICBQcm9taXNlLmFsbChwcm9taXNlcykudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGV4cGVjdGVkRnJhbWVzLmxlbmd0aDsgaSsr
KSB7Ci0gICAgICAgICAgICAgICAgbGV0IGNhbGxGcmFtZSA9IGNhbGxGcmFtZXNbaV07Ci0gICAg
ICAgICAgICAgICAgbGV0IGV4cGVjdGVkRnJhbWUgPSBleHBlY3RlZEZyYW1lc1tpXTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXhwZWN0ZWQgZnJhbWU6ICIgKyBKU09OLnN0
cmluZ2lmeShleHBlY3RlZEZyYW1lKSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnQoY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSA9PT0gZXhwZWN0ZWRGcmFtZS5mdW5jdGlvbk5h
bWUsIGBTaG91bGQgaGF2ZSBmdW5jdGlvbk5hbWUgb2YgJyR7ZXhwZWN0ZWRGcmFtZS5mdW5jdGlv
bk5hbWV9JywgYnV0IGhhdmUgJyR7Y2FsbEZyYW1lLmZ1bmN0aW9uTmFtZX0nIGluc3RlYWQuYCk7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FsbEZyYW1lLmlzVGFpbERl
bGV0ZWQgPT09IGV4cGVjdGVkRnJhbWUuaXNUYWlsRGVsZXRlZCwgYFNob3VsZCBoYXZlIGlzVGFp
bERlbGV0ZWQgb2YgJyR7ZXhwZWN0ZWRGcmFtZS5pc1RhaWxEZWxldGVkfScsIGJ1dCBoYXZlICck
e2NhbGxGcmFtZS5pc1RhaWxEZWxldGVkfScgaW5zdGVhZC5gKTsKLQotICAgICAgICAgICAgICAg
IGxldCB0aGlzT2JqZWN0ID0gY2FsbEZyYW1lLnRoaXNPYmplY3Q7Ci0gICAgICAgICAgICAgICAg
bGV0IHByb3BlcnRpZXMgPSB0aGlzT2JqZWN0LnByZXZpZXcucHJvcGVydHlQcmV2aWV3czsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChwcm9wZXJ0aWVzLmxlbmd0aCA9PT0g
MSwgIlNob3VsZCBoYXZlIG9uZSBwcm9wZXJ0eS4iKTsKLSAgICAgICAgICAgICAgICBsZXQgcHJv
cCA9IHByb3BlcnRpZXNbMF07Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KGV4cGVjdGVkRnJhbWUudGhpc1ZhbHVlWzBdID09PSBwcm9wLm5hbWUsIGAndGhpcycgdmFs
dWUgc2hvdWxkIGhhdmUgZXhwZWN0ZWQgcHJvcGVydHk6ICR7ZXhwZWN0ZWRGcmFtZS50aGlzVmFs
dWVbMF19YCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoJycgKyBleHBl
Y3RlZEZyYW1lLnRoaXNWYWx1ZVsxXSA9PT0gcHJvcC52YWx1ZSwgYCd0aGlzJyB2YWx1ZSBvYmpl
Y3Qgc2hvdWxkIGhhdmUgZXhwZWN0ZWQgcHJvcGVydHkgdmFsdWU6ICR7ZXhwZWN0ZWRGcmFtZS50
aGlzVmFsdWVbMV19YCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKGBDYWxs
IEZyYW1lICR7aX0gJ3RoaXMnIHZhbHVlIGlzIGNvcnJlY3QuYCk7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLSAgICAgICAgfSk7Ci0g
ICAgfSk7Ci0KLSAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5EZWJ1
Z2dlck1hbmFnZXIuRXZlbnQuUmVzdW1lZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlRlc3RzIGRvbmUiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKLSAgICB9KTsKLQotICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExp
c3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZl
bnQpIHsKLSAgICAgICAgZXZlbnRTY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAg
ICAgICAgCi0gICAgICAgIGlmICgvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlXC5qcyQv
LnRlc3QoZXZlbnRTY3JpcHRPYmplY3QudXJsKSkgewotICAgICAgICAgICAgc2NyaXB0T2JqZWN0
ID0gZXZlbnRTY3JpcHRPYmplY3Q7Ci0gICAgICAgICAgICBzdGFydFRlc3QoKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgfSk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJl
bG9hZFBhZ2UoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotICAgIDxwPlRlc3RpbmcgdGhhdCB3ZSBrZWVwIGFyb3VuZCB0YWlsIGRlbGV0ZWQgZnJh
bWVzIGluIHRoZSBpbnNwZWN0b3IgYW5kIHRoZWlyIHRoaXMgdmFsdWVzLjwvcD4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWls
LWRlbGV0ZWQtZnJhbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFp
bC1kZWxldGVkLWZyYW1lcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYWFh
Y2E5Nzk2NS4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3RhaWwtZGVsZXRlZC1mcmFtZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwNyArMCwwIEBA
Ci08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dl
ci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy90YWlsLWRlbGV0
ZWQtZnJhbWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIHZhciBzY3JpcHRPYmplY3Q7Ci0KLSAgICBmdW5jdGlvbiByZW1vdGVPYmplY3RKU09ORmls
dGVyKGtleSwgdmFsdWUpIHsKLSAgICAgICAgaWYgKGtleSA9PT0gIl90YXJnZXQiIHx8IGtleSA9
PT0gIl9saXN0ZW5lcnMiKQotICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgICAg
aWYgKGtleSA9PT0gIl9vYmplY3RJZCIgfHwga2V5ID09PSAiX3N0YWNrVHJhY2UiKQotICAgICAg
ICAgICAgcmV0dXJuICI8ZmlsdGVyZWQ+IjsKLSAgICAgICAgcmV0dXJuIHZhbHVlOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IlN0YXJ0aW5nIFRlc3QiKTsKLSAgICAgICAgLy8gMCBiYXNlZCBpbmRpY2VzLgotICAgICAgICBs
ZXQgdGVzdEluZm8gPSB7bGluZTogMywgY29sdW1uOiA0fTsKLSAgICAgICAgbGV0IGxvY2F0aW9u
ID0gc2NyaXB0T2JqZWN0LmNyZWF0ZVNvdXJjZUNvZGVMb2NhdGlvbih0ZXN0SW5mby5saW5lLCB0
ZXN0SW5mby5jb2x1bW4pOwotICAgICAgICBsZXQgYnJlYWtwb2ludCA9IG5ldyBXSS5CcmVha3Bv
aW50KGxvY2F0aW9uKTsKLSAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLmFkZEJyZWFrcG9pbnQo
YnJlYWtwb2ludCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInN0YXJ0
QUJDKCkiKTsKLSAgICB9Ci0KLSAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQ2FsbEZyYW1lc0RpZENoYW5nZSwgZnVuY3Rpb24o
ZXZlbnQpIHsKLSAgICAgICAgdmFyIGFjdGl2ZUNhbGxGcmFtZSA9IFdJLmRlYnVnZ2VyTWFuYWdl
ci5hY3RpdmVDYWxsRnJhbWU7Ci0KLSAgICAgICAgaWYgKCFhY3RpdmVDYWxsRnJhbWUpCi0gICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIHN0b3BMb2NhdGlvbiA9ICJsaW5lOiAiICsg
YWN0aXZlQ2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbi5saW5lTnVtYmVyICsgIiwgY29sdW1u
OiAiICsgYWN0aXZlQ2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbi5jb2x1bW5OdW1iZXI7Ci0K
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkhpdCBicmVha3BvaW50
IGF0ICIgKyBzdG9wTG9jYXRpb24pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7Ci0KLSAgICAgICAgLy8gdG9wIGRvd24g
bGlzdAotICAgICAgICBsZXQgZXhwZWN0ZWRGcmFtZXMgPSBbCi0gICAgICAgICAgICB7ZnVuY3Rp
b25OYW1lOiAnYScsIHNjb3BlOiBbJ3gnLCAyMF0sIGlzVGFpbERlbGV0ZWQ6IGZhbHNlfSwKLSAg
ICAgICAgICAgIHtmdW5jdGlvbk5hbWU6ICdiJywgc2NvcGU6IFsneScsIDQwXSwgaXNUYWlsRGVs
ZXRlZDogdHJ1ZX0sCi0gICAgICAgICAgICB7ZnVuY3Rpb25OYW1lOiAnYycsIHNjb3BlOiBbJ3on
LCA2MF0sIGlzVGFpbERlbGV0ZWQ6IHRydWV9Ci0gICAgICAgIF07Ci0KLSAgICAgICAgbGV0IHRh
cmdldERhdGEgPSBXSS5kZWJ1Z2dlck1hbmFnZXIuZGF0YUZvclRhcmdldChXSS5kZWJ1Z2dlck1h
bmFnZXIuYWN0aXZlQ2FsbEZyYW1lLnRhcmdldCk7Ci0gICAgICAgIGxldCBjYWxsRnJhbWVzID0g
dGFyZ2V0RGF0YS5jYWxsRnJhbWVzOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNh
bGxGcmFtZXMubGVuZ3RoID49IGV4cGVjdGVkRnJhbWVzLmxlbmd0aCk7Ci0KLSAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCBleHBlY3RlZEZyYW1lcy5sZW5ndGg7IGkrKykgewotICAgICAgICAg
ICAgbGV0IGNhbGxGcmFtZSA9IGNhbGxGcmFtZXNbaV07Ci0gICAgICAgICAgICBsZXQgZXhwZWN0
ZWRGcmFtZSA9IGV4cGVjdGVkRnJhbWVzW2ldOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkV4cGVjdGVkIGZyYW1lOiAiICsgSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRGcmFtZSkpOwot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSA9
PT0gZXhwZWN0ZWRGcmFtZS5mdW5jdGlvbk5hbWUpOwotCi0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydChjYWxsRnJhbWUuaXNUYWlsRGVsZXRlZCA9PT0gZXhwZWN0ZWRGcmFtZS5pc1Rh
aWxEZWxldGVkKTsKLSAgICAgICAgICAgIGxldCB0b3BTY29wZSA9IGNhbGxGcmFtZS5zY29wZUNo
YWluWzBdOwotCi0gICAgICAgICAgICB0b3BTY29wZS5vYmplY3RzWzBdLmdldFByb3BlcnR5RGVz
Y3JpcHRvcnMoZnVuY3Rpb24ocHJvcGVydGllcykgewotICAgICAgICAgICAgICAgIGxldCBmb3Vu
ZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGxldCB2YXJpYWJsZU5hbWUgPSBleHBlY3RlZEZy
YW1lLnNjb3BlWzBdOwotICAgICAgICAgICAgICAgIGxldCB2YXJpYWJsZVZhbHVlID0gZXhwZWN0
ZWRGcmFtZS5zY29wZVsxXTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eURlc2Ny
aXB0b3Igb2YgcHJvcGVydGllcykgewotICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHlE
ZXNjcmlwdG9yLm5hbWUgPT09IHZhcmlhYmxlTmFtZSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgZm91bmQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkxvb2tpbmcgYXQgZnJhbWUgbnVtYmVyOiAiICsgaSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgICAgIHZhcmlhYmxlICcke3ZhcmlhYmxlTmFtZX0nOiAk
e0pTT04uc3RyaW5naWZ5KHByb3BlcnR5RGVzY3JpcHRvci52YWx1ZSwgcmVtb3RlT2JqZWN0SlNP
TkZpbHRlcil9YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChwcm9wZXJ0eURlc2NyaXB0b3IudmFsdWUudHlwZSA9PT0gJ251bWJlcicpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQocHJvcGVydHlEZXNjcmlwdG9yLnZh
bHVlLnZhbHVlID09PSB2YXJpYWJsZVZhbHVlKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChmb3Vu
ZCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotCi0gICAgICAgIFdJLmRlYnVnZ2VyTWFu
YWdlci5yZXN1bWUoKTsKLSAgICB9KTsKLQotICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVu
dExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5SZXN1bWVkLCBmdW5jdGlvbihldmVu
dCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiVGVzdHMgZG9uZSIpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0pOwotCi0gICAgV0kuZGVidWdnZXJN
YW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFk
ZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICBldmVudFNjcmlwdE9iamVjdCA9IGV2ZW50
LmRhdGEuc2NyaXB0OwotICAgICAgICAKLSAgICAgICAgaWYgKC90YWlsLWRlbGV0ZWQtZnJhbWVz
XC5qcyQvLnRlc3QoZXZlbnRTY3JpcHRPYmplY3QudXJsKSkgewotICAgICAgICAgICAgc2NyaXB0
T2JqZWN0ID0gZXZlbnRTY3JpcHRPYmplY3Q7Ci0gICAgICAgICAgICBzdGFydFRlc3QoKTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgfSk7Ci0KLSAgICBJbnNwZWN0b3JU
ZXN0LnJlbG9hZFBhZ2UoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgotICAgIDxwPlRlc3RpbmcgdGhhdCB3ZSBrZWVwIGFyb3VuZCB0YWlsIGRlbGV0
ZWQgZnJhbWVzIGluIHRoZSBpbnNwZWN0b3IuIDwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVz
L3Jlc291cmNlcy9zdGFjay10cmFjZS11dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvc3RhY2stdHJhY2UtdXRp
bGl0aWVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMjBmODM1
YzJkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90
YWlsLWRlbGV0ZWQtZnJhbWVzL3Jlc291cmNlcy9zdGFjay10cmFjZS11dGlsaXRpZXMuanMKQEAg
LTAsMCArMSw5NyBAQAorVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CisgICAg
d2luZG93LmdldEFzeW5jU3RhY2tUcmFjZSA9IGZ1bmN0aW9uKCkgeworICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydChXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lLCAiQWN0aXZl
IGNhbGwgZnJhbWUgc2hvdWxkIGV4aXN0LiIpOworICAgICAgICBpZiAoIVdJLmRlYnVnZ2VyTWFu
YWdlci5hY3RpdmVDYWxsRnJhbWUpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAg
ICBsZXQgdGFyZ2V0RGF0YSA9IFdJLmRlYnVnZ2VyTWFuYWdlci5kYXRhRm9yVGFyZ2V0KFdJLmRl
YnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWUudGFyZ2V0KTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQodGFyZ2V0RGF0YSwgIkRhdGEgZm9yIGFjdGl2ZSBjYWxsIGZyYW1lIHRhcmdl
dCBzaG91bGQgZXhpc3QuIik7CisgICAgICAgIGlmICghdGFyZ2V0RGF0YSkKKyAgICAgICAgICAg
IHJldHVybiBudWxsOworCisgICAgICAgIGNvbnN0IHRvcENhbGxGcmFtZUlzQm91bmRhcnkgPSBm
YWxzZTsKKyAgICAgICAgY29uc3QgdHJ1bmNhdGVkID0gZmFsc2U7CisgICAgICAgIHJldHVybiBu
ZXcgV0kuU3RhY2tUcmFjZSh0YXJnZXREYXRhLmNhbGxGcmFtZXMsIHRvcENhbGxGcmFtZUlzQm91
bmRhcnksIHRydW5jYXRlZCwgdGFyZ2V0RGF0YS5hc3luY1N0YWNrVHJhY2UpOworICAgIH07CisK
KyAgICB3aW5kb3cubG9nQXN5bmNTdGFja1RyYWNlID0gYXN5bmMgZnVuY3Rpb24ob3B0aW9ucyA9
IHt9KSB7CisgICAgICAgIGxldCBmb3VuZEFzeW5jQm91bmRhcnkgPSBmYWxzZTsKKyAgICAgICAg
bGV0IGNhbGxGcmFtZUluZGV4ID0gMDsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBsb2dUaGlz
T2JqZWN0KGNhbGxGcmFtZSkgeworICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS50aGlzT2JqZWN0
LmNhbkxvYWRQcmV2aWV3KCkpIHsKKyAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyBjYWxsRnJhbWUudGhpc09iamVjdC51cGRhdGVQcmV2aWV3KHJlc29sdmUp
OyB9KTsKKyAgICAgICAgICAgICAgICBsZXQgcHJldmlldyA9IGNhbGxGcmFtZS50aGlzT2JqZWN0
LnByZXZpZXcucHJvcGVydHlQcmV2aWV3c1swXTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZyhgICB0aGlzOiAke3ByZXZpZXcubmFtZX0gLSAke3ByZXZpZXcudmFsdWV9YCk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgICB0
aGlzOiB1bmRlZmluZWRgKTsKKyAgICAgICAgfQorCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxv
Z1Njb3BlKGNhbGxGcmFtZSwgc2NvcGVDaGFpbkluZGV4KSB7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZyhgICAtLS0tU2NvcGUtLS0tYCk7CisgICAgICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIGxldCBzY29wZSA9
IGNhbGxGcmFtZS5zY29wZUNoYWluW3Njb3BlQ2hhaW5JbmRleF07CisgICAgICAgICAgICAgICAg
aWYgKCFzY29wZSkgeworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2Nv
cGUub2JqZWN0c1swXS5nZXRQcm9wZXJ0eURlc2NyaXB0b3JzKChwcm9wZXJ0aWVzKSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHByb3BlcnR5RGVzY3JpcHRvciBvZiBwcm9wZXJ0
aWVzKQorICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYCAgJHtwcm9w
ZXJ0eURlc2NyaXB0b3IubmFtZX06ICR7cHJvcGVydHlEZXNjcmlwdG9yLnZhbHVlLmRlc2NyaXB0
aW9ufWApOworICAgICAgICAgICAgICAgICAgICBpZiAoIXByb3BlcnRpZXMubGVuZ3RoKQorICAg
ICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYCAgLS0gIGVtcHR5ICAtLWAp
OworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgICAtLS0tLS0tLS0tLS0t
YCk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9n
Q2FsbEZyYW1lKGNhbGxGcmFtZSwgaXNBc3luY0JvdW5kYXJ5KSB7CisgICAgICAgICAgICBsZXQg
bGFiZWwgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lOworICAgICAgICAgICAgaWYgKGlzQXN5bmNC
b3VuZGFyeSkKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgJHtjYWxsRnJhbWVJ
bmRleH06IC0tLSAke2xhYmVsfSAtLS1gKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgICAgIGxldCBjb2RlID0gY2FsbEZyYW1lLm5hdGl2ZUNvZGUgPyAiTiIgOiAoY2FsbEZyYW1l
LnByb2dyYW1Db2RlID8gIlAiIDogIkYiKTsKKyAgICAgICAgICAgICAgICBsZXQgaWNvbiA9IGNh
bGxGcmFtZS5pc1RhaWxEZWxldGVkID8gYC0ke2NvZGV9LWAgOiBgWyR7Y29kZX1dYDsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgJHtjYWxsRnJhbWVJbmRleH06ICR7aWNvbn0g
JHtsYWJlbH1gKTsKKyAgICAgICAgICAgICAgICBpZiAoImluY2x1ZGVUaGlzT2JqZWN0IiBpbiBv
cHRpb25zKQorICAgICAgICAgICAgICAgICAgICBhd2FpdCBsb2dUaGlzT2JqZWN0KGNhbGxGcmFt
ZSk7CisgICAgICAgICAgICAgICAgaWYgKCJpbmNsdWRlU2NvcGUiIGluIG9wdGlvbnMpCisgICAg
ICAgICAgICAgICAgICAgIGF3YWl0IGxvZ1Njb3BlKGNhbGxGcmFtZSwgb3B0aW9ucy5pbmNsdWRl
U2NvcGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsbEZyYW1lSW5kZXgrKzsKKyAg
ICAgICAgfQorCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDQUxMIFNUQUNLOiIpOworCisg
ICAgICAgIGxldCBzdGFja1RyYWNlID0gZ2V0QXN5bmNTdGFja1RyYWNlKCk7CisgICAgICAgIHdo
aWxlIChzdGFja1RyYWNlKSB7CisgICAgICAgICAgICBsZXQgY2FsbEZyYW1lcyA9IHN0YWNrVHJh
Y2UuY2FsbEZyYW1lczsKKyAgICAgICAgICAgIGxldCB0b3BDYWxsRnJhbWVJc0JvdW5kYXJ5ID0g
c3RhY2tUcmFjZS50b3BDYWxsRnJhbWVJc0JvdW5kYXJ5OworICAgICAgICAgICAgbGV0IHRydW5j
YXRlZCA9IHN0YWNrVHJhY2UudHJ1bmNhdGVkOworICAgICAgICAgICAgc3RhY2tUcmFjZSA9IHN0
YWNrVHJhY2UucGFyZW50U3RhY2tUcmFjZTsKKyAgICAgICAgICAgIGlmICghY2FsbEZyYW1lcyB8
fCAhY2FsbEZyYW1lcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgICAgIGlmICh0b3BDYWxsRnJhbWVJc0JvdW5kYXJ5KSB7CisgICAgICAgICAgICAgICAgaWYg
KCFmb3VuZEFzeW5jQm91bmRhcnkpIHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkFTWU5DIENBTEwgU1RBQ0s6Iik7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kQXN5
bmNCb3VuZGFyeSA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGF3
YWl0IGxvZ0NhbGxGcmFtZShjYWxsRnJhbWVzWzBdLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgZm9yIChsZXQgaSA9IHRvcENhbGxGcmFtZUlzQm91bmRhcnkgPyAxIDogMDsg
aSA8IGNhbGxGcmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBsZXQgY2FsbEZy
YW1lID0gY2FsbEZyYW1lc1tpXTsKKyAgICAgICAgICAgICAgICBhd2FpdCBsb2dDYWxsRnJhbWUo
Y2FsbEZyYW1lKTsKKworICAgICAgICAgICAgICAgIC8vIFNraXAgY2FsbCBmcmFtZXMgYWZ0ZXIg
dGhlIHRlc3QgaGFybmVzcyBlbnRyeSBwb2ludC4KKyAgICAgICAgICAgICAgICBpZiAoY2FsbEZy
YW1lLnByb2dyYW1Db2RlKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgaWYgKHRydW5jYXRlZCkKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiKHJlbWFpbmluZyBjYWxsIGZyYW1lcyB0cnVuY2F0ZWQpIik7CisgICAgICAg
IH0KKyAgICB9OworfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRl
cm1lZGlhdGUtZnJhbWVzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwt
ZGVsZXRlZC1mcmFtZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRl
LWZyYW1lcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTQwOTIx
MThlZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
dGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1l
ZGlhdGUtZnJhbWVzLmpzCkBAIC0wLDAgKzEsMjMgQEAKKyJ1c2Ugc3RyaWN0IjsKK2Z1bmN0aW9u
IGEoKSB7CisgICAgbGV0IHggPSAyMDsKKyAgICBkZWJ1Z2dlcjsKKyAgICByZXR1cm4geDsKK30K
K2Z1bmN0aW9uIGIoKSB7CisgICAgbGV0IHkgPSA0MDsKKyAgICByZXR1cm4gYSgpOworfQorZnVu
Y3Rpb24gYygpIHsKKyAgICBsZXQgeiA9IDYwOworICAgIHJldHVybiBiKCk7IAorfQorZnVuY3Rp
b24gc3RhcnRBQkMoKSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1OyArK2kpCisgICAgICAg
IFRISVNfRE9FU19OT1RfQ0FMTF9jKCk7CisgICAgYygpOworfQorZnVuY3Rpb24gZG9Ob3RoaW5n
KCkgeyByZXR1cm4gMTsgfQorZnVuY3Rpb24gVEhJU19ET0VTX05PVF9DQUxMX2MoKSB7CisgICAg
cmV0dXJuIGRvTm90aGluZygpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFt
ZXMtaW50ZXJtZWRpYXRlLW5hdGl2ZS10YWlsLWRlbGV0ZWQtY2FsbHMuanMgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1k
ZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtbmF0aXZlLXRhaWwtZGVsZXRlZC1jYWxscy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDc5ODRhOTIzNGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVk
LWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtbmF0aXZl
LXRhaWwtZGVsZXRlZC1jYWxscy5qcwpAQCAtMCwwICsxLDIyIEBACisidXNlIHN0cmljdCI7Citm
dW5jdGlvbiBhKCkgeworICAgIGxldCB4ID0gMjA7CisgICAgZGVidWdnZXI7CisgICAgcmV0dXJu
IHg7Cit9CitmdW5jdGlvbiBiKCkgeworICAgIGxldCB5ID0gNDA7CisgICAgcmV0dXJuIGEoKTsK
K30KK2Z1bmN0aW9uIGMoKSB7CisgICAgbGV0IHogPSA2MDsKKyAgICByZXR1cm4gYigpOyAKK30K
K2Z1bmN0aW9uIHN0YXJ0QUJDKCkgeworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgKytpKQor
ICAgICAgICBUSElTX0RPRVNfTk9UX0NBTExfYygpOworICAgIGMoKTsKK30KK2Z1bmN0aW9uIFRI
SVNfRE9FU19OT1RfQ0FMTF9jKCkgeworICAgIHJldHVybiBNYXRoLnJhbmRvbSgpOworfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFt
ZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLXRhaWwtZGVsZXRl
ZC1mcmFtZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVk
LWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtdGFpbC1k
ZWxldGVkLWZyYW1lcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ZTQwOTIxMThlZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1p
bnRlcm1lZGlhdGUtdGFpbC1kZWxldGVkLWZyYW1lcy5qcwpAQCAtMCwwICsxLDIzIEBACisidXNl
IHN0cmljdCI7CitmdW5jdGlvbiBhKCkgeworICAgIGxldCB4ID0gMjA7CisgICAgZGVidWdnZXI7
CisgICAgcmV0dXJuIHg7Cit9CitmdW5jdGlvbiBiKCkgeworICAgIGxldCB5ID0gNDA7CisgICAg
cmV0dXJuIGEoKTsKK30KK2Z1bmN0aW9uIGMoKSB7CisgICAgbGV0IHogPSA2MDsKKyAgICByZXR1
cm4gYigpOyAKK30KK2Z1bmN0aW9uIHN0YXJ0QUJDKCkgeworICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgNTsgKytpKQorICAgICAgICBUSElTX0RPRVNfTk9UX0NBTExfYygpOworICAgIGMoKTsKK30K
K2Z1bmN0aW9uIGRvTm90aGluZygpIHsgcmV0dXJuIDE7IH0KK2Z1bmN0aW9uIFRISVNfRE9FU19O
T1RfQ0FMTF9jKCkgeworICAgIHJldHVybiBkb05vdGhpbmcoKTsKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3Jlc291cmNl
cy90YWlsLWRlbGV0ZWQtZnJhbWVzLXNjb3Blcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3Jlc291cmNlcy90YWlsLWRlbGV0ZWQtZnJhbWVz
LXNjb3Blcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWMwYmEw
NGFmN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
dGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1zY29wZXMu
anMKQEAgLTAsMCArMSwxNyBAQAorInVzZSBzdHJpY3QiOworZnVuY3Rpb24gYSgpIHsKKyAgICBs
ZXQgeCA9IDIwOworICAgIGRlYnVnZ2VyOworICAgIHJldHVybiB4OworfQorZnVuY3Rpb24gYigp
IHsKKyAgICBsZXQgeSA9IDQwOworICAgIHJldHVybiBhKCk7Cit9CitmdW5jdGlvbiBjKCkgewor
ICAgIGxldCB6ID0gNjA7CisgICAgcmV0dXJuIGIoKTsgCit9CitmdW5jdGlvbiBzdGFydEFCQygp
IHsKKyAgICBjKCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlz
LXZhbHVlLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1m
cmFtZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDNhZDg0NGU1MGQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1l
cy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLmpzCkBAIC0wLDAgKzEs
MTcgQEAKKyJ1c2Ugc3RyaWN0IjsKK2Z1bmN0aW9uIGEoKSB7CisgICAgbGV0IHggPSAyMDsKKyAg
ICBkZWJ1Z2dlcjsKKyAgICByZXR1cm4geDsKK30KK2Z1bmN0aW9uIGIoKSB7CisgICAgbGV0IHkg
PSA0MDsKKyAgICByZXR1cm4gYS5jYWxsKHthVGhpczogMn0pOworfQorZnVuY3Rpb24gYygpIHsK
KyAgICBsZXQgeiA9IDYwOworICAgIHJldHVybiBiLmNhbGwoe2JUaGlzOiAxfSk7IAorfQorZnVu
Y3Rpb24gc3RhcnRBQkMoKSB7CisgICAgYy5jYWxsKHtjVGhpczogMH0pOworfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvcmVz
b3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdm0tZW50cnkuanMgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVk
LWZyYW1lcy12bS1lbnRyeS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNDY4YThiMTE2YTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1l
cy12bS1lbnRyeS5qcwpAQCAtMCwwICsxLDEwIEBACisidXNlIHN0cmljdCI7CitmdW5jdGlvbiB0
aW1lb3V0KGZvbyA9IDI1KSB7CisgICAgcmV0dXJuIGJhcigpOworfQorZnVuY3Rpb24gYmFyKGkg
PSA5KSB7CisgICAgaWYgKGkgPiAwKQorICAgICAgICByZXR1cm4gYmFyKGkgLSAxKTsKKyAgICBk
ZWJ1Z2dlcjsKKyAgICByZXR1cm4gOTk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWlu
dGVybWVkaWF0ZS1mcmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlh
dGUtZnJhbWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uMGI2NDhmNmNiMjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWludGVy
bWVkaWF0ZS1mcmFtZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK0Vuc3VyZSBwcm9w
ZXIgdGFpbCBkZWxldGVkIGZyYW1lcyB3aXRoIGRpZmZlcmVudCBjYWxsIHN0YWNrcy4KKworCis9
PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IERlYnVnZ2VyLlRhaWxEZWxldGVkRnJhbWVzLkludGVybWVk
aWF0ZUZyYW1lcworLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLlRhaWxEZWxldGVkRnJh
bWVzLkludGVybWVkaWF0ZUZyYW1lcworUEFVU0VECitDQUxMIFNUQUNLOgorMDogW0ZdIGEKKzE6
IC1GLSBiCisyOiAtRi0gYworMzogW0ZdIHN0YXJ0QUJDCis0OiBbUF0gR2xvYmFsIENvZGUKK1JF
U1VNRUQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwt
ZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtZnJhbWVzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90
YWlsLWRlbGV0ZWQtZnJhbWVzLWludGVybWVkaWF0ZS1mcmFtZXMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2M0MWI3NGQ3OTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWls
LWRlbGV0ZWQtZnJhbWVzLWludGVybWVkaWF0ZS1mcmFtZXMuaHRtbApAQCAtMCwwICsxLDM4IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3RhY2stdHJhY2UtdXRpbGl0aWVzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1l
ZGlhdGUtZnJhbWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkRlYnVnZ2Vy
LlRhaWxEZWxldGVkRnJhbWVzLkludGVybWVkaWF0ZUZyYW1lcyIpOworCisgICAgc3VpdGUuYWRk
VGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuSW50
ZXJtZWRpYXRlRnJhbWVzIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJFbnN1cmUgaW50ZXJtZWRp
YXRlIGZyYW1lcyBpbiBhIGxvZyBkbyBub3Qgc2hvdyB1cCBpbiB0aGUgY2FsbCBzdGFjayIsCisg
ICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICAvLyBUcmlnZ2VyIGJyZWFrcG9pbnQu
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBzdGFydEFCQygpYCk7
CisKKyAgICAgICAgICAgIC8vIER1bXAgc3RhY2sgd2hlbiBwYXVzZWQuCisgICAgICAgICAgICBh
d2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRFdmVudChXSS5EZWJ1Z2dlck1hbmFnZXIuRXZl
bnQuUGF1c2VkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVTRUQiKTsKKyAg
ICAgICAgICAgIGF3YWl0IGxvZ0FzeW5jU3RhY2tUcmFjZSgpOworCisgICAgICAgICAgICAvLyBS
ZXN1bWUgYW5kIGVuZCB0ZXN0LgorICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJlc3Vt
ZSgpOworICAgICAgICAgICAgYXdhaXQgV0kuZGVidWdnZXJNYW5hZ2VyLmF3YWl0RXZlbnQoV0ku
RGVidWdnZXJNYW5hZ2VyLkV2ZW50LlJlc3VtZWQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIlJFU1VNRUQiKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVz
dENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KKzxwPkVuc3VyZSBwcm9wZXIgdGFpbCBkZWxldGVkIGZyYW1lcyB3aXRoIGRp
ZmZlcmVudCBjYWxsIHN0YWNrcy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRl
bGV0ZWQtZnJhbWVzLWludGVybWVkaWF0ZS1uYXRpdmUtdGFpbC1kZWxldGVkLWNhbGxzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJh
bWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLW5hdGl2ZS10YWlsLWRlbGV0ZWQt
Y2FsbHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li45YzNkNmE5M2JjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRp
YXRlLW5hdGl2ZS10YWlsLWRlbGV0ZWQtY2FsbHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAg
QEAKK0Vuc3VyZSBwcm9wZXIgdGFpbCBkZWxldGVkIGZyYW1lcyB3aXRoIGRpZmZlcmVudCBjYWxs
IHN0YWNrcy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IERlYnVnZ2VyLlRhaWxEZWxldGVk
RnJhbWVzLkludGVybWVkaWF0ZVRhaWxEZWxldGVkRnJhbWVzCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuSW50ZXJtZWRpYXRlVGFpbERlbGV0ZWRGcmFt
ZXMKK0ZBSUw6IFRoaXMgc2hvdWxkIG5vdCBoYXZlIGBUSElTX0RPRVNfTk9UX0NBTExfY2AgaW4g
dGhlIGNhbGwgc3RhY2suCitQQVVTRUQKK0NBTEwgU1RBQ0s6CiswOiBbRl0gYQorMTogLUYtIGIK
KzI6IC1GLSBjCiszOiAtRi0gVEhJU19ET0VTX05PVF9DQUxMX2MKKzQ6IC1GLSBUSElTX0RPRVNf
Tk9UX0NBTExfYworNTogLUYtIFRISVNfRE9FU19OT1RfQ0FMTF9jCis2OiAtRi0gVEhJU19ET0VT
X05PVF9DQUxMX2MKKzc6IC1GLSBUSElTX0RPRVNfTk9UX0NBTExfYworODogW0ZdIHN0YXJ0QUJD
Cis5OiBbUF0gR2xvYmFsIENvZGUKK1JFU1VNRUQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1l
cy1pbnRlcm1lZGlhdGUtbmF0aXZlLXRhaWwtZGVsZXRlZC1jYWxscy5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZy
YW1lcy1pbnRlcm1lZGlhdGUtbmF0aXZlLXRhaWwtZGVsZXRlZC1jYWxscy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZDBkMzI4MzYwMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVz
L3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLW5hdGl2ZS10YWlsLWRlbGV0ZWQtY2Fs
bHMuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3RhY2st
dHJhY2UtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGFp
bC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtbmF0aXZlLXRhaWwtZGVsZXRlZC1jYWxscy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRl
ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJEZWJ1Z2dlci5UYWlsRGVsZXRlZEZy
YW1lcy5JbnRlcm1lZGlhdGVUYWlsRGVsZXRlZEZyYW1lcyIpOworCisgICAgc3VpdGUuYWRkVGVz
dENhc2UoeworICAgICAgICBuYW1lOiAiRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuSW50ZXJt
ZWRpYXRlVGFpbERlbGV0ZWRGcmFtZXMiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSBp
bnRlcm1lZGlhdGUgdGFpbCBkZWxldGVkIGZyYW1lcyBpbiBhIGxvZyBkbyBub3Qgc2hvdyB1cCBp
biB0aGUgY2FsbCBzdGFjayIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICAv
LyBUcmlnZ2VyIGJyZWFrcG9pbnQuCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKGBzdGFydEFCQygpYCk7CisKKyAgICAgICAgICAgIC8vIEZJWE1FOiBTaGFkb3dDaGlj
a2VuIG9ubHkgd29ya3MgaWYgZWFjaCB0YWlsIGNhbGwgZnVuY3Rpb24gZW1pdHMgYSBwcm9sb2d1
ZQorICAgICAgICAgICAgLy8gb24gZW50cnkuIFVuZm9ydHVuYXRlbHkgbmF0aXZlIGZ1bmN0aW9u
IGNhbGxzIGRvIG5vdCBlbWl0IGEgcHJvbG9ndWUsIHNvIHRoZQorICAgICAgICAgICAgLy8gU2hh
ZG93Q2hpY2tlbiBzdGFjayBjYW5ub3QgcHJvcGVybHkgYXNzZXMgdGhlIHRhaWwgY2FsbCBmcm9t
IGBUSElTX0RPRVNfTk9UX0NBTExfY2AuCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwo
IlRoaXMgc2hvdWxkIG5vdCBoYXZlIGBUSElTX0RPRVNfTk9UX0NBTExfY2AgaW4gdGhlIGNhbGwg
c3RhY2suIikKKworICAgICAgICAgICAgLy8gRHVtcCBzdGFjayB3aGVuIHBhdXNlZC4KKyAgICAg
ICAgICAgIGF3YWl0IFdJLmRlYnVnZ2VyTWFuYWdlci5hd2FpdEV2ZW50KFdJLkRlYnVnZ2VyTWFu
YWdlci5FdmVudC5QYXVzZWQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNF
RCIpOworICAgICAgICAgICAgYXdhaXQgbG9nQXN5bmNTdGFja1RyYWNlKCk7CisKKyAgICAgICAg
ICAgIC8vIFJlc3VtZSBhbmQgZW5kIHRlc3QuCisgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFn
ZXIucmVzdW1lKCk7CisgICAgICAgICAgICBhd2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRF
dmVudChXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUmVzdW1lZCk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiUkVTVU1FRCIpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0
ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPHA+RW5zdXJlIHByb3BlciB0YWlsIGRlbGV0ZWQgZnJhbWVz
IHdpdGggZGlmZmVyZW50IGNhbGwgc3RhY2tzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVz
L3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLXRhaWwtZGVsZXRlZC1mcmFtZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1m
cmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtdGFpbC1kZWxldGVkLWZyYW1l
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlm
MTg0YmNjNjM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUt
dGFpbC1kZWxldGVkLWZyYW1lcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorRW5zdXJl
IHByb3BlciB0YWlsIGRlbGV0ZWQgZnJhbWVzIHdpdGggZGlmZmVyZW50IGNhbGwgc3RhY2tzLgor
CisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuSW50
ZXJtZWRpYXRlVGFpbERlbGV0ZWRGcmFtZXMKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dl
ci5UYWlsRGVsZXRlZEZyYW1lcy5JbnRlcm1lZGlhdGVUYWlsRGVsZXRlZEZyYW1lcworUEFVU0VE
CitDQUxMIFNUQUNLOgorMDogW0ZdIGEKKzE6IC1GLSBiCisyOiAtRi0gYworMzogW0ZdIHN0YXJ0
QUJDCis0OiBbUF0gR2xvYmFsIENvZGUKK1JFU1VNRUQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZy
YW1lcy1pbnRlcm1lZGlhdGUtdGFpbC1kZWxldGVkLWZyYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1l
cy1pbnRlcm1lZGlhdGUtdGFpbC1kZWxldGVkLWZyYW1lcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mY2U5MzJkOTIxZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVs
ZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLXRhaWwtZGVsZXRlZC1mcmFtZXMuaHRtbApAQCAtMCww
ICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3RhY2stdHJhY2UtdXRpbGl0aWVz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1l
cy1pbnRlcm1lZGlhdGUtdGFpbC1kZWxldGVkLWZyYW1lcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVh
dGVBc3luY1N1aXRlKCJEZWJ1Z2dlci5UYWlsRGVsZXRlZEZyYW1lcy5JbnRlcm1lZGlhdGVUYWls
RGVsZXRlZEZyYW1lcyIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1l
OiAiRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuSW50ZXJtZWRpYXRlVGFpbERlbGV0ZWRGcmFt
ZXMiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSBpbnRlcm1lZGlhdGUgdGFpbCBkZWxl
dGVkIGZyYW1lcyBpbiBhIGxvZyBkbyBub3Qgc2hvdyB1cCBpbiB0aGUgY2FsbCBzdGFjayIsCisg
ICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICAvLyBUcmlnZ2VyIGJyZWFrcG9pbnQu
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBzdGFydEFCQygpYCk7
CisKKyAgICAgICAgICAgIC8vIER1bXAgc3RhY2sgd2hlbiBwYXVzZWQuCisgICAgICAgICAgICBh
d2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRFdmVudChXSS5EZWJ1Z2dlck1hbmFnZXIuRXZl
bnQuUGF1c2VkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVTRUQiKTsKKyAg
ICAgICAgICAgIGF3YWl0IGxvZ0FzeW5jU3RhY2tUcmFjZSgpOworCisgICAgICAgICAgICAvLyBS
ZXN1bWUgYW5kIGVuZCB0ZXN0LgorICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJlc3Vt
ZSgpOworICAgICAgICAgICAgYXdhaXQgV0kuZGVidWdnZXJNYW5hZ2VyLmF3YWl0RXZlbnQoV0ku
RGVidWdnZXJNYW5hZ2VyLkV2ZW50LlJlc3VtZWQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIlJFU1VNRUQiKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVz
dENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KKzxwPkVuc3VyZSBwcm9wZXIgdGFpbCBkZWxldGVkIGZyYW1lcyB3aXRoIGRp
ZmZlcmVudCBjYWxsIHN0YWNrcy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRl
bGV0ZWQtZnJhbWVzLXNjb3Blcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXNjb3Blcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjljZmQy
Yzk2YzAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1zY29wZXMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjkgQEAKK0Vuc3VyZSBwcm9wZXIgc2NvcGVzIGluIHRhaWwgZGVsZXRl
ZCBmcmFtZXMuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBEZWJ1Z2dlci5UYWlsRGVsZXRl
ZEZyYW1lcy5TY29wZXMKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5UYWlsRGVsZXRl
ZEZyYW1lcy5TY29wZXMKK1BBVVNFRAorQ0FMTCBTVEFDSzoKKzA6IFtGXSBhCisgIC0tLS1TY29w
ZS0tLS0KKyAgeDogMjAKKyAgLS0tLS0tLS0tLS0tLQorMTogLUYtIGIKKyAgLS0tLVNjb3BlLS0t
LQorICB5OiA0MAorICAtLS0tLS0tLS0tLS0tCisyOiAtRi0gYworICAtLS0tU2NvcGUtLS0tCisg
IHo6IDYwCisgIC0tLS0tLS0tLS0tLS0KKzM6IFtGXSBzdGFydEFCQworICAtLS0tU2NvcGUtLS0t
CisgIC0tICBlbXB0eSAgLS0KKyAgLS0tLS0tLS0tLS0tLQorNDogW1BdIEdsb2JhbCBDb2RlCisg
IC0tLS1TY29wZS0tLS0KKyAgLS0gIGVtcHR5ICAtLQorICAtLS0tLS0tLS0tLS0tCitSRVNVTUVE
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0
ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtc2NvcGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVz
LXNjb3Blcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mM2Zl
ZDk0NmE3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtc2NvcGVzLmh0bWwKQEAg
LTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N0YWNrLXRyYWNlLXV0aWxp
dGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1m
cmFtZXMtc2NvcGVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkRlYnVnZ2Vy
LlRhaWxEZWxldGVkRnJhbWVzLlNjb3BlcyIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2Uoewor
ICAgICAgICBuYW1lOiAiRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuU2NvcGVzIiwKKyAgICAg
ICAgZGVzY3JpcHRpb246ICJFbnN1cmUgc2NvcGVzIGluIHRhaWwgZGVsZXRlZCBmcmFtZXMiLAor
ICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgLy8gVHJpZ2dlciBicmVha3BvaW50
LgorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgc3RhcnRBQkMoKWAp
OworCisgICAgICAgICAgICAvLyBEdW1wIHN0YWNrIHdoZW4gcGF1c2VkLgorICAgICAgICAgICAg
YXdhaXQgV0kuZGVidWdnZXJNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuRGVidWdnZXJNYW5hZ2VyLkV2
ZW50LlBhdXNlZCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0VEIik7Cisg
ICAgICAgICAgICBhd2FpdCBsb2dBc3luY1N0YWNrVHJhY2Uoe2luY2x1ZGVTY29wZTogMH0pOwor
CisgICAgICAgICAgICAvLyBSZXN1bWUgYW5kIGVuZCB0ZXN0LgorICAgICAgICAgICAgV0kuZGVi
dWdnZXJNYW5hZ2VyLnJlc3VtZSgpOworICAgICAgICAgICAgYXdhaXQgV0kuZGVidWdnZXJNYW5h
Z2VyLmF3YWl0RXZlbnQoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlJlc3VtZWQpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJFU1VNRUQiKTsKKyAgICAgICAgfQorICAgIH0pOwor
CisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPkVuc3VyZSBwcm9wZXIgc2NvcGVzIGlu
IHRhaWwgZGVsZXRlZCBmcmFtZXMuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1k
ZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhp
cy12YWx1ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLmU4MmE3OTk3NmRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZh
bHVlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitFbnN1cmUgcHJvcGVyIHRoaXMgdmFs
dWUgaW4gdGFpbCBkZWxldGVkIGZyYW1lcy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IERl
YnVnZ2VyLlRhaWxEZWxldGVkRnJhbWVzLlRoaXNWYWx1ZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6
IERlYnVnZ2VyLlRhaWxEZWxldGVkRnJhbWVzLlNjb3BlcworUEFVU0VECitDQUxMIFNUQUNLOgor
MDogW0ZdIGEKKyAgdGhpczogYVRoaXMgLSAyCisxOiAtRi0gYgorICB0aGlzOiBiVGhpcyAtIDEK
KzI6IC1GLSBjCisgIHRoaXM6IGNUaGlzIC0gMAorMzogW0ZdIHN0YXJ0QUJDCisgIHRoaXM6IHVu
ZGVmaW5lZAorNDogW1BdIEdsb2JhbCBDb2RlCisgIHRoaXM6IHRlc3QgLSAKK1JFU1VNRUQKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1m
cmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVz
LXRoaXMtdmFsdWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ZmUwZTBiN2MwOGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXRoaXMtdmFsdWUu
aHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3RhY2stdHJh
Y2UtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGFpbC1k
ZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3Vp
dGUoIkRlYnVnZ2VyLlRhaWxEZWxldGVkRnJhbWVzLlRoaXNWYWx1ZSIpOworCisgICAgc3VpdGUu
YWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMu
U2NvcGVzIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJFbnN1cmUgdGhpc09iamVjdCBpbiB0YWls
IGRlbGV0ZWQgZnJhbWVzIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIC8v
IFRyaWdnZXIgYnJlYWtwb2ludC4KKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoYHN0YXJ0QUJDKClgKTsKKworICAgICAgICAgICAgLy8gRHVtcCBzdGFjayB3aGVuIHBh
dXNlZC4KKyAgICAgICAgICAgIGF3YWl0IFdJLmRlYnVnZ2VyTWFuYWdlci5hd2FpdEV2ZW50KFdJ
LkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIlBBVVNFRCIpOworICAgICAgICAgICAgYXdhaXQgbG9nQXN5bmNTdGFja1RyYWNlKHtp
bmNsdWRlVGhpc09iamVjdDp0cnVlfSk7CisKKyAgICAgICAgICAgIC8vIFJlc3VtZSBhbmQgZW5k
IHRlc3QuCisgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7CisgICAgICAg
ICAgICBhd2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRFdmVudChXSS5EZWJ1Z2dlck1hbmFn
ZXIuRXZlbnQuUmVzdW1lZCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUkVTVU1F
RCIpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5p
c2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PHA+RW5zdXJlIHByb3BlciB0aGlzIHZhbHVlIGluIHRhaWwgZGVsZXRlZCBmcmFtZXMuPC9wPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy12bS1lbnRyeS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZy
YW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXZtLWVudHJ5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDljNzQzZWNhNTAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90
YWlsLWRlbGV0ZWQtZnJhbWVzLXZtLWVudHJ5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU3IEBA
CitFbnN1cmUgcHJvcGVyIHZhbHVlcyBpbiB0YWlsIGRlbGV0ZWQgZnJhbWVzLgorCisKKz09IFJ1
bm5pbmcgdGVzdCBzdWl0ZTogRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuVk1FbnRyeQorLS0g
UnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLlRhaWxEZWxldGVkRnJhbWVzLlNjb3BlcworUEFV
U0VECitDQUxMIFNUQUNLOgorMDogW0ZdIGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDAKKyAg
LS0tLS0tLS0tLS0tLQorMTogLUYtIGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDEKKyAgLS0t
LS0tLS0tLS0tLQorMjogLUYtIGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDIKKyAgLS0tLS0t
LS0tLS0tLQorMzogLUYtIGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDMKKyAgLS0tLS0tLS0t
LS0tLQorNDogLUYtIGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDQKKyAgLS0tLS0tLS0tLS0t
LQorNTogLUYtIGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDUKKyAgLS0tLS0tLS0tLS0tLQor
NjogLUYtIGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDYKKyAgLS0tLS0tLS0tLS0tLQorNzog
LUYtIGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDcKKyAgLS0tLS0tLS0tLS0tLQorODogLUYt
IGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDgKKyAgLS0tLS0tLS0tLS0tLQorOTogLUYtIGJh
cgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDkKKyAgLS0tLS0tLS0tLS0tLQorMTA6IC1GLSB0aW1l
b3V0CisgIC0tLS1TY29wZS0tLS0KKyAgZm9vOiAyNQorICAtLS0tLS0tLS0tLS0tCitBU1lOQyBD
QUxMIFNUQUNLOgorMTE6IC0tLSBzZXRUaW1lb3V0IC0tLQorMTI6IFtQXSBHbG9iYWwgQ29kZQor
ICAtLS0tU2NvcGUtLS0tCitSRVNVTUVECisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdm0t
ZW50cnkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQt
ZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdm0tZW50cnkuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWIyYmUwYWM2NTYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRl
bGV0ZWQtZnJhbWVzLXZtLWVudHJ5Lmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3N0YWNrLXRyYWNlLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdm0tZW50cnkuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWco
KTsKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkRlYnVn
Z2VyLlRhaWxEZWxldGVkRnJhbWVzLlZNRW50cnkiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNl
KHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLlRhaWxEZWxldGVkRnJhbWVzLlNjb3BlcyIsCisg
ICAgICAgIGRlc2NyaXB0aW9uOiAiRW5zdXJlIHByb3BlciB2YWx1ZXMgaW4gdGFpbCBkZWxldGVk
IGZyYW1lcyIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICAvLyBUcmlnZ2Vy
IGJyZWFrcG9pbnQuCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBz
ZXRUaW1lb3V0KHRpbWVvdXQpYCk7CisKKyAgICAgICAgICAgIC8vIER1bXAgc3RhY2sgd2hlbiBw
YXVzZWQuCisgICAgICAgICAgICBhd2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRFdmVudChX
SS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJQQVVTRUQiKTsKKyAgICAgICAgICAgIGF3YWl0IGxvZ0FzeW5jU3RhY2tUcmFjZSh7
aW5jbHVkZVNjb3BlOiAxfSk7CisKKyAgICAgICAgICAgIC8vIFJlc3VtZSBhbmQgZW5kIHRlc3Qu
CisgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7CisgICAgICAgICAgICBh
d2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRFdmVudChXSS5EZWJ1Z2dlck1hbmFnZXIuRXZl
bnQuUmVzdW1lZCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUkVTVU1FRCIpOwor
ICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+RW5z
dXJlIHByb3BlciB2YWx1ZXMgaW4gdGFpbCBkZWxldGVkIGZyYW1lcy48L3A+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDc2
NTNjMDMzMWZiLi5kNmYyMzlhODhkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTEwNjAsOCArMTA2MCw3IEBAIHdlYmtpdC5vcmcvYi8xNjgwOTAgWyBE
ZWJ1ZyBdIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWNvbHVtbnMuaHRtbCBbIFBhc3MK
IHdlYmtpdC5vcmcvYi8xNjE5NTEgWyBSZWxlYXNlIF0gaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
cG9pbnRzL3Jlc29sdmVkLWR1bXAtZWFjaC1saW5lLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogd2Vi
a2l0Lm9yZy9iLzE2NzcxMSBbIERlYnVnIF0gaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb2JlLW1hbmFn
ZXItYWRkLXJlbW92ZS1hY3Rpb25zLmh0bWwgWyBTbG93IF0KIHdlYmtpdC5vcmcvYi8xNjgzOTkg
WyBEZWJ1ZyBdIGluc3BlY3Rvci9kZWJ1Z2dlci9zZWFyY2gtc2NyaXB0cy5odG1sIFsgUGFzcyBU
aW1lb3V0IF0KLXdlYmtpdC5vcmcvYi8xODE5NTIgWyBEZWJ1ZyBdIGluc3BlY3Rvci9kZWJ1Z2dl
ci90YWlsLWRlbGV0ZWQtZnJhbWVzLWZyb20tdm0tZW50cnkuaHRtbCBbIFNsb3cgXQotd2Via2l0
Lm9yZy9iLzE2OTExOSBbIERlYnVnIF0gaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1m
cmFtZXMtdGhpcy12YWx1ZS5odG1sIFsgUGFzcyBUaW1lb3V0IF0KK3dlYmtpdC5vcmcvYi8xODE5
NTIgWyBEZWJ1ZyBdIGluc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwt
ZGVsZXRlZC1mcmFtZXMtdm0tZW50cnkuaHRtbCBbIFNsb3cgXQogd2Via2l0Lm9yZy9iLzE2ODM4
NyBbIERlYnVnIF0gaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtcmVjdXJzaW9uLmh0bWwgWyBQYXNz
IFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzE3MDEyNyBpbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2Rv
bS1icmVha3BvaW50cy5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcvYi8xNDg2MzYg
aW5zcGVjdG9yL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5vZGUuaHRtbCBbIFBh
c3MgVGltZW91dCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAxYmYzZDVmNTg5OC4uZDZl
ZTE0NjBlYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOSBAQAorMjAx
OS0wOC0zMSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAg
IFRhaWwgRGVsZXRlZCBGcmFtZXMgc2hvd24gaW4gV2ViIEluc3BlY3RvciBhcmUgc29tZXRpbWVz
IGluY29ycmVjdCAoU2hhZG93IENoaWNrZW4pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEzNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJdCBpcyBwb3NzaWJsZSBmb3IgdGhlIGxvZyBidWZmZXIgdG8g
YmUgZnVsbCByaWdodCBhcyBzb21lb25lIGlzIHRyeWluZyB0bworICAgICAgICBsb2cgYSBmdW5j
dGlvbiBwcm9sb2d1ZS4gSW4gc3VjaCBhIGNhc2UgdGhlIG1hY2hpbmUgc3RhY2sgaGFzIGFscmVh
ZHkgYmVlbgorICAgICAgICB1cGRhdGVkIHRvIGluY2x1ZGUgdGhlIG5ldyBKYXZhU2NyaXB0IGNh
bGwgZnJhbWUsIGJ1dCB0aGUgcHJvbG9ndWUgcGFja2V0CisgICAgICAgIGNhbm5vdCBiZSBpbmNs
dWRlZCBpbiB0aGUgdXBkYXRlIGJlY2F1c2UgdGhlIGxvZyBpcyBmdWxsLiBUaGlzIHdvdWxkIG1l
YW4KKyAgICAgICAgdGhhdCB0aGUgdXBkYXRlIGZhaWxzIHRvIHJhdGlvbmFsaXplIHRoZSBtYWNo
aW5lIHN0YWNrIHdpdGggdGhlIHNoYWRvdworICAgICAgICBsb2cgLyBzdGFjay4gTmFtZWx5LCB0
aGUgY3VycmVudCBKYXZhU2NyaXB0IGNhbGwgZnJhbWUgaXMgdW5hYmxlIHRvCisgICAgICAgIGZp
bmQgYSBtYXRjaGluZyBwcm9sb2d1ZSAodGhlIG9uZSB3ZSBhcmUgaG9sZGluZyB0byBpbmNsdWRl
IGFmdGVyIHRoZSB1cGRhdGUpCisgICAgICAgIGFuZCBpbnNlcnRzIGEgcXVlc3Rpb25hYmxlIHZh
bHVlIGludG8gdGhlIHN0YWNrOyBhbmQgaW4gdGhlIHByb2Nlc3MKKyAgICAgICAgbWlzc2luZyBh
bmQgcmVtb3ZpbmcgcmVhbCBwb3RlbnRpYWwgdGFpbCBjYWxscy4KKworICAgICAgICBGb3IgZXhh
bXBsZToKKyAgICAgICAgCisgICAgICAgICAgICAidXNlIHN0cmljdCI7CisgICAgICAgICAgICBm
dW5jdGlvbiB0aGlyZCgpIHsgcmV0dXJuIDE7IH0KKyAgICAgICAgICAgIGZ1bmN0aW9uIHNlY29u
ZCgpIHsgcmV0dXJuIHRoaXJkKCk7IH0KKyAgICAgICAgICAgIGZ1bmN0aW9uIGZpcnN0KCkgeyBy
ZXR1cm4gc2Vjb25kKCk7IH0KKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkgeyByZXR1cm4g
Zmlyc3QoKTsgfQorCisgICAgICAgIElmIHRoZSB0aGUgbG9nIGZpbGxzIHVwIGp1c3QgYXMgd2Ug
YXJlIGVudGVyaW5nIGBiYCB0aGVuIHdlIG1heSBoYXZlIGEgbGlzdAorICAgICAgICBmdWxsIGxv
ZyBvZiBwYWNrZXRzIGxvb2tpbmcgbGlrZToKKworICAgICAgICAgIFNoYWRvdyBMb2c6CisgICAg
ICAgICAgICAuLi4KKyAgICAgICAgICAgIHsgcHJvbG9ndWUtcGFja2V0OiBlbnRlcmluZyBgc3Rh
cnRgIC4uLiB9CisgICAgICAgICAgICB7IHByb2xvZ3VlLXBhY2tldDogZW50ZXJpbmcgYGZpcnN0
YCAuLi4gfQorICAgICAgICAgICAgeyB0YWlsLXBhY2tldDogbGVhdmluZyBgZmlyc3RgIHdpdGgg
YSB0YWlsIGNhbGwgfQorCisgICAgICAgICAgSW5jb21pbmcgUGFja2V0OgorICAgICAgICAgICAg
eyBwcm9sb2d1ZS1wYWNrZXQ6IGVudGVyaW5nIGBzZWNvbmRgIC4uLiB9CisKKyAgICAgICAgICBD
dXJyZW50IEpTIFN0YWNrOgorICAgICAgICAgICAgc2Vjb25kCisgICAgICAgICAgICBzdGFydAor
CisgICAgICAgIFNpbmNlIHRoZSBDdXJyZW50IEphdmFTY3JpcHQgc3RhY2sgYWxyZWFkeSBoYXMg
YHNlY29uZGAsIGlmIHdlIHByb2Nlc3MgdGhlCisgICAgICAgIGxvZyB3aXRob3V0IHRoZSBwcm9s
b2d1ZSBmb3IgYHNlY29uZGAgdGhlbiB3ZSBwdXNoIGEgY29uZnVzZWQgZW50cnkgb24gdGhlCisg
ICAgICAgIHNoYWRvdyBzdGFjayBhbmQgY2xlYXIgdGhlIGxvZyBzdWNoIHRoYXQgd2UgZXZlbnR1
YWxseSBsb3NlIHRoZSB0YWlsLWNhbGwKKyAgICAgICAgaW5mb3JtYXRpb24gZm9yIGBmaXJzdGAg
dG8gYHNlY29uZGAuCisKKyAgICAgICAgVGhpcyBwYXRjaCBzb2x2ZXMgdGhpcyBpc3N1ZSBieSBw
cm92aWRpbmcgZW5vdWdoIGV4dHJhIHNwYWNlIGluIHRoZSBsb2cKKyAgICAgICAgdG8gYWx3YXlz
IHByb2Nlc3MgdGhlIGluY29taW5nIHBhY2tldCB3aGVuIHRoYXQgZm9yY2VzIGFuIHVwZGF0ZS4g
VGhpcyB3YXkKKyAgICAgICAgY2xpZW50cyBjYW4gY29udGludWUgdG8gYmVoYXZlIGV4YWN0bHkg
YXMgdGhleSBhcmUuCisKKyAgICAgICAgLS0KKworICAgICAgICBXZSBhbHNvIGRvY3VtZW50IGEg
Y29ybmVyIGNhc2UgaW4gc29tZSBjaXJjdW1zdGFuY2VzIHdoZXJlIHRoZSBzaGFkb3cKKyAgICAg
ICAgbG9nIG1heSBjdXJyZW50bHkgYmUgaW5zdWZmaWNpZW50IHRvIGtub3cgaG93IHRvIHJlY29u
Y2lsZToKKyAgICAgICAgCisgICAgICAgIEZvciBleGFtcGxlOgorCisgICAgICAgICAgICAidXNl
IHN0cmljdCI7CisgICAgICAgICAgICBmdW5jdGlvbiB0aGlyZCgpIHsgcmV0dXJuIDE7IH0KKyAg
ICAgICAgICAgIGZ1bmN0aW9uIHNlY29uZCgpIHsgcmV0dXJuIHRoaXJkKCk7IH0KKyAgICAgICAg
ICAgIGZ1bmN0aW9uIGZpcnN0KCkgeyByZXR1cm4gc2Vjb25kKCk7IH0KKyAgICAgICAgICAgIGZ1
bmN0aW9uIGRvTm90aGluZ1RhaWwoKSB7IHJldHVybiBNYXRoLnJhbmRvbSgpIH0KKyAgICAgICAg
ICAgIGZ1bmN0aW9uIHN0YXJ0KCkgeworICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8MTAwMDsr
K2kpIGRvTm90aGluZ1RhaWwoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmlyc3QoKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICBJbiB0aGlzIGNhc2UgdGhlIFNoYWRvd0NoaWNrZW4gbG9n
IG1heSBiZSBwcm9jZXNzZWQgbXVsdGlwbGUgdGltZXMgZHVlCisgICAgICAgIHRvIHRoZSBtYW55
IGNhbGxzIHRvIGBkb05vdGhpbmdUYWlsYCAvIGBNYXRoLnJhbmRvbSgpYC4gV2hlbiBjYWxsaW5n
IHRoZQorICAgICAgICBOYXRpdmUgZnVuY3Rpb24gbm8gcHJvbG9ndWUgcGFja2V0IGlzIGVtaXR0
ZWQsIHNvIGl0IGlzIHVuY2xlYXIgdGhhdCB3ZQorICAgICAgICB0ZW1wb3Jhcmx5IGdvIGRlZXBl
ciBhbmQgY29tZSBiYWNrIG91dCBvbiB0aGUgc3RhY2ssIHNvIHRoZSBsb2cgYXBwZWFycworICAg
ICAgICB0byBoYXZlIGxvdHMgb2YgZG9Ob3RoaW5nVGFpbCBjYWxscyByZXVzaW5nIHRoZSBzYW1l
IGZyYW1lOgorCisgICAgICAgICAgU2hhZG93IExvZzoKKyAgICAgICAgICAgIC4uLgorICAgIAkg
ICAgLCBbMTIzXSB7Y2FsbGVlID0gMHg3MmEyMWFlZTAsIGZyYW1lID0gMHg3ZmZlZWY4OTcyNzAs
IGNhbGxlckZyYW1lID0gMHg3ZmZlZWY4OTcyZTAsIG5hbWUgPSBzdGFydH0KKyAgICAJICAgICwg
WzEyNF0ge2NhbGxlZSA9IDB4NzJhMjFhZjEwLCBmcmFtZSA9IDB4N2ZmZWVmODk3MWYwLCBjYWxs
ZXJGcmFtZSA9IDB4N2ZmZWVmODk3MjcwLCBuYW1lID0gZG9Ob3RoaW5nVGFpbH0KKyAgICAJICAg
ICwgWzEyNV0gdGFpbC1wYWNrZXQ6e2ZyYW1lID0gMHg3ZmZlZWY4OTcxZjB9CisgICAgCSAgICAs
IFsxMjZdIHtjYWxsZWUgPSAweDcyYTIxYWYxMCwgZnJhbWUgPSAweDdmZmVlZjg5NzFmMCwgY2Fs
bGVyRnJhbWUgPSAweDdmZmVlZjg5NzI3MCwgbmFtZSA9IGRvTm90aGluZ1RhaWx9CisgICAgCSAg
ICAsIFsxMjddIHRhaWwtcGFja2V0OntmcmFtZSA9IDB4N2ZmZWVmODk3MWYwfQorICAgICAgICAg
ICAgLi4uCisgICAgCSAgICAsIFsxNDBdIHtjYWxsZWUgPSAweDcyYTIxYWYxMCwgZnJhbWUgPSAw
eDdmZmVlZjg5NzFmMCwgY2FsbGVyRnJhbWUgPSAweDdmZmVlZjg5NzI3MCwgbmFtZSA9IGRvTm90
aGluZ1RhaWx9CisgICAgCSAgICAsIFsxNDFdIHRhaWwtcGFja2V0OntmcmFtZSA9IDB4N2ZmZWVm
ODk3MWYwfQorICAgIAkgICAgLCBbMTQyXSB7Y2FsbGVlID0gMHg3MmEyMWFmMTAsIGZyYW1lID0g
MHg3ZmZlZWY4OTcxZjAsIGNhbGxlckZyYW1lID0gMHg3ZmZlZWY4OTcyNzAsIG5hbWUgPSBkb05v
dGhpbmdUYWlsfQorICAgIAkgICAgLCBbMTQzXSB0YWlsLXBhY2tldDp7ZnJhbWUgPSAweDdmZmVl
Zjg5NzFmMH0KKyAgICAJICAgICwgWzE0NF0ge2NhbGxlZSA9IDB4NzJhMjFhZWIwLCBmcmFtZSA9
IDB4N2ZmZWVmODk3MWYwLCBjYWxsZXJGcmFtZSA9IDB4N2ZmZWVmODk3MjcwLCBuYW1lID0gZmly
c3R9CisgICAgICAgIAksIFsxNDVdIHRhaWwtcGFja2V0OntmcmFtZSA9IDB4N2ZmZWVmODk3MWYw
fQorICAgICAgICAJLCBbMTQ2XSB7Y2FsbGVlID0gMHg3MmEyMWFlODAsIGZyYW1lID0gMHg3ZmZl
ZWY4OTcxZjAsIGNhbGxlckZyYW1lID0gMHg3ZmZlZWY4OTcyNzAsIG5hbWUgPSBzZWNvbmR9Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIC4uLgorCisgICAgICAgIFRoaXMgbG9nIHdvdWxkIHNl
ZW0gdG8gYmUgaW5kaXN0aW5ndWlzaGFibGUgZnJvbSByZWFsIHRhaWwgcmVjdXJzaW9uLCBzdWNo
IGFzOgorCisgICAgICAgICAgICAidXNlIHN0cmljdCI7CisgICAgICAgICAgICBmdW5jdGlvbiB0
aGlyZCgpIHsgcmV0dXJuIDE7IH0KKyAgICAgICAgICAgIGZ1bmN0aW9uIHNlY29uZCgpIHsgcmV0
dXJuIHRoaXJkKCk7IH0KKyAgICAgICAgICAgIGZ1bmN0aW9uIGZpcnN0KCkgeyByZXR1cm4gc2Vj
b25kKCk7IH0KKyAgICAgICAgICAgIGZ1bmN0aW9uIGRvTm90aGluZ1RhaWwobikgeworICAgICAg
ICAgICAgICAgIHJldHVybiBuID8gZG9Ob3RoaW5nVGFpbChuLTEpIDogZmlyc3QoKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkgeworICAgICAgICAgICAgICAg
IHJldHVybiBkb05vdGhpbmdUYWlsKDEwMDApOworICAgICAgICAgICAgfQorCisgICAgICAgIExp
a2V3aXNlIHRoZXJlIGFyZSBtb3JlIGNhc2VzIHdoZXJlIHRoZSBzaGFkb3cgbG9nIGFwcGVhcnMg
dG8gYmUgYW1iaWd1b3VzIHdpdGggZGV0ZXJtaW5pbmcKKyAgICAgICAgdGhlIGFwcHJvcHJpYXRl
IHBhcmVudCBjYWxsIGZyYW1lIHdpdGggaW50ZXJtZWRpYXRlIGZ1bmN0aW9uIGNhbGxzLiBJbiBw
cmFjdGljZSB0aGlzIG1heQorICAgICAgICBub3QgYmUgdG9vIHByb2JsZW1hdGljLCBhcyB0aGlz
IGlzIGEgYmVzdCBlZmZvcnQgcmVjb25zdHJ1Y3Rpb24gb2YgdGFpbCBkZWxldGVkIGZyYW1lcy4K
KyAgICAgICAgSXQgc2VlbXMgbGlrZWx5IHdlIHdvdWxkIG9ubHkgc2hvdyBhZGRpdGlvbmFsIGZy
YW1lcyB0aGF0IGRpZCBpbiBmYWN0IGhhcHBlbiBzZXJpYWxseQorICAgICAgICBiZXR3ZWVuIEph
dmFTY3JpcHQgY2FsbCBmcmFtZXMsIGJ1dCBtYXkgbm90IGFjdHVhbGx5IGJlIHRoZSBwcm9wZXIg
cGFyZW50IGZyYW1lcworICAgICAgICBoZWlyYWNoeSBpbiB0aGUgc3RhY2suCisKKyAgICAgICAg
KiBpbnRlcnByZXRlci9TaGFkb3dDaGlja2VuLmNwcDoKKyAgICAgICAgKEpTQzo6U2hhZG93Q2hp
Y2tlbjo6UGFja2V0OjpkdW1wIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U2hhZG93Q2hpY2tlbjo6
RnJhbWU6OmR1bXAgY29uc3QpOgorICAgICAgICAoSlNDOjpTaGFkb3dDaGlja2VuOjpkdW1wIGNv
bnN0KToKKyAgICAgICAgSW1wcm92ZWQgZGVidWdnaW5nIG91dHB1dC4gRXNwZWNpYWxseSBmb3Ig
ZnVuY3Rpb25zLgorCisgICAgICAgIChKU0M6OlNoYWRvd0NoaWNrZW46OlNoYWRvd0NoaWNrZW4p
OgorICAgICAgICBNYWtlIHNwYWNlIGluIHRoZSBsb2cgZm9yIDEgYWRkaXRpb25hbCBwYWNrZXQg
dG8gcHJvY2VzcyB3aGVuIHdlIHNsb3cgbG9nLgorCisgICAgICAgIChKU0M6OlNoYWRvd0NoaWNr
ZW46OmxvZyk6CisgICAgICAgIEluY2x1ZGUgdGhpcyBwYWNrZXQgaW4gb3VyIHVwZGF0ZS4KKwor
ICAgICAgICAoSlNDOjpTaGFkb3dDaGlja2VuOjp1cGRhdGUpOgorICAgICAgICBBZGRyZXNzIGFu
IGVkZ2UgY2FzZSB3aGVyZSB3ZSBjYW4gZWxpbWluYXRlIHRhaWwtZGVsZXRlZCBmcmFtZXMgdGhh
dCBkb24ndCBtYWtlIHNlbnNlLgorCiAyMDE5LTA4LTI4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNv
cmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTG9jYWwgT3ZlcnJpZGVz
IC0gUHJvdmlkZSBzdWJzdGl0dXRpb24gY29udGVudCBmb3IgcmVzb3VyY2UgbG9hZHMgKFVSTCBi
YXNlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TaGFk
b3dDaGlja2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TaGFkb3dD
aGlja2VuLmNwcAppbmRleCA2YzUwYTMyMzM0NS4uODBhOWE4NjYwMzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TaGFkb3dDaGlja2VuLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tlbi5jcHAKQEAgLTQ1
LDkgKzQ1LDE2IEBAIHZvaWQgU2hhZG93Q2hpY2tlbjo6UGFja2V0OjpkdW1wKFByaW50U3RyZWFt
JiBvdXQpIGNvbnN0CiAgICAgfQogICAgIAogICAgIGlmIChpc1Byb2xvZ3VlKCkpIHsKKyAgICAg
ICAgU3RyaW5nIG5hbWUgPSAiPyJfczsKKyAgICAgICAgaWYgKGF1dG8qIGZ1bmN0aW9uID0ganNE
eW5hbWljQ2FzdDxKU0Z1bmN0aW9uKj4oY2FsbGVlLT52bSgpLCBjYWxsZWUpKSB7CisgICAgICAg
ICAgICBuYW1lID0gZnVuY3Rpb24tPm5hbWUoY2FsbGVlLT52bSgpKTsKKyAgICAgICAgICAgIGlm
IChuYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBuYW1lID0gIj8iX3M7CisgICAgICAg
IH0KKwogICAgICAgICBvdXQucHJpbnQoCiAgICAgICAgICAgICAie2NhbGxlZSA9ICIsIFJhd1Bv
aW50ZXIoY2FsbGVlKSwgIiwgZnJhbWUgPSAiLCBSYXdQb2ludGVyKGZyYW1lKSwgIiwgY2FsbGVy
RnJhbWUgPSAiLAotICAgICAgICAgICAgUmF3UG9pbnRlcihjYWxsZXJGcmFtZSksICJ9Iik7Cisg
ICAgICAgICAgICBSYXdQb2ludGVyKGNhbGxlckZyYW1lKSwgIiwgbmFtZSA9ICIsIG5hbWUsICJ9
Iik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkBAIC02MiwxNSArNjksMjcgQEAgdm9p
ZCBTaGFkb3dDaGlja2VuOjpQYWNrZXQ6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIAog
dm9pZCBTaGFkb3dDaGlja2VuOjpGcmFtZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAog
eworICAgIFN0cmluZyBuYW1lID0gIj8iX3M7CisgICAgaWYgKGF1dG8qIGZ1bmN0aW9uID0ganNE
eW5hbWljQ2FzdDxKU0Z1bmN0aW9uKj4oY2FsbGVlLT52bSgpLCBjYWxsZWUpKSB7CisgICAgICAg
IG5hbWUgPSBmdW5jdGlvbi0+bmFtZShjYWxsZWUtPnZtKCkpOworICAgICAgICBpZiAobmFtZS5p
c0VtcHR5KCkpCisgICAgICAgICAgICBuYW1lID0gIj8iX3M7CisgICAgfQorCiAgICAgb3V0LnBy
aW50KAotICAgICAgICAie2NhbGxlZSA9ICIsIFJhd1BvaW50ZXIoY2FsbGVlKSwgIiwgZnJhbWUg
PSAiLCBSYXdQb2ludGVyKGZyYW1lKSwgIiwgaXNUYWlsRGVsZXRlZCA9ICIsCi0gICAgICAgIGlz
VGFpbERlbGV0ZWQsICJ9Iik7CisgICAgICAgICJ7Y2FsbGVlID0gIiwgKmNhbGxlZSwgIiwgZnJh
bWUgPSAiLCBSYXdQb2ludGVyKGZyYW1lKSwgIiwgaXNUYWlsRGVsZXRlZCA9ICIsCisgICAgICAg
IGlzVGFpbERlbGV0ZWQsICIsIG5hbWUgPSAiLCBuYW1lLCAifSIpOwogfQogCiBTaGFkb3dDaGlj
a2VuOjpTaGFkb3dDaGlja2VuKCkKICAgICA6IG1fbG9nU2l6ZShPcHRpb25zOjpzaGFkb3dDaGlj
a2VuTG9nU2l6ZSgpKQogewotICAgIG1fbG9nID0gc3RhdGljX2Nhc3Q8UGFja2V0Kj4oZmFzdFpl
cm9lZE1hbGxvYyhzaXplb2YoUGFja2V0KSAqIG1fbG9nU2l6ZSkpOworICAgIC8vIEFsbG93IG9u
ZSBhZGRpdGlvbmFsIHBhY2tldCBiZXlvbmQgbV9sb2dFbmQuIFRoaXMgaXMgdXNlZnVsIGZvciB0
aGUgbW9tZW50IHdlCisgICAgLy8gbG9nIGEgcGFja2V0IHdoZW4gdGhlIGxvZyBpcyBmdWxsIGFu
ZCBmb3JjZSBhbiB1cGRhdGUuIEF0IHRoYXQgbW9tZW50IHRoZSBwYWNrZXQKKyAgICAvLyB0aGF0
IGlzIGJlaW5nIGxvZ2dlZCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIHVwZGF0ZSBiZWNhdXNl
IGl0IG1heSBiZQorICAgIC8vIGEgY3JpdGljYWwgcHJvbG9ndWUgbmVlZGVkIHRvIHJhdGlvbmFs
aXplIHRoZSBjdXJyZW50IG1hY2hpbmUgc3RhY2sgd2l0aCB0aGUKKyAgICAvLyBzaGFkb3cgc3Rh
Y2suCisgICAgbV9sb2cgPSBzdGF0aWNfY2FzdDxQYWNrZXQqPihmYXN0WmVyb2VkTWFsbG9jKHNp
emVvZihQYWNrZXQpICogbV9sb2dTaXplICsgMSkpOwogICAgIG1fbG9nQ3Vyc29yID0gbV9sb2c7
CiAgICAgbV9sb2dFbmQgPSBtX2xvZyArIG1fbG9nU2l6ZTsKIH0KQEAgLTgyLDggKzEwMSw5IEBA
IFNoYWRvd0NoaWNrZW46On5TaGFkb3dDaGlja2VuKCkKIAogdm9pZCBTaGFkb3dDaGlja2VuOjps
b2coVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFBhY2tldCYgcGFja2V0KQogewotICAg
IHVwZGF0ZSh2bSwgZXhlYyk7CisgICAgLy8gVGhpcyB3cml0ZSBpcyBhbGxvd2VkIGJlY2F1c2Ug
d2UgY29uc3RydWN0IHRoZSBsb2cgd2l0aCBzcGFjZSBmb3IgMSBhZGRpdGlvbmFsIHBhY2tldC4K
ICAgICAqbV9sb2dDdXJzb3IrKyA9IHBhY2tldDsKKyAgICB1cGRhdGUodm0sIGV4ZWMpOwogfQog
CiB2b2lkIFNoYWRvd0NoaWNrZW46OnVwZGF0ZShWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYykKQEAg
LTE0Miw3ICsxNjIsNiBAQCB2b2lkIFNoYWRvd0NoaWNrZW46OnVwZGF0ZShWTSYgdm0sIEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgfQogICAgIH0KIAotICAgIAogICAgIGlmIChTaGFkb3dDaGlj
a2VuSW50ZXJuYWw6OnZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2coIiAgICBSZXZpc2VkIHN0YWNr
OiAiLCBsaXN0RHVtcChtX3N0YWNrKSwgIlxuIik7CiAgICAgCkBAIC0yMDMsOSArMjIyLDExIEBA
IHZvaWQgU2hhZG93Q2hpY2tlbjo6dXBkYXRlKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjKQogICAg
IC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgdG9wIHN0YWNrIGZyYW1lIGlzIGFjdHVhbGx5IGxv
d2VyIHRoYW4gaGlnaGVzdFBvaW50U2luY2VMYXN0VGltZS4KICAgICAvLyBBY2NvdW50IGZvciB0
aGF0IGhlcmUuCiAgICAgaGlnaGVzdFBvaW50U2luY2VMYXN0VGltZSA9IG51bGxwdHI7CisgICAg
dW5zaWduZWQgaGlnaGVzdFBvaW50U2luY2VMYXN0VGltZUluZGV4ID0gMDsKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSBtX3N0YWNrLnNpemUoKTsgaS0tOykgewogICAgICAgICBpZiAoIW1fc3RhY2tb
aV0uaXNUYWlsRGVsZXRlZCkgewogICAgICAgICAgICAgaGlnaGVzdFBvaW50U2luY2VMYXN0VGlt
ZSA9IG1fc3RhY2tbaV0uZnJhbWU7CisgICAgICAgICAgICBoaWdoZXN0UG9pbnRTaW5jZUxhc3RU
aW1lSW5kZXggPSBpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CkBAIC0y
NzMsNiArMjk0LDcgQEAgdm9pZCBTaGFkb3dDaGlja2VuOjp1cGRhdGUoVk0mIHZtLCBFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9OwogICAgIAorICAgIGJvb2wg
cmVhY2hlZExhc3RIaWdoZXN0UG9pbnQgPSBmYWxzZTsKICAgICBWZWN0b3I8RnJhbWU+IHRvUHVz
aDsKICAgICBTdGFja1Zpc2l0b3I6OnZpc2l0KAogICAgICAgICBleGVjLCAmdm0sIFsmXSAoU3Rh
Y2tWaXNpdG9yJiB2aXNpdG9yKSAtPiBTdGFja1Zpc2l0b3I6OlN0YXR1cyB7CkBAIC0yODgsMTEg
KzMxMCwxNyBAQCB2b2lkIFNoYWRvd0NoaWNrZW46OnVwZGF0ZShWTSYgdm0sIEV4ZWNTdGF0ZSog
ZXhlYykKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSB2aXNpdG9yLT5jYWxsRnJhbWUoKTsKLSAgICAgICAgICAgIGlmIChTaGFkb3dDaGlja2VuSW50
ZXJuYWw6OnZlcmJvc2UpCi0gICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEV4YW1pbmluZyAi
LCBSYXdQb2ludGVyKGNhbGxGcmFtZSksICJcbiIpOworICAgICAgICAgICAgaWYgKFNoYWRvd0No
aWNrZW5JbnRlcm5hbDo6dmVyYm9zZSkgeworICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBF
eGFtaW5pbmcgY2FsbEZyYW1lOiIsIFJhd1BvaW50ZXIoY2FsbEZyYW1lKSwgIiwgY2FsbGVlOiIs
IFJhd1BvaW50ZXIoY2FsbEZyYW1lLT5qc0NhbGxlZSgpKSwgIiwgY2FsbGVyRnJhbWU6IiwgUmF3
UG9pbnRlcihjYWxsRnJhbWUtPmNhbGxlckZyYW1lKCkpLCAiXG4iKTsKKyAgICAgICAgICAgICAg
ICBKU09iamVjdCogY2FsbGVlID0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpOworICAgICAgICAgICAg
ICAgIGlmIChhdXRvKiBmdW5jdGlvbiA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KGNhbGxl
ZS0+dm0oKSwgY2FsbGVlKSkKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgICAgRnVu
Y3Rpb24gPSAiLCBmdW5jdGlvbi0+bmFtZShjYWxsZWUtPnZtKCkpLCAiXG4iKTsKKyAgICAgICAg
ICAgIH0KKwogICAgICAgICAgICAgaWYgKGNhbGxGcmFtZSA9PSBoaWdoZXN0UG9pbnRTaW5jZUxh
c3RUaW1lKSB7CiAgICAgICAgICAgICAgICAgaWYgKFNoYWRvd0NoaWNrZW5JbnRlcm5hbDo6dmVy
Ym9zZSkKLSAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEJhaWxpbmcgYXQgIiwgUmF3
UG9pbnRlcihjYWxsRnJhbWUpLCAiIGJlY2F1c2UgaXQncyB0aGUgaGlnaGVzdCBwb2ludCBzaW5j
ZSBsYXN0IHRpbWUuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEJhaWxp
bmcgYXQgIiwgUmF3UG9pbnRlcihjYWxsRnJhbWUpLCAiIGJlY2F1c2UgaXQncyB0aGUgaGlnaGVz
dCBwb2ludCBzaW5jZSBsYXN0IHRpbWVcbiIpOworICAgICAgICAgICAgICAgIHJlYWNoZWRMYXN0
SGlnaGVzdFBvaW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICByZXR1cm4gU3RhY2tWaXNpdG9y
OjpEb25lOwogICAgICAgICAgICAgfQogCkBAIC0zMTgsNyArMzQ2LDcgQEAgdm9pZCBTaGFkb3dD
aGlja2VuOjp1cGRhdGUoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAg
Ly8gYW55dGhpbmcuCiAgICAgICAgICAgICAgICAgJiYgbV9sb2dbaW5kZXhJbkxvZ10uZnJhbWUg
PT0gdG9QdXNoLmxhc3QoKS5mcmFtZSkgewogICAgICAgICAgICAgICAgIGlmIChTaGFkb3dDaGlj
a2VuSW50ZXJuYWw6OnZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBH
b2luZyB0byBsb29wIHRocm91Z2ggdG8gZmluZCB0YWlsIGRlbGV0ZWQgZnJhbWVzIHdpdGggaW5k
ZXhJbkxvZyA9ICIsIGluZGV4SW5Mb2csICIgYW5kIHB1c2gtc3RhY2sgdG9wID0gIiwgdG9QdXNo
Lmxhc3QoKSwgIlxuIik7CisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBHb2luZyB0
byBsb29wIHRocm91Z2ggdG8gZmluZCB0YWlsIGRlbGV0ZWQgZnJhbWVzIHVzaW5nICIsIFJhd1Bv
aW50ZXIoY2FsbEZyYW1lKSwgIiB3aXRoIGluZGV4SW5Mb2cgPSAiLCBpbmRleEluTG9nLCAiIGFu
ZCBwdXNoLXN0YWNrIHRvcCA9ICIsIHRvUHVzaC5sYXN0KCksICJcbiIpOwogICAgICAgICAgICAg
ICAgIGZvciAoOzspIHsKICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKG1fbG9nW2luZGV4SW5M
b2ddLmZyYW1lID09IHRvUHVzaC5sYXN0KCkuZnJhbWUpOwogICAgICAgICAgICAgICAgICAgICAK
QEAgLTM0MCw2ICszNjgsMTAgQEAgdm9pZCBTaGFkb3dDaGlja2VuOjp1cGRhdGUoVk0mIHZtLCBF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBpbmRleEluTG9nLS07IC8vIFNraXAg
b3ZlciB0aGUgdGFpbCBwYWNrZXQuCisKKyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEFm
dGVyIGEgZmV3IGl0ZXJhdGlvbnMgdGhlIHRhaWwgcGFja2V0IHJlZmVyZW5jZWQgZnJhbWUgbWF5
IG5vdCBiZSB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gc2FtZSBhcyB0aGUgb3JpZ2luYWwg
Y2FsbEZyYW1lIGZvciB0aGUgcmVhbCBzdGFjayBmcmFtZSB3ZSBzdGFydGVkIHdpdGguCisgICAg
ICAgICAgICAgICAgICAgIC8vIEl0IGlzIHVuY2xlYXIgd2hlbiB3ZSBzaG91bGQgYnJlYWsuCiAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBpZiAoIWFkdmFuY2VJbmRl
eEluTG9nVG8odGFpbFBhY2tldC5mcmFtZSwgbnVsbHB0ciwgbnVsbHB0cikpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChTaGFkb3dDaGlja2VuSW50ZXJuYWw6OnZlcmJvc2UpCkBAIC0z
NjIsNiArMzk0LDI1IEBAIHZvaWQgU2hhZG93Q2hpY2tlbjo6dXBkYXRlKFZNJiB2bSwgRXhlY1N0
YXRlKiBleGVjKQogICAgICAgICAgICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6Q29udGludWU7CiAg
ICAgICAgIH0pOwogCisgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHRoZXJlIHdlcmUgdGFpbCBk
ZWxldGVkIGZyYW1lcyBhZnRlciB0aGUgcHJldmlvdXMgaGlnaGVzdCByZWNvcmRlZCBjYWxsIGZy
YW1lLgorICAgIC8vIFRob3NlIHRhaWwgZGVsZXRlZCBmcmFtZXMgbm8gbG9uZ2VyIG1ha2Ugc2Vu
c2UgaWYgd2UgcmVhY2hlZCB0aGUgaGlnaGVzdCByZWNvcmQsIGJlY2F1c2UgYW55IHJvd3MKKyAg
ICAvLyB3ZSBoYXZlIHRvIHB1c2ggYXJlIGV4YWN0bHkgdGhlIGZyYW1lcyB0aGF0IHNob3VsZCBj
b21lIGFmdGVyIHRoZSBoaWdoZXN0IHJlY29yZGVkIGNhbGwgZnJhbWUuCisgICAgLy8gV2UgY2Fu
IGp1c3QgZWxpbWluYXRlIHRob3NlIHRhaWwgZGVsZXRlZCBmcmFtZXMuCisgICAgaWYgKHJlYWNo
ZWRMYXN0SGlnaGVzdFBvaW50ICYmIHRvUHVzaC5zaXplKCkpIHsKKyAgICAgICAgaWYgKFNoYWRv
d0NoaWNrZW5JbnRlcm5hbDo6dmVyYm9zZSkgeworICAgICAgICAgICAgZGF0YUxvZygiICAgIERl
bGV0aW5nICIsIChtX3N0YWNrLnNpemUoKSAtIGhpZ2hlc3RQb2ludFNpbmNlTGFzdFRpbWVJbmRl
eCAtIDEpLCAiIHRhaWwgZGVsZXRlZCBmcmFtZXMgYWZ0ZXIgdGhlIGxhc3QgaGlnaGVzdCBwb2lu
dCB0aGF0IG5vIGxvbmdlciBtYWtlIHNlbnNlXG4iKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUKGhpZ2hlc3RQb2ludFNpbmNlTGFzdFRpbWUpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQoaGlnaGVzdFBvaW50U2luY2VMYXN0VGltZUluZGV4ID49IDApOworICAgICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gaGlnaGVzdFBvaW50U2luY2VMYXN0VGltZUluZGV4ICsgMTsgaSA8IG1f
c3RhY2suc2l6ZSgpOyArK2kpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9zdGFj
a1tpXS5pc1RhaWxEZWxldGVkKTsKKyAgICAgICAgfQorCisgICAgICAgIG1fc3RhY2suc2hyaW5r
KGhpZ2hlc3RQb2ludFNpbmNlTGFzdFRpbWVJbmRleCArIDEpOworCisgICAgICAgIGlmIChTaGFk
b3dDaGlja2VuSW50ZXJuYWw6OnZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgQWZ0
ZXIgZGVsZXRpbmc6ICIsIGxpc3REdW1wKG1fc3RhY2spLCAiXG4iKTsKKyAgICB9CisKICAgICBp
ZiAoU2hhZG93Q2hpY2tlbkludGVybmFsOjp2ZXJib3NlKQogICAgICAgICBkYXRhTG9nKCIgICAg
UHVzaGluZzogIiwgbGlzdER1bXAodG9QdXNoKSwgIlxuIik7CiAgICAgCkBAIC0zNzksNyArNDMw
LDcgQEAgdm9pZCBTaGFkb3dDaGlja2VuOjp1cGRhdGUoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgICAgIG1fbG9nQ3Vyc29yID0gbV9sb2c7CiAKICAgICBpZiAoU2hhZG93Q2hpY2tlbklu
dGVybmFsOjp2ZXJib3NlKQotICAgICAgICBkYXRhTG9nKCIgICAgQWZ0ZXIgcHVzaGluZzogIiwg
KnRoaXMsICJcbiIpOworICAgICAgICBkYXRhTG9nKCIgICAgQWZ0ZXIgcHVzaGluZzogIiwgbGlz
dER1bXAobV9zdGFjayksICJcbiIpOwogCiAgICAgLy8gUmVtb3ZlIHRhaWwgZnJhbWVzIHVudGls
IHRoZSBudW1iZXIgb2YgdGFpbCBkZWxldGVkIGZyYW1lcyBpcyBzbWFsbCBlbm91Z2guCiAgICAg
Y29uc3QgdW5zaWduZWQgbWF4VGFpbERlbGV0ZWRGcmFtZXMgPSBPcHRpb25zOjpzaGFkb3dDaGlj
a2VuTWF4VGFpbERlbGV0ZWRGcmFtZXNTaXplKCk7CkBAIC00NDcsNyArNDk4LDcgQEAgdm9pZCBT
aGFkb3dDaGlja2VuOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgdW5zaWduZWQg
bGltaXQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9sb2dDdXJzb3IgLSBtX2xvZyk7CiAgICAg
b3V0LnByaW50KCJcbiIpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsaW1pdDsgKytp
KQotICAgICAgICBvdXQucHJpbnQoIlx0IiwgY29tbWEsIG1fbG9nW2ldLCAiXG4iKTsKKyAgICAg
ICAgb3V0LnByaW50KCJcdCIsIGNvbW1hLCAiWyIsIGksICJdICIsIG1fbG9nW2ldLCAiXG4iKTsK
ICAgICBvdXQucHJpbnQoIl19Iik7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377794</attachid>
            <date>2019-08-31 01:37:28 -0700</date>
            <delta_ts>2019-09-03 10:59:08 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>shadow-chicken-2.patch</filename>
            <type>text/plain</type>
            <size>68335</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNzI5ZDJkMGMwYi4uNzYxMjdlNGQyODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAor
MjAxOS0wOC0zMSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFRhaWwgRGVsZXRlZCBGcmFtZXMgc2hvd24gaW4gV2ViIEluc3BlY3RvciBhcmUgc29tZXRp
bWVzIGluY29ycmVjdCAoU2hhZG93IENoaWNrZW4pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEzNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQt
ZnJhbWVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvdGFpbC1kZWxldGVkLWZyYW1lcy1mcm9tLXZtLWVudHJ5LWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy1mcm9t
LXZtLWVudHJ5Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Rh
aWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQt
ZnJhbWVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgIFJlbW92ZSBsZWdhY3kgdGVzdHMgdGhhdCBh
cmUgZGlmZmljdWx0IHRvIHJlYWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvdGFp
bC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvc3RhY2stdHJhY2UtdXRpbGl0aWVzLmpzOiBBZGRl
ZC4KKyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIud2luZG93LmdldEFzeW5j
U3RhY2tUcmFjZSk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLmFzeW5j
LmxvZ1RoaXNPYmplY3QpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5h
c3luYy5sb2dTY29wZSk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLmFz
eW5jLmxvZ0NhbGxGcmFtZSk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVy
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNv
dXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtZnJhbWVzLmpzOiBBZGRlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJj
ZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtbmF0aXZlLXRhaWwtZGVsZXRlZC1j
YWxscy5qczogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRl
ZC1mcmFtZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLXRhaWwt
ZGVsZXRlZC1mcmFtZXMuanM6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci90
YWlsLWRlbGV0ZWQtZnJhbWVzL3Jlc291cmNlcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXNjb3Blcy5q
czogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFt
ZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS5qczogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvcmVzb3VyY2Vz
L3RhaWwtZGVsZXRlZC1mcmFtZXMtdm0tZW50cnkuanM6IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50
ZXJtZWRpYXRlLWZyYW1lcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJt
ZWRpYXRlLWZyYW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
dGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWludGVybWVkaWF0ZS10YWls
LWRlbGV0ZWQtZnJhbWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1l
ZGlhdGUtdGFpbC1kZWxldGVkLWZyYW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXNjb3Bl
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci90YWls
LWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtc2NvcGVzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVs
ZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMt
dGhpcy12YWx1ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvdGFp
bC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXZtLWVudHJ5LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFt
ZXMvdGFpbC1kZWxldGVkLWZyYW1lcy12bS1lbnRyeS5odG1sOiBBZGRlZC4KKyAgICAgICAgSW5j
bHVkZSBtb2Rlcm4gdGVzdHMgdGhhdCBhcmUgZWFzaWVyIHRvIHJlYWQuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVz
LWludGVybWVkaWF0ZS1uYXRpdmUtdGFpbC1kZWxldGVkLWNhbGxzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFp
bC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtbmF0aXZlLXRhaWwtZGVsZXRlZC1jYWxscy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgSW5jbHVkZSBhIHRlc3QgdGhhdCBpcyBrbm93biB0byBwcm9k
dWNlIGJhZCBvdXRwdXQsIHNpbmNlIHdlIGhhdmUgcmVwcm9kdWN0aXZlIHN0ZXBzLgorCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIFVwZGF0ZWQgcGF0
aGVzLgorCiAyMDE5LTA4LTI4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTG9jYWwgT3ZlcnJpZGVzIC0gUHJvdmlkZSBzdWJz
dGl0dXRpb24gY29udGVudCBmb3IgcmVzb3VyY2UgbG9hZHMgKFVSTCBiYXNlZCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9ldmFsdWF0ZU9uQ2FsbEZyYW1lLWV4
Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1YXRlT25D
YWxsRnJhbWUtZXhjZXB0aW9uLmh0bWwKaW5kZXggNzFkNmVkZTEzYmEuLjI4OThhNjExZjFiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXZhbHVhdGVPbkNhbGxG
cmFtZS1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
ZXZhbHVhdGVPbkNhbGxGcmFtZS1leGNlcHRpb24uaHRtbApAQCAtMTMsNyArMTMsNiBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICBjb25zdCBpbmNsdWRlQ29tbWFuZExpbmVBUEkgPSB0cnVlOwogICAg
IGNvbnN0IHJldHVybkJ5VmFsdWUgPSB0cnVlOwogCi0gICAgSW5zcGVjdG9yVGVzdC5kZWJ1Zygp
OwogICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiRGVidWdn
ZXIuZXZhbHVhdGVPbkNhbGxGcmFtZS5FeGNlcHRpb24iKTsKIAogICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJj
ZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1mcm9tLXZtLWVudHJ5LmpzIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWZyb20tdm0tZW50
cnkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5ZmNlOTAwYThiLi4wMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL3RhaWwt
ZGVsZXRlZC1mcmFtZXMtZnJvbS12bS1lbnRyeS5qcworKysgL2Rldi9udWxsCkBAIC0xLDkgKzAs
MCBAQAotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24gdGltZW91dChmb28gPSAyNSkgewotICAgIHJl
dHVybiBiYXIoKTsKLX0KLWZ1bmN0aW9uIGJhcihpID0gOSkgewotICAgIGlmIChpID4gMCkKLSAg
ICAgICAgcmV0dXJuIGJhcihpIC0gMSk7Ci0gICAgcmV0dXJuIDI1OwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy90YWlsLWRlbGV0ZWQtZnJh
bWVzLXRoaXMtdmFsdWUuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3Vy
Y2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzQxYzVjYWZmZGUuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVl
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotInVzZSBzdHJpY3QiOwotZnVuY3Rp
b24gYSgpIHsKLSAgICBsZXQgeCA9IDIwOwotICAgIHg7Ci0gICAgcmV0dXJuIHg7Ci19Ci1mdW5j
dGlvbiBiKCkgewotICAgIGxldCB5ID0gNDA7Ci0gICAgcmV0dXJuIGEuY2FsbCh7YVRoaXM6IDJ9
KTsKLX0KLWZ1bmN0aW9uIGMoKSB7Ci0gICAgbGV0IHogPSA2MDsKLSAgICByZXR1cm4gYi5jYWxs
KHtiVGhpczogMX0pOyAKLX0KLWZ1bmN0aW9uIHN0YXJ0QUJDKCkgewotICAgIGMuY2FsbCh7Y1Ro
aXM6IDB9KTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9y
ZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYWYwMzc0YzI0ODMuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy5qcworKysg
L2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIGEoKSB7
Ci0gICAgbGV0IHggPSAyMDsKLSAgICB4OwotICAgIHJldHVybiB4OwotfQotZnVuY3Rpb24gYigp
IHsKLSAgICBsZXQgeSA9IDQwOwotICAgIHJldHVybiBhKCk7Ci19Ci1mdW5jdGlvbiBjKCkgewot
ICAgIGxldCB6ID0gNjA7Ci0gICAgcmV0dXJuIGIoKTsgCi19Ci1mdW5jdGlvbiBzdGFydEFCQygp
IHsKLSAgICBjKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvcmVzb3VyY2VzL3RhaWwtcmVjdXJzaW9uLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3Jlc291cmNlcy90YWlsLXJlY3Vyc2lvbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOTFjMzUzZjIxNjQuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvdGFpbC1yZWN1cnNpb24uanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxNCArMCwwIEBACi0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiByZWN1cnNlKGkpIHsKLSAg
ICBpZiAoaSA8PSAwKSB7Ci0gICAgICAgIGkrKzsKLSAgICAgICAgaSsrOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgcmV0dXJuIHJlY3Vyc2UoaSAtIDEpOwotfQotCi1mdW5jdGlvbiBz
dGFydFJlY3Vyc2UoKSB7Ci0gICAgcmVjdXJzZSgxMDAwKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQ1MTEzMTZkMTIuLjAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0
ZWQtZnJhbWVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRl
c3RpbmcgdGhhdCB3ZSBrZWVwIGFyb3VuZCB0YWlsIGRlbGV0ZWQgZnJhbWVzIGluIHRoZSBpbnNw
ZWN0b3IuCi0KLVN0YXJ0aW5nIFRlc3QKLQotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUhpdCBicmVha3BvaW50IGF0IGxpbmU6IDMsIGNvbHVtbjogNAotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1FeHBlY3RlZCBmcmFtZTogeyJmdW5jdGlvbk5h
bWUiOiJhIiwic2NvcGUiOlsieCIsMjBdLCJpc1RhaWxEZWxldGVkIjpmYWxzZX0KLUV4cGVjdGVk
IGZyYW1lOiB7ImZ1bmN0aW9uTmFtZSI6ImIiLCJzY29wZSI6WyJ5Iiw0MF0sImlzVGFpbERlbGV0
ZWQiOnRydWV9Ci1FeHBlY3RlZCBmcmFtZTogeyJmdW5jdGlvbk5hbWUiOiJjIiwic2NvcGUiOlsi
eiIsNjBdLCJpc1RhaWxEZWxldGVkIjp0cnVlfQotTG9va2luZyBhdCBmcmFtZSBudW1iZXI6IDAK
LSAgICB2YXJpYWJsZSAneCc6IHsiX3R5cGUiOiJudW1iZXIiLCJfZGVzY3JpcHRpb24iOiIyMCIs
Il9oYXNDaGlsZHJlbiI6ZmFsc2UsIl92YWx1ZSI6MjB9Ci1Mb29raW5nIGF0IGZyYW1lIG51bWJl
cjogMQotICAgIHZhcmlhYmxlICd5JzogeyJfdHlwZSI6Im51bWJlciIsIl9kZXNjcmlwdGlvbiI6
IjQwIiwiX2hhc0NoaWxkcmVuIjpmYWxzZSwiX3ZhbHVlIjo0MH0KLUxvb2tpbmcgYXQgZnJhbWUg
bnVtYmVyOiAyCi0gICAgdmFyaWFibGUgJ3onOiB7Il90eXBlIjoibnVtYmVyIiwiX2Rlc2NyaXB0
aW9uIjoiNjAiLCJfaGFzQ2hpbGRyZW4iOmZhbHNlLCJfdmFsdWUiOjYwfQotVGVzdHMgZG9uZQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVk
LWZyYW1lcy1mcm9tLXZtLWVudHJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzLWZyb20tdm0tZW50cnktZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjkwOTVlOTYyYS4uMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMt
ZnJvbS12bS1lbnRyeS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBA
Ci1UZXN0aW5nIHRoYXQgd2Uga2VlcCBhcm91bmQgdGFpbCBkZWxldGVkIGZyYW1lcyB0aGF0IGFy
ZSBlbnRyeSBmcmFtZXMuCi0KLVN0YXJ0aW5nIFRlc3QKLQotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUhpdCBicmVha3BvaW50IGF0IGxpbmU6IDcsIGNvbHVtbjogNAot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1FeHBlY3RlZCBmcmFtZTogeyJm
dW5jdGlvbk5hbWUiOiJiYXIiLCJzY29wZSI6WyJpIiwwXSwiaXNUYWlsRGVsZXRlZCI6ZmFsc2V9
Ci1QQVNTOiBGdW5jdGlvbiBuYW1lOiBiYXIgaXMgY29ycmVjdC4KLVBBU1M6IFRhaWwgZGVsZXRl
ZCBleHBlY3RhdGlvbiBjb3JyZWN0OiBmYWxzZQotRXhwZWN0ZWQgZnJhbWU6IHsiZnVuY3Rpb25O
YW1lIjoiYmFyIiwic2NvcGUiOlsiaSIsMV0sImlzVGFpbERlbGV0ZWQiOnRydWV9Ci1QQVNTOiBG
dW5jdGlvbiBuYW1lOiBiYXIgaXMgY29ycmVjdC4KLVBBU1M6IFRhaWwgZGVsZXRlZCBleHBlY3Rh
dGlvbiBjb3JyZWN0OiB0cnVlCi1FeHBlY3RlZCBmcmFtZTogeyJmdW5jdGlvbk5hbWUiOiJiYXIi
LCJzY29wZSI6WyJpIiwyXSwiaXNUYWlsRGVsZXRlZCI6dHJ1ZX0KLVBBU1M6IEZ1bmN0aW9uIG5h
bWU6IGJhciBpcyBjb3JyZWN0LgotUEFTUzogVGFpbCBkZWxldGVkIGV4cGVjdGF0aW9uIGNvcnJl
Y3Q6IHRydWUKLUV4cGVjdGVkIGZyYW1lOiB7ImZ1bmN0aW9uTmFtZSI6ImJhciIsInNjb3BlIjpb
ImkiLDNdLCJpc1RhaWxEZWxldGVkIjp0cnVlfQotUEFTUzogRnVuY3Rpb24gbmFtZTogYmFyIGlz
IGNvcnJlY3QuCi1QQVNTOiBUYWlsIGRlbGV0ZWQgZXhwZWN0YXRpb24gY29ycmVjdDogdHJ1ZQot
RXhwZWN0ZWQgZnJhbWU6IHsiZnVuY3Rpb25OYW1lIjoiYmFyIiwic2NvcGUiOlsiaSIsNF0sImlz
VGFpbERlbGV0ZWQiOnRydWV9Ci1QQVNTOiBGdW5jdGlvbiBuYW1lOiBiYXIgaXMgY29ycmVjdC4K
LVBBU1M6IFRhaWwgZGVsZXRlZCBleHBlY3RhdGlvbiBjb3JyZWN0OiB0cnVlCi1FeHBlY3RlZCBm
cmFtZTogeyJmdW5jdGlvbk5hbWUiOiJiYXIiLCJzY29wZSI6WyJpIiw1XSwiaXNUYWlsRGVsZXRl
ZCI6dHJ1ZX0KLVBBU1M6IEZ1bmN0aW9uIG5hbWU6IGJhciBpcyBjb3JyZWN0LgotUEFTUzogVGFp
bCBkZWxldGVkIGV4cGVjdGF0aW9uIGNvcnJlY3Q6IHRydWUKLUV4cGVjdGVkIGZyYW1lOiB7ImZ1
bmN0aW9uTmFtZSI6ImJhciIsInNjb3BlIjpbImkiLDZdLCJpc1RhaWxEZWxldGVkIjp0cnVlfQot
UEFTUzogRnVuY3Rpb24gbmFtZTogYmFyIGlzIGNvcnJlY3QuCi1QQVNTOiBUYWlsIGRlbGV0ZWQg
ZXhwZWN0YXRpb24gY29ycmVjdDogdHJ1ZQotRXhwZWN0ZWQgZnJhbWU6IHsiZnVuY3Rpb25OYW1l
IjoiYmFyIiwic2NvcGUiOlsiaSIsN10sImlzVGFpbERlbGV0ZWQiOnRydWV9Ci1QQVNTOiBGdW5j
dGlvbiBuYW1lOiBiYXIgaXMgY29ycmVjdC4KLVBBU1M6IFRhaWwgZGVsZXRlZCBleHBlY3RhdGlv
biBjb3JyZWN0OiB0cnVlCi1FeHBlY3RlZCBmcmFtZTogeyJmdW5jdGlvbk5hbWUiOiJiYXIiLCJz
Y29wZSI6WyJpIiw4XSwiaXNUYWlsRGVsZXRlZCI6dHJ1ZX0KLVBBU1M6IEZ1bmN0aW9uIG5hbWU6
IGJhciBpcyBjb3JyZWN0LgotUEFTUzogVGFpbCBkZWxldGVkIGV4cGVjdGF0aW9uIGNvcnJlY3Q6
IHRydWUKLUV4cGVjdGVkIGZyYW1lOiB7ImZ1bmN0aW9uTmFtZSI6ImJhciIsInNjb3BlIjpbImki
LDldLCJpc1RhaWxEZWxldGVkIjp0cnVlfQotUEFTUzogRnVuY3Rpb24gbmFtZTogYmFyIGlzIGNv
cnJlY3QuCi1QQVNTOiBUYWlsIGRlbGV0ZWQgZXhwZWN0YXRpb24gY29ycmVjdDogdHJ1ZQotRXhw
ZWN0ZWQgZnJhbWU6IHsiZnVuY3Rpb25OYW1lIjoidGltZW91dCIsInNjb3BlIjpbImZvbyIsMjVd
LCJpc1RhaWxEZWxldGVkIjp0cnVlfQotUEFTUzogRnVuY3Rpb24gbmFtZTogdGltZW91dCBpcyBj
b3JyZWN0LgotUEFTUzogVGFpbCBkZWxldGVkIGV4cGVjdGF0aW9uIGNvcnJlY3Q6IHRydWUKLUxv
b2tpbmcgYXQgZnJhbWUgbnVtYmVyOiAwCi0gICAgdmFyaWFibGUgJ2knOiB7Il90eXBlIjoibnVt
YmVyIiwiX2Rlc2NyaXB0aW9uIjoiMCIsIl9oYXNDaGlsZHJlbiI6ZmFsc2UsIl92YWx1ZSI6MH0K
LVBBU1M6IFZhcmlhYmxlIGlzIGEgbnVtYmVyLgotUEFTUzogRm91bmQgc2NvcGUgdmFsdWU6IDAK
LVBBU1M6IERpZCBub3QgZmluZCB2YXJpYWJsZSB3ZSB3ZXJlIGxvb2tpbmcgZm9yOiBpCi1Mb29r
aW5nIGF0IGZyYW1lIG51bWJlcjogMQotICAgIHZhcmlhYmxlICdpJzogeyJfdHlwZSI6Im51bWJl
ciIsIl9kZXNjcmlwdGlvbiI6IjEiLCJfaGFzQ2hpbGRyZW4iOmZhbHNlLCJfdmFsdWUiOjF9Ci1Q
QVNTOiBWYXJpYWJsZSBpcyBhIG51bWJlci4KLVBBU1M6IEZvdW5kIHNjb3BlIHZhbHVlOiAxCi1Q
QVNTOiBEaWQgbm90IGZpbmQgdmFyaWFibGUgd2Ugd2VyZSBsb29raW5nIGZvcjogaQotTG9va2lu
ZyBhdCBmcmFtZSBudW1iZXI6IDIKLSAgICB2YXJpYWJsZSAnaSc6IHsiX3R5cGUiOiJudW1iZXIi
LCJfZGVzY3JpcHRpb24iOiIyIiwiX2hhc0NoaWxkcmVuIjpmYWxzZSwiX3ZhbHVlIjoyfQotUEFT
UzogVmFyaWFibGUgaXMgYSBudW1iZXIuCi1QQVNTOiBGb3VuZCBzY29wZSB2YWx1ZTogMgotUEFT
UzogRGlkIG5vdCBmaW5kIHZhcmlhYmxlIHdlIHdlcmUgbG9va2luZyBmb3I6IGkKLUxvb2tpbmcg
YXQgZnJhbWUgbnVtYmVyOiAzCi0gICAgdmFyaWFibGUgJ2knOiB7Il90eXBlIjoibnVtYmVyIiwi
X2Rlc2NyaXB0aW9uIjoiMyIsIl9oYXNDaGlsZHJlbiI6ZmFsc2UsIl92YWx1ZSI6M30KLVBBU1M6
IFZhcmlhYmxlIGlzIGEgbnVtYmVyLgotUEFTUzogRm91bmQgc2NvcGUgdmFsdWU6IDMKLVBBU1M6
IERpZCBub3QgZmluZCB2YXJpYWJsZSB3ZSB3ZXJlIGxvb2tpbmcgZm9yOiBpCi1Mb29raW5nIGF0
IGZyYW1lIG51bWJlcjogNAotICAgIHZhcmlhYmxlICdpJzogeyJfdHlwZSI6Im51bWJlciIsIl9k
ZXNjcmlwdGlvbiI6IjQiLCJfaGFzQ2hpbGRyZW4iOmZhbHNlLCJfdmFsdWUiOjR9Ci1QQVNTOiBW
YXJpYWJsZSBpcyBhIG51bWJlci4KLVBBU1M6IEZvdW5kIHNjb3BlIHZhbHVlOiA0Ci1QQVNTOiBE
aWQgbm90IGZpbmQgdmFyaWFibGUgd2Ugd2VyZSBsb29raW5nIGZvcjogaQotTG9va2luZyBhdCBm
cmFtZSBudW1iZXI6IDUKLSAgICB2YXJpYWJsZSAnaSc6IHsiX3R5cGUiOiJudW1iZXIiLCJfZGVz
Y3JpcHRpb24iOiI1IiwiX2hhc0NoaWxkcmVuIjpmYWxzZSwiX3ZhbHVlIjo1fQotUEFTUzogVmFy
aWFibGUgaXMgYSBudW1iZXIuCi1QQVNTOiBGb3VuZCBzY29wZSB2YWx1ZTogNQotUEFTUzogRGlk
IG5vdCBmaW5kIHZhcmlhYmxlIHdlIHdlcmUgbG9va2luZyBmb3I6IGkKLUxvb2tpbmcgYXQgZnJh
bWUgbnVtYmVyOiA2Ci0gICAgdmFyaWFibGUgJ2knOiB7Il90eXBlIjoibnVtYmVyIiwiX2Rlc2Ny
aXB0aW9uIjoiNiIsIl9oYXNDaGlsZHJlbiI6ZmFsc2UsIl92YWx1ZSI6Nn0KLVBBU1M6IFZhcmlh
YmxlIGlzIGEgbnVtYmVyLgotUEFTUzogRm91bmQgc2NvcGUgdmFsdWU6IDYKLVBBU1M6IERpZCBu
b3QgZmluZCB2YXJpYWJsZSB3ZSB3ZXJlIGxvb2tpbmcgZm9yOiBpCi1Mb29raW5nIGF0IGZyYW1l
IG51bWJlcjogNwotICAgIHZhcmlhYmxlICdpJzogeyJfdHlwZSI6Im51bWJlciIsIl9kZXNjcmlw
dGlvbiI6IjciLCJfaGFzQ2hpbGRyZW4iOmZhbHNlLCJfdmFsdWUiOjd9Ci1QQVNTOiBWYXJpYWJs
ZSBpcyBhIG51bWJlci4KLVBBU1M6IEZvdW5kIHNjb3BlIHZhbHVlOiA3Ci1QQVNTOiBEaWQgbm90
IGZpbmQgdmFyaWFibGUgd2Ugd2VyZSBsb29raW5nIGZvcjogaQotTG9va2luZyBhdCBmcmFtZSBu
dW1iZXI6IDgKLSAgICB2YXJpYWJsZSAnaSc6IHsiX3R5cGUiOiJudW1iZXIiLCJfZGVzY3JpcHRp
b24iOiI4IiwiX2hhc0NoaWxkcmVuIjpmYWxzZSwiX3ZhbHVlIjo4fQotUEFTUzogVmFyaWFibGUg
aXMgYSBudW1iZXIuCi1QQVNTOiBGb3VuZCBzY29wZSB2YWx1ZTogOAotUEFTUzogRGlkIG5vdCBm
aW5kIHZhcmlhYmxlIHdlIHdlcmUgbG9va2luZyBmb3I6IGkKLUxvb2tpbmcgYXQgZnJhbWUgbnVt
YmVyOiA5Ci0gICAgdmFyaWFibGUgJ2knOiB7Il90eXBlIjoibnVtYmVyIiwiX2Rlc2NyaXB0aW9u
IjoiOSIsIl9oYXNDaGlsZHJlbiI6ZmFsc2UsIl92YWx1ZSI6OX0KLVBBU1M6IFZhcmlhYmxlIGlz
IGEgbnVtYmVyLgotUEFTUzogRm91bmQgc2NvcGUgdmFsdWU6IDkKLVBBU1M6IERpZCBub3QgZmlu
ZCB2YXJpYWJsZSB3ZSB3ZXJlIGxvb2tpbmcgZm9yOiBpCi1Mb29raW5nIGF0IGZyYW1lIG51bWJl
cjogMTAKLSAgICB2YXJpYWJsZSAnZm9vJzogeyJfdHlwZSI6Im51bWJlciIsIl9kZXNjcmlwdGlv
biI6IjI1IiwiX2hhc0NoaWxkcmVuIjpmYWxzZSwiX3ZhbHVlIjoyNX0KLVBBU1M6IFZhcmlhYmxl
IGlzIGEgbnVtYmVyLgotUEFTUzogRm91bmQgc2NvcGUgdmFsdWU6IDI1Ci1QQVNTOiBEaWQgbm90
IGZpbmQgdmFyaWFibGUgd2Ugd2VyZSBsb29raW5nIGZvcjogZm9vCi1UZXN0cyBkb25lCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJh
bWVzLWZyb20tdm0tZW50cnkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90
YWlsLWRlbGV0ZWQtZnJhbWVzLWZyb20tdm0tZW50cnkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjg3YjhjMjg0YmEuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzLWZyb20tdm0tZW50cnkuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDEwNSArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuL3Jlc291cmNlcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWZyb20tdm0tZW50cnkuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgbGV0IHNjcmlw
dE9iamVjdDsKLQotICAgIGZ1bmN0aW9uIHJlbW90ZU9iamVjdEpTT05GaWx0ZXIoa2V5LCB2YWx1
ZSkgewotICAgICAgICBpZiAoa2V5ID09PSAiX3RhcmdldCIgfHwga2V5ID09PSAiX2xpc3RlbmVy
cyIpCi0gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgICBpZiAoa2V5ID09PSAi
X29iamVjdElkIiB8fCBrZXkgPT09ICJfc3RhY2tUcmFjZSIpCi0gICAgICAgICAgICByZXR1cm4g
IjxmaWx0ZXJlZD4iOwotICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gc3RhcnRUZXN0KCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3RhcnRpbmcgVGVz
dCIpOwotICAgICAgICAvLyAwIGJhc2VkIGluZGljZXMuCi0gICAgICAgIGxldCB0ZXN0SW5mbyA9
IHtsaW5lOiA3LCBjb2x1bW46IDR9OwotICAgICAgICBsZXQgbG9jYXRpb24gPSBzY3JpcHRPYmpl
Y3QuY3JlYXRlU291cmNlQ29kZUxvY2F0aW9uKHRlc3RJbmZvLmxpbmUsIHRlc3RJbmZvLmNvbHVt
bik7Ci0gICAgICAgIGxldCBicmVha3BvaW50ID0gbmV3IFdJLkJyZWFrcG9pbnQobG9jYXRpb24p
OwotICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkQnJlYWtwb2ludChicmVha3BvaW50KTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dCh0aW1lb3V0
LCAwKTsiKTsKLSAgICB9Ci0KLSAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQ2FsbEZyYW1lc0RpZENoYW5nZSwgZnVuY3Rpb24o
ZXZlbnQpIHsKLSAgICAgICAgdmFyIGFjdGl2ZUNhbGxGcmFtZSA9IFdJLmRlYnVnZ2VyTWFuYWdl
ci5hY3RpdmVDYWxsRnJhbWU7Ci0KLSAgICAgICAgaWYgKCFhY3RpdmVDYWxsRnJhbWUpCi0gICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIHN0b3BMb2NhdGlvbiA9ICJsaW5lOiAiICsg
YWN0aXZlQ2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbi5saW5lTnVtYmVyICsgIiwgY29sdW1u
OiAiICsgYWN0aXZlQ2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbi5jb2x1bW5OdW1iZXI7Ci0K
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkhpdCBicmVha3BvaW50
IGF0ICIgKyBzdG9wTG9jYXRpb24pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7Ci0KLSAgICAgICAgLy8gdG9wIGRvd24g
bGlzdAotICAgICAgICBsZXQgZXhwZWN0ZWRGcmFtZXMgPSBbXTsKLSAgICAgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCAxMDsgaSsrKQotICAgICAgICAgICAgZXhwZWN0ZWRGcmFtZXMucHVzaCh7ZnVu
Y3Rpb25OYW1lOiAnYmFyJywgc2NvcGU6IFsnaScsIGldLCBpc1RhaWxEZWxldGVkOiBpID4gMCA/
IHRydWUgOiBmYWxzZX0pOwotICAgICAgICBleHBlY3RlZEZyYW1lcy5wdXNoKHtmdW5jdGlvbk5h
bWU6ICd0aW1lb3V0Jywgc2NvcGU6IFsnZm9vJywgMjVdLCBpc1RhaWxEZWxldGVkOiB0cnVlfSk7
Ci0KLSAgICAgICAgbGV0IHRhcmdldERhdGEgPSBXSS5kZWJ1Z2dlck1hbmFnZXIuZGF0YUZvclRh
cmdldChXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lLnRhcmdldCk7Ci0gICAgICAg
IGxldCBjYWxsRnJhbWVzID0gdGFyZ2V0RGF0YS5jYWxsRnJhbWVzOwotCi0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0KGNhbGxGcmFtZXMubGVuZ3RoID49IGV4cGVjdGVkRnJhbWVzLmxlbmd0
aCk7Ci0KLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBleHBlY3RlZEZyYW1lcy5sZW5ndGg7
IGkrKykgewotICAgICAgICAgICAgbGV0IGNhbGxGcmFtZSA9IGNhbGxGcmFtZXNbaV07Ci0gICAg
ICAgICAgICBsZXQgZXhwZWN0ZWRGcmFtZSA9IGV4cGVjdGVkRnJhbWVzW2ldOwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkV4cGVjdGVkIGZyYW1lOiAiICsgSlNPTi5zdHJpbmdpZnko
ZXhwZWN0ZWRGcmFtZSkpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGNh
bGxGcmFtZS5mdW5jdGlvbk5hbWUgPT09IGV4cGVjdGVkRnJhbWUuZnVuY3Rpb25OYW1lLCBgRnVu
Y3Rpb24gbmFtZTogJHtjYWxsRnJhbWUuZnVuY3Rpb25OYW1lfSBpcyBjb3JyZWN0LmApOwotCi0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoY2FsbEZyYW1lLmlzVGFpbERlbGV0
ZWQgPT09IGV4cGVjdGVkRnJhbWUuaXNUYWlsRGVsZXRlZCwgYFRhaWwgZGVsZXRlZCBleHBlY3Rh
dGlvbiBjb3JyZWN0OiAke2NhbGxGcmFtZS5pc1RhaWxEZWxldGVkfWApOwotICAgICAgICAgICAg
bGV0IHNjb3BlID0gY2FsbEZyYW1lLnNjb3BlQ2hhaW5bMV07Ci0KLSAgICAgICAgICAgIHNjb3Bl
Lm9iamVjdHNbMF0uZ2V0UHJvcGVydHlEZXNjcmlwdG9ycyhmdW5jdGlvbihwcm9wZXJ0aWVzKSB7
Ci0gICAgICAgICAgICAgICAgbGV0IGZvdW5kID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgbGV0
IHZhcmlhYmxlTmFtZSA9IGV4cGVjdGVkRnJhbWUuc2NvcGVbMF07Ci0gICAgICAgICAgICAgICAg
bGV0IHZhcmlhYmxlVmFsdWUgPSBleHBlY3RlZEZyYW1lLnNjb3BlWzFdOwotICAgICAgICAgICAg
ICAgIGZvciAobGV0IHByb3BlcnR5RGVzY3JpcHRvciBvZiBwcm9wZXJ0aWVzKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChwcm9wZXJ0eURlc2NyaXB0b3IubmFtZSA9PT0gdmFyaWFibGVOYW1l
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiTG9va2luZyBhdCBmcmFtZSBudW1iZXI6ICIg
KyBpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGAgICAgdmFy
aWFibGUgJyR7dmFyaWFibGVOYW1lfSc6ICR7SlNPTi5zdHJpbmdpZnkocHJvcGVydHlEZXNjcmlw
dG9yLnZhbHVlLCByZW1vdGVPYmplY3RKU09ORmlsdGVyKX1gKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChwcm9wZXJ0eURlc2NyaXB0b3IudmFsdWUu
dHlwZSA9PT0gJ251bWJlcicsICJWYXJpYWJsZSBpcyBhIG51bWJlci4iKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChwcm9wZXJ0eURlc2NyaXB0b3Iu
dmFsdWUudmFsdWUgPT09IHZhcmlhYmxlVmFsdWUsIGBGb3VuZCBzY29wZSB2YWx1ZTogJHt2YXJp
YWJsZVZhbHVlfWApOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCghIWZvdW5kLCBgRGlkIG5v
dCBmaW5kIHZhcmlhYmxlIHdlIHdlcmUgbG9va2luZyBmb3I6ICR7dmFyaWFibGVOYW1lfWApOwot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIu
cmVzdW1lKCk7Ci0gICAgfSk7Ci0KLSAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0
ZW5lcihXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUmVzdW1lZCwgZnVuY3Rpb24oZXZlbnQpIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlRlc3RzIGRvbmUiKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9KTsKLQotICAgIFdJLmRlYnVnZ2VyTWFuYWdl
ci5hZGRFdmVudExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwg
ZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgbGV0IGV2ZW50U2NyaXB0T2JqZWN0ID0gZXZlbnQu
ZGF0YS5zY3JpcHQ7Ci0gICAgICAgIGlmICgvdGFpbC1kZWxldGVkLWZyYW1lcy1mcm9tLXZtLWVu
dHJ5XC5qcyQvLnRlc3QoZXZlbnRTY3JpcHRPYmplY3QudXJsKSkgewotICAgICAgICAgICAgc2Ny
aXB0T2JqZWN0ID0gZXZlbnRTY3JpcHRPYmplY3Q7Ci0gICAgICAgICAgICBzdGFydFRlc3QoKTsK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgfSk7Ci0KLSAgICBJbnNwZWN0
b3JUZXN0LnJlbG9hZFBhZ2UoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgotICAgIDxwPlRlc3RpbmcgdGhhdCB3ZSBrZWVwIGFyb3VuZCB0YWlsIGRl
bGV0ZWQgZnJhbWVzIHRoYXQgYXJlIGVudHJ5IGZyYW1lcy4gPC9wPgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRl
ZC1mcmFtZXMtdGhpcy12YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmI5Y2JlYmFiZWYuLjAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzLXRoaXMt
dmFsdWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGVzdGlu
ZyB0aGF0IHdlIGtlZXAgYXJvdW5kIHRhaWwgZGVsZXRlZCBmcmFtZXMgaW4gdGhlIGluc3BlY3Rv
ciBhbmQgdGhlaXIgdGhpcyB2YWx1ZXMuCi0KLVN0YXJ0aW5nIFRlc3QKLQotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUhpdCBicmVha3BvaW50IGF0IGxpbmU6IDMsIGNv
bHVtbjogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1FeHBlY3RlZCBm
cmFtZTogeyJmdW5jdGlvbk5hbWUiOiJhIiwidGhpc1ZhbHVlIjpbImFUaGlzIiwyXSwiaXNUYWls
RGVsZXRlZCI6ZmFsc2V9Ci1QQVNTOiAndGhpcycgdmFsdWUgc2hvdWxkIGhhdmUgZXhwZWN0ZWQg
cHJvcGVydHk6IGFUaGlzCi1QQVNTOiBDYWxsIEZyYW1lIDAgJ3RoaXMnIHZhbHVlIGlzIGNvcnJl
Y3QuCi1FeHBlY3RlZCBmcmFtZTogeyJmdW5jdGlvbk5hbWUiOiJiIiwidGhpc1ZhbHVlIjpbImJU
aGlzIiwxXSwiaXNUYWlsRGVsZXRlZCI6dHJ1ZX0KLVBBU1M6ICd0aGlzJyB2YWx1ZSBzaG91bGQg
aGF2ZSBleHBlY3RlZCBwcm9wZXJ0eTogYlRoaXMKLVBBU1M6IENhbGwgRnJhbWUgMSAndGhpcycg
dmFsdWUgaXMgY29ycmVjdC4KLUV4cGVjdGVkIGZyYW1lOiB7ImZ1bmN0aW9uTmFtZSI6ImMiLCJ0
aGlzVmFsdWUiOlsiY1RoaXMiLDBdLCJpc1RhaWxEZWxldGVkIjp0cnVlfQotUEFTUzogJ3RoaXMn
IHZhbHVlIHNob3VsZCBoYXZlIGV4cGVjdGVkIHByb3BlcnR5OiBjVGhpcwotUEFTUzogQ2FsbCBG
cmFtZSAyICd0aGlzJyB2YWx1ZSBpcyBjb3JyZWN0LgotVGVzdHMgZG9uZQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlz
LXZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVk
LWZyYW1lcy10aGlzLXZhbHVlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEy
ZmU3NzQyMmRmLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwxMDIgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi9yZXNvdXJj
ZXMvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBzY3JpcHRPYmplY3Q7Ci0KLSAgICBmdW5j
dGlvbiBzdGFydFRlc3QoKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTdGFydGluZyBU
ZXN0Iik7Ci0gICAgICAgIC8vIDAgYmFzZWQgaW5kaWNlcy4KLSAgICAgICAgbGV0IHRlc3RJbmZv
ID0ge2xpbmU6IDMsIGNvbHVtbjogNH07Ci0gICAgICAgIGxldCBsb2NhdGlvbiA9IHNjcmlwdE9i
amVjdC5jcmVhdGVTb3VyY2VDb2RlTG9jYXRpb24odGVzdEluZm8ubGluZSwgdGVzdEluZm8uY29s
dW1uKTsKLSAgICAgICAgbGV0IGJyZWFrcG9pbnQgPSBuZXcgV0kuQnJlYWtwb2ludChsb2NhdGlv
bik7Ci0gICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRCcmVha3BvaW50KGJyZWFrcG9pbnQp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzdGFydEFCQygpIik7Ci0g
ICAgfQotCi0gICAgV0kuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuRGVidWdn
ZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0g
ICAgICAgIHZhciBhY3RpdmVDYWxsRnJhbWUgPSBXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2Fs
bEZyYW1lOwotCi0gICAgICAgIGlmICghYWN0aXZlQ2FsbEZyYW1lKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIHZhciBzdG9wTG9jYXRpb24gPSAibGluZTogIiArIGFjdGl2ZUNhbGxG
cmFtZS5zb3VyY2VDb2RlTG9jYXRpb24ubGluZU51bWJlciArICIsIGNvbHVtbjogIiArIGFjdGl2
ZUNhbGxGcmFtZS5zb3VyY2VDb2RlTG9jYXRpb24uY29sdW1uTnVtYmVyOwotCi0gICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJIaXQgYnJlYWtwb2ludCBhdCAiICsgc3Rv
cExvY2F0aW9uKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSIpOwotCi0gICAgICAgIC8vIHRvcCBkb3duIGxpc3QKLSAgICAg
ICAgbGV0IGV4cGVjdGVkRnJhbWVzID0gWwotICAgICAgICAgICAge2Z1bmN0aW9uTmFtZTogJ2En
LCB0aGlzVmFsdWU6IFsnYVRoaXMnLCAyXSwgaXNUYWlsRGVsZXRlZDogZmFsc2V9LAotICAgICAg
ICAgICAge2Z1bmN0aW9uTmFtZTogJ2InLCB0aGlzVmFsdWU6IFsnYlRoaXMnLCAxXSwgaXNUYWls
RGVsZXRlZDogdHJ1ZX0sCi0gICAgICAgICAgICB7ZnVuY3Rpb25OYW1lOiAnYycsIHRoaXNWYWx1
ZTogWydjVGhpcycsIDBdLCBpc1RhaWxEZWxldGVkOiB0cnVlfQotICAgICAgICBdOwotCi0gICAg
ICAgIGxldCB0YXJnZXREYXRhID0gV0kuZGVidWdnZXJNYW5hZ2VyLmRhdGFGb3JUYXJnZXQoV0ku
ZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZS50YXJnZXQpOwotICAgICAgICBsZXQgY2Fs
bEZyYW1lcyA9IHRhcmdldERhdGEuY2FsbEZyYW1lczsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydChjYWxsRnJhbWVzLmxlbmd0aCA+PSBleHBlY3RlZEZyYW1lcy5sZW5ndGgsIGBTaG91
bGQgaGF2ZSBhdCBsZWFzdCAke2V4cGVjdGVkRnJhbWVzLmxlbmd0aH0gZnJhbWVzLCBidXQgaGF2
ZSAke2NhbGxGcmFtZXMubGVuZ3RofSBpbnN0ZWFkLmApOwotCi0gICAgICAgIC8vIFJlc29sdmUg
YSB0aGlzT2JqZWN0IHByZXZpZXcgb24gZWFjaCBvZiB0aGUgQ2FsbEZyYW1lcy4KLSAgICAgICAg
bGV0IHByb21pc2VzID0gW107Ci0gICAgICAgIGZvciAobGV0IGNhbGxGcmFtZSBvZiBjYWxsRnJh
bWVzKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghY2FsbEZyYW1lLnRoaXNP
YmplY3QucHJldmlldywgInRoaXNPYmplY3Qgc2hvdWxkIG5vdCBoYXZlIGEgcHJldmlldyIpOwot
ICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS50aGlzT2JqZWN0LmNhbkxvYWRQcmV2aWV3KCkpIHsK
LSAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWpl
Y3QpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgY2FsbEZyYW1lLnRoaXNPYmplY3QudXBkYXRl
UHJldmlldyhyZXNvbHZlKTsKLSAgICAgICAgICAgICAgICB9KSk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLQotICAgICAgICBQcm9taXNlLmFsbChwcm9taXNlcykudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGV4cGVjdGVkRnJhbWVzLmxlbmd0aDsgaSsr
KSB7Ci0gICAgICAgICAgICAgICAgbGV0IGNhbGxGcmFtZSA9IGNhbGxGcmFtZXNbaV07Ci0gICAg
ICAgICAgICAgICAgbGV0IGV4cGVjdGVkRnJhbWUgPSBleHBlY3RlZEZyYW1lc1tpXTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXhwZWN0ZWQgZnJhbWU6ICIgKyBKU09OLnN0
cmluZ2lmeShleHBlY3RlZEZyYW1lKSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnQoY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSA9PT0gZXhwZWN0ZWRGcmFtZS5mdW5jdGlvbk5h
bWUsIGBTaG91bGQgaGF2ZSBmdW5jdGlvbk5hbWUgb2YgJyR7ZXhwZWN0ZWRGcmFtZS5mdW5jdGlv
bk5hbWV9JywgYnV0IGhhdmUgJyR7Y2FsbEZyYW1lLmZ1bmN0aW9uTmFtZX0nIGluc3RlYWQuYCk7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FsbEZyYW1lLmlzVGFpbERl
bGV0ZWQgPT09IGV4cGVjdGVkRnJhbWUuaXNUYWlsRGVsZXRlZCwgYFNob3VsZCBoYXZlIGlzVGFp
bERlbGV0ZWQgb2YgJyR7ZXhwZWN0ZWRGcmFtZS5pc1RhaWxEZWxldGVkfScsIGJ1dCBoYXZlICck
e2NhbGxGcmFtZS5pc1RhaWxEZWxldGVkfScgaW5zdGVhZC5gKTsKLQotICAgICAgICAgICAgICAg
IGxldCB0aGlzT2JqZWN0ID0gY2FsbEZyYW1lLnRoaXNPYmplY3Q7Ci0gICAgICAgICAgICAgICAg
bGV0IHByb3BlcnRpZXMgPSB0aGlzT2JqZWN0LnByZXZpZXcucHJvcGVydHlQcmV2aWV3czsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChwcm9wZXJ0aWVzLmxlbmd0aCA9PT0g
MSwgIlNob3VsZCBoYXZlIG9uZSBwcm9wZXJ0eS4iKTsKLSAgICAgICAgICAgICAgICBsZXQgcHJv
cCA9IHByb3BlcnRpZXNbMF07Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KGV4cGVjdGVkRnJhbWUudGhpc1ZhbHVlWzBdID09PSBwcm9wLm5hbWUsIGAndGhpcycgdmFs
dWUgc2hvdWxkIGhhdmUgZXhwZWN0ZWQgcHJvcGVydHk6ICR7ZXhwZWN0ZWRGcmFtZS50aGlzVmFs
dWVbMF19YCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoJycgKyBleHBl
Y3RlZEZyYW1lLnRoaXNWYWx1ZVsxXSA9PT0gcHJvcC52YWx1ZSwgYCd0aGlzJyB2YWx1ZSBvYmpl
Y3Qgc2hvdWxkIGhhdmUgZXhwZWN0ZWQgcHJvcGVydHkgdmFsdWU6ICR7ZXhwZWN0ZWRGcmFtZS50
aGlzVmFsdWVbMV19YCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKGBDYWxs
IEZyYW1lICR7aX0gJ3RoaXMnIHZhbHVlIGlzIGNvcnJlY3QuYCk7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLSAgICAgICAgfSk7Ci0g
ICAgfSk7Ci0KLSAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5EZWJ1
Z2dlck1hbmFnZXIuRXZlbnQuUmVzdW1lZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlRlc3RzIGRvbmUiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKLSAgICB9KTsKLQotICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExp
c3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZl
bnQpIHsKLSAgICAgICAgZXZlbnRTY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAg
ICAgICAgCi0gICAgICAgIGlmICgvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlXC5qcyQv
LnRlc3QoZXZlbnRTY3JpcHRPYmplY3QudXJsKSkgewotICAgICAgICAgICAgc2NyaXB0T2JqZWN0
ID0gZXZlbnRTY3JpcHRPYmplY3Q7Ci0gICAgICAgICAgICBzdGFydFRlc3QoKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgfSk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJl
bG9hZFBhZ2UoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotICAgIDxwPlRlc3RpbmcgdGhhdCB3ZSBrZWVwIGFyb3VuZCB0YWlsIGRlbGV0ZWQgZnJh
bWVzIGluIHRoZSBpbnNwZWN0b3IgYW5kIHRoZWlyIHRoaXMgdmFsdWVzLjwvcD4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWls
LWRlbGV0ZWQtZnJhbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFp
bC1kZWxldGVkLWZyYW1lcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYWFh
Y2E5Nzk2NS4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3RhaWwtZGVsZXRlZC1mcmFtZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwNyArMCwwIEBA
Ci08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dl
ci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy90YWlsLWRlbGV0
ZWQtZnJhbWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIHZhciBzY3JpcHRPYmplY3Q7Ci0KLSAgICBmdW5jdGlvbiByZW1vdGVPYmplY3RKU09ORmls
dGVyKGtleSwgdmFsdWUpIHsKLSAgICAgICAgaWYgKGtleSA9PT0gIl90YXJnZXQiIHx8IGtleSA9
PT0gIl9saXN0ZW5lcnMiKQotICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgICAg
aWYgKGtleSA9PT0gIl9vYmplY3RJZCIgfHwga2V5ID09PSAiX3N0YWNrVHJhY2UiKQotICAgICAg
ICAgICAgcmV0dXJuICI8ZmlsdGVyZWQ+IjsKLSAgICAgICAgcmV0dXJuIHZhbHVlOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IlN0YXJ0aW5nIFRlc3QiKTsKLSAgICAgICAgLy8gMCBiYXNlZCBpbmRpY2VzLgotICAgICAgICBs
ZXQgdGVzdEluZm8gPSB7bGluZTogMywgY29sdW1uOiA0fTsKLSAgICAgICAgbGV0IGxvY2F0aW9u
ID0gc2NyaXB0T2JqZWN0LmNyZWF0ZVNvdXJjZUNvZGVMb2NhdGlvbih0ZXN0SW5mby5saW5lLCB0
ZXN0SW5mby5jb2x1bW4pOwotICAgICAgICBsZXQgYnJlYWtwb2ludCA9IG5ldyBXSS5CcmVha3Bv
aW50KGxvY2F0aW9uKTsKLSAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLmFkZEJyZWFrcG9pbnQo
YnJlYWtwb2ludCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInN0YXJ0
QUJDKCkiKTsKLSAgICB9Ci0KLSAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQ2FsbEZyYW1lc0RpZENoYW5nZSwgZnVuY3Rpb24o
ZXZlbnQpIHsKLSAgICAgICAgdmFyIGFjdGl2ZUNhbGxGcmFtZSA9IFdJLmRlYnVnZ2VyTWFuYWdl
ci5hY3RpdmVDYWxsRnJhbWU7Ci0KLSAgICAgICAgaWYgKCFhY3RpdmVDYWxsRnJhbWUpCi0gICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIHN0b3BMb2NhdGlvbiA9ICJsaW5lOiAiICsg
YWN0aXZlQ2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbi5saW5lTnVtYmVyICsgIiwgY29sdW1u
OiAiICsgYWN0aXZlQ2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbi5jb2x1bW5OdW1iZXI7Ci0K
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkhpdCBicmVha3BvaW50
IGF0ICIgKyBzdG9wTG9jYXRpb24pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7Ci0KLSAgICAgICAgLy8gdG9wIGRvd24g
bGlzdAotICAgICAgICBsZXQgZXhwZWN0ZWRGcmFtZXMgPSBbCi0gICAgICAgICAgICB7ZnVuY3Rp
b25OYW1lOiAnYScsIHNjb3BlOiBbJ3gnLCAyMF0sIGlzVGFpbERlbGV0ZWQ6IGZhbHNlfSwKLSAg
ICAgICAgICAgIHtmdW5jdGlvbk5hbWU6ICdiJywgc2NvcGU6IFsneScsIDQwXSwgaXNUYWlsRGVs
ZXRlZDogdHJ1ZX0sCi0gICAgICAgICAgICB7ZnVuY3Rpb25OYW1lOiAnYycsIHNjb3BlOiBbJ3on
LCA2MF0sIGlzVGFpbERlbGV0ZWQ6IHRydWV9Ci0gICAgICAgIF07Ci0KLSAgICAgICAgbGV0IHRh
cmdldERhdGEgPSBXSS5kZWJ1Z2dlck1hbmFnZXIuZGF0YUZvclRhcmdldChXSS5kZWJ1Z2dlck1h
bmFnZXIuYWN0aXZlQ2FsbEZyYW1lLnRhcmdldCk7Ci0gICAgICAgIGxldCBjYWxsRnJhbWVzID0g
dGFyZ2V0RGF0YS5jYWxsRnJhbWVzOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNh
bGxGcmFtZXMubGVuZ3RoID49IGV4cGVjdGVkRnJhbWVzLmxlbmd0aCk7Ci0KLSAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCBleHBlY3RlZEZyYW1lcy5sZW5ndGg7IGkrKykgewotICAgICAgICAg
ICAgbGV0IGNhbGxGcmFtZSA9IGNhbGxGcmFtZXNbaV07Ci0gICAgICAgICAgICBsZXQgZXhwZWN0
ZWRGcmFtZSA9IGV4cGVjdGVkRnJhbWVzW2ldOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkV4cGVjdGVkIGZyYW1lOiAiICsgSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRGcmFtZSkpOwot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSA9
PT0gZXhwZWN0ZWRGcmFtZS5mdW5jdGlvbk5hbWUpOwotCi0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydChjYWxsRnJhbWUuaXNUYWlsRGVsZXRlZCA9PT0gZXhwZWN0ZWRGcmFtZS5pc1Rh
aWxEZWxldGVkKTsKLSAgICAgICAgICAgIGxldCB0b3BTY29wZSA9IGNhbGxGcmFtZS5zY29wZUNo
YWluWzBdOwotCi0gICAgICAgICAgICB0b3BTY29wZS5vYmplY3RzWzBdLmdldFByb3BlcnR5RGVz
Y3JpcHRvcnMoZnVuY3Rpb24ocHJvcGVydGllcykgewotICAgICAgICAgICAgICAgIGxldCBmb3Vu
ZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGxldCB2YXJpYWJsZU5hbWUgPSBleHBlY3RlZEZy
YW1lLnNjb3BlWzBdOwotICAgICAgICAgICAgICAgIGxldCB2YXJpYWJsZVZhbHVlID0gZXhwZWN0
ZWRGcmFtZS5zY29wZVsxXTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eURlc2Ny
aXB0b3Igb2YgcHJvcGVydGllcykgewotICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHlE
ZXNjcmlwdG9yLm5hbWUgPT09IHZhcmlhYmxlTmFtZSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgZm91bmQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkxvb2tpbmcgYXQgZnJhbWUgbnVtYmVyOiAiICsgaSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgICAgIHZhcmlhYmxlICcke3ZhcmlhYmxlTmFtZX0nOiAk
e0pTT04uc3RyaW5naWZ5KHByb3BlcnR5RGVzY3JpcHRvci52YWx1ZSwgcmVtb3RlT2JqZWN0SlNP
TkZpbHRlcil9YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChwcm9wZXJ0eURlc2NyaXB0b3IudmFsdWUudHlwZSA9PT0gJ251bWJlcicpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQocHJvcGVydHlEZXNjcmlwdG9yLnZh
bHVlLnZhbHVlID09PSB2YXJpYWJsZVZhbHVlKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChmb3Vu
ZCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotCi0gICAgICAgIFdJLmRlYnVnZ2VyTWFu
YWdlci5yZXN1bWUoKTsKLSAgICB9KTsKLQotICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVu
dExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5SZXN1bWVkLCBmdW5jdGlvbihldmVu
dCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiVGVzdHMgZG9uZSIpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0pOwotCi0gICAgV0kuZGVidWdnZXJN
YW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFk
ZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICBldmVudFNjcmlwdE9iamVjdCA9IGV2ZW50
LmRhdGEuc2NyaXB0OwotICAgICAgICAKLSAgICAgICAgaWYgKC90YWlsLWRlbGV0ZWQtZnJhbWVz
XC5qcyQvLnRlc3QoZXZlbnRTY3JpcHRPYmplY3QudXJsKSkgewotICAgICAgICAgICAgc2NyaXB0
T2JqZWN0ID0gZXZlbnRTY3JpcHRPYmplY3Q7Ci0gICAgICAgICAgICBzdGFydFRlc3QoKTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgfSk7Ci0KLSAgICBJbnNwZWN0b3JU
ZXN0LnJlbG9hZFBhZ2UoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgotICAgIDxwPlRlc3RpbmcgdGhhdCB3ZSBrZWVwIGFyb3VuZCB0YWlsIGRlbGV0
ZWQgZnJhbWVzIGluIHRoZSBpbnNwZWN0b3IuIDwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVz
L3Jlc291cmNlcy9zdGFjay10cmFjZS11dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvc3RhY2stdHJhY2UtdXRp
bGl0aWVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMjBmODM1
YzJkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90
YWlsLWRlbGV0ZWQtZnJhbWVzL3Jlc291cmNlcy9zdGFjay10cmFjZS11dGlsaXRpZXMuanMKQEAg
LTAsMCArMSw5NyBAQAorVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CisgICAg
d2luZG93LmdldEFzeW5jU3RhY2tUcmFjZSA9IGZ1bmN0aW9uKCkgeworICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydChXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lLCAiQWN0aXZl
IGNhbGwgZnJhbWUgc2hvdWxkIGV4aXN0LiIpOworICAgICAgICBpZiAoIVdJLmRlYnVnZ2VyTWFu
YWdlci5hY3RpdmVDYWxsRnJhbWUpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAg
ICBsZXQgdGFyZ2V0RGF0YSA9IFdJLmRlYnVnZ2VyTWFuYWdlci5kYXRhRm9yVGFyZ2V0KFdJLmRl
YnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWUudGFyZ2V0KTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQodGFyZ2V0RGF0YSwgIkRhdGEgZm9yIGFjdGl2ZSBjYWxsIGZyYW1lIHRhcmdl
dCBzaG91bGQgZXhpc3QuIik7CisgICAgICAgIGlmICghdGFyZ2V0RGF0YSkKKyAgICAgICAgICAg
IHJldHVybiBudWxsOworCisgICAgICAgIGNvbnN0IHRvcENhbGxGcmFtZUlzQm91bmRhcnkgPSBm
YWxzZTsKKyAgICAgICAgY29uc3QgdHJ1bmNhdGVkID0gZmFsc2U7CisgICAgICAgIHJldHVybiBu
ZXcgV0kuU3RhY2tUcmFjZSh0YXJnZXREYXRhLmNhbGxGcmFtZXMsIHRvcENhbGxGcmFtZUlzQm91
bmRhcnksIHRydW5jYXRlZCwgdGFyZ2V0RGF0YS5hc3luY1N0YWNrVHJhY2UpOworICAgIH07CisK
KyAgICB3aW5kb3cubG9nQXN5bmNTdGFja1RyYWNlID0gYXN5bmMgZnVuY3Rpb24ob3B0aW9ucyA9
IHt9KSB7CisgICAgICAgIGxldCBmb3VuZEFzeW5jQm91bmRhcnkgPSBmYWxzZTsKKyAgICAgICAg
bGV0IGNhbGxGcmFtZUluZGV4ID0gMDsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBsb2dUaGlz
T2JqZWN0KGNhbGxGcmFtZSkgeworICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS50aGlzT2JqZWN0
LmNhbkxvYWRQcmV2aWV3KCkpIHsKKyAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyBjYWxsRnJhbWUudGhpc09iamVjdC51cGRhdGVQcmV2aWV3KHJlc29sdmUp
OyB9KTsKKyAgICAgICAgICAgICAgICBsZXQgcHJldmlldyA9IGNhbGxGcmFtZS50aGlzT2JqZWN0
LnByZXZpZXcucHJvcGVydHlQcmV2aWV3c1swXTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZyhgICB0aGlzOiAke3ByZXZpZXcubmFtZX0gLSAke3ByZXZpZXcudmFsdWV9YCk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgICB0
aGlzOiB1bmRlZmluZWRgKTsKKyAgICAgICAgfQorCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxv
Z1Njb3BlKGNhbGxGcmFtZSwgc2NvcGVDaGFpbkluZGV4KSB7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZyhgICAtLS0tU2NvcGUtLS0tYCk7CisgICAgICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIGxldCBzY29wZSA9
IGNhbGxGcmFtZS5zY29wZUNoYWluW3Njb3BlQ2hhaW5JbmRleF07CisgICAgICAgICAgICAgICAg
aWYgKCFzY29wZSkgeworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2Nv
cGUub2JqZWN0c1swXS5nZXRQcm9wZXJ0eURlc2NyaXB0b3JzKChwcm9wZXJ0aWVzKSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHByb3BlcnR5RGVzY3JpcHRvciBvZiBwcm9wZXJ0
aWVzKQorICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYCAgJHtwcm9w
ZXJ0eURlc2NyaXB0b3IubmFtZX06ICR7cHJvcGVydHlEZXNjcmlwdG9yLnZhbHVlLmRlc2NyaXB0
aW9ufWApOworICAgICAgICAgICAgICAgICAgICBpZiAoIXByb3BlcnRpZXMubGVuZ3RoKQorICAg
ICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYCAgLS0gIGVtcHR5ICAtLWAp
OworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgICAtLS0tLS0tLS0tLS0t
YCk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9n
Q2FsbEZyYW1lKGNhbGxGcmFtZSwgaXNBc3luY0JvdW5kYXJ5KSB7CisgICAgICAgICAgICBsZXQg
bGFiZWwgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lOworICAgICAgICAgICAgaWYgKGlzQXN5bmNC
b3VuZGFyeSkKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgJHtjYWxsRnJhbWVJ
bmRleH06IC0tLSAke2xhYmVsfSAtLS1gKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgICAgIGxldCBjb2RlID0gY2FsbEZyYW1lLm5hdGl2ZUNvZGUgPyAiTiIgOiAoY2FsbEZyYW1l
LnByb2dyYW1Db2RlID8gIlAiIDogIkYiKTsKKyAgICAgICAgICAgICAgICBsZXQgaWNvbiA9IGNh
bGxGcmFtZS5pc1RhaWxEZWxldGVkID8gYC0ke2NvZGV9LWAgOiBgWyR7Y29kZX1dYDsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgJHtjYWxsRnJhbWVJbmRleH06ICR7aWNvbn0g
JHtsYWJlbH1gKTsKKyAgICAgICAgICAgICAgICBpZiAoImluY2x1ZGVUaGlzT2JqZWN0IiBpbiBv
cHRpb25zKQorICAgICAgICAgICAgICAgICAgICBhd2FpdCBsb2dUaGlzT2JqZWN0KGNhbGxGcmFt
ZSk7CisgICAgICAgICAgICAgICAgaWYgKCJpbmNsdWRlU2NvcGUiIGluIG9wdGlvbnMpCisgICAg
ICAgICAgICAgICAgICAgIGF3YWl0IGxvZ1Njb3BlKGNhbGxGcmFtZSwgb3B0aW9ucy5pbmNsdWRl
U2NvcGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsbEZyYW1lSW5kZXgrKzsKKyAg
ICAgICAgfQorCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDQUxMIFNUQUNLOiIpOworCisg
ICAgICAgIGxldCBzdGFja1RyYWNlID0gZ2V0QXN5bmNTdGFja1RyYWNlKCk7CisgICAgICAgIHdo
aWxlIChzdGFja1RyYWNlKSB7CisgICAgICAgICAgICBsZXQgY2FsbEZyYW1lcyA9IHN0YWNrVHJh
Y2UuY2FsbEZyYW1lczsKKyAgICAgICAgICAgIGxldCB0b3BDYWxsRnJhbWVJc0JvdW5kYXJ5ID0g
c3RhY2tUcmFjZS50b3BDYWxsRnJhbWVJc0JvdW5kYXJ5OworICAgICAgICAgICAgbGV0IHRydW5j
YXRlZCA9IHN0YWNrVHJhY2UudHJ1bmNhdGVkOworICAgICAgICAgICAgc3RhY2tUcmFjZSA9IHN0
YWNrVHJhY2UucGFyZW50U3RhY2tUcmFjZTsKKyAgICAgICAgICAgIGlmICghY2FsbEZyYW1lcyB8
fCAhY2FsbEZyYW1lcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgICAgIGlmICh0b3BDYWxsRnJhbWVJc0JvdW5kYXJ5KSB7CisgICAgICAgICAgICAgICAgaWYg
KCFmb3VuZEFzeW5jQm91bmRhcnkpIHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkFTWU5DIENBTEwgU1RBQ0s6Iik7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kQXN5
bmNCb3VuZGFyeSA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGF3
YWl0IGxvZ0NhbGxGcmFtZShjYWxsRnJhbWVzWzBdLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgZm9yIChsZXQgaSA9IHRvcENhbGxGcmFtZUlzQm91bmRhcnkgPyAxIDogMDsg
aSA8IGNhbGxGcmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBsZXQgY2FsbEZy
YW1lID0gY2FsbEZyYW1lc1tpXTsKKyAgICAgICAgICAgICAgICBhd2FpdCBsb2dDYWxsRnJhbWUo
Y2FsbEZyYW1lKTsKKworICAgICAgICAgICAgICAgIC8vIFNraXAgY2FsbCBmcmFtZXMgYWZ0ZXIg
dGhlIHRlc3QgaGFybmVzcyBlbnRyeSBwb2ludC4KKyAgICAgICAgICAgICAgICBpZiAoY2FsbEZy
YW1lLnByb2dyYW1Db2RlKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgaWYgKHRydW5jYXRlZCkKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiKHJlbWFpbmluZyBjYWxsIGZyYW1lcyB0cnVuY2F0ZWQpIik7CisgICAgICAg
IH0KKyAgICB9OworfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRl
cm1lZGlhdGUtZnJhbWVzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwt
ZGVsZXRlZC1mcmFtZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRl
LWZyYW1lcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTQwOTIx
MThlZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
dGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1l
ZGlhdGUtZnJhbWVzLmpzCkBAIC0wLDAgKzEsMjMgQEAKKyJ1c2Ugc3RyaWN0IjsKK2Z1bmN0aW9u
IGEoKSB7CisgICAgbGV0IHggPSAyMDsKKyAgICBkZWJ1Z2dlcjsKKyAgICByZXR1cm4geDsKK30K
K2Z1bmN0aW9uIGIoKSB7CisgICAgbGV0IHkgPSA0MDsKKyAgICByZXR1cm4gYSgpOworfQorZnVu
Y3Rpb24gYygpIHsKKyAgICBsZXQgeiA9IDYwOworICAgIHJldHVybiBiKCk7IAorfQorZnVuY3Rp
b24gc3RhcnRBQkMoKSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1OyArK2kpCisgICAgICAg
IFRISVNfRE9FU19OT1RfQ0FMTF9jKCk7CisgICAgYygpOworfQorZnVuY3Rpb24gZG9Ob3RoaW5n
KCkgeyByZXR1cm4gMTsgfQorZnVuY3Rpb24gVEhJU19ET0VTX05PVF9DQUxMX2MoKSB7CisgICAg
cmV0dXJuIGRvTm90aGluZygpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFt
ZXMtaW50ZXJtZWRpYXRlLW5hdGl2ZS10YWlsLWRlbGV0ZWQtY2FsbHMuanMgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1k
ZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtbmF0aXZlLXRhaWwtZGVsZXRlZC1jYWxscy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDc5ODRhOTIzNGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVk
LWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtbmF0aXZl
LXRhaWwtZGVsZXRlZC1jYWxscy5qcwpAQCAtMCwwICsxLDIyIEBACisidXNlIHN0cmljdCI7Citm
dW5jdGlvbiBhKCkgeworICAgIGxldCB4ID0gMjA7CisgICAgZGVidWdnZXI7CisgICAgcmV0dXJu
IHg7Cit9CitmdW5jdGlvbiBiKCkgeworICAgIGxldCB5ID0gNDA7CisgICAgcmV0dXJuIGEoKTsK
K30KK2Z1bmN0aW9uIGMoKSB7CisgICAgbGV0IHogPSA2MDsKKyAgICByZXR1cm4gYigpOyAKK30K
K2Z1bmN0aW9uIHN0YXJ0QUJDKCkgeworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgKytpKQor
ICAgICAgICBUSElTX0RPRVNfTk9UX0NBTExfYygpOworICAgIGMoKTsKK30KK2Z1bmN0aW9uIFRI
SVNfRE9FU19OT1RfQ0FMTF9jKCkgeworICAgIHJldHVybiBNYXRoLnJhbmRvbSgpOworfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFt
ZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLXRhaWwtZGVsZXRl
ZC1mcmFtZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVk
LWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtdGFpbC1k
ZWxldGVkLWZyYW1lcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ZTQwOTIxMThlZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1p
bnRlcm1lZGlhdGUtdGFpbC1kZWxldGVkLWZyYW1lcy5qcwpAQCAtMCwwICsxLDIzIEBACisidXNl
IHN0cmljdCI7CitmdW5jdGlvbiBhKCkgeworICAgIGxldCB4ID0gMjA7CisgICAgZGVidWdnZXI7
CisgICAgcmV0dXJuIHg7Cit9CitmdW5jdGlvbiBiKCkgeworICAgIGxldCB5ID0gNDA7CisgICAg
cmV0dXJuIGEoKTsKK30KK2Z1bmN0aW9uIGMoKSB7CisgICAgbGV0IHogPSA2MDsKKyAgICByZXR1
cm4gYigpOyAKK30KK2Z1bmN0aW9uIHN0YXJ0QUJDKCkgeworICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgNTsgKytpKQorICAgICAgICBUSElTX0RPRVNfTk9UX0NBTExfYygpOworICAgIGMoKTsKK30K
K2Z1bmN0aW9uIGRvTm90aGluZygpIHsgcmV0dXJuIDE7IH0KK2Z1bmN0aW9uIFRISVNfRE9FU19O
T1RfQ0FMTF9jKCkgeworICAgIHJldHVybiBkb05vdGhpbmcoKTsKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3Jlc291cmNl
cy90YWlsLWRlbGV0ZWQtZnJhbWVzLXNjb3Blcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3Jlc291cmNlcy90YWlsLWRlbGV0ZWQtZnJhbWVz
LXNjb3Blcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWMwYmEw
NGFmN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
dGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1zY29wZXMu
anMKQEAgLTAsMCArMSwxNyBAQAorInVzZSBzdHJpY3QiOworZnVuY3Rpb24gYSgpIHsKKyAgICBs
ZXQgeCA9IDIwOworICAgIGRlYnVnZ2VyOworICAgIHJldHVybiB4OworfQorZnVuY3Rpb24gYigp
IHsKKyAgICBsZXQgeSA9IDQwOworICAgIHJldHVybiBhKCk7Cit9CitmdW5jdGlvbiBjKCkgewor
ICAgIGxldCB6ID0gNjA7CisgICAgcmV0dXJuIGIoKTsgCit9CitmdW5jdGlvbiBzdGFydEFCQygp
IHsKKyAgICBjKCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlz
LXZhbHVlLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1m
cmFtZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDNhZDg0NGU1MGQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1l
cy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLmpzCkBAIC0wLDAgKzEs
MTcgQEAKKyJ1c2Ugc3RyaWN0IjsKK2Z1bmN0aW9uIGEoKSB7CisgICAgbGV0IHggPSAyMDsKKyAg
ICBkZWJ1Z2dlcjsKKyAgICByZXR1cm4geDsKK30KK2Z1bmN0aW9uIGIoKSB7CisgICAgbGV0IHkg
PSA0MDsKKyAgICByZXR1cm4gYS5jYWxsKHthVGhpczogMn0pOworfQorZnVuY3Rpb24gYygpIHsK
KyAgICBsZXQgeiA9IDYwOworICAgIHJldHVybiBiLmNhbGwoe2JUaGlzOiAxfSk7IAorfQorZnVu
Y3Rpb24gc3RhcnRBQkMoKSB7CisgICAgYy5jYWxsKHtjVGhpczogMH0pOworfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvcmVz
b3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdm0tZW50cnkuanMgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVk
LWZyYW1lcy12bS1lbnRyeS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNDY4YThiMTE2YTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1l
cy12bS1lbnRyeS5qcwpAQCAtMCwwICsxLDEwIEBACisidXNlIHN0cmljdCI7CitmdW5jdGlvbiB0
aW1lb3V0KGZvbyA9IDI1KSB7CisgICAgcmV0dXJuIGJhcigpOworfQorZnVuY3Rpb24gYmFyKGkg
PSA5KSB7CisgICAgaWYgKGkgPiAwKQorICAgICAgICByZXR1cm4gYmFyKGkgLSAxKTsKKyAgICBk
ZWJ1Z2dlcjsKKyAgICByZXR1cm4gOTk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWlu
dGVybWVkaWF0ZS1mcmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlh
dGUtZnJhbWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uMGI2NDhmNmNiMjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWludGVy
bWVkaWF0ZS1mcmFtZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK0Vuc3VyZSBwcm9w
ZXIgdGFpbCBkZWxldGVkIGZyYW1lcyB3aXRoIGRpZmZlcmVudCBjYWxsIHN0YWNrcy4KKworCis9
PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IERlYnVnZ2VyLlRhaWxEZWxldGVkRnJhbWVzLkludGVybWVk
aWF0ZUZyYW1lcworLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLlRhaWxEZWxldGVkRnJh
bWVzLkludGVybWVkaWF0ZUZyYW1lcworUEFVU0VECitDQUxMIFNUQUNLOgorMDogW0ZdIGEKKzE6
IC1GLSBiCisyOiAtRi0gYworMzogW0ZdIHN0YXJ0QUJDCis0OiBbUF0gR2xvYmFsIENvZGUKK1JF
U1VNRUQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwt
ZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtZnJhbWVzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90
YWlsLWRlbGV0ZWQtZnJhbWVzLWludGVybWVkaWF0ZS1mcmFtZXMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2M0MWI3NGQ3OTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWls
LWRlbGV0ZWQtZnJhbWVzLWludGVybWVkaWF0ZS1mcmFtZXMuaHRtbApAQCAtMCwwICsxLDM4IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3RhY2stdHJhY2UtdXRpbGl0aWVzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1l
ZGlhdGUtZnJhbWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkRlYnVnZ2Vy
LlRhaWxEZWxldGVkRnJhbWVzLkludGVybWVkaWF0ZUZyYW1lcyIpOworCisgICAgc3VpdGUuYWRk
VGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuSW50
ZXJtZWRpYXRlRnJhbWVzIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJFbnN1cmUgaW50ZXJtZWRp
YXRlIGZyYW1lcyBpbiBhIGxvZyBkbyBub3Qgc2hvdyB1cCBpbiB0aGUgY2FsbCBzdGFjayIsCisg
ICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICAvLyBUcmlnZ2VyIGJyZWFrcG9pbnQu
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBzdGFydEFCQygpYCk7
CisKKyAgICAgICAgICAgIC8vIER1bXAgc3RhY2sgd2hlbiBwYXVzZWQuCisgICAgICAgICAgICBh
d2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRFdmVudChXSS5EZWJ1Z2dlck1hbmFnZXIuRXZl
bnQuUGF1c2VkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVTRUQiKTsKKyAg
ICAgICAgICAgIGF3YWl0IGxvZ0FzeW5jU3RhY2tUcmFjZSgpOworCisgICAgICAgICAgICAvLyBS
ZXN1bWUgYW5kIGVuZCB0ZXN0LgorICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJlc3Vt
ZSgpOworICAgICAgICAgICAgYXdhaXQgV0kuZGVidWdnZXJNYW5hZ2VyLmF3YWl0RXZlbnQoV0ku
RGVidWdnZXJNYW5hZ2VyLkV2ZW50LlJlc3VtZWQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIlJFU1VNRUQiKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVz
dENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KKzxwPkVuc3VyZSBwcm9wZXIgdGFpbCBkZWxldGVkIGZyYW1lcyB3aXRoIGRp
ZmZlcmVudCBjYWxsIHN0YWNrcy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRl
bGV0ZWQtZnJhbWVzLWludGVybWVkaWF0ZS1uYXRpdmUtdGFpbC1kZWxldGVkLWNhbGxzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJh
bWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLW5hdGl2ZS10YWlsLWRlbGV0ZWQt
Y2FsbHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li45YzNkNmE5M2JjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRp
YXRlLW5hdGl2ZS10YWlsLWRlbGV0ZWQtY2FsbHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAg
QEAKK0Vuc3VyZSBwcm9wZXIgdGFpbCBkZWxldGVkIGZyYW1lcyB3aXRoIGRpZmZlcmVudCBjYWxs
IHN0YWNrcy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IERlYnVnZ2VyLlRhaWxEZWxldGVk
RnJhbWVzLkludGVybWVkaWF0ZVRhaWxEZWxldGVkRnJhbWVzCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuSW50ZXJtZWRpYXRlVGFpbERlbGV0ZWRGcmFt
ZXMKK0ZBSUw6IFRoaXMgc2hvdWxkIG5vdCBoYXZlIGBUSElTX0RPRVNfTk9UX0NBTExfY2AgaW4g
dGhlIGNhbGwgc3RhY2suCitQQVVTRUQKK0NBTEwgU1RBQ0s6CiswOiBbRl0gYQorMTogLUYtIGIK
KzI6IC1GLSBjCiszOiAtRi0gVEhJU19ET0VTX05PVF9DQUxMX2MKKzQ6IC1GLSBUSElTX0RPRVNf
Tk9UX0NBTExfYworNTogLUYtIFRISVNfRE9FU19OT1RfQ0FMTF9jCis2OiAtRi0gVEhJU19ET0VT
X05PVF9DQUxMX2MKKzc6IC1GLSBUSElTX0RPRVNfTk9UX0NBTExfYworODogW0ZdIHN0YXJ0QUJD
Cis5OiBbUF0gR2xvYmFsIENvZGUKK1JFU1VNRUQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1l
cy1pbnRlcm1lZGlhdGUtbmF0aXZlLXRhaWwtZGVsZXRlZC1jYWxscy5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZy
YW1lcy1pbnRlcm1lZGlhdGUtbmF0aXZlLXRhaWwtZGVsZXRlZC1jYWxscy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZDBkMzI4MzYwMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVz
L3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLW5hdGl2ZS10YWlsLWRlbGV0ZWQtY2Fs
bHMuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3RhY2st
dHJhY2UtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGFp
bC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtbmF0aXZlLXRhaWwtZGVsZXRlZC1jYWxscy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRl
ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJEZWJ1Z2dlci5UYWlsRGVsZXRlZEZy
YW1lcy5JbnRlcm1lZGlhdGVUYWlsRGVsZXRlZEZyYW1lcyIpOworCisgICAgc3VpdGUuYWRkVGVz
dENhc2UoeworICAgICAgICBuYW1lOiAiRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuSW50ZXJt
ZWRpYXRlVGFpbERlbGV0ZWRGcmFtZXMiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSBp
bnRlcm1lZGlhdGUgdGFpbCBkZWxldGVkIGZyYW1lcyBpbiBhIGxvZyBkbyBub3Qgc2hvdyB1cCBp
biB0aGUgY2FsbCBzdGFjayIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICAv
LyBUcmlnZ2VyIGJyZWFrcG9pbnQuCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKGBzdGFydEFCQygpYCk7CisKKyAgICAgICAgICAgIC8vIEZJWE1FOiBTaGFkb3dDaGlj
a2VuIG9ubHkgd29ya3MgaWYgZWFjaCB0YWlsIGNhbGwgZnVuY3Rpb24gZW1pdHMgYSBwcm9sb2d1
ZQorICAgICAgICAgICAgLy8gb24gZW50cnkuIFVuZm9ydHVuYXRlbHkgbmF0aXZlIGZ1bmN0aW9u
IGNhbGxzIGRvIG5vdCBlbWl0IGEgcHJvbG9ndWUsIHNvIHRoZQorICAgICAgICAgICAgLy8gU2hh
ZG93Q2hpY2tlbiBzdGFjayBjYW5ub3QgcHJvcGVybHkgYXNzZXMgdGhlIHRhaWwgY2FsbCBmcm9t
IGBUSElTX0RPRVNfTk9UX0NBTExfY2AuCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwo
IlRoaXMgc2hvdWxkIG5vdCBoYXZlIGBUSElTX0RPRVNfTk9UX0NBTExfY2AgaW4gdGhlIGNhbGwg
c3RhY2suIikKKworICAgICAgICAgICAgLy8gRHVtcCBzdGFjayB3aGVuIHBhdXNlZC4KKyAgICAg
ICAgICAgIGF3YWl0IFdJLmRlYnVnZ2VyTWFuYWdlci5hd2FpdEV2ZW50KFdJLkRlYnVnZ2VyTWFu
YWdlci5FdmVudC5QYXVzZWQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNF
RCIpOworICAgICAgICAgICAgYXdhaXQgbG9nQXN5bmNTdGFja1RyYWNlKCk7CisKKyAgICAgICAg
ICAgIC8vIFJlc3VtZSBhbmQgZW5kIHRlc3QuCisgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFn
ZXIucmVzdW1lKCk7CisgICAgICAgICAgICBhd2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRF
dmVudChXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUmVzdW1lZCk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiUkVTVU1FRCIpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0
ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPHA+RW5zdXJlIHByb3BlciB0YWlsIGRlbGV0ZWQgZnJhbWVz
IHdpdGggZGlmZmVyZW50IGNhbGwgc3RhY2tzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVz
L3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLXRhaWwtZGVsZXRlZC1mcmFtZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1m
cmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtdGFpbC1kZWxldGVkLWZyYW1l
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlm
MTg0YmNjNjM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUt
dGFpbC1kZWxldGVkLWZyYW1lcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorRW5zdXJl
IHByb3BlciB0YWlsIGRlbGV0ZWQgZnJhbWVzIHdpdGggZGlmZmVyZW50IGNhbGwgc3RhY2tzLgor
CisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuSW50
ZXJtZWRpYXRlVGFpbERlbGV0ZWRGcmFtZXMKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dl
ci5UYWlsRGVsZXRlZEZyYW1lcy5JbnRlcm1lZGlhdGVUYWlsRGVsZXRlZEZyYW1lcworUEFVU0VE
CitDQUxMIFNUQUNLOgorMDogW0ZdIGEKKzE6IC1GLSBiCisyOiAtRi0gYworMzogW0ZdIHN0YXJ0
QUJDCis0OiBbUF0gR2xvYmFsIENvZGUKK1JFU1VNRUQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZy
YW1lcy1pbnRlcm1lZGlhdGUtdGFpbC1kZWxldGVkLWZyYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1l
cy1pbnRlcm1lZGlhdGUtdGFpbC1kZWxldGVkLWZyYW1lcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mY2U5MzJkOTIxZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVs
ZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLXRhaWwtZGVsZXRlZC1mcmFtZXMuaHRtbApAQCAtMCww
ICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3RhY2stdHJhY2UtdXRpbGl0aWVz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1l
cy1pbnRlcm1lZGlhdGUtdGFpbC1kZWxldGVkLWZyYW1lcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVh
dGVBc3luY1N1aXRlKCJEZWJ1Z2dlci5UYWlsRGVsZXRlZEZyYW1lcy5JbnRlcm1lZGlhdGVUYWls
RGVsZXRlZEZyYW1lcyIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1l
OiAiRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuSW50ZXJtZWRpYXRlVGFpbERlbGV0ZWRGcmFt
ZXMiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSBpbnRlcm1lZGlhdGUgdGFpbCBkZWxl
dGVkIGZyYW1lcyBpbiBhIGxvZyBkbyBub3Qgc2hvdyB1cCBpbiB0aGUgY2FsbCBzdGFjayIsCisg
ICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICAvLyBUcmlnZ2VyIGJyZWFrcG9pbnQu
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBzdGFydEFCQygpYCk7
CisKKyAgICAgICAgICAgIC8vIER1bXAgc3RhY2sgd2hlbiBwYXVzZWQuCisgICAgICAgICAgICBh
d2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRFdmVudChXSS5EZWJ1Z2dlck1hbmFnZXIuRXZl
bnQuUGF1c2VkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVTRUQiKTsKKyAg
ICAgICAgICAgIGF3YWl0IGxvZ0FzeW5jU3RhY2tUcmFjZSgpOworCisgICAgICAgICAgICAvLyBS
ZXN1bWUgYW5kIGVuZCB0ZXN0LgorICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJlc3Vt
ZSgpOworICAgICAgICAgICAgYXdhaXQgV0kuZGVidWdnZXJNYW5hZ2VyLmF3YWl0RXZlbnQoV0ku
RGVidWdnZXJNYW5hZ2VyLkV2ZW50LlJlc3VtZWQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIlJFU1VNRUQiKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVz
dENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KKzxwPkVuc3VyZSBwcm9wZXIgdGFpbCBkZWxldGVkIGZyYW1lcyB3aXRoIGRp
ZmZlcmVudCBjYWxsIHN0YWNrcy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRl
bGV0ZWQtZnJhbWVzLXNjb3Blcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXNjb3Blcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjljZmQy
Yzk2YzAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1zY29wZXMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjkgQEAKK0Vuc3VyZSBwcm9wZXIgc2NvcGVzIGluIHRhaWwgZGVsZXRl
ZCBmcmFtZXMuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBEZWJ1Z2dlci5UYWlsRGVsZXRl
ZEZyYW1lcy5TY29wZXMKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5UYWlsRGVsZXRl
ZEZyYW1lcy5TY29wZXMKK1BBVVNFRAorQ0FMTCBTVEFDSzoKKzA6IFtGXSBhCisgIC0tLS1TY29w
ZS0tLS0KKyAgeDogMjAKKyAgLS0tLS0tLS0tLS0tLQorMTogLUYtIGIKKyAgLS0tLVNjb3BlLS0t
LQorICB5OiA0MAorICAtLS0tLS0tLS0tLS0tCisyOiAtRi0gYworICAtLS0tU2NvcGUtLS0tCisg
IHo6IDYwCisgIC0tLS0tLS0tLS0tLS0KKzM6IFtGXSBzdGFydEFCQworICAtLS0tU2NvcGUtLS0t
CisgIC0tICBlbXB0eSAgLS0KKyAgLS0tLS0tLS0tLS0tLQorNDogW1BdIEdsb2JhbCBDb2RlCisg
IC0tLS1TY29wZS0tLS0KKyAgLS0gIGVtcHR5ICAtLQorICAtLS0tLS0tLS0tLS0tCitSRVNVTUVE
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0
ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtc2NvcGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVz
LXNjb3Blcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mM2Zl
ZDk0NmE3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtc2NvcGVzLmh0bWwKQEAg
LTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N0YWNrLXRyYWNlLXV0aWxp
dGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1m
cmFtZXMtc2NvcGVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkRlYnVnZ2Vy
LlRhaWxEZWxldGVkRnJhbWVzLlNjb3BlcyIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2Uoewor
ICAgICAgICBuYW1lOiAiRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuU2NvcGVzIiwKKyAgICAg
ICAgZGVzY3JpcHRpb246ICJFbnN1cmUgc2NvcGVzIGluIHRhaWwgZGVsZXRlZCBmcmFtZXMiLAor
ICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgLy8gVHJpZ2dlciBicmVha3BvaW50
LgorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgc3RhcnRBQkMoKWAp
OworCisgICAgICAgICAgICAvLyBEdW1wIHN0YWNrIHdoZW4gcGF1c2VkLgorICAgICAgICAgICAg
YXdhaXQgV0kuZGVidWdnZXJNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuRGVidWdnZXJNYW5hZ2VyLkV2
ZW50LlBhdXNlZCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0VEIik7Cisg
ICAgICAgICAgICBhd2FpdCBsb2dBc3luY1N0YWNrVHJhY2Uoe2luY2x1ZGVTY29wZTogMH0pOwor
CisgICAgICAgICAgICAvLyBSZXN1bWUgYW5kIGVuZCB0ZXN0LgorICAgICAgICAgICAgV0kuZGVi
dWdnZXJNYW5hZ2VyLnJlc3VtZSgpOworICAgICAgICAgICAgYXdhaXQgV0kuZGVidWdnZXJNYW5h
Z2VyLmF3YWl0RXZlbnQoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlJlc3VtZWQpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJFU1VNRUQiKTsKKyAgICAgICAgfQorICAgIH0pOwor
CisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPkVuc3VyZSBwcm9wZXIgc2NvcGVzIGlu
IHRhaWwgZGVsZXRlZCBmcmFtZXMuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1k
ZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhp
cy12YWx1ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLmU4MmE3OTk3NmRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZh
bHVlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitFbnN1cmUgcHJvcGVyIHRoaXMgdmFs
dWUgaW4gdGFpbCBkZWxldGVkIGZyYW1lcy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IERl
YnVnZ2VyLlRhaWxEZWxldGVkRnJhbWVzLlRoaXNWYWx1ZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6
IERlYnVnZ2VyLlRhaWxEZWxldGVkRnJhbWVzLlNjb3BlcworUEFVU0VECitDQUxMIFNUQUNLOgor
MDogW0ZdIGEKKyAgdGhpczogYVRoaXMgLSAyCisxOiAtRi0gYgorICB0aGlzOiBiVGhpcyAtIDEK
KzI6IC1GLSBjCisgIHRoaXM6IGNUaGlzIC0gMAorMzogW0ZdIHN0YXJ0QUJDCisgIHRoaXM6IHVu
ZGVmaW5lZAorNDogW1BdIEdsb2JhbCBDb2RlCisgIHRoaXM6IHRlc3QgLSAKK1JFU1VNRUQKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1m
cmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVz
LXRoaXMtdmFsdWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ZmUwZTBiN2MwOGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXRoaXMtdmFsdWUu
aHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3RhY2stdHJh
Y2UtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGFpbC1k
ZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3Vp
dGUoIkRlYnVnZ2VyLlRhaWxEZWxldGVkRnJhbWVzLlRoaXNWYWx1ZSIpOworCisgICAgc3VpdGUu
YWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMu
U2NvcGVzIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJFbnN1cmUgdGhpc09iamVjdCBpbiB0YWls
IGRlbGV0ZWQgZnJhbWVzIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIC8v
IFRyaWdnZXIgYnJlYWtwb2ludC4KKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoYHN0YXJ0QUJDKClgKTsKKworICAgICAgICAgICAgLy8gRHVtcCBzdGFjayB3aGVuIHBh
dXNlZC4KKyAgICAgICAgICAgIGF3YWl0IFdJLmRlYnVnZ2VyTWFuYWdlci5hd2FpdEV2ZW50KFdJ
LkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIlBBVVNFRCIpOworICAgICAgICAgICAgYXdhaXQgbG9nQXN5bmNTdGFja1RyYWNlKHtp
bmNsdWRlVGhpc09iamVjdDp0cnVlfSk7CisKKyAgICAgICAgICAgIC8vIFJlc3VtZSBhbmQgZW5k
IHRlc3QuCisgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7CisgICAgICAg
ICAgICBhd2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRFdmVudChXSS5EZWJ1Z2dlck1hbmFn
ZXIuRXZlbnQuUmVzdW1lZCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUkVTVU1F
RCIpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5p
c2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PHA+RW5zdXJlIHByb3BlciB0aGlzIHZhbHVlIGluIHRhaWwgZGVsZXRlZCBmcmFtZXMuPC9wPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy12bS1lbnRyeS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZy
YW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXZtLWVudHJ5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDljNzQzZWNhNTAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90
YWlsLWRlbGV0ZWQtZnJhbWVzLXZtLWVudHJ5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU3IEBA
CitFbnN1cmUgcHJvcGVyIHZhbHVlcyBpbiB0YWlsIGRlbGV0ZWQgZnJhbWVzLgorCisKKz09IFJ1
bm5pbmcgdGVzdCBzdWl0ZTogRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuVk1FbnRyeQorLS0g
UnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLlRhaWxEZWxldGVkRnJhbWVzLlNjb3BlcworUEFV
U0VECitDQUxMIFNUQUNLOgorMDogW0ZdIGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDAKKyAg
LS0tLS0tLS0tLS0tLQorMTogLUYtIGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDEKKyAgLS0t
LS0tLS0tLS0tLQorMjogLUYtIGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDIKKyAgLS0tLS0t
LS0tLS0tLQorMzogLUYtIGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDMKKyAgLS0tLS0tLS0t
LS0tLQorNDogLUYtIGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDQKKyAgLS0tLS0tLS0tLS0t
LQorNTogLUYtIGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDUKKyAgLS0tLS0tLS0tLS0tLQor
NjogLUYtIGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDYKKyAgLS0tLS0tLS0tLS0tLQorNzog
LUYtIGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDcKKyAgLS0tLS0tLS0tLS0tLQorODogLUYt
IGJhcgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDgKKyAgLS0tLS0tLS0tLS0tLQorOTogLUYtIGJh
cgorICAtLS0tU2NvcGUtLS0tCisgIGk6IDkKKyAgLS0tLS0tLS0tLS0tLQorMTA6IC1GLSB0aW1l
b3V0CisgIC0tLS1TY29wZS0tLS0KKyAgZm9vOiAyNQorICAtLS0tLS0tLS0tLS0tCitBU1lOQyBD
QUxMIFNUQUNLOgorMTE6IC0tLSBzZXRUaW1lb3V0IC0tLQorMTI6IFtQXSBHbG9iYWwgQ29kZQor
ICAtLS0tU2NvcGUtLS0tCitSRVNVTUVECisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdm0t
ZW50cnkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQt
ZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdm0tZW50cnkuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWIyYmUwYWM2NTYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRl
bGV0ZWQtZnJhbWVzLXZtLWVudHJ5Lmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3N0YWNrLXRyYWNlLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdm0tZW50cnkuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWco
KTsKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkRlYnVn
Z2VyLlRhaWxEZWxldGVkRnJhbWVzLlZNRW50cnkiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNl
KHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLlRhaWxEZWxldGVkRnJhbWVzLlNjb3BlcyIsCisg
ICAgICAgIGRlc2NyaXB0aW9uOiAiRW5zdXJlIHByb3BlciB2YWx1ZXMgaW4gdGFpbCBkZWxldGVk
IGZyYW1lcyIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICAvLyBUcmlnZ2Vy
IGJyZWFrcG9pbnQuCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBz
ZXRUaW1lb3V0KHRpbWVvdXQpYCk7CisKKyAgICAgICAgICAgIC8vIER1bXAgc3RhY2sgd2hlbiBw
YXVzZWQuCisgICAgICAgICAgICBhd2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRFdmVudChX
SS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJQQVVTRUQiKTsKKyAgICAgICAgICAgIGF3YWl0IGxvZ0FzeW5jU3RhY2tUcmFjZSh7
aW5jbHVkZVNjb3BlOiAxfSk7CisKKyAgICAgICAgICAgIC8vIFJlc3VtZSBhbmQgZW5kIHRlc3Qu
CisgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7CisgICAgICAgICAgICBh
d2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRFdmVudChXSS5EZWJ1Z2dlck1hbmFnZXIuRXZl
bnQuUmVzdW1lZCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUkVTVU1FRCIpOwor
ICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+RW5z
dXJlIHByb3BlciB2YWx1ZXMgaW4gdGFpbCBkZWxldGVkIGZyYW1lcy48L3A+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDc2
NTNjMDMzMWZiLi5kNmYyMzlhODhkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTEwNjAsOCArMTA2MCw3IEBAIHdlYmtpdC5vcmcvYi8xNjgwOTAgWyBE
ZWJ1ZyBdIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWNvbHVtbnMuaHRtbCBbIFBhc3MK
IHdlYmtpdC5vcmcvYi8xNjE5NTEgWyBSZWxlYXNlIF0gaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
cG9pbnRzL3Jlc29sdmVkLWR1bXAtZWFjaC1saW5lLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogd2Vi
a2l0Lm9yZy9iLzE2NzcxMSBbIERlYnVnIF0gaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb2JlLW1hbmFn
ZXItYWRkLXJlbW92ZS1hY3Rpb25zLmh0bWwgWyBTbG93IF0KIHdlYmtpdC5vcmcvYi8xNjgzOTkg
WyBEZWJ1ZyBdIGluc3BlY3Rvci9kZWJ1Z2dlci9zZWFyY2gtc2NyaXB0cy5odG1sIFsgUGFzcyBU
aW1lb3V0IF0KLXdlYmtpdC5vcmcvYi8xODE5NTIgWyBEZWJ1ZyBdIGluc3BlY3Rvci9kZWJ1Z2dl
ci90YWlsLWRlbGV0ZWQtZnJhbWVzLWZyb20tdm0tZW50cnkuaHRtbCBbIFNsb3cgXQotd2Via2l0
Lm9yZy9iLzE2OTExOSBbIERlYnVnIF0gaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1m
cmFtZXMtdGhpcy12YWx1ZS5odG1sIFsgUGFzcyBUaW1lb3V0IF0KK3dlYmtpdC5vcmcvYi8xODE5
NTIgWyBEZWJ1ZyBdIGluc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwt
ZGVsZXRlZC1mcmFtZXMtdm0tZW50cnkuaHRtbCBbIFNsb3cgXQogd2Via2l0Lm9yZy9iLzE2ODM4
NyBbIERlYnVnIF0gaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtcmVjdXJzaW9uLmh0bWwgWyBQYXNz
IFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzE3MDEyNyBpbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2Rv
bS1icmVha3BvaW50cy5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcvYi8xNDg2MzYg
aW5zcGVjdG9yL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5vZGUuaHRtbCBbIFBh
c3MgVGltZW91dCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAxYmYzZDVmNTg5OC4uODc1
ZmY2YTA5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOCBAQAorMjAx
OS0wOC0zMSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAg
IFRhaWwgRGVsZXRlZCBGcmFtZXMgc2hvd24gaW4gV2ViIEluc3BlY3RvciBhcmUgc29tZXRpbWVz
IGluY29ycmVjdCAoU2hhZG93IENoaWNrZW4pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEzNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJdCBpcyBwb3NzaWJsZSBmb3IgdGhlIGxvZyBidWZmZXIgdG8g
YmUgZnVsbCByaWdodCBhcyBzb21lb25lIGlzIHRyeWluZyB0bworICAgICAgICBsb2cgYSBmdW5j
dGlvbiBwcm9sb2d1ZS4gSW4gc3VjaCBhIGNhc2UgdGhlIG1hY2hpbmUgc3RhY2sgaGFzIGFscmVh
ZHkgYmVlbgorICAgICAgICB1cGRhdGVkIHRvIGluY2x1ZGUgdGhlIG5ldyBKYXZhU2NyaXB0IGNh
bGwgZnJhbWUsIGJ1dCB0aGUgcHJvbG9ndWUgcGFja2V0CisgICAgICAgIGNhbm5vdCBiZSBpbmNs
dWRlZCBpbiB0aGUgdXBkYXRlIGJlY2F1c2UgdGhlIGxvZyBpcyBmdWxsLiBUaGlzIHdvdWxkIG1l
YW4KKyAgICAgICAgdGhhdCB0aGUgdXBkYXRlIGZhaWxzIHRvIHJhdGlvbmFsaXplIHRoZSBtYWNo
aW5lIHN0YWNrIHdpdGggdGhlIHNoYWRvdworICAgICAgICBsb2cgLyBzdGFjay4gTmFtZWx5LCB0
aGUgY3VycmVudCBKYXZhU2NyaXB0IGNhbGwgZnJhbWUgaXMgdW5hYmxlIHRvCisgICAgICAgIGZp
bmQgYSBtYXRjaGluZyBwcm9sb2d1ZSAodGhlIG9uZSB3ZSBhcmUgaG9sZGluZyB0byBpbmNsdWRl
IGFmdGVyIHRoZSB1cGRhdGUpCisgICAgICAgIGFuZCBpbnNlcnRzIGEgcXVlc3Rpb25hYmxlIHZh
bHVlIGludG8gdGhlIHN0YWNrOyBhbmQgaW4gdGhlIHByb2Nlc3MKKyAgICAgICAgbWlzc2luZyBh
bmQgcmVtb3ZpbmcgcmVhbCBwb3RlbnRpYWwgdGFpbCBjYWxscy4KKworICAgICAgICBGb3IgZXhh
bXBsZToKKyAgICAgICAgCisgICAgICAgICAgICAidXNlIHN0cmljdCI7CisgICAgICAgICAgICBm
dW5jdGlvbiB0aGlyZCgpIHsgcmV0dXJuIDE7IH0KKyAgICAgICAgICAgIGZ1bmN0aW9uIHNlY29u
ZCgpIHsgcmV0dXJuIHRoaXJkKCk7IH0KKyAgICAgICAgICAgIGZ1bmN0aW9uIGZpcnN0KCkgeyBy
ZXR1cm4gc2Vjb25kKCk7IH0KKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkgeyByZXR1cm4g
Zmlyc3QoKTsgfQorCisgICAgICAgIElmIHRoZSB0aGUgbG9nIGZpbGxzIHVwIGp1c3QgYXMgd2Ug
YXJlIGVudGVyaW5nIGBiYCB0aGVuIHdlIG1heSBoYXZlIGEgbGlzdAorICAgICAgICBmdWxsIGxv
ZyBvZiBwYWNrZXRzIGxvb2tpbmcgbGlrZToKKworICAgICAgICAgIFNoYWRvdyBMb2c6CisgICAg
ICAgICAgICAuLi4KKyAgICAgICAgICAgIHsgcHJvbG9ndWUtcGFja2V0OiBlbnRlcmluZyBgc3Rh
cnRgIC4uLiB9CisgICAgICAgICAgICB7IHByb2xvZ3VlLXBhY2tldDogZW50ZXJpbmcgYGZpcnN0
YCAuLi4gfQorICAgICAgICAgICAgeyB0YWlsLXBhY2tldDogbGVhdmluZyBgZmlyc3RgIHdpdGgg
YSB0YWlsIGNhbGwgfQorCisgICAgICAgICAgSW5jb21pbmcgUGFja2V0OgorICAgICAgICAgICAg
eyBwcm9sb2d1ZS1wYWNrZXQ6IGVudGVyaW5nIGBzZWNvbmRgIC4uLiB9CisKKyAgICAgICAgICBD
dXJyZW50IEpTIFN0YWNrOgorICAgICAgICAgICAgc2Vjb25kCisgICAgICAgICAgICBzdGFydAor
CisgICAgICAgIFNpbmNlIHRoZSBDdXJyZW50IEphdmFTY3JpcHQgc3RhY2sgYWxyZWFkeSBoYXMg
YHNlY29uZGAsIGlmIHdlIHByb2Nlc3MgdGhlCisgICAgICAgIGxvZyB3aXRob3V0IHRoZSBwcm9s
b2d1ZSBmb3IgYHNlY29uZGAgdGhlbiB3ZSBwdXNoIGEgY29uZnVzZWQgZW50cnkgb24gdGhlCisg
ICAgICAgIHNoYWRvdyBzdGFjayBhbmQgY2xlYXIgdGhlIGxvZyBzdWNoIHRoYXQgd2UgZXZlbnR1
YWxseSBsb3NlIHRoZSB0YWlsLWNhbGwKKyAgICAgICAgaW5mb3JtYXRpb24gZm9yIGBmaXJzdGAg
dG8gYHNlY29uZGAuCisKKyAgICAgICAgVGhpcyBwYXRjaCBzb2x2ZXMgdGhpcyBpc3N1ZSBieSBw
cm92aWRpbmcgZW5vdWdoIGV4dHJhIHNwYWNlIGluIHRoZSBsb2cKKyAgICAgICAgdG8gYWx3YXlz
IHByb2Nlc3MgdGhlIGluY29taW5nIHBhY2tldCB3aGVuIHRoYXQgZm9yY2VzIGFuIHVwZGF0ZS4g
VGhpcyB3YXkKKyAgICAgICAgY2xpZW50cyBjYW4gY29udGludWUgdG8gYmVoYXZlIGV4YWN0bHkg
YXMgdGhleSBhcmUuCisKKyAgICAgICAgLS0KKworICAgICAgICBXZSBhbHNvIGRvY3VtZW50IGEg
Y29ybmVyIGNhc2UgaW4gc29tZSBjaXJjdW1zdGFuY2VzIHdoZXJlIHRoZSBzaGFkb3cKKyAgICAg
ICAgbG9nIG1heSBjdXJyZW50bHkgYmUgaW5zdWZmaWNpZW50IHRvIGtub3cgaG93IHRvIHJlY29u
Y2lsZToKKyAgICAgICAgCisgICAgICAgIEZvciBleGFtcGxlOgorCisgICAgICAgICAgICAidXNl
IHN0cmljdCI7CisgICAgICAgICAgICBmdW5jdGlvbiB0aGlyZCgpIHsgcmV0dXJuIDE7IH0KKyAg
ICAgICAgICAgIGZ1bmN0aW9uIHNlY29uZCgpIHsgcmV0dXJuIHRoaXJkKCk7IH0KKyAgICAgICAg
ICAgIGZ1bmN0aW9uIGZpcnN0KCkgeyByZXR1cm4gc2Vjb25kKCk7IH0KKyAgICAgICAgICAgIGZ1
bmN0aW9uIGRvTm90aGluZ1RhaWwoKSB7IHJldHVybiBNYXRoLnJhbmRvbSgpIH0KKyAgICAgICAg
ICAgIGZ1bmN0aW9uIHN0YXJ0KCkgeworICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8MTAwMDsr
K2kpIGRvTm90aGluZ1RhaWwoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmlyc3QoKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICBJbiB0aGlzIGNhc2UgdGhlIFNoYWRvd0NoaWNrZW4gbG9n
IG1heSBiZSBwcm9jZXNzZWQgbXVsdGlwbGUgdGltZXMgZHVlCisgICAgICAgIHRvIHRoZSBtYW55
IGNhbGxzIHRvIGBkb05vdGhpbmdUYWlsYCAvIGBNYXRoLnJhbmRvbSgpYC4gV2hlbiBjYWxsaW5n
IHRoZQorICAgICAgICBOYXRpdmUgZnVuY3Rpb24gbm8gcHJvbG9ndWUgcGFja2V0IGlzIGVtaXR0
ZWQsIHNvIGl0IGlzIHVuY2xlYXIgdGhhdCB3ZQorICAgICAgICB0ZW1wb3Jhcmx5IGdvIGRlZXBl
ciBhbmQgY29tZSBiYWNrIG91dCBvbiB0aGUgc3RhY2ssIHNvIHRoZSBsb2cgYXBwZWFycworICAg
ICAgICB0byBoYXZlIGxvdHMgb2YgZG9Ob3RoaW5nVGFpbCBjYWxscyByZXVzaW5nIHRoZSBzYW1l
IGZyYW1lOgorCisgICAgICAgICAgU2hhZG93IExvZzoKKyAgICAgICAgICAgIC4uLgorICAgICAg
ICAgICAgLCBbMTIzXSB7Y2FsbGVlID0gMHg3MmEyMWFlZTAsIGZyYW1lID0gMHg3ZmZlZWY4OTcy
NzAsIGNhbGxlckZyYW1lID0gMHg3ZmZlZWY4OTcyZTAsIG5hbWUgPSBzdGFydH0KKyAgICAgICAg
ICAgICwgWzEyNF0ge2NhbGxlZSA9IDB4NzJhMjFhZjEwLCBmcmFtZSA9IDB4N2ZmZWVmODk3MWYw
LCBjYWxsZXJGcmFtZSA9IDB4N2ZmZWVmODk3MjcwLCBuYW1lID0gZG9Ob3RoaW5nVGFpbH0KKyAg
ICAgICAgICAgICwgWzEyNV0gdGFpbC1wYWNrZXQ6e2ZyYW1lID0gMHg3ZmZlZWY4OTcxZjB9Cisg
ICAgICAgICAgICAsIFsxMjZdIHtjYWxsZWUgPSAweDcyYTIxYWYxMCwgZnJhbWUgPSAweDdmZmVl
Zjg5NzFmMCwgY2FsbGVyRnJhbWUgPSAweDdmZmVlZjg5NzI3MCwgbmFtZSA9IGRvTm90aGluZ1Rh
aWx9CisgICAgICAgICAgICAsIFsxMjddIHRhaWwtcGFja2V0OntmcmFtZSA9IDB4N2ZmZWVmODk3
MWYwfQorICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAsIFsxNDBdIHtjYWxsZWUgPSAweDcy
YTIxYWYxMCwgZnJhbWUgPSAweDdmZmVlZjg5NzFmMCwgY2FsbGVyRnJhbWUgPSAweDdmZmVlZjg5
NzI3MCwgbmFtZSA9IGRvTm90aGluZ1RhaWx9CisgICAgICAgICAgICAsIFsxNDFdIHRhaWwtcGFj
a2V0OntmcmFtZSA9IDB4N2ZmZWVmODk3MWYwfQorICAgICAgICAgICAgLCBbMTQyXSB7Y2FsbGVl
ID0gMHg3MmEyMWFmMTAsIGZyYW1lID0gMHg3ZmZlZWY4OTcxZjAsIGNhbGxlckZyYW1lID0gMHg3
ZmZlZWY4OTcyNzAsIG5hbWUgPSBkb05vdGhpbmdUYWlsfQorICAgICAgICAgICAgLCBbMTQzXSB0
YWlsLXBhY2tldDp7ZnJhbWUgPSAweDdmZmVlZjg5NzFmMH0KKyAgICAgICAgICAgICwgWzE0NF0g
e2NhbGxlZSA9IDB4NzJhMjFhZWIwLCBmcmFtZSA9IDB4N2ZmZWVmODk3MWYwLCBjYWxsZXJGcmFt
ZSA9IDB4N2ZmZWVmODk3MjcwLCBuYW1lID0gZmlyc3R9CisgICAgICAgICAgICAsIFsxNDVdIHRh
aWwtcGFja2V0OntmcmFtZSA9IDB4N2ZmZWVmODk3MWYwfQorICAgICAgICAgICAgLCBbMTQ2XSB7
Y2FsbGVlID0gMHg3MmEyMWFlODAsIGZyYW1lID0gMHg3ZmZlZWY4OTcxZjAsIGNhbGxlckZyYW1l
ID0gMHg3ZmZlZWY4OTcyNzAsIG5hbWUgPSBzZWNvbmR9CisgICAgICAgICAgICAuLi4KKworICAg
ICAgICBUaGlzIGxvZyB3b3VsZCBzZWVtIHRvIGJlIGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gcmVh
bCB0YWlsIHJlY3Vyc2lvbiwgc3VjaCBhczoKKworICAgICAgICAgICAgInVzZSBzdHJpY3QiOwor
ICAgICAgICAgICAgZnVuY3Rpb24gdGhpcmQoKSB7IHJldHVybiAxOyB9CisgICAgICAgICAgICBm
dW5jdGlvbiBzZWNvbmQoKSB7IHJldHVybiB0aGlyZCgpOyB9CisgICAgICAgICAgICBmdW5jdGlv
biBmaXJzdCgpIHsgcmV0dXJuIHNlY29uZCgpOyB9CisgICAgICAgICAgICBmdW5jdGlvbiBkb05v
dGhpbmdUYWlsKG4pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbiA/IGRvTm90aGluZ1RhaWwo
bi0xKSA6IGZpcnN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmdW5jdGlvbiBzdGFy
dCgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZG9Ob3RoaW5nVGFpbCgxMDAwKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICBMaWtld2lzZSB0aGVyZSBhcmUgbW9yZSBjYXNlcyB3aGVyZSB0
aGUgc2hhZG93IGxvZyBhcHBlYXJzIHRvIGJlIGFtYmlndW91cyB3aXRoIGRldGVybWluaW5nCisg
ICAgICAgIHRoZSBhcHByb3ByaWF0ZSBwYXJlbnQgY2FsbCBmcmFtZSB3aXRoIGludGVybWVkaWF0
ZSBmdW5jdGlvbiBjYWxscy4gSW4gcHJhY3RpY2UgdGhpcyBtYXkKKyAgICAgICAgbm90IGJlIHRv
byBwcm9ibGVtYXRpYywgYXMgdGhpcyBpcyBhIGJlc3QgZWZmb3J0IHJlY29uc3RydWN0aW9uIG9m
IHRhaWwgZGVsZXRlZCBmcmFtZXMuCisgICAgICAgIEl0IHNlZW1zIGxpa2VseSB3ZSB3b3VsZCBv
bmx5IHNob3cgYWRkaXRpb25hbCBmcmFtZXMgdGhhdCBkaWQgaW4gZmFjdCBoYXBwZW4gc2VyaWFs
bHkKKyAgICAgICAgYmV0d2VlbiBKYXZhU2NyaXB0IGNhbGwgZnJhbWVzLCBidXQgbWF5IG5vdCBh
Y3R1YWxseSBiZSB0aGUgcHJvcGVyIHBhcmVudCBmcmFtZXMKKyAgICAgICAgaGVpcmFjaHkgaW4g
dGhlIHN0YWNrLgorCisgICAgICAgICogaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tlbi5jcHA6Cisg
ICAgICAgIChKU0M6OlNoYWRvd0NoaWNrZW46OlBhY2tldDo6ZHVtcCBjb25zdCk6CisgICAgICAg
IChKU0M6OlNoYWRvd0NoaWNrZW46OkZyYW1lOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
U2hhZG93Q2hpY2tlbjo6ZHVtcCBjb25zdCk6CisgICAgICAgIEltcHJvdmVkIGRlYnVnZ2luZyBv
dXRwdXQuIEVzcGVjaWFsbHkgZm9yIGZ1bmN0aW9ucy4KKworICAgICAgICAoSlNDOjpTaGFkb3dD
aGlja2VuOjpTaGFkb3dDaGlja2VuKToKKyAgICAgICAgTWFrZSBzcGFjZSBpbiB0aGUgbG9nIGZv
ciAxIGFkZGl0aW9uYWwgcGFja2V0IHRvIHByb2Nlc3Mgd2hlbiB3ZSBzbG93IGxvZy4KKworICAg
ICAgICAoSlNDOjpTaGFkb3dDaGlja2VuOjpsb2cpOgorICAgICAgICBJbmNsdWRlIHRoaXMgcGFj
a2V0IGluIG91ciB1cGRhdGUuCisKKyAgICAgICAgKEpTQzo6U2hhZG93Q2hpY2tlbjo6dXBkYXRl
KToKKyAgICAgICAgQWRkcmVzcyBhbiBlZGdlIGNhc2Ugd2hlcmUgd2UgY2FuIGVsaW1pbmF0ZSB0
YWlsLWRlbGV0ZWQgZnJhbWVzIHRoYXQgZG9uJ3QgbWFrZSBzZW5zZS4KKwogMjAxOS0wOC0yOCAg
Sm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IExvY2FsIE92ZXJyaWRlcyAtIFByb3ZpZGUgc3Vic3RpdHV0aW9uIGNvbnRlbnQgZm9y
IHJlc291cmNlIGxvYWRzIChVUkwgYmFzZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tlbi5jcHAKaW5kZXggNmM1MGEzMjMzNDUuLjgwYTlh
ODY2MDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU2hh
ZG93Q2hpY2tlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1No
YWRvd0NoaWNrZW4uY3BwCkBAIC00NSw5ICs0NSwxNiBAQCB2b2lkIFNoYWRvd0NoaWNrZW46OlBh
Y2tldDo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIH0KICAgICAKICAgICBpZiAo
aXNQcm9sb2d1ZSgpKSB7CisgICAgICAgIFN0cmluZyBuYW1lID0gIj8iX3M7CisgICAgICAgIGlm
IChhdXRvKiBmdW5jdGlvbiA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KGNhbGxlZS0+dm0o
KSwgY2FsbGVlKSkgeworICAgICAgICAgICAgbmFtZSA9IGZ1bmN0aW9uLT5uYW1lKGNhbGxlZS0+
dm0oKSk7CisgICAgICAgICAgICBpZiAobmFtZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAg
bmFtZSA9ICI/Il9zOworICAgICAgICB9CisKICAgICAgICAgb3V0LnByaW50KAogICAgICAgICAg
ICAgIntjYWxsZWUgPSAiLCBSYXdQb2ludGVyKGNhbGxlZSksICIsIGZyYW1lID0gIiwgUmF3UG9p
bnRlcihmcmFtZSksICIsIGNhbGxlckZyYW1lID0gIiwKLSAgICAgICAgICAgIFJhd1BvaW50ZXIo
Y2FsbGVyRnJhbWUpLCAifSIpOworICAgICAgICAgICAgUmF3UG9pbnRlcihjYWxsZXJGcmFtZSks
ICIsIG5hbWUgPSAiLCBuYW1lLCAifSIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApA
QCAtNjIsMTUgKzY5LDI3IEBAIHZvaWQgU2hhZG93Q2hpY2tlbjo6UGFja2V0OjpkdW1wKFByaW50
U3RyZWFtJiBvdXQpIGNvbnN0CiAKIHZvaWQgU2hhZG93Q2hpY2tlbjo6RnJhbWU6OmR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKIHsKKyAgICBTdHJpbmcgbmFtZSA9ICI/Il9zOworICAgIGlm
IChhdXRvKiBmdW5jdGlvbiA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KGNhbGxlZS0+dm0o
KSwgY2FsbGVlKSkgeworICAgICAgICBuYW1lID0gZnVuY3Rpb24tPm5hbWUoY2FsbGVlLT52bSgp
KTsKKyAgICAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgbmFtZSA9ICI/Il9z
OworICAgIH0KKwogICAgIG91dC5wcmludCgKLSAgICAgICAgIntjYWxsZWUgPSAiLCBSYXdQb2lu
dGVyKGNhbGxlZSksICIsIGZyYW1lID0gIiwgUmF3UG9pbnRlcihmcmFtZSksICIsIGlzVGFpbERl
bGV0ZWQgPSAiLAotICAgICAgICBpc1RhaWxEZWxldGVkLCAifSIpOworICAgICAgICAie2NhbGxl
ZSA9ICIsICpjYWxsZWUsICIsIGZyYW1lID0gIiwgUmF3UG9pbnRlcihmcmFtZSksICIsIGlzVGFp
bERlbGV0ZWQgPSAiLAorICAgICAgICBpc1RhaWxEZWxldGVkLCAiLCBuYW1lID0gIiwgbmFtZSwg
In0iKTsKIH0KIAogU2hhZG93Q2hpY2tlbjo6U2hhZG93Q2hpY2tlbigpCiAgICAgOiBtX2xvZ1Np
emUoT3B0aW9uczo6c2hhZG93Q2hpY2tlbkxvZ1NpemUoKSkKIHsKLSAgICBtX2xvZyA9IHN0YXRp
Y19jYXN0PFBhY2tldCo+KGZhc3RaZXJvZWRNYWxsb2Moc2l6ZW9mKFBhY2tldCkgKiBtX2xvZ1Np
emUpKTsKKyAgICAvLyBBbGxvdyBvbmUgYWRkaXRpb25hbCBwYWNrZXQgYmV5b25kIG1fbG9nRW5k
LiBUaGlzIGlzIHVzZWZ1bCBmb3IgdGhlIG1vbWVudCB3ZQorICAgIC8vIGxvZyBhIHBhY2tldCB3
aGVuIHRoZSBsb2cgaXMgZnVsbCBhbmQgZm9yY2UgYW4gdXBkYXRlLiBBdCB0aGF0IG1vbWVudCB0
aGUgcGFja2V0CisgICAgLy8gdGhhdCBpcyBiZWluZyBsb2dnZWQgc2hvdWxkIGJlIGluY2x1ZGVk
IGluIHRoZSB1cGRhdGUgYmVjYXVzZSBpdCBtYXkgYmUKKyAgICAvLyBhIGNyaXRpY2FsIHByb2xv
Z3VlIG5lZWRlZCB0byByYXRpb25hbGl6ZSB0aGUgY3VycmVudCBtYWNoaW5lIHN0YWNrIHdpdGgg
dGhlCisgICAgLy8gc2hhZG93IHN0YWNrLgorICAgIG1fbG9nID0gc3RhdGljX2Nhc3Q8UGFja2V0
Kj4oZmFzdFplcm9lZE1hbGxvYyhzaXplb2YoUGFja2V0KSAqIG1fbG9nU2l6ZSArIDEpKTsKICAg
ICBtX2xvZ0N1cnNvciA9IG1fbG9nOwogICAgIG1fbG9nRW5kID0gbV9sb2cgKyBtX2xvZ1NpemU7
CiB9CkBAIC04Miw4ICsxMDEsOSBAQCBTaGFkb3dDaGlja2VuOjp+U2hhZG93Q2hpY2tlbigpCiAK
IHZvaWQgU2hhZG93Q2hpY2tlbjo6bG9nKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBQ
YWNrZXQmIHBhY2tldCkKIHsKLSAgICB1cGRhdGUodm0sIGV4ZWMpOworICAgIC8vIFRoaXMgd3Jp
dGUgaXMgYWxsb3dlZCBiZWNhdXNlIHdlIGNvbnN0cnVjdCB0aGUgbG9nIHdpdGggc3BhY2UgZm9y
IDEgYWRkaXRpb25hbCBwYWNrZXQuCiAgICAgKm1fbG9nQ3Vyc29yKysgPSBwYWNrZXQ7CisgICAg
dXBkYXRlKHZtLCBleGVjKTsKIH0KIAogdm9pZCBTaGFkb3dDaGlja2VuOjp1cGRhdGUoVk0mIHZt
LCBFeGVjU3RhdGUqIGV4ZWMpCkBAIC0xNDIsNyArMTYyLDYgQEAgdm9pZCBTaGFkb3dDaGlja2Vu
Ojp1cGRhdGUoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICAKICAgICBpZiAoU2hhZG93Q2hpY2tlbkludGVybmFsOjp2ZXJib3NlKQogICAgICAgICBkYXRh
TG9nKCIgICAgUmV2aXNlZCBzdGFjazogIiwgbGlzdER1bXAobV9zdGFjayksICJcbiIpOwogICAg
IApAQCAtMjAzLDkgKzIyMiwxMSBAQCB2b2lkIFNoYWRvd0NoaWNrZW46OnVwZGF0ZShWTSYgdm0s
IEV4ZWNTdGF0ZSogZXhlYykKICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHRvcCBzdGFj
ayBmcmFtZSBpcyBhY3R1YWxseSBsb3dlciB0aGFuIGhpZ2hlc3RQb2ludFNpbmNlTGFzdFRpbWUu
CiAgICAgLy8gQWNjb3VudCBmb3IgdGhhdCBoZXJlLgogICAgIGhpZ2hlc3RQb2ludFNpbmNlTGFz
dFRpbWUgPSBudWxscHRyOworICAgIHVuc2lnbmVkIGhpZ2hlc3RQb2ludFNpbmNlTGFzdFRpbWVJ
bmRleCA9IDA7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9zdGFjay5zaXplKCk7IGktLTspIHsK
ICAgICAgICAgaWYgKCFtX3N0YWNrW2ldLmlzVGFpbERlbGV0ZWQpIHsKICAgICAgICAgICAgIGhp
Z2hlc3RQb2ludFNpbmNlTGFzdFRpbWUgPSBtX3N0YWNrW2ldLmZyYW1lOworICAgICAgICAgICAg
aGlnaGVzdFBvaW50U2luY2VMYXN0VGltZUluZGV4ID0gaTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgfQpAQCAtMjczLDYgKzI5NCw3IEBAIHZvaWQgU2hhZG93Q2hpY2tlbjo6
dXBkYXRlKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfTsKICAgICAKKyAgICBib29sIHJlYWNoZWRMYXN0SGlnaGVzdFBvaW50ID0gZmFsc2U7CiAg
ICAgVmVjdG9yPEZyYW1lPiB0b1B1c2g7CiAgICAgU3RhY2tWaXNpdG9yOjp2aXNpdCgKICAgICAg
ICAgZXhlYywgJnZtLCBbJl0gKFN0YWNrVmlzaXRvciYgdmlzaXRvcikgLT4gU3RhY2tWaXNpdG9y
OjpTdGF0dXMgewpAQCAtMjg4LDExICszMTAsMTcgQEAgdm9pZCBTaGFkb3dDaGlja2VuOjp1cGRh
dGUoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gdmlzaXRvci0+Y2FsbEZyYW1lKCk7Ci0gICAgICAgICAg
ICBpZiAoU2hhZG93Q2hpY2tlbkludGVybmFsOjp2ZXJib3NlKQotICAgICAgICAgICAgICAgIGRh
dGFMb2coIiAgICBFeGFtaW5pbmcgIiwgUmF3UG9pbnRlcihjYWxsRnJhbWUpLCAiXG4iKTsKKyAg
ICAgICAgICAgIGlmIChTaGFkb3dDaGlja2VuSW50ZXJuYWw6OnZlcmJvc2UpIHsKKyAgICAgICAg
ICAgICAgICBkYXRhTG9nKCIgICAgRXhhbWluaW5nIGNhbGxGcmFtZToiLCBSYXdQb2ludGVyKGNh
bGxGcmFtZSksICIsIGNhbGxlZToiLCBSYXdQb2ludGVyKGNhbGxGcmFtZS0+anNDYWxsZWUoKSks
ICIsIGNhbGxlckZyYW1lOiIsIFJhd1BvaW50ZXIoY2FsbEZyYW1lLT5jYWxsZXJGcmFtZSgpKSwg
IlxuIik7CisgICAgICAgICAgICAgICAgSlNPYmplY3QqIGNhbGxlZSA9IGNhbGxGcmFtZS0+anND
YWxsZWUoKTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byogZnVuY3Rpb24gPSBqc0R5bmFtaWND
YXN0PEpTRnVuY3Rpb24qPihjYWxsZWUtPnZtKCksIGNhbGxlZSkpCisgICAgICAgICAgICAgICAg
ICAgIGRhdGFMb2coIiAgICAgIEZ1bmN0aW9uID0gIiwgZnVuY3Rpb24tPm5hbWUoY2FsbGVlLT52
bSgpKSwgIlxuIik7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGlmIChjYWxsRnJhbWUg
PT0gaGlnaGVzdFBvaW50U2luY2VMYXN0VGltZSkgewogICAgICAgICAgICAgICAgIGlmIChTaGFk
b3dDaGlja2VuSW50ZXJuYWw6OnZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgIGRhdGFMb2co
IiAgICBCYWlsaW5nIGF0ICIsIFJhd1BvaW50ZXIoY2FsbEZyYW1lKSwgIiBiZWNhdXNlIGl0J3Mg
dGhlIGhpZ2hlc3QgcG9pbnQgc2luY2UgbGFzdCB0aW1lLlxuIik7CisgICAgICAgICAgICAgICAg
ICAgIGRhdGFMb2coIiAgICBCYWlsaW5nIGF0ICIsIFJhd1BvaW50ZXIoY2FsbEZyYW1lKSwgIiBi
ZWNhdXNlIGl0J3MgdGhlIGhpZ2hlc3QgcG9pbnQgc2luY2UgbGFzdCB0aW1lXG4iKTsKKyAgICAg
ICAgICAgICAgICByZWFjaGVkTGFzdEhpZ2hlc3RQb2ludCA9IHRydWU7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6RG9uZTsKICAgICAgICAgICAgIH0KIApAQCAtMzE4LDcg
KzM0Niw3IEBAIHZvaWQgU2hhZG93Q2hpY2tlbjo6dXBkYXRlKFZNJiB2bSwgRXhlY1N0YXRlKiBl
eGVjKQogICAgICAgICAgICAgICAgIC8vIGFueXRoaW5nLgogICAgICAgICAgICAgICAgICYmIG1f
bG9nW2luZGV4SW5Mb2ddLmZyYW1lID09IHRvUHVzaC5sYXN0KCkuZnJhbWUpIHsKICAgICAgICAg
ICAgICAgICBpZiAoU2hhZG93Q2hpY2tlbkludGVybmFsOjp2ZXJib3NlKQotICAgICAgICAgICAg
ICAgICAgICBkYXRhTG9nKCIgICAgR29pbmcgdG8gbG9vcCB0aHJvdWdoIHRvIGZpbmQgdGFpbCBk
ZWxldGVkIGZyYW1lcyB3aXRoIGluZGV4SW5Mb2cgPSAiLCBpbmRleEluTG9nLCAiIGFuZCBwdXNo
LXN0YWNrIHRvcCA9ICIsIHRvUHVzaC5sYXN0KCksICJcbiIpOworICAgICAgICAgICAgICAgICAg
ICBkYXRhTG9nKCIgICAgR29pbmcgdG8gbG9vcCB0aHJvdWdoIHRvIGZpbmQgdGFpbCBkZWxldGVk
IGZyYW1lcyB1c2luZyAiLCBSYXdQb2ludGVyKGNhbGxGcmFtZSksICIgd2l0aCBpbmRleEluTG9n
ID0gIiwgaW5kZXhJbkxvZywgIiBhbmQgcHVzaC1zdGFjayB0b3AgPSAiLCB0b1B1c2gubGFzdCgp
LCAiXG4iKTsKICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgICAgICAg
IEFTU0VSVChtX2xvZ1tpbmRleEluTG9nXS5mcmFtZSA9PSB0b1B1c2gubGFzdCgpLmZyYW1lKTsK
ICAgICAgICAgICAgICAgICAgICAgCkBAIC0zNDAsNiArMzY4LDEwIEBAIHZvaWQgU2hhZG93Q2hp
Y2tlbjo6dXBkYXRlKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg
aW5kZXhJbkxvZy0tOyAvLyBTa2lwIG92ZXIgdGhlIHRhaWwgcGFja2V0LgorCisgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBBZnRlciBhIGZldyBpdGVyYXRpb25zIHRoZSB0YWlsIHBhY2tl
dCByZWZlcmVuY2VkIGZyYW1lIG1heSBub3QgYmUgdGhlCisgICAgICAgICAgICAgICAgICAgIC8v
IHNhbWUgYXMgdGhlIG9yaWdpbmFsIGNhbGxGcmFtZSBmb3IgdGhlIHJlYWwgc3RhY2sgZnJhbWUg
d2Ugc3RhcnRlZCB3aXRoLgorICAgICAgICAgICAgICAgICAgICAvLyBJdCBpcyB1bmNsZWFyIHdo
ZW4gd2Ugc2hvdWxkIGJyZWFrLgogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgaWYgKCFhZHZhbmNlSW5kZXhJbkxvZ1RvKHRhaWxQYWNrZXQuZnJhbWUsIG51bGxwdHIs
IG51bGxwdHIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoU2hhZG93Q2hpY2tlbklu
dGVybmFsOjp2ZXJib3NlKQpAQCAtMzYyLDYgKzM5NCwyNSBAQCB2b2lkIFNoYWRvd0NoaWNrZW46
OnVwZGF0ZShWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIHJldHVybiBTdGFj
a1Zpc2l0b3I6OkNvbnRpbnVlOwogICAgICAgICB9KTsKIAorICAgIC8vIEl0J3MgcG9zc2libGUg
dGhhdCB0aGVyZSB3ZXJlIHRhaWwgZGVsZXRlZCBmcmFtZXMgYWZ0ZXIgdGhlIHByZXZpb3VzIGhp
Z2hlc3QgcmVjb3JkZWQgY2FsbCBmcmFtZS4KKyAgICAvLyBUaG9zZSB0YWlsIGRlbGV0ZWQgZnJh
bWVzIG5vIGxvbmdlciBtYWtlIHNlbnNlIGlmIHdlIHJlYWNoZWQgdGhlIGhpZ2hlc3QgcmVjb3Jk
LCBiZWNhdXNlIGFueSByb3dzCisgICAgLy8gd2UgaGF2ZSB0byBwdXNoIGFyZSBleGFjdGx5IHRo
ZSBmcmFtZXMgdGhhdCBzaG91bGQgY29tZSBhZnRlciB0aGUgaGlnaGVzdCByZWNvcmRlZCBjYWxs
IGZyYW1lLgorICAgIC8vIFdlIGNhbiBqdXN0IGVsaW1pbmF0ZSB0aG9zZSB0YWlsIGRlbGV0ZWQg
ZnJhbWVzLgorICAgIGlmIChyZWFjaGVkTGFzdEhpZ2hlc3RQb2ludCAmJiB0b1B1c2guc2l6ZSgp
KSB7CisgICAgICAgIGlmIChTaGFkb3dDaGlja2VuSW50ZXJuYWw6OnZlcmJvc2UpIHsKKyAgICAg
ICAgICAgIGRhdGFMb2coIiAgICBEZWxldGluZyAiLCAobV9zdGFjay5zaXplKCkgLSBoaWdoZXN0
UG9pbnRTaW5jZUxhc3RUaW1lSW5kZXggLSAxKSwgIiB0YWlsIGRlbGV0ZWQgZnJhbWVzIGFmdGVy
IHRoZSBsYXN0IGhpZ2hlc3QgcG9pbnQgdGhhdCBubyBsb25nZXIgbWFrZSBzZW5zZVxuIik7Cisg
ICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChoaWdoZXN0UG9pbnRTaW5jZUxhc3RUaW1lKTsKKyAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGhpZ2hlc3RQb2ludFNpbmNlTGFzdFRpbWVJbmRleCA+
PSAwKTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IGhpZ2hlc3RQb2ludFNpbmNlTGFz
dFRpbWVJbmRleCArIDE7IGkgPCBtX3N0YWNrLnNpemUoKTsgKytpKQorICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKG1fc3RhY2tbaV0uaXNUYWlsRGVsZXRlZCk7CisgICAgICAgIH0KKwor
ICAgICAgICBtX3N0YWNrLnNocmluayhoaWdoZXN0UG9pbnRTaW5jZUxhc3RUaW1lSW5kZXggKyAx
KTsKKworICAgICAgICBpZiAoU2hhZG93Q2hpY2tlbkludGVybmFsOjp2ZXJib3NlKQorICAgICAg
ICAgICAgZGF0YUxvZygiICAgIEFmdGVyIGRlbGV0aW5nOiAiLCBsaXN0RHVtcChtX3N0YWNrKSwg
IlxuIik7CisgICAgfQorCiAgICAgaWYgKFNoYWRvd0NoaWNrZW5JbnRlcm5hbDo6dmVyYm9zZSkK
ICAgICAgICAgZGF0YUxvZygiICAgIFB1c2hpbmc6ICIsIGxpc3REdW1wKHRvUHVzaCksICJcbiIp
OwogICAgIApAQCAtMzc5LDcgKzQzMCw3IEBAIHZvaWQgU2hhZG93Q2hpY2tlbjo6dXBkYXRlKFZN
JiB2bSwgRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBtX2xvZ0N1cnNvciA9IG1fbG9nOwogCiAg
ICAgaWYgKFNoYWRvd0NoaWNrZW5JbnRlcm5hbDo6dmVyYm9zZSkKLSAgICAgICAgZGF0YUxvZygi
ICAgIEFmdGVyIHB1c2hpbmc6ICIsICp0aGlzLCAiXG4iKTsKKyAgICAgICAgZGF0YUxvZygiICAg
IEFmdGVyIHB1c2hpbmc6ICIsIGxpc3REdW1wKG1fc3RhY2spLCAiXG4iKTsKIAogICAgIC8vIFJl
bW92ZSB0YWlsIGZyYW1lcyB1bnRpbCB0aGUgbnVtYmVyIG9mIHRhaWwgZGVsZXRlZCBmcmFtZXMg
aXMgc21hbGwgZW5vdWdoLgogICAgIGNvbnN0IHVuc2lnbmVkIG1heFRhaWxEZWxldGVkRnJhbWVz
ID0gT3B0aW9uczo6c2hhZG93Q2hpY2tlbk1heFRhaWxEZWxldGVkRnJhbWVzU2l6ZSgpOwpAQCAt
NDQ3LDcgKzQ5OCw3IEBAIHZvaWQgU2hhZG93Q2hpY2tlbjo6ZHVtcChQcmludFN0cmVhbSYgb3V0
KSBjb25zdAogICAgIHVuc2lnbmVkIGxpbWl0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fbG9n
Q3Vyc29yIC0gbV9sb2cpOwogICAgIG91dC5wcmludCgiXG4iKTsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbGltaXQ7ICsraSkKLSAgICAgICAgb3V0LnByaW50KCJcdCIsIGNvbW1hLCBt
X2xvZ1tpXSwgIlxuIik7CisgICAgICAgIG91dC5wcmludCgiXHQiLCBjb21tYSwgIlsiLCBpLCAi
XSAiLCBtX2xvZ1tpXSwgIlxuIik7CiAgICAgb3V0LnByaW50KCJdfSIpOwogfQogCg==
</data>
<flag name="commit-queue"
          id="393500"
          type_id="3"
          status="-"
          setter="ews-watchlist"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377907</attachid>
            <date>2019-09-03 10:59:08 -0700</date>
            <delta_ts>2019-09-06 01:15:48 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>shadow-3.patch</filename>
            <type>text/plain</type>
            <size>65911</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNzI5ZDJkMGMwYi4uNzYxMjdlNGQyODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAor
MjAxOS0wOC0zMSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFRhaWwgRGVsZXRlZCBGcmFtZXMgc2hvd24gaW4gV2ViIEluc3BlY3RvciBhcmUgc29tZXRp
bWVzIGluY29ycmVjdCAoU2hhZG93IENoaWNrZW4pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEzNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQt
ZnJhbWVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvdGFpbC1kZWxldGVkLWZyYW1lcy1mcm9tLXZtLWVudHJ5LWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy1mcm9t
LXZtLWVudHJ5Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Rh
aWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQt
ZnJhbWVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgIFJlbW92ZSBsZWdhY3kgdGVzdHMgdGhhdCBh
cmUgZGlmZmljdWx0IHRvIHJlYWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvdGFp
bC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvc3RhY2stdHJhY2UtdXRpbGl0aWVzLmpzOiBBZGRl
ZC4KKyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIud2luZG93LmdldEFzeW5j
U3RhY2tUcmFjZSk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLmFzeW5j
LmxvZ1RoaXNPYmplY3QpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5h
c3luYy5sb2dTY29wZSk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLmFz
eW5jLmxvZ0NhbGxGcmFtZSk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVy
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNv
dXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtZnJhbWVzLmpzOiBBZGRlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJj
ZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtbmF0aXZlLXRhaWwtZGVsZXRlZC1j
YWxscy5qczogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRl
ZC1mcmFtZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLXRhaWwt
ZGVsZXRlZC1mcmFtZXMuanM6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci90
YWlsLWRlbGV0ZWQtZnJhbWVzL3Jlc291cmNlcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXNjb3Blcy5q
czogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFt
ZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS5qczogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvcmVzb3VyY2Vz
L3RhaWwtZGVsZXRlZC1mcmFtZXMtdm0tZW50cnkuanM6IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50
ZXJtZWRpYXRlLWZyYW1lcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJt
ZWRpYXRlLWZyYW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
dGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWludGVybWVkaWF0ZS10YWls
LWRlbGV0ZWQtZnJhbWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1l
ZGlhdGUtdGFpbC1kZWxldGVkLWZyYW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXNjb3Bl
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci90YWls
LWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtc2NvcGVzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVs
ZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMt
dGhpcy12YWx1ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvdGFp
bC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXZtLWVudHJ5LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFt
ZXMvdGFpbC1kZWxldGVkLWZyYW1lcy12bS1lbnRyeS5odG1sOiBBZGRlZC4KKyAgICAgICAgSW5j
bHVkZSBtb2Rlcm4gdGVzdHMgdGhhdCBhcmUgZWFzaWVyIHRvIHJlYWQuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVz
LWludGVybWVkaWF0ZS1uYXRpdmUtdGFpbC1kZWxldGVkLWNhbGxzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFp
bC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtbmF0aXZlLXRhaWwtZGVsZXRlZC1jYWxscy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgSW5jbHVkZSBhIHRlc3QgdGhhdCBpcyBrbm93biB0byBwcm9k
dWNlIGJhZCBvdXRwdXQsIHNpbmNlIHdlIGhhdmUgcmVwcm9kdWN0aXZlIHN0ZXBzLgorCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIFVwZGF0ZWQgcGF0
aGVzLgorCiAyMDE5LTA4LTI4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTG9jYWwgT3ZlcnJpZGVzIC0gUHJvdmlkZSBzdWJz
dGl0dXRpb24gY29udGVudCBmb3IgcmVzb3VyY2UgbG9hZHMgKFVSTCBiYXNlZCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9ldmFsdWF0ZU9uQ2FsbEZyYW1lLWV4
Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1YXRlT25D
YWxsRnJhbWUtZXhjZXB0aW9uLmh0bWwKaW5kZXggNzFkNmVkZTEzYmEuLjI4OThhNjExZjFiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXZhbHVhdGVPbkNhbGxG
cmFtZS1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
ZXZhbHVhdGVPbkNhbGxGcmFtZS1leGNlcHRpb24uaHRtbApAQCAtMTMsNyArMTMsNiBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICBjb25zdCBpbmNsdWRlQ29tbWFuZExpbmVBUEkgPSB0cnVlOwogICAg
IGNvbnN0IHJldHVybkJ5VmFsdWUgPSB0cnVlOwogCi0gICAgSW5zcGVjdG9yVGVzdC5kZWJ1Zygp
OwogICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiRGVidWdn
ZXIuZXZhbHVhdGVPbkNhbGxGcmFtZS5FeGNlcHRpb24iKTsKIAogICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJj
ZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1mcm9tLXZtLWVudHJ5LmpzIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWZyb20tdm0tZW50
cnkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5ZmNlOTAwYThiLi4wMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL3RhaWwt
ZGVsZXRlZC1mcmFtZXMtZnJvbS12bS1lbnRyeS5qcworKysgL2Rldi9udWxsCkBAIC0xLDkgKzAs
MCBAQAotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24gdGltZW91dChmb28gPSAyNSkgewotICAgIHJl
dHVybiBiYXIoKTsKLX0KLWZ1bmN0aW9uIGJhcihpID0gOSkgewotICAgIGlmIChpID4gMCkKLSAg
ICAgICAgcmV0dXJuIGJhcihpIC0gMSk7Ci0gICAgcmV0dXJuIDI1OwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy90YWlsLWRlbGV0ZWQtZnJh
bWVzLXRoaXMtdmFsdWUuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3Vy
Y2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzQxYzVjYWZmZGUuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVl
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotInVzZSBzdHJpY3QiOwotZnVuY3Rp
b24gYSgpIHsKLSAgICBsZXQgeCA9IDIwOwotICAgIHg7Ci0gICAgcmV0dXJuIHg7Ci19Ci1mdW5j
dGlvbiBiKCkgewotICAgIGxldCB5ID0gNDA7Ci0gICAgcmV0dXJuIGEuY2FsbCh7YVRoaXM6IDJ9
KTsKLX0KLWZ1bmN0aW9uIGMoKSB7Ci0gICAgbGV0IHogPSA2MDsKLSAgICByZXR1cm4gYi5jYWxs
KHtiVGhpczogMX0pOyAKLX0KLWZ1bmN0aW9uIHN0YXJ0QUJDKCkgewotICAgIGMuY2FsbCh7Y1Ro
aXM6IDB9KTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9y
ZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYWYwMzc0YzI0ODMuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy5qcworKysg
L2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIGEoKSB7
Ci0gICAgbGV0IHggPSAyMDsKLSAgICB4OwotICAgIHJldHVybiB4OwotfQotZnVuY3Rpb24gYigp
IHsKLSAgICBsZXQgeSA9IDQwOwotICAgIHJldHVybiBhKCk7Ci19Ci1mdW5jdGlvbiBjKCkgewot
ICAgIGxldCB6ID0gNjA7Ci0gICAgcmV0dXJuIGIoKTsgCi19Ci1mdW5jdGlvbiBzdGFydEFCQygp
IHsKLSAgICBjKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvdGFpbC1kZWxldGVkLWZyYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDU0NTExMzE2ZDEyLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UZXN0aW5nIHRoYXQgd2Uga2VlcCBhcm91
bmQgdGFpbCBkZWxldGVkIGZyYW1lcyBpbiB0aGUgaW5zcGVjdG9yLgotCi1TdGFydGluZyBUZXN0
Ci0KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1IaXQgYnJlYWtwb2lu
dCBhdCBsaW5lOiAzLCBjb2x1bW46IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotRXhwZWN0ZWQgZnJhbWU6IHsiZnVuY3Rpb25OYW1lIjoiYSIsInNjb3BlIjpbIngiLDIw
XSwiaXNUYWlsRGVsZXRlZCI6ZmFsc2V9Ci1FeHBlY3RlZCBmcmFtZTogeyJmdW5jdGlvbk5hbWUi
OiJiIiwic2NvcGUiOlsieSIsNDBdLCJpc1RhaWxEZWxldGVkIjp0cnVlfQotRXhwZWN0ZWQgZnJh
bWU6IHsiZnVuY3Rpb25OYW1lIjoiYyIsInNjb3BlIjpbInoiLDYwXSwiaXNUYWlsRGVsZXRlZCI6
dHJ1ZX0KLUxvb2tpbmcgYXQgZnJhbWUgbnVtYmVyOiAwCi0gICAgdmFyaWFibGUgJ3gnOiB7Il90
eXBlIjoibnVtYmVyIiwiX2Rlc2NyaXB0aW9uIjoiMjAiLCJfaGFzQ2hpbGRyZW4iOmZhbHNlLCJf
dmFsdWUiOjIwfQotTG9va2luZyBhdCBmcmFtZSBudW1iZXI6IDEKLSAgICB2YXJpYWJsZSAneSc6
IHsiX3R5cGUiOiJudW1iZXIiLCJfZGVzY3JpcHRpb24iOiI0MCIsIl9oYXNDaGlsZHJlbiI6ZmFs
c2UsIl92YWx1ZSI6NDB9Ci1Mb29raW5nIGF0IGZyYW1lIG51bWJlcjogMgotICAgIHZhcmlhYmxl
ICd6JzogeyJfdHlwZSI6Im51bWJlciIsIl9kZXNjcmlwdGlvbiI6IjYwIiwiX2hhc0NoaWxkcmVu
IjpmYWxzZSwiX3ZhbHVlIjo2MH0KLVRlc3RzIGRvbmUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMtZnJvbS12bS1lbnRyeS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVk
LWZyYW1lcy1mcm9tLXZtLWVudHJ5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggM2Y5MDk1ZTk2MmEuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzLWZyb20tdm0tZW50cnktZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotVGVzdGluZyB0aGF0IHdlIGtlZXAg
YXJvdW5kIHRhaWwgZGVsZXRlZCBmcmFtZXMgdGhhdCBhcmUgZW50cnkgZnJhbWVzLgotCi1TdGFy
dGluZyBUZXN0Ci0KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1IaXQg
YnJlYWtwb2ludCBhdCBsaW5lOiA3LCBjb2x1bW46IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotRXhwZWN0ZWQgZnJhbWU6IHsiZnVuY3Rpb25OYW1lIjoiYmFyIiwic2Nv
cGUiOlsiaSIsMF0sImlzVGFpbERlbGV0ZWQiOmZhbHNlfQotUEFTUzogRnVuY3Rpb24gbmFtZTog
YmFyIGlzIGNvcnJlY3QuCi1QQVNTOiBUYWlsIGRlbGV0ZWQgZXhwZWN0YXRpb24gY29ycmVjdDog
ZmFsc2UKLUV4cGVjdGVkIGZyYW1lOiB7ImZ1bmN0aW9uTmFtZSI6ImJhciIsInNjb3BlIjpbImki
LDFdLCJpc1RhaWxEZWxldGVkIjp0cnVlfQotUEFTUzogRnVuY3Rpb24gbmFtZTogYmFyIGlzIGNv
cnJlY3QuCi1QQVNTOiBUYWlsIGRlbGV0ZWQgZXhwZWN0YXRpb24gY29ycmVjdDogdHJ1ZQotRXhw
ZWN0ZWQgZnJhbWU6IHsiZnVuY3Rpb25OYW1lIjoiYmFyIiwic2NvcGUiOlsiaSIsMl0sImlzVGFp
bERlbGV0ZWQiOnRydWV9Ci1QQVNTOiBGdW5jdGlvbiBuYW1lOiBiYXIgaXMgY29ycmVjdC4KLVBB
U1M6IFRhaWwgZGVsZXRlZCBleHBlY3RhdGlvbiBjb3JyZWN0OiB0cnVlCi1FeHBlY3RlZCBmcmFt
ZTogeyJmdW5jdGlvbk5hbWUiOiJiYXIiLCJzY29wZSI6WyJpIiwzXSwiaXNUYWlsRGVsZXRlZCI6
dHJ1ZX0KLVBBU1M6IEZ1bmN0aW9uIG5hbWU6IGJhciBpcyBjb3JyZWN0LgotUEFTUzogVGFpbCBk
ZWxldGVkIGV4cGVjdGF0aW9uIGNvcnJlY3Q6IHRydWUKLUV4cGVjdGVkIGZyYW1lOiB7ImZ1bmN0
aW9uTmFtZSI6ImJhciIsInNjb3BlIjpbImkiLDRdLCJpc1RhaWxEZWxldGVkIjp0cnVlfQotUEFT
UzogRnVuY3Rpb24gbmFtZTogYmFyIGlzIGNvcnJlY3QuCi1QQVNTOiBUYWlsIGRlbGV0ZWQgZXhw
ZWN0YXRpb24gY29ycmVjdDogdHJ1ZQotRXhwZWN0ZWQgZnJhbWU6IHsiZnVuY3Rpb25OYW1lIjoi
YmFyIiwic2NvcGUiOlsiaSIsNV0sImlzVGFpbERlbGV0ZWQiOnRydWV9Ci1QQVNTOiBGdW5jdGlv
biBuYW1lOiBiYXIgaXMgY29ycmVjdC4KLVBBU1M6IFRhaWwgZGVsZXRlZCBleHBlY3RhdGlvbiBj
b3JyZWN0OiB0cnVlCi1FeHBlY3RlZCBmcmFtZTogeyJmdW5jdGlvbk5hbWUiOiJiYXIiLCJzY29w
ZSI6WyJpIiw2XSwiaXNUYWlsRGVsZXRlZCI6dHJ1ZX0KLVBBU1M6IEZ1bmN0aW9uIG5hbWU6IGJh
ciBpcyBjb3JyZWN0LgotUEFTUzogVGFpbCBkZWxldGVkIGV4cGVjdGF0aW9uIGNvcnJlY3Q6IHRy
dWUKLUV4cGVjdGVkIGZyYW1lOiB7ImZ1bmN0aW9uTmFtZSI6ImJhciIsInNjb3BlIjpbImkiLDdd
LCJpc1RhaWxEZWxldGVkIjp0cnVlfQotUEFTUzogRnVuY3Rpb24gbmFtZTogYmFyIGlzIGNvcnJl
Y3QuCi1QQVNTOiBUYWlsIGRlbGV0ZWQgZXhwZWN0YXRpb24gY29ycmVjdDogdHJ1ZQotRXhwZWN0
ZWQgZnJhbWU6IHsiZnVuY3Rpb25OYW1lIjoiYmFyIiwic2NvcGUiOlsiaSIsOF0sImlzVGFpbERl
bGV0ZWQiOnRydWV9Ci1QQVNTOiBGdW5jdGlvbiBuYW1lOiBiYXIgaXMgY29ycmVjdC4KLVBBU1M6
IFRhaWwgZGVsZXRlZCBleHBlY3RhdGlvbiBjb3JyZWN0OiB0cnVlCi1FeHBlY3RlZCBmcmFtZTog
eyJmdW5jdGlvbk5hbWUiOiJiYXIiLCJzY29wZSI6WyJpIiw5XSwiaXNUYWlsRGVsZXRlZCI6dHJ1
ZX0KLVBBU1M6IEZ1bmN0aW9uIG5hbWU6IGJhciBpcyBjb3JyZWN0LgotUEFTUzogVGFpbCBkZWxl
dGVkIGV4cGVjdGF0aW9uIGNvcnJlY3Q6IHRydWUKLUV4cGVjdGVkIGZyYW1lOiB7ImZ1bmN0aW9u
TmFtZSI6InRpbWVvdXQiLCJzY29wZSI6WyJmb28iLDI1XSwiaXNUYWlsRGVsZXRlZCI6dHJ1ZX0K
LVBBU1M6IEZ1bmN0aW9uIG5hbWU6IHRpbWVvdXQgaXMgY29ycmVjdC4KLVBBU1M6IFRhaWwgZGVs
ZXRlZCBleHBlY3RhdGlvbiBjb3JyZWN0OiB0cnVlCi1Mb29raW5nIGF0IGZyYW1lIG51bWJlcjog
MAotICAgIHZhcmlhYmxlICdpJzogeyJfdHlwZSI6Im51bWJlciIsIl9kZXNjcmlwdGlvbiI6IjAi
LCJfaGFzQ2hpbGRyZW4iOmZhbHNlLCJfdmFsdWUiOjB9Ci1QQVNTOiBWYXJpYWJsZSBpcyBhIG51
bWJlci4KLVBBU1M6IEZvdW5kIHNjb3BlIHZhbHVlOiAwCi1QQVNTOiBEaWQgbm90IGZpbmQgdmFy
aWFibGUgd2Ugd2VyZSBsb29raW5nIGZvcjogaQotTG9va2luZyBhdCBmcmFtZSBudW1iZXI6IDEK
LSAgICB2YXJpYWJsZSAnaSc6IHsiX3R5cGUiOiJudW1iZXIiLCJfZGVzY3JpcHRpb24iOiIxIiwi
X2hhc0NoaWxkcmVuIjpmYWxzZSwiX3ZhbHVlIjoxfQotUEFTUzogVmFyaWFibGUgaXMgYSBudW1i
ZXIuCi1QQVNTOiBGb3VuZCBzY29wZSB2YWx1ZTogMQotUEFTUzogRGlkIG5vdCBmaW5kIHZhcmlh
YmxlIHdlIHdlcmUgbG9va2luZyBmb3I6IGkKLUxvb2tpbmcgYXQgZnJhbWUgbnVtYmVyOiAyCi0g
ICAgdmFyaWFibGUgJ2knOiB7Il90eXBlIjoibnVtYmVyIiwiX2Rlc2NyaXB0aW9uIjoiMiIsIl9o
YXNDaGlsZHJlbiI6ZmFsc2UsIl92YWx1ZSI6Mn0KLVBBU1M6IFZhcmlhYmxlIGlzIGEgbnVtYmVy
LgotUEFTUzogRm91bmQgc2NvcGUgdmFsdWU6IDIKLVBBU1M6IERpZCBub3QgZmluZCB2YXJpYWJs
ZSB3ZSB3ZXJlIGxvb2tpbmcgZm9yOiBpCi1Mb29raW5nIGF0IGZyYW1lIG51bWJlcjogMwotICAg
IHZhcmlhYmxlICdpJzogeyJfdHlwZSI6Im51bWJlciIsIl9kZXNjcmlwdGlvbiI6IjMiLCJfaGFz
Q2hpbGRyZW4iOmZhbHNlLCJfdmFsdWUiOjN9Ci1QQVNTOiBWYXJpYWJsZSBpcyBhIG51bWJlci4K
LVBBU1M6IEZvdW5kIHNjb3BlIHZhbHVlOiAzCi1QQVNTOiBEaWQgbm90IGZpbmQgdmFyaWFibGUg
d2Ugd2VyZSBsb29raW5nIGZvcjogaQotTG9va2luZyBhdCBmcmFtZSBudW1iZXI6IDQKLSAgICB2
YXJpYWJsZSAnaSc6IHsiX3R5cGUiOiJudW1iZXIiLCJfZGVzY3JpcHRpb24iOiI0IiwiX2hhc0No
aWxkcmVuIjpmYWxzZSwiX3ZhbHVlIjo0fQotUEFTUzogVmFyaWFibGUgaXMgYSBudW1iZXIuCi1Q
QVNTOiBGb3VuZCBzY29wZSB2YWx1ZTogNAotUEFTUzogRGlkIG5vdCBmaW5kIHZhcmlhYmxlIHdl
IHdlcmUgbG9va2luZyBmb3I6IGkKLUxvb2tpbmcgYXQgZnJhbWUgbnVtYmVyOiA1Ci0gICAgdmFy
aWFibGUgJ2knOiB7Il90eXBlIjoibnVtYmVyIiwiX2Rlc2NyaXB0aW9uIjoiNSIsIl9oYXNDaGls
ZHJlbiI6ZmFsc2UsIl92YWx1ZSI6NX0KLVBBU1M6IFZhcmlhYmxlIGlzIGEgbnVtYmVyLgotUEFT
UzogRm91bmQgc2NvcGUgdmFsdWU6IDUKLVBBU1M6IERpZCBub3QgZmluZCB2YXJpYWJsZSB3ZSB3
ZXJlIGxvb2tpbmcgZm9yOiBpCi1Mb29raW5nIGF0IGZyYW1lIG51bWJlcjogNgotICAgIHZhcmlh
YmxlICdpJzogeyJfdHlwZSI6Im51bWJlciIsIl9kZXNjcmlwdGlvbiI6IjYiLCJfaGFzQ2hpbGRy
ZW4iOmZhbHNlLCJfdmFsdWUiOjZ9Ci1QQVNTOiBWYXJpYWJsZSBpcyBhIG51bWJlci4KLVBBU1M6
IEZvdW5kIHNjb3BlIHZhbHVlOiA2Ci1QQVNTOiBEaWQgbm90IGZpbmQgdmFyaWFibGUgd2Ugd2Vy
ZSBsb29raW5nIGZvcjogaQotTG9va2luZyBhdCBmcmFtZSBudW1iZXI6IDcKLSAgICB2YXJpYWJs
ZSAnaSc6IHsiX3R5cGUiOiJudW1iZXIiLCJfZGVzY3JpcHRpb24iOiI3IiwiX2hhc0NoaWxkcmVu
IjpmYWxzZSwiX3ZhbHVlIjo3fQotUEFTUzogVmFyaWFibGUgaXMgYSBudW1iZXIuCi1QQVNTOiBG
b3VuZCBzY29wZSB2YWx1ZTogNwotUEFTUzogRGlkIG5vdCBmaW5kIHZhcmlhYmxlIHdlIHdlcmUg
bG9va2luZyBmb3I6IGkKLUxvb2tpbmcgYXQgZnJhbWUgbnVtYmVyOiA4Ci0gICAgdmFyaWFibGUg
J2knOiB7Il90eXBlIjoibnVtYmVyIiwiX2Rlc2NyaXB0aW9uIjoiOCIsIl9oYXNDaGlsZHJlbiI6
ZmFsc2UsIl92YWx1ZSI6OH0KLVBBU1M6IFZhcmlhYmxlIGlzIGEgbnVtYmVyLgotUEFTUzogRm91
bmQgc2NvcGUgdmFsdWU6IDgKLVBBU1M6IERpZCBub3QgZmluZCB2YXJpYWJsZSB3ZSB3ZXJlIGxv
b2tpbmcgZm9yOiBpCi1Mb29raW5nIGF0IGZyYW1lIG51bWJlcjogOQotICAgIHZhcmlhYmxlICdp
JzogeyJfdHlwZSI6Im51bWJlciIsIl9kZXNjcmlwdGlvbiI6IjkiLCJfaGFzQ2hpbGRyZW4iOmZh
bHNlLCJfdmFsdWUiOjl9Ci1QQVNTOiBWYXJpYWJsZSBpcyBhIG51bWJlci4KLVBBU1M6IEZvdW5k
IHNjb3BlIHZhbHVlOiA5Ci1QQVNTOiBEaWQgbm90IGZpbmQgdmFyaWFibGUgd2Ugd2VyZSBsb29r
aW5nIGZvcjogaQotTG9va2luZyBhdCBmcmFtZSBudW1iZXI6IDEwCi0gICAgdmFyaWFibGUgJ2Zv
byc6IHsiX3R5cGUiOiJudW1iZXIiLCJfZGVzY3JpcHRpb24iOiIyNSIsIl9oYXNDaGlsZHJlbiI6
ZmFsc2UsIl92YWx1ZSI6MjV9Ci1QQVNTOiBWYXJpYWJsZSBpcyBhIG51bWJlci4KLVBBU1M6IEZv
dW5kIHNjb3BlIHZhbHVlOiAyNQotUEFTUzogRGlkIG5vdCBmaW5kIHZhcmlhYmxlIHdlIHdlcmUg
bG9va2luZyBmb3I6IGZvbwotVGVzdHMgZG9uZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy1mcm9tLXZtLWVudHJ5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy1mcm9t
LXZtLWVudHJ5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4N2I4YzI4NGJh
Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1k
ZWxldGVkLWZyYW1lcy1mcm9tLXZtLWVudHJ5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDUg
KzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
ZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvdGFp
bC1kZWxldGVkLWZyYW1lcy1mcm9tLXZtLWVudHJ5LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0K
LWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGxldCBzY3JpcHRPYmplY3Q7Ci0KLSAgICBmdW5jdGlv
biByZW1vdGVPYmplY3RKU09ORmlsdGVyKGtleSwgdmFsdWUpIHsKLSAgICAgICAgaWYgKGtleSA9
PT0gIl90YXJnZXQiIHx8IGtleSA9PT0gIl9saXN0ZW5lcnMiKQotICAgICAgICAgICAgcmV0dXJu
IHVuZGVmaW5lZDsKLSAgICAgICAgaWYgKGtleSA9PT0gIl9vYmplY3RJZCIgfHwga2V5ID09PSAi
X3N0YWNrVHJhY2UiKQotICAgICAgICAgICAgcmV0dXJuICI8ZmlsdGVyZWQ+IjsKLSAgICAgICAg
cmV0dXJuIHZhbHVlOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIlN0YXJ0aW5nIFRlc3QiKTsKLSAgICAgICAgLy8gMCBiYXNl
ZCBpbmRpY2VzLgotICAgICAgICBsZXQgdGVzdEluZm8gPSB7bGluZTogNywgY29sdW1uOiA0fTsK
LSAgICAgICAgbGV0IGxvY2F0aW9uID0gc2NyaXB0T2JqZWN0LmNyZWF0ZVNvdXJjZUNvZGVMb2Nh
dGlvbih0ZXN0SW5mby5saW5lLCB0ZXN0SW5mby5jb2x1bW4pOwotICAgICAgICBsZXQgYnJlYWtw
b2ludCA9IG5ldyBXSS5CcmVha3BvaW50KGxvY2F0aW9uKTsKLSAgICAgICAgV0kuZGVidWdnZXJN
YW5hZ2VyLmFkZEJyZWFrcG9pbnQoYnJlYWtwb2ludCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoInNldFRpbWVvdXQodGltZW91dCwgMCk7Iik7Ci0gICAgfQotCi0gICAg
V0kuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2
ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIHZhciBh
Y3RpdmVDYWxsRnJhbWUgPSBXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lOwotCi0g
ICAgICAgIGlmICghYWN0aXZlQ2FsbEZyYW1lKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgIHZhciBzdG9wTG9jYXRpb24gPSAibGluZTogIiArIGFjdGl2ZUNhbGxGcmFtZS5zb3VyY2VD
b2RlTG9jYXRpb24ubGluZU51bWJlciArICIsIGNvbHVtbjogIiArIGFjdGl2ZUNhbGxGcmFtZS5z
b3VyY2VDb2RlTG9jYXRpb24uY29sdW1uTnVtYmVyOwotCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJIaXQgYnJlYWtwb2ludCBhdCAiICsgc3RvcExvY2F0aW9uKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSIpOwotCi0gICAgICAgIC8vIHRvcCBkb3duIGxpc3QKLSAgICAgICAgbGV0IGV4cGVj
dGVkRnJhbWVzID0gW107Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTA7IGkrKykKLSAg
ICAgICAgICAgIGV4cGVjdGVkRnJhbWVzLnB1c2goe2Z1bmN0aW9uTmFtZTogJ2JhcicsIHNjb3Bl
OiBbJ2knLCBpXSwgaXNUYWlsRGVsZXRlZDogaSA+IDAgPyB0cnVlIDogZmFsc2V9KTsKLSAgICAg
ICAgZXhwZWN0ZWRGcmFtZXMucHVzaCh7ZnVuY3Rpb25OYW1lOiAndGltZW91dCcsIHNjb3BlOiBb
J2ZvbycsIDI1XSwgaXNUYWlsRGVsZXRlZDogdHJ1ZX0pOwotCi0gICAgICAgIGxldCB0YXJnZXRE
YXRhID0gV0kuZGVidWdnZXJNYW5hZ2VyLmRhdGFGb3JUYXJnZXQoV0kuZGVidWdnZXJNYW5hZ2Vy
LmFjdGl2ZUNhbGxGcmFtZS50YXJnZXQpOwotICAgICAgICBsZXQgY2FsbEZyYW1lcyA9IHRhcmdl
dERhdGEuY2FsbEZyYW1lczsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYWxsRnJh
bWVzLmxlbmd0aCA+PSBleHBlY3RlZEZyYW1lcy5sZW5ndGgpOwotCi0gICAgICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgZXhwZWN0ZWRGcmFtZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIGxl
dCBjYWxsRnJhbWUgPSBjYWxsRnJhbWVzW2ldOwotICAgICAgICAgICAgbGV0IGV4cGVjdGVkRnJh
bWUgPSBleHBlY3RlZEZyYW1lc1tpXTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJF
eHBlY3RlZCBmcmFtZTogIiArIEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkRnJhbWUpKTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChjYWxsRnJhbWUuZnVuY3Rpb25OYW1lID09
PSBleHBlY3RlZEZyYW1lLmZ1bmN0aW9uTmFtZSwgYEZ1bmN0aW9uIG5hbWU6ICR7Y2FsbEZyYW1l
LmZ1bmN0aW9uTmFtZX0gaXMgY29ycmVjdC5gKTsKLQotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KGNhbGxGcmFtZS5pc1RhaWxEZWxldGVkID09PSBleHBlY3RlZEZyYW1lLmlz
VGFpbERlbGV0ZWQsIGBUYWlsIGRlbGV0ZWQgZXhwZWN0YXRpb24gY29ycmVjdDogJHtjYWxsRnJh
bWUuaXNUYWlsRGVsZXRlZH1gKTsKLSAgICAgICAgICAgIGxldCBzY29wZSA9IGNhbGxGcmFtZS5z
Y29wZUNoYWluWzFdOwotCi0gICAgICAgICAgICBzY29wZS5vYmplY3RzWzBdLmdldFByb3BlcnR5
RGVzY3JpcHRvcnMoZnVuY3Rpb24ocHJvcGVydGllcykgewotICAgICAgICAgICAgICAgIGxldCBm
b3VuZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGxldCB2YXJpYWJsZU5hbWUgPSBleHBlY3Rl
ZEZyYW1lLnNjb3BlWzBdOwotICAgICAgICAgICAgICAgIGxldCB2YXJpYWJsZVZhbHVlID0gZXhw
ZWN0ZWRGcmFtZS5zY29wZVsxXTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eURl
c2NyaXB0b3Igb2YgcHJvcGVydGllcykgewotICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVy
dHlEZXNjcmlwdG9yLm5hbWUgPT09IHZhcmlhYmxlTmFtZSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgZm91bmQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkxvb2tpbmcgYXQgZnJhbWUgbnVtYmVyOiAiICsgaSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgICAgIHZhcmlhYmxlICcke3ZhcmlhYmxlTmFtZX0n
OiAke0pTT04uc3RyaW5naWZ5KHByb3BlcnR5RGVzY3JpcHRvci52YWx1ZSwgcmVtb3RlT2JqZWN0
SlNPTkZpbHRlcil9YCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdFRoYXQocHJvcGVydHlEZXNjcmlwdG9yLnZhbHVlLnR5cGUgPT09ICdudW1iZXInLCAiVmFy
aWFibGUgaXMgYSBudW1iZXIuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdFRoYXQocHJvcGVydHlEZXNjcmlwdG9yLnZhbHVlLnZhbHVlID09PSB2YXJpYWJs
ZVZhbHVlLCBgRm91bmQgc2NvcGUgdmFsdWU6ICR7dmFyaWFibGVWYWx1ZX1gKTsKLSAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdFRoYXQoISFmb3VuZCwgYERpZCBub3QgZmluZCB2YXJpYWJsZSB3ZSB3ZXJl
IGxvb2tpbmcgZm9yOiAke3ZhcmlhYmxlTmFtZX1gKTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICB9Ci0KLSAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwotICAgIH0pOwotCi0g
ICAgV0kuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2Vy
LkV2ZW50LlJlc3VtZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJUZXN0cyBkb25lIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
Ci0gICAgfSk7Ci0KLSAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5E
ZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAg
ICAgIGxldCBldmVudFNjcmlwdE9iamVjdCA9IGV2ZW50LmRhdGEuc2NyaXB0OwotICAgICAgICBp
ZiAoL3RhaWwtZGVsZXRlZC1mcmFtZXMtZnJvbS12bS1lbnRyeVwuanMkLy50ZXN0KGV2ZW50U2Ny
aXB0T2JqZWN0LnVybCkpIHsKLSAgICAgICAgICAgIHNjcmlwdE9iamVjdCA9IGV2ZW50U2NyaXB0
T2JqZWN0OwotICAgICAgICAgICAgc3RhcnRUZXN0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLQotICAgIH0pOwotCi0gICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7Ci19
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5U
ZXN0aW5nIHRoYXQgd2Uga2VlcCBhcm91bmQgdGFpbCBkZWxldGVkIGZyYW1lcyB0aGF0IGFyZSBl
bnRyeSBmcmFtZXMuIDwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzLXRoaXMtdmFsdWUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1m
cmFtZXMtdGhpcy12YWx1ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDJiOWNiZWJhYmVmLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRlc3RpbmcgdGhhdCB3ZSBrZWVwIGFyb3VuZCB0
YWlsIGRlbGV0ZWQgZnJhbWVzIGluIHRoZSBpbnNwZWN0b3IgYW5kIHRoZWlyIHRoaXMgdmFsdWVz
LgotCi1TdGFydGluZyBUZXN0Ci0KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1IaXQgYnJlYWtwb2ludCBhdCBsaW5lOiAzLCBjb2x1bW46IDQKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRXhwZWN0ZWQgZnJhbWU6IHsiZnVuY3Rpb25OYW1lIjoi
YSIsInRoaXNWYWx1ZSI6WyJhVGhpcyIsMl0sImlzVGFpbERlbGV0ZWQiOmZhbHNlfQotUEFTUzog
J3RoaXMnIHZhbHVlIHNob3VsZCBoYXZlIGV4cGVjdGVkIHByb3BlcnR5OiBhVGhpcwotUEFTUzog
Q2FsbCBGcmFtZSAwICd0aGlzJyB2YWx1ZSBpcyBjb3JyZWN0LgotRXhwZWN0ZWQgZnJhbWU6IHsi
ZnVuY3Rpb25OYW1lIjoiYiIsInRoaXNWYWx1ZSI6WyJiVGhpcyIsMV0sImlzVGFpbERlbGV0ZWQi
OnRydWV9Ci1QQVNTOiAndGhpcycgdmFsdWUgc2hvdWxkIGhhdmUgZXhwZWN0ZWQgcHJvcGVydHk6
IGJUaGlzCi1QQVNTOiBDYWxsIEZyYW1lIDEgJ3RoaXMnIHZhbHVlIGlzIGNvcnJlY3QuCi1FeHBl
Y3RlZCBmcmFtZTogeyJmdW5jdGlvbk5hbWUiOiJjIiwidGhpc1ZhbHVlIjpbImNUaGlzIiwwXSwi
aXNUYWlsRGVsZXRlZCI6dHJ1ZX0KLVBBU1M6ICd0aGlzJyB2YWx1ZSBzaG91bGQgaGF2ZSBleHBl
Y3RlZCBwcm9wZXJ0eTogY1RoaXMKLVBBU1M6IENhbGwgRnJhbWUgMiAndGhpcycgdmFsdWUgaXMg
Y29ycmVjdC4KLVRlc3RzIGRvbmUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMmZlNzc0MjJkZi4uMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMt
dGhpcy12YWx1ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAKLTwhZG9jdHlw
ZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMt
dGhpcy12YWx1ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICB2YXIgc2NyaXB0T2JqZWN0OwotCi0gICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3RhcnRpbmcgVGVzdCIpOwotICAgICAgICAvLyAwIGJh
c2VkIGluZGljZXMuCi0gICAgICAgIGxldCB0ZXN0SW5mbyA9IHtsaW5lOiAzLCBjb2x1bW46IDR9
OwotICAgICAgICBsZXQgbG9jYXRpb24gPSBzY3JpcHRPYmplY3QuY3JlYXRlU291cmNlQ29kZUxv
Y2F0aW9uKHRlc3RJbmZvLmxpbmUsIHRlc3RJbmZvLmNvbHVtbik7Ci0gICAgICAgIGxldCBicmVh
a3BvaW50ID0gbmV3IFdJLkJyZWFrcG9pbnQobG9jYXRpb24pOwotICAgICAgICBXSS5kZWJ1Z2dl
ck1hbmFnZXIuYWRkQnJlYWtwb2ludChicmVha3BvaW50KTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZSgic3RhcnRBQkMoKSIpOwotICAgIH0KLQotICAgIFdJLmRlYnVnZ2Vy
TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJh
bWVzRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICB2YXIgYWN0aXZlQ2FsbEZy
YW1lID0gV0kuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZTsKLQotICAgICAgICBpZiAo
IWFjdGl2ZUNhbGxGcmFtZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB2YXIgc3Rv
cExvY2F0aW9uID0gImxpbmU6ICIgKyBhY3RpdmVDYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9u
LmxpbmVOdW1iZXIgKyAiLCBjb2x1bW46ICIgKyBhY3RpdmVDYWxsRnJhbWUuc291cmNlQ29kZUxv
Y2F0aW9uLmNvbHVtbk51bWJlcjsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiXG5cbi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiSGl0IGJyZWFrcG9pbnQgYXQgIiArIHN0b3BMb2NhdGlvbik7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsK
LQotICAgICAgICAvLyB0b3AgZG93biBsaXN0Ci0gICAgICAgIGxldCBleHBlY3RlZEZyYW1lcyA9
IFsKLSAgICAgICAgICAgIHtmdW5jdGlvbk5hbWU6ICdhJywgdGhpc1ZhbHVlOiBbJ2FUaGlzJywg
Ml0sIGlzVGFpbERlbGV0ZWQ6IGZhbHNlfSwKLSAgICAgICAgICAgIHtmdW5jdGlvbk5hbWU6ICdi
JywgdGhpc1ZhbHVlOiBbJ2JUaGlzJywgMV0sIGlzVGFpbERlbGV0ZWQ6IHRydWV9LAotICAgICAg
ICAgICAge2Z1bmN0aW9uTmFtZTogJ2MnLCB0aGlzVmFsdWU6IFsnY1RoaXMnLCAwXSwgaXNUYWls
RGVsZXRlZDogdHJ1ZX0KLSAgICAgICAgXTsKLQotICAgICAgICBsZXQgdGFyZ2V0RGF0YSA9IFdJ
LmRlYnVnZ2VyTWFuYWdlci5kYXRhRm9yVGFyZ2V0KFdJLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVD
YWxsRnJhbWUudGFyZ2V0KTsKLSAgICAgICAgbGV0IGNhbGxGcmFtZXMgPSB0YXJnZXREYXRhLmNh
bGxGcmFtZXM7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FsbEZyYW1lcy5sZW5n
dGggPj0gZXhwZWN0ZWRGcmFtZXMubGVuZ3RoLCBgU2hvdWxkIGhhdmUgYXQgbGVhc3QgJHtleHBl
Y3RlZEZyYW1lcy5sZW5ndGh9IGZyYW1lcywgYnV0IGhhdmUgJHtjYWxsRnJhbWVzLmxlbmd0aH0g
aW5zdGVhZC5gKTsKLQotICAgICAgICAvLyBSZXNvbHZlIGEgdGhpc09iamVjdCBwcmV2aWV3IG9u
IGVhY2ggb2YgdGhlIENhbGxGcmFtZXMuCi0gICAgICAgIGxldCBwcm9taXNlcyA9IFtdOwotICAg
ICAgICBmb3IgKGxldCBjYWxsRnJhbWUgb2YgY2FsbEZyYW1lcykgewotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQoIWNhbGxGcmFtZS50aGlzT2JqZWN0LnByZXZpZXcsICJ0aGlzT2Jq
ZWN0IHNob3VsZCBub3QgaGF2ZSBhIHByZXZpZXciKTsKLSAgICAgICAgICAgIGlmIChjYWxsRnJh
bWUudGhpc09iamVjdC5jYW5Mb2FkUHJldmlldygpKSB7Ci0gICAgICAgICAgICAgICAgcHJvbWlz
ZXMucHVzaChuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICAgICAgICAg
ICAgICAgIGNhbGxGcmFtZS50aGlzT2JqZWN0LnVwZGF0ZVByZXZpZXcocmVzb2x2ZSk7Ci0gICAg
ICAgICAgICAgICAgfSkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgUHJv
bWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPCBleHBlY3RlZEZyYW1lcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgIGxl
dCBjYWxsRnJhbWUgPSBjYWxsRnJhbWVzW2ldOwotICAgICAgICAgICAgICAgIGxldCBleHBlY3Rl
ZEZyYW1lID0gZXhwZWN0ZWRGcmFtZXNbaV07Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkV4cGVjdGVkIGZyYW1lOiAiICsgSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRGcmFtZSkp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbGxGcmFtZS5mdW5jdGlv
bk5hbWUgPT09IGV4cGVjdGVkRnJhbWUuZnVuY3Rpb25OYW1lLCBgU2hvdWxkIGhhdmUgZnVuY3Rp
b25OYW1lIG9mICcke2V4cGVjdGVkRnJhbWUuZnVuY3Rpb25OYW1lfScsIGJ1dCBoYXZlICcke2Nh
bGxGcmFtZS5mdW5jdGlvbk5hbWV9JyBpbnN0ZWFkLmApOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0KGNhbGxGcmFtZS5pc1RhaWxEZWxldGVkID09PSBleHBlY3RlZEZyYW1l
LmlzVGFpbERlbGV0ZWQsIGBTaG91bGQgaGF2ZSBpc1RhaWxEZWxldGVkIG9mICcke2V4cGVjdGVk
RnJhbWUuaXNUYWlsRGVsZXRlZH0nLCBidXQgaGF2ZSAnJHtjYWxsRnJhbWUuaXNUYWlsRGVsZXRl
ZH0nIGluc3RlYWQuYCk7Ci0KLSAgICAgICAgICAgICAgICBsZXQgdGhpc09iamVjdCA9IGNhbGxG
cmFtZS50aGlzT2JqZWN0OwotICAgICAgICAgICAgICAgIGxldCBwcm9wZXJ0aWVzID0gdGhpc09i
amVjdC5wcmV2aWV3LnByb3BlcnR5UHJldmlld3M7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQocHJvcGVydGllcy5sZW5ndGggPT09IDEsICJTaG91bGQgaGF2ZSBvbmUgcHJv
cGVydHkuIik7Ci0gICAgICAgICAgICAgICAgbGV0IHByb3AgPSBwcm9wZXJ0aWVzWzBdOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChleHBlY3RlZEZyYW1lLnRoaXNW
YWx1ZVswXSA9PT0gcHJvcC5uYW1lLCBgJ3RoaXMnIHZhbHVlIHNob3VsZCBoYXZlIGV4cGVjdGVk
IHByb3BlcnR5OiAke2V4cGVjdGVkRnJhbWUudGhpc1ZhbHVlWzBdfWApOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCcnICsgZXhwZWN0ZWRGcmFtZS50aGlzVmFsdWVbMV0g
PT09IHByb3AudmFsdWUsIGAndGhpcycgdmFsdWUgb2JqZWN0IHNob3VsZCBoYXZlIGV4cGVjdGVk
IHByb3BlcnR5IHZhbHVlOiAke2V4cGVjdGVkRnJhbWUudGhpc1ZhbHVlWzFdfWApOwotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QucGFzcyhgQ2FsbCBGcmFtZSAke2l9ICd0aGlzJyB2YWx1
ZSBpcyBjb3JyZWN0LmApOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBXSS5kZWJ1Z2dl
ck1hbmFnZXIucmVzdW1lKCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgV0kuZGVidWdn
ZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlJlc3Vt
ZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJUZXN0cyBk
b25lIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfSk7Ci0K
LSAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5EZWJ1Z2dlck1hbmFn
ZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIGV2ZW50U2Ny
aXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7Ci0gICAgICAgIAotICAgICAgICBpZiAoL3Rh
aWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZVwuanMkLy50ZXN0KGV2ZW50U2NyaXB0T2JqZWN0
LnVybCkpIHsKLSAgICAgICAgICAgIHNjcmlwdE9iamVjdCA9IGV2ZW50U2NyaXB0T2JqZWN0Owot
ICAgICAgICAgICAgc3RhcnRUZXN0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
LQotICAgIH0pOwotCi0gICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7Ci19Ci08L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5UZXN0aW5nIHRo
YXQgd2Uga2VlcCBhcm91bmQgdGFpbCBkZWxldGVkIGZyYW1lcyBpbiB0aGUgaW5zcGVjdG9yIGFu
ZCB0aGVpciB0aGlzIHZhbHVlcy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGFhYWNhOTc5NjUuLjAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDcgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgc2NyaXB0T2JqZWN0Owot
Ci0gICAgZnVuY3Rpb24gcmVtb3RlT2JqZWN0SlNPTkZpbHRlcihrZXksIHZhbHVlKSB7Ci0gICAg
ICAgIGlmIChrZXkgPT09ICJfdGFyZ2V0IiB8fCBrZXkgPT09ICJfbGlzdGVuZXJzIikKLSAgICAg
ICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICAgIGlmIChrZXkgPT09ICJfb2JqZWN0SWQi
IHx8IGtleSA9PT0gIl9zdGFja1RyYWNlIikKLSAgICAgICAgICAgIHJldHVybiAiPGZpbHRlcmVk
PiI7Ci0gICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGFydFRl
c3QoKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTdGFydGluZyBUZXN0Iik7Ci0gICAg
ICAgIC8vIDAgYmFzZWQgaW5kaWNlcy4KLSAgICAgICAgbGV0IHRlc3RJbmZvID0ge2xpbmU6IDMs
IGNvbHVtbjogNH07Ci0gICAgICAgIGxldCBsb2NhdGlvbiA9IHNjcmlwdE9iamVjdC5jcmVhdGVT
b3VyY2VDb2RlTG9jYXRpb24odGVzdEluZm8ubGluZSwgdGVzdEluZm8uY29sdW1uKTsKLSAgICAg
ICAgbGV0IGJyZWFrcG9pbnQgPSBuZXcgV0kuQnJlYWtwb2ludChsb2NhdGlvbik7Ci0gICAgICAg
IFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRCcmVha3BvaW50KGJyZWFrcG9pbnQpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzdGFydEFCQygpIik7Ci0gICAgfQotCi0gICAg
V0kuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2
ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIHZhciBh
Y3RpdmVDYWxsRnJhbWUgPSBXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lOwotCi0g
ICAgICAgIGlmICghYWN0aXZlQ2FsbEZyYW1lKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgIHZhciBzdG9wTG9jYXRpb24gPSAibGluZTogIiArIGFjdGl2ZUNhbGxGcmFtZS5zb3VyY2VD
b2RlTG9jYXRpb24ubGluZU51bWJlciArICIsIGNvbHVtbjogIiArIGFjdGl2ZUNhbGxGcmFtZS5z
b3VyY2VDb2RlTG9jYXRpb24uY29sdW1uTnVtYmVyOwotCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJIaXQgYnJlYWtwb2ludCBhdCAiICsgc3RvcExvY2F0aW9uKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSIpOwotCi0gICAgICAgIC8vIHRvcCBkb3duIGxpc3QKLSAgICAgICAgbGV0IGV4cGVj
dGVkRnJhbWVzID0gWwotICAgICAgICAgICAge2Z1bmN0aW9uTmFtZTogJ2EnLCBzY29wZTogWyd4
JywgMjBdLCBpc1RhaWxEZWxldGVkOiBmYWxzZX0sCi0gICAgICAgICAgICB7ZnVuY3Rpb25OYW1l
OiAnYicsIHNjb3BlOiBbJ3knLCA0MF0sIGlzVGFpbERlbGV0ZWQ6IHRydWV9LAotICAgICAgICAg
ICAge2Z1bmN0aW9uTmFtZTogJ2MnLCBzY29wZTogWyd6JywgNjBdLCBpc1RhaWxEZWxldGVkOiB0
cnVlfQotICAgICAgICBdOwotCi0gICAgICAgIGxldCB0YXJnZXREYXRhID0gV0kuZGVidWdnZXJN
YW5hZ2VyLmRhdGFGb3JUYXJnZXQoV0kuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZS50
YXJnZXQpOwotICAgICAgICBsZXQgY2FsbEZyYW1lcyA9IHRhcmdldERhdGEuY2FsbEZyYW1lczsK
LQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYWxsRnJhbWVzLmxlbmd0aCA+PSBleHBl
Y3RlZEZyYW1lcy5sZW5ndGgpOwotCi0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZXhwZWN0
ZWRGcmFtZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIGxldCBjYWxsRnJhbWUgPSBjYWxs
RnJhbWVzW2ldOwotICAgICAgICAgICAgbGV0IGV4cGVjdGVkRnJhbWUgPSBleHBlY3RlZEZyYW1l
c1tpXTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFeHBlY3RlZCBmcmFtZTogIiAr
IEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkRnJhbWUpKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgPT09IGV4cGVjdGVkRnJhbWUuZnVuY3Rp
b25OYW1lKTsKLQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FsbEZyYW1lLmlz
VGFpbERlbGV0ZWQgPT09IGV4cGVjdGVkRnJhbWUuaXNUYWlsRGVsZXRlZCk7Ci0gICAgICAgICAg
ICBsZXQgdG9wU2NvcGUgPSBjYWxsRnJhbWUuc2NvcGVDaGFpblswXTsKLQotICAgICAgICAgICAg
dG9wU2NvcGUub2JqZWN0c1swXS5nZXRQcm9wZXJ0eURlc2NyaXB0b3JzKGZ1bmN0aW9uKHByb3Bl
cnRpZXMpIHsKLSAgICAgICAgICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTsKLSAgICAgICAgICAg
ICAgICBsZXQgdmFyaWFibGVOYW1lID0gZXhwZWN0ZWRGcmFtZS5zY29wZVswXTsKLSAgICAgICAg
ICAgICAgICBsZXQgdmFyaWFibGVWYWx1ZSA9IGV4cGVjdGVkRnJhbWUuc2NvcGVbMV07Ci0gICAg
ICAgICAgICAgICAgZm9yIChsZXQgcHJvcGVydHlEZXNjcmlwdG9yIG9mIHByb3BlcnRpZXMpIHsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5RGVzY3JpcHRvci5uYW1lID09PSB2YXJp
YWJsZU5hbWUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJMb29raW5nIGF0IGZyYW1lIG51
bWJlcjogIiArIGkpOwotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
YCAgICB2YXJpYWJsZSAnJHt2YXJpYWJsZU5hbWV9JzogJHtKU09OLnN0cmluZ2lmeShwcm9wZXJ0
eURlc2NyaXB0b3IudmFsdWUsIHJlbW90ZU9iamVjdEpTT05GaWx0ZXIpfWApOwotICAgICAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQocHJvcGVydHlEZXNjcmlwdG9yLnZh
bHVlLnR5cGUgPT09ICdudW1iZXInKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KHByb3BlcnR5RGVzY3JpcHRvci52YWx1ZS52YWx1ZSA9PT0gdmFyaWFibGVW
YWx1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZm91bmQpOwotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7Ci0gICAgfSk7
Ci0KLSAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5EZWJ1Z2dlck1h
bmFnZXIuRXZlbnQuUmVzdW1lZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIlRlc3RzIGRvbmUiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKLSAgICB9KTsKLQotICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVy
KFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsK
LSAgICAgICAgZXZlbnRTY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAg
Ci0gICAgICAgIGlmICgvdGFpbC1kZWxldGVkLWZyYW1lc1wuanMkLy50ZXN0KGV2ZW50U2NyaXB0
T2JqZWN0LnVybCkpIHsKLSAgICAgICAgICAgIHNjcmlwdE9iamVjdCA9IGV2ZW50U2NyaXB0T2Jq
ZWN0OwotICAgICAgICAgICAgc3RhcnRUZXN0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLQotICAgIH0pOwotCi0gICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7Ci19Ci08
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5UZXN0
aW5nIHRoYXQgd2Uga2VlcCBhcm91bmQgdGFpbCBkZWxldGVkIGZyYW1lcyBpbiB0aGUgaW5zcGVj
dG9yLiA8L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvc3RhY2stdHJhY2Ut
dXRpbGl0aWVzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRl
ZC1mcmFtZXMvcmVzb3VyY2VzL3N0YWNrLXRyYWNlLXV0aWxpdGllcy5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjIwZjgzNWMyZDkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNv
dXJjZXMvc3RhY2stdHJhY2UtdXRpbGl0aWVzLmpzCkBAIC0wLDAgKzEsOTcgQEAKK1Rlc3RQYWdl
LnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4geworICAgIHdpbmRvdy5nZXRBc3luY1N0YWNrVHJh
Y2UgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV0kuZGVidWdn
ZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZSwgIkFjdGl2ZSBjYWxsIGZyYW1lIHNob3VsZCBleGlz
dC4iKTsKKyAgICAgICAgaWYgKCFXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lKQor
ICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgbGV0IHRhcmdldERhdGEgPSBXSS5k
ZWJ1Z2dlck1hbmFnZXIuZGF0YUZvclRhcmdldChXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2Fs
bEZyYW1lLnRhcmdldCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHRhcmdldERhdGEs
ICJEYXRhIGZvciBhY3RpdmUgY2FsbCBmcmFtZSB0YXJnZXQgc2hvdWxkIGV4aXN0LiIpOworICAg
ICAgICBpZiAoIXRhcmdldERhdGEpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAg
ICBjb25zdCB0b3BDYWxsRnJhbWVJc0JvdW5kYXJ5ID0gZmFsc2U7CisgICAgICAgIGNvbnN0IHRy
dW5jYXRlZCA9IGZhbHNlOworICAgICAgICByZXR1cm4gbmV3IFdJLlN0YWNrVHJhY2UodGFyZ2V0
RGF0YS5jYWxsRnJhbWVzLCB0b3BDYWxsRnJhbWVJc0JvdW5kYXJ5LCB0cnVuY2F0ZWQsIHRhcmdl
dERhdGEuYXN5bmNTdGFja1RyYWNlKTsKKyAgICB9OworCisgICAgd2luZG93LmxvZ0FzeW5jU3Rh
Y2tUcmFjZSA9IGFzeW5jIGZ1bmN0aW9uKG9wdGlvbnMgPSB7fSkgeworICAgICAgICBsZXQgZm91
bmRBc3luY0JvdW5kYXJ5ID0gZmFsc2U7CisgICAgICAgIGxldCBjYWxsRnJhbWVJbmRleCA9IDA7
CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9nVGhpc09iamVjdChjYWxsRnJhbWUpIHsKKyAg
ICAgICAgICAgIGlmIChjYWxsRnJhbWUudGhpc09iamVjdC5jYW5Mb2FkUHJldmlldygpKSB7Cisg
ICAgICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgY2FsbEZyYW1l
LnRoaXNPYmplY3QudXBkYXRlUHJldmlldyhyZXNvbHZlKTsgfSk7CisgICAgICAgICAgICAgICAg
bGV0IHByZXZpZXcgPSBjYWxsRnJhbWUudGhpc09iamVjdC5wcmV2aWV3LnByb3BlcnR5UHJldmll
d3NbMF07CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYCAgdGhpczogJHtwcmV2
aWV3Lm5hbWV9IC0gJHtwcmV2aWV3LnZhbHVlfWApOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYCAgdGhpczogdW5kZWZpbmVkYCk7CisgICAg
ICAgIH0KKworICAgICAgICBhc3luYyBmdW5jdGlvbiBsb2dTY29wZShjYWxsRnJhbWUsIHNjb3Bl
Q2hhaW5JbmRleCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYCAgLS0tLVNjb3Bl
LS0tLWApOworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKKyAgICAgICAgICAgICAgICBsZXQgc2NvcGUgPSBjYWxsRnJhbWUuc2NvcGVDaGFpbltz
Y29wZUNoYWluSW5kZXhdOworICAgICAgICAgICAgICAgIGlmICghc2NvcGUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNjb3BlLm9iamVjdHNbMF0uZ2V0UHJvcGVy
dHlEZXNjcmlwdG9ycygocHJvcGVydGllcykgPT4geworICAgICAgICAgICAgICAgICAgICBmb3Ig
KGxldCBwcm9wZXJ0eURlc2NyaXB0b3Igb2YgcHJvcGVydGllcykKKyAgICAgICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKGAgICR7cHJvcGVydHlEZXNjcmlwdG9yLm5hbWV9OiAk
e3Byb3BlcnR5RGVzY3JpcHRvci52YWx1ZS5kZXNjcmlwdGlvbn1gKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCFwcm9wZXJ0aWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKGAgIC0tICBlbXB0eSAgLS1gKTsKKyAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coYCAgLS0tLS0tLS0tLS0tLWApOworICAgICAgICAgICAgICAgICAg
ICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvZ0NhbGxGcmFtZShjYWxsRnJhbWUsIGlz
QXN5bmNCb3VuZGFyeSkgeworICAgICAgICAgICAgbGV0IGxhYmVsID0gY2FsbEZyYW1lLmZ1bmN0
aW9uTmFtZTsKKyAgICAgICAgICAgIGlmIChpc0FzeW5jQm91bmRhcnkpCisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coYCR7Y2FsbEZyYW1lSW5kZXh9OiAtLS0gJHtsYWJlbH0gLS0t
YCk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBsZXQgY29kZSA9IGNhbGxG
cmFtZS5uYXRpdmVDb2RlID8gIk4iIDogKGNhbGxGcmFtZS5wcm9ncmFtQ29kZSA/ICJQIiA6ICJG
Iik7CisgICAgICAgICAgICAgICAgbGV0IGljb24gPSBjYWxsRnJhbWUuaXNUYWlsRGVsZXRlZCA/
IGAtJHtjb2RlfS1gIDogYFske2NvZGV9XWA7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coYCR7Y2FsbEZyYW1lSW5kZXh9OiAke2ljb259ICR7bGFiZWx9YCk7CisgICAgICAgICAg
ICAgICAgaWYgKCJpbmNsdWRlVGhpc09iamVjdCIgaW4gb3B0aW9ucykKKyAgICAgICAgICAgICAg
ICAgICAgYXdhaXQgbG9nVGhpc09iamVjdChjYWxsRnJhbWUpOworICAgICAgICAgICAgICAgIGlm
ICgiaW5jbHVkZVNjb3BlIiBpbiBvcHRpb25zKQorICAgICAgICAgICAgICAgICAgICBhd2FpdCBs
b2dTY29wZShjYWxsRnJhbWUsIG9wdGlvbnMuaW5jbHVkZVNjb3BlKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGNhbGxGcmFtZUluZGV4Kys7CisgICAgICAgIH0KKworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiQ0FMTCBTVEFDSzoiKTsKKworICAgICAgICBsZXQgc3RhY2tUcmFjZSA9
IGdldEFzeW5jU3RhY2tUcmFjZSgpOworICAgICAgICB3aGlsZSAoc3RhY2tUcmFjZSkgeworICAg
ICAgICAgICAgbGV0IGNhbGxGcmFtZXMgPSBzdGFja1RyYWNlLmNhbGxGcmFtZXM7CisgICAgICAg
ICAgICBsZXQgdG9wQ2FsbEZyYW1lSXNCb3VuZGFyeSA9IHN0YWNrVHJhY2UudG9wQ2FsbEZyYW1l
SXNCb3VuZGFyeTsKKyAgICAgICAgICAgIGxldCB0cnVuY2F0ZWQgPSBzdGFja1RyYWNlLnRydW5j
YXRlZDsKKyAgICAgICAgICAgIHN0YWNrVHJhY2UgPSBzdGFja1RyYWNlLnBhcmVudFN0YWNrVHJh
Y2U7CisgICAgICAgICAgICBpZiAoIWNhbGxGcmFtZXMgfHwgIWNhbGxGcmFtZXMubGVuZ3RoKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBpZiAodG9wQ2FsbEZyYW1l
SXNCb3VuZGFyeSkgeworICAgICAgICAgICAgICAgIGlmICghZm91bmRBc3luY0JvdW5kYXJ5KSB7
CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJBU1lOQyBDQUxMIFNUQUNL
OiIpOworICAgICAgICAgICAgICAgICAgICBmb3VuZEFzeW5jQm91bmRhcnkgPSB0cnVlOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhd2FpdCBsb2dDYWxsRnJhbWUoY2FsbEZy
YW1lc1swXSwgdHJ1ZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAobGV0IGkg
PSB0b3BDYWxsRnJhbWVJc0JvdW5kYXJ5ID8gMSA6IDA7IGkgPCBjYWxsRnJhbWVzLmxlbmd0aDsg
KytpKSB7CisgICAgICAgICAgICAgICAgbGV0IGNhbGxGcmFtZSA9IGNhbGxGcmFtZXNbaV07Cisg
ICAgICAgICAgICAgICAgYXdhaXQgbG9nQ2FsbEZyYW1lKGNhbGxGcmFtZSk7CisKKyAgICAgICAg
ICAgICAgICAvLyBTa2lwIGNhbGwgZnJhbWVzIGFmdGVyIHRoZSB0ZXN0IGhhcm5lc3MgZW50cnkg
cG9pbnQuCisgICAgICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS5wcm9ncmFtQ29kZSkKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0
cnVuY2F0ZWQpCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIihyZW1haW5pbmcg
Y2FsbCBmcmFtZXMgdHJ1bmNhdGVkKSIpOworICAgICAgICB9CisgICAgfTsKK30pOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMv
cmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLWZyYW1lcy5qcyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3Jlc291cmNl
cy90YWlsLWRlbGV0ZWQtZnJhbWVzLWludGVybWVkaWF0ZS1mcmFtZXMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU0MDkyMTE4ZWU1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvcmVz
b3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLWZyYW1lcy5qcwpAQCAtMCww
ICsxLDIzIEBACisidXNlIHN0cmljdCI7CitmdW5jdGlvbiBhKCkgeworICAgIGxldCB4ID0gMjA7
CisgICAgZGVidWdnZXI7CisgICAgcmV0dXJuIHg7Cit9CitmdW5jdGlvbiBiKCkgeworICAgIGxl
dCB5ID0gNDA7CisgICAgcmV0dXJuIGEoKTsKK30KK2Z1bmN0aW9uIGMoKSB7CisgICAgbGV0IHog
PSA2MDsKKyAgICByZXR1cm4gYigpOyAKK30KK2Z1bmN0aW9uIHN0YXJ0QUJDKCkgeworICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgNTsgKytpKQorICAgICAgICBUSElTX0RPRVNfTk9UX0NBTExfYygp
OworICAgIGMoKTsKK30KK2Z1bmN0aW9uIGRvTm90aGluZygpIHsgcmV0dXJuIDE7IH0KK2Z1bmN0
aW9uIFRISVNfRE9FU19OT1RfQ0FMTF9jKCkgeworICAgIHJldHVybiBkb05vdGhpbmcoKTsKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQt
ZnJhbWVzL3Jlc291cmNlcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWludGVybWVkaWF0ZS1uYXRpdmUt
dGFpbC1kZWxldGVkLWNhbGxzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Rh
aWwtZGVsZXRlZC1mcmFtZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRp
YXRlLW5hdGl2ZS10YWlsLWRlbGV0ZWQtY2FsbHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjA3OTg0YTkyMzRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvcmVzb3VyY2VzL3RhaWwt
ZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLW5hdGl2ZS10YWlsLWRlbGV0ZWQtY2FsbHMuanMK
QEAgLTAsMCArMSwyMiBAQAorInVzZSBzdHJpY3QiOworZnVuY3Rpb24gYSgpIHsKKyAgICBsZXQg
eCA9IDIwOworICAgIGRlYnVnZ2VyOworICAgIHJldHVybiB4OworfQorZnVuY3Rpb24gYigpIHsK
KyAgICBsZXQgeSA9IDQwOworICAgIHJldHVybiBhKCk7Cit9CitmdW5jdGlvbiBjKCkgeworICAg
IGxldCB6ID0gNjA7CisgICAgcmV0dXJuIGIoKTsgCit9CitmdW5jdGlvbiBzdGFydEFCQygpIHsK
KyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDU7ICsraSkKKyAgICAgICAgVEhJU19ET0VTX05PVF9D
QUxMX2MoKTsKKyAgICBjKCk7Cit9CitmdW5jdGlvbiBUSElTX0RPRVNfTk9UX0NBTExfYygpIHsK
KyAgICByZXR1cm4gTWF0aC5yYW5kb20oKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3Jlc291cmNlcy90YWlsLWRlbGV0
ZWQtZnJhbWVzLWludGVybWVkaWF0ZS10YWlsLWRlbGV0ZWQtZnJhbWVzLmpzIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvcmVzb3VyY2VzL3RhaWwt
ZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLXRhaWwtZGVsZXRlZC1mcmFtZXMuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU0MDkyMTE4ZWU1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFt
ZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLXRhaWwtZGVsZXRl
ZC1mcmFtZXMuanMKQEAgLTAsMCArMSwyMyBAQAorInVzZSBzdHJpY3QiOworZnVuY3Rpb24gYSgp
IHsKKyAgICBsZXQgeCA9IDIwOworICAgIGRlYnVnZ2VyOworICAgIHJldHVybiB4OworfQorZnVu
Y3Rpb24gYigpIHsKKyAgICBsZXQgeSA9IDQwOworICAgIHJldHVybiBhKCk7Cit9CitmdW5jdGlv
biBjKCkgeworICAgIGxldCB6ID0gNjA7CisgICAgcmV0dXJuIGIoKTsgCit9CitmdW5jdGlvbiBz
dGFydEFCQygpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDU7ICsraSkKKyAgICAgICAgVEhJ
U19ET0VTX05PVF9DQUxMX2MoKTsKKyAgICBjKCk7Cit9CitmdW5jdGlvbiBkb05vdGhpbmcoKSB7
IHJldHVybiAxOyB9CitmdW5jdGlvbiBUSElTX0RPRVNfTk9UX0NBTExfYygpIHsKKyAgICByZXR1
cm4gZG9Ob3RoaW5nKCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1z
Y29wZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZy
YW1lcy9yZXNvdXJjZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1zY29wZXMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVjMGJhMDRhZjdmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvcmVz
b3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtc2NvcGVzLmpzCkBAIC0wLDAgKzEsMTcgQEAKKyJ1
c2Ugc3RyaWN0IjsKK2Z1bmN0aW9uIGEoKSB7CisgICAgbGV0IHggPSAyMDsKKyAgICBkZWJ1Z2dl
cjsKKyAgICByZXR1cm4geDsKK30KK2Z1bmN0aW9uIGIoKSB7CisgICAgbGV0IHkgPSA0MDsKKyAg
ICByZXR1cm4gYSgpOworfQorZnVuY3Rpb24gYygpIHsKKyAgICBsZXQgeiA9IDYwOworICAgIHJl
dHVybiBiKCk7IAorfQorZnVuY3Rpb24gc3RhcnRBQkMoKSB7CisgICAgYygpOworfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMv
cmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS5qcyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3Jlc291cmNlcy90YWlsLWRl
bGV0ZWQtZnJhbWVzLXRoaXMtdmFsdWUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjAzYWQ4NDRlNTBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRl
ZC1mcmFtZXMtdGhpcy12YWx1ZS5qcwpAQCAtMCwwICsxLDE3IEBACisidXNlIHN0cmljdCI7Citm
dW5jdGlvbiBhKCkgeworICAgIGxldCB4ID0gMjA7CisgICAgZGVidWdnZXI7CisgICAgcmV0dXJu
IHg7Cit9CitmdW5jdGlvbiBiKCkgeworICAgIGxldCB5ID0gNDA7CisgICAgcmV0dXJuIGEuY2Fs
bCh7YVRoaXM6IDJ9KTsKK30KK2Z1bmN0aW9uIGMoKSB7CisgICAgbGV0IHogPSA2MDsKKyAgICBy
ZXR1cm4gYi5jYWxsKHtiVGhpczogMX0pOyAKK30KK2Z1bmN0aW9uIHN0YXJ0QUJDKCkgeworICAg
IGMuY2FsbCh7Y1RoaXM6IDB9KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3Jlc291cmNlcy90YWlsLWRlbGV0ZWQtZnJh
bWVzLXZtLWVudHJ5LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVs
ZXRlZC1mcmFtZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdm0tZW50cnkuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQ2OGE4YjExNmEwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1m
cmFtZXMvcmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdm0tZW50cnkuanMKQEAgLTAsMCAr
MSwxMCBAQAorInVzZSBzdHJpY3QiOworZnVuY3Rpb24gdGltZW91dChmb28gPSAyNSkgeworICAg
IHJldHVybiBiYXIoKTsKK30KK2Z1bmN0aW9uIGJhcihpID0gOSkgeworICAgIGlmIChpID4gMCkK
KyAgICAgICAgcmV0dXJuIGJhcihpIC0gMSk7CisgICAgZGVidWdnZXI7CisgICAgcmV0dXJuIDk5
OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVs
ZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtZnJhbWVzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJh
bWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLWZyYW1lcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBiNjQ4ZjZjYjIxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRl
ZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlhdGUtZnJhbWVzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE0IEBACitFbnN1cmUgcHJvcGVyIHRhaWwgZGVsZXRlZCBmcmFtZXMg
d2l0aCBkaWZmZXJlbnQgY2FsbCBzdGFja3MuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBE
ZWJ1Z2dlci5UYWlsRGVsZXRlZEZyYW1lcy5JbnRlcm1lZGlhdGVGcmFtZXMKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBEZWJ1Z2dlci5UYWlsRGVsZXRlZEZyYW1lcy5JbnRlcm1lZGlhdGVGcmFtZXMK
K1BBVVNFRAorQ0FMTCBTVEFDSzoKKzA6IFtGXSBhCisxOiAtRi0gYgorMjogLUYtIGMKKzM6IFtG
XSBzdGFydEFCQworNDogW1BdIEdsb2JhbCBDb2RlCitSRVNVTUVECisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVs
ZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLWZyYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRl
cm1lZGlhdGUtZnJhbWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjdjNDFiNzRkNzkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1l
ZGlhdGUtZnJhbWVzLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3N0YWNrLXRyYWNlLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLWZyYW1lcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVj
dG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJEZWJ1Z2dlci5UYWlsRGVsZXRlZEZyYW1lcy5JbnRl
cm1lZGlhdGVGcmFtZXMiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFt
ZTogIkRlYnVnZ2VyLlRhaWxEZWxldGVkRnJhbWVzLkludGVybWVkaWF0ZUZyYW1lcyIsCisgICAg
ICAgIGRlc2NyaXB0aW9uOiAiRW5zdXJlIGludGVybWVkaWF0ZSBmcmFtZXMgaW4gYSBsb2cgZG8g
bm90IHNob3cgdXAgaW4gdGhlIGNhbGwgc3RhY2siLAorICAgICAgICBhc3luYyB0ZXN0KCkgewor
ICAgICAgICAgICAgLy8gVHJpZ2dlciBicmVha3BvaW50LgorICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluUGFnZShgc3RhcnRBQkMoKWApOworCisgICAgICAgICAgICAvLyBEdW1w
IHN0YWNrIHdoZW4gcGF1c2VkLgorICAgICAgICAgICAgYXdhaXQgV0kuZGVidWdnZXJNYW5hZ2Vy
LmF3YWl0RXZlbnQoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0VEIik7CisgICAgICAgICAgICBhd2FpdCBsb2dBc3lu
Y1N0YWNrVHJhY2UoKTsKKworICAgICAgICAgICAgLy8gUmVzdW1lIGFuZCBlbmQgdGVzdC4KKyAg
ICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKKyAgICAgICAgICAgIGF3YWl0
IFdJLmRlYnVnZ2VyTWFuYWdlci5hd2FpdEV2ZW50KFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5S
ZXN1bWVkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJSRVNVTUVEIik7CisgICAg
ICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5FbnN1cmUg
cHJvcGVyIHRhaWwgZGVsZXRlZCBmcmFtZXMgd2l0aCBkaWZmZXJlbnQgY2FsbCBzdGFja3MuPC9w
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1pbnRlcm1lZGlh
dGUtbmF0aXZlLXRhaWwtZGVsZXRlZC1jYWxscy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVz
LWludGVybWVkaWF0ZS1uYXRpdmUtdGFpbC1kZWxldGVkLWNhbGxzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWMzZDZhOTNiYzIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZy
YW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWludGVybWVkaWF0ZS1uYXRpdmUtdGFpbC1kZWxldGVk
LWNhbGxzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACitFbnN1cmUgcHJvcGVyIHRhaWwg
ZGVsZXRlZCBmcmFtZXMgd2l0aCBkaWZmZXJlbnQgY2FsbCBzdGFja3MuCisKKworPT0gUnVubmlu
ZyB0ZXN0IHN1aXRlOiBEZWJ1Z2dlci5UYWlsRGVsZXRlZEZyYW1lcy5JbnRlcm1lZGlhdGVUYWls
RGVsZXRlZEZyYW1lcworLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLlRhaWxEZWxldGVk
RnJhbWVzLkludGVybWVkaWF0ZVRhaWxEZWxldGVkRnJhbWVzCitGQUlMOiBUaGlzIHNob3VsZCBu
b3QgaGF2ZSBgVEhJU19ET0VTX05PVF9DQUxMX2NgIGluIHRoZSBjYWxsIHN0YWNrLgorUEFVU0VE
CitDQUxMIFNUQUNLOgorMDogW0ZdIGEKKzE6IC1GLSBiCisyOiAtRi0gYworMzogLUYtIFRISVNf
RE9FU19OT1RfQ0FMTF9jCis0OiAtRi0gVEhJU19ET0VTX05PVF9DQUxMX2MKKzU6IC1GLSBUSElT
X0RPRVNfTk9UX0NBTExfYworNjogLUYtIFRISVNfRE9FU19OT1RfQ0FMTF9jCis3OiAtRi0gVEhJ
U19ET0VTX05PVF9DQUxMX2MKKzg6IFtGXSBzdGFydEFCQworOTogW1BdIEdsb2JhbCBDb2RlCitS
RVNVTUVECisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWls
LWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLW5hdGl2ZS10
YWlsLWRlbGV0ZWQtY2FsbHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90
YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLW5hdGl2
ZS10YWlsLWRlbGV0ZWQtY2FsbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uM2QwZDMyODM2MDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWlu
dGVybWVkaWF0ZS1uYXRpdmUtdGFpbC1kZWxldGVkLWNhbGxzLmh0bWwKQEAgLTAsMCArMSw0MyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N0YWNrLXRyYWNlLXV0aWxpdGllcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJt
ZWRpYXRlLW5hdGl2ZS10YWlsLWRlbGV0ZWQtY2FsbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRl
QXN5bmNTdWl0ZSgiRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuSW50ZXJtZWRpYXRlVGFpbERl
bGV0ZWRGcmFtZXMiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTog
IkRlYnVnZ2VyLlRhaWxEZWxldGVkRnJhbWVzLkludGVybWVkaWF0ZVRhaWxEZWxldGVkRnJhbWVz
IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJFbnN1cmUgaW50ZXJtZWRpYXRlIHRhaWwgZGVsZXRl
ZCBmcmFtZXMgaW4gYSBsb2cgZG8gbm90IHNob3cgdXAgaW4gdGhlIGNhbGwgc3RhY2siLAorICAg
ICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgLy8gVHJpZ2dlciBicmVha3BvaW50Lgor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgc3RhcnRBQkMoKWApOwor
CisgICAgICAgICAgICAvLyBGSVhNRTogU2hhZG93Q2hpY2tlbiBvbmx5IHdvcmtzIGlmIGVhY2gg
dGFpbCBjYWxsIGZ1bmN0aW9uIGVtaXRzIGEgcHJvbG9ndWUKKyAgICAgICAgICAgIC8vIG9uIGVu
dHJ5LiBVbmZvcnR1bmF0ZWx5IG5hdGl2ZSBmdW5jdGlvbiBjYWxscyBkbyBub3QgZW1pdCBhIHBy
b2xvZ3VlLCBzbyB0aGUKKyAgICAgICAgICAgIC8vIFNoYWRvd0NoaWNrZW4gc3RhY2sgY2Fubm90
IHByb3Blcmx5IGFzc2VzIHRoZSB0YWlsIGNhbGwgZnJvbSBgVEhJU19ET0VTX05PVF9DQUxMX2Ng
LgorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJUaGlzIHNob3VsZCBub3QgaGF2ZSBg
VEhJU19ET0VTX05PVF9DQUxMX2NgIGluIHRoZSBjYWxsIHN0YWNrLiIpCisKKyAgICAgICAgICAg
IC8vIER1bXAgc3RhY2sgd2hlbiBwYXVzZWQuCisgICAgICAgICAgICBhd2FpdCBXSS5kZWJ1Z2dl
ck1hbmFnZXIuYXdhaXRFdmVudChXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVTRUQiKTsKKyAgICAgICAgICAgIGF3YWl0
IGxvZ0FzeW5jU3RhY2tUcmFjZSgpOworCisgICAgICAgICAgICAvLyBSZXN1bWUgYW5kIGVuZCB0
ZXN0LgorICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOworICAgICAgICAg
ICAgYXdhaXQgV0kuZGVidWdnZXJNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuRGVidWdnZXJNYW5hZ2Vy
LkV2ZW50LlJlc3VtZWQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJFU1VNRUQi
KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNo
KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxw
PkVuc3VyZSBwcm9wZXIgdGFpbCBkZWxldGVkIGZyYW1lcyB3aXRoIGRpZmZlcmVudCBjYWxsIHN0
YWNrcy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWlu
dGVybWVkaWF0ZS10YWlsLWRlbGV0ZWQtZnJhbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFt
ZXMtaW50ZXJtZWRpYXRlLXRhaWwtZGVsZXRlZC1mcmFtZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZjE4NGJjYzYzNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVz
L3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLXRhaWwtZGVsZXRlZC1mcmFtZXMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK0Vuc3VyZSBwcm9wZXIgdGFpbCBkZWxldGVkIGZy
YW1lcyB3aXRoIGRpZmZlcmVudCBjYWxsIHN0YWNrcy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3Vp
dGU6IERlYnVnZ2VyLlRhaWxEZWxldGVkRnJhbWVzLkludGVybWVkaWF0ZVRhaWxEZWxldGVkRnJh
bWVzCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuSW50
ZXJtZWRpYXRlVGFpbERlbGV0ZWRGcmFtZXMKK1BBVVNFRAorQ0FMTCBTVEFDSzoKKzA6IFtGXSBh
CisxOiAtRi0gYgorMjogLUYtIGMKKzM6IFtGXSBzdGFydEFCQworNDogW1BdIEdsb2JhbCBDb2Rl
CitSRVNVTUVECisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90
YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLXRhaWwt
ZGVsZXRlZC1mcmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWls
LWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLXRhaWwtZGVs
ZXRlZC1mcmFtZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ZmNlOTMyZDkyMWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLWludGVybWVkaWF0
ZS10YWlsLWRlbGV0ZWQtZnJhbWVzLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3N0YWNrLXRyYWNlLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtaW50ZXJtZWRpYXRlLXRhaWwtZGVs
ZXRlZC1mcmFtZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQorewor
ICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiRGVidWdnZXIu
VGFpbERlbGV0ZWRGcmFtZXMuSW50ZXJtZWRpYXRlVGFpbERlbGV0ZWRGcmFtZXMiKTsKKworICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLlRhaWxEZWxldGVk
RnJhbWVzLkludGVybWVkaWF0ZVRhaWxEZWxldGVkRnJhbWVzIiwKKyAgICAgICAgZGVzY3JpcHRp
b246ICJFbnN1cmUgaW50ZXJtZWRpYXRlIHRhaWwgZGVsZXRlZCBmcmFtZXMgaW4gYSBsb2cgZG8g
bm90IHNob3cgdXAgaW4gdGhlIGNhbGwgc3RhY2siLAorICAgICAgICBhc3luYyB0ZXN0KCkgewor
ICAgICAgICAgICAgLy8gVHJpZ2dlciBicmVha3BvaW50LgorICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluUGFnZShgc3RhcnRBQkMoKWApOworCisgICAgICAgICAgICAvLyBEdW1w
IHN0YWNrIHdoZW4gcGF1c2VkLgorICAgICAgICAgICAgYXdhaXQgV0kuZGVidWdnZXJNYW5hZ2Vy
LmF3YWl0RXZlbnQoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0VEIik7CisgICAgICAgICAgICBhd2FpdCBsb2dBc3lu
Y1N0YWNrVHJhY2UoKTsKKworICAgICAgICAgICAgLy8gUmVzdW1lIGFuZCBlbmQgdGVzdC4KKyAg
ICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKKyAgICAgICAgICAgIGF3YWl0
IFdJLmRlYnVnZ2VyTWFuYWdlci5hd2FpdEV2ZW50KFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5S
ZXN1bWVkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJSRVNVTUVEIik7CisgICAg
ICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5FbnN1cmUg
cHJvcGVyIHRhaWwgZGVsZXRlZCBmcmFtZXMgd2l0aCBkaWZmZXJlbnQgY2FsbCBzdGFja3MuPC9w
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1zY29wZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1m
cmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1zY29wZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45Y2ZkMmM5NmMwMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3Rh
aWwtZGVsZXRlZC1mcmFtZXMtc2NvcGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACitF
bnN1cmUgcHJvcGVyIHNjb3BlcyBpbiB0YWlsIGRlbGV0ZWQgZnJhbWVzLgorCisKKz09IFJ1bm5p
bmcgdGVzdCBzdWl0ZTogRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuU2NvcGVzCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogRGVidWdnZXIuVGFpbERlbGV0ZWRGcmFtZXMuU2NvcGVzCitQQVVTRUQK
K0NBTEwgU1RBQ0s6CiswOiBbRl0gYQorICAtLS0tU2NvcGUtLS0tCisgIHg6IDIwCisgIC0tLS0t
LS0tLS0tLS0KKzE6IC1GLSBiCisgIC0tLS1TY29wZS0tLS0KKyAgeTogNDAKKyAgLS0tLS0tLS0t
LS0tLQorMjogLUYtIGMKKyAgLS0tLVNjb3BlLS0tLQorICB6OiA2MAorICAtLS0tLS0tLS0tLS0t
CiszOiBbRl0gc3RhcnRBQkMKKyAgLS0tLVNjb3BlLS0tLQorICAtLSAgZW1wdHkgIC0tCisgIC0t
LS0tLS0tLS0tLS0KKzQ6IFtQXSBHbG9iYWwgQ29kZQorICAtLS0tU2NvcGUtLS0tCisgIC0tICBl
bXB0eSAgLS0KKyAgLS0tLS0tLS0tLS0tLQorUkVTVU1FRAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQt
ZnJhbWVzLXNjb3Blcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwt
ZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy1zY29wZXMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjNmZWQ5NDZhNzAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90
YWlsLWRlbGV0ZWQtZnJhbWVzLXNjb3Blcy5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9zdGFjay10cmFjZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXNjb3Blcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVj
dG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJEZWJ1Z2dlci5UYWlsRGVsZXRlZEZyYW1lcy5TY29w
ZXMiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2Vy
LlRhaWxEZWxldGVkRnJhbWVzLlNjb3BlcyIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiRW5zdXJl
IHNjb3BlcyBpbiB0YWlsIGRlbGV0ZWQgZnJhbWVzIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsK
KyAgICAgICAgICAgIC8vIFRyaWdnZXIgYnJlYWtwb2ludC4KKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoYHN0YXJ0QUJDKClgKTsKKworICAgICAgICAgICAgLy8gRHVt
cCBzdGFjayB3aGVuIHBhdXNlZC4KKyAgICAgICAgICAgIGF3YWl0IFdJLmRlYnVnZ2VyTWFuYWdl
ci5hd2FpdEV2ZW50KFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNFRCIpOworICAgICAgICAgICAgYXdhaXQgbG9nQXN5
bmNTdGFja1RyYWNlKHtpbmNsdWRlU2NvcGU6IDB9KTsKKworICAgICAgICAgICAgLy8gUmVzdW1l
IGFuZCBlbmQgdGVzdC4KKyAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsK
KyAgICAgICAgICAgIGF3YWl0IFdJLmRlYnVnZ2VyTWFuYWdlci5hd2FpdEV2ZW50KFdJLkRlYnVn
Z2VyTWFuYWdlci5FdmVudC5SZXN1bWVkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJSRVNVTUVEIik7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNl
c0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8cD5FbnN1cmUgcHJvcGVyIHNjb3BlcyBpbiB0YWlsIGRlbGV0ZWQgZnJhbWVzLjwv
cD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxl
dGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXRoaXMtdmFsdWUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lODJhNzk5NzZkYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQt
ZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxOSBAQAorRW5zdXJlIHByb3BlciB0aGlzIHZhbHVlIGluIHRhaWwgZGVsZXRlZCBmcmFt
ZXMuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBEZWJ1Z2dlci5UYWlsRGVsZXRlZEZyYW1l
cy5UaGlzVmFsdWUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5UYWlsRGVsZXRlZEZy
YW1lcy5TY29wZXMKK1BBVVNFRAorQ0FMTCBTVEFDSzoKKzA6IFtGXSBhCisgIHRoaXM6IGFUaGlz
IC0gMgorMTogLUYtIGIKKyAgdGhpczogYlRoaXMgLSAxCisyOiAtRi0gYworICB0aGlzOiBjVGhp
cyAtIDAKKzM6IFtGXSBzdGFydEFCQworICB0aGlzOiB1bmRlZmluZWQKKzQ6IFtQXSBHbG9iYWwg
Q29kZQorICB0aGlzOiB0ZXN0IC0gCitSRVNVTUVECisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFt
ZXMtdGhpcy12YWx1ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwt
ZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZlMGUwYjdjMDhiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFt
ZXMvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLmh0bWwKQEAgLTAsMCArMSwzOCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N0YWNrLXRyYWNlLXV0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1
aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJEZWJ1Z2dlci5UYWlsRGVsZXRl
ZEZyYW1lcy5UaGlzVmFsdWUiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAg
bmFtZTogIkRlYnVnZ2VyLlRhaWxEZWxldGVkRnJhbWVzLlNjb3BlcyIsCisgICAgICAgIGRlc2Ny
aXB0aW9uOiAiRW5zdXJlIHRoaXNPYmplY3QgaW4gdGFpbCBkZWxldGVkIGZyYW1lcyIsCisgICAg
ICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICAvLyBUcmlnZ2VyIGJyZWFrcG9pbnQuCisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBzdGFydEFCQygpYCk7CisK
KyAgICAgICAgICAgIC8vIER1bXAgc3RhY2sgd2hlbiBwYXVzZWQuCisgICAgICAgICAgICBhd2Fp
dCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRFdmVudChXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQu
UGF1c2VkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVTRUQiKTsKKyAgICAg
ICAgICAgIGF3YWl0IGxvZ0FzeW5jU3RhY2tUcmFjZSh7aW5jbHVkZVRoaXNPYmplY3Q6dHJ1ZX0p
OworCisgICAgICAgICAgICAvLyBSZXN1bWUgYW5kIGVuZCB0ZXN0LgorICAgICAgICAgICAgV0ku
ZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOworICAgICAgICAgICAgYXdhaXQgV0kuZGVidWdnZXJN
YW5hZ2VyLmF3YWl0RXZlbnQoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlJlc3VtZWQpOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJFU1VNRUQiKTsKKyAgICAgICAgfQorICAgIH0p
OworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPkVuc3VyZSBwcm9wZXIgdGhpcyB2
YWx1ZSBpbiB0YWlsIGRlbGV0ZWQgZnJhbWVzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVz
L3RhaWwtZGVsZXRlZC1mcmFtZXMtdm0tZW50cnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1l
cy12bS1lbnRyeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmQ5Yzc0M2VjYTUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy12bS1l
bnRyeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NyBAQAorRW5zdXJlIHByb3BlciB2YWx1ZXMg
aW4gdGFpbCBkZWxldGVkIGZyYW1lcy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IERlYnVn
Z2VyLlRhaWxEZWxldGVkRnJhbWVzLlZNRW50cnkKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1
Z2dlci5UYWlsRGVsZXRlZEZyYW1lcy5TY29wZXMKK1BBVVNFRAorQ0FMTCBTVEFDSzoKKzA6IFtG
XSBiYXIKKyAgLS0tLVNjb3BlLS0tLQorICBpOiAwCisgIC0tLS0tLS0tLS0tLS0KKzE6IC1GLSBi
YXIKKyAgLS0tLVNjb3BlLS0tLQorICBpOiAxCisgIC0tLS0tLS0tLS0tLS0KKzI6IC1GLSBiYXIK
KyAgLS0tLVNjb3BlLS0tLQorICBpOiAyCisgIC0tLS0tLS0tLS0tLS0KKzM6IC1GLSBiYXIKKyAg
LS0tLVNjb3BlLS0tLQorICBpOiAzCisgIC0tLS0tLS0tLS0tLS0KKzQ6IC1GLSBiYXIKKyAgLS0t
LVNjb3BlLS0tLQorICBpOiA0CisgIC0tLS0tLS0tLS0tLS0KKzU6IC1GLSBiYXIKKyAgLS0tLVNj
b3BlLS0tLQorICBpOiA1CisgIC0tLS0tLS0tLS0tLS0KKzY6IC1GLSBiYXIKKyAgLS0tLVNjb3Bl
LS0tLQorICBpOiA2CisgIC0tLS0tLS0tLS0tLS0KKzc6IC1GLSBiYXIKKyAgLS0tLVNjb3BlLS0t
LQorICBpOiA3CisgIC0tLS0tLS0tLS0tLS0KKzg6IC1GLSBiYXIKKyAgLS0tLVNjb3BlLS0tLQor
ICBpOiA4CisgIC0tLS0tLS0tLS0tLS0KKzk6IC1GLSBiYXIKKyAgLS0tLVNjb3BlLS0tLQorICBp
OiA5CisgIC0tLS0tLS0tLS0tLS0KKzEwOiAtRi0gdGltZW91dAorICAtLS0tU2NvcGUtLS0tCisg
IGZvbzogMjUKKyAgLS0tLS0tLS0tLS0tLQorQVNZTkMgQ0FMTCBTVEFDSzoKKzExOiAtLS0gc2V0
VGltZW91dCAtLS0KKzEyOiBbUF0gR2xvYmFsIENvZGUKKyAgLS0tLVNjb3BlLS0tLQorUkVTVU1F
RAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxl
dGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXZtLWVudHJ5Lmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJh
bWVzLXZtLWVudHJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjViMmJlMGFjNjU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy12bS1lbnRyeS5o
dG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdGFjay10cmFj
ZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90YWlsLWRl
bGV0ZWQtZnJhbWVzLXZtLWVudHJ5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisgICAgbGV0IHN1aXRlID0gSW5z
cGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJEZWJ1Z2dlci5UYWlsRGVsZXRlZEZyYW1lcy5W
TUVudHJ5Iik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1
Z2dlci5UYWlsRGVsZXRlZEZyYW1lcy5TY29wZXMiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkVu
c3VyZSBwcm9wZXIgdmFsdWVzIGluIHRhaWwgZGVsZXRlZCBmcmFtZXMiLAorICAgICAgICBhc3lu
YyB0ZXN0KCkgeworICAgICAgICAgICAgLy8gVHJpZ2dlciBicmVha3BvaW50LgorICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgc2V0VGltZW91dCh0aW1lb3V0KWApOwor
CisgICAgICAgICAgICAvLyBEdW1wIHN0YWNrIHdoZW4gcGF1c2VkLgorICAgICAgICAgICAgYXdh
aXQgV0kuZGVidWdnZXJNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50
LlBhdXNlZCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0VEIik7CisgICAg
ICAgICAgICBhd2FpdCBsb2dBc3luY1N0YWNrVHJhY2Uoe2luY2x1ZGVTY29wZTogMX0pOworCisg
ICAgICAgICAgICAvLyBSZXN1bWUgYW5kIGVuZCB0ZXN0LgorICAgICAgICAgICAgV0kuZGVidWdn
ZXJNYW5hZ2VyLnJlc3VtZSgpOworICAgICAgICAgICAgYXdhaXQgV0kuZGVidWdnZXJNYW5hZ2Vy
LmF3YWl0RXZlbnQoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlJlc3VtZWQpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIlJFU1VNRUQiKTsKKyAgICAgICAgfQorICAgIH0pOworCisg
ICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPkVuc3VyZSBwcm9wZXIgdmFsdWVzIGluIHRh
aWwgZGVsZXRlZCBmcmFtZXMuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3NjUzYzAzMzFmYi4uZDZmMjM5YTg4ZDMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMDYwLDgg
KzEwNjAsNyBAQCB3ZWJraXQub3JnL2IvMTY4MDkwIFsgRGVidWcgXSBpbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWtwb2ludC1jb2x1bW5zLmh0bWwgWyBQYXNzCiB3ZWJraXQub3JnL2IvMTYxOTUxIFsg
UmVsZWFzZSBdIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50cy9yZXNvbHZlZC1kdW1wLWVh
Y2gtbGluZS5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcvYi8xNjc3MTEgWyBEZWJ1
ZyBdIGluc3BlY3Rvci9kZWJ1Z2dlci9wcm9iZS1tYW5hZ2VyLWFkZC1yZW1vdmUtYWN0aW9ucy5o
dG1sIFsgU2xvdyBdCiB3ZWJraXQub3JnL2IvMTY4Mzk5IFsgRGVidWcgXSBpbnNwZWN0b3IvZGVi
dWdnZXIvc2VhcmNoLXNjcmlwdHMuaHRtbCBbIFBhc3MgVGltZW91dCBdCi13ZWJraXQub3JnL2Iv
MTgxOTUyIFsgRGVidWcgXSBpbnNwZWN0b3IvZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy1m
cm9tLXZtLWVudHJ5Lmh0bWwgWyBTbG93IF0KLXdlYmtpdC5vcmcvYi8xNjkxMTkgWyBEZWJ1ZyBd
IGluc3BlY3Rvci9kZWJ1Z2dlci90YWlsLWRlbGV0ZWQtZnJhbWVzLXRoaXMtdmFsdWUuaHRtbCBb
IFBhc3MgVGltZW91dCBdCit3ZWJraXQub3JnL2IvMTgxOTUyIFsgRGVidWcgXSBpbnNwZWN0b3Iv
ZGVidWdnZXIvdGFpbC1kZWxldGVkLWZyYW1lcy90YWlsLWRlbGV0ZWQtZnJhbWVzLXZtLWVudHJ5
Lmh0bWwgWyBTbG93IF0KIHdlYmtpdC5vcmcvYi8xNjgzODcgWyBEZWJ1ZyBdIGluc3BlY3Rvci9k
ZWJ1Z2dlci90YWlsLXJlY3Vyc2lvbi5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcv
Yi8xNzAxMjcgaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbCBbIFBh
c3MgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvMTQ4NjM2IGluc3BlY3Rvci9kb20vZ2V0QWNjZXNz
aWJpbGl0eVByb3BlcnRpZXNGb3JOb2RlLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKaW5kZXggMWJmM2Q1ZjU4OTguLjg3NWZmNmEwOWI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjggQEAKKzIwMTktMDgtMzEgIEpvc2VwaCBQZWNvcmFy
byAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBUYWlsIERlbGV0ZWQgRnJhbWVzIHNo
b3duIGluIFdlYiBJbnNwZWN0b3IgYXJlIHNvbWV0aW1lcyBpbmNvcnJlY3QgKFNoYWRvdyBDaGlj
a2VuKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAx
MzY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQg
aXMgcG9zc2libGUgZm9yIHRoZSBsb2cgYnVmZmVyIHRvIGJlIGZ1bGwgcmlnaHQgYXMgc29tZW9u
ZSBpcyB0cnlpbmcgdG8KKyAgICAgICAgbG9nIGEgZnVuY3Rpb24gcHJvbG9ndWUuIEluIHN1Y2gg
YSBjYXNlIHRoZSBtYWNoaW5lIHN0YWNrIGhhcyBhbHJlYWR5IGJlZW4KKyAgICAgICAgdXBkYXRl
ZCB0byBpbmNsdWRlIHRoZSBuZXcgSmF2YVNjcmlwdCBjYWxsIGZyYW1lLCBidXQgdGhlIHByb2xv
Z3VlIHBhY2tldAorICAgICAgICBjYW5ub3QgYmUgaW5jbHVkZWQgaW4gdGhlIHVwZGF0ZSBiZWNh
dXNlIHRoZSBsb2cgaXMgZnVsbC4gVGhpcyB3b3VsZCBtZWFuCisgICAgICAgIHRoYXQgdGhlIHVw
ZGF0ZSBmYWlscyB0byByYXRpb25hbGl6ZSB0aGUgbWFjaGluZSBzdGFjayB3aXRoIHRoZSBzaGFk
b3cKKyAgICAgICAgbG9nIC8gc3RhY2suIE5hbWVseSwgdGhlIGN1cnJlbnQgSmF2YVNjcmlwdCBj
YWxsIGZyYW1lIGlzIHVuYWJsZSB0bworICAgICAgICBmaW5kIGEgbWF0Y2hpbmcgcHJvbG9ndWUg
KHRoZSBvbmUgd2UgYXJlIGhvbGRpbmcgdG8gaW5jbHVkZSBhZnRlciB0aGUgdXBkYXRlKQorICAg
ICAgICBhbmQgaW5zZXJ0cyBhIHF1ZXN0aW9uYWJsZSB2YWx1ZSBpbnRvIHRoZSBzdGFjazsgYW5k
IGluIHRoZSBwcm9jZXNzCisgICAgICAgIG1pc3NpbmcgYW5kIHJlbW92aW5nIHJlYWwgcG90ZW50
aWFsIHRhaWwgY2FsbHMuCisKKyAgICAgICAgRm9yIGV4YW1wbGU6CisgICAgICAgIAorICAgICAg
ICAgICAgInVzZSBzdHJpY3QiOworICAgICAgICAgICAgZnVuY3Rpb24gdGhpcmQoKSB7IHJldHVy
biAxOyB9CisgICAgICAgICAgICBmdW5jdGlvbiBzZWNvbmQoKSB7IHJldHVybiB0aGlyZCgpOyB9
CisgICAgICAgICAgICBmdW5jdGlvbiBmaXJzdCgpIHsgcmV0dXJuIHNlY29uZCgpOyB9CisgICAg
ICAgICAgICBmdW5jdGlvbiBzdGFydCgpIHsgcmV0dXJuIGZpcnN0KCk7IH0KKworICAgICAgICBJ
ZiB0aGUgdGhlIGxvZyBmaWxscyB1cCBqdXN0IGFzIHdlIGFyZSBlbnRlcmluZyBgYmAgdGhlbiB3
ZSBtYXkgaGF2ZSBhIGxpc3QKKyAgICAgICAgZnVsbCBsb2cgb2YgcGFja2V0cyBsb29raW5nIGxp
a2U6CisKKyAgICAgICAgICBTaGFkb3cgTG9nOgorICAgICAgICAgICAgLi4uCisgICAgICAgICAg
ICB7IHByb2xvZ3VlLXBhY2tldDogZW50ZXJpbmcgYHN0YXJ0YCAuLi4gfQorICAgICAgICAgICAg
eyBwcm9sb2d1ZS1wYWNrZXQ6IGVudGVyaW5nIGBmaXJzdGAgLi4uIH0KKyAgICAgICAgICAgIHsg
dGFpbC1wYWNrZXQ6IGxlYXZpbmcgYGZpcnN0YCB3aXRoIGEgdGFpbCBjYWxsIH0KKworICAgICAg
ICAgIEluY29taW5nIFBhY2tldDoKKyAgICAgICAgICAgIHsgcHJvbG9ndWUtcGFja2V0OiBlbnRl
cmluZyBgc2Vjb25kYCAuLi4gfQorCisgICAgICAgICAgQ3VycmVudCBKUyBTdGFjazoKKyAgICAg
ICAgICAgIHNlY29uZAorICAgICAgICAgICAgc3RhcnQKKworICAgICAgICBTaW5jZSB0aGUgQ3Vy
cmVudCBKYXZhU2NyaXB0IHN0YWNrIGFscmVhZHkgaGFzIGBzZWNvbmRgLCBpZiB3ZSBwcm9jZXNz
IHRoZQorICAgICAgICBsb2cgd2l0aG91dCB0aGUgcHJvbG9ndWUgZm9yIGBzZWNvbmRgIHRoZW4g
d2UgcHVzaCBhIGNvbmZ1c2VkIGVudHJ5IG9uIHRoZQorICAgICAgICBzaGFkb3cgc3RhY2sgYW5k
IGNsZWFyIHRoZSBsb2cgc3VjaCB0aGF0IHdlIGV2ZW50dWFsbHkgbG9zZSB0aGUgdGFpbC1jYWxs
CisgICAgICAgIGluZm9ybWF0aW9uIGZvciBgZmlyc3RgIHRvIGBzZWNvbmRgLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggc29sdmVzIHRoaXMgaXNzdWUgYnkgcHJvdmlkaW5nIGVub3VnaCBleHRyYSBz
cGFjZSBpbiB0aGUgbG9nCisgICAgICAgIHRvIGFsd2F5cyBwcm9jZXNzIHRoZSBpbmNvbWluZyBw
YWNrZXQgd2hlbiB0aGF0IGZvcmNlcyBhbiB1cGRhdGUuIFRoaXMgd2F5CisgICAgICAgIGNsaWVu
dHMgY2FuIGNvbnRpbnVlIHRvIGJlaGF2ZSBleGFjdGx5IGFzIHRoZXkgYXJlLgorCisgICAgICAg
IC0tCisKKyAgICAgICAgV2UgYWxzbyBkb2N1bWVudCBhIGNvcm5lciBjYXNlIGluIHNvbWUgY2ly
Y3Vtc3RhbmNlcyB3aGVyZSB0aGUgc2hhZG93CisgICAgICAgIGxvZyBtYXkgY3VycmVudGx5IGJl
IGluc3VmZmljaWVudCB0byBrbm93IGhvdyB0byByZWNvbmNpbGU6CisgICAgICAgIAorICAgICAg
ICBGb3IgZXhhbXBsZToKKworICAgICAgICAgICAgInVzZSBzdHJpY3QiOworICAgICAgICAgICAg
ZnVuY3Rpb24gdGhpcmQoKSB7IHJldHVybiAxOyB9CisgICAgICAgICAgICBmdW5jdGlvbiBzZWNv
bmQoKSB7IHJldHVybiB0aGlyZCgpOyB9CisgICAgICAgICAgICBmdW5jdGlvbiBmaXJzdCgpIHsg
cmV0dXJuIHNlY29uZCgpOyB9CisgICAgICAgICAgICBmdW5jdGlvbiBkb05vdGhpbmdUYWlsKCkg
eyByZXR1cm4gTWF0aC5yYW5kb20oKSB9CisgICAgICAgICAgICBmdW5jdGlvbiBzdGFydCgpIHsK
KyAgICAgICAgICAgICAgICBmb3IgKGk9MDtpPDEwMDA7KytpKSBkb05vdGhpbmdUYWlsKCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
SW4gdGhpcyBjYXNlIHRoZSBTaGFkb3dDaGlja2VuIGxvZyBtYXkgYmUgcHJvY2Vzc2VkIG11bHRp
cGxlIHRpbWVzIGR1ZQorICAgICAgICB0byB0aGUgbWFueSBjYWxscyB0byBgZG9Ob3RoaW5nVGFp
bGAgLyBgTWF0aC5yYW5kb20oKWAuIFdoZW4gY2FsbGluZyB0aGUKKyAgICAgICAgTmF0aXZlIGZ1
bmN0aW9uIG5vIHByb2xvZ3VlIHBhY2tldCBpcyBlbWl0dGVkLCBzbyBpdCBpcyB1bmNsZWFyIHRo
YXQgd2UKKyAgICAgICAgdGVtcG9yYXJseSBnbyBkZWVwZXIgYW5kIGNvbWUgYmFjayBvdXQgb24g
dGhlIHN0YWNrLCBzbyB0aGUgbG9nIGFwcGVhcnMKKyAgICAgICAgdG8gaGF2ZSBsb3RzIG9mIGRv
Tm90aGluZ1RhaWwgY2FsbHMgcmV1c2luZyB0aGUgc2FtZSBmcmFtZToKKworICAgICAgICAgIFNo
YWRvdyBMb2c6CisgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgICwgWzEyM10ge2NhbGxlZSA9
IDB4NzJhMjFhZWUwLCBmcmFtZSA9IDB4N2ZmZWVmODk3MjcwLCBjYWxsZXJGcmFtZSA9IDB4N2Zm
ZWVmODk3MmUwLCBuYW1lID0gc3RhcnR9CisgICAgICAgICAgICAsIFsxMjRdIHtjYWxsZWUgPSAw
eDcyYTIxYWYxMCwgZnJhbWUgPSAweDdmZmVlZjg5NzFmMCwgY2FsbGVyRnJhbWUgPSAweDdmZmVl
Zjg5NzI3MCwgbmFtZSA9IGRvTm90aGluZ1RhaWx9CisgICAgICAgICAgICAsIFsxMjVdIHRhaWwt
cGFja2V0OntmcmFtZSA9IDB4N2ZmZWVmODk3MWYwfQorICAgICAgICAgICAgLCBbMTI2XSB7Y2Fs
bGVlID0gMHg3MmEyMWFmMTAsIGZyYW1lID0gMHg3ZmZlZWY4OTcxZjAsIGNhbGxlckZyYW1lID0g
MHg3ZmZlZWY4OTcyNzAsIG5hbWUgPSBkb05vdGhpbmdUYWlsfQorICAgICAgICAgICAgLCBbMTI3
XSB0YWlsLXBhY2tldDp7ZnJhbWUgPSAweDdmZmVlZjg5NzFmMH0KKyAgICAgICAgICAgIC4uLgor
ICAgICAgICAgICAgLCBbMTQwXSB7Y2FsbGVlID0gMHg3MmEyMWFmMTAsIGZyYW1lID0gMHg3ZmZl
ZWY4OTcxZjAsIGNhbGxlckZyYW1lID0gMHg3ZmZlZWY4OTcyNzAsIG5hbWUgPSBkb05vdGhpbmdU
YWlsfQorICAgICAgICAgICAgLCBbMTQxXSB0YWlsLXBhY2tldDp7ZnJhbWUgPSAweDdmZmVlZjg5
NzFmMH0KKyAgICAgICAgICAgICwgWzE0Ml0ge2NhbGxlZSA9IDB4NzJhMjFhZjEwLCBmcmFtZSA9
IDB4N2ZmZWVmODk3MWYwLCBjYWxsZXJGcmFtZSA9IDB4N2ZmZWVmODk3MjcwLCBuYW1lID0gZG9O
b3RoaW5nVGFpbH0KKyAgICAgICAgICAgICwgWzE0M10gdGFpbC1wYWNrZXQ6e2ZyYW1lID0gMHg3
ZmZlZWY4OTcxZjB9CisgICAgICAgICAgICAsIFsxNDRdIHtjYWxsZWUgPSAweDcyYTIxYWViMCwg
ZnJhbWUgPSAweDdmZmVlZjg5NzFmMCwgY2FsbGVyRnJhbWUgPSAweDdmZmVlZjg5NzI3MCwgbmFt
ZSA9IGZpcnN0fQorICAgICAgICAgICAgLCBbMTQ1XSB0YWlsLXBhY2tldDp7ZnJhbWUgPSAweDdm
ZmVlZjg5NzFmMH0KKyAgICAgICAgICAgICwgWzE0Nl0ge2NhbGxlZSA9IDB4NzJhMjFhZTgwLCBm
cmFtZSA9IDB4N2ZmZWVmODk3MWYwLCBjYWxsZXJGcmFtZSA9IDB4N2ZmZWVmODk3MjcwLCBuYW1l
ID0gc2Vjb25kfQorICAgICAgICAgICAgLi4uCisKKyAgICAgICAgVGhpcyBsb2cgd291bGQgc2Vl
bSB0byBiZSBpbmRpc3Rpbmd1aXNoYWJsZSBmcm9tIHJlYWwgdGFpbCByZWN1cnNpb24sIHN1Y2gg
YXM6CisKKyAgICAgICAgICAgICJ1c2Ugc3RyaWN0IjsKKyAgICAgICAgICAgIGZ1bmN0aW9uIHRo
aXJkKCkgeyByZXR1cm4gMTsgfQorICAgICAgICAgICAgZnVuY3Rpb24gc2Vjb25kKCkgeyByZXR1
cm4gdGhpcmQoKTsgfQorICAgICAgICAgICAgZnVuY3Rpb24gZmlyc3QoKSB7IHJldHVybiBzZWNv
bmQoKTsgfQorICAgICAgICAgICAgZnVuY3Rpb24gZG9Ob3RoaW5nVGFpbChuKSB7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIG4gPyBkb05vdGhpbmdUYWlsKG4tMSkgOiBmaXJzdCgpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgZnVuY3Rpb24gc3RhcnQoKSB7CisgICAgICAgICAgICAgICAg
cmV0dXJuIGRvTm90aGluZ1RhaWwoMTAwMCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgTGlr
ZXdpc2UgdGhlcmUgYXJlIG1vcmUgY2FzZXMgd2hlcmUgdGhlIHNoYWRvdyBsb2cgYXBwZWFycyB0
byBiZSBhbWJpZ3VvdXMgd2l0aCBkZXRlcm1pbmluZworICAgICAgICB0aGUgYXBwcm9wcmlhdGUg
cGFyZW50IGNhbGwgZnJhbWUgd2l0aCBpbnRlcm1lZGlhdGUgZnVuY3Rpb24gY2FsbHMuIEluIHBy
YWN0aWNlIHRoaXMgbWF5CisgICAgICAgIG5vdCBiZSB0b28gcHJvYmxlbWF0aWMsIGFzIHRoaXMg
aXMgYSBiZXN0IGVmZm9ydCByZWNvbnN0cnVjdGlvbiBvZiB0YWlsIGRlbGV0ZWQgZnJhbWVzLgor
ICAgICAgICBJdCBzZWVtcyBsaWtlbHkgd2Ugd291bGQgb25seSBzaG93IGFkZGl0aW9uYWwgZnJh
bWVzIHRoYXQgZGlkIGluIGZhY3QgaGFwcGVuIHNlcmlhbGx5CisgICAgICAgIGJldHdlZW4gSmF2
YVNjcmlwdCBjYWxsIGZyYW1lcywgYnV0IG1heSBub3QgYWN0dWFsbHkgYmUgdGhlIHByb3BlciBw
YXJlbnQgZnJhbWVzCisgICAgICAgIGhlaXJhY2h5IGluIHRoZSBzdGFjay4KKworICAgICAgICAq
IGludGVycHJldGVyL1NoYWRvd0NoaWNrZW4uY3BwOgorICAgICAgICAoSlNDOjpTaGFkb3dDaGlj
a2VuOjpQYWNrZXQ6OmR1bXAgY29uc3QpOgorICAgICAgICAoSlNDOjpTaGFkb3dDaGlja2VuOjpG
cmFtZTo6ZHVtcCBjb25zdCk6CisgICAgICAgIChKU0M6OlNoYWRvd0NoaWNrZW46OmR1bXAgY29u
c3QpOgorICAgICAgICBJbXByb3ZlZCBkZWJ1Z2dpbmcgb3V0cHV0LiBFc3BlY2lhbGx5IGZvciBm
dW5jdGlvbnMuCisKKyAgICAgICAgKEpTQzo6U2hhZG93Q2hpY2tlbjo6U2hhZG93Q2hpY2tlbik6
CisgICAgICAgIE1ha2Ugc3BhY2UgaW4gdGhlIGxvZyBmb3IgMSBhZGRpdGlvbmFsIHBhY2tldCB0
byBwcm9jZXNzIHdoZW4gd2Ugc2xvdyBsb2cuCisKKyAgICAgICAgKEpTQzo6U2hhZG93Q2hpY2tl
bjo6bG9nKToKKyAgICAgICAgSW5jbHVkZSB0aGlzIHBhY2tldCBpbiBvdXIgdXBkYXRlLgorCisg
ICAgICAgIChKU0M6OlNoYWRvd0NoaWNrZW46OnVwZGF0ZSk6CisgICAgICAgIEFkZHJlc3MgYW4g
ZWRnZSBjYXNlIHdoZXJlIHdlIGNhbiBlbGltaW5hdGUgdGFpbC1kZWxldGVkIGZyYW1lcyB0aGF0
IGRvbid0IG1ha2Ugc2Vuc2UuCisKIDIwMTktMDgtMjggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29y
YXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBMb2NhbCBPdmVycmlkZXMg
LSBQcm92aWRlIHN1YnN0aXR1dGlvbiBjb250ZW50IGZvciByZXNvdXJjZSBsb2FkcyAoVVJMIGJh
c2VkKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1NoYWRv
d0NoaWNrZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1NoYWRvd0No
aWNrZW4uY3BwCmluZGV4IDZjNTBhMzIzMzQ1Li5mNzMyNjRjOTA3MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1NoYWRvd0NoaWNrZW4uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TaGFkb3dDaGlja2VuLmNwcApAQCAtNDUs
OSArNDUsMTYgQEAgdm9pZCBTaGFkb3dDaGlja2VuOjpQYWNrZXQ6OmR1bXAoUHJpbnRTdHJlYW0m
IG91dCkgY29uc3QKICAgICB9CiAgICAgCiAgICAgaWYgKGlzUHJvbG9ndWUoKSkgeworICAgICAg
ICBTdHJpbmcgbmFtZSA9ICI/Il9zOworICAgICAgICBpZiAoYXV0byogZnVuY3Rpb24gPSBqc0R5
bmFtaWNDYXN0PEpTRnVuY3Rpb24qPihjYWxsZWUtPnZtKCksIGNhbGxlZSkpIHsKKyAgICAgICAg
ICAgIG5hbWUgPSBmdW5jdGlvbi0+bmFtZShjYWxsZWUtPnZtKCkpOworICAgICAgICAgICAgaWYg
KG5hbWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIG5hbWUgPSAiPyJfczsKKyAgICAgICAg
fQorCiAgICAgICAgIG91dC5wcmludCgKICAgICAgICAgICAgICJ7Y2FsbGVlID0gIiwgUmF3UG9p
bnRlcihjYWxsZWUpLCAiLCBmcmFtZSA9ICIsIFJhd1BvaW50ZXIoZnJhbWUpLCAiLCBjYWxsZXJG
cmFtZSA9ICIsCi0gICAgICAgICAgICBSYXdQb2ludGVyKGNhbGxlckZyYW1lKSwgIn0iKTsKKyAg
ICAgICAgICAgIFJhd1BvaW50ZXIoY2FsbGVyRnJhbWUpLCAiLCBuYW1lID0gIiwgbmFtZSwgIn0i
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKQEAgLTYyLDE1ICs2OSwyNyBAQCB2b2lk
IFNoYWRvd0NoaWNrZW46OlBhY2tldDo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogCiB2
b2lkIFNoYWRvd0NoaWNrZW46OkZyYW1lOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7
CisgICAgU3RyaW5nIG5hbWUgPSAiPyJfczsKKyAgICBpZiAoYXV0byogZnVuY3Rpb24gPSBqc0R5
bmFtaWNDYXN0PEpTRnVuY3Rpb24qPihjYWxsZWUtPnZtKCksIGNhbGxlZSkpIHsKKyAgICAgICAg
bmFtZSA9IGZ1bmN0aW9uLT5uYW1lKGNhbGxlZS0+dm0oKSk7CisgICAgICAgIGlmIChuYW1lLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgIG5hbWUgPSAiPyJfczsKKyAgICB9CisKICAgICBvdXQucHJp
bnQoCi0gICAgICAgICJ7Y2FsbGVlID0gIiwgUmF3UG9pbnRlcihjYWxsZWUpLCAiLCBmcmFtZSA9
ICIsIFJhd1BvaW50ZXIoZnJhbWUpLCAiLCBpc1RhaWxEZWxldGVkID0gIiwKLSAgICAgICAgaXNU
YWlsRGVsZXRlZCwgIn0iKTsKKyAgICAgICAgIntjYWxsZWUgPSAiLCAqY2FsbGVlLCAiLCBmcmFt
ZSA9ICIsIFJhd1BvaW50ZXIoZnJhbWUpLCAiLCBpc1RhaWxEZWxldGVkID0gIiwKKyAgICAgICAg
aXNUYWlsRGVsZXRlZCwgIiwgbmFtZSA9ICIsIG5hbWUsICJ9Iik7CiB9CiAKIFNoYWRvd0NoaWNr
ZW46OlNoYWRvd0NoaWNrZW4oKQogICAgIDogbV9sb2dTaXplKE9wdGlvbnM6OnNoYWRvd0NoaWNr
ZW5Mb2dTaXplKCkpCiB7Ci0gICAgbV9sb2cgPSBzdGF0aWNfY2FzdDxQYWNrZXQqPihmYXN0WmVy
b2VkTWFsbG9jKHNpemVvZihQYWNrZXQpICogbV9sb2dTaXplKSk7CisgICAgLy8gQWxsb3cgb25l
IGFkZGl0aW9uYWwgcGFja2V0IGJleW9uZCBtX2xvZ0VuZC4gVGhpcyBpcyB1c2VmdWwgZm9yIHRo
ZSBtb21lbnQgd2UKKyAgICAvLyBsb2cgYSBwYWNrZXQgd2hlbiB0aGUgbG9nIGlzIGZ1bGwgYW5k
IGZvcmNlIGFuIHVwZGF0ZS4gQXQgdGhhdCBtb21lbnQgdGhlIHBhY2tldAorICAgIC8vIHRoYXQg
aXMgYmVpbmcgbG9nZ2VkIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgdXBkYXRlIGJlY2F1c2Ug
aXQgbWF5IGJlCisgICAgLy8gYSBjcml0aWNhbCBwcm9sb2d1ZSBuZWVkZWQgdG8gcmF0aW9uYWxp
emUgdGhlIGN1cnJlbnQgbWFjaGluZSBzdGFjayB3aXRoIHRoZQorICAgIC8vIHNoYWRvdyBzdGFj
ay4KKyAgICBtX2xvZyA9IHN0YXRpY19jYXN0PFBhY2tldCo+KGZhc3RaZXJvZWRNYWxsb2Moc2l6
ZW9mKFBhY2tldCkgKiBtX2xvZ1NpemUgKyAxKSk7CiAgICAgbV9sb2dDdXJzb3IgPSBtX2xvZzsK
ICAgICBtX2xvZ0VuZCA9IG1fbG9nICsgbV9sb2dTaXplOwogfQpAQCAtODIsOCArMTAxLDkgQEAg
U2hhZG93Q2hpY2tlbjo6flNoYWRvd0NoaWNrZW4oKQogCiB2b2lkIFNoYWRvd0NoaWNrZW46Omxv
ZyhWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUGFja2V0JiBwYWNrZXQpCiB7Ci0gICAg
dXBkYXRlKHZtLCBleGVjKTsKKyAgICAvLyBUaGlzIHdyaXRlIGlzIGFsbG93ZWQgYmVjYXVzZSB3
ZSBjb25zdHJ1Y3QgdGhlIGxvZyB3aXRoIHNwYWNlIGZvciAxIGFkZGl0aW9uYWwgcGFja2V0Lgog
ICAgICptX2xvZ0N1cnNvcisrID0gcGFja2V0OworICAgIHVwZGF0ZSh2bSwgZXhlYyk7CiB9CiAK
IHZvaWQgU2hhZG93Q2hpY2tlbjo6dXBkYXRlKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjKQpAQCAt
MTQyLDcgKzE2Miw2IEBAIHZvaWQgU2hhZG93Q2hpY2tlbjo6dXBkYXRlKFZNJiB2bSwgRXhlY1N0
YXRlKiBleGVjKQogICAgICAgICB9CiAgICAgfQogCi0gICAgCiAgICAgaWYgKFNoYWRvd0NoaWNr
ZW5JbnRlcm5hbDo6dmVyYm9zZSkKICAgICAgICAgZGF0YUxvZygiICAgIFJldmlzZWQgc3RhY2s6
ICIsIGxpc3REdW1wKG1fc3RhY2spLCAiXG4iKTsKICAgICAKQEAgLTI4OCwxMSArMzA3LDIxIEBA
IHZvaWQgU2hhZG93Q2hpY2tlbjo6dXBkYXRlKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjKQogICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IHZpc2l0b3It
PmNhbGxGcmFtZSgpOwotICAgICAgICAgICAgaWYgKFNoYWRvd0NoaWNrZW5JbnRlcm5hbDo6dmVy
Ym9zZSkKLSAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgRXhhbWluaW5nICIsIFJhd1BvaW50
ZXIoY2FsbEZyYW1lKSwgIlxuIik7CisgICAgICAgICAgICBpZiAoU2hhZG93Q2hpY2tlbkludGVy
bmFsOjp2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEV4YW1pbmluZyBj
YWxsRnJhbWU6IiwgUmF3UG9pbnRlcihjYWxsRnJhbWUpLCAiLCBjYWxsZWU6IiwgUmF3UG9pbnRl
cihjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpLCAiLCBjYWxsZXJGcmFtZToiLCBSYXdQb2ludGVyKGNh
bGxGcmFtZS0+Y2FsbGVyRnJhbWUoKSksICJcbiIpOworICAgICAgICAgICAgICAgIEpTT2JqZWN0
KiBjYWxsZWUgPSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCk7CisgICAgICAgICAgICAgICAgaWYgKGF1
dG8qIGZ1bmN0aW9uID0ganNEeW5hbWljQ2FzdDxKU0Z1bmN0aW9uKj4oY2FsbGVlLT52bSgpLCBj
YWxsZWUpKQorICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgICBGdW5jdGlvbiA9ICIs
IGZ1bmN0aW9uLT5uYW1lKGNhbGxlZS0+dm0oKSksICJcbiIpOworICAgICAgICAgICAgfQorCiAg
ICAgICAgICAgICBpZiAoY2FsbEZyYW1lID09IGhpZ2hlc3RQb2ludFNpbmNlTGFzdFRpbWUpIHsK
ICAgICAgICAgICAgICAgICBpZiAoU2hhZG93Q2hpY2tlbkludGVybmFsOjp2ZXJib3NlKQotICAg
ICAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFpbGluZyBhdCAiLCBSYXdQb2ludGVyKGNh
bGxGcmFtZSksICIgYmVjYXVzZSBpdCdzIHRoZSBoaWdoZXN0IHBvaW50IHNpbmNlIGxhc3QgdGlt
ZS5cbiIpOworICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFpbGluZyBhdCAiLCBS
YXdQb2ludGVyKGNhbGxGcmFtZSksICIgYmVjYXVzZSBpdCdzIHRoZSBoaWdoZXN0IHBvaW50IHNp
bmNlIGxhc3QgdGltZVxuIik7CisKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogQXQgdGhpcyBw
b2ludCB0aGUgc2hhZG93IHN0YWNrIG1heSBzdGlsbCBoYXZlIHRhaWwgZGVsZXRlZCBmcmFtZXMK
KyAgICAgICAgICAgICAgICAvLyB0aGF0IGRvIG5vdCBydW4gaW50byB0aGUgY3VycmVudCBjYWxs
IGZyYW1lIGJ1dCBhcmUgbGVmdCBpbiB0aGUgc2hhZG93IHN0YWNrLgorICAgICAgICAgICAgICAg
IC8vIFRob3NlIHRhaWwgZGVsZXRlZCBmcmFtZXMgc2hvdWxkIGJlIHZhbGlkYXRlZCBzb21laG93
LgorCiAgICAgICAgICAgICAgICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6RG9uZTsKICAgICAgICAg
ICAgIH0KIApAQCAtMzE4LDcgKzM0Nyw3IEBAIHZvaWQgU2hhZG93Q2hpY2tlbjo6dXBkYXRlKFZN
JiB2bSwgRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgICAgIC8vIGFueXRoaW5nLgogICAg
ICAgICAgICAgICAgICYmIG1fbG9nW2luZGV4SW5Mb2ddLmZyYW1lID09IHRvUHVzaC5sYXN0KCku
ZnJhbWUpIHsKICAgICAgICAgICAgICAgICBpZiAoU2hhZG93Q2hpY2tlbkludGVybmFsOjp2ZXJi
b3NlKQotICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgR29pbmcgdG8gbG9vcCB0aHJv
dWdoIHRvIGZpbmQgdGFpbCBkZWxldGVkIGZyYW1lcyB3aXRoIGluZGV4SW5Mb2cgPSAiLCBpbmRl
eEluTG9nLCAiIGFuZCBwdXNoLXN0YWNrIHRvcCA9ICIsIHRvUHVzaC5sYXN0KCksICJcbiIpOwor
ICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgR29pbmcgdG8gbG9vcCB0aHJvdWdoIHRv
IGZpbmQgdGFpbCBkZWxldGVkIGZyYW1lcyB1c2luZyAiLCBSYXdQb2ludGVyKGNhbGxGcmFtZSks
ICIgd2l0aCBpbmRleEluTG9nID0gIiwgaW5kZXhJbkxvZywgIiBhbmQgcHVzaC1zdGFjayB0b3Ag
PSAiLCB0b1B1c2gubGFzdCgpLCAiXG4iKTsKICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CiAg
ICAgICAgICAgICAgICAgICAgIEFTU0VSVChtX2xvZ1tpbmRleEluTG9nXS5mcmFtZSA9PSB0b1B1
c2gubGFzdCgpLmZyYW1lKTsKICAgICAgICAgICAgICAgICAgICAgCkBAIC0zNDAsNiArMzY5LDEw
IEBAIHZvaWQgU2hhZG93Q2hpY2tlbjo6dXBkYXRlKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjKQog
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgaW5kZXhJbkxvZy0tOyAvLyBTa2lwIG92ZXIgdGhlIHRhaWwgcGFj
a2V0LgorCisgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBBZnRlciBhIGZldyBpdGVyYXRp
b25zIHRoZSB0YWlsIHBhY2tldCByZWZlcmVuY2VkIGZyYW1lIG1heSBub3QgYmUgdGhlCisgICAg
ICAgICAgICAgICAgICAgIC8vIHNhbWUgYXMgdGhlIG9yaWdpbmFsIGNhbGxGcmFtZSBmb3IgdGhl
IHJlYWwgc3RhY2sgZnJhbWUgd2Ugc3RhcnRlZCB3aXRoLgorICAgICAgICAgICAgICAgICAgICAv
LyBJdCBpcyB1bmNsZWFyIHdoZW4gd2Ugc2hvdWxkIGJyZWFrLgogICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgaWYgKCFhZHZhbmNlSW5kZXhJbkxvZ1RvKHRhaWxQYWNr
ZXQuZnJhbWUsIG51bGxwdHIsIG51bGxwdHIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoU2hhZG93Q2hpY2tlbkludGVybmFsOjp2ZXJib3NlKQpAQCAtMzc5LDcgKzQxMiw3IEBAIHZv
aWQgU2hhZG93Q2hpY2tlbjo6dXBkYXRlKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjKQogICAgICAg
ICBtX2xvZ0N1cnNvciA9IG1fbG9nOwogCiAgICAgaWYgKFNoYWRvd0NoaWNrZW5JbnRlcm5hbDo6
dmVyYm9zZSkKLSAgICAgICAgZGF0YUxvZygiICAgIEFmdGVyIHB1c2hpbmc6ICIsICp0aGlzLCAi
XG4iKTsKKyAgICAgICAgZGF0YUxvZygiICAgIEFmdGVyIHB1c2hpbmc6ICIsIGxpc3REdW1wKG1f
c3RhY2spLCAiXG4iKTsKIAogICAgIC8vIFJlbW92ZSB0YWlsIGZyYW1lcyB1bnRpbCB0aGUgbnVt
YmVyIG9mIHRhaWwgZGVsZXRlZCBmcmFtZXMgaXMgc21hbGwgZW5vdWdoLgogICAgIGNvbnN0IHVu
c2lnbmVkIG1heFRhaWxEZWxldGVkRnJhbWVzID0gT3B0aW9uczo6c2hhZG93Q2hpY2tlbk1heFRh
aWxEZWxldGVkRnJhbWVzU2l6ZSgpOwpAQCAtNDQ3LDcgKzQ4MCw3IEBAIHZvaWQgU2hhZG93Q2hp
Y2tlbjo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIHVuc2lnbmVkIGxpbWl0ID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fbG9nQ3Vyc29yIC0gbV9sb2cpOwogICAgIG91dC5wcmlu
dCgiXG4iKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGltaXQ7ICsraSkKLSAgICAg
ICAgb3V0LnByaW50KCJcdCIsIGNvbW1hLCBtX2xvZ1tpXSwgIlxuIik7CisgICAgICAgIG91dC5w
cmludCgiXHQiLCBjb21tYSwgIlsiLCBpLCAiXSAiLCBtX2xvZ1tpXSwgIlxuIik7CiAgICAgb3V0
LnByaW50KCJdfSIpOwogfQogCg==
</data>
<flag name="review"
          id="393585"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>