<?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>221712</bug_id>
          
          <creation_ts>2021-02-10 13:06:34 -0800</creation_ts>
          <short_desc>perf.webkit.org/tools/js/analysis-results-notifier.js should allow sending of completion emails regardless of test name</short_desc>
          <delta_ts>2021-02-12 14:29:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Roy Reapor">rreapor</reporter>
          <assigned_to name="Roy Reapor">rreapor</assigned_to>
          <cc>dewei_zhu</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1727728</commentid>
    <comment_count>0</comment_count>
    <who name="Roy Reapor">rreapor</who>
    <bug_when>2021-02-10 13:06:34 -0800</bug_when>
    <thetext>perf.webkit.org/tools/js/analysis-results-notifier.js should allow sending of completion emails regardless of test name</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727731</commentid>
    <comment_count>1</comment_count>
    <who name="Roy Reapor">rreapor</who>
    <bug_when>2021-02-10 13:07:18 -0800</bug_when>
    <thetext>rdar://74202006</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727756</commentid>
    <comment_count>2</comment_count>
      <attachid>419900</attachid>
    <who name="Roy Reapor">rreapor</who>
    <bug_when>2021-02-10 14:00:57 -0800</bug_when>
    <thetext>Created attachment 419900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727981</commentid>
    <comment_count>3</comment_count>
      <attachid>419952</attachid>
    <who name="Roy Reapor">rreapor</who>
    <bug_when>2021-02-11 00:06:30 -0800</bug_when>
    <thetext>Created attachment 419952
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727983</commentid>
    <comment_count>4</comment_count>
      <attachid>419954</attachid>
    <who name="Roy Reapor">rreapor</who>
    <bug_when>2021-02-11 00:14:57 -0800</bug_when>
    <thetext>Created attachment 419954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728322</commentid>
    <comment_count>5</comment_count>
      <attachid>419954</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-02-11 15:19:13 -0800</bug_when>
    <thetext>Comment on attachment 419954
Patch

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

&gt; Websites/perf.webkit.org/ChangeLog:10
&gt; +            - `platforms` and `tests` can now be undefined or an empty array

Nit: I don&apos;t think we indent here, also the indentation doesn&apos;t seem to be consistent within your commit message.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:31
&gt; +        function isUnderfinedOrEmptyArrayOrArrayOfStrings(object) {
&gt;              if (!object)
&gt; -                return false;
&gt; +                return true;
&gt;              if (!Array.isArray(object))
&gt;                  return false;
&gt;              return object.every((entry) =&gt; entry instanceof String || typeof(entry) === &apos;string&apos;);
&gt;          }

Discussed in person with Roy, it turns out `isNonemptyArrayOfStrings` has a bug that will return true if an empty array is passed in, which doesn&apos;t quite match the name of the function.

Since we are making change to extend the syntax of config to allow `undefined`, we also allow an empty array `[]` as a legitimate option. `undefined` means match everything, `[]` means match nothing.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:92
&gt; +        if (rule.tests &amp;&amp; rule.tests.length &amp;&amp; !rule.tests.includes(test))

For empty array, we should return false, so the length check is not needed here.

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:95
&gt; +        if (rule.platforms &amp;&amp; rule.platforms.length &amp;&amp; !rule.platforms.includes(platform))

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728347</commentid>
    <comment_count>6</comment_count>
      <attachid>419954</attachid>
    <who name="Roy Reapor">rreapor</who>
    <bug_when>2021-02-11 16:25:13 -0800</bug_when>
    <thetext>Comment on attachment 419954
Patch

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

&gt; Websites/perf.webkit.org/tools/js/analysis-results-notifier.js:93
&gt;              return false;

I like  &quot;`undefined` means match everything, `[]` means match nothing.&quot; But `_matchesRule()` will always return false if `tests` or `platforms` is empty. does that seem correct?

All the rules below will match nothing:
{platforms: [], tests: [speedometer2, jetStream]}
{platforms: [], tests: [speedometer2, jetStream], userInitiated: true};
{tests: [], platforms: [trunkMacBook, trunkMacBookAir], userInitiated: false};

how about not allowing empty?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728351</commentid>
    <comment_count>7</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2021-02-11 16:35:05 -0800</bug_when>
    <thetext>Seems right to me.

Basically, if user specifies &apos;tests&apos; in the rule, we should respect that even though that will filter out everything.

If user doesn&apos;t specify anything, then it&apos;s OK for us to use the default behavior which include all tests.

I think strategy for sending notification to user should be conservative in general.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728452</commentid>
    <comment_count>8</comment_count>
      <attachid>420093</attachid>
    <who name="Roy Reapor">rreapor</who>
    <bug_when>2021-02-11 21:28:06 -0800</bug_when>
    <thetext>Created attachment 420093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728471</commentid>
    <comment_count>9</comment_count>
      <attachid>420093</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-02-11 23:23:02 -0800</bug_when>
    <thetext>Comment on attachment 420093
Patch

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

&gt; Websites/perf.webkit.org/unit-tests/analysis-results-notifier-tests.js:86
&gt; +        it(&apos;should match rule when platforms, tests, and userInitiated are undefined&apos;, () =&gt; {

Let&apos;s add two more test cases where either platform or tests is specified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728472</commentid>
    <comment_count>10</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2021-02-11 23:23:10 -0800</bug_when>
    <thetext>r=me with comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728473</commentid>
    <comment_count>11</comment_count>
      <attachid>420093</attachid>
    <who name="Roy Reapor">rreapor</who>
    <bug_when>2021-02-11 23:41:23 -0800</bug_when>
    <thetext>Comment on attachment 420093
Patch

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

&gt;&gt; Websites/perf.webkit.org/unit-tests/analysis-results-notifier-tests.js:86
&gt;&gt; +        it(&apos;should match rule when platforms, tests, and userInitiated are undefined&apos;, () =&gt; {
&gt; 
&gt; Let&apos;s add two more test cases where either platform or tests is specified.

You mean line 33 http://trac.webkit.org/browser/webkit/trunk/Websites/perf.webkit.org/unit-tests/analysis-results-notifier-tests.js#L33 and 44 http://trac.webkit.org/browser/webkit/trunk/Websites/perf.webkit.org/unit-tests/analysis-results-notifier-tests.js#L44 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728691</commentid>
    <comment_count>12</comment_count>
      <attachid>420093</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-02-12 11:27:11 -0800</bug_when>
    <thetext>Comment on attachment 420093
Patch

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

&gt;&gt;&gt; Websites/perf.webkit.org/unit-tests/analysis-results-notifier-tests.js:86
&gt;&gt;&gt; +        it(&apos;should match rule when platforms, tests, and userInitiated are undefined&apos;, () =&gt; {
&gt;&gt; 
&gt;&gt; Let&apos;s add two more test cases where either platform or tests is specified.
&gt; 
&gt; You mean line 33 http://trac.webkit.org/browser/webkit/trunk/Websites/perf.webkit.org/unit-tests/analysis-results-notifier-tests.js#L33 and 44 http://trac.webkit.org/browser/webkit/trunk/Websites/perf.webkit.org/unit-tests/analysis-results-notifier-tests.js#L44 ?

You are right, I didn&apos;t check that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728704</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-12 11:43:57 -0800</bug_when>
    <thetext>rreapor@apple.com does not have committer permissions according to https://raw.githubusercontent.com/WebKit/WebKit/main/Tools/Scripts/webkitpy/common/config/contributors.json.

Rejecting attachment 420093 from commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728798</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-12 14:29:11 -0800</bug_when>
    <thetext>Committed r272813: &lt;https://commits.webkit.org/r272813&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 420093.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419900</attachid>
            <date>2021-02-10 14:00:57 -0800</date>
            <delta_ts>2021-02-11 00:20:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221712-20210210140054.patch</filename>
            <type>text/plain</type>
            <size>2467</size>
            <attacher name="Roy Reapor">rreapor</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjU5CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA5MDc3ZmZkMDRjOTdhZmY0MDk4OWEyMTJmZGZmMDAyYzBiMmE1NDg0Li4xZTJiNTJkMjI1
N2UyMzc0ZTljNGQxZTMwNDYzZjljNDM3YmY0ZTllIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wMi0xMCAgUm95IFJlYXBvciAgPHJyZWFwb3JA
YXBwbGUuY29tPgorCisgICAgICAgIHBlcmYud2Via2l0Lm9yZy90b29scy9qcy9hbmFseXNpcy1y
ZXN1bHRzLW5vdGlmaWVyLmpzIHNob3VsZCBhbGxvdyBzZW5kaW5nIG9mIGNvbXBsZXRpb24gZW1h
aWxzIHJlZ2FyZGxlc3Mgb2YgdGVzdCBuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE3MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoZSB2YWxpZGF0b3IgYWN0dWFsbHkgYWNjZXB0
cyBlbXB0eSBhcnJheXMuIFdlIGp1c3QgbmVlZCB0byByZW5hbWUgdGhlIGZ1bmN0aW9uIGNoZWNr
aW5nIGBydWxlLnBsYXRmb3Jtc2AgYW5kIGBydWxlLnRlc3RzYC4KKworICAgICAgICAqIHRvb2xz
L2pzL2FuYWx5c2lzLXJlc3VsdHMtbm90aWZpZXIuanM6CisgICAgICAgIChBbmFseXNpc1Jlc3Vs
dHNOb3RpZmllci5fdmFsaWRhdGVSdWxlcy5pc0VtcHR5QXJyYXlPckFycmF5T2ZTdHJpbmdzKTog
UmVuYW1lZCBgaXNOb25lbXB0eUFycmF5T2ZTdHJpbmdzYCB0byBiZSBtb3JlIGFjY3VyYXRlCisg
ICAgICAgIChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fdmFsaWRhdGVSdWxlcyk6CisgICAgICAg
IChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fdmFsaWRhdGVSdWxlcy5pc05vbmVtcHR5QXJyYXlP
ZlN0cmluZ3MpOiBEZWxldGVkLgorCiAyMDIxLTAxLTIwICBEZXdlaSBaaHUgIDxkZXdlaV96aHVA
YXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkYm90VHJpZ2dlcmFibGUgc2hvdWxkIG5vdCB1cGRh
dGUgYnVpbGQgcmVxdWVzdHMgZnJvbSBhbm90aGVyIHRyaWdnZXJhYmxlLgpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2FuYWx5c2lzLXJlc3VsdHMtbm90aWZp
ZXIuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYW5hbHlzaXMtcmVzdWx0
cy1ub3RpZmllci5qcwppbmRleCA0OGUyMTI5ZWJlYTQ1ZmVmYjkyZTE5MThiNTVkMGQ0ZmI5ZmMx
ZDQyLi42ZmI0NmUwNjExNzE1NDRiNTQzNTVkY2ZkNWIyYzg2ZTljNDE0ZWUyIDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYW5hbHlzaXMtcmVzdWx0cy1ub3Rp
Zmllci5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYW5hbHlzaXMt
cmVzdWx0cy1ub3RpZmllci5qcwpAQCAtMjEsNyArMjEsNyBAQCBjbGFzcyBBbmFseXNpc1Jlc3Vs
dHNOb3RpZmllciB7CiAKICAgICBzdGF0aWMgX3ZhbGlkYXRlUnVsZXMocnVsZXMpCiAgICAgewot
ICAgICAgICBmdW5jdGlvbiBpc05vbmVtcHR5QXJyYXlPZlN0cmluZ3Mob2JqZWN0KSB7CisgICAg
ICAgIGZ1bmN0aW9uIGlzRW1wdHlBcnJheU9yQXJyYXlPZlN0cmluZ3Mob2JqZWN0KSB7CiAgICAg
ICAgICAgICBpZiAoIW9iamVjdCkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkob2JqZWN0KSkKQEAgLTI5LDcgKzI5LDcgQEAgY2xh
c3MgQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIgewogICAgICAgICAgICAgcmV0dXJuIG9iamVjdC5l
dmVyeSgoZW50cnkpID0+IGVudHJ5IGluc3RhbmNlb2YgU3RyaW5nIHx8IHR5cGVvZihlbnRyeSkg
PT09ICdzdHJpbmcnKTsKICAgICAgICAgfQogICAgICAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgcnVs
ZXMpCi0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChpc05vbmVtcHR5QXJyYXlPZlN0cmluZ3Mo
cnVsZS5wbGF0Zm9ybXMpIHx8IGlzTm9uZW1wdHlBcnJheU9mU3RyaW5ncyhydWxlLnRlc3RzKSwg
J0VpdGhlciB0ZXN0cyBvciBwbGF0Zm9ybXMgc2hvdWxkIGJlIGFuIGFycmF5IG9mIHN0cmluZ3Mn
KTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGlzRW1wdHlBcnJheU9yQXJyYXlPZlN0cmlu
Z3MocnVsZS5wbGF0Zm9ybXMpIHx8IGlzRW1wdHlBcnJheU9yQXJyYXlPZlN0cmluZ3MocnVsZS50
ZXN0cyksICdFaXRoZXIgdGVzdHMgb3IgcGxhdGZvcm1zIHNob3VsZCBiZSBhbiBhcnJheSBvZiBz
dHJpbmdzJyk7CiAgICAgfQogCiAgICAgYXN5bmMgc2VuZE5vdGlmaWNhdGlvbnNGb3JUZXN0R3Jv
dXBzKHRlc3RHcm91cHMpCg==
</data>
<flag name="commit-queue"
          id="438324"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419952</attachid>
            <date>2021-02-11 00:06:30 -0800</date>
            <delta_ts>2021-02-11 00:14:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221712-20210211000628.patch</filename>
            <type>text/plain</type>
            <size>18822</size>
            <attacher name="Roy Reapor">rreapor</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjU5CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA5MDc3ZmZkMDRjOTdhZmY0MDk4OWEyMTJmZGZmMDAyYzBiMmE1NDg0Li42MDgzMmNlMTFm
NjkyOTBlOGU5NTNhNWMwMWY5YjJmOGNjOWY5ZTc1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0wMi0xMCAgUm95IFJlYXBvciAgPHJyZWFwb3JA
YXBwbGUuY29tPgorCisgICAgICAgIHBlcmYud2Via2l0Lm9yZy90b29scy9qcy9hbmFseXNpcy1y
ZXN1bHRzLW5vdGlmaWVyLmpzIHNob3VsZCBhbGxvdyBzZW5kaW5nIG9mIGNvbXBsZXRpb24gZW1h
aWxzIHJlZ2FyZGxlc3Mgb2YgdGVzdCBuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE3MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHRvb2xzL2pzL2FuYWx5c2lzLXJlc3VsdHMtbm90aWZpZXIu
anM6CisgICAgICAgIChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fdmFsaWRhdGVSdWxlcy5pc1Vu
ZGVyZmluZWRPckVtcHR5QXJyYXlPckFycmF5T2ZTdHJpbmdzKTogYHBsYXRmb3Jtc2AgYW5kIGB0
ZXN0c2AgY2FuIG5vdyBiZSB1bmRlZmluZWQgb3IgZW1wdHkgYXJyYXkKKyAgICAgICAgKEFuYWx5
c2lzUmVzdWx0c05vdGlmaWVyLl92YWxpZGF0ZVJ1bGVzKTogCisgICAgICAgICAgICAtIGBjb25z
b2xlLmFzc2VydCgpYCBubyBsb25nZXIgdGhyb3dzIHNpbmNlIG5vZGUgdjEwIChodHRwczovL2dp
dGh1Yi5jb20vZmFjZWJvb2svamVzdC9pc3N1ZXMvNTYzNCksIHN3aXRjaGVkIHRvIGBhc3NlcnQu
b2soKWAKKyAgICAgICAgICAgIC0gYm90aCBydWxlIGBwbGF0Zm9ybXNgIGFuZCBgdGVzdHNgIG11
c3QgcGFzcyBgaXNVbmRlcmZpbmVkT3JFbXB0eUFycmF5T3JBcnJheU9mU3RyaW5nc2AuICBwcmV2
aW91c2x5LCBge3Rlc3RzOiBbMSwgM10sIHBsYXRmb3JtczogWydzcGVlZG9tZXRlciddfWAgcGFz
c2VzIHZhbGlkYXRpb24uCisgICAgICAgIChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hl
c1J1bGUpOiAKKyAgICAgICAgICAgLSBydWxlcyB3aXRoIGVtcHR5IGFycmF5IG9yIHVuZGVmaW5l
ZCBgcGxhdGZvcm1zYCB3aWxsIG1hdGNoIGFueSBwbGF0Zm9ybQorICAgICAgICAgICAtIHJ1bGVz
IHdpdGggZW1wdHkgYXJyYXkgb3IgYHRlc3RzYCB3aWxsIG1hdGNoIGFueSB0ZXN0CisgICAgICAg
IChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fYXBwbHlVcGRhdGUpOiAKKyAgICAgICAgICAgLSBg
Y29uc29sZS5hc3NlcnQoKWAgbm8gbG9uZ2VyIHRocm93cyBzaW5jZSBub2RlIHYxMCAoaHR0cHM6
Ly9naXRodWIuY29tL2ZhY2Vib29rL2plc3QvaXNzdWVzLzU2MzQpLCBzd2l0Y2hlZCB0byBgYXNz
ZXJ0Lm9rKClgCisgICAgICAgIChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fdmFsaWRhdGVSdWxl
cy5pc05vbmVtcHR5QXJyYXlPZlN0cmluZ3MpOiBEZWxldGVkLgorICAgICAgICAqIHVuaXQtdGVz
dHMvYW5hbHlzaXMtcmVzdWx0cy1ub3RpZmllci10ZXN0cy5qczoKKyAgICAgICAgICAgLSBhZGRl
ZCBhIGJ1bmNoIG9mIHVuaXR0ZXN0cworICAgICAgICAgICAtIHNwZWNpZnkgdGhlIGV4YWN0IHJl
Z2V4IG1hdGNoIGZvciBgYXNzZXJ0LnRocm93cygpYCBhbmQgYGFzc2VydC5kb2VzTm90VGhyb3co
KWAgYXJndW1lbnQuCisKIDIwMjEtMDEtMjAgIERld2VpIFpodSAgPGRld2VpX3podUBhcHBsZS5j
b20+CiAKICAgICAgICAgQnVpbGRib3RUcmlnZ2VyYWJsZSBzaG91bGQgbm90IHVwZGF0ZSBidWls
ZCByZXF1ZXN0cyBmcm9tIGFub3RoZXIgdHJpZ2dlcmFibGUuCmRpZmYgLS1naXQgYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYW5hbHlzaXMtcmVzdWx0cy1ub3RpZmllci5qcyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9hbmFseXNpcy1yZXN1bHRzLW5vdGlm
aWVyLmpzCmluZGV4IDQ4ZTIxMjllYmVhNDVmZWZiOTJlMTkxOGI1NWQwZDRmYjlmYzFkNDIuLjkx
MGFmNjE5NTk3NDc2ZjdjZTM2ZTIyZDliNTE1MTAyNTUzNjg1YTggMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9hbmFseXNpcy1yZXN1bHRzLW5vdGlmaWVyLmpz
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9hbmFseXNpcy1yZXN1bHRz
LW5vdGlmaWVyLmpzCkBAIC0yLDYgKzIsNyBAQCBnbG9iYWwuQ29tbW9uQ29tcG9uZW50QmFzZSA9
IHJlcXVpcmUoJy4uLy4uL3B1YmxpYy9zaGFyZWQvY29tbW9uLWNvbXBvbmVudC1iYXNlJwogZ2xv
YmFsLk1hcmt1cFBhZ2UgPSByZXF1aXJlKCcuL21hcmt1cC1jb21wb25lbnQuanMnKS5NYXJrdXBQ
YWdlOwogZ2xvYmFsLk1hcmt1cENvbXBvbmVudEJhc2UgPSByZXF1aXJlKCcuL21hcmt1cC1jb21w
b25lbnQuanMnKS5NYXJrdXBDb21wb25lbnRCYXNlOwogCitjb25zdCBhc3NlcnQgPSByZXF1aXJl
KCdhc3NlcnQnKTsKIGNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTsKIGNvbnN0IHBhdGggPSByZXF1
aXJlKCdwYXRoJyk7CiBjb25zdCBvcyA9IHJlcXVpcmUoJ29zJyk7CkBAIC0yMSwxNSArMjIsMTUg
QEAgY2xhc3MgQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIgewogCiAgICAgc3RhdGljIF92YWxpZGF0
ZVJ1bGVzKHJ1bGVzKQogICAgIHsKLSAgICAgICAgZnVuY3Rpb24gaXNOb25lbXB0eUFycmF5T2ZT
dHJpbmdzKG9iamVjdCkgeworICAgICAgICBmdW5jdGlvbiBpc1VuZGVyZmluZWRPckVtcHR5QXJy
YXlPckFycmF5T2ZTdHJpbmdzKG9iamVjdCkgewogICAgICAgICAgICAgaWYgKCFvYmplY3QpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KG9iamVjdCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuIG9iamVjdC5ldmVyeSgoZW50cnkp
ID0+IGVudHJ5IGluc3RhbmNlb2YgU3RyaW5nIHx8IHR5cGVvZihlbnRyeSkgPT09ICdzdHJpbmcn
KTsKICAgICAgICAgfQogICAgICAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgcnVsZXMpCi0gICAgICAg
ICAgICBjb25zb2xlLmFzc2VydChpc05vbmVtcHR5QXJyYXlPZlN0cmluZ3MocnVsZS5wbGF0Zm9y
bXMpIHx8IGlzTm9uZW1wdHlBcnJheU9mU3RyaW5ncyhydWxlLnRlc3RzKSwgJ0VpdGhlciB0ZXN0
cyBvciBwbGF0Zm9ybXMgc2hvdWxkIGJlIGFuIGFycmF5IG9mIHN0cmluZ3MnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5vayhpc1VuZGVyZmluZWRPckVtcHR5QXJyYXlPckFycmF5T2ZTdHJpbmdzKHJ1
bGUucGxhdGZvcm1zKSAmJiBpc1VuZGVyZmluZWRPckVtcHR5QXJyYXlPckFycmF5T2ZTdHJpbmdz
KHJ1bGUudGVzdHMpLCAnRWl0aGVyIHRlc3RzIG9yIHBsYXRmb3JtcyBtdXN0IGJlIGFuIHVuZGVm
aW5lZCwgZW1wdHkgYXJyYXksIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MnKTsKICAgICB9CiAKICAg
ICBhc3luYyBzZW5kTm90aWZpY2F0aW9uc0ZvclRlc3RHcm91cHModGVzdEdyb3VwcykKQEAgLTg4
LDEwICs4OSwxMCBAQCBjbGFzcyBBbmFseXNpc1Jlc3VsdHNOb3RpZmllciB7CiAKICAgICBzdGF0
aWMgX21hdGNoZXNSdWxlKHBsYXRmb3JtLCB0ZXN0LCB1c2VySW5pdGlhdGVkLCBydWxlKQogICAg
IHsKLSAgICAgICAgaWYgKHJ1bGUudGVzdHMgJiYgIXJ1bGUudGVzdHMuaW5jbHVkZXModGVzdCkp
CisgICAgICAgIGlmIChydWxlLnRlc3RzICYmIHJ1bGUudGVzdHMubGVuZ3RoICYmICFydWxlLnRl
c3RzLmluY2x1ZGVzKHRlc3QpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAg
IGlmIChydWxlLnBsYXRmb3JtcyAmJiAhcnVsZS5wbGF0Zm9ybXMuaW5jbHVkZXMocGxhdGZvcm0p
KQorICAgICAgICBpZiAocnVsZS5wbGF0Zm9ybXMgJiYgcnVsZS5wbGF0Zm9ybXMubGVuZ3RoICYm
ICFydWxlLnBsYXRmb3Jtcy5pbmNsdWRlcyhwbGF0Zm9ybSkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICAgICAgaWYgKCd1c2VySW5pdGlhdGVkJyBpbiBydWxlICYmIHVzZXJJbml0
aWF0ZWQgIT09IHJ1bGUudXNlckluaXRpYXRlZCkKQEAgLTEwNiw3ICsxMDcsNyBAQCBjbGFzcyBB
bmFseXNpc1Jlc3VsdHNOb3RpZmllciB7CiAgICAgICAgIGNvbnN0IHVwZGF0ZVR5cGUgPSB0eXBl
b2YgdXBkYXRlOwogICAgICAgICBjb25zdCBzdXBwb3J0ZWRQcmltaXRpdmVUeXBlcyA9IFsic3Ry
aW5nIiwgIm51bWJlciIsICJib29sZWFuIl07CiAgICAgICAgIGNvbnN0IHVuc3VwcG9ydGVkUHJp
bWl0aXZlVHlwZXMgPSBbInN5bWJvbCIsICJmdW5jdGlvbiIsICJ1bmRlZmluZWQiXTsKLSAgICAg
ICAgY29uc29sZS5hc3NlcnQoIXVuc3VwcG9ydGVkUHJpbWl0aXZlVHlwZXMuaW5jbHVkZXMobWVz
c2FnZVR5cGUpICYmICF1bnN1cHBvcnRlZFByaW1pdGl2ZVR5cGVzLmluY2x1ZGVzKHVwZGF0ZVR5
cGUpKTsKKyAgICAgICAgYXNzZXJ0Lm9rKCF1bnN1cHBvcnRlZFByaW1pdGl2ZVR5cGVzLmluY2x1
ZGVzKG1lc3NhZ2VUeXBlKSAmJiAhdW5zdXBwb3J0ZWRQcmltaXRpdmVUeXBlcy5pbmNsdWRlcyh1
cGRhdGVUeXBlKSk7CiAKICAgICAgICAgaWYgKHN1cHBvcnRlZFByaW1pdGl2ZVR5cGVzLmluY2x1
ZGVzKG1lc3NhZ2VUeXBlKSB8fCBzdXBwb3J0ZWRQcmltaXRpdmVUeXBlcy5pbmNsdWRlcyh1cGRh
dGVUeXBlKSkKICAgICAgICAgICAgIHJldHVybiBbbWVzc2FnZSwgdXBkYXRlXTsKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2FuYWx5c2lzLXJlc3VsdHMt
bm90aWZpZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9h
bmFseXNpcy1yZXN1bHRzLW5vdGlmaWVyLXRlc3RzLmpzCmluZGV4IDk2ZWMzNzBlMzRjYjBjNTU4
YjVmNjFiMGJhYzRiZjAyZTgxMzJhZjYuLjQyYjE2ZGUwMWI5NjhiYzY1MWRjMjcxZmFiZjdjYWY4
M2EwZGNlMDkgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3Rz
L2FuYWx5c2lzLXJlc3VsdHMtbm90aWZpZXItdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3VuaXQtdGVzdHMvYW5hbHlzaXMtcmVzdWx0cy1ub3RpZmllci10ZXN0cy5qcwpA
QCAtODIsMTUgKzgyLDE2MSBAQCBkZXNjcmliZSgnQW5hbHlzaXNSZXN1bHRzTm90aWZpZXInLCAo
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21h
dGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIsIGZhbHNlLCBydWxlKSk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxl
KHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIyLCBmYWxzZSwgcnVsZSkpOwogICAgICAgICB9
KTsKKworICAgICAgICBpdCgnc2hvdWxkIG1hdGNoIHJ1bGUgd2hlbiBwbGF0Zm9ybXMsIHRlc3Rz
LCBhbmQgdXNlckluaXRpYXRlZCBhcmUgdW5kZWZpbmVkJywgKCkgPT4geworICAgICAgICAgICAg
Y29uc3QgcnVsZSA9IHt9OworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05v
dGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyMiwgdHJ1ZSwgcnVs
ZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRj
aGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyLCB0cnVlLCBydWxlKSk7CisgICAg
ICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRy
dW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIyLCB0cnVlLCBydWxlKSk7CisgICAgICAgICAgICBh
c3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9v
aywgc3BlZWRvbWV0ZXIyLCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFu
YWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVk
b21ldGVyLCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVz
dWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyMiwg
ZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBtYXRjaCBy
dWxlIHdoZW4gcGxhdGZvcm1zIGFuZCB0ZXN0cyBhcmUgdW5kZWZpbmVkIGFuZCB1c2VySW5pdGlh
dGVkIHNldCB0byB0cnVlJywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcnVsZSA9IHt1c2Vy
SW5pdGlhdGVkOiB0cnVlfTsKKyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNO
b3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIsIHRydWUsIHJ1
bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0
Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlciwgdHJ1ZSwgcnVsZSkpOworICAg
ICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0
cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyMiwgdHJ1ZSwgcnVsZSkpOworICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNC
b29rLCBzcGVlZG9tZXRlcjIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2so
IUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNw
ZWVkb21ldGVyLCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNp
c1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRl
cjIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgbWF0
Y2ggcnVsZSB3aGVuIHBsYXRmb3JtcyBhbmQgdGVzdHMgYXJlIHVuZGVmaW5lZCBhbmQgdXNlcklu
aXRpYXRlZCBzZXQgdG8gZmFsc2UnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBydWxlID0g
e3VzZXJJbml0aWF0ZWQ6IGZhbHNlfTsKKyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jl
c3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIsIGZh
bHNlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZp
ZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIsIGZhbHNlLCBydWxl
KSk7CisgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNo
ZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIyLCBmYWxzZSwgcnVsZSkpOworICAg
ICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUo
dHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIsIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFz
c2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9v
a1Bybywgc3BlZWRvbWV0ZXIsIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vaygh
QW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3Bl
ZWRvbWV0ZXIyLCB0cnVlLCBydWxlKSk7CisKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3No
b3VsZCBtYXRjaCBydWxlIHdoZW4gcGxhdGZvcm1zLCBhbmQgdGVzdHMgYXJlIGVtcHR5IGFycmF5
cyBhbmQgdXNlckluaXRpYXRlZCBpcyB1bmRlZmluZWQnLCAoKSA9PiB7CisgICAgICAgICAgICBj
b25zdCBydWxlID0ge3Rlc3RzOiBbXSwgcGxhdGZvcm1zOiBbXX07CisgICAgICAgICAgICBhc3Nl
cnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywg
c3BlZWRvbWV0ZXIyLCB0cnVlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlz
aXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0
ZXIsIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNO
b3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlcjIsIHRydWUs
IHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5f
bWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIsIGZhbHNlLCBydWxlKSk7Cisg
ICAgICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxl
KHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgICAg
ICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFj
Qm9va1Bybywgc3BlZWRvbWV0ZXIyLCBmYWxzZSwgcnVsZSkpOworICAgICAgICB9KTsKKworICAg
ICAgICBpdCgnc2hvdWxkIG1hdGNoIHJ1bGUgd2hlbiBwbGF0Zm9ybXMgYW5kIHRlc3RzIGFyZSBh
cmUgZW1wdHkgYXJyYXlzIGFuZCB1c2VySW5pdGlhdGVkIHNldCB0byB0cnVlJywgKCkgPT4gewor
ICAgICAgICAgICAgY29uc3QgcnVsZSA9IHt0ZXN0czogW10sIHBsYXRmb3JtczogW10sIHVzZXJJ
bml0aWF0ZWQ6IHRydWV9OworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05v
dGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyMiwgdHJ1ZSwgcnVs
ZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRj
aGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyLCB0cnVlLCBydWxlKSk7CisgICAg
ICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRy
dW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIyLCB0cnVlLCBydWxlKSk7CisgICAgICAgICAgICBh
c3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jv
b2ssIHNwZWVkb21ldGVyMiwgZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vaygh
QW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3Bl
ZWRvbWV0ZXIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lz
UmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVy
MiwgZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBtYXRj
aCBydWxlIHdoZW4gcGxhdGZvcm1zIGFuZCB0ZXN0cyBhcmUgZW1wdHkgYW5kIHVzZXJJbml0aWF0
ZWQgc2V0IHRvIGZhbHNlJywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcnVsZSA9IHt0ZXN0
czogW10sIHBsYXRmb3JtczogW10sIHVzZXJJbml0aWF0ZWQ6IGZhbHNlfTsKKyAgICAgICAgICAg
IGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNC
b29rLCBzcGVlZG9tZXRlcjIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2so
QW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3Bl
ZWRvbWV0ZXIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNS
ZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIy
LCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNO
b3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIsIHRydWUsIHJ1
bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21h
dGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIsIHRydWUsIHJ1bGUpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxl
KHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIyLCB0cnVlLCBydWxlKSk7CisKKyAgICAgICAg
fSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBtYXRjaCBydWxlIHdoZW4gcGxhdGZvcm1zIGlzIGVt
cHR5LCB0ZXN0cyBtYXRjaCwgdXNlckluaXRpYXRlZCBpcyB1bmRlZmluZWQnLCAoKSA9PiB7Cisg
ICAgICAgICAgICBjb25zdCBydWxlID0ge3BsYXRmb3JtczogW10sIHRlc3RzOiBbc3BlZWRvbWV0
ZXIyLCBqZXRTdHJlYW1dfTsKKyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNO
b3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIsIHRydWUsIHJ1
bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0
Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlcjIsIHRydWUsIHJ1bGUpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUo
dHJ1bmtNYWNCb29rLCBqZXRTdHJlYW0sIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJv
LCBqZXRTdHJlYW0sIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlz
aXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywgc3BlZWRvbWV0ZXIs
IGZhbHNlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05v
dGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyLCBmYWxzZSwg
cnVsZSkpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIG1hdGNoIHJ1bGUgd2hl
biB0ZXN0cyBpcyBlbXB0eSwgcGxhdGZvcm1zIG1hdGNoLCB1c2VySW5pdGlhdGVkIGlzIHVuZGVm
aW5lZCcsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJ1bGUgPSB7dGVzdHM6IFtdLCBwbGF0
Zm9ybXM6IFt0cnVua01hY0Jvb2ssIHRydW5rTWFjQm9va0Fpcl19OworICAgICAgICAgICAgYXNz
ZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2ss
IHNwZWVkb21ldGVyMiwgdHJ1ZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5
c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tBaXIsIHNwZWVkb21l
dGVyLCB0cnVlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRz
Tm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va0FpciwgamV0U3RyZWFtLCB0cnVlLCBy
dWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21h
dGNoZXNSdWxlKHRydW5rTWFjQm9vaywgamV0U3RyZWFtLCB0cnVlLCBydWxlKSk7CisgICAgICAg
ICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVu
a01hY0Jvb2tQcm8sIGpldFN0cmVhbSwgZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1By
bywgc3BlZWRvbWV0ZXIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0
KCdzaG91bGQgbWF0Y2ggcnVsZSB3aGVuIHBsYXRmb3JtcyBpcyBlbXB0eSwgdGVzdHMgbWF0Y2gs
IHVzZXJJbml0aWF0ZWQgaXMgdHJ1ZScsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJ1bGUg
PSB7cGxhdGZvcm1zOiBbXSwgdGVzdHM6IFtzcGVlZG9tZXRlcjIsIGpldFN0cmVhbV0sIHVzZXJJ
bml0aWF0ZWQ6IHRydWV9OworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05v
dGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyMiwgdHJ1ZSwgcnVs
ZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRj
aGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyMiwgdHJ1ZSwgcnVsZSkpOworICAg
ICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0
cnVua01hY0Jvb2ssIGpldFN0cmVhbSwgdHJ1ZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0
Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJv
LCBqZXRTdHJlYW0sIGZhbHNlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5
c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVy
LCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNO
b3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlciwgZmFsc2Us
IHJ1bGUpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBtYXRjaCBydWxlIHdo
ZW4gcGxhdGZvcm1zIGlzIGVtcHR5LCB0ZXN0cyBtYXRjaCwgdXNlckluaXRpYXRlZCBpcyBmYWxz
ZScsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJ1bGUgPSB7cGxhdGZvcm1zOiBbXSwgdGVz
dHM6IFtzcGVlZG9tZXRlcjIsIGpldFN0cmVhbV0sIHVzZXJJbml0aWF0ZWQ6IGZhbHNlfTsKKyAg
ICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUo
dHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgICAgICBh
c3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9v
a1Bybywgc3BlZWRvbWV0ZXIyLCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9r
KCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rLCBqZXRT
dHJlYW0sIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1
bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1BybywgamV0U3RyZWFtLCB0cnVl
LCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVy
Ll9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyLCBmYWxzZSwgcnVsZSkpOwor
ICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1
bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlciwgZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAg
fSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBtYXRjaCBydWxlIHdoZW4gdGVzdHMgaXMgZW1wdHks
IHBsYXRmb3JtcyBtYXRjaCwgdXNlckluaXRpYXRlZCBpcyB0cnVlJywgKCkgPT4geworICAgICAg
ICAgICAgY29uc3QgcnVsZSA9IHt0ZXN0czogW10sIHBsYXRmb3JtczogW3RydW5rTWFjQm9vaywg
dHJ1bmtNYWNCb29rQWlyXSwgdXNlckluaXRpYXRlZDogdHJ1ZX07CisgICAgICAgICAgICBhc3Nl
cnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywg
c3BlZWRvbWV0ZXIyLCB0cnVlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlz
aXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va0Fpciwgc3BlZWRvbWV0
ZXIsIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNO
b3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rQWlyLCBqZXRTdHJlYW0sIHRydWUsIHJ1
bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21h
dGNoZXNSdWxlKHRydW5rTWFjQm9vaywgamV0U3RyZWFtLCBmYWxzZSwgcnVsZSkpOworICAgICAg
ICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1
bmtNYWNCb29rUHJvLCBqZXRTdHJlYW0sIGZhbHNlLCBydWxlKSk7CisgICAgICAgICAgICBhc3Nl
cnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQ
cm8sIHNwZWVkb21ldGVyLCBmYWxzZSwgcnVsZSkpOworICAgICAgICB9KTsKKworICAgICAgICBp
dCgnc2hvdWxkIG1hdGNoIHJ1bGUgd2hlbiB0ZXN0cyBpcyBlbXB0eSwgcGxhdGZvcm1zIG1hdGNo
LCB1c2VySW5pdGlhdGVkIGlzIGZhbHNlJywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcnVs
ZSA9IHt0ZXN0czogW10sIHBsYXRmb3JtczogW3RydW5rTWFjQm9vaywgdHJ1bmtNYWNCb29rQWly
XSwgdXNlckluaXRpYXRlZDogZmFsc2V9OworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lz
UmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyMiwg
ZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3Rp
Zmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rQWlyLCBzcGVlZG9tZXRlciwgZmFsc2UsIHJ1
bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0
Y2hlc1J1bGUodHJ1bmtNYWNCb29rQWlyLCBqZXRTdHJlYW0sIGZhbHNlLCBydWxlKSk7CisgICAg
ICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0
cnVua01hY0Jvb2ssIGpldFN0cmVhbSwgdHJ1ZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0
Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJv
LCBqZXRTdHJlYW0sIGZhbHNlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5
c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21l
dGVyLCBmYWxzZSwgcnVsZSkpOworICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGRlc2NyaWJl
KCdfdmFsaWRhdGVSdWxlcycsICgpID0+IHsKLSAgICAgICAgaXQoJ3Nob3VsZCBmYWlsIHRoZSB2
YWxpZGF0aW9uIGZvciBlbXB0eSBydWxlJywgKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LnRo
cm93cygoKSA9PiBBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fdmFsaWRhdGVSdWxlcyhbe31dKSwg
L0Fzc2VydGlvbkVycm9yIFxbRVJSX0FTU0VSVElPTlxdLywgJ0VpdGhlciB0ZXN0cyBvciBwbGF0
Zm9ybXMgc2hvdWxkIGJlIGFuIGFycmF5IG9mIHN0cmluZ3MnKTsKKyAgICAgICAgaXQoJ3Nob3Vs
ZCBwYXNzIHRoZSB2YWxpZGF0aW9uIGZvciBlbXB0eSBydWxlJywgKCkgPT4geworICAgICAgICAg
ICAgYXNzZXJ0LmRvZXNOb3RUaHJvdygoKSA9PiBBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fdmFs
aWRhdGVSdWxlcyhbe31dKSwgL0Fzc2VydGlvbkVycm9yIFxbRVJSX0FTU0VSVElPTlxdOiBFaXRo
ZXIgdGVzdHMgb3IgcGxhdGZvcm1zIG11c3QgYmUgYW4gdW5kZWZpbmVkLCBlbXB0eSBhcnJheSwg
b3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy8pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hv
dWxkIGZhaWwgdGhlIHZhbGlkYXRpb24gZm9yIHJ1bGUgd2hlcmUgYHRlc3RzYCBpcyBub3QgYW4g
YXJyYXkgb2Ygc3RyaW5ncycsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkg
PT4gQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX3ZhbGlkYXRlUnVsZXMoW3t0ZXN0czogW3t9XX1d
KSwgL0Fzc2VydGlvbkVycm9yIFxbRVJSX0FTU0VSVElPTlxdOiBFaXRoZXIgdGVzdHMgb3IgcGxh
dGZvcm1zIG11c3QgYmUgYW4gdW5kZWZpbmVkLCBlbXB0eSBhcnJheSwgb3IgYW4gYXJyYXkgb2Yg
c3RyaW5ncy8pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGZhaWwgdGhlIHZh
bGlkYXRpb24gZm9yIHJ1bGUgd2hlcmUgYHBsYXRmb3Jtc2AgaXMgbm90IGFuIGFycmF5IG9mIHN0
cmluZ3MnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IEFuYWx5c2lz
UmVzdWx0c05vdGlmaWVyLl92YWxpZGF0ZVJ1bGVzKFt7cGxhdGZvcm1zOiBbe31dfV0pLCAvQXNz
ZXJ0aW9uRXJyb3IgXFtFUlJfQVNTRVJUSU9OXF06IEVpdGhlciB0ZXN0cyBvciBwbGF0Zm9ybXMg
bXVzdCBiZSBhbiB1bmRlZmluZWQsIGVtcHR5IGFycmF5LCBvciBhbiBhcnJheSBvZiBzdHJpbmdz
Lyk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgZmFpbCB0aGUgdmFsaWRhdGlv
biBmb3IgcnVsZSB3aGVyZSBgcGxhdGZvcm1zYCBhbmQgYHRlc3RzYCBhcmUgbm90IGFuIGFycmF5
IG9mIHN0cmluZ3MnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IEFu
YWx5c2lzUmVzdWx0c05vdGlmaWVyLl92YWxpZGF0ZVJ1bGVzKFt7cGxhdGZvcm1zOiBbe31dLCB0
ZXN0czogWzksIDEsIDFdfV0pLCAvQXNzZXJ0aW9uRXJyb3IgXFtFUlJfQVNTRVJUSU9OXF06IEVp
dGhlciB0ZXN0cyBvciBwbGF0Zm9ybXMgbXVzdCBiZSBhbiB1bmRlZmluZWQsIGVtcHR5IGFycmF5
LCBvciBhbiBhcnJheSBvZiBzdHJpbmdzLyk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdz
aG91bGQgZmFpbCB0aGUgdmFsaWRhdGlvbiBmb3IgcnVsZSB3aGVyZSBgcGxhdGZvcm1zYCBvciBg
dGVzdHNgIGlzIG5vdCBhbiBhcnJheSBvZiBzdHJpbmdzJywgKCkgPT4geworICAgICAgICAgICAg
YXNzZXJ0LnRocm93cygoKSA9PiBBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fdmFsaWRhdGVSdWxl
cyhbe3BsYXRmb3JtczogWydTeXN0ZW0gTWFjQm9va0FpciddLCB0ZXN0czogW3t9LCAwXX1dKSwg
L0Fzc2VydGlvbkVycm9yIFxbRVJSX0FTU0VSVElPTlxdOiBFaXRoZXIgdGVzdHMgb3IgcGxhdGZv
cm1zIG11c3QgYmUgYW4gdW5kZWZpbmVkLCBlbXB0eSBhcnJheSwgb3IgYW4gYXJyYXkgb2Ygc3Ry
aW5ncy8pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGZhaWwgdGhlIHZhbGlk
YXRpb24gZm9yIHJ1bGUgd2hlcmUgYHBsYXRmb3Jtc2Agb3IgYHRlc3RzYCBpcyBub3QgYW4gYXJy
YXkgb2Ygc3RyaW5ncycsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4g
QW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX3ZhbGlkYXRlUnVsZXMoW3twbGF0Zm9ybXM6IFsnVHJ1
bmsgTWFjQm9vaycsIDVdLCB0ZXN0czogWydzcGVlZG9tZXRlciddfV0pLCAvQXNzZXJ0aW9uRXJy
b3IgXFtFUlJfQVNTRVJUSU9OXF06IEVpdGhlciB0ZXN0cyBvciBwbGF0Zm9ybXMgbXVzdCBiZSBh
biB1bmRlZmluZWQsIGVtcHR5IGFycmF5LCBvciBhbiBhcnJheSBvZiBzdHJpbmdzLyk7CisgICAg
ICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgcGFzcyB0aGUgdmFsaWRhdGlvbiBmb3IgcnVs
ZSB3aGVyZSBgdGVzdHNgIGlzIGFuIGVtcHR5IGFycmF5JywgKCkgPT4geworICAgICAgICAgICAg
YXNzZXJ0LmRvZXNOb3RUaHJvdygoKSA9PiBBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fdmFsaWRh
dGVSdWxlcyhbe3Rlc3RzOiBbXX1dKSwgL0Fzc2VydGlvbkVycm9yIFxbRVJSX0FTU0VSVElPTlxd
OiBFaXRoZXIgdGVzdHMgb3IgcGxhdGZvcm1zIG11c3QgYmUgYW4gdW5kZWZpbmVkLCBlbXB0eSBh
cnJheSwgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy8pOwogICAgICAgICB9KTsKIAotICAgICAgICBp
dCgnc2hvdWxkIGZhaWwgdGhlIHZhbGlkYXRpb24gZm9yIHBsYXRmb3JtcyBvZiBhIHJ1bGUgaXMg
bm90IGFuIGFycmF5IG9mIHN0cmluZycsICgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC50aHJv
d3MoKCkgPT4gQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX3ZhbGlkYXRlUnVsZXMoW3t0ZXN0czog
W3t9XX1dKSwgL0Fzc2VydGlvbkVycm9yIFxbRVJSX0FTU0VSVElPTlxdLywgJ0VpdGhlciB0ZXN0
cyBvciBwbGF0Zm9ybXMgc2hvdWxkIGJlIGFuIGFycmF5IG9mIHN0cmluZ3MnKTsKKyAgICAgICAg
aXQoJ3Nob3VsZCBwYXNzIHRoZSB2YWxpZGF0aW9uIGZvciBydWxlIHdoZXJlIGBwbGF0Zm9ybXNg
IGlzIGFuIGVtcHR5IGFycmF5cycsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5kb2VzTm90
VGhyb3coKCkgPT4gQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX3ZhbGlkYXRlUnVsZXMoW3twbGF0
Zm9ybXM6IFtdfV0pLCAvQXNzZXJ0aW9uRXJyb3IgXFtFUlJfQVNTRVJUSU9OXF06IEVpdGhlciB0
ZXN0cyBvciBwbGF0Zm9ybXMgbXVzdCBiZSBhbiB1bmRlZmluZWQsIGVtcHR5IGFycmF5LCBvciBh
biBhcnJheSBvZiBzdHJpbmdzLyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQg
cGFzcyB0aGUgdmFsaWRhdGlvbiBmb3IgaWYgYSBydWxlIG9ubHkgaGFzIHRlc3RzIHNwZWNpZmll
ZCcsICgpID0+IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419954</attachid>
            <date>2021-02-11 00:14:57 -0800</date>
            <delta_ts>2021-02-11 21:28:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221712-20210211001455.patch</filename>
            <type>text/plain</type>
            <size>18853</size>
            <attacher name="Roy Reapor">rreapor</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjU5CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA5MDc3ZmZkMDRjOTdhZmY0MDk4OWEyMTJmZGZmMDAyYzBiMmE1NDg0Li4xYzc1NDY4MjYw
OGNjYTYzNWMzNDIzOTUzMzE3ZWJhMTNmODlkMGJkIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMS0wMi0xMCAgUm95IFJlYXBvciAgPHJyZWFwb3JA
YXBwbGUuY29tPgorCisgICAgICAgIHBlcmYud2Via2l0Lm9yZy90b29scy9qcy9hbmFseXNpcy1y
ZXN1bHRzLW5vdGlmaWVyLmpzIHNob3VsZCBhbGxvdyBzZW5kaW5nIG9mIGNvbXBsZXRpb24gZW1h
aWxzIHJlZ2FyZGxlc3Mgb2YgdGVzdCBuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE3MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHRvb2xzL2pzL2FuYWx5c2lzLXJlc3VsdHMtbm90aWZpZXIu
anM6CisgICAgICAgIChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fdmFsaWRhdGVSdWxlcy5pc1Vu
ZGVyZmluZWRPckVtcHR5QXJyYXlPckFycmF5T2ZTdHJpbmdzKTogCisgICAgICAgICAgICAtIGBw
bGF0Zm9ybXNgIGFuZCBgdGVzdHNgIGNhbiBub3cgYmUgdW5kZWZpbmVkIG9yIGFuIGVtcHR5IGFy
cmF5CisgICAgICAgIChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fdmFsaWRhdGVSdWxlcyk6IAor
ICAgICAgICAgICAgLSBgY29uc29sZS5hc3NlcnQoKWAgbm8gbG9uZ2VyIHRocm93cyBzaW5jZSBu
b2RlIHYxMCAoaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2plc3QvaXNzdWVzLzU2MzQpLCBz
d2l0Y2hlZCB0byBgYXNzZXJ0Lm9rKClgCisgICAgICAgICAgICAtIGJvdGggcnVsZSBgcGxhdGZv
cm1zYCBhbmQgYHRlc3RzYCBtdXN0IHBhc3MgYGlzVW5kZXJmaW5lZE9yRW1wdHlBcnJheU9yQXJy
YXlPZlN0cmluZ3MoKWAuICBwcmV2aW91c2x5LCBge3Rlc3RzOiBbMSwgM10sIHBsYXRmb3Jtczog
WydzcGVlZG9tZXRlciddfWAgcGFzc2VzIHZhbGlkYXRpb24uCisgICAgICAgIChBbmFseXNpc1Jl
c3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUpOiAKKyAgICAgICAgICAgLSBydWxlcyB3aXRoIGVt
cHR5IGFycmF5IG9yIHVuZGVmaW5lZCBgcGxhdGZvcm1zYCB3aWxsIG1hdGNoIGFueSBwbGF0Zm9y
bQorICAgICAgICAgICAtIHJ1bGVzIHdpdGggZW1wdHkgYXJyYXkgb3IgdW5kZWZpbmVkIGB0ZXN0
c2Agd2lsbCBtYXRjaCBhbnkgdGVzdAorICAgICAgICAoQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIu
X2FwcGx5VXBkYXRlKTogCisgICAgICAgICAgIC0gYGNvbnNvbGUuYXNzZXJ0KClgIG5vIGxvbmdl
ciB0aHJvd3Mgc2luY2Ugbm9kZSB2MTAgKGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9qZXN0
L2lzc3Vlcy81NjM0KSwgc3dpdGNoZWQgdG8gYGFzc2VydC5vaygpYAorICAgICAgICAoQW5hbHlz
aXNSZXN1bHRzTm90aWZpZXIuX3ZhbGlkYXRlUnVsZXMuaXNOb25lbXB0eUFycmF5T2ZTdHJpbmdz
KTogRGVsZXRlZC4KKyAgICAgICAgKiB1bml0LXRlc3RzL2FuYWx5c2lzLXJlc3VsdHMtbm90aWZp
ZXItdGVzdHMuanM6CisgICAgICAgICAgIC0gYWRkZWQgYSBidW5jaCBvZiB1bml0dGVzdHMKKyAg
ICAgICAgICAgLSBzcGVjaWZ5IHRoZSBleGFjdCByZWdleCBtYXRjaCBmb3IgYGFzc2VydC50aHJv
d3MoKWAgYW5kIGBhc3NlcnQuZG9lc05vdFRocm93KClgIGFyZ3VtZW50LgorCiAyMDIxLTAxLTIw
ICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkYm90VHJp
Z2dlcmFibGUgc2hvdWxkIG5vdCB1cGRhdGUgYnVpbGQgcmVxdWVzdHMgZnJvbSBhbm90aGVyIHRy
aWdnZXJhYmxlLgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pz
L2FuYWx5c2lzLXJlc3VsdHMtbm90aWZpZXIuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dG9vbHMvanMvYW5hbHlzaXMtcmVzdWx0cy1ub3RpZmllci5qcwppbmRleCA0OGUyMTI5ZWJlYTQ1
ZmVmYjkyZTE5MThiNTVkMGQ0ZmI5ZmMxZDQyLi45MTBhZjYxOTU5NzQ3NmY3Y2UzNmUyMmQ5YjUx
NTEwMjU1MzY4NWE4IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMv
anMvYW5hbHlzaXMtcmVzdWx0cy1ub3RpZmllci5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdG9vbHMvanMvYW5hbHlzaXMtcmVzdWx0cy1ub3RpZmllci5qcwpAQCAtMiw2ICsyLDcg
QEAgZ2xvYmFsLkNvbW1vbkNvbXBvbmVudEJhc2UgPSByZXF1aXJlKCcuLi8uLi9wdWJsaWMvc2hh
cmVkL2NvbW1vbi1jb21wb25lbnQtYmFzZScKIGdsb2JhbC5NYXJrdXBQYWdlID0gcmVxdWlyZSgn
Li9tYXJrdXAtY29tcG9uZW50LmpzJykuTWFya3VwUGFnZTsKIGdsb2JhbC5NYXJrdXBDb21wb25l
bnRCYXNlID0gcmVxdWlyZSgnLi9tYXJrdXAtY29tcG9uZW50LmpzJykuTWFya3VwQ29tcG9uZW50
QmFzZTsKIAorY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7CiBjb25zdCBmcyA9IHJl
cXVpcmUoJ2ZzJyk7CiBjb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpOwogY29uc3Qgb3MgPSBy
ZXF1aXJlKCdvcycpOwpAQCAtMjEsMTUgKzIyLDE1IEBAIGNsYXNzIEFuYWx5c2lzUmVzdWx0c05v
dGlmaWVyIHsKIAogICAgIHN0YXRpYyBfdmFsaWRhdGVSdWxlcyhydWxlcykKICAgICB7Ci0gICAg
ICAgIGZ1bmN0aW9uIGlzTm9uZW1wdHlBcnJheU9mU3RyaW5ncyhvYmplY3QpIHsKKyAgICAgICAg
ZnVuY3Rpb24gaXNVbmRlcmZpbmVkT3JFbXB0eUFycmF5T3JBcnJheU9mU3RyaW5ncyhvYmplY3Qp
IHsKICAgICAgICAgICAgIGlmICghb2JqZWN0KQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIGlmICghQXJyYXku
aXNBcnJheShvYmplY3QpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
ICAgIHJldHVybiBvYmplY3QuZXZlcnkoKGVudHJ5KSA9PiBlbnRyeSBpbnN0YW5jZW9mIFN0cmlu
ZyB8fCB0eXBlb2YoZW50cnkpID09PSAnc3RyaW5nJyk7CiAgICAgICAgIH0KICAgICAgICAgZm9y
IChjb25zdCBydWxlIG9mIHJ1bGVzKQotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoaXNOb25l
bXB0eUFycmF5T2ZTdHJpbmdzKHJ1bGUucGxhdGZvcm1zKSB8fCBpc05vbmVtcHR5QXJyYXlPZlN0
cmluZ3MocnVsZS50ZXN0cyksICdFaXRoZXIgdGVzdHMgb3IgcGxhdGZvcm1zIHNob3VsZCBiZSBh
biBhcnJheSBvZiBzdHJpbmdzJyk7CisgICAgICAgICAgICBhc3NlcnQub2soaXNVbmRlcmZpbmVk
T3JFbXB0eUFycmF5T3JBcnJheU9mU3RyaW5ncyhydWxlLnBsYXRmb3JtcykgJiYgaXNVbmRlcmZp
bmVkT3JFbXB0eUFycmF5T3JBcnJheU9mU3RyaW5ncyhydWxlLnRlc3RzKSwgJ0VpdGhlciB0ZXN0
cyBvciBwbGF0Zm9ybXMgbXVzdCBiZSBhbiB1bmRlZmluZWQsIGVtcHR5IGFycmF5LCBvciBhbiBh
cnJheSBvZiBzdHJpbmdzJyk7CiAgICAgfQogCiAgICAgYXN5bmMgc2VuZE5vdGlmaWNhdGlvbnNG
b3JUZXN0R3JvdXBzKHRlc3RHcm91cHMpCkBAIC04OCwxMCArODksMTAgQEAgY2xhc3MgQW5hbHlz
aXNSZXN1bHRzTm90aWZpZXIgewogCiAgICAgc3RhdGljIF9tYXRjaGVzUnVsZShwbGF0Zm9ybSwg
dGVzdCwgdXNlckluaXRpYXRlZCwgcnVsZSkKICAgICB7Ci0gICAgICAgIGlmIChydWxlLnRlc3Rz
ICYmICFydWxlLnRlc3RzLmluY2x1ZGVzKHRlc3QpKQorICAgICAgICBpZiAocnVsZS50ZXN0cyAm
JiBydWxlLnRlc3RzLmxlbmd0aCAmJiAhcnVsZS50ZXN0cy5pbmNsdWRlcyh0ZXN0KSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBpZiAocnVsZS5wbGF0Zm9ybXMgJiYgIXJ1
bGUucGxhdGZvcm1zLmluY2x1ZGVzKHBsYXRmb3JtKSkKKyAgICAgICAgaWYgKHJ1bGUucGxhdGZv
cm1zICYmIHJ1bGUucGxhdGZvcm1zLmxlbmd0aCAmJiAhcnVsZS5wbGF0Zm9ybXMuaW5jbHVkZXMo
cGxhdGZvcm0pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGlmICgndXNl
ckluaXRpYXRlZCcgaW4gcnVsZSAmJiB1c2VySW5pdGlhdGVkICE9PSBydWxlLnVzZXJJbml0aWF0
ZWQpCkBAIC0xMDYsNyArMTA3LDcgQEAgY2xhc3MgQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIgewog
ICAgICAgICBjb25zdCB1cGRhdGVUeXBlID0gdHlwZW9mIHVwZGF0ZTsKICAgICAgICAgY29uc3Qg
c3VwcG9ydGVkUHJpbWl0aXZlVHlwZXMgPSBbInN0cmluZyIsICJudW1iZXIiLCAiYm9vbGVhbiJd
OwogICAgICAgICBjb25zdCB1bnN1cHBvcnRlZFByaW1pdGl2ZVR5cGVzID0gWyJzeW1ib2wiLCAi
ZnVuY3Rpb24iLCAidW5kZWZpbmVkIl07Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF1bnN1cHBv
cnRlZFByaW1pdGl2ZVR5cGVzLmluY2x1ZGVzKG1lc3NhZ2VUeXBlKSAmJiAhdW5zdXBwb3J0ZWRQ
cmltaXRpdmVUeXBlcy5pbmNsdWRlcyh1cGRhdGVUeXBlKSk7CisgICAgICAgIGFzc2VydC5vaygh
dW5zdXBwb3J0ZWRQcmltaXRpdmVUeXBlcy5pbmNsdWRlcyhtZXNzYWdlVHlwZSkgJiYgIXVuc3Vw
cG9ydGVkUHJpbWl0aXZlVHlwZXMuaW5jbHVkZXModXBkYXRlVHlwZSkpOwogCiAgICAgICAgIGlm
IChzdXBwb3J0ZWRQcmltaXRpdmVUeXBlcy5pbmNsdWRlcyhtZXNzYWdlVHlwZSkgfHwgc3VwcG9y
dGVkUHJpbWl0aXZlVHlwZXMuaW5jbHVkZXModXBkYXRlVHlwZSkpCiAgICAgICAgICAgICByZXR1
cm4gW21lc3NhZ2UsIHVwZGF0ZV07CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdW5pdC10ZXN0cy9hbmFseXNpcy1yZXN1bHRzLW5vdGlmaWVyLXRlc3RzLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYW5hbHlzaXMtcmVzdWx0cy1ub3RpZmllci10
ZXN0cy5qcwppbmRleCA5NmVjMzcwZTM0Y2IwYzU1OGI1ZjYxYjBiYWM0YmYwMmU4MTMyYWY2Li40
MmIxNmRlMDFiOTY4YmM2NTFkYzI3MWZhYmY3Y2FmODNhMGRjZTA5IDEwMDY0NAotLS0gYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9hbmFseXNpcy1yZXN1bHRzLW5vdGlmaWVy
LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2FuYWx5
c2lzLXJlc3VsdHMtbm90aWZpZXItdGVzdHMuanMKQEAgLTgyLDE1ICs4MiwxNjEgQEAgZGVzY3Jp
YmUoJ0FuYWx5c2lzUmVzdWx0c05vdGlmaWVyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8s
IHNwZWVkb21ldGVyLCBmYWxzZSwgcnVsZSkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5
c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21l
dGVyMiwgZmFsc2UsIHJ1bGUpKTsKICAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBt
YXRjaCBydWxlIHdoZW4gcGxhdGZvcm1zLCB0ZXN0cywgYW5kIHVzZXJJbml0aWF0ZWQgYXJlIHVu
ZGVmaW5lZCcsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJ1bGUgPSB7fTsKKyAgICAgICAg
ICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtN
YWNCb29rLCBzcGVlZG9tZXRlcjIsIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5v
ayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBz
cGVlZG9tZXRlciwgdHJ1ZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lz
UmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVy
MiwgdHJ1ZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05v
dGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyMiwgZmFsc2UsIHJ1
bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0
Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlciwgZmFsc2UsIHJ1bGUpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUo
dHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlcjIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgIH0p
OworCisgICAgICAgIGl0KCdzaG91bGQgbWF0Y2ggcnVsZSB3aGVuIHBsYXRmb3JtcyBhbmQgdGVz
dHMgYXJlIHVuZGVmaW5lZCBhbmQgdXNlckluaXRpYXRlZCBzZXQgdG8gdHJ1ZScsICgpID0+IHsK
KyAgICAgICAgICAgIGNvbnN0IHJ1bGUgPSB7dXNlckluaXRpYXRlZDogdHJ1ZX07CisgICAgICAg
ICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5r
TWFjQm9vaywgc3BlZWRvbWV0ZXIyLCB0cnVlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQu
b2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywg
c3BlZWRvbWV0ZXIsIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNp
c1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRl
cjIsIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRz
Tm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywgc3BlZWRvbWV0ZXIyLCBmYWxzZSwg
cnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5f
bWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlciwgZmFsc2UsIHJ1bGUpKTsK
KyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNS
dWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIyLCBmYWxzZSwgcnVsZSkpOworICAgICAg
ICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIG1hdGNoIHJ1bGUgd2hlbiBwbGF0Zm9ybXMgYW5k
IHRlc3RzIGFyZSB1bmRlZmluZWQgYW5kIHVzZXJJbml0aWF0ZWQgc2V0IHRvIGZhbHNlJywgKCkg
PT4geworICAgICAgICAgICAgY29uc3QgcnVsZSA9IHt1c2VySW5pdGlhdGVkOiBmYWxzZX07Cisg
ICAgICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxl
KHRydW5rTWFjQm9vaywgc3BlZWRvbWV0ZXIyLCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAg
YXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jv
b2tQcm8sIHNwZWVkb21ldGVyLCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9r
KEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNw
ZWVkb21ldGVyMiwgZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlz
aXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywgc3BlZWRvbWV0ZXIy
LCB0cnVlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05v
dGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyLCB0cnVlLCBy
dWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9t
YXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyMiwgdHJ1ZSwgcnVsZSkpOwor
CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgbWF0Y2ggcnVsZSB3aGVuIHBsYXRm
b3JtcywgYW5kIHRlc3RzIGFyZSBlbXB0eSBhcnJheXMgYW5kIHVzZXJJbml0aWF0ZWQgaXMgdW5k
ZWZpbmVkJywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcnVsZSA9IHt0ZXN0czogW10sIHBs
YXRmb3JtczogW119OworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlm
aWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyMiwgdHJ1ZSwgcnVsZSkp
OworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVz
UnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyLCB0cnVlLCBydWxlKSk7CisgICAgICAg
ICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5r
TWFjQm9va1Bybywgc3BlZWRvbWV0ZXIyLCB0cnVlLCBydWxlKSk7CisgICAgICAgICAgICBhc3Nl
cnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywg
c3BlZWRvbWV0ZXIyLCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5
c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21l
dGVyLCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0
c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyMiwgZmFs
c2UsIHJ1bGUpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBtYXRjaCBydWxl
IHdoZW4gcGxhdGZvcm1zIGFuZCB0ZXN0cyBhcmUgYXJlIGVtcHR5IGFycmF5cyBhbmQgdXNlcklu
aXRpYXRlZCBzZXQgdG8gdHJ1ZScsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJ1bGUgPSB7
dGVzdHM6IFtdLCBwbGF0Zm9ybXM6IFtdLCB1c2VySW5pdGlhdGVkOiB0cnVlfTsKKyAgICAgICAg
ICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtN
YWNCb29rLCBzcGVlZG9tZXRlcjIsIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5v
ayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBz
cGVlZG9tZXRlciwgdHJ1ZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lz
UmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVy
MiwgdHJ1ZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNO
b3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIsIGZhbHNlLCBy
dWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9t
YXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyLCBmYWxzZSwgcnVsZSkpOwor
ICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1
bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlcjIsIGZhbHNlLCBydWxlKSk7CisgICAgICAg
IH0pOworCisgICAgICAgIGl0KCdzaG91bGQgbWF0Y2ggcnVsZSB3aGVuIHBsYXRmb3JtcyBhbmQg
dGVzdHMgYXJlIGVtcHR5IGFuZCB1c2VySW5pdGlhdGVkIHNldCB0byBmYWxzZScsICgpID0+IHsK
KyAgICAgICAgICAgIGNvbnN0IHJ1bGUgPSB7dGVzdHM6IFtdLCBwbGF0Zm9ybXM6IFtdLCB1c2Vy
SW5pdGlhdGVkOiBmYWxzZX07CisgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRz
Tm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywgc3BlZWRvbWV0ZXIyLCBmYWxzZSwg
cnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9t
YXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyLCBmYWxzZSwgcnVsZSkpOwor
ICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVs
ZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyMiwgZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5r
TWFjQm9vaywgc3BlZWRvbWV0ZXIyLCB0cnVlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQu
b2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8s
IHNwZWVkb21ldGVyLCB0cnVlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5
c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21l
dGVyMiwgdHJ1ZSwgcnVsZSkpOworCisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQg
bWF0Y2ggcnVsZSB3aGVuIHBsYXRmb3JtcyBpcyBlbXB0eSwgdGVzdHMgbWF0Y2gsIHVzZXJJbml0
aWF0ZWQgaXMgdW5kZWZpbmVkJywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcnVsZSA9IHtw
bGF0Zm9ybXM6IFtdLCB0ZXN0czogW3NwZWVkb21ldGVyMiwgamV0U3RyZWFtXX07CisgICAgICAg
ICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5r
TWFjQm9vaywgc3BlZWRvbWV0ZXIyLCB0cnVlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQu
b2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywg
c3BlZWRvbWV0ZXIyLCB0cnVlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlz
aXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywgamV0U3RyZWFtLCB0
cnVlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZp
ZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1BybywgamV0U3RyZWFtLCB0cnVlLCBydWxlKSk7
CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVz
UnVsZSh0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyLCBmYWxzZSwgcnVsZSkpOworICAgICAgICAg
ICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtN
YWNCb29rUHJvLCBzcGVlZG9tZXRlciwgZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAgfSk7CisKKyAg
ICAgICAgaXQoJ3Nob3VsZCBtYXRjaCBydWxlIHdoZW4gdGVzdHMgaXMgZW1wdHksIHBsYXRmb3Jt
cyBtYXRjaCwgdXNlckluaXRpYXRlZCBpcyB1bmRlZmluZWQnLCAoKSA9PiB7CisgICAgICAgICAg
ICBjb25zdCBydWxlID0ge3Rlc3RzOiBbXSwgcGxhdGZvcm1zOiBbdHJ1bmtNYWNCb29rLCB0cnVu
a01hY0Jvb2tBaXJdfTsKKyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3Rp
Zmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIsIHRydWUsIHJ1bGUp
KTsKKyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hl
c1J1bGUodHJ1bmtNYWNCb29rQWlyLCBzcGVlZG9tZXRlciwgdHJ1ZSwgcnVsZSkpOworICAgICAg
ICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVu
a01hY0Jvb2tBaXIsIGpldFN0cmVhbSwgdHJ1ZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0
Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2ssIGpl
dFN0cmVhbSwgdHJ1ZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jl
c3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBqZXRTdHJlYW0sIGZh
bHNlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlm
aWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyLCBmYWxzZSwgcnVs
ZSkpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIG1hdGNoIHJ1bGUgd2hlbiBw
bGF0Zm9ybXMgaXMgZW1wdHksIHRlc3RzIG1hdGNoLCB1c2VySW5pdGlhdGVkIGlzIHRydWUnLCAo
KSA9PiB7CisgICAgICAgICAgICBjb25zdCBydWxlID0ge3BsYXRmb3JtczogW10sIHRlc3RzOiBb
c3BlZWRvbWV0ZXIyLCBqZXRTdHJlYW1dLCB1c2VySW5pdGlhdGVkOiB0cnVlfTsKKyAgICAgICAg
ICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtN
YWNCb29rLCBzcGVlZG9tZXRlcjIsIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5v
ayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBz
cGVlZG9tZXRlcjIsIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNp
c1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rLCBqZXRTdHJlYW0sIHRy
dWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZp
ZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1BybywgamV0U3RyZWFtLCBmYWxzZSwgcnVsZSkp
OworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hl
c1J1bGUodHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlciwgZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5r
TWFjQm9va1Bybywgc3BlZWRvbWV0ZXIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgIH0pOworCisg
ICAgICAgIGl0KCdzaG91bGQgbWF0Y2ggcnVsZSB3aGVuIHBsYXRmb3JtcyBpcyBlbXB0eSwgdGVz
dHMgbWF0Y2gsIHVzZXJJbml0aWF0ZWQgaXMgZmFsc2UnLCAoKSA9PiB7CisgICAgICAgICAgICBj
b25zdCBydWxlID0ge3BsYXRmb3JtczogW10sIHRlc3RzOiBbc3BlZWRvbWV0ZXIyLCBqZXRTdHJl
YW1dLCB1c2VySW5pdGlhdGVkOiBmYWxzZX07CisgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlz
aXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywgc3BlZWRvbWV0ZXIy
LCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05v
dGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyMiwgZmFsc2Us
IHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIu
X21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywgamV0U3RyZWFtLCB0cnVlLCBydWxlKSk7CisgICAg
ICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0
cnVua01hY0Jvb2tQcm8sIGpldFN0cmVhbSwgdHJ1ZSwgcnVsZSkpOworICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29r
LCBzcGVlZG9tZXRlciwgZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5h
bHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRv
bWV0ZXIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQg
bWF0Y2ggcnVsZSB3aGVuIHRlc3RzIGlzIGVtcHR5LCBwbGF0Zm9ybXMgbWF0Y2gsIHVzZXJJbml0
aWF0ZWQgaXMgdHJ1ZScsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJ1bGUgPSB7dGVzdHM6
IFtdLCBwbGF0Zm9ybXM6IFt0cnVua01hY0Jvb2ssIHRydW5rTWFjQm9va0Fpcl0sIHVzZXJJbml0
aWF0ZWQ6IHRydWV9OworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlm
aWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyMiwgdHJ1ZSwgcnVsZSkp
OworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVz
UnVsZSh0cnVua01hY0Jvb2tBaXIsIHNwZWVkb21ldGVyLCB0cnVlLCBydWxlKSk7CisgICAgICAg
ICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5r
TWFjQm9va0FpciwgamV0U3RyZWFtLCB0cnVlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQu
b2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2ssIGpl
dFN0cmVhbSwgZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNS
ZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1BybywgamV0U3RyZWFtLCBm
YWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3Rp
Zmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlciwgZmFsc2UsIHJ1
bGUpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBtYXRjaCBydWxlIHdoZW4g
dGVzdHMgaXMgZW1wdHksIHBsYXRmb3JtcyBtYXRjaCwgdXNlckluaXRpYXRlZCBpcyBmYWxzZScs
ICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJ1bGUgPSB7dGVzdHM6IFtdLCBwbGF0Zm9ybXM6
IFt0cnVua01hY0Jvb2ssIHRydW5rTWFjQm9va0Fpcl0sIHVzZXJJbml0aWF0ZWQ6IGZhbHNlfTsK
KyAgICAgICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1
bGUodHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgICAg
ICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFj
Qm9va0Fpciwgc3BlZWRvbWV0ZXIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQu
b2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va0Fpciwg
amV0U3RyZWFtLCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNp
c1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rLCBqZXRTdHJlYW0sIHRy
dWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZp
ZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1BybywgamV0U3RyZWFtLCBmYWxzZSwgcnVsZSkp
OworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hl
c1J1bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlciwgZmFsc2UsIHJ1bGUpKTsKKyAgICAg
ICAgfSk7CiAgICAgfSk7CiAKICAgICBkZXNjcmliZSgnX3ZhbGlkYXRlUnVsZXMnLCAoKSA9PiB7
Ci0gICAgICAgIGl0KCdzaG91bGQgZmFpbCB0aGUgdmFsaWRhdGlvbiBmb3IgZW1wdHkgcnVsZScs
ICgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gQW5hbHlzaXNSZXN1bHRz
Tm90aWZpZXIuX3ZhbGlkYXRlUnVsZXMoW3t9XSksIC9Bc3NlcnRpb25FcnJvciBcW0VSUl9BU1NF
UlRJT05cXS8sICdFaXRoZXIgdGVzdHMgb3IgcGxhdGZvcm1zIHNob3VsZCBiZSBhbiBhcnJheSBv
ZiBzdHJpbmdzJyk7CisgICAgICAgIGl0KCdzaG91bGQgcGFzcyB0aGUgdmFsaWRhdGlvbiBmb3Ig
ZW1wdHkgcnVsZScsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5kb2VzTm90VGhyb3coKCkg
PT4gQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX3ZhbGlkYXRlUnVsZXMoW3t9XSksIC9Bc3NlcnRp
b25FcnJvciBcW0VSUl9BU1NFUlRJT05cXTogRWl0aGVyIHRlc3RzIG9yIHBsYXRmb3JtcyBtdXN0
IGJlIGFuIHVuZGVmaW5lZCwgZW1wdHkgYXJyYXksIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MvKTsK
KyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBmYWlsIHRoZSB2YWxpZGF0aW9uIGZv
ciBydWxlIHdoZXJlIGB0ZXN0c2AgaXMgbm90IGFuIGFycmF5IG9mIHN0cmluZ3MnLCAoKSA9PiB7
CisgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IEFuYWx5c2lzUmVzdWx0c05vdGlmaWVy
Ll92YWxpZGF0ZVJ1bGVzKFt7dGVzdHM6IFt7fV19XSksIC9Bc3NlcnRpb25FcnJvciBcW0VSUl9B
U1NFUlRJT05cXTogRWl0aGVyIHRlc3RzIG9yIHBsYXRmb3JtcyBtdXN0IGJlIGFuIHVuZGVmaW5l
ZCwgZW1wdHkgYXJyYXksIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MvKTsKKyAgICAgICAgfSk7CisK
KyAgICAgICAgaXQoJ3Nob3VsZCBmYWlsIHRoZSB2YWxpZGF0aW9uIGZvciBydWxlIHdoZXJlIGBw
bGF0Zm9ybXNgIGlzIG5vdCBhbiBhcnJheSBvZiBzdHJpbmdzJywgKCkgPT4geworICAgICAgICAg
ICAgYXNzZXJ0LnRocm93cygoKSA9PiBBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fdmFsaWRhdGVS
dWxlcyhbe3BsYXRmb3JtczogW3t9XX1dKSwgL0Fzc2VydGlvbkVycm9yIFxbRVJSX0FTU0VSVElP
TlxdOiBFaXRoZXIgdGVzdHMgb3IgcGxhdGZvcm1zIG11c3QgYmUgYW4gdW5kZWZpbmVkLCBlbXB0
eSBhcnJheSwgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy8pOworICAgICAgICB9KTsKKworICAgICAg
ICBpdCgnc2hvdWxkIGZhaWwgdGhlIHZhbGlkYXRpb24gZm9yIHJ1bGUgd2hlcmUgYHBsYXRmb3Jt
c2AgYW5kIGB0ZXN0c2AgYXJlIG5vdCBhbiBhcnJheSBvZiBzdHJpbmdzJywgKCkgPT4geworICAg
ICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fdmFs
aWRhdGVSdWxlcyhbe3BsYXRmb3JtczogW3t9XSwgdGVzdHM6IFs5LCAxLCAxXX1dKSwgL0Fzc2Vy
dGlvbkVycm9yIFxbRVJSX0FTU0VSVElPTlxdOiBFaXRoZXIgdGVzdHMgb3IgcGxhdGZvcm1zIG11
c3QgYmUgYW4gdW5kZWZpbmVkLCBlbXB0eSBhcnJheSwgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy8p
OworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGZhaWwgdGhlIHZhbGlkYXRpb24g
Zm9yIHJ1bGUgd2hlcmUgYHBsYXRmb3Jtc2Agb3IgYHRlc3RzYCBpcyBub3QgYW4gYXJyYXkgb2Yg
c3RyaW5ncycsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gQW5hbHlz
aXNSZXN1bHRzTm90aWZpZXIuX3ZhbGlkYXRlUnVsZXMoW3twbGF0Zm9ybXM6IFsnU3lzdGVtIE1h
Y0Jvb2tBaXInXSwgdGVzdHM6IFt7fSwgMF19XSksIC9Bc3NlcnRpb25FcnJvciBcW0VSUl9BU1NF
UlRJT05cXTogRWl0aGVyIHRlc3RzIG9yIHBsYXRmb3JtcyBtdXN0IGJlIGFuIHVuZGVmaW5lZCwg
ZW1wdHkgYXJyYXksIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MvKTsKKyAgICAgICAgfSk7CisKKyAg
ICAgICAgaXQoJ3Nob3VsZCBmYWlsIHRoZSB2YWxpZGF0aW9uIGZvciBydWxlIHdoZXJlIGBwbGF0
Zm9ybXNgIG9yIGB0ZXN0c2AgaXMgbm90IGFuIGFycmF5IG9mIHN0cmluZ3MnLCAoKSA9PiB7Cisg
ICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl92
YWxpZGF0ZVJ1bGVzKFt7cGxhdGZvcm1zOiBbJ1RydW5rIE1hY0Jvb2snLCA1XSwgdGVzdHM6IFsn
c3BlZWRvbWV0ZXInXX1dKSwgL0Fzc2VydGlvbkVycm9yIFxbRVJSX0FTU0VSVElPTlxdOiBFaXRo
ZXIgdGVzdHMgb3IgcGxhdGZvcm1zIG11c3QgYmUgYW4gdW5kZWZpbmVkLCBlbXB0eSBhcnJheSwg
b3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy8pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hv
dWxkIHBhc3MgdGhlIHZhbGlkYXRpb24gZm9yIHJ1bGUgd2hlcmUgYHRlc3RzYCBpcyBhbiBlbXB0
eSBhcnJheScsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5kb2VzTm90VGhyb3coKCkgPT4g
QW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX3ZhbGlkYXRlUnVsZXMoW3t0ZXN0czogW119XSksIC9B
c3NlcnRpb25FcnJvciBcW0VSUl9BU1NFUlRJT05cXTogRWl0aGVyIHRlc3RzIG9yIHBsYXRmb3Jt
cyBtdXN0IGJlIGFuIHVuZGVmaW5lZCwgZW1wdHkgYXJyYXksIG9yIGFuIGFycmF5IG9mIHN0cmlu
Z3MvKTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCBmYWlsIHRoZSB2YWxpZGF0
aW9uIGZvciBwbGF0Zm9ybXMgb2YgYSBydWxlIGlzIG5vdCBhbiBhcnJheSBvZiBzdHJpbmcnLCAo
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IEFuYWx5c2lzUmVzdWx0c05v
dGlmaWVyLl92YWxpZGF0ZVJ1bGVzKFt7dGVzdHM6IFt7fV19XSksIC9Bc3NlcnRpb25FcnJvciBc
W0VSUl9BU1NFUlRJT05cXS8sICdFaXRoZXIgdGVzdHMgb3IgcGxhdGZvcm1zIHNob3VsZCBiZSBh
biBhcnJheSBvZiBzdHJpbmdzJyk7CisgICAgICAgIGl0KCdzaG91bGQgcGFzcyB0aGUgdmFsaWRh
dGlvbiBmb3IgcnVsZSB3aGVyZSBgcGxhdGZvcm1zYCBpcyBhbiBlbXB0eSBhcnJheXMnLCAoKSA9
PiB7CisgICAgICAgICAgICBhc3NlcnQuZG9lc05vdFRocm93KCgpID0+IEFuYWx5c2lzUmVzdWx0
c05vdGlmaWVyLl92YWxpZGF0ZVJ1bGVzKFt7cGxhdGZvcm1zOiBbXX1dKSwgL0Fzc2VydGlvbkVy
cm9yIFxbRVJSX0FTU0VSVElPTlxdOiBFaXRoZXIgdGVzdHMgb3IgcGxhdGZvcm1zIG11c3QgYmUg
YW4gdW5kZWZpbmVkLCBlbXB0eSBhcnJheSwgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy8pOwogICAg
ICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHBhc3MgdGhlIHZhbGlkYXRpb24gZm9yIGlm
IGEgcnVsZSBvbmx5IGhhcyB0ZXN0cyBzcGVjaWZpZWQnLCAoKSA9PiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420093</attachid>
            <date>2021-02-11 21:28:06 -0800</date>
            <delta_ts>2021-02-12 14:29:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221712-20210211212805.patch</filename>
            <type>text/plain</type>
            <size>16569</size>
            <attacher name="Roy Reapor">rreapor</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjU5CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA5MDc3ZmZkMDRjOTdhZmY0MDk4OWEyMTJmZGZmMDAyYzBiMmE1NDg0Li44YjkwNjNjMDJk
YjM2MTc1ZmNiOTBjZTFhOWRlMmFkNDI1ZGE2Njg3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMS0wMi0xMCAgUm95IFJlYXBvciAgPHJyZWFwb3JA
YXBwbGUuY29tPgorCisgICAgICAgIHBlcmYud2Via2l0Lm9yZy90b29scy9qcy9hbmFseXNpcy1y
ZXN1bHRzLW5vdGlmaWVyLmpzIHNob3VsZCBhbGxvdyBzZW5kaW5nIG9mIGNvbXBsZXRpb24gZW1h
aWxzIHJlZ2FyZGxlc3Mgb2YgdGVzdCBuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE3MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSdWxlIGBwbGF0Zm9ybXNgIGFuZCBgdGVzdHNgIGNhbiBiZSB1
bmRlZmluZWQsIGFuIGVtcHR5IGFycmF5LCBvciBhbiBhcnJheSBvZiBzdHJpbmdzLiBVbmRlZmlu
ZWQgd2lsbCBtYXRjaCBldmVyeXRoaW5nLgorICAgICAgICBFbXB0eSBhcnJheSB3aWxsIG1hdGNo
IG5vdGhpbmcuIEFycmF5IG9mIHN0cmluZ3Mgd2lsbCBtYXRjaCBpdGVtcyBpbiB0aGUgYXJyYXku
CisKKyAgICAgICAgUnVsZSB3aWxsIG5vdCBtYXRjaCBpZiBlaXRoZXIgYHRlc3RzYCBvciBgcGxh
dGZvcm1zYCBpcyBhbiBlbXB0eSBhcnJheS4KKworICAgICAgICAqIHRvb2xzL2pzL2FuYWx5c2lz
LXJlc3VsdHMtbm90aWZpZXIuanM6CisgICAgICAgIChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5f
dmFsaWRhdGVSdWxlcy5pc1VuZGVyZmluZWRPckVtcHR5QXJyYXlPckFycmF5T2ZTdHJpbmdzKTog
CisgICAgICAgIC0gYHBsYXRmb3Jtc2AgYW5kIGB0ZXN0c2AgY2FuIG5vdyBiZSB1bmRlZmluZWQg
b3IgYW4gZW1wdHkgYXJyYXkgb2ZmaWNpYWxseQorICAgICAgICAoQW5hbHlzaXNSZXN1bHRzTm90
aWZpZXIuX3ZhbGlkYXRlUnVsZXMpOiAKKyAgICAgICAgLSBzd2l0Y2hlZCB0byBgYXNzZXJ0Lm9r
KClgLiBgY29uc29sZS5hc3NlcnQoKWAgbm8gbG9uZ2VyIHRocm93cyBzaW5jZSBub2RlIHYxMCAo
aHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2plc3QvaXNzdWVzLzU2MzQpCisgICAgICAgIC0g
Ym90aCBydWxlIGBwbGF0Zm9ybXNgIGFuZCBgdGVzdHNgIG11c3QgcGFzcyBgaXNVbmRlcmZpbmVk
T3JFbXB0eUFycmF5T3JBcnJheU9mU3RyaW5ncygpYC4gcHJldmlvdXNseSwgcnVsZXMgbGlrZSBg
e3Rlc3RzOiBbMSwgM10sIHBsYXRmb3JtczogWydzcGVlZG9tZXRlciddfWAgcGFzc2VzIHZhbGlk
YXRpb24uCisgICAgICAgIChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fYXBwbHlVcGRhdGUpOiAK
KyAgICAgICAgLSBzd2l0Y2hlZCB0byBgYXNzZXJ0Lm9rKClgLiBgY29uc29sZS5hc3NlcnQoKWAg
bm8gbG9uZ2VyIHRocm93cyBzaW5jZSBub2RlIHYxMCAoaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vi
b29rL2plc3QvaXNzdWVzLzU2MzQpCisgICAgICAgIChBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5f
dmFsaWRhdGVSdWxlcy5pc05vbmVtcHR5QXJyYXlPZlN0cmluZ3MpOiBEZWxldGVkLgorICAgICAg
ICAqIHVuaXQtdGVzdHMvYW5hbHlzaXMtcmVzdWx0cy1ub3RpZmllci10ZXN0cy5qczoKKyAgICAg
ICAgLSBhZGRlZCBhIGJ1bmNoIG9mIHVuaXR0ZXN0cworICAgICAgICAtIHNwZWNpZnkgdGhlIGV4
YWN0IHJlZ2V4IG1hdGNoIGZvciBgYXNzZXJ0LnRocm93cygpYCBhbmQgYGFzc2VydC5kb2VzTm90
VGhyb3coKWAgYXJndW1lbnQuCisKIDIwMjEtMDEtMjAgIERld2VpIFpodSAgPGRld2VpX3podUBh
cHBsZS5jb20+CiAKICAgICAgICAgQnVpbGRib3RUcmlnZ2VyYWJsZSBzaG91bGQgbm90IHVwZGF0
ZSBidWlsZCByZXF1ZXN0cyBmcm9tIGFub3RoZXIgdHJpZ2dlcmFibGUuCmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYW5hbHlzaXMtcmVzdWx0cy1ub3RpZmll
ci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9hbmFseXNpcy1yZXN1bHRz
LW5vdGlmaWVyLmpzCmluZGV4IDQ4ZTIxMjllYmVhNDVmZWZiOTJlMTkxOGI1NWQwZDRmYjlmYzFk
NDIuLjJkZGFjNzE2NWU0YWJkNzUwOGNiOTQwYThjMmQ1ZGFkMWViY2QyYzggMTAwNjQ0Ci0tLSBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9hbmFseXNpcy1yZXN1bHRzLW5vdGlm
aWVyLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9hbmFseXNpcy1y
ZXN1bHRzLW5vdGlmaWVyLmpzCkBAIC0yLDYgKzIsNyBAQCBnbG9iYWwuQ29tbW9uQ29tcG9uZW50
QmFzZSA9IHJlcXVpcmUoJy4uLy4uL3B1YmxpYy9zaGFyZWQvY29tbW9uLWNvbXBvbmVudC1iYXNl
JwogZ2xvYmFsLk1hcmt1cFBhZ2UgPSByZXF1aXJlKCcuL21hcmt1cC1jb21wb25lbnQuanMnKS5N
YXJrdXBQYWdlOwogZ2xvYmFsLk1hcmt1cENvbXBvbmVudEJhc2UgPSByZXF1aXJlKCcuL21hcmt1
cC1jb21wb25lbnQuanMnKS5NYXJrdXBDb21wb25lbnRCYXNlOwogCitjb25zdCBhc3NlcnQgPSBy
ZXF1aXJlKCdhc3NlcnQnKTsKIGNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTsKIGNvbnN0IHBhdGgg
PSByZXF1aXJlKCdwYXRoJyk7CiBjb25zdCBvcyA9IHJlcXVpcmUoJ29zJyk7CkBAIC0yMSwxNSAr
MjIsMTUgQEAgY2xhc3MgQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIgewogCiAgICAgc3RhdGljIF92
YWxpZGF0ZVJ1bGVzKHJ1bGVzKQogICAgIHsKLSAgICAgICAgZnVuY3Rpb24gaXNOb25lbXB0eUFy
cmF5T2ZTdHJpbmdzKG9iamVjdCkgeworICAgICAgICBmdW5jdGlvbiBpc1VuZGVyZmluZWRPckVt
cHR5QXJyYXlPckFycmF5T2ZTdHJpbmdzKG9iamVjdCkgewogICAgICAgICAgICAgaWYgKCFvYmpl
Y3QpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KG9iamVjdCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuIG9iamVjdC5ldmVyeSgo
ZW50cnkpID0+IGVudHJ5IGluc3RhbmNlb2YgU3RyaW5nIHx8IHR5cGVvZihlbnRyeSkgPT09ICdz
dHJpbmcnKTsKICAgICAgICAgfQogICAgICAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgcnVsZXMpCi0g
ICAgICAgICAgICBjb25zb2xlLmFzc2VydChpc05vbmVtcHR5QXJyYXlPZlN0cmluZ3MocnVsZS5w
bGF0Zm9ybXMpIHx8IGlzTm9uZW1wdHlBcnJheU9mU3RyaW5ncyhydWxlLnRlc3RzKSwgJ0VpdGhl
ciB0ZXN0cyBvciBwbGF0Zm9ybXMgc2hvdWxkIGJlIGFuIGFycmF5IG9mIHN0cmluZ3MnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5vayhpc1VuZGVyZmluZWRPckVtcHR5QXJyYXlPckFycmF5T2ZTdHJp
bmdzKHJ1bGUucGxhdGZvcm1zKSAmJiBpc1VuZGVyZmluZWRPckVtcHR5QXJyYXlPckFycmF5T2ZT
dHJpbmdzKHJ1bGUudGVzdHMpLCAnRWl0aGVyIHRlc3RzIG9yIHBsYXRmb3JtcyBtdXN0IGJlIGFu
IHVuZGVmaW5lZCwgZW1wdHkgYXJyYXksIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MnKTsKICAgICB9
CiAKICAgICBhc3luYyBzZW5kTm90aWZpY2F0aW9uc0ZvclRlc3RHcm91cHModGVzdEdyb3VwcykK
QEAgLTEwNiw3ICsxMDcsNyBAQCBjbGFzcyBBbmFseXNpc1Jlc3VsdHNOb3RpZmllciB7CiAgICAg
ICAgIGNvbnN0IHVwZGF0ZVR5cGUgPSB0eXBlb2YgdXBkYXRlOwogICAgICAgICBjb25zdCBzdXBw
b3J0ZWRQcmltaXRpdmVUeXBlcyA9IFsic3RyaW5nIiwgIm51bWJlciIsICJib29sZWFuIl07CiAg
ICAgICAgIGNvbnN0IHVuc3VwcG9ydGVkUHJpbWl0aXZlVHlwZXMgPSBbInN5bWJvbCIsICJmdW5j
dGlvbiIsICJ1bmRlZmluZWQiXTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIXVuc3VwcG9ydGVk
UHJpbWl0aXZlVHlwZXMuaW5jbHVkZXMobWVzc2FnZVR5cGUpICYmICF1bnN1cHBvcnRlZFByaW1p
dGl2ZVR5cGVzLmluY2x1ZGVzKHVwZGF0ZVR5cGUpKTsKKyAgICAgICAgYXNzZXJ0Lm9rKCF1bnN1
cHBvcnRlZFByaW1pdGl2ZVR5cGVzLmluY2x1ZGVzKG1lc3NhZ2VUeXBlKSAmJiAhdW5zdXBwb3J0
ZWRQcmltaXRpdmVUeXBlcy5pbmNsdWRlcyh1cGRhdGVUeXBlKSk7CiAKICAgICAgICAgaWYgKHN1
cHBvcnRlZFByaW1pdGl2ZVR5cGVzLmluY2x1ZGVzKG1lc3NhZ2VUeXBlKSB8fCBzdXBwb3J0ZWRQ
cmltaXRpdmVUeXBlcy5pbmNsdWRlcyh1cGRhdGVUeXBlKSkKICAgICAgICAgICAgIHJldHVybiBb
bWVzc2FnZSwgdXBkYXRlXTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91
bml0LXRlc3RzL2FuYWx5c2lzLXJlc3VsdHMtbm90aWZpZXItdGVzdHMuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9hbmFseXNpcy1yZXN1bHRzLW5vdGlmaWVyLXRlc3Rz
LmpzCmluZGV4IDk2ZWMzNzBlMzRjYjBjNTU4YjVmNjFiMGJhYzRiZjAyZTgxMzJhZjYuLjFmMTYw
ZjNmY2U5N2ExODJlMzJhYWM0YmVlNzFhNzE0Yzc0MjM3YTcgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2FuYWx5c2lzLXJlc3VsdHMtbm90aWZpZXItdGVz
dHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYW5hbHlzaXMt
cmVzdWx0cy1ub3RpZmllci10ZXN0cy5qcwpAQCAtODIsMTUgKzgyLDE0MyBAQCBkZXNjcmliZSgn
QW5hbHlzaXNSZXN1bHRzTm90aWZpZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQub2so
QW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3Bl
ZWRvbWV0ZXIsIGZhbHNlLCBydWxlKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNS
ZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIy
LCBmYWxzZSwgcnVsZSkpOwogICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIG1hdGNo
IHJ1bGUgd2hlbiBwbGF0Zm9ybXMsIHRlc3RzLCBhbmQgdXNlckluaXRpYXRlZCBhcmUgdW5kZWZp
bmVkJywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcnVsZSA9IHt9OworICAgICAgICAgICAg
YXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jv
b2ssIHNwZWVkb21ldGVyMiwgdHJ1ZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFu
YWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVk
b21ldGVyLCB0cnVlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1
bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIyLCB0
cnVlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZp
ZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywgc3BlZWRvbWV0ZXIyLCBmYWxzZSwgcnVsZSkp
OworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVz
UnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyLCBmYWxzZSwgcnVsZSkpOworICAgICAg
ICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVu
a01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyMiwgZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAgfSk7CisK
KyAgICAgICAgaXQoJ3Nob3VsZCBtYXRjaCBydWxlIHdoZW4gcGxhdGZvcm1zIGFuZCB0ZXN0cyBh
cmUgdW5kZWZpbmVkIGFuZCB1c2VySW5pdGlhdGVkIHNldCB0byB0cnVlJywgKCkgPT4geworICAg
ICAgICAgICAgY29uc3QgcnVsZSA9IHt1c2VySW5pdGlhdGVkOiB0cnVlfTsKKyAgICAgICAgICAg
IGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNC
b29rLCBzcGVlZG9tZXRlcjIsIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhB
bmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVl
ZG9tZXRlciwgdHJ1ZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKEFuYWx5c2lzUmVz
dWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyMiwg
dHJ1ZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3Rp
Zmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIsIGZhbHNlLCBydWxl
KSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRj
aGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyLCBmYWxzZSwgcnVsZSkpOworICAg
ICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUo
dHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlcjIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgIH0p
OworCisgICAgICAgIGl0KCdzaG91bGQgbWF0Y2ggcnVsZSB3aGVuIHBsYXRmb3JtcyBhbmQgdGVz
dHMgYXJlIHVuZGVmaW5lZCBhbmQgdXNlckluaXRpYXRlZCBzZXQgdG8gZmFsc2UnLCAoKSA9PiB7
CisgICAgICAgICAgICBjb25zdCBydWxlID0ge3VzZXJJbml0aWF0ZWQ6IGZhbHNlfTsKKyAgICAg
ICAgICAgIGFzc2VydC5vayhBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1
bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgICAgICBhc3Nl
cnQub2soQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1By
bywgc3BlZWRvbWV0ZXIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soQW5h
bHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRv
bWV0ZXIyLCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jl
c3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIsIHRy
dWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZp
ZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIsIHRydWUsIHJ1bGUp
KTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNo
ZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIyLCB0cnVlLCBydWxlKSk7CisKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBub3QgbWF0Y2ggcnVsZSB3aGVuIHBsYXRm
b3JtcywgYW5kIHRlc3RzIGFyZSBlbXB0eSBhcnJheXMgYW5kIHVzZXJJbml0aWF0ZWQgaXMgdW5k
ZWZpbmVkJywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcnVsZSA9IHt0ZXN0czogW10sIHBs
YXRmb3JtczogW119OworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3Rp
Zmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIsIHRydWUsIHJ1bGUp
KTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNo
ZXNSdWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIsIHRydWUsIHJ1bGUpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRy
dW5rTWFjQm9vaywgc3BlZWRvbWV0ZXIyLCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29r
UHJvLCBzcGVlZG9tZXRlciwgZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
aXQoJ3Nob3VsZCBub3QgbWF0Y2ggcnVsZSB3aGVuIHBsYXRmb3JtcyBhbmQgdGVzdHMgYXJlIGFy
ZSBlbXB0eSBhcnJheXMgYW5kIHVzZXJJbml0aWF0ZWQgc2V0IHRvIHRydWUnLCAoKSA9PiB7Cisg
ICAgICAgICAgICBjb25zdCBydWxlID0ge3Rlc3RzOiBbXSwgcGxhdGZvcm1zOiBbXSwgdXNlcklu
aXRpYXRlZDogdHJ1ZX07CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05v
dGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyMiwgdHJ1ZSwgcnVs
ZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0
Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlciwgdHJ1ZSwgcnVsZSkpOworICAg
ICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUo
dHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIsIGZhbHNlLCBydWxlKSk7CisgICAgICAgICAgICBh
c3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jv
b2tQcm8sIHNwZWVkb21ldGVyLCBmYWxzZSwgcnVsZSkpOworICAgICAgICB9KTsKKworICAgICAg
ICBpdCgnc2hvdWxkIG5vdCBtYXRjaCBydWxlIHdoZW4gcGxhdGZvcm1zIGFuZCB0ZXN0cyBhcmUg
ZW1wdHkgYW5kIHVzZXJJbml0aWF0ZWQgc2V0IHRvIGZhbHNlJywgKCkgPT4geworICAgICAgICAg
ICAgY29uc3QgcnVsZSA9IHt0ZXN0czogW10sIHBsYXRmb3JtczogW10sIHVzZXJJbml0aWF0ZWQ6
IGZhbHNlfTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIu
X21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywgc3BlZWRvbWV0ZXIyLCB0cnVlLCBydWxlKSk7Cisg
ICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVs
ZSh0cnVua01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyLCB0cnVlLCBydWxlKSk7CisgICAgICAgICAg
ICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01h
Y0Jvb2ssIHNwZWVkb21ldGVyMiwgZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5v
ayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywg
c3BlZWRvbWV0ZXIsIGZhbHNlLCBydWxlKSk7CisKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQo
J3Nob3VsZCBub3QgbWF0Y2ggcnVsZSB3aGVuIHBsYXRmb3JtcyBpcyBlbXB0eSwgdGVzdHMgbWF0
Y2gsIHVzZXJJbml0aWF0ZWQgaXMgdW5kZWZpbmVkJywgKCkgPT4geworICAgICAgICAgICAgY29u
c3QgcnVsZSA9IHtwbGF0Zm9ybXM6IFtdLCB0ZXN0czogW3NwZWVkb21ldGVyMiwgamV0U3RyZWFt
XX07CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRj
aGVzUnVsZSh0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyMiwgdHJ1ZSwgcnVsZSkpOworICAgICAg
ICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1
bmtNYWNCb29rUHJvLCBzcGVlZG9tZXRlcjIsIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFz
c2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9v
aywgamV0U3RyZWFtLCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFs
eXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rUHJvLCBqZXRTdHJl
YW0sIGZhbHNlLCBydWxlKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgbm90
IG1hdGNoIHJ1bGUgd2hlbiB0ZXN0cyBpcyBlbXB0eSwgcGxhdGZvcm1zIG1hdGNoLCB1c2VySW5p
dGlhdGVkIGlzIHVuZGVmaW5lZCcsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJ1bGUgPSB7
dGVzdHM6IFtdLCBwbGF0Zm9ybXM6IFt0cnVua01hY0Jvb2ssIHRydW5rTWFjQm9va0Fpcl19Owor
ICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1
bGUodHJ1bmtNYWNCb29rLCBzcGVlZG9tZXRlcjIsIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAg
IGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFj
Qm9va0Fpciwgc3BlZWRvbWV0ZXIsIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5v
ayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va0Fpciwg
amV0U3RyZWFtLCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNp
c1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rLCBqZXRTdHJlYW0sIGZh
bHNlLCBydWxlKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgbm90IG1hdGNo
IHJ1bGUgd2hlbiBwbGF0Zm9ybXMgaXMgZW1wdHksIHRlc3RzIG1hdGNoLCB1c2VySW5pdGlhdGVk
IGlzIHRydWUnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBydWxlID0ge3BsYXRmb3Jtczog
W10sIHRlc3RzOiBbc3BlZWRvbWV0ZXIyLCBqZXRTdHJlYW1dLCB1c2VySW5pdGlhdGVkOiB0cnVl
fTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNo
ZXNSdWxlKHRydW5rTWFjQm9vaywgc3BlZWRvbWV0ZXIyLCB0cnVlLCBydWxlKSk7CisgICAgICAg
ICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVu
a01hY0Jvb2tQcm8sIHNwZWVkb21ldGVyMiwgdHJ1ZSwgcnVsZSkpOworICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29r
LCBqZXRTdHJlYW0sIGZhbHNlLCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5
c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tQcm8sIGpldFN0cmVh
bSwgZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBub3Qg
bWF0Y2ggcnVsZSB3aGVuIHBsYXRmb3JtcyBpcyBlbXB0eSwgdGVzdHMgbWF0Y2gsIHVzZXJJbml0
aWF0ZWQgaXMgZmFsc2UnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBydWxlID0ge3BsYXRm
b3JtczogW10sIHRlc3RzOiBbc3BlZWRvbWV0ZXIyLCBqZXRTdHJlYW1dLCB1c2VySW5pdGlhdGVk
OiBmYWxzZX07CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVy
Ll9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2ssIHNwZWVkb21ldGVyMiwgZmFsc2UsIHJ1bGUpKTsK
KyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNS
dWxlKHRydW5rTWFjQm9va1Bybywgc3BlZWRvbWV0ZXIyLCBmYWxzZSwgcnVsZSkpOworICAgICAg
ICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jlc3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1
bmtNYWNCb29rLCBqZXRTdHJlYW0sIHRydWUsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5v
ayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va1Bybywg
amV0U3RyZWFtLCB0cnVlLCBydWxlKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91
bGQgbm90IG1hdGNoIHJ1bGUgd2hlbiB0ZXN0cyBpcyBlbXB0eSwgcGxhdGZvcm1zIG1hdGNoLCB1
c2VySW5pdGlhdGVkIGlzIHRydWUnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBydWxlID0g
e3Rlc3RzOiBbXSwgcGxhdGZvcm1zOiBbdHJ1bmtNYWNCb29rLCB0cnVua01hY0Jvb2tBaXJdLCB1
c2VySW5pdGlhdGVkOiB0cnVlfTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1
bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywgc3BlZWRvbWV0ZXIyLCB0cnVl
LCBydWxlKSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVy
Ll9tYXRjaGVzUnVsZSh0cnVua01hY0Jvb2tBaXIsIHNwZWVkb21ldGVyLCB0cnVlLCBydWxlKSk7
CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRjaGVz
UnVsZSh0cnVua01hY0Jvb2tBaXIsIGpldFN0cmVhbSwgZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5r
TWFjQm9vaywgamV0U3RyZWFtLCBmYWxzZSwgcnVsZSkpOworICAgICAgICB9KTsKKworICAgICAg
ICBpdCgnc2hvdWxkIG5vdCBtYXRjaCBydWxlIHdoZW4gdGVzdHMgaXMgZW1wdHksIHBsYXRmb3Jt
cyBtYXRjaCwgdXNlckluaXRpYXRlZCBpcyBmYWxzZScsICgpID0+IHsKKyAgICAgICAgICAgIGNv
bnN0IHJ1bGUgPSB7dGVzdHM6IFtdLCBwbGF0Zm9ybXM6IFt0cnVua01hY0Jvb2ssIHRydW5rTWFj
Qm9va0Fpcl0sIHVzZXJJbml0aWF0ZWQ6IGZhbHNlfTsKKyAgICAgICAgICAgIGFzc2VydC5vaygh
QW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9vaywgc3BlZWRv
bWV0ZXIyLCBmYWxzZSwgcnVsZSkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCFBbmFseXNpc1Jl
c3VsdHNOb3RpZmllci5fbWF0Y2hlc1J1bGUodHJ1bmtNYWNCb29rQWlyLCBzcGVlZG9tZXRlciwg
ZmFsc2UsIHJ1bGUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghQW5hbHlzaXNSZXN1bHRzTm90
aWZpZXIuX21hdGNoZXNSdWxlKHRydW5rTWFjQm9va0FpciwgamV0U3RyZWFtLCB0cnVlLCBydWxl
KSk7CisgICAgICAgICAgICBhc3NlcnQub2soIUFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl9tYXRj
aGVzUnVsZSh0cnVua01hY0Jvb2ssIGpldFN0cmVhbSwgdHJ1ZSwgcnVsZSkpOworICAgICAgICB9
KTsKICAgICB9KTsKIAogICAgIGRlc2NyaWJlKCdfdmFsaWRhdGVSdWxlcycsICgpID0+IHsKLSAg
ICAgICAgaXQoJ3Nob3VsZCBmYWlsIHRoZSB2YWxpZGF0aW9uIGZvciBlbXB0eSBydWxlJywgKCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBBbmFseXNpc1Jlc3VsdHNOb3Rp
Zmllci5fdmFsaWRhdGVSdWxlcyhbe31dKSwgL0Fzc2VydGlvbkVycm9yIFxbRVJSX0FTU0VSVElP
TlxdLywgJ0VpdGhlciB0ZXN0cyBvciBwbGF0Zm9ybXMgc2hvdWxkIGJlIGFuIGFycmF5IG9mIHN0
cmluZ3MnKTsKKyAgICAgICAgaXQoJ3Nob3VsZCBwYXNzIHRoZSB2YWxpZGF0aW9uIGZvciBlbXB0
eSBydWxlJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LmRvZXNOb3RUaHJvdygoKSA9PiBB
bmFseXNpc1Jlc3VsdHNOb3RpZmllci5fdmFsaWRhdGVSdWxlcyhbe31dKSwgL0Fzc2VydGlvbkVy
cm9yIFxbRVJSX0FTU0VSVElPTlxdOiBFaXRoZXIgdGVzdHMgb3IgcGxhdGZvcm1zIG11c3QgYmUg
YW4gdW5kZWZpbmVkLCBlbXB0eSBhcnJheSwgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy8pOworICAg
ICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGZhaWwgdGhlIHZhbGlkYXRpb24gZm9yIHJ1
bGUgd2hlcmUgYHRlc3RzYCBpcyBub3QgYW4gYXJyYXkgb2Ygc3RyaW5ncycsICgpID0+IHsKKyAg
ICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX3Zh
bGlkYXRlUnVsZXMoW3t0ZXN0czogW3t9XX1dKSwgL0Fzc2VydGlvbkVycm9yIFxbRVJSX0FTU0VS
VElPTlxdOiBFaXRoZXIgdGVzdHMgb3IgcGxhdGZvcm1zIG11c3QgYmUgYW4gdW5kZWZpbmVkLCBl
bXB0eSBhcnJheSwgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy8pOworICAgICAgICB9KTsKKworICAg
ICAgICBpdCgnc2hvdWxkIGZhaWwgdGhlIHZhbGlkYXRpb24gZm9yIHJ1bGUgd2hlcmUgYHBsYXRm
b3Jtc2AgaXMgbm90IGFuIGFycmF5IG9mIHN0cmluZ3MnLCAoKSA9PiB7CisgICAgICAgICAgICBh
c3NlcnQudGhyb3dzKCgpID0+IEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl92YWxpZGF0ZVJ1bGVz
KFt7cGxhdGZvcm1zOiBbe31dfV0pLCAvQXNzZXJ0aW9uRXJyb3IgXFtFUlJfQVNTRVJUSU9OXF06
IEVpdGhlciB0ZXN0cyBvciBwbGF0Zm9ybXMgbXVzdCBiZSBhbiB1bmRlZmluZWQsIGVtcHR5IGFy
cmF5LCBvciBhbiBhcnJheSBvZiBzdHJpbmdzLyk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0
KCdzaG91bGQgZmFpbCB0aGUgdmFsaWRhdGlvbiBmb3IgcnVsZSB3aGVyZSBgcGxhdGZvcm1zYCBh
bmQgYHRlc3RzYCBhcmUgbm90IGFuIGFycmF5IG9mIHN0cmluZ3MnLCAoKSA9PiB7CisgICAgICAg
ICAgICBhc3NlcnQudGhyb3dzKCgpID0+IEFuYWx5c2lzUmVzdWx0c05vdGlmaWVyLl92YWxpZGF0
ZVJ1bGVzKFt7cGxhdGZvcm1zOiBbe31dLCB0ZXN0czogWzksIDEsIDFdfV0pLCAvQXNzZXJ0aW9u
RXJyb3IgXFtFUlJfQVNTRVJUSU9OXF06IEVpdGhlciB0ZXN0cyBvciBwbGF0Zm9ybXMgbXVzdCBi
ZSBhbiB1bmRlZmluZWQsIGVtcHR5IGFycmF5LCBvciBhbiBhcnJheSBvZiBzdHJpbmdzLyk7Cisg
ICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgZmFpbCB0aGUgdmFsaWRhdGlvbiBmb3Ig
cnVsZSB3aGVyZSBgcGxhdGZvcm1zYCBvciBgdGVzdHNgIGlzIG5vdCBhbiBhcnJheSBvZiBzdHJp
bmdzJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBBbmFseXNpc1Jl
c3VsdHNOb3RpZmllci5fdmFsaWRhdGVSdWxlcyhbe3BsYXRmb3JtczogWydTeXN0ZW0gTWFjQm9v
a0FpciddLCB0ZXN0czogW3t9LCAwXX1dKSwgL0Fzc2VydGlvbkVycm9yIFxbRVJSX0FTU0VSVElP
TlxdOiBFaXRoZXIgdGVzdHMgb3IgcGxhdGZvcm1zIG11c3QgYmUgYW4gdW5kZWZpbmVkLCBlbXB0
eSBhcnJheSwgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy8pOworICAgICAgICB9KTsKKworICAgICAg
ICBpdCgnc2hvdWxkIGZhaWwgdGhlIHZhbGlkYXRpb24gZm9yIHJ1bGUgd2hlcmUgYHBsYXRmb3Jt
c2Agb3IgYHRlc3RzYCBpcyBub3QgYW4gYXJyYXkgb2Ygc3RyaW5ncycsICgpID0+IHsKKyAgICAg
ICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gQW5hbHlzaXNSZXN1bHRzTm90aWZpZXIuX3ZhbGlk
YXRlUnVsZXMoW3twbGF0Zm9ybXM6IFsnVHJ1bmsgTWFjQm9vaycsIDVdLCB0ZXN0czogWydzcGVl
ZG9tZXRlciddfV0pLCAvQXNzZXJ0aW9uRXJyb3IgXFtFUlJfQVNTRVJUSU9OXF06IEVpdGhlciB0
ZXN0cyBvciBwbGF0Zm9ybXMgbXVzdCBiZSBhbiB1bmRlZmluZWQsIGVtcHR5IGFycmF5LCBvciBh
biBhcnJheSBvZiBzdHJpbmdzLyk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQg
cGFzcyB0aGUgdmFsaWRhdGlvbiBmb3IgcnVsZSB3aGVyZSBgdGVzdHNgIGlzIGFuIGVtcHR5IGFy
cmF5JywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LmRvZXNOb3RUaHJvdygoKSA9PiBBbmFs
eXNpc1Jlc3VsdHNOb3RpZmllci5fdmFsaWRhdGVSdWxlcyhbe3Rlc3RzOiBbXX1dKSwgL0Fzc2Vy
dGlvbkVycm9yIFxbRVJSX0FTU0VSVElPTlxdOiBFaXRoZXIgdGVzdHMgb3IgcGxhdGZvcm1zIG11
c3QgYmUgYW4gdW5kZWZpbmVkLCBlbXB0eSBhcnJheSwgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy8p
OwogICAgICAgICB9KTsKIAotICAgICAgICBpdCgnc2hvdWxkIGZhaWwgdGhlIHZhbGlkYXRpb24g
Zm9yIHBsYXRmb3JtcyBvZiBhIHJ1bGUgaXMgbm90IGFuIGFycmF5IG9mIHN0cmluZycsICgpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gQW5hbHlzaXNSZXN1bHRzTm90aWZp
ZXIuX3ZhbGlkYXRlUnVsZXMoW3t0ZXN0czogW3t9XX1dKSwgL0Fzc2VydGlvbkVycm9yIFxbRVJS
X0FTU0VSVElPTlxdLywgJ0VpdGhlciB0ZXN0cyBvciBwbGF0Zm9ybXMgc2hvdWxkIGJlIGFuIGFy
cmF5IG9mIHN0cmluZ3MnKTsKKyAgICAgICAgaXQoJ3Nob3VsZCBwYXNzIHRoZSB2YWxpZGF0aW9u
IGZvciBydWxlIHdoZXJlIGBwbGF0Zm9ybXNgIGlzIGFuIGVtcHR5IGFycmF5cycsICgpID0+IHsK
KyAgICAgICAgICAgIGFzc2VydC5kb2VzTm90VGhyb3coKCkgPT4gQW5hbHlzaXNSZXN1bHRzTm90
aWZpZXIuX3ZhbGlkYXRlUnVsZXMoW3twbGF0Zm9ybXM6IFtdfV0pLCAvQXNzZXJ0aW9uRXJyb3Ig
XFtFUlJfQVNTRVJUSU9OXF06IEVpdGhlciB0ZXN0cyBvciBwbGF0Zm9ybXMgbXVzdCBiZSBhbiB1
bmRlZmluZWQsIGVtcHR5IGFycmF5LCBvciBhbiBhcnJheSBvZiBzdHJpbmdzLyk7CiAgICAgICAg
IH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcGFzcyB0aGUgdmFsaWRhdGlvbiBmb3IgaWYgYSBy
dWxlIG9ubHkgaGFzIHRlc3RzIHNwZWNpZmllZCcsICgpID0+IHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>